.contact-hero{background:#080f1e;color:white;padding:55px 0 60px}.contact-hero-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:90px;align-items:center}.contact-hero .eyebrow{color:#75e1fc}.contact-page .contact-hero h1{font-size:clamp(36px,4vw,58px);line-height:1.13;max-width:850px}.contact-hero-grid>div>p:not(.eyebrow){color:#c1cedb;font-size:19px;max-width:660px;line-height:1.7}.contact-hero .detail-cta{font-size:17px;gap:30px;margin-top:8px}.contact-note{border-left:1px solid #ffffff33;padding-left:45px}.contact-duration{font-family:Sora,Arial,sans-serif;font-size:80px;line-height:1;letter-spacing:-.05em;color:#75e1fc}.contact-duration>span{display:block;font-family:'DM Sans',Arial,sans-serif;font-size:15px;letter-spacing:.03em;margin:10px 0 25px}.contact-note>p{font-size:16px!important}.contact-note>a{display:block;border-top:1px solid #ffffff33;padding-top:24px;margin-top:25px;font-size:14px;color:#d5e4ee}.contact-note>a>span{color:#75e1fc;margin-left:12px}.contact-note strong{font-weight:400;color:#fff}.contact-note a:hover,.contact-note a:hover strong{color:#a5edff}.contact-page .section{padding:76px 0}.contact-booking{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:65px;align-items:start}.contact-page h2{font-size:clamp(30px,3vw,42px)}.contact-expectations>p:not(.eyebrow){font-size:18px;line-height:1.75;max-width:430px}.call-agenda{list-style:none;padding:0;margin:34px 0}.call-agenda li{display:grid;grid-template-columns:76px 1fr;gap:16px;padding:24px 0;border-top:1px solid #dce3eb}.call-agenda li>span{font-size:10px;letter-spacing:.07em;color:#007a99;padding-top:6px}.call-agenda h3{font-size:22px;margin-bottom:10px}.call-agenda p{font-size:15px;line-height:1.75;margin:0}.contact-prep{background:#e6f8fd;padding:24px}.contact-prep .eyebrow{margin-bottom:10px;font-size:10px}.contact-prep p:last-child{font-size:15px;margin:0}.calendar-heading{display:flex;justify-content:space-between;align-items:center;padding:25px 30px;background:#c9f3fd}.calendar-heading .eyebrow{font-size:10px;margin-bottom:8px}.calendar-heading h2{font-size:28px;margin:0}.calendar-heading>span{font-size:43px;font-weight:300}.calendar-shell{border:1px solid #dce3eb;background:white;min-height:740px}.calendar-fallback{font-size:13px;line-height:1.8;margin:20px 0 0}.calendar-fallback a{text-decoration:underline;text-underline-offset:4px}.calendar-fallback a:hover{color:#007a99}.contact-bottom{background:#f5f8fb;padding:60px 0}.contact-bottom h2{max-width:900px}.contact-bottom .text-link{font-size:18px}
@media(max-width:1100px){.contact-hero-grid{gap:45px}.contact-booking{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:35px}.contact-note{padding-left:30px}}
@media(max-width:850px){.contact-booking{grid-template-columns:1fr;gap:45px}.contact-expectations>p:not(.eyebrow){max-width:650px}.contact-hero-grid{grid-template-columns:1fr}.contact-note{display:none}.contact-page .section{padding:52px 0}}
@media(max-width:600px){.contact-hero{padding:38px 0 42px}.contact-hero-grid>div>p:not(.eyebrow){font-size:17px}.contact-page .contact-hero h1{font-size:34px}.calendar-heading{padding:22px}.calendar-heading h2{font-size:26px}.call-agenda li{grid-template-columns:65px 1fr;gap:12px}.contact-bottom{padding:45px 0}.contact-bottom .text-link{font-size:15px;gap:15px}}

.calendar-shell{position:relative}.calendar-status{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#f8fcfe;padding:35px}.calendar-status[hidden]{display:none}.calendar-status-mark{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#c9f3fd;font-size:32px;margin-bottom:24px}.calendar-status h3{font-size:23px;max-width:380px;margin-bottom:16px}.calendar-status p{font-size:16px;max-width:380px;margin-bottom:25px}.calendar-status .button{gap:24px}@media(max-width:600px){.calendar-status{padding:22px}.calendar-status h3{font-size:22px}.calendar-status .button{font-size:13px;gap:15px}}

/* A calm starting point: dock on open water, from existing Wayfinder assets. */
.contact-hero{background-image:linear-gradient(90deg,rgba(8,15,30,.94) 0%,rgba(8,15,30,.82) 45%,rgba(8,15,30,.57) 100%),url("assets/contact-dock.jpg");background-size:cover;background-position:center 56%;background-repeat:no-repeat}.contact-hero-grid>div>p:not(.eyebrow){color:#dce5ee}.contact-note{border-left-color:#ffffff4d}@media(max-width:850px){.contact-hero{background-image:linear-gradient(90deg,rgba(8,15,30,.89),rgba(8,15,30,.71)),url("assets/contact-dock.jpg");background-position:62% center}}

/* ---- Booking calendar (2026-09-21) --------------------------------------
   The frame is built by contact.js and sized from Calendly's own page_height
   messages, so the shell height is set inline at runtime rather than fixed
   here; min-height only covers the moment before the first message lands. */
.calendar-shell{height:auto;scroll-margin-top:110px;transition:height .35s ease}
.calendar-mount{width:100%;height:100%;min-width:280px}
.calendar-mount iframe{display:block;width:100%;height:100%;border:0}

/* The heading arrow is a control, not decoration. */
.calendar-jump{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;
  flex:none;margin:-6px -6px -6px 16px;color:var(--navy);font-size:34px;font-weight:300;
  line-height:1;transition:background .2s ease,color .2s ease,transform .2s ease}
.calendar-jump span{display:block;transition:transform .25s ease}
.calendar-jump:hover,.calendar-jump:focus-visible{background:#0a19311a;color:#00566e}
.calendar-jump:hover span,.calendar-jump:focus-visible span{transform:translate(2px,2px)}
.calendar-jump:active{transform:scale(.94)}
.calendar-heading{gap:20px}

@media(prefers-reduced-motion:reduce){
  .calendar-shell{transition:none}
  .calendar-jump,.calendar-jump span{transition:none}
}
@media(max-width:600px){
  .calendar-jump{width:44px;height:44px;font-size:28px;margin-left:10px}
}
