/* GOV LAYER – Emmanuel Pools Government Contracting wing.
   Sits on top of ep-brand.css (the main site's own rules, ported verbatim).
   Mobile-first: every component is designed at 390x844 / 360x800 first.
   Body and value text never under 16px; tap targets never under 44px. */

@font-face { font-family: 'Cormorant Garamond'; src: url('/assets/fonts/CormorantGaramond-600.woff2') format('woff2'); font-weight: 500 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Cormorant Garamond'; src: url('/assets/fonts/CormorantGaramond-Italic.woff2') format('woff2'); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: 'Outfit'; src: url('/assets/fonts/Outfit-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Outfit'; src: url('/assets/fonts/Outfit-600.woff2') format('woff2'); font-weight: 500 600; font-display: swap; }
@font-face { font-family: 'Outfit'; src: url('/assets/fonts/Outfit-700.woff2') format('woff2'); font-weight: 700; font-display: swap; }

/* ── Base (the main site's globals.css body rule + a minimal preflight) */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 120px; }
html, body { overflow-x: hidden; }
body { margin: 0; font-family: var(--font-body); background: var(--black); color: var(--off-white); line-height: 1.6; font-size: 16px; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul[class], ol[class] { list-style: none; padding: 0; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--gold); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.skip { position: absolute; left: 1rem; top: -60px; z-index: 3000; background: var(--gold); color: var(--black); padding: 0.75rem 1rem; font-weight: 600; text-decoration: none; }
.skip:focus { top: 0.5rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mono, .code { font-variant-numeric: tabular-nums; letter-spacing: 0.02em; }

/* The main site's .hero carries a photo; the gov wing stays photo-free until the
   published gallery set is cleared, so the hero is pure brand atmosphere. */
.hero::before { background-image: none; background: radial-gradient(80% 60% at 85% 10%, rgba(201,169,98,0.10), transparent 60%); opacity: 1; }
.hero { min-height: auto; padding: 128px 0 72px; align-items: flex-start; }
.hero-content { grid-template-columns: 1.05fr 1fr; gap: 3.5rem; align-items: start; }
.hero-desc { font-size: 1.1rem; color: #b8b8b8; max-width: 560px; }
.hero h1 { margin-bottom: 1.25rem; }
.hero-pitch { padding-top: 1rem; }
.hero-stats { gap: 2.5rem; flex-wrap: wrap; }
.hero-stat-label { color: #a8a8a8; }

/* ── Living logo: canonical file, never redrawn. Sheen masked inside the shape. */
.logo { position: relative; }
.logo-sheen { position: absolute; inset: 0; pointer-events: none; -webkit-mask: url('/assets/logo.webp') center / contain no-repeat; mask: url('/assets/logo.webp') center / contain no-repeat; background: linear-gradient(105deg, transparent 35%, rgba(255,246,214,0.85) 50%, transparent 65%) -150% 0 / 250% 100% no-repeat; opacity: 0; }
html.js .logo-sheen { animation: ep-sheen 9s var(--ease-out) 0.6s infinite; }
@keyframes ep-sheen { 0% { opacity: 1; background-position: -150% 0; } 14% { background-position: 150% 0; opacity: 1; } 15%, 100% { opacity: 0; background-position: 150% 0; } }
html.js .logo img { animation: ep-breathe 6s ease-in-out infinite; transform-origin: left center; }
@keyframes ep-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.02); } }
.wing-tag { display: inline-flex; align-items: center; margin-left: 0.85rem; padding: 0.3rem 0.7rem; border: 1px solid rgba(201,169,98,0.45); color: var(--gold); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; }

/* Trust bar on the gov wing carries the identifiers a CO checks first. */
.trust-bar-item .code { font-weight: 700; }

/* ── THE CONTRACTING SNAPSHOT (the first screen on a phone) */
.snapshot { background: linear-gradient(160deg, #161616 0%, #101010 100%); border: 1px solid rgba(201,169,98,0.55); padding: 1.5rem; box-shadow: 0 30px 60px rgba(0,0,0,0.45); border-radius: 4px; }
.snapshot-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.snapshot-kicker { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); }
.snapshot-asof { font-size: 0.8rem; color: #a8a8a8; }
.snapshot h1, .snapshot .snap-name { font-family: var(--font-display); font-weight: 600; font-size: 2rem; line-height: 1.05; color: var(--white); margin: 0 0 0.25rem; }
.snap-sub { font-size: 1rem; color: #bdbdbd; margin-bottom: 1rem; }
.id-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-bottom: 0.6rem; }
.id-cell { display: flex; flex-direction: column; justify-content: center; min-height: 64px; padding: 0.55rem 0.8rem; background: rgba(201,169,98,0.06); border: 1px solid rgba(201,169,98,0.28); text-align: left; color: var(--off-white); border-radius: 3px; }
button.id-cell { cursor: pointer; transition: border-color var(--dur-ui) var(--ease-out), background var(--dur-ui) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { button.id-cell:hover { border-color: var(--gold); background: rgba(201,169,98,0.12); } }
.id-label { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); }
.id-label .copy-hint { letter-spacing: 0.06em; color: #a8a8a8; font-weight: 500; text-transform: none; }
.id-value { font-size: 1.15rem; font-weight: 600; color: var(--white); font-variant-numeric: tabular-nums; letter-spacing: 0.02em; white-space: nowrap; }
.id-note { font-size: 0.875rem; color: #b0b0b0; line-height: 1.35; }
.ok-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 4px rgba(74,222,128,0.15); margin-right: 0.45rem; vertical-align: 1px; }
html.js .ok-dot { animation: ep-pulse 2.6s ease-in-out infinite; }
@keyframes ep-pulse { 50% { box-shadow: 0 0 0 7px rgba(74,222,128,0.04); } }
.status-line { display: flex; flex-wrap: wrap; gap: 0.35rem 0.9rem; margin: 0.9rem 0; font-size: 1rem; color: var(--off-white); }
.status-line li { display: inline-flex; align-items: center; gap: 0.4rem; }
.status-line li::before { content: ''; width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); }
.codes-block { border-top: 1px solid rgba(201,169,98,0.18); padding-top: 0.75rem; margin-top: 0.25rem; }
.codes-block + .codes-block { margin-top: 0.6rem; }
.codes-title { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.3rem; display: flex; justify-content: space-between; gap: 1rem; }
.codes-title a { display: inline-flex; align-items: center; min-height: 44px; margin: -14px 0; padding: 0 0.25rem; letter-spacing: 0.04em; text-transform: none; font-weight: 500; color: #c9c9c9; text-decoration: underline; text-underline-offset: 3px; }
.codes { display: flex; flex-wrap: wrap; gap: 0.15rem 0.85rem; font-size: 1rem; font-variant-numeric: tabular-nums; letter-spacing: 0.03em; color: var(--off-white); }
.codes .primary { color: var(--gold); font-weight: 700; }
.codes .primary small { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; margin-left: 0.25rem; }
.snap-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-top: 1rem; }
.snap-actions .btn { justify-content: center; min-height: 48px; padding: 0.75rem 1rem; font-size: 0.85rem; }
.snap-actions .btn-pdf { grid-column: 1 / -1; }
.btn svg { width: 18px; height: 18px; flex-shrink: 0; }
.copy-toast { position: fixed; left: 50%; bottom: 96px; transform: translateX(-50%) translateY(20px); background: var(--gold); color: var(--black); font-weight: 600; padding: 0.7rem 1.1rem; z-index: 2500; opacity: 0; pointer-events: none; transition: opacity var(--dur-ui) var(--ease-out), transform var(--dur-ui) var(--ease-out); }
.copy-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ── Section headers */
.section-head { max-width: 760px; margin-bottom: 2.5rem; }
.section-head p, .lead { font-size: 1.1rem; color: #b8b8b8; }
.section.alt { background: var(--charcoal); }
.section.black { background: var(--black); }

/* Credentials band – main-site .credentials pattern */
.credentials { background: var(--charcoal); padding: 2rem 0; border-top: 1px solid var(--dark-gray); border-bottom: 1px solid var(--dark-gray); }
.credentials-inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.credential-item { display: flex; align-items: center; gap: 0.85rem; }
.credential-icon { flex: 0 0 44px; width: 44px; height: 44px; background: rgba(201,169,98,0.1); border: 1px solid rgba(201,169,98,0.3); display: flex; align-items: center; justify-content: center; }
.credential-icon svg { width: 20px; height: 20px; stroke: var(--gold); fill: none; }
.credential-text strong { display: block; font-size: 1rem; color: var(--white); line-height: 1.3; }
.credential-text span, .credential-text a { font-size: 0.95rem; color: #b0b0b0; font-variant-numeric: tabular-nums; }
.credential-text a { color: var(--gold); }

/* Trade cards – the main site's .service-card, plus code chips */
.services-grid.trades { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }
.service-card p { font-size: 1rem; color: #b8b8b8; }
.service-card h3 { line-height: 1.2; }
.season { display: inline-block; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.6rem; }
.chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.25rem 0 1rem; }
.chip { display: inline-flex; align-items: center; min-height: 30px; padding: 0.15rem 0.6rem; border: 1px solid rgba(201,169,98,0.35); background: rgba(201,169,98,0.06); color: var(--off-white); font-size: 0.9rem; font-variant-numeric: tabular-nums; letter-spacing: 0.03em; border-radius: 999px; }
.chip.psc { border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.03); }
.chip-label { width: 100%; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #a8a8a8; }

/* Stats band – gold, main-site trust-bar gradient */
.stats-band { background: linear-gradient(90deg, var(--gold-dark), var(--gold), var(--gold-dark)); color: var(--black); padding: 3rem 0; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center; }
.stat-value { font-family: var(--font-display); font-weight: 700; font-size: clamp(2.4rem, 5vw, 3.4rem); line-height: 1; }
.stat-label { font-size: 0.95rem; font-weight: 600; letter-spacing: 0.06em; margin-top: 0.4rem; }
.stats-source { text-align: center; font-size: 0.9rem; margin-top: 1.5rem; color: #1d1a12; }

/* Past performance cards */
.pp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.25rem; }
.pp-card { background: var(--charcoal); border: 1px solid var(--dark-gray); padding: 1.5rem; display: flex; flex-direction: column; gap: 0.6rem; border-radius: var(--luxe-radius); transition: border-color var(--dur-ui) var(--ease-out); }
.section.alt .pp-card { background: #101010; }
.pp-top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.pp-value { font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; color: var(--gold); line-height: 1; font-variant-numeric: tabular-nums; }
.pp-year { font-size: 0.95rem; color: #b0b0b0; text-align: right; }
.pp-card h3 { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; color: var(--white); line-height: 1.2; }
.pp-place { font-size: 0.95rem; color: var(--gold-light); display: flex; align-items: center; gap: 0.35rem; }
.pp-place svg { width: 15px; height: 15px; stroke: currentColor; fill: none; flex-shrink: 0; }
.pp-scope { font-size: 1rem; color: #b8b8b8; }
.pp-tags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: auto; padding-top: 0.4rem; }
.pp-tags span { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #a8a8a8; border: 1px solid #333; padding: 0.15rem 0.5rem; }
.pp-note { font-size: 0.85rem; color: #a8a8a8; }
.pp-card[hidden] { display: none; }
.filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.filter { min-height: 44px; padding: 0 1.1rem; border: 1px solid rgba(201,169,98,0.45); background: transparent; color: var(--off-white); font-size: 0.95rem; font-weight: 500; border-radius: 999px; cursor: pointer; transition: background var(--dur-ui) var(--ease-out), color var(--dur-ui) var(--ease-out), border-color var(--dur-ui) var(--ease-out); }
.filter .n { color: #a8a8a8; margin-left: 0.35rem; font-variant-numeric: tabular-nums; }
.filter[aria-pressed="true"] { background: var(--gold); color: var(--black); border-color: var(--gold); }
.filter[aria-pressed="true"] .n { color: #3a3226; }
@media (hover: hover) and (pointer: fine) { .filter:hover { border-color: var(--gold); } }
.pp-summary { font-size: 1rem; color: #b8b8b8; margin-bottom: 1rem; }
.pp-summary strong { color: var(--gold); }

/* Requirement matcher – the interactive toy */
.matcher { background: linear-gradient(160deg, #161616, #0d0d0d); border: 1px solid rgba(201,169,98,0.35); padding: 1.75rem; border-radius: var(--luxe-radius); }
.matcher label { display: block; font-size: 0.85rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); margin-bottom: 0.5rem; }
.matcher-input { width: 100%; min-height: 52px; padding: 0.75rem 1rem; background: #0a0a0a; border: 1px solid #444; color: var(--white); font-size: 1.1rem; border-radius: 3px; }
.matcher-input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,169,98,0.25); }
.matcher-try { display: flex; flex-wrap: wrap; gap: 0.45rem; margin-top: 0.75rem; }
.matcher-try button { min-height: 44px; padding: 0 0.9rem; border: 1px solid #3a3a3a; background: transparent; color: #cfcfcf; font-size: 0.95rem; border-radius: 999px; cursor: pointer; }
.matcher-try button:hover { border-color: var(--gold); color: var(--gold); }
.matcher-out { margin-top: 1.25rem; display: grid; gap: 0.75rem; min-height: 3rem; }
.match { display: grid; gap: 0.35rem; padding: 1rem 1.1rem; border-left: 3px solid var(--gold); background: rgba(201,169,98,0.06); }
.match strong { font-family: var(--font-display); font-size: 1.35rem; color: var(--white); font-weight: 600; }
.match .why { font-size: 0.95rem; color: #b0b0b0; }
.match a { color: var(--gold); font-weight: 600; }
.match-none { color: #b8b8b8; font-size: 1rem; }
html.js .match { animation: ep-rise 320ms var(--ease-out) both; }
@keyframes ep-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Differentiators / teaming */
.why-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; }
.why-card { padding: 1.5rem; border: 1px solid var(--dark-gray); background: var(--charcoal); border-radius: var(--luxe-radius); }
.section.alt .why-card { background: #101010; }
.why-card h3 { font-family: var(--font-display); font-size: 1.4rem; font-weight: 600; color: var(--white); margin-bottom: 0.5rem; line-height: 1.2; }
.why-card p { font-size: 1rem; color: #b8b8b8; }
.why-num { font-family: var(--font-display); font-size: 2.2rem; color: var(--gold); line-height: 1; margin-bottom: 0.5rem; }
.ticks { display: grid; gap: 0.55rem; margin: 1rem 0 0; }
.ticks li { position: relative; padding-left: 1.6rem; font-size: 1rem; color: #d0d0d0; }
.ticks li::before { content: ''; position: absolute; left: 0; top: 0.5em; width: 10px; height: 6px; border-left: 2px solid var(--gold); border-bottom: 2px solid var(--gold); transform: rotate(-45deg); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.panel { padding: 1.75rem; border: 1px solid rgba(201,169,98,0.35); background: rgba(201,169,98,0.04); border-radius: var(--luxe-radius); }
.panel h3 { font-family: var(--font-display); font-size: 1.6rem; font-weight: 600; color: var(--white); margin-bottom: 0.75rem; }
.panel p { color: #b8b8b8; }
.data-list { display: grid; gap: 0; margin-top: 0.5rem; }
.data-list div { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px solid #262626; }
.data-list dt { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); padding-top: 0.15rem; }
.data-list dd { font-size: 1rem; color: var(--off-white); font-variant-numeric: tabular-nums; }
.season-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2rem; }
.season-strip div { padding: 1.1rem 1.25rem; border-top: 3px solid var(--gold); background: #101010; }
.season-strip strong { display: block; font-family: var(--font-display); font-size: 1.35rem; color: var(--white); }
.season-strip span { font-size: 1rem; color: #b8b8b8; }

/* Code tables (capabilities) */
.code-table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.code-table caption { text-align: left; font-family: var(--font-display); font-size: 1.6rem; color: var(--white); margin-bottom: 0.75rem; }
.code-table th, .code-table td { text-align: left; padding: 0.7rem 0.75rem; border-bottom: 1px solid #262626; vertical-align: top; }
.code-table th { font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
.code-table td:first-child { font-weight: 700; color: var(--gold-light); white-space: nowrap; font-variant-numeric: tabular-nums; }
.code-table td:last-child { color: #c4c4c4; }
.trade-detail { display: grid; grid-template-columns: 1fr 1.2fr; gap: 2.5rem; padding: 2.5rem 0; border-top: 1px solid #222; }
.trade-detail:first-of-type { border-top: 0; }
.trade-h { font-family: var(--font-display); font-weight: 500; font-size: clamp(1.9rem, 3.4vw, 2.5rem); color: var(--white); line-height: 1.15; margin: 0.25rem 0 0.75rem; }
.hero .hero-h { font-family: var(--font-display); font-size: clamp(2.3rem, 4.6vw, 3.6rem); font-weight: 500; line-height: 1.1; color: var(--white); margin-bottom: 1.25rem; }
.hero .hero-h em { font-style: italic; color: var(--gold); }
.more-link { margin-top: 2rem; }
.panel + .panel, .pp-grid + .panel { margin-top: 2rem; }

/* Contact */
.contact-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 3rem; align-items: start; }
.poc-card { padding: 1.75rem; border: 1px solid var(--gold); background: linear-gradient(160deg, #161616, #0f0f0f); }
.poc-name { font-family: var(--font-display); font-size: 2rem; font-weight: 600; color: var(--white); line-height: 1.1; }
.poc-title { color: var(--gold); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.85rem; margin: 0.25rem 0 1.25rem; }
.poc-actions { display: grid; gap: 0.6rem; }
.poc-actions .btn { justify-content: center; min-height: 52px; font-size: 0.9rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.field { display: grid; gap: 0.35rem; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 0.9rem; font-weight: 600; color: var(--off-white); }
.field label .opt { color: #9a9a9a; font-weight: 400; }
.field input, .field select, .field textarea { width: 100%; min-height: 48px; padding: 0.7rem 0.85rem; background: #0a0a0a; border: 1px solid #444; color: var(--white); font-size: 1rem; border-radius: 3px; }
.field textarea { min-height: 140px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,169,98,0.25); }
.form-note { font-size: 0.95rem; color: #a8a8a8; margin-top: 0.75rem; }
.contact-form { background: var(--dark-gray); border: 1px solid var(--medium-gray); padding: 2rem; }

/* CTA band */
.cta-band { padding: 80px 0; background: radial-gradient(60% 80% at 50% 0%, rgba(201,169,98,0.14), transparent 70%), var(--black); text-align: center; border-top: 1px solid var(--dark-gray); }
.cta-band h2 { font-family: var(--font-display); font-weight: 500; font-size: clamp(2rem, 4.4vw, 3.2rem); color: var(--white); margin-bottom: 1rem; line-height: 1.15; }
.cta-band p { color: #b8b8b8; font-size: 1.1rem; max-width: 640px; margin: 0 auto 2rem; }
.cta-actions { display: flex; gap: 0.9rem; justify-content: center; flex-wrap: wrap; }
.cta-actions .btn { min-height: 52px; }

/* Page header (inner pages) – main-site .page-header, tightened */
.page-header { padding: 150px 0 64px; }
.page-header p { font-size: 1.15rem; color: #b8b8b8; }
.page-header .section-label { margin-bottom: 0.75rem; }

/* Footer additions: identifiers row + cross-link to the main site */
.footer-brand p { font-size: 1rem; color: #a8a8a8; }
.footer-links li, .footer-links a { font-size: 0.95rem; color: #a8a8a8; }
.footer-bottom p, .footer-certifications, .footer-legal a { font-size: 0.9rem; color: #a8a8a8; }
.footer-ids { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; padding: 1rem 0; border-top: 1px solid var(--dark-gray); font-size: 0.95rem; color: #c4c4c4; font-variant-numeric: tabular-nums; }
.footer-ids b { color: var(--gold); font-weight: 600; letter-spacing: 0.08em; margin-right: 0.35rem; }
.footer-machine span { font-size: 0.8rem; }
.footer-machine a { font-size: 0.85rem; color: #a8a8a8; }
.footer-machine a { min-height: 32px; display: inline-flex; align-items: center; }
.main-link { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1rem; color: var(--gold); font-weight: 600; text-decoration: none; min-height: 44px; }

/* 404 */
.luxe-404 p { color: #b8b8b8; font-size: 1.05rem; }
.luxe-404-ids { margin-top: 2rem; font-size: 0.95rem; color: #a8a8a8; font-variant-numeric: tabular-nums; }

/* Accessibility statement + prose */
.prose { max-width: 820px; }
.prose p, .prose li { font-size: 1.05rem; color: #c4c4c4; margin-bottom: 1rem; }
.prose h2 { margin-top: 2rem; }
.prose ul { padding-left: 1.25rem; }

/* ── Responsive (mobile-first overrides at the main site's own breakpoints) */
@media (max-width: 1024px) {
  .hero-content { grid-template-columns: 1fr; text-align: left; gap: 2.5rem; }
  .hero-buttons, .hero-stats { justify-content: flex-start; }
  .credentials-inner { grid-template-columns: 1fr 1fr; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .two-col, .contact-grid, .trade-detail { grid-template-columns: 1fr; gap: 2rem; }
  .hero-desc { margin: 0 0 2rem; }
}
@media (max-width: 768px) {
  .hero { padding: 104px 0 48px; }
  .hero-snapshot { order: -1; }
  .snapshot { padding: 1rem; margin: 0 -0.25rem; }
  .snapshot-head { margin-bottom: 0.35rem; }
  .snapshot-asof { display: none; }
  .snap-actions { display: none; }
  .id-cell { min-height: 0; padding: 0.45rem 0.65rem; }
  .id-value { font-size: 1.05rem; }
  .id-grid { gap: 0.5rem; margin-bottom: 0.4rem; }
  .status-line { gap: 0.2rem 0.8rem; }
  .sticky-cta { padding: 0.6rem; }
  .sticky-cta-inner { gap: 0.5rem; }
  .sticky-cta a { padding: 0.6rem 0.5rem; }
  .snapshot h1, .snapshot .snap-name { font-size: 1.75rem; }
  .snap-sub { margin-bottom: 0.7rem; }
  .status-line { margin: 0.6rem 0; }
  .codes-block { padding-top: 0.55rem; }
  .logo img { width: 190px; }
  .wing-tag { display: none; }
  .section { padding: 64px 0; }
  .page-header { padding: 116px 0 44px; text-align: left; }
  .page-header p { margin: 0; }
  .credentials-inner { grid-template-columns: 1fr; gap: 1rem; }
  .credentials { padding: 1.5rem 1rem; }
  .credentials-inner { display: grid; justify-items: stretch; }
  .credential-item { flex-direction: row; text-align: left; }
  .credential-text { text-align: left; }
  .credential-text strong { font-size: 1rem; }
  .credential-text span { font-size: 0.95rem; }
  .service-card { text-align: left; padding: 1.5rem; }
  .service-icon { margin: 0 0 1.25rem; }
  .services-grid.trades, .pp-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .contact-form { padding: 1.25rem; }
  .data-list div { grid-template-columns: 1fr; gap: 0.15rem; }
  .season-strip { grid-template-columns: 1fr; }
  .code-table td:last-child { font-size: 0.95rem; }
  .trust-bar-item { font-size: 0.8rem; }
  .footer-main { text-align: left; }
  .footer-main h4 { text-align: left; }
  .footer-links, .footer-brand { align-items: flex-start; }
  .footer-brand p { text-align: left; }
  .footer-bottom { align-items: flex-start; text-align: left; }
  .footer-legal { justify-content: flex-start; }
  .sticky-cta a { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; font-size: 1rem; }
  .sticky-cta .cta-call svg, .sticky-cta .cta-mail svg { width: 18px; height: 18px; }
  .sticky-cta .cta-mail { background: transparent; color: var(--black); border: 2px solid var(--black); }
  .sticky-cta .cta-mail svg { stroke: var(--black); fill: none; }
  .copy-toast { bottom: 90px; }
  .cta-pdf { flex: 0 0 auto !important; }
  .matcher { padding: 1.1rem; }
}
@media (max-width: 380px) {
  .snapshot h1, .snapshot .snap-name { font-size: 1.6rem; }
  .id-value { font-size: 1rem; letter-spacing: 0; }
  .snap-actions .btn { font-size: 0.8rem; letter-spacing: 0.06em; padding: 0.7rem 0.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .logo-sheen, .logo img, .ok-dot, .match { animation: none !important; }
}
@media print {
  .trust-bar, .header, .sticky-cta, .mobile-menu, .mobile-overlay, .footer-wordmark, .footer-glow, .matcher-try { display: none !important; }
  body { background: #fff; color: #000; }
  .hero, .section, .page-header { padding: 1rem 0 !important; background: #fff !important; }
}

/* ── 16px READABILITY FLOOR + 44px TAP FLOOR (owner order, Oct 30 2026).
   The main site's micro-labels run 12-13.6px; on the government wing every
   readable string is at least 16px and every control at least 44px tall.
   Same fonts, colours, casing and tracking – only the size floor differs. */
.btn { font-size: 1rem; letter-spacing: 0.06em; min-height: 48px; justify-content: center; }
.section-label, .season, .chip-label, .id-label, .codes-title, .snapshot-kicker, .snapshot-asof, .hero-stat-label, .stat-label,
.code-table th, .data-list dt, .poc-title, .pp-tags span, .hero-badge, .wing-tag, .matcher label, .id-note, .copy-hint,
.codes .primary small, .pp-note, .footer-machine span, .footer-machine a, .footer-legal a, .footer-bottom p, .footer-certifications,
.footer-links li, .footer-links a, .footer-ids, .credential-text span, .credential-text a, .chip, .filter, .trust-bar-item,
.nav a, .header-phone, .service-link, .luxe-404-links a, .luxe-404-ids, .form-note, .field label, .pp-year, .pp-place, .snapshot-asof { font-size: 1rem; }
.section-label, .snapshot-kicker, .codes-title, .id-label, .chip-label, .season, .code-table th, .data-list dt, .stat-label, .hero-stat-label { letter-spacing: 0.1em; }
.wing-tag { letter-spacing: 0.1em; padding: 0.25rem 0.6rem; }
.nav a, .header-phone, .service-link, .footer-legal a, .footer-machine a, .credential-text a, .luxe-404-links a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-brand > a:first-child { display: inline-block; }
.nav { gap: clamp(0.2rem, 0.8vw, 1rem); }
.trust-bar-item { font-size: 0.95rem; }
.trust-bar-item { font-size: 1rem; }
@media (max-width: 1180px) and (min-width: 769px) { .header-phone .phone-text { display: none; } .wing-tag { display: none; } }
@media (max-width: 768px) {
  .trust-bar-item svg { display: none; }
  .trust-bar-content { gap: 1rem; }
  .id-label .copy-hint { display: none; }
  .id-note { font-size: 1rem; line-height: 1.3; }
  .codes { gap: 0.1rem 0.75rem; }
}
@media (max-width: 380px) { .trust-bar-content { gap: 0.6rem; } .trust-bar-item { letter-spacing: -0.01em; } }
.show-sm { display: none; }
.stats-source, .matcher-try button, .footer h4 { font-size: 1rem; }
@media (max-width: 768px) {
  .hide-sm { display: none; }
  .show-sm { display: inline; }
  .snapshot .codes-title a { display: none; }
}
@media (max-width: 768px) { .hero { padding-top: 96px; } .codes-block + .codes-block { margin-top: 0.45rem; } }
.ok-dot { vertical-align: middle; }
/* Header fit between tablet and wide desktop (measured: wing tag ran into "Home" at 1200px). */
.header-cta .btn { white-space: nowrap; }
.logo { flex-shrink: 0; }
@media (max-width: 1360px) and (min-width: 769px) { .wing-tag { display: none; } }
@media (max-width: 1240px) and (min-width: 769px) { .header-phone .phone-text { display: none; } .header-cta { gap: 0.75rem; } }
@media (max-width: 1060px) and (min-width: 769px) { .nav { display: none; } .header-cta { display: none; } .mobile-toggle { display: flex; } }

.snap-actions .btn, .poc-actions .btn { font-size: 1rem; }
.poc-actions .btn { text-transform: none; letter-spacing: 0.02em; }
.header-phone { min-width: 44px; justify-content: center; }
.data-list div { grid-template-columns: minmax(9rem, 14rem) 1fr; } @media (max-width: 768px) { .data-list div { grid-template-columns: 1fr; } }
/* Measured Oct 30: at 1440 the wing tag + phone pushed the CTA past the container edge. */
@media (max-width: 1560px) and (min-width: 769px) { .wing-tag { display: none; } }
@media (max-width: 1400px) and (min-width: 769px) { .header-phone .phone-text { display: none; } }

/* ══ EVIDENCE LAYER (owner, Oct 30 2026): real project photos everywhere ══ */
/* The real logo only – never recoloured (overrides the main site's sepia filter). */
.logo img, .mobile-menu-header img, .footer-brand img { filter: none !important; }
/* Outfit + Cormorant Garamond only: no monospace anywhere. */
.footer-machine a, .luxe-404-code, code, kbd, samp { font-family: var(--font-body) !important; font-variant-numeric: tabular-nums; }
.footer-wordmark { display: none !important; }
.footer { padding-top: 3.5rem; }

.shot { display: block; width: 100%; padding: 0; margin: 0; border: 0; background: #0d0d0d; cursor: zoom-in; position: relative; overflow: hidden; border-radius: 6px; }
.shot img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 600ms var(--ease-out); }
.shot.tall img { object-fit: contain; }
@media (hover: hover) and (pointer: fine) { .shot:hover img { transform: scale(1.03); } }
.shot:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* Home hero photo */
.hero-photo { margin: 0 0 1.5rem; }
.hero-photo .shot { aspect-ratio: 1205 / 952; box-shadow: 0 30px 60px rgba(0,0,0,0.5); border: 1px solid rgba(201,169,98,0.35); }
.hero-photo figcaption { margin-top: 0.6rem; font-size: 1rem; color: #b8b8b8; }
.hero-photo figcaption strong { color: var(--gold); font-weight: 600; }

/* Selected work strip */
.work-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.work-tile { margin: 0; background: var(--charcoal); border: 1px solid var(--dark-gray); border-radius: 8px; overflow: hidden; }
.work-tile .shot { aspect-ratio: 4 / 3; border-radius: 0; }
.work-tile figcaption { padding: 0.8rem 1rem 1rem; display: grid; gap: 0.15rem; }
.work-tile strong { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; color: var(--white); line-height: 1.2; }
.work-tile span { font-size: 1rem; color: var(--gold-light); }
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2.5rem; padding: 1.75rem 0 0.5rem; border-top: 1px solid rgba(201,169,98,0.3); text-align: center; }
.stats-row .stat-value { font-family: var(--font-display); font-weight: 700; font-size: clamp(2.2rem, 4.5vw, 3.2rem); line-height: 1; color: var(--gold); }
.stats-row .stat-label { color: #c4c4c4; margin-top: 0.4rem; }
.work-section .stats-source { color: #a8a8a8; margin-top: 0.75rem; text-align: center; }

/* Trade cards with a representative photo */
.trade-card { padding: 0 0 1.5rem !important; overflow: hidden; }
.trade-card > :not(.trade-photo) { margin-left: 1.5rem; margin-right: 1.5rem; }
.trade-card .service-icon { margin-top: 1.5rem; }
.trade-photo { aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: 1.1rem; }
.trade-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.trade-figure { margin: 0 0 1.25rem; }
.trade-figure .shot { aspect-ratio: 4 / 3; }
.trade-figure figcaption { margin-top: 0.5rem; font-size: 1rem; color: #b0b0b0; }
.trade-icon-panel { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 7; margin-bottom: 1.25rem; border: 1px solid rgba(201,169,98,0.3); background: radial-gradient(60% 80% at 50% 40%, rgba(201,169,98,0.12), transparent 70%), #0f0f0f; border-radius: 6px; }
.trade-icon-panel svg { width: 84px; height: 84px; stroke: var(--gold); fill: none; }

/* Past-performance evidence cards */
.pp-card.has-photo { padding-top: 0; overflow: hidden; }
.pp-card.has-photo .pp-media { margin: 0 -1.5rem 0.4rem; }
.pp-media .shot:not(.thumb) { aspect-ratio: 4 / 3; border-radius: 0; }
.pp-thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; margin-top: 4px; }
.pp-thumbs .shot { aspect-ratio: 4 / 3; border-radius: 0; }
.pp-thumbs .shot.tall img { object-fit: cover; }
.pp-card.text-only { border-color: rgba(201,169,98,0.25); background: linear-gradient(160deg, #161616, #101010); }

/* Certificate / credential buttons */
.cert-link { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-align: left; }
button.credential-item { min-height: 44px; }
button.credential-item .credential-text span { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.footer-ids .cert-link { min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 3px; color: #c4c4c4; }
.footer-ids .cert-link b { color: var(--gold); font-weight: 600; letter-spacing: 0.08em; margin-right: 0.35rem; }
.cert-link.inline { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; min-height: 44px; }

/* Lightbox */
.lightbox[hidden] { display: none; }
.lightbox { position: fixed; inset: 0; z-index: 4000; display: grid; place-items: center; padding: 16px; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.88); }
.lightbox-frame { position: relative; margin: 0; max-width: min(1200px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 0.6rem; padding-top: 56px; opacity: 0; transform: scale(0.98); transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out); }
.lightbox.open .lightbox-frame { opacity: 1; transform: none; }
.lightbox-frame img { display: block; max-width: 100%; max-height: calc(100vh - 170px); max-height: calc(100dvh - 170px); width: auto; height: auto; object-fit: contain; border-radius: 4px; background: #111; }
.lightbox-frame figcaption { color: #e6e6e6; font-size: 1rem; text-align: center; max-width: 60ch; }
.lightbox-close { position: absolute; top: 0; right: 0; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--gold); background: #111; color: var(--gold); font-size: 1.75rem; line-height: 1; cursor: pointer; }

@media (max-width: 1024px) {
  .work-strip { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .hero-photo { margin-top: 0.5rem; }
  .work-strip { grid-template-columns: 1fr 1fr; gap: 0.6rem; }
  .work-tile figcaption { padding: 0.55rem 0.65rem 0.75rem; }
  .work-tile strong { font-size: 1.1rem; }
  .stats-row { grid-template-columns: 1fr 1fr; }
  .trade-card > :not(.trade-photo) { margin-left: 1.25rem; margin-right: 1.25rem; }
  .pp-card.has-photo .pp-media { margin: 0 -1.5rem 0.4rem; }
}
@media (max-width: 380px) { .work-strip { grid-template-columns: 1fr; } }

/* ══ VIEW-ONLY CREDENTIALS (owner, Oct 30 2026): small thumbnail → lightbox ══ */
.cred-hic { background-image: url('/assets/creds/nyc-hic.webp?v=66872ee77b'); }
.cred-phta { background-image: url('/assets/creds/phta-cbp.webp?v=5cbab7c4cb'); }
.protected { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.cred-card { display: flex; align-items: center; gap: 0.9rem; width: 100%; min-height: 44px; padding: 0.6rem; border: 1px solid rgba(201,169,98,0.35); background: rgba(201,169,98,0.05); border-radius: 8px; color: var(--off-white); text-align: left; cursor: zoom-in; font: inherit; transition: border-color var(--dur-ui) var(--ease-out), background var(--dur-ui) var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .cred-card:hover { border-color: var(--gold); background: rgba(201,169,98,0.1); } }
.cred-thumb { position: relative; flex: 0 0 96px; width: 96px; aspect-ratio: 4 / 3; border-radius: 4px; background-color: #fff; background-size: contain; background-position: center; background-repeat: no-repeat; box-shadow: 0 6px 18px rgba(0,0,0,0.45); }
.cred-shield, .cred-overlay { position: absolute; inset: 0; background: transparent; }
.cred-text { display: grid; gap: 0.1rem; min-width: 0; }
.cred-text strong { font-size: 1rem; color: var(--white); line-height: 1.3; }
.cred-text span { font-size: 1rem; color: #b8b8b8; font-variant-numeric: tabular-nums; }
.cred-text .cred-view { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; }
.cred-row { display: grid; gap: 0.75rem; margin-bottom: 0.75rem; }
.cred-verify { margin: 0.5rem 0 1.25rem; }
.cred-verify a { display: inline-flex; align-items: center; min-height: 44px; color: var(--gold); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.credentials .cred-verify { margin: 0.75rem 0 0; }
.credentials .credentials-inner { align-items: center; }
.footer-ids .cert-link.protected { cursor: zoom-in; }
.lightbox-cred[hidden] { display: none; }
.lightbox-cred { position: relative; width: min(1100px, calc(100vw - 32px), calc((100dvh - 190px) * var(--rw, 1.3))); aspect-ratio: var(--ratio, 4 / 3); background-color: #fff; background-size: contain; background-position: center; background-repeat: no-repeat; border-radius: 4px; box-shadow: 0 30px 80px rgba(0,0,0,0.6); }
.lightbox-frame figcaption a { color: var(--gold); text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; margin-left: 0.4rem; }
@media (max-width: 1024px) { .credentials-inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) { .credentials-inner { grid-template-columns: 1fr; } .cred-thumb { flex-basis: 84px; width: 84px; } }
#lightbox-verify[hidden], .lightbox img[hidden] { display: none !important; }

/* ══ LAYOUT FIX (owner, Oct 30 2026): aligned hero, cover-cropped tiles, even grids ══ */
.hero { padding: 120px 0 64px; }
.hero-pitch { display: grid; grid-template-columns: 1.15fr 1fr; gap: 3rem; align-items: end; padding-top: 0; margin-bottom: 2.25rem; }
.hero-pitch .hero-h { margin-bottom: 0; }
.hero-pitch-side .hero-desc { margin: 0 0 1.25rem; max-width: none; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.hero-actions .btn svg { width: 16px; height: 16px; }
.hero-content { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch; }
.hero-photo { position: relative; margin: 0; min-height: 100%; border-radius: var(--luxe-radius, 10px); overflow: hidden; border: 1px solid rgba(201,169,98,0.35); box-shadow: 0 30px 60px rgba(0,0,0,0.5); }
.hero-photo .shot { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; border: 0; box-shadow: none; border-radius: 0; }
.hero-photo .shot img { object-position: 50% 45%; }
.hero-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 2.5rem 1.1rem 0.9rem; display: grid; gap: 0.1rem; background: linear-gradient(transparent, rgba(0,0,0,0.82)); pointer-events: none; color: #e6e6e6; font-size: 0.95rem; }
.hero-photo figcaption strong { color: var(--gold); font-size: 1rem; }
.hero-snapshot, .hero-snapshot .snapshot { height: 100%; }
.hero-snapshot .snapshot { margin: 0; display: flex; flex-direction: column; }
.hero-snapshot .snap-actions { margin-top: auto; }
/* tiles: never letterbox a portrait photo with black bars – crop it to the frame */
.shot.tall img { object-fit: cover; object-position: 50% 40%; }
/* credentials: four equal cards with a labelled header row */
.cred-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: 0.9rem; }
.cred-head .section-label { margin: 0; }
.cred-head a { display: inline-flex; align-items: center; min-height: 44px; color: var(--gold); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.credentials .credentials-inner { align-items: stretch; }
.credentials .cred-card { height: 100%; }
.cred-card.static { cursor: default; text-decoration: none; }
a.cred-card.static { cursor: pointer; }
.cred-thumb.icon { display: flex; align-items: center; justify-content: center; background: #0f0f0f; border: 1px solid rgba(201,169,98,0.3); box-shadow: none; }
.cred-thumb.icon svg { width: 28px; height: 28px; stroke: var(--gold); fill: none; }
/* trades: icon trades get the same 4:3 panel as photo trades so every heading lines up */
.trade-photo.icon-photo { display: flex; align-items: center; justify-content: center; background: radial-gradient(60% 80% at 50% 40%, rgba(201,169,98,0.12), transparent 70%), #0f0f0f; border-bottom: 1px solid rgba(201,169,98,0.2); }
.trade-photo.icon-photo svg { width: 72px; height: 72px; stroke: var(--gold); fill: none; }
.services-grid.trades { grid-template-columns: repeat(4, 1fr); }
.trade-card { display: flex; flex-direction: column; }
.trade-card .service-link { margin-top: auto; }
.codes-card { text-decoration: none; border-color: rgba(201,169,98,0.4) !important; }
@media (max-width: 1100px) { .services-grid.trades { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 1024px) {
  .hero-pitch { grid-template-columns: 1fr; gap: 1.25rem; align-items: start; }
  .hero-content { grid-template-columns: 1fr; }
  .hero-photo { min-height: 0; aspect-ratio: 1600 / 1422; }
}
@media (max-width: 600px) { .services-grid.trades { grid-template-columns: 1fr; } .hero-actions .btn { flex: 1 1 100%; justify-content: center; } }

/* ══ HEADER (owner, Oct 30 2026): one clean row – logo | nav | phone + CTA. No tag, no pill. ══ */
.header-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; padding: 0.85rem 0; }
.header .logo img { height: 48px; width: auto; }
.wing-tag { display: none !important; }
.nav { justify-content: center; gap: clamp(1rem, 2vw, 2.25rem); }
.nav a { font-size: 0.95rem; font-weight: 500; letter-spacing: 0.02em; padding: 0; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.nav a[aria-current="page"] { color: var(--gold); background: none !important; }
.nav a[aria-current="page"]::after { display: block; width: 100%; bottom: 6px; }
.header-cta { gap: 1.25rem; }
.header-cta .btn { padding: 0.75rem 1.25rem; font-size: 0.8rem; }
@media (max-width: 1440px) and (min-width: 769px) { .header-phone .phone-text { display: none; } }
@media (max-width: 1200px) and (min-width: 769px) { .nav, .header-cta { display: none !important; } .mobile-toggle { display: flex !important; } .header-inner { grid-template-columns: auto 1fr auto; } }
@media (max-width: 1440px) and (min-width: 1201px) { .nav { gap: 1.4rem; } .header-inner { gap: 1.5rem; } }
/* the aerial is ~1.13:1 – give the photo column the width that shows the whole lot */
.hero-content { grid-template-columns: 1.3fr 1fr; }
@media (max-width: 1024px) { .hero-content { grid-template-columns: 1fr; } }
.hero { padding-top: 156px; }
@media (max-width: 768px) { .hero { padding-top: 112px; } }
@media (max-width: 1024px) { .hero-content > .hero-photo { order: 0; display: block; } .hero-content > .hero-snapshot { order: 1; } }
.sam-cell { text-decoration: none; color: inherit; }
@media (hover: hover) and (pointer: fine) { .sam-cell:hover { border-color: var(--gold); } }
.ok-dot.warn { background: #f59e0b; box-shadow: 0 0 0 4px rgba(245,158,11,0.18); }

/* ══ MOTION (owner, Oct 30 2026 – kinetic type, line-draw, clip reveals, code ticker) ══ */
.ticker { position: relative; overflow: hidden; border-top: 1px solid rgba(201,169,98,0.25); border-bottom: 1px solid rgba(201,169,98,0.25); background: #0c0c0c; padding: 0.95rem 0; -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ticker-track { display: flex; align-items: center; gap: 1.6rem; width: max-content; white-space: nowrap; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #9a9a9a; }
.ticker-track .tk-trade { font-family: var(--font-display); font-size: 1.35rem; font-weight: 500; letter-spacing: 0.01em; text-transform: none; color: var(--off-white); }
.ticker-track i { font-style: normal; color: var(--gold); font-size: 0.7rem; }
@media (prefers-reduced-motion: no-preference) {
  .ticker-track { animation: tk-scroll 70s linear infinite; }
  @media (hover: hover) and (pointer: fine) { .ticker:hover .ticker-track { animation-play-state: paused; } }
  @keyframes tk-scroll { to { transform: translateX(-50%); } }

  /* kinetic headline */
  .kinetic .kw { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: 0.08em; margin-bottom: -0.08em; }
  .kinetic .kw > span { display: inline-block; transform: translateY(105%); opacity: 0; transition: transform 900ms cubic-bezier(.2,.7,.1,1), opacity 600ms ease-out; transition-delay: calc(var(--i) * 70ms + 120ms); }
  .kinetic.go .kw > span { transform: none; opacity: 1; }
  .hero-h em { position: relative; }
  .hero-h.kinetic em::after { content: ''; position: absolute; left: 0; right: 0.3em; bottom: 0.02em; height: 2px; background: linear-gradient(90deg, var(--gold), rgba(201,169,98,0.15)); transform: scaleX(0); transform-origin: left; transition: transform 1100ms cubic-bezier(.2,.7,.1,1); transition-delay: calc(var(--words) * 70ms + 500ms); }
  .hero-h.kinetic.go em::after { transform: scaleX(1); }

  /* hero aerial: wipe up, then settle */
  html.js .hero-photo { clip-path: inset(100% 0 0 0); transition: clip-path 1300ms cubic-bezier(.7,0,.2,1) 250ms; }
  html.js .hero-photo.go { clip-path: inset(0 0 0 0); }
  html.js .hero-photo .shot img { transform: scale(1.14); transition: transform 2600ms cubic-bezier(.2,.7,.1,1) 250ms; }
  html.js .hero-photo.go .shot img { transform: scale(1); }
  @media (hover: hover) and (pointer: fine) { html.js .hero-photo.go .shot:hover img { transform: scale(1.03); transition-duration: 700ms; transition-delay: 0ms; } }

  /* section labels draw a gold rule as they arrive */
  html.js [data-reveal] .section-label::before { content: ''; display: inline-block; width: 32px; height: 1px; margin-right: 0.7rem; vertical-align: middle; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform 800ms cubic-bezier(.2,.7,.1,1) 150ms; }
  html.js [data-reveal].is-in .section-label::before { transform: scaleX(1); }

  /* tiles lift, gold edge on hover */
  .work-tile, .pp-card, .trade-card, .cred-card { transition: transform 300ms cubic-bezier(.2,.7,.1,1), border-color 300ms ease-out, box-shadow 300ms ease-out; }
  @media (hover: hover) and (pointer: fine) {
    .work-tile:hover, .pp-card:hover, .trade-card:hover { transform: translateY(-4px); border-color: rgba(201,169,98,0.55) !important; box-shadow: 0 18px 40px rgba(0,0,0,0.45); }
  }
}

/* address lookup (Google Places via functions/api/address.js) */
.addr-field { position: relative; }
.addr-list { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; margin: 4px 0 0; padding: 4px 0; list-style: none; background: #141414; border: 1px solid rgba(201,169,98,0.5); border-radius: 8px; box-shadow: 0 18px 40px rgba(0,0,0,0.55); }
.addr-list[hidden] { display: none; }
.addr-list li { padding: 0.7rem 0.9rem; min-height: 44px; display: flex; align-items: center; color: var(--off-white); font-size: 1rem; cursor: pointer; }
.addr-list li.on, .addr-list li:hover { background: rgba(201,169,98,0.14); color: var(--white); }
.addr-stzip { display: grid; grid-template-columns: 1fr 1.4fr; gap: 0.75rem; }
.addr-stzip > div { display: grid; gap: 0.35rem; }

/* footer: the machine-readable row is for crawlers – keep it quiet for people */
.footer-machine { border-top: 0; padding-top: 0.5rem; gap: 0.9rem; opacity: 0.55; }
.footer-machine span, .footer-machine a { font-size: 0.75rem !important; letter-spacing: 0.02em; text-transform: none; color: #8a8a8a; font-weight: 400; }
.footer-machine span::after { content: ':'; }
@media (hover: hover) and (pointer: fine) { .footer-machine:hover { opacity: 1; } }

/* footer rows: every item on one centre line (owner, Oct 30 2026) */
.footer-ids { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1.75rem; row-gap: 0.25rem; }
.footer-ids > span, .footer-ids > .cert-link { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0; line-height: 1; font-size: 0.95rem; vertical-align: middle; }
.footer-ids b { margin-right: 0.4rem; }
.footer-ids .cert-link { text-decoration: none; }
.footer-ids .cert-link span, .footer-ids .cert-link { text-underline-offset: 4px; }
.footer-ids .cert-link:hover { color: var(--gold); }
.footer-machine { display: flex; flex-wrap: wrap; align-items: center; column-gap: 1.1rem; row-gap: 0; }
.footer-machine > span, .footer-machine > a { display: inline-flex; align-items: center; min-height: 44px; margin: 0; line-height: 1; }
.footer-bottom { align-items: center; }
.footer-ids .cert-link { text-decoration: underline dotted rgba(201,169,98,0.7); text-decoration-thickness: 1px; text-underline-offset: 5px; }

/* phones: the photo comes right after the headline, inside the first screen (owner, Oct 30 2026) */
@media (max-width: 1024px) {
  .hero > .container { display: flex; flex-direction: column; gap: 1.25rem; }
  .hero-pitch, .hero-content { display: contents; }
  .hero-pitch-main { order: 1; }
  .hero-content > .hero-photo { order: 2; }
  .hero-pitch-side { order: 3; }
  .hero-content > .hero-snapshot { order: 4; }
  .hero-pitch-main .hero-h { margin-bottom: 0; }
  .hero-photo { aspect-ratio: 4 / 3; }
  .hero-photo .shot img { object-position: 50% 40%; }
}
@media (max-width: 768px) { .hero { padding-top: 96px; } .hero-pitch-main .hero-badge { margin-bottom: 0.9rem; } }

@media (max-width: 1024px) {
  .hero-photo { aspect-ratio: auto; overflow: visible; border: 0; box-shadow: none; border-radius: 0; }
  .hero-photo .shot { position: relative; inset: auto; aspect-ratio: 1600 / 1422; height: auto; border: 1px solid rgba(201,169,98,0.35); border-radius: 10px; box-shadow: 0 20px 40px rgba(0,0,0,0.45); }
  .hero-photo figcaption { position: static; padding: 0.6rem 0.1rem 0; background: none; }
}
.poc-direct { margin: 0.35rem 0 1rem; color: #b8b8b8; font-size: 1rem; }
.poc-direct a { color: var(--gold); text-underline-offset: 3px; }

/* ══ MOBILE PARITY WITH emmanuelpools.com (owner, Oct 30 2026) ══ */
@media (max-width: 1200px) {
  /* logo left, gold hamburger hard right - never stranded mid-row */
  .header-inner { display: flex !important; justify-content: space-between; align-items: center; gap: 1rem; }
  .header-inner .mobile-toggle { margin-left: auto; }
}
@media (max-width: 768px) {
  .header .logo img { height: auto; width: 170px; max-height: none; }
  .header-inner { padding: 0.6rem 0; }
  /* the page starts BELOW the fixed trust bar + header (measured, not guessed) */
  .hero, .page-header { padding-top: calc(var(--header-bottom, 120px) + 1.5rem) !important; }
  /* the sticky bar never covers the last lines of the page */
  body { padding-bottom: 84px; }
  /* and it gets out of the way while you type */
  body.typing .sticky-cta { transform: translateY(110%); opacity: 0; pointer-events: none; }
  .sticky-cta { transition: transform 200ms ease-out, opacity 200ms ease-out; }
}
@media (max-width: 768px) { body.luxe-scrolled .header .logo img { height: auto; width: 140px; } }
.sticky-cta .cta-wa svg { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.poc-actions .btn svg { width: 18px; height: 18px; }
