/* Colors sampled from the provided logo — swap for exact brand hex if the client has them defined elsewhere. */
:root{--color-navy:#1B2C4D;--color-red:#C8102E;--color-sky-blue:#4E86C6;--color-white:#FFFFFF;--color-charcoal:#1A1A1A;--muted:#586376;--paper:#F4F6F8;--line:#D9DFE7;--max:1280px;--radius:5px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--color-charcoal);font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;background:#fff}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}img,video{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--color-navy);line-height:1.06;letter-spacing:-.045em}h1{font-size:clamp(2.8rem,6.4vw,6.2rem);font-weight:650}h2{font-size:clamp(2.2rem,4vw,4rem);font-weight:600}h3{font-size:1.65rem;font-weight:600}p+p{margin-top:1rem}a,button{touch-action:manipulation}:focus-visible{outline:3px solid var(--color-sky-blue);outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(var(--max),calc(100% - 96px));margin:auto}.section{padding:100px 0}.eyebrow{display:flex;align-items:center;gap:12px;font-size:.75rem;letter-spacing:.17em;font-weight:700;text-transform:uppercase;color:var(--color-navy);margin-bottom:24px}.eyebrow:before{content:"";height:2px;width:25px;background:var(--color-red);flex-shrink:0}.muted{color:var(--muted)}.text-link{display:inline-flex;align-items:center;gap:24px;font-weight:600;border-bottom:1px solid var(--color-navy);padding:10px 0;min-height:44px}.arrow{font-size:1.4rem;line-height:1;font-weight:400}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:52px;padding:14px 24px;border:1px solid transparent;border-radius:var(--radius);background:var(--color-red);color:#fff;font-weight:600;font-size:.9rem;line-height:1.3;transition:background .2s,transform .2s}.button:hover{background:#A80D27;transform:translateY(-2px)}.button-outline{border-color:#BBC5D3;background:transparent;color:var(--color-navy)}.button-outline:hover{background:#E9EEF4}.button-white{background:white;color:var(--color-navy)}.button-white:hover{background:#E9EEF4}.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.skip-link{position:fixed;top:8px;left:12px;padding:12px 20px;background:white;z-index:100;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);z-index:30;border-bottom:1px solid var(--line)}.header-inner{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;align-items:center;gap:14px;flex-shrink:0}.brand-type{font-size:2.35rem;line-height:.9;letter-spacing:-.07em;font-weight:800;color:var(--color-navy);position:relative;padding-right:16px;border-right:1px solid var(--line)}.brand-label{font-size:.69rem;font-weight:700;line-height:1.55;letter-spacing:.15em;color:var(--color-navy)}.brand-image{max-height:70px;width:auto}.site-nav{display:flex;align-items:center;gap:30px}.site-nav>a:not(.button){position:relative;font-size:.9rem;font-weight:500;padding:12px 0}.site-nav>a[aria-current=page]:after{content:"";height:2px;position:absolute;left:0;right:0;bottom:4px;background:var(--color-red)}.menu-toggle{display:none;min-width:48px;min-height:48px;background:none;border:1px solid var(--line);border-radius:4px;color:var(--color-navy)}
.hero{isolation:isolate;position:relative;min-height:690px;height:calc(100svh - 94px);max-height:950px;display:flex;align-items:center;background:var(--color-navy);color:white;overflow:hidden}.hero-media,.hero-video,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}.hero-video{z-index:-2}.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(8,18,34,.83),rgba(8,18,34,.37) 62%,rgba(8,18,34,.05)),linear-gradient(0deg,rgba(8,18,34,.6),transparent 40%)}.hero .eyebrow{color:white}.hero .eyebrow:before{background:#E54B65}.hero h1{color:white;max-width:850px;font-size:clamp(3.25rem,6.3vw,6.6rem);line-height:1.01}.hero h1 span{display:block;font-weight:350}.hero-copy{padding-top:20px;padding-bottom:110px}.hero-description{font-size:1.15rem;max-width:455px;margin:28px 0 34px;color:#ECF0F6;line-height:1.6}.hero .button-outline{color:white;border-color:#BEC7D3;background:rgba(10,20,38,.3)}.hero .button-outline:hover{background:rgba(255,255,255,.15)}.hero-bottom{position:absolute;left:0;right:0;bottom:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-top:1px solid #FFFFFF50;padding-top:22px;color:#F2F4F8;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.hero-bottom strong{display:block;font-size:.85rem;letter-spacing:0;text-transform:none;font-weight:500}.hero-pause{position:absolute;bottom:100px;right:48px;border:1px solid #FFFFFF80;background:#122039B3;color:white;border-radius:4px;min-height:44px;padding:8px 14px}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.intro-copy{font-size:1.1rem;color:var(--muted);max-width:560px}.intro-copy .text-link{margin-top:22px;color:var(--color-navy)}.section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:38px}.section-top h2{max-width:660px}.section-top .eyebrow{margin-bottom:18px}.pale{background:var(--paper)}.placeholder-note{font-size:.83rem;color:var(--muted);padding:14px 18px;background:#EDF1F6;border-left:3px solid var(--color-sky-blue);line-height:1.6}.placeholder-note strong{color:var(--color-navy)}.empty-gallery{min-height:260px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px dashed #9BA8BA;padding:36px;border-radius:5px;background:var(--paper);grid-column:1/-1}.empty-gallery p{max-width:430px;margin-top:12px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-card{margin:0;min-width:0}.gallery-card button{display:block;background:#E4E9EF;border:0;padding:0;width:100%;position:relative;overflow:hidden;border-radius:var(--radius)}.gallery-card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s}.gallery-card button:hover img{transform:scale(1.035)}.gallery-card .expand{position:absolute;right:14px;bottom:14px;border-radius:50%;background:white;color:var(--color-navy);width:36px;height:36px;display:grid;place-items:center;font-size:1.4rem;opacity:0;transition:opacity .2s}.gallery-card button:hover .expand,.gallery-card button:focus-visible .expand{opacity:1}.gallery-card figcaption{display:flex;justify-content:space-between;gap:12px;padding-top:12px;font-size:.82rem;color:var(--muted)}.gallery-card figcaption span:first-child{color:var(--color-navy)}.gallery-card video{width:100%;aspect-ratio:4/3;background:var(--color-navy);object-fit:contain;border-radius:5px}.gallery-preview .gallery-card:first-child{grid-column:span 2;grid-row:span 2}.gallery-preview .gallery-card:first-child img{aspect-ratio:auto;height:100%}.gallery-preview .gallery-card:first-child button{height:calc(100% - 36px)}.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:28px}.package-card{padding:32px;border:1px solid var(--line);background:white;border-radius:5px;display:flex;flex-direction:column}.package-number{color:var(--muted);font-size:.75rem;letter-spacing:.1em;margin-bottom:32px}.package-card h3{font-size:1.6rem}.package-card .description{font-size:.9rem;color:var(--muted);margin:12px 0 24px}.price{font-size:2.75rem;letter-spacing:-.04em;line-height:1.15;font-weight:600;color:var(--color-navy)}.price-note{font-size:.75rem;color:var(--muted);margin:6px 0 24px}.package-card ul{padding:24px 0 24px 20px;margin:0;border-top:1px solid var(--line);font-size:.9rem;flex:1}.package-card li{padding:5px 0 5px 4px}.package-card li::marker{color:var(--color-red)}.package-card .button{margin-top:15px}.trust-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}.trust-item{border-top:1px solid var(--line);padding-top:24px}.trust-item .num{font-size:.75rem;color:var(--color-red);margin-bottom:20px;display:block}.trust-item h3{font-size:1.15rem;letter-spacing:-.025em}.trust-item p{font-size:.875rem;color:var(--muted);margin-top:12px}.tag{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.025em;padding:4px 8px;background:#EDF1F6;color:#45536A;border-radius:3px;margin-top:14px}.cta-band{background:var(--color-navy);color:white;padding:76px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta-band h2{color:white;font-size:clamp(2.3rem,4.5vw,4.6rem)}.cta-band p{margin-top:18px;color:#DAE2ED}.cta-band .eyebrow{color:#DAE2ED}.site-footer{padding:55px 0 24px;background:#F8F9FB}.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:60px;padding-bottom:50px}.footer-heading{font-size:.75rem;letter-spacing:.12em;font-weight:700;text-transform:uppercase;color:var(--color-navy);margin-bottom:14px}.footer-top p,.footer-top a:not(.brand){font-size:.85rem;color:var(--muted)}.footer-links{display:flex;gap:16px;flex-wrap:wrap}.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.75rem}.footer-brand p{margin-top:22px}.page-heading{padding:78px 0 58px}.page-heading h1{font-size:clamp(3rem,6vw,5.8rem)}.page-heading p{max-width:640px;color:var(--muted);font-size:1.1rem;margin-top:26px}.breadcrumbs{display:flex;gap:12px;font-size:.8rem;color:var(--muted);margin-bottom:30px}.filters-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;border-block:1px solid var(--line);padding:20px 0;margin-bottom:30px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filter-button{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:4px;padding:9px 20px;min-height:44px;font-size:.875rem}.filter-button[aria-pressed=true]{background:var(--color-navy);color:white}.filter-button:hover:not([aria-pressed=true]){background:var(--paper)}.category-control{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--muted)}.category-control select{padding:10px;border:1px solid var(--line);color:var(--color-navy);background:white;border-radius:4px;max-width:220px}.gallery-count{color:var(--muted);font-size:.8rem;margin-bottom:24px}.gallery-full{padding-bottom:90px}.gallery-full .placeholder-note{margin-top:32px}.lightbox{border:0;padding:0;max-width:none;width:100vw;height:100dvh;max-height:none;background:#0A1322F7;color:white;overflow:hidden}.lightbox::backdrop{background:#0A1322}.lightbox-inner{height:100%;display:grid;grid-template-rows:auto 1fr auto;padding:22px 32px;gap:12px}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.9rem}.lightbox button{min-width:48px;min-height:48px;border:1px solid #FFFFFF60;background:transparent;color:white;border-radius:4px;font-size:1.5rem}.lightbox-stage{min-height:0;display:flex;align-items:center;justify-content:center;position:relative}.lightbox img{max-width:100%;max-height:100%;object-fit:contain}.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:.9rem}.lightbox-controls{display:flex;gap:10px}.about-grid{display:grid;grid-template-columns:.85fr 1fr;gap:100px;align-items:start}.about-portrait{border-radius:5px;width:100%;aspect-ratio:4/5;object-fit:cover}.about-copy h2{margin:18px 0 28px}.about-copy p{color:var(--muted)}.about-copy blockquote{border-left:3px solid var(--color-red);margin:36px 0;padding-left:24px;font-size:1.6rem;color:var(--color-navy);line-height:1.4;letter-spacing:-.025em}.about-copy .placeholder-note{margin-top:24px}.booking-grid{display:grid;grid-template-columns:.85fr 1fr;gap:100px}.booking-intro p{color:var(--muted);margin-top:24px}.booking-intro .placeholder-note{margin-top:32px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field-full{grid-column:1/-1}.field label{font-size:.875rem;font-weight:600;color:var(--color-navy)}.field input,.field select,.field textarea{width:100%;border:1px solid #A4AFBE;border-radius:4px;background:white;padding:12px 14px;min-height:48px;color:var(--color-charcoal)}.field textarea{resize:vertical;min-height:140px}.form-note{font-size:.8rem;color:var(--muted)}.form-status{font-size:.9rem;color:#A30D28}.success-panel{text-align:center;max-width:700px;margin:auto;padding:95px 0 120px}.success-panel .eyebrow{justify-content:center}.success-panel h1{font-size:clamp(3rem,5vw,5rem)}.success-panel p{color:var(--muted);margin:26px auto 32px;max-width:520px}.success-panel .actions{justify-content:center}.page-end-note{padding-top:30px;color:var(--muted);font-size:.8rem}
@media(min-width:1600px){.hero-copy{padding-bottom:130px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.site-nav{gap:20px}.brand-label{font-size:.6rem}.intro-grid,.about-grid,.booking-grid{gap:50px}.package-card{padding:25px}.trust-grid{gap:22px}.hero{min-height:660px}.hero h1{font-size:5rem}.footer-top{gap:32px}}
@media(max-width:800px){.header-inner{min-height:80px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:white;box-shadow:0 12px 18px #1B2C4D12;padding:24px 32px;align-items:stretch;gap:8px;border-bottom:1px solid var(--line)}.site-nav.is-open{display:flex;flex-direction:column}.site-nav>a{padding:12px 0!important}.site-nav>a[aria-current=page]:after{right:auto;width:25px}.site-nav .button{margin-top:10px}.hero{height:740px;min-height:0}.hero h1{font-size:4.6rem}.hero-copy{padding-bottom:120px}.intro-grid{grid-template-columns:1fr;gap:32px}.intro-copy{max-width:620px}.section{padding:72px 0}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.gallery-preview .gallery-card:first-child{grid-column:span 2;grid-row:auto}.gallery-preview .gallery-card:first-child img{aspect-ratio:16/10;height:auto}.gallery-preview .gallery-card:first-child button{height:auto}.package-grid{grid-template-columns:1fr;gap:20px}.package-card{padding:32px;display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.package-number{grid-column:1/-1;margin-bottom:20px}.package-card h3,.package-card .description,.package-card .price,.package-card .price-note{grid-column:1}.package-card ul{grid-column:2;grid-row:2/6;border-top:0;border-left:1px solid var(--line);padding:0 0 0 32px}.package-card .button{grid-column:1/-1}.trust-grid{grid-template-columns:1fr 1fr;gap:36px}.cta-inner{align-items:flex-start;flex-direction:column;gap:30px}.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.about-grid{gap:40px;grid-template-columns:.8fr 1fr}.about-copy h2{font-size:2.3rem}.booking-grid{grid-template-columns:1fr;gap:40px}.page-heading{padding:60px 0 44px}.hero-bottom{font-size:.7rem}.hero-pause{right:32px}}
@media(max-width:540px){.wrap{width:calc(100% - 40px)}.header-inner{min-height:76px}.brand-type{font-size:2rem}.brand-label{font-size:.58rem}.brand-image{max-height:56px}.hero{height:720px;max-height:none}.hero h1{font-size:clamp(3rem,12.6vw,4.4rem)}.hero-copy{padding-bottom:130px;padding-top:25px}.hero-description{font-size:1rem;margin:25px 0 28px;max-width:320px}.hero .eyebrow{font-size:.66rem;letter-spacing:.13em;margin-bottom:24px}.hero .actions{align-items:stretch;gap:12px}.hero .button{padding:13px 17px;gap:14px;font-size:.83rem}.hero-bottom{bottom:24px;align-items:start;gap:12px;letter-spacing:.02em}.hero-bottom>div:last-child{text-align:right;max-width:140px}.hero-bottom strong{font-size:.75rem}.hero-pause{right:20px;bottom:110px}.section{padding:58px 0}.section-top{display:block;margin-bottom:28px}.section-top .text-link{margin-top:18px;font-size:.9rem}.eyebrow{font-size:.69rem;margin-bottom:18px}.intro-copy{font-size:1rem}.gallery-grid{gap:24px 14px}.gallery-preview .gallery-card:first-child{grid-column:span 2}.gallery-card figcaption{font-size:.75rem;display:block}.gallery-card figcaption span{display:block}.gallery-card .expand{display:none}.gallery-card img{aspect-ratio:1}.package-card{display:flex;padding:28px}.package-card ul{border-left:0;border-top:1px solid var(--line);padding:22px 0 22px 20px}.package-number{margin-bottom:25px}.trust-grid{gap:30px 20px}.trust-item h3{font-size:1.05rem}.trust-item p{font-size:.83rem}.cta-band{padding:58px 0}.footer-top{grid-template-columns:1fr;gap:30px;padding-bottom:32px}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column;gap:8px}.site-footer{padding-top:40px}.page-heading{padding:44px 0 34px}.page-heading p{font-size:1rem;margin-top:22px}.filters-bar{gap:16px;padding:14px 0}.filter-button{padding:10px 18px}.category-control{width:100%;justify-content:space-between}.category-control select{max-width:200px}.about-grid{grid-template-columns:1fr;gap:32px}.about-portrait{max-height:460px}.contact-form{grid-template-columns:1fr}.field-full{grid-column:auto}.lightbox-inner{padding:14px 16px}.lightbox-bottom{align-items:flex-start}.lightbox-controls{flex-shrink:0}.lightbox button{min-width:44px;min-height:44px}.success-panel{padding:65px 0 90px}.gallery-full{padding-bottom:58px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover{transform:none}.gallery-card button:hover img{transform:none}}

/* Supplied CTM badge; accompanying type remains readable at small sizes. */
.brand{gap:12px}.brand-image{width:74px;height:74px;max-height:none;object-fit:contain}.brand-wordmark{font-size:.78rem;font-weight:750;letter-spacing:.055em;line-height:1.45;color:var(--color-navy)}.brand-wordmark>span{display:block;font-size:.58rem;letter-spacing:.18em;font-weight:500;margin-top:3px}.footer-brand .brand-image{width:92px;height:92px}.footer-brand .brand-wordmark{font-size:.83rem}.footer-brand .brand-wordmark>span{font-size:.62rem}
@media(max-width:1050px) and (min-width:801px){.brand-wordmark{font-size:.67rem}.brand-wordmark>span{font-size:.52rem}.site-nav{gap:18px}.site-nav .button{padding:12px 17px}}
@media(max-width:540px){.brand{gap:8px}.brand-image{width:59px;height:59px}.brand-wordmark{font-size:.61rem;letter-spacing:.025em}.brand-wordmark>span{font-size:.5rem;letter-spacing:.12em}.footer-brand .brand-image{width:85px;height:85px}.footer-brand .brand-wordmark{font-size:.76rem}.footer-brand .brand-wordmark>span{font-size:.57rem}}
/* Keep small captions legible without making the interface busier. */
.eyebrow,.tag,.brand-label,.package-number,.price-note,.footer-heading,.hero-bottom{font-size:.75rem}
.brand-wordmark{font-size:.875rem}.brand-wordmark>span{font-size:.75rem;letter-spacing:.1em}
@media(max-width:1050px) and (min-width:801px){.brand-wordmark{font-size:.75rem}.brand-wordmark>span{font-size:.75rem;letter-spacing:0}.header-inner{gap:18px}.site-nav{gap:15px}}
@media(max-width:540px){.brand-wordmark{font-size:.75rem;letter-spacing:0}.brand-wordmark>span{font-size:.75rem;letter-spacing:.015em}.hero .eyebrow{font-size:.75rem;letter-spacing:.06em}.hero-bottom{font-size:.75rem}.footer-brand .brand-wordmark{font-size:.875rem}.footer-brand .brand-wordmark>span{font-size:.75rem;letter-spacing:.04em}}
/* Allow content to grow when visitors enlarge text. */
.hero{height:auto;min-height:max(690px,calc(100svh - 94px));max-height:none}.hero-copy{padding-top:100px;padding-bottom:170px}.brand{min-width:0;flex-shrink:1}.brand-image{flex-shrink:0}.brand-wordmark{min-width:0;overflow-wrap:anywhere}
@media(max-width:800px){.hero{min-height:740px}.hero-copy{padding-top:80px;padding-bottom:170px}}
@media(max-width:540px){.hero{min-height:720px}.hero-copy{padding-top:70px;padding-bottom:155px}.gallery-card:has(video){grid-column:1/-1}.gallery-card video{aspect-ratio:16/9}}
/* Booking addition: preserve the existing page layout and brand. */
.booking-timezone{display:block;margin-top:12px;color:var(--color-navy);font-weight:600}.booking-disclosure{font-size:.875rem!important}.booking-form .optional{font-size:.75rem;font-weight:400;color:var(--muted)}.booking-form select{min-height:52px}.booking-form .field-help{font-size:.75rem;color:var(--muted);margin:0}.booking-form .field-error{font-size:.875rem;color:#A30D28;margin:0}.booking-form [aria-invalid=true]{border:2px solid #A30D28}.booking-errors{padding:22px;border:1px solid #C8102E;border-left:4px solid #C8102E;border-radius:4px;background:#FFF8F9}.booking-errors h3{font-size:1.2rem;letter-spacing:-.02em;margin-bottom:12px}.booking-errors p,.booking-errors li{font-size:.875rem}.booking-errors ul{margin-bottom:0;padding-left:20px}.booking-errors a{text-decoration:underline;text-underline-offset:3px}.booking-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.booking-form .button:disabled{opacity:.65;cursor:wait;transform:none}.booking-success{border:1px solid var(--line);border-top:4px solid var(--color-sky-blue);border-radius:5px;padding:36px;background:var(--paper)}.booking-success h3{font-size:2rem;margin-bottom:20px}.booking-success>p{color:var(--muted)}.booking-success dl{margin:26px 0;padding:22px 0;border-block:1px solid var(--line)}.booking-success dt{font-size:.75rem;font-weight:600;color:var(--muted);margin-top:14px}.booking-success dt:first-child{margin-top:0}.booking-success dd{margin:4px 0 0;color:var(--color-navy);font-weight:600}.booking-reference{font-size:.875rem;color:var(--color-navy)!important;font-weight:600;margin:18px 0}.booking-form textarea{min-height:115px}.booking-form input[type=date]{min-width:0;max-width:100%;appearance:none;-webkit-appearance:none}
@media(max-width:540px){.booking-success{padding:24px}.booking-form .field{gap:6px}.booking-intro h2{font-size:2.5rem}}
.availability-retry{background:none;color:var(--color-navy);border:0;padding:8px 0;text-align:left;font-size:.875rem;text-decoration:underline;text-underline-offset:3px;min-height:44px}.booking-form select:disabled{color:var(--muted);background:var(--paper);opacity:1}

#booking-success, #booking-errors { scroll-margin-top: 110px; }

/* Four time-based packages; preserve readable cards at every breakpoint. */
.package-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.package-card{padding:26px}.package-card .price{font-size:clamp(2rem,2.6vw,2.75rem)}.trust-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-hours{display:block;margin:12px 0;font-weight:600;color:var(--color-navy)}.about-copy a{overflow-wrap:anywhere}.footer-top a{overflow-wrap:anywhere}
@media(max-width:1100px){.package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.package-card{display:flex;padding:28px}.package-card ul{border-left:0;border-top:1px solid var(--line);padding:22px 0 22px 20px}.package-card .price{font-size:2.4rem}}
@media(max-width:600px){.package-grid{grid-template-columns:1fr}.trust-grid{grid-template-columns:1fr}.package-card{padding:28px}}

/* Address autocomplete (js/address-autocomplete.js) */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.address-combobox{position:relative}
.address-combobox input{scroll-margin-top:110px}
.address-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;display:flex;flex-direction:column;background:white;border:1px solid #A4AFBE;border-radius:4px;box-shadow:0 14px 28px #1B2C4D29;overflow:hidden}
.address-suggestions[hidden]{display:none}
.address-suggestions ul{list-style:none;margin:0;padding:4px 0;overflow-y:auto;overscroll-behavior:contain;flex:1 1 auto;min-height:0}
.address-suggestions li{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:52px;padding:10px 14px;cursor:pointer;line-height:1.3;-webkit-tap-highlight-color:transparent}
.address-suggestions li+li{border-top:1px solid var(--line)}
.address-suggestions li:hover,.address-suggestions li[aria-selected=true]{background:var(--paper)}
.address-main{font-weight:600;color:var(--color-navy)}
.address-secondary{font-size:.8125rem;color:var(--muted)}
.address-attribution{flex:none;margin:0;padding:6px 14px;border-top:1px solid var(--line);text-align:right;font-family:Roboto,Arial,sans-serif;font-weight:400;font-size:12px;color:#5E5E5E;background:white}

/* Aaron's approve / decline pages (approve.html, decline.html) */
.request-page{max-width:760px;padding-bottom:90px}
.request-panel:focus{outline:none}
.request-message{margin:0 0 18px;color:var(--color-charcoal)}
.request-message.is-ok{padding:12px 14px;border-left:3px solid var(--color-navy);background:var(--paper)}
.request-message.is-warn{padding:12px 14px;border-left:3px solid #A30D28;background:#FCEFF1;color:#6E0A1C}
.request-summary{display:grid;grid-template-columns:minmax(110px,30%) 1fr;margin:0 0 26px;border:1px solid var(--line);border-radius:var(--radius);background:white}
.request-summary dt,.request-summary dd{margin:0;padding:11px 14px;border-bottom:1px solid var(--line)}
.request-summary dt{font-size:.8125rem;color:var(--muted);background:var(--paper)}
.request-summary dd{overflow-wrap:anywhere;white-space:pre-line}
.request-summary dt:nth-last-of-type(1),.request-summary dd:last-of-type{border-bottom:0}
.request-form{grid-template-columns:1fr;margin-top:6px}
.request-form .optional{font-size:.75rem;font-weight:400;color:var(--muted)}
.request-form .field-help{font-size:.8125rem;color:var(--muted);margin:0}
.request-form .field-error{font-size:.875rem;color:#A30D28;margin:0}
.request-form [aria-invalid=true]{border:2px solid #A30D28}
.request-page .actions{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:540px){.request-summary{grid-template-columns:1fr}.request-summary dt{border-bottom:0;padding-bottom:2px}.request-summary dd{padding-top:2px}.request-page .button{width:100%;justify-content:center}}

/* book.html: the page heading already provides the top spacing */
.section.booking-page{padding-top:0}

/* Booking calendar (js/date-picker.js). Pickable days are dark; only truly unavailable days are grey. */
.date-picker{border:1px solid #A4AFBE;border-radius:4px;background:white;padding:10px 10px 8px;color:var(--color-charcoal)}
.date-picker.is-invalid{border:2px solid #A30D28}
.dp-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.dp-month{margin:0;font-weight:700;color:var(--color-navy);font-size:1rem}
.dp-nav{width:44px;height:44px;border:1px solid var(--line);border-radius:4px;background:white;color:var(--color-navy);font-size:1.5rem;line-height:1;cursor:pointer}
.dp-nav:hover:not(:disabled){background:var(--paper)}
.dp-nav:disabled{color:#B8C0CC;border-color:#EEF1F4;cursor:not-allowed}
.dp-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.dp-grid th{padding:4px 0 6px;font-size:.75rem;font-weight:600;color:var(--muted);text-align:center}
.dp-grid td{padding:2px;text-align:center}
.dp-day{display:block;width:100%;min-height:42px;border:1px solid transparent;border-radius:4px;background:white;color:var(--color-navy);font-weight:600;font-size:.95rem;cursor:pointer;font-variant-numeric:tabular-nums}
.dp-day:hover{background:var(--paper);border-color:#A4AFBE}
.dp-day.is-today{border-color:var(--color-navy)}
.dp-day.is-selected,.dp-day.is-selected:hover{background:var(--color-navy);border-color:var(--color-navy);color:white}
.dp-day.is-unavailable,.dp-day.is-unavailable:hover{background:transparent;border-color:transparent;color:#B8C0CC;font-weight:400;text-decoration:line-through;text-decoration-color:#D5DAE1;cursor:not-allowed}
.dp-day:focus-visible,.dp-nav:focus-visible{outline:3px solid var(--color-sky-blue);outline-offset:1px}
.dp-selected{margin:8px 2px 0}
@media(max-width:540px){.dp-day{min-height:44px}}
.date-picker{max-width:460px}
.dp-month{white-space:nowrap}

/* Aaron's portrait: keep his head in frame when the box is wider than 4:5 (max-height on tablets) */
.about-portrait{object-position:50% 22%}
