:root{
  --paper:#F7F5F1; --sand:#E9E3DA; --white:#FFFFFF;
  --ink:#26221E; --accent:#3D4B5B; --accent-dk:#2C3844;
  --muted:#6B655D; --hair:#DDD6CC; --hair-lt:#EDE8E0;
  --gut:clamp(24px,5vw,72px); --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);
  font-family:Manrope,system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}

h1,h2,h3,h4{font-weight:400;letter-spacing:-.02em;line-height:1.1;text-wrap:balance}
h1{font-size:clamp(34px,5.6vw,62px);letter-spacing:-.025em}
h2{font-size:clamp(27px,3.7vw,42px)}
h3{font-size:clamp(20px,2vw,25px);font-weight:500;letter-spacing:-.012em}
h4{font-size:clamp(19px,1.8vw,23px);font-weight:500;letter-spacing:-.01em}
p{text-wrap:pretty}
.lead{font-size:clamp(17px,1.4vw,19px);line-height:1.6;max-width:62ch}
.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:500}
.rule{width:56px;height:2px;background:var(--accent);border:0}

a{color:var(--accent)}
a:hover{color:var(--accent-dk)}
a.plain{text-decoration:none}
a.plain:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.cta{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);
  text-decoration:none;padding:14px 22px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:500;min-height:44px;transition:background .15s;margin-top:clamp(22px,2.6vw,34px)}
.cta:hover{background:var(--accent);color:var(--paper)}
.cta svg{flex:none}

.wm{font-weight:300;letter-spacing:-.03em;line-height:1;color:var(--ink);display:inline-block}
.wm b{font-weight:500;color:var(--accent)}

.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--gut);top:12px;z-index:10;background:var(--ink);color:var(--paper);padding:10px 16px}

header{border-bottom:1px solid var(--hair)}
.hrow{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;flex-wrap:wrap}
.hrow .wm{font-size:30px}
nav{display:flex;gap:clamp(13px,2vw,30px);flex-wrap:wrap}
nav a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  text-decoration:none;font-weight:500}
nav a:hover{color:var(--ink)}

.hero{background:var(--sand)}
.hero .wrap{padding-top:clamp(56px,8vw,112px);padding-bottom:clamp(56px,8vw,112px);
  display:flex;flex-direction:column;gap:clamp(26px,3.2vw,40px)}
.pills{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.dot{width:3px;height:3px;background:var(--accent);flex:none}

section{padding:clamp(52px,6.5vw,92px) 0}
.sechead{display:flex;gap:14px;align-items:baseline;margin-bottom:clamp(20px,2.4vw,30px)}
.sechead .n{color:var(--accent);font-weight:500;font-size:11px;letter-spacing:.16em}

/* group index cards */
.index{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));
  gap:clamp(18px,2.4vw,30px);margin-top:clamp(30px,3.6vw,46px)}
.card{border-top:2px solid var(--ink);padding-top:16px;display:flex;flex-direction:column;gap:7px}
.card .n{font-size:11px;letter-spacing:.14em;color:var(--accent);font-weight:500}
.card a{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:500;
  text-decoration:none;margin-top:6px;display:inline-flex;align-items:center;gap:7px}
.card a:hover{text-decoration:underline}

/* subsidiary section body: copy + media */
.subs{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(26px,4vw,60px);
  align-items:start}
.subs .copy{display:flex;flex-direction:column;gap:15px}
.subs figure{margin:0}
.subs figure img{width:100%;height:clamp(250px,32vw,420px);object-fit:cover}

.svcs{margin-top:4px}
.svcs dt{font-weight:500;font-size:15px;color:var(--ink);margin-top:16px;
  padding-top:13px;border-top:1px solid var(--hair-lt)}
.svcs dt:first-of-type{margin-top:2px}
.svcs dd{font-size:15px;line-height:1.6;color:var(--ink);margin-top:3px}

/* proof block */
.proof{margin-top:clamp(32px,4vw,52px);border-top:1px solid var(--ink);padding-top:18px}
.proof > .kicker{display:block;margin-bottom:14px}
table{width:100%;border-collapse:collapse}
th{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;
  text-align:left;padding:0 16px 9px 0;border-bottom:1px solid var(--hair)}
th.r,td.r{text-align:right}
td{padding:13px 16px 13px 0;border-bottom:1px solid var(--hair);vertical-align:top;font-size:15px}
td.r{white-space:nowrap;color:var(--muted)}
td:last-child,th:last-child{padding-right:0}
.note{border-left:2px solid var(--hair);padding-left:16px;font-size:13.5px;line-height:1.55;
  color:var(--muted);margin-top:16px;max-width:76ch}

/* supporting note */
.proof.soft{border-top:0;padding-top:0;margin-top:clamp(24px,2.8vw,36px)}
.supporting{font-size:15px;line-height:1.65;color:var(--muted);max-width:78ch}

/* product blocks inside Technologies */
.prod{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3.4vw,52px);
  align-items:stretch;padding:clamp(28px,3.4vw,44px) 0;border-bottom:1px solid var(--hair)}
.prod:first-of-type{border-top:1px solid var(--hair)}
.prod .copy{display:flex;flex-direction:column;gap:14px}
.prod .logo{background:var(--white);border:1px solid var(--hair);padding:18px 22px;
  align-self:flex-start;max-width:280px}
.prod .logo img{height:26px;width:auto}
.prod p{font-size:15px;line-height:1.65}
.prod figure{margin:0;height:100%}
.prod figure img{width:100%;height:100%;min-height:clamp(230px,28vw,360px);object-fit:cover}
.prod.flip .media{order:-1}
.prod .cta{margin-top:auto;align-self:flex-start}
.badge{display:inline-block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);font-weight:500;border:1px solid var(--accent);padding:5px 10px;align-self:flex-start}

/* casa facts */
.casa{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px 26px;margin-top:18px}
.casa .v{font-weight:500;font-size:16px;margin-top:5px}

ul.ticks{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));
  gap:clamp(18px,2.4vw,32px);margin-top:clamp(24px,3vw,40px)}
ul.ticks li{border-top:1px solid var(--hair);padding-top:16px;font-size:15px;line-height:1.6}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:clamp(20px,2.6vw,34px);
  border-top:1px solid var(--ink);padding-top:22px;margin-top:clamp(28px,3.4vw,44px)}
.facts .v{font-weight:500;font-size:20px;letter-spacing:-.01em;margin-top:6px}

.band{background:var(--sand)}
.band .wrap{padding-top:clamp(50px,6vw,84px);padding-bottom:clamp(44px,5vw,68px);
  display:flex;flex-direction:column;gap:clamp(34px,4.4vw,56px)}
.statement{font-size:clamp(23px,2.6vw,32px);font-weight:400;letter-spacing:-.015em;
  line-height:1.2;max-width:22ch;text-wrap:balance}
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(24px,3vw,44px)}
.dl{display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.5;margin-top:16px}
.dl > div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px}
.dl dt{color:var(--muted)}
.foot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
  border-top:1px solid var(--hair);padding-top:22px}
.foot .wm{font-size:40px}

@media (max-width:880px){
  .subs,.prod{grid-template-columns:1fr;gap:24px}
  .prod.flip .media{order:0}
  .subs figure{order:-1}
}
@media (max-width:700px){ .hrow{align-items:flex-start} }

/* a section heading promoted to the page heading on a subsidiary page */
.pagetitle{font-size:clamp(27px,3.7vw,42px);font-weight:400;letter-spacing:-.02em;line-height:1.1;text-wrap:balance}
