/* Gate 3 final refinement — additive rules preserve the established visual system. */
.nav-book{border:1px solid currentColor;padding:11px 15px!important;min-height:42px;display:inline-flex;align-items:center}
.nav-book:hover{background:var(--ink);color:var(--bg)}
.hero-actions,.landing-actions,.booking-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cta-secondary{background:transparent!important;color:inherit!important;border-color:currentColor!important}
.cta-secondary:hover{background:var(--ink)!important;color:var(--bg)!important;border-color:var(--ink)!important}
.hero .cta-secondary{border:0!important;border-bottom:1px solid currentColor!important;border-radius:0;padding-inline:0!important}
.hero .cta-secondary:hover{background:transparent!important;color:#ff755b!important}
.booking-bridge{margin:0 5% 90px;padding:34px 0;border-block:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px}
.booking-bridge h2{font-size:clamp(36px,4.5vw,68px);max-width:780px}
.booking-bridge p{font-size:14px;line-height:1.65;color:var(--muted);max-width:510px;margin-top:18px}
.booking-card{max-width:1040px;margin:0 0 50px auto;padding:30px;border:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;background:color-mix(in srgb,var(--bg) 45%,transparent)}
.booking-card h3{font-size:clamp(28px,3vw,46px);font-weight:400;letter-spacing:-.04em;line-height:1.08}
.booking-card p{font-size:13px;line-height:1.65;color:var(--muted);max-width:520px;margin-top:12px}
.form-status{min-height:28px;margin-top:24px;font-size:13px;line-height:1.6}
.form-status[data-state=success]{color:#356736}.form-status[data-state=error]{color:#9a382f}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
#briefForm[aria-busy=true]{opacity:.65;pointer-events:none}
#briefForm button[disabled]{cursor:wait}
.direct-contact{margin-top:35px;font-size:13px;color:var(--muted)}
.direct-contact a{text-decoration:underline;text-underline-offset:4px;color:var(--ink)}
.intent-collage{isolation:isolate;border-radius:2px;background:#0e100d!important}
.intent-collage:before{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(145deg,transparent 48%,#080a0673 77%,#080a06d6);pointer-events:none}
.intent-collage:after{content:"THE CUT";position:absolute;z-index:4;right:21px;top:20px;color:#f5f0e7;font-size:7px;letter-spacing:.22em}
.intent-collage .collage-main{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);transform:scale(1.035)}
.intent-collage .collage-slice{position:absolute;width:46%;height:38%;z-index:3;object-fit:cover;border:1px solid #f4f0e744;box-shadow:0 25px 60px #0007;transition:transform 1.4s cubic-bezier(.2,.7,.2,1);will-change:transform}
.intent-collage .slice-a{right:-3%;bottom:8%;clip-path:polygon(0 14%,100% 0,100% 100%,0 100%)}
.intent-collage .slice-b{left:5%;top:7%;width:30%;height:27%;clip-path:polygon(0 0,100% 0,83% 100%,0 100%)}
.intent-collage figcaption{z-index:4}
.landing-hero:hover .collage-main{transform:scale(1.075)}
.landing-hero:hover .slice-a{transform:translate(-10px,-8px)}
.landing-hero:hover .slice-b{transform:translate(8px,9px)}
.landing-signal{position:absolute;z-index:4;left:20px;top:20px;display:flex;gap:8px;color:#f5f0e7;font-size:7px;letter-spacing:.14em}
.landing-signal span{border:1px solid #f5f0e75c;padding:8px 9px;background:#0a0c0988;backdrop-filter:blur(8px)}
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
[data-reveal].is-visible{opacity:1;transform:none}
.landing-page .landing-work-list>div{position:relative;padding-left:0;transition:padding-left .35s ease}
.landing-page .landing-work-list>div:hover{padding-left:16px}
.landing-page .landing-work-list>div:before{content:"";position:absolute;left:0;top:33px;width:0;height:1px;background:var(--ink);transition:width .35s ease}
.landing-page .landing-work-list>div:hover:before{width:8px}
dialog#bookingDialog{width:min(590px,calc(100% - 40px));border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:42px;box-shadow:0 30px 100px #0006}
dialog#bookingDialog::backdrop{background:#080a07bd;backdrop-filter:blur(8px)}
dialog#bookingDialog h2{font-size:clamp(42px,6vw,66px);margin:20px 0;letter-spacing:-.055em}
dialog#bookingDialog p:not(.eyebrow){font-size:15px;line-height:1.7;color:var(--muted)}
.dialog-close{position:absolute;right:18px;top:16px;min-width:44px;min-height:44px;color:var(--ink);font-size:22px}
.dialog-actions{display:flex;gap:15px;align-items:center;margin-top:30px;flex-wrap:wrap}
dialog#bookingDialog.booking-live{width:min(1100px,calc(100% - 40px));max-height:calc(100dvh - 40px);padding:24px;overflow:auto;color-scheme:dark}
.booking-live-head{display:flex;align-items:end;justify-content:space-between;gap:28px;padding:4px 48px 20px 4px}
dialog#bookingDialog.booking-live h2{margin:8px 0 0;font-size:clamp(32px,4vw,50px)}
.booking-flow{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 90%,#fff 10%);min-height:520px}
.booking-time-panel,.booking-details-panel{padding:28px}.booking-time-panel{border-right:1px solid var(--line)}
.booking-flow label{display:grid;gap:8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.booking-flow input,.booking-flow select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:0;background:color-mix(in srgb,var(--bg) 86%,#fff 14%);color:var(--ink);font:inherit;font-size:15px;letter-spacing:0;text-transform:none;padding:0 14px}
.booking-timezone{max-width:420px}.booking-help,.booking-empty,.booking-status{font-size:13px!important;line-height:1.55!important;color:var(--muted);margin:8px 0 0}.booking-slots{display:grid;gap:22px;margin-top:25px;max-height:410px;overflow:auto;padding-right:8px;scrollbar-width:thin}
.booking-loading{padding:32px 0;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.booking-day h3{font-size:13px;font-weight:500;letter-spacing:.02em;margin:0 0 10px}.booking-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.booking-slot-grid button{min-height:42px;border:1px solid var(--line);color:var(--ink);font-size:13px;transition:background .18s ease,border-color .18s ease,color .18s ease}.booking-slot-grid button:hover,.booking-slot-grid button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#131610}
.booking-details-panel{display:grid;align-content:start;gap:17px}.booking-selection{min-height:48px;margin:0 0 4px!important;padding-bottom:16px;border-bottom:1px solid var(--line);color:var(--ink)!important;font-size:14px!important}.booking-phone-row{display:grid;grid-template-columns:1fr 1.15fr;gap:10px}.booking-flow .optional{font-size:10px;letter-spacing:0;text-transform:none}.booking-flow .cta{width:100%;margin-top:4px}.booking-flow .cta:disabled{opacity:.45;cursor:not-allowed}.booking-status[data-state="error"]{color:#e4a493}
.landing-page .landing-hero{min-height:720px}
.landing-page .landing-copy{position:relative;z-index:3}
.landing-page .landing-copy:after{content:"";position:absolute;width:110px;height:1px;background:var(--accent);left:0;bottom:-36px;transform:rotate(-18deg);transform-origin:left}

@media (max-width:1100px){
  .booking-bridge{grid-template-columns:1fr}.booking-actions{justify-content:flex-start}
  .landing-hero figure{height:500px}.landing-page .landing-hero{min-height:650px}
}
@media (max-width:820px){
  .booking-card{grid-template-columns:1fr;align-items:start}.booking-card .cta{width:100%}
  .landing-hero{grid-template-columns:1fr 1fr;gap:4%;padding-inline:4%}.landing-copy h1{font-size:7vw}
  .landing-hero figure{height:470px}.landing-signal{display:none}
}
@media (max-width:700px){
  .nav-book{border:0;padding:19px 0!important}.hero-actions,.landing-actions{align-items:stretch;flex-direction:column}.hero-actions .cta,.landing-actions .cta{width:100%}
  .hero .hero-actions{align-items:flex-start}.hero .hero-actions .cta{width:min(245px,100%)}
  .booking-bridge{margin:0 22px 55px;padding:28px 0;gap:26px}.booking-bridge h2{font-size:40px}.booking-actions{align-items:stretch;flex-direction:column}.booking-actions .cta{width:100%}
  .booking-card{padding:24px 20px;margin-bottom:38px}.booking-card h3{font-size:34px}
  .intent-collage .collage-slice{width:50%;height:40%}.intent-collage .slice-b{width:34%;height:29%}
  .landing-page .landing-hero{min-height:0}.landing-page .landing-copy:after{bottom:-18px}.landing-hero figure{height:340px}
  dialog#bookingDialog{padding:35px 24px}.dialog-actions{align-items:stretch;flex-direction:column}.dialog-actions .cta,.dialog-actions .text-link{width:100%}
  dialog#bookingDialog.booking-live{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:12px}.booking-live-head{align-items:flex-start;flex-direction:column;gap:10px;padding:8px 46px 14px 5px}.booking-live-head .text-link{font-size:12px}.booking-flow{grid-template-columns:1fr}.booking-time-panel{border-right:0;border-bottom:1px solid var(--line);padding:20px 16px}.booking-details-panel{padding:22px 16px}.booking-slots{max-height:330px}.booking-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-phone-row{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1;transform:none;transition:none}.intent-collage .collage-main,.intent-collage .collage-slice,.landing-work-list>div{transition:none!important;transform:none!important}
}
html.paused [data-reveal]{opacity:1;transform:none;transition:none}

/* The existing enquiry form is the closing chapter's clear destination. */
body:has(.hero) .war-contact form#briefForm{
  --form-field:#252922;
  --form-muted:#bbc1b2;
  --muted:var(--form-muted);
  color:var(--fi-ivory);
  color-scheme:dark;
  background:var(--fi-carbon);
  border:1px solid #555b4e;
  border-top:2px solid var(--fi-copper);
  box-shadow:0 18px 34px #17191614;
}
body:has(.hero) .war-contact #briefForm .form-grid{gap:28px 26px;margin-bottom:30px}
body:has(.hero) .war-contact #briefForm .form-grid label{color:var(--fi-ivory);font-weight:500}
body:has(.hero) .war-contact #briefForm .form-grid :is(input,select,textarea){
  color:var(--fi-ivory);
  background:var(--form-field);
  border-color:#828a78;
  padding:14px 12px;
  min-height:52px;
  margin-top:10px;
  font-weight:400;
  caret-color:var(--fi-copper);
}
body:has(.hero) .war-contact #briefForm .form-grid :is(input,textarea)::placeholder{color:var(--form-muted)}
body:has(.hero) .war-contact #briefForm .form-grid option{background:var(--form-field);color:var(--fi-ivory)}
body:has(.hero) .war-contact #briefForm .form-bottom p{color:var(--form-muted)}
body:has(.hero) .war-contact #briefForm .form-bottom .cta{
  min-height:60px;
  color:var(--fi-carbon);
  background:var(--fi-ivory);
  border-color:var(--fi-ivory);
  font-weight:500;
}
body:has(.hero) .war-contact #briefForm .form-bottom .cta:hover{color:var(--fi-carbon);background:var(--fi-copper);border-color:var(--fi-copper)}
body:has(.hero) .war-contact #briefForm :is(input,select,textarea,button,a):focus-visible{outline:2px solid var(--fi-copper);outline-offset:4px}
body:has(.hero) .war-contact #briefForm .form-status[data-state=success]{color:#c7dfaa}
body:has(.hero) .war-contact #briefForm .form-status[data-state=error]{color:#ffc0ad}
@media(max-width:700px){body:has(.hero) .war-contact #briefForm .form-grid{gap:25px;margin-bottom:26px}}
