:root{
    --ink:#0A0A0A;
    --ink-soft:#161616;
    --paper:#FFFFFF;
    --mist:#F5F5F3;
    --grey:#68696A;
    --grey-dark-bg:#A5A6A7;
    --line:rgba(10,10,10,.10);
    --line-dark:rgba(255,255,255,.14);
    --green:#18B562;
    --green-deep:#0E8A4B;
    --green-bright:#37E38C;
    --maxw:1280px;
    --radius:20px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',system-ui,sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{color:inherit;}
  button{font-family:inherit;}
  ::selection{ background:var(--green); color:#fff; }

  /* ---------------- CUSTOM SCROLLBAR ---------------- */
  html{
    scrollbar-width:thin;
    scrollbar-color:var(--green) var(--ink);
  }
  ::-webkit-scrollbar{ width:12px; }
  ::-webkit-scrollbar-track{ background:var(--ink); }
  ::-webkit-scrollbar-thumb{
    background-color:var(--green);
    border-radius:999px;
    border:3px solid var(--ink);
  }
  ::-webkit-scrollbar-thumb:hover{ background-color:var(--green-bright); }
  ::-webkit-scrollbar-button{ display:none; height:0; width:0; }

  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 40px; }

  h1,h2,h3{
    margin:0;
    font-weight:800;
    letter-spacing:-.03em;
    line-height:.98;
  }

  :focus-visible{ outline:3px solid var(--green); outline-offset:3px; }

  .label{
    font-size:13px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    display:inline-flex; align-items:center; gap:8px;
    color:var(--grey);
  }
  .label .dot{ width:7px; height:7px; border-radius:50%; background:var(--green); flex:none; }
  section.dark .label{ color:var(--grey-dark-bg); }

  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,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; }

  /* ---------------- NAV (floating island) ---------------- */
  header.site{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:26px 0;
    transition:padding .4s cubic-bezier(.16,1,.3,1);
    pointer-events:none;
  }
  header.site.scrolled{ padding:16px 0; }

  nav{
    pointer-events:auto;
    display:flex; align-items:center; justify-content:space-between;
    max-width:var(--maxw); margin:0 auto; padding:0 40px;
    background:transparent;
    border:1px solid transparent;
    border-radius:999px;
    box-shadow:none;
    transition:max-width .45s cubic-bezier(.16,1,.3,1), padding .45s cubic-bezier(.16,1,.3,1),
               background .45s ease, border-color .45s ease, box-shadow .45s ease;
  }
  header.site.scrolled nav{
    max-width:920px;
    padding:10px 16px 10px 22px;
    background:rgba(12,14,13,.78);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
    border-color:rgba(255,255,255,.10);
    box-shadow:0 18px 40px -14px rgba(0,0,0,.55);
  }

  .brand{ display:flex; align-items:center; gap:12px; text-decoration:none; flex:none; }
  .brand img{ width:46px; height:46px; }
  .brand span{ font-weight:900; font-size:22px; color:#11A454; letter-spacing:-.02em; }
  header.site.scrolled .brand img{ width:36px; height:36px; }
  header.site.scrolled .brand span{ font-size:19px; }

  /* ---------------- SUPPORT WIDGET (floating) ---------------- */
  .support-widget{ position:fixed; right:24px; bottom:24px; z-index:200; font-family:'Inter',system-ui,sans-serif; }

  .support-toggle{
    position:relative;
    width:60px; height:60px;
    border-radius:50%;
    border:none;
    background:var(--green);
    color:#06110B;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer;
    box-shadow:0 14px 32px -10px rgba(24,181,98,.55);
    transition:transform .2s ease, background .2s ease;
  }
  .support-toggle:hover{ background:var(--green-bright); transform:translateY(-2px); }
  .support-toggle svg{ width:26px; height:26px; transition:opacity .15s ease, transform .2s ease; }
  .support-toggle .ico-close{ position:absolute; opacity:0; transform:rotate(-45deg) scale(.6); }
  .support-toggle.open .ico-chat{ opacity:0; transform:rotate(45deg) scale(.6); }
  .support-toggle.open .ico-close{ opacity:1; transform:rotate(0) scale(1); }

  .support-badge{
    position:absolute; top:-4px; right:-4px;
    width:14px; height:14px; border-radius:50%;
    background:#D94A2B; border:2px solid var(--paper);
  }

  .support-panel{
    position:absolute; bottom:76px; right:0;
    width:340px; max-width:calc(100vw - 32px);
    height:460px; max-height:calc(100vh - 140px);
    background:var(--paper);
    border-radius:20px;
    border:1px solid var(--line);
    box-shadow:0 30px 70px -20px rgba(0,0,0,.35);
    display:flex; flex-direction:column;
    overflow:hidden;
    opacity:0; visibility:hidden; transform:translateY(16px) scale(.97);
    transform-origin:bottom right;
    transition:opacity .22s cubic-bezier(.16,1,.3,1), transform .22s cubic-bezier(.16,1,.3,1), visibility .22s;
  }
  .support-panel.open{ opacity:1; visibility:visible; transform:none; }

  .support-head{
    flex:none;
    display:flex; align-items:center; gap:12px;
    padding:16px 16px;
    background:var(--ink);
    color:#fff;
  }
  .support-head-avatar{
    width:36px; height:36px; border-radius:50%; flex:none;
    background:var(--green);
    display:flex; align-items:center; justify-content:center;
    color:#06110B;
  }
  .support-head-avatar svg{ width:18px; height:18px; }
  .support-head-text{ flex:1; min-width:0; }
  .support-head-text .sh-title{ font-size:14.5px; font-weight:800; letter-spacing:-.01em; }
  .support-head-text .sh-sub{ font-size:12px; color:rgba(255,255,255,.6); display:flex; align-items:center; gap:6px; margin-top:2px; }
  .support-head-text .sh-sub .sh-dot{ width:7px; height:7px; border-radius:50%; background:var(--green-bright); flex:none; }
  .support-head-close{
    flex:none; width:28px; height:28px; border-radius:50%; border:none;
    background:rgba(255,255,255,.08); color:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .15s ease;
  }
  .support-head-close:hover{ background:rgba(255,255,255,.16); }
  .support-head-close svg{ width:14px; height:14px; }

  .support-body{
    flex:1; overflow-y:auto;
    padding:16px 14px;
    display:flex; flex-direction:column; gap:10px;
    background:var(--mist);
  }
  .support-body::-webkit-scrollbar{ width:8px; }
  .support-body::-webkit-scrollbar-thumb{ background:rgba(10,10,10,.18); border-radius:999px; }

  .sup-row{ display:flex; }
  .sup-row.sup-bot{ justify-content:flex-start; }
  .sup-row.sup-user{ justify-content:flex-end; }

  .sup-bubble{
    max-width:82%;
    padding:10px 13px;
    border-radius:14px;
    font-size:13.5px;
    line-height:1.5;
    font-weight:500;
  }
  .sup-row.sup-bot .sup-bubble{
    background:#fff;
    border:1px solid var(--line);
    color:var(--ink-soft);
    border-bottom-left-radius:4px;
  }
  .sup-row.sup-user .sup-bubble{
    background:var(--ink);
    color:#fff;
    border-bottom-right-radius:4px;
  }

  .sup-typing .sup-bubble{ display:flex; }
  .sup-bubble.sup-typing{
    display:flex; align-items:center; gap:4px;
    padding:12px 14px;
  }
  .sup-bubble.sup-typing span{
    width:6px; height:6px; border-radius:50%;
    background:var(--grey);
    animation:sup-blink 1.1s infinite ease-in-out;
  }
  .sup-bubble.sup-typing span:nth-child(2){ animation-delay:.15s; }
  .sup-bubble.sup-typing span:nth-child(3){ animation-delay:.3s; }
  @keyframes sup-blink{
    0%, 80%, 100%{ opacity:.25; transform:translateY(0); }
    40%{ opacity:1; transform:translateY(-2px); }
  }

  .support-chips{
    flex:none;
    display:flex; flex-wrap:wrap; gap:8px;
    padding:12px 14px 14px;
    background:#fff;
    border-top:1px solid var(--line);
    max-height:150px;
    overflow-y:auto;
  }
  .sup-chip{
    border:1.5px solid var(--line);
    background:#fff;
    color:var(--ink-soft);
    font-family:inherit;
    font-size:12.5px;
    font-weight:700;
    padding:8px 12px;
    border-radius:999px;
    cursor:pointer;
    text-align:left;
    transition:border-color .15s ease, background .15s ease, color .15s ease;
  }
  .sup-chip:hover{
    border-color:var(--green);
    background:rgba(24,181,98,.08);
    color:var(--green-deep);
  }

  .support-foot-note{
    flex:none;
    font-size:10.5px;
    color:var(--grey);
    text-align:center;
    padding:0 14px 12px;
    background:#fff;
  }

  @media (max-width:480px){
    .support-widget{ right:16px; bottom:16px; }
    .support-panel{ width:calc(100vw - 32px); right:-8px; }
  }

  .nav-links{
    display:flex; gap:32px; list-style:none; margin:0; padding:0;
    transition:gap .35s ease;
  }
  .nav-links a{ text-decoration:none; color:rgba(255,255,255,.75); font-size:14.5px; font-weight:600; transition:color .15s; white-space:nowrap; }
  .nav-links a:hover{ color:#fff; }
  header.site.scrolled .nav-links{ gap:24px; }
  header.site.scrolled .nav-links a{ font-size:13.5px; }

  .nav-cta{
    background:var(--green); color:#0A0A0A;
    padding:11px 22px; border-radius:999px;
    font-size:14px; font-weight:800; text-decoration:none;
    transition:transform .15s ease, background .15s ease, padding .35s ease;
    white-space:nowrap; flex:none;
  }
  .nav-cta:hover{ background:var(--green-bright); transform:translateY(-1px); }
  header.site.scrolled .nav-cta{ padding:10px 18px; font-size:13.5px; }

  .nav-actions{ display:flex; align-items:center; gap:20px; flex:none; }
  .nav-login{
    color:rgba(255,255,255,.82); text-decoration:none; font-size:14.5px; font-weight:700;
    transition:color .15s ease, font-size .35s ease;
    white-space:nowrap;
  }
  .nav-login:hover{ color:#fff; }
  header.site.scrolled .nav-login{ font-size:13.5px; }
  @media (max-width:520px){ .nav-login{ display:none; } }

  @media (max-width:880px){ .nav-links{ display:none; } }

  /* ---------------- BUTTONS ---------------- */
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:17px 30px;
    border-radius:999px;
    font-weight:800; font-size:16px;
    text-decoration:none; border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
  }
  .btn-primary{ background:var(--green); color:#06110B; }
  .btn-primary:hover{ background:var(--green-bright); transform:translateY(-2px); }
  .btn-outline-dark{ border-color:rgba(255,255,255,.35); color:#fff; }
  .btn-outline-dark:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
  .btn-outline-light{ border-color:var(--ink); color:var(--ink); }
  .btn-outline-light:hover{ background:var(--ink); color:#fff; }

  /* ---------------- HERO ---------------- */
  .hero{
    position:relative;
    background:var(--ink);
    color:#fff;
    padding:180px 0 0;
    overflow:hidden;
  }
  .hero-glow{
    position:absolute;
    width:900px; height:900px;
    top:-380px; right:-260px;
    background:radial-gradient(circle at center, rgba(24,181,98,.5), rgba(24,181,98,0) 70%);
    filter:blur(10px);
    animation:drift 16s ease-in-out infinite alternate;
    pointer-events:none;
  }
  @keyframes drift{
    from{ transform:translate(0,0) scale(1); }
    to{ transform:translate(-40px,40px) scale(1.08); }
  }
  @media (prefers-reduced-motion:reduce){ .hero-glow{ animation:none; } }

  .hero-inner{ position:relative; text-align:center; }
  .hero h1{
    font-size:clamp(52px, 8.6vw, 128px);
    max-width:1080px;
    margin:26px auto 0;
  }
  .hero h1 .accent{ color:var(--green-bright); }
  .hero p.lead{
    font-size:clamp(17px,1.7vw,21px);
    color:rgba(255,255,255,.68);
    max-width:560px;
    margin:26px auto 40px;
    line-height:1.55;
    font-weight:500;
  }
  .hero-ctas{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-bottom:70px; }

  /* marquee */
  .marquee{
    border-top:1px solid var(--line-dark);
    overflow:hidden;
    padding:26px 0;
  }
  .marquee-track{
    display:flex;
    width:max-content;
    gap:64px;
    animation:scroll 26s linear infinite;
  }
  @media (prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }
  @keyframes scroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
  .marquee-item{
    display:flex; align-items:center; gap:14px;
    font-size:18px; font-weight:700; color:rgba(255,255,255,.4);
    white-space:nowrap;
  }
  .marquee-item .sep{ color:var(--green); font-weight:900; }

  /* ---------------- STATS BAR ---------------- */
  .stats{
    background:var(--ink);
    color:#fff;
    padding:0 0 100px;
  }
  .stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid var(--line-dark);
  }
  .stat{
    padding:44px 30px 0;
    border-left:1px solid var(--line-dark);
  }
  .stat:first-child{ border-left:none; padding-left:0; }
  .stat .num{
    font-size:clamp(38px,4.2vw,58px);
    font-weight:900;
    letter-spacing:-.03em;
    color:var(--green-bright);
  }
  .stat .desc{
    margin-top:10px;
    font-size:14px;
    color:rgba(255,255,255,.6);
    font-weight:500;
    max-width:220px;
    line-height:1.4;
  }
  @media (max-width:900px){
    .stats-grid{ grid-template-columns:1fr 1fr; row-gap:36px; }
    .stat:nth-child(3){ border-left:none; }
  }
  @media (max-width:540px){
    .stats-grid{ grid-template-columns:1fr; }
    .stat{ border-left:none; padding-left:0; }
  }

  /* ---------------- SECTION SHELL ---------------- */
  section{ padding:120px 0; }
  section.tight{ padding-top:100px; padding-bottom:100px; }
  section.dark{ background:var(--ink); color:#fff; }
  section.mist{ background:var(--mist); }

  .section-head{ max-width:680px; margin-bottom:64px; }
  .section-head h2{
    font-size:clamp(36px,5vw,64px);
    margin-top:16px;
  }
  .section-head p{
    font-size:18px; color:var(--grey); line-height:1.6; margin-top:18px; font-weight:500;
  }
  section.dark .section-head p{ color:rgba(255,255,255,.65); }

  /* ---------------- HOW IT WORKS ---------------- */
  .steps{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:40px;
  }
  .step .num{
    font-size:15px; font-weight:800; color:var(--green-deep);
  }
  .step h3{
    font-size:26px; font-weight:800; letter-spacing:-.02em;
    margin:16px 0 10px;
  }
  .step p{ font-size:15px; color:var(--grey); line-height:1.55; margin:0; font-weight:500; }
  @media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; row-gap:44px; } }
  @media (max-width:560px){ .steps{ grid-template-columns:1fr; } }

  /* ---------------- MATERIAL SWITCHER ---------------- */
  .switcher-tabs{
    display:flex; gap:10px; flex-wrap:wrap; margin-bottom:8px;
  }
  .tab{
    padding:13px 22px;
    border-radius:999px;
    border:1.5px solid var(--line);
    background:transparent;
    font-weight:700; font-size:15px;
    cursor:pointer;
    display:flex; align-items:center; gap:9px;
    transition:.15s;
    color:var(--ink);
  }
  .tab .tdot{ width:9px; height:9px; border-radius:50%; }
  .tab.active{ background:var(--ink); border-color:var(--ink); color:#fff; }

  .switcher-panel{
    margin-top:44px;
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:0;
    border-radius:28px;
    overflow:hidden;
    background:var(--mist);
    min-height:400px;
  }
  .switcher-visual{
    display:flex; align-items:center; justify-content:center;
    position:relative;
    padding:40px;
  }
  .switcher-visual .blob{
    width:220px; height:220px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transition:background .3s ease;
  }
  .switcher-visual .blob svg{ width:96px; height:96px; }
  .switcher-info{
    padding:56px 56px 56px 8px;
    display:flex; flex-direction:column; justify-content:center;
  }
  .switcher-info h3{
    font-size:clamp(32px,3.4vw,46px);
    font-weight:900;
    letter-spacing:-.03em;
  }
  .switcher-info p{
    font-size:16.5px; color:var(--grey); line-height:1.6; margin:18px 0 26px; max-width:440px; font-weight:500;
  }
  .switcher-price{
    display:flex; align-items:baseline; gap:8px;
  }
  .switcher-price .val{ font-size:44px; font-weight:900; letter-spacing:-.02em; }
  .switcher-price .unit{ font-size:15px; color:var(--grey); font-weight:600; }
  .switcher-price .note{ display:block; font-size:12.5px; color:var(--grey); margin-top:6px; font-weight:500; }

  @media (max-width:860px){
    .switcher-panel{ grid-template-columns:1fr; }
    .switcher-info{ padding:8px 32px 44px; }
    .switcher-visual{ padding-top:44px; }
  }

  /* ---------------- CALCULATOR ---------------- */
  .calc{
    margin-top:28px;
    background:var(--ink);
    color:#fff;
    border-radius:28px;
    padding:56px 56px 48px;
  }
  .calc-head h3{
    font-size:clamp(24px,2.6vw,32px);
    font-weight:800;
    letter-spacing:-.02em;
    margin-top:12px;
  }
  .calc-body{ margin-top:40px; }
  .calc-top{
    display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:14px;
    margin-bottom:26px;
  }
  .calc-kg{
    font-size:17px; font-weight:600; color:rgba(255,255,255,.6);
  }
  .calc-kg #calcMaterialLabel{ color:#fff; font-weight:700; }
  .calc-value{
    font-size:clamp(38px,5vw,58px);
    font-weight:900;
    letter-spacing:-.03em;
    color:var(--calc-color, var(--green-bright));
    transition:color .25s ease;
  }

  .calc-slider-wrap{ padding:10px 0; }
  .calc-range{
    -webkit-appearance:none;
    appearance:none;
    width:100%;
    height:8px;
    border-radius:999px;
    background:linear-gradient(to right, var(--calc-color, var(--green-bright)) 0%, var(--calc-color, var(--green-bright)) var(--fill,16%), rgba(255,255,255,.16) var(--fill,16%), rgba(255,255,255,.16) 100%);
    outline:none;
    cursor:pointer;
    transition:background-color .25s ease;
  }
  .calc-range::-webkit-slider-thumb{
    -webkit-appearance:none;
    appearance:none;
    width:32px; height:32px;
    border-radius:50%;
    background:var(--calc-color, var(--green-bright));
    border:5px solid #fff;
    box-shadow:0 6px 18px rgba(0,0,0,.4);
    cursor:grab;
    transition:transform .15s ease, background-color .25s ease;
  }
  .calc-range::-webkit-slider-thumb:hover{ transform:scale(1.08); }
  .calc-range:active::-webkit-slider-thumb{ cursor:grabbing; transform:scale(1.12); }
  .calc-range::-moz-range-thumb{
    width:32px; height:32px;
    border-radius:50%;
    background:var(--calc-color, var(--green-bright));
    border:5px solid #fff;
    box-shadow:0 6px 18px rgba(0,0,0,.4);
    cursor:grab;
  }
  .calc-range::-moz-range-track{
    height:8px; border-radius:999px; background:rgba(255,255,255,.16);
  }
  .calc-range::-moz-range-progress{
    height:8px; border-radius:999px; background:var(--calc-color, var(--green-bright));
  }

  .calc-scale{
    display:flex; justify-content:space-between;
    font-size:12.5px; font-weight:600; color:rgba(255,255,255,.4);
    margin-top:12px;
  }

  @media (max-width:640px){
    .calc{ padding:36px 26px 32px; }
  }

  /* ---------------- GLOBAL ---------------- */
  .global-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;
  }
  .city-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0;
  }
  .city{
    padding:20px 0;
    border-top:1px solid var(--line-dark);
    display:flex; flex-direction:column; gap:6px;
  }
  .city:nth-child(odd){ padding-right:20px; }
  .city .cname{ font-size:19px; font-weight:800; }
  .city .ctag{
    font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
    display:inline-flex; align-items:center; gap:6px; width:max-content;
  }
  .city .ctag.live{ color:var(--green-bright); }
  .city .ctag.soon{ color:rgba(255,255,255,.45); }
  .city .ctag::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
  @media (max-width:860px){
    .global-row{ grid-template-columns:1fr; }
    .city-grid{ grid-template-columns:1fr; }
    .city:nth-child(odd){ padding-right:0; }
  }

  /* ---------------- BUSINESS ---------------- */
  .biz-row{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:1px;
    background:var(--line);
    border-radius:24px;
    overflow:hidden;
    border:1px solid var(--line);
  }
  .biz-cell{
    background:var(--paper);
    padding:40px 34px;
  }
  .biz-cell .flow{ font-size:13px; font-weight:800; color:var(--green-deep); text-transform:uppercase; letter-spacing:.05em; }
  .biz-cell h3{ font-size:24px; font-weight:800; margin:16px 0 10px; letter-spacing:-.02em;}
  .biz-cell p{ font-size:14.5px; color:var(--grey); line-height:1.55; margin:0; font-weight:500;}
  @media (max-width:860px){ .biz-row{ grid-template-columns:1fr; } }

  /* ---------------- FINAL CTA ---------------- */
  .final{
    background:var(--ink); color:#fff;
    text-align:center;
    border-radius:32px;
    padding:100px 40px;
    position:relative;
    overflow:hidden;
  }
  .final h2{ font-size:clamp(40px,6vw,80px); }
  .final p{ font-size:18px; color:rgba(255,255,255,.65); max-width:520px; margin:20px auto 36px; font-weight:500; line-height:1.55;}
  .final .hero-ctas{ margin-bottom:0; }

  /* ---------------- FOOTER ---------------- */
  footer{
    background:var(--ink); color:#fff;
    padding:64px 0 30px;
  }
  .foot-top{
    display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:44px;
    margin-bottom:56px;
  }
  .foot-brand{ display:flex; align-items:center; gap:12px; text-decoration:none; }
  .foot-brand img{ width:40px; height:40px; }
  .foot-brand span{ font-weight:900; font-size:22px; color:#11A454; }
  .foot-cols{ display:flex; gap:64px; flex-wrap:wrap; }
  .foot-col h4{
    font-size:12px; letter-spacing:.08em; text-transform:uppercase;
    color:rgba(255,255,255,.42); margin-bottom:16px; font-weight:700;
  }
  .foot-col a{ display:block; text-decoration:none; color:rgba(255,255,255,.78); font-size:14.5px; margin-bottom:12px; font-weight:500;}
  .foot-col a:hover{ color:#fff; }
  .foot-bottom{
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    border-top:1px solid var(--line-dark);
    padding-top:26px;
    font-size:12.5px; color:rgba(255,255,255,.42); font-weight:600;
  }
  /* ---------------- POLICY MODAL ---------------- */
  .policy-overlay{
    position:fixed; inset:0; z-index:300;
    background:rgba(8,9,8,.7);
    backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    opacity:0; visibility:hidden;
    transition:opacity .3s ease, visibility .3s ease;
  }
  .policy-overlay.open{ opacity:1; visibility:visible; }

  .policy-card{
    background:#fff;
    border-radius:24px;
    width:100%; max-width:440px;
    max-height:78vh;
    overflow-y:auto;
    padding:36px 36px 32px;
    position:relative;
    box-shadow:0 40px 90px -30px rgba(0,0,0,.55);
    transform:scale(.94) translateY(10px);
    transition:transform .35s cubic-bezier(.16,1,.3,1);
  }
  .policy-overlay.open .policy-card{ transform:scale(1) translateY(0); }

  .policy-close{
    position:absolute; top:20px; right:20px;
    width:34px; height:34px; border-radius:50%;
    border:1.5px solid var(--line);
    background:transparent;
    font-size:17px; line-height:1; color:var(--ink);
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s ease, transform .15s ease;
  }
  .policy-close:hover{ background:var(--mist); transform:rotate(90deg); }

  .policy-card .label{ margin-bottom:14px; }
  .policy-card h3{
    font-size:23px; font-weight:900; letter-spacing:-.02em;
    margin-bottom:6px;
  }
  .policy-updated{
    font-size:12.5px; color:var(--grey); font-weight:600; margin-bottom:20px;
  }
  .policy-body{
    font-size:14.5px; line-height:1.65; color:var(--ink-soft); font-weight:500;
  }
  .policy-body p{ margin:0 0 14px; }
  .policy-body p:last-child{ margin-bottom:0; }

  /* ---------------- AUTH MODAL ---------------- */
  .auth-overlay{
    position:fixed; inset:0; z-index:300;
    background:rgba(8,9,8,.7);
    backdrop-filter:blur(6px);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    opacity:0; visibility:hidden;
    transition:opacity .3s ease, visibility .3s ease;
  }
  .auth-overlay.open{ opacity:1; visibility:visible; }

  .auth-card{
    background:#fff;
    border-radius:28px;
    width:100%; max-width:480px;
    max-height:88vh;
    overflow-y:auto;
    padding:40px 40px 36px;
    position:relative;
    box-shadow:0 40px 90px -30px rgba(0,0,0,.55);
    transform:scale(.94) translateY(10px);
    transition:transform .35s cubic-bezier(.16,1,.3,1);
  }
  .auth-overlay.open .auth-card{ transform:scale(1) translateY(0); }

  .auth-close{
    position:absolute; top:22px; right:22px;
    width:36px; height:36px; border-radius:50%;
    border:1.5px solid var(--line);
    background:transparent;
    font-size:18px; line-height:1; color:var(--ink);
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s ease, transform .15s ease;
  }
  .auth-close:hover{ background:var(--mist); transform:rotate(90deg); }

  .auth-brand{ display:flex; align-items:center; gap:10px; margin-bottom:28px; }
  .auth-brand img{ width:32px; height:32px; }
  .auth-brand span{ font-weight:900; font-size:18px; color:#11A454; letter-spacing:-.02em; }

  .auth-tabs{
    display:flex; gap:6px;
    background:var(--mist);
    padding:5px; border-radius:999px;
    margin-bottom:30px;
  }
  .auth-tab{
    flex:1;
    border:none; background:transparent;
    padding:11px 0; border-radius:999px;
    font-weight:700; font-size:14.5px; color:var(--grey);
    cursor:pointer; transition:.2s ease;
  }
  .auth-tab.active{ background:var(--ink); color:#fff; }

  .auth-panel h3{
    font-size:26px; font-weight:900; letter-spacing:-.02em;
  }
  .auth-sub{
    font-size:14.5px; color:var(--grey); margin:10px 0 26px; font-weight:500; line-height:1.5;
  }

  .auth-form{ display:flex; flex-direction:column; gap:16px; }
  .auth-form label{
    display:flex; flex-direction:column; gap:8px;
    font-size:13px; font-weight:700; color:var(--ink);
  }
  .auth-form input, .auth-form select{
    font-family:'Inter',sans-serif;
    padding:13px 15px;
    border-radius:12px;
    border:1.5px solid var(--line);
    font-size:15px; font-weight:500;
    color:var(--ink);
    outline:none;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  .auth-form input:focus, .auth-form select:focus{
    border-color:var(--green);
    box-shadow:0 0 0 4px rgba(24,181,98,.14);
  }

  .pw-field{ position:relative; display:flex; }
  .pw-field input{ width:100%; padding-right:46px; }
  .pw-toggle{
    position:absolute; right:5px; top:50%; transform:translateY(-50%);
    width:34px; height:34px;
    display:flex; align-items:center; justify-content:center;
    border:none; background:transparent; border-radius:9px;
    color:var(--green-deep); cursor:pointer;
    transition:background .15s ease, color .15s ease;
  }
  .pw-toggle svg{ width:19px; height:19px; }
  .pw-toggle .ico-eye-off{ stroke:var(--green); }
  .pw-toggle:hover{ background:rgba(24,181,98,.12); color:var(--green); }
  .pw-toggle.is-active{ color:var(--green); background:rgba(24,181,98,.14); }
  .auth-row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
  .auth-link{ font-size:13.5px; font-weight:700; color:var(--green-deep); text-decoration:none; }
  .auth-link:hover{ text-decoration:underline; }

  .check{
    display:flex !important; flex-direction:row !important; align-items:flex-start; gap:9px;
    font-size:13.5px !important; font-weight:500 !important; color:var(--grey);
    cursor:pointer;
  }
  .check input{ width:16px; height:16px; margin-top:2px; accent-color:var(--green); flex:none; }
  .auth-terms{ margin-top:2px; }

  .auth-submit{ width:100%; justify-content:center; margin-top:6px; padding:15px; }
  .auth-submit:disabled{ opacity:.68; cursor:wait; transform:none; }

  .auth-message{
    border-radius:12px;
    padding:11px 13px;
    font-size:13.5px;
    line-height:1.45;
    font-weight:700;
  }
  .auth-message.error{
    background:rgba(217,74,43,.10);
    color:#9B2D17;
    border:1px solid rgba(217,74,43,.22);
  }
  .auth-message.success{
    background:rgba(24,181,98,.10);
    color:var(--green-deep);
    border:1px solid rgba(24,181,98,.22);
  }

  .auth-switch{
    text-align:center; font-size:14px; color:var(--grey); font-weight:500; margin-top:24px;
  }
  .auth-switch a{ color:var(--green-deep); font-weight:700; text-decoration:none; }
  .auth-switch a:hover{ text-decoration:underline; }

  /* account type picker */
  .account-types{
    display:grid; grid-template-columns:1fr 1fr; gap:14px;
  }
  .account-type{
    text-align:left;
    border:1.5px solid var(--line);
    background:var(--mist);
    border-radius:18px;
    padding:22px 18px;
    cursor:pointer;
    display:flex; flex-direction:column; gap:12px;
    transition:border-color .2s ease, background .2s ease, transform .15s ease;
  }
  .account-type:hover{ transform:translateY(-2px); }
  .account-type.selected{
    border-color:var(--green);
    background:rgba(24,181,98,.08);
  }
  .at-icon{
    width:42px; height:42px; border-radius:12px;
    background:var(--ink); color:#fff;
    display:flex; align-items:center; justify-content:center;
  }
  .account-type.selected .at-icon{ background:var(--green); }
  .at-icon svg{ width:20px; height:20px; }
  .at-title{ font-weight:800; font-size:15.5px; letter-spacing:-.01em; }
  .at-desc{ font-size:12.5px; color:var(--grey); line-height:1.45; font-weight:500; }
  @media (max-width:420px){ .account-types{ grid-template-columns:1fr; } }

  .auth-back{
    border:none; background:none; cursor:pointer;
    font-size:13.5px; font-weight:700; color:var(--grey);
    padding:0; margin-bottom:16px;
    display:inline-flex; align-items:center; gap:6px;
  }
  .auth-back:hover{ color:var(--ink); }

  @media (max-width:520px){
    .auth-card{ padding:32px 24px 28px; border-radius:24px; }
  }