@font-face{font-family:"Big Shoulders Display";font-weight:900;font-style:normal;font-display:swap;src:url(/assets/fonts/BigShouldersDisplay-900.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-weight:400 700;font-style:normal;font-display:swap;src:url(/assets/fonts/InstrumentSans-var.woff2) format("woff2")}

:root{
 --page:#F4F0E6;--ink:#123B36;--text-body:#173A35;--text-secondary:#2A504A;--text-caption:#3F6660;--link:#1D6B65;
 --citron:#C8D64A;--on-citron:#123B36;--dark:#123B36;
 --on-dark:#F4F0E6;--on-dark-body:#D9FAF4;--on-dark-secondary:#BDE0DA;--on-dark-caption:#A1C7C1;
 --rule:1.5px solid var(--ink);--rule-dark:1.5px solid var(--on-dark-caption);
 --font-display:"Big Shoulders Display","Arial Narrow",sans-serif;--font-body:"Instrument Sans",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--text-body);font-family:var(--font-body);font-size:18px;line-height:1.55;overflow-x:hidden}
a{color:var(--link)}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
.disp{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.012em;color:var(--ink);overflow-wrap:break-word}
.pad{padding-inline:clamp(16px,3vw,44px)}
.hl{background:var(--citron);color:var(--on-citron);padding:0 .06em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.photo{width:100%;object-fit:cover;border-radius:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;opacity:0;pointer-events:none}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--on-dark);padding:12px 18px;z-index:10;font-weight:600}
.skip:focus{left:0}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.dark a:focus-visible,.dark button:focus-visible,.dark summary:focus-visible,footer a:focus-visible,.cta a:focus-visible{outline-color:var(--on-dark)}
.cta a:focus-visible{outline-color:var(--ink)}

/* buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;background:var(--ink);color:var(--on-dark);font-family:var(--font-body);font-weight:600;font-size:18px;line-height:1.2;padding:14px 30px;text-decoration:none;border:1.5px solid var(--ink);border-radius:0;cursor:pointer}
.btn:hover{background:var(--text-secondary);border-color:var(--text-secondary)}
.btn.secondary{background:transparent;color:var(--ink)}
.btn.secondary:hover{background:var(--citron);border-color:var(--ink)}
.btn[disabled]{opacity:.7;cursor:progress}
.sec.dark a.btn,.dark .btn{background:var(--citron);color:var(--on-citron);border-color:var(--citron)}
.sec.dark a.btn:hover,.dark .btn:hover{background:var(--on-dark);border-color:var(--on-dark);color:var(--on-citron)}
.tlink{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--link);text-underline-offset:4px}

/* header */
.top{border-bottom:var(--rule)}
.top-in{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;padding-block:14px}
.logo{display:block;line-height:0;order:1;min-height:44px}
.logo img{height:clamp(44px,5vw,64px);width:auto}
.tel{display:inline-flex;align-items:center;min-height:48px;order:3;flex-basis:100%;font-size:clamp(2.1rem,9vw,2.6rem);line-height:1.1;text-decoration:none;white-space:nowrap}
.tel:hover{background:var(--citron)}
.nav-toggle{order:2;margin-left:auto;min-height:48px;min-width:48px;padding:0 18px;background:transparent;border:1.5px solid var(--ink);color:var(--ink);font:600 17px var(--font-body);cursor:pointer;border-radius:0}
.nav-toggle[aria-expanded=true]{background:var(--ink);color:var(--on-dark)}
.links{order:4;flex-basis:100%;display:none;flex-direction:column;border-top:var(--rule);margin-top:6px}
.links.is-open{display:flex}
.links a{display:flex;align-items:center;min-height:48px;color:var(--ink);text-decoration:none;font-weight:600;font-size:18px;border-bottom:1.5px solid var(--ink)}
.links a[aria-current=page]{background:var(--citron);padding-inline:10px}
.links a:hover{text-decoration:underline;text-underline-offset:5px}
@media(min-width:960px){
 .top-in{gap:0 28px}
 .tel{order:2;flex-basis:auto;margin-left:auto;font-size:clamp(2.4rem,3.6vw,3.6rem)}
 .nav-toggle{display:none}
 .links{order:3;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:0 26px;border-top:0;margin-top:0;flex-basis:100%}
 .links a{min-height:44px;font-size:17px;border-bottom:3px solid transparent}
 .links a[aria-current=page]{background:transparent;padding-inline:0;border-bottom-color:var(--ink)}
 .links a:hover{border-bottom-color:var(--ink);text-decoration:none}
 .links .lang-link{margin-left:auto;font-weight:400;color:var(--link)}
}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;font-size:15px;color:var(--text-caption);padding-block:4px}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;color:var(--link)}

/* hero */
.hero{padding-top:clamp(18px,3vw,40px)}
.home-h1{font-size:14.6vw;line-height:1;letter-spacing:.02em}
.home-h1 .ln{display:block;white-space:nowrap}
.home-h1 .ln+.ln{margin-top:.03em}
.home-h1 .hl{display:inline-block;padding:0 .05em;margin-left:-.05em}
.hero-band{margin-top:clamp(20px,3vw,40px)}
.hero-photo{aspect-ratio:4/3;object-position:20% 50%}
@media(min-width:700px){.hero-photo{aspect-ratio:21/9;object-position:50% 50%}}
.hero-sub{display:grid;gap:18px 40px;grid-template-columns:1fr;padding-block:clamp(22px,3vw,40px) clamp(32px,4vw,56px);align-items:start}
.heri{font-weight:600;color:var(--ink);font-size:clamp(20px,1.8vw,26px);line-height:1.3;max-width:34ch}
.hero-text p{max-width:52ch}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;margin-top:22px}
@media(min-width:900px){.hero-sub{grid-template-columns:5fr 7fr}}

.page-hero{padding-top:clamp(12px,2vw,28px)}
.page-h1{font-size:clamp(3rem,9.6vw,10rem);line-height:1.08;letter-spacing:.02em}
.page-h1 .ln{display:block}
.page-h1 .hl{padding:0 .06em;margin-left:-.06em}
.page-lead{padding-block:clamp(18px,2.4vw,32px) clamp(22px,3vw,40px)}
.lead{font-weight:600;color:var(--ink);font-size:clamp(20px,1.8vw,26px);line-height:1.35;max-width:46ch}
.page-photo{aspect-ratio:16/9;object-position:50% 50%}
@media(min-width:700px){.page-photo{aspect-ratio:21/9}}
.page-hero .hero-band{margin-top:0}
@media(min-width:700px){.page-quote .page-photo,.page-contact .page-photo{aspect-ratio:32/9}}
.page-photo.small{aspect-ratio:4/3;object-position:30% 50%}
@media(min-width:900px){.page-photo.small{aspect-ratio:4/5;object-position:27% 50%}}
.page-lead.small{display:grid;gap:24px 48px;grid-template-columns:1fr;align-items:end}
@media(min-width:900px){.page-lead.small{grid-template-columns:7fr 5fr}}
.small-photo{max-width:520px}
.co-photo{aspect-ratio:4/3;object-position:30% 50%}
@media(min-width:900px){.small-photo{max-width:400px;margin-left:auto}.co-photo{aspect-ratio:4/5;object-position:27% 50%}}

/* marquee (home only) */
.marq{background:var(--citron);color:var(--on-citron);border-block:var(--rule);overflow:hidden;white-space:nowrap}
.marq-track{display:inline-flex;animation:run 40s linear infinite}
.marq-track span{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.2;padding:10px 26px;letter-spacing:.01em}
.marq-track span+span{border-left:1.5px solid var(--ink)}
@keyframes run{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marq-track{animation:none}.marq{overflow-x:auto}}

/* sections */
.sec{padding-block:clamp(40px,6vw,88px)}
.sec.light+.sec.light{border-top:var(--rule)}
.sec.ends-rule{padding-bottom:0}
.sec.ends-rule+.sec.light{border-top:0}
.sec.dark{background:var(--dark);color:var(--on-dark-body)}
.sec.dark .disp,.sec.dark h2,.sec.dark h3{color:var(--on-dark)}
.sec.dark a{color:var(--on-dark)}
.h2{font-size:clamp(2.6rem,6vw,5.4rem);line-height:1.1;letter-spacing:.012em}
.h2.md{font-size:clamp(2.3rem,4.6vw,4.2rem)}
.h2.sm{font-size:clamp(1.9rem,3vw,2.8rem)}
.sec-head{padding-bottom:clamp(20px,3vw,40px)}
.svc-band{margin:calc(clamp(40px,6vw,88px)*-1) 0 clamp(40px,6vw,88px)}
.svc-photo{aspect-ratio:3/2;object-position:50% 45%}
@media(min-width:700px){.svc-photo{aspect-ratio:21/9;object-position:50% 40%}}

/* index rows */
.idx{border-top:var(--rule)}
.row{display:grid;grid-template-columns:1fr;gap:6px 40px;align-items:center;padding:clamp(14px,2vw,26px) clamp(16px,3vw,44px);border-bottom:var(--rule);color:var(--ink);text-decoration:none}
.row .nm{font-size:clamp(2.1rem,4.8vw,4.6rem);line-height:1.1;letter-spacing:.012em}
.row .sp{font-size:clamp(16px,1.3vw,19px);color:var(--text-body)}
a.row:hover{background:var(--citron)}
a.row:hover .sp{color:var(--ink)}
.dark .idx,.dark .row{border-color:var(--on-dark-caption)}
@media(min-width:900px){.row{grid-template-columns:8fr 4fr}.row:has(.nm:only-child){grid-template-columns:1fr}}

/* split */
.split-grid{display:grid;grid-template-columns:1fr;gap:32px 56px;align-items:start}
@media(min-width:900px){.split-grid{grid-template-columns:7fr 5fr}.split.flip .split-grid{grid-template-columns:5fr 7fr}.split.flip .media{order:-1}.text-split .split-grid{grid-template-columns:6fr 6fr}}
.split-copy>p{margin-top:clamp(18px,2vw,28px);max-width:56ch}
.split-copy .rules{max-width:56ch}
.rules{margin-top:clamp(20px,2.4vw,32px);border-top:var(--rule)}
.text-split .rules{margin-top:0;align-self:end}
.rules li{padding:14px 0;border-bottom:var(--rule);font-weight:600;color:var(--ink)}
.dark .rules,.dark .rules li{border-color:var(--on-dark-caption);color:var(--on-dark)}
.split-link{margin-top:28px}
.split-photo{aspect-ratio:3/2;object-position:50% 50%}
.media .small-photo{max-width:420px;margin-left:0}
@media(min-width:900px){.split:not(.flip) .media .small-photo{margin-left:auto}}
.city-panel{background:var(--citron);color:var(--on-citron);padding:clamp(20px,3vw,40px)}
.city-panel .cities{display:block}
.city-panel .cities li{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.3rem,4.4vw,4.4rem);line-height:1.1;letter-spacing:.012em;color:var(--on-citron)}
.city-panel p{margin-top:16px;padding-top:14px;border-top:var(--rule);font-weight:600;color:var(--ink)}
.dark .city-panel .cities li,.dark .city-panel p{color:var(--on-citron)}
.year-panel{background:var(--citron);color:var(--on-citron);font-family:var(--font-display);font-weight:900;font-size:clamp(7rem,18vw,14rem);line-height:1;padding:clamp(16px,2vw,28px) clamp(20px,3vw,40px);letter-spacing:.01em}

/* territory band (home) */
.terr-grid{display:grid;grid-template-columns:1fr;gap:32px 56px}
@media(min-width:900px){.terr-grid{grid-template-columns:7fr 5fr;align-items:end}}
.terr .t-title{line-height:1.12;font-size:clamp(1.9rem,3.4vw,3rem);margin-bottom:clamp(18px,2vw,28px)}
.cities.big li{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(2.7rem,7vw,6.5rem);line-height:1.08;letter-spacing:.012em;color:var(--on-dark)}
.cities.big li.c{color:var(--citron)}
.terr .lede{color:var(--on-dark-body);max-width:48ch}
.terr .rules{margin-top:28px}

/* company home */
.about-grid{display:grid;grid-template-columns:1fr;gap:28px 48px;align-items:end;padding-bottom:clamp(24px,3vw,44px)}
@media(min-width:900px){.about-grid{grid-template-columns:7fr 5fr}}
.year{font-size:clamp(9rem,33vw,26rem);line-height:.86;letter-spacing:.004em;margin-bottom:clamp(14px,2vw,28px)}
@media(min-width:900px){.year{font-size:23vw}}

/* timeline */
.tl-list{border-top:var(--rule)}
.tl-row{display:grid;grid-template-columns:1fr;gap:6px 40px;padding:clamp(16px,2vw,28px) 0;border-bottom:var(--rule);align-items:start}
.tl-year{font-size:clamp(1.9rem,3.2vw,3rem);line-height:1.12}
.tl-year.num{font-size:clamp(3.2rem,7vw,6.5rem);line-height:1}
.tl-row h3{font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1.14;margin-bottom:8px}
.tl-row p:not(.tl-year){max-width:60ch}
@media(min-width:900px){.tl-row{grid-template-columns:4fr 8fr}}

/* steps */
.step-list{margin-top:clamp(24px,3vw,44px);border-top:var(--rule-dark)}
.step{display:grid;grid-template-columns:1fr;gap:8px 40px;padding:clamp(18px,2.4vw,32px) 0;border-bottom:var(--rule-dark);align-items:start}
.step h3{font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.12}
.step p{max-width:52ch;color:var(--on-dark-body)}
@media(min-width:900px){.step{grid-template-columns:5fr 7fr}}

/* table */
.tbl{width:100%;border-collapse:collapse;border:var(--rule)}
.tbl th{background:var(--ink);color:var(--on-dark);text-align:left;font-weight:600;padding:14px 18px;font-size:17px}
.tbl td{padding:16px 18px;border-top:var(--rule);vertical-align:top}
.tbl td:first-child{font-weight:600;color:var(--ink)}
@media(max-width:759px){
 .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
 .tbl thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .tbl tr{border-top:var(--rule)}.tbl tr:first-child{border-top:0}
 .tbl td{border-top:0;padding:8px 16px}
 .tbl td:first-child{padding-top:16px;font-size:19px}
 .tbl td:last-child{padding-bottom:16px}
 .tbl td::before{content:attr(data-label);display:block;font-weight:600;font-size:15px;color:var(--text-caption)}
 .tbl td:first-child::before{display:none}
}

/* faq */
.faq-grid{display:grid;grid-template-columns:1fr;gap:28px 56px;align-items:start}
@media(min-width:900px){.faq-grid{grid-template-columns:5fr 7fr}}
.faq-list{border-top:var(--rule)}
details{border-bottom:var(--rule)}
summary{position:relative;display:block;min-height:56px;padding:16px 56px 16px 0;font-weight:600;font-size:19px;line-height:1.35;color:var(--ink);cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
summary::before,summary::after{content:"";position:absolute;right:8px;top:50%;width:20px;height:3px;background:var(--ink);margin-top:-1.5px}
summary::after{transform:rotate(90deg)}
details[open] summary::after{transform:none}
details p{padding:0 56px 20px 0;max-width:60ch}

/* rich (privacy) */
.rich-grid{display:grid;grid-template-columns:1fr;gap:10px 56px;padding-block:clamp(8px,1vw,16px)}
@media(min-width:900px){.rich-grid{grid-template-columns:4fr 8fr}}
.rich+.rich{border-top:var(--rule)}
.rich p{max-width:62ch}
.page-privacy .sec.rich{padding-block:clamp(22px,3vw,36px)}

/* forms */
.form-head{margin-bottom:clamp(20px,3vw,36px)}
.form-box{border:var(--rule);padding:clamp(18px,3vw,40px);max-width:1040px}
.form-grid{display:grid;grid-template-columns:1fr;gap:20px 28px}
@media(min-width:760px){.form-grid{grid-template-columns:1fr 1fr}.full-field{grid-column:1/-1}}
label{display:block;font-weight:600;font-size:17px;color:var(--ink)}
input:not([type=checkbox]),select,textarea{display:block;width:100%;margin-top:8px;min-height:52px;padding:12px 14px;background:var(--page);color:var(--text-body);font:400 18px/1.4 var(--font-body);border:1.5px solid var(--ink);border-radius:0;-webkit-appearance:none;appearance:none}
select{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M1.5 1.5 8 8l6.5-6.5' fill='none' stroke='%23123B36' stroke-width='2.4'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat}
textarea{resize:vertical;min-height:130px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--ink);outline-offset:2px;background:#fff}
[aria-invalid=true]{border-width:4px!important;padding:10px 12px!important}
.field-msg{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:var(--citron);color:var(--ink);border:1.5px solid var(--ink);font-weight:600;font-size:16px}
.field-msg svg{flex:none;width:20px;height:20px}
.consent{display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;margin-top:22px;font-weight:400;color:var(--text-body)}
.consent input{flex:none;width:28px;height:28px;margin:2px 0 0;accent-color:var(--ink)}
.consent span{flex:1;min-width:0}
.consent .field-msg{flex-basis:100%;margin-top:0}
.form-grid .consent{margin-top:0}
.detail-form .btn{margin-top:24px}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0;margin-bottom:22px;width:100%}
.legend-step{display:block;font-size:16px;font-weight:600;color:var(--text-caption)}
.legend-title{display:block;font-size:clamp(2rem,3.4vw,3rem);line-height:1.14}
.step-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.quote-progress{display:flex;flex-wrap:wrap;gap:0;margin-bottom:30px;border:var(--rule)}
.quote-progress li{flex:1 1 50%;display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 12px;font-weight:600;font-size:16px;color:var(--text-caption);border-bottom:1.5px solid var(--ink)}
.quote-progress li:nth-child(odd){border-right:1.5px solid var(--ink)}
.quote-progress li:nth-last-child(-n+2){border-bottom:0}
@media(min-width:760px){.quote-progress li{flex:1 1 0;border-bottom:0!important;border-right:1.5px solid var(--ink)!important}.quote-progress li:last-child{border-right:0!important}}
.pn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1.5px solid var(--text-caption);font-weight:600}
.quote-progress li.active{background:var(--ink);color:var(--on-dark)}
.quote-progress li.active .pn{border-color:var(--on-dark);background:var(--on-dark);color:var(--ink)}
.quote-progress li.complete{background:var(--citron);color:var(--ink)}
.quote-progress li.complete .pn{border-color:var(--ink);background:var(--ink);color:var(--citron)}
.quote-review{display:grid;gap:20px}
.review-group{position:relative;border:var(--rule);padding:18px 20px}
.review-group h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:1.9rem;line-height:1.1;color:var(--ink);margin-bottom:12px;padding-right:110px}
.review-group button{position:absolute;right:14px;top:12px;min-height:44px;min-width:44px;padding:0 16px;background:transparent;border:1.5px solid var(--ink);color:var(--ink);font:600 16px var(--font-body);cursor:pointer;border-radius:0}
.review-group button:hover{background:var(--citron)}
.review-group dl{display:grid;grid-template-columns:1fr;gap:8px 20px}
@media(min-width:760px){.review-group dl{grid-template-columns:200px 1fr}}
.review-group dt{font-weight:600;color:var(--text-caption);font-size:16px}
.review-group dd{overflow-wrap:anywhere}
.form-status{margin-top:20px}
.form-status:empty{display:none}
.form-status.is-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--citron);color:var(--ink);border:1.5px solid var(--ink);border-left-width:8px;font-weight:600}
.form-status.is-success{padding:14px 18px;background:var(--ink);color:var(--on-dark);font-weight:600;border:1.5px solid var(--ink)}
.form-status svg{flex:none;width:22px;height:22px}
.form-success{margin-top:20px}
.success-reference{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.1;color:var(--ink);padding:12px 16px;background:var(--citron);border:1.5px solid var(--ink);overflow-wrap:anywhere}
.form-success .btn{margin-top:20px}
.form-note{margin-top:18px;font-size:16px;color:var(--text-caption);max-width:62ch}

/* cta / contact block */
.cta{background:var(--citron);color:var(--on-citron);border-block:var(--rule);padding-block:clamp(36px,5vw,72px)}
.cta .cta-h{font-size:clamp(2rem,4vw,3.6rem);line-height:1.12;margin-bottom:10px;max-width:32ch}
.cta .cta-tel{display:block;font-size:clamp(4rem,16vw,15rem);line-height:.95;letter-spacing:.006em;text-decoration:none;white-space:nowrap;color:var(--on-citron)}
.cta .cta-act{margin-top:clamp(20px,3vw,40px)}
.cta .btn:hover{background:var(--text-secondary);border-color:var(--text-secondary)}
.ct-grid{display:grid;grid-template-columns:1fr;gap:28px 48px;margin-top:clamp(32px,4vw,56px);padding-top:clamp(24px,3vw,40px);border-top:var(--rule)}
@media(min-width:900px){.ct-grid{grid-template-columns:5fr 7fr;align-items:start}}
.ct-photo{aspect-ratio:3/2}
.cta dl{display:grid;gap:22px 40px;grid-template-columns:1fr}
@media(min-width:600px){.cta dl{grid-template-columns:1fr 1fr}.cta dl .wide{grid-column:1/-1}}
.cta dt{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1.6rem,2.2vw,2.1rem);line-height:1.1;color:var(--ink)}
.cta dd{margin-top:4px;color:var(--ink)}
.cta dd a{color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}

/* footer */
.site-footer{background:var(--dark);color:var(--on-dark-secondary)}
.f-in{padding-block:30px;display:grid;grid-template-columns:1fr;gap:20px 40px;align-items:center}
@media(min-width:900px){.f-in{grid-template-columns:auto 1fr auto auto}}
.f-brand{display:flex;align-items:center;gap:16px}
.f-plate{background:var(--page);padding:6px;line-height:0}
.f-plate img{width:48px;height:48px}
.f-name{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.1;letter-spacing:.01em;color:var(--on-dark)}
.site-footer address{font-style:normal;font-size:16px;color:var(--on-dark-secondary)}
.site-footer a{color:var(--on-dark);display:inline-flex;align-items:center;min-height:44px}
.f-nav{display:flex;flex-wrap:wrap;gap:0 24px}
.demo-tag{font-size:16px;color:var(--on-dark-secondary);display:flex;flex-wrap:wrap;gap:0 24px}
a.mail{overflow-wrap:anywhere}
.site-footer address a{display:flex;width:fit-content}
.form-mail{margin-top:20px;font-size:16px;max-width:62ch;color:var(--text-body)}
.form-mail a{font-weight:600}


@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
[hidden]{display:none!important}

/* photos: honest caption under every generated image */
.ph{margin:0}
.ill{margin-top:6px;font-size:13px;line-height:1.3;color:var(--text-caption);text-align:right}
.ph.band .ill{padding-inline:clamp(16px,3vw,44px)}
.dark .ill{color:var(--on-dark-caption)}
.cta .ill{color:var(--ink)}

/* route line: the river run, used on home, coverage, transport and quote */
.node{display:block;width:14px;height:14px;background:var(--page);border:2px solid var(--ink);transform:rotate(45deg);flex:none}
.route-line{position:relative;display:grid;grid-template-columns:repeat(5,1fr);margin:0 0 clamp(24px,3vw,40px);padding-top:6px}
.route-line::before{content:"";position:absolute;left:10%;right:10%;top:12px;height:3px;background:var(--ink)}
.route-line li{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.route-line .rl-name{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1rem,2.2vw,1.9rem);line-height:1.1;letter-spacing:.02em;color:var(--ink);max-width:12ch}
.route-line .home .node{background:var(--citron)}
@media(max-width:699px){
 .route-line{grid-template-columns:1fr;gap:18px;padding:0 0 0 4px}
 .route-line::before{left:10px;right:auto;top:8px;bottom:8px;width:3px;height:auto}
 .route-line li{flex-direction:row;text-align:left;gap:16px}
 .route-line .rl-name{max-width:none}
}

/* home: the route strip */
.cor-head{display:grid;gap:14px 56px;grid-template-columns:1fr;align-items:end;padding-bottom:clamp(24px,3vw,40px)}
@media(min-width:900px){.cor-head{grid-template-columns:7fr 5fr}}
.cor-intro{color:var(--on-dark-body);max-width:46ch}
.cor-rail{position:relative;display:grid;grid-template-columns:repeat(5,1fr);margin-bottom:clamp(20px,3vw,36px)}
.cor-rail::before{content:"";position:absolute;left:10%;right:10%;top:27px;height:3px;background:var(--on-dark-caption)}
.cor-rail::after{content:"";position:absolute;left:10%;top:26px;height:5px;width:var(--run,0%);background:var(--citron);transition:width .2s ease}
.cs-link{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:44px;padding:20px 4px 8px;text-decoration:none;color:var(--on-dark)}
.cs-link .node{background:var(--dark);border-color:var(--on-dark)}
.cs.home .node{background:var(--citron);border-color:var(--citron)}
.cs-name{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(1rem,2vw,1.8rem);line-height:1.1;letter-spacing:.02em;text-align:center;color:var(--on-dark)}
.cs-name .short{display:none}
.cs-link:hover .cs-name,.cs-link[aria-selected=true] .cs-name{color:var(--citron)}
.cs-link[aria-selected=true] .node{background:var(--citron);border-color:var(--citron);outline:3px solid var(--on-dark);outline-offset:4px}
.cs-link:focus-visible{outline:3px solid var(--on-dark);outline-offset:2px}
@media(max-width:699px){.cs-name .full{display:none}.cs-name .short{display:inline}.cs-name{font-size:15px}}
.cp+.cp{margin-top:clamp(32px,4vw,56px)}
.js .cp+.cp{margin-top:0}
.js [data-corridor] .cp{display:none}
.js [data-corridor] .cp.is-active{display:block;animation:cpfade .2s ease}
@keyframes cpfade{from{opacity:0}to{opacity:1}}
.cp-grid{display:grid;grid-template-columns:1fr;gap:20px 48px;align-items:end}
@media(min-width:900px){.cp-grid{grid-template-columns:8fr 4fr}}
.cp-photo{aspect-ratio:3/2}
.cp-name{font-size:clamp(2.2rem,4.4vw,4.2rem);line-height:1.08;color:var(--on-dark);margin-bottom:14px}
.cp-l1{font-weight:600;color:var(--on-dark);font-size:clamp(18px,1.5vw,21px);padding:12px 0;border-top:var(--rule-dark)}
.cp-l2{color:var(--on-dark-body);padding:12px 0;border-top:var(--rule-dark);border-bottom:var(--rule-dark)}
.cp-nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.dark .cp-nav .btn.secondary{background:transparent;color:var(--on-dark);border-color:var(--on-dark)}
.dark .cp-nav .btn.secondary:hover{background:var(--citron);color:var(--on-citron);border-color:var(--citron)}
.cor-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 32px;margin-top:clamp(28px,3vw,44px);padding-top:22px;border-top:var(--rule-dark)}
.cor-foot p{color:var(--on-dark-body);max-width:52ch}

/* transport: steps on the same line */
.route-steps .step-list{position:relative;border-top:0}
@media(min-width:900px){
 .route-steps .step-list{display:grid;grid-template-columns:repeat(4,1fr);gap:0 32px;padding-top:30px}
 .route-steps .step-list::before{content:"";position:absolute;left:0;right:0;top:36px;height:3px;background:var(--on-dark-caption)}
 .route-steps .step{display:block;border:0;padding:0}
 .route-steps .step h3{font-size:clamp(1.7rem,2.2vw,2.3rem);margin:26px 0 10px}
}
@media(max-width:899px){.route-steps .step{grid-template-columns:auto 1fr}.route-steps .step .node{margin-top:12px}.route-steps .step p{grid-column:2}}
.route-steps .node{background:var(--dark);border-color:var(--citron);position:relative}
.route-steps .step:first-child .node{background:var(--citron)}

/* quote: form plus lane summary */
.form-layout.with-aside{display:grid;grid-template-columns:1fr;gap:32px 48px;align-items:start}
@media(min-width:1100px){.form-layout.with-aside{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}.q-aside{position:sticky;top:24px}}
.q-aside{border:var(--rule);padding:clamp(18px,2.4vw,32px);background:var(--page)}
.q-aside h3{font-size:clamp(1.8rem,2.4vw,2.4rem);line-height:1.1;margin-bottom:18px}
.route-line.mini{grid-template-columns:1fr;gap:18px;padding:0 0 0 4px;margin-bottom:20px}
.route-line.mini::before{left:10px;right:auto;top:8px;bottom:8px;width:3px;height:auto}
.route-line.mini li{flex-direction:row;text-align:left;gap:16px;align-items:flex-start}
.route-line.mini .rl-name{max-width:none;font-family:var(--font-body);text-transform:none;font-weight:600;font-size:18px;letter-spacing:0;overflow-wrap:anywhere}
.rl-k{display:block;font-weight:400;font-size:15px;color:var(--text-caption)}
.q-sum{display:grid;gap:12px;padding:14px 0;border-block:var(--rule)}
.q-sum dt{font-size:15px;color:var(--text-caption)}
.q-sum dd{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.q-prep{margin-top:24px}
.q-list li{padding:12px 0;border-bottom:var(--rule);font-size:16px}
.q-list li:first-child{border-top:var(--rule)}
.pi-t{display:block;font-weight:600;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.cor-rail::after{transition:none}.js [data-corridor] .cp.is-active{animation:none}}
.page-contact .page-photo{object-position:50% 36%}

/* ---------- desktop UI, 1024px and wider. Everything above is the phone/tablet layout and stays as is. ---------- */
.top-cta,.subnav,.hero-facts,.svc-prev,.side-card,.side-roles,.f-col{display:none}
@media(min-width:1024px){
 :root{--gut:max(40px,min(64px,4vw),calc((100vw - 1360px) / 2));--head:68px;--col:calc(100vw - 2 * var(--gut));--hero-h:max(50vh,min(calc(100vh - 210px),72vh))}
 html{scroll-padding-top:calc(var(--head) + 72px)}
 body{font-size:18px;line-height:1.6}
 .pad{padding-inline:var(--gut)}
 .skip{z-index:40}
 .idx>.row{padding-inline:var(--gut)}

 /* header: sticky bar, nav, language, phone, quote button */
 .top{position:sticky;top:0;z-index:30;background:var(--page);border-bottom:1px solid var(--ink)}
 .top-in{flex-wrap:nowrap;gap:0 22px;height:var(--head);padding-block:0}
 .logo{flex:none;min-height:0}
 .logo img{height:40px}
 .links{order:2;flex:1 1 auto;flex-basis:auto;flex-wrap:nowrap;justify-content:flex-end;gap:0 20px}
 .links a{min-height:var(--head);font-size:16px;white-space:nowrap;border-bottom:3px solid transparent;border-top:3px solid transparent}
 .links a:first-child,.links a:nth-child(5){display:none}
 .links .lang-link{margin-left:6px;padding-left:20px;border-left:1px solid var(--ink);min-height:28px;border-bottom:0;border-top:0}
 .links .lang-link:hover{text-decoration:underline;text-underline-offset:5px}
 .tel{order:3;flex:none;flex-basis:auto;margin-left:0;min-height:44px;font-size:1.7rem;padding-inline:4px}
 .top-cta{display:inline-flex;order:4;flex:none;min-height:44px;padding:9px 20px;font-size:16px}
 .top-cta[aria-current=page]{background:var(--citron);color:var(--on-citron);border-color:var(--ink)}
 .crumbs{padding-block:6px}
}
@media(min-width:1024px) and (max-width:1279px){
 .top-in{gap:0 14px}
 .logo img{height:34px}
 .links{gap:0 13px}
 .links a{font-size:15px}
 .links .lang-link{margin-left:2px;padding-left:13px}
 .tel{font-size:1.32rem;padding-inline:0}
 .top-cta{padding:9px 14px;font-size:15px}
 .hero{grid-template-columns:var(--gut) minmax(0,6fr) minmax(0,6fr)}
}
@media(min-width:1024px){

 /* in-page section nav (transport, territoire, entreprise, carrieres) */
 .subnav{display:block;position:sticky;top:calc(var(--head) + 1px);z-index:25;background:var(--page);border-bottom:1px solid var(--ink)}
 .subnav-in{display:flex;gap:0 8px;padding-inline:calc(var(--gut) - 12px);overflow-x:auto}
 .subnav a{display:flex;align-items:center;min-height:46px;padding-inline:12px;font-weight:600;font-size:16px;color:var(--text-secondary);text-decoration:none;white-space:nowrap;border-bottom:3px solid transparent}
 .subnav a:hover{color:var(--ink);border-bottom-color:var(--ink)}
 .subnav a[aria-current=true]{background:var(--citron);color:var(--on-citron)}

 /* home hero: text 5 columns, photo 7 columns to the right edge, one viewport */
 .hero{display:grid;grid-template-columns:var(--gut) minmax(0,5fr) minmax(0,7fr);grid-template-rows:minmax(24px,1fr) auto auto auto auto minmax(24px,1fr);height:calc(100vh - var(--head) - 1px);min-height:600px;max-height:1000px;padding-top:0}
 .hero>.pad:first-child,.hero-sub{display:contents}
 .home-h1{grid-column:2;grid-row:2;padding-right:40px;font-size:calc(var(--col) * 5 / 12 / 6.6)}
 .home-h1 .ln+.ln{margin-top:.16em}
 .home-h1 .hl{padding:.02em .06em 0}
 .heri{grid-column:2;grid-row:3;margin-top:22px;padding-right:40px;font-size:20px;line-height:1.35;max-width:36ch}
 .hero-text{grid-column:2;grid-row:4;margin-top:14px;padding-right:40px}
 .hero-text p{max-width:46ch}
 .hero-actions{margin-top:20px}
 .hero-facts{display:block;grid-column:2;grid-row:5;margin:28px 40px 0 0;border-top:var(--rule)}
 .hero-facts div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:9px 0;border-bottom:var(--rule)}
 .hero-facts dt{font-size:15px;color:var(--text-caption);align-self:center}
 .hero-facts dd{font-weight:600;color:var(--ink);font-size:17px}
 .hero .hero-band{grid-column:3;grid-row:1/-1;margin-top:0;min-height:0}
 .hero .ph.band{display:flex;flex-direction:column;height:100%}
 .hero-photo{flex:1;min-height:0;height:100%;aspect-ratio:auto;object-position:16% 50%}
 .hero .ph.band .ill{padding:6px var(--gut) 8px 0}

 /* inner heroes: breadcrumb above, headline and lead left, photo right */
 .page-hero{display:grid;grid-template-columns:var(--gut) minmax(0,45fr) minmax(0,55fr);grid-template-rows:1fr auto auto 1fr;padding:4px 0 clamp(24px,3vh,40px)}
 .page-hero>.pad:first-child{grid-column:2;grid-row:2;padding:0 48px 0 0}
 .page-h1{font-size:clamp(3.2rem,4.5vw,5.4rem);line-height:1.08}
 .page-lead{grid-column:2;grid-row:3;padding:26px 48px 0 0}
 .page-lead.small{display:contents}
 .page-lead.small .lead{grid-column:2;grid-row:3;padding:26px 48px 0 0}
 .lead{font-size:clamp(20px,1.5vw,23px);max-width:40ch}
 .page-hero .hero-band,.page-lead.small .small-photo{grid-column:3;grid-row:1/-1;margin:0;max-width:none}
 .page-hero .page-photo{height:var(--hero-h);aspect-ratio:auto}
 .page-hero .ph.band .ill,.page-hero .small-photo .ill{padding:6px var(--gut) 0 0}
 .page-hero:not(:has(img)){grid-template-columns:var(--gut) minmax(0,8fr) minmax(0,4fr) var(--gut);padding-block:32px 72px}
 .page-hero:not(:has(img))>.pad:first-child,.page-hero:not(:has(img)) .page-lead{grid-column:2}
 .page-company .page-photo{object-position:40% 50%}
 .page-careers .page-photo{object-position:50% 38%}

 /* sections, type scale */
 .sec{padding-block:clamp(56px,4.6vw,68px)}
 .sec.ends-rule{padding-bottom:0}
 .h2{font-size:clamp(2.6rem,4.2vw,4.25rem);line-height:1.06}
 .h2.md{font-size:clamp(2.2rem,3.3vw,3.5rem)}
 .h2.sm{font-size:clamp(1.8rem,2.2vw,2.3rem)}
 .sec-head{padding-bottom:36px}
 .split-grid{gap:0 64px;align-items:center}
 .text-split .split-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
 .text-split .split-copy{display:contents}
 .text-split .split-copy>.h2{grid-column:1;grid-row:1/3}
 .text-split .split-copy>p{grid-column:2;grid-row:1;margin-top:0}
 .text-split .rules{grid-column:2;grid-row:2;margin-top:24px;align-self:start;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px;border-top:0}
 .text-split .rules li{border-top:var(--rule);border-bottom:0;padding:12px 0 0;line-height:1.4}
 .split-copy>p{max-width:62ch}
 .rules li{padding:12px 0}

 /* service lists: ruled list left, sticky preview right */
 .svc-sec{display:grid;grid-template-columns:var(--gut) minmax(0,7fr) minmax(0,5fr) var(--gut);column-gap:0;padding-bottom:clamp(56px,5vw,72px)}
 .svc-sec>.sec-head{grid-column:2;grid-row:1;padding-inline:0}
 .svc{display:contents}
 .svc .idx{grid-column:2;grid-row:2;margin-right:64px}
 .svc .row{display:block;padding:16px 24px 18px 22px;border-left:6px solid transparent}
 .svc .row .nm{font-size:clamp(1.9rem,2.3vw,2.5rem);line-height:1.08}
 .svc .row .sp{margin-top:6px;font-size:18px;max-width:64ch}
 .svc .row.is-on{border-left-color:var(--ink)}
 .svc-prev{display:block;grid-column:3;grid-row:1/3;position:sticky;top:calc(var(--head) + 32px);align-self:start}
 .page-transport .svc-prev{top:calc(var(--head) + 80px)}
 .pv-photo{aspect-ratio:4/3}
 .pv-name{font-size:clamp(1.8rem,2.2vw,2.3rem);line-height:1.08;margin-top:14px;padding-top:14px;border-top:var(--rule)}
 .pv-text{margin-top:8px;max-width:46ch}

 /* ruled column grids: territoire scales (3), entreprise values (2) */
 .idx.grid-3,.idx.grid-2{display:grid;margin:0 var(--gut) clamp(56px,5vw,72px);border-bottom:var(--rule)}
 .idx.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
 .idx.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
 .idx.grid-3 .row,.idx.grid-2 .row{display:block;padding:26px 36px 32px 0;border-bottom:0}
 .idx.grid-3 .row+.row{border-left:var(--rule);padding-left:36px}
 .idx.grid-2 .row:nth-child(even){border-left:var(--rule);padding-left:36px}
 .idx.grid-2 .row:nth-child(n+3){border-top:var(--rule)}
 .idx.grid-3 .nm,.idx.grid-2 .nm{font-size:clamp(1.9rem,2.3vw,2.5rem)}
 .idx.grid-3 .sp,.idx.grid-2 .sp{margin-top:10px;font-size:18px}
 .desk-hide{display:none}

 /* steps on dark bands: one row of columns */
 .steps:not(.route-steps)>.pad{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:64px;align-items:start}
 .steps:not(.route-steps) .step-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px;margin-top:0}
 .steps:not(.route-steps) .step{display:block;border-bottom:0;padding:26px 0 0}
 .step h3{font-size:clamp(1.8rem,2.3vw,2.4rem)}
 .step p{margin-top:10px}

 /* timeline: columns on entreprise */
 .timeline .tl-list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border-bottom:var(--rule)}
 .timeline .tl-row{display:block;padding:26px 32px 32px 0;border-bottom:0}
 .timeline .tl-row+.tl-row{border-left:var(--rule);padding-left:32px}
 .timeline .tl-year{margin-bottom:14px}
 .timeline .tl-year,.timeline .tl-year.num{font-size:clamp(1.7rem,2.2vw,2.3rem);line-height:1.1;overflow-wrap:normal}
 .timeline .tl-row h3{font-size:clamp(1.5rem,1.8vw,1.9rem)}
 .route-line:not(.mini) .rl-name{max-width:none;font-size:clamp(1.2rem,1.55vw,1.7rem)}

 /* home company band: title and timeline left, photo fills the right column */
 .company{display:grid;grid-template-columns:var(--gut) minmax(0,8fr) minmax(0,4fr) var(--gut)}
 .company>.pad{display:contents}
 .company .about-title{grid-column:2;grid-row:1;padding:0 64px 28px 0}
 .company .tl-list{grid-column:2;grid-row:2;margin-right:64px}
 .company .tl-row{grid-template-columns:220px minmax(0,1fr);padding:16px 0}
 .company .tl-year:not(.num){font-size:clamp(1.6rem,2vw,2rem);overflow-wrap:normal}
 .company .tl-row h3{margin-bottom:4px}
 .company .tl-year.num{font-size:clamp(3.4rem,4.6vw,4.6rem)}
 .company .tl-row h3{font-size:clamp(1.6rem,2vw,2rem)}
 .company .small-photo{grid-column:3;grid-row:1/3;max-width:none;margin:0}
 .company .small-photo .ph{display:flex;flex-direction:column;height:100%}
 .company .co-photo{flex:1;min-height:0;height:100%;aspect-ratio:auto;object-position:40% 50%}

 /* home route strip: the oversized heading stays */
 .cor-head{grid-template-columns:8fr 4fr;gap:14px 64px}
 .corridor .h2{font-size:clamp(3.6rem,6.2vw,6.6rem);line-height:1.02}
 .cp-grid{grid-template-columns:7fr 5fr;align-items:center}
 .cp-photo{aspect-ratio:2/1}
 .cor-wrap{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:32px}
 .cor-rail,.cor-panels{grid-column:1/-1}
 .cp-nav{grid-column:1;margin-top:28px}
 .cor-foot{grid-column:2;margin-top:28px;padding-top:0;border-top:0;justify-content:flex-end}
 .cor-head{padding-bottom:20px}
 .cor-rail{margin-bottom:24px}

 /* call-to-action band */
 .cta{padding-block:clamp(56px,5vw,80px)}
 .cta>.pad{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:64px;align-items:end}
 .cta .cta-h{grid-column:1;max-width:none;font-size:clamp(2.2rem,3.2vw,3.3rem)}
 .contact-block .cta-h{grid-column:1/-1;margin-bottom:20px}
 .cta .cta-tel{grid-column:1;font-size:clamp(5rem,8vw,8.6rem)}
 .cta .cta-act{grid-column:2;grid-row:1/3;justify-self:end;margin:0 0 18px}
 .contact-block>.pad{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:auto auto auto auto;align-items:start}
 .contact-block .cta-h{grid-row:1}
 .contact-block .cta-tel{grid-row:2;font-size:clamp(4.4rem,6.4vw,6.6rem)}
 .contact-block .cta-act{grid-column:1;grid-row:3;justify-self:start;margin:16px 0 0}
 .contact-block .ct-grid{display:contents}
 .contact-block .ct-grid>.ph{grid-column:2;grid-row:2/5;align-self:stretch;display:flex;flex-direction:column}
 .contact-block .ct-photo{flex:1;min-height:0;aspect-ratio:auto;height:100%}
 .contact-block dl{grid-column:1;grid-row:4;grid-template-columns:1fr 1fr;gap:16px 40px;margin-top:32px;padding-top:24px;border-top:var(--rule)}
 .contact-block dl .wide{grid-column:auto}
 .cta dt{font-size:clamp(1.4rem,1.7vw,1.8rem)}

 /* forms */
 .form-box{max-width:none}
 input:not([type=checkbox]),select,textarea{min-height:44px;padding:9px 12px;font-size:17px}
 textarea{min-height:140px}
 [aria-invalid=true]{padding:7px 10px!important}
 .form-layout.with-aside{grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:0 48px}
 .q-aside{position:sticky;top:calc(var(--head) + 24px)}
 .form-layout.with-side{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0 56px;align-items:start}
 .side-card,.side-roles{display:block;position:sticky;top:calc(var(--head) + 24px)}
 .page-careers .side-roles{top:calc(var(--head) + 72px)}
 .side-card{border:var(--rule)}
 .side-photo{aspect-ratio:16/9}
 .side-card .ill{padding:4px 16px 0}
 .side-card h3,.side-roles h3{font-size:clamp(1.8rem,2.2vw,2.3rem);line-height:1.08}
 .side-card h3{padding:14px 24px 10px}
 .side-card dl{padding:0 24px 18px}
 .side-card dl div{padding:12px 0;border-top:var(--rule)}
 .side-card dt{font-weight:600;color:var(--ink)}
 .side-card dd{font-size:17px}
 .side-card dd a{font-weight:600}
 .side-roles h3{margin-bottom:16px}
 .side-roles li{padding:16px 0;border-top:var(--rule)}
 .side-roles li:last-child{border-bottom:var(--rule)}
 .side-roles h4{margin:0;font-size:1.6rem;line-height:1.1}
 .side-roles p{margin-top:6px;font-size:17px}

 /* footer: brand and office, navigation, services, contact, bottom line */
 .f-in{grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,3fr) minmax(0,3fr);grid-template-areas:"brand site svc ct" "addr site svc ct" "bnav bnav tag tag";align-items:start;gap:14px 48px;padding-block:52px 0}
 .f-brand{grid-area:brand}
 .site-footer address{grid-area:addr;font-size:17px;line-height:1.7}
 .f-col{display:block}
 .f-site{grid-area:site}.f-svc{grid-area:svc}.f-ct{grid-area:ct}
 .f-h{font-weight:600;font-size:16px;color:var(--on-dark-caption);margin-bottom:6px}
 .f-site ul{display:grid;grid-template-columns:auto auto;column-gap:28px;justify-content:start}
 .f-col li a{min-height:34px;font-size:17px;text-decoration:none}
 .f-col a:hover,.f-nav a:hover{text-decoration:underline;text-underline-offset:4px}
 .f-col p{font-size:17px}
 .f-ct .f-tel{font-size:2rem;line-height:1.1;text-decoration:none;color:var(--on-dark)}
 .f-nav{grid-area:bnav;margin-top:32px;padding-block:8px;border-top:var(--rule-dark)}
 .demo-tag{grid-area:tag;margin:32px 0 0 -48px;padding-block:8px;border-top:var(--rule-dark);min-height:61px;display:flex;align-items:center;justify-content:flex-end}
}
