/* oliviahandler.com, rebuilt from the Squarespace Alex template's look */
:root {
  --text: #363636;
  --heading: #1c1c1c;
  --link: #6598b8;
  --nav-blue: #3ebbf9;
  --page-bg: #f5f5f5;
  --content-bg: #fff;
  --rule: #bbb;
  --bar: #fff200;
  --bar-link: #1100fa;
  --header-h: 114px;
  --display: "Josefin Sans", "Brandon Grotesque", "Helvetica Neue", Arial, sans-serif;
  --body: "Helvetica Neue", Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body {
  margin: 0;
  background: var(--page-bg);
  color: var(--text);
  font: 400 18.4px/1.4 var(--body);
  letter-spacing: .9px;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--link); }
img { max-width: 100%; height: auto; display: block; }

/* Announcement bar */
.announcement {
  position: relative;
  background: var(--bar);
  color: var(--text);
  text-align: center;
  padding: 10px 56px;
  font-size: 18.4px;
}
.announcement p { margin: 0; }
.announcement a { color: var(--bar-link); font-size: 25px; letter-spacing: 1.8px; text-transform: capitalize; }
.announcement-close {
  position: absolute; right: 0; top: 0; bottom: 0; width: 48px;
  border: 0; background: rgba(0,0,0,.06); font-size: 28px; color: var(--text); cursor: pointer;
}
html.bar-closed .announcement { display: none; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  min-height: var(--header-h);
  padding: 20px 40px;
  background: #fff;
}
.logo img { width: 333px; max-width: 60vw; height: auto; }
.main-nav { display: flex; gap: 28px; }
.main-nav a {
  font: 400 12px/1 var(--body); letter-spacing: .9px; text-transform: uppercase;
  text-decoration: none; color: var(--nav-blue);
}
.main-nav a.active { color: var(--heading); }

/* Dot navigation */
.dot-nav {
  position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 40;
  display: flex; flex-direction: column; gap: 14px;
}
.dot-nav a { position: relative; display: block; width: 12px; height: 12px; }
.dot-nav .dot {
  display: block; width: 10px; height: 10px; margin: 1px; border-radius: 50%;
  border: 1px solid #fff; background: rgba(255,255,255,.4); box-shadow: 0 0 2px rgba(0,0,0,.4);
}
.dot-nav a.active .dot, .dot-nav a:hover .dot { background: #fff; }
.dot-nav .nav-title {
  position: absolute; right: 22px; top: 50%; transform: translateY(-50%);
  white-space: nowrap; opacity: 0; transition: opacity .2s;
  font: 400 13px/1 var(--display); letter-spacing: 3px; text-transform: uppercase; color: #fff;
  text-shadow: 0 0 3px rgba(0,0,0,.6);
}
.dot-nav a:hover .nav-title { opacity: 1; }

/* Section hero (parallax image with title) */
.hero {
  position: relative;
  min-height: calc(100vh - var(--header-h));
  display: flex; align-items: center; justify-content: center;
  background-position: center; background-size: cover; background-repeat: no-repeat; background-attachment: fixed;
  color: #fff; text-align: center;
}
.hero-inner { padding: 40px 6vw; max-width: 1100px; }
.page-title {
  margin: 0;
  font: 300 100px/1 var(--display); letter-spacing: 8px; text-transform: uppercase;
  color: #fff; text-shadow: 0 0 20px rgba(0,0,0,.25);
}
.page-desc { margin-top: 20px; color: #0f0f0f; font: 400 22px/1.4 var(--display); }
.page-desc p { margin: 0; }
.page-desc a { color: #0f0f0f; letter-spacing: .8px; }
.scroll-arrow {
  position: absolute; bottom: 24px; left: 50%; width: 30px; height: 30px; margin-left: -15px;
  border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg) scale(.6);
}

/* Section content */
.content { background: var(--content-bg); }
.content-inner { max-width: 960px; margin: 0 auto; padding: 50px; }
.layout, .row { width: 100%; }
.row { display: flex; flex-wrap: wrap; }
.col { min-width: 0; padding: 0 17px; }
.row .row { margin: 0 -17px; width: auto; }
.span-1 { width: 8.333%; } .span-2 { width: 16.666%; } .span-3 { width: 25%; } .span-4 { width: 33.333%; }
.span-5 { width: 41.666%; } .span-6 { width: 50%; } .span-7 { width: 58.333%; } .span-8 { width: 66.666%; }
.span-9 { width: 75%; } .span-10 { width: 83.333%; } .span-11 { width: 91.666%; } .span-12 { width: 100%; }
.block { padding: 17px 0; }
.block-text p { margin: 0 0 1em; }
.block-text p:last-child { margin-bottom: 0; }
h1, h2, h3, h4 { color: var(--heading); font-family: var(--display); font-weight: 400; }
.content h1, .content h2 { font-size: 32px; line-height: 1.3; margin: 0 0 .6em; }
.content h3 {
  font-size: 23.92px; line-height: 1.7; letter-spacing: 2.4px; text-transform: uppercase; margin: 0 0 .6em;
}
.text-align-center { text-align: center; }
.text-align-right { text-align: right; }
hr { border: 0; border-top: 1px solid var(--rule); margin: 0; }

/* Video */
.ratio { position: relative; height: 0; overflow: hidden; }
.ratio iframe, .block-code iframe.video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.block-code .container { position: relative; padding-bottom: 56.25%; height: 0; }

/* Gallery grid (Pics & Vids) */
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.gallery-grid .g-item { display: block; aspect-ratio: 1; overflow: hidden; background: #eee; }
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: opacity .2s; }
.gallery-grid .g-item:hover img { opacity: .85; }

/* Gallery slideshow (Send A Message) */
.gallery-slideshow .ss-stage { position: relative; background: #fff; }
.gallery-slideshow .ss-stage img { width: 100%; max-height: 70vh; object-fit: contain; }
.gallery-slideshow .ss-prev, .gallery-slideshow .ss-next {
  position: absolute; top: 50%; transform: translateY(-50%); border: 0; background: rgba(0,0,0,.35);
  color: #fff; font-size: 40px; width: 48px; height: 64px; cursor: pointer;
}
.gallery-slideshow .ss-prev { left: 0; } .gallery-slideshow .ss-next { right: 0; }
.gallery-slideshow .ss-thumbs { display: flex; gap: 6px; margin-top: 8px; overflow-x: auto; }
.gallery-slideshow .ss-thumbs button { flex: 0 0 72px; height: 72px; padding: 0; border: 2px solid transparent; background: none; cursor: pointer; }
.gallery-slideshow .ss-thumbs button.on { border-color: var(--heading); }
.gallery-slideshow .ss-thumbs img { width: 100%; height: 100%; object-fit: cover; }

/* Lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.92);
  display: flex; align-items: center; justify-content: center;
}
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 90vw; max-height: 88vh; object-fit: contain; }
.lightbox button { position: absolute; border: 0; background: none; color: #fff; cursor: pointer; font-size: 54px; line-height: 1; padding: 10px 18px; }
.lb-close { top: 8px; right: 8px; font-size: 40px; }
.lb-prev { left: 8px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 8px; top: 50%; transform: translateY(-50%); }

/* Buttons and forms */
.btn {
  display: inline-block;
  font: 500 14px/1 var(--display); letter-spacing: 2px; text-transform: uppercase;
  color: #272727; background: transparent; border: 2px solid #272727;
  padding: 14px 35px; cursor: pointer;
}
.btn:hover { background: #272727; color: #fff; }
.block-form { text-align: center; }
.form-dialog { width: min(640px, 92vw); border: 0; padding: 40px; text-align: left; }
.form-dialog::backdrop { background: rgba(255,255,255,.92); }
.dlg-close { position: absolute; top: 8px; right: 12px; border: 0; background: none; font-size: 32px; cursor: pointer; }
.site-form label, .site-form legend { display: block; font-size: 14px; margin: 14px 0 6px; }
.site-form fieldset { border: 0; padding: 0; margin: 0; display: flex; gap: 12px; flex-wrap: wrap; }
.site-form fieldset legend { width: 100%; }
.site-form fieldset label { flex: 1 1 200px; margin-top: 0; font-size: 12px; }
.site-form input:not([type=checkbox]), .site-form textarea {
  display: block; width: 100%; padding: 12px; margin-top: 4px; border: 1px solid #ccc; background: #fafafa;
  font: inherit; font-size: 16px; letter-spacing: normal;
}
.site-form .btn { margin-top: 20px; }
.site-form .req { color: #999; }
.site-form .hp { position: absolute; left: -9999px; }
.form-status { min-height: 1em; font-size: 14px; }
.form-thanks { padding: 20px 0; }

/* Newsletter (Sun Rae page) */
.block-newsletter { text-align: center; }
.block-newsletter .btn { text-decoration: none; }
.newsletter-form { text-align: center; max-width: 720px; margin: 0 auto; }
.newsletter-form .newsletter-form-header-title { font-size: 32px; margin: 0 0 10px; }
.newsletter-form .newsletter-form-field-label { position: absolute; left: -9999px; }
.newsletter-form .newsletter-form-fields-wrapper { display: flex; flex-direction: column; gap: 10px; }
.newsletter-form fieldset { border: 0; padding: 0; margin: 0; display: flex; gap: 10px; }
.newsletter-form fieldset > div { flex: 1; }
.newsletter-form .newsletter-form-button {
  font: 500 14px/1 var(--display); letter-spacing: 2px; text-transform: uppercase;
  color: #fff; background: #272727; border: 0; padding: 16px 35px; margin-top: 14px; cursor: pointer;
}
.newsletter-form .newsletter-form-footnote { font-size: 13px; margin-top: 14px; }

/* Image block */
.block-image figure { margin: 0; }
.block-image figcaption { font-size: 14px; margin-top: 8px; }

/* Footer */
.site-footer { background: var(--page-bg); text-align: center; padding: 30px 20px 40px; }
.back-to-top {
  display: inline-block; text-decoration: none; text-transform: uppercase; color: var(--heading);
  font: 400 13px/1 var(--display); letter-spacing: 3px; margin-bottom: 16px;
}
.back-to-top .arrow {
  display: block; width: 12px; height: 12px; margin: 0 auto 8px;
  border-left: 2px solid currentColor; border-top: 2px solid currentColor; transform: rotate(45deg);
}
.site-footer p { margin: 0; }

/* Mobile */
@media (max-width: 767px) {
  :root { --header-h: 76px; }
  .announcement { padding: 8px 48px 8px 12px; font-size: 15px; }
  .announcement a { font-size: 18px; }
  .site-header { padding: 12px 16px; flex-wrap: wrap; gap: 8px; }
  .logo img { width: 210px; }
  .main-nav { gap: 16px; }
  .dot-nav { display: none; }
  .hero { min-height: 70vh; background-attachment: scroll; }
  .page-title { font-size: 56px; letter-spacing: 5px; }
  .content-inner { padding: 30px 16px; }
  .col { width: 100% !important; padding: 0; }
  .row .row { margin: 0; }
  .content h3 { font-size: 19px; letter-spacing: 1.6px; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
  .form-dialog { padding: 28px 18px; }
  .newsletter-form fieldset { flex-direction: column; }
}
@supports (-webkit-touch-callout: none) { .hero { background-attachment: scroll; } }
