/* Beta refinement. Existing photographs, palette and native controls remain the authority. */
:root {
  --motion-quick: 160ms;
  --motion-ui: 220ms;
  --ease-ui: cubic-bezier(.23, 1, .32, 1);
  --space-section: clamp(56px, 7vw, 104px);
  --radius-control: 6px;
  scrollbar-color: var(--muted) var(--paper);
}
body { line-height: 1.7; }
h1, h2, h3, h1 strong, h2 strong, h1 em, h2 em { letter-spacing: -.03em; text-wrap: balance; }
p { text-wrap: pretty; }
input, textarea, select { caret-color: var(--blue); }
input, button, select, textarea, a { -webkit-tap-highlight-color: transparent; }
button:disabled { cursor: not-allowed; }
button[aria-busy=true] { cursor: wait; }
.section { padding-block: var(--space-section); }
.about-copy p, .gallery-story, .gallery-reportage-note, .legal-copy { max-width: 68ch; }
.about-copy h2 { font-size: clamp(36px, 4.2vw, 60px); line-height: 1.12; margin-bottom: 28px; }
.about-copy > p:not(.signature), .contact-copy > p { font-size: 16px; line-height: 1.75; }
.section-heading { margin-bottom: clamp(28px, 4vw, 48px); }
.section-heading .portfolio-note { font-family: var(--sans); font-style: normal; font-size: 15px; }
.section-heading h2, .faq-layout h2, .contact-copy h2 { font-size: clamp(38px, 4.6vw, 64px); line-height: 1.1; }
.hero-v3 .hero-copy h1 { font-size: clamp(56px, 7.4vw, 96px); line-height: 1.02; letter-spacing: -.035em; }
.hero-v3 .hero-copy .hero-location { margin: 24px 0 0; max-width: 38ch; font-size: 16px; line-height: 1.5; letter-spacing: 0; color: #fff; }
.hero-v3 .hero-copy .text-link { margin-top: 20px; font-size: 15px; min-height: 44px; }
.hero-switch button { font-size: 13px; font-variant-numeric: tabular-nums; }
.hero-switch button[aria-busy=true] { opacity: .7; }
.hero-photo[hidden] { display: none; }
.site-header #navigation > a { min-height: 44px; display: inline-flex; align-items: center; }
.site-header #navigation > a.nav-contact { gap: 12px; }
.ui-arrow { width: 18px; height: 18px; flex: 0 0 18px; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.button, .coverage-transfer, .planning-actions button, .gallery-open-label, .testimonial-dots button span {
  transition: transform var(--motion-quick) var(--ease-ui), background-color var(--motion-quick) ease, color var(--motion-quick) ease;
}
.button { border-radius: var(--radius-control); }
.button:hover { filter: none; }
.button:active:not(:disabled), .coverage-transfer:active, .planning-actions button:active { transform: scale(.98); }
.story-card .image-frame { display: block; overflow: hidden; }
.story-card img { filter: none; transition: transform 280ms var(--ease-ui); }
.story-card a:hover img { filter: none; }
.gallery-open-label { left: 18px; right: auto; bottom: 18px; max-width: calc(100% - 36px); gap: 24px; min-height: 46px; padding: 12px 16px; border-radius: 4px; background: var(--paper); color: var(--ink); font-size: 14px; }
.story-card a:focus-visible .gallery-open-label { background: var(--paper); color: var(--ink); }
.card-meta { align-items: baseline; padding-top: 18px; }
.card-meta h3 { font-size: clamp(26px, 2.4vw, 34px); }
.story-card a:focus-visible { outline-offset: 6px; }
.testimonials { border: 0; }
.testimonials blockquote { font-size: clamp(27px, 3.1vw, 42px); line-height: 1.35; letter-spacing: -.025em; }
.testimonials .testimonial-track { max-width: 800px; }
.testimonials figure { max-width: none; }
.testimonials figcaption { font-size: 15px; margin-top: 24px; }
.testimonials .testimonial-dots { gap: 0; margin-top: 18px; }
.testimonials .testimonial-dots button { min-width: 44px; min-height: 44px; display: grid; place-items: center; padding: 8px; }
.testimonials .testimonial-dots button span { display: block; width: 7px; height: 7px; border-radius: 10px; background: var(--muted); opacity: .65; }
.testimonials .testimonial-dots button[aria-current] span { width: 24px; background: var(--blue); opacity: 1; }
.faq-section { border-block: 0; }
.faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; list-style: none; font-size: 16px; line-height: 1.55; padding: 22px 0; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: ''; flex: 0 0 16px; width: 16px; height: 16px; background: linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat, linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat; }
.faq-list details[open] > summary::after { background-size: 12px 1.5px, 0 0; }
.faq-list details > p { padding: 0 28px 24px 0; font-size: 15px; line-height: 1.75; max-width: 70ch; }
.faq-more > summary .faq-more-closed, .faq-more > summary .faq-more-open { flex: 1; }
.faq-more > summary .faq-more-open { display: none; }
.faq-more[open] > summary .faq-more-open { display: inline; }
.faq-more[open] > summary .faq-more-closed { display: none; }
.coverage-calculator { max-width: 460px; margin-top: 32px; padding: clamp(22px, 2.5vw, 32px); border-radius: 12px; }
.coverage-calculator h3 { font-size: 20px; line-height: 1.35; letter-spacing: -.015em; }
.coverage-calculator p, .coverage-calculator .coverage-transfer { font-size: 14px; }
.coverage-calculator label { font-size: 15px; margin-top: 24px; align-items: baseline; }
.coverage-calculator [data-hours] { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.coverage-calculator .coverage-total { margin-block: 18px 12px; font: 600 clamp(34px, 3vw, 42px)/1.2 var(--sans); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.coverage-calculator .coverage-limits { font-size: 12px; }
.coverage-calculator .coverage-transfer { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; text-decoration: none; margin-top: 18px; padding: 14px 0 0; border-top: 1px solid var(--line); }
.coverage-calculator input[type=range] { appearance: none; -webkit-appearance: none; border: 0; background: transparent; width: 100%; height: 44px; margin-inline: 0; }
.coverage-calculator input[type=range]::-webkit-slider-runnable-track { height: 4px; border-radius: 4px; background: linear-gradient(to right,var(--blue) var(--range-fill,35%),var(--line) var(--range-fill,35%)); }
.coverage-calculator input[type=range]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 24px; height: 24px; margin-top: -10px; border-radius: 50%; border: 2px solid var(--paper); background: var(--blue); }
.coverage-calculator input[type=range]::-moz-range-track { height: 4px; border-radius: 4px; background: var(--line); }
.coverage-calculator input[type=range]::-moz-range-progress { height: 4px; background: var(--blue); }
.coverage-calculator input[type=range]::-moz-range-thumb { width: 20px; height: 20px; border: 2px solid var(--paper); border-radius: 50%; background: var(--blue); }
.contact { gap: clamp(36px, 6vw, 88px); padding-block: var(--space-section); }
.contact-copy h2 { margin-bottom: 28px; }
.contact-copy > p:not(.eyebrow) { max-width: 40ch; }
.contact-copy > .booking-note { font-size: 14px; }
#inquiry-form .wizard-panel h3 { font-size: clamp(26px, 2.5vw, 32px); margin-bottom: 26px; }
#inquiry-form .field label, #inquiry-form .inquiry-options legend { font-size: 15px; margin-bottom: 8px; }
#inquiry-form .field input, #inquiry-form .field textarea, #inquiry-form .hours-select select { border: 1px solid var(--line); border-radius: var(--radius-control); min-height: 50px; padding: 13px 14px; font-size: 16px; }
#inquiry-form input[type=date] { height: 50px; }
#inquiry-form .field input::placeholder, #inquiry-form .field textarea::placeholder { font-size: 16px; }
#inquiry-form .field input:focus, #inquiry-form .field textarea:focus, #inquiry-form .hours-select select:focus { outline: 2px solid var(--blue); outline-offset: 2px; }
#inquiry-form .hours-select select { padding-right: 44px; }
#inquiry-form .field-help, #inquiry-form .options-help, #inquiry-form .form-note, #inquiry-form .contact-alternative { font-size: 14px; line-height: 1.65; }
#inquiry-form .inquiry-choice { min-height: 52px; padding-block: 13px; font-size: 15px; border-radius: var(--radius-control); }
#inquiry-form .inquiry-choice:focus-within { outline: none; }
#inquiry-form .inquiry-choice:has(:focus-visible) { outline: 2px solid var(--blue); outline-offset: 3px; }
#inquiry-form .inquiry-choice small { font-size: 13px; }
#inquiry-form .getting-ready-toggle { width: 40px; height: 40px; min-height: 40px; right: 4px; border: 0; background: transparent; font-size: 16px; }
#inquiry-form .getting-ready-dialog-head button { width: 44px; height: 44px; flex-basis: 44px; }
#inquiry-form .coverage-review { border-left: 0; border-block: 1px solid var(--line); background: transparent; padding: 18px 0; }
#inquiry-form .coverage-review p { font-size: 15px; }
#inquiry-form .coverage-review [data-review-edit], #inquiry-form .planning-actions button { font-size: 14px; min-height: 44px; }
#inquiry-form .wizard-actions { margin-top: 28px; }
#inquiry-form .wizard-actions .button { font-size: 15px; min-height: 50px; }
#inquiry-form .inquiry-wizard-progress { margin-bottom: 30px; }
#inquiry-form .wizard-steps button { font-size: 14px; }
#inquiry-form .inquiry-success { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
#inquiry-form .success-heading .success-eyebrow { font-size: 14px; text-transform: none; letter-spacing: 0; }
#inquiry-form .inquiry-success p, #inquiry-form .inquiry-success .success-fine { font-size: 14px; }
#inquiry-form .inquiry-success .success-price { font-size: 36px; }
.draft-discard { min-height: 44px; font-size: 14px; }
.gallery-intro { padding-block: 40px 64px; }
.gallery-intro h1 { font-size: clamp(40px, 5.5vw, 76px); line-height: 1.08; }
.gallery-intro .gallery-story { font-size: 16px; line-height: 1.75; }
.gallery-flow { gap: clamp(24px, 5vw, 64px); }
.gallery-shot a:focus-visible { outline-offset: 5px; }
.gallery-end h2 { font-size: clamp(36px, 4vw, 56px); }
.day-scene h3 { font-size: clamp(58px, 7vw, 96px); letter-spacing: -.035em; }
.day-scene .day-scene-number { font-size: 14px; letter-spacing: .02em; text-transform: none; margin: 0 0 18px; }
.day-scene-number span { border: 0; padding-left: 0; }
.day-story-scroll { font-size: 13px; }
.legal-page h1 { font-size: clamp(38px, 5vw, 64px); }
.footer-inner { gap: 24px; }
.footer-inner nav { gap: 24px; flex-wrap: wrap; }
.footer-inner nav a, .footer-inner .small { font-size: 14px; }
.lightbox button { min-width: 48px; min-height: 48px; }
.lightbox button:focus-visible { outline-color: #fff; }
.lightbox-caption, .lightbox figcaption { max-width: 65ch; line-height: 1.6; }
@media (hover:hover) and (pointer:fine) {
  .button:hover:not(:disabled) { background: var(--ink); border-color: var(--ink); color: var(--paper); }
  .story-card a:hover img { transform: scale(1.018); }
  .story-card a:hover .gallery-open-label { background: var(--paper); color: var(--ink); transform: translateY(-3px); }
  .faq-list summary:hover { color: var(--blue); }
}
@media (max-width:1100px) {
  .hero-v3 .hero-copy h1 { font-size: clamp(52px, 8vw, 86px); }
  .about-copy h2 { font-size: clamp(36px, 5vw, 52px); }
}
@media (max-width:760px) {
  .hero-v3 .hero-copy h1 { font-size: clamp(44px, 12vw, 62px); }
  .hero-v3 .hero-copy .hero-location { font-size: 14px; max-width: 30ch; margin-top: 14px; }
  .hero-v3 .hero-copy .text-link { margin-top: 14px; }
  .about { gap: 28px; }
  .about-copy h2 { margin-bottom: 22px; }
  .about-copy p { font-size: 16px; }
  .section-heading { align-items: start; gap: 22px; }
  .section-heading .portfolio-note { font-size: 14px; }
  .gallery-open-label { left: 14px; bottom: 14px; max-width: calc(100% - 28px); }
  .card-meta { padding-top: 14px; }
  .coverage-calculator { max-width: none; margin-top: 26px; }
  .faq-list { margin-top: 12px; }
  .faq-list summary { font-size: 16px; padding-block: 19px; gap: 20px; }
  .faq-list details > p { padding-right: 12px; font-size: 15px; }
  .contact { gap: 28px; }
  .contact-copy h2 { font-size: 40px; margin-bottom: 18px; }
  #inquiry-form .inquiry-wizard-progress { margin-bottom: 22px; }
  #inquiry-form .wizard-actions .button { padding: 12px 16px; font-size: 15px; }
  #inquiry-form .wizard-actions button[type=submit] { gap: 10px; font-size: 14px; }
  #inquiry-form .inquiry-choice { font-size: 14px; }
  .gallery-intro { padding-bottom: 40px; }
  .gallery-intro .text-link { margin-bottom: 32px; font-size: 14px; }
  .gallery-intro .gallery-location, .gallery-intro .gallery-date { font-size: 14px; }
}
@media (max-width:760px) and (orientation:landscape) and (max-height:600px) {
  .hero-v3 .hero-copy h1 { font-size: 38px; }
  .hero-v3 .hero-copy .hero-location { margin-top: 10px; }
}
@media (prefers-reduced-motion:reduce) {
  .button:active:not(:disabled), .coverage-transfer:active, .planning-actions button:active, .story-card a:hover img, .story-card a:hover .gallery-open-label { transform: none; }
}
html.keyboard-input .button, html.keyboard-input .gallery-open-label, html.keyboard-input .story-card img { transition: none; }
html.keyboard-input .button:active { transform: none; }
@media (forced-colors:active) {
  .faq-list summary::after { background: none; content: '+'; }
  .faq-list details[open] > summary::after { content: '−'; }
  .coverage-calculator input[type=range] { appearance: auto; }
}

/* Compact inquiry review with explicit links back to the relevant step. */
#inquiry-form .inquiry-review{border-top:1px solid var(--line);margin-top:24px}
#inquiry-form .inquiry-review summary{cursor:pointer;padding:16px 0;color:var(--blue);font-size:15px}
#inquiry-form .inquiry-review dl{margin:0 0 20px}
#inquiry-form .inquiry-review dl>div{display:grid;grid-template-columns:110px 1fr auto;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
#inquiry-form .inquiry-review dt{font-weight:700}#inquiry-form .inquiry-review dd{margin:0;overflow-wrap:anywhere}
#inquiry-form .inquiry-review button{color:var(--blue);text-decoration:underline;min-height:44px;padding:8px 4px;border:0;background:none;font:inherit;cursor:pointer}
.gallery-end .gallery-inquiry{margin-bottom:20px}.gallery-end .gallery-inquiry+.button{display:table;margin:0 auto 24px}
@media(max-width:760px){#inquiry-form .inquiry-review dl>div{grid-template-columns:1fr auto;gap:2px 12px}#inquiry-form .inquiry-review dt{grid-column:1}#inquiry-form .inquiry-review dd{grid-column:1}#inquiry-form .inquiry-review button{grid-column:2;grid-row:span 2}}

#inquiry-form .inquiry-review dl>div{grid-template-columns:110px 1fr}#inquiry-form .inquiry-review dd{display:flex;align-items:baseline;justify-content:space-between;gap:12px}#inquiry-form .inquiry-review dd button{flex:none}@media(max-width:760px){#inquiry-form .inquiry-review dl>div{grid-template-columns:1fr}}

/* Beta refinement: preserve the editorial identity; make controls behave coherently. */
:root{--motion-press:120ms;--motion-panel:240ms;--ease-settle:cubic-bezier(.2,.8,.2,1)}
:where(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--blue);outline-offset:4px}
button:disabled{cursor:default;opacity:.55}
.hero-switch button:focus-visible,.hero-copy a:focus-visible{outline-color:#fff}
.hero-switch button[aria-busy=true]{opacity:1}
.hero-switch button[aria-busy=true]::after{content:'';position:absolute;inset:auto 25% -6px;height:2px;background:currentColor;animation:pending-photo 900ms ease-in-out infinite alternate}
.hero-switch button{position:relative}
.hero-feedback{position:absolute;right:0;bottom:100%;font:400 .8125rem/1.4 var(--sans);color:#fff;max-width:27ch;text-align:right}
.hero-feedback:empty{display:none}
@keyframes pending-photo{from{opacity:.3;transform:scaleX(.35)}to{opacity:1;transform:scaleX(1)}}
.theme-menu{transform-origin:top right}
.theme-option,.theme-toggle,.menu-toggle,.lightbox button,.testimonial-dots button{transition:background-color var(--motion-press),transform var(--motion-press) var(--ease-settle)}
.theme-toggle:active,.menu-toggle:active,.lightbox button:active{transform:scale(.94)}
.story-card a:active .image-frame{opacity:.9}
.gallery-shot a{display:block}
.gallery-shot a:active{opacity:.9}
.lightbox-stage{touch-action:pan-y pinch-zoom;cursor:grab}
.lightbox-stage.is-dragging{cursor:grabbing}
.lightbox-stage.is-dragging img{will-change:transform}
.lightbox-status{pointer-events:none}
.lightbox button{border-radius:50%}
.lightbox button:hover{background:rgb(255 255 255 / .1)}
.faq-list summary{font-size:1rem}
.faq-list details>p{font-size:.9375rem}
.about-copy>p:not(.signature),.contact-copy>p,.gallery-intro .gallery-story{font-size:1rem;text-wrap:pretty}
.section-heading h2,.gallery-intro h1,.gallery-end h2{text-wrap:balance}
.day-story-credit,.day-story-scroll{letter-spacing:.02em}
#inquiry-form .inquiry-wizard-progress{gap:12px}
#inquiry-form .wizard-steps button{position:relative;min-height:44px;font-size:.875rem;border-radius:6px;transition:color 160ms,background-color 160ms}
#inquiry-form .wizard-steps button[aria-current=step]{background:var(--surface)}
#inquiry-form .wizard-panel h3{font-size:clamp(1.625rem,2.5vw,2rem);line-height:1.2;text-wrap:balance}
#inquiry-form .field label,#inquiry-form .inquiry-options legend{font-size:.9375rem;line-height:1.5}
#inquiry-form .field-help,#inquiry-form .options-help,#inquiry-form .form-note{font-size:.875rem}
#inquiry-form .inquiry-choice{font-size:.9375rem;line-height:1.45;transition:border-color 140ms,background-color 140ms,transform var(--motion-press)}
#inquiry-form .inquiry-choice:active{transform:scale(.985)}
#inquiry-form .inquiry-choice:has(input:checked){border-color:var(--blue);box-shadow:inset 0 0 0 .5px var(--blue)}
#inquiry-form .inquiry-choice:has(input:disabled){opacity:.55;cursor:default}
#inquiry-form .getting-ready-toggle{width:44px;height:44px;min-height:44px}
#inquiry-form .wizard-panel h3:focus{outline:none}
#inquiry-form .wizard-panel h3:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
#inquiry-form .wizard-actions .button{font-size:.9375rem;min-height:50px}
#inquiry-form .inquiry-success p{font-size:.9375rem;line-height:1.65;text-wrap:pretty}
.coverage-calculator label{font-size:.9375rem}
.coverage-calculator .coverage-total{font-size:clamp(2.125rem,3vw,2.625rem)}
.coverage-calculator input[type=range]:active::-webkit-slider-thumb{box-shadow:0 0 0 5px color-mix(in srgb,var(--blue) 16%,transparent)}
.beta-notice{max-width:var(--max,1240px);margin:20px auto 0;padding:16px 24px 0;border-top:1px solid var(--line);text-align:center;font:400 .8125rem/1.65 var(--sans);color:var(--muted)}
.beta-notice strong{color:var(--ink);font-weight:600}
.beta-form-note{margin:0 0 24px;font-size:.8125rem;line-height:1.5;color:var(--muted)}
#inquiry-form.is-complete>.beta-form-note{display:none}
@media(max-width:1100px){
 .site-header{overflow:visible;max-height:none}
 .js-ready .site-header #navigation.is-open,.js-ready .site-header #navigation.is-closing{display:flex;position:absolute;top:100%;left:0;right:0;width:auto;flex-direction:column;align-items:stretch;gap:0;padding:12px max(24px,calc((100vw - 1200px)/2)) 20px;max-height:calc(100svh - 105px);overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 18px 24px rgb(10 30 40 / .08);opacity:var(--menu-reveal,1);transform:translateY(calc((1 - var(--menu-reveal,1)) * -8px));transform-origin:top center}
 .site-header #navigation.is-closing{pointer-events:none}
 .site-header #navigation>a{min-height:52px;font-size:1.0625rem;border-radius:4px;padding-inline:8px}
 .site-header #navigation>a[aria-current=location]{background:var(--surface)}
 .site-header #navigation>a::after{display:none}
 .site-header .header-direct{padding-left:8px;font-size:.875rem}
}
@media(max-width:760px){
 #inquiry-form .wizard-compact-count{font-size:.8125rem;min-width:2.5rem;font-variant-numeric:tabular-nums}
 #inquiry-form .inquiry-wizard-progress{margin-bottom:24px}
 #inquiry-form .wizard-actions{gap:12px;margin-top:24px}
 #inquiry-form .wizard-actions .button{font-size:.9375rem}
 #inquiry-form .wizard-next{min-width:136px;justify-content:space-between}
 #inquiry-form .contact-preference-row{grid-template-columns:minmax(0,1fr)}
 .lightbox{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
 .lightbox-prev,.lightbox-next{bottom:calc(12px + env(safe-area-inset-bottom))}
 .footer-inner nav a{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:360px){#inquiry-form .wizard-actions button[type=submit]{font-size:.8125rem;padding-inline:10px}}
@media(prefers-reduced-transparency:reduce){.site-header::before,.site-header.is-scrolled::before{background:var(--paper)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
@media(prefers-contrast:more){:root{--line:var(--muted)}.site-header::before{background:var(--paper)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.hero-copy{text-shadow:0 1px 5px #000}.inquiry-choice{border-width:2px!important}}
@media(prefers-reduced-motion:reduce){.hero-switch button[aria-busy=true]::after{animation:none}.story-card img,.button,.inquiry-choice,.theme-toggle,.menu-toggle{transition:none!important}.story-card a:hover img,.story-card a:hover .gallery-open-label,.button:active,.inquiry-choice:active{transform:none!important}}
