/* ============================================================
   Top Shelf Logic — Shared Styles
   All pages link to this file. Page-specific CSS stays inline.
   ============================================================ */

/* ROOT VARIABLES */
:root{
  --blue:#24a7e0; --blue-br:#63c8f5; --blue-d:#0873ba;
  --navy:#071a30; --navy-2:#0a2547; --navy-3:#0c3059;
  --silver:#c7ccd1; --ink:#0f2036; --muted:#5c6b81; --muted-l:#9fb6d2;
  --bg:#ffffff; --bg2:#f5f8fc; --line:#e6ecf4;
}

/* BASE RESET */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:'Poppins',sans-serif;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:rgba(36,167,224,.28);color:var(--navy)}
.serif{font-family:'Playfair Display',Georgia,serif}
.wrap{max-width:1200px;margin:0 auto;padding:0 30px}
a{color:inherit;text-decoration:none}
.eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-d);font-weight:600}
.eyebrow.od{color:var(--blue-br)}

/* BUTTONS */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;padding:16px 30px;border-radius:100px;font-weight:600;font-size:15px;letter-spacing:.01em;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s cubic-bezier(.2,.7,.2,1),background .25s,border-color .25s,color .25s;cursor:pointer;border:none}
.btn::after{content:"";position:absolute;top:0;left:-90%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .55s ease;pointer-events:none}
.btn:hover::after{left:140%}
.btn:active{transform:translateY(-1px) scale(.98)}
.btn-blue{background:linear-gradient(120deg,var(--blue),var(--blue-d));color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 30px rgba(36,167,224,.32)}
.btn-blue:hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 18px 44px rgba(36,167,224,.42)}
.btn-ghost{background:rgba(255,255,255,.06);color:#fff;border:1.5px solid rgba(255,255,255,.28);backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.14);transform:translateY(-2px)}
.btn-white{background:#fff;color:var(--blue-d);box-shadow:0 10px 28px -12px rgba(5,16,32,.45)}
.btn-white:hover{transform:translateY(-3px);box-shadow:0 18px 42px -12px rgba(5,16,32,.5)}

/* SCROLL REVEAL */
.rv{opacity:0;transform:translateY(56px) scale(.985);transition:opacity 1s cubic-bezier(.16,.8,.24,1),transform 1s cubic-bezier(.16,.8,.24,1)}
.rv.in{opacity:1;transform:none}
.progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;background:linear-gradient(90deg,var(--blue),var(--blue-br));box-shadow:0 0 14px rgba(36,167,224,.8)}

/* SHARED KEYFRAMES */
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(90px,-70px) scale(1.18)}66%{transform:translate(-70px,55px) scale(.9)}}
@keyframes heroRise{from{opacity:0;transform:translateY(40px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes shimmer{0%,100%{background-position:110% 0}50%{background-position:-10% 0}}
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes ringspin{to{--ang:360deg}}
@keyframes sheenmove{0%{background-position:130% 0}60%{background-position:-50% 0}100%{background-position:-50% 0}}

/* NAV — DESKTOP */
header{position:sticky;top:0;z-index:120;background:rgba(6,18,34,.74);backdrop-filter:blur(16px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.08);transition:background .35s,box-shadow .35s}
header.scrolled{background:rgba(5,14,27,.92);box-shadow:0 14px 40px -18px rgba(0,0,0,.6)}
nav{display:flex;align-items:center;justify-content:space-between;padding:13px 30px;max-width:1300px;margin:0 auto}
.brand{display:flex;align-items:center}
.brand img{height:44px;width:auto;display:block}
nav .brand img{height:62px}
.navlinks{display:flex;gap:30px;font-size:14.5px;color:#c7d6ea;font-weight:500;align-items:center}
.navlinks>a,.nav-item>.mm{cursor:pointer;position:relative;padding:22px 0;transition:.2s;display:inline-block}
.navlinks>a:hover,.nav-item:hover>.mm,.navlinks>a.on,.nav-item>.mm.on{color:#fff}
.navright{display:flex;align-items:center;gap:20px}
.navphone{font-weight:600;font-size:15px;color:#fff}
.navphone span{color:var(--blue-br)}
.nav-item{position:relative}
.nav-item>.mm::after{content:" ▾";font-size:11px;color:var(--blue-br)}
.megamenu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px -16px rgba(9,33,68,.3),0 6px 18px rgba(9,33,68,.08);padding:20px;width:600px;display:grid;grid-template-columns:1fr 1fr;gap:2px 18px;opacity:0;visibility:hidden;transition:.22s cubic-bezier(.2,.7,.2,1);z-index:130}
.nav-item:hover .megamenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.megamenu a{display:flex;gap:11px;align-items:center;padding:10px 12px;border-radius:11px;color:var(--ink);font-size:14px;font-weight:500;transition:.15s}
.megamenu a:hover{background:var(--bg2)}
.megamenu a .mi{width:9px;height:9px;border-radius:50%;background:linear-gradient(140deg,var(--blue),var(--blue-d));flex-shrink:0}
.megamenu a.flag{grid-column:span 2;background:linear-gradient(120deg,rgba(36,167,224,.1),rgba(8,115,186,.05));font-weight:600;color:var(--navy)}

/* HAMBURGER BUTTON */
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;z-index:200;flex-shrink:0}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .3s ease,opacity .3s ease}

/* MOBILE NAV — full-screen overlay */
@media(max-width:1050px){
  .navphone{display:none}
  .nav-toggle{display:flex}
  .navlinks{
    display:none;
    position:fixed;inset:0;
    background:rgba(5,14,27,.97);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:0;
    z-index:150;
    padding:80px 30px 40px;
    overflow-y:auto;
  }
  .navlinks.open{display:flex}
  .navlinks>a,.navlinks .nav-item>.mm{
    padding:14px 0;
    font-size:22px;
    color:#c7d6ea;
    width:100%;
    text-align:center;
  }
  .navlinks>a:hover,.navlinks .nav-item>.mm:hover,.navlinks>a.on{color:#fff}
  .nav-item{width:100%;text-align:center}
  /* Megamenu becomes flat accordion on mobile */
  .nav-item:hover .megamenu,.nav-item .megamenu{
    position:static;
    transform:none;
    opacity:0;
    visibility:hidden;
    max-height:0;
    overflow:hidden;
    background:none;
    border:none;
    box-shadow:none;
    padding:0;
    width:auto;
    display:flex;
    flex-direction:column;
    grid-template-columns:unset;
    gap:0;
    transition:opacity .25s,max-height .35s ease,visibility .25s;
  }
  .nav-item.open .megamenu{
    opacity:1;
    visibility:visible;
    max-height:600px;
    padding:4px 0 12px;
  }
  .megamenu a{color:rgba(199,214,234,.7);font-size:14px;padding:7px 0;justify-content:center}
  .megamenu a:hover{background:none;color:#fff}
  .megamenu a.flag{display:none}
  .nav-item>.mm::after{content:" ▾"}
  .nav-item.open>.mm::after{content:" ▴"}
  /* Hamburger → X */
  header.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  header.nav-open .nav-toggle span:nth-child(2){opacity:0}
  header.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* SHARED SECTION COMPONENTS */
section.pad{padding:clamp(56px,6vw,90px) 0}
.kicker{text-align:center;margin-bottom:12px}
h2.head{font-size:clamp(30px,4vw,50px);font-weight:600;line-height:1.06;letter-spacing:-.022em;text-align:center;max-width:20ch;margin:0 auto;color:var(--navy);text-wrap:balance}
.lead{text-align:center;color:var(--muted);max-width:60ch;margin:16px auto 0;font-size:16.5px;line-height:1.7;text-wrap:pretty}

/* CTA SECTION */
.cta-final{position:relative;overflow:hidden;color:#fff;border:1px solid rgba(99,200,245,.28);border-radius:34px;padding:clamp(52px,6vw,80px) 40px;text-align:center;box-shadow:0 40px 90px -40px rgba(9,33,68,.6),0 0 120px -30px rgba(36,167,224,.5);background:radial-gradient(700px 460px at 15% 20%,rgba(99,200,245,.38),transparent 60%),radial-gradient(500px 360px at 90% 90%,rgba(36,167,224,.28),transparent 60%),linear-gradient(120deg,#071a30,#0c4f8f)}
.cta-final::before{content:"";position:absolute;inset:-2px;border-radius:36px;padding:2px;background:conic-gradient(from var(--ang),transparent 0deg,rgba(99,200,245,.85) 50deg,rgba(36,167,224,.35) 95deg,transparent 150deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;animation:ringspin 9s linear infinite;pointer-events:none}
.cta-final::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.06) 50%,transparent 65%);background-size:260% 100%;animation:sheenmove 8s ease-in-out infinite}
.cta-final h2{font-family:'Playfair Display',serif;font-size:clamp(30px,4vw,54px);font-weight:600;letter-spacing:-.02em;line-height:1.06;max-width:22ch;margin:0 auto 16px}
.cta-final p{color:#cfe6f7;max-width:52ch;margin:0 auto 30px;font-size:17px}

/* FOOTER */
footer{position:relative;overflow:hidden;color:#c3d3e6;border-top:3px solid var(--blue);background:radial-gradient(900px 520px at 100% 0,rgba(36,167,224,.20),transparent 60%),linear-gradient(180deg,#0a2547,#050f1f)}
.foot-seal{position:absolute;right:-70px;top:-70px;width:420px;opacity:.05;pointer-events:none}
.foot-main{position:relative;display:grid;grid-template-columns:1.5fr 1fr 1.1fr 1.1fr;gap:40px;padding:48px 0 30px}
.foot-brand .brand{margin-bottom:16px}
.foot-brand p{color:#9db3cc;font-size:14px;max-width:32ch;margin-bottom:20px;line-height:1.55}
.socials{display:flex;gap:10px;flex-wrap:wrap}
.socials a{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.06);display:grid;place-items:center;color:#c3d3e6;font-weight:700;font-size:12px;transition:.2s;border:1px solid rgba(255,255,255,.09)}
.socials a:hover{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(-3px)}
.socials a svg{width:17px;height:17px;display:block;fill:currentColor}
footer h4{color:#fff;font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px}
.fcol a{display:block;color:#9db3cc;font-size:14px;margin-bottom:11px;transition:.15s}
.fcol a:hover{color:var(--blue-br);padding-left:4px}
.fcol p{color:#9db3cc;font-size:13.5px;line-height:1.5;margin-bottom:14px}
.fcol p b{color:#dbeaf7;font-weight:600}
.foot-contact .ph{font-size:22px;font-weight:600;color:var(--blue-br);margin-bottom:6px}
.foot-contact .em{color:#9db3cc;font-size:14px;margin-bottom:18px;word-break:break-all}
.foot-bottom{position:relative;border-top:1px solid rgba(255,255,255,.08);padding:20px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:#7e93ad}
.foot-bottom a:hover{color:var(--blue-br)}
@media(max-width:860px){.foot-main{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:560px){.foot-main{grid-template-columns:1fr}}

/* FOCUS & ACCESSIBILITY */
a:focus-visible,.btn:focus-visible,.nav-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* REDUCED MOTION */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .rv{opacity:1;transform:none}
}
