:root{--teal:#4a7c82;--gold:#e5b124;--ink:#1a1a1a;--muted:#5c6566;--bg:#f7f9f9;--white:#fff;--radius:14px;--shadow:0 12px 40px rgba(26,46,48,.12);--font-sans:"DM Sans",system-ui,sans-serif;--font-display:"Cormorant Garamond",Georgia,serif;--font-script:"Great Vibes",cursive;--space:clamp(1rem,3vw,2.5rem);--max:min(1180px,calc(100% - 2 * var(--space)))}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important}.page-home .site-header .brand{transition:none}}
body{margin:0;font-family:var(--font-sans);font-size:clamp(1rem,.95rem + .2vw,1.125rem);line-height:1.65;color:var(--ink);background:var(--bg)}
.skip-link{position:absolute;left:-999px;top:0;background:var(--gold);padding:.5rem 1rem;z-index:1000}.skip-link:focus{left:var(--space);top:var(--space)}
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--teal));transform-origin:left;transform:scaleX(0);z-index:999}
.site-header{position:sticky;top:0;z-index:100;background:transparent;border-bottom:none}
.header-inner{max-width:1400px;margin:0 auto;padding:.85rem var(--space) 1rem;display:flex;align-items:center;justify-content:space-between;gap:clamp(.75rem,2.5vw,2rem);flex-wrap:wrap}
.brand{display:flex;flex-direction:column;align-items:center;flex-shrink:0;gap:.2rem;text-decoration:none;color:var(--ink);background:transparent;border:none;padding:0;box-shadow:none}
.brand-logo{height:clamp(5rem,11vw,8rem);width:auto;max-width:min(380px,78vw);object-fit:contain;display:block;background:transparent}
.brand-wordmark{font-family:var(--font-script);font-size:clamp(1.2rem,2.4vw,1.75rem);line-height:1.15;color:#3a656a;letter-spacing:.02em;text-align:center;white-space:nowrap}
.header-menu-bar{display:flex;align-items:center;justify-content:flex-start;flex:1;flex-wrap:wrap;gap:.35rem .65rem;min-width:0;background:var(--white);border-radius:999px;padding:.45rem .55rem .45rem 1rem;box-shadow:0 6px 28px rgba(26,46,48,.1);border:1px solid rgba(74,124,130,.12)}
.nav-main{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .25rem;flex:1;min-width:0;justify-content:flex-start}
.header-divider{width:1px;align-self:stretch;min-height:1.35rem;margin:0 .15rem;background:rgba(74,124,130,.28);flex-shrink:0}
.header-divider--cta{align-self:center;min-height:0;height:1.35rem;margin:0 .35rem}
.header-ctas .header-divider--cta{margin:0 .45rem}
.nav-main a{position:relative;text-decoration:none;color:var(--muted);font-weight:600;font-size:.95rem;padding:.4rem .65rem;border-radius:8px;transition:color .2s,background .2s}
.nav-main a::after{content:"";position:absolute;left:.65rem;right:.65rem;bottom:.2rem;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .25s ease}
.nav-main a:hover{color:var(--teal);background:rgba(74,124,130,.06)}
.nav-main a:hover::after,.nav-main a:focus-visible::after{transform:scaleX(1)}
.nav-main a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.header-ctas{display:flex;align-items:center;gap:.35rem;flex-shrink:0;margin-left:auto}
.nav-cta{background:var(--teal);color:var(--white)!important;padding:.5rem 1.15rem;border-radius:999px;font-weight:600;font-size:.9rem;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 12px rgba(74,124,130,.25)}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(74,124,130,.35)}
.staff-pill{font-size:.82rem;font-weight:600;text-decoration:none;color:var(--teal);border:2px solid var(--teal);padding:.4rem .9rem;border-radius:999px;transition:background .2s,color .2s,border-color .2s}
.staff-pill:hover{background:rgba(74,124,130,.08)}
@media (max-width:720px){.header-inner{flex-direction:column;align-items:stretch}.header-menu-bar{width:100%;justify-content:center;border-radius:22px;padding:.55rem .75rem}.nav-main{justify-content:center;flex:1 1 auto}.header-ctas{margin-left:0}.brand{align-self:flex-start}.brand-logo{height:clamp(4rem,18vw,6rem);max-width:min(300px,92vw)}.brand-wordmark{font-size:clamp(1.05rem,4.5vw,1.45rem);white-space:normal;max-width:16rem}}
html:has(body.page-home),body.page-home{background:#1a3235}
.page-home #main{background:transparent}
.page-home .site-header{position:fixed;left:0;right:0;top:0;z-index:100;background:transparent;box-shadow:none}
.page-home .site-header .brand{transition:opacity .4s ease,transform .4s ease,flex-basis .4s ease,margin .4s ease}
.page-home .site-header--scrolled .brand{opacity:0;transform:translateY(-10px);flex:0 0 0;min-width:0;max-width:0;margin:0;overflow:hidden;pointer-events:none}
.page-home main .hero:first-child{margin-top:0;padding-top:clamp(7.5rem,16vh,11.5rem)}
@media (max-width:720px){.page-home main .hero:first-child{padding-top:clamp(6.5rem,20vh,10rem)}}
.page-home .header-menu-bar{background:rgba(18,38,40,.42);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.22);box-shadow:0 8px 36px rgba(0,0,0,.22)}
.page-home .header-divider{background:rgba(255,255,255,.32)}
.page-home .header-divider--cta{background:rgba(255,255,255,.38)}
.page-home .nav-main a{color:rgba(255,255,255,.92)}
.page-home .nav-main a:hover{color:var(--white);background:rgba(255,255,255,.1)}
.page-home .nav-main a::after{background:var(--gold)}
.page-home .staff-pill{color:rgba(255,255,255,.95);border-color:rgba(255,255,255,.55)}
.page-home .staff-pill:hover{background:rgba(255,255,255,.12)}
.page-home .brand-logo{height:clamp(5.5rem,12vw,9rem);max-width:min(400px,92vw);filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.page-home .brand-wordmark{color:rgba(255,255,255,.94);text-shadow:0 1px 3px rgba(0,0,0,.45)}
.hero{position:relative;min-height:min(88vh,900px);display:grid;align-items:end;color:var(--white);overflow:hidden}
.hero-bg{position:absolute;inset:0;background-image:linear-gradient(120deg,rgba(26,46,48,.85) 0%,rgba(74,124,130,.45) 50%,rgba(229,177,36,.25) 100%),var(--hero-img);background-size:cover;background-position:center}
.hero-inner{position:relative;z-index:1;width:100%;max-width:1400px;margin:0 auto;padding:clamp(3rem,8vw,6rem) var(--space)}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;margin:0 0 .75rem}
.hero h1{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:500;line-height:1.1;margin:0 0 1rem}
.hero-lead{font-size:clamp(1.05rem,2vw,1.25rem);max-width:52ch;opacity:.95;margin:0 0 1.75rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:999px;font-weight:600;text-decoration:none;border:2px solid transparent;cursor:pointer;font-family:inherit;transition:transform .2s}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:var(--ink);box-shadow:0 4px 20px rgba(26,46,48,.08)}
.btn-teal{background:var(--teal);color:var(--white)}
.btn-outline{border-color:rgba(255,255,255,.85);color:var(--white);background:transparent}
.btn-lg{padding:1rem 2rem;font-size:1.1rem}
.band{padding:clamp(3rem,7vw,5.5rem) var(--space)}.band-inner{max-width:var(--max);margin:0 auto}
.band-teal{background:linear-gradient(180deg,#3b6064 0%,#3e686d 45%,var(--teal) 100%);color:var(--white)}
.band-light{background:var(--white)}
.section-head{text-align:center;max-width:52ch;margin:0 auto 3rem}
.section-head h2{font-family:var(--font-display);font-size:clamp(2rem,3.5vw,2.75rem)}
#services .section-head{max-width:min(42rem,100%)}
.services-intro{font-size:clamp(.95rem,1.5vw,1.05rem);line-height:1.6;opacity:.92;margin:1rem 0 0;max-width:40rem;margin-left:auto;margin-right:auto}
.cards{display:grid;gap:1.5rem}.cards-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.services-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.services-grid{grid-template-columns:1fr}}
.band-teal .card-service{background:rgba(255,255,255,.08);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.28);border-radius:22px;padding:clamp(1.5rem,3vw,2.25rem);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.band-teal .card-service:hover{transform:translateY(-10px);box-shadow:0 20px 48px rgba(10,30,32,.28),inset 0 1px 0 rgba(255,255,255,.15);border-color:rgba(255,255,255,.42)}
.card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:22px;padding:1.75rem;transition:transform .35s}
.band-light .card{background:var(--bg);border-color:rgba(74,124,130,.15);color:var(--ink)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-icon{font-size:1.75rem;color:var(--gold);margin-bottom:.75rem}
.service-icon{color:var(--gold);margin-bottom:.85rem;display:flex;align-items:flex-start;transition:transform .35s ease}
.band-teal .card-service:hover .service-icon{transform:rotate(-5deg) scale(1.06)}
.service-icon svg{display:block}
.card-service p{margin:0 0 .75rem;font-size:clamp(.95rem,1.4vw,1.05rem);line-height:1.6;opacity:.95}
.service-focus{font-size:.9rem!important;opacity:.9!important;margin-top:.25rem!important}
.service-bullets{margin:.75rem 0 0;padding-left:1.2rem;font-size:.9rem;line-height:1.55;opacity:.9}
.card h3{font-family:var(--font-display);font-size:1.45rem;margin:0 0 .5rem}
.split{display:grid;grid-template-columns:1fr 1fr;min-height:420px}
.split-media{min-height:320px;background-image:var(--img);background-size:cover;background-position:center}
.split-copy{padding:clamp(2rem,5vw,4rem);background:var(--white)}
.script-accent{font-family:var(--font-script);font-size:clamp(1.75rem,3vw,2.25rem);color:var(--teal);margin:0 0 1rem}
.ticks{margin:1rem 0 0;padding-left:1.25rem;color:var(--muted)}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:1.5rem;max-width:720px;margin:0 auto}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;padding:1.25rem 1.5rem;background:var(--bg);border-radius:var(--radius);border-left:4px solid var(--gold)}
.step-n{width:2.5rem;height:2.5rem;border-radius:50%;background:var(--teal);color:var(--white);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.steps .step-body strong{display:block;font-size:1.05rem;margin-bottom:.35rem;color:#1a3235}
.steps .step-text{margin:.25rem 0 0;font-size:clamp(.92rem,1.35vw,1.02rem);line-height:1.55;color:var(--muted)}
.steps .step-text a{color:var(--teal);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.steps .step-text a:hover{color:#3a656a}
.page-home #expect .expect-intro{font-size:clamp(1rem,1.55vw,1.08rem);line-height:1.6;color:var(--muted);margin:1rem auto 0;max-width:36rem}
.quote-band{padding:clamp(3.5rem,9vw,6rem) var(--space);text-align:center;background:linear-gradient(180deg,#243a3d 0%,#1a3235 100%)}
.quote-rotator{margin:0 auto;max-width:min(42rem,100%);min-height:clamp(5.5rem,12vw,8.5rem);display:flex;align-items:center;justify-content:center;padding:0 var(--space)}
.quote-rotator__text{margin:0;font-family:var(--font-display);font-size:clamp(1.85rem,4.2vw,2.75rem);font-weight:500;font-style:italic;line-height:1.35;color:rgba(255,255,255,.94);text-shadow:0 2px 28px rgba(0,0,0,.2);transition:opacity 1.1s ease-in-out}
.quote-rotator__text.is-fading{opacity:0}
@media (prefers-reduced-motion:reduce){.quote-rotator__text{transition:none}}
.page-home .visit-band{background:var(--white);color:var(--ink)}
.page-home .visit-band h2{font-family:var(--font-display);font-size:clamp(1.85rem,3vw,2.35rem);color:#2a4a4e;margin:0 0 .75rem}
.page-home .visit-address{color:var(--muted);line-height:1.55;margin:0 0 1.25rem;font-size:1.05rem}
.page-home .visit-band .btn-teal{margin-top:.25rem}
.page-home #expect.band-light{color:var(--ink)}
.page-home #expect .section-head h2{color:#2a4a4e}
.page-home #expect .steps li{color:var(--ink)}
.page-home #expect .steps strong{color:#1a3235}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center}
.map-embed iframe{width:100%;min-height:280px;border:0;border-radius:22px}
@media (max-width:800px){.two-col{grid-template-columns:1fr}}
.whatsapp-band{background:linear-gradient(180deg,#dff3e8 0%,#eef8f2 55%,#f7f9f9 100%);color:var(--ink);padding:clamp(2.5rem,6vw,4rem) var(--space)}
.page-home .whatsapp-band{color:var(--ink)}
.whatsapp-inner{max-width:min(520px,100%);margin:0 auto;text-align:center}
.whatsapp-card{background:var(--white);border-radius:22px;padding:clamp(1.75rem,4vw,2.35rem);box-shadow:0 14px 44px rgba(26,46,48,.1);border:1px solid rgba(37,211,102,.2)}
.whatsapp-icon-wrap{display:inline-flex;color:#25D366;margin-bottom:.85rem}
.whatsapp-card h2{font-family:var(--font-display);font-size:clamp(1.65rem,3.2vw,2rem);color:#1a3235;margin:0 0 .65rem}
.whatsapp-lead{font-size:clamp(.98rem,1.5vw,1.05rem);line-height:1.6;color:var(--muted);margin:0 0 1.35rem}
.btn-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;background:#25D366;color:#fff!important;border:0;padding:.88rem 1.85rem;border-radius:999px;font-weight:700;font-size:1.05rem;text-decoration:none;box-shadow:0 4px 18px rgba(37,211,102,.38);transition:transform .2s,box-shadow .2s,background .2s}
.btn-whatsapp:hover{transform:translateY(-2px);background:#20bd5a;box-shadow:0 6px 24px rgba(37,211,102,.48)}
.btn-whatsapp:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.btn-whatsapp-ico{flex-shrink:0}
.whatsapp-meta{margin:1.2rem 0 0;font-size:.95rem;color:var(--muted)}
.whatsapp-meta a{color:var(--teal);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.cta-band{padding:clamp(3.5rem,8vw,6rem) var(--space);background:linear-gradient(135deg,var(--teal) 0%,#3a656a 100%);color:var(--white);text-align:center}
.cta-inner h2{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);margin:0 0 1.5rem}
.site-footer{background:linear-gradient(180deg,#141414 0%,#0d0d0d 100%);color:rgba(255,255,255,.88)}
.footer-main{padding:clamp(2.5rem,6vw,3.75rem) var(--space) clamp(2rem,4vw,2.5rem)}
.footer-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,3.5rem);align-items:start}
.footer-col{min-width:0}
.footer-logo-type{font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.65rem);font-weight:500;color:var(--white);margin:0 0 .65rem;letter-spacing:.02em}
.footer-tagline{font-size:.95rem;line-height:1.55;color:rgba(255,255,255,.72);margin:0 0 1.25rem;max-width:28ch}
.footer-address{font-style:normal;font-size:.92rem;line-height:1.65;color:rgba(255,255,255,.65);margin:0}
.footer-heading{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin:0 0 1rem}
.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.55rem}
.footer-links a{color:rgba(255,255,255,.82);text-decoration:none;font-size:.95rem;font-weight:500;transition:color .2s}
.footer-links a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding:1.15rem var(--space) 1.35rem}
.footer-bottom-inner{max-width:var(--max);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem}
.footer-copy{margin:0;font-size:.82rem;color:rgba(255,255,255,.55)}
.footer-credit{margin:0;font-size:.82rem;color:rgba(255,255,255,.5)}
.footer-dns{color:rgba(255,255,255,.78);font-weight:600;letter-spacing:.04em}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}.footer-brand-col{grid-column:1/-1}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}.footer-bottom-inner{flex-direction:column;text-align:center}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--reveal-delay,0ms),transform .7s var(--reveal-delay,0ms)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.services-grid .card.reveal:nth-child(1){--reveal-delay:0ms}
.services-grid .card.reveal:nth-child(2){--reveal-delay:85ms}
.services-grid .card.reveal:nth-child(3){--reveal-delay:170ms}
.services-grid .card.reveal:nth-child(4){--reveal-delay:255ms}
.page-staff .app-wrap{padding-bottom:3rem}
.sue-bot{position:fixed;right:var(--space);bottom:var(--space);z-index:200}
.sue-toggle{width:3.5rem;height:3.5rem;border-radius:50%;border:2px solid rgba(229,177,36,.45);background:linear-gradient(160deg,#3d6a70 0%,var(--teal) 100%);color:var(--white);padding:0;cursor:pointer;box-shadow:var(--shadow);display:inline-flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}
.sue-toggle:hover{transform:translateY(-3px);box-shadow:0 16px 44px rgba(26,46,48,.18)}
.sue-toggle:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.sue-tree-icon{display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}
.sue-panel{position:absolute;bottom:100%;right:0;margin-bottom:.75rem;width:min(360px,calc(100vw - 2rem));background:var(--white);border-radius:22px;padding:1rem;box-shadow:var(--shadow)}
.sue-field{display:block;font-size:.82rem;font-weight:600;margin:.65rem 0 .2rem;color:var(--ink)}
.sue-optional{font-weight:400;color:#888;font-size:.78rem}
.sue-input{width:100%;margin:0 0 .35rem;padding:.55rem .65rem;border-radius:var(--radius);border:1px solid #c5d0d1;font-family:inherit;font-size:.95rem}
.sue-panel textarea{width:100%;margin:.35rem 0 .65rem;padding:.75rem;border-radius:var(--radius);border:1px solid #ccc;font-family:inherit}
.app-wrap{max-width:720px;margin:0 auto;padding:2rem var(--space) 4rem;font-size:1.125rem}
.field{margin-bottom:1.25rem}
.field label{display:block;font-weight:600;margin-bottom:.35rem}
.field input,.field textarea{width:100%;padding:.75rem 1rem;font-size:1.125rem;border-radius:var(--radius);border:1px solid #c5d0d1}
.patient-list{list-style:none;padding:0;margin:0}
.patient-list a{display:block;padding:1rem 0;text-decoration:none;color:var(--ink);font-weight:600;border-bottom:1px solid #ddd}
.note-list article{background:var(--white);padding:1rem;border-radius:var(--radius);margin-bottom:.75rem;border-left:4px solid var(--teal)}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}
.slot-btn{padding:.75rem;border:2px solid var(--teal);background:var(--white);border-radius:var(--radius);cursor:pointer;font-family:inherit}
.slot-btn:hover,.slot-btn.selected{background:var(--teal);color:var(--white)}
.session-length-fieldset{border:none;padding:0;margin:0 0 .5rem}
.session-length-legend{font-size:1.15rem;font-weight:600;padding:0;margin:0 0 .35rem}
.session-length-hint{margin:0 0 1rem;font-size:.95rem}
.session-length-options{display:flex;flex-wrap:wrap;gap:.75rem}
.session-length-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1rem;border:2px solid var(--teal);border-radius:var(--radius);background:var(--white);font-family:inherit;transition:background .15s,color .15s}
.session-length-label:has(input:checked){background:var(--teal);color:var(--white);border-color:var(--teal)}
.session-length-label input{accent-color:var(--teal)}
.page-booking .session-length-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
@media (min-width:540px){.page-booking .session-length-options{grid-template-columns:repeat(4,minmax(0,1fr))}}
.page-booking .session-length-label{justify-content:center;text-align:center;padding:.85rem .65rem;font-weight:600;min-height:3.25rem;border-radius:16px;box-shadow:0 2px 12px rgba(74,124,130,.06)}
.booking-day-fieldset{border:none;padding:0;margin:1.25rem 0 0}
.booking-day-legend{font-size:1.15rem;font-weight:600;padding:0;margin:0 0 .35rem}
.booking-day-hint{margin:0 0 .65rem;font-size:.95rem}
.booking-day-label{display:block;font-weight:600;font-size:.92rem;margin:0 0 .4rem;color:#2a4a4e}
.booking-day-select{width:100%;max-width:100%;box-sizing:border-box;padding:.75rem 1rem;font-size:1rem;font-family:inherit;border:2px solid var(--teal);border-radius:16px;background:var(--white);color:var(--ink);cursor:pointer;box-shadow:0 2px 12px rgba(74,124,130,.06)}
.booking-day-select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.booking-slot-context{margin:-0.35rem 0 0.85rem;font-size:.95rem}
.page-booking .booking-form-fields{box-shadow:0 16px 44px rgba(26,46,48,.09);border:1px solid rgba(74,124,130,.1)}
.page-booking .slot-btn{font-weight:600;box-shadow:0 2px 12px rgba(74,124,130,.07)}
.page-booking .booking-times-heading{font-family:var(--font-display);color:#2d5559}
.page-booking .site-header{background:rgba(255,255,255,.96);box-shadow:0 4px 24px rgba(26,46,48,.08)}
.booking-hero{position:relative;overflow:hidden;padding:clamp(2.5rem,6vw,4rem) var(--space) clamp(2rem,5vw,3rem);background:linear-gradient(145deg,#2f5559 0%,var(--teal) 38%,#3d6f75 100%);color:var(--white)}
.booking-hero__mesh{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 85% 0%,rgba(229,177,36,.22),transparent 50%),radial-gradient(ellipse 50% 40% at 0% 100%,rgba(255,255,255,.12),transparent 50%),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.95;pointer-events:none}
.booking-hero__inner{position:relative;z-index:1;max-width:min(1100px,calc(100% - 2 * var(--space)));margin:0 auto;display:grid;gap:clamp(1.5rem,4vw,2.5rem);align-items:center;grid-template-columns:1fr}
@media (min-width:880px){.booking-hero__inner{grid-template-columns:1.1fr .9fr;gap:2.5rem}}
.booking-hero__eyebrow{letter-spacing:.2em;text-transform:uppercase;font-size:.72rem;font-weight:700;margin:0 0 .75rem;opacity:.88;color:rgba(255,255,255,.9)}
.booking-hero__title{font-family:var(--font-display);font-size:clamp(2.1rem,4.5vw,3rem);font-weight:500;line-height:1.1;margin:0 0 1rem;text-shadow:0 2px 28px rgba(0,0,0,.15)}
.booking-hero__lead{font-size:clamp(1.02rem,1.8vw,1.15rem);line-height:1.65;margin:0 0 1rem;opacity:.94;max-width:36rem}
.booking-hero__hours{font-size:.95rem;margin:0;opacity:.88}
.booking-hero__hours strong{color:var(--gold);font-weight:700}
.booking-hero__media{position:relative;display:flex;justify-content:center;align-items:center}
.booking-hero__frame{position:relative;z-index:1;padding:1rem;background:rgba(255,255,255,.12);border-radius:50%;border:2px solid rgba(255,255,255,.25);box-shadow:0 20px 50px rgba(0,0,0,.2)}
.booking-hero__img{display:block;width:min(240px,55vw);height:auto;filter:drop-shadow(0 8px 24px rgba(0,0,0,.2))}
.booking-hero__blob{position:absolute;width:min(320px,70vw);height:min(320px,70vw);border-radius:50%;background:radial-gradient(circle,rgba(229,177,36,.35) 0%,transparent 70%);filter:blur(2px);pointer-events:none}
.band-booking{background:linear-gradient(180deg,#e8f0f1 0%,var(--bg) 18%,#f7f9f9 100%);padding-top:clamp(1.5rem,4vw,2.5rem)!important;padding-bottom:clamp(3rem,8vw,5rem)!important}
.page-booking .booking-shell{max-width:min(920px,100%)!important;padding-top:0}
.booking-type-switch{display:grid;grid-template-columns:1fr;gap:1rem;margin:0 0 2rem}
@media (min-width:640px){.booking-type-switch{grid-template-columns:1fr 1fr;gap:1.15rem}}
.booking-type-card{display:flex;align-items:flex-start;gap:1rem;text-align:left;width:100%;padding:1.15rem 1.25rem;border-radius:20px;border:2px solid rgba(74,124,130,.2);background:linear-gradient(165deg,#fff 0%,#fafcfb 100%);cursor:pointer;font-family:inherit;color:var(--ink);box-shadow:0 8px 28px rgba(26,46,48,.07);transition:transform .2s,box-shadow .2s,border-color .2s,background .2s}
.booking-type-card:hover{border-color:rgba(74,124,130,.35);box-shadow:0 12px 36px rgba(26,46,48,.1);transform:translateY(-2px)}
.booking-type-card:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.booking-type-card--active{border-color:var(--teal);background:linear-gradient(155deg,rgba(74,124,130,.1) 0%,#fff 55%);box-shadow:0 12px 36px rgba(74,124,130,.18),inset 0 1px 0 rgba(255,255,255,.9)}
.booking-type-card--active .booking-type-card__icon{color:var(--teal)}
.booking-type-card__icon{flex-shrink:0;color:rgba(74,124,130,.85);transition:color .2s}
.booking-type-card__text{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.booking-type-card__label{font-weight:800;font-size:1.08rem;line-height:1.2;color:#2a4a4e}
.booking-type-card__sub{font-size:.88rem;color:var(--muted);line-height:1.45;font-weight:500}
.booking-panel{margin-top:0}
.booking-panel-lead{margin:0 0 1.25rem;font-size:1.02rem;line-height:1.55;color:#3a4a4c}
.booking-panel--new .booking-panel-lead{border-left:4px solid var(--gold);padding-left:1rem}
.booking-panel--existing .booking-panel-lead{border-left:4px solid var(--teal);padding-left:1rem}
.booking-times-heading{font-size:1.25rem;margin:2rem 0 .75rem}
.booking-form-fields{background:var(--white);padding:1.5rem;border-radius:22px;margin-top:1rem}
.field-row{display:grid;grid-template-columns:1fr;gap:0 1rem}
@media (min-width:600px){.field-row{grid-template-columns:1fr 1fr}}
.field-hint{margin:.25rem 0 .5rem;font-size:.9rem}
.booking-form{background:var(--white);padding:1.5rem;border-radius:22px;margin-top:1rem}
.page-gifts .site-header{background:rgba(255,255,255,.96);box-shadow:0 4px 24px rgba(26,46,48,.08)}
.gifts-hero{position:relative;overflow:hidden;padding-top:clamp(2.75rem,7vw,4.5rem)!important;padding-bottom:clamp(3rem,9vw,5.5rem)!important}
.gifts-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 70% at 75% -10%,rgba(229,177,36,.18),transparent 52%),radial-gradient(ellipse 55% 45% at 0% 100%,rgba(255,255,255,.08),transparent 55%),linear-gradient(165deg,rgba(0,0,0,.06) 0%,transparent 45%);pointer-events:none}
.gifts-hero-inner{position:relative;z-index:1;max-width:min(38rem,100%)!important;margin:0 auto;text-align:center}
.gifts-eyebrow{letter-spacing:.18em;margin-bottom:.75rem;opacity:.92}
.gifts-title{font-family:var(--font-display);font-size:clamp(2.25rem,5.5vw,3.25rem);font-weight:500;line-height:1.12;margin:0 0 1rem;text-shadow:0 2px 24px rgba(0,0,0,.12)}
.gifts-lead{font-size:clamp(1.05rem,1.9vw,1.2rem);line-height:1.65;opacity:.94;margin:0 auto;max-width:36rem}
.gifts-form-band{background:linear-gradient(180deg,#eef3f3 0%,#f7f9f9 12%,var(--bg) 100%);padding-top:clamp(2rem,5vw,3rem)!important;padding-bottom:clamp(3rem,8vw,5rem)!important}
.gift-form-wrap{max-width:min(560px,100%)!important}
.gift-voucher-form{background:var(--white);padding:clamp(1.75rem,4.5vw,2.5rem);border-radius:26px;box-shadow:0 16px 48px rgba(26,46,48,.1),0 2px 0 rgba(255,255,255,.8) inset;border:1px solid rgba(74,124,130,.1)}
.gift-form-header{text-align:center;margin:0 0 clamp(1.5rem,4vw,2rem);padding-bottom:1.25rem;border-bottom:1px solid rgba(74,124,130,.12)}
.gift-form-title{font-family:var(--font-display);font-size:clamp(1.65rem,3.5vw,2rem);margin:0 0 .5rem;color:#2d5559}
.gift-form-sub{font-size:clamp(.95rem,1.5vw,1.05rem);color:var(--muted);line-height:1.55;margin:0;max-width:32rem;margin-left:auto;margin-right:auto}
.gift-fieldset{border:0;padding:0;margin:0 0 1rem}
.gift-panel{background:linear-gradient(180deg,#fafcfb 0%,#fff 100%);border:1px solid rgba(74,124,130,.14);border-radius:18px;padding:1.35rem 1.35rem 1.15rem;margin-bottom:1rem;box-shadow:0 4px 20px rgba(26,46,48,.04);transition:box-shadow .25s ease,border-color .25s ease}
.gift-panel:hover{border-color:rgba(74,124,130,.22);box-shadow:0 8px 28px rgba(26,46,48,.07)}
.gift-panel--highlight{background:linear-gradient(145deg,rgba(74,124,130,.07) 0%,#fafcfb 48%,#fff 100%);border-color:rgba(74,124,130,.2)}
.gift-legend{display:flex;align-items:center;gap:.65rem;font-weight:700;font-size:1.02rem;margin:0 0 1rem;color:#2a4a4e;width:100%}
.gift-legend-num{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border-radius:50%;background:linear-gradient(145deg,var(--gold) 0%,#d4a520 100%);color:var(--ink);font-size:.82rem;font-weight:800;flex-shrink:0;box-shadow:0 2px 8px rgba(229,177,36,.35)}
.gift-panel--highlight .gift-legend-num{background:linear-gradient(145deg,var(--teal) 0%,#3d6a70 100%);color:var(--white);box-shadow:0 2px 10px rgba(74,124,130,.35)}
.gift-fieldset .field:last-child{margin-bottom:0}
.gift-voucher-form .field input,.gift-voucher-form .field textarea{border-color:#c8d6d8;transition:border-color .2s,box-shadow .2s}
.gift-voucher-form .field input:focus,.gift-voucher-form .field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(74,124,130,.15);outline:none}
.gift-duration-field{margin-bottom:0}
.gift-duration-label{font-size:.95rem;color:var(--muted);font-weight:600;margin-bottom:.65rem;display:block}
.gift-duration-label--mobile{display:none}
.gift-duration-card{background:rgba(74,124,130,.06);border-radius:16px;padding:1.1rem 1rem 1rem;border:1px solid rgba(74,124,130,.12);display:flex;flex-direction:column;align-items:stretch;gap:1rem}
.gift-duration-slider-block{width:100%}
.gift-duration-row{display:flex;align-items:center;gap:1rem;margin:0}
.gift-duration-slider-block .gift-duration-row input[type="range"]{width:100%}
.gift-duration-output{display:block;width:100%;max-width:12rem;margin:0 auto;text-align:center;font-weight:700;font-size:1.1rem;letter-spacing:.02em;color:var(--white);background:linear-gradient(160deg,#3d6a70 0%,var(--teal) 100%);padding:.65rem 1rem;border-radius:14px;box-shadow:0 4px 14px rgba(74,124,130,.35)}
.gift-duration-ticks{display:flex;justify-content:space-between;margin-top:.85rem;padding:0 .15rem;gap:.25rem}
.gift-duration-ticks span{font-size:.78rem;font-weight:600;color:rgba(45,85,89,.45);transition:color .2s,transform .2s}
.gift-duration-ticks span.is-active{color:var(--teal);transform:scale(1.08)}
.gift-duration-ticks-unit{text-align:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(45,85,89,.4);margin:.35rem 0 0}
.gift-duration-mobile-block{display:none;width:100%}
.gift-duration-mobile-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
@media (min-width:400px){.gift-duration-mobile-btns{grid-template-columns:repeat(3,minmax(0,1fr))}}
.gift-dur-btn{display:block;width:100%;padding:.85rem .65rem;border:2px solid rgba(74,124,130,.35);border-radius:14px;background:var(--white);font-family:inherit;font-size:.95rem;font-weight:700;color:#2a4a4e;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.gift-dur-btn:hover{border-color:var(--teal);background:rgba(74,124,130,.06)}
.gift-dur-btn.gift-dur-btn--active{border-color:var(--teal);background:var(--teal);color:var(--white);box-shadow:0 4px 16px rgba(74,124,130,.35)}
.gift-dur-btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.gift-duration-hint{font-size:.88rem;color:var(--muted);margin:.85rem 0 0;line-height:1.5}
.optional{font-weight:400;color:var(--muted);font-size:.92em}
.field textarea{min-height:5rem;resize:vertical}
.gift-voucher-form input[type="range"]{flex:1;min-width:0;height:.65rem;-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#3d6a70 0%,var(--teal) 35%,var(--gold) 100%);border-radius:999px;outline:none;cursor:pointer;touch-action:pan-y}
.gift-voucher-form input[type="range"]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.gift-voucher-form input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--white);border:3px solid var(--teal);cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.18);transition:transform .15s}
.gift-voucher-form input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.06)}
.gift-voucher-form input[type="range"]::-moz-range-thumb{width:1.6rem;height:1.6rem;border-radius:50%;background:var(--white);border:3px solid var(--teal);cursor:pointer;box-shadow:0 3px 12px rgba(0,0,0,.18)}
@media (max-width:720px){
.gift-duration-label--desktop{display:none}
.gift-duration-label--mobile{display:block;margin-bottom:.75rem}
.gift-duration-slider-block{display:none!important}
.gift-duration-mobile-block{display:block}
.gift-duration-card{padding:1.15rem .85rem 1rem}
.gift-duration-output{max-width:none}
}
.gift-submit-wrap{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(74,124,130,.1);text-align:center}
.gift-submit-btn{min-width:min(100%,280px);padding-left:2rem;padding-right:2rem}
.gift-status{margin-top:1.15rem;min-height:1.5rem;font-weight:600;color:var(--teal);text-align:center}