/* ============================================================
   Obsidian Exterior — shared site styles (loaded on every page)
   Canonical header, footer, mobile lead bar, global mobile fixes.
   Class names are prefixed .oe- so they never collide with
   page-level styles.
   ============================================================ */

:root{
  --oe-bg:#08060f;
  --oe-bg-2:#0a0816;
  --oe-panel:#0d1a2a;
  --oe-line:rgba(139,43,226,.18);
  --oe-accent:#8b2be2;
  --oe-accent-hi:#a020f0;
  --oe-lilac:#b060f0;
  --oe-text:#f0ece4;
  --oe-text-dim:rgba(240,236,228,.72);
  --oe-muted:#7a8fa8;
  --oe-nav-h:112px;
  --oe-ease:cubic-bezier(.16,1,.3,1);
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{overflow-x:hidden}
body{background:var(--oe-bg)}
img{max-width:100%;height:auto}

:focus-visible{outline:2px solid var(--oe-lilac);outline-offset:2px;border-radius:4px}

/* ── Header ─────────────────────────────────────────────── */
.oe-nav{position:fixed;top:0;left:0;right:0;z-index:900;padding:.9rem 1.25rem;transition:background .35s var(--oe-ease),padding .35s var(--oe-ease),border-color .35s var(--oe-ease);border-bottom:1px solid transparent;background:transparent}
.oe-nav.scrolled,.oe-nav.oe-solid{background:rgba(8,6,15,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom-color:var(--oe-line)}
.oe-nav-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.oe-logo{display:flex;align-items:center;gap:.7rem;min-width:0;flex:0 1 auto;text-decoration:none}
.oe-logo img.oe-logo-mark{height:76px;width:auto;display:block;flex:0 0 auto}
.oe-logo img.oe-logo-word{width:min(320px,52vw);height:auto;max-height:76px;object-fit:contain;display:block}
.oe-menu{display:flex;align-items:center;gap:1.9rem}
.oe-link{font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:500;letter-spacing:.01em;color:var(--oe-text-dim);text-decoration:none;transition:color .25s;padding:.25rem 0}
.oe-link:hover{color:var(--oe-text)}
.oe-link[aria-current="page"]{color:var(--oe-text);position:relative}
.oe-link[aria-current="page"]::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--oe-accent);border-radius:2px}
.oe-cta{font-family:'DM Sans',sans-serif;background:var(--oe-accent);color:#fff;padding:.58rem 1.35rem;border-radius:8px;font-size:.88rem;font-weight:700;text-decoration:none;transition:background .25s,transform .25s,box-shadow .25s;white-space:nowrap}
.oe-cta:hover{background:var(--oe-accent-hi);transform:translateY(-1px);box-shadow:0 6px 20px rgba(139,43,226,.32)}
.oe-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;cursor:pointer;background:none;border:0;flex:0 0 auto}
.oe-burger span{width:22px;height:2px;background:var(--oe-text);border-radius:2px;transition:transform .3s var(--oe-ease),opacity .3s}
.oe-nav[data-open] .oe-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.oe-nav[data-open] .oe-burger span:nth-child(2){opacity:0}
.oe-nav[data-open] .oe-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Pages without a full-bleed hero get breathing room under the fixed header */
body.oe-pad-top{padding-top:calc(var(--oe-nav-h) + 8px)}

@media(max-width:960px){
  :root{--oe-nav-h:84px}
  .oe-burger{display:flex}
  .oe-nav{background:rgba(8,6,15,.98);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:var(--oe-line)}
  .oe-logo{position:relative;z-index:3}
  .oe-burger{position:relative;z-index:3}
  .oe-logo img.oe-logo-mark{height:52px}
  .oe-logo img.oe-logo-word{width:min(190px,46vw);max-height:52px}
  .oe-menu{position:fixed;top:0;left:0;right:0;bottom:0;height:100vh;height:100dvh;max-height:none;z-index:1;background:#07050e;flex-direction:column;align-items:stretch;gap:0;padding:calc(var(--oe-nav-h) + .8rem) 1.4rem 2.5rem;transform:translateX(100%);visibility:hidden;transition:transform .3s var(--oe-ease),visibility .3s;overflow-y:auto}
  .oe-nav[data-open] .oe-menu{transform:translateX(0);visibility:visible}
  .oe-link{font-size:1.3rem;font-weight:600;color:var(--oe-text);width:100%;padding:1.05rem 0;border-bottom:1px solid rgba(139,43,226,.14)}
  .oe-link[aria-current="page"]::after{display:none}
  .oe-link[aria-current="page"]{color:var(--oe-lilac)}
  .oe-cta{margin-top:1.3rem;width:100%;text-align:center;padding:.95rem 1rem;font-size:1rem}
  body[data-menu-open]{overflow:hidden}
}

/* ── Footer ─────────────────────────────────────────────── */
.oe-footer{background:#050911;border-top:1px solid var(--oe-line);font-family:'DM Sans',sans-serif;color:var(--oe-muted);margin-top:0}
.oe-footer a{text-decoration:none;color:var(--oe-muted);transition:color .25s}
.oe-footer a:hover{color:var(--oe-lilac)}
.oe-footer-grid{max-width:1280px;margin:0 auto;padding:3.5rem 1.5rem 2.5rem;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem}
.oe-footer-brand img{height:44px;width:auto;margin-bottom:1rem}
.oe-footer-brand p{font-size:.9rem;line-height:1.65;max-width:32ch}
.oe-footer h4{font-family:'Syne',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--oe-text);margin-bottom:1rem}
.oe-footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem;font-size:.9rem}
.oe-footer-contact{display:flex;flex-direction:column;gap:.6rem;font-size:.9rem}
.oe-footer-contact strong{color:var(--oe-text);font-weight:600}
.oe-footer-legal{border-top:1px solid rgba(139,43,226,.1)}
.oe-footer-legal-inner{max-width:1280px;margin:0 auto;padding:1.4rem 1.5rem 1.6rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem 2rem;font-size:.8rem}
.oe-footer-legal-inner nav{display:flex;gap:1.4rem}
.oe-disclaimer{max-width:1280px;margin:0 auto;padding:0 1.5rem 1.6rem;font-size:.74rem;line-height:1.6;color:rgba(122,143,168,.75)}
@media(max-width:960px){.oe-footer-grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media(max-width:560px){.oe-footer-grid{grid-template-columns:1fr;padding:2.6rem 1.25rem 1.8rem}}

/* ── Mobile lead bar ───────────────────────────────────── */
.oe-leadbar{display:none}
@media(max-width:760px){
  .oe-leadbar{display:flex;position:fixed;left:.7rem;right:.7rem;bottom:calc(.7rem + env(safe-area-inset-bottom,0));z-index:850;background:rgba(8,6,15,.96);border:1px solid rgba(139,43,226,.35);box-shadow:0 16px 40px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:14px;padding:.55rem;gap:.55rem}
  .oe-leadbar a{flex:1;text-align:center;border-radius:10px;padding:.75rem .4rem;font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:700;text-decoration:none}
  .oe-leadbar .oe-leadbar-call{background:var(--oe-accent);color:#fff}
  .oe-leadbar .oe-leadbar-est{background:rgba(255,255,255,.08);color:var(--oe-text);border:1px solid rgba(255,255,255,.14)}
  body{padding-bottom:5.2rem}
}

/* ── Global mobile & polish fixes ──────────────────────── */
@media(max-width:760px){
  /* Decorative floating shapes just clutter small screens */
  .hero-shape,.hero-shapes,.float-shape,.orb{display:none!important}
  /* Old ticker rows can force horizontal scroll */
  .ticker,.marquee{max-width:100vw}
  h1{overflow-wrap:break-word}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Homepage-only logo treatment (merged single-file build): toggled via
   .home-active on #oeNav by the router when the homepage section is showing. */
.oe-nav.home-active .oe-logo img.oe-logo-mark{height:clamp(64px,9vw,104px);width:auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.9)) drop-shadow(0 1px 26px rgba(0,0,0,.65))}
.oe-nav.home-active .oe-logo img.oe-logo-word{width:min(400px,58vw);max-height:clamp(64px,9vw,104px);filter:drop-shadow(0 2px 10px rgba(0,0,0,.9)) drop-shadow(0 1px 26px rgba(0,0,0,.65))}
@media(max-width:960px){
  .oe-nav.home-active .oe-logo img.oe-logo-mark{height:clamp(52px,13vw,72px)}
  .oe-nav.home-active .oe-logo img.oe-logo-word{width:min(220px,48vw);max-height:clamp(52px,13vw,72px)}
}

/* Hidden legacy hooks: old page scripts look for these ids */
.oe-legacy-hook{display:none!important}

/* Old emergency banner: desktop only, the lead bar covers mobile */
@media(max-width:760px){.emer-bar{display:none!important}}

/* Harden canonical components against page-level element selectors */
.oe-nav{display:block;margin:0}
.oe-footer{display:block;margin:0;padding:0;border-top:1px solid var(--oe-line)}
.oe-footer-grid{display:grid}


/* ── Global mobile compaction ── */
@media(max-width:760px){
  h1{font-size:min(2.3rem,8.5vw)!important;line-height:1.15!important}
  h2{font-size:min(1.7rem,6.8vw)!important}
  .s-sub,.hero-sub{font-size:.95rem!important}
}
