/* DANIEL v3. One visual system; no framework, scroll hijacking or hidden content. */
:root {
  --ink:#0e0e0e; --surface:#171717; --ivory:#f6f4ef; --sand:#d5c9b8;
  --muted:#bdb7ad; --line:#ffffff24; --danger:#efbdac;
  --font-body:'Commissioner',Arial,sans-serif; --font-display:'Piazzolla',Georgia,serif;
  --header:76px; --gutter:clamp(24px,4vw,72px); --content:1440px;
  --ease:cubic-bezier(.22,.7,.25,1); --fast:160ms; --motion:240ms;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scrollbar-gutter:stable; scroll-padding-top:calc(var(--header) + 24px); }
body { margin:0; background:var(--ink); color:var(--ivory); font:400 16px/1.65 var(--font-body); -webkit-font-smoothing:antialiased; }
body.lock-scroll { overflow:hidden; }
::selection { color:var(--ink); background:var(--sand); }
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; color:inherit; background:none; border:0; }
button:disabled { cursor:default; }
img { display:block; max-width:100%; }
svg { width:24px; height:24px; stroke:currentColor; stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--font-display); font-weight:400; line-height:1.14; letter-spacing:-.025em; text-wrap:balance; }
h1 { font-size:clamp(42px,4.5vw,68px); }
h2 { font-size:clamp(30px,3vw,46px); }
h3 { font-size:24px; }
p+p { margin-top:18px; }
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline:2px solid var(--sand); outline-offset:5px;
}
[hidden] { display:none!important; }
.sr-only { position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#main:focus { outline:none; }
.muted,.reading { color:var(--muted); }
.gallery-preview-warning { position:fixed; z-index:200; inset:auto 20px 20px; width:fit-content; max-width:calc(100% - 40px); margin-inline:auto; padding:18px 24px; background:var(--ink); color:var(--ivory); border:1px solid var(--line); box-shadow:0 8px 32px #0003; display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.gallery-preview-warning p { flex:1 1 260px; max-width:48ch; font-size:14px; line-height:1.6; }
.gallery-preview-warning .text-link { flex-shrink:0; }
.micro { font-size:13px; line-height:1.65; }
.section-label { color:var(--sand); font-size:12px; line-height:1.5; letter-spacing:.13em; text-transform:uppercase; margin-bottom:22px; }
.text-link { display:inline-flex; align-items:center; gap:16px; padding:12px 0; min-height:44px; border-bottom:1px solid var(--line); font-size:14px; line-height:1.5; transition:color var(--fast),border-color var(--fast); }
.text-link:hover { color:var(--sand); border-color:var(--sand); }
.text-link svg { width:22px; transition:transform var(--fast) var(--ease); }
.text-link:hover svg { transform:translateX(3px); }
.icon-button { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:10px; flex-shrink:0; }
.icon-button:hover { color:var(--sand); }
.brand { display:inline-block; flex-shrink:0; }
.brand img { width:100%; height:auto; }
.brand--header { width:180px; }
.brand--stacked { width:146px; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:500; padding:12px 24px; background:var(--ivory); color:var(--ink); }
.skip-link:focus { top:10px; }
body:not(.page-home) main { padding-top:var(--header); }
.page-shell { width:100%; max-width:calc(var(--content) + var(--gutter)*2); margin-inline:auto; padding-inline:var(--gutter); }
/* Navigation stays outside layout flow: no image resizing during scroll. */
.site-header { position:fixed; inset:0 0 auto; height:var(--header); z-index:50; display:flex; align-items:center; gap:28px; padding-inline:var(--gutter); background:rgba(14,14,14,.97); border-bottom:1px solid var(--line); transform:translateY(0); opacity:1; visibility:visible; transition:transform var(--motion) var(--ease),opacity var(--motion),visibility 0s; }
.site-header.is-hidden { transform:translateY(-105%); opacity:0; pointer-events:none; visibility:hidden; transition:transform var(--motion) var(--ease),opacity var(--motion),visibility 0s var(--motion); }
.header-nav { display:flex; gap:28px; margin-left:auto; align-items:center; }
.header-nav a { position:relative; padding:27px 0 25px; font-size:14px; line-height:1.4; white-space:nowrap; color:var(--muted); }
.header-nav a:hover,.header-nav a[aria-current] { color:var(--ivory); }
.header-nav a[aria-current]::after { content:''; position:absolute; bottom:16px; height:1px; background:var(--sand); left:0; right:0; }
.menu-trigger { display:flex; align-items:center; gap:12px; font-size:14px; min-height:44px; padding:8px 0 8px 12px; }
.menu-trigger svg { width:24px; height:20px; }
.floating-menu { position:fixed; right:22px; top:18px; z-index:51; display:flex; align-items:center; gap:12px; background:rgba(14,14,14,.96); border:1px solid #d5c9b860; border-radius:40px; padding:11px 17px; min-height:48px; font-size:13px; }
.floating-menu img { width:32px; height:22px; object-fit:contain; }
.floating-menu svg { width:21px; height:17px; }
.floating-separator { height:21px; width:1px; background:var(--line); }
/* The approved photographic opening. */
.home-hero { display:grid; grid-template-columns:clamp(232px,18.2vw,290px) minmax(0,1fr); height:clamp(570px,66svh,780px); }
.hero-sidebar { padding:38px 34px 26px; display:flex; flex-direction:column; align-items:flex-start; }
.hero-sidebar .brand { align-self:center; }
.side-nav { display:flex; flex-direction:column; gap:3px; margin-block:auto; padding-top:25px; width:100%; }
.side-nav a { position:relative; padding:8px 0 8px 24px; font-size:16px; line-height:1.4; color:var(--muted); max-width:200px; }
.side-nav a[aria-current],.side-nav a:hover { color:var(--ivory); }
.side-nav a[aria-current]::before { content:''; position:absolute; left:-13px; top:50%; width:22px; height:1px; background:var(--sand); }
.side-bottom { padding:20px 0 0 24px; width:100%; }
.hairline { height:1px; width:100%; max-width:140px; margin-bottom:17px; background:var(--line); }
.side-bottom p { font-size:12px; line-height:1.6; color:var(--muted); }
.social-links { display:flex; gap:12px; margin-top:12px; }
.social-links a { display:flex; align-items:center; justify-content:center; width:32px; min-height:32px; color:var(--muted); }
.social-links a:hover { color:var(--ivory); }
.social-links svg { width:18px; height:18px; }
.hero-stage { position:relative; min-width:0; overflow:hidden; }
.hero-photo { display:block; position:relative; padding:0; width:100%; height:100%; cursor:zoom-in; background:#151515; }
.hero-photo picture { display:block; width:100%; height:100%; }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.hero-photo .hero-incoming { position:absolute; inset:0; pointer-events:none; }
.hero-controls { position:absolute; bottom:20px; right:24px; display:flex; align-items:center; gap:8px; padding:3px 4px 3px 16px; background:#0e0e0ec2; z-index:2; }
.slide-count { font-size:12px; font-variant-numeric:tabular-nums; letter-spacing:.06em; margin-right:15px; }
.control-divider { width:1px; height:20px; background:#ffffff45; }
.hero-controls svg { width:30px; }
.gallery { padding:8px 8px 0; display:flex; flex-direction:column; gap:7px; }
.gallery-row { display:flex; gap:7px; width:100%; overflow:hidden; min-height:1px; }
.gallery-item { position:relative; min-width:0; padding:0; display:block; flex-basis:0; overflow:hidden; background:#171717; cursor:zoom-in; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:filter var(--motion); }
.gallery-item:hover img { filter:brightness(1.06); }
.gallery-item:focus-visible { outline-offset:-4px; z-index:1; }
.portfolio-end { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:28px var(--gutter) 0; color:var(--muted); font-size:13px; }
/* Quiet shared footer. */
.site-footer { padding:64px var(--gutter) 25px; max-width:calc(var(--content) + var(--gutter)*2); margin-inline:auto; }
.footer-top { display:flex; align-items:center; gap:48px; padding-bottom:35px; }
.footer-top>.brand { width:166px; }
.footer-top p { font-size:14px; line-height:1.7; }
.footer-top p a,.footer-top p span { color:var(--muted); }
.footer-top p a:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-contact { margin-left:auto; }
.back-top { margin-left:12px; }
.back-top svg { transform:rotate(90deg); }
.footer-bottom { border-top:1px solid var(--line); padding-top:18px; display:flex; flex-wrap:wrap; align-items:center; gap:22px; font-size:12px; color:var(--muted); }
.footer-bottom>div { display:flex; flex-wrap:wrap; gap:18px; }
.footer-bottom button { font-size:12px; padding:0; }
.footer-bottom a,.footer-bottom button { display:inline-flex; align-items:center; min-height:36px; }
.site-credit { margin-top:8px; color:var(--muted); font-size:12px; line-height:1.5; }
.site-credit a { display:inline-flex; align-items:center; min-height:36px; text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:3px; }
.site-credit a:hover { color:var(--ivory); text-decoration-color:currentColor; }
.preview-note { margin-left:auto; font-size:11px; }
.noscript-note { padding:18px var(--gutter); background:var(--ivory); color:var(--ink); }
/* Modals animate in JS. Native dialog retains inert/focus handling. */
dialog { color:var(--ivory); background:var(--ink); border:0; padding:0; max-width:none; max-height:none; overscroll-behavior:contain; }
dialog::backdrop { background:#000c; }
.menu-dialog { margin:0; width:100%; height:100dvh; inset:0; overflow:auto; }
.menu-dialog[open] { display:grid; grid-template-columns:minmax(0,1fr) minmax(470px,44%); }
.menu-art { overflow:hidden; min-height:0; position:relative; }
.menu-art img { width:100%; height:100%; object-fit:cover; object-position:64%; opacity:.54; }
.menu-sheet { padding:36px 46px; display:flex; flex-direction:column; min-height:100dvh; }
.menu-sheet-top { display:flex; justify-content:space-between; align-items:center; gap:15px; }
.menu-sheet-top .brand { width:160px; }
.overlay-nav { display:flex; flex-direction:column; gap:11px; margin-block:auto; padding-block:48px; }
.overlay-nav a { font-family:var(--font-display); font-size:clamp(30px,3vw,48px); line-height:1.22; width:fit-content; max-width:100%; color:var(--muted); padding:6px 0; }
.overlay-nav a[aria-current],.overlay-nav a:hover { color:var(--ivory); }
.overlay-nav a[aria-current] { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:9px; text-decoration-color:var(--sand); }
.menu-bottom { padding-top:24px; border-top:1px solid var(--line); font-size:13px; }
.menu-bottom p span { color:var(--muted); }
.menu-bottom>a { display:inline-block; min-height:36px; padding-top:13px; color:var(--muted); }
.lightbox { inset:0; margin:0; width:100%; height:100dvh; background:#080808; }
.lightbox-top { position:absolute; inset:14px 22px auto; display:flex; align-items:center; justify-content:flex-end; gap:22px; z-index:2; }
.lightbox-counter { font-size:13px; font-variant-numeric:tabular-nums; letter-spacing:.06em; color:var(--muted); }
.lightbox-figure { position:absolute; inset:72px 82px 104px; display:flex; align-items:center; justify-content:center; }
.lightbox-figure img { width:100%; height:100%; object-fit:contain; touch-action:pan-y pinch-zoom; }
.lightbox-prev,.lightbox-next { position:absolute; top:calc(50% - 22px); z-index:2; }
.lightbox-prev { left:18px; }.lightbox-next { right:18px; }
.lightbox-thumbs { position:absolute; bottom:18px; left:50%; transform:translateX(-50%); max-width:calc(100% - 80px); height:64px; display:flex; gap:7px; overflow-x:auto; padding:4px 2px; scrollbar-width:thin; }
.lightbox-thumbs button { padding:0; width:80px; min-width:80px; height:52px; opacity:.45; transition:opacity var(--fast); }
.lightbox-thumbs img { width:100%; height:100%; object-fit:cover; }
.lightbox-thumbs button[aria-current] { opacity:1; outline:1px solid var(--sand); outline-offset:2px; }
.lightbox-thumbs button:hover { opacity:1; }
.video-dialog { width:min(1200px,96vw); max-height:94dvh; margin:auto; overflow:auto; border:1px solid var(--line); }
.video-top { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:13px 22px; }
.video-top h2 { font-size:26px; }
.video-dialog video,.video-dialog iframe { display:block; width:100%; aspect-ratio:16/9; border:0; background:#000; }
.video-placeholder { position:relative; min-height:360px; display:grid; place-items:center; overflow:hidden; }
.video-placeholder img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.14; }
.video-placeholder-copy { position:relative; padding:40px; max-width:630px; text-align:center; }
.video-placeholder-copy h3 { font-size:34px; margin-bottom:18px; }
.video-placeholder-copy p { color:var(--muted); font-size:16px; }
.external-video-consent { padding:46px 32px; text-align:center; }
.external-video-consent p { max-width:580px; margin:0 auto 26px; color:var(--muted); }
/* Shared inner-page hierarchy. */
.page-heading { display:flex; justify-content:space-between; gap:40px; align-items:flex-end; padding:58px 0 38px; }
.page-heading h1 { font-size:clamp(42px,4.2vw,64px); }
.page-heading>p { max-width:380px; font-size:16px; color:var(--muted); }
.editorial-split { display:grid; grid-template-columns:minmax(240px,.85fr) minmax(0,1.25fr); gap:clamp(40px,8vw,120px); padding-block:72px; border-top:1px solid var(--line); }
.editorial-split>div,.editorial-split>aside { min-width:0; }
.reading { font-size:16px; line-height:1.8; max-width:690px; }
.section-intro { color:var(--muted); font-size:15px; line-height:1.8; margin-top:22px; max-width:325px; }
.inline-links { display:flex; flex-wrap:wrap; column-gap:32px; row-gap:12px; margin-top:22px; }
.related-line { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-block:32px; border-top:1px solid var(--line); color:var(--muted); font-size:14px; }
/* Films: footage first, then practical context. */
.film-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:38px 24px; }
.film-card:first-child { grid-column:1/-1; }
.film-poster { display:block; padding:0; position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--surface); }
.film-card:first-child .film-poster { aspect-ratio:2.55; }
.film-poster img { width:100%; height:100%; object-fit:cover; transition:transform 400ms var(--ease); }
@media(hover:hover) { .film-poster:hover img { transform:scale(1.012); } }
.play-symbol { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); border:1px solid #fff9; border-radius:50%; width:64px; height:64px; display:grid; place-items:center; background:#0005; transition:background var(--fast); }
.film-poster:hover .play-symbol { background:#0009; }
.play-symbol svg { width:28px; height:28px; margin-left:3px; }
.film-caption { display:grid; grid-template-columns:auto 1fr; align-items:baseline; gap:6px 18px; padding-top:15px; }
.film-number { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }
.film-caption h2 { font-size:29px; overflow-wrap:anywhere; }
.film-caption small { grid-column:2; font-size:13px; color:var(--muted); }
.film-pending-label { position:absolute; left:20px; bottom:20px; padding:8px 12px; background:#ffffffed; color:#25231f; font-size:12px; line-height:1.4; }
.films-empty { grid-column:1/-1; padding-block:24px; color:var(--muted); }
.demo-notice { color:var(--muted); font-size:13px; margin:25px 0 52px; }
.film-notes { margin-top:44px; }
/* Collaboration: open editorial layout, no repeated feature cards. */
.work-intro { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,8vw,120px); padding:64px 0 72px; align-items:center; }
.work-copy { max-width:570px; }
.work-copy h1 { margin-bottom:27px; }
.work-copy .lead { color:var(--ivory); font-size:20px; line-height:1.55; margin-bottom:17px; }
.work-copy>p:not(.section-label):not(.lead) { color:var(--muted); font-size:16px; line-height:1.8; }
.work-photo { height:clamp(430px,41vw,570px); overflow:hidden; }
.work-photo img { width:100%; height:100%; object-fit:cover; object-position:46%; }
.section-index { display:flex; flex-wrap:wrap; gap:20px; margin-top:28px; }
.section-index a { font-size:13px; min-height:44px; display:flex; align-items:center; border-bottom:1px solid var(--line); }
.section-index a:hover { border-color:var(--sand); }
.disclosures { min-width:0; }
.disclosure { border-bottom:1px solid var(--line); }
.disclosure:first-child { border-top:1px solid var(--line); }
.disclosure summary { list-style:none; cursor:pointer; padding:22px 0; display:flex; align-items:center; gap:24px; font-family:var(--font-display); font-size:28px; line-height:1.3; }
.disclosure summary::-webkit-details-marker { display:none; }
.disclosure summary>span:first-child { display:flex; gap:20px; align-items:baseline; }
.item-index { font-family:var(--font-body); color:var(--sand); font-size:12px; letter-spacing:.06em; font-variant-numeric:tabular-nums; flex-shrink:0; }
.plus { position:relative; width:18px; height:18px; margin-left:auto; flex-shrink:0; }
.plus::before,.plus::after { content:''; position:absolute; left:0; top:8px; width:18px; height:1px; background:var(--muted); }
.plus::after { transform:rotate(90deg); transition:transform var(--motion); }
.disclosure[open] .plus::after { transform:rotate(0); }
.disclosure-body { padding:0 0 28px; color:var(--muted); font-size:16px; line-height:1.8; }
.service-list .disclosure-body { padding-left:37px; }
.disclosure-body .text-link { margin-top:12px; color:var(--ivory); }
.plain-definitions { margin:24px 0; }
.plain-definitions>div { display:grid; grid-template-columns:160px minmax(0,1fr); gap:25px; padding:20px 0; border-top:1px solid var(--line); }
.plain-definitions>div:last-child { border-bottom:1px solid var(--line); }
.plain-definitions dt { color:var(--ivory); font-size:15px; }
.plain-definitions dd { margin:0; color:var(--muted); font-size:15px; }
.process-section { padding:65px 0 70px; border-top:1px solid var(--line); }
.process-list { list-style:none; padding:0; margin:36px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
.process-list li { border-top:1px solid var(--line); padding-top:24px; }
.process-list h3 { margin:16px 0 12px; font-size:26px; }
.process-list p { color:var(--muted); font-size:15px; }
.faq-section .disclosure summary { font-family:var(--font-body); font-size:17px; font-weight:400; padding:23px 0; }
.faq-section .disclosure-body { font-size:15px; }
/* Studio: factual local information, no invented interior or prices. */
.studio-intro { display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(40px,8vw,100px); padding:74px 0 55px; align-items:end; }
.studio-intro-text { max-width:460px; }
.studio-intro-text>p:first-child { font-size:20px; line-height:1.6; }
.studio-intro-text p.muted { font-size:16px; }
.studio-intro-text .text-link { margin-top:16px; }
.preview-inline { padding:16px 0; display:flex; gap:12px; align-items:baseline; color:var(--muted); font-size:13px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.preview-dot { width:5px; height:5px; border-radius:50%; background:var(--sand); flex-shrink:0; }
.studio-body { display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(40px,8vw,100px); padding-block:64px; }
.studio-body>div>h2,.studio-prepare>h2 { margin-bottom:30px; font-size:34px; }
.studio-info { margin:0; }
.studio-info>div { display:grid; grid-template-columns:115px 1fr; gap:28px; border-top:1px solid var(--line); padding:23px 0; }
.studio-info>div:last-child { border-bottom:1px solid var(--line); }
.studio-info dt { font-size:14px; color:var(--ivory); }
.studio-info dd { margin:0; color:var(--muted); font-size:15px; }
.studio-info [data-studio-hours] { white-space:pre-line; }
.studio-prepare { padding-left:40px; border-left:1px solid var(--line); }
.prepare-list { list-style:none; margin:0; padding:0; counter-reset:prepare; }
.prepare-list li { margin-top:28px; position:relative; padding-left:32px; counter-increment:prepare; }
.prepare-list li::before { content:'0' counter(prepare); color:var(--sand); font-size:11px; position:absolute; left:0; top:6px; }
.prepare-list h3 { font-family:var(--font-body); font-size:17px; line-height:1.5; font-weight:500; letter-spacing:0; margin-bottom:8px; }
.prepare-list p { color:var(--muted); font-size:15px; line-height:1.75; }
.studio-note { padding-bottom:32px; }
.contact-lines { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.contact-lines a { font-size:15px; display:inline-flex; align-items:center; gap:13px; min-height:40px; overflow-wrap:anywhere; }
.contact-lines a:hover { color:var(--sand); }
.contact-lines svg { width:18px; height:18px; }
/* Contact: date, contact, then actual confirmation. No public availability. */
.contact-main { display:grid; grid-template-columns:minmax(0,40%) minmax(0,60%); align-items:start; }
.contact-main>* { min-width:0; }
.contact-story { position:sticky; top:var(--header); min-height:600px; height:calc(100svh - var(--header)); max-height:1000px; display:flex; align-items:flex-end; isolation:isolate; }
.contact-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:62% 50%; z-index:-2; }
.contact-story::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,transparent 5%,#0e0e0e65 38%,#0e0e0ef5 100%); }
.contact-story-copy { padding:44px clamp(28px,3.5vw,54px); width:100%; }
.contact-story-copy h1 { font-size:clamp(42px,3.9vw,62px); margin-bottom:22px; }
.contact-story-copy>p:not(.section-label) { font-size:16px; line-height:1.75; max-width:390px; color:#e0dcd5; }
.contact-story-copy .section-label { margin-bottom:18px; }
.direct-contact { margin-top:26px; }
.contact-story-copy .contact-region { font-size:13px!important; margin-top:28px; }
.studio-contact-link { display:flex; gap:16px; align-items:center; font-size:13px; line-height:1.6; margin-top:28px; border-top:1px solid #ffffff40; padding-top:20px; color:var(--muted); max-width:390px; }
.studio-contact-link svg { width:19px; }
.studio-contact-link:hover { color:var(--ivory); }
.enquiry-panel { padding:46px clamp(24px,3.4vw,60px) 35px; }
.enquiry-panel h2 { font-size:36px; }
.form-intro { font-size:14px; color:var(--muted); margin-top:10px; }
.date-section { display:grid; grid-template-columns:minmax(260px,1fr) minmax(130px,.44fr); gap:25px; align-items:center; margin:28px 0 36px; }
.calendar { border:1px solid var(--line); padding:12px 14px 14px; min-width:0; }
.calendar-heading { display:flex; align-items:center; justify-content:space-between; gap:3px; margin-bottom:10px; }
.calendar-heading .icon-button { width:38px; height:40px; padding:8px; }
.calendar-heading .icon-button:disabled { opacity:.23; }
.calendar-heading svg { width:19px; }
.month-selectors { display:flex; justify-content:center; gap:0; min-width:0; }
.month-selectors select { appearance:auto; border:0; background:transparent; color:var(--ivory); padding:6px 2px; cursor:pointer; font-size:14px; color-scheme:dark; min-width:0; }
.month-selectors option { background:var(--ink); color:var(--ivory); }
.calendar-week,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; }
.calendar-week { font-size:12px; color:var(--muted); margin-bottom:6px; }
.calendar-week span { padding:6px 0; }
.calendar-days button,.calendar-blank { height:40px; min-width:0; padding:4px; display:flex; align-items:center; justify-content:center; font-size:13px; }
.calendar-days button { border:1px solid transparent; margin:1px; font-variant-numeric:tabular-nums; transition:background var(--fast),border-color var(--fast); }
.calendar-days button:hover:not(:disabled) { border-color:var(--sand); }
.calendar-days button[aria-pressed=true] { background:var(--sand); color:var(--ink); border-color:var(--sand); }
.calendar-days button:disabled { color:#77736c; }
.calendar-days button.is-today:not([aria-pressed=true]) { text-decoration:underline; text-underline-offset:5px; }
.date-entry { border-top:1px solid var(--line); margin-top:12px; padding-top:12px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.date-entry label { font-size:12px; color:var(--muted); }
.date-entry input { width:155px; min-width:0; background:transparent; color:var(--ivory); border:0; padding:5px 0; font-size:14px; color-scheme:dark; }
.date-entry .field-error { width:100%; }
.date-aside { line-height:1.6; font-size:13px; }
.date-aside .selection-kicker { display:block; font-size:12px; color:var(--sand); margin-bottom:10px; }
.date-aside strong { font-family:var(--font-display); font-weight:400; font-size:24px; line-height:1.3; display:block; color:var(--ivory); }
.date-aside #date-disclaimer { display:block; color:var(--muted); font-size:13px; margin-top:16px; }
.form-section-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:10px 22px; border-top:1px solid var(--line); padding-top:24px; margin-bottom:23px; }
.form-section-heading h3 { font-size:25px; }
.form-section-heading p { font-size:12px; color:var(--muted); }
.form-fields { display:grid; grid-template-columns:1fr 1fr; gap:22px 16px; }
.field { min-width:0; }
.field--wide { grid-column:1/-1; }
.field label { display:block; margin-bottom:8px; font-size:13px; color:var(--ivory); }
.field label>span:not(.optional) { color:var(--sand); }
.field input,.field select,.field textarea { width:100%; background:#121212; border:1px solid #ffffff37; border-radius:0; padding:12px 13px; color:var(--ivory); outline-offset:3px; font-size:16px; line-height:1.5; transition:border-color var(--fast); }
.field select { color-scheme:dark; min-height:50px; }
.field textarea { resize:vertical; min-height:115px; max-height:500px; }
.field input::placeholder,.field textarea::placeholder { color:#918c85; font-size:14px; opacity:1; }
.field input:hover,.field textarea:hover,.field select:hover { border-color:#ffffff65; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:var(--sand); }
.optional { color:var(--muted); font-size:12px; margin-left:6px; }
.character-count { display:block; text-align:right; font-size:11px; color:var(--muted); margin-top:5px; font-variant-numeric:tabular-nums; }
.field-error { display:block; font-size:12px; line-height:1.55; color:var(--danger); margin-top:6px; }
.field-error:empty { display:none; }
[aria-invalid=true] { border-color:#d79983!important; }
.form-bottom { padding-top:25px; display:flex; align-items:flex-start; gap:22px; flex-direction:column; }
.form-bottom p { font-size:13px; color:var(--muted); line-height:1.7; max-width:560px; }
.form-bottom a { text-decoration:underline; text-underline-offset:3px; }
.button { background:var(--sand); color:var(--ink); padding:13px 23px; display:inline-flex; align-items:center; justify-content:center; gap:28px; border:1px solid var(--sand); font-size:14px; min-height:48px; transition:background var(--fast),color var(--fast); }
.button:hover { background:var(--ivory); }
.button:disabled { opacity:.6; cursor:wait; }
.button--quiet { background:transparent; color:var(--ivory); border-color:var(--line); }
.button--quiet:hover { background:var(--surface); }
.submit-button { align-self:flex-end; min-width:230px; }
.form-status { font-size:14px; line-height:1.7; padding:16px 18px; border:1px solid var(--line); margin-top:20px; scroll-margin-top:calc(var(--header) + 25px); }
.form-status:empty { display:none; }
.form-status.is-error { border-color:#d79983; color:var(--danger); }
.form-status.is-success { border-color:var(--sand); }
.preview-form-note { font-size:12px; line-height:1.65; margin-top:20px; color:var(--muted); }
.honey { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
/* Utility pages and privacy controls. */
.legal-main { max-width:920px; }
.legal-main .page-heading { display:block; padding-bottom:26px; }
.legal-main .page-heading p { margin-top:18px; max-width:none; }
.draft-notice { border:1px solid #d5c9b855; padding:22px 25px; font-size:14px; color:var(--muted); margin-bottom:40px; }
.draft-notice strong { display:block; margin-bottom:10px; color:var(--ivory); font-weight:500; }
.legal-main section { padding:30px 0; border-top:1px solid var(--line); }
.legal-main section h2 { font-size:30px; margin-bottom:18px; }
.legal-main section p { color:var(--muted); font-size:16px; line-height:1.8; }
.legal-main section .text-link { margin-top:20px; }
.not-found { min-height:70svh; padding-bottom:40px; }
.not-found .section-label { margin-top:90px; }
.not-found h1 { margin-bottom:26px; }
.not-found>p:not(.section-label) { color:var(--muted); max-width:460px; }
.consent-dialog { width:min(620px,calc(100vw - 32px)); margin:auto; padding:40px; border:1px solid var(--line); max-height:90dvh; overflow:auto; }
.consent-close { position:absolute; right:12px; top:12px; }
.consent-dialog h2 { font-size:34px; padding-right:20px; margin-bottom:20px; }
.consent-dialog>p { font-size:14px; color:var(--muted); }
.consent-row { display:flex; align-items:center; gap:25px; justify-content:space-between; padding:20px 0; border-bottom:1px solid var(--line); }
.consent-row strong { display:block; font-size:15px; font-weight:500; }
.consent-row small { display:block; font-size:12px; color:var(--muted); max-width:350px; margin-top:5px; }
.consent-row>span { font-size:12px; color:var(--muted); flex-shrink:0; }
.consent-row input { width:22px; height:22px; accent-color:var(--sand); flex-shrink:0; }
.consent-actions { display:flex; flex-wrap:wrap; gap:15px; margin-top:25px; }
.consent-dialog>.micro { margin-top:18px; }
.consent-dialog>.text-link { margin-top:16px; }
.consent-banner { position:fixed; z-index:80; bottom:20px; left:24px; right:24px; border:1px solid var(--line); background:#1a1a1a; padding:20px 24px; display:flex; gap:25px; justify-content:space-between; align-items:center; }
.consent-banner p { font-size:14px; max-width:440px; }
.consent-banner>div { display:flex; flex-wrap:wrap; gap:18px; }
.consent-banner button { font-size:13px; padding:8px 0; min-height:40px; text-decoration:underline; text-underline-offset:4px; }
/* Cross-document fading is progressive enhancement; links stay native. */
@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:140ms; animation-timing-function:ease-out; }
/* Tablet and lower laptops. */
@media(min-width:1001px) and (max-height:760px) {
  .home-hero { height:570px; }
  .hero-sidebar { padding-top:28px; padding-bottom:20px; }
  .brand--stacked { width:125px; }
  .side-nav { padding-top:22px; gap:0; }
  .side-nav a { padding-block:7px; }
  .side-bottom { padding-top:15px; }
}
@media(max-width:1180px) {
  .header-nav { gap:21px; }.header-nav a { font-size:13px; }
  .site-header { gap:21px; }.brand--header { width:155px; }
  .contact-main { grid-template-columns:minmax(0,38%) minmax(0,62%); }
  .date-section { grid-template-columns:1fr; gap:17px; }
  .date-aside { display:grid; grid-template-columns:1fr 1fr; gap:5px 18px; }
  .date-aside .selection-kicker { margin:0; }.date-aside strong { grid-column:1; font-size:21px; }
  .date-aside #date-disclaimer { grid-column:2; grid-row:1/3; margin:0; }
}
@media(max-width:1000px) {
  :root { --gutter:32px; }
  .header-nav { display:none; }.menu-trigger { margin-left:auto; }
  .brand--header { width:170px; }
  .home-hero { grid-template-columns:220px minmax(0,1fr); height:580px; }
  .hero-sidebar { padding-inline:26px; }.side-nav a,.side-bottom { padding-left:12px; }
  .side-nav a[aria-current]::before { left:-15px; width:17px; }
  .editorial-split { gap:45px; grid-template-columns:.85fr 1.15fr; padding-block:52px; }
  .work-intro { gap:40px; padding-block:48px; }.work-photo { height:460px; }
  .work-copy>p:not(.section-label):not(.lead) { font-size:15px; }
  .plain-definitions>div { grid-template-columns:1fr; gap:6px; padding-block:18px; }
  .process-list { gap:28px; }.process-list h3 { font-size:24px; }
  .studio-intro,.studio-body { grid-template-columns:1fr 1fr; gap:40px; }
  .studio-prepare { padding-left:25px; }.studio-info>div { grid-template-columns:1fr; gap:8px; }
  .contact-main { display:block; }
  .contact-story { position:relative; top:0; min-height:0; height:auto; max-height:none; }
  .contact-photo { object-position:64% 35%; }
  .contact-story::after { background:linear-gradient(90deg,#0e0e0eea 0%,#0e0e0ed8 40%,#0e0e0e35 100%); }
  .contact-story-copy { padding:48px var(--gutter); max-width:650px; }
  .contact-story-copy h1 { font-size:48px; }
  .contact-story-copy .contact-region { display:none; }
  .direct-contact { margin-top:18px; }.studio-contact-link { margin-top:20px; max-width:420px; }
  .enquiry-panel { padding:42px var(--gutter); max-width:800px; margin:auto; }
  .date-section { grid-template-columns:minmax(280px,1fr) 170px; gap:30px; }
  .date-aside { display:block; }.date-aside .selection-kicker { margin-bottom:10px; }.date-aside #date-disclaimer { margin-top:14px; }
  .calendar-days button,.calendar-blank { height:44px; }
  .footer-top { gap:30px; }.footer-top p { font-size:13px; }
  .preview-note { margin-left:0; }
}
@media(max-width:760px) {
  :root { --header:64px; --gutter:24px; }
  h1 { font-size:44px; }h2 { font-size:32px; }
  .site-header { padding-inline:20px; gap:16px; }
  .brand--header { width:154px; }
  .menu-trigger { min-width:74px; font-size:13px; }
  .floating-menu { top:12px; right:14px; padding:10px 14px; gap:10px; }
  .floating-menu img { width:27px; }
  .home-hero { display:block; height:auto; margin-top:var(--header); }
  .hero-sidebar { display:none; }
  .hero-stage { height:clamp(430px,67svh,650px); }
  .hero-photo img { object-position:59% 50%; }
  .hero-controls { bottom:12px; right:12px; gap:2px; padding-left:12px; }
  .slide-count { font-size:11px; margin-right:8px; }
  .hero-controls .icon-button { width:44px; height:42px; }
  .gallery { gap:5px; padding:5px 5px 0; }.gallery-row { gap:5px; }
  .portfolio-end { padding-top:22px; align-items:flex-start; font-size:12px; gap:15px; }
  .portfolio-end>p { max-width:160px; }.portfolio-end .text-link { font-size:13px; gap:8px; padding-top:0; min-height:40px; }
  .site-footer { padding-top:42px; padding-bottom:20px; }
  .footer-top { display:grid; grid-template-columns:1fr auto; gap:20px; padding-bottom:24px; }
  .footer-top>.brand { width:148px; }.footer-top p { grid-column:1/-1; grid-row:2; }
  .footer-contact { grid-column:1; grid-row:3; margin-left:0; width:fit-content; }
  .back-top { grid-column:2; grid-row:3; margin:0; }
  .footer-bottom { gap:10px 24px; padding-top:14px; }.footer-bottom>div { gap:15px; }
  .preview-note { flex-basis:100%; font-size:11px; }
  .menu-dialog[open] { display:block; }.menu-art { display:none; }
  .menu-sheet { padding:24px; min-height:100dvh; }
  .menu-sheet-top .brand { width:155px; }
  .overlay-nav { padding-block:38px; gap:10px; }.overlay-nav a { font-size:32px; line-height:1.25; }
  .menu-bottom { padding-top:20px; }
  .lightbox-top { inset:10px 12px auto; }.lightbox-figure { inset:70px 10px 114px; }
  .lightbox-prev,.lightbox-next { top:auto; bottom:67px; background:#111c; }.lightbox-prev { left:12px; }.lightbox-next { right:12px; }
  .lightbox-thumbs { left:12px; right:12px; max-width:none; width:auto; transform:none; height:54px; bottom:8px; }
  .lightbox-thumbs button { min-width:64px; width:64px; height:40px; }
  .video-dialog { width:calc(100% - 20px); }.video-top { padding:10px 14px; }.video-top h2 { font-size:24px; }
  .video-placeholder { min-height:300px; }.video-placeholder-copy { padding:28px; }.video-placeholder-copy h3 { font-size:28px; }.video-placeholder-copy p { font-size:14px; }
  .external-video-consent { padding:28px 23px; }
  .page-heading { display:block; padding:38px 0 28px; }.page-heading h1 { font-size:42px; }.page-heading>p { margin-top:14px; font-size:15px; }
  .film-grid { gap:28px; grid-template-columns:1fr; }.film-card:first-child { grid-column:auto; }
  .film-card:first-child .film-poster,.film-poster { aspect-ratio:16/10; }.play-symbol { width:55px; height:55px; }
  .film-caption { gap:5px 12px; padding-top:13px; }.film-caption h2 { font-size:26px; }.film-caption small { font-size:12px; }
  .demo-notice { font-size:12px; margin:24px 0 35px; }.film-notes { margin-top:0; }
  .editorial-split { display:block; padding-block:38px; }.editorial-split>div+div { margin-top:27px; }
  .editorial-split>.reading { margin-top:24px; }.reading { font-size:15px; line-height:1.8; }
  .inline-links { gap:12px 26px; }.related-line { align-items:flex-start; flex-direction:column; gap:10px; padding-block:26px; font-size:13px; }
  .section-label { font-size:11px; margin-bottom:18px; }.section-intro { max-width:100%; margin-top:15px; }
  .work-intro { display:flex; flex-direction:column; align-items:stretch; gap:30px; padding:40px 0; }
  .work-copy h1 { font-size:46px; margin-bottom:22px; }.work-copy .lead { font-size:19px; }
  .section-index { margin-top:20px; }.work-photo { height:360px; min-height:0; }
  .disclosure summary { font-size:25px; padding:22px 0; gap:16px; }.disclosure summary>span:first-child { gap:14px; }
  .disclosure-body { font-size:15px; }.service-list .disclosure-body { padding-left:0; }
  .plain-definitions>div { grid-template-columns:1fr; }.plain-definitions dd { font-size:15px; }
  .process-section { padding-block:38px; }.process-list { grid-template-columns:1fr; gap:24px; margin-top:24px; }
  .process-list li { padding-top:20px; }.process-list h3 { font-size:25px; margin:10px 0; }
  .faq-section .disclosure summary { font-size:16px; padding-block:20px; }
  .studio-intro { display:block; padding:42px 0 30px; }.studio-intro h1 { font-size:44px; }
  .studio-intro-text { margin-top:26px; }.studio-intro-text>p:first-child { font-size:18px; }.studio-intro-text p.muted { font-size:15px; }
  .preview-inline { font-size:12px; padding-block:16px; }.studio-body { display:block; padding:35px 0; }
  .studio-body>div>h2,.studio-prepare>h2 { font-size:30px; margin-bottom:24px; }.studio-info>div { grid-template-columns:85px 1fr; gap:17px; padding-block:19px; }
  .studio-prepare { border-left:0; border-top:1px solid var(--line); padding:32px 0 0; margin-top:35px; }.prepare-list li { margin-top:24px; }
  .studio-note { padding-top:34px; }.studio-note .reading { margin-top:24px; }
  .contact-story-copy { padding:34px 24px 30px; }.contact-story-copy h1 { font-size:42px; margin-bottom:18px; }
  .contact-story-copy>p:not(.section-label) { font-size:15px; }.contact-story::after { background:linear-gradient(90deg,#0e0e0ef5,#0e0e0eaa); }
  .contact-story-copy .section-label { margin-bottom:12px; }.direct-contact { margin-top:16px; }.direct-contact .micro { font-size:12px; }
  .studio-contact-link { margin-top:19px; padding-top:16px; font-size:12px; }
  .enquiry-panel { padding:32px 24px; }.enquiry-panel h2 { font-size:30px; }.form-intro { font-size:13px; }
  .date-section { grid-template-columns:1fr; gap:18px; margin-block:23px 28px; }.calendar { padding:11px 12px 14px; }
  .calendar-week { font-size:12px; }.calendar-days button,.calendar-blank { height:42px; font-size:14px; }
  .month-selectors select { font-size:15px; }.date-entry input { font-size:16px; width:165px; }
  .date-aside { display:block; border-left:1px solid var(--sand); padding-left:17px; }.date-aside strong { font-size:23px; }
  .date-aside .selection-kicker { margin-bottom:5px; }.date-aside #date-disclaimer { margin-top:8px; font-size:12px; }
  .form-section-heading { display:block; padding-top:25px; }.form-section-heading h3 { font-size:25px; }.form-section-heading p { margin-top:9px; }
  .form-fields { gap:20px 14px; }.field label { font-size:13px; }.field input,.field textarea,.field select { font-size:16px; }
  .form-bottom { padding-top:22px; }.form-bottom p { font-size:12px; }.submit-button { width:100%; }
  .form-status { font-size:13px; padding:15px; }.preview-form-note { font-size:12px; }
  .consent-dialog { padding:33px 24px 24px; }.consent-dialog h2 { font-size:30px; }.consent-row { gap:16px; }.consent-row>span { max-width:75px; }
  .consent-actions { flex-direction:column; }.consent-banner { display:block; left:10px; right:10px; bottom:10px; padding:19px; }.consent-banner>div { margin-top:13px; gap:10px 18px; }
  .legal-main section h2 { font-size:27px; }.legal-main section p { font-size:15px; }.draft-notice { padding:19px; font-size:13px; }
  .not-found .section-label { margin-top:50px; }
}
@media(max-width:480px) {
  .form-fields { grid-template-columns:1fr; }.field--wide { grid-column:auto; }
  .footer-bottom>div { width:100%; }
  .contact-story-copy h1 { font-size:40px; }
}
@media(max-width:360px) {
  :root { --gutter:20px; }.site-header { padding-inline:18px; }.brand--header { width:140px; }
  .enquiry-panel,.contact-story-copy { padding-inline:18px; }.calendar { padding-inline:8px; }
  .calendar-heading .icon-button { width:31px; }.month-selectors select { font-size:14px; }
  .overlay-nav a { font-size:29px; }.studio-info>div { grid-template-columns:1fr; gap:8px; }
  .work-copy h1,.studio-intro h1 { font-size:40px; }
}
@media(max-height:500px) and (min-width:600px) {
  .menu-sheet { padding:20px 30px; }.overlay-nav { padding-block:20px; gap:5px; }.overlay-nav a { font-size:26px; }
  .menu-bottom { padding-top:15px; }.lightbox-figure { inset:58px 70px 68px; }.lightbox-thumbs { height:46px; bottom:6px; }.lightbox-thumbs button { height:34px; min-width:60px; width:60px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}

/* A failed image must not leave a silent blank viewer. */
.lightbox-status { position:absolute; z-index:3; top:50%; left:50%; transform:translate(-50%,-50%); max-width:460px; width:calc(100% - 100px); padding:22px; background:#151515ed; border:1px solid var(--line); color:var(--ivory); font-size:15px; line-height:1.6; }
.lightbox-status:empty { display:none; }

/* v4 — refinement of the approved portfolio, not a new visual direction. */
.site-header .menu-trigger { display:none; }
.header-nav { gap:clamp(20px,2.2vw,34px); }
.header-nav a { font-size:15px; }
.field label,.required-note,.optional-fields label { font-size:14px; }
.footer-bottom,.footer-bottom button { font-size:13px; }
.footer-bottom a,.footer-bottom button { min-height:40px; }
.work-copy>p:not(.section-label):not(.lead),.reading { line-height:1.75; }
.work-copy .lead { margin-bottom:14px; }
.work-intro { padding-block:56px 60px; }
.work-photo { height:clamp(410px,36vw,510px); }
.pricing-notes .reading { max-width:640px; }
.pricing-notes .text-link { margin-top:16px; color:var(--ivory); }
.work-main .faq-section { padding-bottom:36px; }

/* Studio contact is in the opening layout, before any preparation advice. */
.studio-intro,.studio-body { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(36px,5vw,72px); }
.studio-intro { align-items:start; row-gap:18px; padding-block:56px 44px; }
.studio-intro h1 { font-size:clamp(42px,4vw,60px); max-width:640px; }
.studio-title { padding-top:0; }
.studio-title,.studio-essential { align-self:first baseline; }
.studio-intro>.section-label { grid-column:1/-1; margin:0; padding-top:12px; }
.studio-essential { min-width:0; scroll-margin-top:calc(var(--header) + 24px); }
.studio-essential .studio-info>div { grid-template-columns:90px 1fr; gap:22px; padding-block:16px; }
.studio-essential .studio-info dt { color:var(--muted); }
.studio-essential .studio-info dd { color:var(--ivory); font-size:16px; }
.studio-actions { padding-top:18px; }
.studio-direct { color:var(--muted); font-size:14px; }
.studio-direct .contact-lines { flex-direction:row; flex-wrap:wrap; gap:8px 24px; }
.studio-lead { max-width:490px; margin-top:22px; color:var(--muted); font-size:18px; line-height:1.7; }
.studio-price-link { margin-top:16px; }
.studio-intro-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 28px; margin-top:16px; }
.studio-intro-links .studio-price-link { margin-top:0; }
.studio-price-link svg { transform:rotate(90deg); }
.studio-price-link:hover svg { transform:translateY(3px) rotate(90deg); }
.document-prices { width:100%; border-collapse:collapse; margin-block:0 20px; font-size:16px; line-height:1.55; }
.document-prices th,.document-prices td { padding:18px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
.document-prices th:first-child { padding-left:0; }
.document-prices thead th { padding-top:0; padding-bottom:14px; color:var(--muted); font-size:13px; font-weight:400; }
.document-prices tbody th { font-weight:400; }
.document-prices td { width:1%; white-space:nowrap; color:var(--muted); font-variant-numeric:tabular-nums; }
.document-prices th:nth-child(2),.document-prices td:nth-child(2) { text-align:right; }
.document-prices th:last-child,.document-prices td:last-child { padding-right:0; text-align:right; }
.document-prices td:last-child { color:var(--ivory); font-weight:500; }
.document-format { display:block; margin-top:5px; color:var(--muted); font-size:13px; }
.document-included { font-size:14px; line-height:1.75; }
.studio-prepare .text-link { margin-top:14px; }
.studio-actions [data-studio-map] { margin-top:10px; }
.studio-body { padding-block:36px 48px; border-top:1px solid var(--line); scroll-margin-top:calc(var(--header) + 20px); }
.studio-body>div>h2,.studio-prepare>h2 { margin-bottom:28px; font-size:clamp(28px,2.4vw,34px); }
.studio-service p { color:var(--muted); max-width:530px; }
.studio-service { min-width:0; }
.studio-prepare { padding-left:0; border-left:0; }
.prepare-list li:first-child { margin-top:0; }

/* One date summary; manual date is an alternative, not a second required step. */
.enquiry-panel { padding-top:36px; }
.enquiry-panel h2 { font-size:30px; }
.date-section { display:block; max-width:480px; margin:18px 0 24px; }
.calendar { padding:10px 14px 12px; }
.calendar-days button,.calendar-blank { height:44px; font-size:14px; }
.month-selectors select { font-size:16px; }
.calendar-week { font-size:13px; }
.date-feedback { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:start; gap:0 16px; padding-top:8px; }
.selected-date { flex:1 1 180px; min-height:44px; display:flex; align-items:center; font-size:14px; line-height:1.5; color:var(--muted); }
.selected-date .has-date { color:var(--ivory); font-weight:500; }
.manual-date summary { cursor:pointer; font-size:14px; min-height:44px; display:flex; align-items:center; color:var(--sand); text-decoration:underline; text-underline-offset:5px; list-style:none; }
.manual-date summary::-webkit-details-marker { display:none; }
.manual-date[open] { flex-basis:100%; }
.manual-date[open] summary { width:fit-content; }
.manual-date-entry { display:grid; gap:7px; padding:4px 0 14px; }
.manual-date-entry label { font-size:14px; }
.manual-date-entry input { width:100%; min-height:48px; padding:11px 13px; font-size:16px; color:var(--ivory); background:#121212; border:1px solid #ffffff37; border-radius:0; }
.manual-date-entry input::placeholder { color:#a6a098; }
.manual-date-entry input[aria-invalid=true] { border-color:var(--danger); }
.date-disclaimer { font-size:13px; color:var(--muted); margin:2px 0 0; line-height:1.6; }
.date-section>.field-error:empty { display:none; }
.date-section>.field-error:not(:empty) { margin:4px 0 8px; }
.required-note { color:var(--muted); margin:0 0 16px; }
.form-fields { gap:20px 18px; }
.form-optional { grid-column:1/-1; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:2px; }
.form-optional>summary { list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:0 4px; position:relative; min-height:58px; padding:16px 26px 16px 0; font-size:14px; line-height:1.6; cursor:pointer; }
.form-optional>summary::-webkit-details-marker { display:none; }
.form-optional>summary>span { color:var(--muted); }
.form-optional>summary::after { content:'+'; position:absolute; right:0; top:16px; font-size:18px; line-height:24px; color:var(--sand); }
.form-optional[open]>summary::after { content:'−'; }
.optional-fields { display:grid; gap:18px; padding:0 0 22px; }
.form-bottom { padding-top:20px; }
.studio-contact-link { margin:28px 0 0; max-width:none; font-size:14px; }
.contact-story-copy h1 { text-wrap:balance; }
.field input::placeholder,.field textarea::placeholder { color:#a6a098; }
.form-status,.preview-form-note { font-size:14px; }
.film-heading { padding-bottom:30px; }

@media(max-width:1000px) {
  .site-header .menu-trigger { display:flex; margin-left:auto; }
  .date-section { max-width:480px; }
  .work-intro { padding-block:40px 44px; }
  .work-photo { height:450px; }
  .studio-intro { padding-block:44px 36px; }
  .studio-intro h1 { font-size:42px; }
}
@media(min-width:761px) and (max-width:1000px) {
  .studio-intro { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); column-gap:32px; }
  .studio-body { grid-template-columns:minmax(0,1fr); gap:36px; }
  .studio-prepare { border-top:1px solid var(--line); padding-top:32px; }
  .prepare-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
  .prepare-list li { margin-top:0; padding-left:0; padding-top:26px; }
  .prepare-list li::before { top:0; }
  .prepare-list p { font-size:15px; }
  .studio-prepare .text-link { gap:10px; font-size:13px; }
}
@media(max-width:760px) {
  .contact-story { display:block; background:var(--ink); }
  .contact-photo,.contact-story::after { display:none; }
  .contact-story-copy { padding:30px var(--gutter) 18px; max-width:680px; }
  .contact-story-copy h1 { font-size:38px; line-height:1.13; margin-bottom:13px; text-wrap:normal; }
  .contact-story-copy>p { font-size:15px!important; line-height:1.6!important; }
  .contact-story-copy .direct-contact { margin-top:12px; }
  .contact-story-copy .direct-contact:has([data-preview]) { display:none; }
  .contact-story-copy .contact-lines { gap:4px; }
  .contact-story-copy .contact-lines a { min-height:40px; }
  .enquiry-panel { padding:10px var(--gutter) 28px; }
  .enquiry-panel h2 { font-size:25px; }
  .date-section { max-width:none; margin:14px 0 22px; }
  .calendar { padding:10px 10px 12px; }
  .calendar-heading { margin-bottom:6px; }
  .month-selectors select { font-size:16px; }
  .calendar-week span { padding-block:4px; }
  .calendar-days button,.calendar-blank { height:42px; font-size:14px; }
  .date-feedback { gap:0 8px; }
  .selected-date { flex-basis:170px; font-size:14px; }
  .manual-date summary { font-size:14px; }
  .date-disclaimer { font-size:13px; }
  .required-note { font-size:13px; margin-bottom:15px; }
  .form-fields { grid-template-columns:1fr; gap:18px; }
  .form-optional { grid-column:auto; }
  .field label { font-size:14px; margin-bottom:7px; }
  .field input,.field select,.field textarea { font-size:16px; }
  .studio-contact-link { margin-top:24px; padding-top:18px; font-size:13px; }
  .form-bottom p { font-size:13px; }
  .preview-form-note { font-size:12px; }
  .work-intro { padding-block:36px 38px; gap:26px; }
  .work-copy h1 { font-size:42px; line-height:1.15; }
  .work-copy>p:not(.section-label):not(.lead) { font-size:16px; line-height:1.7; }
  .work-photo { height:330px; }
  .reading,.disclosure-body,.faq-section .disclosure-body { font-size:16px; line-height:1.7; }
  .disclosure summary { font-size:25px; }
  .faq-section .disclosure summary { font-size:16px; }
  .studio-intro { display:block; padding:30px 0 24px; }
  .studio-intro>.section-label { padding-top:0; margin-bottom:18px; }
  .studio-title { padding-top:0; }
  .studio-intro h1 { font-size:38px; line-height:1.14; }
  .studio-essential { margin-top:32px; }
  .studio-essential .studio-info>div { grid-template-columns:76px 1fr; gap:16px; padding-block:14px; }
  .studio-info dt,.studio-info dd { font-size:14px; }
  .studio-essential .studio-info dd { font-size:14px; }
  .studio-actions { padding-top:16px; }
  .studio-direct .contact-lines { flex-direction:column; gap:4px; }
  .studio-body { padding-block:32px 36px; }
  .studio-body>div>h2,.studio-prepare>h2 { font-size:30px; margin-bottom:24px; }
  .studio-prepare { margin-top:32px; padding:28px 0 0; }
  .studio-service p,.prepare-list p { font-size:15px; line-height:1.75; }
  .studio-lead { font-size:16px; margin-top:18px; line-height:1.65; }
  .studio-price-link { margin-top:12px; }
  .document-prices { font-size:15px; }
  .document-prices th,.document-prices td { padding-block:16px; padding-inline:8px; }
  .document-prices thead th { font-size:12px; padding-top:0; padding-bottom:12px; }
  .document-format { font-size:13px; }
  .prepare-list li:first-child { margin-top:0; }
  .film-heading { padding:34px 0 26px; }
}
@media(max-width:360px) {
  .contact-story-copy h1 { font-size:34px; }
  .studio-intro h1 { font-size:34px; }
  .selected-date { flex-basis:150px; font-size:13px; }
  .manual-date summary { font-size:13px; }
  .studio-essential .studio-info>div { grid-template-columns:70px 1fr; gap:12px; }
}


/* v5 — final QA: steady layout, readable fields and resilient navigation. */
:root { --field-line:#706a62; }
.field input,.field select,.field textarea,.manual-date-entry input { border-color:var(--field-line); }
.field input:hover,.field select:hover,.field textarea:hover,.manual-date-entry input:hover { border-color:#a69b8d; }
.field input:focus,.field select:focus,.field textarea:focus,.manual-date-entry input:focus { border-color:var(--sand); }
.field,.calendar,.manual-date-entry { scroll-margin-block:calc(var(--header) + 24px) 24px; }
.calendar-days { grid-template-rows:repeat(6,46px); }
.calendar-days button,.calendar-blank { height:auto; min-height:0; }
.calendar-days button:focus-visible { outline-offset:-3px; }
.contact-main { max-width:1920px; margin-inline:auto; }
.enquiry-panel { --form-width:600px; }
.enquiry-panel>h2,.enquiry-panel>form,.enquiry-panel>.studio-contact-link { width:100%; max-width:var(--form-width); margin-inline:auto; }
.date-section { max-width:none; }
.page-contact .footer-contact { display:none; }
.page-contact .back-top { margin-left:auto; }
.hero-photo { touch-action:pan-y pinch-zoom; }
.floating-menu { top:max(18px,env(safe-area-inset-top)); right:max(22px,env(safe-area-inset-right)); }
.menu-sheet { padding-bottom:max(36px,env(safe-area-inset-bottom)); }
.lightbox-top { top:max(14px,env(safe-area-inset-top)); right:max(22px,env(safe-area-inset-right)); }
.lightbox-thumbs { bottom:max(18px,env(safe-area-inset-bottom)); }
/* If JS is unavailable, do not advertise inert buttons as usable navigation. */
html:not(.js) .site-header,html:not(.js) .floating-menu,html:not(.js) .hero-controls,
html:not(.js) .back-top,html:not(.js) [data-consent-open] { display:none; }
html:not(.js) .home-hero { margin-top:0; }
html:not(.js) body:not(.page-home) main { padding-top:0; }
html:not(.js) .hero-photo { pointer-events:none; }
.fallback-nav { display:flex; flex-wrap:wrap; gap:0 24px; padding:12px var(--gutter); border-bottom:1px solid var(--line); background:var(--ink); }
.fallback-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:15px; }
@media(min-width:761px) and (max-width:1000px) {
 .editorial-split { grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr); gap:36px; }
 .editorial-split h2 { font-size:30px; }
 .work-photo { height:400px; }
}
@media(max-width:760px) {
 .calendar-days { grid-template-rows:repeat(6,42px); }
 .calendar-days button,.calendar-blank { height:auto; }
 .contact-story-copy { padding-bottom:16px; }
 .page-contact .footer-top .back-top { grid-row:1; margin-left:0; }
 .floating-menu { top:max(12px,env(safe-area-inset-top)); right:max(14px,env(safe-area-inset-right)); }
 .menu-sheet { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
 .lightbox-top { top:max(10px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); }
 .lightbox-thumbs { bottom:max(8px,env(safe-area-inset-bottom)); }
 .lightbox-prev,.lightbox-next { bottom:calc(67px + env(safe-area-inset-bottom)); }
 .lightbox-figure { bottom:calc(114px + env(safe-area-inset-bottom)); }
}
@media(forced-colors:active) {
 .calendar-days button[aria-pressed=true] { border:2px solid Highlight; background:Highlight; color:HighlightText; }
 .header-nav a[aria-current] { text-decoration:underline; }
 .field input,.field select,.field textarea,.manual-date-entry input { border-color:ButtonText; }
}

/* CMS crops belong to the public site; shared data imports remain side-effect free. */
@media(max-width:760px){img[data-cms-image]{object-position:var(--cms-mobile-position,50% 50%)!important}}
