/* Consultation only: scoped tokens leave the approved card and admin untouched. */
.dark-consult {
  color-scheme: dark;
  --bg: #1C1C1A;
  --surface: #292a25;
  --surface-2: #34362e;
  --stone: #F7F4ED;
  --stone-soft: #dedbd2;
  --stone-muted: #aaa99f;
  --stone-faint: #aaa99f;
  --line: rgba(183,170,152,.16);
  --line-strong: rgba(183,170,152,.3);
  --accent: #5F6A4E;
  --accent-ink: #F7F4ED;
  --danger: #dfac96;
  background-color: var(--bg);
  background-image: linear-gradient(180deg,#252622 0%,#20211e 34%,#1C1C1A 70%);
}
html:has(.dark-consult) { scroll-padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
.flow {
  max-width: 35rem;
  margin: auto;
  min-height: 100svh;
  padding: 0 max(24px,env(safe-area-inset-right)) 0 max(24px,env(safe-area-inset-left));
  display: flex;
  flex-direction: column;
}
.flow-header { padding-top: calc(18px + env(safe-area-inset-top)); }
.header-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; }
.flow-brand { width: 68px; min-height: 44px; display: flex; align-items: center; }
.flow-brand img { width: 100%; height: auto; }
.header-actions { display: flex; align-items: center; gap: 6px; }
.btn-reset { font-size: 12px; min-height: 44px; padding: 10px; }
.flow-exit { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--stone-muted); }
.flow-exit svg { display: none; }
.flow-form { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.flow-body { flex: 1; padding: 20px 0 24px; }
.phase-label { font-size: 15px; font-style: italic; line-height: 1.4; color: #b7aa98; margin-bottom: 8px; }
.step-heading { font-size: clamp(30px,7.7vw,36px); max-width: 460px; }
.step-hint { margin-top: 10px; font-size: 13px; color: var(--stone-muted); line-height: 1.6; }
.progress { margin-top: 18px; }
.progress-track { height: 2px; background: var(--line); border-radius: 4px; overflow: hidden; }
.progress-fill { height: 100%; background: var(--accent); transition: width 200ms ease; }
.step { animation: step-in 200ms ease-out; }
@keyframes step-in { from { opacity: .4; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.step > .field:first-of-type { margin-top: 20px; }
.dark-consult .field { margin-top: 18px; }
.dark-consult .input { border-color: var(--line-strong); background: var(--surface); border-radius: 14px; scroll-margin-bottom: 110px; }
.dark-consult .input::placeholder { color: #aaa99f; }
.dark-consult .input:focus { border-color: #b7aa98; box-shadow: 0 0 0 3px rgba(183,170,152,.1); }
.dark-consult .input[aria-invalid=true] { border-color: var(--danger); }
.dark-consult :focus-visible { outline-color: #b7aa98; }
.choice-group { display: flex; flex-direction: column; gap: 7px; }
.choice { display: flex; align-items: center; gap: 12px; position: relative; min-height: 52px; padding: 12px 15px; border: 1px solid transparent; background: var(--surface); border-radius: 14px; cursor: pointer; transition: border-color 180ms,background 180ms,transform 180ms; }
.choice input,.chip input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice-label { font-size: 14px; flex: 1; order: -1; }
.check { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: transparent; transition: background 180ms,color 180ms; }
.check svg { width: 13px; height: 13px; stroke-width: 2.3; }
.choice:has(input:checked) { border-color: #5F6A4E; background: #303627; }
.choice input:checked + .check { background: var(--accent); border-color: var(--accent); color: #F7F4ED; }
.choice:has(input:focus-visible),.chip:has(input:focus-visible) { outline: 2px solid #b7aa98; outline-offset: 3px; }
.choice:active { transform: scale(.985); }
.conditional { margin-top: 14px; }
.conditional:not([hidden]) { animation: step-in 200ms ease-out; }
.chip-group { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; cursor: pointer; border-radius: 12px; }
.chip span { display: flex; align-items: center; min-height: 44px; padding: 9px 13px; background: var(--surface); border: 1px solid transparent; border-radius: 12px; font-size: 13px; transition: background 180ms,border-color 180ms; }
.chip input:checked + span { color: #F7F4ED; background: #3E462E; border-color: #5F6A4E; }
.flow-footer { display: flex; align-items: center; gap: 12px; position: sticky; bottom: 0; padding: 14px 0 calc(14px + env(safe-area-inset-bottom)); background: #1C1C1A; box-shadow: 0 -12px 20px -14px #1C1C1A; z-index: 4; }
.dark-consult .btn-primary { min-height: 54px; border: 0; border-radius: 17px; background: #5F6A4E; box-shadow: inset 0 1px 0 rgba(247,244,237,.06); }
.dark-consult .btn-primary:active { background: #3E462E; transform: scale(.975); }
.btn-next { flex: 1; }
.btn-back { padding-left: 8px; padding-right: 16px; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.photo-drop { display: flex; align-items: center; justify-content: center; min-height: 56px; gap: 10px; padding: 15px; border: 1px solid var(--line-strong); border-radius: 16px; cursor: pointer; background: var(--surface); transition: background 180ms,transform 180ms; }
.photo-drop:active { transform: scale(.985); background: var(--surface-2); }
.photo-drop svg { width: 20px; height: 20px; }
.drop-title { font-size: 15px; }
.drop-hint { font-size: 11px; color: var(--stone-muted); margin-top: 4px; text-align: center; }
#photo-input:focus-visible + .photo-drop { outline: 2px solid #b7aa98; outline-offset: 4px; }
.photo-count,.photo-note { font-size: 12px; color: var(--stone-muted); }
.photo-count { margin-top: 12px; }
.photo-note { margin-top: 8px; line-height: 1.6; }
.photo-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 8px; }
.photo-item { position: relative; aspect-ratio: 1; border-radius: 14px; overflow: hidden; background: var(--surface-2); }
.photo-open { display: block; width: 100%; height: 100%; padding: 0; background: transparent; }
.photo-item img { width: 100%; height: 100%; object-fit: cover; }
.photo-remove { position: absolute; right: 4px; top: 4px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #1C1C1A; color: #F7F4ED; }
.photo-remove svg { width: 18px; height: 18px; }
.photo-fail { font-size: 12px; padding: 50px 12px 12px; color: var(--danger); }
.review { margin-top: 22px; background: var(--surface); border-radius: 18px; padding: 0 18px; }
.review-section { padding: 8px 0 16px; border-bottom: 1px solid var(--line); }
.review-section:last-child { border: 0; }
.rev-head { display: flex; align-items: center; justify-content: space-between; }
.rev-head h3 { font-family: var(--font-sans); font-size: 12px; letter-spacing: 0; color: var(--stone-muted); }
.rev-edit { min-height: 44px; min-width: 44px; background: transparent; color: #b7aa98; font-size: 12px; padding: 8px; border-radius: 8px; }
.rev-value { white-space: pre-line; overflow-wrap: anywhere; font-size: 14px; line-height: 1.65; }
.rev-empty { color: var(--stone-muted); }
.review-photos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.review-photos button { width: 64px; height: 64px; border-radius: 8px; overflow: hidden; padding: 0; background: var(--surface-2); }
.review-photos img { width: 100%; height: 100%; object-fit: cover; }
.rev-disclaimer { font-size: 12px; line-height: 1.7; color: var(--stone-muted); margin: 20px 2px 0; }
#turnstile-wrap { margin-top: 20px; }
.has-result .header-actions { visibility: hidden; }
.result { text-align: center; padding: 60px 0 30px; }
.result-icon { display: grid; place-items: center; margin: 0 auto 28px; width: 48px; height: 48px; border-radius: 50%; background: #303627; color: #c8cfb8; animation: step-in 220ms ease-out; }
.result-icon svg { width: 26px; height: 26px; }
.result h2 { font-size: 36px; }
.result p { font-size: 14px; color: var(--stone-muted); margin: 20px auto; max-width: 320px; }
.result .reference { font-size: 13px; letter-spacing: .045em; color: var(--stone); margin: 18px 0 26px; font-variant-numeric: tabular-nums; }
.result-note { font-size: 13px; line-height: 1.7; color: var(--stone-muted); max-width: 310px; margin: 0 auto 30px; }
.result .btn { margin-top: 10px; }
.is-failure .result-icon { background: var(--surface); color: var(--danger); }
.dark-consult .photo-dialog { background: #252622; border: 1px solid var(--line-strong); animation: step-in 180ms ease-out; }
@media (hover:hover) { .dark-consult .btn-primary:hover { background: #3E462E; } .photo-drop:hover { background: var(--surface-2); } }
@media (min-width:760px) { .flow { padding: 0 32px; } .flow-header { padding-top: 32px; } .flow-brand { width: 76px; } .flow-body { padding-top: 28px; } .flow-footer { padding-bottom: 28px; } .step-heading { font-size: 36px; } .result { padding-top: 90px; } }
@media (prefers-reduced-motion:reduce) { .choice:active,.photo-drop:active,.dark-consult .btn-primary:active { transform: none; } }

/* Phase 4 — a focused consultation desk, with a compact mobile flow. */
.consult-intro{display:none}.dark-consult .flow{max-width:38rem}.flow-header{border-bottom:1px solid #b7aa982b;padding-bottom:18px}.flow-body{padding-top:32px}.dark-consult .phase-label{font-size:13px;letter-spacing:.01em;color:#b7aa98;margin-bottom:12px}.step-heading{font-size:clamp(33px,8vw,42px);line-height:1.1;letter-spacing:-.035em}.step-hint{font-size:13px;line-height:1.7;margin-top:14px}.progress{margin-top:24px;margin-bottom:24px}.progress-track{height:3px;background:#b7aa9828}.progress-fill{background:#a0ab89}.choice-group{gap:10px}.choice{border:1px solid #ffffff10;border-radius:8px;min-height:58px;padding:15px 17px;background:#282b24}.choice-label{font-size:14px;line-height:1.5}.choice:has(input:checked){background:#343f2a;border-color:#8c9a73}.check{width:23px;height:23px;border-color:#8c8e7e}.dark-consult .input{border-radius:8px;min-height:56px;border-color:#77796e;background:#252821}.dark-consult .field{margin-top:22px}.dark-consult .btn-primary{border-radius:8px;min-height:56px}.flow-footer{gap:16px;padding-top:18px;background:#1c1c1af5;backdrop-filter:blur(10px);border-top:1px solid #b7aa9828;box-shadow:none}.btn-back{min-width:76px}.review{border:1px solid #ffffff20;border-radius:10px;background:#252821;padding:4px 22px}.review-section{padding:12px 0 18px}.photo-drop{min-height:100px;flex-direction:column;gap:10px;border:1px dashed #8e907c;border-radius:10px;background:#252821}.photo-item{border-radius:8px}.chip span{border-radius:6px;padding:12px 16px}.result{padding-top:72px}.result h2{font-size:44px}.result-icon{width:60px;height:60px;border:1px solid #7d8a61}.dark-consult .result p{font-size:15px}.dark-consult .photo-dialog{border-radius:16px}
@media(min-width:1000px){.dark-consult .flow{max-width:1240px;display:grid;grid-template-columns:1fr 1fr;gap:0 90px;padding:0 48px 48px}.flow-header{grid-column:1/-1;margin-bottom:48px;padding-top:28px}.consult-intro{display:block;padding:48px 0;align-self:start;position:sticky;top:36px}.consult-intro .eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:#b7aa98;margin-bottom:32px}.consult-intro h2{font-size:clamp(48px,4.5vw,64px);line-height:1.08}.consult-intro h2 em{color:#b7aa98}.consult-intro>p:not(.eyebrow){margin-top:28px;max-width:340px;color:#bdbcb0;font-size:16px;line-height:1.8}.consult-summary{display:flex;flex-direction:column;gap:18px;border-top:1px solid #ffffff26;padding-top:26px;margin-top:44px;max-width:320px;font-size:12px;color:#b7aa98}.consult-intro .consult-assurance{font-size:11px!important;line-height:1.8}.flow-form{background:#23261f;border:1px solid #ffffff20;border-radius:12px;padding:8px 30px 0;box-shadow:var(--shadow-medium);min-height:720px}.flow-footer{background:#23261ff5;padding-bottom:22px}.flow-body{padding-top:28px}.step-heading{font-size:36px}}
@media(max-width:600px){.flow-header{padding-bottom:14px}.flow-brand{width:58px}.flow-body{padding-top:28px}.choice{min-height:56px}.flow-footer{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.dark-consult .photo-dialog{border-radius:20px 20px 0 0}}

.progress-meta{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:#aaa99f;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.dark-consult .progress-meta .phase-label{font-family:var(--font-sans);font-style:normal;font-size:10px;letter-spacing:.08em;margin:0}
/* Premium public consultation pass: retain the original form contract. */
.dark-consult .input{min-height:58px;border-radius:12px;border-color:#b7aa9845;transition:border-color 160ms,box-shadow 160ms,background 160ms}
.dark-consult .input:focus{border-color:#c7d2b1;background:#30352a;box-shadow:0 0 0 4px #9cac791c}
.dark-consult .choice{min-height:57px;border-color:#ffffff09;box-shadow:inset 0 1px 0 #ffffff05}
.dark-consult .choice:has(input:checked){border-color:#97a976;background:#35412b;box-shadow:inset 0 0 0 1px #97a97625}
.dark-consult .choice:active,.dark-consult .btn:active,.dark-consult .photo-drop:active{transform:translateY(2px) scale(.965)}
.dark-consult .btn{transition:transform 150ms cubic-bezier(.22,1,.36,1),background 180ms,box-shadow 180ms}
.dark-consult .btn-primary{border:1px solid #9dab8033;border-radius:12px;box-shadow:inset 0 1px 0 #ffffff12,0 5px 15px #0002}
.dark-consult .btn-primary:active{box-shadow:inset 0 2px 8px #0004}
.dark-consult .btn-primary:disabled{cursor:not-allowed;opacity:.5}
.dark-consult .progress-track{height:3px;background:#b7aa9823}.dark-consult .progress-fill{background:#b1bf93;transition:width 250ms cubic-bezier(.22,1,.36,1)}
.dark-consult .flow-footer{background:#1c1c1af5;border-top:1px solid #b7aa9820;backdrop-filter:blur(8px)}
@media(hover:hover){.dark-consult .choice:hover{background:#343a2e;border-color:#b7aa9844}.dark-consult .btn-primary:hover{background:#73835c}}
@media(prefers-reduced-motion:reduce){.dark-consult *, .dark-consult *::before,.dark-consult *::after{animation:none!important;transition:none!important}}
/* Public ecosystem: a calm consultation desk with a distinct active step. */
.dark-consult .flow-header{padding-bottom:16px}.dark-consult .flow-body{padding-top:30px}.dark-consult .step-heading{text-wrap:balance}.dark-consult .input{font-size:16px;line-height:1.5}.dark-consult textarea.input{min-height:120px}.dark-consult .choice{min-height:60px;border-radius:12px}.dark-consult .choice:has(input:checked) .check{box-shadow:0 0 0 4px #b9cc9320}.dark-consult .flow-footer{border-radius:16px 16px 0 0;padding-inline:8px;background:#252a22ee;box-shadow:inset 0 1px 0 #ffffff08}.dark-consult .btn-back{border-radius:9px}.dark-consult .btn-back:active{background:#ffffff12}.dark-consult .progress{margin-top:23px;margin-bottom:26px}.dark-consult .progress-track{height:4px}.dark-consult .progress-meta{color:#c2c7b4}.dark-consult .photo-drop{border-radius:16px;min-height:128px;background:linear-gradient(135deg,#343c2d44,transparent)}.dark-consult .photo-drop:has(+input:focus-visible){outline:2px solid #c1cfaa}.dark-consult .review{border-radius:16px}.dark-consult .review-section{padding-block:17px}.dark-consult .photo-dialog{max-height:calc(100dvh - 24px);overflow:auto}.dark-consult .result-icon{box-shadow:0 0 0 10px #91a36e0b}.dark-consult .result h2{text-wrap:balance}.dark-consult .consult-summary{list-style:none;padding-left:0}.dark-consult .consult-summary li{display:flex;align-items:center;gap:16px;color:#aeb5a1;transition:color 180ms,transform 180ms}.dark-consult .consult-summary li span{display:grid;place-items:center;width:30px;height:30px;border:1px solid #ffffff25;border-radius:50%;font-size:9px;flex-shrink:0}.dark-consult .consult-summary li[aria-current=step]{color:#e4ead7;transform:translateX(6px)}.dark-consult .consult-summary li[aria-current=step] span{color:#1c1c1a;background:#c0cca5;border-color:#c0cca5}.dark-consult .field-error:not(:empty){border-left:2px solid #dfac96;padding-left:10px}
@media(min-width:1000px){.dark-consult .consult-intro{position:sticky;top:45px;align-self:start;padding:45px 30px 45px 0}.dark-consult .consult-intro:before{content:'';position:absolute;inset:0 20px 0 -32px;z-index:-1;background:linear-gradient(0deg,#1c1c1a,#1c1c1ad9 65%,#1c1c1ac9),url('/assets/images/projects/roof-detail-960.webp') center/cover;border-radius:20px}.dark-consult .consult-intro h2{font-size:60px;max-width:440px}.dark-consult .flow-form{padding:12px 34px 0;border-radius:22px;background:#252a22;box-shadow:0 20px 70px #0002}.dark-consult .consult-summary{gap:16px;margin-top:30px;padding-top:26px}.dark-consult .consult-assurance{margin-top:30px}}
@media(max-width:600px){.dark-consult .flow{padding-inline:20px}.dark-consult .flow-footer{margin-inline:-8px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.dark-consult .choice{padding:14px}.dark-consult .flow-body{padding-bottom:22px}.dark-consult .photo-dialog{padding-bottom:calc(22px + env(safe-area-inset-bottom));width:100%;max-width:100%;margin:0;inset:auto 0 0}.dark-consult .step-heading{font-size:clamp(32px,8.5vw,38px)}}
@media(prefers-reduced-motion:reduce){.dark-consult .consult-summary li[aria-current=step]{transform:none}}
