/*
Theme Name: TowerCE
Theme URI: https://www.towerce.com/
Author: Tower Consulting Engineers
Description: Premium light theme for Tower Consulting Engineers (NYC) - Fire Alarm, Fire Protection, Electrical and Mechanical engineering. Deep navy (#0a2540) primary with pale light blue-grey (#b4c7de) accents, dark navy buttons, white and light-grey backgrounds, and the original TowerCE logo clearly visible in header and footer. Client logos are grey at rest and return to their full original colours on hover. Ships with one-click demo setup: activating the theme creates all 15 pages with the full site content, menus, logo and homepage, all editable in WordPress (Pages, Customizer, Menus, Widgets, Gutenberg).
Version: 2.8.2
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: towerce
*/

:root{--bg:#f6f7f8;--bg-2:#eef2f5;--bg-3:#d9e2ea;--ink:#0d2133;--ink-2:#31465a;--muted:#43586a;--line:#d7dee4;--navy:#0a2540;--navy-2:#0f3a63;--accent:#0a2540;--accent-2:#a9bfd8;--accent-ink:#0f3a63;--card:#ffffff;--radius:18px;--shadow:0 18px 45px rgba(12,35,56,.12);--shadow-sm:0 8px 24px rgba(12,35,56,.08)}
@media (prefers-color-scheme: dark){:root{--bg:#0a141d;--bg-2:#0f1f2d;--bg-3:#132736;--ink:#eef4f7;--ink-2:#c8d6de;--muted:#93a8b5;--line:#243a4a;--card:#0f2233;--navy:#081621;--shadow:0 18px 45px rgba(0,0,0,.45);--shadow-sm:0 8px 24px rgba(0,0,0,.35)}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Archivo,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.mono{font-family:"IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:600}
.container{width:min(1220px,92%);margin:0 auto}
.text-link{font-weight:800;color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}
@media(prefers-color-scheme:dark){.text-link{color:var(--accent-2)}}
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.92rem 1.45rem;border-radius:999px;font-weight:700;font-size:.95rem;border:1px solid transparent;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s}
.btn-navy{background:var(--accent-2);color:#0a2540;box-shadow:0 10px 24px rgba(10,37,64,.22)}.btn-navy:hover{background:#4d6379;color:#fff;transform:translateY(-1px)}
.btn-dark{background:var(--navy);color:#fff}.btn-dark:hover{background:var(--navy-2);transform:translateY(-1px)}
.btn-outline{background:transparent;border-color:var(--line);color:var(--ink)}.btn-outline:hover{border-color:var(--ink)}
.btn-white{background:#fff;color:#0c2338}.btn-white:hover{transform:translateY(-1px)}
.btn-ghostlight{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}.btn-ghostlight:hover{border-color:#fff}
header.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:box-shadow .2s}
header.nav.scrolled{box-shadow:0 10px 30px rgba(12,35,56,.14)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0;gap:1rem;position:relative}
.logo{display:flex;align-items:center;gap:.75rem;font-weight:800;letter-spacing:-.02em}
.logo-img{height:72px;width:auto;display:block}
.logo-img-footer{height:96px;width:auto;display:block;background:#fff;padding:8px 12px;border-radius:12px}
.nav-links{display:flex;gap:1.3rem;font-weight:600;font-size:.94rem;align-items:center}
.nav-links a:hover{color:var(--accent-2)} .nav-links a.active{color:var(--accent-2)}
.nav-item{position:relative}
.dropdown{position:absolute;top:calc(100% + 10px);left:0;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:.6rem;min-width:250px;display:none;flex-direction:column;gap:.15rem;z-index:60}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{display:flex}
.dropdown a{padding:.55rem .7rem;border-radius:9px;font-size:.92rem}.dropdown a:hover{background:var(--bg-2)}
.nav-cta{display:flex;gap:.7rem;align-items:center}
.social-icon{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);transition:.18s;flex:0 0 auto}
.social-icon:hover{background:#0a66c2;border-color:#0a66c2;color:#fff}.social-icon svg{width:17px;height:17px;fill:currentColor}
.burger{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:.55rem .7rem;font-size:1.1rem;cursor:pointer;color:var(--ink)}
.page{display:none}.page.active{display:block}
.crumbs{background:var(--bg-2);border-bottom:1px solid var(--line);font-size:.86rem;color:var(--muted)}
.crumbs .container{display:flex;gap:.5rem;align-items:center;padding:.65rem 0;flex-wrap:wrap}
.crumbs a{font-weight:700;color:var(--ink-2)}.crumbs a:hover{color:var(--accent-2)} .crumbs .sep{opacity:.5} .crumbs .current{font-weight:700;color:var(--ink)}
.page-hero{background:var(--navy);color:#fff;padding:3.4rem 0 3rem;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:52px 52px;pointer-events:none}
.page-hero h1{font-size:clamp(2.1rem,4.2vw,3.3rem);letter-spacing:-.035em;line-height:1.02;margin:.7rem 0 .8rem;position:relative;z-index:1}
.page-hero p{color:#d3e2ec;font-size:1.08rem;max-width:720px;margin:0;position:relative;z-index:1}
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0}.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.92}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(7,22,36,.94) 0%, rgba(7,22,36,.74) 48%, rgba(7,22,36,.20) 100%)}
.hero-grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;pointer-events:none}
.hero-content{position:relative;padding:5.4rem 0 3.6rem;max-width:740px}
.hero-badge{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(255,255,255,.28);background:rgba(7,22,36,.45);backdrop-filter:blur(6px);padding:.45rem .85rem;border-radius:999px;font-size:.8rem;font-weight:700;letter-spacing:.04em}
.hero-badge i{width:8px;height:8px;border-radius:50%;background:var(--accent-2);display:inline-block}
.hero h1{font-size:clamp(2.7rem,5.4vw,4.8rem);line-height:.98;letter-spacing:-.04em;margin:1.1rem 0 1.15rem;font-weight:800}
.hero h1 em{font-style:normal;color:var(--accent-2)}
.hero p.lead{font-size:1.19rem;line-height:1.62;color:#dbe8ef;max-width:610px}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}
.hero-meta{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:2.1rem;font-size:.88rem;color:#cfe0ea}
.hero-stats{position:relative;border-top:1px solid rgba(255,255,255,.18);background:rgba(7,22,36,.55);backdrop-filter:blur(8px)}
.hero-stats .container{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:1.25rem 1rem;border-left:1px solid rgba(255,255,255,.14)}.stat:first-child{border-left:none}
.stat b{font-size:1.55rem;display:block;line-height:1}.stat span{font-size:.84rem;color:#bfd2de}
.strip{border-bottom:1px solid var(--line);background:var(--bg)}
.strip .container{display:flex;gap:.6rem 2rem;flex-wrap:wrap;padding:1.05rem 0;align-items:center;justify-content:space-between}
.strip span{font-weight:700;font-size:.92rem;color:var(--ink-2);display:flex;align-items:center;gap:.55rem}
.strip span::before{content:"";width:7px;height:7px;background:var(--accent-2);border-radius:2px;display:inline-block}
section{padding:4.8rem 0}.alt{background:var(--bg-2)}
.sec-head{max-width:780px;margin-bottom:2.3rem}.sec-head h2{font-size:clamp(1.95rem,3.1vw,2.75rem);letter-spacing:-.03em;line-height:1.05;margin:.6rem 0 .7rem}
.sec-head p{color:var(--muted);font-size:1.05rem}
.eyebrow{color:var(--accent-2);display:flex;align-items:center;gap:.6rem}.eyebrow::before{content:"";width:28px;height:2px;background:var(--accent-2);display:inline-block}
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center}
.about-grid img{border-radius:20px;box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover;width:100%}
.checks{list-style:none;padding:0;margin:1.2rem 0;display:grid;gap:.7rem}
.checks li{display:flex;gap:.7rem;align-items:flex-start;font-weight:600;color:var(--ink-2)}.checks li::before{content:"✓";width:26px;height:26px;flex:0 0 26px;background:#a9bfd8;color:#0a2540;border-radius:50%;display:grid;place-items:center;font-size:.85rem;font-weight:800}
@media(prefers-color-scheme:dark){.checks li::before{background:#12283d;color:#a9bfd8}}
.info-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.2rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem}
.info-card div b{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.info-card div span{font-weight:700}
.services{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.svc{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.6rem;transition:transform .2s,box-shadow .2s}.svc:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.svc-icon{width:52px;height:52px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;margin-bottom:1rem}
.svc-icon svg{width:25px;height:25px;stroke:#fff;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.svc h3{margin:.55rem 0 .5rem;font-size:1.25rem;letter-spacing:-.02em}.svc p{color:var(--muted);margin:0 0 1rem}
.svc ul{margin:0;padding-left:1.1rem;color:var(--ink-2);font-size:.95rem}.svc li{margin:.3rem 0}
.tag{display:inline-block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;background:var(--bg-3);padding:.3rem .55rem;border-radius:999px}
.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.cap{background:var(--navy);color:#fff;border-radius:16px;padding:1.4rem}.cap b{font-size:2rem;line-height:1;color:var(--accent-2)}.cap h4{margin:.6rem 0 .4rem}.cap p{color:#c2d4df;font-size:.92rem;margin:0}
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.why{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.6rem}
.why h3{margin:0 0 .5rem;font-size:1.18rem;letter-spacing:-.02em;display:flex;gap:.65rem;align-items:center}
.why h3 .n{font-family:"IBM Plex Mono",monospace;color:var(--accent-2);font-size:.95rem}
.why p{color:var(--muted);margin:0}
.code-panel{margin-top:1.1rem;background:var(--navy);color:#fff;border-radius:18px;padding:1.8rem;display:grid;grid-template-columns:.9fr 1.1fr;gap:2rem;align-items:center}
.code-panel h3{margin:.4rem 0 .6rem;font-size:1.5rem;letter-spacing:-.02em;line-height:1.15}.code-panel p{color:#c2d4df;margin:0}
.code-chips{display:flex;flex-wrap:wrap;gap:.55rem}.code-chips span{border:1px solid rgba(255,255,255,.28);padding:.5rem .8rem;border-radius:999px;font-size:.86rem;font-weight:700}
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem}
.step{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1.2rem}.step-num{font-family:"IBM Plex Mono",monospace;font-weight:700;color:var(--accent-2);font-size:.9rem}.step h4{margin:.5rem 0 .4rem}.step p{color:var(--muted);font-size:.92rem;margin:0}
.band{border-radius:22px;overflow:hidden;display:grid;grid-template-columns:1.15fr .85fr;background:var(--navy);color:#fff}
.band img{height:100%;object-fit:cover;width:100%;min-height:340px}
.band-copy{padding:2.2rem}.band-copy h3{font-size:1.9rem;letter-spacing:-.03em;line-height:1.1;margin:.5rem 0}.band-copy p{color:#c9dae4}
.sectors{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.sectors span{border:1px solid rgba(255,255,255,.25);padding:.45rem .7rem;border-radius:999px;font-size:.85rem;font-weight:600}
.sector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.sector{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.5rem;transition:transform .2s,box-shadow .2s}
.sector:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.sector h3{margin:0 0 .45rem;font-size:1.12rem;letter-spacing:-.02em}.sector p{color:var(--muted);margin:0;font-size:.95rem}
.sector .mono{color:var(--accent-2);margin-bottom:.7rem;display:block}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.project{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.project img{aspect-ratio:16/10;object-fit:cover;width:100%}
.project-body{padding:1.35rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.project-body h3{margin:0;font-size:1.12rem;letter-spacing:-.02em;line-height:1.25}.project-body p{color:var(--muted);margin:0;font-size:.94rem;flex:1}
.project-meta{display:flex;gap:.45rem;flex-wrap:wrap}
.refs{margin-top:1.1rem;border:1px dashed var(--line);border-radius:18px;padding:1.7rem;display:grid;grid-template-columns:1.2fr .8fr;gap:1.6rem;align-items:center;background:var(--card)}
.refs h3{margin:.3rem 0 .5rem;font-size:1.35rem;letter-spacing:-.02em}.refs p{color:var(--muted);margin:0}
.refs-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.cta-band{background:var(--navy);border-radius:22px;color:#fff;padding:2.6rem;display:grid;grid-template-columns:1.25fr .75fr;gap:2rem;align-items:center;position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.cta-band h2{margin:.4rem 0 .6rem;font-size:clamp(1.7rem,2.8vw,2.4rem);letter-spacing:-.03em;line-height:1.1;position:relative;z-index:1}
.cta-band p{color:#c9dae4;margin:0;position:relative;z-index:1}
.cta-actions{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-end;position:relative;z-index:1}
.detail-grid{display:grid;grid-template-columns:1.5fr .7fr;gap:2rem;align-items:start}
.detail-h{font-size:clamp(1.7rem,2.6vw,2.3rem);letter-spacing:-.03em;line-height:1.08;margin:0 0 .8rem}
.detail-lead{color:var(--muted);font-size:1.06rem}
.detail-list{list-style:none;padding:0;margin:0;display:grid;gap:.65rem}
.detail-list li{display:flex;gap:.6rem;font-weight:600;color:var(--ink-2)}.detail-list li::before{content:"✓";color:var(--accent-2);font-weight:800}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.related-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.5rem;display:block}
.related-card h3{margin:.6rem 0 .4rem}.related-card p{color:var(--muted);margin:0 0 .8rem;font-size:.95rem}
.contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:1.5rem;align-items:start}
.contact-card{background:var(--navy);color:#fff;border-radius:18px;padding:1.8rem}.contact-card a{text-decoration:underline;text-underline-offset:3px}
.contact-row{padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.15)}.contact-row:last-child{border:none}.contact-row small{letter-spacing:.12em;text-transform:uppercase;color:#9fb8c8;font-weight:700;font-size:.72rem}.contact-row div{font-weight:700;font-size:1.05rem;margin-top:.2rem}
.map-wrap{margin-top:1rem;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--card)}
.map-wrap iframe{width:100%;height:300px;border:0;display:block}
.map-cap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.9rem 1.1rem;font-size:.9rem;color:var(--muted);align-items:center}
.map-cap a{font-weight:700;color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}
@media(prefers-color-scheme:dark){.map-cap a{color:var(--accent-2)}}
form{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:1.6rem}
label{font-weight:700;font-size:.9rem;display:block;margin-bottom:.35rem}
input,select,textarea{width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;margin-bottom:1rem}
textarea{min-height:110px;resize:vertical}
.status{font-size:.9rem;margin-top:.7rem;color:var(--muted);min-height:1.3em}
.faq{display:grid;gap:.8rem;max-width:900px}
.faq details{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:1.05rem 1.25rem}
.faq summary{font-weight:700;cursor:pointer;font-size:1.02rem}.faq p{color:var(--muted);margin:.6rem 0 0}
footer{background:var(--navy);color:#c8dae6;padding:3.2rem 0 1.5rem}footer a:hover{color:#fff}
.foot-grid{display:grid;grid-template-columns:1.35fr .8fr .8fr 1.05fr;gap:2rem}footer h4{color:#fff;margin:.2rem 0 .8rem}
.foot-social{display:flex;gap:.6rem;margin-top:1.1rem}
.foot-social .social-icon{border-color:rgba(255,255,255,.3);color:#dbe8ef}
.foot-social .social-icon:hover{background:#0a66c2;border-color:#0a66c2;color:#fff}
.foot-social .social-ig:hover{background:#c13584;border-color:#c13584;color:#fff}
.foot-social .social-fb:hover{background:#1877f2;border-color:#1877f2;color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:2rem;padding-top:1.2rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.88rem}
@media(max-width:1020px){.project-grid,.sector-grid,.related-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
.nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;flex-direction:column;align-items:stretch;box-shadow:var(--shadow);max-height:75vh;overflow:auto}
.nav-links.open{display:flex}.burger{display:block}.nav-cta .btn{display:none}
.dropdown{position:static;display:flex;box-shadow:none;border:none;padding:.2rem 0 .2rem 1rem;min-width:0}
.hero-stats .container{grid-template-columns:1fr 1fr}.stat{border-top:1px solid rgba(255,255,255,.12)}
.about-grid,.services,.contact-grid,.band,.why-grid,.code-panel,.refs,.cta-band,.detail-grid{grid-template-columns:1fr}
.caps{grid-template-columns:1fr 1fr}.process{grid-template-columns:1fr 1fr}.foot-grid{grid-template-columns:1fr 1fr}
.refs-actions,.cta-actions{justify-content:flex-start}
}
@media(max-width:560px){.caps,.process,.project-grid,.sector-grid,.foot-grid,.related-grid{grid-template-columns:1fr}.hero-content{padding-top:3.4rem}.cta-band{padding:1.8rem}}

/* --- Editorial, print-like finish: serif display type, flat colour, muted photography --- */
.hero h1,.page-hero h1,.sec-head h2,.detail-h,.cta-band h2,.code-panel h3,.band-copy h3{font-family:Fraunces,Georgia,'Times New Roman',serif;font-weight:600;letter-spacing:-.015em}
.hero h1{font-weight:600}
h2[style],.svc h3,.why h3,.sector h3,.project-body h3{font-family:Fraunces,Georgia,serif;font-weight:600}
.hero-bg img{filter:saturate(.78) contrast(1.03) brightness(.94)}
.hero-bg::after{background:rgba(8,24,38,.62)}
.about-grid img,.project img,.band img{filter:saturate(.82) contrast(1.02)}
.page-hero::after,.cta-band::after{display:none}
img{border-radius:0}
.about-grid img,.band,.cta-band,.code-panel{border-radius:4px}
.svc,.why,.sector,.related-card,.step,.cap,.info-card,.contact-card,form,.map-wrap,.refs,.faq details{border-radius:4px}
.svc-icon{border-radius:3px}
.btn{border-radius:3px}
.hero-badge,.tag,.sectors span,.code-chips span{border-radius:3px}
/* Varied layouts: services index reads as a directory list, not a card grid */
.services.list-layout{grid-template-columns:1fr;gap:0}
.services.list-layout .svc{border:none;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:1.5rem .2rem;box-shadow:none;transform:none}
.services.list-layout .svc:last-child{border-bottom:1px solid var(--line)}
.services.list-layout .svc ul{display:flex;flex-wrap:wrap;gap:.3rem 1.6rem;padding-left:1rem}
/* Sectors page: ledger rows instead of identical tiles */
.sector-grid.rows{grid-template-columns:1fr;gap:0}
.sector-grid.rows .sector{border:none;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:1.25rem .2rem;display:grid;grid-template-columns:170px 240px 1fr;gap:1rem;align-items:baseline;box-shadow:none;transform:none}
.sector-grid.rows .sector .mono{margin:0}
@media(max-width:700px){.sector-grid.rows .sector{grid-template-columns:1fr}}
/* Capability strip + process: ruled editorial columns, no filled boxes */
.cap{background:transparent;color:var(--ink);border-top:3px solid var(--navy);border-radius:0;padding:1.1rem .2rem 0}
.cap b{color:var(--accent-2);font-family:Fraunces,Georgia,serif}
.cap p{color:var(--muted)}
.step{background:transparent;border:none;border-top:1px solid var(--line);border-radius:0;padding:1rem .2rem 0}

/* ===== LIGHT THEME (2026 real-data refresh): white / warm off-white surfaces, navy only as accent ===== */
:root{color-scheme:light}
@media (prefers-color-scheme: dark){:root{--bg:#f6f7f8;--bg-2:#eef2f5;--bg-3:#d9e2ea;--ink:#0d2133;--ink-2:#31465a;--muted:#43586a;--line:#d7dee4;--navy:#0a2540;--navy-2:#0f3a63;--accent:#0a2540;--accent-2:#a9bfd8;--accent-ink:#0f3a63;--card:#ffffff;--shadow:0 18px 45px rgba(12,35,56,.12);--shadow-sm:0 8px 24px rgba(12,35,56,.08)}
.text-link{color:var(--accent-2)}.checks li::before{background:#a9bfd8;color:#0a2540}.map-cap a{color:var(--accent-2)}}
body{background:#f6f7f8}
.page-hero{background:var(--bg-2);color:var(--ink)}
.page-hero p{color:var(--muted)}
.page-hero .mono{color:var(--accent-ink)!important}
.hero{background:#ffffff;color:var(--ink);border-bottom:1px solid var(--line)}
.hero-layout{display:grid;grid-template-columns:1.02fr .98fr;gap:2.6rem;align-items:center;padding:3.1rem 0 2.4rem}
.hero-content{padding:0;max-width:none;position:relative}
.hero h1{color:var(--navy)}
.hero h1 em{color:var(--accent);font-style:italic}
.hero p.lead{color:var(--ink-2)}
.hero-badge{border-color:var(--line);background:var(--bg);color:var(--ink-2);backdrop-filter:none}
.hero-meta{color:var(--muted)}
.hero-photo{margin:0;overflow:hidden}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.85) contrast(1.02)}
.hero-photo figcaption{color:var(--muted);margin-top:.6rem;padding-bottom:.4rem}
.hero-stats{background:var(--bg-2);border-top:1px solid var(--line);backdrop-filter:none}
.hero-stats .stat{border-left-color:var(--line)}
.hero-stats .stat b{color:var(--navy)}
.hero-stats .stat span{color:var(--muted)}
@media(max-width:900px){.hero-layout{grid-template-columns:1fr;padding:2.6rem 0 2.2rem}.hero-stats .stat{border-top-color:var(--line)}}
.cta-band{background:#e8eef3;border:1px solid #d7dee4;color:var(--ink)}
.cta-band p{color:var(--ink-2)}
.cta-band .mono{color:var(--accent-2)!important}
.cta-band .btn-ghostlight{color:var(--navy);border-color:rgba(12,35,56,.45)}
.cta-band .btn-ghostlight:hover{border-color:var(--navy)}
.code-panel{background:#ffffff;border:1px solid var(--line);color:var(--ink)}
.code-panel p{color:var(--muted)}
.code-panel .mono{color:var(--accent-2)!important}
.code-chips span{border-color:var(--line);color:var(--ink-2)}
.contact-card{background:#ffffff;color:var(--ink);border:1px solid var(--line)}
.contact-row{border-bottom-color:var(--line)}
.contact-row small{color:var(--muted)}
.band{background:var(--bg-2);color:var(--ink)}
.band-copy p{color:var(--muted)}
.band-copy .mono{color:var(--accent-2)!important}
.band .sectors span{border-color:var(--line);color:var(--ink-2)}

/* ===== Our Clients: original logo wall (real client logos, as on towerce.com) ===== */
.clients-sec{background:#ffffff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.clients-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.client-tile{background:#ffffff;min-height:136px;display:flex;align-items:center;justify-content:center;padding:1.5rem 1.7rem}
.client-tile img{width:min(205px,88%);height:60px;object-fit:contain;filter:grayscale(1);opacity:.62;transition:filter .35s ease,opacity .35s ease,transform .35s ease}
.client-tile:hover img{filter:none;opacity:1;transform:scale(1.06)}
@media(max-width:900px){.clients-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.client-tile{min-height:112px;padding:1.1rem 1.2rem}.client-tile img{height:50px}}

/* ===== MOTION: premium, subtle, reduced-motion aware ===== */
@keyframes heroUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes heroPhotoIn{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
@keyframes slowZoom{from{transform:scale(1.07)}to{transform:scale(1)}}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes faqIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.hero-content>*{animation:heroUp .85s cubic-bezier(.22,.61,.36,1) both}
.hero-content>*:nth-child(2){animation-delay:.08s}
.hero-content>*:nth-child(3){animation-delay:.16s}
.hero-content>*:nth-child(4){animation-delay:.24s}
.hero-content>*:nth-child(5){animation-delay:.32s}
.hero-photo{animation:heroPhotoIn 1s .15s cubic-bezier(.22,.61,.36,1) both}
.hero-photo img{animation:slowZoom 16s ease-out both}
.page.active{animation:pageIn .45s ease both}
.reveal{transform:translateY(24px);transition:transform .8s cubic-bezier(.22,.61,.36,1);transition-delay:var(--d,0s)}
.reveal.in{transform:none}
.btn{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.98)}
.nav-links>a,.nav-links .nav-item>a{position:relative}
.nav-links>a::after,.nav-links .nav-item>a::after{content:"";position:absolute;left:0;bottom:-5px;height:2px;width:0;background:var(--accent-2);transition:width .25s ease}
.nav-links>a:hover::after,.nav-links .nav-item>a:hover::after{width:100%}
.svc,.sector,.why,.step,.related-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.svc:hover,.sector:hover,.related-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.about-grid img,.band img{transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.faq details p{animation:faqIn .35s ease both}
.faq summary{transition:color .2s}
.faq summary:hover{color:var(--accent-ink)}
.nav-links.open{animation:menuIn .28s ease both}
input,select,textarea{transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:#a9bfd8;box-shadow:0 0 0 3px #a9bfd8}
@media (prefers-reduced-motion: reduce){
*,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;scroll-behavior:auto!important}
.reveal{opacity:1!important;transform:none!important}
.hero-content>*,.hero-photo,.hero-photo img,.page.active{animation:none!important}
}

/* ===== MOTION 2: unmistakable, continuous movement (user asked twice make it VISIBLE) ===== */
/* Scroll progress bar */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent-2);z-index:300}
/* Hero: continuous slow Ken Burns drift on the photo (replaces the one-shot 16s zoom) */
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.13) translate(-1.2%,-1.5%)}}
.hero-photo img{animation:kenburns 22s ease-in-out infinite alternate}
/* Hero: headline words rise one by one (spans added by JS) */
.hero h1 .w{display:inline-block;opacity:0;transform:translateY(.5em);animation:wordUp .65s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:calc(.15s + var(--i,0)*.085s)}
@keyframes wordUp{to{opacity:1;transform:none}}
/* Hero: accent phrase gets a hand-drawn navy underline that draws itself */
.hero h1 em{background-image:linear-gradient(var(--navy),var(--navy));background-size:0% 3px;background-repeat:no-repeat;background-position:0 97%;animation:drawLine 1.1s .95s cubic-bezier(.22,.61,.36,1) forwards}
@keyframes drawLine{to{background-size:100% 3px}}
/* Hero: badge dot pulses like a live status light */
.hero-badge i{animation:pulseDot 1.8s ease-out infinite}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(169,191,216,.55)}70%{box-shadow:0 0 0 8px rgba(169,191,216,0)}100%{box-shadow:0 0 0 0 rgba(169,191,216,0)}}
/* Hero: scroll cue with a bouncing arrow */
.scroll-cue{display:inline-flex;align-items:center;gap:.55rem;margin-top:2rem;background:none;border:none;padding:0;font:inherit;font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer}
.scroll-cue:hover{color:var(--accent-ink)}
.cue-arrow{display:inline-grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;color:var(--accent-ink);font-size:.95rem;animation:cueBounce 1.8s ease-in-out infinite}
@keyframes cueBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
/* Primary buttons: a light sweep passes every few seconds */
.btn-navy{position:relative;overflow:hidden}
.btn-navy::after{content:"";position:absolute;top:0;bottom:0;left:0;width:38%;background:none;transform:translateX(-240%) skewX(-18deg);animation:shine 4.4s ease-in-out infinite;pointer-events:none}
@keyframes shine{0%{transform:translateX(-240%) skewX(-18deg)}22%{transform:translateX(340%) skewX(-18deg)}100%{transform:translateX(340%) skewX(-18deg)}}
/* Services ticker: continuous marquee under the hero stats, pauses on hover */
.ticker{overflow:hidden;background:var(--navy);color:#dbe6ee}
.ticker-track{display:flex;width:max-content;animation:tickMove 32s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-group{display:flex;flex-shrink:0;align-items:center}
.ticker-group span{display:inline-flex;align-items:center;gap:1.5rem;margin-right:1.5rem;padding:.62rem 0;font-weight:700;font-size:.86rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.ticker-group span::after{content:"";width:7px;height:7px;background:var(--accent-2);transform:rotate(45deg);flex:0 0 auto}
@keyframes tickMove{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* Scroll reveal, stronger: bigger travel + left / right / zoom variants */
.reveal{transform:translateY(38px);transition-duration:.95s}
.rv-left{transform:translateX(-46px)}
.rv-right{transform:translateX(46px)}
.rv-zoom{transform:scale(.93) translateY(14px)}
.reveal.in{transform:none}
@media(max-width:640px){.rv-left,.rv-right{transform:translateY(30px)}}
/* Inner pages: hero text rises in on every page switch */
.page.active .page-hero .mono{animation:heroUp .6s ease both}
.page.active .page-hero h1{animation:heroUp .7s .07s cubic-bezier(.22,.61,.36,1) both}
.page.active .page-hero p{animation:heroUp .7s .16s cubic-bezier(.22,.61,.36,1) both}
/* Nav dropdown drops in; project photos zoom on hover */
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{animation:menuIn .25s ease both}
.project img{transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.project:hover img{transform:scale(1.06)}
/* Anti-template layout change: "Why TowerCE" reads as a ruled editorial list, not a card grid */
.why-grid{grid-template-columns:1fr;gap:0}
.why{border:none;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:1.35rem .2rem;display:grid;grid-template-columns:minmax(240px,.9fr) 1.1fr;gap:.4rem 2rem;align-items:baseline;box-shadow:none}
.why:last-child{border-bottom:1px solid var(--line)}
@media(max-width:700px){.why{grid-template-columns:1fr}}
@media (prefers-reduced-motion: reduce){
.ticker-track,.hero-photo img,.hero-badge i,.btn-navy::after,.cue-arrow{animation:none!important}
.hero h1 .w{opacity:1!important;transform:none!important;animation:none!important}
.hero h1 em{animation:none!important;background-size:100% 3px}
}

/* ===== Clickable service cards (press + arrow response) ===== */
@keyframes wipeFailsafe{to{transform:translateY(103%)}}
/* Whole service entry is the click target, with a press + arrow response */
.svc-link{cursor:pointer}
.svc-link:active{transform:scale(.985)}
.svc-link .text-link{display:inline-block;transition:transform .25s ease,color .25s ease}
.svc-link:hover .text-link{transform:translateX(6px)}
.svc-link:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}
.related-card{transition:transform .25s ease,box-shadow .25s ease}
.related-card:active{transform:scale(.985)}
/* Slightly larger, more confident hero headline in the new serif */
.hero h1{font-size:clamp(2.9rem,5.9vw,5.3rem)}


/* ===== REDESIGN 2026: modern premium agency theme full-bleed hero, bold sans, image-led ===== */
/* Typography: strong display sans everywhere (serif pairing retired) */
.hero2 h1,.page-hero h1,.sec-head h2,.detail-h,.cta-band h2,.code-panel h3,.band-copy h3,.svc h3,.why h3,.sector h3,.project-body h3,.related-card h3,h2[style],.cap b{font-family:Archivo,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-weight:800;letter-spacing:-.03em}
.cap b{color:var(--accent-2)}
/* Inner page heroes: deep navy over the skyline photo */
.page-hero{background:linear-gradient(100deg,rgba(6,20,33,.94) 0%,rgba(6,20,33,.84) 55%,rgba(6,20,33,.68) 100%),url('assets/hero-nyc.webp') center 34%/cover no-repeat;color:#fff;padding:3.8rem 0 3.2rem}
.page-hero p{color:#d3e2ec}
.page-hero .mono{color:var(--accent-2)!important}
/* ---- Full-bleed hero ---- */
.hero2{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero2-bg{position:absolute;inset:-40px 0}
.hero2-bg img{width:100%;height:100%;object-fit:cover;animation:heroSettle 2.4s cubic-bezier(.22,.61,.36,1) both}
.hero2-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(93deg,rgba(6,20,33,.95) 0%,rgba(6,20,33,.82) 44%,rgba(6,20,33,.42) 74%,rgba(6,20,33,.30) 100%),linear-gradient(to top,rgba(6,20,33,.55),transparent 42%)}
@keyframes heroSettle{from{transform:scale(1.09)}to{transform:scale(1)}}
.hero2-inner{position:relative;z-index:2;padding:6.4rem 0 8rem;max-width:860px;margin-left:max(4%,calc((100% - 1220px)/2))}
.hero2 .hero-badge{border-color:rgba(255,255,255,.30);background:rgba(6,20,33,.45);color:#eaf3f8;backdrop-filter:blur(6px)}
.hero2 h1{font-size:clamp(2.95rem,6.4vw,5.5rem);line-height:.99;letter-spacing:-.035em;margin:1.15rem 0 1.2rem;font-weight:800;color:#fff}
.hero2 h1 em{font-style:normal;color:var(--accent-2)}
.hero2 h1 .w{display:inline-block;opacity:0;transform:translateY(.5em);animation:wordUp .65s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:calc(.15s + var(--i,0)*.085s)}
.hero2 p.lead{font-size:1.22rem;line-height:1.6;color:#dcebf3;max-width:660px;margin:0}
.hero2 .hero-actions{margin-top:2rem}
.hero2 .hero-meta{color:#cfe0ea;margin-top:2.2rem}
/* ---- Floating trust card ---- */
.trust-wrap{position:relative;z-index:5;margin-top:-3.6rem}
.trust-card{background:#fff;border-radius:16px;box-shadow:0 26px 55px rgba(10,37,64,.20);display:grid;grid-template-columns:repeat(4,1fr);padding:1.5rem 1.7rem;gap:1.1rem}
.trust-item{display:block;border-left:1px solid var(--line);padding-left:1.25rem;min-width:0}
.trust-item:first-child{border-left:none;padding-left:0}
.t-label{display:block;font-family:"IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:600;color:var(--muted);margin-bottom:.3rem}
.t-value{display:block;font-weight:800;font-size:1.03rem;color:var(--navy);line-height:1.35}
a.trust-item:hover .t-value{color:var(--accent-2)}
/* ---- Client logo marquee ---- */
.marquee-sec{padding:2.8rem 0 .4rem}
.marquee-label{text-align:center;font-family:"IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:600;color:var(--muted);margin:0 0 .4rem}
.logo-marquee{overflow:hidden;padding:1.1rem 0 1.4rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marqueeMove 38s linear infinite}
.logo-marquee:hover .marquee-track{animation-play-state:paused}
.marquee-group{display:flex;align-items:center;gap:4.6rem;padding-right:4.6rem;flex-shrink:0}
.marquee-group img{height:46px;width:auto;max-width:190px;object-fit:contain;filter:grayscale(1);opacity:.58;transition:filter .3s,opacity .3s}
.marquee-group img:hover{filter:none;opacity:1}
@keyframes marqueeMove{to{transform:translateX(-50%)}}
/* ---- Image-led service rows ---- */
.svc-rows{display:grid;gap:1.4rem}
.svc-row{display:grid;grid-template-columns:1fr 1.18fr;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .35s ease,box-shadow .35s ease;text-decoration:none}
.svc-row:nth-child(even) .svc-row-img{order:2}
.svc-row:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.svc-row:active{transform:translateY(-2px) scale(.995)}
.svc-row-img{display:block;overflow:hidden;min-height:290px}
.svc-row-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.svc-row:hover .svc-row-img img{transform:scale(1.07)}
.svc-row-body{display:flex;flex-direction:column;justify-content:center;gap:.55rem;padding:2.3rem}
.svc-row-body h3{margin:0;font-size:1.6rem;letter-spacing:-.025em}
.svc-row-body p{color:var(--muted);margin:0;font-size:1.01rem}
.svc-go{font-weight:800;color:var(--accent-2);display:inline-flex;align-items:center;gap:.5rem;margin-top:.5rem}
.svc-go .arr{display:inline-block;transition:transform .3s ease}
.svc-row:hover .svc-go .arr,.svc-card:hover .svc-go .arr{transform:translateX(6px)}
/* ---- Services index image cards ---- */
.svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.svc-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .35s ease,box-shadow .35s ease;text-decoration:none}
.svc-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.svc-card:active{transform:scale(.99)}
.svc-card-img{display:block;aspect-ratio:16/9;overflow:hidden}
.svc-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.svc-card:hover .svc-card-img img{transform:scale(1.07)}
.svc-card-body{display:flex;flex-direction:column;gap:.5rem;padding:1.45rem;flex:1}
.svc-card-body h3{margin:0;font-size:1.22rem;letter-spacing:-.02em}
.svc-card-body p{color:var(--muted);margin:0;font-size:.96rem;flex:1}
.svc-card .svc-go{margin-top:.6rem}
/* ---- Section colour rhythm ---- */
.ivory{background:#eef2f5}
.sec-head.light h2{color:#fff}
.sec-head.light p{color:#b9cfdd}
.sec-head.light .eyebrow{color:var(--accent-2)}
/* ---- Compliance split ---- */
.compliance-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.compliance-photo{margin:0}
.compliance-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:20px;box-shadow:var(--shadow)}
.compliance-photo figcaption{color:var(--muted);margin-top:.7rem}
/* ---- Process timeline (deep navy section) ---- */
.process-sec{background:var(--navy);color:#fff}
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:1.7rem;position:relative;margin-top:.6rem}
.timeline::before{content:"";position:absolute;top:26px;left:5%;right:5%;height:2px;background:var(--accent-2)}
.t-step{position:relative}
.t-dot{width:52px;height:52px;border-radius:50%;background:var(--navy);border:2px solid var(--accent-2);color:var(--accent-2);display:grid;place-items:center;font-weight:800;font-size:.95rem;position:relative;z-index:1;margin-bottom:1.05rem}
.t-step h4{margin:0 0 .4rem;font-size:1.08rem}
.t-step p{color:#b9cfdd;font-size:.93rem;margin:0}
/* ---- Sector image tiles ---- */
.tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.tile{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;display:block;box-shadow:var(--shadow-sm);transition:transform .35s ease,box-shadow .35s ease}
a.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.tile:hover img{transform:scale(1.07)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(6,20,33,.88) 0%,rgba(6,20,33,.38) 46%,transparent 72%)}
.tile-label{position:absolute;left:1.25rem;right:1.25rem;bottom:1.1rem;z-index:2;color:#fff}
.tile-label .mono{color:var(--accent-2);display:block;margin-bottom:.25rem}
.tile-label strong{display:block;font-size:1.28rem;font-weight:800;letter-spacing:-.02em;line-height:1.15}
.tile-desc{display:block;font-size:.88rem;color:#cfe0ea;margin-top:.35rem;line-height:1.45}
/* ---- FAQ two columns ---- */
.faq.faq-2col{display:block;columns:2;column-gap:1rem;max-width:none}
.faq.faq-2col details{break-inside:avoid;margin-bottom:.85rem}
/* ---- Contact CTA split with map ---- */
.cta-split{display:grid;grid-template-columns:1.05fr .95fr;border-radius:22px;overflow:hidden;background:var(--navy);color:#fff;box-shadow:var(--shadow)}
.cta-copy{padding:2.8rem}
.cta-copy h2{margin:.5rem 0 .6rem;font-size:clamp(1.7rem,2.8vw,2.4rem);letter-spacing:-.03em;line-height:1.1}
.cta-copy p{color:#c9dae4;margin:0}
.cta-rows{display:grid;gap:.55rem;margin:1.5rem 0 1.7rem;font-size:1rem}
.cta-rows b{display:inline-block;min-width:64px;font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:#9fb8c8;margin-right:.6rem}
.cta-rows a{text-decoration:underline;text-underline-offset:3px;font-weight:700}
.cta-map{display:flex;flex-direction:column;background:#fff}
.cta-map iframe{width:100%;flex:1;min-height:300px;border:0;display:block}
.map-cap.light{color:var(--muted)}
/* ---- Quick page transition (no overlay, ever) ---- */
.page.active{animation:pageIn .38s ease both}
/* ---- Responsive ---- */
@media(max-width:1020px){.svc-cards{grid-template-columns:1fr 1fr}.tile-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){
.hero2-inner{padding:2.7rem 0 5.6rem;margin-left:4%}
.trust-card{grid-template-columns:1fr 1fr;padding:1.3rem 1.4rem}
.trust-item:nth-child(3){border-left:none;padding-left:0}
.svc-row{grid-template-columns:1fr}
.svc-row:nth-child(even) .svc-row-img{order:0}
.svc-row-img{min-height:0;height:215px}
.svc-row-body{padding:1.6rem}
.compliance-grid,.cta-split{grid-template-columns:1fr}
.timeline{grid-template-columns:1fr;gap:1.5rem}
.timeline::before{left:25px;right:auto;top:0;bottom:0;width:2px;height:auto;background:var(--accent-2)}
.t-step{padding-left:4.4rem}
.t-dot{position:absolute;left:0;top:-4px;margin:0}
.faq.faq-2col{columns:1}
.cta-map iframe{min-height:260px}
}
@media(max-width:560px){.svc-cards,.tile-grid{grid-template-columns:1fr}.trust-card{grid-template-columns:1fr 1fr;gap:.9rem}.t-value{font-size:.86rem;overflow-wrap:anywhere}.marquee-group{gap:3rem;padding-right:3rem}.marquee-group img{height:38px}}
@media (prefers-reduced-motion: reduce){
.marquee-track,.hero2-bg img{animation:none!important}
.hero2 h1 .w{opacity:1!important;transform:none!important;animation:none!important}
}

/* ===== NEW HOMEPAGE SECTIONS (beyond Home / About / Services) ===== */
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.story-photo{position:relative;margin:0}
.story-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:20px;box-shadow:var(--shadow)}
.story-photo::after{content:"EST. 2019 NEW YORK";position:absolute;left:1.1rem;bottom:1.1rem;background:var(--navy);color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.14em;padding:.55rem .8rem;border-radius:999px}
.story-facts{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:1.4rem}
.story-fact{border-top:2px solid var(--accent-2);padding-top:.7rem}
.story-fact b{display:block;font-size:1.05rem;color:var(--navy);line-height:1.2}
.story-fact span{font-size:.88rem;color:var(--muted)}
.why-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.why-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.55rem;box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease}
.why-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.why-card .num{font-family:"IBM Plex Mono",monospace;font-weight:700;color:var(--accent-2);font-size:.85rem;letter-spacing:.1em}
.why-card h3{margin:.55rem 0 .45rem;font-size:1.12rem;letter-spacing:-.02em;line-height:1.25}
.why-card p{color:var(--muted);margin:0;font-size:.95rem}
.why-card a{font-weight:800;color:var(--accent-2);font-size:.9rem}
.codes-grid{display:flex;flex-wrap:wrap;gap:.7rem}
.code-badge{display:inline-flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.75rem 1.05rem;font-weight:700;font-size:.94rem;box-shadow:var(--shadow-sm);transition:transform .25s ease,border-color .25s ease}
.code-badge:hover{transform:translateY(-3px);border-color:var(--accent-2)}
.code-badge small{font-family:"IBM Plex Mono",monospace;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.code-badge .arr{color:var(--accent-2);transition:transform .25s ease}
.code-badge:hover .arr{transform:translateX(4px)}
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.pillar-card{background:var(--navy);color:#fff;border-radius:18px;padding:1.6rem;display:flex;flex-direction:column;gap:.55rem;transition:transform .3s ease,box-shadow .3s ease;min-height:230px}
.pillar-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.pillar-card .p-num{width:44px;height:44px;border-radius:50%;border:2px solid var(--accent-2);color:var(--accent-2);display:grid;place-items:center;font-weight:800}
.pillar-card h3{margin:.3rem 0 0;font-size:1.18rem;letter-spacing:-.02em}
.pillar-card p{color:#c2d4df;margin:0;font-size:.93rem;flex:1}
.pillar-card a{font-weight:800;color:var(--accent-2)}
.help-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.help-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease;display:flex;flex-direction:column}
.help-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.help-card img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .7s ease}
.help-card:hover img{transform:scale(1.06)}
.help-body{padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.help-body h3{margin:0;font-size:1.15rem;letter-spacing:-.02em}
.help-body p{color:var(--muted);margin:0;font-size:.95rem;flex:1}
.help-cta{margin-top:1.2rem;background:#e8eef3;border:1px solid #d7dee4;border-radius:16px;padding:1.3rem 1.5rem;display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap}
.help-cta strong{font-size:1.05rem;color:var(--navy)}
.visit-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.4rem;align-items:stretch}
.visit-info{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.7rem;box-shadow:var(--shadow-sm)}
.visit-row{padding:1rem 0;border-bottom:1px solid var(--line)}
.visit-row:first-child{padding-top:.2rem}.visit-row:last-child{border:none;padding-bottom:.2rem}
.visit-row small{font-family:"IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;font-size:.68rem;display:block;margin-bottom:.25rem}
.visit-row div{font-weight:700;font-size:1.02rem;color:var(--ink);line-height:1.45}
.visit-row a{text-decoration:underline;text-underline-offset:3px}
.visit-map{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#fff;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}
.visit-map iframe{width:100%;flex:1;min-height:340px;border:0;display:block}
@media(max-width:900px){.story-grid,.visit-grid{grid-template-columns:1fr}.why-cards,.help-grid{grid-template-columns:1fr 1fr}.pillars-grid{grid-template-columns:1fr 1fr}.pillars-photo-row{grid-template-columns:1fr!important}}
@media(max-width:560px){.why-cards,.help-grid,.pillars-grid,.story-facts{grid-template-columns:1fr}.visit-map iframe{min-height:260px}.help-cta{flex-direction:column;align-items:flex-start}}

/* ===== MOBILE VIEW FIX: phone-first polish across all pages ===== */
@media(max-width:900px){
.hero2{padding-top:0;padding-bottom:0}
section{padding:3.4rem 0}
.page-hero{padding:2.6rem 0 2.3rem}
.nav-inner{padding:.55rem 0}
.logo-img{height:56px}
.burger{min-width:46px;min-height:46px;font-size:1.25rem;display:grid;place-items:center}
.nav-links{padding:.6rem;gap:.15rem}
.nav-links>a,.nav-links .nav-item>a{display:block;padding:.8rem .7rem;font-size:1rem;border-radius:10px}
.nav-links .dropdown{padding:.1rem 0 .35rem .9rem;gap:0}
.nav-links .dropdown a{padding:.62rem .6rem;font-size:.95rem}
.cta-copy{padding:2.1rem 1.7rem}
footer{padding:2.6rem 0 1.3rem}
}
@media(max-width:640px){
a,button{-webkit-tap-highlight-color:transparent}
.container{width:94%}
.logo-img{height:50px}
.logo-img-footer{height:78px}
.btn{min-height:52px;justify-content:center;padding:.85rem 1.25rem;font-size:.97rem}
.hero2-inner{padding:2rem 0 5.2rem;margin-left:3%;margin-right:3%;width:94%}
.hero2 h1{font-size:clamp(2.3rem,11.5vw,2.9rem);line-height:1.04;margin:.95rem 0 1rem}
.hero2 p.lead{font-size:1.04rem;line-height:1.58}
.hero-badge{font-size:.72rem;line-height:1.45;padding:.5rem .75rem;max-width:100%}
.hero2 .hero-actions{flex-direction:column;align-items:stretch;gap:.7rem;margin-top:1.5rem}
.hero2 .hero-meta{flex-direction:column;gap:.35rem;margin-top:1.4rem;font-size:.86rem}
.hero2-bg::after{background:linear-gradient(180deg,rgba(6,20,33,.88) 0%,rgba(6,20,33,.78) 55%,rgba(6,20,33,.66) 100%)}
section{padding:2.9rem 0}
.sec-head{margin-bottom:1.7rem}
.sec-head h2{font-size:1.72rem;line-height:1.12}
.sec-head p{font-size:1rem}
.page-hero{padding:2.3rem 0 2rem}
.page-hero h1{font-size:1.95rem;line-height:1.08}
.page-hero p{font-size:1rem}
.crumbs{font-size:.8rem}
.crumbs .container{padding:.55rem 0}
.trust-wrap{margin-top:-3.4rem}
.trust-card{grid-template-columns:1fr;padding:.4rem 1.25rem}
.trust-item{border-left:none;padding:.85rem 0;border-top:1px solid var(--line)}
.trust-item:first-child{border-top:none}
.t-value{font-size:.98rem;overflow-wrap:anywhere}
.marquee-sec{padding:2.1rem 0 .2rem}
.marquee-label{padding:0 4%;line-height:1.6}
.svc-row-img{height:195px}
.svc-row-body{padding:1.35rem 1.25rem 1.5rem}
.svc-row-body h3{font-size:1.32rem}
.svc-card-body{padding:1.2rem 1.15rem 1.35rem}
.story-grid,.compliance-grid{gap:1.7rem}
.story-facts{grid-template-columns:1fr 1fr;gap:.8rem}
.compliance-photo img,.story-photo img{border-radius:14px}
.why-card,.pillar-card{padding:1.3rem 1.2rem}
.pillar-card{min-height:0}
.code-badge{max-width:100%;white-space:normal;line-height:1.35;padding:.7rem .95rem;font-size:.9rem}
.timeline{gap:1.35rem}
.t-step p{font-size:.9rem}
.tile-label{left:1rem;right:1rem;bottom:.95rem}
.tile-label strong{font-size:1.15rem}
.client-tile{min-height:104px;padding:1rem .8rem}
.client-tile img{height:44px;width:min(150px,92%)}
.faq details{padding:.95rem 1.05rem}
.faq summary{font-size:.99rem;line-height:1.4}
.detail-h{font-size:1.6rem}
.info-card{grid-template-columns:1fr;gap:.7rem}
.cta-band{padding:1.7rem 1.4rem}
.cta-copy{padding:1.8rem 1.35rem}
.cta-rows{font-size:.95rem}
.cta-rows b{min-width:56px}
.cta-actions .btn,.cta-band .btn{width:100%}
.help-cta{padding:1.15rem 1.2rem}
.help-cta .btn{width:100%}
.visit-info{padding:1.3rem 1.2rem}
.visit-row div{font-size:.99rem;overflow-wrap:anywhere}
.contact-card{padding:1.4rem 1.25rem}
.contact-row div{font-size:1rem;overflow-wrap:anywhere}
form{padding:1.25rem 1.1rem}
input,select,textarea{font-size:16px;padding:.8rem .9rem}
.map-cap{gap:.4rem}
.foot-grid{grid-template-columns:1fr;gap:1.5rem}
.foot-bottom{flex-direction:column;gap:.35rem}
.strip .container{gap:.5rem 1.1rem}
.strip span{font-size:.86rem}
.hero-stats .stat{padding:1.05rem .8rem}
.hero-stats .stat b{font-size:1.3rem}
}
@media(max-width:380px){
.hero2 h1{font-size:2.12rem}
.btn{font-size:.93rem;padding:.8rem 1rem}
.trust-card{padding:.3rem 1.05rem}
}

/* ===== MOBILE PREMIUM 2: bring the phone experience up to desktop quality ===== */
/* Primary buttons: drop the shine sweep (it also caused clipped-text flags); flat premium navy */
.btn-navy::after{display:none!important}
/* Header call button + in-menu quote button: mobile only */
.nav-call{display:none}
.nav-quote-mobile{display:none}
@media(max-width:900px){
.nav-inner{padding:.5rem 0;gap:.6rem}
.nav-call{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:12px;background:var(--navy);color:#fff;box-shadow:0 8px 20px rgba(10,37,64,.25)}
.nav-call svg{width:19px;height:19px;fill:currentColor}
.nav-call:active{transform:scale(.94)}
.burger{border-radius:12px;background:#fff}
.nav-links{top:calc(100% + 8px);border-radius:16px;padding:.7rem}
.nav-quote-mobile{display:block;margin-top:.45rem;background:var(--accent-2);color:#fff!important;text-align:center;font-weight:800;padding:.95rem .7rem!important;border-radius:12px;font-size:1rem;box-shadow:0 10px 22px rgba(10,37,64,.28)}
}
@media(max-width:640px){
.btn{border-radius:12px}
/* Hero: compact, photo visible again, fits one screen like desktop */
.hero2-inner{padding:1.7rem 0 4.4rem}
.hero2 .hero-badge{font-size:clamp(.54rem,2.9vw,.62rem);letter-spacing:.02em;line-height:1.2;padding:.42rem .68rem;gap:.45rem;border-radius:999px;white-space:nowrap;max-width:100%}
.hero2 h1{font-size:clamp(2.2rem,10.4vw,2.65rem);line-height:1.03;margin:.9rem 0 .85rem}
.hero2 p.lead{font-size:.99rem;line-height:1.56}
.hero2-bg::after{background:linear-gradient(180deg,rgba(6,20,33,.88) 0%,rgba(6,20,33,.72) 52%,rgba(6,20,33,.42) 100%)}
.hero2 .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1.35rem}
.hero2 .hero-actions .btn{min-height:52px;padding:.8rem .45rem;font-size:.9rem;text-align:center;white-space:normal;line-height:1.25}
.hero2 .hero-meta{flex-direction:row;flex-wrap:wrap;gap:.35rem .95rem;margin-top:1.25rem;font-size:.8rem}
.hero2 .hero-meta span{white-space:nowrap}
/* Trust card: single-column stack on phones so Email sits full-width under Call Us (no mid-word wrap), then Business Hours, then Office */
.trust-wrap{margin-top:-3.1rem}
.trust-card{grid-template-columns:1fr;gap:0;padding:.95rem 1.1rem;border-radius:16px}
.trust-item{border-top:none;padding:.55rem 0}
.trust-item:nth-child(2){border-left:none;padding-left:0}
.trust-item+.trust-item{border-top:1px solid var(--line);padding-top:.8rem;margin-top:.35rem}
.t-label{font-size:.64rem;margin-bottom:.2rem}
.t-value{font-size:.93rem}
/* Sections: tighter, more confident type rhythm */
section{padding:2.5rem 0}
.sec-head h2{font-size:1.62rem}
.marquee-sec{padding:1.9rem 0 .1rem}
.marquee-group{gap:2.4rem;padding-right:2.4rem}
.marquee-group img{height:34px}
/* Service rows: shorter photo, denser body */
.svc-row{border-radius:16px}
.svc-row-img{height:172px}
.svc-row-body{padding:1.15rem 1.15rem 1.3rem;gap:.45rem}
.svc-row-body h3{font-size:1.24rem}
.svc-row-body p{font-size:.94rem;line-height:1.55}
.svc-card-img{aspect-ratio:16/8}
.tile{aspect-ratio:16/10}
.client-tile{min-height:94px}
.why-card,.pillar-card,.help-body{padding:1.2rem 1.15rem}
.codes-grid{display:grid;grid-template-columns:1fr;gap:.55rem}
.code-badge{width:100%;justify-content:flex-start;border-radius:12px;padding:.8rem 1rem}
.timeline::before{left:22px}
.timeline{gap:1.25rem}
.t-step{padding-left:3.85rem}
.t-dot{width:46px;height:46px;font-size:.88rem}
.story-facts{grid-template-columns:1fr 1fr}
.cta-split{border-radius:18px}
.cta-map iframe{min-height:240px}
.visit-map iframe{min-height:240px}
.page-hero{padding:2.1rem 0 1.9rem}
.page-hero h1{font-size:1.82rem}
/* Footer: brand full width, link columns side by side instead of one long stack */
.foot-grid{grid-template-columns:1fr 1fr;gap:1.6rem 1.2rem}
.foot-grid>div:first-child{grid-column:1/-1}
.foot-bottom{text-align:center;justify-content:center}
.logo-img-footer{height:84px}
}
@media(max-width:380px){
.hero2 .hero-meta span{white-space:normal}
.hero2 .hero-actions .btn{font-size:.85rem}
.trust-card{padding:.85rem .95rem}
}

/* ===== SCREENSHOT MATCH: white header, navy CTAs, pale blue-grey accent ===== */
/* Deep navy #0a2540 primary, pale light blue-grey #a9bfd8 / #b4c7de accents on dark,
   slate #4d6379 for hover / on-light text, white and light grey backgrounds.
   No brass or champagne tints and no warm metallic accents remain. */
:root{
  color-scheme:light;
  --bg:#f7f9fa;--bg-2:#eef2f5;--bg-3:#d9e2ea;
  --ink:#12283d;--ink-2:#31465a;--muted:#5f6f7e;
  --line:#d7dee4;
  --navy:#0a2540;--navy-2:#0f3a63;
  --accent:#a9bfd8;--accent-deep:#4d6379;--accent-pale:#a9bfd8;--accent-deep:#4d6379;
  --accent:#a9bfd8;--accent-2:#a9bfd8;--accent-ink:#4d6379;
  --steel-on-dark:#a9bfd8;--blue-on-dark:#a9bfd8;
  --card:#ffffff;
  --glass:#ffffff;--glass-border:#d7dee4;
  --shadow:0 18px 45px rgba(10,37,64,.13);--shadow-sm:0 8px 24px rgba(10,37,64,.09);
  --glow:0 10px 26px rgba(10,37,64,.18);
}
html{background:#f7f9fa}
body{background:#f7f9fa;color:var(--ink)}
::selection{background:#a9bfd8;color:#0a2540}
/* Home: short What We Do overview, compact service links (no images, no long copy) */
.svc-links{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}
.svc-link{display:flex;align-items:center;gap:.8rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;box-shadow:var(--shadow-sm);transition:transform .3s ease,box-shadow .3s ease}
.svc-link:hover{transform:translateY(-3px)}
.svc-link strong{flex:1;color:var(--navy);font-size:1.02rem;line-height:1.25}
.svc-link .arr{color:var(--navy);font-weight:700;transition:transform .3s ease}
.svc-link:hover .arr{transform:translateX(3px)}
@media(max-width:900px){.svc-links{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svc-links{grid-template-columns:1fr}}
.page-hero h1{color:#fff}
.sec-head h2,.detail-h{color:var(--navy)}
.sec-head p,.detail-lead{color:var(--muted)}
/* ---- Header: warm ivory glass nav, logo clearly visible ---- */
header.nav{background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:none}
header.nav.scrolled{box-shadow:0 10px 30px rgba(10,37,64,.12)}
.logo-img{background:#fff;border-radius:10px;padding:5px 8px;box-shadow:0 0 0 1px #a9bfd8,0 6px 16px rgba(10,37,64,.18)}
.nav-links{color:var(--ink)}
.nav-links a{color:var(--ink)}
.nav-links a:hover,.nav-links a.active{color:var(--accent-deep)}
.dropdown{background:#fff;border-color:var(--line);box-shadow:var(--shadow)}
.dropdown a{color:var(--ink)}
.dropdown a:hover{background:var(--bg-2);color:var(--navy)}
.burger{background:#fff;border-color:var(--line);color:var(--navy)}
.nav-call{background:#a9bfd8;color:#0a2540;box-shadow:0 8px 20px rgba(10,37,64,.25)}
/* ---- Buttons: navy primary CTA ---- */
.btn-navy{background:#a9bfd8;color:#0a2540;box-shadow:0 12px 28px rgba(10,37,64,.22)}
.btn-navy:hover{background:#4d6379;color:#fff;box-shadow:0 16px 34px rgba(10,37,64,.28)}
.btn-dark{background:var(--navy);color:#fff;box-shadow:0 10px 24px rgba(10,37,64,.25)}
.btn-dark:hover{background:var(--navy-2);color:#fff}
.btn-white{background:#fff;color:#0a2540}
.btn-white:hover{background:#ffffff;color:#0a2540}
.btn-outline{background:transparent;border-color:#a9bfd8;color:var(--navy)}
.btn-outline:hover{border-color:#a9bfd8;background:#a9bfd8;color:#0a2540}
.btn-ghostlight{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}
.btn-ghostlight:hover{border-color:#a9bfd8;background:#a9bfd8;color:#0a2540}
.text-link{color:#4d6379}
/* ---- Eyebrows / badges / tags in pale blue-grey ---- */
.eyebrow{color:#4d6379}
.eyebrow::before{background:#a9bfd8}
.hero-badge{border-color:#a9bfd8;background:rgba(10,37,64,.5);color:#ffffff;box-shadow:none;backdrop-filter:blur(6px)}
.hero-badge i{background:#a9bfd8;box-shadow:none}
.tag{background:#a9bfd8;border:1px solid #a9bfd8;color:#0a2540}
/* ---- Heroes: deep navy photo stage, pale blue-grey accent phrase ---- */
.hero2{background:var(--navy)}
.hero2::before{content:none;display:none}
.hero2 h1{color:#fff;text-shadow:none}
.hero2 h1 em{color:#a9bfd8;text-shadow:none}
.hero2 p.lead{color:#dcebf3}
.hero2 .hero-meta{color:#cfe0ea}
.page-hero{background:linear-gradient(100deg,rgba(10,37,64,.95) 0%,rgba(10,37,64,.86) 55%,rgba(10,37,64,.7) 100%),url('assets/hero-nyc.webp') center 34%/cover no-repeat;color:#fff;box-shadow:none}
.page-hero p{color:#d3e2ec}
.page-hero .mono{color:#a9bfd8!important}
.crumbs{background:var(--bg-2);border-bottom-color:var(--line);color:var(--muted)}
.crumbs a{color:var(--ink-2)}.crumbs a:hover{color:var(--accent-deep)}.crumbs .current{color:var(--ink)}
/* ---- Sections on warm ivory ---- */
section{background:transparent}
.alt,.ivory{background:#eef2f5;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip{background:#fff;border-bottom-color:var(--line)}
.strip span{color:var(--ink-2)}
.strip span::before{background:#a9bfd8}
.clients-sec{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
/* ---- Cards back to clean white premium ---- */
.svc,.why-card,.sector,.related-card,.info-card,.refs,.faq details,.visit-info,.visit-map,.map-wrap,.help-card,.code-badge,.story-fact{background:#fff;border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm);backdrop-filter:none}
.svc:hover,.why-card:hover,.sector:hover,.related-card:hover,.help-card:hover{border-color:#4d6379;box-shadow:var(--shadow);transform:translateY(-4px)}
.svc p,.why p,.why-card p,.sector p,.related-card p,.refs p,.help-body p{color:var(--muted)}
.svc ul,.checks li,.detail-list li{color:var(--ink-2)}
.svc h3,.why h3,.why-card h3,.sector h3,.related-card h3,.help-body h3{color:var(--navy)}
.why-card .num,.why h3 .n,.step-num,.cap b{color:#4d6379}
.checks li::before{background:#a9bfd8;color:#0a2540;border:none}
.detail-list li::before{color:#a9bfd8}
.why{background:transparent;border:none;border-top:1px solid var(--line);border-radius:0;box-shadow:none;backdrop-filter:none}
.why:last-child{border-bottom:1px solid var(--line)}
.services.list-layout .svc{background:transparent;border:none;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
.services.list-layout .svc:last-child{border-bottom:1px solid var(--line)}
.sector-grid.rows .sector{background:transparent;border:none;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
.cap{background:transparent;border:none;border-top:3px solid var(--navy);border-radius:0;box-shadow:none}
.cap h4{color:var(--navy)}.cap p{color:var(--muted)}
.step{background:transparent;border:none;border-top:1px solid var(--line);border-radius:0;box-shadow:none}
.step h4{color:var(--navy)}.step p{color:var(--muted)}
/* ---- Trust card: white floating card ---- */
.trust-card{background:#fff;border:1px solid #d7dee4;box-shadow:0 26px 55px rgba(10,37,64,.18)}
.trust-item{border-left-color:var(--line)}
.t-label{color:var(--muted)}
.t-value{color:var(--navy)}
a.trust-item:hover .t-value{color:#4d6379}
/* ---- Logo marquee + clients wall ---- */
.marquee-label{color:var(--muted)}
.marquee-group img{background:transparent;border-radius:0;padding:0;filter:grayscale(1);opacity:.58;box-shadow:none;height:46px}
.marquee-group img:hover{filter:none;opacity:1;box-shadow:none}
.clients-grid{background:var(--line);border-color:var(--line);border-radius:0;overflow:visible}
.client-tile{background:#fff}
.client-tile img{filter:grayscale(1);opacity:.62}
.client-tile:hover{box-shadow:none}
.client-tile:hover img{filter:none;opacity:1}
/* ---- Service rows / cards ---- */
.svc-row,.svc-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);backdrop-filter:none}
.svc-row:hover,.svc-card:hover{border-color:#4d6379;box-shadow:var(--shadow)}
.svc-row-body h3,.svc-card-body h3{color:var(--navy)}
.svc-row-body p,.svc-card-body p{color:var(--muted)}
.svc-go{color:#4d6379}
.svc-icon{background:#a9bfd8;color:#0a2540;box-shadow:0 8px 18px rgba(10,37,64,.20)}
.svc-icon svg{stroke:#0a2540}
/* ---- Compliance / code panels ---- */
.code-panel{background:#fff;border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}
.code-panel h3{color:var(--navy)}.code-panel p{color:var(--muted)}
.code-panel .mono{color:#4d6379!important}
.code-chips span{border-color:var(--line);color:var(--ink-2);background:transparent}
.code-badge small{color:var(--muted)}
.code-badge:hover{border-color:#a9bfd8;box-shadow:var(--shadow-sm)}
.code-badge .arr{color:#a9bfd8}
.compliance-photo img,.story-photo img,.about-grid img{border:none;box-shadow:var(--shadow)}
.compliance-photo figcaption,.story-photo figcaption{color:var(--muted)}
.story-photo::after{background:var(--navy);color:#fff;box-shadow:none}
.story-fact{border-top:2px solid #a9bfd8;border-radius:0;box-shadow:none;padding:.7rem 0 0;background:transparent}
.story-fact b{color:var(--navy)}.story-fact span{color:var(--muted)}
/* ---- Process timeline + pillars on deep navy ---- */
.process-sec{background:var(--navy);color:#fff;border:none}
.sec-head.light h2{color:#fff}.sec-head.light p{color:#b9cfdd}.sec-head.light .eyebrow{color:#a9bfd8}
.timeline::before{background:#a9bfd8;box-shadow:none}
.t-dot{background:var(--navy);border-color:#a9bfd8;color:#a9bfd8;box-shadow:none}
.t-step h4{color:#fff}.t-step p{color:#b9cfdd}
.pillar-card{background:var(--navy);border:1px solid #a9bfd8;color:#fff;box-shadow:var(--shadow-sm)}
.pillar-card:hover{box-shadow:var(--shadow);border-color:#a9bfd8}
.pillar-card h3{color:#fff}.pillar-card p{color:#c2d4df}
.pillar-card .p-num{border-color:#a9bfd8;color:#a9bfd8;box-shadow:none}
.pillar-card a{color:#a9bfd8}
/* ---- Sector tiles ---- */
.tile{border:none;box-shadow:var(--shadow-sm)}
a.tile:hover,.tile:hover{box-shadow:var(--shadow)}
.tile::after{background:linear-gradient(to top,rgba(6,20,33,.88) 0%,rgba(6,20,33,.38) 46%,transparent 72%)}
.tile-label .mono{color:#a9bfd8}
.tile-desc{color:#cfe0ea}
/* ---- Bands / CTA ---- */
.band{background:var(--bg-2);border:none;color:var(--ink)}
.band-copy h3{color:var(--navy)}.band-copy p{color:var(--muted)}.band-copy .mono{color:#4d6379!important}
.band .sectors span{border-color:var(--line);color:var(--ink-2)}
.cta-band{background:#e8eef3;border:1px solid #d7dee4;color:var(--ink);box-shadow:none}
.cta-band h2{color:var(--navy)}.cta-band p{color:var(--ink-2)}
.cta-band .mono{color:#4d6379!important}
.cta-band .btn-ghostlight{color:var(--navy);border-color:rgba(10,37,64,.45)}
.cta-band .btn-ghostlight:hover{border-color:var(--navy);background:transparent}
.cta-split{background:var(--navy);border:none;color:#fff;box-shadow:var(--shadow)}
.cta-copy h2{color:#fff}.cta-copy p{color:#c9dae4}
.cta-copy .mono{color:#a9bfd8!important}
.cta-rows b{color:#9fb8c8}.cta-rows a{color:#fff}
.cta-map{background:#fff}
.help-cta{background:#e8eef3;border:1px solid #d7dee4}
.help-cta strong{color:var(--navy)}
/* ---- FAQ ---- */
.faq details{border-radius:14px}
.faq summary{color:var(--navy)}
.faq summary:hover{color:#4d6379}
.faq details p{color:var(--muted)}
.faq details[open ]{border-color:#4d6379;box-shadow:var(--shadow-sm)}
/* ---- Contact + forms ---- */
.contact-card{background:#fff;border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}
.contact-card a{color:var(--navy)}
.contact-row{border-bottom-color:var(--line)}
.contact-row small{color:var(--muted)}
.contact-row div{color:var(--ink)}
form{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);backdrop-filter:none}
label{color:var(--ink)}
input,select,textarea{background:#fff;border-color:#ccd5dc;color:var(--ink)}
input::placeholder,textarea::placeholder{color:#93a0ac}
select option{background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:#a9bfd8;box-shadow:0 0 0 3px #a9bfd8}
.status{color:var(--muted)}
.map-wrap,.visit-map{background:#fff}
.map-cap{color:var(--muted);background:#fff}
.map-cap a,.map-cap.light a{color:#4d6379}
.visit-row{border-bottom-color:var(--line)}
.visit-row small{color:var(--muted)}
.visit-row div{color:var(--ink)}
.visit-row a{color:var(--navy)}
/* ---- Footer: deep navy, logo on white card so it stays visible ---- */
footer{background:var(--navy);border-top:3px solid #a9bfd8;box-shadow:none;color:#c8dae6}
footer h4{color:#fff}
footer a{color:#c8dae6}
footer a:hover{color:#a9bfd8}
.logo-img-footer{background:#fff;padding:8px 12px;border-radius:12px;box-shadow:0 0 0 1px #a9bfd8,0 10px 24px rgba(0,0,0,.3)}
.foot-social .social-icon{border-color:rgba(255,255,255,.3);color:#dbe8ef;background:transparent}
.foot-bottom{border-top-color:rgba(255,255,255,.15);color:#c8dae6}
/* ---- Scroll progress in pale blue-grey ---- */
.scroll-progress{background:#a9bfd8;box-shadow:none}
.project{background:#fff;border-color:var(--line)}
.project-body h3{color:var(--navy)}.project-body p{color:var(--muted)}
.ticker{background:var(--navy);color:#dbe6ee}
.ticker-group span::after{background:#a9bfd8}
.hero h1 em{background-image:linear-gradient(#0a2540,#0a2540)}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(169,191,216,.55)}70%{box-shadow:0 0 0 8px rgba(169,191,216,0)}100%{box-shadow:0 0 0 0 rgba(169,191,216,0)}}
/* ---- Mobile menu on light ---- */
@media(max-width:900px){
  .nav-links{background:#fff;border-color:var(--line)}
  .nav-links>a,.nav-links .nav-item>a{color:var(--ink)}
  .nav-quote-mobile{background:#a9bfd8;box-shadow:0 10px 22px rgba(10,37,64,.25);color:#0a2540!important}
  .burger{background:#fff}
  .trust-item{border-top-color:var(--line)}
  .timeline::before{background:#a9bfd8}
}
@media(max-width:640px){
  .trust-item+.trust-item{border-top-color:var(--line)}
  .marquee-group img{height:38px;padding:0}
}

/* ===== FINAL SCREENSHOT MATCH: header, hero, buttons, logos ===== */
/* White header, centred bold navy nav, dark slate-navy rectangular quote button */
header.nav{background:#ffffff;border-bottom:1px solid var(--line)}
.logo-img{box-shadow:0 1px 2px rgba(10,37,64,.07),0 8px 20px rgba(10,37,64,.10)}
.nav-links{font-weight:700}
.nav-links a{color:var(--navy)}
@media(min-width:901px){.logo{flex:1 1 0}.nav-cta{flex:1 1 0;justify-content:flex-end}}
/* Rectangular buttons like the screenshot (small radius, no pills) */
.btn{border-radius:6px}
/* Primary CTA: dark navy button, white text (header, hero, everywhere) */
.btn-navy{background:#0a2540;color:#fff;border:1px solid #0a2540;box-shadow:0 12px 28px rgba(10,37,64,.25)}
.btn-navy:hover{background:#0f3a63;color:#fff;border-color:#0f3a63}
.hero2 .hero-actions .btn-navy{border-color:rgba(255,255,255,.55)}
.btn-outline{border-color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-ghostlight:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.nav-call{background:var(--navy);color:#fff}
@media(max-width:900px){.nav-quote-mobile{background:var(--navy);color:#fff!important}}
/* Hero: outline pill badge with pale dot, second headline line pale blue-grey on its own line */
.hero-badge{border-color:rgba(255,255,255,.45);background:rgba(6,20,33,.45);color:#fff}
.hero-badge i{background:#d7e5f0}
.hero2 h1 em{color:#b4c7de;display:block}
/* Service label bar: light grey-blue with navy text, like the screenshot LIFE SAFETY bar */
.tag{background:#d3dde8;border-color:#d3dde8;color:#0a2540}
/* Client logos: grey at rest, full original colour on hover */
.marquee-group img:hover{filter:grayscale(0);opacity:1}
.client-tile:hover img{filter:grayscale(0);opacity:1}
/* Footer: no coloured top border, logo card shadow only */
footer{border-top:1px solid rgba(255,255,255,.16)}
.logo-img-footer{box-shadow:0 10px 24px rgba(0,0,0,.3)}
/* Form focus in slate, not a solid pale block */
input:focus,select:focus,textarea:focus{border-color:#4d6379;box-shadow:0 0 0 3px rgba(77,99,121,.22)}
::selection{background:#a9bfd8;color:#0a2540}

/* ===== LOCATION CARD WITH GOOGLE MAPS EMBED (Contact page) ===== */
.location-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm);padding:0;margin-top:1rem;overflow:hidden;transition:box-shadow .3s ease,border-color .3s ease}
.location-card:hover{box-shadow:var(--shadow);border-color:#b9c9d8}
.loc-map{background:#e8eef4;line-height:0}
.loc-map iframe{width:100%;height:340px;border:0;display:block}
.loc-body{padding:1.5rem}
.loc-head{display:flex;gap:1rem;align-items:flex-start}
.loc-pin{flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:var(--navy);display:grid;place-items:center;box-shadow:0 10px 22px rgba(10,37,64,.25)}
.loc-pin svg{width:26px;height:26px;fill:#fff}
.loc-title .mono{color:#4d6379;display:block;margin-bottom:.2rem}
.loc-title strong{display:block;font-size:1.12rem;color:var(--navy);line-height:1.3;letter-spacing:-.01em}
.loc-sub{display:block;color:var(--muted);font-size:.92rem;margin-top:.15rem;line-height:1.45}
.loc-rows{margin:1.1rem 0 1.2rem;border-top:1px solid var(--line)}
.loc-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.loc-row small{font-family:"IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;font-weight:600;color:var(--muted)}
.loc-row a,.loc-row span{font-weight:700;color:var(--ink)}
.loc-row a{text-decoration:underline;text-underline-offset:3px}
.loc-row a:hover{color:#4d6379}
.loc-btn{width:100%;justify-content:center}
@media(max-width:640px){.loc-body{padding:1.25rem 1.15rem}.loc-map iframe{height:280px}.loc-pin{flex-basis:46px;width:46px;height:46px}}

/* ===== POLISH PASS: rhythm, type, depth, motion (same palette, same layout) ===== */
section{padding:4.6rem 0}
.sec-head{margin-bottom:2.1rem}
.sec-head p{line-height:1.68}
.detail-lead{line-height:1.7}
.hero2 p.lead{line-height:1.65}
.btn{letter-spacing:.01em}
.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid rgba(77,99,121,.5);outline-offset:2px}
.btn-white{box-shadow:0 12px 26px rgba(6,20,33,.28)}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(6,20,33,.32)}
.btn-dark:hover{box-shadow:0 14px 30px rgba(10,37,64,.3)}
.btn-navy:hover{box-shadow:0 16px 34px rgba(10,37,64,.3)}
.trust-card{transition:box-shadow .35s ease}
.trust-card:hover{box-shadow:0 30px 60px rgba(10,37,64,.22)}
.marquee-track{animation-duration:46s;will-change:transform}
.marquee-group img{transition:filter .35s ease,opacity .35s ease,transform .35s ease}
.marquee-group img:hover{transform:scale(1.04)}
.client-tile{transition:background .3s ease}
.client-tile:hover{background:#f7f9fa}
.faq details{transition:border-color .25s ease,box-shadow .25s ease}
.faq details:hover{border-color:#b9c9d8}
.svc-link{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.svc-link:hover{border-color:#4d6379;box-shadow:var(--shadow)}
@media(max-width:640px){section{padding:2.6rem 0}}

/* ===== HOME WHAT WE DO: compact photo cards (image, tag, title, one line, arrow) ===== */
.svc-links{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.svc-link{display:flex;flex-direction:column;align-items:stretch;gap:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:0;overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.svc-link:hover{transform:translateY(-5px);border-color:#4d6379;box-shadow:var(--shadow)}
.svc-link-img{display:block;aspect-ratio:16/8;overflow:hidden;position:relative;background:var(--bg-2)}
.svc-link-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,37,64,0) 55%,rgba(10,37,64,.22) 100%);pointer-events:none}
.svc-link-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.svc-link:hover .svc-link-img img{transform:scale(1.07)}
.svc-link-body{display:flex;flex-direction:column;gap:.45rem;padding:1.05rem 1.15rem 1.2rem;flex:1}
.svc-link-body .tag{align-self:flex-start}
.svc-link-head{display:flex;align-items:center;gap:.6rem}
.svc-link-head strong{flex:1;color:var(--navy);font-size:1.08rem;line-height:1.25;letter-spacing:-.01em}
.svc-link .arr{color:var(--navy);font-weight:700;font-size:1.05rem;transition:transform .3s ease}
.svc-link:hover .arr{transform:translateX(4px)}
.svc-link-desc{display:block;color:var(--muted);font-size:.9rem;line-height:1.5}
@media(max-width:900px){.svc-links{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svc-links{grid-template-columns:1fr}.svc-link-img{aspect-ratio:16/9}}
@media (prefers-reduced-motion: reduce){.svc-link-img img{transition:none}.svc-link:hover .svc-link-img img{transform:none}}

/* WordPress fix (no visual change): body_class() adds the class "page" to
   <body> on every static page, which collided with the site's SPA rule
   .page{display:none} above and hid the whole page. The .page rule is only
   for in-page SPA wrappers (WordPress content has none); keep body visible. */
body.page{display:block}
