/* ==========================================================================
   LLK LIMITED PARTNERSHIP — 2026 Redesign
   Design system: editorial global-commerce identity
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700;9..144,800&family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --primary: #0F292F;
  --secondary: #501F3A;
  --cta: #CB2D6F;
  --accent: #14A098;
  --bg-light: #F5F7F7;
  --white: #FFFFFF;
  --border: #CCCCCC;
  --ink: #0F292F;
  --muted: #6B7476;

  --primary-2: #163841;
  --secondary-2: #6b2a4c;
  --on-dark-muted: #A7B4B4;
  --on-dark-border: rgba(255,255,255,0.14);

  --accent-15: rgba(20,160,152,0.14);
  --accent-35: rgba(20,160,152,0.4);
  --cta-15: rgba(203,45,111,0.14);
  --shadow-md: 0 22px 50px rgba(15,41,47,0.18);
  --shadow-sm: 0 10px 26px rgba(15,41,47,0.12);

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --max-width: 1360px;
  --measure: 720px;
  --header-h: 92px;
  --header-h-scrolled: 68px;
  --radius: 18px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
body{ margin:0; font-family: var(--font-body); color: var(--ink); background: var(--white); line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul, ol{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; background:none; border:0; }
input, textarea, select{ font-family: inherit; font-size: 1rem; }
h1,h2,h3,h4,p,figure{ margin:0; }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible{ outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 3px; }
.skip-link{ position:absolute; left:1rem; top:-60px; background:var(--accent); color:var(--white); font-weight:700; padding:.75rem 1.25rem; z-index:500; border-radius: 4px; transition: top .2s ease; }
.skip-link:focus{ top: 1rem; }

/* ---- Typography ---- */
.eyebrow{ font-family: var(--font-body); text-transform: uppercase; letter-spacing:.18em; font-size:.72rem; font-weight:700; color: var(--accent); display:flex; align-items:center; gap:.6rem; }
.eyebrow .dot{ width:6px; height:6px; border-radius:50%; background: var(--cta); display:inline-block; flex:none; }
.eyebrow.muted{ color: var(--muted); }
.eyebrow.muted .dot{ background: var(--cta); }
.eyebrow.on-dark{ color: var(--accent); }

.coord{ font-family: var(--font-body); font-size:.72rem; color: var(--accent); font-weight:700; letter-spacing:.1em; text-transform:uppercase; }

h1, .h1{ font-family: var(--font-display); font-weight:600; line-height:0.96; letter-spacing:-0.01em; color: var(--ink); }
h2, .h2{ font-family: var(--font-display); font-weight:600; line-height:1; letter-spacing:-0.01em; color: var(--ink); }
h3, .h3{ font-family: var(--font-display); font-weight:600; line-height:1.1; color: var(--ink); }
h4, .h4{ font-family: var(--font-body); font-weight:800; line-height:1.3; color: var(--ink); text-transform:uppercase; letter-spacing:.02em; font-size:.95rem; }

.h1{ font-size: clamp(3rem, 7vw, 6.4rem); }
.h2{ font-size: clamp(2.2rem, 4.4vw, 3.8rem); }
.h3{ font-size: clamp(1.4rem, 2.2vw, 2rem); }

p{ color: var(--ink); }
.lede{ font-size: 1.2rem; line-height:1.6; color: var(--muted); font-weight:400; }
.meta{ font-size: .82rem; color: var(--muted); letter-spacing:.02em; }
.meta a{ color: var(--muted); border-bottom: 1px solid var(--border); }

/* ---- Ambient glow motif (signature background, replaces legacy dot-grid) ---- */
.dot-grid{ position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0;
  background:
    radial-gradient(620px 420px at 88% -6%, rgba(20,160,152,0.16), transparent 60%),
    radial-gradient(520px 380px at 4% 106%, rgba(80,31,58,0.28), transparent 60%);
}

/* ---- Layout helpers ---- */
.wrap{ max-width: var(--max-width); margin-left:auto; margin-right:auto; padding: 0 clamp(1.25rem, 4vw, 3.5rem); }
.section{ padding: clamp(4rem, 8vw, 8.5rem) 0; }
.section.tight{ padding: clamp(2.2rem, 4vw, 3.8rem) 0; }
.bg-light{ background: var(--bg-light); }
.bg-white{ background: var(--white); }
.bg-deep{ background: var(--primary); color: var(--white); position:relative; }
.bg-deep h1, .bg-deep h2, .bg-deep h3, .bg-deep h4{ color: var(--white); }
.bg-deep .meta, .bg-deep p{ color: var(--on-dark-muted); }
.bg-deep .divider{ background: var(--on-dark-border); }
.bg-plum{ background: var(--secondary); color: var(--white); position:relative; }
.bg-plum h1, .bg-plum h2, .bg-plum h3{ color: var(--white); }
.bg-plum p{ color: rgba(255,255,255,0.78); }
.bg-gradient-deep{ background: linear-gradient(155deg, var(--primary) 0%, var(--primary) 55%, var(--secondary) 130%); color: var(--white); position:relative; }
.bg-gradient-deep h1, .bg-gradient-deep h2, .bg-gradient-deep h3{ color: var(--white); }
.bg-gradient-deep p{ color: var(--on-dark-muted); }

.grid{ display:grid; gap: 1.75rem; }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px){ .grid-3{ grid-template-columns: repeat(2, 1fr); } .grid-4{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .grid-2, .grid-3, .grid-4{ grid-template-columns: 1fr; } }

/* ---- Buttons ---- */
.btn{ display:inline-flex; align-items:center; gap:.65rem; padding: 1.05rem 1.9rem; font-family: var(--font-body); font-size: .82rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border-radius: 10px; border: 1.5px solid transparent; transition: background .18s ease, color .18s ease, border-color .18s ease, box-shadow .2s ease, transform .18s ease; white-space: nowrap; }
.btn span.arrow-glyph{ transition: transform .18s ease; display:inline-block; }
.btn:hover span.arrow-glyph{ transform: translateX(4px); }
.btn-primary{ background: var(--cta); color: var(--white); border-color: var(--cta); }
.btn-primary:hover{ background: var(--accent); border-color: var(--accent); box-shadow: 0 10px 24px rgba(20,160,152,0.28); }
.btn-outline{ background: transparent; color: var(--ink); border-color: var(--accent); }
.btn-outline:hover{ background: var(--accent); color: var(--white); }
.btn-outline.on-dark{ color: var(--white); border-color: rgba(255,255,255,0.4); }
.btn-outline.on-dark:hover{ background: var(--accent); border-color: var(--accent); color: var(--white); }
.btn-text{ color: var(--ink); font-weight:700; font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; border-bottom: 1px solid var(--border); padding:0 0 .2rem; border-radius:0; }
.btn-text:hover{ border-color: var(--accent); color: var(--accent); }
.btn-text.on-dark{ color: var(--white); border-color: var(--on-dark-border); }
.btn-text.on-dark:hover{ color: var(--accent); }
.btn-text.arrow::after{ content:"→"; margin-left:.5em; transition: transform .18s ease; display:inline-block; }
.btn-text.arrow:hover::after{ transform: translateX(4px); }

/* ==========================================================================
   HEADER — floating layered navigation
   ========================================================================== */
.site-header{ position: fixed; top: clamp(.75rem, 2vw, 1.4rem); left:0; right:0; z-index:300; display:flex; justify-content:center; padding: 0 clamp(1rem, 3vw, 2rem); pointer-events:none; }
.header-inner{ pointer-events:auto; width:100%; max-width: 1240px; display:flex; align-items:center; justify-content:space-between; height: var(--header-h); padding: 0 .6rem 0 1.4rem; border-radius: 100px; background: rgba(15,41,47,0.42); border: 1px solid rgba(255,255,255,0.14); backdrop-filter: blur(14px) saturate(140%); box-shadow: 0 8px 30px rgba(15,41,47,0.12); transition: background .3s ease, border-color .3s ease, height .3s ease, box-shadow .3s ease; }
.site-header.is-scrolled{ top: .6rem; }
.site-header.is-scrolled .header-inner{ height: var(--header-h-scrolled); background: rgba(15,41,47,0.94); border-color: var(--accent); box-shadow: var(--shadow-md); }

.logo{ display:flex; align-items:baseline; gap:.55rem; color: var(--white); flex:none; }
.logo .word{ font-family: var(--font-display); font-weight:700; font-size:1.5rem; letter-spacing:.01em; }
.logo .sub{ font-family: var(--font-body); font-size:.6rem; letter-spacing:.13em; color: var(--on-dark-muted); text-transform:uppercase; display:none; }
@media (min-width: 1280px){ .logo .sub{ display:inline; } }

.nav-primary{ display:flex; align-items:center; gap:.1rem; height:100%; }
.nav-item{ position:relative; height:100%; display:flex; align-items:center; }
.nav-item > a, .nav-item > button{ font-size:.8rem; font-weight:600; letter-spacing:.02em; color: rgba(255,255,255,0.86); padding: .6rem 1rem; display:flex; align-items:center; gap:.4rem; border-radius: 100px; transition: color .15s ease, background .15s ease; }
.nav-item > a:hover, .nav-item > button:hover{ color: var(--white); background: rgba(255,255,255,0.08); }
.nav-item > a[aria-current="page"]{ color: var(--accent); }
.nav-item .chev{ transition: transform .18s ease; }
.nav-item.is-open .chev{ transform: rotate(180deg); }

.header-actions{ display:flex; align-items:center; gap:.6rem; }
.header-actions .talk-link{ font-size:.78rem; font-weight:700; letter-spacing:.02em; color: var(--primary); background: var(--white); display:flex; align-items:center; gap:.45rem; padding: .78rem 1.35rem; border-radius: 100px; transition: background .18s ease, color .18s ease; }
.header-actions .talk-link:hover{ background: var(--accent); color: var(--white); }

.menu-toggle{ display:none; padding:.5rem; }
.menu-toggle .bars2{ display:block; width:20px; height:2px; background: var(--white); position:relative; border-radius:2px; }
.menu-toggle .bars2::before, .menu-toggle .bars2::after{ content:""; position:absolute; left:0; width:20px; height:2px; background: var(--white); border-radius:2px; }
.menu-toggle .bars2::before{ top:-6px; } .menu-toggle .bars2::after{ top:6px; }

/* Mega panel */
.mega-panel{ position:fixed; top: calc(var(--header-h) + 1.5rem); left:0; right:0; z-index:290; display:flex; justify-content:center; padding: 0 clamp(1rem,3vw,2rem);
  transform: translateY(-10px); opacity:0; pointer-events:none; transition: opacity .22s ease, transform .22s ease; }
.mega-panel.is-open{ opacity:1; pointer-events:auto; transform: translateY(0); }
.mega-surface{ width:100%; max-width: 1240px; background: var(--primary); border-radius: 24px; border: 1px solid var(--on-dark-border); box-shadow: var(--shadow-md); overflow:hidden; }
.mega-inner{ padding: clamp(2rem,4vw,3rem); display:grid; grid-template-columns: 1fr 1.7fr; gap: 3rem; }
.mega-question{ font-family: var(--font-display); font-size: clamp(1.7rem,2.8vw,2.3rem); font-weight:600; color: var(--white); line-height:1.05; max-width:13ch; }
.mega-question .coord{ display:block; margin-bottom:1.1rem; }
.mega-list{ display:grid; grid-template-columns: repeat(2, 1fr); gap: .4rem 2rem; }
.mega-list a{ display:flex; align-items:flex-start; gap:.9rem; padding: .95rem .6rem; border-radius: 12px; transition: background .16s ease; }
.mega-list a:hover{ background: rgba(255,255,255,0.06); }
.mega-list .n{ font-family: var(--font-display); font-size:.85rem; color: var(--accent); font-weight:600; flex:none; padding-top:.15rem; }
.mega-list .t{ display:block; font-family: var(--font-display); font-size:1.1rem; font-weight:600; color: var(--white); }
.mega-list .d{ font-family: var(--font-body); font-size:.82rem; color: var(--on-dark-muted); margin-top:.3rem; line-height:1.5; }
.mega-list a:hover .t{ color: var(--accent); }
.mega-foot{ margin-top:1.8rem; padding-top:1.6rem; border-top:1px solid var(--on-dark-border); }

@media (max-width: 1180px){
  .nav-primary{ display:none; }
  .header-actions .talk-link{ display:none; }
  .menu-toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .mega-panel{ display:none; }
}

/* Mobile nav — full screen */
.mobile-nav{ position: fixed; inset:0; z-index: 400; background: var(--primary); color: var(--white); transform: translateX(100%); transition: transform .34s ease; overflow-y:auto; }
.mobile-nav.is-open{ transform: translateX(0); }
.mobile-nav-inner{ padding: 1.4rem clamp(1.25rem, 6vw, 2.5rem) 3rem; }
.mobile-nav-top{ display:flex; align-items:center; justify-content:space-between; height: var(--header-h); }
.mobile-close{ color: var(--white); font-size:1.9rem; line-height:1; padding:.4rem; }
.mobile-nav-links{ margin-top: 1rem; }
.mobile-nav-links > li{ border-bottom: 1px solid var(--on-dark-border); }
.mobile-nav-links > li > a, .mobile-nav-links > li > button{ width:100%; text-align:left; display:flex; justify-content:space-between; align-items:center; padding: 1.15rem 0; font-family: var(--font-display); font-size: 1.6rem; font-weight:600; color: var(--white); }
.mobile-submenu{ display:none; padding: 0 0 1.3rem; }
.mobile-submenu.is-open{ display:block; }
.mobile-submenu a{ display:block; padding:.6rem 0; font-family: var(--font-body); font-size:.98rem; color: var(--on-dark-muted); }
.mobile-submenu a:hover{ color: var(--accent); }
.mobile-nav-secondary{ margin-top:2rem; }
.mobile-nav-secondary a{ display:inline-flex; align-items:center; gap:.5rem; font-size:.95rem; font-weight:700; color: var(--primary); background: var(--white); padding: .9rem 1.5rem; border-radius:100px; }

/* ==========================================================================
   HERO — asymmetric split
   ========================================================================== */
.hero{ position: relative; padding-top: calc(var(--header-h) + 2.2rem); background: var(--bg-light); overflow:hidden; }
.hero-split{ display:grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem,4vw,4rem); align-items:center; }
@media (max-width: 980px){ .hero-split{ grid-template-columns: 1fr; } }
.hero-copy{ padding: 2rem 0 3rem; }
.hero-copy .eyebrow{ margin-bottom: 1.6rem; }
.hero-copy h1{ text-transform:uppercase; }
.hero-copy .lede{ max-width: 46ch; margin-top: 1.8rem; }
.hero-actions{ display:flex; gap:1rem; margin-top: 2.4rem; flex-wrap:wrap; }

.hero-media-wrap{ position:relative; padding: 1rem clamp(0rem,2vw,1rem) 3.5rem 0; }
.hero-media{ position:relative; border-radius: 28px; overflow:hidden; aspect-ratio: 4/5; box-shadow: var(--shadow-md); }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-media::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(15,41,47,0) 55%, rgba(15,41,47,0.55) 100%); }
.hero-float-card{ position:absolute; left: -1.6rem; bottom: -1.2rem; z-index:2; background: var(--primary); color:var(--white); border-radius: 20px; padding: 1.6rem 1.9rem; box-shadow: var(--shadow-md); border: 1px solid var(--on-dark-border); min-width: 210px; }
.hero-float-card .coord{ display:block; margin-bottom: .9rem; }
.hero-float-card ul{ display:flex; flex-direction:column; gap:.55rem; }
.hero-float-card li{ font-family: var(--font-display); font-size:1.05rem; font-weight:600; text-transform:uppercase; letter-spacing:.02em; padding-left:1.1rem; position:relative; }
.hero-float-card li::before{ content:""; position:absolute; left:0; top:.5em; width:6px; height:6px; border-radius:50%; background: var(--accent); }
@media (max-width: 620px){ .hero-float-card{ position:static; margin-top:1.2rem; } .hero-media-wrap{ padding-bottom:0; } }

.hero.small{ padding-bottom: 4.5rem; }
.hero.small .hero-split{ grid-template-columns:1fr; }
.hero.small .hero-copy{ padding-bottom:0; }
.hero.small h1{ max-width: 24ch; font-size: clamp(2.4rem, 5vw, 4rem); }

/* ==========================================================================
   INTRO SPLIT
   ========================================================================== */
.intro-split{ display:grid; grid-template-columns: .8fr 1.6fr; gap: clamp(2rem,5vw,5rem); align-items:start; }
@media (max-width: 860px){ .intro-split{ grid-template-columns:1fr; gap:1.6rem; } }
.intro-split .label-col{ position:sticky; top: calc(var(--header-h) + 1.6rem); }
.intro-split .indicator{ width: 46px; height:4px; border-radius:4px; background: var(--accent); margin-top: 1.6rem; }
.intro-split h2{ text-transform:uppercase; max-width: 16ch; }
.intro-split .body-col p{ margin-top: 1.6rem; }
.intro-split .body-col p:first-child{ margin-top:0; }

/* ==========================================================================
   NUMBER SECTION LABEL
   ========================================================================== */
.section-num-head{ display:flex; align-items:baseline; gap:1.2rem; margin-bottom: 2.8rem; flex-wrap:wrap; }
.section-num-head .big-num{ font-family: var(--font-display); font-size: clamp(2.6rem,5vw,4rem); font-weight:600; color: var(--accent); line-height:1; }
.section-num-head .head-text h2{ text-transform:uppercase; }

/* ==========================================================================
   INDUSTRIES — vertical interactive list (signature section)
   ========================================================================== */
.industry-list{ border-top: 1px solid var(--on-dark-border); }
.industry-row{ display:flex; align-items:center; gap: 2rem; padding: 2.1rem 1rem; border-bottom: 1px solid var(--on-dark-border); position:relative; overflow:hidden; transition: background .3s ease; }
.industry-row:hover{ background: rgba(255,255,255,0.045); }
.industry-row .row-num{ font-family: var(--font-display); font-size:1.05rem; color: var(--accent); font-weight:600; flex:none; width: 3.2rem; }
.industry-row .row-main{ flex:1; min-width:0; }
.industry-row .row-main h3{ color: var(--white); font-size: clamp(1.6rem,3.4vw,2.6rem); text-transform:uppercase; transition: transform .3s ease, color .3s ease; }
.industry-row:hover .row-main h3{ transform: translateX(10px); color: var(--accent); }
.industry-row .row-main p{ margin-top:.5rem; color: var(--on-dark-muted); max-width: 46ch; font-size:.95rem; }
.industry-row .row-thumb{ flex:none; width: 140px; aspect-ratio: 4/3; border-radius: 14px; overflow:hidden; opacity:0; transform: scale(.9); transition: opacity .35s ease, transform .35s ease; }
.industry-row:hover .row-thumb{ opacity:1; transform: scale(1); }
.industry-row .row-thumb img{ width:100%; height:100%; object-fit:cover; }
.industry-row .row-arrow{ flex:none; width:48px; height:48px; border-radius:50%; border: 1px solid var(--on-dark-border); display:flex; align-items:center; justify-content:center; color: var(--white); transition: transform .3s ease, background .3s ease, border-color .3s ease; }
.industry-row:hover .row-arrow{ transform: translateX(6px) rotate(0deg); background: var(--accent); border-color: var(--accent); }
@media (max-width: 820px){
  .industry-row{ flex-wrap:wrap; gap:1rem; padding: 1.6rem 0; }
  .industry-row .row-thumb{ display:none; }
  .industry-row .row-main{ order:1; width:100%; }
  .industry-row .row-num{ order:0; }
  .industry-row .row-arrow{ order:2; margin-left:auto; }
}

/* ==========================================================================
   SOLUTIONS — editorial bento grid
   ========================================================================== */
.bento{ display:grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(120px, auto); gap: 1.5rem; }
.bento-card{ position:relative; border-radius: var(--radius); padding: 2.2rem; display:flex; flex-direction:column; justify-content:flex-end; border: 1px solid var(--border); background: var(--white); overflow:hidden; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; min-height: 220px; }
.bento-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-sm); border-color: var(--accent); }
.bento-card .coord{ position:relative; z-index:1; margin-bottom: 1rem; }
.bento-card h3{ position:relative; z-index:1; text-transform:uppercase; font-size: 1.4rem; }
.bento-card p{ position:relative; z-index:1; margin-top:.7rem; font-size:.92rem; color: var(--muted); max-width: 32ch; }
.bento-card .foot{ position:relative; z-index:1; margin-top:1.4rem; }
.bento-card.is-primary{ grid-column: span 2; grid-row: span 2; background: var(--primary); color: var(--white); border-color: var(--primary); min-height: 460px; }
.bento-card.is-primary h3, .bento-card.is-primary p{ color: var(--white); }
.bento-card.is-primary p{ color: var(--on-dark-muted); }
.bento-card.is-primary h3{ font-size: clamp(1.8rem, 2.6vw, 2.6rem); }
.bento-card.is-primary::before{ content:""; position:absolute; inset:0; background: radial-gradient(circle at 85% 15%, rgba(20,160,152,0.28), transparent 55%); }
.bento-card.is-plum{ background: var(--secondary); color:#fff; border-color: var(--secondary); }
.bento-card.is-plum h3, .bento-card.is-plum p{ color:#fff; }
.bento-card.is-plum p{ color: rgba(255,255,255,0.75); }
@media (max-width: 980px){
  .bento{ grid-template-columns: repeat(2, 1fr); }
  .bento-card.is-primary{ grid-column: span 2; grid-row: span 1; min-height: 260px; }
}
@media (max-width: 620px){
  .bento{ grid-template-columns: 1fr; }
  .bento-card.is-primary{ grid-column: span 1; }
}

/* ==========================================================================
   PROCESS — horizontal (dark section)
   ========================================================================== */
.process-track{ display:grid; grid-template-columns: repeat(5, 1fr); gap: 0; position:relative; margin-top: 3rem; }
.process-track::before{ content:""; position:absolute; top: 1.15rem; left:0; right:0; height:1px; background: var(--on-dark-border); }
.process-step{ position:relative; padding-top: 2.4rem; padding-right: 1.2rem; }
.process-step::before{ content:""; position:absolute; top:.85rem; left:0; width:11px; height:11px; border-radius:50%; background: var(--primary); border: 2px solid var(--accent); }
.process-step .num{ font-family: var(--font-display); font-size:.85rem; color: var(--accent); font-weight:600; display:block; margin-bottom:.6rem; }
.process-step h4{ color: var(--white); font-size:1.05rem; }
.process-step p{ margin-top:.6rem; color: var(--on-dark-muted); font-size:.88rem; line-height:1.55; }
@media (max-width: 900px){
  .process-track{ grid-template-columns: 1fr; gap: 2rem; }
  .process-track::before{ top:0; bottom:0; left: .3rem; right:auto; width:1px; height:auto; }
  .process-step{ padding-top:0; padding-left: 2rem; }
  .process-step::before{ top:.3rem; left:-.15rem; }
}

/* ==========================================================================
   MARKET / GLOBAL SECTION
   ========================================================================== */
.market-visual{ position:relative; padding: 2rem 0; }
.market-svg{ width:100%; height:auto; display:block; }
.market-svg .globe-line{ stroke: var(--on-dark-border); stroke-width:1; fill:none; }
.market-svg .route{ stroke: var(--accent); stroke-width:1.5; fill:none; stroke-dasharray: 6 7; animation: dashmove 26s linear infinite; }
.market-svg .node{ fill: var(--accent); }
.market-svg .node-ring{ fill:none; stroke: var(--accent); stroke-width:1; opacity:.5; }
@keyframes dashmove{ to{ stroke-dashoffset: -400; } }
@media (prefers-reduced-motion: reduce){ .market-svg .route{ animation:none; } }
.market-cards{ display:grid; grid-template-columns: repeat(3,1fr); gap:1.5rem; margin-top: 3rem; }
@media (max-width: 780px){ .market-cards{ grid-template-columns:1fr; } }
.market-card{ border-radius: 16px; border:1px solid var(--on-dark-border); background: rgba(255,255,255,0.04); padding: 1.8rem; }
.market-card h4{ color: var(--white); font-size:1.05rem; }
.market-card .coord{ display:block; margin-bottom: .8rem; }
.market-card p{ margin-top:.7rem; color: var(--on-dark-muted); font-size:.92rem; }

/* ==========================================================================
   CTA SECTION
   ========================================================================== */
.cta-band{ text-align:left; position:relative; overflow:hidden; }
.cta-band .wrap{ max-width: 900px; }
.cta-band h2{ text-transform:uppercase; max-width: 16ch; }
.cta-band .lede{ margin-top: 1.4rem; max-width: 56ch; }
.cta-band .btn{ margin-top: 2.4rem; }

/* ==========================================================================
   CARDS (insight / market listing / general)
   ========================================================================== */
.card-insight{ display:block; border-radius: var(--radius); overflow:hidden; border:1px solid var(--border); transition: box-shadow .25s ease, transform .25s ease; }
.card-insight:hover{ box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.card-insight .thumb{ position:relative; overflow:hidden; aspect-ratio: 3/2; background: var(--bg-light); }
.card-insight .thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.card-insight:hover .thumb img{ transform: scale(1.045); }
.card-insight .body{ padding: 1.4rem 1.5rem 1.7rem; }
.card-insight h3{ font-size:1.18rem; margin-top:.6rem; text-transform:none; }
.card-insight .excerpt{ margin-top:.6rem; color: var(--muted); font-size:.92rem; }
.card-insight .meta{ margin-top: .9rem; }

.card-feature{ display:grid; grid-template-columns: 1.2fr 1fr; gap: 2.5rem; align-items:center; }
.card-feature .thumb{ aspect-ratio: 4/3; overflow:hidden; border-radius: var(--radius); }
.card-feature .thumb img{ width:100%; height:100%; object-fit:cover; }
.card-feature h3{ font-size: clamp(1.6rem, 2.4vw, 2.2rem); margin-top:.8rem; text-transform:none; }
.card-feature .excerpt{ margin-top:1rem; color: var(--muted); }
@media (max-width: 820px){ .card-feature{ grid-template-columns:1fr; gap:1.4rem; } }

.card-market{ position:relative; overflow:hidden; border-radius: var(--radius); display:block; }
.card-market .thumb{ aspect-ratio: 3/4; overflow:hidden; }
.card-market .thumb img{ width:100%; height:100%; object-fit:cover; }
.card-market .overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(15,41,47,0) 30%, rgba(15,41,47,0.92) 100%); }
.card-market .label{ position:absolute; left:0; right:0; bottom:0; padding:1.6rem; color:#fff; }
.card-market .label h3{ color:#fff; font-size:1.3rem; text-transform:uppercase; }
.card-market .label p{ color: var(--on-dark-muted); font-size:.85rem; margin-top:.5rem; }

.card-industry{ position:relative; overflow:hidden; border-radius: var(--radius); display:block; }
.card-industry .thumb{ aspect-ratio: 4/5; overflow:hidden; }
.card-industry .thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.card-industry:hover .thumb img{ transform: scale(1.05); }
.card-industry .overlay{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(15,41,47,0) 30%, rgba(15,41,47,0.93) 100%); }
.card-industry .label{ position:absolute; left:0; right:0; bottom:0; padding:1.7rem; color:#fff; }
.card-industry .label .coord{ display:block; margin-bottom:.5rem; }
.card-industry .label h3{ color:#fff; font-size:1.4rem; text-transform:uppercase; }
.card-industry .label p{ color: var(--on-dark-muted); font-size:.86rem; margin-top:.5rem; }

/* general solution tile (used on /solutions/ overview + related grids) */
.card-solution{ border:1px solid var(--border); border-radius: var(--radius); background: var(--white); padding: 2.2rem; display:flex; flex-direction:column; height:100%; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.card-solution:hover{ border-color: var(--accent); transform: translateY(-4px); box-shadow: var(--shadow-sm); }
.card-solution .coord{ margin-bottom:1.2rem; }
.card-solution h3{ font-size:1.35rem; text-transform:uppercase; color:var(--ink); }
.card-solution p{ margin-top:.9rem; color: var(--muted); flex:1; font-size:.95rem; }
.card-solution .foot{ margin-top:1.5rem; }
.card-solution.on-dark{ background: rgba(255,255,255,0.04); border-color: var(--on-dark-border); }
.card-solution.on-dark h3{ color:var(--white); }
.card-solution.on-dark p{ color: var(--on-dark-muted); }

/* step/simple cards for sub-pages */
.step-row{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 1.75rem; }
@media (max-width: 900px){ .step-row{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .step-row{ grid-template-columns: 1fr; } }
.step-card{ border-radius: var(--radius); border:1px solid var(--border); background: var(--white); padding: 1.8rem; }
.step-card .num{ font-family: var(--font-display); font-size:.85rem; color: var(--accent); font-weight:600; }
.step-card h4{ margin-top:.7rem; font-size:1.05rem; text-transform:uppercase; }
.step-card p{ margin-top:.6rem; color: var(--muted); font-size:.92rem; }
.bg-deep .step-card, .bg-gradient-deep .step-card{ background: rgba(255,255,255,0.04); border-color: var(--on-dark-border); }
.bg-deep .step-card p, .bg-gradient-deep .step-card p{ color: var(--on-dark-muted); }

.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom: 2.6rem; flex-wrap:wrap; }
.section-head h2{ margin-top:.6rem; text-transform:uppercase; }

/* ==========================================================================
   FOOTER — large editorial
   ========================================================================== */
.site-footer{ background: var(--primary); color: var(--white); position:relative; overflow:hidden; background-image: linear-gradient(200deg, transparent 40%, rgba(80,31,58,0.55) 130%); }
.footer-hero{ padding: clamp(5rem,10vw,9rem) 0 clamp(2.5rem,5vw,4rem); position:relative; z-index:1; }
.footer-hero h2{ font-family: var(--font-display); font-weight:600; font-size: clamp(3rem, 9vw, 6.5rem); line-height:.94; text-transform:uppercase; color: var(--white); }
.footer-hero .btn{ margin-top: 2.6rem; }
.footer-ghost{ position:relative; height: 0; overflow:visible; z-index:0; }
.footer-ghost span{ position:absolute; left:0; right:0; bottom:-2.6rem; text-align:center; font-family: var(--font-display); font-weight:700; font-size: clamp(5rem, 18vw, 15rem); line-height:1; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,0.08); user-select:none; pointer-events:none; text-transform:uppercase; white-space:nowrap; }
.footer-nav-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 2.5rem; padding: 3.5rem 0 3rem; border-top:1px solid var(--on-dark-border); position:relative; z-index:1; }
.footer-col h4{ color: var(--accent); font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; font-weight:800; }
.footer-col ul{ margin-top:1.2rem; display:flex; flex-direction:column; gap:.8rem; }
.footer-col a{ color: var(--on-dark-muted); font-size:.94rem; position:relative; transition: color .15s ease; }
.footer-col a:hover{ color: var(--white); }
.footer-col p{ color: var(--on-dark-muted); font-size:.9rem; line-height:1.7; margin-top:1.2rem; }
.footer-col p a{ color: var(--accent); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding: 1.8rem 0; flex-wrap:wrap; gap:1rem; font-size:.76rem; letter-spacing:.04em; color: var(--on-dark-muted); border-top:1px solid var(--on-dark-border); position:relative; z-index:1; }
@media (max-width: 900px){ .footer-nav-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-nav-grid{ grid-template-columns: 1fr; } }

/* ==========================================================================
   ARTICLE
   ========================================================================== */
.breadcrumbs{ font-size:.82rem; color: var(--muted); }
.breadcrumbs a{ color: var(--muted); }
.breadcrumbs a:hover{ color: var(--ink); }
.breadcrumbs .sep{ margin: 0 .5rem; color: var(--border); }
.bg-deep .breadcrumbs, .bg-deep .breadcrumbs a, .bg-gradient-deep .breadcrumbs, .bg-gradient-deep .breadcrumbs a{ color: var(--on-dark-muted); }

.article-header{ padding: 2.6rem 0 2.2rem; }
.article-header .breadcrumbs{ margin-bottom: 1.6rem; }
.article-header h1{ max-width: 24ch; text-transform:none; font-size: clamp(2.1rem, 4vw, 3rem); }
.article-header .subtitle{ margin-top:1.1rem; font-size:1.14rem; color: var(--muted); max-width: var(--measure); }
.article-meta-row{ display:flex; flex-wrap:wrap; align-items:center; gap: .5rem 1.4rem; margin-top: 1.8rem; padding-top:1.6rem; border-top:1px solid var(--border); }
.author-chip{ display:flex; align-items:center; gap:.6rem; }
.author-chip .avatar{ width:36px; height:36px; border-radius:50%; background: var(--primary); color:var(--accent); display:flex; align-items:center; justify-content:center; font-family: var(--font-display); font-weight:700; font-size:.78rem; flex:none; }
.author-chip .name{ font-size:.85rem; font-weight:700; color: var(--ink); }
.author-chip .role{ font-size:.75rem; color: var(--muted); }

.article-hero-media{ margin-top: 1.8rem; aspect-ratio: 16/9; overflow:hidden; border-radius: var(--radius); }
.article-hero-media img{ width:100%; height:100%; object-fit:cover; }
.article-hero-caption{ font-size:.78rem; color: var(--muted); margin-top:.7rem; }

.article-body-wrap{ display:grid; grid-template-columns: 220px 1fr; gap: 3.5rem; align-items:start; padding-top: 2.5rem; }
@media (max-width: 980px){ .article-body-wrap{ grid-template-columns: 1fr; } }

.toc{ position: sticky; top: calc(var(--header-h) + 1.8rem); }
.toc .eyebrow{ color: var(--muted); }
.toc .eyebrow .dot{ background: var(--cta); }
.toc ul{ margin-top: 1rem; display:flex; flex-direction:column; gap:.65rem; border-left: 1px solid var(--border); }
.toc a{ display:block; padding: .1rem 0 .1rem 1rem; font-size:.85rem; color: var(--muted); border-left: 2px solid transparent; margin-left:-1px; }
.toc a:hover{ color: var(--ink); }
.toc a.is-active{ color: var(--ink); font-weight:700; border-left-color: var(--accent); }
@media (max-width: 980px){ .toc{ display:none; } }

.article-content{ max-width: var(--measure); font-size: 1.06rem; }
.article-content > * + *{ margin-top: 1.4rem; }
.article-content h2{ font-size: clamp(1.4rem, 2.2vw, 1.8rem); margin-top: 2.6rem; scroll-margin-top: calc(var(--header-h) + 1rem); }
.article-content h3{ font-size: 1.3rem; margin-top: 2rem; scroll-margin-top: calc(var(--header-h) + 1rem); }
.article-content p{ line-height: 1.75; }
.article-content ul{ padding-left: 1.3rem; list-style: disc; display:flex; flex-direction:column; gap:.6rem; }
.article-content li{ line-height:1.65; }
.article-content a{ color: var(--ink); border-bottom: 1px solid var(--accent-35); }
.article-content a:hover{ border-color: var(--accent); }

.pullquote{ border-left: 3px solid var(--accent); padding: .2rem 0 .2rem 1.6rem; font-family: var(--font-display); font-weight:600; font-size: 1.4rem; line-height:1.4; color: var(--ink); }
.highlight-box{ background: var(--bg-light); border: 1px solid var(--border); padding: 1.7rem 1.8rem; border-radius: var(--radius); }
.highlight-box .eyebrow{ color: var(--ink); }
.highlight-box .eyebrow .dot{ background: var(--cta); }
.highlight-box h4{ margin-top:.6rem; }
.highlight-box p, .highlight-box ul{ margin-top:.6rem; }

.article-footer{ max-width: var(--measure); margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--border); }
.author-card{ display:flex; gap:1.1rem; align-items:flex-start; }
.author-card .avatar{ width:54px; height:54px; border-radius:50%; background: var(--primary); color:var(--accent); display:flex; align-items:center; justify-content:center; font-family: var(--font-display); font-weight:700; font-size:1.15rem; flex:none; }
.author-card h4{ font-size:1.05rem; text-transform:none; }
.author-card p{ font-size:.9rem; color: var(--muted); margin-top:.4rem; }

.reading-progress{ position: fixed; top:0; left:0; height:3px; background: var(--cta); z-index: 350; width:0%; transition: width .1s linear; }

.scroll-top{ position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 90; width: 46px; height:46px; border-radius:50%; background: var(--primary); color:var(--accent); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transform: translateY(8px); transition: opacity .2s ease, transform .2s ease; box-shadow: var(--shadow-md); }
.scroll-top.is-visible{ opacity:1; pointer-events:auto; transform:none; }

/* ==========================================================================
   FORMS
   ========================================================================== */
form .field{ margin-top: 1.3rem; }
form label{ display:block; font-size:.78rem; font-weight:800; color: var(--ink); margin-bottom:.5rem; text-transform:uppercase; letter-spacing:.05em; }
form input, form textarea, form select{ width:100%; padding: .95rem 1.05rem; border:1px solid var(--border); background:#fff; border-radius:10px; }
form input:focus, form textarea:focus, form select:focus{ border-color: var(--accent); }
form .error{ font-size:.8rem; color: #C0432E; margin-top:.4rem; display:none; }
form .field.has-error input, form .field.has-error textarea, form .field.has-error select{ border-color:#C0432E; }
form .field.has-error .error{ display:block; }
form .form-note{ font-size:.8rem; color: var(--muted); margin-top:1.3rem; }
.form-success{ background: var(--accent-15); border:1px solid var(--accent-35); padding:1.5rem; margin-top:1.4rem; border-radius: var(--radius); display:none; }
.form-success.is-visible{ display:block; }

.bg-deep form label, .bg-gradient-deep form label{ color: var(--white); }
.bg-deep form input, .bg-deep form textarea, .bg-deep form select,
.bg-gradient-deep form input, .bg-gradient-deep form textarea, .bg-gradient-deep form select{ background: rgba(255,255,255,0.06); border-color: var(--on-dark-border); color: var(--white); }
.bg-deep form .form-note, .bg-gradient-deep form .form-note{ color: var(--on-dark-muted); }
.bg-deep .form-success, .bg-gradient-deep .form-success{ background: rgba(255,255,255,0.06); border-color: var(--on-dark-border); }
.bg-deep .form-success p, .bg-deep .form-success a, .bg-gradient-deep .form-success p, .bg-gradient-deep .form-success a{ color: var(--on-dark-muted); }

.legal-content h2{ font-size:1.35rem; margin-top:2.4rem; }
.legal-content h3{ font-size:1.08rem; margin-top:1.6rem; }
.legal-content p, .legal-content ul{ margin-top:.9rem; color: var(--muted); max-width: var(--measure); }
.legal-content ul{ padding-left:1.2rem; list-style:disc; display:flex; flex-direction:column; gap:.5rem; }
.legal-content a{ color: var(--ink); border-bottom: 1px solid var(--accent-35); }

.error-page{ text-align:center; padding: 10rem 1rem 6rem; position:relative; }
.error-page .code{ font-family: var(--font-display); font-weight:700; font-size: clamp(3.4rem,9vw,5.8rem); color: var(--on-dark-border); line-height:1; text-transform:uppercase; }
.error-page h1{ margin-top:1rem; color:var(--white); text-transform:uppercase; }
.error-page p{ color: var(--on-dark-muted); margin-top:1rem; max-width:44ch; margin-left:auto; margin-right:auto; }
.error-page .hero-actions{ justify-content:center; margin-top:2.4rem; }

.divider{ height:1px; background: var(--border); width:100%; }
