:root{color-scheme:light; --paper:#f5f9fb; --ink:#193b4c; --muted:#516c7b; --blue:#246e90; --line:#cadce5; --sand:#eaf2f6; --surface:#fff; --footer:#dfeaf1; --button-bg:#246e90; --button-ink:#fff; --focus-bg:#edf5fa; --error:#9c3030;}
:root[data-theme="dark"]{color-scheme:dark; --paper:#14232b; --ink:#edf4f7; --muted:#b3c7d1; --blue:#8acbe4; --line:#405964; --sand:#1c303b; --surface:#1c303b; --footer:#101d25; --button-bg:#8acbe4; --button-ink:#14232b; --focus-bg:#263f4c; --error:#ffb8b2;}

html { background:var(--paper); color:var(--ink); }
body { background:var(--paper); color:var(--ink); }
::selection { background:var(--blue); color:var(--paper); }
:focus-visible { outline-color:var(--blue); }
.site-header, .site-header.is-scrolled { background:var(--paper); }
.site-header.theme-menu-open { overflow:visible; }
.theme-logo { display:block; }
.theme-brand-row > .theme-logo { width:170px; max-width:calc(100% - 64px); }
.theme-brand-row .theme-logo .logo { width:100%; max-width:100%; }
.about, .approach, .testimonial, .faq-section { border-color:var(--section-line,var(--line)); }
.gallery-toggle { border-color:var(--section-line,var(--line)); }
.site-footer { background:var(--footer); border-color:var(--line); }
.footer-inner, .small { color:var(--muted); }
.image-frame { background:var(--sand); }
.text-link:hover { color:var(--blue); }
.button, .maintenance .row button { background:var(--button-bg); color:var(--button-ink); border-color:var(--button-bg); }
.button:hover, .maintenance .row button:hover { background:var(--button-bg); color:var(--button-ink); filter:brightness(.92); }
.nav-contact { border-color:var(--line); }
#inquiry-form .field input, #inquiry-form .field textarea, #fallback-message,
.maintenance .row input { background:var(--surface); color:var(--ink); border-color:var(--line); }
#inquiry-form .field input:focus, #inquiry-form .field textarea:focus { background:var(--focus-bg); border-color:var(--blue); }
input::placeholder, textarea::placeholder { color:var(--muted); opacity:1; }
@media(min-width:761px) {
 #inquiry-form .field input, #inquiry-form .field textarea { padding-left:14px; padding-right:14px; }
}
.maintenance footer, .maintenance details, body > footer { border-color:var(--line); }
.error { color:var(--error); }
.gallery-open-label { background:var(--button-bg); color:var(--button-ink); }
.story-card a:hover .gallery-open-label, .story-card a:focus-visible .gallery-open-label { background:var(--button-bg); }
.theme-control { position:relative; display:inline-flex; flex:0 0 auto; line-height:1.4; z-index:35; }
.theme-control[hidden], .theme-panel[hidden] { display:none!important; }
.theme-control .theme-toggle { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-height:44px; padding:10px; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink); cursor:pointer; }
.theme-toggle svg { display:block; width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.5; }
.theme-control .theme-panel { position:absolute; top:calc(100% + 8px); right:0; width:190px; padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); box-shadow:0 8px 24px #0003; }
.theme-panel p { margin:4px 8px 8px; font:12px/1.5 Arial,sans-serif; color:var(--muted); }
.theme-control .theme-choice { display:flex; width:100%; min-height:44px; padding:10px 12px; justify-content:space-between; align-items:center; border:0; border-radius:4px; background:transparent; color:var(--ink); font:14px/1.5 Arial,sans-serif; cursor:pointer; }
.theme-choice[aria-pressed="true"] { font-weight:700; background:var(--sand); }
.theme-choice[aria-pressed="true"]::after { content:'✓'; }
.theme-choice:hover { background:var(--sand); }
.header-inner > .theme-control { margin-left:auto; }
.header-inner > .theme-control + .menu-toggle { margin-left:0; }
.theme-brand-row { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:52px; }
.theme-brand-row .logo { margin:0; }
.maintenance .theme-brand-row { grid-column:2; grid-row:1; margin:0; align-self:end; }
.maintenance .theme-brand-row .logo { max-width:calc(100% - 64px); }
@media(max-width:760px) {
 .header-inner { column-gap:12px; }
 .header-inner > .theme-control { order:0; }
 .maintenance .theme-brand-row { grid-column:1; grid-row:1; }
 .theme-brand-row { margin-bottom:42px; }
 .theme-brand-row > .theme-logo { width:145px; }
}
@media print {
 .theme-control { display:none!important; }
 :root[data-theme], :root { color-scheme:light; --paper:#f5f9fb; --ink:#193b4c; --muted:#516c7b; --blue:#246e90; --line:#cadce5; --sand:#eaf2f6; --surface:#fff; --footer:#dfeaf1; --button-bg:#246e90; --button-ink:#fff; --focus-bg:#edf5fa; --error:#9c3030; }
}

:root[data-theme="dark"]{--section-line:#293f49;}

/* Cinematic entry and floating glass: header content keeps its exact geometry. */
.site-header,.site-header.is-scrolled{background:transparent;box-shadow:none;isolation:isolate;--cinema-inset:0px}
.site-header::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--paper);border:1px solid transparent;transition:inset .32s ease,border-radius .32s ease,background-color .32s ease,box-shadow .32s ease,border-color .32s ease}
.site-header.is-scrolled{--cinema-inset:max(12px,calc((100% - 1320px)/2 - 24px))}
.site-header.is-scrolled::before{inset:6px var(--cinema-inset);border-radius:16px;background:rgba(245,249,251,.79);border-color:rgba(25,59,76,.12);box-shadow:0 10px 34px rgba(14,38,51,.09);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%)}
:root[data-theme=dark] .site-header.is-scrolled::before{background:rgba(20,35,43,.81);border-color:rgba(190,220,235,.13);box-shadow:0 10px 34px rgba(0,0,0,.22)}
.site-header .brand,.site-header .brand img{transition:none}
.site-header .reading-progress{left:var(--cinema-inset);width:calc(100% - var(--cinema-inset) - var(--cinema-inset));transition:left .32s ease,width .32s ease,bottom .32s ease,opacity .32s ease}
.site-header.is-scrolled .reading-progress{bottom:6px;opacity:.55}
.site-header:has(#navigation.is-open)::before{inset:0;border-radius:0;background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none}
.hero-v3{overflow:hidden}
.hero-v3 .hero-images{transform:translate3d(0,var(--cinema-image-y,0px),0) scale(var(--cinema-image-scale,1));transform-origin:center}
.hero-v3 .hero-copy{transform:translate3d(0,var(--cinema-copy-y,0px),0);opacity:var(--cinema-copy-opacity,1)}
.hero-v3 .hero-copy:has(:focus-visible){opacity:1!important;transform:none!important}
@media(max-width:760px){.site-header.is-scrolled{--cinema-inset:10px}.site-header.is-scrolled::before{inset:4px var(--cinema-inset);border-radius:12px}.site-header.is-scrolled .reading-progress{bottom:4px}}
@supports not (backdrop-filter:blur(1px)){.site-header.is-scrolled::before{background:var(--paper)}}
@media(prefers-reduced-motion:reduce){.site-header::before,.site-header .reading-progress{transition:none}.hero-v3 .hero-images,.hero-v3 .hero-copy{transform:none!important}.hero-v3 .hero-copy{opacity:1!important}}

/* Mobile navigation retains the original solid, full-width header. */
@media(max-width:1100px){
 .site-header,.site-header.is-scrolled{--cinema-inset:0px;background:var(--paper)}
 .site-header::before,.site-header.is-scrolled::before,:root[data-theme=dark] .site-header.is-scrolled::before{inset:0;border-radius:0;background:var(--paper);border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:none}
 .site-header.is-scrolled .reading-progress{bottom:0;opacity:1}
}
@media(min-width:1101px){.site-header .brand{width:156px;flex-basis:156px}}
.lightbox{margin:0;inset:0;height:100%;height:100dvh;overflow:hidden}
.lightbox figure{margin:0}
.lightbox-stage{position:relative;flex:1;min-height:0;width:100%;overflow:hidden;touch-action:pan-y}
.lightbox .lightbox-stage img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;user-select:none}
.lightbox .lightbox-stage img[hidden]{display:none}
.lightbox-status{position:absolute;bottom:8px;left:55px;right:55px;text-align:center;margin:0;font-size:12px;color:#fff}
.coverage-calculator{margin-top:28px;padding:24px;border:1px solid var(--line);background:var(--surface,var(--paper));border-radius:12px;max-width:430px}
.coverage-calculator h3{font-family:inherit;font-size:17px;line-height:1.4;font-weight:600;letter-spacing:0;margin:0 0 8px}
.coverage-calculator p{font-size:13px;line-height:1.65;margin:10px 0;color:var(--muted)}
.coverage-calculator label{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin:20px 0 4px}
.coverage-calculator input[type=range]{display:block;width:100%;height:44px;padding:0;accent-color:var(--blue);cursor:pointer;background:transparent;border:0}
.coverage-calculator input:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.coverage-calculator .coverage-total{font-family:Georgia,serif;font-size:38px;line-height:1.3;color:var(--ink);margin:12px 0 4px}
.coverage-calculator a{font-size:13px;display:inline-block;padding:10px 0;text-underline-offset:5px}
@media(max-width:760px){.coverage-calculator{max-width:none;padding:20px;margin-top:24px}}

.faq-list details{display:flow-root}
html[data-gallery-transitions] .site-header{view-transition-name:none}
@keyframes gallery-page-out{to{opacity:0}}
@keyframes gallery-page-in{from{opacity:0}to{opacity:1}}
::view-transition-old(root){animation:gallery-page-out .24s ease both}
::view-transition-new(root){animation:gallery-page-in .38s ease both}
::view-transition-old(site-header){animation:none;opacity:0}
::view-transition-new(site-header){animation:none}
::view-transition-group(site-header){animation:none}
@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

#inquiry-form select{box-sizing:border-box;display:block;width:100%;max-width:100%;min-width:0;min-height:46px;padding:10px 14px;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);font:inherit;font-size:16px;line-height:1.4}
#inquiry-form select:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
#inquiry-form .field-help{margin:7px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}
#inquiry-form .field-help:empty{display:none}

/* The native select remains accessible, with a consistently inset decorative chevron. */
#inquiry-form .hours-select{position:relative;color:var(--ink)}
#inquiry-form .hours-select::after{content:'';position:absolute;right:18px;top:50%;width:7px;height:7px;margin-top:-5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);pointer-events:none}
#inquiry-form .hours-select select{-webkit-appearance:none;appearance:none;background:var(--surface);border:0;border-bottom:1px solid var(--line);padding:10px 44px 10px 14px}
#inquiry-form .hours-select select:focus{background:var(--focus-bg);border-color:var(--blue)}
@media(max-width:760px){#inquiry-form .hours-select select{border:1px solid var(--line);min-height:44px;padding:9px 44px 9px 11px}}
@media(forced-colors:active){#inquiry-form .hours-select::after{display:none}#inquiry-form .hours-select select{appearance:auto;-webkit-appearance:auto}}

/* Keep progress clear of the floating header rounded bottom corners. */
@media(min-width:1101px){.site-header.is-scrolled .reading-progress{left:calc(var(--cinema-inset) + 16px);width:calc(100% - var(--cinema-inset) - var(--cinema-inset) - 32px);border-radius:999px}}

/* Translucent glass only behind the compact desktop navigation. */
@media(min-width:1101px){
 .site-header.is-scrolled::before{background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,0) 65%),rgba(245,249,251,.65);border-color:rgba(255,255,255,.6);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);box-shadow:0 10px 34px rgba(14,38,51,.1),inset 0 1px 0 rgba(255,255,255,.55)}
 :root[data-theme=dark] .site-header.is-scrolled::before{background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,0) 65%),rgba(20,35,43,.63);border-color:rgba(190,220,235,.19);box-shadow:0 10px 34px rgba(0,0,0,.23),inset 0 1px 0 rgba(255,255,255,.1)}
 @supports not (backdrop-filter:blur(1px)){.site-header.is-scrolled::before,:root[data-theme=dark] .site-header.is-scrolled::before{background:var(--paper)}}
}
@media(forced-colors:active){.site-header.is-scrolled::before,:root[data-theme=dark] .site-header.is-scrolled::before{background:Canvas;backdrop-filter:none;-webkit-backdrop-filter:none}}

/* One active-section underline; hover must not impersonate another active section. */
.site-header #navigation > a::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.site-header #navigation > a:not([aria-current="location"])::after{transform:scaleX(0)}
.site-header #navigation > a[aria-current="location"]::after{transform:scaleX(1)}
.site-header #navigation > .nav-contact{border-bottom:0}
.site-header #navigation > a:hover{color:var(--blue)}
.site-header .header-direct a::after{content:none}
@media(prefers-reduced-motion:reduce){.site-header #navigation > a::after{transition:none}}

/* Native mobile opacity timeline avoids main-thread scroll animation and image rerasterization. */
@keyframes mobile-hero-fade{from{opacity:1}to{opacity:0}}
@media(max-width:1100px) and (prefers-reduced-motion:no-preference){
 .hero-v3 .hero-images{transform:scale(1.055)}
 .hero-v3 .hero-copy{transform:none;will-change:opacity}
 .hero-v3.native-hero-fade :is(.hero-copy,.hero-foot){animation:mobile-hero-fade auto linear both;animation-timeline:scroll(root block);animation-range:var(--mobile-fade-start,0px) var(--mobile-fade-end,460px)}
}

/* Keep mobile progress on the scroll timeline, including the image-heavy entry. */
@keyframes mobile-page-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:1100px) and (prefers-reduced-motion:no-preference){
 .site-header .reading-progress.native-scroll-progress{animation:mobile-page-progress auto linear both;animation-timeline:scroll(root block);animation-range:normal;will-change:transform;transition:none}
}

/* Unfold glass into the full header without changing logo or navigation geometry. */
@media(min-width:1101px) and (prefers-reduced-motion:no-preference){
 .site-header::before{backdrop-filter:blur(0px) saturate(100%);-webkit-backdrop-filter:blur(0px) saturate(100%);transition:inset .42s cubic-bezier(.22,.61,.36,1),border-radius .42s cubic-bezier(.22,.61,.36,1),background-color .42s ease,box-shadow .42s ease,border-color .42s ease,backdrop-filter .42s ease,-webkit-backdrop-filter .42s ease}
 .site-header .reading-progress{transition:left .42s cubic-bezier(.22,.61,.36,1),width .42s cubic-bezier(.22,.61,.36,1),bottom .42s cubic-bezier(.22,.61,.36,1),opacity .42s ease}
}

/* Optional wedding wishes: native checkboxes with full-label touch targets. */
#inquiry-form .inquiry-options{min-width:0;margin:0 0 24px;padding:0;border:0}
#inquiry-form .inquiry-options legend{padding:0;margin:0 0 10px;color:var(--ink);font-size:14px;font-weight:600;line-height:1.5}
#inquiry-form .inquiry-options legend span{font-weight:400}
#inquiry-form .options-help{font-size:12px;line-height:1.6;color:var(--muted);margin:0 0 10px}
#inquiry-form .inquiry-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#inquiry-form .inquiry-choice{display:flex;align-items:center;min-height:46px;height:100%;padding:10px 12px;margin:0;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-size:13px;line-height:1.4;font-weight:400}
#inquiry-form .inquiry-choice input{flex:0 0 18px;height:18px;min-width:18px;accent-color:var(--blue);appearance:auto;-webkit-appearance:checkbox}
#inquiry-form .inquiry-choice:has(input:checked){border-color:var(--blue);background:var(--focus-bg)}
#inquiry-form .inquiry-choice:focus-within{outline:2px solid var(--blue);outline-offset:2px}
#inquiry-form .inquiry-choice-help{position:relative;min-width:0}
#inquiry-form .inquiry-choice-help .inquiry-choice{padding-right:42px}
#inquiry-form .getting-ready-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:grid;place-items:center;height:28px;min-height:28px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);font:600 13px/1 Arial,sans-serif;cursor:pointer}
#inquiry-form .inquiry-choice-grid+.options-help{margin:10px 0 0}
@media(max-width:380px){#inquiry-form .inquiry-choice{padding:9px;gap:7px;font-size:12px}#inquiry-form .inquiry-choice-help .inquiry-choice{padding-right:38px}}

/* The form keeps one set of enabled fields; only its current step is shown. */
#inquiry-form{scroll-margin-top:12px}
#inquiry-form [hidden]{display:none!important}
#inquiry-form .inquiry-wizard-progress{margin:0 0 28px}
#inquiry-form [data-step-caption]{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--muted)}
#inquiry-form progress{display:block;width:100%;height:5px;margin:0 0 9px;border:0;border-radius:9px;overflow:hidden;appearance:none;background:var(--line);color:var(--blue)}
#inquiry-form progress::-webkit-progress-bar{background:var(--line);border-radius:9px}
#inquiry-form progress::-webkit-progress-value{background:var(--blue);border-radius:9px;transition:width .2s ease}
#inquiry-form progress::-moz-progress-bar{background:var(--blue);border-radius:9px}
#inquiry-form .wizard-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
#inquiry-form .wizard-steps button{min-width:0;min-height:44px;padding:7px 2px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:12px;line-height:1.4;cursor:pointer;text-align:center}
#inquiry-form .wizard-steps button[aria-current=step]{color:var(--blue);font-weight:700}
#inquiry-form .wizard-panel h3{margin:0 0 24px;font-size:25px;line-height:1.2;color:var(--ink)}
#inquiry-form .wizard-panel h3:focus{outline:none}
#inquiry-form .wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
#inquiry-form .wizard-actions .button{display:inline-flex;justify-content:center;align-items:center;gap:20px;min-height:48px;padding:12px 20px;font-size:14px}
#inquiry-form .wizard-actions .wizard-back{background:transparent;color:var(--ink);border:1px solid var(--line)}
#inquiry-form .wizard-next,#inquiry-form .wizard-actions button[type=submit]{margin-left:auto}
#inquiry-form .wizard-actions button:disabled{cursor:not-allowed}
#inquiry-form .wizard-actions button[aria-busy=true]{cursor:wait}
#inquiry-form .inquiry-choice input[type=radio]{appearance:auto;-webkit-appearance:radio;border-radius:50%}
#inquiry-form .getting-ready-toggle{width:32px;height:32px}
#inquiry-form .getting-ready-dialog{position:fixed;inset:0;width:calc(100% - 32px);max-width:440px;max-height:80vh;max-height:80dvh;margin:auto;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 20px 70px #0005;overflow:auto;overscroll-behavior:contain}
#inquiry-form .getting-ready-dialog::backdrop{background:rgb(7 18 24 / .65)}
#inquiry-form .getting-ready-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin:0 0 16px}
#inquiry-form .getting-ready-dialog-head h3{margin:6px 0 0;font-size:23px;line-height:1.2}
#inquiry-form .getting-ready-dialog-head button{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font:24px/1 Arial,sans-serif;cursor:pointer}
#inquiry-form .getting-ready-copy{font-size:14px;line-height:1.7}
#inquiry-form .getting-ready-copy p{margin:10px 0;font-size:14px;line-height:1.7;color:var(--muted)}
#inquiry-form .getting-ready-dialog>.button{margin-top:14px;min-height:44px}
@media(min-width:761px){}
@media(max-width:760px){#inquiry-form .wizard-panel h3{font-size:23px;margin-bottom:20px}#inquiry-form .wizard-actions .button{padding:11px 14px;font-size:13px}#inquiry-form .wizard-actions button[type=submit]{flex:1}#inquiry-form .getting-ready-dialog{padding:20px}}
@media(max-width:380px){#inquiry-form .wizard-steps button{font-size:11px}#inquiry-form .wizard-actions{gap:8px}#inquiry-form .wizard-actions .button{padding:11px 10px}}
@media(prefers-reduced-motion:reduce){#inquiry-form progress::-webkit-progress-value{transition:none}}

/* Keep the shared stage as tall as its longest panel, without moving the page. */
#inquiry-form.is-wizard .wizard-stage{align-items:start}
#inquiry-form.is-wizard .wizard-stage>.wizard-panel{grid-area:1/1;min-width:0}
#inquiry-form.is-wizard .wizard-stage>.wizard-panel[hidden]{visibility:hidden;pointer-events:none}
.coverage-calculator .coverage-limits{display:flex;justify-content:space-between;gap:16px;margin:0 0 10px;font-size:11px;line-height:1.5;color:var(--muted)}
/* Native radio/checkbox semantics, with a quieter selected-card appearance. */
#inquiry-form .inquiry-choice{position:relative;padding-left:34px;gap:0;border-radius:6px;transition:background-color .15s,border-color .15s}
#inquiry-form .inquiry-choice input{position:absolute;opacity:0;width:1px;height:1px;min-width:1px;min-height:1px;margin:0;overflow:hidden}
#inquiry-form .inquiry-choice::after{content:'';position:absolute;left:13px;top:50%;width:5px;height:10px;border:solid var(--blue);border-width:0 2px 2px 0;transform:translateY(-65%) rotate(45deg);opacity:0}
#inquiry-form .inquiry-choice:has(input:checked)::after{opacity:1}
@media(max-width:760px){.contact #inquiry-form{border-top:1px solid var(--section-line,var(--line));padding-top:26px}}
@media(max-width:380px){#inquiry-form .inquiry-choice{padding-left:32px}}
@media(prefers-reduced-motion:reduce){#inquiry-form .inquiry-choice{transition:none}}
@media(forced-colors:active){#inquiry-form .inquiry-choice{gap:9px;padding-left:12px}#inquiry-form .inquiry-choice input{position:static;opacity:1;width:18px;height:18px;min-width:18px;min-height:18px}#inquiry-form .inquiry-choice::after{display:none}}

/* Success replaces the complete wizard, including its reserved panel height. */
#inquiry-form.is-complete>.inquiry-wizard-progress,
#inquiry-form.is-complete>.wizard-stage,
#inquiry-form.is-complete>.wizard-actions,
#inquiry-form.is-complete>.contact-alternative{display:none!important}
#inquiry-form .inquiry-success{margin:0;padding:26px;border-radius:10px;background:var(--surface);color:var(--ink);scroll-margin-top:12px}
#inquiry-form .inquiry-success:focus{outline:none}
#inquiry-form .inquiry-success h3{margin:0 0 14px;}
#inquiry-form .inquiry-success p{margin:12px 0 0;font-size:14px;line-height:1.7}
#inquiry-form .inquiry-success .success-eyebrow{margin:0 0 10px;color:var(--blue);font-size:11px;line-height:1.5;letter-spacing:1.2px;text-transform:uppercase}
#inquiry-form .success-estimate{margin:20px 0;padding:16px 0;}
#inquiry-form .success-estimate p:first-child{margin-top:0}
#inquiry-form .inquiry-success .success-price{margin-top:7px;font-weight:600;}
#inquiry-form .inquiry-success .success-fine{font-size:12px;line-height:1.65;color:var(--muted)}
@media(max-width:760px){#inquiry-form .inquiry-success{padding:20px}#inquiry-form .inquiry-success h3{font-size:24px}#inquiry-form .inquiry-success .success-price{font-size:22px}}

/* On phones the heading already names the step: keep only a quiet counter and bar. */
#inquiry-form .wizard-compact-count{display:none}
@media(max-width:760px){
 #inquiry-form .inquiry-wizard-progress{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:14px;margin-bottom:20px}
 #inquiry-form .wizard-compact-count{display:block;color:var(--muted);font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums}
 #inquiry-form .inquiry-wizard-progress [data-step-caption]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
 #inquiry-form .inquiry-wizard-progress progress{height:3px;margin:0}
 #inquiry-form .inquiry-wizard-progress .wizard-steps{display:none}
}

/* Transfer is a local form update, without navigation or scrolling. */
.coverage-calculator .coverage-transfer{display:inline-block;min-height:44px;padding:10px 0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:13px;line-height:1.65;text-align:left;text-decoration:underline;text-underline-offset:5px;cursor:pointer}
.coverage-calculator .coverage-transfer:hover{color:var(--blue)}

/* Guidance stays inside the duration step; the chosen hours change only by explicit action. */
#inquiry-form .coverage-planning{margin:0 0 20px}
#inquiry-form [data-coverage-recommendation]{margin:0 0 10px;font-size:14px;line-height:1.6;color:var(--ink)}
#inquiry-form .planning-note{margin:0 0 16px;font-size:12px;line-height:1.65;color:var(--muted)}
#inquiry-form .coverage-times{margin:16px 0;padding:12px 0;border-block:1px solid var(--line)}
#inquiry-form .coverage-times>summary{font-size:13px;line-height:1.6;cursor:pointer;color:var(--blue)}
#inquiry-form .coverage-times .form-row{margin-top:16px}
#inquiry-form .coverage-times .inquiry-choice{font-size:12px}
#inquiry-form .coverage-conflict{margin:16px 0;padding:14px;border:1px solid var(--blue);border-radius:8px;background:var(--focus-bg);color:var(--ink)}
#inquiry-form .coverage-conflict:focus{outline:2px solid var(--blue);outline-offset:2px}
#inquiry-form .coverage-conflict p{margin:0 0 12px;font-size:13px;line-height:1.6}
#inquiry-form .planning-actions{display:flex;flex-wrap:wrap;gap:8px}
#inquiry-form .planning-actions button{min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font:inherit;font-size:12px;cursor:pointer}
#inquiry-form .planning-actions [data-use-recommended]{border-color:var(--button-bg);background:var(--button-bg);color:var(--button-ink)}
#inquiry-form .coverage-review{margin:4px 0 18px;padding:12px 14px;border-left:2px solid var(--blue);background:var(--surface)}
#inquiry-form .coverage-review p{margin:0;font-size:13px;line-height:1.6}
#inquiry-form .coverage-review [data-review-price]{margin-top:4px;font-weight:600;color:var(--blue)}
#inquiry-form .coverage-review [data-review-edit]{display:inline-block;min-height:36px;margin-top:5px;padding:6px 0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
#inquiry-form .inquiry-choice small{display:block;margin-top:3px;font-size:11px;line-height:1.4;color:var(--muted);font-weight:400}
@media(max-width:760px){#inquiry-form .coverage-times .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}

/* Mobile actions remain reachable within the form's own scroll range. */
@media(max-width:760px){
 #inquiry-form.is-wizard .wizard-actions{position:sticky;z-index:8;padding:12px 0 max(12px,env(safe-area-inset-bottom,0px));border-top:1px solid var(--section-line,var(--line));background:var(--paper)}
 #inquiry-form .wizard-panel input,#inquiry-form .wizard-panel select,#inquiry-form .wizard-panel textarea,#inquiry-form .coverage-conflict{scroll-margin-bottom:100px}
}

/* At most two concrete ceremony choices; selected choices stay operable. */
#inquiry-form .inquiry-choice:has(input[name="ceremony_types"]:disabled){opacity:.5;cursor:default}

/* Desktop actions follow the active step; mobile keeps its stable sticky layout. */
@media(min-width:761px){
 #inquiry-form{align-self:start}
 #inquiry-form.is-wizard .wizard-stage{display:block;min-height:0}
 #inquiry-form.is-wizard .wizard-stage>.wizard-panel[hidden]{display:none!important}
 #inquiry-form.is-wizard .wizard-actions{margin-top:24px}
}
#inquiry-form .inquiry-success{padding:clamp(24px,3vw,42px);border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:16px;background:linear-gradient(145deg,var(--surface),var(--paper));overflow-wrap:anywhere}
#inquiry-form .success-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}
#inquiry-form .success-heading .success-eyebrow{margin:0;letter-spacing:.1em}
#inquiry-form .success-seal{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:var(--focus-bg);border:1px solid var(--line);color:var(--blue)}
#inquiry-form .success-seal svg{width:28px;height:28px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#inquiry-form .inquiry-success h3{font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,3vw,40px);font-weight:400;letter-spacing:-.03em;line-height:1.15;margin:0 0 16px}
#inquiry-form .success-wishes{margin-top:26px}
#inquiry-form .success-wishes h4{font:600 12px/1.5 Arial,sans-serif;color:var(--muted);margin:0 0 10px}
#inquiry-form .success-wishes ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
#inquiry-form .success-wishes li{border:1px solid var(--line);background:var(--paper);border-radius:20px;padding:7px 12px;font-size:12px;line-height:1.4;color:var(--ink)}
#inquiry-form .success-estimate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px 20px;margin:26px 0;padding:20px 0;border-block:1px solid var(--line)}
#inquiry-form .inquiry-success .success-label{font-size:11px;color:var(--muted);margin:0 0 8px}
#inquiry-form .success-estimate [data-success-duration]{font-size:17px;line-height:1.5;margin:0}
#inquiry-form .inquiry-success .success-price{font-size:clamp(24px,2.5vw,32px);line-height:1.2;margin:0;color:var(--blue);font-variant-numeric:tabular-nums}
#inquiry-form .success-estimate>.success-fine{grid-column:1/-1;margin:0}
#inquiry-form .inquiry-success #inquiry-success-reply{padding-top:6px}
@media(max-width:380px){#inquiry-form .success-estimate{grid-template-columns:minmax(0,1fr)}#inquiry-form .success-heading{gap:9px}}
@media(prefers-reduced-motion:no-preference){#inquiry-form .success-seal path{stroke-dasharray:28;stroke-dashoffset:28;animation:success-check .45s .18s ease forwards}}
@keyframes success-check{to{stroke-dashoffset:0}}

#inquiry-form .contact-preference{margin:0 0 24px;align-self:start}#inquiry-form .contact-preference legend{font-weight:400;margin-bottom:8px}#inquiry-form .contact-preference-row{align-items:start}#inquiry-form .coverage-planning>[data-coverage-recommendation]:not([hidden]){margin:0 0 20px}#inquiry-form .coverage-field:has(#hours-feedback:not(:empty)) #hours-help{display:none}

/* Keep both faces in view when wide desktops crop the shallow, height-capped hero. */
@media(min-width:1101px){.hero-photo[data-hero-slide="0"] img{object-position:56% 5%}}

/* Small viewport height already excludes expanded browser controls; reserve only normal edge spacing. */
@media(max-width:760px){
 .hero-v3{--hero-browser-room:clamp(20px,3svh,32px);min-height:0}
 .hero-v3 .hero-copy{padding-top:24px;padding-bottom:calc(var(--hero-browser-room) + 88px + env(safe-area-inset-bottom,0px));text-shadow:0 2px 14px rgba(0,0,0,.4)}
 .hero-v3 .hero-foot{bottom:calc(var(--hero-browser-room) + env(safe-area-inset-bottom,0px))}
}
@media(max-width:760px) and (orientation:landscape) and (max-height:600px){
 .hero-v3 .hero-copy{align-self:start;padding-top:20px;padding-bottom:100px}
 .hero-v3 .hero-copy h1{font-size:38px}
 .hero-v3 .hero-copy .eyebrow{margin-bottom:10px}
 .hero-v3 .hero-copy .text-link{margin-top:12px}
 .hero-v3 .hero-foot{bottom:24px}
}

/* Balanced confirmation prose, with a readable line length on wide cards. */
#inquiry-form .inquiry-success h3{text-wrap:balance}
#inquiry-form .inquiry-success #inquiry-success-message,#inquiry-form .inquiry-success #inquiry-success-reply,#inquiry-form .inquiry-success>.success-fine{max-width:64ch;text-wrap:pretty}
/* Natural step heights and nearby actions on phones as well as desktop. */
#inquiry-form.is-wizard .wizard-stage{display:block;min-height:0}
#inquiry-form.is-wizard .wizard-stage>.wizard-panel[hidden]{display:none!important}
@media(max-width:760px){
 #inquiry-form .contact-preference-row{grid-template-columns:minmax(0,1fr)!important;gap:0}
 #inquiry-form .contact-preference{width:100%;min-width:0;margin-bottom:22px}
 #inquiry-form .contact-preference .inquiry-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #inquiry-form .contact-preference .inquiry-choice{min-width:0;min-height:48px;padding-top:12px;padding-bottom:12px}
 #inquiry-form .contact-preference .inquiry-choice span{white-space:nowrap}
 #inquiry-form.is-wizard .wizard-actions{position:static;bottom:auto;z-index:auto;margin-top:22px;padding:0;border-top:0;background:transparent}
}
@media(max-width:1100px){
 .hero-v3 .hero-foot:has(:focus-visible){opacity:1!important}
}
#send-status.is-sending-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Avoid the browser tap flash on FAQ triggers; retain focus-visible outlines. */
.faq-list summary,.faq-list summary *{-webkit-tap-highlight-color:transparent}
