/* S.R. & Co. | Accessible, dependency-free design system */
:root{--navy:#232477;--navy-deep:#11183e;--navy-dark:#0e1534;--electric:#4b4dda;--sky:#51c4f5;--ice:#f3f6ff;--mist:#e9edfb;--ink:#131a38;--body:#58627d;--line:#e3e8f1;--white:#fff;--radius:22px;--shadow:0 24px 65px rgba(20,28,79,.10);--font:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:#fff;color:var(--ink);font:400 16px/1.75 var(--font);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:#dddfff;color:var(--navy)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
svg{display:inline-block;vertical-align:middle;flex:none}
:focus-visible{outline:3px solid #768cff;outline-offset:3px}
h1,h2,h3,h4,p,ul{margin-top:0}
h1,h2,h3,h4{line-height:1.16;letter-spacing:-.044em;font-weight:800;color:var(--ink)}
h1{font-size:clamp(2.9rem,5.5vw,5.15rem);letter-spacing:-.069em}
h2{font-size:clamp(2.25rem,3.65vw,3.55rem);letter-spacing:-.058em}
h3{font-size:1.32rem;letter-spacing:-.037em}
p{margin-bottom:1.25rem;color:var(--body)}
.container{width:min(1220px,calc(100% - 72px));margin-inline:auto}
.skip-link{position:fixed;z-index:9999;top:-100px;left:16px;background:var(--navy);color:#fff;padding:12px 18px;border-radius:8px}
.skip-link:focus{top:10px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.text-accent{color:var(--electric)}
.text-white{color:#fff}
.text-center{text-align:center}
.text-light{color:#d6dcfb}
.text-tight{max-width:670px}
.muted-note{color:#7c86a0;font-size:.84rem;line-height:1.55}
.eyebrow{display:inline-flex;align-items:center;gap:11px;font-size:.70rem;font-weight:850;text-transform:uppercase;letter-spacing:.18em;color:var(--navy);line-height:1.5;margin:0 0 23px}
.eyebrow::before{content:'';width:25px;height:2px;background:var(--electric);display:block}
.eyebrow--light{color:#d9dfff}.eyebrow--light::before{background:#aebdff}
.section{padding:104px 0}
.section--soft{background:var(--ice)}
.section--tight{padding:68px 0}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:43px}
.section-heading h2{max-width:710px;margin:0 0 14px}
.section-heading p{margin:0;max-width:645px}
.section-heading .section-copy{max-width:720px}
.section-heading--center{display:block;text-align:center}
.section-heading--center .section-copy{max-width:730px;margin:auto}
.section-heading--center h2{margin-inline:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;border:1px solid transparent;min-height:52px;padding:13px 23px;background:var(--navy);border-radius:11px;color:#fff;font-size:.83rem;font-weight:750;letter-spacing:.005em;white-space:nowrap;transition:transform .3s var(--ease),background .3s,box-shadow .3s,border-color .3s;line-height:1.4}
.btn svg{transition:transform .3s var(--ease)}
.btn:hover{transform:translateY(-3px);background:#3537b0;box-shadow:0 12px 25px rgba(35,36,119,.22)}
.btn:hover svg{transform:translateX(3px)}
.btn--outline{background:#fff;color:var(--navy);border-color:#c7cee3}
.btn--outline:hover{background:#f2f3ff;color:var(--navy);box-shadow:none;border-color:#8e94ca}
.btn--white{background:#fff;color:var(--navy)}
.btn--white:hover{background:#f2f4ff;color:var(--navy)}
.btn--ghost-light{background:transparent;color:#fff;border-color:#8892d0}
.btn--ghost-light:hover{background:rgba(255,255,255,.12);color:#fff}
.link-arrow{display:inline-flex;align-items:center;gap:10px;color:var(--navy);font-size:.88rem;font-weight:850;transition:gap .25s}
.link-arrow:hover{gap:16px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;background:#f0f1ff;border:1px solid #dde0fb;border-radius:999px;color:#3738a2;font-weight:750;font-size:.72rem;line-height:1.4}
.icon-bubble{height:48px;width:48px;border-radius:15px;background:#eff0ff;color:var(--navy);display:grid;place-items:center}
.icon-bubble svg{width:24px;height:24px}
/* Header */
.topbar{background:var(--navy-deep);color:#dfe5ff;font-size:.72rem;min-height:37px}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:37px}
.topbar-group{display:flex;align-items:center;gap:26px;min-width:0}
.topbar a,.topbar span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.topbar a:hover{color:#fff}
.topbar svg{width:13px;height:13px;color:#bfcaff}
.site-header{position:sticky;top:0;z-index:120;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid #edf0f8;transition:box-shadow .3s}
.site-header.is-scrolled{box-shadow:0 12px 30px rgba(18,26,65,.08)}
.header-inner{min-height:89px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;flex:none}
.brand img{width:199px;height:auto}
.primary-nav{display:flex;align-items:center;gap:24px;margin-left:auto}
.nav-item{position:relative;display:flex;align-items:center;gap:3px}
.nav-link{display:inline-flex;align-items:center;min-height:45px;font-weight:730;color:#28314e;font-size:.78rem;transition:color .2s;white-space:nowrap}
.nav-link:hover,.nav-link.is-active{color:var(--navy)}
.nav-link.is-active::after{content:'';height:2px;background:var(--electric);left:0;right:0;position:absolute;bottom:-22px}
.dropdown-toggle{border:0;background:transparent;color:#394167;display:grid;place-items:center;width:23px;height:35px;padding:0}
.dropdown-toggle svg{width:14px;height:14px;transition:transform .2s}
.nav-item:hover .dropdown-toggle svg,.nav-item.is-expanded .dropdown-toggle svg{transform:rotate(180deg)}
.dropdown-menu{position:absolute;top:calc(100% + 18px);left:-18px;width:268px;display:grid;gap:4px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(13,21,66,.14);opacity:0;visibility:hidden;transform:translateY(9px);transition:opacity .2s,transform .2s,visibility .2s}
.dropdown-menu::before{content:'';position:absolute;top:-23px;height:24px;left:0;right:0}
.nav-item:hover .dropdown-menu,.nav-item:focus-within .dropdown-menu,.nav-item.is-expanded .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-menu a{font-size:.8rem;font-weight:690;color:#2f3757;padding:10px 12px;border-radius:8px;line-height:1.5}
.dropdown-menu a:hover,.dropdown-menu a.is-active{background:#f1f2ff;color:var(--navy)}
.header-cta{min-height:45px;padding:11px 17px;margin-left:4px}
.menu-toggle{border:1px solid #e1e5f4;border-radius:11px;background:#fff;width:48px;height:47px;color:var(--navy);display:none;align-items:center;justify-content:center}
.menu-toggle svg{width:23px;height:23px}
/* Homepage hero */
.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(112deg,#f7f9ff 0%,#fff 43%,#f0f4ff 100%)}
.hero::before{position:absolute;content:'';width:660px;height:660px;left:-400px;top:-300px;border-radius:50%;background:radial-gradient(circle,#dde5ff 0%,transparent 70%);z-index:-1}
.hero::after{position:absolute;content:'';width:600px;height:600px;right:-350px;bottom:-400px;border-radius:50%;background:radial-gradient(circle,#dfe8ff 0%,transparent 70%);z-index:-1}
.hero .container{position:relative}
.hero-grid{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:55px;padding:75px 0 75px}
.hero h1{margin:0 0 22px;max-width:670px}
.hero-lead{font-size:1.05rem;line-height:1.85;max-width:555px;margin:0 0 29px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-small{display:flex;align-items:center;gap:12px;margin-top:35px;color:#596483;font-size:.78rem;font-weight:670}
.hero-small .small-avatar{display:flex;align-items:center;justify-content:center;background:#e7e9ff;color:var(--navy);width:37px;height:37px;border-radius:50%}
.hero-visual{height:565px;border-radius:25px;position:relative;isolation:isolate;margin-right:9px}
.hero-visual::before{position:absolute;content:'';border:1px solid #dce4f4;width:calc(100% + 26px);height:calc(100% + 26px);top:-13px;left:-13px;border-radius:35px;z-index:-1}
.hero-visual__image{width:100%;height:100%;object-fit:cover;border-radius:25px;box-shadow:0 28px 58px rgba(10,22,78,.16)}
.hero-visual::after{position:absolute;content:'';inset:0;border-radius:25px;pointer-events:none;background:linear-gradient(0deg,rgba(10,17,44,.39),transparent 45%)}
.hero-float{position:absolute;z-index:4;display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #edf0f9;box-shadow:0 17px 44px rgba(12,22,68,.13);border-radius:15px;padding:13px 18px;animation:bob 5s ease-in-out infinite}
.hero-float--top{top:43px;right:-30px}
.hero-float--bottom{bottom:67px;left:-35px;animation-delay:-2.2s}
.hero-float strong{display:block;color:var(--ink);font-size:1.1rem;line-height:1.35;letter-spacing:-.025em}
.hero-float span{display:block;font-size:.69rem;color:#747e95;line-height:1.5;white-space:nowrap}
.hero-float .icon-bubble{width:43px;height:43px;border-radius:12px}
.hero-photo-label{position:absolute;z-index:2;bottom:21px;right:22px;color:#fff;text-align:right;font-size:.7rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.trust-band{background:#fff;border-bottom:1px solid #e8ebf4}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:28px 0}
.trust-point{display:flex;align-items:center;gap:13px;padding:7px 23px;border-right:1px solid #e6e9f2}
.trust-point:first-child{padding-left:0}.trust-point:last-child{border-right:0;padding-right:0}
.trust-point .icon-bubble{width:39px;height:39px;border-radius:12px;flex:none}
.trust-point .icon-bubble svg{height:19px;width:19px}
.trust-point strong{display:block;color:#28314c;font-size:.80rem;line-height:1.55}
.trust-point span{display:block;color:#7c859d;font-size:.69rem;line-height:1.55}
/* Cards, sections */
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.service-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 24px rgba(21,28,84,.025);transition:box-shadow .35s,transform .35s var(--ease),border-color .35s}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:#cfd4f2}
.service-card__media{height:215px;overflow:hidden;position:relative}
.service-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .75s var(--ease)}
.service-card:hover .service-card__media img{transform:scale(1.06)}
.service-card__number{position:absolute;bottom:16px;right:18px;color:#fff;font-size:.76rem;font-weight:800;letter-spacing:.13em;z-index:2;text-shadow:0 1px 7px #0008}
.service-card__media::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,16,57,.27),transparent 75%)}
.service-card__content{padding:27px 27px 29px}
.service-card__content h3{font-size:1.43rem;margin:12px 0 13px}
.service-card__content p{font-size:.88rem;line-height:1.78;min-height:99px;margin:0 0 21px}
.service-card__top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.service-card__top small{font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:#75809b;font-size:.62rem}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:90px}
.feature-image{position:relative;min-width:0}
.feature-image>img{height:505px;width:100%;object-fit:cover;border-radius:23px}
.feature-badge{position:absolute;bottom:-25px;right:-28px;border:8px solid #fff;border-radius:23px;background:var(--navy);color:#fff;padding:20px 28px;box-shadow:0 15px 30px #131c5340}
.feature-badge strong{font-size:2.25rem;line-height:1;display:block;letter-spacing:-.07em}
.feature-badge span{font-size:.77rem;color:#dee3ff;font-weight:650}
.feature-copy h2{margin-bottom:21px}
.feature-copy>p{max-width:555px}
.check-list{padding:0;margin:26px 0 33px;list-style:none;display:grid;gap:14px}
.check-list li{display:flex;gap:11px;color:#36405c;font-size:.91rem;font-weight:610;line-height:1.6}
.check-list svg{color:var(--electric);width:19px;height:19px;margin-top:3px}
.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}
.benefit{background:#fff;border:1px solid var(--line);padding:27px;border-radius:16px}
.benefit .icon-bubble{margin-bottom:22px}
.benefit h3{font-size:1.12rem;margin-bottom:10px}
.benefit p{font-size:.81rem;margin:0;line-height:1.75}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.project-card{position:relative;display:block;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);transition:transform .35s var(--ease),box-shadow .35s}
.project-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.project-card__image{height:240px;overflow:hidden;position:relative}
.project-card__image img{height:100%;width:100%;object-fit:cover;transition:transform .65s var(--ease)}
.project-card:hover img{transform:scale(1.055)}
.project-card__tag{position:absolute;top:17px;left:17px;padding:7px 12px;border-radius:7px;color:#fff;background:rgba(21,26,72,.82);backdrop-filter:blur(8px);font-size:.67rem;letter-spacing:.07em;text-transform:uppercase;font-weight:750}
.project-card__body{padding:22px 24px 24px}
.project-card__loc{font-size:.76rem;color:#79839c;margin:0 0 9px;display:flex;gap:7px;align-items:center}
.project-card__body h3{font-size:1.20rem;margin:0 0 9px}
.project-card__bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}
.project-card__bottom p{margin:0;font-size:.78rem}
.project-card__bottom svg{color:var(--navy);width:20px;height:20px}
.note-under-grid{margin:18px 0 0;font-size:.72rem;color:#818ba3}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;counter-reset:process}
.process-step{position:relative;padding:23px 16px 0 0}
.process-step::before{counter-increment:process;content:counter(process,decimal-leading-zero);font-size:3rem;line-height:1;color:#d7ddfa;font-weight:850;letter-spacing:-.085em;display:block;margin-bottom:25px}
.process-step:not(:last-child)::after{position:absolute;content:'';top:50px;left:105px;right:0;height:1px;background:#dbe0f6}
.process-step h3{font-size:1.19rem;margin:0 0 10px}
.process-step p{font-size:.83rem;line-height:1.75;margin:0}
.industry-strip{background:#151d4e;color:#fff;padding:31px 0;overflow:hidden}
.industry-strip .container{display:flex;align-items:center;gap:26px}
.industry-strip strong{font-size:.73rem;color:#c1caff;letter-spacing:.12em;text-transform:uppercase;flex:none;max-width:160px;line-height:1.45}
.industry-tags{display:flex;gap:11px;flex-wrap:wrap}
.industry-tags span{border:1px solid rgba(232,237,255,.22);border-radius:999px;padding:7px 12px;font-size:.74rem;color:#e3e8ff;line-height:1.4}
/* Section CTA */
.cta-banner{border-radius:26px;background:radial-gradient(circle at 87% 15%,rgba(104,118,255,.36),transparent 32%),linear-gradient(110deg,#1a2059,#292c95 105%);overflow:hidden;position:relative;color:#fff;padding:57px 63px;display:flex;justify-content:space-between;align-items:center;gap:42px}
.cta-banner::after{content:'';position:absolute;right:-115px;top:-150px;border:1px solid rgba(255,255,255,.11);border-radius:50%;height:430px;width:430px;box-shadow:0 0 0 60px rgba(255,255,255,.018),0 0 0 130px rgba(255,255,255,.018);pointer-events:none}
.cta-banner h2{color:#fff;font-size:clamp(2rem,3.1vw,3.15rem);max-width:640px;margin:0 0 12px}
.cta-banner p{color:#d3d9fc;margin:0;max-width:590px}
.cta-actions{display:flex;align-items:center;gap:10px;flex:none;position:relative;z-index:1}
/* Interior page hero */
.page-hero{position:relative;overflow:hidden;background:linear-gradient(105deg,#f6f8ff,#f0f3ff);border-bottom:1px solid #e8ecf8}
.page-hero::after{content:'';position:absolute;width:420px;height:420px;border-radius:50%;right:-120px;bottom:-260px;background:rgba(103,119,227,.08)}
.page-hero__grid{display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:65px;padding:63px 0 72px;min-height:405px}
.page-hero h1{font-size:clamp(2.7rem,4.25vw,4.45rem);margin:18px 0 20px;max-width:740px}
.page-hero p{max-width:630px;font-size:1rem;margin-bottom:20px}
.page-hero__img{width:100%;height:300px;object-fit:cover;border-radius:22px;box-shadow:0 22px 45px #171b5b17}
.breadcrumb{display:flex;align-items:center;gap:10px;font-size:.73rem;font-weight:700;color:#828ba2;flex-wrap:wrap;line-height:1.4}
.breadcrumb a{color:var(--navy)}.breadcrumb a:hover{text-decoration:underline}
.breadcrumb svg{width:13px;height:13px;color:#a3abc0}
.page-hero--compact .page-hero__grid{min-height:300px;padding:50px 0 60px;grid-template-columns:1fr}
.page-hero--compact h1{max-width:900px}
.page-hero--compact p{max-width:780px}
.stats-strip{background:#191f59;color:#fff}
.stats-strip .container{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:38px 0}
.stat-box{text-align:center;padding:0 20px;border-right:1px solid #43497f}
.stat-box:last-child{border-right:0}
.stat-box strong{color:#fff;font-size:2.15rem;line-height:1.15;letter-spacing:-.06em;display:block}
.stat-box span{color:#c6cdf3;font-size:.77rem;letter-spacing:.04em}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(250px,.76fr);gap:74px;align-items:start}
.detail-grid h2{font-size:clamp(1.95rem,2.7vw,2.9rem);margin:0 0 18px}
.detail-grid h3{font-size:1.23rem;margin:30px 0 12px}
.detail-grid p{font-size:.93rem}
.detail-sidebar{position:sticky;top:115px}
.sidebar-card{background:#f3f5ff;border:1px solid #e0e5f8;border-radius:20px;padding:32px}
.sidebar-card h3{font-size:1.55rem;margin:0 0 14px}
.sidebar-card p{font-size:.87rem;margin-bottom:20px}
.sidebar-card .btn{width:100%}
.sidebar-card ul{list-style:none;padding:0;margin:0 0 22px}
.sidebar-card li{display:flex;gap:11px;padding:12px 0;border-bottom:1px solid #dde3f4;font-size:.86rem;color:#35405e}
.sidebar-card li:last-child{border:0}
.sidebar-card li svg{color:var(--electric);width:19px;height:19px;margin-top:3px}
.highlights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}
.highlight-card{border-radius:17px;border:1px solid var(--line);padding:28px;background:#fff}
.highlight-card .icon-bubble{margin-bottom:20px}
.highlight-card h3{font-size:1.13rem;margin-bottom:10px}
.highlight-card p{font-size:.84rem;line-height:1.75;margin:0}
.service-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px}
.route-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;transition:transform .3s,box-shadow .3s}
.route-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.route-card img{height:230px;width:100%;object-fit:cover}
.route-card__body{padding:27px;flex:1;display:flex;flex-direction:column;align-items:flex-start}
.route-card h3{font-size:1.4rem;margin-bottom:12px}
.route-card p{font-size:.87rem;line-height:1.75;flex:1}
/* Projects + gallery filtering */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 31px}
.filter-button{font-size:.8rem;font-weight:720;padding:10px 19px;border:1px solid #d8def0;border-radius:999px;background:#fff;color:#4c5573;transition:all .2s}
.filter-button[aria-pressed=true],.filter-button:hover{background:var(--navy);border-color:var(--navy);color:#fff}
[data-filter-item].is-hidden{display:none!important}
.project-feature{display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;background:#f1f4ff;border-radius:24px;margin-bottom:36px;min-height:360px}
.project-feature>img{height:100%;width:100%;object-fit:cover}
.project-feature__copy{padding:52px;align-self:center}
.project-feature__copy h2{font-size:clamp(1.9rem,3vw,3rem);margin-bottom:17px}
.project-feature__copy p{font-size:.90rem}
.project-meta{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.project-meta .pill{background:#fff}
.projects-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.portfolio-card{border:1px solid var(--line);border-radius:18px;padding:22px 22px 19px;background:#fff;transition:border-color .2s,transform .2s}
.portfolio-card:hover{border-color:#aab5e8;transform:translateY(-3px)}
.portfolio-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:22px}
.portfolio-card__top .pill{font-size:.68rem;max-width:195px}
.portfolio-card__top .icon-bubble{width:41px;height:41px;border-radius:12px}
.portfolio-card__top .icon-bubble svg{width:20px;height:20px}
.portfolio-card h3{font-size:1.10rem;line-height:1.43;margin-bottom:17px}
.portfolio-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid #eef0f5;font-size:.73rem;color:#71809b}
.portfolio-card__foot strong{color:var(--navy);font-size:.83rem}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gallery-tile{border:0;padding:0;position:relative;border-radius:17px;overflow:hidden;text-align:left;background:#e7edfa;isolation:isolate;min-height:250px;display:block;width:100%}
.gallery-tile img{width:100%;height:275px;object-fit:cover;transition:transform .5s var(--ease)}
.gallery-tile:hover img{transform:scale(1.06)}
.gallery-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,13,38,.72),transparent 66%);pointer-events:none}
.gallery-tile__caption{z-index:2;position:absolute;bottom:17px;left:20px;right:20px;color:#fff;line-height:1.4;display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.gallery-tile__caption strong{font-size:1rem}
.gallery-tile__caption small{display:block;color:#dce3f7;font-size:.72rem;margin-top:5px}
.gallery-tile__caption svg{height:21px;width:21px}
.lightbox{max-width:min(920px,calc(100% - 30px));width:100%;background:#fff;border:0;border-radius:17px;padding:15px;box-shadow:0 30px 70px #0005}
.lightbox::backdrop{background:rgba(7,12,34,.85);backdrop-filter:blur(5px)}
.lightbox img{width:100%;max-height:min(74vh,700px);object-fit:contain;background:#eaf0f8;border-radius:10px}
.lightbox-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 7px 2px}
.lightbox-caption p{margin:0;font-size:.84rem}
.lightbox-close{position:absolute;right:28px;top:28px;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink)}
/* FAQs */
.faq-columns{display:grid;grid-template-columns:.65fr 1fr;gap:77px;align-items:start}
.faq-intro{position:sticky;top:115px}
.faq-list{display:grid;gap:11px}
.faq-item{border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}
.faq-item[open]{border-color:#bac3ee;box-shadow:0 12px 35px rgba(30,39,111,.045)}
.faq-item summary{list-style:none;cursor:pointer;padding:21px 54px 21px 22px;position:relative;font-size:.94rem;line-height:1.5;font-weight:760;color:#25304c}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::before,.faq-item summary::after{content:'';position:absolute;top:32px;right:22px;background:var(--navy);width:14px;height:2px;transition:transform .2s}
.faq-item summary::after{transform:rotate(90deg)}
.faq-item[open] summary::after{transform:rotate(0)}
.faq-item p{margin:0;padding:0 22px 23px;font-size:.88rem;line-height:1.85}
/* Contact */
.contact-layout{display:grid;grid-template-columns:.83fr 1.17fr;gap:70px}
.contact-method{display:flex;gap:18px;align-items:flex-start;padding:22px 0;border-bottom:1px solid var(--line)}
.contact-method:last-child{border:0}
.contact-method .icon-bubble{flex:none}
.contact-method strong{color:var(--ink);font-size:.90rem;display:block;line-height:1.45;margin:3px 0 5px}
.contact-method p,.contact-method a{color:#59647f;font-size:.88rem;margin:0;line-height:1.75;overflow-wrap:anywhere}
.contact-method a:hover{color:var(--navy);text-decoration:underline}
.form-shell{background:#f5f7ff;border:1px solid #e0e5f4;border-radius:24px;padding:39px}
.form-shell h2{font-size:1.9rem;margin:0 0 9px}
.form-shell>p{font-size:.84rem;margin-bottom:25px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}
.field label{font-weight:760;font-size:.77rem;color:#293352}
.field label span{color:#9a3861}
.field input,.field select,.field textarea{padding:13px 14px;border:1px solid #d5dced;border-radius:10px;background:#fff;color:#293450;outline:none;font-size:.86rem;width:100%;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#666ce0;box-shadow:0 0 0 3px #4b4dda18}
.field textarea{resize:vertical;min-height:120px}
.form-msg{color:var(--navy);font-size:.79rem;line-height:1.6;margin:13px 0 0}
.map-link-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:18px;padding:25px 27px;background:var(--ice)}
.map-link-card h3{margin-bottom:7px}.map-link-card p{margin:0;font-size:.82rem;max-width:530px}
/* Footer */
.site-footer{background:var(--navy-dark);color:#fff;margin-top:0}
.footer-main{display:grid;grid-template-columns:1.25fr .72fr 1.05fr 1.35fr;gap:44px;padding:75px 0 62px}
.footer-logo{display:inline-flex;background:#fff;border-radius:9px;padding:9px 13px;margin-bottom:23px}
.footer-logo img{width:200px;height:auto}
.footer-brand p{font-size:.79rem;color:#bec8eb;max-width:285px;line-height:1.9;margin-bottom:22px}
.footer-licence{font-size:.71rem;border:1px solid #394474;border-radius:999px;display:inline-flex;align-items:center;gap:7px;padding:7px 12px;color:#e2e7ff}
.footer-column h3{color:#fff;font-size:.96rem;letter-spacing:-.02em;margin:7px 0 23px}
.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.footer-links a{font-size:.80rem;color:#c7ceeb;transition:color .2s,padding .2s;display:inline-flex;align-items:center;gap:9px;line-height:1.55}
.footer-links a:hover{color:#fff;padding-left:3px}
.footer-contact{display:grid;gap:17px}
.footer-contact__item{display:flex;align-items:flex-start;gap:13px}
.footer-contact__item svg{margin-top:3px;color:#9eafff;width:18px;height:18px}
.footer-contact__item p,.footer-contact__item a{margin:0;line-height:1.8;font-size:.78rem;color:#c7ceeb;overflow-wrap:anywhere}
.footer-contact__item a:hover{color:#fff}
.footer-bottom{border-top:1px solid #303956;padding:18px 0}
.footer-bottom .container{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer-bottom p{margin:0;color:#aeb8dc;font-size:.72rem}
.footer-bottom strong{color:#f7f8ff;font-weight:720}
.back-to-top{position:fixed;z-index:100;right:22px;bottom:24px;display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--navy);border:1px solid #5459b7;color:#fff;box-shadow:0 10px 28px #151f5260;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .25s}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:#3d3fa7;transform:translateY(-3px)}
/* Motion: content is always visible when JS is disabled */
.js-ready [data-reveal]{opacity:0;transform:translateY(25px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.js-ready [data-reveal].is-visible{opacity:1;transform:translateY(0)}
.js-ready [data-reveal][data-delay='1']{transition-delay:.09s}
.js-ready [data-reveal][data-delay='2']{transition-delay:.17s}
.js-ready [data-reveal][data-delay='3']{transition-delay:.25s}
/* Responsive */
@media(max-width:1220px){.primary-nav{gap:16px}.nav-link{font-size:.74rem}.header-inner{gap:15px}.brand img{width:174px}.header-cta{padding-inline:13px}.hero-grid{gap:36px}.footer-main{gap:27px}}
@media(max-width:1060px){
 .menu-toggle{display:inline-flex;margin-left:auto}
 .primary-nav{position:absolute;top:100%;left:0;right:0;display:none;background:#fff;box-shadow:0 25px 34px #131a3e20;padding:14px max(24px,calc((100vw - 1220px)/2));margin:0;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);max-height:calc(100dvh - 96px);overflow-y:auto}
 .primary-nav.is-open{display:flex}
 .nav-item{border-bottom:1px solid #edf0f7;min-height:49px;flex-wrap:wrap;justify-content:space-between;gap:0}
 .nav-item .nav-link{font-size:.91rem;flex:1;min-height:52px}
 .nav-link.is-active::after{left:0;right:auto;bottom:7px;width:35px}
 .dropdown-toggle{height:52px;width:52px}
 .dropdown-menu{position:static;opacity:1;visibility:visible;display:none;width:100%;transform:none;box-shadow:none;border:0;border-radius:0;background:#f7f8ff;padding:8px 9px 12px;margin-bottom:8px;order:3}
 .nav-item.is-expanded .dropdown-menu{display:grid}
 .dropdown-menu::before{display:none}
 .header-cta{display:none}
 .topbar-group{gap:13px}
 .hero-grid{grid-template-columns:1.05fr .95fr;gap:24px}
 .hero-visual{height:485px;margin-right:0}.hero-float--top{right:-12px}.hero-float--bottom{left:-15px}
 .trust-point{padding-inline:10px}
 .feature-grid{gap:54px}.benefits-grid{grid-template-columns:repeat(2,1fr)}
 .footer-main{grid-template-columns:1.2fr 1fr;gap:36px 65px}
 .faq-columns{gap:42px}.contact-layout{gap:40px}
}
@media(max-width:780px){
 .container{width:min(100% - 40px,660px)}
 .section{padding:72px 0}.section--tight{padding:49px 0}
 .section-heading{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:30px}
 .hero-grid{grid-template-columns:1fr;padding:56px 0 58px;gap:45px}
 .hero h1{max-width:620px}.hero-lead{max-width:580px}
 .hero-visual{height:440px;max-width:660px;margin:0 12px 0 13px}
 .trust-grid{grid-template-columns:1fr 1fr;gap:0}
 .trust-point{padding:15px 18px;border-bottom:1px solid var(--line)}
 .trust-point:first-child{padding-left:18px}
 .trust-point:nth-child(2){border-right:0}
 .trust-point:nth-child(n+3){border-bottom:0}
 .services-grid,.project-grid,.projects-list,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .service-card__content{padding:22px}.service-card__content p{min-height:auto}
 .feature-grid,.detail-grid,.contact-layout,.faq-columns{grid-template-columns:1fr;gap:39px}
 .feature-image>img{height:450px}.feature-badge{right:12px}
 .process-grid{grid-template-columns:repeat(2,1fr)}
 .process-step:nth-child(2)::after{display:none}
 .industry-strip .container{display:block}.industry-strip strong{display:block;margin-bottom:14px}
 .page-hero__grid{grid-template-columns:1fr;padding:52px 0;gap:25px;min-height:auto}
 .page-hero__img{height:260px}
 .detail-sidebar,.faq-intro{position:static}
 .project-feature{grid-template-columns:1fr}
 .project-feature>img{height:320px}.project-feature__copy{padding:33px}
 .cta-banner{padding:42px 34px;align-items:flex-start;flex-direction:column}
 .cta-actions{flex-wrap:wrap}
 .form-shell{padding:28px}
 .topbar .topbar-location{display:none}
}
@media(max-width:560px){
 .container{width:calc(100% - 34px)}
 .topbar{font-size:.67rem}.topbar .container{justify-content:center}.topbar .topbar-right{display:none}
 .topbar-group{gap:18px}.topbar-email{display:none!important}
 .header-inner{min-height:75px}.brand img{width:164px}.menu-toggle{width:45px;height:44px}
 .hero-grid{padding:45px 0 49px;gap:36px}
 .hero h1{font-size:clamp(2.75rem,11vw,3.7rem)}.hero-lead{font-size:.93rem}
 .hero-visual{height:330px;margin:0 6px}
 .hero-float{padding:9px 11px;gap:8px;border-radius:11px}
 .hero-float .icon-bubble{width:32px;height:32px;border-radius:9px}
 .hero-float .icon-bubble svg{height:18px;width:18px}
 .hero-float--top{top:15px;right:-8px}.hero-float--bottom{bottom:22px;left:-9px}
 .hero-float strong{font-size:.81rem}.hero-float span{font-size:.57rem}
 .hero-photo-label{display:none}
 .hero-actions .btn{flex:1;min-width:130px;padding-inline:10px;font-size:.76rem}
 .hero-small{margin-top:26px;line-height:1.5}
 .trust-grid{grid-template-columns:1fr 1fr;padding:9px 0}
 .trust-point{padding:11px 7px;gap:8px}.trust-point:first-child{padding-left:7px}
 .trust-point .icon-bubble{width:33px;height:33px}.trust-point .icon-bubble svg{width:16px;height:16px}
 .trust-point strong{font-size:.67rem}.trust-point span{font-size:.61rem}
 .services-grid,.project-grid,.projects-list,.gallery-grid,.service-routes,.highlights-grid{grid-template-columns:1fr}
 .service-card__media{height:225px}
 .service-card__content h3{font-size:1.28rem}
 .feature-image>img{height:375px}.feature-badge{padding:15px 20px;right:8px;bottom:-15px;border-width:5px}
 .feature-badge strong{font-size:1.8rem}
 .benefits-grid,.process-grid{grid-template-columns:1fr}
 .process-step{padding:0 0 10px}.process-step::before{font-size:2.3rem;margin-bottom:11px}.process-step::after{display:none}
 .section-heading h2{font-size:2.24rem}
 .project-card__image{height:235px}
 .cta-banner{padding:35px 22px;border-radius:19px}.cta-banner h2{font-size:2rem}.cta-actions{width:100%}.cta-actions .btn{width:100%}
 .page-hero h1{font-size:2.68rem}.page-hero__img{height:235px}
 .stats-strip .container{grid-template-columns:1fr 1fr;padding:28px 0}.stat-box{border-right:0;border-bottom:1px solid #43497f;padding:15px 5px}.stat-box:last-child{grid-column:span 2;border-bottom:0}
 .project-feature>img{height:230px}.project-feature__copy{padding:27px}
 .form-row{grid-template-columns:1fr;gap:0}.form-shell{padding:22px}
 .footer-main{grid-template-columns:1fr 1fr;gap:32px 20px;padding:58px 0 44px}
 .footer-brand,.footer-main .footer-column:last-child{grid-column:span 2}
 .footer-logo img{width:187px}.footer-column h3{margin-bottom:17px}
 .footer-bottom .container{justify-content:center;text-align:center}
 .map-link-card{flex-direction:column;align-items:flex-start}
 .gallery-tile img{height:255px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.js-ready [data-reveal]{opacity:1;transform:none}}


/* Consolidated edition: readability, content architecture and premium components */
:root{--body:#46516b;--ink:#172144;--line:#dfe5ef;--shadow:0 18px 48px rgba(22,28,76,.09)}
body{font-size:17px;line-height:1.68;letter-spacing:0}
h1,h2,h3,h4{font-weight:750;letter-spacing:-.038em;line-height:1.22}
h1{font-size:clamp(2.65rem,4.55vw,4.4rem)}
h2{font-size:clamp(2rem,3.05vw,3.15rem)}
h3{font-size:1.3rem}
p{line-height:1.76}
.container{width:min(1260px,calc(100% - 76px))}
.section{padding:84px 0}.section--tight{padding:59px 0}
.eyebrow{font-size:.78rem;letter-spacing:.095em;font-weight:760;margin-bottom:16px}
.btn{font-size:.94rem;font-weight:720;min-height:50px}
.nav-link{font-size:.9rem;font-weight:660}.primary-nav{gap:17px}
.dropdown-menu{width:292px;padding:12px}.dropdown-menu a{font-size:.93rem;padding:10px 12px}
.topbar{font-size:.78rem}.header-inner{min-height:87px}
.footer-links a,.footer-brand p,.footer-contact__item a,.footer-contact__item p,.footer-bottom p{font-size:.91rem}
.footer-column h3{font-size:1.02rem}.footer-licence{font-size:.83rem}
.footer-main{grid-template-columns:1.2fr .82fr 1.13fr 1.4fr;gap:32px;padding:64px 0 55px}
.hero-grid{padding:64px 0}.hero-visual{height:510px}
.hero-lead{font-size:1.11rem;line-height:1.75}
.hero-small,.trust-point strong,.trust-point span{font-size:.88rem}
.service-card__content p,.feature-copy p,.benefit p,.process-step p,.project-card__bottom p,.project-card__loc,.note-under-grid,
.detail-grid p,.highlight-card p,.sidebar-card p,.sidebar-card li,.route-card p,.gallery-tile__label,
.portfolio-card p,.contact-method p,.contact-method a,.form-shell>p,.map-link-card p,
.faq-item p,.faq-intro p,.footer-main p{font-size:.96rem;line-height:1.72}
.service-card__top small,.project-card__tag,.pill,.project-card__loc,.industry-strip strong,.industry-tags span,
.muted-note,.note-under-grid,.hero-photo-label{font-size:.83rem}
.service-card__content h3,.project-card__body h3{font-size:1.39rem}
.service-card__content{padding:25px}.service-card__content p{min-height:auto}
.page-hero__grid{padding:55px 0 64px}.page-hero h1{font-size:clamp(2.45rem,3.8vw,3.95rem)}
.page-hero p{font-size:1.06rem;line-height:1.75}.page-hero__img{height:320px}
.page-hero .hero-eyebrow{display:flex;margin:19px 0 12px}
.breadcrumb{font-size:.87rem}
.form-shell .field label{font-size:.95rem}.field input,.field select,.field textarea{font-size:1rem}
.form-msg{font-size:.93rem}.filter-button{font-size:.94rem}
.portfolio-card h3{font-size:1.17rem;line-height:1.4}
.portfolio-card__foot span,.portfolio-card__foot strong{font-size:.92rem}
.client-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.client-card{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:21px 19px;min-width:0;flex-wrap:wrap}
.client-card__monogram{width:45px;height:45px;border-radius:12px;display:grid;place-items:center;background:#eeefff;color:var(--navy);font-size:.91rem;font-weight:800;flex:none}
.client-card h3{font-size:1.05rem;margin:2px 0 6px;line-height:1.38;overflow-wrap:anywhere}
.client-card p{font-size:.89rem;margin:0;color:#69768f}
.client-card__category{margin-left:59px;color:#5e6983;font-size:.82rem}
.info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.info-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:27px 25px;min-width:0;box-shadow:0 5px 22px #1a275309}
.info-card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.info-card__index{display:grid;place-items:center;background:#f0f2ff;color:var(--navy);font-size:.88rem;font-weight:750;width:44px;height:44px;border-radius:13px}
.info-card h3{font-size:1.19rem;margin-bottom:12px;line-height:1.34}
.info-card p{font-size:1rem;line-height:1.72;margin:0}
.lead-copy{max-width:850px}.lead-copy p{font-size:1.07rem;line-height:1.82}
.content-columns{display:grid;grid-template-columns:1.35fr .75fr;gap:50px;align-items:start}
.readable-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;padding:0;margin:0;list-style:none}
.readable-list li{font-size:1.02rem;color:#354263;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;line-height:1.5}
.readable-list li::before{content:'✓';display:inline-block;margin-right:12px;color:var(--electric);font-weight:800}
.context-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:31px;box-shadow:0 12px 30px #122a4610}
.context-card h3{font-size:1.4rem;margin-bottom:15px}.context-card p{font-size:1rem;line-height:1.78}
.related-links{display:flex;gap:13px;flex-wrap:wrap;margin-top:26px}
.related-links a{padding:13px 19px;border:1px solid #cdd5ec;border-radius:10px;background:#fff;color:var(--navy);font-size:.99rem;font-weight:720}
.related-links a:hover{border-color:var(--navy);background:#f5f6ff}
.specialist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.specialist-card{display:block;background:#fff;border:1px solid var(--line);border-radius:19px;padding:30px;box-shadow:0 8px 26px #1a285208;transition:box-shadow .2s,transform .2s}
.specialist-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.specialist-card__icon{background:#eff0ff;color:var(--navy);font-weight:800;border-radius:13px;padding:12px;display:inline-flex;margin-bottom:27px}
.specialist-card h3{margin-bottom:13px;font-size:1.3rem}
.specialist-card p{font-size:1rem;min-height:115px;line-height:1.75}
.specialist-card .link-arrow{font-size:.96rem}
.home-directory-promo{display:flex;align-items:center;justify-content:space-between;gap:32px;background:#f5f7ff;border:1px solid #e2e6f4;border-radius:22px;padding:33px 38px}
.home-directory-promo strong{font-size:1.28rem;color:var(--ink);line-height:1.4}
.home-directory-promo p{font-size:1rem;margin:11px 0 0;max-width:660px}
.quick-route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.quick-route{display:block;background:#fff;padding:27px;border:1px solid var(--line);border-radius:17px}
.quick-route h3{font-size:1.24rem;margin-bottom:18px}.quick-route span{font-size:.98rem;line-height:1.6;color:var(--navy)}
.directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:23px 0 27px}
.directory-toolbar .filters{margin:0;flex-wrap:wrap}
.search-field{display:flex;flex-direction:column;gap:6px;font-size:.83rem;color:#65718b;font-weight:690;min-width:240px;flex:0 1 300px}
.search-field input{border:1px solid #cbd3e8;border-radius:11px;background:#fff;font-size:1rem;color:var(--ink);padding:12px 15px;min-width:0;width:100%}
.search-field input:focus{outline:3px solid #23247724;border-color:var(--navy)}
.portfolio-card--enhanced{min-height:215px}
.project-detail{margin-top:16px;border-top:1px solid #e6eaf4;padding-top:13px}
.project-detail summary{font-size:.94rem;font-weight:740;cursor:pointer;color:var(--navy);list-style:none}
.project-detail summary::-webkit-details-marker{display:none}
.project-detail summary span{float:right}
.project-detail p{font-size:.94rem;margin:12px 0;line-height:1.7;color:#5c6780}
.project-detail a{font-size:.91rem}
.portfolio-card.is-hidden,.client-card.is-hidden{display:none!important}
.pill--progress{background:#fff5e8;border-color:#ffe0bc;color:#935211}
.disclosure{font-size:.91rem;color:#65728d;background:#f5f7fd;border-left:3px solid #8490df;border-radius:6px;padding:14px 18px;line-height:1.75;margin-top:25px}
.gallery-disclosure{grid-column:1/-1;margin:0 0 4px}
.context-callout{background:#fff;border-radius:19px;border:1px solid var(--line);padding:30px;max-width:800px}
.context-callout blockquote{font-size:1.35rem;line-height:1.46;color:var(--navy);font-weight:700;margin:0 0 12px}
.context-callout p{font-size:1rem}
@media(max-width:1280px){.primary-nav{gap:12px}.nav-link{font-size:.86rem}.brand img{width:176px}.header-cta{font-size:.88rem}}
@media(max-width:1160px){
 .menu-toggle{display:inline-flex;margin-left:auto}
 .primary-nav{position:absolute;top:100%;left:0;right:0;display:none;background:#fff;box-shadow:0 25px 34px #131a3e20;padding:14px max(22px,calc((100vw - 1260px)/2));margin:0;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);max-height:calc(100dvh - 96px);overflow-y:auto}
 .primary-nav.is-open{display:flex}
 .nav-item{border-bottom:1px solid #edf0f7;min-height:49px;flex-wrap:wrap;justify-content:space-between;gap:0}
 .nav-item .nav-link{font-size:1rem;flex:1;min-height:52px}
 .dropdown-toggle{height:52px;width:52px}
 .dropdown-menu{position:static;opacity:1;visibility:visible;display:none;width:100%;transform:none;box-shadow:none;border:0;border-radius:0;background:#f7f8ff;padding:8px 9px 12px;margin-bottom:8px;order:3}
 .nav-item.is-expanded .dropdown-menu{display:grid}
 .dropdown-menu::before{display:none}
 .header-cta{display:none}
 .dropdown-menu a{font-size:.98rem}
}
@media(max-width:1020px){.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.content-columns{grid-template-columns:1fr}.specialist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-main{grid-template-columns:1fr 1fr}}
@media(max-width:780px){.container{width:min(100% - 40px,660px)}.hero-grid{grid-template-columns:1fr}.hero-visual{height:430px}.specialist-grid,.quick-route-grid{grid-template-columns:1fr}.home-directory-promo{flex-direction:column;align-items:flex-start}.info-grid{grid-template-columns:1fr 1fr}.page-hero__grid{grid-template-columns:1fr;gap:24px;padding:47px 0}.page-hero__img{height:270px}.section{padding:70px 0}.section--tight{padding:52px 0}}
@media(max-width:560px){
 body{font-size:16px;line-height:1.7}.container{width:calc(100% - 34px)}
 h1{font-size:clamp(2.45rem,10vw,3.1rem)}h2{font-size:2rem}
 .hero h1{font-size:clamp(2.5rem,10vw,3.1rem)}.page-hero h1{font-size:2.42rem}
 .hero-lead,.page-hero p{font-size:1.02rem}
 .btn{font-size:.91rem}.section{padding:59px 0}
 .info-grid,.client-directory,.specialist-grid,.quick-route-grid{grid-template-columns:1fr}
 .readable-list{grid-template-columns:1fr}
 .client-card__category{margin-left:59px}
 .context-card,.specialist-card{padding:25px}
 .home-directory-promo{padding:26px}
 .directory-toolbar{align-items:stretch}.search-field{flex:1 1 100%}
 .footer-main{grid-template-columns:1fr 1fr}.footer-column h3{font-size:.99rem}
 .footer-links a{font-size:.89rem}
 .service-card__content p,.benefit p,.portfolio-card p,.process-step p,.info-card p,.client-card p{font-size:.96rem}
 .hero-small{font-size:.85rem}.trust-point strong{font-size:.82rem}.trust-point span{font-size:.77rem}
 .page-hero .hero-eyebrow{margin-top:18px}
}
@media(prefers-reduced-motion:reduce){.specialist-card{transition:none}}


/* --------------------------------------------------------------------------
   S.R. & Co. | Reference-led premium refinement - 20 October 2026
   Typography from SR-Co-Updated-HD-Images-Website.zip:
   Manrope (reading), Outfit (headings). All main content: max-width 1340px.
   The homepage and internal page banners are intentionally 100vw/full bleed.
   -------------------------------------------------------------------------- */
:root {
  --navy: #25327a;
  --navy-deep: #101b3f;
  --navy-dark: #111a36;
  --electric: #537be4;
  --sky: #a5c9ff;
  --ice: #f5f8fd;
  --mist: #eaf0f8;
  --ink: #1b2845;
  --body: #58667d;
  --line: #e2e8f0;
  --white: #fff;
  --radius: 17px;
  --shadow: 0 18px 46px rgba(16, 35, 79, .075);
  --font: 'Manrope', 'Segoe UI', Arial, sans-serif;
  --display: 'Outfit', 'Segoe UI', Arial, sans-serif;
}
html {scroll-padding-top: 100px}
body {font-family: var(--font);font-size: 16px;line-height: 1.78;font-weight: 400;color: var(--ink);letter-spacing: 0}
.container {width: min(1340px, calc(100% - 64px));margin-inline: auto}
h1,h2,h3,h4 {font-family:var(--display);font-weight:600;line-height:1.19;letter-spacing:-.025em;color:var(--ink)}
h1{font-size:clamp(2.8rem,4.5vw,4.45rem);letter-spacing:-.035em}
h2{font-size:clamp(2.05rem,3vw,3.18rem)}
h3{font-size:1.3rem}
strong,b{font-weight:600}
p {font-size:1rem;line-height:1.83;color:var(--body)}
.text-accent{color:var(--electric)}
.section{padding:89px 0}
.section--tight{padding:63px 0}
.section-heading{margin-bottom:37px}
.section-heading h2{margin-bottom:14px}
.section-heading p{font-size:1.02rem}
.eyebrow {font-family:var(--font);font-weight:600;font-size:.76rem;letter-spacing:.105em;margin:0 0 18px;color:var(--electric)}
.eyebrow::before{width:26px;height:2px;background:currentColor}
.eyebrow--light{color:#c5d9ff}
.btn {font:600 .91rem/1.4 var(--font);min-height:49px;padding:12px 22px;border-radius:9px;letter-spacing:0}
.btn:hover{transform:translateY(-2px)}
.link-arrow{font-weight:600;font-size:.94rem}
.pill{font-weight:600;font-size:.78rem;background:#f0f4fc;border-color:#dbe4f5;color:#34548e}
.icon-bubble{border-radius:12px;background:#edf3ff;color:#3457a3}
/* Restrained navigation: keep the brand, spacing and type aligned. */
.topbar {background:var(--navy-deep);font-size:.73rem;min-height:36px}
.topbar .container{min-height:36px}
.site-header{background:rgba(255,255,255,.985);border-bottom:1px solid #e9eef6;box-shadow:none}
.site-header.is-scrolled{box-shadow:0 11px 29px rgba(13,27,56,.075)}
.header-inner{min-height:83px;gap:21px}
.brand img{width:196px}
.primary-nav{gap:21px}
.nav-link{font-family:var(--font);font-size:.84rem;font-weight:600;color:#283554}
.nav-link.is-active::after{background:var(--electric);bottom:-20px;height:2px}
.dropdown-toggle{color:#45577b}
.dropdown-menu{width:292px;border-radius:11px;box-shadow:0 18px 45px rgba(17,32,67,.12)}
.dropdown-menu a{font-size:.83rem;font-weight:500}
.header-cta{font-size:.86rem;font-weight:600;min-height:44px;padding:11px 17px}
/* Full-bleed, photographic homepage banner with elegant readable copy. */
.hero {position:relative;isolation:isolate;overflow:hidden;width:100%;height:clamp(580px,calc(100svh - 120px),705px);min-height:580px;max-height:705px;background:#0e1b3d;color:#fff}
.hero::before,.hero::after{display:none}
.hero-slide{position:absolute;inset:0;isolation:isolate;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .75s ease,visibility .75s ease}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.hero-slide__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 51%;z-index:-3}
.hero-slide:nth-child(2) .hero-slide__photo{object-position:center 59%}
.hero-slide:nth-child(3) .hero-slide__photo{object-position:center 48%}
.hero-slide::before{position:absolute;inset:0;content:'';z-index:-2;background:linear-gradient(90deg,rgba(8,20,53,.94) 0%,rgba(9,26,61,.82) 36%,rgba(12,34,71,.44) 71%,rgba(12,32,66,.18) 100%)}
.hero-slide::after{position:absolute;inset:0;content:'';z-index:-1;background:linear-gradient(0deg,rgba(6,15,41,.35),transparent 31%)}
.hero-slide__content{position:relative;height:100%;display:flex;align-items:center}
.hero-slide__copy{max-width:770px;padding:40px 0 85px}
.hero-kicker{display:inline-flex;align-items:center;gap:14px;color:#d0e0ff;font-size:.77rem;line-height:1.5;font-weight:600;letter-spacing:.155em;text-transform:uppercase;margin-bottom:24px}
.hero-kicker::before{display:block;content:'';height:2px;width:32px;background:#94bfff}
.hero h1,.hero-slide__heading{font-family:var(--display);font-size:clamp(3.05rem,5.2vw,5.15rem);font-weight:600;line-height:1.09;letter-spacing:-.039em;max-width:790px;color:#fff;margin:0 0 23px;text-wrap:balance}
.hero-slide__heading em,.hero h1 em{font-style:normal;color:#9bc3ff}
.hero-slide__lede{max-width:625px;color:#e6edf9;font-size:1.05rem;font-weight:400;line-height:1.88;margin:0 0 29px}
.hero-slide__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hero-slide__actions .btn{min-height:50px;padding:12px 23px}
.hero-slide__actions .btn--hero-primary{background:#517be7;border-color:#517be7;color:#fff}
.hero-slide__actions .btn--hero-primary:hover{background:#406cd5;box-shadow:0 10px 22px rgba(15,26,63,.19)}
.hero-slide__actions .btn--hero-secondary{background:rgba(255,255,255,.085);border-color:rgba(245,248,255,.58);color:#fff;backdrop-filter:blur(6px)}
.hero-slide__actions .btn--hero-secondary:hover{background:rgba(255,255,255,.2);box-shadow:none}
.hero-controls{position:absolute;z-index:7;left:0;right:0;bottom:30px;display:none}
.hero.is-enhanced .hero-controls{display:block}
.hero-controls__inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.hero-controls__left{display:flex;align-items:center;gap:19px}
.hero-slide-count{color:rgba(255,255,255,.92);font-size:.79rem;font-weight:500;letter-spacing:.07em;font-variant-numeric:tabular-nums}
.hero-dots{display:flex;align-items:center;gap:8px}
.hero-dot{border:0;padding:0;height:5px;width:28px;border-radius:8px;background:rgba(255,255,255,.38);transition:width .25s ease,background .25s ease}
.hero-dot.is-active{width:48px;background:#a2c4ff}
.hero-arrows{display:flex;align-items:center;gap:9px}
.hero-arrow{width:43px;height:43px;padding:0;display:grid;place-items:center;border-radius:9px;border:1px solid rgba(255,255,255,.5);background:rgba(10,20,44,.14);color:#fff;backdrop-filter:blur(5px);transition:background .25s,border-color .25s}
.hero-arrow:hover{background:rgba(255,255,255,.23);border-color:#fff}
.hero-arrow svg{width:19px;height:19px}
.hero-cert{position:absolute;z-index:6;right:max(32px,calc((100% - 1340px) / 2));bottom:116px;color:#f2f6ff;border-left:2px solid #93bfff;padding:9px 15px;background:rgba(11,26,56,.32);font-size:.72rem;letter-spacing:.075em;text-transform:uppercase;font-weight:500;backdrop-filter:blur(5px)}
/* Full-width internal banners: replace inset photo with a real cover image. */
.page-hero{isolation:isolate;background:#101c42;color:#fff;overflow:hidden;border-bottom:0;position:relative;min-height:365px}
.page-hero::before{content:'';display:block;position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,19,47,.96) 0%,rgba(10,27,60,.89) 37%,rgba(15,34,66,.66) 71%,rgba(12,30,65,.39) 100%)}
.page-hero::after{display:none}
.page-hero__backdrop{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 51%;z-index:-2}
.page-hero__grid{display:grid;grid-template-columns:1fr;align-items:center;gap:0;min-height:365px;padding:66px 0}
.page-hero__grid > div{max-width:930px}
.page-hero h1{font-family:var(--display);font-size:clamp(2.6rem,4.15vw,4.12rem);font-weight:600;line-height:1.13;letter-spacing:-.035em;color:#fff;max-width:910px;margin:17px 0 17px}
.page-hero h1 .text-accent{color:#9bc4ff}
.page-hero p{font-size:1.02rem;line-height:1.85;max-width:790px;color:#e0eaf8;margin:0}
.page-hero .breadcrumb{font-size:.83rem;font-weight:500;color:#cedcf5;line-height:1.5}
.page-hero .breadcrumb a{color:#fff}
.page-hero .breadcrumb svg{color:#c1d5f5}
.page-hero--compact{min-height:310px}
.page-hero--compact .page-hero__grid{grid-template-columns:1fr;min-height:310px;padding:59px 0}
.page-hero--compact h1{max-width:850px}
/* Content and component polish. Maintain generous readable space. */
.section--soft{background:var(--ice)}
.trust-band{background:#fff;border-bottom:1px solid #edf0f6}
.trust-point strong{font-size:.85rem;font-weight:600;color:#2e3d59}
.trust-point span{font-size:.81rem;color:#748198}
.section-heading h2,.feature-copy h2{font-weight:600;letter-spacing:-.026em}
.service-card,.project-card,.route-card,.specialist-card,.client-card,.portfolio-card,.info-card,.benefit,.highlight-card,.context-card,.quick-route{border-color:var(--line);border-radius:16px;box-shadow:0 5px 24px rgba(15,34,73,.03)}
.service-card:hover,.project-card:hover,.route-card:hover,.specialist-card:hover{transform:translateY(-4px);box-shadow:0 15px 37px rgba(15,34,73,.10);border-color:#cedbf0}
.services-grid,.project-grid{gap:23px}
.service-card__media{height:238px}
.service-card__content{padding:26px 27px 29px}
.service-card__content h3,.project-card__body h3{font-size:1.39rem;font-weight:600;letter-spacing:-.018em}
.service-card__content p,.benefit p,.process-step p,.project-card__bottom p,.project-card__loc,.detail-grid p,.highlight-card p,.sidebar-card p,.sidebar-card li,.route-card p,.portfolio-card p,.contact-method p,.contact-method a,.form-shell>p,.map-link-card p,.faq-item p,.faq-intro p,.footer-main p{font-size:.95rem;line-height:1.8}
.service-card__top small,.project-card__tag,.industry-strip strong,.note-under-grid{font-size:.78rem;font-weight:600}
.service-card__number{font-weight:600}
.project-card__tag{background:rgba(16,28,60,.8);font-weight:500;letter-spacing:.045em}
.project-card__image{height:249px}
.project-card__bottom strong{font-weight:600}
.feature-grid{gap:76px}
.feature-image>img{border-radius:17px}
.feature-badge{border-radius:17px;padding:18px 25px}
.feature-badge strong{font-family:var(--display);font-size:2rem;font-weight:600}
.check-list li{font-weight:500;font-size:.95rem}
.info-card,.highlight-card,.benefit,.specialist-card,.portfolio-card{padding:27px}
.info-card h3,.specialist-card h3,.benefit h3,.highlight-card h3,.portfolio-card h3,.process-step h3,.quick-route h3{font-weight:600}
.specialist-card__icon,.info-card__index,.client-card__monogram{font-weight:600}
.specialist-card p{min-height:98px;font-size:.95rem}
.client-card h3{font-weight:600}
.client-card__category{font-size:.81rem}
.process-step::before{font-family:var(--display);font-weight:500;color:#c7d3ee}
.lead-copy p{font-size:1.04rem;line-height:1.85}
.related-links a,.filter-button,.project-detail summary{font-weight:600}
.sidebar-card{background:#f3f7fe;border:1px solid #dce6f6}
.faq-item summary{font-family:var(--font);font-size:.96rem;font-weight:600}
.form-shell{border-color:#dfe8f5;background:#f8faff;border-radius:17px}
.form-shell h2{font-weight:600}
.field label{font-weight:600}
.field input,.field select,.field textarea{border-radius:9px}
.stats-strip{background:#1b2a67}
.stat-box strong{font-family:var(--display);font-size:2rem;font-weight:600;letter-spacing:-.028em}
.project-feature{background:#f3f7fd;border-radius:17px}
.project-feature__copy h2{font-weight:600}
.cta-banner{border-radius:19px;background:linear-gradient(110deg,#172457 0%,#253579 77%,#34529d 125%);padding:51px 58px}
.cta-banner h2{font-weight:600;font-size:clamp(2.05rem,2.8vw,3rem)}
.cta-banner p{color:#d4e0f5}
.home-directory-promo{background:#f6f9fe;border-color:#e1eaf5;border-radius:17px}
.home-directory-promo strong{font-weight:600}
.filter-button{font-size:.87rem}
.search-field{font-weight:500}
.site-footer{background:var(--navy-dark)}
.footer-main{grid-template-columns:1.24fr .84fr 1.12fr 1.28fr;gap:35px;padding:69px 0 57px}
.footer-column h3{font-family:var(--display);font-size:1.1rem;font-weight:600}
.footer-links a,.footer-brand p,.footer-contact__item a,.footer-contact__item p,.footer-bottom p{font-size:.88rem;line-height:1.75}
.footer-bottom strong{font-weight:600}
/* Intermediate screens: intentionally move to mobile navigation before clipping. */
@media(max-width:1320px){
  .primary-nav{gap:14px}
  .nav-link{font-size:.80rem}
  .brand img{width:183px}
  .header-inner{gap:15px}
}
@media(max-width:1160px){
  .primary-nav{gap:0;padding-inline:32px}
  .primary-nav .nav-item .nav-link{font-size:.98rem;font-weight:600}
  .dropdown-menu a{font-size:.94rem}
  .brand img{width:186px}
  .nav-link.is-active::after{bottom:7px}
}
@media(max-width:900px){
  .container{width:calc(100% - 44px)}
  .hero{height:640px;min-height:640px}
  .hero-slide__copy{max-width:700px}
  .hero h1,.hero-slide__heading{font-size:clamp(2.9rem,7.6vw,4.4rem)}
  .hero-slide::before{background:linear-gradient(90deg,rgba(7,19,47,.94),rgba(12,26,57,.71) 65%,rgba(12,31,58,.42))}
  .hero-cert{right:23px;bottom:104px}
  .feature-grid{gap:45px}
  .page-hero__grid{grid-template-columns:1fr;min-height:340px;padding:57px 0}
  .page-hero{min-height:340px}
}
@media(max-width:780px){
  .container{width:calc(100% - 40px)}
  .section{padding:71px 0}
  .section--tight{padding:53px 0}
  .hero{height:610px;min-height:610px}
  .hero h1,.hero-slide__heading{font-size:clamp(2.65rem,7.1vw,3.75rem)}
  .hero-slide__copy{padding:20px 0 80px}
  .hero-slide__lede{font-size:1rem}
  .hero-cert{display:none}
  .page-hero{min-height:325px}
  .page-hero__grid{min-height:325px;padding:53px 0}
  .page-hero h1{font-size:clamp(2.45rem,5.8vw,3.5rem)}
  .page-hero__backdrop{object-position:64% center}
  .page-hero::before{background:linear-gradient(90deg,rgba(7,19,46,.96),rgba(14,28,57,.83) 65%,rgba(14,31,61,.6))}
  .page-hero--compact{min-height:290px}
  .page-hero--compact .page-hero__grid{min-height:290px;padding:52px 0}
  .footer-main{grid-template-columns:1fr 1fr}
  .feature-grid{gap:34px}
}
@media(max-width:560px){
  body{font-size:16px;line-height:1.77}
  .container{width:calc(100% - 34px)}
  h1{font-size:2.5rem}
  h2,.section-heading h2{font-size:clamp(1.9rem,8.1vw,2.45rem)}
  h3{font-size:1.22rem}
  .section{padding:61px 0}
  .section--tight{padding:48px 0}
  .header-inner{min-height:75px}
  .brand img{width:170px}
  .primary-nav{padding-inline:17px}
  .hero{height:610px;min-height:610px;max-height:none}
  .hero-slide__photo{object-position:64% center}
  .hero-slide:nth-child(2) .hero-slide__photo{object-position:67% center}
  .hero-slide:nth-child(3) .hero-slide__photo{object-position:62% center}
  .hero-slide::before{background:linear-gradient(90deg,rgba(5,17,43,.94),rgba(9,22,51,.82) 65%,rgba(9,23,51,.65))}
  .hero-slide::after{background:linear-gradient(0deg,rgba(5,13,37,.51),transparent 39%)}
  .hero-slide__content{align-items:center}
  .hero-slide__copy{padding:8px 0 70px}
  .hero-kicker{font-size:.68rem;letter-spacing:.12em;gap:10px;margin-bottom:18px}
  .hero-kicker::before{width:22px}
  .hero h1,.hero-slide__heading{font-size:clamp(2.65rem,10.5vw,3.35rem);line-height:1.11;letter-spacing:-.032em;margin-bottom:18px}
  .hero-slide__lede{font-size:.93rem;line-height:1.75;margin-bottom:24px}
  .hero-slide__actions{gap:9px}
  .hero-slide__actions .btn{font-size:.80rem;padding:11px 13px;min-height:47px}
  .hero-slide__actions .btn svg{height:16px;width:16px}
  .hero-controls{bottom:23px}
  .hero-controls__left{gap:12px}
  .hero-slide-count{font-size:.7rem}
  .hero-dot{width:20px}
  .hero-dot.is-active{width:32px}
  .hero-arrows{gap:6px}
  .hero-arrow{width:38px;height:38px}
  .page-hero{min-height:322px}
  .page-hero__grid{min-height:322px;padding:45px 0}
  .page-hero h1{font-size:clamp(2.2rem,9vw,2.73rem);line-height:1.15;margin:13px 0}
  .page-hero p{font-size:.95rem;line-height:1.76}
  .page-hero .breadcrumb{font-size:.78rem}
  .page-hero--compact{min-height:290px}
  .page-hero--compact .page-hero__grid{min-height:290px;padding:43px 0}
  .btn{font-size:.9rem}
  .service-card__media{height:220px}
  .service-card__content{padding:24px}
  .service-card__content p,.benefit p,.portfolio-card p,.process-step p,.info-card p,.client-card p{font-size:.95rem}
  .feature-image>img{height:350px}
  .cta-banner{padding:34px 24px;border-radius:16px}
  .cta-banner h2{font-size:2rem}
  .footer-main{grid-template-columns:1fr 1fr}
}
@media(max-width:365px){
  .hero{height:635px;min-height:635px}
  .hero h1,.hero-slide__heading{font-size:2.42rem}
  .hero-slide__actions .btn{width:100%;justify-content:center}
  .hero-slide__copy{padding-bottom:73px}
}
@media(prefers-reduced-motion:reduce){
  .hero-slide{transition:none}
  .hero-dot,.hero-arrow{transition:none}
}

/* Final approval pass: softer display weights, still well-defined card hierarchy. */
h1,h2,.section-heading h2,.feature-copy h2,.project-feature__copy h2,.cta-banner h2,.page-hero h1,.hero h1,.hero-slide__heading{font-weight:500}
@media(max-width:560px){
  .hero-slide__actions .btn{width:100%;justify-content:center}
}

/* ===========================================================================
   S.R. & Co. | 20 October 2026 incremental design and contact patch
   Full-width hero preserved; floating credibility card within 1340px container.
   Manrope and Outfit from the HD-images reference are unchanged.
   =========================================================================== */
/* Present both listed telephone numbers, preserving their priority. */
.topbar-group .topbar-phone--secondary {
  border-left:1px solid rgba(226,237,255,.3);
  padding-left:17px;
  color:#e1e9ff;
}
.footer-contact__numbers {display:grid;gap:5px;min-width:0;line-height:1.65}
.footer-contact__numbers a {display:inline-block;width:fit-content;line-height:1.65}
.contact-method .contact-phone--secondary {display:block;margin-top:5px}
/* Credited company name must also be the clickable off-site link. */
.footer-credit a {
  color:#fff;
  font-weight:600;
  text-decoration:underline;
  text-decoration-color:rgba(181,203,246,.55);
  text-underline-offset:4px;
  text-decoration-thickness:1px;
  transition:color .2s,text-decoration-color .2s;
}
.footer-credit a:hover,.footer-credit a:focus-visible {
  color:#bbd4ff;
  text-decoration-color:currentColor;
}
/* 1340px floating trust card, visually anchored into the bottom of hero. */
.trust-band.trust-band--floating {
  position:relative;
  z-index:8;
  margin-top:-54px;
  padding:0 0 20px;
  background:linear-gradient(to bottom,transparent 0 54px,#f6f9fd 54px,#f6f9fd 100%);
  border:0;
}
.trust-grid.trust-grid--floating {
  width:min(1340px,calc(100% - 64px));
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  padding:18px 13px;
  min-height:114px;
  background:#fff;
  border:1px solid #e3eaf5;
  border-radius:21px;
  box-shadow:0 15px 45px rgba(15,37,79,.13),0 3px 12px rgba(25,49,90,.04);
}
.trust-grid--floating .trust-point {
  display:flex;
  align-items:center;
  gap:14px;
  padding:13px 22px;
  border-right:1px solid #e4eaf3;
  min-width:0;
  transition:background .2s ease;
}
.trust-grid--floating .trust-point:first-child{padding-left:22px}
.trust-grid--floating .trust-point:last-child{border-right:0;padding-right:22px}
.trust-grid--floating .trust-point:hover{background:#f8faff;border-radius:12px}
.trust-grid--floating .icon-bubble {
  width:48px;
  height:48px;
  min-width:48px;
  border-radius:14px;
  background:linear-gradient(135deg,#eff5ff,#e8effd);
  color:#4864a0;
}
.trust-grid--floating .icon-bubble svg{width:23px;height:23px}
.trust-grid--floating .trust-point strong {
  display:block;
  font-family:var(--display);
  color:#203456;
  font-size:1.04rem;
  font-weight:500;
  line-height:1.38;
  letter-spacing:-.01em;
}
.trust-grid--floating .trust-point div>span {
  display:block;
  color:#62718b;
  font-size:.86rem;
  font-weight:400;
  line-height:1.6;
  margin-top:3px;
}
/* Keep carousel controls above the floated card instead of under it. */
.hero .hero-controls{bottom:101px}
/* The original hero certificate used the arrow area; separate these elements. */
.hero .hero-cert{bottom:175px}
/* Make the first section follow the credibility card without a blank expanse. */
.trust-band--floating + .section{padding-top:67px}
@media(max-width:1180px){
  .topbar .topbar-right{display:none}
  .trust-grid--floating .trust-point {gap:11px;padding:12px 15px}
  .trust-grid--floating .trust-point:first-child{padding-left:15px}
  .trust-grid--floating .trust-point:last-child{padding-right:15px}
  .trust-grid--floating .icon-bubble{width:43px;height:43px;min-width:43px}
  .trust-grid--floating .trust-point strong{font-size:.97rem}
  .trust-grid--floating .trust-point div>span{font-size:.80rem}
}
@media(max-width:780px){
  .trust-grid.trust-grid--floating {grid-template-columns:repeat(2,minmax(0,1fr));padding:8px;min-height:auto}
  .trust-grid--floating .trust-point {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:9px;
    padding:16px 17px;
    border-right:0;
    border-bottom:1px solid #e8eef6;
    min-width:0;
  }
  .trust-grid--floating .trust-point:nth-child(odd){border-right:1px solid #e8eef6}
  .trust-grid--floating .trust-point:nth-child(n+3){border-bottom:0}
  .trust-grid--floating .trust-point:first-child{padding-left:17px}
  .trust-grid--floating .trust-point:last-child{padding-right:17px}
  .trust-grid--floating .trust-point strong{font-size:.98rem;line-height:1.32}
  .trust-grid--floating .trust-point div>span{font-size:.82rem;line-height:1.46}
  .trust-band.trust-band--floating {
    margin-top:-39px;
    padding-bottom:9px;
    background:linear-gradient(to bottom,transparent 0 39px,#f6f9fd 39px,#f6f9fd 100%);
  }
  .trust-band--floating + .section{padding-top:51px}
  .hero .hero-controls{bottom:85px}
  .topbar .topbar-location{display:none}
}
@media(max-width:560px){
  .trust-grid.trust-grid--floating {width:calc(100% - 34px);border-radius:17px}
  .trust-grid--floating .trust-point{padding:14px 12px;gap:8px}
  .trust-grid--floating .trust-point:first-child{padding-left:12px}
  .trust-grid--floating .trust-point:last-child{padding-right:12px}
  .trust-grid--floating .icon-bubble{width:42px;height:42px;min-width:42px;border-radius:11px}
  .trust-grid--floating .icon-bubble svg{height:20px;width:20px}
  .trust-grid--floating .trust-point strong{font-size:.91rem}
  .trust-grid--floating .trust-point div>span{font-size:.79rem}
  .trust-band--floating + .section{padding-top:45px}
  .topbar-group{gap:9px}
  .topbar-group .topbar-phone--secondary{padding-left:10px}
  .topbar a{font-size:.67rem}
  .hero .hero-controls{bottom:83px}
}
@media(max-width:365px){
  .topbar-group{gap:6px}
  .topbar-group .topbar-phone--secondary{padding-left:7px}
  .topbar a{font-size:.64rem}
  .trust-grid--floating .trust-point strong{font-size:.86rem}
  .trust-grid--floating .trust-point div>span{font-size:.75rem}
  .hero .hero-controls{bottom:82px}
}
@media(prefers-reduced-motion:reduce){
  .trust-grid--floating .trust-point{transition:none}
}

/* PHP shared header/footer + individually stacked telephone numbers (October 2026) */
.topbar{min-height:58px}
.topbar>.container{min-height:58px;padding-block:7px}
.topbar-phones{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:max-content}
.topbar-phones>a{display:inline-flex;align-items:center;white-space:nowrap;line-height:1.45}
.topbar-group .topbar-phones .topbar-phone--secondary{border:0;padding-left:20px;color:#dfe5ff}
.contact-method a[href^="tel:"]{display:block;width:fit-content;line-height:1.55;margin-top:8px}
.contact-method a[href^="tel:"] + a[href^="tel:"]{margin-top:9px}
.footer-contact__numbers{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.footer-contact__numbers a{display:block;line-height:1.55}
.form-honeypot{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-msg{min-height:1.3em;margin-top:15px;color:#1c7550}
.form-msg--error{color:#a22336}
@media(max-width:780px){.topbar>.container{padding-block:9px}.topbar-group{gap:17px}}
@media(max-width:560px){.topbar-group{gap:9px}.topbar-phones{gap:7px}.topbar-group .topbar-phones .topbar-phone--secondary{padding-left:20px}.topbar-phones>a{font-size:.77rem}}


/* ==========================================================================
 * S.R. & Co. 20 Oct 2026 - responsive mobile application-style nav drawer.
 * Desktop telephone numbers inline; mobile rows spaced and aligned.
 * NOTE: these scoped rules supersede legacy dropdown hover positioning.
 * ========================================================================= */
.mobile-nav-head,.mobile-nav-footer{display:none}
.nav-backdrop[hidden]{display:none!important}
.nav-backdrop{position:fixed;inset:0;z-index:115;background:rgba(6,15,37,.64);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:1;transition:opacity .24s ease;touch-action:manipulation}
.topbar .topbar-phones{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:19px;min-width:0}
.topbar .topbar-phones>a{display:inline-flex;align-items:center;gap:9px;font-size:.85rem;line-height:1.4;letter-spacing:.005em;white-space:nowrap;font-weight:500}
.topbar .topbar-phones svg,.topbar .topbar-phones a svg{height:16px;width:16px;min-width:16px;color:#c5d5ff}
.topbar-group .topbar-phones .topbar-phone--secondary{padding-left:18px;border-left:1px solid rgba(218,231,255,.28);color:#dfe5ff}
.topbar .topbar-group{gap:27px}
.topbar{min-height:46px}
.topbar>.container{min-height:46px;padding-block:7px}
@media(min-width:781px) and (max-width:1170px){
  .topbar .topbar-location{display:none}
  .topbar .topbar-group{gap:20px}
  .topbar .topbar-phones>a{font-size:.82rem}
}
@media(min-width:1161px){
  .mobile-nav-head,.mobile-nav-footer{display:none!important}
}
@media(max-width:1160px){
  body.mobile-nav-open{overflow:hidden}
  .site-header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
  .site-header .menu-toggle{display:inline-flex!important;margin-left:auto;position:relative;z-index:1}
  .site-header .primary-nav{
    position:fixed!important;inset:0 0 0 auto!important;
    display:flex!important;flex-direction:column!important;align-items:stretch!important;
    width:min(382px,calc(100vw - 24px))!important;
    height:100vh!important;height:100dvh!important;
    max-height:100vh!important;max-height:100dvh!important;
    padding:0!important;margin:0!important;gap:0!important;
    overflow-x:hidden!important;overflow-y:auto!important;
    overscroll-behavior:contain;
    background:#fff;box-shadow:-25px 0 70px rgba(5,18,44,.25);
    border:0;border-radius:19px 0 0 19px;
    transform:translateX(105%)!important;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:transform .33s cubic-bezier(.22,1,.36,1),opacity .25s,visibility .33s;
    z-index:150;
    -webkit-overflow-scrolling:touch;
  }
  .site-header .primary-nav.is-open{
    transform:translateX(0)!important;opacity:1;visibility:visible;pointer-events:auto;
  }
  .primary-nav .mobile-nav-head{
    display:flex;align-items:center;justify-content:space-between;flex:none;
    gap:14px;padding:25px 23px 21px;background:#f6f8fd;
    border-bottom:1px solid #e6ebf5;
  }
  .mobile-nav-head__brand{display:flex;flex-direction:column;gap:3px;min-width:0}
  .mobile-nav-head__eyebrow{font-size:12px;color:#647393;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
  .mobile-nav-head__brand strong{font-family:var(--display);font-size:19px;font-weight:600;line-height:1.35;color:#1c2e53}
  .mobile-nav-close{display:inline-flex;align-items:center;justify-content:center;flex:none;
    width:43px;height:43px;border-radius:12px;border:1px solid #dce4f0;background:white;color:#21345c}
  .primary-nav .nav-item{
    position:relative!important;display:flex!important;flex:0 0 auto!important;flex-direction:row!important;
    flex-wrap:wrap!important;align-items:center!important;
    justify-content:space-between!important;gap:0!important;
    width:calc(100% - 38px)!important;margin:0 19px!important;
    min-height:57px!important;border-bottom:1px solid #eef1f7!important;
  }
  .site-header .primary-nav .nav-item .nav-link{
    display:flex!important;align-items:center!important;flex:1 1 auto!important;min-width:0!important;
    min-height:57px!important;width:auto!important;margin:0!important;
    padding:14px 4px!important;line-height:1.4!important;
    font-size:16px!important;font-weight:500!important;letter-spacing:0!important;
    white-space:normal!important;color:#263959;
  }
  .site-header .primary-nav .nav-item .nav-link.is-active{color:#254aa1!important}
  .site-header .primary-nav .nav-item .nav-link.is-active::after{display:none!important}
  .site-header .primary-nav .dropdown-toggle{
    display:inline-flex!important;align-items:center;justify-content:center;
    flex:0 0 42px!important;width:42px!important;height:42px!important;
    margin:5px 0 5px 9px!important;padding:0!important;border:1px solid #e5ebf4!important;
    border-radius:11px;background:#f7f9fd!important;color:#30456b!important;
  }
  .site-header .primary-nav .nav-item.is-expanded>.dropdown-toggle{background:#e9f0fe!important;color:#2455a6!important}
  .site-header .primary-nav .dropdown-menu{
    position:static!important;inset:auto!important;order:3;flex:0 0 100%!important;
    display:none!important;width:100%!important;min-width:0!important;
    margin:0 0 12px!important;padding:6px!important;
    transform:none!important;visibility:visible!important;opacity:1!important;
    background:#f4f7fd!important;border:1px solid #e8edf7!important;
    border-radius:13px!important;box-shadow:none!important;
    gap:2px!important;z-index:auto!important;
  }
  .site-header .primary-nav .dropdown-menu::before{display:none!important}
  .site-header .primary-nav .nav-item.is-expanded>.dropdown-menu{display:grid!important}
  .site-header .primary-nav .dropdown-menu a{
    display:block!important;width:auto!important;position:static!important;
    margin:0!important;padding:11px 12px!important;
    line-height:1.5!important;font-size:14px!important;font-weight:450!important;
    white-space:normal!important;overflow-wrap:anywhere;color:#324563!important;
    border-radius:8px;
  }
  .site-header .primary-nav .dropdown-menu a:hover,
  .site-header .primary-nav .dropdown-menu a.is-active{background:#e8effb!important;color:#204987!important}
  .site-header .primary-nav .header-cta{display:none!important}
  .primary-nav .mobile-nav-footer{display:flex;flex-direction:column;gap:10px;flex:none;
    margin-top:auto;padding:22px 22px max(26px, env(safe-area-inset-bottom));
    background:#fff}
  .mobile-nav-call,.mobile-nav-quote{display:flex;align-items:center;justify-content:center;gap:9px;
    min-height:49px;padding:12px 16px;border-radius:11px;
    font-size:14px;font-weight:600;line-height:1.35;text-align:center;}
  .mobile-nav-call{background:#213e86;color:#fff}
  .mobile-nav-quote{border:1px solid #ced8e9;background:#f8faff;color:#263d68}
}
@media(max-width:780px){
  .topbar{min-height:82px}
  .topbar>.container{justify-content:center;min-height:82px;padding:10px 14px}
  .topbar .topbar-group{width:100%;justify-content:center;gap:0}
  .topbar .topbar-email,.topbar .topbar-location,.topbar .topbar-right{display:none!important}
  .topbar .topbar-phones{display:flex;flex-direction:column;align-items:stretch;gap:9px;width:max-content;margin:0 auto}
  .topbar .topbar-phones>a{display:flex!important;align-items:center;justify-content:flex-start;gap:13px;
    min-height:25px;padding:0!important;border:0!important;line-height:1.4;
    font-size:16px!important;font-weight:500!important;letter-spacing:.012em}
  .topbar .topbar-phones svg,.topbar .topbar-phones a svg{width:17px;height:17px;min-width:17px}
  .topbar-group .topbar-phones .topbar-phone--secondary{padding-left:0!important;border:0!important}
  .site-header .header-inner{min-height:77px}
}
@media(max-width:380px){
  .topbar .topbar-phones>a{font-size:15px!important}
  .primary-nav .mobile-nav-head{padding:20px 18px}
}
@media(prefers-reduced-motion:reduce){
  .site-header .primary-nav{transition:none!important}
  .nav-backdrop{transition:none}
}


/* ========================================================================== 
   S.R. & Co. - Mobile phone header: two numbers on ONE centered row.
   20 October 2026. Preserve the desktop header and all other site sections.
   ========================================================================== */
@media (max-width:780px) {
  .topbar { min-height:50px; }
  .topbar > .container { min-height:50px; padding:7px 10px; }
  .topbar .topbar-group { width:100%; min-width:0; justify-content:center; }
  .topbar .topbar-phones {
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:center;
    width:100%;
    min-width:0;
    max-width:100%;
    margin:0 auto;
    gap:clamp(12px, 3.5vw, 24px);
  }
  .topbar .topbar-phones > a {
    display:inline-flex!important;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    gap:clamp(4px, 1.3vw, 8px);
    min-height:32px;
    padding:0!important;
    margin:0;
    border:0!important;
    white-space:nowrap;
    font-size:clamp(14px, 4.2vw, 17px)!important;
    line-height:1.35;
    letter-spacing:0;
    font-weight:500!important;
    font-variant-numeric:tabular-nums;
  }
  .topbar .topbar-phones svg,
  .topbar .topbar-phones a svg {
    width:clamp(13px, 3.8vw, 16px);
    min-width:clamp(13px, 3.8vw, 16px);
    height:clamp(13px, 3.8vw, 16px);
    flex-shrink:0;
  }
  .topbar-group .topbar-phones .topbar-phone--secondary {
    padding-left:0!important;
    border-left:0!important;
  }
}
@media (max-width:350px) {
  .topbar > .container { padding-inline:7px; }
  .topbar .topbar-phones { gap:12px; }
  .topbar .topbar-phones > a {
    font-size:14px!important;
    gap:4px;
  }
  .topbar .topbar-phones svg,
  .topbar .topbar-phones a svg { width:13px; min-width:13px; height:13px; }
}

/* PageSpeed accessibility: darken low-contrast supporting copy without changing design. */
.eyebrow:not(.eyebrow--light){color:#3658aa}
.service-card__top small,.project-card__loc{color:#56647c}
.note-under-grid,.muted-note{color:#5d6980}
.service-card__media picture{display:block;width:100%;height:100%}

/* 20 Oct 2026: Keep the homepage trust-card icons perfectly centred.
   The broad `.trust-point span` declarations set display:block on the icon
   wrapper; explicitly restore the grid for the icon and not the text label. */
.trust-grid--floating .trust-point > .icon-bubble {
  display:grid;
  place-items:center;
  align-items:center;
  justify-items:center;
  color:#4864a0;
  line-height:1;
}
.trust-grid--floating .trust-point > .icon-bubble > svg {
  display:block;
  flex:none;
  margin:0;
  stroke:currentColor;
}
