/* ============================================================
   NordStar Group — shared stylesheet (LIGHT THEME)
   Futuristic premium: glass panels, glow lines, precise spacing
   ============================================================ */
:root{
  --bg:#f6f7fa;
  --bg2:#eef0f5;
  --panel:rgba(255,255,255,.72);
  --panel-solid:#ffffff;
  --line:rgba(19,28,46,.12);
  --line-soft:rgba(19,28,46,.07);
  --txt:#161c28;
  --dim:#5a6474;
  --red:#c8102e;
  --red-bright:#e5173a;
  --red-deep:#9d0c24;
  --red-soft:rgba(200,16,46,.45);
  --glow:rgba(200,16,46,.10);
  --ink:#1b2330;
  --display:'Space Grotesk','Segoe UI',system-ui,sans-serif;
  --body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono','SFMono-Regular',Consolas,Menlo,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:var(--body);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--red);color:#fff}
img{max-width:100%}
a{color:inherit}

.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
section{padding:96px 0;position:relative}
section+section{border-top:1px solid var(--line-soft)}
section:nth-of-type(even){background:linear-gradient(180deg,var(--bg2),var(--bg))}

/* ---------- typography ---------- */
h1,h2,h3,.display{font-family:var(--display);letter-spacing:-.015em}
h1{font-size:clamp(2.3rem,5.4vw,4rem);line-height:1.08;font-weight:600}
h1 em{font-style:normal;background:linear-gradient(92deg,var(--red) 0%,var(--red-bright) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
h2{font-size:clamp(1.6rem,3vw,2.3rem);line-height:1.15;font-weight:600;margin-bottom:10px}
h3{font-weight:600}
.kicker{font-family:var(--mono);font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--red);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.kicker:before{content:"";width:26px;height:1px;background:linear-gradient(90deg,var(--red),transparent)}
.sub{color:var(--dim);max-width:680px;margin-bottom:48px;font-size:1.02rem}
.mono{font-family:var(--mono)}

/* ---------- nav ---------- */
nav.top{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.82);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid var(--line-soft);box-shadow:0 1px 20px rgba(19,28,46,.05)}
nav.top:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--red-soft) 30%,transparent 65%);opacity:.4;pointer-events:none}
.navin{display:flex;align-items:center;justify-content:space-between;height:68px;gap:20px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{height:40px;width:auto;display:block}
.navlinks{display:flex;gap:2px;align-items:center}
.navlinks a{color:var(--dim);text-decoration:none;font-size:.88rem;padding:8px 12px;border-radius:8px;transition:color .15s,background .15s;white-space:nowrap}
.navlinks a:hover{color:var(--txt);background:rgba(19,28,46,.05)}
.navlinks a.active{color:var(--red);background:rgba(200,16,46,.07);box-shadow:inset 0 0 0 1px rgba(200,16,46,.22)}
.nav-cta{font-family:var(--mono);font-size:.8rem;color:var(--txt)!important;border:1px solid var(--line);border-radius:8px;padding:8px 14px!important;white-space:nowrap;background:#fff}
.nav-cta:hover{border-color:var(--red-soft);box-shadow:0 0 14px var(--glow)}
.hamburger{display:none;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--txt);font-size:1.15rem;padding:4px 12px;cursor:pointer}
@media(max-width:1020px){
  .navlinks{display:none;position:absolute;top:68px;left:0;right:0;background:rgba(255,255,255,.98);backdrop-filter:blur(16px);flex-direction:column;align-items:stretch;padding:14px 22px 22px;border-bottom:1px solid var(--line);gap:6px;box-shadow:0 18px 40px rgba(19,28,46,.12)}
  .navlinks.open{display:flex}
  .navlinks a{padding:12px 14px}
  .hamburger{display:block}
}

/* ---------- hero ---------- */
.hero{position:relative;padding:110px 0 100px;overflow:hidden;border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
.hero-bg{position:absolute;inset:0;pointer-events:none}
.hero-bg .grid{position:absolute;inset:0;
  background-image:linear-gradient(rgba(19,28,46,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(19,28,46,.055) 1px,transparent 1px);
  background-size:52px 52px;
  mask-image:radial-gradient(ellipse 85% 75% at 55% 15%,black 25%,transparent 72%);
  -webkit-mask-image:radial-gradient(ellipse 85% 75% at 55% 15%,black 25%,transparent 72%);
  animation:gridDrift 26s linear infinite}
@keyframes gridDrift{from{background-position:0 0,0 0}to{background-position:0 52px,52px 0}}
.hero-bg .glow-a{position:absolute;top:-220px;right:-140px;width:640px;height:640px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,16,46,.08),transparent 62%);animation:breathe 9s ease-in-out infinite}
.hero-bg .glow-b{position:absolute;bottom:-260px;left:-180px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,rgba(40,80,140,.06),transparent 62%);animation:breathe 12s ease-in-out infinite reverse}
@keyframes breathe{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.07)}}
.hero-bg .beam{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--red-soft),transparent);opacity:0;animation:beam 7s ease-in-out infinite}
.hero-bg .beam.b1{top:32%;animation-delay:1s}
.hero-bg .beam.b2{top:64%;animation-delay:4.2s}
@keyframes beam{0%,100%{opacity:0;transform:translateX(-18%)}45%{opacity:.4}60%{opacity:.4}100%{transform:translateX(18%)}}
.hero .wrap{position:relative}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
@media(max-width:920px){.hero-grid{grid-template-columns:1fr}.hero-art{display:none}}
.hero-art img{width:100%;height:auto;filter:drop-shadow(0 24px 40px rgba(19,28,46,.14))}
.hero .tag{font-family:var(--mono);color:var(--red);font-size:.82rem;letter-spacing:.16em;margin-bottom:24px}
.hero p.lead{margin:28px 0 40px;font-size:1.14rem;color:var(--dim);max-width:660px}
.hero .principal{margin-top:36px;font-family:var(--mono);font-size:.84rem;color:var(--dim)}

/* ---------- buttons ---------- */
.cta{display:inline-block;background:linear-gradient(135deg,var(--red-deep),var(--red-bright));color:#fff;font-weight:600;font-size:.95rem;
  padding:14px 30px;border-radius:9px;text-decoration:none;margin-right:14px;margin-bottom:10px;
  box-shadow:0 8px 22px rgba(200,16,46,.28),inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .14s,box-shadow .2s}
.cta:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(200,16,46,.36),inset 0 1px 0 rgba(255,255,255,.22)}
.cta.ghost{background:rgba(255,255,255,.75);color:var(--txt);border:1px solid var(--line);box-shadow:0 2px 10px rgba(19,28,46,.06);backdrop-filter:blur(6px)}
.cta.ghost:hover{border-color:var(--red-soft);box-shadow:0 4px 18px var(--glow)}

/* ---------- stat band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-top:70px;box-shadow:0 14px 40px rgba(19,28,46,.08)}
.stat{background:rgba(255,255,255,.85);padding:26px 22px;position:relative;backdrop-filter:blur(8px)}
.stat:before{content:"";position:absolute;top:0;left:0;width:38px;height:3px;background:var(--red)}
.stat .n{font-family:var(--display);font-size:1.75rem;font-weight:700;color:var(--txt)}
.stat .n span{color:var(--red)}
.stat .l{font-size:.83rem;color:var(--dim);margin-top:6px;line-height:1.45}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}}

/* ---------- glass cards ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:960px){.grid3,.grid4{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:30px 28px;position:relative;overflow:hidden;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 4px 18px rgba(19,28,46,.05);
  transition:border-color .2s,transform .2s,box-shadow .25s}
.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),transparent)}
.card:hover{border-color:rgba(200,16,46,.35);transform:translateY(-3px);box-shadow:0 16px 40px rgba(19,28,46,.12),0 0 22px var(--glow)}
.card h3{font-size:1.1rem;margin-bottom:10px;display:flex;align-items:center;gap:11px}
.card h3 .ico{font-family:var(--mono);color:var(--red);font-size:.95rem;background:rgba(200,16,46,.07);border:1px solid rgba(200,16,46,.25);border-radius:7px;padding:3px 8px;flex-shrink:0}
.card p{color:var(--dim);font-size:.93rem}
.card ul{margin-top:14px;list-style:none}
.card li{font-size:.88rem;color:var(--dim);padding:5px 0 5px 22px;position:relative}
.card li:before{content:"—";position:absolute;left:0;color:var(--red)}
.card.link-card{display:block;text-decoration:none}
.card .go{margin-top:18px;font-family:var(--mono);font-size:.8rem;color:var(--red);letter-spacing:.06em}
.card .go:after{content:" →";transition:margin .15s}
.card:hover .go:after{margin-left:5px}
.card .cardart{display:block;width:100%;height:120px;object-fit:contain;margin-bottom:18px}

/* two-tone feature rows */
.split{display:grid;grid-template-columns:1.15fr 1fr;gap:52px;align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.split p{color:var(--dim);margin-bottom:16px;font-size:.98rem}
.split p b{color:var(--txt)}

/* section head with art */
.headrow{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:center;margin-bottom:14px}
.headrow img{width:100%;height:auto}
@media(max-width:860px){.headrow{grid-template-columns:1fr}.headrow img{max-width:300px;margin:0 auto}}
.secart{width:100%;height:auto;display:block;margin-bottom:22px}

/* ---------- layered panel (big glass) ---------- */
.panel{background:linear-gradient(160deg,rgba(255,255,255,.9),rgba(255,255,255,.6));border:1px solid var(--line);border-radius:18px;padding:40px;position:relative;overflow:hidden;backdrop-filter:blur(12px);box-shadow:0 14px 44px rgba(19,28,46,.09)}
.panel:before{content:"";position:absolute;top:0;left:8%;right:8%;height:2px;background:linear-gradient(90deg,transparent,var(--red-soft),transparent)}
@media(max-width:680px){.panel{padding:26px 20px}}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:820px){.steps{grid-template-columns:1fr}}
.step{border-top:2px solid var(--red);padding-top:22px;position:relative}
.step:after{content:"";position:absolute;top:-2px;left:0;width:44px;height:2px;background:var(--ink);opacity:.85}
.step .num{font-family:var(--mono);color:var(--red);font-size:.82rem;margin-bottom:10px;letter-spacing:.1em}
.step h3{font-size:1.06rem;margin-bottom:8px}
.step p{color:var(--dim);font-size:.92rem}

/* ---------- tables ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);box-shadow:0 8px 28px rgba(19,28,46,.07)}
table.compare{width:100%;border-collapse:collapse;font-size:.88rem;min-width:760px}
table.compare th,table.compare td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top}
table.compare thead th{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);background:rgba(19,28,46,.035)}
table.compare thead th.hi{color:var(--red)}
table.compare td:first-child{color:var(--txt);font-weight:600;white-space:nowrap}
table.compare td{color:var(--dim)}
table.compare tbody tr:hover td{background:rgba(200,16,46,.03)}
table.compare td.best{color:var(--txt);position:relative}
table.compare td.best:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--red)}

/* ---------- calculator ---------- */
.calc{background:linear-gradient(160deg,rgba(255,255,255,.94),rgba(255,255,255,.7));border:1px solid var(--line);border-radius:18px;padding:38px;backdrop-filter:blur(12px);position:relative;overflow:hidden;box-shadow:0 16px 48px rgba(19,28,46,.1)}
.calc:before{content:"";position:absolute;top:0;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--red-soft),transparent)}
.calc h3{font-size:1.18rem;margin-bottom:4px}
.calc .note{font-size:.82rem;color:var(--dim);margin-bottom:28px}
.calcgrid{display:grid;grid-template-columns:1fr 1.3fr;gap:40px}
@media(max-width:820px){.calcgrid{grid-template-columns:1fr}.calc{padding:26px 20px}}
.field{margin-bottom:22px}
.field label{display:block;font-family:var(--mono);font-size:.73rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:9px}
.field input[type=range]{width:100%;accent-color:var(--red)}
.field select{width:100%;background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-family:var(--mono);font-size:.88rem}
.field .val{font-family:var(--mono);color:var(--red);font-size:.95rem}

/* ---------- form fields (contact page) ---------- */
.finput{width:100%;background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-family:var(--body);font-size:.94rem;transition:border-color .15s,box-shadow .15s}
.finput:focus{outline:none;border-color:var(--red-soft);box-shadow:0 0 0 3px var(--glow)}
textarea.finput{resize:vertical;min-height:120px}
.out{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.obox{background:var(--bg2);border:1px solid var(--line-soft);border-radius:10px;padding:16px 18px}
.obox .k{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.obox .v{font-family:var(--display);font-size:1.4rem;color:var(--txt);margin-top:5px;font-weight:700}
.obox .v em{font-style:normal;color:var(--red)}
.verdict{grid-column:1/-1;border-left:3px solid var(--red);background:var(--bg2);border-radius:10px;padding:17px 19px;font-size:.92rem;color:var(--txt)}
.verdict b{color:var(--red)}

/* ---------- partner marks & logos ---------- */
.partners{display:flex;flex-wrap:wrap;gap:14px}
.pmark{font-family:var(--display);font-weight:600;font-size:1rem;letter-spacing:.04em;color:var(--dim);border:1px solid var(--line);border-radius:10px;padding:14px 26px;background:rgba(255,255,255,.8);backdrop-filter:blur(8px);transition:color .2s,border-color .2s,box-shadow .2s}
.pmark:hover{color:var(--txt);border-color:var(--red-soft);box-shadow:0 4px 18px var(--glow)}
.logowall{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px}
.logowall .logo-tile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 24px;display:flex;align-items:center;justify-content:center;min-height:110px;box-shadow:0 4px 16px rgba(19,28,46,.05);transition:transform .2s,box-shadow .2s,border-color .2s}
.logowall .logo-tile:hover{transform:translateY(-3px);border-color:var(--red-soft);box-shadow:0 12px 30px rgba(19,28,46,.1)}
.logowall img{max-height:52px;width:auto;max-width:100%;object-fit:contain}
.logowall .textmark{font-family:var(--display);font-weight:700;font-size:1.25rem;letter-spacing:.02em;color:var(--ink)}
.logowall .textmark small{display:block;font-family:var(--mono);font-weight:400;font-size:.62rem;letter-spacing:.2em;color:var(--dim);text-transform:uppercase;margin-top:2px}

/* ---------- page header (subpages) ---------- */
.pagehead{position:relative;padding:90px 0 70px;overflow:hidden;border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
.pagehead .hero-bg .grid{animation:none}
.pagehead p.lead{margin-top:22px;font-size:1.08rem;color:var(--dim);max-width:700px}
.pagehead .hero-grid{align-items:center}
.crumb{font-family:var(--mono);font-size:.76rem;color:var(--dim);letter-spacing:.08em;margin-bottom:22px}
.crumb a{color:var(--dim);text-decoration:none}
.crumb a:hover{color:var(--red)}
.crumb span{color:var(--red)}

/* ---------- contact / CTA band ---------- */
.ctaband{text-align:center;padding:100px 0;position:relative;overflow:hidden;background:linear-gradient(180deg,var(--bg),#fff)}
.ctaband .glow-a{position:absolute;top:-160px;left:50%;transform:translateX(-50%);width:700px;height:420px;background:radial-gradient(ellipse,rgba(200,16,46,.08),transparent 65%);pointer-events:none}
.ctaband h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.ctaband p{color:var(--dim);max-width:560px;margin:18px auto 38px}
.contact-line{font-family:var(--mono);font-size:1rem;color:var(--txt);margin-top:8px}
.contact-line a{color:var(--red);text-decoration:none;border-bottom:1px dashed rgba(200,16,46,.45)}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:44px 0;background:var(--bg2)}
.f-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:26px;align-items:center}
.f-in img{height:36px}
.f-links{display:flex;flex-wrap:wrap;gap:18px}
.f-links a{color:var(--dim);text-decoration:none;font-size:.84rem}
.f-links a:hover{color:var(--red)}
.f-meta{font-family:var(--mono);font-size:.74rem;color:var(--dim);width:100%;margin-top:8px}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero-bg .grid,.hero-bg .glow-a,.hero-bg .glow-b,.hero-bg .beam{animation:none}
}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:28px;background:rgba(19,28,46,.45);backdrop-filter:blur(6px)}
.modal.open{display:flex}
.modal-box{background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;max-width:1040px;width:100%;max-height:86vh;overflow:auto;padding:34px;position:relative;box-shadow:0 30px 80px rgba(19,28,46,.3)}
.modal-box:before{content:"";position:absolute;top:0;left:6%;right:6%;height:2px;background:linear-gradient(90deg,transparent,var(--red-soft),transparent)}
.modal-close{position:sticky;top:0;float:right;background:var(--bg2);border:1px solid var(--line);color:var(--txt);border-radius:8px;font-size:1rem;padding:5px 13px;cursor:pointer}
.modal-close:hover{border-color:var(--red-soft)}

/* ---------- misc ---------- */
.quote{border-left:3px solid var(--red);padding:6px 0 6px 22px;color:var(--txt);font-size:1.05rem;font-family:var(--display);margin:26px 0}
.quote small{display:block;color:var(--dim);font-family:var(--mono);font-size:.76rem;margin-top:8px}
.tagrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.chip{font-family:var(--mono);font-size:.76rem;color:var(--dim);border:1px solid var(--line);border-radius:99px;padding:5px 13px;background:rgba(255,255,255,.7)}
.chip.hot{color:var(--red);border-color:rgba(200,16,46,.3)}
