/* ============================================================
   Castellan — shared stylesheet for insight articles
   ============================================================ */
:root {
  --bg-stage:#08090C; --bg-panel:#14171F; --bg-elevated:#1A1E29;
  --ink-on-dark:#FBFBFB; --ink-on-dark-soft:#B8BCC8; --ink-on-dark-mute:#6B7080;
  --accent:#2D7CFF; --accent-glow:rgba(45,124,255,0.35); --accent-soft:#5BA0FF; --accent-dim:#1E5BCC;
  --hairline-dark:rgba(255,255,255,0.08);
  --font-display:'DM Serif Display','GT Sectra','Garamond',serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;
  --pad-x:clamp(1.5rem,5vw,5rem); --pad-y:clamp(5rem,10vw,8rem);
  --ease-out:cubic-bezier(0.16,1,0.3,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-body);background:var(--bg-stage);color:var(--ink-on-dark);line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;}
img,svg{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
.container{width:100%;max-width:1280px;margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x);}
.eyebrow{font-family:var(--font-mono);font-size:0.75rem;font-weight:500;text-transform:uppercase;letter-spacing:0.2em;color:var(--accent);}
em{font-style:italic;color:var(--accent-soft);}

/* NAV (same pattern as service pages) */
.nav{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.25rem var(--pad-x);background:rgba(8,9,12,0.85);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border-bottom:1px solid var(--hairline-dark);}
.nav-brand{font-family:var(--font-display);font-size:1.5rem;letter-spacing:-0.02em;color:var(--ink-on-dark);line-height:1;}
.nav-wordmark-dot{color:var(--accent);}
.nav-links{display:flex;gap:2.25rem;list-style:none;align-items:center;}
.nav-links a{font-size:0.85rem;font-weight:500;color:var(--ink-on-dark-soft);transition:color 0.25s var(--ease-out);}
.nav-links a:hover,.nav-links a.active{color:var(--ink-on-dark);}
.nav-links a.active{color:var(--accent);}
.nav-cta{padding:0.55rem 1.2rem;border:1px solid var(--hairline-dark);border-radius:999px;font-size:0.8rem;font-weight:500;transition:all 0.3s var(--ease-out);}
.nav-cta:hover{border-color:var(--accent);background:rgba(45,124,255,0.08);color:var(--ink-on-dark);}
.nav-lang{display:inline-flex;align-items:center;gap:0.4rem;padding-left:1rem;border-left:1px solid var(--hairline-dark);}
.nav-lang-btn{color:var(--ink-on-dark-mute);font-family:var(--font-mono);font-size:0.72rem;font-weight:500;letter-spacing:0.18em;padding:0.3rem 0.2rem;transition:color 0.25s var(--ease-out);}
.nav-lang-btn:hover{color:var(--ink-on-dark);}
.nav-lang-btn.active{color:var(--accent);}
.nav-lang-sep{color:var(--ink-on-dark-mute);font-family:var(--font-mono);font-size:0.72rem;opacity:0.5;}
.nav-toggle{display:none;width:32px;height:32px;position:relative;margin-left:auto;z-index:200;}
.nav-toggle-line{display:block;width:22px;height:1.5px;background:var(--ink-on-dark);position:absolute;left:5px;transition:transform 0.3s var(--ease-out),opacity 0.25s ease,top 0.3s var(--ease-out);}
.nav-toggle-line:nth-child(1){top:10px;}.nav-toggle-line:nth-child(2){top:16px;}.nav-toggle-line:nth-child(3){top:22px;}
.nav-toggle.open .nav-toggle-line:nth-child(1){top:16px;transform:rotate(45deg);}
.nav-toggle.open .nav-toggle-line:nth-child(2){opacity:0;}
.nav-toggle.open .nav-toggle-line:nth-child(3){top:16px;transform:rotate(-45deg);}
.nav-backdrop{display:none;position:fixed;inset:0;background:rgba(8,9,12,0.6);backdrop-filter:blur(4px);z-index:90;opacity:0;transition:opacity 0.3s ease;}
.nav-backdrop.open{display:block;opacity:1;}
.nav-has-sub{position:relative;}
.nav-caret{font-size:0.6em;opacity:0.7;display:inline-block;transition:transform 0.25s var(--ease-out);}
.nav-has-sub:hover .nav-caret,.nav-has-sub:focus-within .nav-caret{transform:rotate(180deg);}
.nav-has-sub::before{content:'';position:absolute;top:100%;left:-0.75rem;right:-0.75rem;height:1rem;}
.nav-sub{position:absolute;top:calc(100% + 0.7rem);left:50%;transform:translateX(-50%) translateY(8px);min-width:215px;list-style:none;background:rgba(12,14,19,0.97);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--hairline-dark);border-radius:12px;padding:0.5rem;display:flex;flex-direction:column;gap:0.1rem;opacity:0;visibility:hidden;transition:opacity 0.25s var(--ease-out),transform 0.25s var(--ease-out),visibility 0.25s;z-index:120;box-shadow:0 24px 60px rgba(0,0,0,0.45);}
.nav-has-sub:hover .nav-sub,.nav-has-sub:focus-within .nav-sub{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav-sub li{width:100%;}
.nav-sub a{display:block;padding:0.65rem 0.95rem;border-radius:8px;font-size:0.85rem;font-weight:500;color:var(--ink-on-dark-soft);white-space:nowrap;}
.nav-sub a:hover{background:rgba(45,124,255,0.12);color:var(--ink-on-dark);}
@media (max-width:1024px){
  .nav-toggle{display:block;}
  .nav-links{position:fixed;top:0;right:0;bottom:0;width:min(85vw,380px);flex-direction:column;align-items:flex-start;background:rgba(8,9,12,0.98);backdrop-filter:blur(20px);border-left:1px solid var(--hairline-dark);padding:6rem 2rem 2rem;gap:0.25rem;transform:translateX(100%);transition:transform 0.4s var(--ease-out);z-index:100;overflow-y:auto;}
  .nav-links.open{transform:translateX(0);}
  .nav-links li{width:100%;border-bottom:1px solid var(--hairline-dark);}
  .nav-links li:last-child{border-bottom:none;}
  .nav-links a{font-size:1.05rem;padding:1.1rem 0;display:block;width:100%;font-family:var(--font-display);}
  .nav-cta{border:1px solid var(--accent)!important;background:rgba(45,124,255,0.08);padding:0.85rem 1.4rem!important;margin-top:1.5rem;width:fit-content;}
  .nav-has-sub{position:static;}
  .nav-has-sub::before{display:none;}
  .nav-caret{display:none;}
  .nav-sub{position:static;transform:none;opacity:1;visibility:visible;min-width:0;background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;padding:0 0 0.75rem 1rem;gap:0;}
  .nav-sub li{border-bottom:none !important;}
  .nav-sub a{font-family:var(--font-body);font-size:0.95rem;font-weight:500;padding:0.7rem 0;color:var(--ink-on-dark-mute);}
  .nav-sub a:hover{background:none;color:var(--ink-on-dark);}
}

/* ARTICLE */
.art-hero{position:relative;padding:var(--pad-y) 0 3.5rem;border-bottom:1px solid var(--hairline-dark);overflow:hidden;}
.art-hero-grid{position:absolute;inset:0;background-image:linear-gradient(var(--hairline-dark) 1px,transparent 1px),linear-gradient(90deg,var(--hairline-dark) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at top left,black 10%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at top left,black 10%,transparent 70%);opacity:0.5;pointer-events:none;}
.art-hero-inner{position:relative;z-index:1;max-width:880px;}
.art-breadcrumb{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--ink-on-dark-mute);margin-bottom:1.5rem;}
.art-breadcrumb a{color:var(--accent);}
.art-meta{display:flex;gap:1.25rem;font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-on-dark-mute);margin-bottom:1.5rem;}
.art-meta .cat{color:var(--accent);}
.art-title{font-family:var(--font-display);font-size:clamp(2.4rem,5.5vw,4.2rem);font-weight:400;letter-spacing:-0.03em;line-height:1.05;margin-bottom:1.5rem;}
.art-lede{font-size:clamp(1.1rem,1.6vw,1.4rem);font-weight:300;line-height:1.55;color:var(--ink-on-dark-soft);max-width:720px;}
.art-body{padding:4.5rem 0 var(--pad-y);}
.art-prose{max-width:720px;margin:0 auto;}
.art-prose h2{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:400;letter-spacing:-0.02em;line-height:1.2;margin:3rem 0 1.25rem;}
.art-prose h2:first-child{margin-top:0;}
.art-prose p{font-size:1.05rem;line-height:1.75;color:var(--ink-on-dark-soft);margin-bottom:1.4rem;}
.art-prose strong{color:var(--ink-on-dark);font-weight:600;}
.art-prose ul{margin:0 0 1.4rem 1.25rem;color:var(--ink-on-dark-soft);}
.art-prose li{font-size:1.05rem;line-height:1.7;margin-bottom:0.6rem;}
.art-pull{border-left:2px solid var(--accent);padding:0.4rem 0 0.4rem 1.75rem;margin:2.5rem 0;}
.art-pull p{font-family:var(--font-display);font-size:clamp(1.3rem,2.2vw,1.7rem);font-style:italic;line-height:1.35;color:var(--ink-on-dark);margin:0;}
.art-note{margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid var(--hairline-dark);font-size:0.85rem;color:var(--ink-on-dark-mute);line-height:1.6;}

/* INSIGHTS INDEX */
.idx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:3.5rem;}
.idx-card{display:block;padding:2.25rem;background:var(--bg-panel);border:1px solid var(--hairline-dark);transition:all 0.4s var(--ease-out);position:relative;overflow:hidden;}
.idx-card:hover{border-color:var(--accent);background:var(--bg-elevated);}
.idx-card::after{content:'\2192';position:absolute;top:2.25rem;right:2.25rem;font-family:var(--font-mono);font-size:1.5rem;color:var(--accent);opacity:0;transition:all 0.3s var(--ease-out);}
.idx-card:hover::after{opacity:1;transform:translateX(4px);}
.idx-meta{display:flex;gap:1rem;font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-on-dark-mute);margin-bottom:1.25rem;}
.idx-meta .cat{color:var(--accent);}
.idx-title{font-family:var(--font-display);font-size:1.3rem;font-weight:400;line-height:1.25;letter-spacing:-0.015em;margin-bottom:1rem;max-width:90%;}
.idx-excerpt{font-size:0.9rem;line-height:1.55;color:var(--ink-on-dark-soft);}

/* CTA BAND */
.cta-band{padding:0 0 var(--pad-y);}
.cta-inner{background:linear-gradient(135deg,var(--bg-panel) 0%,var(--bg-elevated) 100%);border:1px solid var(--hairline-dark);padding:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden;max-width:920px;margin:0 auto;}
.cta-inner::before{content:'';position:absolute;top:0;right:0;width:300px;height:300px;background:radial-gradient(circle,var(--accent-glow),transparent 70%);pointer-events:none;}
.cta-h2{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.4rem);font-weight:300;letter-spacing:-0.02em;line-height:1.1;margin-bottom:1rem;position:relative;}
.cta-p{color:var(--ink-on-dark-soft);font-size:1rem;line-height:1.6;max-width:55ch;margin-bottom:2rem;position:relative;}
.cta-actions{display:flex;gap:1rem;flex-wrap:wrap;position:relative;}
.btn-primary{display:inline-flex;align-items:center;gap:0.6rem;padding:1rem 1.75rem;background:var(--accent);color:#fff;font-size:0.9rem;font-weight:600;border-radius:999px;transition:all 0.3s var(--ease-out);}
.btn-primary:hover{background:#4290FF;box-shadow:0 12px 32px var(--accent-glow);transform:translateY(-1px);}
.btn-secondary{display:inline-flex;align-items:center;gap:0.6rem;padding:1rem 1.75rem;border:1px solid var(--hairline-dark);border-radius:999px;font-size:0.9rem;font-weight:500;transition:all 0.3s var(--ease-out);}
.btn-secondary:hover{border-color:var(--ink-on-dark-soft);background:rgba(255,255,255,0.04);}

/* FOOTER */
.footer{padding:5rem 0 3rem;border-top:1px solid var(--hairline-dark);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem;}
.footer-brand{font-family:var(--font-display);font-size:1.8rem;letter-spacing:-0.02em;margin-bottom:1.25rem;line-height:1;}
.footer-brand-dot{color:var(--accent);}
.footer-tagline{font-family:var(--font-display);font-style:italic;font-size:1rem;color:var(--ink-on-dark-soft);margin-bottom:1.5rem;}
.footer-address{font-size:0.85rem;color:var(--ink-on-dark-mute);line-height:1.6;font-style:normal;}
.footer-col-title{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:0.7rem;}
.footer-col a{font-size:0.85rem;color:var(--ink-on-dark-soft);transition:color 0.25s var(--ease-out);}
.footer-col a:hover{color:var(--ink-on-dark);}
.footer-bottom{padding-top:2rem;border-top:1px solid var(--hairline-dark);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:0.7rem;color:var(--ink-on-dark-mute);letter-spacing:0.1em;text-transform:uppercase;}
@media (max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
