/* ============================================
   JE'DON GROUP — DESIGN SYSTEM
   Apple · Linear · Palantir aesthetic
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,600&family=Plus+Jakarta+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&family=Inter:wght@300;400;500;600;700&display=swap');

/* ─── Tokens ─────────────────────────────── */
:root {
  --navy:        #02284A;
  --navy-2:      #02284A;
  --navy-3:      #03305A;
  --navy-4:      #04396A;
  --navy-5:      #054272;
  --orange:      #F38227;
  --orange-dim:  rgba(243,130,39,0.12);
  --orange-glow: rgba(243,130,39,0.25);
  --white:       #FFFFFF;
  --off-white:   #EDF4FC;
  --cream:       #F3F0EA;
  --g100:        #F4F5F7;
  --g200:        #E8EAED;
  --g300:        #CDD0D5;
  --g400:        #9AA0AB;
  --g500:        #6B7280;
  --g600:        #4B5563;
  --g700:        #374151;
  --g900:        #111827;

  --font-sans:    'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-mono:    'JetBrains Mono', 'Fira Code', monospace;

  --max-w:  1280px;
  --gap-xl: 160px;
  --gap-lg: 120px;
  --gap-md: 80px;
  --gap-sm: 48px;

  --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.45, 0, 0.55, 1);

  --r-sm:  6px;
  --r-md:  12px;
  --r-lg:  20px;
  --r-xl:  28px;

  --sh-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
  --sh-md: 0 4px 16px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.06);
  --sh-lg: 0 12px 40px rgba(0,0,0,.14), 0 4px 12px rgba(0,0,0,.08);
  --sh-xl: 0 24px 64px rgba(0,0,0,.18);
  --sh-glow: 0 0 0 1px rgba(243,130,39,0.3), 0 0 32px rgba(243,130,39,0.12);
}

/* ─── Reset ──────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
body{
  font-family:var(--font-sans);
  font-size:16px;line-height:1.7;
  color:#02284A;
  background:#EDF4FC;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
ul,ol{list-style:none;}
input,textarea,select{font-family:inherit;}

/* ─── Selection & Scrollbar ──────────────── */
::selection{background:rgba(243,130,39,.2);color:var(--navy-2);}
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-track{background:var(--off-white);}
::-webkit-scrollbar-thumb{background:var(--g300);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--orange);}

/* ─── Cursor ─────────────────────────────── */
.cursor{
  width:10px;height:10px;border-radius:50%;
  background:var(--orange);
  position:fixed;top:0;left:0;
  pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
  transition:width .3s var(--ease-out),height .3s var(--ease-out),background .3s;
  mix-blend-mode:multiply;
}
.cursor.xl{width:48px;height:48px;background:rgba(243,130,39,.12);}
@media(hover:none){.cursor{display:none;}}

/* ─── Noise texture (SVG inline) ─────────── */
.noise::after{
  content:'';
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events:none;z-index:0;opacity:.4;
}

/* ─── Grid background pattern ────────────── */
.grid-bg{
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:64px 64px;
}
.grid-bg-light{
  background-image:
    linear-gradient(var(--g200) 1px,transparent 1px),
    linear-gradient(90deg,var(--g200) 1px,transparent 1px);
  background-size:64px 64px;
  background-color:var(--off-white);
}
.dot-bg{
  background-image:radial-gradient(var(--g300) 1px,transparent 1px);
  background-size:24px 24px;
}

/* ─── Gradient text ──────────────────────── */
.grad-text{
  background:linear-gradient(135deg,var(--white) 0%,rgba(255,255,255,.6) 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}
.grad-text-orange{
  background:linear-gradient(135deg,var(--orange) 0%,#FF9A5C 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ─── Gradient border card ───────────────── */
.grad-border{
  position:relative;
  background:rgba(255,255,255,.04);
  border-radius:var(--r-md);
}
.grad-border::before{
  content:'';
  position:absolute;inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.04),rgba(243,130,39,.2));
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
}
.grad-border:hover::before{
  background:linear-gradient(135deg,rgba(243,130,39,.5),rgba(255,255,255,.08),rgba(243,130,39,.3));
}

/* ─── Glass card ─────────────────────────── */
.glass{
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-md);
}
.glass-light{
  background:rgba(255,255,255,.8);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:var(--sh-md);
  border-radius:var(--r-md);
}

/* ─── Layout ─────────────────────────────── */
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 48px;}
@media(max-width:768px){.container{padding:0 20px;}}

/* ─── Section spacing ────────────────────── */
.section{padding:var(--gap-xl) 0;}
.section-md{padding:var(--gap-lg) 0;}
.section-sm{padding:var(--gap-md) 0;}
@media(max-width:768px){
  :root{--gap-xl:80px;--gap-lg:64px;--gap-md:48px;}
}

/* ─── Typography ─────────────────────────── */
.d-xl{
  font-family:var(--font-sans);
  font-size:clamp(56px,7vw,104px);
  font-weight:800;line-height:.97;
  letter-spacing:-.04em;
  color:var(--navy);
}
.d-lg{
  font-family:var(--font-sans);
  font-size:clamp(44px,5.5vw,80px);
  font-weight:800;line-height:1.0;
  letter-spacing:-.035em;
  color:var(--navy);
}
.d-md{
  font-family:var(--font-sans);
  font-size:clamp(34px,4vw,60px);
  font-weight:700;line-height:1.05;
  letter-spacing:-.03em;
  color:var(--navy);
}
.d-sm{
  font-family:var(--font-sans);
  font-size:clamp(26px,3vw,44px);
  font-weight:700;line-height:1.1;
  letter-spacing:-.025em;
  color:var(--navy);
}
.h1{font-size:clamp(22px,2.5vw,34px);font-weight:700;line-height:1.2;letter-spacing:-.02em;color:var(--navy);}
.h2{font-size:clamp(18px,2vw,26px);font-weight:600;line-height:1.3;letter-spacing:-.015em;color:var(--navy);}
.h3{font-size:18px;font-weight:600;line-height:1.4;color:var(--navy);}
.body-xl{font-size:clamp(17px,1.5vw,21px);line-height:1.72;color:var(--g500);}
.body-lg{font-size:clamp(15px,1.3vw,18px);line-height:1.75;color:var(--g500);}
.body-md{font-size:15px;line-height:1.7;color:var(--g500);}
.body-sm{font-size:13px;line-height:1.6;color:var(--g400);}
.label{
  font-size:11px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--orange);
}
.label-dim{color:rgba(255,255,255,.4);}
.label-line{display:inline-flex;align-items:center;gap:10px;}
.label-line::before{content:'';display:inline-block;width:28px;height:2px;background:var(--orange);}

/* ─── Buttons ────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 26px;
  font-size:14px;font-weight:700;
  border-radius:var(--r-sm);
  transition:all .25s var(--ease-out);
  cursor:pointer;white-space:nowrap;letter-spacing:-.01em;
}
.btn-lg{padding:17px 34px;font-size:15px;}
.btn-sm{padding:9px 18px;font-size:13px;}

.btn-primary{background:var(--orange);color:#fff;}
.btn-primary:hover{
  background:#D4551A;
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(243,130,39,.4);
}
.btn-dark{background:var(--white);color:var(--navy-2);}
.btn-dark:hover{background:var(--g100);transform:translateY(-2px);}
.btn-outline{border:1.5px solid var(--g300);color:#02284A;}
.btn-outline:hover{border-color:var(--navy-2);color:var(--navy-2);transform:translateY(-2px);}
.btn-outline-white{border:1.5px solid rgba(237,244,252,.35);color:#EDF4FC;}
.btn-outline-white:hover{border-color:rgba(237,244,252,.7);color:#EDF4FC;transform:translateY(-2px);}
.btn-ghost{color:#EDF4FC;border:1.5px solid rgba(237,244,252,.3);}
.btn-ghost:hover{color:#EDF4FC;border-color:rgba(237,244,252,.65);transform:translateY(-2px);}

.btn .arr{transition:transform .25s var(--ease-out);font-style:normal;}
.btn:hover .arr{transform:translateX(5px);}

/* ─── Reveal animations ──────────────────── */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);}
.reveal.vis{opacity:1;transform:none;}
.reveal-x{opacity:0;transform:translateX(-24px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);}
.reveal-x.vis{opacity:1;transform:none;}
.reveal-x-r{opacity:0;transform:translateX(24px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);}
.reveal-x-r.vis{opacity:1;transform:none;}
.reveal-scale{opacity:0;transform:scale(.96);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);}
.reveal-scale.vis{opacity:1;transform:none;}
.d1{transition-delay:.08s;} .d2{transition-delay:.16s;} .d3{transition-delay:.24s;}
.d4{transition-delay:.32s;} .d5{transition-delay:.40s;} .d6{transition-delay:.48s;}

/* ─── Page loader ────────────────────────── */
.page-loader{
  position:fixed;inset:0;background:var(--navy);z-index:9000;
  display:flex;align-items:center;justify-content:center;
  transition:opacity .7s .2s var(--ease-out),visibility .7s .2s;
}
.page-loader.out{opacity:0;visibility:hidden;}
.loader-inner{display:flex;flex-direction:column;align-items:center;gap:18px;}
.loader-mark{display:flex;align-items:center;justify-content:center;}
.loader-logo{height:64px;width:auto;animation:loaderPulse 1.1s ease-in-out infinite;}
.loader-name{display:none;}
.loader-sweep{position:relative;width:120px;height:2px;border-radius:2px;background:rgba(255,255,255,.12);overflow:hidden;}
.loader-sweep::after{content:'';position:absolute;top:0;left:-40%;width:40%;height:100%;border-radius:2px;background:var(--orange);animation:loaderSweep 1.6s ease-in-out infinite;}
.loader-bar{position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--orange);transition:width .8s var(--ease-out);}
@keyframes loaderPulse{0%,100%{opacity:.5;transform:scale(.94);}50%{opacity:1;transform:scale(1);}}
@keyframes loaderSweep{0%{left:-40%;}100%{left:100%;}}

/* ─── Navigation ─────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:0 48px;height:68px;
  display:flex;align-items:center;
  background:#02284A;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:background .4s var(--ease-out),border-color .4s,box-shadow .4s;
}
.nav.scrolled{
  background:#02284A;
  border-bottom-color:rgba(255,255,255,.12);
  box-shadow:0 4px 32px rgba(0,0,0,.28);
}
.nav.light{background:#02284A;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);}
.nav.light.scrolled{background:#02284A;backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 4px 32px rgba(0,0,0,.2);}
.nav.light.scrolled .nav-logo-img{background:transparent;padding:0;filter:none;}
.nav.light.scrolled .nav-logo-text{color:var(--white);}
.nav.light.scrolled .nav-link{color:rgba(255,255,255,.7);}
.nav.light.scrolled .nav-link:hover{color:var(--white);background:rgba(255,255,255,.1);}
.nav.light.scrolled .nav-toggle span{background:#EDF4FC;}

.nav-inner{width:100%;max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;}
.nav-logo{display:flex;align-items:center;}
.nav-logo-img{
  height:50px;width:auto;display:block;
  background:transparent;
  padding:0;
}
.nav-mark{width:34px;height:34px;background:var(--orange);border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.nav-mark svg{width:18px;height:18px;}
.nav-logo-text{font-size:17px;font-weight:700;color:var(--white);letter-spacing:-.02em;transition:color .3s;}

.nav-links{display:flex;align-items:center;}
.nav-link{
  font-size:13.5px;font-weight:500;color:rgba(255,255,255,.9);
  padding:7px 14px;border-radius:6px;
  position:relative;
  transition:color .2s,background .2s;
}
.nav-link:hover{color:var(--white);background:rgba(255,255,255,.1);}
.nav-link.active{color:var(--white);font-weight:700;}
.nav-link.active::after{
  content:'';
  position:absolute;bottom:-2px;left:14px;right:14px;
  height:2px;border-radius:2px;
  background:var(--orange);
}
/* light scrolled nav overrides */
.nav.light.scrolled .nav-link.active{color:var(--white);}
.nav.light.scrolled .nav-link.active::after{background:var(--orange);}

.nav-cta{
  background:var(--orange);color:#fff;
  font-size:13px;font-weight:700;
  padding:10px 20px;border-radius:6px;
  letter-spacing:-.01em;
  transition:all .25s;white-space:nowrap;
}
.nav-cta:hover{background:#D4551A;transform:translateY(-1px);box-shadow:0 4px 16px rgba(243,130,39,.35);}

.nav-toggle{display:none;flex-direction:column;gap:5px;width:28px;padding:4px;cursor:pointer;}
.nav-toggle span{display:block;height:2px;background:var(--white);border-radius:2px;transition:all .3s;}

.nav-mobile{
  display:none;
  position:fixed;top:68px;left:0;right:0;bottom:0;
  background:var(--navy);z-index:999;
  padding:32px 24px;overflow-y:auto;
  transform:translateX(100%);
  transition:transform .4s var(--ease-out);
}
.nav-mobile.open{transform:none;}
.nav-mobile .nav-link{display:block;color:rgba(255,255,255,.85);font-size:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.07);}
.nav-mobile .nav-cta{display:block;margin-top:28px;text-align:center;font-size:15px;padding:16px;border-radius:10px;}

@media(max-width:1024px){
  .nav-links{display:none;}
  .nav-cta{display:none;}
  .nav-toggle{display:flex;}
  .nav-mobile{display:block;}
  .nav{padding:0 24px;}
}

/* ─── Hero base ──────────────────────────── */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:center;
  overflow:hidden;
  background:var(--navy);
}
.hero-bg{position:absolute;inset:0;z-index:0;}
.hero-slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transform:scale(1.05);
  transition:opacity 2s ease-in-out,transform 10s linear;
}
.hero-slide.active{opacity:1;transform:scale(1.0);}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(108deg,rgba(2,40,74,.9) 0%,rgba(2,40,74,.65) 55%,rgba(2,40,74,.3) 100%);
  z-index:1;
}

/* Orange glow radial */
.hero-glow{
  position:absolute;z-index:1;
  width:900px;height:900px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(243,130,39,.07) 0%,transparent 70%);
  top:-200px;left:-100px;pointer-events:none;
}

/* Corner accents */
.corner{position:absolute;pointer-events:none;z-index:2;}
.corner-tl{top:0;left:0;width:160px;height:160px;border-top:2px solid var(--orange);border-left:2px solid var(--orange);opacity:0;transform:translate(-16px,-16px);transition:opacity 1s .9s var(--ease-out),transform 1s .9s var(--ease-out);}
.corner-br{bottom:0;right:0;width:100px;height:100px;border-bottom:2px solid var(--orange);border-right:2px solid var(--orange);opacity:0;transform:translate(16px,16px);transition:opacity 1s 1.1s var(--ease-out),transform 1s 1.1s var(--ease-out);}
.loaded .corner-tl,.loaded .corner-br{opacity:1;transform:none;}

/* Hero content */
.hero-content{
  position:relative;z-index:3;
  width:100%;max-width:var(--max-w);margin:0 auto;padding:0 48px;padding-top:120px;padding-bottom:80px;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;margin-bottom:28px;
  opacity:0;transform:translateY(16px);
  transition:opacity .7s .2s var(--ease-out),transform .7s .2s var(--ease-out);
}
.loaded .hero-eyebrow{opacity:1;transform:none;}
.hero-dot{width:6px;height:6px;border-radius:50%;background:var(--orange);}

/* Line-by-line headline reveal */
.hero-hl .line{display:block;overflow:hidden;}
.hero-hl .li{display:block;transform:translateY(110%);opacity:0;transition:transform .9s var(--ease-out),opacity .9s var(--ease-out);}
.loaded .hero-hl .li{transform:none;opacity:1;}
.loaded .hero-hl .line:nth-child(1) .li{transition-delay:.3s;}
.loaded .hero-hl .line:nth-child(2) .li{transition-delay:.45s;}
.loaded .hero-hl .line:nth-child(3) .li{transition-delay:.6s;}
.loaded .hero-hl .line:nth-child(4) .li{transition-delay:.72s;}

.hero-body{opacity:0;transform:translateY(16px);transition:opacity .7s .9s var(--ease-out),transform .7s .9s var(--ease-out);}
.loaded .hero-body{opacity:1;transform:none;}
.hero-actions{opacity:0;transform:translateY(16px);transition:opacity .7s 1.05s var(--ease-out),transform .7s 1.05s var(--ease-out);}
.loaded .hero-actions{opacity:1;transform:none;}

/* Scroll indicator */
.scroll-hint{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  opacity:0;animation:fadeUp 1s 2s forwards;
}
.scroll-hint span{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.35);}
.scroll-line{width:1px;height:44px;background:linear-gradient(to bottom,rgba(255,255,255,.3),transparent);animation:scrollAnim 2.2s 2s infinite;}
@keyframes scrollAnim{0%{opacity:1;transform:scaleY(1);}100%{opacity:0;transform:scaleY(.4)translateY(12px);}}
@keyframes fadeUp{to{opacity:1;}}

@media(max-width:768px){
  .hero-content{padding:0 24px;padding-top:120px;padding-bottom:140px;}
  .scroll-hint{bottom:20px;}
  .scroll-line{height:28px;}
}

/* ─── Trust / stat bar ───────────────────── */
.trust-bar{background:var(--off-white);border-bottom:1px solid var(--g200);padding:52px 0;}
.trust-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;}
.trust-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 52px;position:relative;}
.trust-item:not(:last-child)::after{content:'';position:absolute;right:0;top:15%;bottom:15%;width:1px;background:var(--g200);}
.trust-num{font-family:var(--font-sans);font-size:clamp(32px,4vw,52px);font-weight:800;line-height:1;letter-spacing:-.04em;color:#02284A;margin-bottom:6px;}
.trust-lbl{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g400);}
@media(max-width:640px){.trust-item{padding:12px 24px;}.trust-item:not(:last-child)::after{display:none;}}

/* ─── Section header pattern ─────────────── */
.sec-head{margin-bottom:64px;}
.sec-head-split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:64px;}
@media(max-width:900px){.sec-head-split{grid-template-columns:1fr;gap:24px;margin-bottom:48px;}}

/* ─── 2-col layout ───────────────────────── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;}
.two-col.gap-sm{gap:64px;}
.two-col.gap-lg{gap:120px;}
@media(max-width:900px){.two-col{grid-template-columns:1fr;gap:48px;}.two-col .order-last{order:2;}.two-col .order-first{order:1;}}

/* ─── Bento grid ─────────────────────────── */
.bento{display:grid;gap:14px;}
.bento-2{grid-template-columns:repeat(2,1fr);}
.bento-3{grid-template-columns:repeat(3,1fr);}
.bento-4{grid-template-columns:repeat(4,1fr);}
.bento-card{
  background:#ffffff;border-radius:var(--r-lg);
  border:1px solid var(--g200);
  padding:40px;overflow:hidden;position:relative;
  transition:all .35s var(--ease-out);cursor:pointer;
}
.bento-card:hover{border-color:var(--orange);box-shadow:var(--sh-glow);transform:translateY(-3px);}
.bento-card.dark{background:var(--navy-3);border-color:rgba(255,255,255,.08);}
.bento-card.dark:hover{border-color:rgba(243,130,39,.4);box-shadow:0 0 0 1px rgba(243,130,39,.3),0 0 40px rgba(243,130,39,.1);}
.bento-card.span-2{grid-column:span 2;}
.bento-card.span-2-r{grid-row:span 2;}
@media(max-width:900px){
  .bento-2,.bento-3,.bento-4{grid-template-columns:1fr;}
  .bento-card.span-2,.bento-card.span-2-r{grid-column:auto;grid-row:auto;}
}

/* ─── Card components ────────────────────── */
.card{
  background:var(--white);border-radius:var(--r-md);
  border:1px solid var(--g200);padding:36px;
  transition:all .3s var(--ease-out);
}
.card:hover{border-color:var(--g300);box-shadow:var(--sh-md);transform:translateY(-3px);}
.card-dark{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);border-radius:var(--r-md);}
.card-dark:hover{border-color:rgba(243,130,39,.3);}

/* ─── Capability / feature cards ─────────── */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--g200);border-radius:var(--r-lg);overflow:hidden;}
.feat-card{
  display:block;background:#ffffff;padding:44px 40px;
  position:relative;overflow:hidden;cursor:pointer;
  transition:background .3s;
}
.feat-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;
  height:3px;background:var(--orange);
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease-out);
}
.feat-card:hover::after{transform:scaleX(1);}
.feat-card:hover{background:var(--navy-2);}
.feat-icon{
  width:48px;height:48px;margin-bottom:24px;
  color:var(--orange);transition:color .3s;
}
.feat-title{font-size:17px;font-weight:700;color:#02284A;margin-bottom:10px;transition:color .3s;letter-spacing:-.015em;}
.feat-body{font-size:14px;line-height:1.65;color:var(--g500);transition:color .3s;}
.feat-arr{position:absolute;bottom:36px;right:36px;font-size:18px;color:var(--orange);transform:translateX(-4px);transition:transform .3s var(--ease-out);}
.feat-card:hover .feat-title{color:var(--white);}
.feat-card:hover .feat-body{color:rgba(255,255,255,.55);}
.feat-card:hover .feat-arr{transform:translateX(0);}
@media(max-width:1024px){.feat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.feat-grid{grid-template-columns:1fr;}}

/* ─── Alt feature card (dark bg) ─────────── */
.feat-alt{
  background:var(--navy-3);border-radius:var(--r-md);
  border:1px solid rgba(255,255,255,.07);
  padding:40px;cursor:pointer;position:relative;overflow:hidden;
  transition:all .35s var(--ease-out);
}
.feat-alt:hover{border-color:rgba(243,130,39,.35);transform:translateY(-4px);box-shadow:0 20px 60px rgba(0,0,0,.3);}
.feat-alt:hover .feat-alt-icon{color:var(--orange);}
.feat-alt-icon{width:40px;height:40px;color:rgba(255,255,255,.4);margin-bottom:20px;transition:color .3s;}
.feat-alt-title{font-size:17px;font-weight:700;color:#EDF4FC;margin-bottom:10px;letter-spacing:-.015em;}
.feat-alt-body{font-size:14px;line-height:1.65;color:rgba(255,255,255,.45);}

/* ─── Featured company editorial card ───── */
.ec-card{
  display:grid;grid-template-columns:1fr 1fr;
  gap:80px;align-items:center;
  padding:80px 0;
  border-bottom:1px solid var(--g200);
}
.ec-card:first-child{border-top:1px solid var(--g200);}
.ec-card.rev .ec-media{order:2;}.ec-card.rev .ec-content{order:1;}
.ec-media{
  border-radius:var(--r-lg);overflow:hidden;
  aspect-ratio:4/3;background:var(--g100);position:relative;
}
.ec-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-out);}
.ec-card:hover .ec-media img{transform:scale(1.03);}
.ec-badge{
  position:absolute;top:20px;left:20px;
  background:var(--orange);color:#fff;
  font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 12px;border-radius:4px;
}
.ec-cat{margin-bottom:16px;}
.ec-title{margin-bottom:18px;}
.ec-body{margin-bottom:28px;}
.ec-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px;}
.tag{
  font-size:12px;font-weight:600;color:#02284A;
  background:var(--g100);padding:5px 12px;
  border-radius:100px;border:1px solid var(--g200);
  letter-spacing:-.01em;
}
@media(max-width:900px){
  .ec-card{grid-template-columns:1fr;gap:32px;padding:56px 0;}
  .ec-card.rev .ec-media,.ec-card.rev .ec-content{order:unset;}
}

/* ─── Dark 3-pillar section ───────────────── */
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(255,255,255,.05);border-radius:var(--r-lg);overflow:hidden;}
.pillar{background:rgba(255,255,255,.02);padding:56px 48px;position:relative;transition:background .3s;}
.pillar:hover{background:rgba(255,255,255,.05);}
.pillar-num{
  font-family:var(--font-sans);font-size:80px;font-weight:800;
  letter-spacing:-.05em;line-height:1;
  color:rgba(255,255,255,.04);margin-bottom:20px;user-select:none;
}
.pillar-title{font-size:21px;font-weight:700;color:#EDF4FC;margin-bottom:14px;letter-spacing:-.02em;}
.pillar-body{font-size:15px;line-height:1.72;color:rgba(255,255,255,.5);}
.pillar-line{
  position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--orange);transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease-out);
}
.pillar:hover .pillar-line{transform:scaleX(1);}
@media(max-width:900px){.pillar-grid{grid-template-columns:1fr;}}

/* ─── Count stats ────────────────────────── */
.stat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:48px;text-align:center;padding:72px 0;border-top:1px solid var(--g200);border-bottom:1px solid var(--g200);}
.stat-num{
  font-family:var(--font-sans);font-size:clamp(44px,4.5vw,68px);
  font-weight:800;letter-spacing:-.04em;line-height:1;
  color:#02284A;margin-bottom:8px;
}
.stat-lbl{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--g400);}
@media(max-width:900px){.stat-row{grid-template-columns:repeat(3,1fr);}}
@media(max-width:560px){.stat-row{grid-template-columns:repeat(2,1fr);gap:32px;}}

/* ─── Timeline ───────────────────────────── */
.timeline{position:relative;display:grid;gap:0;}
.timeline::before{content:'';position:absolute;left:20px;top:0;bottom:0;width:1px;background:var(--g200);}
.t-item{display:flex;gap:32px;padding:0 0 52px 64px;position:relative;}
.t-dot{
  position:absolute;left:12px;top:4px;
  width:17px;height:17px;border-radius:50%;
  background:var(--white);border:2px solid var(--g300);
  transition:border-color .3s,background .3s;
  flex-shrink:0;
}
.t-item:hover .t-dot{background:var(--orange);border-color:var(--orange);}
.t-date{font-size:13px;font-weight:700;color:var(--orange);margin-bottom:8px;letter-spacing:.02em;}
.t-title{font-size:18px;font-weight:700;color:#02284A;margin-bottom:8px;letter-spacing:-.02em;}
.t-body{font-size:14px;line-height:1.7;color:var(--g500);}

/* Dark timeline */
.timeline-dark::before{background:rgba(255,255,255,.1);}
.timeline-dark .t-dot{background:var(--navy-3);border-color:rgba(255,255,255,.2);}
.timeline-dark .t-item:hover .t-dot{background:var(--orange);border-color:var(--orange);}
.timeline-dark .t-title{color:#EDF4FC;}
.timeline-dark .t-body{color:rgba(255,255,255,.5);}

/* ─── FAQ accordion ──────────────────────── */
.faq-list{border-top:1px solid var(--g200);}
.faq-item{border-bottom:1px solid var(--g200);}
.faq-q{
  width:100%;text-align:left;
  padding:24px 0;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  font-size:17px;font-weight:600;color:#02284A;
  letter-spacing:-.01em;cursor:pointer;
  transition:color .2s;
}
.faq-q:hover{color:var(--orange);}
.faq-q-icon{
  width:28px;height:28px;border-radius:50%;
  background:var(--g100);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .3s var(--ease-out);
}
.faq-item.open .faq-q-icon{background:var(--orange);transform:rotate(45deg);}
.faq-q-icon svg{width:14px;height:14px;color:var(--g500);transition:color .3s;}
.faq-item.open .faq-q-icon svg{color:var(--white);}
.faq-a{
  max-height:0;overflow:hidden;
  font-size:15px;line-height:1.75;color:var(--g500);
  transition:max-height .5s var(--ease-out),padding .5s var(--ease-out);
}
.faq-item.open .faq-a{max-height:400px;padding-bottom:24px;}

/* ─── Form ───────────────────────────────── */
.form-field,.form-group{margin-bottom:24px;}
.form-label{display:block;font-size:13px;font-weight:600;color:#02284A;margin-bottom:8px;letter-spacing:-.01em;}
.form-input,.form-textarea,.form-select{
  width:100%;
  background:#EDF4FC;
  border:1.5px solid var(--g300);
  border-radius:var(--r-sm);
  padding:13px 16px;
  font-size:15px;color:#02284A;
  font-family:var(--font-sans);
  transition:border-color .25s,box-shadow .25s;
  outline:none;
  -webkit-appearance:none;
}
.form-input:focus,.form-textarea:focus,.form-select:focus{
  border-color:var(--navy-2);
  box-shadow:0 0 0 3px rgba(13,27,42,.08);
}
.form-input.valid{border-color:#16a34a;}
.form-input.error{border-color:#dc2626;}
.form-textarea{resize:vertical;min-height:140px;line-height:1.6;}
.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;}
.form-hint{font-size:12px;color:var(--g400);margin-top:6px;}
.form-error{font-size:12px;color:#dc2626;margin-top:6px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:640px){.form-row{grid-template-columns:1fr;}}
.form-check{display:flex;align-items:flex-start;gap:12px;cursor:pointer;}
.form-check input[type="checkbox"]{
  width:18px;height:18px;border-radius:4px;
  border:1.5px solid var(--g300);margin-top:2px;flex-shrink:0;
  cursor:pointer;accent-color:var(--navy-2);
}
.form-check-lbl{font-size:13px;line-height:1.5;color:var(--g500);}

/* ─── Newsletter ─────────────────────────── */
.nl-section{background:var(--off-white);border-top:1px solid var(--g200);padding:80px 0;}
.nl-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.nl-form{display:flex;gap:12px;}
.nl-input{
  flex:1;height:52px;padding:0 18px;
  border:1.5px solid var(--g300);border-radius:6px;
  font-size:15px;font-family:var(--font-sans);
  background:#EDF4FC;color:#02284A;
  transition:border-color .25s;outline:none;
}
.nl-input:focus{border-color:var(--navy-2);}
.nl-note{font-size:12px;color:var(--g400);margin-top:10px;}
.nl-success{display:flex;align-items:flex-start;gap:14px;opacity:0;transform:translateY(6px);animation:nlIn .5s var(--ease-out) forwards;}
.nl-success-icon{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#16a34a;display:flex;align-items:center;justify-content:center;}
.nl-success-title{font-size:15px;font-weight:800;color:#02284A;margin-bottom:4px;}
.nl-success-body{font-size:13px;color:var(--g500);line-height:1.6;}
@keyframes nlIn{to{opacity:1;transform:none;}}
@media(max-width:768px){.nl-inner{grid-template-columns:1fr;gap:32px;}.nl-form{flex-direction:column;}}

/* ─── CTA section ────────────────────────── */
.cta-dark{
  background:var(--navy);
  padding:130px 0;text-align:center;
  position:relative;overflow:hidden;
}
.cta-dark::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 0%,rgba(243,130,39,.1) 0%,transparent 60%);
}
.cta-dark .cta-content{position:relative;z-index:1;max-width:660px;margin:0 auto;}
.cta-dark .cta-head{color:#EDF4FC;margin-bottom:20px;}
.cta-dark .cta-body{color:rgba(255,255,255,.55);font-size:18px;line-height:1.72;margin-bottom:44px;}
.cta-dark .cta-btns{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;}
.cta-strip{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:240px;height:2px;background:linear-gradient(90deg,transparent,var(--orange),transparent);}

/* ─── Footer ─────────────────────────────── */
.footer{background:var(--navy);color:var(--white);padding:88px 0 36px;}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:64px;padding-bottom:64px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:40px;}
.footer-brand-body{font-size:14px;line-height:1.7;color:rgba(255,255,255,.4);margin:20px 0 28px;max-width:260px;}
.footer-socials{display:flex;gap:8px;}
.f-social{width:36px;height:36px;border-radius:7px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.45);transition:all .25s;}
.f-social:hover{background:var(--orange);color:var(--white);transform:translateY(-2px);}
.footer-col-h{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:20px;}
.f-link{display:block;font-size:14px;color:rgba(255,255,255,.5);padding:5px 0;transition:color .2s;}
.f-link:hover{color:var(--white);}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;}
.f-copy{font-size:13px;color:rgba(255,255,255,.28);}
.f-copy .hl{color:var(--orange);}
.f-legal{display:flex;gap:24px;}
.f-legal a{font-size:13px;color:rgba(255,255,255,.28);transition:color .2s;}
.f-legal a:hover{color:rgba(255,255,255,.6);}
@media(max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr;gap:40px;}}
@media(max-width:640px){.footer-grid{grid-template-columns:1fr;}.footer-bottom{flex-direction:column;align-items:flex-start;}}

/* ─── News cards ─────────────────────────── */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.news-card{display:block;cursor:pointer;transition:transform .3s var(--ease-out);}
.news-card:hover{transform:translateY(-5px);}
.news-img{border-radius:var(--r-md);overflow:hidden;aspect-ratio:16/10;background:var(--g100);margin-bottom:20px;}
.news-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out);}
.news-card:hover .news-img img{transform:scale(1.05);}
.news-meta{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.news-cat{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);}
.news-date{font-size:12px;color:var(--g400);}
.news-title{font-size:18px;font-weight:700;color:#02284A;line-height:1.38;margin-bottom:10px;letter-spacing:-.02em;transition:color .2s;}
.news-card:hover .news-title{color:var(--orange);}
.news-excerpt{font-size:14px;line-height:1.65;color:var(--g500);margin-bottom:16px;}
.news-read{font-size:13px;font-weight:700;color:#02284A;display:inline-flex;align-items:center;gap:6px;letter-spacing:-.01em;}
.news-read .arr{transition:transform .25s;}
.news-card:hover .news-read .arr{transform:translateX(4px);}
@media(max-width:900px){.news-grid{grid-template-columns:1fr;max-width:560px;}}

/* ─── Image components ───────────────────── */
.img-frame{
  border-radius:var(--r-lg);overflow:hidden;
  background:var(--g100);position:relative;
}
.img-frame img{width:100%;height:100%;object-fit:cover;}
.img-frame-bar{
  position:absolute;left:0;right:0;bottom:0;
  padding:28px 28px 24px;
  background:linear-gradient(to top,rgba(2,40,74,.82) 0%,transparent 100%);
  color:var(--white);
}
.img-badge-corner{
  position:absolute;bottom:-10px;right:-10px;
  width:120px;height:120px;
  border:2px solid var(--orange);border-radius:var(--r-md);z-index:-1;
}

/* ─── Big quote block ────────────────────── */
.quote-block{
  position:relative;padding:48px 56px;
  border-left:3px solid var(--orange);
  background:var(--off-white);border-radius:0 var(--r-md) var(--r-md) 0;
}
.quote-text{
  font-family:var(--font-display);
  font-size:clamp(20px,2.2vw,28px);
  line-height:1.55;color:#02284A;font-style:italic;
}
.quote-sig{font-size:15px;font-weight:700;color:#02284A;margin-top:20px;letter-spacing:-.01em;}
.quote-role{font-size:13px;color:var(--g400);margin-top:4px;}

/* ─── Developing brand cards ─────────────── */
.dev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.dev-card{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
  border-radius:var(--r-md);padding:36px 28px;
  cursor:pointer;position:relative;
  transition:all .35s var(--ease-out);
}
.dev-card:hover{background:rgba(255,255,255,.07);border-color:rgba(243,130,39,.3);transform:translateY(-4px);}
.dev-pill{
  display:inline-block;font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.45);background:rgba(255,255,255,.07);
  border-radius:100px;padding:4px 10px;margin-bottom:24px;
}
.dev-name{font-size:21px;font-weight:800;color:#EDF4FC;margin-bottom:10px;letter-spacing:-.025em;}
.dev-body{font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.4);}
@media(max-width:900px){.dev-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.dev-grid{grid-template-columns:1fr;}}

/* ─── Values / philosophy grid ───────────── */
.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.val-card{
  padding:36px;border-radius:var(--r-md);
  border:1px solid var(--g200);
  transition:all .3s var(--ease-out);position:relative;overflow:hidden;
}
.val-card::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:var(--orange);transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease-out);
}
.val-card:hover::after{transform:scaleX(1);}
.val-card:hover{box-shadow:var(--sh-md);transform:translateY(-3px);}
.val-icon{width:40px;height:40px;color:var(--orange);margin-bottom:20px;}
.val-title{font-size:17px;font-weight:700;color:#02284A;margin-bottom:10px;letter-spacing:-.015em;}
.val-body{font-size:14px;line-height:1.65;color:var(--g500);}
@media(max-width:900px){.val-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:540px){.val-grid{grid-template-columns:1fr;}}

/* ─── Step process ───────────────────────── */
.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;position:relative;}
.steps::before{content:'';position:absolute;top:20px;left:12%;right:12%;height:1px;background:var(--g200);z-index:0;}
.step{text-align:center;padding:0 12px;position:relative;z-index:1;}
.step-dot{
  width:40px;height:40px;border-radius:50%;
  background:var(--white);border:2px solid var(--g300);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 16px;
  font-size:13px;font-weight:700;color:var(--g400);
  transition:all .3s;
}
.step:hover .step-dot{background:var(--orange);border-color:var(--orange);color:var(--white);}
.step-label{font-size:13px;font-weight:600;color:#02284A;line-height:1.3;}
@media(max-width:900px){.steps{grid-template-columns:repeat(3,1fr);gap:24px;}.steps::before{display:none;}.step-dot{width:36px;height:36px;}}
@media(max-width:540px){.steps{grid-template-columns:repeat(2,1fr);}}

/* ─── Person cards ───────────────────────── */
.person-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.person-card{
  border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--g200);
  transition:all .3s var(--ease-out);cursor:pointer;
}
.person-card:hover{box-shadow:var(--sh-lg);transform:translateY(-4px);}
.person-img{aspect-ratio:4/5;background:var(--g100);overflow:hidden;}
.person-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out);}
.person-card:hover .person-img img{transform:scale(1.04);}
.person-info{padding:24px;}
.person-name{font-size:17px;font-weight:700;color:#02284A;letter-spacing:-.02em;margin-bottom:4px;}
.person-role,.person-title{font-size:13px;color:var(--g500);margin-bottom:14px;}
.person-bio{font-size:13px;line-height:1.6;color:var(--g500);}
@media(max-width:1024px){.person-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:768px){.person-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.person-grid{grid-template-columns:1fr;}}

/* ─── Map / contact block ────────────────── */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:start;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:48px;}}
.contact-card{
  border-radius:var(--r-md);border:1px solid var(--g200);
  padding:40px;transition:all .3s var(--ease-out);
  display:flex;gap:20px;align-items:flex-start;
}
.contact-card:hover{border-color:var(--orange);box-shadow:var(--sh-glow);}
.contact-icon{
  width:48px;height:48px;border-radius:10px;
  background:var(--orange-dim);
  display:flex;align-items:center;justify-content:center;
  color:var(--orange);flex-shrink:0;
}
.contact-card-title{font-size:16px;font-weight:700;color:#02284A;margin-bottom:6px;}
.contact-card-body{font-size:14px;color:var(--g500);line-height:1.6;}

/* ─── Success / confirmation ─────────────── */
.success-box{
  max-width:700px;margin:0 auto;
  text-align:center;padding:80px 40px;
}
.success-icon{
  width:72px;height:72px;border-radius:50%;
  background:rgba(22,163,74,.1);border:2px solid rgba(22,163,74,.3);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 32px;
  animation:successPop .6s var(--ease-spring);
}
@keyframes successPop{0%{transform:scale(0);}100%{transform:scale(1);}}
.progress-timeline{
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:8px;position:relative;margin:48px 0;
}
.pt-step{text-align:center;padding:0 8px;}
.pt-dot{
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 12px;font-size:13px;font-weight:700;
  background:var(--g100);color:var(--g400);
  border:2px solid var(--g200);
}
.pt-step.done .pt-dot{background:var(--orange);color:#fff;border-color:var(--orange);}
.pt-step.active .pt-dot{background:var(--navy-2);color:#fff;border-color:var(--navy-2);}
.pt-label,.pt-title{font-size:14px;font-weight:700;color:#02284A;margin-bottom:6px;letter-spacing:-.01em;}
.pt-body{font-size:13px;color:var(--g500);line-height:1.55;}
@media(max-width:640px){.progress-timeline{grid-template-columns:repeat(3,1fr);}}

/* ─── 404 ────────────────────────────────── */
.err-num{
  font-family:var(--font-sans);
  font-size:clamp(120px,18vw,220px);
  font-weight:800;letter-spacing:-.06em;line-height:.9;
  color:var(--g200);user-select:none;text-align:center;
  margin-bottom:8px;
}
.err-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px;}
@media(max-width:640px){.err-grid{grid-template-columns:1fr;}}

/* ─── Person links ───────────────────────── */
.person-links{display:flex;gap:8px;margin-top:16px;}
.person-links a{width:30px;height:30px;border-radius:6px;background:var(--g100);display:flex;align-items:center;justify-content:center;color:var(--g500);transition:all .25s;}
.person-links a:hover{background:var(--navy-2);color:var(--white);}

/* ─── Person bio (alias) ─────────────────── */
.person-bio{font-size:13px;line-height:1.6;color:var(--g500);}

/* ─── Auto-load hero class ───────────────── */
.loaded .corner-tl,.loaded .corner-br{opacity:1;transform:none;}
.loaded .hero-eyebrow{opacity:1;transform:none;}
.loaded .hero-hl .li{transform:none;opacity:1;}
.loaded .hero-body{opacity:1;transform:none;}
.loaded .hero-actions{opacity:1;transform:none;}

/* ─── Misc ───────────────────────────────── */
.divider{width:100%;height:1px;background:var(--g200);}
.divider-dark{background:rgba(255,255,255,.07);}
.o-hidden{overflow:hidden;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.text-orange{color:var(--orange);}
.text-white{color:var(--white);}
.text-navy{color:var(--navy-2);}
.mt-1{margin-top:8px;}.mt-2{margin-top:16px;}.mt-3{margin-top:24px;}.mt-4{margin-top:32px;}.mt-6{margin-top:48px;}
.mb-1{margin-bottom:8px;}.mb-2{margin-bottom:16px;}.mb-3{margin-bottom:24px;}.mb-4{margin-bottom:32px;}
.text-center{text-align:center;}
.mx-auto{margin-left:auto;margin-right:auto;}
.max-560{max-width:560px;}.max-680{max-width:680px;}.max-760{max-width:760px;}

/* ─── Reading progress bar ───────────────── */
#read-progress{
  position:fixed;top:0;left:0;z-index:9001;
  height:2px;width:0%;background:var(--orange);
  transition:width .1s linear;pointer-events:none;
}

/* ─── HERO FLOATING STATS ── */
.hero-stats{
  position:absolute;bottom:80px;right:48px;
  display:grid;grid-template-columns:1fr 1fr;gap:12px;z-index:3;
}
@media(max-width:900px){
  .hero-stats{
    position:static;
    margin-bottom:32px;
    grid-template-columns:repeat(2,auto);
    justify-content:start;
  }
}
@media(max-width:480px){
  .hero-stats{grid-template-columns:1fr 1fr;}
  .hero-stats .glass{padding:16px 18px !important;min-width:0 !important;}
}

/* ─── RESPONSIVE GRID CLASSES ── */
.responsive-grid{display:grid;gap:16px;}
@media(max-width:900px){
  .responsive-grid{
    grid-template-columns:repeat(2,1fr) !important;
    gap:12px !important;
  }
}
@media(max-width:640px){
  .responsive-grid{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }
}

/* Checkbox grid responsive */
.check-grid{display:grid;gap:8px;margin-top:12px;}
@media(max-width:640px){
  .check-grid{grid-template-columns:1fr !important;}
}

/* ─── CAROUSEL GRID (horizontal scroll on mobile) ── */
.carousel-grid{display:grid;gap:16px;grid-auto-flow:column;grid-auto-columns:1fr;}
@media(max-width:768px){
  .carousel-grid{
    overflow-x:auto;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
    grid-auto-columns:calc(100vw - 40px);
    scroll-snap-type:x mandatory;
  }
  .carousel-grid > *{
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .carousel-grid::-webkit-scrollbar{height:4px;}
  .carousel-grid::-webkit-scrollbar-thumb{background:var(--g300);border-radius:2px;}
  .carousel-grid::-webkit-scrollbar-thumb:hover{background:var(--orange);}
}

/* ─── COMPREHENSIVE MOBILE RESPONSIVENESS ── */

/* Mobile: max-width 768px */
@media(max-width:768px){
  .container{padding:0 20px;}

  /* Grids: 3-col → 1-col or 2-col on mobile */
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3, 1fr)"]{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns: repeat(4, 1fr)"]{
    grid-template-columns:repeat(2,1fr) !important;
    gap:12px !important;
  }

  /* Two-column layouts → single column */
  .two-col{
    grid-template-columns:1fr !important;
    gap:32px !important;
  }

  /* Card padding reduction */
  .bento-card{padding:24px !important;}

  /* Form textarea height adjustment */
  .form-textarea{
    min-height:120px !important;
    font-size:16px;
  }

  /* Newsletter input height */
  .nl-input{
    min-height:48px !important;
    padding:12px 16px !important;
    font-size:16px !important;
  }

  /* Image spacing fix */
  .img-frame{margin-top:0;}

  /* Sticky positioning on mobile */
  .reveal-x-r{position:static;}
}

/* Tablet: max-width 900px */
@media(max-width:900px){
  /* Grids: 3-col → 2-col */
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3, 1fr)"]{
    grid-template-columns:repeat(2,1fr) !important;
  }

  /* 4-col grids on tablet */
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns: repeat(4, 1fr)"]{
    grid-template-columns:repeat(2,1fr) !important;
  }
}

/* Extra small screens: max-width 480px */
@media(max-width:480px){
  .container{padding:0 16px;}

  /* All grids to single column */
  [style*="grid-template-columns"]{
    grid-template-columns:1fr !important;
  }

  /* Padding reductions */
  .bento-card{padding:16px !important;}
  .section{padding:48px 0 !important;}

  /* Button sizing */
  .btn{padding:12px 16px !important;font-size:14px !important;}
  .btn-lg{padding:14px 20px !important;}

  /* Heading sizes */
  .d-xl{font-size:clamp(32px,6vw,56px) !important;}
  .d-lg{font-size:clamp(28px,5vw,44px) !important;}
  .d-md{font-size:clamp(22px,4vw,34px) !important;}

  /* Form layouts */
  .form-row{grid-template-columns:1fr !important;}

  /* Text content */
  body{font-size:15px;}

  /* Sidebar nav sticky positioning */
  .profile-sidebar{position:static;}
  .profile-sidebar-nav{display:flex;flex-direction:column;gap:4px;margin-bottom:32px;}
}

/* ─── Prefers reduced motion ─────────────── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  .reveal,.reveal-x,.reveal-x-r,.reveal-scale{opacity:1;transform:none;}
}
