/* =========================================================
   FrameOrbitLab — shared stylesheet
   Cosmic-futuristic aesthetic for a web design studio:
   deep space, orbital rings, nebula glow.
   Class + ID prefix: fol-
   ========================================================= */

:root{
  --fol-space: #0A0B1A;
  --fol-space-2: #14162E;
  --fol-space-3: #060712;
  --fol-paper: #F5F6FA;
  --fol-paper-2: #E9EAF2;
  --fol-white: #FBFBFE;
  --fol-ink: #12142E;
  --fol-mist: #565A72;
  --fol-mist-on-dark: #ADB1CE;
  --fol-nebula: #B347FF;
  --fol-nebula-dim: #9333DB;
  --fol-gold: #FFD166;
  --fol-line: rgba(255,255,255,0.14);
  --fol-line-light: rgba(18,20,46,0.12);

  --fol-r-l: 20px;
  --fol-r-m: 13px;
  --fol-r-s: 8px;

  --fol-shadow: 0 26px 60px -24px rgba(6,7,18,0.5);
  --fol-shadow-sm: 0 10px 26px -14px rgba(6,7,18,0.4);

  --fol-header-h: 84px;
  --fol-ease: cubic-bezier(.19,1,.22,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:'Rubik',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--fol-paper);
  color:var(--fol-ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Orbitron',sans-serif;
  margin:0; line-height:1.15; letter-spacing:-0.005em; font-weight:700;
}
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
ul,ol{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
img,svg{ display:block; max-width:100%; }
::selection{ background:var(--fol-nebula); color:var(--fol-white); }

.fol-skip{ position:absolute; left:12px; top:-60px; background:var(--fol-nebula); color:var(--fol-white); padding:12px 20px; border-radius:var(--fol-r-s); font-weight:700; z-index:9999; transition:top .2s var(--fol-ease); }
.fol-skip:focus{ top:12px; }
a:focus-visible, button:focus-visible, summary:focus-visible{ outline:3px solid var(--fol-gold); outline-offset:3px; border-radius:6px; }

.fol-wrap{ max-width:1180px; margin:0 auto; padding:0 32px; }
.fol-wrap-wide{ max-width:1480px; margin:0 auto; padding:0 40px; }
.fol-eyebrow{ font-family:'Orbitron',sans-serif; text-transform:uppercase; letter-spacing:.13em; font-size:12px; font-weight:600; color:var(--fol-nebula-dim); display:inline-flex; align-items:center; gap:10px; }
.fol-eyebrow::before{ content:''; width:22px; height:1px; background:var(--fol-nebula-dim); display:inline-block; }
.fol-tone-dark .fol-eyebrow, .fol-tone-dark .fol-eyebrow::before{ color:var(--fol-gold); background:var(--fol-gold); }
.fol-h2{ font-size:clamp(28px,3.8vw,42px); }
.fol-lead{ font-size:17px; line-height:1.65; color:var(--fol-mist); max-width:620px; }
.fol-section-head{ margin-bottom:52px; }
.fol-tone-light{ background:var(--fol-paper); color:var(--fol-ink); }
.fol-tone-paper2{ background:var(--fol-paper-2); color:var(--fol-ink); }
.fol-tone-dark{ position:relative; background:var(--fol-space); color:var(--fol-white); overflow:hidden; }
.fol-tone-dark .fol-lead{ color:var(--fol-mist-on-dark); }
.fol-mist-txt{ color:var(--fol-mist); }
.fol-tone-dark .fol-mist-txt{ color:var(--fol-mist-on-dark); }

/* starfield backdrop for dark sections */
.fol-stars{ position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:
    radial-gradient(1.5px 1.5px at 10% 20%, rgba(255,255,255,0.5), transparent),
    radial-gradient(1.5px 1.5px at 80% 10%, rgba(255,255,255,0.4), transparent),
    radial-gradient(1px 1px at 60% 70%, rgba(255,255,255,0.35), transparent),
    radial-gradient(1.5px 1.5px at 30% 85%, rgba(255,255,255,0.4), transparent),
    radial-gradient(1px 1px at 90% 60%, rgba(255,255,255,0.3), transparent),
    radial-gradient(1.5px 1.5px at 45% 35%, rgba(255,255,255,0.45), transparent);
  background-size:100% 100%;
}
.fol-nebula-blob{ position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:0; }
.fol-tone-dark > .fol-wrap, .fol-tone-dark > .fol-wrap-wide{ position:relative; z-index:2; }

/* --- buttons --- */
.fol-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; border-radius:100px; font-weight:600; font-size:14.5px; border:1px solid transparent; transition:transform .18s var(--fol-ease), background .18s, border-color .18s, color .18s; white-space:nowrap; }
.fol-btn-primary{ background:var(--fol-nebula); color:var(--fol-white); }
.fol-btn-primary:hover{ background:var(--fol-nebula-dim); transform:translateY(-2px); }
.fol-btn-ghost-dark{ border-color:rgba(255,255,255,0.32); color:var(--fol-white); }
.fol-btn-ghost-dark:hover{ border-color:var(--fol-white); background:rgba(255,255,255,0.07); }
.fol-btn-ghost-light{ border-color:var(--fol-line-light); color:var(--fol-ink); }
.fol-btn-ghost-light:hover{ border-color:var(--fol-ink); background:rgba(18,20,46,0.05); }
.fol-btn-text{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--fol-nebula-dim); }
.fol-tone-dark .fol-btn-text{ color:var(--fol-gold); }
.fol-btn-text svg{ width:16px; height:16px; transition:transform .18s var(--fol-ease); }
.fol-btn-text:hover svg{ transform:translateX(4px); }
.fol-btn-sm{ padding:9px 18px; font-size:13px; }

/* =========================================================
   HEADER
   ========================================================= */
.fol-header{ position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--fol-header-h); display:flex; align-items:center; border-bottom:1px solid transparent; transition:background .25s var(--fol-ease), border-color .25s var(--fol-ease); }
.fol-header.is-scrolled{ background:rgba(10,11,26,0.85); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom-color:var(--fol-line); }
.fol-header-inner{ width:100%; max-width:1400px; margin:0 auto; padding:0 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.fol-brand{ display:flex; align-items:center; gap:11px; font-family:'Orbitron',sans-serif; font-weight:700; font-size:16.5px; color:var(--fol-white); flex-shrink:0; }
.fol-brand .fol-mark{ width:30px; height:30px; }
.fol-brand em{ font-style:normal; color:var(--fol-nebula); }

.fol-nav{ display:flex; align-items:center; gap:4px; }
.fol-nav a{ font-size:13.5px; font-weight:500; color:var(--fol-mist-on-dark); padding:10px 14px; border-radius:100px; transition:color .18s, background .18s; }
.fol-nav a:hover{ color:var(--fol-white); background:rgba(255,255,255,0.07); }
.fol-nav a.is-active{ color:var(--fol-white); background:rgba(179,71,255,0.22); }

.fol-header-right{ display:flex; align-items:center; gap:14px; }
.fol-burger{ display:none; width:44px; height:44px; border-radius:10px; border:1px solid var(--fol-line); background:transparent; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.fol-burger span{ width:20px; height:2px; background:var(--fol-white); display:block; transition:transform .25s var(--fol-ease), opacity .2s; }
.fol-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.fol-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.fol-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.fol-mobile-panel{ position:fixed; top:var(--fol-header-h); left:0; right:0; z-index:999; background:var(--fol-space-3); border-bottom:1px solid var(--fol-line); max-height:0; overflow:hidden; transition:max-height .32s var(--fol-ease); }
.fol-mobile-panel.is-open{ max-height:600px; }
.fol-mobile-panel ul{ padding:14px 24px 26px; display:flex; flex-direction:column; }
.fol-mobile-panel a{ padding:14px 4px; font-size:16px; font-weight:500; color:var(--fol-mist-on-dark); border-bottom:1px solid var(--fol-line); }
.fol-mobile-panel a.is-active, .fol-mobile-panel a:hover{ color:var(--fol-gold); }
.fol-mobile-panel .fol-btn{ margin-top:16px; width:100%; }

/* =========================================================
   HERO — copy centered, orbital ring/planet layered behind headline
   ========================================================= */
.fol-hero{ position:relative; background:var(--fol-space); color:var(--fol-white); padding:calc(var(--fol-header-h) + 70px) 0 90px; overflow:hidden; }
.fol-orbit-decor{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; z-index:1; }
.fol-orbit-svg{ width:min(680px, 82vw); height:auto; opacity:0.95; }
.fol-orbit-ring{ transform-origin:220px 220px; }
html.fol-js .fol-orbit-ring1{ animation:folSpin 26s linear infinite; }
html.fol-js .fol-orbit-ring2{ animation:folSpin 17s linear infinite reverse; }
@keyframes folSpin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }

.fol-hero-copy{ position:relative; z-index:2; max-width:800px; margin:0 auto; text-align:center; }
.fol-hero-copy .fol-eyebrow{ justify-content:center; margin-bottom:22px; }
.fol-hero-copy .fol-eyebrow::before{ display:none; }
.fol-hero h1{ font-size:clamp(32px,5vw,58px); }
.fol-hero h1 .fol-accent-word{ color:var(--fol-nebula); }
.fol-hero-sub{ font-size:clamp(15px,1.6vw,18px); color:var(--fol-mist-on-dark); max-width:600px; margin:24px auto 0; line-height:1.65; }
.fol-hero-ctas{ display:flex; align-items:center; justify-content:center; gap:24px; flex-wrap:wrap; margin-top:34px; position:relative; z-index:2; }
.fol-availability{ display:inline-flex; align-items:center; gap:9px; margin-top:28px; font-size:13px; color:var(--fol-mist-on-dark); font-weight:500; position:relative; z-index:2; }
.fol-availability .dot{ width:8px; height:8px; border-radius:50%; background:#5FD394; box-shadow:0 0 0 4px rgba(95,211,148,0.18); }

/* =========================================================
   TRUST STRIP
   ========================================================= */
.fol-trust{ padding:40px 0; border-bottom:1px solid var(--fol-line-light); }
.fol-trust-inner{ display:flex; align-items:center; gap:34px; flex-wrap:wrap; }
.fol-trust-label{ font-family:'Orbitron',sans-serif; font-size:11px; font-weight:600; letter-spacing:.06em; color:var(--fol-mist); flex-shrink:0; }
.fol-trust-row{ display:flex; gap:32px; flex-wrap:wrap; flex:1; }
.fol-trust-row span{ font-family:'Orbitron',sans-serif; font-weight:600; font-size:14px; color:var(--fol-ink); opacity:.58; }

/* =========================================================
   SECTION shell
   ========================================================= */
.fol-section{ position:relative; padding:106px 0; }
.fol-section.is-tight{ padding:66px 0; }

/* =========================================================
   SERVICES — numbered full-width rows ("mission log")
   ========================================================= */
.fol-svc-list{ display:flex; flex-direction:column; border-top:1px solid var(--fol-line-light); }
.fol-svc-row{ display:grid; grid-template-columns:64px 1fr; align-items:center; gap:22px; padding:28px 6px; border-bottom:1px solid var(--fol-line-light); transition:background .2s; }
.fol-svc-row:hover{ background:rgba(179,71,255,0.05); }
.fol-svc-ring{ width:44px; height:44px; border-radius:50%; border:2px solid var(--fol-nebula); display:flex; align-items:center; justify-content:center; font-family:'Orbitron',sans-serif; font-size:13px; font-weight:700; color:var(--fol-nebula-dim); }
.fol-svc-name{ font-size:17.5px; margin-bottom:6px; }
.fol-svc-desc{ font-size:13.8px; color:var(--fol-mist); line-height:1.55; max-width:520px; }

/* =========================================================
   PRICING — toggle / switcher pattern
   ========================================================= */
.fol-tier-switch{ display:flex; gap:10px; justify-content:center; margin-bottom:36px; flex-wrap:wrap; }
.fol-tier-tab{ padding:12px 24px; border-radius:100px; border:1px solid var(--fol-line); background:transparent; color:var(--fol-mist-on-dark); font-weight:600; font-size:14px; font-family:'Orbitron',sans-serif; transition:background .18s, color .18s, border-color .18s; }
.fol-tier-tab.is-active{ background:var(--fol-nebula); color:var(--fol-white); border-color:var(--fol-nebula); }
.fol-tier-panels{ max-width:560px; margin:0 auto; }
.fol-tier-panel{ display:none; padding:36px; border-radius:var(--fol-r-l); background:var(--fol-space-2); border:1px solid var(--fol-line); }
.fol-tier-panel.is-active{ display:block; }
.fol-tier-panel .tier{ font-family:'Orbitron',sans-serif; font-size:20px; }
.fol-tier-panel .desc{ font-size:14px; color:var(--fol-mist-on-dark); margin-top:8px; }
.fol-tier-panel .price{ font-family:'Orbitron',sans-serif; font-size:38px; margin-top:20px; }
.fol-tier-panel .price small{ font-size:13px; font-weight:500; color:var(--fol-mist-on-dark); }
.fol-tier-panel ul{ display:flex; flex-direction:column; gap:12px; margin-top:22px; }
.fol-tier-panel li{ font-size:13.8px; display:flex; align-items:flex-start; gap:9px; color:var(--fol-mist-on-dark); }
.fol-tier-panel li svg{ width:15px; height:15px; flex-shrink:0; margin-top:2px; color:var(--fol-gold); }

/* =========================================================
   ADDITIONAL SERVICES — classic bordered table
   ========================================================= */
.fol-price-table{ width:100%; border-collapse:collapse; }
.fol-price-table th{ text-align:left; font-family:'Orbitron',sans-serif; font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--fol-mist); padding:12px 14px; border-bottom:2px solid var(--fol-line-light); }
.fol-price-table td{ padding:16px 14px; border-bottom:1px solid var(--fol-line-light); font-size:14px; }
.fol-price-table tr:hover td{ background:rgba(179,71,255,0.04); }
.fol-price-table .amount{ font-family:'Orbitron',sans-serif; font-weight:700; color:var(--fol-nebula-dim); }
.fol-price-table .order{ font-size:12.5px; font-weight:700; color:var(--fol-nebula-dim); white-space:nowrap; }
.fol-price-table td:last-child, .fol-price-table th:last-child{ text-align:right; }

/* =========================================================
   PROCESS — vertical timeline, orbital-path styling
   ========================================================= */
.fol-vtimeline{ position:relative; max-width:700px; margin:0 auto; padding-left:52px; }
.fol-vtimeline::before{ content:''; position:absolute; left:18px; top:6px; bottom:6px; width:2px; background:linear-gradient(to bottom, var(--fol-nebula), var(--fol-gold)); opacity:.4; }
.fol-vt-item{ position:relative; padding-bottom:42px; }
.fol-vt-item:last-child{ padding-bottom:0; }
.fol-vt-item::before{ content:''; position:absolute; left:-52px; top:2px; width:16px; height:16px; border-radius:50%; background:var(--fol-space); border:2px solid var(--fol-gold); box-shadow:0 0 0 4px rgba(255,209,102,0.15); }
.fol-vt-num{ font-family:'Orbitron',sans-serif; font-size:12px; color:var(--fol-gold); }
.fol-vt-item h3{ font-size:18px; margin:6px 0 8px; }
.fol-vt-item p{ font-size:13.8px; color:var(--fol-mist-on-dark); line-height:1.6; }

/* =========================================================
   GUARANTEE — badge overlapping card corner
   ========================================================= */
.fol-guarantee-card{ position:relative; padding:44px 40px; border:1px solid var(--fol-line-light); border-radius:var(--fol-r-m); background:var(--fol-white); max-width:760px; margin:0 auto; }
.fol-guarantee-seal{ position:absolute; top:-24px; right:32px; width:64px; height:64px; border-radius:50%; background:var(--fol-nebula); color:var(--fol-white); display:flex; align-items:center; justify-content:center; box-shadow:var(--fol-shadow-sm); }
.fol-guarantee-seal svg{ width:28px; height:28px; }
.fol-guarantee-card h3{ font-size:20px; margin-bottom:12px; padding-right:60px; }
.fol-guarantee-card p{ font-size:14.5px; color:var(--fol-mist); line-height:1.65; }
.fol-guarantee-card a{ color:var(--fol-nebula-dim); text-decoration:underline; }

/* =========================================================
   COMPARISON — 3-column table-like strip (dark)
   ========================================================= */
.fol-compare{ border:1px solid var(--fol-line); border-radius:var(--fol-r-l); overflow:hidden; }
.fol-compare-row{ display:grid; grid-template-columns:1.3fr 1fr 1fr; }
.fol-compare-row + .fol-compare-row{ border-top:1px solid var(--fol-line); }
.fol-compare-row > div{ padding:18px 20px; font-size:13.8px; }
.fol-compare-row.is-head > div{ font-family:'Orbitron',sans-serif; font-weight:600; font-size:13px; background:var(--fol-space-2); color:var(--fol-white); }
.fol-compare-row:not(.is-head) > div:first-child{ font-weight:600; color:var(--fol-white); background:rgba(255,255,255,0.03); }
.fol-compare-row:not(.is-head) > div:nth-child(2),
.fol-compare-row:not(.is-head) > div:nth-child(3){ color:var(--fol-mist-on-dark); }
.fol-yes{ color:var(--fol-gold); font-weight:700; }
.fol-no{ color:#C25C5C; font-weight:700; }

/* =========================================================
   FAQ — single-column accordion, bordered/shadowed cards
   ========================================================= */
.fol-faq-cards{ display:flex; flex-direction:column; gap:14px; max-width:760px; margin:0 auto; }
.fol-faq-card{ border:1px solid var(--fol-line-light); border-radius:var(--fol-r-m); background:var(--fol-white); box-shadow:var(--fol-shadow-sm); overflow:hidden; }
.fol-faq-card-q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:20px 22px; background:transparent; border:none; text-align:left; font-family:'Orbitron',sans-serif; font-size:14.5px; font-weight:600; color:var(--fol-ink); }
.fol-faq-card-q .chev{ width:18px; height:18px; flex-shrink:0; transition:transform .25s var(--fol-ease); color:var(--fol-nebula-dim); }
.fol-faq-card.is-open .fol-faq-card-q .chev{ transform:rotate(180deg); }
.fol-faq-card-a{ max-height:0; overflow:hidden; transition:max-height .3s var(--fol-ease); }
.fol-faq-card-a-inner{ padding:0 22px 22px; font-size:14px; color:var(--fol-mist); line-height:1.6; }
.fol-faq-card-a-inner a{ color:var(--fol-nebula-dim); text-decoration:underline; }
html:not(.fol-js) .fol-faq-card-a{ max-height:none !important; }
.fol-faq-card.is-open .fol-faq-card-a{ max-height:400px; }

/* =========================================================
   ABOUT — prose + orbital-diagram visual side by side
   ========================================================= */
.fol-about-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; margin-bottom:60px; }
.fol-about-copy p{ font-size:15.3px; line-height:1.72; color:var(--fol-mist); margin-bottom:16px; }
.fol-about-visual{ display:flex; align-items:center; justify-content:center; height:320px; }
.fol-about-visual svg{ width:100%; max-width:320px; height:auto; }
.fol-stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; border-top:1px solid var(--fol-line-light); border-bottom:1px solid var(--fol-line-light); padding:36px 0; margin-bottom:60px; }
.fol-stat{ text-align:center; }
.fol-stat .num{ font-family:'Orbitron',sans-serif; font-size:clamp(28px,3.2vw,38px); color:var(--fol-nebula-dim); }
.fol-stat .label{ font-size:12.5px; color:var(--fol-mist); margin-top:6px; }
.fol-team{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:22px; max-width:640px; margin:0 auto; }
.fol-team-card{ padding:26px; border:1px solid var(--fol-line-light); border-radius:var(--fol-r-m); background:var(--fol-white); text-align:left; }
.fol-avatar{ width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Orbitron',sans-serif; font-weight:700; font-size:15px; color:var(--fol-white); margin-bottom:16px; }
.fol-team-card h4{ font-size:15.5px; margin-bottom:3px; }
.fol-team-card .role{ font-size:12px; color:var(--fol-nebula-dim); font-weight:600; margin-bottom:12px; }
.fol-team-card p.note{ font-size:13px; color:var(--fol-mist); line-height:1.5; font-style:italic; }

/* =========================================================
   REVIEWS — 2x2 static grid (dark)
   ========================================================= */
.fol-review-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.fol-review-card{ padding:30px; border-radius:var(--fol-r-l); background:var(--fol-space-2); border:1px solid var(--fol-line); }
.fol-stars{ color:var(--fol-gold); font-size:14px; letter-spacing:2px; margin-bottom:16px; }
.fol-review-card p.quote{ font-size:14.8px; line-height:1.6; color:var(--fol-mist-on-dark); margin-bottom:20px; }
.fol-review-who{ display:flex; align-items:center; gap:12px; }
.fol-review-who .name{ font-family:'Orbitron',sans-serif; font-size:13.5px; }
.fol-review-who .role{ font-size:12px; color:var(--fol-mist-on-dark); }

/* =========================================================
   FOOTER
   ========================================================= */
.fol-footer{ position:relative; background:var(--fol-space-3); color:var(--fol-mist-on-dark); padding:76px 0 0; overflow:hidden; }
.fol-footer-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid var(--fol-line); }
.fol-footer-brand .fol-brand{ margin-bottom:16px; }
.fol-footer-brand p{ font-size:13.5px; line-height:1.6; max-width:280px; }
.fol-footer h5{ font-family:'Orbitron',sans-serif; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--fol-white); margin-bottom:18px; }
.fol-footer ul li{ margin-bottom:12px; }
.fol-footer a{ font-size:14px; color:var(--fol-mist-on-dark); transition:color .18s; }
.fol-footer a:hover{ color:var(--fol-gold); }
.fol-footer .contact-item{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; margin-bottom:14px; }
.fol-footer .contact-item svg{ width:16px; height:16px; flex-shrink:0; margin-top:2px; color:var(--fol-gold); }
.fol-footer-bottom{ position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; padding:26px 0; font-size:12.5px; }
.fol-footer-bottom .legal-shortcuts{ display:flex; gap:18px; flex-wrap:wrap; }

/* =========================================================
   COOKIE BANNER
   ========================================================= */
.fol-cookie{ position:fixed; left:20px; right:20px; bottom:-200px; z-index:2000; max-width:560px; margin:0 auto; background:var(--fol-space); color:var(--fol-white); border:1px solid var(--fol-line); border-radius:var(--fol-r-l); padding:24px 26px; box-shadow:var(--fol-shadow); transition:bottom .5s var(--fol-ease); }
.fol-cookie.is-visible{ bottom:20px; }
.fol-cookie p{ font-size:13.5px; line-height:1.55; color:var(--fol-mist-on-dark); margin-bottom:16px; }
.fol-cookie a{ color:var(--fol-gold); text-decoration:underline; }
.fol-cookie-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* =========================================================
   STICKY CTA
   ========================================================= */
.fol-sticky-cta{ position:fixed; right:24px; bottom:24px; z-index:900; opacity:0; transform:translateY(16px) scale(.96); pointer-events:none; transition:opacity .3s var(--fol-ease), transform .3s var(--fol-ease); }
.fol-sticky-cta.is-visible{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.fol-sticky-cta .fol-btn{ box-shadow:var(--fol-shadow-sm); }

/* =========================================================
   REVEAL ANIMATION
   ========================================================= */
html.fol-js .fol-reveal{ opacity:0; transform:translateY(20px); transition:opacity .65s var(--fol-ease), transform .65s var(--fol-ease); }
html.fol-js .fol-reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html.fol-js .fol-reveal{ transition:none !important; opacity:1 !important; transform:none !important; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}
noscript .fol-reveal{ opacity:1 !important; transform:none !important; }

/* =========================================================
   Shared card icon, contact, legal
   ========================================================= */
.fol-card-icon{ width:50px; height:50px; border-radius:var(--fol-r-s); background:rgba(179,71,255,0.12); display:flex; align-items:center; justify-content:center; color:var(--fol-nebula-dim); flex-shrink:0; }
.fol-card-icon svg{ width:23px; height:23px; }

.fol-contact-hero{ padding:calc(var(--fol-header-h) + 70px) 0 60px; background:var(--fol-space); color:var(--fol-white); position:relative; overflow:hidden; }
.fol-contact-grid{ display:grid; grid-template-columns:1fr 1fr 380px; gap:22px; }
.fol-contact-cards{ grid-column:1 / span 2; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.fol-contact-card{ padding:28px; border:1px solid var(--fol-line-light); border-radius:var(--fol-r-m); background:var(--fol-white); }
.fol-contact-card .fol-card-icon{ margin-bottom:16px; }
.fol-contact-card h3{ font-size:15px; margin-bottom:8px; }
.fol-contact-card p, .fol-contact-card a{ font-size:14px; color:var(--fol-mist); line-height:1.6; }
.fol-contact-card a.value{ color:var(--fol-ink); font-weight:600; display:inline-block; margin-top:2px; }
.fol-side-panel{ padding:30px; border-radius:var(--fol-r-l); background:var(--fol-space); color:var(--fol-white); display:flex; flex-direction:column; gap:16px; justify-content:center; position:relative; overflow:hidden; }
.fol-side-panel h3{ font-size:18px; position:relative; z-index:1; }
.fol-side-panel p{ font-size:13.5px; color:var(--fol-mist-on-dark); line-height:1.6; position:relative; z-index:1; }
.fol-side-panel .fol-btn{ position:relative; z-index:1; }
.fol-map-wrap{ margin-top:22px; border-radius:var(--fol-r-l); overflow:hidden; border:1px solid var(--fol-line-light); height:400px; }
.fol-map-wrap iframe{ width:100%; height:100%; border:0; }

.fol-legal-hero{ padding:calc(var(--fol-header-h) + 64px) 0 40px; background:var(--fol-space); color:var(--fol-white); position:relative; overflow:hidden; }
.fol-legal-hero p{ color:var(--fol-mist-on-dark); max-width:680px; margin-top:14px; font-size:14.5px; line-height:1.65; position:relative; z-index:1; }
.fol-legal-hero .fol-eyebrow, .fol-legal-hero h1{ position:relative; z-index:1; }
.fol-legal-subnav{ position:sticky; top:var(--fol-header-h); z-index:80; background:var(--fol-paper); border-bottom:1px solid var(--fol-line-light); }
.fol-legal-subnav ul{ display:flex; gap:6px; padding:14px 0; flex-wrap:wrap; }
.fol-legal-subnav a{ padding:8px 16px; border-radius:100px; font-size:13px; font-weight:600; color:var(--fol-mist); }
.fol-legal-subnav a:hover{ background:var(--fol-paper-2); color:var(--fol-ink); }
.fol-legal-doc{ padding:64px 0; max-width:760px; margin:0 auto; }
.fol-legal-doc + .fol-legal-doc{ border-top:1px solid var(--fol-line-light); }
.fol-legal-doc h2{ font-size:26px; margin-bottom:6px; }
.fol-legal-doc .updated{ font-size:12.5px; color:var(--fol-mist); margin-bottom:30px; display:block; }
.fol-legal-doc h3{ font-family:'Orbitron',sans-serif; font-size:15.5px; margin:28px 0 10px; }
.fol-legal-doc p{ font-size:14.3px; line-height:1.75; color:var(--fol-mist); margin-bottom:14px; }
.fol-legal-doc ul{ margin-bottom:14px; }
.fol-legal-doc li{ font-size:14.3px; line-height:1.75; color:var(--fol-mist); padding-left:20px; position:relative; margin-bottom:8px; }
.fol-legal-doc li::before{ content:'—'; position:absolute; left:0; color:var(--fol-nebula-dim); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .fol-about-grid{ grid-template-columns:1fr; }
  .fol-about-visual{ order:-1; height:220px; }
  .fol-review-grid{ grid-template-columns:1fr; }
  .fol-svc-row{ grid-template-columns:48px 1fr; }
}
@media (max-width:900px){
  .fol-nav{ display:none; }
  .fol-burger{ display:flex; }
  .fol-stat-row{ grid-template-columns:repeat(2,1fr); row-gap:26px; }
  .fol-footer-grid{ grid-template-columns:1fr 1fr; }
  .fol-contact-grid{ grid-template-columns:1fr; }
  .fol-contact-cards{ grid-column:1; grid-template-columns:1fr 1fr; }
  .fol-compare-row{ grid-template-columns:1.2fr 1fr 1fr; }
  .fol-price-table{ font-size:13px; }
}
@media (max-width:640px){
  .fol-wrap,.fol-wrap-wide{ padding:0 20px; }
  .fol-section{ padding:74px 0; }
  .fol-contact-cards{ grid-template-columns:1fr; }
  .fol-footer-grid{ grid-template-columns:1fr; }
  .fol-hero-ctas{ flex-direction:column; width:100%; }
  .fol-hero-ctas .fol-btn{ width:100%; }
  .fol-legal-subnav ul{ overflow-x:auto; flex-wrap:nowrap; }
  .fol-compare-row{ grid-template-columns:1fr; }
  .fol-price-table{ display:block; overflow-x:auto; white-space:nowrap; }
}
@media (max-width:480px){
  .fol-hero{ padding-top:calc(var(--fol-header-h) + 46px); }
}
