/* Local kit styles — extends colors_and_type.css */

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: var(--bg); color: var(--fg); font-family: var(--font-body); }

img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.section { padding: 96px 0; }
.section.tight { padding: 64px 0; }
.section.alt { background: var(--bg-alt); }
.section.dark { background: var(--bg-dark); color: var(--fg-on-dark); }
.section.dark h1, .section.dark h2, .section.dark h3 { color: var(--fg-on-dark); }
.section.dark .lead, .section.dark p { color: var(--fg-on-dark-muted); }

.eyebrow { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; color:var(--accent); font-family:var(--font-body); }
.section.dark .eyebrow { color: var(--t1-steel-light); }
.rule { width:56px; height:2px; background:var(--accent); margin:14px 0 24px; }
.rule.center { margin-left:auto; margin-right:auto; }

.t1-header { position:relative; z-index:50; background:transparent; transition:background 240ms ease; }
.t1-header.on-dark { background:var(--bg-darker); }
.t1-header .inner { display:flex; align-items:center; justify-content:space-between; padding:14px 24px 14px 16px; max-width:1400px; margin:0 auto; }
.t1-brand { display:flex; align-items:center; gap:6px; cursor:pointer; }
.t1-brand img { height:72px; width:auto; display:block; }
.t1-brand .name { font-family:var(--font-display); font-weight:700; color:#fff; font-size:19px; letter-spacing:.04em; line-height:1.05; display:flex; flex-direction:column; }
.t1-brand .name span { display:block; }

/* ── Header logo lockup — same code as logo-candidates.html, scaled for header ── */
.logo-lockup { font-family:'EB Garamond', Georgia, serif; display:inline-flex; align-items:center; padding:8px 10px; border-radius:4px; }
.logo-mark img { display:block; width:120px; height:120px; object-fit:contain; }
.logo-divider { width:1px; height:52px; margin:0 18px 0 -8px; flex-shrink:0; }
.lockup-clear-lt .logo-divider { background:#b8ddf0; }
.logo-text { display:flex; flex-direction:column; justify-content:center; align-items:center; line-height:1; }
.logo-text .line1 { font-size:1.9rem; font-weight:500; letter-spacing:0.16em; text-transform:uppercase; white-space:nowrap; }
.logo-text .line2 { font-size:1.15rem; font-weight:400; letter-spacing:0.28em; text-transform:uppercase; margin-top:5px; white-space:nowrap; }
.lockup-clear-lt .line1 { color:#dce7ed; }
.lockup-clear-lt .line2 { color:#6a96b0; }

/* ── Header-specific scale overrides ── */
.t1-header .logo-lockup { padding:4px 6px; }
.t1-header .logo-mark img { width:44px; height:44px; }
.t1-header .logo-divider { height:30px; margin:0 12px 0 4px; }
.t1-header .logo-text .line1 { font-size:1.05rem; }
.t1-header .logo-text .line2 { font-size:0.65rem; margin-top:2px; }

/* ── Rebuilt T1 mark — T and 1 as separate colored elements ── */
.mark-rebuilt { position:relative; width:62px; height:76px; font-family:'EB Garamond', Georgia, serif; }
.mark-t { position:absolute; top:0; left:0; font-size:4.6rem; font-weight:400; color:#b8ddf0; line-height:1; letter-spacing:0; user-select:none; }
.mark-1 { position:absolute; bottom:0; right:0; font-size:3rem; font-weight:600; color:#2c4a60; line-height:1; letter-spacing:0; user-select:none; }
.t1-nav { display:flex; gap:28px; align-items:center; }
.t1-nav a { color:#fff; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; padding:10px 0; position:relative; cursor:pointer; transition:color 180ms; background:none; border:none; text-decoration:none; }
.t1-nav a:hover { color:var(--t1-steel-light); }
.t1-nav a.active::after { content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--t1-teal-soft); }
.t1-nav a.cta { background:var(--accent); padding:10px 20px; border-radius:4px; }
.t1-nav a.cta::after { display:none; }
.t1-nav a.cta:hover { background:var(--accent-hover); color:#fff; }

.t1-footer { background:var(--bg-darker); color:var(--fg-on-dark-muted); padding:64px 0 28px; }
.t1-footer .grid { display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:48px; }
.t1-footer h5 { font-family:var(--font-body); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; color:#fff; margin:0 0 16px; }
.t1-footer ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.t1-footer a { color:var(--fg-on-dark-muted); font-size:14px; cursor:pointer; }
.t1-footer a:hover { color:#fff; }
.t1-footer .brand-block img { height:70px; margin-bottom:16px; }
.t1-footer .brand-block p { font-size:14px; line-height:1.6; max-width:300px; color:var(--fg-on-dark-muted); }
.t1-footer .copyright { border-top:1px solid var(--rule); margin-top:48px; padding-top:24px; font-size:12px; color:#A8B4C8; display:flex; justify-content:space-between; }

.btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-weight:600; font-size:14px; padding:12px 24px; border-radius:4px; border:1px solid transparent; cursor:pointer; transition:all 180ms var(--ease-standard); letter-spacing:.02em; text-decoration:none; }
.btn-primary { background:var(--accent); color:#fff; }
.btn-primary:hover { background:var(--accent-hover); transform:translateY(-1px); }
.btn-secondary { background:transparent; color:var(--t1-charcoal); border-color:var(--border-strong); }
.btn-secondary:hover { background:var(--bg-alt); border-color:var(--t1-charcoal); }
.btn-ghost { background:transparent; color:var(--accent); padding:12px 4px; }
.btn-ghost:hover { color:var(--accent-hover); }
.btn-on-dark { background:#fff; color:var(--t1-charcoal); }
.btn-on-dark:hover { background:var(--t1-mist); }
.btn-outline-dark { background:transparent; color:var(--fg-on-dark); border-color:var(--t1-steel-light); }
.btn-outline-dark:hover { background:var(--t1-charcoal-soft); border-color:var(--fg-on-dark); }

.hero { position:relative; margin-top:-140px; height:calc(100vh - 60px); background:#0D1A1A; color:#fff; display:flex; align-items:center; overflow:hidden; }
.hero .bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:1; }
.hero .overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,26,26,.70) 0%, rgba(13,26,26,.82) 100%); }
.hero .container { position:relative; z-index:2; padding-top:120px; padding-bottom:80px; text-align:center; }
.hero h1 { font-family:var(--font-display); font-weight:800; font-size:clamp(38px, 5vw, 64px); line-height:1.05; max-width:880px; margin:0 auto 24px; color:var(--fg-on-dark); letter-spacing:-.01em; }
.hero p.lead { font-size:20px; line-height:1.55; color:var(--fg-on-dark-muted); max-width:680px; margin:0 auto 32px; }
.hero .actions { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }
.hero .eyebrow { color:var(--t1-steel-light); }
.page-hero { background:var(--bg-alt); color:var(--t1-charcoal); padding:80px 0 56px; border-bottom:1px solid var(--border); }
.page-hero h1 { color:var(--t1-charcoal); margin:0 0 12px; font-family:var(--font-display); font-weight:700; font-size:clamp(36px,4vw,52px); }
.page-hero p { color:var(--fg-muted); font-size:18px; line-height:1.55; max-width:740px; margin:0; }

.service-hero { position:relative; margin-top:-140px; height:calc(100vh - 120px); display:flex; align-items:flex-end; overflow:hidden; color:#fff; }
.service-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.service-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,26,26,.45) 0%, rgba(13,26,26,.72) 100%); }
.service-hero-content { position:relative; z-index:2; padding-top:160px; padding-bottom:72px; }
.service-hero h1 { color:#fff; margin:0 0 16px; font-family:var(--font-display); font-weight:700; font-size:clamp(36px,4vw,56px); max-width:820px; }
.service-hero p { color:rgba(255,255,255,0.75); font-size:18px; line-height:1.6; max-width:640px; margin:0 0 32px; }
.service-hero .stat .num { color:var(--t1-steel-light); }
.service-hero .stat .label { color:rgba(255,255,255,0.55); }

.team-hero { position:relative; margin-top:-140px; height:calc(100vh - 120px); display:flex; align-items:flex-end; overflow:hidden; color:#fff; }
.team-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.team-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(13,26,26,.45) 0%, rgba(13,26,26,.72) 100%); }
.team-hero-content { position:relative; z-index:2; padding-top:160px; padding-bottom:72px; }
.team-hero h1 { color:#fff; margin:0 0 16px; font-family:var(--font-display); font-weight:700; font-size:clamp(36px,4vw,56px); max-width:820px; }
.team-hero p { color:rgba(255,255,255,0.75); font-size:18px; line-height:1.6; max-width:640px; margin:0; }

.t1-card { background:#fff; border:1px solid var(--border); border-radius:4px; padding:32px; box-shadow:var(--shadow-sm); transition:all 180ms var(--ease-standard); }
.t1-card:hover { box-shadow:var(--shadow-md); border-color:var(--border-strong); transform:translateY(-2px); }
.t1-card h3 { font-family:var(--font-display); font-size:22px; font-weight:600; margin:0 0 10px; color:var(--t1-charcoal); }
.t1-card p { font-size:14px; line-height:1.6; color:var(--fg-muted); margin:0; }
.t1-card .meta { font-size:12px; color:var(--fg-muted); margin-top:14px; padding-top:14px; border-top:1px solid var(--border); letter-spacing:.04em; text-transform:uppercase; font-weight:600; }

.stat { padding:24px 0; }
.stat .num { font-family:var(--font-display); font-weight:800; font-size:54px; color:var(--accent); line-height:1; letter-spacing:-.02em; }
.section.dark .stat .num { color:var(--t1-steel-light); }
.stat .label { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.15em; color:var(--fg-muted); margin-top:10px; }
.section.dark .stat .label { color:var(--fg-on-dark-muted); }

.field { display:flex; flex-direction:column; gap:6px; }
.field label { font-size:12px; font-weight:600; color:var(--fg); }
.field input, .field select, .field textarea { font-family:var(--font-body); font-size:15px; padding:12px 14px; border:1px solid var(--border-strong); border-radius:4px; background:#fff; color:var(--fg); transition:all 180ms var(--ease-standard); }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(84,146,174,.15); }
.field textarea { resize:vertical; min-height:140px; }

/* Service bento grid */
.service-bento { display:grid; grid-template-columns:repeat(12, 1fr); grid-template-rows:320px 260px; gap:16px; }
.service-bento-card { position:relative; border-radius:6px; overflow:hidden; background:var(--bg-dark); }
.service-bento-card .sbc-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.service-bento-card .sbc-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(22,27,32,.92) 0%, rgba(22,27,32,.3) 55%, transparent 100%); }
.service-bento-card .sbc-content { position:relative; z-index:2; height:100%; padding:28px; display:flex; flex-direction:column; justify-content:flex-end; }
.service-bento-card .sbc-content h3 { font-family:var(--font-display); font-size:22px; font-weight:700; color:#fff; margin:0 0 8px; letter-spacing:.04em; text-transform:uppercase; }
.service-bento-card .sbc-content p { font-size:14px; line-height:1.6; color:rgba(255,255,255,.72); margin:0; max-width:400px; }
.bento-1 { grid-column:1 / 8; }
.bento-2 { grid-column:8 / 13; }
.bento-3 { grid-column:1 / 6; }
.bento-4 { grid-column:6 / 13; }

/* How We Work — process steps, used inside .section.dark */
.process-steps { display:grid; grid-template-columns:repeat(4, 1fr); gap:40px; margin-top:48px; }
.process-step .ps-num { font-family:var(--font-display); font-size:48px; font-weight:800; color:var(--accent); line-height:1; margin-bottom:16px; }
.process-step .ps-title { font-family:var(--font-display); font-size:18px; font-weight:700; color:#fff; margin:0 0 10px; letter-spacing:.03em; text-transform:uppercase; }
.process-step .ps-body { font-size:14px; line-height:1.65; color:var(--fg-on-dark-muted); margin:0; }

/* Texas SVG map */
.tx-map-layout { display:grid; grid-template-columns:1fr 300px; gap:40px; align-items:start; }
.tx-map-wrap { border-radius:8px; overflow:hidden; border:1px solid rgba(255,255,255,.07); }
.tx-map { width:100%; height:auto; display:block; }
.tx-state { fill:#162628; stroke:var(--accent); stroke-width:1.8; }
.tx-dfwring { fill:rgba(58,103,106,.13); stroke:var(--accent); stroke-width:1; stroke-dasharray:4 3; opacity:.55; }
.tx-maplabel { font-family:var(--font-body); font-size:8.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; fill:var(--accent); text-anchor:middle; opacity:.55; }
.tx-dot { fill:var(--accent); transition:fill 200ms; cursor:pointer; }
.tx-dot.active { fill:#fff; }
.tx-pulse { fill:none; stroke:var(--accent); transform-box:fill-box; transform-origin:50% 50%; opacity:0; }
.tx-pulse.on { animation:tx-ping 2.4s ease-out infinite; }
.tx-pulse-a.on { stroke-width:2.5; }
.tx-pulse-b.on { stroke-width:1.5; animation-delay:.95s; }
@keyframes tx-ping { 0% { transform:scale(1); opacity:.6; } 100% { transform:scale(3.8); opacity:0; } }
.tx-panel { position:sticky; top:100px; }
.tx-card { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:6px; padding:28px 28px 32px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); animation:tx-card-in 260ms var(--ease-standard) both; }
@keyframes tx-card-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.tx-card-eyebrow { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; color:var(--t1-steel-light); font-family:var(--font-body); }
.tx-card-rule { width:40px; height:2px; background:var(--accent); margin:12px 0 18px; }
.tx-card-name { font-family:var(--font-display); font-size:17px; font-weight:700; color:#fff; text-transform:uppercase; letter-spacing:.04em; line-height:1.25; margin-bottom:6px; }
.tx-card-loc { font-size:12px; color:var(--t1-steel-light); opacity:.65; margin-bottom:18px; }
.tx-card-desc { font-size:13.5px; line-height:1.8; color:rgba(255,255,255,.6); margin:0; }
@media (max-width:720px) { .tx-map-layout { grid-template-columns:1fr; } .tx-panel { position:static; } }
.tx-hwy { stroke:rgba(84,146,174,.55); stroke-width:1.5; fill:none; }
.tx-hwy-minor { stroke-dasharray:6 4; opacity:.7; }
.tx-hwy-major { stroke:rgba(84,146,174,.75); stroke-width:2; }
.tx-hwy-label { font-family:var(--font-body); font-size:8px; font-weight:700; letter-spacing:.08em; fill:rgba(139,188,206,.65); }
.tx-ghost-city { font-family:var(--font-display); font-size:14px; font-weight:700; letter-spacing:.28em; fill:rgba(255,255,255,.07); }
.tx-city-label { font-family:var(--font-body); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; fill:rgba(139,188,206,.65); transition:fill 200ms; }
.tx-city-label.active { fill:#fff; }
.tx-city-label.nearby { fill:rgba(192,216,232,.88); }
.tx-locator-label { font-family:var(--font-body); font-size:9px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; fill:rgba(45,96,128,.5); }

/* Industry verticals grid */
.verticals { display:grid; grid-template-columns: repeat(3, 1fr); gap:20px; }
.vertical-card { background:#fff; border:1px solid var(--border); border-radius:4px; overflow:hidden; cursor:pointer; transition:all 180ms var(--ease-standard); display:flex; flex-direction:column; text-decoration:none; }
.vertical-card:hover { box-shadow:var(--shadow-md); border-color:var(--border-strong); transform:translateY(-2px); }
.vertical-card .vc-image { height:160px; background-size:cover; background-position:center; background-color:#0D1A1A; }
.vertical-card .vc-title { padding:18px 20px 6px; font-family:var(--font-display); font-weight:600; font-size:18px; color:var(--t1-charcoal); letter-spacing:.04em; text-transform:uppercase; }
.vertical-card .vc-arrow { padding:0 20px 18px; color:var(--accent); font-size:18px; }

/* Service rows */
.service-row { display:grid; grid-template-columns: 220px 1fr; gap:32px; padding:32px 0; border-bottom:1px solid var(--border); }
.service-row:first-child { padding-top:0; }
.service-row:last-child { border-bottom:none; padding-bottom:0; }
.service-row h3 { font-family:var(--font-display); font-size:24px; font-weight:600; color:var(--t1-charcoal); margin:0; line-height:1.2; }
.service-row .body p { font-size:15px; line-height:1.65; color:var(--fg); margin:0 0 12px; }

/* Team page */
.team-grid { display:grid; grid-template-columns: 1fr 1fr; gap:48px; }
.team-member img { width:100%; height:340px; object-fit:cover; border-radius:4px; filter:saturate(.92); margin-bottom:20px; }
.team-member .role { font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.team-member h3 { font-family:var(--font-display); font-size:26px; font-weight:700; margin:6px 0 14px; color:var(--t1-charcoal); text-transform:uppercase; letter-spacing:.02em; }
.team-member .bio { font-size:14px; line-height:1.7; color:var(--fg); }

.cta-band { background:var(--bg-alt); border-top:1px solid var(--border); border-bottom:1px solid var(--border); color:var(--t1-charcoal); padding:64px 0; }
.cta-band .inner { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.cta-band h2 { font-family:var(--font-display); font-weight:700; font-size:32px; color:var(--t1-charcoal); margin:0; max-width:720px; line-height:1.2; }

.contact-grid { display:grid; grid-template-columns: 1.2fr 1fr; gap:64px; }
.contact-info dl { margin:0; }
.contact-info dt { font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-top:24px; }
.contact-info dt:first-child { margin-top:0; }
.contact-info dd { font-size:16px; margin:6px 0 0; color:var(--fg); line-height:1.5; }

.cities { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.cities .chip { background:var(--bg-alt); color:var(--t1-charcoal); padding:6px 14px; border-radius:999px; font-size:12px; font-weight:600; letter-spacing:.04em; }

.page { animation: fade 280ms var(--ease-standard); }
@keyframes fade { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }

/* Scroll reveal — disabled per request; class kept inert so JSX markup is unchanged */
.reveal, .reveal.revealed { opacity:1; transform:none; transition:none; }

/* Hero stats strip */
.hero-stats { display:flex; align-items:center; gap:24px; margin-top:40px; flex-wrap:wrap; justify-content:center; }
.hero-stat { display:flex; flex-direction:column; gap:3px; }
.hero-stat-num { font-family:var(--font-display); font-weight:800; font-size:28px; color:var(--fg-on-dark); line-height:1; letter-spacing:-.01em; }
.hero-stat-label { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--fg-on-dark-muted); }
.hero-stat-div { width:1px; height:36px; background:var(--t1-steel); flex-shrink:0; }

/* Marquee logo strip */
/* flex + width:max-content makes -50% = exactly one full set, no viewport ambiguity */
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.marquee-section { background:#F5F5F0; border-top:1px solid #E0E4E4; border-bottom:1px solid #E0E4E4; }
.marquee-label { text-align:center; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-muted); margin:0; padding:16px 0 0; }
.marquee-track { overflow:hidden; padding:16px 0; mask-image:linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%); -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 8%, #000 92%, transparent 100%); }
.marquee-inner { display:flex; gap:80px; align-items:center; width:max-content; will-change:transform; animation: marquee-scroll 30s linear infinite; }
.marquee-logo { height:28px; width:auto; object-fit:contain; filter:saturate(0.8); }
.marquee-logo--sm { height:21px; }
@media (prefers-reduced-motion:reduce) { .marquee-inner { animation:none; } }

/* Proof-point cards */
.proof-points { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; margin-top:48px; }
.proof-point { padding:28px 24px; background:#fff; border:1px solid var(--border); border-radius:4px; border-top:3px solid var(--accent); }
.pp-title { font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--t1-charcoal); letter-spacing:.06em; text-transform:uppercase; margin:0 0 10px; }
.pp-body { font-size:14px; line-height:1.65; color:var(--fg-muted); margin:0; }

/* Numbered service cards */
.service-cards { display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }
.service-card { background:#fff; border:1px solid var(--border); border-radius:4px; padding:32px; display:flex; flex-direction:column; gap:10px; }
.sc-num { font-family:var(--font-display); font-size:12px; font-weight:700; letter-spacing:.14em; color:var(--accent); }
.sc-title { font-family:var(--font-display); font-size:19px; font-weight:700; color:var(--t1-charcoal); margin:0; letter-spacing:.02em; line-height:1.2; }
.sc-body { font-size:14px; line-height:1.65; color:var(--fg-muted); margin:0; flex:1; }
.sc-link { padding:8px 0; font-size:13px; align-self:flex-start; }

/* Stats band grid */
.stats-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:32px; }

/* Howie CTA section */
.howie-cta { display:grid; grid-template-columns:360px 1fr; gap:64px; align-items:center; }
.howie-photo img { width:100%; aspect-ratio:2/3; object-fit:cover; border-radius:4px; filter:saturate(.9); }

/* Responsive — tablet and below */
@media (max-width:900px) {
  .service-cards { grid-template-columns:repeat(2, 1fr); }
  .stats-grid { grid-template-columns:repeat(2, 1fr); }
  .howie-cta { grid-template-columns:1fr; }
  .howie-photo { max-width:340px; margin-inline:auto; }
  .service-bento { grid-template-columns:1fr 1fr; grid-template-rows:280px 280px; }
  .bento-1, .bento-2, .bento-3, .bento-4 { grid-column:auto; }
  .process-steps { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:640px) {
  .proof-points { grid-template-columns:1fr; }
  .service-cards { grid-template-columns:1fr; }
  .hero-stats { gap:16px; }
  .hero-stat-div { display:none; }
  .service-bento { grid-template-columns:1fr; grid-template-rows:repeat(4, 220px); }
  .process-steps { grid-template-columns:1fr; }
}

/* Clients page — full-viewport hero + card grid */
.clients-hero { position:relative; margin-top:-140px; height:calc(100vh - 120px); overflow:hidden; background:#2E3244; }
.clients-hero > img { width:100%; height:100%; object-fit:cover; object-position:center 25%; display:block; }
.clients-hero-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.38) 45%, transparent 100%); }
.clients-hero-text { position:absolute; bottom:0; left:0; padding:0 80px 80px; z-index:1; }
.clients-hero-label { font-family:var(--font-body); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:#8BBCCE; margin:0 0 12px; }
.clients-hero-title { font-family:var(--font-display); font-size:44px; font-weight:600; color:#fff; letter-spacing:-.02em; margin:0 0 12px; line-height:1.1; }
.clients-hero-subtitle { font-family:var(--font-body); font-size:17px; color:#fff; max-width:480px; line-height:1.6; margin:0; }
.clients-grid-wrap { padding:48px 24px 96px; max-width:924px; margin:0 auto; }
.clients-grid { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.client-card { background:var(--bg); border:1px solid var(--border); border-radius:4px; padding:24px 24px 20px; display:flex; flex-direction:column; width:280px; height:420px; overflow:hidden; position:relative; opacity:0; transform:translateY(20px); transition:opacity 280ms ease, transform 280ms ease, border-color 160ms ease, box-shadow 160ms ease; }
.client-card.visible { opacity:1; transform:translateY(0); }
.client-card:hover { border-color:#5492AE; box-shadow:0 4px 16px rgba(45,96,128,.12); }
.client-name { font-family:var(--font-body); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--t1-charcoal); position:relative; z-index:1; }
.client-logo-wrap { position:absolute; top:50%; left:0; right:0; transform:translateY(-50%); height:200px; display:flex; align-items:center; justify-content:center; padding:0 8px; z-index:0; }
.client-logo-wrap img { max-width:200px; max-height:96px; width:auto; height:auto; object-fit:contain; }
.client-desc { margin-top:auto; font-family:var(--font-body); font-size:11px; color:var(--t1-charcoal); line-height:1.65; border-top:1px solid var(--border); padding-top:12px; overflow:hidden; position:relative; z-index:1; background:var(--bg); }
.desc-short { display:block; max-height:40px; overflow:hidden; transition:max-height 300ms cubic-bezier(.16,1,.3,1), opacity 200ms ease; }
.client-card:hover .desc-short { max-height:0; opacity:0; }
.desc-long { display:block; max-height:0; overflow:hidden; opacity:0; transition:max-height 400ms cubic-bezier(.16,1,.3,1), opacity 200ms ease 150ms; }
.client-card:hover .desc-long { max-height:200px; opacity:1; }
.client-card-arrow { position:absolute; bottom:20px; right:24px; color:#8BBCCE; font-size:11px; z-index:2; transition:opacity 200ms ease; pointer-events:none; }
.client-card:hover .client-card-arrow { opacity:0; }
@media (prefers-reduced-motion:reduce) { .client-card { opacity:1; transform:none; transition:border-color 160ms ease, box-shadow 160ms ease; } }

/* ---- Team / About page ---- */
.team-page .stats-grid { gap:0; }
.team-page .stats-grid .stat { padding:40px 32px; border-right:1px solid rgba(255,255,255,.07); text-align:center; }
.team-page .stats-grid .stat:last-child { border-right:none; }

.bio-grid { display:grid; grid-template-columns:340px 1fr; gap:64px; align-items:start; }
.bio-photo { width:100%; max-width:340px; aspect-ratio:2/3; object-fit:cover; border-radius:4px; filter:saturate(.92); }
.bio-body p { font-size:16px; line-height:1.75; color:var(--fg); margin-bottom:16px; }
.bio-body p:last-child { margin-bottom:0; }

/* Co-founder card (smaller than the principal bio) */
.cofounder-grid { display:grid; grid-template-columns:220px 1fr; gap:48px; align-items:start; }
.cofounder-photo { width:100%; max-width:220px; aspect-ratio:3/4; object-fit:cover; border-radius:4px; filter:saturate(.92); }

.platform-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.platform-chip { background:var(--bg); border:1px solid var(--border-strong); color:var(--t1-charcoal); padding:6px 14px; border-radius:3px; font-size:12px; font-weight:600; letter-spacing:.04em; font-family:var(--font-mono); }

.creds-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; }
.creds-block h4 { font-family:var(--font-display); font-size:20px; font-weight:700; color:var(--t1-charcoal); margin:0 0 20px; text-transform:uppercase; letter-spacing:.04em; }
.creds-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.creds-list li { font-size:15px; line-height:1.5; color:var(--fg); padding-left:20px; position:relative; }
.creds-list li::before { content:""; position:absolute; left:0; top:9px; width:6px; height:2px; background:var(--accent); }
.creds-list li .note { font-size:12px; color:var(--fg-muted); margin-top:2px; display:block; }

.timeline { position:relative; padding-left:48px; display:flex; flex-direction:column; gap:48px; }
.timeline::before { content:""; position:absolute; left:14px; top:0; bottom:0; width:2px; background:var(--border); }
.tl-entry { position:relative; }
.tl-dot { position:absolute; left:-40px; top:50%; transform:translateY(-50%); width:14px; height:14px; border-radius:50%; background:var(--bg); border:2px solid var(--t1-fog); transition:background 280ms ease, border-color 280ms ease, transform 280ms ease, box-shadow 280ms ease; }
.tl-entry.tl-active .tl-dot { background:var(--accent); border-color:var(--accent); transform:translateY(-50%) scale(1.3); box-shadow:0 0 0 5px rgba(58,103,106,.15); }
.tl-year { font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:6px; }
.tl-title { font-family:var(--font-display); font-size:18px; font-weight:700; color:var(--t1-charcoal); margin:0 0 6px; text-transform:uppercase; letter-spacing:.03em; }
.tl-desc { font-size:14px; line-height:1.65; color:var(--fg-muted); margin:0; max-width:560px; }

.philosophy-quote { max-width:800px; margin:0 auto; text-align:center; }
.philosophy-quote blockquote { font-family:var(--font-display); font-size:clamp(22px,2.8vw,32px); font-weight:300; line-height:1.45; color:var(--fg-on-dark); margin:0 0 24px; font-style:italic; letter-spacing:-.01em; }
.philosophy-quote cite { font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--t1-steel-light); font-style:normal; }

@media (max-width:900px) {
  .bio-grid { grid-template-columns:1fr; }
  .bio-photo { margin-inline:auto; }
  .creds-grid { grid-template-columns:1fr; gap:40px; }
  .team-page .stats-grid .stat:nth-child(2) { border-right:none; }
}
@media (max-width:600px) {
  .team-page .stats-grid .stat { border-right:none; border-bottom:1px solid rgba(255,255,255,.07); }
  .team-page .stats-grid .stat:last-child { border-bottom:none; }
}

/* ──────────────────────────────────────────────────────────────────
   Hamburger button — base styles (visibility toggled in mobile block)
   ────────────────────────────────────────────────────────────────── */
.t1-burger { display:none; background:none; border:0; padding:8px; cursor:pointer; width:44px; height:44px; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.t1-burger span { display:block; width:24px; height:2px; background:#fff; border-radius:1px; transition:transform 220ms ease, opacity 180ms ease; }
.t1-burger[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.t1-burger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.t1-burger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ──────────────────────────────────────────────────────────────────
   MOBILE POLISH — consolidated breakpoint
   ────────────────────────────────────────────────────────────────── */
@media (max-width:720px) {
  /* Container + section padding shrink */
  .container { padding:0 20px; }
  .section { padding:64px 0; }
  .section.tight { padding:48px 0; }

  /* Header — collapse to hamburger, smaller logo */
  .t1-header .inner { padding:10px 16px; }
  .t1-header .logo-mark img { width:36px; height:36px; }
  .t1-header .logo-divider { height:24px; margin:0 10px 0 2px; }
  .t1-header .logo-text .line1 { font-size:0.9rem; letter-spacing:.12em; }
  .t1-header .logo-text .line2 { font-size:0.55rem; letter-spacing:.22em; margin-top:1px; }
  .t1-burger { display:flex; }
  .t1-nav {
    position:absolute; top:calc(100% + 8px); right:12px; left:auto;
    width:220px;
    flex-direction:column; gap:0;
    background:rgba(13,26,26,0.97);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    padding:8px 0;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity 200ms ease, transform 200ms ease;
    border:1px solid rgba(255,255,255,0.08);
    border-radius:8px;
    box-shadow:0 12px 32px rgba(0,0,0,0.35);
    z-index:51;
  }
  .t1-nav.open { opacity:1; transform:translateY(0); pointer-events:auto; }
  /* Mobile menu links — uniform, centered, no accent CTA */
  .t1-nav a { width:100%; padding:14px 24px; font-size:13px; min-height:44px; display:flex; align-items:center; justify-content:center; border-bottom:1px solid rgba(255,255,255,0.06); }
  .t1-nav a.cta { background:transparent; padding:14px 24px; margin:0; border-radius:0; border-bottom:none; }
  .t1-nav a.cta:hover { background:transparent; }
  .t1-nav a.active::after { display:none; }
  .t1-nav a.active { color:var(--t1-teal-soft); }

  /* Home hero — 78vh so marquee peeks at the bottom */
  .hero { margin-top:-80px; height:78vh; min-height:auto; }
  .hero .container { padding-top:100px; padding-bottom:32px; }
  .hero h1 { font-size:clamp(30px, 7.5vw, 42px); }
  .hero p.lead { font-size:16px; margin-bottom:24px; }
  /* buttons fit content; don't stretch full-width */
  .hero .actions .btn { min-height:44px; padding:12px 20px; }
  .hero-stats { gap:14px; margin-top:24px; }
  .hero-stat-num { font-size:22px; }
  .hero-stat-label { font-size:10px; }

  /* Service / Team page heroes — 78vh so next section peeks */
  .service-hero, .team-hero { margin-top:-80px; height:78vh; min-height:auto; }
  .service-hero-content, .team-hero-content { padding-top:110px; padding-bottom:32px; }
  .service-hero h1, .team-hero h1 { font-size:clamp(28px, 7vw, 40px); }
  .service-hero p, .team-hero p { font-size:16px; }

  /* Clients hero — fixed height so dam image fills + title sits on it */
  .clients-hero { margin-top:-80px; height:78vh; min-height:auto; }
  .clients-hero > img { object-position:center 50%; }
  .clients-hero-text { padding:0 20px 36px; }
  .clients-hero-title { font-size:30px; }
  .clients-hero-subtitle { font-size:15px; }
  .clients-grid-wrap { padding:32px 16px 64px; }
  .client-card { width:100%; max-width:340px; height:auto; min-height:320px; }

  /* Light page-hero */
  .page-hero { padding:48px 0 36px; }
  .page-hero h1 { font-size:clamp(28px, 7vw, 38px); }
  .page-hero p { font-size:15px; }

  /* Footer — stack 4-col grid */
  .t1-footer { padding:48px 0 24px; }
  .t1-footer .grid { grid-template-columns:1fr; gap:32px; }
  .t1-footer .brand-block img { height:56px; }
  .t1-footer .copyright { flex-direction:column; gap:8px; text-align:center; }

  /* CTA band */
  .cta-band { padding:48px 0; }
  .cta-band .inner { flex-direction:column; align-items:flex-start; gap:20px; }
  .cta-band h2 { font-size:22px; }
  .cta-band .btn { width:100%; justify-content:center; }

  /* Service rows + bento + process steps */
  .service-row { grid-template-columns:1fr; gap:12px; padding:24px 0; }
  .service-row h3 { font-size:20px; }
  .service-bento { grid-template-columns:1fr; grid-template-rows:repeat(4, 220px); }
  .process-steps { grid-template-columns:1fr; gap:28px; margin-top:32px; }
  .process-step .ps-num { font-size:36px; }

  /* Team grid + contact grid */
  .team-grid { grid-template-columns:1fr; gap:32px; }
  .team-member img { height:280px; }
  .contact-grid { grid-template-columns:1fr; gap:40px; }

  /* Industry verticals + proof points + service cards */
  .verticals { grid-template-columns:1fr; gap:16px; }
  .vertical-card .vc-image { height:140px; }
  .proof-points { grid-template-columns:1fr; gap:14px; margin-top:32px; }
  .service-cards { grid-template-columns:1fr; gap:16px; }
  .service-card { padding:24px; }

  /* Stats grid → 2 cols (already 2 at 900, keep but tighten) */
  .stats-grid { gap:24px; }
  .stat .num { font-size:42px; }

  /* Howie CTA */
  .howie-cta { gap:32px; }
  .howie-photo { max-width:280px; }
  .bio-photo { max-width:280px; }

  /* Bio / timeline (team page) */
  .timeline { padding-left:32px; gap:36px; }
  .bio-body p { font-size:15px; }

  /* Touch targets */
  .btn { min-height:44px; padding:12px 20px; }
}
