/* ==========================================================================
   CORSEM — identity layer (loaded after the RaisisCMS theme, site.php → theme.css)
   Industrial energy, bright and alive: white and warm cream surfaces, full-colour photography,
   the three logo colours as the palette — red #DA1E02 (surfaces), flame #F39200 (accents),
   gas-blue #0A8FCF (labels, careers band). No black surfaces: the theme's "dark" is a deep brand red.
   Contrast (WCAG 2.2 AA): white on #B81A02 6.6:1, on #DA1E02 5.0:1; #0869A3 on white 5.9:1;
   #FFD9A8 on #B81A02 4.9:1; #5a6776 on cream 5.2:1.
   ========================================================================== */

@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/montserrat-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/montserrat-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --font:"Montserrat",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"Montserrat",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ink:#172538;--ink-2:#22344b;--text:#2f3d4f;--muted:#5a6776;--line:#ece4da;--line-2:#ddd2c5;
  --bg:#fff;--bg-muted:#f7f1ea;--bg-soft:#fcf8f4;
  --dark:#B81A02;--dark-2:#A31702;--dark-3:#C81B02;--on-dark:#fff;--on-dark-muted:#f5dfdc;
  --brand:#DA1E02;--brand-600:#C41B02;--brand-700:#B91902;--brand-ink:#fff;--brand-soft:#fdeee9;--brand-on-dark:#FFD9A8;
  --brand-grad:linear-gradient(120deg,#B01802 0%,#D01C02 100%);
  --red-surface:linear-gradient(115deg,#A81702 0%,#C41B02 45%,#D41D02 100%);
  --flame:#F39200;--flame-ink:#B45309;--blue:#0A8FCF;--blue-ink:#0869A3;--blue-deep:#08568A;
  --tricolor:linear-gradient(90deg,#DA1E02 0%,#F39200 55%,#0A8FCF 100%);
  --accent:#F39200;
  --logo-ink:#DA1E02;--logo-accent:#F39200;--logo-drop:#0A8FCF;
  --radius:2px;--radius-sm:2px;--radius-lg:3px;--pill:2px;--radius-btn:6px;--radius-img:4px;
  --shadow-sm:0 1px 2px rgba(23,37,56,.05);--shadow:0 2px 6px rgba(23,37,56,.07);--shadow-lg:0 22px 50px rgba(23,37,56,.14);
  --container:1280px;
  --grid-white:rgba(255,255,255,.075);
  --hair-red:rgba(255,255,255,.26);
}
body{font-size:1rem;line-height:1.7;letter-spacing:0;font-weight:450}
h1,h2,h3,h4{font-weight:800;letter-spacing:-.025em}
strong,b{font-weight:700}
::selection{background:var(--brand);color:#fff}

/* ---------- technical labels ---------- */
.kicker,.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:12px;margin:0 0 20px;line-height:1.4}
.kicker-mark{width:9px;height:9px;background:var(--brand);flex:0 0 auto;display:inline-block}
.eyebrow::before{content:"";width:9px;height:9px;background:var(--brand);flex:0 0 auto}
.eyebrow .dot{display:none}
.sec-head--center .eyebrow{justify-content:center}
.kicker--light,.is-dark .eyebrow,.is-brand .eyebrow,.page-header:not(.is-light) .eyebrow,.eyebrow--hero,.eyebrow--light{color:var(--on-dark-muted)}
.eyebrow--hero{background:none;border:0;padding:0}
.is-dark .eyebrow::before,.is-brand .eyebrow::before,.page-header:not(.is-light) .eyebrow::before,.eyebrow--hero::before,.kicker--light .kicker-mark{background:var(--flame)}

/* ---------- headings ---------- */
.sec-head{max-width:820px}
.sec-title{font-size:clamp(2rem,1.2rem + 2.5vw,3.4rem);line-height:1.02;letter-spacing:-.03em;color:var(--ink)}
.sec-intro{font-size:1.08rem;color:var(--muted);max-width:62ch}
.is-dark .sec-title,.is-brand .sec-title{color:#fff}.is-dark .sec-intro,.is-brand .sec-intro{color:var(--on-dark-muted)}
.sec-split{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:clamp(32px,4.5vw,64px);flex-wrap:wrap}
.sec-split .sec-head{margin:0}
.sec-split-actions{margin:0}
.hl{color:var(--brand);background:none!important;padding:0!important;box-shadow:none!important}
.hl::after,.hl::before{display:none!important}
.is-dark .hl,.is-brand .hl,.ihero .hl,.page-header:not(.is-light) .hl,.cband .hl{color:var(--brand-on-dark)}

/* ---------- buttons: square, industrial ---------- */
.btn{border-radius:var(--radius-btn);min-height:52px;padding:.85em 1.45em;font-weight:650;letter-spacing:-.01em;gap:.7em}
.btn:hover{transform:none}
.btn--primary{box-shadow:none}
.btn--primary:hover{background:var(--brand-600)}
.btn--secondary{border-width:1.5px}
.btn--sm{min-height:42px}
.btn--light:hover{background:var(--bg-muted);color:var(--brand-700)}
.btn .icon{transition:transform .25s var(--ease)}
.btn:hover .icon{transform:translateX(4px)}
.ihero .btn--primary,.page-header:not(.is-light) .btn--primary,.is-dark .btn--primary,.is-brand .btn--primary,.section--cta.is-brand .btn--primary{background:#fff;color:var(--brand-700)}
.ihero .btn--primary:hover,.page-header:not(.is-light) .btn--primary:hover,.is-dark .btn--primary:hover,.is-brand .btn--primary:hover,.section--cta.is-brand .btn--primary:hover{background:var(--bg-muted);color:var(--brand-700)}
.ihero .btn--secondary,.cband .btn--secondary,.is-brand .btn--secondary{color:#fff;border-color:rgba(255,255,255,.6)}
.ihero .btn--secondary:hover,.cband .btn--secondary:hover,.is-brand .btn--secondary:hover{background:#fff;color:var(--brand-700);border-color:#fff}
.arrow-link{display:inline-flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--brand);padding-bottom:5px;margin-top:30px}
.arrow-link:hover{color:var(--brand-700)}
.arrow-link .icon{transition:transform .25s var(--ease)}.arrow-link:hover .icon{transform:translateX(4px)}
.ihero :focus-visible,.cband :focus-visible,.page-header:not(.is-light) :focus-visible,.fstrip :focus-visible,.is-brand :focus-visible,.section--cta.has-image :focus-visible{outline-color:#fff}

/* ---------- red surfaces ("dark" in the CMS): blueprint grid in white ---------- */
.section.is-dark,.page-header:not(.is-light),.article-head,.project-hero{background-color:var(--dark);background-image:linear-gradient(var(--grid-white) 1px,transparent 1px),linear-gradient(90deg,var(--grid-white) 1px,transparent 1px),var(--red-surface);background-size:96px 96px,96px 96px,auto;background-position:-1px -1px,-1px -1px,0 0}
.is-dark::before{background:radial-gradient(760px 420px at 100% 0,rgba(243,146,0,.28),transparent 62%)}
.hero-ring{display:none!important}

/* ---------- header: always white, red logo ---------- */
.site-header .topbar{background:var(--dark);border-bottom:0}
.topbar,.topbar a,.topbar-links a,.topbar-links span{font-family:var(--mono);font-weight:650;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#fff}
.topbar a:hover{color:var(--brand-on-dark)}
.topbar .icon,.topbar-note .icon{color:var(--brand-on-dark)}
.top-dark .site-header{margin-bottom:0}
.site-header .navbar,.site-header.is-scrolled .navbar,.top-dark .site-header:not(.is-scrolled) .navbar{background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);box-shadow:none}
.site-header.is-scrolled .navbar{box-shadow:0 10px 30px rgba(23,37,56,.08)}
.top-dark .site-header:not(.is-scrolled) .logo .l-ink{fill:var(--logo-ink)}
.top-dark .site-header:not(.is-scrolled) .logo-label{color:var(--logo-ink)}
.logo svg{height:44px}
.nav-link,.top-dark .site-header:not(.is-scrolled) .nav-link{color:var(--ink);font-weight:600;font-size:.95rem;border-radius:0;padding:.7em .85em}
.nav-link:hover,.nav-item.is-current>.nav-link,.top-dark .site-header:not(.is-scrolled) .nav-link:hover,.top-dark .site-header:not(.is-scrolled) .nav-item.is-current>.nav-link{color:var(--brand-700);background:none;box-shadow:inset 0 -3px 0 var(--brand)}
.nav-item.is-highlight>.nav-link{color:var(--brand-700)}
.subnav{border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:2px;box-shadow:var(--shadow-lg);min-width:360px}
.subnav-link{border-radius:0}
.subnav-link:hover,.subnav-link[aria-current=page]{background:var(--bg-muted);color:var(--brand-700)}
.nav-phone,.top-dark .site-header:not(.is-scrolled) .nav-phone{color:var(--ink);font-weight:750;letter-spacing:-.01em}
.nav-phone .icon,.top-dark .site-header:not(.is-scrolled) .nav-phone .icon{border-radius:var(--radius-btn)!important;background:var(--brand);color:#fff}
.nav-phone:hover{color:var(--brand-700)}
.nav-cta{border-radius:var(--radius-btn);background:var(--brand);border:1.5px solid var(--brand);color:#fff}
.nav-cta:hover{background:var(--brand-600);border-color:var(--brand-600);color:#fff}
.burger,.top-dark .site-header:not(.is-scrolled) .burger{background:var(--bg-muted);border-radius:var(--radius-btn)}
.burger span,.top-dark .site-header:not(.is-scrolled) .burger span{background:var(--ink)}
@media (max-width:1024px){
  .nav-link{box-shadow:none!important}
  .nav-item{border-color:var(--line)}
  .subnav{border:0;box-shadow:none;min-width:0}
}

/* ---------- industrial hero: full-colour photo + diagonal red panel + flame stripe ---------- */
.ihero{position:relative;isolation:isolate;min-height:clamp(600px,calc(100svh - var(--header-h) - var(--topbar-h)),900px);display:flex;flex-direction:column;background:var(--bg-muted);color:#fff;overflow:hidden}
.ihero-bg{position:absolute;inset:0;z-index:-3}
.ihero-bg img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;animation:iheroZoom 26s var(--ease) both}
@keyframes iheroZoom{from{transform:scale(1.1)}to{transform:scale(1.01)}}
.ihero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(var(--grid-white) 1px,transparent 1px) -1px -1px/96px 96px,linear-gradient(90deg,var(--grid-white) 1px,transparent 1px) -1px -1px/96px 96px,var(--red-surface);-webkit-clip-path:polygon(0 0,63% 0,51% 100%,0 100%);clip-path:polygon(0 0,63% 0,51% 100%,0 100%)}
.ihero-grid{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#F39200,#f7b100);-webkit-clip-path:polygon(63% 0,65.2% 0,53.2% 100%,51% 100%);clip-path:polygon(63% 0,65.2% 0,53.2% 100%,51% 100%);pointer-events:none}
.ihero.no-image{background:var(--dark)}
.ihero.no-image::before,.ihero.no-image .ihero-grid{-webkit-clip-path:none;clip-path:none}
.ihero.no-image .ihero-grid{display:none}
.ihero-inner{flex:1;display:flex;align-items:center;padding-block:clamp(56px,7vw,110px)}
.ihero-copy{max-width:min(660px,47vw);animation:rise .9s var(--ease) both}
.ihero-title{font-size:clamp(2.4rem,1.1rem + 3.6vw,4.6rem);line-height:1.02;letter-spacing:-.025em;font-weight:820;color:#fff;margin:0 0 .4em}
.ihero-lead{font-size:clamp(1.05rem,.95rem + .38vw,1.25rem);line-height:1.6;color:#fff;max-width:54ch;margin:0 0 34px}
.ihero-actions{margin:0}
.ihero-facts{position:relative;background:#fff;color:var(--ink);box-shadow:0 -1px 0 var(--line)}
.ifacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.ifact{position:relative;padding:26px 28px 28px;border-left:1px solid var(--line)}
.ifact::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--brand)}
.ifact:nth-child(4n+2)::before{background:var(--flame)}
.ifact:nth-child(4n+3)::before{background:var(--blue)}
.ifact:first-child{border-left:0}
.ifact dt{font-family:var(--mono);font-weight:650;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;gap:10px;line-height:1.4}
.ifact-no{color:var(--brand-700)}
.ifact dd{margin:14px 0 0;font-size:clamp(2rem,1.2rem + 1.9vw,3.1rem);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.ifact dd small{font-size:.44em;font-weight:650;letter-spacing:-.01em;margin-left:.3em;color:var(--muted)}
.ifact--word dd{font-size:clamp(1.55rem,1rem + 1.25vw,2.3rem);color:var(--brand);padding-top:.2em}

/* ---------- statement ---------- */
.section--statement{padding-block:clamp(72px,9vw,136px)}
.statement{display:grid;grid-template-columns:minmax(0,.3fr) minmax(0,1fr);gap:clamp(20px,5vw,90px);align-items:start}
.statement .kicker{margin-top:.8em}
.statement-text{font-size:clamp(1.4rem,.95rem + 1.5vw,2.2rem);line-height:1.32;letter-spacing:-.02em;font-weight:600;max-width:34ch;color:var(--ink);margin:0 0 40px}
.statement-text em{font-style:normal;color:var(--brand);background:linear-gradient(transparent 88%,rgba(243,146,0,.45) 88%)}
.statement-points{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;margin:0;border-top:1px solid var(--line-2)}
.statement-points div{padding:18px 20px 4px 0}
.statement-points dt{font-family:var(--mono);font-weight:650;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink)}
.statement-points dd{margin:6px 0 0;font-weight:680;color:var(--ink)}

/* ---------- domains (numbered rows) ---------- */
.domains{list-style:none;margin:0 -18px;padding:0;border-top:1px solid var(--line-2)}
.domain-link{position:relative;display:grid;grid-template-columns:64px minmax(0,1.2fr) minmax(0,1fr) 220px 52px;gap:clamp(18px,2.4vw,36px);align-items:center;padding:30px 18px;border-bottom:1px solid var(--line-2);color:var(--ink);text-decoration:none;transition:background .35s}
.domain-link::before{content:"";position:absolute;left:0;top:-1px;height:3px;width:0;background:var(--tricolor);transition:width .6s var(--ease)}
a.domain-link:hover{background:#fff;color:var(--ink)}
a.domain-link:hover::before,a.domain-link:focus-visible::before{width:100%}
.domain-no{font-family:var(--mono);font-weight:650;font-size:.85rem;letter-spacing:.12em;color:var(--brand-700);align-self:start;padding-top:12px}
.domain-title{font-size:clamp(1.4rem,.95rem + 1.45vw,2.35rem);letter-spacing:-.028em;line-height:1.06;margin:0 0 12px;color:var(--ink);font-weight:760;transition:color .3s}
a.domain-link:hover .domain-title{color:var(--brand-700)}
.domain-tags{display:flex;flex-wrap:wrap;gap:6px}
.domain-tags span{font-family:var(--mono);font-weight:650;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line-2);background:#fff;padding:4px 8px;color:var(--blue-ink)}
.domain-text{color:var(--muted);font-size:.98rem;line-height:1.6}
.domain-media{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--line)}
.domain-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
a.domain-link:hover .domain-media img{transform:scale(1.06)}
.domain-go{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--radius-btn);border:1.5px solid var(--line-2);color:var(--ink);background:#fff;transition:background .3s,border-color .3s,color .3s}
a.domain-link:hover .domain-go{background:var(--brand);border-color:var(--brand);color:#fff}

/* ---------- spec sheet: photo + capability list ---------- */
.spec{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,88px);align-items:center}
.spec--img-right .spec-media{order:2}
.spec-media{margin:0;position:relative;isolation:isolate}
.spec-media img{width:100%;aspect-ratio:5/4;object-fit:cover;-webkit-clip-path:polygon(0 0,100% 0,100% 88%,88% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 88%,88% 100%,0 100%)}
.spec-media figcaption{position:absolute;left:0;bottom:0;display:flex;align-items:center;gap:10px;background:var(--brand);color:#fff;font-family:var(--mono);font-weight:700;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;padding:12px 16px}
.spec-media::after{content:"";position:absolute;right:-16px;top:-16px;width:42%;height:42%;z-index:-1;background:linear-gradient(135deg,#F39200,#f7b100)}
.spec-media::before{content:"";position:absolute;left:-16px;bottom:-16px;width:28%;height:30%;z-index:-1;background:repeating-linear-gradient(135deg,var(--blue) 0 2px,transparent 2px 10px);opacity:.55}
.plate{display:grid;grid-template-columns:1fr;margin:28px 0 10px;counter-reset:cap;border-top:1px solid var(--line-2)}
.plate-cell{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:14px;padding:16px 0;border-bottom:1px solid var(--line-2);counter-increment:cap}
.plate-cell::before{content:counter(cap,decimal-leading-zero);grid-row:span 2;font-weight:800;font-size:.8rem;color:var(--brand-700);padding-top:2px}
.plate-cell dt{font-family:var(--mono);font-weight:700;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink)}
.plate-cell dd{margin:4px 0 0;font-weight:650;font-size:1.02rem;line-height:1.45;color:var(--ink)}
.plate-note{font-size:.84rem;color:var(--muted);margin:0 0 26px}
.spec .btn-row{margin-top:24px}

/* ---------- networks built ---------- */
.nets{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,6vw,110px);align-items:start}
.nets-aside{position:sticky;top:calc(var(--header-h) + 32px)}
.nets-aside .sec-head{margin-bottom:32px}
.nets-media{margin:0 0 28px;position:relative;isolation:isolate}
.nets-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-img)}
.nets-media::after{content:"";position:absolute;right:-14px;top:-14px;width:40%;height:40%;z-index:-1;background:linear-gradient(135deg,#F39200,#f7b100);border-radius:var(--radius-img)}
.nets-media figcaption{margin-top:12px;font-size:.8rem;font-weight:600;color:var(--muted)}
.nets-actions{margin:0}
.nets-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-2)}
.net-link{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px 24px;align-items:start;padding:30px 0;border-bottom:1px solid var(--line-2);color:var(--ink);text-decoration:none}
.net-link::before{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:0;background:var(--tricolor);transition:width .6s var(--ease)}
a.net-link:hover::before,a.net-link:focus-visible::before{width:100%}
.net-no{font-weight:800;font-size:.85rem;color:var(--brand-700);padding-top:10px}
.net-title{font-size:clamp(1.5rem,1rem + 1.4vw,2.3rem);font-weight:800;letter-spacing:-.03em;line-height:1.08;margin:0 0 8px;transition:color .3s}
a.net-link:hover .net-title{color:var(--brand-700)}
.net-meta{display:block;font-weight:700;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink);margin-bottom:10px}
.net-text{display:block;color:var(--muted);font-size:.96rem;line-height:1.6;max-width:52ch}
.net-fig{grid-column:3;grid-row:1;text-align:right;padding-top:4px;white-space:nowrap}
.net-fig strong{display:block;font-size:clamp(1.8rem,1.2rem + 1.6vw,2.8rem);font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--brand)}
.net-fig small{display:block;margin-top:6px;font-size:.74rem;font-weight:650;color:var(--muted)}
.net-arrow{display:inline-grid;place-items:center;width:34px;height:34px;margin-left:8px;vertical-align:.18em;border:1.5px solid var(--line-2);border-radius:var(--radius-btn);transition:background .3s,border-color .3s,color .3s}
.net-arrow .icon{width:16px;height:16px}
a.net-link:hover .net-arrow{background:var(--brand);border-color:var(--brand);color:#fff}
.nets-note{margin:20px 0 0;font-size:.88rem;color:var(--muted)}
.is-muted .nets-media::after{background:linear-gradient(135deg,#F39200,#f7b100)}

/* ---------- case feature: photo in full colour, white card ---------- */
.case{position:relative;isolation:isolate;min-height:clamp(560px,84vh,820px);display:flex;align-items:flex-end;color:var(--text);background:var(--bg-muted);overflow:hidden}
.case-bg{position:absolute;inset:0;z-index:-2}
.case-bg img{width:100%;height:100%;object-fit:cover}
.case::before{content:"";position:absolute;inset:auto 0 0 0;height:45%;z-index:-1;background:linear-gradient(0deg,rgba(23,37,56,.28),transparent)}
.case-inner{padding-block:clamp(56px,7vw,100px)}
.case-card{position:relative;max-width:640px;background:#fff;padding:clamp(28px,4vw,52px);box-shadow:var(--shadow-lg)}
.case-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--tricolor)}
.case .kicker--light{color:var(--muted)}
.case .kicker--light .kicker-mark{background:var(--brand)}
.case-title{font-size:clamp(1.8rem,1.1rem + 2.1vw,3rem);color:var(--ink);letter-spacing:-.028em;line-height:1.04;margin:0 0 .45em}
.case-text{color:var(--muted);font-size:1.04rem;margin:0 0 26px}
.case-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:0 0 30px}
.case-facts div{border-top:1px solid var(--line-2);padding:12px 0}
.case-facts dt{font-family:var(--mono);font-weight:650;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink)}
.case-facts dd{margin:4px 0 0;font-weight:700;color:var(--ink);font-size:.98rem}

/* ---------- project mosaic: vivid photos, white labels ---------- */
.mosaic{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(220px,21vw,320px);grid-auto-flow:dense;gap:14px}
.tile--xl{grid-column:span 2;grid-row:span 2}
.tile-link{position:relative;display:block;height:100%;overflow:hidden;background:var(--line);color:var(--ink);text-decoration:none}
.tile-link img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.tile-link:hover img{transform:scale(1.06)}
.tile-body{position:absolute;left:0;bottom:0;z-index:1;max-width:calc(100% - 28px);padding:16px 20px 18px;display:grid;gap:4px;background:#fff}
.tile-body::before{content:"";position:absolute;left:0;top:0;height:4px;width:44px;background:var(--brand);transition:width .6s var(--ease)}
.tile-link:hover .tile-body::before,.tile-link:focus-visible .tile-body::before{width:100%}
.tile-cat{font-family:var(--mono);font-weight:650;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-700);margin-top:4px}
.tile-title{font-weight:720;font-size:1.06rem;line-height:1.25;letter-spacing:-.02em;color:var(--ink)}
.tile--xl .tile-body{padding:22px 28px 24px}
.tile--xl .tile-title{font-size:clamp(1.35rem,1rem + 1.1vw,2rem);letter-spacing:-.025em;max-width:26ch}
.tile-meta{font-size:.86rem;color:var(--muted)}

/* ---------- credentials grid ---------- */
.creds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.cred{position:relative;display:grid;gap:8px;align-content:start;min-height:200px;padding:28px 24px 28px;background:#fff;border:1px solid var(--line);transition:transform .35s var(--ease),box-shadow .35s}
.cred:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.cred::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:4px;background:var(--brand)}
.cred:nth-child(3n+2)::before{background:var(--flame)}
.cred:nth-child(3n)::before{background:var(--blue)}
.cred-issuer{font-family:var(--mono);font-weight:650;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink)}
.cred-code{font-size:clamp(2.2rem,1.5rem + 2vw,3.3rem);font-weight:820;letter-spacing:-.025em;line-height:1;color:var(--brand)}
.cred-no{font-family:var(--mono);font-weight:650;font-size:.8rem;letter-spacing:.06em;color:var(--ink);overflow-wrap:anywhere}
.cred-text{color:var(--muted);font-size:.9rem;line-height:1.5}
.cred-dates{margin-top:6px;padding-top:10px;border-top:1px dashed var(--line-2);font-size:.78rem;font-weight:650;color:var(--ink)}
.creds-note{margin:22px 0 0;font-size:.84rem;color:var(--muted);max-width:90ch}
.is-dark .cred,.is-brand .cred{background:rgba(255,255,255,.08);border-color:var(--hair-red)}
.is-dark .cred-code,.is-brand .cred-code,.is-dark .cred-no,.is-brand .cred-no{color:#fff}
.is-dark .cred-issuer,.is-brand .cred-issuer{color:var(--brand-on-dark)}
.is-dark .cred-text,.is-brand .cred-text{color:var(--on-dark-muted)}

/* ---------- milestones ---------- */
.mstones{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));background:var(--tricolor) top left/100% 3px no-repeat}
.mstone{position:relative;padding:32px 28px 0 0}
.mstone::before{content:"";position:absolute;top:-5px;left:0;width:13px;height:13px;background:var(--brand);box-shadow:0 0 0 4px #fff}
.mstone:nth-child(3n+2)::before{background:var(--flame)}
.mstone:nth-child(3n)::before{background:var(--blue)}
.is-muted .mstone::before{box-shadow:0 0 0 4px var(--bg-muted)}
.mstone-year{display:block;font-size:clamp(2rem,1.3rem + 1.7vw,3rem);font-weight:820;letter-spacing:-.025em;line-height:1;color:var(--ink)}
.mstone-title{font-size:1.05rem;letter-spacing:-.02em;margin:14px 0 6px;color:var(--brand-700)}
.mstone-text{color:var(--muted);font-size:.94rem;line-height:1.55;margin:0}

/* ---------- contact band: brand red ---------- */
.cband{position:relative;isolation:isolate;background:var(--red-surface);color:#fff;padding:clamp(80px,10vw,150px) 0;overflow:hidden}
.cband-bg{position:absolute;inset:0;z-index:-2}
.cband-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);mix-blend-mode:multiply;opacity:.22}
.cband::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(var(--grid-white) 1px,transparent 1px),linear-gradient(90deg,var(--grid-white) 1px,transparent 1px);background-size:96px 96px}
.cband-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(36px,6vw,110px);align-items:end}
.cband-title{font-size:clamp(2.1rem,1.2rem + 2.9vw,3.8rem);color:#fff;letter-spacing:-.03em;line-height:1.02;margin:0 0 .4em}
.cband-text{color:#fff;font-size:1.08rem;max-width:52ch;margin:0}
.cband-phone{display:block;font-size:clamp(2.2rem,1.1rem + 3.5vw,4.3rem);font-weight:820;letter-spacing:-.03em;line-height:1;color:#fff;text-decoration:none;border-bottom:3px solid var(--flame);padding-bottom:16px;margin-bottom:26px}
.cband-phone small{display:block;font-family:var(--mono);font-size:.7rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:14px}
.cband-phone:hover{color:#fff;border-color:#fff}
.cband-lines{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:10px}
.cband-lines a{color:#fff;font-weight:700;text-decoration:none}
.cband-lines a:hover{text-decoration:underline;text-underline-offset:.2em}
.cband-lines span{color:#fff;font-size:.92rem}
.cband-lines a+span{margin-left:8px;font-family:var(--mono);font-weight:650;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}
.cband .kicker--light{color:#fff}

/* ---------- inner page header ---------- */
.page-header{padding:clamp(64px,8vw,128px) 0 clamp(56px,6.5vw,104px)}
.page-header::after{background:radial-gradient(700px 400px at 100% 0,rgba(243,146,0,.3),transparent 62%)}
.page-header.is-light{background:var(--bg-muted)}
.page-header.is-light::after{background:radial-gradient(700px 400px at 100% 0,rgba(243,146,0,.14),transparent 62%)}
.page-header.has-image{background:var(--bg-muted)}
.page-header.has-image::before,.project-hero::before{background:linear-gradient(var(--grid-white) 1px,transparent 1px) -1px -1px/96px 96px,linear-gradient(90deg,var(--grid-white) 1px,transparent 1px) -1px -1px/96px 96px,var(--red-surface);-webkit-clip-path:polygon(0 0,68% 0,58% 100%,0 100%);clip-path:polygon(0 0,68% 0,58% 100%,0 100%)}
.page-header.has-image::after,.project-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#F39200,#f7b100);-webkit-clip-path:polygon(68% 0,69.6% 0,59.6% 100%,58% 100%);clip-path:polygon(68% 0,69.6% 0,59.6% 100%,58% 100%)}
.page-header.has-image .ph-inner>*,.project-hero .ph-inner>*{max-width:min(720px,52vw)}
/* desktop: the photo only in the right half (under the slanted panel's edge), whole and close to its real size — not stretched under the red panel */
@media (min-width:901px){.page-header.has-image .ph-bg,.project-hero .ph-bg{left:50%}}
.ph-inner::before{content:"";position:absolute;left:var(--gutter);top:0;bottom:0;width:3px;background:var(--flame)}
.page-header.is-light .ph-inner::before{background:var(--brand)}
.ph-inner>*{padding-left:clamp(20px,3vw,44px)}
.ph-title{font-size:clamp(2.2rem,1.2rem + 3.3vw,4.4rem);letter-spacing:-.022em;line-height:1}
.ph-intro,.article-lead,.project-loc{color:#fff}
.page-header.is-light .ph-intro{color:var(--muted)}
.breadcrumbs,.breadcrumbs a{font-family:var(--mono);font-weight:650;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.page-header:not(.is-light) .breadcrumbs li,.article-head .breadcrumbs li,.project-hero .breadcrumbs li,.page-header:not(.is-light) .breadcrumbs a,.article-head .breadcrumbs a,.project-hero .breadcrumbs a{color:#fff}
.article-head{padding-top:clamp(40px,6vw,80px)}
.project-hero{padding-top:clamp(56px,8vw,120px);background-color:var(--bg-muted)}
.project-hero:not(:has(.ph-bg)){background-color:var(--dark)}
.article-meta{color:var(--on-dark-muted)}
.section.is-dark .big-quote>.icon{color:var(--brand-on-dark)}

/* ---------- the hero diagonal, repeated on red edges ---------- */
:root{--slant:clamp(22px,3.2vw,48px)}
.page-header,.article-head,.project-hero{-webkit-clip-path:polygon(0 0,100% 0,100% calc(100% - var(--slant)),0 100%);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--slant)),0 100%);padding-bottom:calc(clamp(56px,6.5vw,104px) + var(--slant))}
.article-head{padding-bottom:calc(clamp(90px,10vw,140px) + var(--slant))}
.cband{-webkit-clip-path:polygon(0 var(--slant),100% 0,100% 100%,0 100%);clip-path:polygon(0 var(--slant),100% 0,100% 100%,0 100%);margin-top:calc(var(--slant) * -1);padding-top:calc(clamp(80px,10vw,150px) + var(--slant))}
.section--cta.has-image{padding-bottom:calc(clamp(40px,5vw,72px) + var(--slant))}

/* ---------- core components, Corsem geometry ---------- */
.scard-link,.jcard-link,.prcard-link,.postcard,.feature,.step,.stat,.ccard,.faq-item,.notice,.form-card,.story-block,.logos-track li,.toc,.aside-cta,.keypoints,.cookie-box,.cm-line,.offices li,.table-scroll,.map-facade,.empty-state,.fact,.article-cta{border-radius:2px!important}
.scard-link{border-color:var(--line)}
.scard-link::before{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--tricolor);z-index:2;transition:width .5s var(--ease)}
.scard-link:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.scard-link:hover::before{width:100%}
.scard-icon,.feature-icon,.jcard-icon,.ccard-icon,.notice-icon,.step-num{border-radius:0!important}
.scard-icon,.feature-icon{background:var(--brand-soft);color:var(--brand-700)}
.features .feature:nth-child(3n+2) .feature-icon{background:#fff3e0;color:var(--flame-ink)}
.features .feature:nth-child(3n) .feature-icon{background:#e6f3fa;color:var(--blue-ink)}
.scard--cards .scard-media+.scard-body .scard-icon{box-shadow:none}
.scard-title,.feature-title{letter-spacing:-.025em}
.more{font-family:var(--mono);font-weight:650;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.checklist .icon{border-radius:0}
.chip-choice span,.chip,.chip-btn{border-radius:var(--radius-btn)!important}
.chip-btn.is-active{background:var(--brand);border-color:var(--brand);color:#fff}
.lead-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.lead-form select,.lead-form textarea{border-radius:var(--radius-btn)}
.form-card{box-shadow:var(--shadow);border:1px solid var(--line);border-top:4px solid var(--brand)}
.prcard-cat,.postcard-meta,.tile-cat,.jcard-meta{font-family:var(--mono);font-weight:650;letter-spacing:.1em;text-transform:uppercase;font-size:.66rem}
.prcard-link{border-color:var(--line);position:relative}
.prcard-link::after{content:"";position:absolute;left:0;top:0;height:4px;width:0;background:var(--tricolor);transition:width .5s var(--ease);z-index:2}
.prcard-link:hover::after{width:100%}
.prcard-media{aspect-ratio:3/2}
.prcard-body{padding:20px 22px 24px}
.prcard-title{font-size:1.08rem;line-height:1.32}
.prcard-facts{display:grid;gap:0;margin-top:10px;border-top:1px solid var(--line)}
.prcard-facts span{display:flex;justify-content:space-between;gap:12px;background:none;border-radius:0;padding:7px 0;border-bottom:1px solid var(--line);font-size:.78rem;color:var(--muted)}
.prcard-facts strong{text-align:right;font-weight:700}
.prcard-count,.prcard-video{border-radius:0;background:rgba(23,37,56,.72)}
.prcard-link:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.dtable thead th{font-family:var(--mono);font-weight:650;font-size:.68rem;letter-spacing:.12em}
.stat{background:transparent;border:1px solid var(--hair-red)}
.is-light .stat,.is-muted .stat{border-color:var(--line-2)}
.stat-label{font-family:var(--mono);font-weight:650;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}
.logos-track{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}
.logos-track li{border-color:var(--line);background:#fff;height:84px;padding:14px}
.logos-track img{filter:none;opacity:1}
.fact{border-left-width:4px}
.fact:nth-child(3n+2){border-left-color:var(--flame)}
.fact:nth-child(3n){border-left-color:var(--blue)}
.cta-title{letter-spacing:-.028em}
.section--cta.has-image::before{background:linear-gradient(90deg,rgba(8,86,138,.95) 0%,rgba(8,86,138,.9) 45%,rgba(10,111,168,.6) 100%)}
.section--cta.has-image .cta-text{color:#fff;opacity:1}
.section--cta.has-image .btn--primary{background:#fff;color:var(--blue-deep)}
.section--cta.has-image .btn--primary:hover{background:var(--bg-muted);color:var(--blue-deep)}
.faq-item summary{font-weight:650}
.faq-item[open]{border-left:4px solid var(--brand)}
.keypoints{border-left-color:var(--flame)}
.mobile-bar{background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(23,37,56,.08)}
.mobile-bar a{color:var(--ink)}
.mobile-bar a.mb-primary{background:var(--brand);color:#fff;border-radius:var(--radius-btn)}
.job-facts li{border-radius:2px}

/* ---------- footer: light, logo colours ---------- */
.fstrip{background:var(--red-surface);color:#fff}
.fstrip-inner{display:flex;justify-content:space-between;align-items:center;gap:20px 32px;padding-block:32px;flex-wrap:wrap}
.fstrip-title{margin:0;font-size:clamp(1.2rem,.95rem + 1vw,1.75rem);font-weight:760;letter-spacing:-.03em;color:#fff}
.fstrip-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.fstrip-phone{display:inline-flex;align-items:center;gap:10px;color:#fff;font-size:1.5rem;font-weight:800;letter-spacing:-.03em;text-decoration:none}
.fstrip-phone:hover{color:#fff;text-decoration:underline;text-underline-offset:.2em}
.fstrip .btn--light{color:var(--brand-700)}
.cfooter{background:var(--bg-muted);color:var(--muted);position:relative;overflow:hidden}
.cfooter::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--tricolor)}
.cfooter-top{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);gap:40px;padding-block:clamp(56px,7vw,96px) 40px}
.cfooter .logo svg{height:52px}
.cfooter .logo .l-ink{fill:var(--logo-ink)}
.cfooter-claim{color:var(--ink);font-size:1.22rem;font-weight:660;letter-spacing:-.025em;line-height:1.35;max-width:24ch;margin:22px 0 20px}
.cfooter-badges{list-style:none;margin:0;padding:0;display:grid;gap:8px;max-width:340px}
.cfooter-badges li{font-family:var(--mono);font-weight:650;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-2);border-left:3px solid var(--brand);background:#fff;padding:9px 11px;color:var(--ink)}
.cfooter .footer-title{font-family:var(--mono);font-size:.68rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-ink);margin-bottom:18px}
.cfooter .footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cfooter .footer-col a,.cfooter address a{color:var(--ink);text-decoration:none}
.cfooter .footer-col a:hover,.cfooter address a:hover{color:var(--brand-700);text-decoration:underline;text-underline-offset:.2em}
.cfooter address{font-style:normal;display:grid;gap:12px}
.cfooter address p{margin:0;line-height:1.55}
.cfooter address small{color:var(--muted)}
.cfooter .cfooter-phone{font-size:1.6rem;font-weight:800;letter-spacing:-.03em;color:var(--brand-700)}
.cfooter .social,.cfooter .footer-col ul.social{margin-top:18px;display:flex;gap:8px;list-style:none;padding:0}
.cfooter .social a{border-radius:var(--radius-btn);background:#fff;color:var(--ink);border:1px solid var(--line-2)}
.cfooter .social a:hover{background:var(--brand);border-color:var(--brand);color:#fff}
.cfooter-word{font-size:clamp(4.5rem,19vw,19rem);font-weight:900;letter-spacing:-.04em;line-height:.78;color:transparent;-webkit-text-stroke:1.5px rgba(218,30,2,.16);text-align:center;margin:10px 0 -.1em;user-select:none;white-space:nowrap;overflow:hidden}
.cfooter .footer-bottom{border-top:1px solid var(--line-2);background:#f1e9df}
.cfooter .legal-links a,.cfooter .legal-id,.cfooter .credit,.cfooter .credit a,.cfooter .linklike{color:var(--muted);font-size:.84rem}
.cfooter .legal-links a:hover,.cfooter .credit a:hover,.cfooter .linklike:hover{color:var(--brand-700)}
.cfooter :focus-visible{outline-color:var(--brand)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .domain-link{grid-template-columns:52px minmax(0,1fr) 170px 48px}
  .domain-text{grid-column:2;grid-row:2}
  .domain-media{grid-row:1 / span 2;grid-column:3}
  .domain-go{grid-row:1 / span 2;grid-column:4}
  .creds{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cfooter-top{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  /* hero stacks: photo, flame stripe, red panel, figures */
  .ihero{min-height:0}
  .ihero::before{display:none}
  .ihero-bg{position:relative;inset:auto;height:clamp(220px,52vw,420px);order:1}
  .ihero-grid{position:relative;inset:auto;height:6px;order:2;-webkit-clip-path:none;clip-path:none;background:linear-gradient(90deg,#F39200,#f7b100 60%,#0A8FCF)}
  .ihero-inner{order:3;background:linear-gradient(var(--grid-white) 1px,transparent 1px) -1px -1px/64px 64px,linear-gradient(90deg,var(--grid-white) 1px,transparent 1px) -1px -1px/64px 64px,var(--red-surface);max-width:none;padding-inline:var(--gutter);padding-block:40px 44px}
  .ihero-facts{order:4}
  .ihero-copy{max-width:640px}
  .ifacts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ifact{padding:20px 16px}
  .ifact:nth-child(3){border-left:0}
  .ifact:nth-child(n+3){border-top:1px solid var(--line)}
  .page-header.has-image::before,.project-hero::before{-webkit-clip-path:none;clip-path:none;opacity:.93}
  .page-header.has-image::after,.project-hero::after{display:none}
  .page-header.has-image .ph-inner>*,.project-hero .ph-inner>*{max-width:900px}
  .statement{grid-template-columns:1fr}
  .spec,.cband-inner{grid-template-columns:1fr}
  .spec--img-right .spec-media{order:0}
  .spec-media::after{right:-8px;top:-8px}
  .spec-media::before{left:-8px;bottom:-8px}
  .nets{grid-template-columns:1fr}
  .nets-media::after{right:-8px;top:-8px}
  .nets-aside{position:static}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:240px}
  .tile--xl{grid-column:span 2;grid-row:span 1}
}
@media (max-width:640px){
  .ihero-inner{padding-block:32px 36px}
  .ifact dt{font-size:.6rem;letter-spacing:.07em}
  .ifact-no{display:none}
  .domain-link{grid-template-columns:36px minmax(0,1fr);gap:8px 14px;padding:24px 12px}
  .domains{margin-inline:-12px}
  .domain-main,.domain-text{grid-column:2;grid-row:auto}
  .domain-media{grid-column:1 / -1;grid-row:auto;order:-1;aspect-ratio:16/9;margin-bottom:10px}
  .domain-go{display:none}
  .domain-no{padding-top:6px}
  .mosaic{grid-template-columns:1fr;grid-auto-rows:260px}
  .tile--xl{grid-column:auto;grid-row:auto}
  .tile-body,.tile--xl .tile-body{padding:14px 16px 16px}
  .net-link{grid-template-columns:34px minmax(0,1fr);padding:24px 0}
  .net-fig{grid-column:2;grid-row:auto;text-align:left;padding-top:6px}


  .creds{grid-template-columns:1fr 1fr;gap:10px}
  .cred{min-height:0;padding:18px 14px;gap:6px}
  .cred-code{font-size:1.9rem}
  .cred-text{font-size:.8rem;line-height:1.45}
  .cred-dates{font-size:.72rem}
  .case{min-height:0;padding-top:260px}
  .case-facts{grid-template-columns:1fr}
  .cfooter-top{grid-template-columns:1fr}
  .fstrip-phone{font-size:1.3rem}
}
@media (prefers-reduced-motion:reduce){
  .ihero-bg img,.ihero-copy{animation:none}
  .cred:hover,.scard-link:hover,.prcard-link:hover{transform:none}
}
