  :root{
    --ink:#050914;
    --ink-2:#0B1233;
    --ink-3:#101a44;
    --blue:#0019FF;
    --lime:#DFFF00;
    --lime-bg:#DFFF00;
    --coral:#FF5A36;
    --text-light:#F2F4FF;
    --text-dim:#9AA3D6;
    --border-soft:rgba(255,255,255,0.08);
    --border-strong:rgba(255,255,255,0.18);
    --border-strong-hover:rgba(255,255,255,0.4);
    --surface-tint:rgba(255,255,255,0.04);
    --nav-glass:rgba(5,9,20,0.85);
    --on-accent:#12101C;
    --font-display:'Bricolage Grotesque', sans-serif;
    --font-body:'Inter', sans-serif;
  }

  /* Light theme — brand colors kept (same blue/lime/coral), surfaces flipped
     to light. --lime is darkened for text/icon contrast on a light
     background (WCAG-friendlier); --lime-bg stays bright for buttons and
     fills, which pair with dark text so the brightness isn't an issue. */
  :root[data-theme="light"]{
    --ink:#F5F6FB;
    --ink-2:#FFFFFF;
    --ink-3:#EDEFFB;
    --blue:#0019FF;
    --lime:#0019FF;
    --lime-bg:#0019FF;
    --on-accent:#FFFFFF;
    --coral:#E14A2A;
    --text-light:#12101C;
    --text-dim:#5B6178;
    --border-soft:rgba(18,16,28,0.10);
    --border-strong:rgba(18,16,28,0.18);
    --border-strong-hover:rgba(18,16,28,0.35);
    --surface-tint:rgba(18,16,28,0.04);
    --nav-glass:rgba(255,255,255,0.85);
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ink);
    color:var(--text-light);
    font-family:var(--font-body);
    overflow-x:hidden;
    transition:background-color .25s ease, color .25s ease;
  }
  img,svg{max-width:100%;display:block;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

  /* NAV */
  nav{
    position:sticky;top:0;z-index:50;
    background:var(--nav-glass);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border-soft);
  }
  nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;}
  .logo{font-family:var(--font-display);font-weight:700;font-size:21px;letter-spacing:-0.01em;color:var(--text-light);display:flex;align-items:center;gap:10px;}
  .logo img{width:26px;height:auto;}
  .navlinks{display:flex;gap:36px;font-size:15px;color:var(--text-dim);}
  .navlinks a{color:inherit;text-decoration:none;transition:color .2s;}
  .navlinks a:hover{color:var(--text-light);}
  .nav-actions{display:flex;align-items:center;gap:14px;}
  .theme-toggle{
    width:40px;height:40px;border-radius:10px;
    background:var(--surface-tint);border:1px solid var(--border-soft);
    color:var(--text-light);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:border-color .15s ease, transform .15s ease;
  }
  .theme-toggle:hover{border-color:var(--border-strong-hover);transform:translateY(-1px);}
  .theme-toggle:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
  .theme-toggle svg{width:19px;height:19px;}
  .theme-toggle .icon-sun{display:none;}
  :root[data-theme="light"] .theme-toggle .icon-moon{display:none;}
  :root[data-theme="light"] .theme-toggle .icon-sun{display:block;}
  .nav-cta{
    background:var(--blue);color:#fff;
    padding:10px 20px;border-radius:8px;font-weight:600;font-size:14px;
    text-decoration:none;transition:transform .15s ease;
    border:none;cursor:pointer;font-family:inherit;
  }
  .nav-cta:hover{transform:translateY(-2px);}
  @media(max-width:760px){.navlinks{display:none;}}
  @media(max-width:480px){
    .wrap{padding:0 18px;}
    .logo{font-size:16px;gap:6px;}
    .logo img{width:20px;}
    .nav-actions{gap:8px;}
    .nav-cta{padding:8px 12px;font-size:12.5px;}
    .theme-toggle{width:34px;height:34px;}
    .theme-toggle svg{width:16px;height:16px;}
  }

  /* HERO */
  .hero{
    position:relative;
    padding:100px 0 80px;
    overflow:hidden;
  }
  .hero-blob{
    position:absolute;
    top:-220px;right:-180px;
    width:680px;height:680px;
    background:radial-gradient(circle at 30% 30%, var(--blue), transparent 70%);
    opacity:.45;
    filter:blur(50px);
    pointer-events:none;
  }
  .hero-blob-2{
    position:absolute;
    bottom:-160px;left:-140px;
    width:420px;height:420px;
    background:radial-gradient(circle at 50% 50%, var(--coral), transparent 70%);
    opacity:.18;
    filter:blur(60px);
    pointer-events:none;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:60px;
    align-items:center;
    position:relative;
    z-index:2;
  }
  @media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
  .hero-tag{
    display:inline-flex;align-items:center;gap:8px;
    color:var(--lime);
    font-size:14px;font-weight:600;
    margin-bottom:24px;
  }
  .hero-tag::before{content:"";width:6px;height:6px;background:var(--lime-bg);border-radius:50%;}
  h1{
    font-family:var(--font-display);
    font-size:clamp(38px, 5.2vw, 64px);
    line-height:1.05;
    font-weight:700;
    letter-spacing:-0.02em;
    color:var(--text-light);
    max-width:600px;
  }
  h1 .accent{color:var(--lime);}
  .hero-sub{
    margin-top:24px;
    font-size:18px;
    line-height:1.6;
    color:var(--text-dim);
    max-width:480px;
  }
  .hero-actions{display:flex;gap:16px;margin-top:36px;flex-wrap:wrap;}
  .btn-primary{
    background:var(--lime-bg);color:var(--on-accent);
    padding:16px 28px;border-radius:10px;
    font-weight:700;font-size:15px;
    text-decoration:none;
    border:none;cursor:pointer;font-family:inherit;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(223,255,0,0.25);}
  .btn-ghost{
    padding:16px 24px;border-radius:10px;
    font-weight:600;font-size:15px;
    color:var(--text-light);
    border:1px solid var(--border-strong);
    text-decoration:none;
    background:none;cursor:pointer;font-family:inherit;
    transition:border-color .15s ease, background .15s ease;
    display:inline-block;
  }
  .btn-ghost:hover{border-color:var(--border-strong-hover);background:var(--surface-tint);}

  /* hero visual: growth chart card */
  .hero-visual{
    background:var(--ink-2);
    border:1px solid rgba(0,25,255,0.35);
    border-radius:20px;
    padding:28px;
    position:relative;
  }
  .visual-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:22px;flex-wrap:wrap;gap:8px 16px;}
  .visual-head span:first-child{font-size:13px;color:var(--text-dim);white-space:nowrap;}
  .visual-count{
    font-family:var(--font-display);
    font-size:38px;font-weight:700;color:var(--text-light);
  }
  .visual-count .unit{font-size:16px;color:var(--lime);font-weight:600;margin-left:4px;}
  .bars{display:flex;align-items:flex-end;gap:10px;height:150px;}
  .bar{
    position:relative;
    flex:1;border-radius:6px 6px 0 0;
    background:linear-gradient(180deg, var(--blue), #4C6BFF);
    transform-origin:bottom;
    /* Fallback: fully visible by default, in case JS never runs. */
    transform:scaleY(1);
    cursor:pointer;
  }
  .bar:nth-child(6){background:linear-gradient(180deg, var(--lime-bg), #a8d400);}

  /* Only once JS confirms it's active does a bar get hidden, ready to
     animate in on scroll — see script.js. No-JS visitors never see this. */
  .bars.bars-armed .bar{transform:scaleY(0);}
  .bars.bars-armed .bar.is-animated{animation:grow 1.1s cubic-bezier(.2,.9,.3,1) both;}
  .bars.bars-armed .bar:nth-child(1).is-animated{animation-delay:.05s;}
  .bars.bars-armed .bar:nth-child(2).is-animated{animation-delay:.15s;}
  .bars.bars-armed .bar:nth-child(3).is-animated{animation-delay:.25s;}
  .bars.bars-armed .bar:nth-child(4).is-animated{animation-delay:.35s;}
  .bars.bars-armed .bar:nth-child(5).is-animated{animation-delay:.45s;}
  .bars.bars-armed .bar:nth-child(6).is-animated{animation-delay:.55s;}
  @keyframes grow{from{transform:scaleY(0);}to{transform:scaleY(1);}}

  .bar:hover,.bar:focus-visible{filter:brightness(1.15);outline:none;}
  .bar-tip{
    position:absolute;bottom:calc(100% + 10px);left:50%;
    transform:translateX(-50%) translateY(4px);
    background:var(--ink-2);color:var(--text-light);
    border:1px solid var(--border-strong);
    padding:5px 10px;border-radius:8px;font-size:12px;font-weight:600;
    white-space:nowrap;opacity:0;pointer-events:none;
    transition:opacity .15s ease, transform .15s ease;
  }
  .bar:hover .bar-tip,.bar:focus-visible .bar-tip{opacity:1;transform:translateX(-50%) translateY(0);}
  .visual-foot{display:flex;justify-content:space-between;margin-top:14px;font-size:12px;color:var(--text-dim);}

  /* floating cursor logo animation */
  .cursor-float{
    position:absolute;
    width:44px;
    pointer-events:none;
    z-index:5;
    filter:drop-shadow(0 6px 14px rgba(0,25,255,0.5));
    animation:cursor-move 5s ease-in-out infinite;
  }
  .cursor-float img{width:100%;}
  @keyframes cursor-move{
    0%{transform:translate(0,0) scale(1);}
    35%{transform:translate(-6px,6px) scale(0.94);}
    45%{transform:translate(-6px,6px) scale(0.8);}
    55%{transform:translate(-6px,6px) scale(0.94);}
    100%{transform:translate(0,0) scale(1);}
  }
  @media(max-width:900px){.cursor-float{display:none;}}

  /* LOGOS / trust */
  .trust{padding:40px 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);}
  .trust .wrap{display:flex;gap:40px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
  .trust-label{font-size:13px;color:var(--text-dim);white-space:nowrap;}
  .trust-items{display:flex;gap:36px;flex-wrap:wrap;color:var(--text-dim);font-family:var(--font-display);font-weight:600;font-size:17px;}

  /* SECTION generic */
  section{padding:100px 0;}
  .section-head{max-width:600px;margin-bottom:56px;}
  .section-head h2{
    font-family:var(--font-display);
    font-size:clamp(28px,3.4vw,42px);
    font-weight:700;letter-spacing:-0.01em;
    color:var(--text-light);
    line-height:1.15;
  }
  .section-head p{margin-top:16px;color:var(--text-dim);font-size:17px;line-height:1.6;}

  /* PROCESS - numbered because it IS a sequence */
  .process{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--border-soft);border-radius:16px;overflow:hidden;}
  @media(max-width:860px){.process{grid-template-columns:1fr;}}
  .step{background:var(--ink);padding:36px 28px;position:relative;}
  .step-num{font-family:var(--font-display);font-size:15px;color:var(--lime);font-weight:700;margin-bottom:18px;}
  .step h3{font-family:var(--font-display);font-size:20px;font-weight:700;margin-bottom:10px;color:var(--text-light);}
  .step p{color:var(--text-dim);font-size:14.5px;line-height:1.55;}

  /* SERVICES - asymmetric bento, not identical cards */
  .bento{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:auto auto;gap:20px;}
  @media(max-width:900px){.bento{grid-template-columns:1fr;}}
  .bento-card{
    border-radius:18px;padding:32px;
    display:flex;flex-direction:column;justify-content:space-between;
    min-height:220px;
  }
  .bento-card.big{grid-row:span 2;background:linear-gradient(155deg, var(--ink-3), var(--ink-2));border:1px solid rgba(0,25,255,0.45);min-height:460px;}
  .bento-card.coral{background:var(--coral);color:var(--on-accent);}
  .bento-card.dark{background:var(--ink-2);border:1px solid var(--border-soft);}
  .bento-card.lime{background:var(--lime-bg);color:var(--on-accent);}
  .bento-card h3{font-family:var(--font-display);font-size:22px;font-weight:700;margin-bottom:12px;}
  .bento-card.big h3{font-size:28px;}
  .bento-card p{font-size:15px;line-height:1.55;opacity:0.85;}
  .bento-tag{font-size:13px;font-weight:600;opacity:0.7;margin-top:20px;}

  /* STATS */
  .stats{background:var(--ink-2);border-radius:20px;padding:56px 40px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;border:1px solid rgba(0,25,255,0.25);}
  @media(max-width:760px){.stats{grid-template-columns:1fr 1fr;}}
  .stat-num{font-family:var(--font-display);font-size:clamp(32px,4vw,48px);font-weight:700;color:var(--lime);}
  .stat-label{color:var(--text-dim);font-size:14px;margin-top:6px;}

  /* TESTIMONIALS */
  .testi-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  @media(max-width:760px){.testi-grid{grid-template-columns:1fr;}}
  .testi{background:var(--ink-2);border:1px solid var(--border-soft);border-radius:16px;padding:32px;}
  .testi p{font-size:16.5px;line-height:1.6;color:var(--text-light);}
  .testi-author{margin-top:22px;display:flex;align-items:center;gap:12px;}
  .avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--lime-bg));}
  .testi-author-name{font-weight:600;font-size:14.5px;}
  .testi-author-role{color:var(--text-dim);font-size:13px;}

  /* CTA */
  .cta-section{
    background:linear-gradient(135deg, var(--ink-3), var(--ink));
    border:1px solid rgba(0,25,255,0.4);
    border-radius:24px;
    padding:72px 48px;
    text-align:left;
    position:relative;overflow:hidden;
  }
  .cta-section::after{
    content:"";position:absolute;bottom:-120px;right:-80px;
    width:320px;height:320px;border-radius:50%;
    background:radial-gradient(circle, var(--coral), transparent 70%);
    opacity:.3;
  }
  .cta-section h2{font-family:var(--font-display);font-size:clamp(28px,4vw,44px);font-weight:700;max-width:560px;position:relative;z-index:1;}
  .cta-section p{color:var(--text-dim);margin-top:16px;max-width:460px;font-size:16px;position:relative;z-index:1;}
  .cta-section .hero-actions{position:relative;z-index:1;}

  .contact-info{display:flex;gap:28px;flex-wrap:wrap;margin-top:28px;position:relative;z-index:1;}
  .contact-info a{color:var(--text-light);text-decoration:none;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;}
  .contact-info a:hover{color:var(--lime);}
  .contact-info svg{width:18px;height:18px;flex-shrink:0;}

  /* FOOTER */
  footer{border-top:1px solid var(--border-soft);padding:48px 0;}
  footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
  footer .foot-links{display:flex;gap:28px;color:var(--text-dim);font-size:14px;}
  footer .foot-links a{color:inherit;text-decoration:none;}
  .foot-copy{color:var(--text-dim);font-size:13px;}

  body.modal-open{overflow:hidden;}

  /* BOOKING MODAL — calendar-style scheduling UI */
  .modal-overlay{
    position:fixed;inset:0;z-index:100;
    background:rgba(3,5,12,0.82);
    backdrop-filter:blur(7px);
    display:none;align-items:center;justify-content:center;
    padding:18px;
  }
  .modal-overlay.open{display:flex;}
  .booking-modal{
    background:var(--ink-2);
    border:1px solid var(--border-strong);
    border-radius:18px;
    width:min(1180px,100%);
    max-height:min(92vh,900px);
    overflow:auto;
    position:relative;
    box-shadow:0 30px 90px rgba(0,0,0,.35);
  }
  .booking-topbar{
    background:var(--ink);
    border-bottom:2px solid var(--lime-bg);
    padding:22px 52px 20px;
    text-align:center;
    position:relative;
  }
  .booking-topbar h3{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-light);margin:0 0 7px;}
  .booking-topbar p{color:var(--text-dim);font-size:14px;line-height:1.5;margin:0;}
  .modal-close{
    position:absolute;top:15px;right:18px;
    background:transparent;border:0;color:var(--text-dim);
    font-size:29px;cursor:pointer;line-height:1;padding:5px 9px;
  }
  .modal-close:hover{color:var(--text-light);}
  .booking-body{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(500px,1.05fr);gap:0;}
  .booking-details{padding:34px 36px 30px;border-right:1px solid var(--border-soft);}
  .booking-schedule{padding:34px 36px 30px;min-width:0;}
  .honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
  .booking-field{margin-bottom:22px;}
  .field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;}
  .field-label-row label{font-size:14px;font-weight:600;color:var(--text-light);}
  .field-label-row span{font-size:12px;color:var(--text-dim);white-space:nowrap;}
  .booking-field input,.booking-field select{
    width:100%;padding:14px 15px;border-radius:0;
    background:var(--ink-2);border:1px solid var(--border-strong);
    color:var(--text-light);font-family:inherit;font-size:14.5px;
    min-height:54px;box-sizing:border-box;
  }
  .booking-field input::placeholder{color:var(--text-dim);opacity:.72;}
  .booking-field input:focus,.booking-field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(0,25,255,.12);}
  .booking-field select{appearance:auto;cursor:pointer;}
  .phone-row{display:grid;grid-template-columns:125px 1fr;gap:10px;}
  .phone-prefix{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-strong);color:var(--text-light);font-size:14px;min-height:54px;background:var(--surface-tint);}
  .booking-trust{font-size:12px;line-height:1.5;color:var(--text-dim);padding-top:2px;}
  .schedule-heading{font-size:12px;letter-spacing:.2em;color:var(--text-dim);font-weight:700;margin-bottom:13px;}
  .date-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
  .date-option,.slot-option{
    border:1px solid var(--border-strong);background:var(--ink-2);color:var(--text-dim);
    cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease;
  }
  .date-option{min-height:92px;padding:12px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;}
  .date-option .dow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;}
  .date-option .day{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--text-light);line-height:1;}
  .date-option .month{font-size:11px;}
  .date-option .date-state{font-size:8px;letter-spacing:.08em;font-weight:800;min-height:10px;color:var(--text-dim);}
  .date-option.is-loading{opacity:.65;cursor:wait;}
  .date-option.is-available .date-state{color:var(--lime);}
  .date-option.is-fully-booked{opacity:.32;cursor:not-allowed;background:rgba(255,255,255,.018);}
  .date-option.is-fully-booked .date-state{color:var(--coral);}
  .date-option.is-fully-booked .day{text-decoration:line-through;}
  .date-option.is-unknown .date-state{color:var(--text-dim);}
  .date-option:disabled:hover{border-color:var(--border-strong);transform:none;}
  .date-option:hover,.slot-option:hover{border-color:var(--blue);transform:translateY(-1px);}
  .date-option.is-selected,.slot-option.is-selected{border-color:var(--lime-bg);background:rgba(223,255,0,.08);color:var(--text-light);}
  .date-option.is-selected .day{color:var(--lime);}
  .date-option.is-disabled,.slot-option.is-disabled{opacity:.38;cursor:not-allowed;transform:none;}
  .slots-heading{margin-top:28px;margin-bottom:7px;}
  .timezone-note{font-size:12px;color:var(--text-dim);margin-bottom:13px;}
  .slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;min-height:92px;}
  .slot-option{min-height:52px;padding:10px;font-size:15px;font-weight:500;position:relative;overflow:hidden;}
  .slot-option.is-busy{text-decoration:line-through;opacity:.55;cursor:not-allowed;}
  .slot-badge{position:absolute;top:5px;right:-19px;transform:rotate(38deg);background:var(--coral);color:#fff;font-size:8px;font-weight:800;letter-spacing:.05em;padding:2px 20px;line-height:1.4;text-decoration:none;pointer-events:none;box-shadow:0 1px 4px rgba(0,0,0,.25);}
  .schedule-status{min-height:20px;margin-top:10px;font-size:12.5px;color:var(--text-dim);}
  .schedule-status.available{color:var(--lime);}
  .schedule-status.busy{color:var(--coral);}
  .modal-submit{
    width:100%;background:var(--lime-bg);color:var(--on-accent);
    padding:15px;border-radius:0;border:none;font-weight:800;font-size:14px;
    letter-spacing:.03em;cursor:pointer;font-family:inherit;margin-top:4px;transition:transform .15s ease,filter .15s ease;
  }
  .modal-submit:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.03);}
  .modal-submit:disabled{opacity:.55;cursor:not-allowed;transform:none;}
  .modal-status{margin-top:14px;font-size:13.5px;color:var(--text-dim);display:none;line-height:1.5;}
  .modal-status.show{display:block;}
  .modal-status.success{color:var(--lime);}
  .modal-status.error{color:var(--coral);}
  @media(max-width:900px){
    .booking-body{grid-template-columns:1fr;}
    .booking-details{border-right:0;border-bottom:1px solid var(--border-soft);padding:26px 24px 10px;}
    .booking-schedule{padding:26px 24px 26px;}
  }
  @media(max-width:600px){
    .modal-overlay{padding:0;align-items:stretch;}
    .booking-modal{width:100%;max-height:100vh;height:100%;border-radius:0;border:0;}
    .booking-topbar{padding:19px 48px 17px 20px;text-align:left;}
    .booking-topbar h3{font-size:19px;}
    .booking-topbar p{font-size:12.5px;}
    .booking-details,.booking-schedule{padding-left:18px;padding-right:18px;}
    .date-grid{grid-template-columns:repeat(4,1fr);gap:7px;}
    .date-option{min-height:78px;padding:8px 3px;}
    .date-option .day{font-size:20px;}
    .slot-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
    .phone-row{grid-template-columns:105px 1fr;}
  }

  /* Scroll reveal — safe by default: elements are fully visible unless JS
     explicitly arms them (class added right before observing in
     script.js). If JS never runs, nothing here ever hides content. */
  .reveal.reveal-armed{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
  .reveal.reveal-armed.is-visible{opacity:1;transform:none;}

  @media (prefers-reduced-motion: reduce){
    .bar{animation:none;transform:scaleY(1);}
    .bars.bars-armed .bar{transform:scaleY(1);animation:none;}
    .cursor-float{animation:none;}
    .reveal.reveal-armed{opacity:1;transform:none;transition:none;}
    html{scroll-behavior:auto;}
    body{transition:none;}
  }

/* ===== Forsa Growth live-brand layer ===== */
.hero-brand-mark{position:absolute;top:-34px;right:-28px;width:82px;height:82px;border:0;background:transparent;border-radius:0;padding:6px;display:grid;place-items:center;animation:brandFloat 4.8s ease-in-out infinite;filter:drop-shadow(0 10px 24px rgba(0,25,255,.22));z-index:4}
.hero-brand-mark img{width:100%;height:100%;object-fit:contain}
@keyframes brandFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(4deg)}}
.live-pipeline{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:10px;padding:22px 0 8px}
.pipeline-node{min-height:105px;padding:16px 12px;border:1px solid var(--border-soft);background:var(--surface-tint);border-radius:14px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;transition:transform .25s ease,border-color .25s ease,background .25s ease}
.pipeline-node:hover{transform:translateY(-5px);border-color:rgba(0,25,255,.6);background:rgba(0,25,255,.08)}
.pipeline-node b{font-family:var(--font-display);font-size:14px;margin-top:8px}.pipeline-node small{color:var(--text-dim);font-size:11px;line-height:1.35;margin-top:5px}
.node-dot{width:9px;height:9px;border-radius:50%;background:var(--lime-bg);box-shadow:0 0 0 0 rgba(223,255,0,.6);animation:pulseDot 2s infinite}
.pipeline-arrow{font-size:24px;color:var(--lime);animation:arrowPulse 1.7s ease-in-out infinite}
.pipeline-arrow:nth-of-type(2){animation-delay:.25s}.pipeline-arrow:nth-of-type(3){animation-delay:.5s}
@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(223,255,0,.55)}70%{box-shadow:0 0 0 10px rgba(223,255,0,0)}100%{box-shadow:0 0 0 0 rgba(223,255,0,0)}}
@keyframes arrowPulse{0%,100%{transform:translateX(0);opacity:.45}50%{transform:translateX(4px);opacity:1}}
.live-status{display:flex;align-items:center;gap:7px}.live-status i{width:7px;height:7px;border-radius:50%;background:#63e46b;box-shadow:0 0 10px #63e46b;animation:statusBlink 1.5s infinite}@keyframes statusBlink{50%{opacity:.35}}
.section-brand{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:18px}.section-brand img{width:42px;height:42px;object-fit:contain;animation:sectionBrandFloat 4.8s ease-in-out infinite;filter:drop-shadow(0 6px 14px rgba(0,25,255,.2))}.section-brand-cta{position:relative;z-index:1;margin-bottom:18px}@keyframes sectionBrandFloat{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-5px) rotate(3deg)}}

/* Testimonials marquee: continuous right-to-left movement, pauses on hover/focus */
.testimonials-section{overflow:hidden;padding-top:70px}.testi-marquee{overflow:hidden;width:100%;position:relative}.testi-track{display:flex;gap:18px;width:max-content;animation:testiScroll 32s linear infinite;padding:4px 32px 14px}.testi-marquee:hover .testi-track,.testi-marquee:focus-within .testi-track{animation-play-state:paused}
@keyframes testiScroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 9px))}}
.testi-pill{width:355px;min-height:205px;background:var(--ink-2);border:1px solid var(--border-soft);border-radius:18px;padding:22px;flex:none;box-shadow:0 10px 30px rgba(0,0,0,.08);transition:transform .25s ease,border-color .25s ease}.testi-pill:hover{transform:translateY(-6px);border-color:rgba(0,25,255,.5)}.testi-pill.demo{min-height:0;display:flex;align-items:center}
.testi-pill.demo{border-style:dashed}.testi-pill.real{border-color:rgba(223,255,0,.35)}.testi-top{display:flex;align-items:center;gap:11px}.testi-pill .avatar{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--lime-bg));color:var(--on-accent);font-size:12px;font-weight:800}.testi-top b{display:block;font-size:14px}.testi-top small{display:block;color:var(--text-dim);font-size:10.5px;margin-top:3px}.testi-pill p{margin-top:20px;color:var(--text-light);font-size:14px;line-height:1.55}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.faq-item{background:var(--ink-2);border:1px solid var(--border-soft);border-radius:14px;padding:0 20px;transition:border-color .2s ease,transform .2s ease}.faq-item:hover{border-color:var(--border-strong);transform:translateY(-2px)}.faq-item summary{cursor:pointer;list-style:none;padding:21px 30px 21px 0;font-family:var(--font-display);font-weight:700;font-size:16px;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:'+';position:absolute;right:0;top:17px;color:var(--lime);font-size:24px;font-weight:400;transition:transform .2s}.faq-item[open] summary::after{transform:rotate(45deg)}.faq-item p{color:var(--text-dim);font-size:14px;line-height:1.65;padding:0 0 22px}
.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;align-items:center;gap:8px;background:#25D366;color:#07150d;text-decoration:none;font-weight:800;font-size:13px;padding:12px 16px;border-radius:999px;box-shadow:0 12px 30px rgba(37,211,102,.28);animation:waFloat 3.5s ease-in-out infinite}.wa-icon{width:22px;height:22px;border:2px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:10px}.whatsapp-float:hover{transform:translateY(-3px);animation-play-state:paused}@keyframes waFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

@media(max-width:900px){.section-brand img{width:34px;height:34px}.live-pipeline{grid-template-columns:1fr 30px 1fr;gap:8px}.pipeline-arrow:nth-of-type(2){display:none}.pipeline-node:nth-of-type(3){display:none}.pipeline-final{grid-column:3}.hero-brand-mark{right:-10px}.faq-grid{grid-template-columns:1fr}}
@media(max-width:600px){.hero-brand-mark{width:60px;height:60px;top:-16px;right:-6px;padding:4px}.section-brand{font-size:11px;gap:8px}.section-brand img{width:30px;height:30px}.live-pipeline{grid-template-columns:1fr 24px 1fr}.pipeline-node{min-height:92px;padding:12px 9px}.pipeline-node small{font-size:10px}.testi-pill{width:300px;min-height:190px}.whatsapp-float{right:14px;bottom:14px;padding:11px 14px}.faq-item summary{font-size:14px}}
@media(prefers-reduced-motion:reduce){.hero-brand-mark,.section-brand img,.pipeline-arrow,.node-dot,.live-status i,.testi-track,.whatsapp-float{animation:none}.testi-track{transform:none}}


/* Light-mode brand rule: lime accents become Forsa blue everywhere. */
:root[data-theme="light"] .node-dot{box-shadow:0 0 0 0 rgba(0,25,255,.6)}
:root[data-theme="light"] .testi-pill.real{border-color:rgba(0,25,255,.35)}
:root[data-theme="light"] .date-option.is-selected,
:root[data-theme="light"] .slot-option.is-selected{border-color:var(--blue);background:rgba(0,25,255,.08);color:var(--text-light)}
:root[data-theme="light"] .date-option.is-selected .day{color:var(--blue)}
:root[data-theme="light"] .schedule-status.available{color:var(--blue)}
:root[data-theme="light"] .modal-status.success{color:var(--blue)}
:root[data-theme="light"] .testi-pill .avatar{color:#fff}

/* ===== Mobile production polish ===== */
@media (max-width: 900px){
  .wrap{padding-left:24px;padding-right:24px;}
  section{padding:78px 0;}
  .hero{padding:72px 0 60px;}
  .hero-grid{gap:42px;}
  .hero-visual{padding:22px;}
  .process{border-radius:14px;}
  .step{padding:28px 24px;}
  .bento-card{padding:26px;}
  .stats{padding:38px 28px;}
  .cta-section{padding:54px 32px;}
}

@media (max-width: 600px){
  html,body{width:100%;overflow-x:hidden;}
  .wrap{padding-left:18px;padding-right:18px;}
  nav .wrap{height:64px;}
  .logo{font-size:16px;gap:6px;}
  .logo img{width:21px;}
  .nav-actions{gap:7px;}
  .nav-cta{padding:9px 11px;font-size:11.5px;white-space:nowrap;}
  .theme-toggle{width:34px;height:34px;border-radius:9px;}

  .hero{padding:58px 0 46px;}
  .hero-grid{gap:34px;}
  .hero-tag{font-size:12px;margin-bottom:18px;}
  h1{font-size:clamp(35px,10.5vw,48px);line-height:1.03;letter-spacing:-.035em;}
  .hero-sub{font-size:15px;line-height:1.55;margin-top:18px;}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:26px;width:100%;}
  .btn-primary,.btn-ghost{width:100%;text-align:center;padding:14px 18px;font-size:14px;}

  .hero-visual{padding:18px;border-radius:16px;}
  .visual-head{margin-bottom:16px;gap:5px;}
  .visual-head span:first-child{font-size:11px;}
  .visual-count{font-size:21px!important;line-height:1.12;max-width:100%;}
  .hero-brand-mark{width:52px;height:52px;top:-15px;right:-4px;}
  .visual-foot{font-size:10.5px;margin-top:12px;}

  /* On phones the lead journey becomes a clean vertical flow instead of a
     compressed 4-node row. Every stage stays visible. */
  .live-pipeline{display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:8px 0 4px;}
  .pipeline-node{min-height:70px;padding:12px 13px;border-radius:12px;display:grid;grid-template-columns:10px 1fr;grid-template-rows:auto auto;column-gap:9px;}
  .pipeline-node .node-dot{grid-row:1 / span 2;margin-top:4px;}
  .pipeline-node b{font-size:14px;margin-top:0;}
  .pipeline-node small{font-size:10.5px;margin-top:3px;}
  .pipeline-arrow{font-size:19px;line-height:18px;transform:rotate(90deg);align-self:center;}
  .pipeline-arrow:nth-of-type(2),.pipeline-arrow:nth-of-type(3){display:block;}

  .trust{padding:28px 0;}
  .trust .wrap{display:block;}
  .trust-label{display:block;font-size:11px;margin-bottom:13px;}
  .trust-items{gap:8px 18px;font-size:14px;}

  section{padding:70px 0;}
  .section-head{margin-bottom:34px;}
  .section-head h2{font-size:30px;line-height:1.1;}
  .section-head p{font-size:14.5px;line-height:1.55;margin-top:13px;}
  .section-brand{font-size:10px;gap:7px;margin-bottom:14px;letter-spacing:.11em;}
  .section-brand img{width:29px;height:29px;}

  .process{display:block;border-radius:14px;}
  .step{padding:24px 20px;border-bottom:1px solid var(--border-soft);}
  .step:last-child{border-bottom:0;}
  .step-num{font-size:13px;margin-bottom:12px;}
  .step h3{font-size:19px;margin-bottom:8px;}
  .step p{font-size:13.5px;line-height:1.55;}

  .bento{display:flex;flex-direction:column;gap:12px;}
  .bento-card,.bento-card.big{min-height:0;padding:23px;border-radius:15px;}
  .bento-card.big{min-height:330px;}
  .bento-card h3,.bento-card.big h3{font-size:21px;}
  .bento-card p{font-size:14px;}

  .stats{grid-template-columns:1fr 1fr;padding:28px 18px;gap:24px 14px;border-radius:16px;}
  .stat-num{font-size:28px;line-height:1.05;}
  .stat-label{font-size:11.5px;line-height:1.45;}

  .testimonials-section{padding-top:62px;}
  .testi-track{gap:12px;padding:3px 18px 12px;}
  .testi-pill{width:min(300px,82vw);min-height:185px;padding:18px;border-radius:15px;}
  .testi-pill p{font-size:13px;line-height:1.5;margin-top:15px;}
  .testi-top b{font-size:13px;}
  .testi-top small{font-size:9.5px;}

  .faq-grid{display:block;}
  .faq-item{margin-bottom:10px;padding:0 16px;border-radius:12px;}
  .faq-item summary{font-size:14px;line-height:1.35;padding:18px 28px 18px 0;}
  .faq-item summary::after{top:14px;font-size:21px;}
  .faq-item p{font-size:13px;line-height:1.55;padding-bottom:18px;}

  .cta-section{padding:38px 22px;border-radius:18px;}
  .cta-section h2{font-size:30px;line-height:1.08;}
  .cta-section p{font-size:14px;line-height:1.55;margin-top:13px;}
  .section-brand-cta{margin-bottom:14px;}
  .contact-info{gap:15px;flex-direction:column;margin-top:22px;}
  .contact-info a{font-size:13.5px;word-break:break-word;}

  footer{padding:34px 0;}
  footer .wrap{align-items:flex-start;}
  footer .foot-links{gap:14px 20px;flex-wrap:wrap;font-size:12px;}
  .foot-copy{font-size:11px;}

  .whatsapp-float{right:12px;bottom:12px;padding:10px 13px;font-size:12px;}

  /* Booking on a phone: readable cards, no squeezed 4-column calendar. */
  .modal-overlay{padding:0;align-items:stretch;}
  .booking-modal{width:100%;height:100dvh;max-height:100dvh;border-radius:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .booking-topbar{padding:17px 48px 15px 17px;}
  .booking-topbar h3{font-size:18px;line-height:1.15;}
  .booking-topbar p{font-size:11.5px;line-height:1.45;}
  .modal-close{top:12px;right:10px;font-size:27px;padding:4px 8px;}
  .booking-details,.booking-schedule{padding:20px 16px;}
  .booking-field{margin-bottom:18px;}
  .field-label-row label{font-size:13px;}
  .field-label-row span{font-size:10.5px;}
  .booking-field input,.booking-field select{min-height:50px;padding:12px 13px;font-size:14px;}
  .phone-row{grid-template-columns:88px 1fr;gap:7px;}
  .phone-prefix{min-height:50px;font-size:12px;}
  .date-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .date-option{min-height:70px;padding:8px 4px;}
  .date-option .dow{font-size:10px;}
  .date-option .day{font-size:20px;}
  .date-option .month{font-size:10px;}
  .schedule-heading{font-size:11px;margin-bottom:10px;}
  .slots-heading{margin-top:22px;}
  .timezone-note{font-size:10.5px;}
  .slot-grid{grid-template-columns:repeat(2,1fr);gap:7px;min-height:0;}
  .slot-option{min-height:50px;padding:9px 6px;font-size:13px;}
  .slot-badge{top:3px;right:-17px;font-size:6.5px;padding:1.5px 17px;}
  .modal-submit{padding:14px;font-size:13px;margin-top:7px;}
  .modal-status{font-size:12.5px;}
}

@media (max-width: 360px){
  .nav-cta{font-size:10.5px;padding:8px 9px;}
  .hero{padding-top:48px;}
  h1{font-size:34px;}
  .hero-sub{font-size:14px;}
  .visual-count{font-size:19px!important;}
  .stats{grid-template-columns:1fr;}
  .testi-pill{width:285px;}
  .booking-details,.booking-schedule{padding-left:13px;padding-right:13px;}
}

/* The results are now contained in one deliberate frame; content itself is unchanged. */
.results-frame{
  border:1px solid var(--border-soft);
  background:var(--surface-tint);
  border-radius:20px;
  padding:8px;
  box-shadow:0 18px 50px rgba(0,0,0,.08);
  overflow:hidden;
}
.results-frame .stats{
  background:transparent;
  border:0;
  border-radius:14px;
}

@media(max-width:600px){
  .results-frame{
    padding:6px;
    border-radius:17px;
  }
  .results-frame .stats{
    grid-template-columns:1fr;
    gap:0;
    padding:18px 16px;
  }
  .results-frame .stats > .reveal{
    padding:18px 2px;
    border-bottom:1px solid var(--border-soft);
  }
  .results-frame .stats > .reveal:last-child{border-bottom:0;}
  .results-frame .stat-num{font-size:22px!important;line-height:1.12;}
  .results-frame .stat-label{font-size:12.5px;line-height:1.5;margin-top:7px;}

  /* Keep the mobile journey vertical, with arrows physically pointing down. */
  .live-pipeline .pipeline-arrow{
    transform:rotate(90deg);
    animation:arrowPulseDown 1.7s ease-in-out infinite;
  }
  @keyframes arrowPulseDown{
    0%,100%{transform:rotate(90deg) translateX(0);opacity:.45}
    50%{transform:rotate(90deg) translateX(4px);opacity:1}
  }
}

@media(prefers-reduced-motion:reduce){
  .live-pipeline .pipeline-arrow{animation:none;}
}
