/* World Steel Group - non-critical components (loaded without blocking render). */

/* ---------- Sections ---------- */
.section { padding: 56px 0; }
.section--light { background: var(--c-paper); color: var(--c-text-dark); }
.section--light .eyebrow { color: var(--c-accent-dark); }
.section__title { font-size: clamp(1.75rem, 4.5vw, 2.75rem); margin-bottom: 28px; }
.section__note { margin-top: 28px; color: var(--c-text-2); max-width: 70ch; }
@media (min-width: 1024px) { .section { padding: 88px 0; } }

/* ---------- Card grid separated by 2px rules ---------- */
.card-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line);
}
.section--light .card-grid { background: var(--c-paper-2); border-color: var(--c-paper-2); }
.card { background: var(--c-ink-2); padding: 24px; min-height: 96px; display: flex; align-items: center; }
.section--light .card { background: var(--c-paper); }
.card__title { font-family: var(--f-display); font-weight: 700; font-size: 1.375rem; line-height: 1.2; }

/* ---------- Band linking to worldsteelgroup.com ---------- */
.band { background: var(--c-ink-3); border-top: var(--line-w) solid var(--c-accent); border-bottom: var(--line-w) solid var(--c-line); }
.band__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-top: 48px; padding-bottom: 48px; }
.band__inner > div { flex: 1 1 320px; }
.band__title { font-size: clamp(1.5rem, 4vw, 2.25rem); }
.band p { color: var(--c-text-2); margin: 0; }

/* ---------- Footer (corporate, 4 columns) ---------- */
.site-footer { background: var(--c-ink); border-top: 3px solid var(--c-brand); font-size: .9375rem; }
.site-footer__grid { display: grid; padding-top: 48px; }
.site-footer__name { margin: 0 0 16px; }
.site-footer__name img { width: 190px; height: auto; }
.site-footer__about { margin: 0 0 24px; max-width: 36ch; color: var(--c-text-2); line-height: 1.6; }
.site-footer__brand { padding-bottom: 32px; }
.site-footer__heading { font-size: .9375rem; font-weight: 600; letter-spacing: .14em; color: var(--c-accent); margin: 0; }
.no-uppercase .site-footer__heading { letter-spacing: .02em; }
.site-footer a { color: var(--c-text); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.site-footer__list a { display: inline-flex; align-items: center; min-height: 40px; color: var(--c-text-2); }
.site-footer__list a:hover { color: #fff; }

/* Call-to-action band at the top of the footer (brand red). */
.site-footer:has(.footer-cta) { border-top: 0; }
.footer-cta { background: linear-gradient(100deg, var(--c-brand-dark) 0%, var(--c-brand) 60%, #CF2F3C 100%); color: #fff; }
.footer-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; padding-top: 40px; padding-bottom: 40px; }
.footer-cta__text { flex: 1 1 420px; min-width: 0; }
.footer-cta__title { margin: 0 0 8px; font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.05; color: #fff; }
.footer-cta__text p { margin: 0; color: rgba(255, 255, 255, .88); font-size: 1rem; }
.footer-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.site-footer .footer-cta__primary { gap: 10px; background: #fff; border: 1px solid #fff; color: var(--c-brand-dark); text-decoration: none; }
.site-footer .footer-cta__primary:hover { background: var(--c-ink); border-color: var(--c-ink); color: #fff; text-decoration: none; }
.site-footer .footer-cta__secondary { background: transparent; border: 1px solid rgba(255, 255, 255, .6); color: #fff; text-decoration: none; }
.site-footer .footer-cta__secondary:hover { border-color: #fff; background: rgba(255, 255, 255, .1); color: #fff; text-decoration: none; }
@media (max-width: 599px) {
  .footer-cta__actions { flex-direction: column; width: 100%; }
  .footer-cta__actions .btn { justify-content: center; width: 100%; }
}

/* Brand column: contact rows (small gold icon, caption label, value). */
.footer-contact { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.footer-contact li { display: flex; align-items: flex-start; gap: 12px; }
.footer-contact__icon { flex: none; display: grid; place-items: center; width: 20px; height: 22px; color: var(--c-accent); }
.footer-contact__text { display: grid; gap: 2px; min-width: 0; overflow-wrap: anywhere; }
.footer-contact__label { font-size: .6875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-text-2); }
.footer-contact__text a, .footer-contact__text span:last-child { color: var(--c-text); font-size: .9375rem; }

/* Link groups (native <details>: works without JS, keyboard accessible). Accordion below 1024px. */
.footer-group { border-top: 1px solid var(--c-line); }
.footer-group:last-child { border-bottom: 1px solid var(--c-line); }
.footer-group__summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; cursor: pointer; list-style: none; }
.footer-group__summary::-webkit-details-marker { display: none; }
.footer-group__summary:hover .site-footer__heading { color: var(--c-focus); }
.footer-group__toggle { position: relative; flex: none; width: 14px; height: 14px; margin-right: 4px; }
.footer-group__toggle::before, .footer-group__toggle::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 2px; background: var(--c-accent); transition: transform var(--t-fast); }
.footer-group__toggle::after { transform: rotate(90deg); }
.footer-group[open] .footer-group__toggle::after { transform: rotate(0); }
.footer-group > ul { padding-bottom: 16px; }

/* Credentials strip: certifications (left), social icons (right). */
.site-footer__cred { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 28px 0; }
.site-footer__certs { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.site-footer__cred-label { margin: 0; font-family: var(--f-display); text-transform: uppercase; font-size: .875rem; font-weight: 600; letter-spacing: .14em; color: var(--c-text-2); }
.site-footer__certs .tag-list li { font-size: .75rem; font-weight: 600; letter-spacing: .04em; padding: 6px 10px; }
.site-footer__certs .tag-list a { color: inherit; }
.site-footer__social { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; }
.site-footer__social a { display: grid; place-items: center; width: var(--tap); height: var(--tap); border: 1px solid var(--c-line); color: var(--c-text-2); }
.site-footer__social a:hover { border-color: var(--c-accent); color: var(--c-accent); text-decoration: none; }

@media (min-width: 1024px) {
  .site-footer__grid { grid-template-columns: minmax(0, 1.35fr); grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 40px; padding-top: 72px; padding-bottom: 48px; }
  .site-footer__brand { padding-bottom: 0; }
  /* Desktop: plain, always-open lists (no toggle) under a hairline heading. */
  .footer-group, .footer-group:last-child { border: 0; }
  .footer-group__summary { cursor: default; pointer-events: none; min-height: 0; padding-bottom: 14px; margin-bottom: 10px; border-bottom: 1px solid var(--c-line); }
  .footer-group__toggle { display: none; }
  .footer-group:not([open]) > :not(summary) { display: block; }
  .footer-group > ul { padding-bottom: 0; }
  .site-footer__list a { min-height: 32px; }
  .site-footer__cred { border-top: 1px solid var(--c-line); padding: 22px 0; }
}

.tag-list { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-list li { border: 1px solid var(--c-line); padding: 4px 10px; font-size: .875rem; color: var(--c-text-2); }
.section--light .tag-list li { border-color: var(--c-paper-2); color: var(--c-text-dark-2); }

/* Bottom bar: copyright + slogan | legal links and portals | language menu (right). */
.site-footer__bottom { color: var(--c-text-2); font-size: .8125rem; background: #081425; }
.site-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 24px; padding-top: 14px; padding-bottom: 14px; }
.site-footer__copy { margin: 0; flex: 1 1 auto; }
.site-footer__slogan { color: var(--c-accent); white-space: nowrap; }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: 0 20px; margin: 0; padding: 0; list-style: none; }
.site-footer__legal a { display: inline-flex; align-items: center; min-height: var(--tap); color: var(--c-text-2); }
.site-footer__legal a:hover { color: #fff; }
.site-footer__lang { margin-left: auto; }
@media (max-width: 1023px) {
  .site-footer__bottom-inner { flex-direction: column; align-items: flex-start; padding-top: 20px; padding-bottom: 20px; }
  .site-footer__lang { margin-left: 0; }
}

/* ---------- "Also available in ..." banner (fixed: no layout shift) ---------- */
.lang-banner {
  position: fixed; z-index: 85; left: 12px; right: 12px;
  bottom: calc(var(--mobile-bar-h) + 12px + env(safe-area-inset-bottom, 0px));
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px;
  padding: 12px 52px 12px 16px; background: var(--c-ink-2); color: var(--c-text);
  border: var(--line-w) solid var(--c-accent); box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
.lang-banner__text { margin: 0; }
.lang-banner__link { color: var(--c-accent); font-weight: 600; display: inline-flex; align-items: center; min-height: var(--tap); }
.lang-banner__close {
  position: absolute; top: 50%; right: 4px; transform: translateY(-50%);
  width: var(--tap); height: var(--tap); display: inline-flex; align-items: center; justify-content: center;
  background: none; border: 0; cursor: pointer; color: var(--c-text-2);
}
.lang-banner__close:hover { color: var(--c-text); }
@media (min-width: 1024px) { .lang-banner { left: auto; right: 24px; bottom: 24px; max-width: 520px; } }

/* ---------- Error page ---------- */
.error__suggest-title { font-size: 1.125rem; margin-top: 40px; color: var(--c-text-2); }
.error__suggest { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.error__suggest a { display: inline-flex; align-items: center; min-height: var(--tap); color: var(--c-accent); }
.debug { white-space: pre-wrap; background: var(--c-ink-3); padding: 16px; border: 1px solid var(--c-line); font-size: .8125rem; color: var(--c-text-2); }

/* Wide tables scroll inside their own box */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ---------- Breadcrumb ---------- */
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .875rem; color: var(--c-text-2); margin-bottom: 20px; }
.breadcrumb li { display: inline-flex; align-items: center; min-width: 0; max-width: 100%; }
.breadcrumb li:last-child span { display: block; min-height: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.breadcrumb li + li::before { content: '/'; margin: 0 10px; color: var(--c-line); }
.breadcrumb a { color: var(--c-text-2); display: inline-flex; min-height: var(--tap); align-items: center; }
.breadcrumb a:hover { color: var(--c-accent); }
.breadcrumb span { display: inline-flex; min-height: var(--tap); align-items: center; }

/* ---------- Sample-data notice ---------- */
.sample-badge {
  display: inline-flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; margin: 24px 0 0;
  padding: 10px 14px; border: 1px dashed var(--c-accent); color: var(--c-text-2); font-size: .875rem; max-width: 70ch;
}
.sample-badge strong { color: var(--c-accent); text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; }
.section--light .sample-badge { color: var(--c-text-dark-2); border-color: var(--c-accent-dark); }
.section--light .sample-badge strong { color: var(--c-accent-dark); }

/* ---------- Long-form content ---------- */
.prose { max-width: 75ch; font-size: 1.0625rem; line-height: 1.7; }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: clamp(1.5rem, 3.5vw, 2rem); margin-top: 1.6em; }
.prose h3 { font-size: 1.25rem; margin-top: 1.4em; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose ul { list-style: square; }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: .35em; }
.prose a { color: var(--c-accent-dark); text-decoration: underline; }
.prose table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.prose th, .prose td { border: 1px solid var(--c-paper-2); padding: 8px 12px; text-align: left; vertical-align: top; }
.prose th { background: var(--c-paper-2); }

/* =====================================================================
   Phase 3 components: section heads, tabs, tiles, stats, steps, desks,
   tables, FAQ, people, CTA band, landing stages.
   ===================================================================== */

/* ---------- Section head ---------- */
.section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 32px; }
.section-head__text { flex: 1 1 520px; max-width: 820px; }
.section-head .section__title { margin-bottom: 0; }
.section-head__lead { margin: 16px 0 0; color: var(--c-text-2); font-size: 1.0625rem; max-width: 65ch; }
.section--light .section-head__lead { color: var(--c-text-dark-2); }
.link-arrow {
  display: inline-flex; align-items: center; gap: 8px; min-height: var(--tap);
  color: var(--c-accent); font-weight: 600; text-decoration: none;
}
.link-arrow:hover { text-decoration: underline; }
.link-arrow .icon { transition: transform var(--t-fast); }
.link-arrow:hover .icon { transform: translateX(3px); }
.section--light .link-arrow { color: var(--c-accent-dark); }
.section--alt { background: var(--c-ink-2); }

/* ---------- Tabs (no-JS: list hidden, panels stacked) ---------- */
.tabs__lead { overflow-wrap: break-word; }
.tabs__list {
  display: none; gap: 0; overflow-x: auto; scrollbar-width: thin;
  border-bottom: var(--line-w) solid var(--c-line); margin-bottom: 32px;
}
.js .tabs__list { display: flex; }
.tabs__tab {
  flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 52px; padding: 0 18px;
  background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: calc(-1 * var(--line-w));
  color: var(--c-text-2); font-family: var(--f-display); font-weight: 600; font-size: 1.0625rem;
  text-transform: uppercase; letter-spacing: .02em; white-space: nowrap; cursor: pointer;
}
.no-uppercase .tabs__tab { text-transform: none; letter-spacing: 0; }
.tabs__tab:hover { color: var(--c-text); }
.tabs__tab[aria-selected="true"] { color: var(--c-accent); border-bottom-color: var(--c-accent); }
.tabs--light .tabs__list { border-bottom-color: var(--c-paper-2); }
.tabs--light .tabs__tab { color: var(--c-text-dark-2); }
.tabs--light .tabs__tab:hover { color: var(--c-text-dark); }
.tabs--light .tabs__tab[aria-selected="true"] { color: var(--c-accent-dark); border-bottom-color: var(--c-accent-dark); }
.tabs__panel { outline-offset: 4px; }
.tabs__panel + .tabs__panel { margin-top: 40px; padding-top: 40px; border-top: 1px solid var(--c-line); }
.tabs--light .tabs__panel + .tabs__panel { border-top-color: var(--c-paper-2); }
.tabs__panel-title { font-size: 1.5rem; margin-bottom: 16px; }
.js .tabs__panel[data-inactive] { display: none; }
.js .tabs__panel + .tabs__panel { margin-top: 0; padding-top: 0; border-top: 0; }
.js .tabs__panel-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Grids and tiles (2px rules between cells) ---------- */
.grid { display: grid; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.grid--wide { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.grid--narrow { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
/* Fixed 3-up grid for sets of 3 or 6 (e.g. Investor Desks), so no row is left half empty. */
@media (min-width: 640px) { .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.section--light .grid { background: var(--c-paper-2); border-color: var(--c-paper-2); }
.tile { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 28px 24px; background: var(--c-ink-2); min-width: 0; }
.section--alt .tile { background: var(--c-ink); }
.section--light .tile { background: var(--c-paper); }
.tile__icon { color: var(--c-accent); }
.section--light .tile__icon { color: var(--c-accent-dark); }
.tile__num { font-family: var(--f-display); font-weight: 700; font-size: 1rem; color: var(--c-accent); letter-spacing: .08em; }
.section--light .tile__num { color: var(--c-accent-dark); }
.tile__title { font-family: var(--f-display); font-weight: 700; font-size: 1.5rem; line-height: 1.15; margin: 0; }
.no-uppercase .tile__title { font-size: 1.25rem; line-height: 1.35; }
.tile__text { margin: 0; color: var(--c-text-2); }
.section--light .tile__text { color: var(--c-text-dark-2); }
.tile__more { margin-top: auto; padding-top: 4px; }
.tile__link { color: inherit; text-decoration: none; }
/* Whole tile clickable through the title link (keeps one link per tile). */
.tile__link::after { content: ''; position: absolute; inset: 0; }
.tile:has(.tile__link):hover { background: var(--c-ink-3); }
.section--light .tile:has(.tile__link):hover { background: #fff; }
.tile:has(.tile__link):hover .tile__title { color: var(--c-accent); }
.section--light .tile:has(.tile__link):hover .tile__title { color: var(--c-accent-dark); }
.tile:focus-within { outline: 3px solid var(--c-focus); outline-offset: -3px; }
.tile .tile__link:focus-visible { outline: none; }

/* Check list */
.check-list li { position: relative; padding-left: 30px; margin-bottom: 10px; }
.check-list li::before {
  content: ''; position: absolute; left: 2px; top: .45em; width: 14px; height: 8px;
  border-left: 2px solid var(--c-accent); border-bottom: 2px solid var(--c-accent); transform: rotate(-45deg);
}
.section--light .check-list li::before { border-color: var(--c-accent-dark); }
.check-list--cols { columns: 2 280px; column-gap: 40px; }
.check-list--cols li { break-inside: avoid; }

/* Chips (quick entries) */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex; align-items: center; gap: 8px; min-height: var(--tap); padding: 6px 14px;
  border: 1px solid var(--c-line); color: var(--c-text); text-decoration: none; font-size: .9375rem;
}
.chip:hover { border-color: var(--c-accent); color: var(--c-accent); }
.chip .icon { color: var(--c-accent); }
.badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border: 1px solid currentColor;
  font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.no-uppercase .badge { text-transform: none; letter-spacing: 0; }
.badge img { width: 18px; height: 13px; }
.placeholder { color: var(--c-text-2); font-style: italic; }
.section--light .placeholder { color: var(--c-text-dark-2); }
.section--light .muted, .section--light .section__note { color: var(--c-text-dark-2); }

/* ---------- Stats ---------- */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); }
.stat { background: var(--c-ink); padding: 28px 24px; }
.stat__value { display: block; font-family: var(--f-display); font-weight: 700; font-size: clamp(2.25rem, 4.5vw, 3.25rem); line-height: 1; color: var(--c-accent); white-space: nowrap; }
.stat__unit { display: block; margin-top: 8px; font-size: .4em; color: var(--c-text); }
.stat__label { display: block; margin-top: 10px; color: var(--c-text-2); }

/* ---------- Steps (investment journey, landing stages) ---------- */
.steps { display: grid; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); counter-reset: step; }
.section--light .steps { background: var(--c-paper-2); border-color: var(--c-paper-2); }
.step { background: var(--c-ink-2); padding: 24px; position: relative; }
.section--light .step { background: var(--c-paper); }
.step__num { display: block; font-family: var(--f-display); font-weight: 700; font-size: 2.75rem; line-height: 1; color: var(--c-accent); margin-bottom: 14px; }
.section--light .step__num { color: var(--c-accent-dark); }
.step__title { font-size: 1.25rem; margin-bottom: 8px; }
.step__text { margin: 0; color: var(--c-text-2); }
.section--light .step__text { color: var(--c-text-dark-2); }
@media (min-width: 1200px) { .steps--7 { grid-template-columns: repeat(7, minmax(0, 1fr)); } .steps--7 .step { padding: 22px 18px; } }

/* Landing: 6 stages with a connecting rail */
.stages { counter-reset: stage; display: grid; gap: 0; }
.stage { display: grid; grid-template-columns: 56px 1fr; gap: 0 20px; position: relative; padding-bottom: 32px; }
.stage::before { content: ''; position: absolute; left: 27px; top: 56px; bottom: 0; width: var(--line-w); background: var(--c-paper-2); }
.stage:last-child::before { display: none; }
.stage__num {
  width: 56px; height: 56px; display: flex; align-items: center; justify-content: center;
  background: var(--c-ink); color: var(--c-accent); font-family: var(--f-display); font-weight: 700; font-size: 1.5rem;
}
.stage__body { padding-top: 8px; }
.stage__title { font-size: clamp(1.375rem, 3vw, 1.75rem); margin-bottom: 8px; }
.stage__text { color: var(--c-text-dark-2); max-width: 62ch; }
.stage__items { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.stage__items li { border: 1px solid var(--c-paper-2); background: #fff; padding: 6px 12px; font-size: .9375rem; }
@media (min-width: 1024px) {
  .stages { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--line-w); background: var(--c-paper-2); border: var(--line-w) solid var(--c-paper-2); }
  .stage { grid-template-columns: 1fr; background: var(--c-paper); padding: 32px 28px; }
  .stage::before { display: none; }
  .stage__num { margin-bottom: 20px; }
  .stage__body { padding-top: 0; }
}

/* ---------- Investor desks ---------- */
.desk { background: var(--c-ink-2); padding: 28px 24px; display: flex; flex-direction: column; gap: 10px; position: relative; }
.section--light .desk { background: var(--c-paper); }
.desk__greeting { font-size: 1.25rem; font-weight: 600; color: var(--c-accent); margin: 0; line-height: 1.4; }
.section--light .desk__greeting { color: var(--c-accent-dark); }
.desk__flags { display: flex; flex-wrap: wrap; gap: 6px; }
.desk__flags img { width: 28px; height: 21px; box-shadow: 0 0 0 1px rgba(127,127,127,.35); }
.desk__meta { font-size: .9375rem; color: var(--c-text-2); margin: 0; }
.section--light .desk__meta { color: var(--c-text-dark-2); }

/* ---------- Split layout ---------- */
.split { display: grid; gap: 32px; }
@media (min-width: 1024px) { .split { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 64px; align-items: start; } .split--even { grid-template-columns: 1fr 1fr; } }
.panel { border: var(--line-w) solid var(--c-line); padding: 28px 24px; }
.section--light .panel { border-color: var(--c-paper-2); background: #fff; }
.panel__title { font-size: 1.25rem; margin-bottom: 12px; }
.dl { display: grid; grid-template-columns: minmax(0, max-content) minmax(0, 1fr); gap: 8px 20px; margin: 0; overflow-wrap: anywhere; }
@media (max-width: 479px) { .dl { grid-template-columns: minmax(0, 1fr); gap: 2px; } .dl dd { margin-bottom: 10px; } }
.dl dt { color: var(--c-text-2); }
.section--light .dl dt { color: var(--c-text-dark-2); }
.dl dd { margin: 0; font-weight: 600; }

/* ---------- Data table ---------- */
.data-table { width: 100%; border-collapse: collapse; font-size: .9375rem; min-width: 560px; }
.data-table th, .data-table td { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--c-line); }
.data-table thead th { font-family: var(--f-display); text-transform: uppercase; letter-spacing: .03em; color: var(--c-accent); border-bottom: var(--line-w) solid var(--c-accent); }
.no-uppercase .data-table thead th { text-transform: none; }
.section--light .data-table th, .section--light .data-table td { border-bottom-color: var(--c-paper-2); }
.section--light .data-table thead th { color: var(--c-accent-dark); border-bottom-color: var(--c-accent-dark); }

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--c-line); }
.section--light .faq { border-top-color: var(--c-paper-2); }
.faq__item { border-bottom: 1px solid var(--c-line); }
.section--light .faq__item { border-bottom-color: var(--c-paper-2); }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 12px 0; cursor: pointer; list-style: none; font-weight: 600; font-size: 1.0625rem; }
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: '+'; flex: none; font-size: 1.5rem; line-height: 1; color: var(--c-accent); }
.section--light .faq__q::after { color: var(--c-accent-dark); }
.faq__item[open] .faq__q::after { content: '\2212'; }
.faq__a { padding: 0 0 20px; max-width: 75ch; color: var(--c-text-2); }
.section--light .faq__a { color: var(--c-text-dark-2); }

/* ---------- People ---------- */
.person { display: flex; gap: 16px; align-items: flex-start; }
.person__photo { flex: none; width: 72px; height: 72px; background: var(--c-ink-3); border: 1px solid var(--c-line); display: flex; align-items: center; justify-content: center; color: var(--c-text-2); }
.section--light .person__photo { background: var(--c-paper-2); border-color: var(--c-paper-2); color: var(--c-text-dark-2); }
.person__name { font-weight: 700; margin: 0; }
.person__role { margin: 0; color: var(--c-text-2); }
.section--light .person__role { color: var(--c-text-dark-2); }

/* ---------- Project cards ---------- */
.project-card { background: var(--c-ink-2); display: flex; flex-direction: column; position: relative; }
.section--light .project-card { background: var(--c-paper); }
.project-card__media { aspect-ratio: 16 / 10; background: var(--c-ink-3); display: flex; align-items: center; justify-content: center; color: var(--c-line); overflow: hidden; }
.section--light .project-card__media { background: var(--c-paper-2); color: #cfc9bd; }
.project-card__media img { width: 100%; height: 100%; object-fit: cover; }
.project-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; }
.project-card__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .875rem; color: var(--c-text-2); margin: 0; }
.section--light .project-card__meta { color: var(--c-text-dark-2); }
.project-card .badge { color: var(--c-accent); align-self: flex-start; }
.section--light .project-card .badge { color: var(--c-accent-dark); }

/* ---------- Logo wall placeholder ---------- */
.logo-wall { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: var(--line-w); background: var(--c-paper-2); border: var(--line-w) solid var(--c-paper-2); }
.logo-wall li { background: var(--c-paper); min-height: 96px; display: flex; align-items: center; justify-content: center; color: var(--c-text-dark-2); font-size: .875rem; }

/* ---------- CTA band (accent) ---------- */
.cta-band { background: var(--c-accent); color: var(--c-ink); }
.cta-band__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; padding-top: 56px; padding-bottom: 56px; }
.cta-band__text { flex: 1 1 420px; max-width: 760px; }
.cta-band__title { font-size: clamp(1.75rem, 4.5vw, 2.75rem); margin-bottom: 12px; }
.cta-band p { margin: 0; font-size: 1.0625rem; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.btn--dark { background: var(--c-ink); color: var(--c-text); border-color: var(--c-ink); }
.btn--dark:hover { background: transparent; color: var(--c-ink); }
.btn--outline-dark { background: transparent; color: var(--c-ink); border-color: var(--c-ink); }
.btn--outline-dark:hover { background: var(--c-ink); color: var(--c-text); }
.btn--accent-dark { background: var(--c-accent-dark); border-color: var(--c-accent-dark); color: #fff; }
.btn--accent-dark:hover { background: transparent; color: var(--c-accent-dark); }

/* ---------- Page hero extras ---------- */
.hero__meta { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 24px; color: var(--c-text-2); }
.hero__quick { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--c-line); }
.hero__quick-title { font-size: .875rem; color: var(--c-text-2); margin-bottom: 12px; font-weight: 600; }
.anchor-nav { position: sticky; top: 0; z-index: 30; background: var(--c-ink-2); border-bottom: 1px solid var(--c-line); }
@media (min-width: 1024px) { .anchor-nav { top: var(--nav-h); } }
.anchor-nav__list { display: flex; overflow-x: auto; gap: 0; scrollbar-width: thin; }
.anchor-nav__list a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 14px; white-space: nowrap; color: var(--c-text-2); text-decoration: none; font-size: .9375rem; }
.anchor-nav__list a:hover { color: var(--c-accent); }

/* Sector block numbering (10-block frame) */
.block-num { font-family: var(--f-display); color: var(--c-accent); font-weight: 700; letter-spacing: .08em; margin-right: 10px; }
.section--light .block-num { color: var(--c-accent-dark); }

/* Case study: problem -> solution -> result */
.case { display: grid; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.case > div { background: var(--c-ink-2); padding: 24px; }
.case h4 { font-family: var(--f-display); text-transform: uppercase; color: var(--c-accent); font-size: 1rem; letter-spacing: .06em; margin-bottom: 8px; }
.no-uppercase .case h4 { text-transform: none; }
.case p { margin: 0; color: var(--c-text-2); }
.eyebrow--dark { color: var(--c-ink); }
.block-num--dark { color: var(--c-ink); }
.case .h4-like { font-family: var(--f-display); text-transform: uppercase; color: var(--c-accent); font-size: 1rem; letter-spacing: .06em; margin-bottom: 8px; }
.no-uppercase .case .h4-like { text-transform: none; }
.tabs__lead { font-size: 1.125rem; color: var(--c-text-dark); max-width: 60ch; }
.tabs__more { margin-top: 24px; }
.chips--light .chip { border-color: var(--c-paper-2); color: var(--c-text-dark); background: #fff; min-height: 36px; }
.tabs__lead--dark { color: var(--c-text); }
.desk__greeting--lg { font-size: clamp(1.375rem, 3vw, 1.75rem); margin-bottom: 12px; }
.desk__flags--named { flex-direction: column; gap: 6px; }
.desk__flags--named li { display: flex; align-items: center; gap: 10px; font-weight: 400; }
.project-card .tile__link::after { content: ''; position: absolute; inset: 0; }
.cert-wall { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); margin-bottom: 16px; }
.cert-wall li { background: var(--c-ink-2); }
.cert-wall a, .cert-wall span { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 72px; padding: 12px; font-family: var(--f-display); font-weight: 700; font-size: 1.125rem; color: var(--c-text); text-decoration: none; }
.cert-wall a:hover { color: var(--c-accent); background: var(--c-ink-3); }
.stats--2 { grid-template-columns: 1fr; align-self: start; }
.cert-group__title { font-size: 1.25rem; margin: 32px 0 16px; color: var(--c-accent-dark); }
.cert-group__title:first-of-type { margin-top: 0; }
/* Landing page */
.landing-hero__title { max-width: 22ch; }
.landing-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); margin-top: 40px; max-width: 880px; }
.landing-facts li { background: var(--c-ink); padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.landing-facts strong { font-family: var(--f-display); font-size: 2.25rem; line-height: 1; color: var(--c-accent); }
.landing-facts span { color: var(--c-text-2); font-size: .9375rem; }
.page-items { margin-top: 40px; }
.landing-body { margin-top: 40px; }
.home-esg { margin-top: 56px; }
.home-stats { padding: 0; }
.home-stats .stats { border-top: 0; border-bottom: 0; }

/* ---------- Phase 4: filters, form fields, pagination, project page ---------- */
.filters { margin-bottom: 32px; padding: 20px; border: var(--line-w) solid var(--c-paper-2); background: #fff; }
.filters__title { margin: 0 0 16px; font-size: 1rem; font-weight: 700; }
.filters__fields { display: grid; gap: 12px 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.filters__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin: 16px 0 0; }
.filters__count { margin: 0 0 20px; font-size: 1rem; font-weight: 600; color: var(--c-text-dark-2); }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field__label { font-size: .875rem; font-weight: 600; }
.field__control {
  width: 100%; min-height: var(--tap); padding: 8px 12px; border: 1px solid #8A8F96; border-radius: 0;
  background: #fff; color: var(--c-text-dark); font: inherit;
}
.field__control:focus-visible { outline: 3px solid var(--c-accent-dark); outline-offset: 1px; }
.pagination { margin-top: 32px; }
.pagination__list { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pagination__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: var(--tap); min-height: var(--tap);
  padding: 0 12px; border: 1px solid var(--c-paper-2); color: inherit; text-decoration: none; background: #fff;
}
.pagination__link:hover { border-color: var(--c-accent-dark); }
.pagination__link.is-current { background: var(--c-ink); color: #fff; border-color: var(--c-ink); font-weight: 700; }
.pagination__gap { padding: 0 4px; }
.project-title { font-size: clamp(2rem, 5vw, 3.5rem); overflow-wrap: anywhere; }
.project-facts a { color: var(--c-accent-dark); }
.project-photo--empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; aspect-ratio: 4 / 3;
  background: var(--c-paper-2); color: var(--c-text-dark-2); text-align: center; padding: 24px;
}
.project-photo--empty p { margin: 0; }
.project-gallery { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.project-gallery li:first-child { grid-column: 1 / -1; }
.project-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
[aria-busy="true"] { opacity: .55; transition: opacity .15s; }

/* ---------- Phase 4: news, careers ---------- */
.news-nav { margin-bottom: 32px; }
.chip[aria-current="page"] { background: var(--c-ink); border-color: var(--c-ink); color: #fff; font-weight: 600; }
.chip__count { opacity: .8; font-weight: 400; }
.news-card { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 28px 24px; background: var(--c-ink-2); min-width: 0; }
.section--light .news-card { background: var(--c-paper); }
.news-card__img { display: block; width: calc(100% + 48px); max-width: none; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin: -28px -24px 4px; }
.news-card__meta { margin: 0; font-size: .875rem; font-weight: 600; color: var(--c-accent); }
.section--light .news-card__meta { color: var(--c-accent-dark); }
.news-card__title { margin: 0; font-family: var(--f-display); font-weight: 700; font-size: 1.375rem; line-height: 1.2; }
.news-card__link { color: inherit; text-decoration: none; }
.news-card__link::after { content: ''; position: absolute; inset: 0; }
.news-card__link:hover, .news-card__link:focus-visible { text-decoration: underline; }
.news-card__text { margin: 0; color: var(--c-text-2); }
.section--light .news-card__text { color: var(--c-text-dark-2); }
.eyebrow__link { color: inherit; }

/* News landing (news.index): sections configured in the admin, five layouts. */
.newsl-cats ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; padding: 0; list-style: none; }
.newsl-cats a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border: 1px solid var(--c-line); color: var(--c-text); text-decoration: none; font-weight: 600; font-size: .9375rem; }
.newsl-cats a span { color: var(--c-text-2); font-weight: 400; }
.newsl-cats a:hover { border-color: var(--c-accent); color: var(--c-accent); }
.newsl { padding-block: 56px; }
.newsl--paper { background: var(--c-paper-2); }
.newsl-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 28px; padding-bottom: 14px; border-bottom: 3px solid var(--c-brand); }
.newsl-head__title { margin: 0; font-family: var(--f-display); font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 700; line-height: 1.1; text-transform: uppercase; }
.no-uppercase .newsl-head__title { text-transform: none; }
.newsl-head__sub { margin: 6px 0 0; max-width: 70ch; color: var(--c-text-2); }
.section--light .newsl-head__sub { color: var(--c-text-dark-2); }
.newsl-head__more { display: inline-flex; align-items: center; gap: 8px; min-height: var(--tap); font-family: var(--f-display); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-accent); text-decoration: none; }
.section--light .newsl-head__more { color: var(--c-brand); }
.newsl-head__more:hover { text-decoration: underline; }
.newsl-meta { display: flex; flex-wrap: wrap; gap: 0 4px; margin: 0; font-size: .8125rem; font-weight: 600; color: var(--c-text-2); }
.section--light .newsl-meta { color: var(--c-text-dark-2); }
.newsl-meta__cat { color: var(--c-accent); text-transform: uppercase; letter-spacing: .06em; }
.section--light .newsl-meta__cat { color: var(--c-brand); }
.newsl-link { color: inherit; text-decoration: none; }
.newsl-link::after { content: ''; position: absolute; inset: 0; }
.newsl-link:hover, .newsl-link:focus-visible { text-decoration: underline; }
.newsl-img--empty { display: block; background: linear-gradient(135deg, var(--c-ink-3), var(--c-ink)); }
/* hero */
.newsl-hero-grid { display: grid; gap: 24px; }
@media (min-width: 1024px) { .newsl-hero-grid { grid-template-columns: 7fr 5fr; gap: 32px; } }
.newsl-lead { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 360px; overflow: hidden; color: #fff; background: var(--c-ink); }
@media (min-width: 1024px) { .newsl-lead { min-height: 520px; } }
.newsl-lead__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.newsl-lead:hover .newsl-lead__img { transform: scale(1.03); }
.newsl-lead::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11, 26, 48, 0) 30%, rgba(11, 26, 48, .92) 85%); }
.newsl-lead__body { display: grid; gap: 10px; padding: 28px; border-left: 4px solid var(--c-brand); margin: 0 0 28px; }
.newsl-lead .newsl-meta, .newsl-lead .newsl-meta__cat { color: #E9D29A; }
.newsl-lead__title { margin: 0; font-family: var(--f-display); font-size: clamp(1.625rem, 3vw, 2.5rem); font-weight: 700; line-height: 1.1; }
.newsl-lead__text { margin: 0; max-width: 60ch; color: #D7DCE4; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.newsl-side { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; align-content: start; }
.newsl-side__item { position: relative; display: grid; grid-template-columns: 132px 1fr; gap: 16px; align-items: start; padding: 16px 0; border-bottom: 1px solid #D5D9E0; }
.newsl-side__item:first-child { padding-top: 0; }
.newsl-side__img { width: 132px; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.newsl-side__title { margin: 4px 0 0; font-size: 1.0625rem; line-height: 1.35; }
/* list */
.newsl-rows { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.newsl-row { position: relative; display: grid; gap: 16px; padding: 20px 0; border-bottom: 1px solid #D5D9E0; }
.newsl--navy .newsl-row, .newsl--navy .newsl-side__item { border-color: var(--c-line); }
.newsl-row:first-child { padding-top: 0; }
@media (min-width: 768px) { .newsl-row { grid-template-columns: 280px 1fr; gap: 28px; align-items: center; } }
.newsl-row__img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.newsl-row__body { display: grid; gap: 8px; }
.newsl-row__title { margin: 0; font-family: var(--f-display); font-size: 1.5rem; font-weight: 700; line-height: 1.2; }
.newsl-row__text { margin: 0; color: var(--c-text-2); max-width: 75ch; }
.section--light .newsl-row__text { color: var(--c-text-dark-2); }
/* split */
.newsl-split { display: grid; gap: 28px; }
@media (min-width: 1024px) { .newsl-split { grid-template-columns: 7fr 5fr; gap: 40px; } }
.newsl-card { position: relative; display: grid; gap: 12px; align-content: start; }
.newsl-card__img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.newsl-card__title { margin: 0; font-family: var(--f-display); font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 700; line-height: 1.15; }
.newsl-card__text { margin: 0; color: var(--c-text-2); }
.section--light .newsl-card__text { color: var(--c-text-dark-2); }
.newsl-titles { display: grid; margin: 0; padding: 0; list-style: none; align-content: start; }
.newsl-titles li { position: relative; display: grid; gap: 6px; padding: 18px 0; border-bottom: 1px solid var(--c-line); }
.section--light .newsl-titles li { border-color: #D5D9E0; }
.newsl-titles li:first-child { padding-top: 0; }
.newsl-titles__title { margin: 0; font-size: 1.125rem; line-height: 1.35; }
/* compact */
.newsl-compact { display: grid; gap: 0 40px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .newsl-compact { grid-template-columns: 1fr 1fr; } }
.newsl-compact li { position: relative; display: grid; grid-template-columns: 48px 1fr; gap: 12px; padding: 16px 0; border-bottom: 1px solid #D5D9E0; }
.newsl--navy .newsl-compact li { border-color: var(--c-line); }
.newsl-compact__num { font-family: var(--f-display); font-size: 1.75rem; font-weight: 700; line-height: 1; color: var(--c-brand); }
.newsl-compact .newsl-meta { margin-top: 6px; }
@media (prefers-reduced-motion: reduce) { .newsl-lead__img { transition: none; } }
.article__cover { margin: 0 0 32px; }
.article__cover img { display: block; width: 100%; height: auto; }
.article__lead { font-size: 1.25rem; font-weight: 600; }
.article__tags { margin-top: 32px; }
.job-list { display: grid; gap: 1px; background: var(--c-paper-2); border: 1px solid var(--c-paper-2); }
.job { position: relative; display: grid; gap: 8px 24px; padding: 24px; background: var(--c-paper); }
@media (min-width: 768px) { .job { grid-template-columns: minmax(0, 1fr) auto; align-items: center; } }
.job__title { margin: 0; font-family: var(--f-display); font-size: 1.375rem; line-height: 1.2; }
.job__link { color: inherit; text-decoration: none; }
.job__link::after { content: ''; position: absolute; inset: 0; }
.job__link:hover, .job__link:focus-visible { text-decoration: underline; }
.job__meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; color: var(--c-text-dark-2); font-size: .9375rem; }
.job__deadline { margin: 0; font-weight: 600; color: var(--c-text-dark-2); }
.job--closed .job__deadline { color: #8A2B1F; }
.section__title--sub { margin-top: 48px; font-size: clamp(1.375rem, 3vw, 1.75rem); }
.section__actions { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 12px; }
.notice { margin-top: 24px; padding: 12px 16px; border-left: 4px solid var(--c-accent-dark); background: #fff; color: var(--c-text-dark); }

/* ---------- Phase 4: lead forms, contact page ---------- */
.contact-layout { display: grid; gap: 40px; }
@media (min-width: 1024px) { .contact-layout { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 64px; align-items: start; } }
.contact-info__title { font-size: 1.25rem; margin: 0 0 16px; }
.contact-info a { color: var(--c-accent-dark); }
.contact-desks { margin-top: 32px; }
.lead-form-panel { background: var(--c-paper); color: var(--c-text-dark); padding: 24px; }
@media (min-width: 640px) { .lead-form-panel { padding: 32px; } }
.lead-form__fields { display: grid; gap: 16px 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.lead-form--compact .lead-form__fields { grid-template-columns: 1fr; }
.field--wide { grid-column: 1 / -1; }
.field__control--area { min-height: 140px; resize: vertical; }
.field__control[aria-invalid="true"] { border: 2px solid #A3261A; }
.field__error { margin: 0; color: #A3261A; font-size: .875rem; font-weight: 600; }
.field__error::before { content: '! '; }
.field--check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; align-items: start; }
.field--check .field__error { grid-column: 2; }
.field__check { width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--c-ink); }
.field__label--check { font-weight: 400; font-size: .9375rem; line-height: 1.5; }
.field__label--check a { color: var(--c-accent-dark); }
.lead-form__star { color: #A3261A; }
.lead-form__required { margin: 0 0 16px; font-size: .875rem; color: var(--c-text-dark-2); }
.lead-form__actions { margin: 24px 0 0; }
.lead-form__submit[aria-disabled="true"] { opacity: .7; cursor: progress; }
.lead-form__note { margin: 12px 0 0; font-size: .8125rem; color: var(--c-text-dark-2); }
.lead-form__hp, .fg-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.fg-challenge { margin: 16px 0; padding: 16px; border: var(--line-w) solid var(--c-accent); background: var(--c-paper-2); color: var(--c-text-dark); }
.fg-challenge__intro { margin: 0 0 8px; font-weight: 600; }
.fg-challenge__label { display: block; margin-bottom: 6px; }
.fg-challenge__input { min-height: var(--tap); max-width: 12rem; font-size: 1.125rem; letter-spacing: .2em; }
.form-alert { margin-bottom: 24px; padding: 16px 20px; border-left: 4px solid #A3261A; background: #FDF1EF; color: var(--c-text-dark); }
.form-alert:focus { outline: 3px solid var(--c-accent-dark); outline-offset: 2px; }
.form-alert__title { margin: 0 0 8px; font-size: 1rem; }
.form-alert__list { margin: 0; padding-left: 1.2em; list-style: disc; }
.form-alert__list a { color: #A3261A; }
.cf-turnstile { margin-top: 16px; }
.steps-list { counter-reset: step; display: grid; gap: 12px; max-width: 70ch; margin-bottom: 24px; }
.steps-list li { counter-increment: step; position: relative; padding-left: 44px; min-height: 32px; }
.steps-list li::before { content: counter(step); position: absolute; left: 0; top: -2px; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; background: var(--c-ink); color: #fff; font-weight: 700; }
.download-panel { margin-bottom: 40px; }
.doc-list { display: grid; gap: 1px; background: var(--c-paper-2); border: 1px solid var(--c-paper-2); }
.doc { display: grid; gap: 12px 24px; padding: 24px; background: var(--c-paper); }
@media (min-width: 768px) { .doc { grid-template-columns: minmax(0, 1fr) auto; align-items: center; } }
.doc__title { margin: 0; font-size: 1.25rem; }
.doc__meta { margin: 4px 0 0; font-size: .875rem; color: var(--c-text-dark-2); }
.logo-wall .logo-wall__item { padding: 12px 16px; background: #fff; }
.logo-wall .logo-wall__item img { max-width: 100%; max-height: 72px; width: auto; height: auto; object-fit: contain; }
/* Factory landing */
.landing-facts .factory-fact__text { font-size: 1.375rem; line-height: 1.2; }
.cert-wall--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 720px) { .cert-wall--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 599px) { .landing-facts .factory-fact--wide { grid-column: 1 / -1; } }
.logo-wall--logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 600px) { .logo-wall--logos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .logo-wall--logos { grid-template-columns: repeat(8, minmax(0, 1fr)); } }

/* ---------- Solution landing pages (BIM, steel solutions for Vietnam) ---------- */
.solution-hero { position: relative; overflow: hidden; isolation: isolate; }
.solution-hero__img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.solution-hero--image::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11, 26, 48, .96) 0%, rgba(11, 26, 48, .88) 45%, rgba(11, 26, 48, .55) 100%); }
.solution-hero__inner { padding-top: 64px; padding-bottom: 72px; }
.solution-hero__title { max-width: 20ch; }
.solution-hero .landing-facts li { background: rgba(11, 26, 48, .82); }
@media (max-width: 767px) { .solution-hero--image::before { background: rgba(11, 26, 48, .9); } }

.solution-toc { position: sticky; top: var(--nav-h, 0px); z-index: 20; background: var(--c-ink-2); border-bottom: 1px solid var(--c-line); }
.solution-toc__list { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: thin; padding-top: 6px; padding-bottom: 6px; }
.solution-toc__list li { flex: 0 0 auto; }
.solution-toc__list a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; color: var(--c-text-2); text-decoration: none; font-weight: 600; font-size: .9375rem; white-space: nowrap; }
.solution-toc__list a:hover, .solution-toc__list a:focus-visible { color: var(--c-text); background: var(--c-ink-3); }
.solution-toc__num { font-family: var(--f-display); color: var(--c-accent); font-size: .875rem; letter-spacing: .06em; }
.solution-section { scroll-margin-top: calc(var(--nav-h, 0px) + 64px); }
@media (max-width: 1023px) { .solution-toc { position: static; } }

.solution-tile__icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border: 1px solid currentColor; }
.solution-tiles .tile__title { font-size: 1.375rem; }

.solution-split { display: grid; gap: 40px; }
@media (min-width: 1024px) { .solution-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; } }
.solution-roles { display: grid; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); }
.section--light .solution-roles { background: var(--c-paper-2); border-color: var(--c-paper-2); }
.solution-role { display: grid; grid-template-columns: 56px 1fr; gap: 18px; padding: 24px; background: var(--c-ink-2); }
.section--light .solution-role { background: var(--c-paper); }
.solution-role__icon { display: grid; place-items: center; width: 56px; height: 56px; background: var(--c-ink); color: var(--c-accent); }
.section--light .solution-role__icon { background: var(--c-paper-2); color: var(--c-accent-dark); }
.solution-role__title { font-family: var(--f-display); font-weight: 700; font-size: 1.375rem; line-height: 1.15; margin: 0 0 6px; }
.solution-role__text { margin: 0; color: var(--c-text-2); }
.section--light .solution-role__text { color: var(--c-text-dark-2); }

/* CDE diagram: shared model in the middle, parties around it (decorative). */
.solution-cde { position: relative; width: min(100%, 320px); aspect-ratio: 1; margin-top: 36px; }
.solution-cde::before { content: ''; position: absolute; inset: 14%; border: 1px dashed var(--c-accent); border-radius: 50%; opacity: .6; }
.solution-cde__core { position: absolute; inset: 32%; display: grid; place-items: center; align-content: center; gap: 4px; background: var(--c-ink); color: var(--c-accent); border-radius: 50%; box-shadow: 0 0 0 10px rgba(212, 164, 58, .12); }
.solution-cde__core strong { font-family: var(--f-display); color: var(--c-text); letter-spacing: .08em; }
.solution-cde__node { position: absolute; display: grid; place-items: center; width: 56px; height: 56px; background: var(--c-paper); color: var(--c-accent-dark); border: 1px solid var(--c-accent-dark); border-radius: 50%; }
.section--alt .solution-cde__node, .solution-section:not(.section--light) .solution-cde__node { background: var(--c-ink-2); color: var(--c-accent); border-color: var(--c-accent); }
.solution-cde__node--1 { top: 2%; left: 50%; transform: translateX(-50%); }
.solution-cde__node--2 { bottom: 10%; left: 4%; }
.solution-cde__node--3 { bottom: 10%; right: 4%; }

.solution-docs { display: grid; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); }
.section--light .solution-docs { background: var(--c-paper-2); border-color: var(--c-paper-2); }
@media (min-width: 900px) { .solution-docs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.solution-doc { display: grid; grid-template-columns: 48px 1fr; gap: 16px; padding: 24px; background: var(--c-ink-2); border-left: 4px solid var(--c-brand); }
.section--light .solution-doc { background: var(--c-paper); }
.solution-doc__icon { color: var(--c-accent); }
.section--light .solution-doc__icon { color: var(--c-accent-dark); }
.solution-doc__title { font-family: var(--f-display); font-weight: 700; font-size: 1.25rem; line-height: 1.2; margin: 0 0 6px; overflow-wrap: anywhere; }
.solution-doc__text { margin: 0; color: var(--c-text-2); }
.section--light .solution-doc__text { color: var(--c-text-dark-2); }
.solution-doc__items { margin: 12px 0 0; padding-left: 18px; display: grid; gap: 6px; }
.solution-docs__note { font-size: .9375rem; }
/* Steps on a dark section: dark cards instead of the paper ones used on light sections. */
.solution-section:not(.section--light) .stages { background: var(--c-line); border-color: var(--c-line); }
.solution-section:not(.section--light) .stage { background: var(--c-ink-2); }
.solution-section:not(.section--light) .stage::before { background: var(--c-line); }
.solution-section:not(.section--light) .stage__num { background: var(--c-ink); box-shadow: inset 0 0 0 1px var(--c-accent); }
.solution-section:not(.section--light) .stage__text { color: var(--c-text-2); }
.solution-section:not(.section--light) .stage__items li { background: var(--c-ink); border-color: var(--c-line); color: var(--c-text-2); }
.solution-section .stage__title { font-family: var(--f-display); font-weight: 700; line-height: 1.15; }
@media (max-width: 1023px) { .solution-section:not(.section--light) .stage, .solution-section:not(.section--light) .stages { background: transparent; border-color: transparent; } }

/* ---------- Homepage (2026-10 redesign): navy + red #A50000 ----------
 * Colour tokens are re-pointed inside the homepage <main>; Investment journey, FDI map and
 * "Why World Steel" (.home-keep) keep the site palette unchanged. */
.page-home main { --c-brand: #A50000; --c-brand-dark: #860000; --c-accent: #8DB9EE; --c-accent-dark: #A50000; }
.page-home main .home-keep { --c-brand: #C41D30; --c-brand-dark: #A8182A; --c-accent: #D4A43A; --c-accent-dark: #7A5A1E; }
.page-home main .eyebrow { letter-spacing: .14em; }
.page-home main .section-head .section__title { position: relative; }
.page-home main .section:not(.home-keep) .section-head { padding-left: 20px; border-left: 4px solid var(--home-red); }

/* Stats strip under the hero */
.page-home .home-stats { background: var(--c-ink-2); border-bottom: 1px solid var(--c-line); }
.page-home .home-stats .stat__value { color: #fff; }
.page-home .home-stats .stat { border-left: 3px solid var(--home-red); padding-left: 16px; }

/* Investor desks: one row of six cards */
.home-desks { background: var(--c-ink); }
.home-desks__row { display: grid; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.home-desk { display: flex; flex-direction: column; gap: 6px; padding: 28px 24px; background: var(--c-ink-2); position: relative; }
.home-desk::before { content: ''; position: absolute; left: 0; top: 0; width: 0; height: 3px; background: var(--home-red); transition: width .25s ease; }
.home-desk:hover::before, .home-desk:focus-within::before { width: 100%; }
.home-desk__greeting { margin: 0 0 6px; font-family: var(--f-display); font-weight: 600; font-size: 1.5rem; line-height: 1.15; color: var(--home-blue); overflow-wrap: anywhere; }
.home-desk__title { margin: 0; font-size: 1.1875rem; line-height: 1.25; font-family: var(--f-body); font-weight: 700; text-transform: none; letter-spacing: 0; }
.home-desk__meta { margin: 0; color: var(--c-text-2); font-size: .875rem; }
.home-desk__flags { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 12px; }
.home-desk__flags img { display: block; border: 1px solid rgba(255,255,255,.2); }
.home-desk__link { margin-top: auto; color: var(--home-blue); font-weight: 600; text-decoration: none; }
.home-desk__link:hover { color: #fff; }
.home-desk__link::after { content: ''; position: absolute; inset: 0; }

/* Sector selector: panel + featured project */
.home-sectors { background: var(--c-ink-2); }
.home-sectors .tabs__list { gap: 8px; border-bottom: 0; flex-wrap: wrap; overflow: visible; }
.home-sectors .tabs__tab { min-height: 48px; border: 1px solid var(--c-line); margin: 0; color: var(--c-text); font-family: var(--f-body); text-transform: none; letter-spacing: 0; font-size: .9375rem; }
.home-sectors .tabs__tab:hover { border-color: var(--home-blue); }
.home-sectors .tabs__tab[aria-selected="true"] { background: var(--home-red); border-color: var(--home-red); color: #fff; }
.home-sector { display: grid; border: 1px solid var(--c-line); background: var(--c-ink); }
@media (min-width: 1024px) { .home-sector { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); } }
.home-sector__main { padding: 32px 28px; }
@media (min-width: 1024px) { .home-sector__main { padding: 44px 48px; } }
.home-sector__title { margin: 0 0 10px; font-family: var(--f-display); font-weight: 700; font-size: clamp(1.75rem, 3.4vw, 2.5rem); line-height: 1.05; text-transform: uppercase; }
.no-uppercase .home-sector__title { text-transform: none; }
.home-sector__lead { color: var(--c-text-2); max-width: 70ch; }
.home-sector__cols { display: grid; gap: 24px 40px; margin-top: 24px; }
@media (min-width: 768px) { .home-sector__cols { grid-template-columns: 1fr 1fr; } }
.home-sector__label { display: block; margin: 0 0 8px; font-family: var(--f-display); font-weight: 600; font-size: .875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--home-blue); }
.home-sector__list li { position: relative; padding: 10px 0 10px 20px; border-bottom: 1px solid var(--c-line); }
.home-sector__list li::before { content: ''; position: absolute; left: 0; top: 19px; width: 7px; height: 7px; background: var(--home-red); }
.home-sector__codes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 28px; }
.home-sector__codes .home-sector__label { margin: 0; color: var(--c-text-2); }
.home-sector__codes ul { display: flex; flex-wrap: wrap; gap: 8px; }
.home-sector__codes li { padding: 6px 12px; border: 1px solid var(--c-line); font-size: .875rem; }
.home-sector__case { display: flex; flex-direction: column; border-top: 1px solid var(--c-line); }
@media (min-width: 1024px) { .home-sector__case { border-top: 0; border-left: 1px solid var(--c-line); } }
.home-sector__media { aspect-ratio: 16 / 10; background: var(--c-ink-3); overflow: hidden; }
.home-sector__media img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) { .home-sector__media { flex: 1; aspect-ratio: auto; min-height: 260px; } }
.home-sector__case-body { padding: 24px 28px; }
.home-sector__case-meta { margin: 0 0 6px; color: var(--c-text-2); font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; }
.home-sector__case-title { margin: 0 0 12px; font-family: var(--f-display); font-weight: 700; font-size: 1.5rem; line-height: 1.15; }
.home-sector__case-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; }
.home-sector__case-links a { color: var(--home-blue); font-weight: 600; text-decoration: none; }
.home-sector__case-links a:hover { color: #fff; }

/* Contract models: vertical tab list on desktop */
.home-models { background: #F3F4F6; }
@media (min-width: 1024px) {
  .js .tabs--vertical { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(0, 2.2fr); gap: 40px; align-items: start; }
  .js .tabs--vertical .tabs__list { flex-direction: column; border-bottom: 0; margin: 0; overflow: visible; }
  .tabs--vertical .tabs__panel { grid-column: 2; grid-row: 1; }
}
.tabs--vertical .tabs__list { border-bottom-color: #D5D9E0; }
.tabs--vertical .tabs__tab { justify-content: flex-start; min-height: 60px; padding: 0 22px; color: var(--c-text-dark); font-family: var(--f-body); font-weight: 600; font-size: 1.0625rem; text-transform: none; letter-spacing: 0; border-bottom: 1px solid #D5D9E0; white-space: normal; text-align: left; }
.tabs--vertical .tabs__tab:hover { color: var(--home-red); }
.tabs--vertical .tabs__tab[aria-selected="true"] { background: var(--c-ink); color: #fff; border-bottom-color: var(--c-ink); box-shadow: inset 4px 0 0 var(--home-red); }
.home-model { background: #fff; border: 1px solid #D5D9E0; padding: 28px; }
@media (min-width: 1024px) { .home-model { padding: 44px 48px; } }
.home-model__title { margin: 0 0 10px; font-family: var(--f-display); font-weight: 700; font-size: clamp(1.625rem, 3vw, 2.25rem); line-height: 1.1; text-transform: uppercase; color: var(--c-text-dark); }
.no-uppercase .home-model__title { text-transform: none; }
.home-model__lead, .home-model__fit { color: var(--c-text-dark-2); max-width: 75ch; }
.home-model__label { margin: 22px 0 8px; font-family: var(--f-display); font-weight: 600; font-size: .875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--home-red); }
.home-model__scope { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.home-model__scope li { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; background: #F3F4F6; color: var(--c-text-dark); }
.home-model__scope svg { flex: 0 0 auto; color: var(--home-red); margin-top: 2px; }
.home-model__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin: 28px 0 0; }
.home-models .link-arrow { color: var(--c-ink); }

/* Process: six steps */
.home-process { background: var(--c-ink); }
.home-process__list { display: grid; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); counter-reset: none; }
.home-process__step { position: relative; padding: 28px 24px 32px; background: var(--c-ink-2); }
.home-process__step::after { content: ''; position: absolute; left: 24px; right: 24px; bottom: 0; height: 3px; background: var(--home-red); transform: scaleX(.18); transform-origin: left; transition: transform .3s ease; }
.home-process__step:hover::after { transform: scaleX(1); }
.home-process__num { display: block; margin-bottom: 14px; font-family: var(--f-display); font-weight: 700; font-size: 2.5rem; line-height: 1; color: var(--home-blue); }
.home-process__title { margin: 0 0 8px; font-family: var(--f-body); font-weight: 700; font-size: 1.125rem; text-transform: none; letter-spacing: 0; }
.home-process__text { margin: 0; color: var(--c-text-2); font-size: .9375rem; }

/* Featured projects mosaic */
.home-projects { background: var(--c-ink-2); }
.home-projects__grid { display: grid; gap: 16px; }
@media (min-width: 768px) { .home-projects__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } .home-project--lg { grid-column: 1 / -1; } .home-project--md { grid-column: span 3; } .home-project--sm { grid-column: span 2; } }
@media (min-width: 1024px) { .home-project--lg { grid-column: span 4; grid-row: span 2; } .home-project--md { grid-column: span 2; } }
.home-project { position: relative; display: flex; flex-direction: column; background: var(--c-ink); border: 1px solid var(--c-line); overflow: hidden; }
.home-project__media { aspect-ratio: 16 / 10; background: var(--c-ink-3); overflow: hidden; }
.home-project--lg .home-project__media { flex: 1; min-height: 280px; }
.home-project__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.home-project:hover .home-project__media img { transform: scale(1.04); }
.home-project__body { padding: 18px 20px 20px; border-top: 3px solid var(--home-red); }
.home-project--lg .home-project__body { padding: 24px 28px 28px; }
.home-project__meta { margin: 0 0 6px; color: var(--c-text-2); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.home-project__title { margin: 0; font-family: var(--f-display); font-weight: 700; font-size: 1.25rem; line-height: 1.15; }
.home-project--lg .home-project__title { font-size: clamp(1.5rem, 2.6vw, 2.125rem); }
.home-project__title a { color: inherit; text-decoration: none; }
.home-project__title a::after { content: ''; position: absolute; inset: 0; }
.home-project:hover .home-project__title a { color: var(--home-blue); }
.home-project__facts { display: flex; flex-wrap: wrap; gap: 6px 24px; margin-top: 10px; color: var(--c-text-2); }
@media (prefers-reduced-motion: reduce) { .home-project__media img { transition: none; } }

/* Capability: factory photo + points + certificate chips */
.home-capability { background: #F3F4F6; }
.home-capability__split { display: grid; gap: 32px; align-items: center; }
@media (min-width: 1024px) { .home-capability__split { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 64px; } }
.home-capability__media { position: relative; margin: 0; overflow: hidden; background: var(--c-ink); }
.home-capability__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.home-capability__badge { position: absolute; top: 0; left: 0; padding: 14px 20px; background: var(--home-red); color: #fff; font-size: .9375rem; }
.home-capability__badge strong { font-family: var(--f-display); font-size: 1.75rem; line-height: 1; margin-right: 4px; }
.home-capability__cta { position: absolute; left: 20px; bottom: 20px; background: #fff; color: var(--c-ink); border-color: #fff; }
.home-capability__cta:hover { background: var(--c-ink); color: #fff; border-color: var(--c-ink); }
.home-capability__text .section__title { margin-bottom: 12px; }
.home-capability__points { margin-top: 24px; border-top: 1px solid #D5D9E0; }
.home-capability__points li { display: flex; gap: 20px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid #D5D9E0; color: var(--c-text-dark); font-size: 1.0625rem; }
.home-capability__num { flex: 0 0 auto; font-family: var(--f-display); font-weight: 700; font-size: 1.375rem; color: var(--home-red); }
.home-capability__certs { display: grid; gap: 12px; margin-top: 40px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 130px), 1fr)); }
.home-capability__certs a, .home-capability__certs span { display: flex; align-items: center; justify-content: center; min-height: 72px; padding: 10px; background: #fff; border: 1px solid #D5D9E0; color: var(--c-text-dark); font-family: var(--f-display); font-weight: 700; font-size: 1.0625rem; text-align: center; text-decoration: none; transition: border-color var(--t-fast), box-shadow var(--t-fast); }
.home-capability__certs a:hover { border-color: var(--home-red); box-shadow: inset 0 -3px 0 var(--home-red); }
.home-capability__all a { background: var(--c-ink); color: #fff; border-color: var(--c-ink); font-family: var(--f-body); font-size: .9375rem; }
.home-capability__all a:hover { background: var(--home-red); border-color: var(--home-red); }

/* Clients + safety/ESG */
.home-trust { background: var(--c-ink); }
.home-trust__split { display: grid; gap: 48px; }
@media (min-width: 1024px) { .home-trust__split { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 64px; } }
.home-trust .section-head { margin-bottom: 24px; }
.home-trust__logos.logo-wall--logos { background: var(--c-line); border-color: var(--c-line); }
@media (min-width: 1100px) { .home-trust__logos.logo-wall--logos { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.home-trust__quotes-title { margin: 32px 0 12px; font-size: 1.125rem; }
.home-trust__quotes { display: grid; gap: 16px; }
@media (min-width: 768px) { .home-trust__quotes { grid-template-columns: 3fr 2fr; } }
.home-trust__quotes-note { margin: 8px 0 0; font-size: .8125rem; color: var(--c-text-2); }
.home-trust__quote figcaption strong { display: block; color: var(--c-white, #fff); font-size: 1rem; }
.home-trust__quote figcaption span { display: block; }
.home-trust__esg-more { margin-top: 24px; }
.home-trust__quote { display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: 24px 28px; background: var(--c-ink-2); border: 1px solid var(--c-line); border-left: 4px solid var(--home-red); }
.home-trust__quote blockquote { margin: 0; font-size: 1rem; line-height: 1.6; }
.home-trust__quote figcaption { margin-top: 8px; color: var(--c-text-2); font-size: .9375rem; }
.home-trust__esg-title { margin-bottom: 20px; }
.home-trust__figures { display: grid; grid-template-columns: 1fr 1fr; gap: var(--line-w); background: var(--c-line); border: var(--line-w) solid var(--c-line); }
.home-trust__figures li { display: grid; gap: 4px; padding: 22px; background: var(--c-ink-2); }
.home-trust__figures strong { font-family: var(--f-display); font-size: 2.5rem; line-height: 1; color: var(--home-blue); }
.home-trust__figures span { color: var(--c-text-2); font-size: .9375rem; }
.home-trust__pillars { margin: 20px 0; }
.home-trust__pillars li { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--c-line); }
.home-trust__pillars h3 { margin: 0 0 4px; font-family: var(--f-body); font-size: 1rem; font-weight: 700; text-transform: none; letter-spacing: 0; }
.home-trust__pillars p { margin: 0; color: var(--c-text-2); font-size: .9375rem; }
.home-trust__icon { flex: 0 0 auto; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--c-line); color: var(--home-blue); }

/* International band */
.page-home .home-export { background: linear-gradient(100deg, var(--c-ink-3) 0%, #0F2A52 60%, #1B3B6E 100%); border-top: 4px solid var(--home-red); border-bottom: 0; }
.home-export__flags { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; }
.home-export__flags li { display: inline-flex; align-items: center; gap: 6px; color: var(--c-text-2); font-size: .875rem; }
.home-export__flags img { border: 1px solid rgba(255,255,255,.25); }

/* Homepage closing band: brand red with white text instead of the light accent. */
.page-home .cta-band { background: var(--home-red); color: #fff; }
.page-home .cta-band .cta-band__title { color: #fff; }
.page-home .cta-band .btn--dark { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
.page-home .cta-band .btn--dark:hover { background: #fff; border-color: #fff; color: var(--c-ink); }
.page-home .cta-band .btn--outline-dark { border-color: #fff; color: #fff; background: transparent; }
.page-home .cta-band .btn--outline-dark:hover { background: #fff; color: var(--home-red-dark); }
@media (max-width: 639px) {
  .home-stats .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* FDI investment process page (investors.process) */
.fdip-hero { position: relative; overflow: hidden; isolation: isolate; }
.fdip-hero__media { position: absolute; inset: 0; z-index: -1; }
.fdip-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.fdip-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 26, 48, .96) 0%, rgba(11, 26, 48, .88) 50%, rgba(11, 26, 48, .6) 100%); }
.fdip-total { display: inline-flex; flex-direction: column; gap: 2px; margin: 8px 0 24px; padding: 12px 18px; border-left: 4px solid var(--c-brand); background: rgba(16, 36, 64, .85); }
.fdip-total span { color: var(--c-text-2); font-size: .875rem; }
.fdip-total strong { font-family: var(--f-display); font-size: 2rem; line-height: 1.1; color: #fff; }
.fdip-road { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; counter-reset: none; }
@media (min-width: 768px) { .fdip-road { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; } }
.fdip-road a { position: relative; display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 20px; background: #fff; border: 1px solid #D5D9E0; color: var(--c-text-dark); text-decoration: none; transition: border-color var(--t-fast), box-shadow var(--t-fast); }
@media (min-width: 768px) { .fdip-road li + li a { border-left: 0; } }
.fdip-road a:hover, .fdip-road a:focus-visible { border-color: var(--c-brand); box-shadow: inset 0 -4px 0 var(--c-brand); }
.fdip-road__num { font-family: var(--f-display); font-size: 2rem; font-weight: 700; line-height: 1; color: var(--c-brand); }
.fdip-road__label { font-weight: 700; }
.fdip-road__days { color: var(--c-text-dark-2); font-size: .9375rem; }
.fdip-road__ends { display: flex; justify-content: space-between; margin: 12px 0 0; padding-top: 10px; border-top: 3px solid var(--c-brand); font-family: var(--f-display); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--c-brand); }
.fdip-note { margin-top: 16px; font-size: .9375rem; color: var(--c-text-2); }
.section--light .fdip-note { color: var(--c-text-dark-2); }
.fdip-phase { scroll-margin-top: calc(var(--header-h) + var(--nav-h)); }
.fdip-phase__split { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1024px) {
  .fdip-phase__split { grid-template-columns: 5fr 7fr; gap: 56px; }
  .fdip-phase--flip.fdip-phase__split > .fdip-phase__media, .fdip-phase--flip .fdip-phase__split > .fdip-phase__media { order: 2; }
}
.fdip-phase__media { margin: 0; position: sticky; top: calc(var(--header-h) + var(--nav-h) + 24px); }
.fdip-phase__media img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
@media (max-width: 1023px) { .fdip-phase__media { position: static; } }
.fdip-phase__num { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 8px; font-family: var(--f-display); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--c-brand); }
.section:not(.section--light) .fdip-phase__num { color: #FF6B78; }
.fdip-days { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid currentColor; font-family: var(--f-body); font-size: .8125rem; font-weight: 600; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.fdip-h3 { margin: 24px 0 12px; font-size: 1.125rem; }
.fdip-h3--lg { margin-top: 0; font-family: var(--f-display); font-size: 1.75rem; text-transform: uppercase; }
.fdip-h4 { margin: 0 0 6px; font-size: 1rem; }
.fdip-cols { display: grid; gap: 8px 32px; }
@media (min-width: 768px) { .fdip-cols { grid-template-columns: 1fr 1fr; } }
.fdip-cols--docs { margin-top: 32px; }
.fdip-checks { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.fdip-checks li { display: flex; gap: 10px; align-items: flex-start; }
.fdip-checks .icon { flex: none; margin-top: 3px; color: var(--c-brand); }
.section:not(.section--light) .fdip-checks .icon { color: #FF6B78; }
.fdip-help { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--c-line); }
.fdip-steps, .fdip-docs { margin: 0; padding: 0; list-style: none; counter-reset: fdip; display: grid; gap: 0; }
.fdip-steps li, .fdip-docs li { position: relative; counter-increment: fdip; padding: 12px 0 12px 48px; border-bottom: 1px solid var(--c-line); }
.section--light .fdip-steps li, .section--light .fdip-docs li { border-color: #D5D9E0; }
.fdip-steps li::before, .fdip-docs li::before { content: counter(fdip, decimal-leading-zero); position: absolute; left: 0; top: 10px; font-family: var(--f-display); font-size: 1.375rem; font-weight: 700; color: var(--c-brand); }
.section:not(.section--light) .fdip-steps li::before, .section:not(.section--light) .fdip-docs li::before { color: #FF6B78; }
.fdip-docs li { padding-left: 40px; font-size: .9375rem; }
.fdip-docs li::before { font-size: 1.125rem; }
.fdip-boxes { display: grid; gap: 16px; margin-top: 40px; }
@media (min-width: 768px) { .fdip-boxes { grid-template-columns: 1fr 1fr; } }
.fdip-box { margin: 0; padding: 20px 24px; background: var(--c-ink-2); border: 1px solid var(--c-line); }
.fdip-box > :first-child { margin-top: 0; }
.fdip-box > :last-child { margin-bottom: 0; }
.section--light .fdip-box { background: #fff; border-color: #D5D9E0; }
.fdip-box--accent { border-left: 4px solid var(--c-brand); }
.fdip-phase__intro { max-width: 820px; margin-bottom: 40px; }
.fdip-sub + .fdip-sub { margin-top: 56px; padding-top: 56px; border-top: 1px solid #D5D9E0; }
.fdip-render img { aspect-ratio: auto; background: #fff; }
.fdip-timing { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 1px; background: #D5D9E0; }
.fdip-timing span { display: flex; flex-direction: column; padding: 14px 16px; background: #fff; font-size: .875rem; color: var(--c-text-dark-2); }
.fdip-timing strong { font-family: var(--f-display); font-size: 1.75rem; line-height: 1.1; color: var(--c-brand); }
.fdip-flow { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 0; }
.fdip-flow li { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 12px 0 12px 28px; border-left: 2px solid var(--c-brand); margin-left: 8px; }
.fdip-flow li::before { content: ""; position: absolute; left: -7px; top: 17px; width: 12px; height: 12px; background: var(--c-brand); border-radius: 50%; }
.fdip-flow span { color: var(--c-text-dark-2); font-size: .9375rem; }
.section:not(.section--light) .fdip-flow span { color: var(--c-text-2); }
.fdip-permits { margin: 24px 0; padding: 0; list-style: none; display: grid; gap: 16px; }
@media (min-width: 768px) { .fdip-permits { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .fdip-permits { grid-template-columns: repeat(3, 1fr); } }
.fdip-permits > li { display: flex; gap: 16px; padding: 20px; background: #fff; border: 1px dashed #B9C0CC; }
.fdip-permits__num { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border: 3px solid var(--c-brand); border-radius: 50%; font-family: var(--f-display); font-size: 1.375rem; font-weight: 700; color: var(--c-brand); }
.fdip-permits ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.fdip-permits ul li { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; font-size: .9375rem; }
.fdip-permits .fdip-days { color: var(--c-brand); }
.fdip-sources { margin: 12px 0 0; padding-left: 20px; display: grid; gap: 6px; font-size: .9375rem; }
.fdip-legal .fdip-h3 { display: flex; align-items: center; gap: 10px; }
.fdip-stage-link { margin: 32px 0 0; }

/* FDI process stage landing pages (investors.stage) */
.fdis-hero { position: relative; overflow: hidden; isolation: isolate; min-height: min(78vh, 680px); display: flex; align-items: flex-end; }
.fdis-hero__media { position: absolute; inset: 0; z-index: -1; }
.fdis-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.fdis-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 26, 48, .97) 0%, rgba(11, 26, 48, .85) 55%, rgba(11, 26, 48, .45) 100%), linear-gradient(0deg, rgba(11, 26, 48, .9) 0%, transparent 40%); }
.fdis-hero__inner { width: 100%; padding-top: 64px; padding-bottom: 56px; }
.fdis-hero .hero__title { max-width: 18ch; }
.fdis-hero .hero__lead { max-width: 62ch; }
.fdis-chip { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 24px; padding: 8px 14px; border-left: 4px solid var(--c-accent); background: rgba(16, 36, 64, .85); font-weight: 600; }
.fdis-chip .icon { color: var(--c-accent); }
.fdis-steps { position: sticky; top: calc(var(--header-h) + var(--nav-h)); z-index: 5; background: var(--c-paper); border-bottom: 1px solid #D5D9E0; }
.fdis-steps__list { display: flex; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.fdis-steps__list li { flex: 1 0 auto; }
.fdis-steps__list a { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 0 16px; color: var(--c-text-dark); text-decoration: none; font-weight: 600; font-size: .9375rem; white-space: nowrap; border-bottom: 3px solid transparent; }
.fdis-steps__list a:hover { color: var(--c-brand); }
.fdis-steps__list a[aria-current="page"] { color: var(--c-brand); border-bottom-color: var(--c-brand); }
.fdis-steps__num { font-family: var(--f-display); font-size: 1.25rem; font-weight: 700; color: var(--c-brand); }
.fdis-audience { padding-block: 40px; }
.fdis-kicker { margin: 0 0 16px; font-family: var(--f-display); font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; color: var(--c-accent); }
.fdis-audience__list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .fdis-audience__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
.fdis-audience__list li { display: flex; align-items: center; gap: 14px; font-weight: 600; }
.fdis-icon { display: inline-grid; place-items: center; flex: none; width: 48px; height: 48px; border: 1px solid var(--c-line); color: var(--c-accent); }
.section--light .fdis-icon { border-color: #D5D9E0; color: var(--c-brand); }
.fdis-grid { display: grid; gap: 16px; margin-top: 32px; }
@media (min-width: 768px) { .fdis-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
.fdis-card { display: flex; flex-direction: column; gap: 10px; padding: 24px; background: var(--c-ink-2); border: 1px solid var(--c-line); }
.fdis-card p { margin: 0; color: var(--c-text-2); }
.section--light .fdis-card { background: #fff; border-color: #D5D9E0; }
.section--light .fdis-card p { color: var(--c-text-dark-2); }
.fdis-card--pain { border-top: 4px solid var(--c-brand); }
.fdis-card__num { font-family: var(--f-display); font-size: 2.25rem; font-weight: 700; line-height: 1; color: var(--c-brand); }
.fdis-card__title { margin: 0; font-size: 1.125rem; }
.fdis-help__cta { margin: 32px 0 0; }
.fdis-detail .fdip-phase { --c-text-2: var(--c-text-dark-2); --c-line: #D5D9E0; background: var(--c-paper-2); color: var(--c-text-dark); }
.fdis-detail .fdip-phase .fdip-phase__num { color: var(--c-brand); }
.fdis-detail .fdip-phase .fdip-checks .icon, .fdis-detail .fdip-phase .fdip-steps li::before, .fdis-detail .fdip-phase .fdip-docs li::before { color: var(--c-brand); }
.fdis-detail .fdip-phase .fdip-flow span { color: var(--c-text-dark-2); }
.fdis-detail .fdip-phase .fdip-box { background: #fff; border-color: #D5D9E0; }
.fdis-detail .fdip-phase .fdip-steps li, .fdis-detail .fdip-phase .fdip-docs li, .fdis-detail .fdip-help { border-color: #D5D9E0; }
.fdis-faq__inner { display: grid; gap: 24px; }
@media (min-width: 1024px) { .fdis-faq__inner { grid-template-columns: 4fr 8fr; gap: 56px; } }
.fdis-faq__list { display: grid; gap: 0; border-top: 1px solid #D5D9E0; }
.fdis-faq__item { border-bottom: 1px solid #D5D9E0; }
.fdis-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: var(--tap); padding: 18px 0; font-weight: 700; cursor: pointer; list-style: none; }
.fdis-faq__item summary::-webkit-details-marker { display: none; }
.fdis-faq__toggle { position: relative; flex: none; width: 16px; height: 16px; }
.fdis-faq__toggle::before, .fdis-faq__toggle::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; background: var(--c-brand); transition: transform var(--t-fast); }
.fdis-faq__toggle::after { transform: rotate(90deg); }
.fdis-faq__item[open] .fdis-faq__toggle::after { transform: rotate(0); }
.fdis-faq__item p { margin: 0 0 20px; color: var(--c-text-dark-2); max-width: 70ch; }
.fdis-form { scroll-margin-top: calc(var(--header-h) + var(--nav-h) + 56px); border-top: 4px solid var(--c-brand); }
.fdis-form__split { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1024px) { .fdis-form__split { grid-template-columns: 5fr 7fr; gap: 56px; } .fdis-form__intro { position: sticky; top: calc(var(--header-h) + var(--nav-h) + 80px); } }
.fdis-points { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.fdis-points li { display: flex; gap: 10px; align-items: flex-start; }
.fdis-points .icon { flex: none; margin-top: 3px; color: var(--c-accent); }
.fdis-pager { padding-block: 40px; background: var(--c-paper); color: var(--c-text-dark); }
.fdis-pager__inner { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.fdis-pager__link { display: flex; flex-direction: column; gap: 4px; padding: 20px; border: 1px solid #D5D9E0; color: var(--c-text-dark); text-decoration: none; }
.fdis-pager__link:hover, .fdis-pager__link:focus-visible { border-color: var(--c-brand); box-shadow: inset 0 -4px 0 var(--c-brand); }
.fdis-pager__link--next { grid-column: 2; text-align: right; }
.fdis-pager__dir { font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em; color: var(--c-text-dark-2); }
.fdis-disclaimer { margin-top: 24px; font-size: .875rem; color: var(--c-text-dark-2); }
@media (max-width: 639px) { .fdis-pager__inner { grid-template-columns: 1fr; } .fdis-pager__link--next { grid-column: auto; } }
