/* ============================================================
   KESSLER SERVERS — managed Minecraft hosting front
   Self-contained. Imports the shared brand tokens, then layers
   the "company file / declassified dossier" corporate register.
   Register: phosphor-calm corporate idle (green); amber reserved
   strictly for the DEPLOY / SIGN-UP action, pricing CTAs and pull-quotes.
   Adapted & trimmed from kesslerorbital.com/css/styles.css.
   ============================================================ */
@import url("tokens.css");

:root{
  /* layout rhythm */
  --pad-x:clamp(16px,4vw,40px);
  --gap:clamp(28px,5vw,60px);
  --sect:clamp(54px,8vw,104px);

  /* dossier hairlines (a touch brighter than tokens --hair so the
     corner brackets actually read against the void) */
  --bracket:rgba(54,255,106,.42);
  --hair3:rgba(54,255,106,.28);
  --amber-glow:0 0 8px rgba(255,176,0,.45);
  --amber-line:rgba(255,176,0,.5);
  --amber-faint:rgba(255,176,0,.05);
}

/* ---------- base / CRT shell ---------- */
html{scroll-behavior:smooth}
body{
  font-size:clamp(13px,1.35vw,15px);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x);position:relative;z-index:1}
img,svg{max-width:100%}
a{color:var(--fg);text-decoration:none}
a:focus-visible,button:focus-visible,.cta:focus-visible{
  outline:2px solid var(--amber);outline-offset:3px;border-radius:1px;
}
:target{scroll-margin-top:80px}
.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}

/* shared atom override: tighter labels */
.label{display:inline-block}
.amber{color:var(--amber);text-shadow:var(--amber-glow)}

/* ---------- system bar (persistent top) ---------- */
.sysbar{
  position:sticky;top:0;z-index:40;
  background:linear-gradient(180deg,rgba(6,9,6,.96),rgba(6,9,6,.82));
  border-bottom:1px solid var(--hair);
  backdrop-filter:blur(2px);
}
.sysbar .wrap{
  display:flex;align-items:center;gap:18px;justify-content:space-between;
  min-height:46px;padding-top:8px;padding-bottom:8px;
}
.sysbar .brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.sysbar .brand svg{width:26px;height:26px;display:block;filter:drop-shadow(0 0 5px rgba(54,255,106,.35))}
.sysbar .brand .bt{font-size:11px;letter-spacing:.2em;line-height:1.25;text-transform:uppercase}
.sysbar .brand .bt b{font-weight:700;letter-spacing:.18em}
.sysbar .brand .bt .sub{display:block;color:var(--dim);font-size:9.5px;letter-spacing:.22em;text-shadow:none}
.sysnav{display:flex;gap:clamp(10px,1.6vw,20px);align-items:center;flex-wrap:wrap;justify-content:flex-end}
.sysnav a{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--label);white-space:nowrap}
.sysnav a:hover{color:var(--fg)}
.sysnav a[aria-current="page"]{color:var(--fg)}
.sysnav a.net{color:var(--amber);text-shadow:var(--amber-glow)}
/* the amber CTA pill living inside the nav */
.sysnav .navcta{
  color:var(--amber);border:1px solid var(--amber-line);background:var(--amber-faint);
  text-shadow:var(--amber-glow);padding:7px 12px;font-weight:700;letter-spacing:.14em;
}
.sysnav .navcta:hover{background:rgba(255,176,0,.13);color:var(--amber)}

/* mobile nav toggle — hidden on desktop */
.navtoggle{display:none}

@media (max-width:760px){
  .sysbar .brand .bt .sub{display:none}
  /* checkbox-driven disclosure nav (no JS) */
  .navtoggle{
    display:inline-flex;align-items:center;gap:8px;cursor:pointer;
    font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--label);
    border:1px solid var(--hair3);padding:7px 11px;user-select:none;
  }
  .navtoggle:hover{color:var(--fg);border-color:var(--fg)}
  #navchk{position:absolute;opacity:0;pointer-events:none}
  .sysnav{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:rgba(6,9,6,.98);border-bottom:1px solid var(--hair);
    max-height:0;overflow:hidden;transition:max-height .2s ease;
  }
  #navchk:checked ~ .sysnav{max-height:80vh}
  .sysnav a{padding:13px var(--pad-x);border-top:1px solid var(--hair2);font-size:12px}
  .sysnav .navcta{border:0;border-top:1px solid var(--hair2);background:rgba(255,176,0,.06)}
}
@media (prefers-reduced-motion:reduce){ .sysnav{transition:none} }

/* ---------- dossier "file" frame (THE SIGNATURE) ----------
   corner brackets drawn with 8 corner gradients — no extra markup. */
.file{
  position:relative;
  background:
    linear-gradient(var(--bracket),var(--bracket)) 0 0/16px 2px no-repeat,
    linear-gradient(var(--bracket),var(--bracket)) 0 0/2px 16px no-repeat,
    linear-gradient(var(--bracket),var(--bracket)) 100% 0/16px 2px no-repeat,
    linear-gradient(var(--bracket),var(--bracket)) 100% 0/2px 16px no-repeat,
    linear-gradient(var(--bracket),var(--bracket)) 0 100%/16px 2px no-repeat,
    linear-gradient(var(--bracket),var(--bracket)) 0 100%/2px 16px no-repeat,
    linear-gradient(var(--bracket),var(--bracket)) 100% 100%/16px 2px no-repeat,
    linear-gradient(var(--bracket),var(--bracket)) 100% 100%/2px 16px no-repeat,
    var(--panel);
  border:1px solid var(--hair2);
}
.file.amberframe{
  --bracket:var(--amber-line);
  border-color:rgba(255,176,0,.18);
  background-color:#120c03;
}
/* document header strip inside a file panel */
.filehd{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:9px 15px;border-bottom:1px solid var(--hair2);
  font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);
}
.filehd .clr{color:var(--label)}
.amberframe .filehd{color:var(--amber);border-color:rgba(255,176,0,.16)}
.amberframe .filehd .clr{color:var(--amber)}
.filebody{padding:clamp(16px,3vw,26px)}

/* ---------- section scaffolding ---------- */
.section{padding-top:var(--sect)}
.section:last-of-type{padding-bottom:var(--sect)}
.eyebrow{
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:18px;height:1px;background:var(--dim)}
.sec-head{display:flex;align-items:baseline;gap:14px;margin:14px 0 26px}
.sec-head h2{
  font-size:clamp(17px,3vw,24px);letter-spacing:.06em;text-transform:uppercase;
  font-weight:700;margin:0;line-height:1.18;text-wrap:balance;
}
.sec-head .rule{flex:1;height:1px;background:var(--hair);align-self:center;min-width:20px}
.prose{max-width:64ch;line-height:1.7;letter-spacing:.01em}
.prose p{margin:0 0 14px}
.prose p:last-child{margin-bottom:0}
.lede{max-width:70ch;color:var(--mute);text-shadow:none;line-height:1.7;margin:0 0 8px;
  font-size:clamp(13px,1.5vw,16px)}

/* ---------- hero ---------- */
.hero{padding-top:clamp(34px,6vw,70px)}
.hero-grid{
  display:grid;grid-template-columns:minmax(180px,290px) 1fr;
  gap:clamp(24px,5vw,56px);align-items:center;
}
.hero .emblem{position:relative}
.hero .patch{width:100%;height:auto;display:block;filter:drop-shadow(0 0 16px rgba(54,255,106,.22))}
.hero .htext .eyebrow{margin-bottom:18px}
.h1{margin:0;line-height:1}
.h1 .brandline{
  display:block;font-size:clamp(13px,1.6vw,15px);letter-spacing:.34em;
  text-transform:uppercase;color:var(--label);margin-bottom:14px;
}
.h1 .slogan{
  display:block;font-size:clamp(30px,5.6vw,54px);font-weight:700;
  letter-spacing:.02em;line-height:1.02;text-wrap:balance;
}
.hero .lead{
  margin:22px 0 0;max-width:58ch;font-size:clamp(13px,1.5vw,16px);
  line-height:1.65;color:var(--mute);text-shadow:none;
}
.hero .lead .em{color:var(--fg);text-shadow:0 0 5px rgba(54,255,106,.26)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero .motto{
  margin:30px 0 0;padding-top:18px;border-top:1px solid var(--hair2);
  font-size:12px;letter-spacing:.06em;color:var(--mute);text-shadow:none;font-style:italic;
}
@media (max-width:640px){
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .hero .emblem{max-width:200px}
}

/* ---------- buttons ---------- */
.cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 18px;font-family:inherit;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:700;cursor:pointer;
  border:1px solid var(--hair3);background:transparent;color:var(--fg);
  text-shadow:0 0 5px rgba(54,255,106,.26);transition:background .14s,border-color .14s,transform .14s;
}
.cta .arr{transition:transform .14s}
.cta:hover{background:rgba(54,255,106,.07);border-color:var(--fg)}
.cta:hover .arr{transform:translateX(3px)}
.cta.primary{
  color:var(--amber);border-color:var(--amber-line);
  background:var(--amber-faint);text-shadow:var(--amber-glow);
}
.cta.primary:hover{background:rgba(255,176,0,.13);border-color:var(--amber)}
/* hazard chevron flank on the primary deploy action */
.cta.primary::before{
  content:"";width:14px;height:10px;flex-shrink:0;
  background:
    linear-gradient(135deg,var(--amber) 40%,transparent 41%) 0 0/5px 10px no-repeat,
    linear-gradient(135deg,var(--amber) 40%,transparent 41%) 5px 0/5px 10px no-repeat;
  opacity:.85;
}
.cta.block{display:flex;justify-content:center;width:100%}

/* ---------- pull-quote ---------- */
.pullquote{display:flex;flex-direction:column;justify-content:center;gap:12px}
.pullquote .q{
  font-size:clamp(20px,3.4vw,30px);font-weight:700;letter-spacing:.01em;
  line-height:1.18;color:var(--amber);text-shadow:var(--amber-glow);text-wrap:balance;
}
.pullquote .qsub{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}

/* ---------- feature grid (divisions register) ---------- */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.4vw,20px)}
@media (max-width:820px){.feat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.feat-grid{grid-template-columns:1fr}}
.division .filebody{display:flex;flex-direction:column;gap:12px;height:100%}
.division .dno{font-size:10px;letter-spacing:.2em;color:var(--dim);text-transform:uppercase}
.division h3{
  margin:0;font-size:clamp(14px,2vw,17px);letter-spacing:.05em;text-transform:uppercase;
  font-weight:700;line-height:1.2;
}
.division p{margin:0;line-height:1.62;color:var(--mute);text-shadow:none;flex:1}
.division .dlink{
  display:inline-flex;align-items:center;gap:9px;margin-top:4px;
  font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;
}
.division .dlink .arr{transition:transform .14s}
.division .dlink:hover .arr{transform:translateX(3px)}
.division.featured{--bracket:var(--amber-line)}
.division.featured .filehd{color:var(--amber)}
.division.featured h3,.division.featured .dlink{color:var(--amber);text-shadow:var(--amber-glow)}

/* status chip (non-link) */
.statuschip{
  display:inline-flex;align-items:center;gap:9px;margin-top:4px;
  font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--fg);
}
.statuschip .dot{
  width:8px;height:8px;border-radius:50%;background:var(--fg);
  box-shadow:0 0 8px rgba(54,255,106,.8);animation:pulse 2.6s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

/* ---------- free-tier split panel ---------- */
.split{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(18px,3vw,34px);align-items:stretch}
@media (max-width:720px){.split{grid-template-columns:1fr}}
.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.checklist li{
  display:flex;gap:10px;align-items:baseline;line-height:1.55;
  color:var(--mute);text-shadow:none;font-size:13px;
}
.checklist li::before{content:"›";color:var(--fg);text-shadow:0 0 5px rgba(54,255,106,.4);flex-shrink:0}
.checklist.amber li::before{color:var(--amber);text-shadow:var(--amber-glow)}

/* ---------- pricing cards ---------- */
.price-note{max-width:66ch;color:var(--mute);text-shadow:none;margin:0 0 26px;line-height:1.7}
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.2vw,18px)}
@media (max-width:860px){.plan-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.plan-grid{grid-template-columns:1fr}}
.plan .filebody{display:flex;flex-direction:column;gap:16px;height:100%}
.plan .ram{font-size:clamp(22px,3vw,28px);font-weight:700;letter-spacing:.04em;line-height:1}
.plan .ram small{display:block;font-size:10px;letter-spacing:.2em;color:var(--dim);
  text-transform:uppercase;margin-top:6px;font-weight:400;text-shadow:none}
.plan .price{font-size:clamp(18px,2.4vw,22px);font-weight:700;letter-spacing:.02em;color:var(--fg)}
.plan .price .per{font-size:11px;letter-spacing:.14em;color:var(--mute);text-shadow:none;font-weight:400}
.plan .price.free{color:var(--fg)}
.plan ul.spec-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;flex:1}
.plan ul.spec-list li{
  display:flex;gap:9px;align-items:baseline;font-size:12px;line-height:1.5;
  color:var(--mute);text-shadow:none;
}
.plan ul.spec-list li::before{content:"·";color:var(--dim);flex-shrink:0}
.plan ul.spec-list li.excl{color:var(--amber);opacity:.9}
.plan ul.spec-list li.excl::before{content:"✕";color:var(--amber)}
.plan.featured{--bracket:var(--amber-line);border-color:rgba(255,176,0,.2)}
.plan.featured .ram{color:var(--amber);text-shadow:var(--amber-glow)}
.plan.featured .filehd{color:var(--amber)}
.plan .planhd-tag{color:var(--amber)}

/* ---------- long features (features.html) ---------- */
.feat-list{display:flex;flex-direction:column;gap:clamp(14px,2vw,18px)}
.feat-list .file .filebody{display:grid;grid-template-columns:180px 1fr;gap:clamp(14px,3vw,28px);align-items:baseline}
@media (max-width:640px){.feat-list .file .filebody{grid-template-columns:1fr;gap:10px}}
.feat-list h3{margin:0;font-size:clamp(15px,2vw,18px);letter-spacing:.05em;text-transform:uppercase;
  font-weight:700;line-height:1.25}
.feat-list p{margin:0;color:var(--mute);text-shadow:none;line-height:1.7;max-width:62ch}

/* ---------- operator data sheet ---------- */
.spec{width:100%;border-collapse:collapse;margin-top:6px}
.spec th,.spec td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--hair2);vertical-align:top}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:0}
.spec th{
  width:160px;font-weight:400;color:var(--dim);font-size:10px;letter-spacing:.18em;
  text-transform:uppercase;white-space:nowrap;
}
.spec td{color:var(--fg);font-size:13px;letter-spacing:.02em}
.spec td a{color:var(--amber);text-shadow:none;border-bottom:1px solid var(--amber-line)}
@media (max-width:560px){
  .spec th,.spec td{display:block;width:auto;padding:8px 12px}
  .spec th{border-bottom:0;padding-bottom:2px}
  .spec td{padding-top:0;border-bottom:1px solid var(--hair2)}
}
.disclaimer{margin-top:22px;max-width:78ch;font-size:11.5px;line-height:1.65;color:var(--mute);text-shadow:none}

/* ---------- legal pages (mentions légales / privacy / CGV) ---------- */
.legal-body{padding-top:clamp(26px,5vw,46px)}
.legal-body h1{
  font-size:clamp(22px,4vw,34px);letter-spacing:.04em;text-transform:uppercase;
  font-weight:700;margin:14px 0 8px;line-height:1.1;
}
.legal-body .updated{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:26px}
.legal-block{margin-bottom:18px}
.legal-block h2{
  font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--label);
  font-weight:700;margin:0;padding:9px 15px;border-bottom:1px solid var(--hair2);
}
.legal-block .lb{padding:15px;line-height:1.7;color:var(--mute);text-shadow:none}
.legal-block .lb p{margin:0 0 12px}
.legal-block .lb p:last-child{margin-bottom:0}
.legal-block .lb b{color:var(--fg);font-weight:700;text-shadow:none}
.legal-block .lb ul{margin:0;padding-left:18px}
.legal-block .lb li{margin:0 0 7px}
.legal-block .lb table.spec th{width:220px}
.ph{
  color:var(--amber);text-shadow:none;background:rgba(255,176,0,.08);
  padding:0 5px;border:1px solid rgba(255,176,0,.25);font-size:.95em;letter-spacing:.02em;
}
.legal-note{
  margin:0 0 30px;padding:13px 16px;border:1px dashed rgba(255,176,0,.4);
  background:rgba(255,176,0,.04);font-size:11.5px;line-height:1.6;color:var(--mute);text-shadow:none;
}
.legal-note b{color:var(--amber);text-shadow:none}

/* ---------- footer ---------- */
.site-footer{
  margin-top:var(--sect);border-top:1px solid var(--hair);
  padding:clamp(30px,5vw,46px) 0 36px;
}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;align-items:center;margin-bottom:26px}
.foot-top .fbrand{display:flex;align-items:center;gap:12px}
.foot-top .fbrand svg{width:34px;height:34px;filter:drop-shadow(0 0 6px rgba(54,255,106,.3))}
.foot-top .fbrand .ft b{font-weight:700;letter-spacing:.18em}
.foot-top .fbrand .ft span{display:block;color:var(--dim);font-size:10px;letter-spacing:.16em;text-shadow:none}
.foot-nav{display:flex;flex-wrap:wrap;gap:14px}
.foot-nav a{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--label)}
.foot-nav a:hover{color:var(--fg)}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px 30px;font-size:12px}
.foot-cols .fk{color:var(--dim);letter-spacing:.16em;text-transform:uppercase;font-size:10px;margin-bottom:9px}
.foot-cols .fl{color:var(--mute);text-shadow:none;line-height:1.85}
.foot-cols .fl a{color:var(--mute)}
.foot-cols .fl a:hover{color:var(--fg)}
.foot-cols .fl a.amber{color:var(--amber);text-shadow:none}
.foot-legal{
  margin-top:28px;padding-top:18px;border-top:1px solid var(--hair2);
  font-size:11px;letter-spacing:.04em;color:var(--mute);text-shadow:none;line-height:1.7;
}
.foot-legal .lat{font-style:italic;color:var(--label)}

/* ---------- motion guard ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none !important;transition:none !important}
}
