/* Night edition: bright architectural objects, burgundy-black surroundings.
   Last in the existing cascade; the established 760px touch layout is retained. */
:root {
  color-scheme: dark;
  --night: #160a10;
  --night-raised: #231018;
  --night-soft: #2e1720;
  --night-text: #fcf6f2;
  --night-muted: #c1aeb5;
  --night-line: #533340;
  --night-accent: #ee9aaf;
  --night-teal: #94cece;
  --ink: var(--night-text);
  --paper: var(--night);
  --line: var(--night-line);
  --editorial-ink: var(--night-text);
  --forest: #800020;
}
html, body.dark-site { background: var(--night); color: var(--night-text); }
body.dark-site { overflow-x: clip; }
body.dark-site ::selection { background: #9b3351; color: white; }
.dark-site :is(a, button, summary, input, textarea):focus-visible { outline-color: var(--night-teal); }
.dark-site .nav.wrap { background: #160a10f5; border-color: var(--night-line); backdrop-filter: blur(18px); }
.dark-site .nav :is(.wordmark, nav a), .dark-site footer .wordmark { color: var(--night-text); }
.dark-site .wordmark strong:first-child, .dark-site .wordmark-dot { color: var(--night-accent); }
.dark-site .wordmark strong:nth-child(2) { color: var(--night-teal); }
.dark-site .nav nav a { min-height: 44px; display: inline-flex; align-items: center; }
.dark-site .nav nav a:hover, .dark-site .nav nav a[aria-current="page"] { color: var(--night-accent); }
.dark-site :is(.nav-cta, .button.primary) { background: #8b1235; color: white; border: 1px solid #bc4666; box-shadow: none; }
.dark-site :is(.nav-cta, .button.primary):hover { background: #aa244b; }
.dark-site .nav-cta span { color: inherit; }
.dark-site .scenic-hero { background: var(--night); isolation: isolate; }
.dark-site .scenic-hero::before { display: block; content: ''; position: absolute; z-index: 1; inset: 0; width: auto; height: auto; border: 0; border-radius: 0; opacity: 1; background: linear-gradient(180deg, #160a109c 0%, #160a10a6 45%, #160a1024 80%, #160a10 100%); pointer-events: none; }
.dark-site .scenic-hero::after { display: none; }
.dark-site .hero-copy { position: relative; z-index: 2; }
.dark-site .scenic-hero h1 { color: white; font-weight: 300; text-shadow: 0 2px 28px #160a1033; }
.dark-site .scenic-hero h1 em { color: var(--night-accent); font-weight: 400; }
.dark-site .scenic-hero h1 .ai-letter-blue { color: #b1eeee; }
.dark-site .scenic-hero .eyebrow { color: #fff5f6; }
.dark-site .scenic-hero .lede, .dark-site .scenic-hero .lede strong { color: #fff8f6; text-shadow: none; }
.dark-site .scenic-hero .approach-link { color: white; text-shadow: none; }
.dark-site .systems { background: var(--night); border-color: var(--night-line); }
.dark-site .systems .capability,
.dark-site .systems .capability:nth-child(3) {
  background: transparent;
  box-shadow: none;
  transition: background .22s ease, box-shadow .22s ease;
}
.dark-site .systems .capability:is(:hover, :focus-within, :active) {
  background: linear-gradient(180deg, #2b141d 0%, #211017 100%);
  box-shadow: inset 0 3px 0 #bb5874;
}
.dark-site .systems .section-head h2, .dark-site .capability h3 { color: var(--night-text); }
.dark-site .capability p { color: var(--night-muted); }
.dark-site .brand-initial-maroon { color: var(--night-accent); }
.dark-site .brand-initial-blue { color: var(--night-teal); }
.dark-site .capability .generated-icon { border-color: #78505a; box-shadow: none; }
.dark-site .operation { border-color: var(--night-line); }
.dark-site .context-experience { margin-bottom: 0; }
.dark-site .experience-overline { color: var(--night-muted); }
.dark-site .context-copy h2 { color: var(--night-text); }
.dark-site .context-copy h2 em { color: var(--night-accent); }
.dark-site .context-controls button {
  grid-template-columns: minmax(0, 1fr) 20px;
  color: var(--night-text);
  border-color: var(--night-line);
}
.dark-site .context-controls button small, .dark-site .operation-main .context-detail { color: var(--night-muted); }
.dark-site .context-controls button[aria-pressed="true"] { color: var(--night-accent); background: linear-gradient(90deg, #ee9aaf12, transparent); }
.dark-site .context-controls button:hover { color: var(--night-accent); }
.dark-site .model-provider-strip img { filter: invert(1); opacity: .88; }
.dark-site .model-symbol, .dark-site .context-motion-label i { color: var(--night-teal); }
.dark-site .protection-symbol { color: var(--night-accent); }
.dark-site .context-stage :is(.context-motion-label, .motion-toggle) { color: var(--night-muted); }
.dark-site .context-stage figcaption { justify-content: flex-end; }
.dark-site .people { border-top: 1px solid var(--night-line); }
.dark-site .people h2 { color: var(--night-text); }
.dark-site .people h2 em { color: var(--night-accent); }
.dark-site .affiliation img { filter: grayscale(1) invert(1); opacity: .88; mix-blend-mode: screen; }
.dark-site .demo { background: var(--night-raised); border-color: var(--night-line); }
.dark-site .demo-wrap {
  grid-template-columns: minmax(0, 1fr);
  gap: 30px;
  width: min(660px, calc(100% - 64px));
  text-align: center;
}
.dark-site .demo-wrap > div { max-width: 620px; margin-inline: auto; }
.dark-site .demo h2, .dark-site .demo h3 { color: var(--night-text); }
.dark-site .demo h2 { margin-bottom: 12px; }
.dark-site .demo p { color: var(--night-muted); }
.dark-site .demo form {
  width: 100%;
  max-width: 600px;
  margin-inline: auto;
  background: transparent;
  border-top: 1px solid #ab546d;
  box-shadow: none;
  justify-self: center;
  text-align: center;
}
.dark-site .demo form h3 { text-align: center; }
.dark-site .demo label { color: var(--night-text); }
.dark-site .demo :is(input, textarea) { background: #160a1066; color: var(--night-text); border-color: #795462; }
.dark-site .demo :is(input, textarea):focus { border-color: var(--night-teal); }
.dark-site .demo .form-privacy { grid-column: 1 / -1; margin: 0; max-width: none; font-size: .75rem; line-height: 1.6; }
.dark-site .form-privacy a { color: var(--night-text); text-underline-offset: 3px; }
.dark-site .demo .form-message { grid-column: 1 / -1; max-width: none; color: var(--night-teal) !important; }
.dark-site .demo .form-message[data-error="true"] { color: #ffb4c7 !important; }
.dark-site .form-submit:disabled { cursor: wait; opacity: .6; }
.form-trap { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.dark-site .site-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; background: var(--night); color: var(--night-muted); min-height: 110px; height: auto; gap: 20px; padding-block: 24px; }
.site-footer > .wordmark { justify-self: start; }
.site-footer > span { justify-self: center; text-align: center; }
.site-footer > .footer-links { justify-self: end; justify-content: flex-end; }
.footer-links { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.footer-links :is(a, button) { color: inherit; font: inherit; background: none; border: 0; padding: 10px 0; min-height: 44px; cursor: pointer; text-decoration: none; }
.footer-links :is(a, button):hover { color: var(--night-text); text-decoration: underline; }
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 1000; padding: 12px 20px; color: var(--night); background: white; visibility: hidden; }
.skip-link:focus { top: 12px; visibility: visible; }
.page-intro { padding-block: 80px 50px; }
.page-intro h1, .privacy-document h1 { font: 500 clamp(2.8rem, 5.6vw, 5rem)/1.03 var(--serif); letter-spacing: -.045em; margin: 22px 0; }
.page-intro h1 em, .privacy-document h1 em { color: var(--night-accent); font: inherit; }
.page-intro p { color: var(--night-muted); margin: 0; }
.dark-site .operation.process-page { padding-top: 10px; padding-bottom: 70px; }
.dark-site .process-heading, .dark-site .operation-main .process-heading p { color: var(--night-muted); }
.dark-site .process-visual {
  color-scheme: dark;
  border-color: var(--night-line);
  background: var(--night);
}
.dark-site .process-stage {
  border-right-color: var(--night-line);
  background: var(--night);
}
.dark-site .stage-scene {
  background-image: url("assets/operating-arches-integrate-dark.png");
}
.dark-site .stage-label { color: var(--night-text); }
.dark-site .stage-label small { color: var(--night-muted); }
.dark-site .stage-label::before {
  border-color: var(--night-accent);
  background: var(--night);
}
.dark-site .operation-trust { border-color: var(--night-line); }
.dark-site .operation-trust span { border-color: var(--night-line); color: var(--night-muted); }
.dark-site .operation-trust span::before { border-color: var(--night-teal); }
.page-outro { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-block: 38px 70px; border-top: 1px solid var(--night-line); }
.page-outro h2 { margin: 0; font: 500 clamp(1.8rem, 3vw, 2.8rem)/1.15 var(--serif); letter-spacing: -.035em; }
.dark-site .process-story { background: var(--night-raised); color: var(--night-text); border-color: var(--night-line); --story-wine: var(--night-accent); --story-teal: var(--night-teal); }
.dark-site .process-story h2 { color: var(--night-text); }
.dark-site .process-story :is(.story-intro, .story-beat-copy, .story-replay, .story-beats button) { color: var(--night-muted); }
.dark-site .story-beats, .dark-site .story-beats button { border-color: var(--night-line); }
.dark-site .story-beats button[aria-pressed="true"] { color: var(--night-accent); background: #ee9aaf08; }
.dark-site .process-story::backdrop { background: #0d020acf; }
.dark-site .insight-section { --research-ink: var(--night-text); --research-muted: var(--night-muted); --research-maroon: var(--night-accent); --research-line: var(--night-line); background: var(--night); color: var(--night-text); }
.research-heading h1 { margin: 18px 0 0; color: var(--night-text); font: 500 clamp(2.5rem, 4.6vw, 4rem)/1.06 var(--serif); letter-spacing: -.045em; }
.research-heading h1 em { color: var(--night-accent); font: inherit; }
.dark-site .research-control { background: #480c20; border: 1px solid #76384b; }
.privacy-document { max-width: 780px; padding-block: 72px; }
.privacy-document h2 { margin: 36px 0 12px; font: 500 1.55rem/1.2 var(--serif); letter-spacing: -.025em; }
.privacy-document p { color: var(--night-muted); font-size: .95rem; line-height: 1.8; }
.privacy-document a, .text-button { color: var(--night-accent); text-underline-offset: 4px; }
.privacy-updated { font-size: .75rem !important; }
.text-button { font: inherit; padding: 8px 0; border: 0; background: none; cursor: pointer; text-decoration: underline; }
.privacy-provider-links { display: flex; gap: 24px; flex-wrap: wrap; }
.consent-banner[hidden] { display: none; }
.consent-banner { position: fixed; z-index: 200; left: 24px; right: 24px; bottom: max(20px, env(safe-area-inset-bottom)); margin: 0 auto; max-width: 1130px; display: flex; align-items: center; gap: 34px; padding: 22px 26px; border: 1px solid #80505f; background: #27121cf7; box-shadow: 0 10px 60px #0008; border-radius: 6px; backdrop-filter: blur(20px); }
.consent-banner h2 { color: var(--night-text); margin: 0 0 5px; font: 600 .95rem/1.4 var(--sans); letter-spacing: -.02em; }
.consent-banner p { max-width: 660px; color: var(--night-muted); margin: 0; font: 400 .75rem/1.6 var(--sans); }
.consent-banner a { color: var(--night-text); text-underline-offset: 3px; }
.consent-actions { display: flex; gap: 10px; flex-shrink: 0; }
.consent-actions button { min-height: 44px; padding: 11px 16px; border: 1px solid #b0788a; border-radius: 3px; background: #452031; color: #fff; cursor: pointer; font: 600 .75rem/1.4 var(--sans); white-space: nowrap; }
.consent-actions button:hover { background: #663047; border-color: #eca0b7; }
@media (max-width: 1000px) { .consent-banner { gap: 20px; } .consent-actions { flex-direction: column; } }
@media (max-width: 760px), (max-width: 1024px) and (pointer: coarse) {
  .dark-site .nav.nav-ready nav { background: var(--night-raised); border-color: var(--night-line); }
  .dark-site .nav-toggle { border-color: #795462; background: none; color: var(--night-text); }
  .dark-site .nav-toggle span { background: var(--night-text); }
}
@media (max-width: 760px) {
  .dark-site .systems .capability,
  .dark-site .systems .capability:nth-child(3),
  .dark-site .systems .capability:is(:hover, :focus-within, :active) {
    background: transparent;
    box-shadow: none;
  }
  .dark-site .scenic-hero::before { background: linear-gradient(180deg, #160a10c4, #160a10ad 48%, #160a101c 80%, #160a10); }
  .dark-site .context-experience { margin-bottom: 0; }
  .dark-site .demo-wrap { width: min(100% - 40px, 660px); }
  .dark-site .site-footer { grid-template-columns: minmax(0, 1fr); align-items: center; justify-items: center; gap: 8px; text-align: center; }
  .dark-site .site-footer > * { justify-self: center; }
  .dark-site .site-footer > .footer-links { justify-content: center; }
  .page-intro { padding-block: 44px 34px; }
  .page-intro h1 { font-size: clamp(2.7rem, 9vw, 4rem); }
  .page-intro p { font-size: .95rem; }
  .page-outro { align-items: flex-start; flex-direction: column; padding-bottom: 48px; }
  .research-heading h1 { font-size: clamp(2.2rem, 8vw, 3.4rem); }
  .research-heading h1 br { display: none; }
  .privacy-document { padding-block: 44px; }
  .consent-banner { left: 12px; right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); padding: 18px; flex-direction: column; align-items: stretch; gap: 14px; max-height: calc(100dvh - 32px); overflow-y: auto; }
  .consent-actions { flex-direction: row; display: grid; grid-template-columns: 1fr 1fr; }
  .consent-actions button { white-space: normal; padding-inline: 8px; }
}

.dark-site .people-grid > .people-summary {
  max-width: 680px;
  margin: 0;
  color: var(--night-muted);
  line-height: 1.7;
}

/* Construction permit services */
.dark-site .permit-service { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.2fr); gap:clamp(32px,5vw,80px); padding-block:clamp(48px,7vw,96px); border-top:1px solid var(--night-line); scroll-margin-top:100px; }
.permit-intro h2 { margin:18px 0 22px; font:500 clamp(2.6rem,4.8vw,4.8rem)/1.05 var(--serif); letter-spacing:-.045em; }
.permit-intro h2 em { color:var(--night-accent); font:inherit; }
.permit-lede { max-width:440px; color:var(--night-muted); line-height:1.75; margin:0 0 28px; }
.permit-intro .button { max-width:100%; white-space:normal; }
.permit-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.permit-grid article { border-top:1px solid var(--night-line); padding-top:20px; }
.permit-step { color:var(--night-teal); font-size:.75rem; }
.permit-grid h3 { margin:12px 0; font:500 1.4rem/1.25 var(--serif); letter-spacing:-.025em; }
.permit-grid p { margin:0; color:var(--night-muted); font-size:.9rem; line-height:1.7; }
.permit-scope { margin:28px 0 0; padding-top:20px; border-top:1px solid var(--night-line); color:var(--night-muted); font-size:.78rem; line-height:1.7; }
@media(max-width:900px) { .dark-site .permit-service { grid-template-columns:minmax(0,1fr); } .permit-lede { max-width:600px; } }
@media(max-width:480px) { .permit-grid { grid-template-columns:minmax(0,1fr); gap:24px; } }
