/* Inner pages: chaptered layouts for services, industries, company; contact; legal; 404. Theme tokens come from site.css. */
.crumbs { display: flex; gap: 10px; font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); margin-bottom: 28px; }
.crumbs a:hover { color: var(--accent); } .crumbs span:last-child { color: var(--mut); }

/* hero */
.page-hero { position: relative; padding: 150px 0 0; }
.page-hero .container { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.page-hero h1 { max-width: 12ch; }
.page-hero .lede { margin-top: 26px; }
.page-hero .ctas { margin-top: 34px; }
.art { position: relative; }
.art canvas { width: 100%; aspect-ratio: 1 / 1; display: block; }
.art.wide canvas { aspect-ratio: 4 / 3; }
.art.panorama canvas { aspect-ratio: 2 / 1; }
.art.panorama { margin-inline: auto; max-width: 1100px; border: 1px solid var(--line); }
.page-hero figure.photo img { aspect-ratio: 4 / 4.6; }
.readout { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: clamp(48px, 6vw, 80px); }
.readout div { padding: 24px 28px 24px 0; }
.readout div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.readout .mono { color: var(--faint); }
.readout b { display: block; font: 400 clamp(22px, 2vw, 28px)/1.15 var(--serif); margin-top: 10px; }
.readout b em { color: var(--accent); }

/* chapters */
.chap { padding: clamp(72px, 9vw, 130px) 0; border-top: 1px solid var(--line); background: var(--bg); color: var(--fg); }
.chap:first-of-type { border-top: 0; }
.chap.alt { background: var(--bg2); }
.chap-head { display: grid; grid-template-columns: 140px 1fr; gap: 24px; align-items: start; margin-bottom: clamp(36px, 5vw, 56px); }
.chap-num { font: 500 11px/1.5 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); padding-top: 14px; }
.chap-num small { display: block; color: var(--faint); font-size: 10px; letter-spacing: .12em; margin-top: 4px; }
.chap-head h2 { max-width: 20ch; }
.chap-head .lede { grid-column: 2; margin-top: 18px; }
.chap-rail { position: fixed; left: 18px; top: 50%; transform: translateY(-50%); z-index: 30; display: grid; gap: 14px; }
.chap-rail a { display: flex; align-items: center; gap: 8px; font: 500 10px/1 var(--mono); letter-spacing: .12em; color: #8E918A; transition: color .25s; }
.chap-rail a::before { content: ""; width: 14px; height: 1px; background: rgba(142,145,138,.6); transition: width .3s var(--ease), background .3s; }
.chap-rail a.on { color: var(--brass); } .chap-rail a.on::before { width: 28px; background: var(--brass); }
.chap-rail a:hover { color: var(--brass-2); }

/* 01 — the case: argument + optional quote */
.argue { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(32px, 5vw, 90px); align-items: start; }
.argue blockquote { margin: 0; padding-left: 26px; border-left: 2px solid var(--accent); font: italic 400 clamp(24px, 2.4vw, 34px)/1.25 var(--serif); letter-spacing: -.01em; }
.argue blockquote cite { display: block; margin-top: 16px; font: 500 11px/1.5 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); font-style: normal; }
.argue .text p { color: var(--mut); max-width: 60ch; }
.argue .text p + p { margin-top: 18px; }
.argue .text p.first { color: var(--fg); font-size: 19px; }
.argue .claim { font: 400 clamp(26px, 2.6vw, 38px)/1.15 var(--serif); letter-spacing: -.015em; max-width: 18ch; }
.argue .claim em { color: var(--accent); }

/* 02 — components: numbered cards with a detail line */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.cards.two { grid-template-columns: 1fr 1fr; } .cards.four { grid-template-columns: repeat(4, 1fr); }
.card { background: var(--card); border: 1px solid var(--line); padding: 24px 24px 20px; display: flex; flex-direction: column; min-height: 240px; transition: border-color .3s, transform .3s var(--ease); }
.card:hover { border-color: var(--accent); transform: translateY(-2px); }
.card .k { display: flex; justify-content: space-between; font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.card .k b { color: var(--accent); font-weight: 500; }
.card h3 { font-size: 24px; margin: 20px 0 10px; }
.card p { color: var(--mut); font-size: 15px; flex: 1; }
.card .d { margin-top: 18px; padding-top: 12px; border-top: 1px solid var(--line); font: 500 11px/1.5 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }

/* 03 — deliverables: definition rows */
.defs { border-top: 1px solid var(--line); }
.def { display: grid; grid-template-columns: 1fr 1.6fr .7fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.def h3 { font-size: 24px; }
.def p { color: var(--mut); }
.def .when { font: 500 11px/1.6 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); text-align: right; }

/* 04 — timeline reuses .rail from site.css; add week labels */
.rail .stage .wk { font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); margin-bottom: 8px; }
.rhythm { margin-top: 48px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.rhythm div { border: 1px solid var(--line); padding: 20px 22px; }
.rhythm .mono { color: var(--accent); }
.rhythm p { color: var(--mut); font-size: 15px; margin-top: 8px; }

/* 05 — standards: commitment rows */
.standards { border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.std { display: grid; grid-template-columns: 30px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); align-items: start; }
.std i { display: block; width: 12px; height: 12px; border: 1px solid var(--accent); transform: rotate(45deg); margin-top: 8px; }
.std b { display: block; font: 400 21px/1.2 var(--serif); }
.std span { display: block; color: var(--mut); font-size: 15px; margin-top: 6px; }

/* 06 — questions */
.faq { max-width: 900px; }
.faq details { border-top: 1px solid var(--line); padding: 22px 0; }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px; font: 400 clamp(21px, 2vw, 27px)/1.25 var(--serif); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--accent); font-family: var(--sans); font-size: 24px; line-height: 1; transition: transform .3s; flex: none; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { color: var(--mut); max-width: 68ch; margin-top: 14px; }

/* photo chapter */
.photo-band { position: relative; min-height: 62vh; display: grid; align-items: end; overflow: hidden; isolation: isolate; }
.photo-band img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: saturate(.75); }
.photo-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,35,26,.15), rgba(11,35,26,.88)); }
.photo-band .container { padding-block: clamp(56px, 7vw, 100px); }
.photo-band blockquote { margin: 0; font: italic 400 clamp(30px, 4vw, 58px)/1.08 var(--serif); letter-spacing: -.02em; max-width: 20ch; }
.photo-band cite { display: block; margin-top: 18px; font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--mut); font-style: normal; }

/* plays well with */
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.pair a { display: grid; grid-template-columns: 110px 1fr; gap: 22px; align-items: center; padding: 20px 24px 20px 14px; border: 1px solid var(--line); background: var(--card); transition: border-color .3s, transform .3s var(--ease); color: var(--fg); }
.pair a:hover { border-color: var(--accent); transform: translateY(-2px); }
.pair canvas { width: 110px; height: 130px; display: block; }
.pair .who { font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.pair h3 { margin: 6px 0 6px; font-size: 28px; }
.pair p { color: var(--mut); font-size: 15px; }
.pair.three { grid-template-columns: repeat(3, 1fr); } .pair.three a { grid-template-columns: 90px 1fr; } .pair.three canvas { width: 90px; height: 110px; } .pair.three h3 { font-size: 24px; }

/* industries */
.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 44px; }
.fact { border-top: 1px solid var(--line-2); padding-top: 16px; }
.fact .mono { color: var(--faint); }
.fact b { display: block; font: 400 24px/1.2 var(--serif); margin-top: 10px; }
.fact p { color: var(--mut); font-size: 15px; margin-top: 8px; }
.buyers { border-top: 1px solid var(--line); }
.buyer { display: grid; grid-template-columns: 1fr 1.2fr 1.2fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.buyer h3 { font-size: 24px; }
.buyer p { color: var(--mut); font-size: 15.5px; }
.buyer p .mono { display: block; color: var(--faint); margin-bottom: 6px; }

/* company */
.statement { padding: 170px 0 clamp(60px, 8vw, 120px); }
.statement blockquote { margin: 0; font: italic 400 clamp(38px, 6vw, 92px)/1.02 var(--serif); letter-spacing: -.03em; max-width: 16ch; }
.statement blockquote span { color: var(--accent); }
.values { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.values div { padding: 30px 30px 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.values .n { font: italic 400 34px/1 var(--serif); color: var(--accent); margin-bottom: 18px; }
.values h3 { font-size: 26px; margin-bottom: 10px; }
.values p { color: var(--mut); font-size: 15.5px; }
.places { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.places div { border: 1px solid var(--line); padding: 20px 22px; }
.places .mono { color: var(--faint); } .places b { display: block; font: 400 24px/1.2 var(--serif); margin-top: 8px; } .places p { color: var(--mut); font-size: 14.5px; margin-top: 6px; }

/* contact */
.contact { padding-top: 150px; }
.contact .container { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(40px, 6vw, 100px); align-items: start; }
.form { display: grid; gap: 22px; margin-top: 40px; }
.form .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.form label { display: grid; gap: 8px; }
.form label span { font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.form input, .form select, .form textarea { all: unset; box-sizing: border-box; width: 100%; border-bottom: 1px solid var(--line-2); padding: 10px 0; font: 400 17px/1.3 var(--sans); color: var(--fg); transition: border-color .2s; }
.form input:focus, .form select:focus, .form textarea:focus { border-color: var(--accent); outline: none; }
.form select option { color: #111; }
.form textarea { min-height: 110px; resize: vertical; }
.form .hp { position: absolute; left: -9999px; }
.form .status { min-height: 1.4em; color: var(--mut); font-size: 14px; }
.form .status.err { color: #B9532B; } .form .status.ok { color: var(--accent); }
.form .actions { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.details { border-top: 1px solid var(--line); margin-top: 8px; }
.details div { padding: 22px 0; border-bottom: 1px solid var(--line); }
.details .mono { color: var(--faint); margin-bottom: 8px; }
.details a, .details address { font: 400 22px/1.3 var(--serif); font-style: normal; display: block; }
.details a:hover { color: var(--accent); }
.steps { margin-top: 34px; display: grid; gap: 0; border-top: 1px solid var(--line); }
.steps > div { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.steps .n { font: italic 400 26px/1 var(--serif); color: var(--accent); }
.steps b { font: 400 19px/1.3 var(--serif); display: block; } .steps span { color: var(--mut); font-size: 14.5px; }

/* legal */
.legal-head { padding: 150px 0 40px; border-bottom: 1px solid var(--line); }
.legal-head p { color: var(--mut); margin-top: 18px; font-size: 15px; max-width: 70ch; }
.doc { max-width: 76ch; padding-block: 48px 110px; }
.doc h2 { font-size: 30px; margin: 46px 0 14px; } .doc h2:first-of-type { margin-top: 0; }
.doc h3 { font-size: 20px; margin: 28px 0 8px; font-family: var(--sans); font-weight: 600; letter-spacing: 0; }
.doc p, .doc li { color: var(--mut); font-size: 16.5px; }
.doc p + p { margin-top: 14px; } .doc ul { padding-left: 22px; margin: 12px 0; } .doc li + li { margin-top: 6px; }
.doc a { text-decoration: underline; text-underline-offset: 3px; } .doc a:hover { color: var(--accent); }
.doc .toc { border: 1px solid var(--line); padding: 18px 22px; margin-bottom: 40px; }
.doc .toc ol { margin: 10px 0 0; padding-left: 20px; columns: 2; } .doc .toc li { font-size: 15px; }

/* 404 */
.nf { min-height: 100svh; display: grid; place-items: center; text-align: center; padding: 120px var(--pad) 60px; }
.nf h1 { font-style: italic; } .nf p { color: var(--mut); margin-top: 18px; }

@media (max-width: 1240px) { .chap-rail { display: none; } }
@media (max-width: 960px) {
  .page-hero { padding-top: 120px; } .page-hero .container, .argue, .pair, .contact .container, .values, .standards { grid-template-columns: 1fr; }
  .chap-head { grid-template-columns: 1fr; gap: 10px; } .chap-head .lede { grid-column: 1; }
  .cards, .cards.four, .rhythm, .facts, .places { grid-template-columns: 1fr 1fr; } .pair.three { grid-template-columns: 1fr; }
  .def, .buyer { grid-template-columns: 1fr; gap: 8px; } .def .when { text-align: left; }
  .readout { grid-template-columns: 1fr; } .readout div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .form .two-col { grid-template-columns: 1fr; } .values div { border-right: 0; } .doc .toc ol { columns: 1; } .statement { padding-top: 130px; }
}
@media (max-width: 600px) { .cards, .cards.four, .cards.two, .rhythm, .facts, .places { grid-template-columns: 1fr; } }

/* ===== corporate components ===== */
/* hub cards (services / industries) */
.hub-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.hub-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--line); background: var(--card); color: var(--fg); overflow: hidden; transition: border-color .3s, transform .35s var(--ease); }
.hub-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.hub-card figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg3); }
.hub-card img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8); transition: transform .8s var(--ease), filter .4s; }
.hub-card:hover img { transform: scale(1.04); filter: saturate(1); }
.hub-card .hub-body { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.hub-card .k { display: flex; justify-content: space-between; align-items: center; font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.hub-card .k b { font: 400 22px/1 var(--serif); color: var(--accent); }
.hub-card h3 { font-size: 26px; margin: 14px 0 8px; }
.hub-card p { color: var(--mut); font-size: 15px; flex: 1; }
.hub-card .more { margin-top: 18px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); display: inline-flex; gap: 8px; align-items: center; }
.hub-card .more i { font-style: normal; transition: transform .25s; } .hub-card:hover .more i { transform: translateX(5px); }
.hub-grid.two { grid-template-columns: 1fr 1fr; } .hub-grid.two .hub-card figure { aspect-ratio: 16 / 9; }

/* insights cards */
.ins-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.ins-card { display: flex; flex-direction: column; color: var(--fg); border: 1px solid var(--line); background: var(--card); overflow: hidden; transition: border-color .3s, transform .35s var(--ease); }
.ins-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.ins-card figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg3); }
.ins-card img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8); transition: transform .8s var(--ease); }
.ins-card:hover img { transform: scale(1.04); }
.ins-body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.ins-meta { display: flex; gap: 14px; flex-wrap: wrap; font: 500 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); }
.ins-meta .cat { color: var(--accent); }
.ins-card h3 { font-size: 23px; margin: 12px 0 8px; line-height: 1.2; }
.ins-card p { color: var(--mut); font-size: 14.5px; flex: 1; }
.ins-card .more { margin-top: 16px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.ins-card .more i { font-style: normal; display: inline-block; margin-left: 6px; transition: transform .25s; } .ins-card:hover .more i { transform: translateX(5px); }
.ins-grid .ins-card.big { grid-column: span 2; flex-direction: row; }
.ins-grid .ins-card.big figure { flex: 1.2; aspect-ratio: auto; min-height: 320px; }
.ins-grid .ins-card.big .ins-body { flex: 1; justify-content: center; padding: 32px; }
.ins-grid .ins-card.big h3 { font-size: 32px; }
.ins-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 28px; }
.ins-head p { color: var(--mut); margin-top: 12px; max-width: 52ch; }

/* horizontal strip (industries on home) */
.strip { margin-top: 44px; }
.strip-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; scrollbar-width: thin; }
.strip-card { position: relative; scroll-snap-align: start; aspect-ratio: 3 / 4; overflow: hidden; color: #EFE7D4; border: 1px solid var(--line); background: var(--bg3); display: block; }
.strip-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.75); transition: transform .9s var(--ease), filter .4s; }
.strip-card:hover img { transform: scale(1.05); filter: saturate(1); }
.strip-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,35,26,.05) 35%, rgba(11,35,26,.86)); }
.strip-card div { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 1; }
.strip-card .mono { color: rgba(239,231,212,.7); }
.strip-card h3 { font-size: 24px; margin-top: 6px; color: #EFE7D4; }
.strip-card p { color: rgba(239,231,212,.8); font-size: 14px; margin-top: 6px; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .4s var(--ease), opacity .3s; }
.strip-card:hover p { max-height: 90px; opacity: 1; }

/* feature split (text + photo) */
.feature { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.feature.flip figure { order: -1; }
.feature figure.photo img { aspect-ratio: 4 / 3.4; }
.feature .points { margin-top: 28px; border-top: 1px solid var(--line); }
.feature .points > div { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.feature .points > div > div { display: block; }
.feature .points .n { font: italic 400 24px/1 var(--serif); color: var(--accent); }
.feature .points b { display: block; font: 400 19px/1.3 var(--serif); }
.feature .points span { color: var(--mut); font-size: 14.5px; }
.feature h2 { max-width: 16ch; }
.feature .lede { margin-top: 18px; }
.feature .ctas { margin-top: 28px; }

/* mosaic */
.mosaic { display: grid; grid-template-columns: 1.3fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; height: clamp(420px, 56vw, 680px); }
.mosaic figure { margin: 0; overflow: hidden; position: relative; }
.mosaic figure:first-child { grid-row: span 2; }
.mosaic img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8); }
.mosaic figcaption { position: absolute; left: 16px; bottom: 14px; font: 500 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: rgba(239,231,212,.9); text-shadow: 0 1px 8px rgba(0,0,0,.6); }

/* regions / headquarters (locations) */
.regions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.region { border: 1px solid var(--line); background: var(--card); overflow: hidden; }
.region figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.region img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); display: block; }
.region div { padding: 18px 20px 22px; }
.region .mono { color: var(--faint); } .region b { display: block; font: 400 24px/1.2 var(--serif); margin-top: 8px; } .region p { color: var(--mut); font-size: 14.5px; margin-top: 8px; }
.hq { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 60px); align-items: center; }
.hq figure.photo img { aspect-ratio: 4 / 3; }

/* article (insights) */
.article-hero { padding: 150px 0 0; }
.article-hero .container { max-width: 1000px; }
.article-hero .ins-meta { margin-bottom: 20px; }
.article-hero h1 { font-size: clamp(38px, 5vw, 72px); max-width: 18ch; }
.article-hero .lede { margin-top: 22px; max-width: 60ch; }
.article-hero figure { margin: clamp(36px, 5vw, 64px) auto 0; max-width: 1200px; }
.article-hero figure img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; display: block; filter: saturate(.85); }
.article-hero figcaption { font: 500 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); margin-top: 10px; }
.article-body { padding: clamp(48px, 6vw, 90px) 0 clamp(60px, 7vw, 110px); }
.article-body .container { display: grid; grid-template-columns: 220px minmax(0, 720px); gap: clamp(32px, 5vw, 80px); justify-content: center; }
.article-aside { position: sticky; top: 110px; align-self: start; font-size: 14px; color: var(--mut); }
.article-aside .mono { color: var(--faint); margin-bottom: 8px; display: block; }
.article-aside .tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 24px; }
.article-aside .tags a { border: 1px solid var(--line); padding: 5px 10px; font-size: 12.5px; color: var(--mut); } .article-aside .tags a:hover { border-color: var(--accent); color: var(--accent); }
.article-aside .share { display: grid; gap: 6px; } .article-aside .share a:hover { color: var(--accent); }
.prose { font-size: 18px; line-height: 1.65; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: clamp(28px, 3vw, 38px); margin-top: 1.8em; }
.prose h3 { font-size: 23px; margin-top: 1.5em; }
.prose p, .prose li { color: var(--mut); }
.prose p.lead { color: var(--fg); font-size: 21px; line-height: 1.5; }
.prose strong { color: var(--fg); font-weight: 600; }
.prose ul, .prose ol { padding-left: 22px; } .prose li + li { margin-top: .5em; }
.prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 24px; border-left: 2px solid var(--accent); font: italic 400 clamp(22px, 2.4vw, 30px)/1.3 var(--serif); color: var(--fg); }
.prose .aside { border: 1px solid var(--line); background: var(--card); padding: 22px 26px; font-size: 16px; }
.prose .aside b { display: block; font: 500 11px/1.4 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.prose a { text-decoration: underline; text-underline-offset: 3px; } .prose a:hover { color: var(--accent); }
.prose table { width: 100%; border-collapse: collapse; font-size: 15.5px; } .prose th, .prose td { text-align: left; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--line); vertical-align: top; } .prose th { font: 500 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); }
.prose figure { margin: 1.8em 0; } .prose figure img { width: 100%; display: block; filter: saturate(.85); } .prose figcaption { font: 500 11px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); margin-top: 10px; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.filters button { all: unset; cursor: pointer; border: 1px solid var(--line); padding: 8px 14px; font: 500 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--mut); transition: all .2s; }
.filters button:hover, .filters button[aria-pressed="true"] { border-color: var(--accent); color: var(--accent); }
.ins-card[hidden] { display: none; }

/* sector tiles (more sectors) */
.sectors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.sector { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--line); color: #EFE7D4; display: block; }
.sector img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); transition: transform .9s var(--ease); }
.sector:hover img { transform: scale(1.05); }
.sector::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,35,26,.1) 30%, rgba(11,35,26,.88)); }
.sector div { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 1; }
.sector h3 { font-size: 24px; color: #EFE7D4; } .sector p { color: rgba(239,231,212,.8); font-size: 14px; margin-top: 6px; }

/* roles (careers) */
.roles { border-top: 1px solid var(--line); }
.role { display: grid; grid-template-columns: 1.1fr 1.4fr 1fr; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.role h3 { font-size: 24px; } .role p { color: var(--mut); font-size: 15.5px; } .role .mono { color: var(--faint); }

/* photo-band variants */
.photo-band.cta .container { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 32px; }
.photo-band.tall { min-height: 76vh; }
.photo-band .over { max-width: 60ch; }
.photo-band .over h2 { font-size: clamp(34px, 4.6vw, 64px); }
.photo-band .over p { color: rgba(239,231,212,.8); margin-top: 16px; }

@media (max-width: 1100px) { .hub-grid, .ins-grid, .sectors { grid-template-columns: 1fr 1fr; } .ins-grid .ins-card.big { grid-column: span 2; } .regions { grid-template-columns: 1fr 1fr; } }
@media (max-width: 960px) { .feature, .hq, .article-body .container { grid-template-columns: 1fr; } .feature.flip figure { order: 0; } .article-aside { position: static; } .mosaic { height: auto; grid-template-columns: 1fr 1fr; } .mosaic figure:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 16/10; } .mosaic figure { aspect-ratio: 4/3; } .role { grid-template-columns: 1fr; gap: 8px; } .photo-band.cta .container { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .hub-grid, .ins-grid, .sectors, .regions, .hub-grid.two { grid-template-columns: 1fr; } .ins-grid .ins-card.big { grid-column: auto; flex-direction: column; } .ins-grid .ins-card.big figure { min-height: 0; aspect-ratio: 16/10; } .ins-head { flex-direction: column; align-items: start; } .strip-track { grid-auto-columns: 78vw; } }
.page-hero.solo .container { grid-template-columns: 1fr; }
.page-hero.solo h1 { max-width: 14ch; }
.page-hero.solo .lede { max-width: 56ch; }
.subscribe { max-width: 720px; margin-inline: auto; text-align: center; }
.subscribe h2 { max-width: none; } .subscribe p { color: var(--mut); margin-top: 14px; }
.subscribe .newsletter { margin: 28px auto 0; max-width: 480px; } .subscribe .nl-msg { text-align: center; }
.hub-grid.four { grid-template-columns: repeat(4, 1fr); } .hub-grid.four .hub-card figure { aspect-ratio: 4 / 3; } .hub-grid.four h3 { font-size: 22px; }
@media (max-width: 1100px) { .hub-grid.four { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .hub-grid.four { grid-template-columns: 1fr; } }

/* ===== fluid layouts: offset panels, sliders, honeycomb board ===== */
/* offset panels: a sticky stage; the track travels across the screen as the page scrolls (site.js sets --x) */
.offset { position: relative; background: var(--bg); color: var(--fg); }
.offset-sticky { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: grid; grid-template-rows: auto 1fr auto; grid-template-columns: minmax(0, 1fr); padding: 88px 0 26px; box-sizing: border-box; }
.offset-head { padding-inline: var(--pad); display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; align-items: end; }
.offset-head h2 { max-width: 13ch; margin-top: 12px; } .offset-head .lede { max-width: 46ch; justify-self: end; margin-bottom: 6px; }
.offset-track { display: flex; align-items: flex-start; gap: 3vw; padding-inline: var(--pad); margin-top: 24px; min-height: 0; min-width: 0; width: 100%; box-sizing: border-box; will-change: transform; transform: translate3d(calc(-1px * var(--x, 0)), 0, 0); }
.panel { flex: 0 0 auto; width: min(62vw, 880px); height: min(58vh, 540px); display: grid; grid-template-columns: 1.15fr 1fr; background: var(--bg2); border: 1px solid var(--line); overflow: hidden; }
.panel:nth-child(even) { margin-top: 9vh; } .panel:nth-child(even) figure { order: 2; }
.panel figure { margin: 0; overflow: hidden; } .panel img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8); }
.panel-body { padding: clamp(22px, 2.6vw, 40px); display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; min-width: 0; }
.panel .num { font: italic 400 clamp(40px, 5vw, 72px)/1 var(--serif); color: var(--accent); margin-bottom: auto; }
.panel h3 { font-size: clamp(23px, 2.2vw, 32px); } .panel p { color: var(--mut); font-size: 15px; }
.panel .link { margin-top: 4px; font-size: 14px; }
.panel.cta { width: min(42vw, 540px); background: var(--green); color: var(--ivory); grid-template-columns: 1fr; border-color: transparent; }
.panel.cta .num { color: var(--brass); } .panel.cta h3 { font-size: clamp(34px, 3.6vw, 56px); font-style: italic; } .panel.cta p { color: rgba(239,231,212,.72); } .panel.cta .btn { align-self: flex-start; margin-top: 10px; }
.offset-bar { margin: 18px var(--pad) 0; height: 1px; background: var(--line); } .offset-bar i { display: block; height: 100%; width: 100%; background: var(--accent); transform-origin: left; transform: scaleX(var(--p, 0)); }
@media (max-width: 960px), (prefers-reduced-motion: reduce) {
  .offset { height: auto !important; padding: clamp(56px, 8vw, 90px) 0; }
  .offset-sticky { position: static; height: auto; overflow: visible; padding: 0; display: block; }
  .offset-head { grid-template-columns: 1fr; } .offset-head .lede { justify-self: start; }
  .offset-track { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; transform: none !important; padding-bottom: 8px; gap: 14px; }
  .offset-track::-webkit-scrollbar { display: none; }
  .panel, .panel.cta { width: 82vw; height: auto; grid-template-columns: 1fr; scroll-snap-align: start; margin-top: 0 !important; }
  .panel figure { order: 0 !important; aspect-ratio: 16 / 10; } .panel-body { justify-content: flex-start; } .panel .num { margin-bottom: 4px; }
  .offset-bar { display: none; }
}

/* slider: snap-scrolling track with drag, arrows and a progress bar */
.slider { position: relative; }
.slider-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 26px; }
.slider-head .lede { margin: 0; max-width: 52ch; }
.slider-ctl { display: flex; gap: 8px; flex: none; align-items: center; }
.slider-ctl button { all: unset; cursor: pointer; width: 46px; height: 46px; border: 1px solid var(--line-2); display: grid; place-items: center; color: var(--fg); font-size: 18px; transition: border-color .2s, color .2s, opacity .2s; }
.slider-ctl button:hover { border-color: var(--accent); color: var(--accent); } .slider-ctl button:disabled { opacity: .3; cursor: default; }
.slider-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; cursor: grab; padding-bottom: 6px; }
.slider-track::-webkit-scrollbar { display: none; }
.slider-track.drag { cursor: grabbing; scroll-snap-type: none; } .slider-track.drag > * { pointer-events: none; }
.slider-track > * { flex: 0 0 clamp(280px, 30vw, 430px); scroll-snap-align: start; }
.slider-track > .strip-card { flex-basis: clamp(220px, 23vw, 330px); }
.slider-track > .ins-card.big { flex-direction: column; } .slider-track > .ins-card.big figure { flex: none; aspect-ratio: 16 / 10; min-height: 0; } .slider-track > .ins-card.big .ins-body { padding: 20px 22px 22px; justify-content: flex-start; } .slider-track > .ins-card.big h3 { font-size: 23px; }
.slider-bar { margin-top: 22px; height: 1px; background: var(--line); } .slider-bar i { display: block; height: 100%; background: var(--accent); transform-origin: left; transform: scaleX(0); }
@media (max-width: 640px) { .slider-head { flex-direction: column; align-items: start; } .slider-track > * { flex-basis: 78vw; } .slider-track > .strip-card { flex-basis: 64vw; } }

/* honeycomb board: a draggable hex map with a fisheye (site.js positions each .hb) */
.honey { background: var(--green); color: var(--ivory); position: relative; overflow: hidden; }
.honey-head { padding: clamp(56px, 7vw, 96px) var(--pad) 0; }
.honey .ins-head h2 { color: var(--ivory); } .honey .ins-head p { color: rgba(239,231,212,.68); }
.honey-legend { display: flex; gap: 18px; flex-wrap: wrap; color: rgba(239,231,212,.6); flex: none; }
.honey-legend .l { display: inline-flex; align-items: center; gap: 8px; } .honey-legend .l::before { content: ""; width: 10px; height: 10px; border-radius: 50%; }
.honey-legend .l-service::before { background: var(--brass); } .honey-legend .l-industry::before { border: 1px solid rgba(239,231,212,.6); } .honey-legend .l-insight::before { background: rgba(169,214,229,.5); } .honey-legend .l-company::before { background: #1C4A36; }
.honey-stage { position: relative; height: clamp(540px, 82vh, 860px); overflow: hidden; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; outline: none; -webkit-mask-image: radial-gradient(ellipse 58% 66% at 50% 50%, #000 52%, transparent 100%); mask-image: radial-gradient(ellipse 58% 66% at 50% 50%, #000 52%, transparent 100%); }
.honey-stage.drag { cursor: grabbing; } .honey-stage.drag .hb { pointer-events: none; }
.honey-stage:focus-visible { box-shadow: inset 0 0 0 2px var(--brass); }
.hb { position: absolute; left: 0; top: 0; width: 124px; height: 124px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; text-align: center; padding: 14px; box-sizing: border-box; will-change: transform, opacity; -webkit-user-drag: none; text-decoration: none; color: inherit; transition: box-shadow .25s; }
.hb .g { font: 400 28px/1 var(--serif); } .hb .t { font: 500 12.5px/1.2 var(--sans); } .hb .k { font: 500 9px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; opacity: .72; }
.hb-brand { background: var(--brass); color: var(--green); width: 156px; height: 156px; } .hb-brand svg { width: 46px; height: 46px; } .hb-brand .t { font-size: 13px; }
.hb-service { background: var(--brass); color: var(--green); }
.hb-industry { background: rgba(239,231,212,.07); border: 1px solid rgba(239,231,212,.4); color: var(--ivory); }
.hb-insight { background: rgba(169,214,229,.12); border: 1px solid rgba(169,214,229,.32); color: var(--frost); }
.hb-company { background: #1C4A36; color: var(--ivory); border: 1px solid rgba(239,231,212,.12); }
.hb-contact { background: var(--ivory); color: var(--green); } .hb-contact .g { color: var(--brass-deep); }
.hb-fact { border: 1px dashed rgba(239,231,212,.28); color: rgba(239,231,212,.6); } .hb-fact .t { font-size: 11.5px; }
a.hb:hover, a.hb:focus-visible { box-shadow: 0 0 0 4px rgba(210,168,92,.35); outline: none; }
.honey-hint { position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); color: rgba(239,231,212,.55); pointer-events: none; white-space: nowrap; }
@media (max-width: 700px) { .hb { width: 96px; height: 96px; padding: 10px; } .hb-brand { width: 118px; height: 118px; } .hb .g { font-size: 22px; } .hb .t { font-size: 11px; } .honey-stage { height: 72vh; } .honey-legend { display: none; } }

/* ===== page openings: photo banners (services: banner + particle piece · industries: editorial banner ·
   company: statement over a photograph · contact: form over a photograph) ===== */
.page-hero .container:has(> .readout) { grid-template-columns: 1fr; }
.page-hero.banner, .statement.banner, .contact.banner { position: relative; isolation: isolate; overflow: hidden; }
.bgimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: saturate(.72); transform: translateZ(0); will-change: transform; } /* translateZ: Chrome skips painting a filtered, negative-z image until it gets its own layer */
.bgimg.top { object-position: center 22%; } .bgimg.bottom { object-position: center 80%; }
.bgimg.tint { filter: grayscale(1) contrast(1.05) brightness(.85); opacity: .5; }
.page-hero.banner::after, .statement.banner::after, .contact.banner::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11,35,26,.95) 0%, rgba(11,35,26,.8) 40%, rgba(11,35,26,.32) 100%), linear-gradient(0deg, rgba(11,35,26,.94) 0%, rgba(11,35,26,0) 42%); }
.page-hero.banner { min-height: 84vh; display: grid; align-items: center; padding: 150px 0 72px; }
.page-hero.banner .container { width: 100%; }
.page-hero.banner .lede { color: rgba(239,231,212,.8); }
.page-hero.banner .art canvas { aspect-ratio: 1 / 1; }
.page-hero.editorial { min-height: 90vh; align-items: end; padding-bottom: 72px; }
.page-hero.editorial::after { background: linear-gradient(0deg, rgba(11,35,26,.97) 0%, rgba(11,35,26,.62) 42%, rgba(11,35,26,.14) 100%); }
.page-hero.editorial .container { grid-template-columns: 1fr; }
.page-hero.editorial h1 { max-width: 12ch; font-size: clamp(50px, 7.6vw, 116px); }
.page-hero.editorial .lede { max-width: 58ch; }
.readout-wrap { background: var(--bg); color: var(--fg); border-bottom: 1px solid var(--line); }
.readout-wrap .readout { margin-top: 0; border-top: 0; border-bottom: 0; }
.readout-wrap .readout b { font-size: clamp(19px, 1.6vw, 24px); }
.statement.banner { padding: 200px 0 clamp(70px, 9vw, 140px); min-height: 74vh; display: grid; align-items: end; }
.statement.banner .lede { color: rgba(239,231,212,.8); }
.contact.banner { padding-bottom: clamp(60px, 7vw, 100px); }
.contact.banner::after { background: linear-gradient(90deg, rgba(11,35,26,.97) 0%, rgba(11,35,26,.93) 50%, rgba(11,35,26,.72) 100%); }
.contact.banner .lede { color: rgba(239,231,212,.8); }
@media (max-width: 960px) { .page-hero.banner { min-height: 0; padding-top: 120px; } .page-hero.editorial h1 { font-size: clamp(40px, 11vw, 72px); } .statement.banner { padding-top: 150px; min-height: 0; } }

/* ===== boards reel: tabbed, auto-advancing photo panels that slide across the screen (Infosys-style) ===== */
.breel { position: relative; margin-top: 36px; }
.breel-tabs { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--line); margin-bottom: 28px; }
.breel-tabs::-webkit-scrollbar { display: none; }
.breel-tabs button { all: unset; cursor: pointer; position: relative; padding: 14px 18px 16px 14px; font: 500 13.5px/1 var(--sans); color: var(--mut); white-space: nowrap; display: inline-flex; gap: 10px; align-items: center; transition: color .2s; }
.breel-tabs button b { font: 400 17px/1 var(--serif); color: var(--accent); }
.breel-tabs button i { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--accent); transform: scaleX(var(--p, 0)); transform-origin: left; }
.breel-tabs button:hover, .breel-tabs button[aria-selected="true"] { color: var(--fg); }
.breel-stage { position: relative; overflow: hidden; padding-left: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad))); cursor: grab; }
.breel-stage.drag { cursor: grabbing; } .breel-stage.drag .bpanel { pointer-events: none; }
.breel-track { display: flex; gap: 16px; transform: translate3d(var(--tx, 0px), 0, 0); transition: transform 1s var(--ease); will-change: transform; }
.breel-track.drag { transition: none; }
.bpanel { position: relative; flex: 0 0 min(76vw, 1080px); aspect-ratio: 16 / 8.6; overflow: hidden; color: #EFE7D4; border: 1px solid var(--line); background: #0E2A20; isolation: isolate; opacity: .5; transition: opacity .7s var(--ease); user-select: none; -webkit-user-select: none; }
.bpanel.on { opacity: 1; }
.bpanel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: saturate(.78); transform: scale(1); transition: transform 7s linear; -webkit-user-drag: none; }
.bpanel.on img { transform: scale(1.07); }
.bpanel::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11,35,26,.9) 0%, rgba(11,35,26,.5) 48%, rgba(11,35,26,.08) 100%), linear-gradient(0deg, rgba(11,35,26,.88) 0%, rgba(11,35,26,0) 55%); }
.bpanel-body { position: absolute; left: clamp(22px, 3.2vw, 48px); right: clamp(22px, 3.2vw, 48px); bottom: clamp(22px, 3vw, 44px); max-width: 62ch; display: grid; gap: 12px; justify-items: start; }
.bpanel-body .mono { color: var(--brass); }
.bpanel-body h3 { font-size: clamp(28px, 3.4vw, 50px); color: #EFE7D4; max-width: 16ch; }
.bpanel-body p:not(.mono) { color: rgba(239,231,212,.82); max-width: 54ch; font-size: 15.5px; }
.bpanel-body .btn { margin-top: 6px; }
.bpanel .idx { position: absolute; right: clamp(22px, 3.2vw, 48px); top: clamp(14px, 2.2vw, 28px); font: italic 400 clamp(56px, 7vw, 110px)/1 var(--serif); color: var(--brass); opacity: .85; }
.breel-ctl { display: flex; justify-content: flex-end; align-items: center; gap: 16px; margin-top: 18px; }
.breel-ctl .counter { font: 500 12px/1 var(--mono); letter-spacing: .14em; color: var(--mut); }
@media (max-width: 960px) { .bpanel { flex-basis: 84vw; aspect-ratio: 4 / 5; } .bpanel-body h3 { font-size: 28px; } .bpanel-body p:not(.mono) { font-size: 14.5px; } .breel-tabs button { padding: 12px 12px 14px 10px; font-size: 12.5px; } }

/* ===== home: ledger accordion · reach globe · insights index · careers marquee ===== */
.ledger { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.ledger h2 { margin-top: 12px; max-width: 14ch; } .ledger .lede { margin-top: 18px; max-width: 48ch; }
.ledger-rows { list-style: none; margin: 30px 0 0; padding: 0; border-top: 1px solid var(--line); }
.ledger-rows li { border-bottom: 1px solid var(--line); }
.ledger-rows button { all: unset; cursor: pointer; display: grid; grid-template-columns: 52px 1fr; align-items: baseline; width: 100%; padding: 18px 0; position: relative; box-sizing: border-box; }
.ledger-rows .n { font: italic 400 22px/1 var(--serif); color: var(--accent); }
.ledger-rows .t { font: 400 clamp(20px, 2vw, 27px)/1.2 var(--serif); color: var(--mut); transition: color .3s; }
.ledger-rows li.on .t, .ledger-rows button:hover .t { color: var(--fg); }
.ledger-rows button i { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--accent); transform: scaleX(var(--p, 0)); transform-origin: left; }
.ledger-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--ease); }
.ledger-body > div { overflow: hidden; padding-left: 52px; }
.ledger-body p { color: var(--mut); font-size: 15.5px; max-width: 52ch; }
.ledger-body .link { display: inline-block; margin: 12px 0 20px; font-size: 14px; }
.ledger-rows li.on .ledger-body { grid-template-rows: 1fr; }
.ledger-art { position: relative; margin: 0; aspect-ratio: 4 / 4.3; overflow: hidden; border: 1px solid var(--line); background: var(--bg3); }
.ledger-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.05); filter: saturate(.8); transition: opacity 1s var(--ease), transform 8s linear; }
.ledger-art img.on { opacity: 1; transform: scale(1); }
.reach { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.reach h2 { max-width: 15ch; } .reach .lede { margin-top: 18px; max-width: 48ch; }
.zones { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 28px; margin-top: 30px; border-top: 1px solid var(--line); padding-top: 24px; }
.zones div { display: grid; gap: 5px; } .zones .mono { color: var(--accent); } .zones b { font: 400 21px/1.2 var(--serif); } .zones small { color: var(--mut); font-size: 13.5px; }
.reach-art canvas { max-width: 560px; margin-inline: auto; }
.ins-ledger { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
.ins-feature { display: grid; gap: 18px; color: var(--fg); }
.ins-feature figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg3); }
.ins-feature img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8); transition: transform .9s var(--ease); }
.ins-feature:hover img { transform: scale(1.04); }
.ins-feature h3 { font-size: clamp(26px, 2.6vw, 38px); margin-top: 10px; max-width: 18ch; } .ins-feature p { color: var(--mut); margin-top: 8px; max-width: 56ch; }
.ins-feature .more { display: inline-block; margin-top: 12px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); } .ins-feature .more i { font-style: normal; margin-left: 6px; display: inline-block; transition: transform .25s; } .ins-feature:hover .more i { transform: translateX(5px); }
.ins-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.ins-list a { display: grid; grid-template-columns: 44px 1fr auto; gap: 16px; align-items: baseline; padding: 17px 0; border-bottom: 1px solid var(--line); color: var(--fg); transition: color .2s; }
.ins-list a:hover { color: var(--accent); }
.ins-list .n { font: italic 400 19px/1 var(--serif); color: var(--accent); } .ins-list .t { font: 400 clamp(18px, 1.55vw, 22px)/1.25 var(--serif); } .ins-list .m { font: 500 10.5px/1.4 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--faint); white-space: nowrap; }
.marquee { overflow: hidden; padding: 44px 0 48px; border-top: 1px solid var(--line); }
.marquee-track { display: flex; gap: 44px; align-items: center; white-space: nowrap; width: max-content; font: italic 400 clamp(38px, 6vw, 84px)/1 var(--serif); color: rgba(239,231,212,.9); animation: ib-marquee 46s linear infinite; }
.marquee-track i { font-style: normal; color: var(--brass); font-size: .55em; }
@keyframes ib-marquee { to { transform: translateX(-50%); } }
.marquee-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 30px; flex-wrap: wrap; }
.marquee-row p { color: var(--mut); max-width: 56ch; }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; } }
@media (max-width: 960px) { .ledger, .reach, .ins-ledger { grid-template-columns: 1fr; } .ledger-art { aspect-ratio: 16 / 10; } .zones { grid-template-columns: 1fr 1fr; } .ins-list a { grid-template-columns: 36px 1fr; } .ins-list .m { grid-column: 2; } }
@media (max-width: 600px) { .zones { grid-template-columns: 1fr; } }

/* ===== tabs: numbered tab list beside a photo panel (service pages, chapter 02) ===== */
.tabs { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.tabs-list { display: grid; border-top: 1px solid var(--line); }
.tabs-list button { all: unset; cursor: pointer; position: relative; display: grid; grid-template-columns: 44px 1fr; align-items: baseline; gap: 12px; padding: 17px 0; border-bottom: 1px solid var(--line); color: var(--mut); transition: color .25s; box-sizing: border-box; width: 100%; }
.tabs-list button b { font: italic 400 18px/1 var(--serif); color: var(--accent); }
.tabs-list button span { font: 400 clamp(18px, 1.7vw, 23px)/1.25 var(--serif); }
.tabs-list button i { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--accent); transform: scaleX(var(--p, 0)); transform-origin: left; }
.tabs-list button:hover, .tabs-list button[aria-selected="true"] { color: var(--fg); }
.tabs-panels { position: relative; }
.tab-panel { position: absolute; inset: 0; opacity: 0; transform: translateY(10px); transition: opacity .6s var(--ease), transform .6s var(--ease); pointer-events: none; display: grid; grid-template-rows: auto 1fr; border: 1px solid var(--line); background: var(--card); overflow: hidden; }
.tab-panel.on { position: relative; opacity: 1; transform: none; pointer-events: auto; }
.tab-panel figure { margin: 0; aspect-ratio: 16 / 8; overflow: hidden; background: var(--bg3); }
.tab-panel img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8); transform: scale(1.05); transition: transform 8s linear; }
.tab-panel.on img { transform: scale(1); }
.tab-body { padding: 22px 26px 26px; } .tab-body .mono { color: var(--accent); }
.tab-body h3 { font-size: clamp(22px, 2.2vw, 30px); margin: 8px 0 10px; } .tab-body p:not(.mono):not(.d) { color: var(--mut); font-size: 15.5px; max-width: 60ch; }
.tab-body .d { margin-top: 14px; font: 500 11px/1.5 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
@media (max-width: 960px) { .tabs { grid-template-columns: 1fr; } .tabs-list { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; border-top: 0; border-bottom: 1px solid var(--line); scrollbar-width: none; gap: 18px; } .tabs-list::-webkit-scrollbar { display: none; } .tabs-list button { grid-template-columns: auto auto; padding: 12px 0 14px; border-bottom: 0; white-space: nowrap; width: auto; } .tabs-list button span { font-size: 16px; } }
