  :root{
    --bg:#070a08;
    --bg-2:#0c1310;
    --panel:#0e1713;
    --panel-line:#1c2b22;
    --lime:#c8ff5c;
    --green:#3ddc73;
    --green-deep:#0d5a30;
    --blue-meta:#3b82f6;
    --ink:#f4fbef;
    --muted:#93a69b;
    --muted-2:#66786e;
    --radius:18px;
    --wrap:1120px;
  }

  *{margin:0;padding:0;box-sizing:border-box;}

  html{scroll-behavior:smooth;}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }

  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  h1,h2,h3{
    font-family:'Poppins',sans-serif;
    letter-spacing:-0.01em;
    line-height:1.08;
  }

  .eyebrow{
    font-family:'Space Mono',monospace;
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--lime);
    display:inline-flex;
    align-items:center;
    gap:0.55rem;
  }
  .eyebrow::before{
    content:'';
    width:7px;height:7px;border-radius:50%;
    background:var(--lime);
    box-shadow:0 0 10px var(--lime);
  }

  a{color:inherit;text-decoration:none;}

  .wrap{
    width:92%;
    max-width:var(--wrap);
    margin:0 auto;
  }

  /* ---------- map texture ---------- */
  .map-texture{
    position:absolute; inset:0;
    background-image:url('assets/map-texture.jpg');
    background-size:cover;
    background-position:center;
    opacity:0.4;
    -webkit-mask-image:linear-gradient(to bottom, black 0%, black 55%, transparent 100%);
            mask-image:linear-gradient(to bottom, black 0%, black 55%, transparent 100%);
    pointer-events:none;
  }
  .map-texture::after{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(7,10,8,0.35), var(--bg) 92%);
  }

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.55rem;
    padding:0.95rem 1.7rem;
    border-radius:999px;
    font-weight:700;
    font-size:0.95rem;
    border:1px solid transparent;
    cursor:pointer;
    white-space:nowrap;
    transition:transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease;
  }
  .btn-primary{
    background:linear-gradient(135deg,var(--lime),var(--green));
    color:#04220f;
    box-shadow:0 10px 30px -8px rgba(61,220,115,0.55);
  }
  .btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 34px -6px rgba(61,220,115,0.7);}
  .btn-ghost{
    background:transparent;
    border-color:var(--panel-line);
    color:var(--ink);
  }
  .btn-ghost:hover{border-color:var(--green); color:var(--lime);}
  .btn-small{padding:0.6rem 1.1rem; font-size:0.82rem;}

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(7,10,8,0.78);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--panel-line);
  }
  .header-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:0.9rem 0;
  }
  .brand{display:flex; align-items:center; gap:0.6rem;}
  .brand img{height:28px; width:auto; display:block;}
  nav{display:flex; align-items:center; gap:2rem;}
  nav a{
    font-size:0.88rem; font-weight:500; color:var(--muted);
  }
  nav a:hover{color:var(--ink);}
  .nav-links{display:flex; gap:2rem;}
  @media (max-width:860px){ .nav-links{display:none;} }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    padding:5.5rem 0 5rem;
    overflow:hidden;
  }
  .hero-grid{
    position:relative; z-index:2;
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:3rem;
    align-items:center;
  }
  @media (max-width:900px){
    .hero-grid{grid-template-columns:1fr; text-align:left;}
    .hero{padding:3.2rem 0 3rem;}
  }

  .hero h1{
    font-size:clamp(2.1rem, 4.4vw, 3.4rem);
    font-weight:900;
    color:#fff;
    margin:1rem 0 1.1rem;
    text-transform:uppercase;
  }
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(135deg,var(--lime),var(--green));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  .hero p.lead{
    font-size:1.08rem;
    color:var(--muted);
    max-width:46ch;
    margin-bottom:2rem;
  }
  .hero-actions{display:flex; gap:0.9rem; flex-wrap:wrap; margin-bottom:2.6rem;}

  .chip-row{display:flex; gap:0.6rem; flex-wrap:wrap;}
  .chip{
    display:flex; align-items:center; gap:0.5rem;
    background:var(--panel);
    border:1px solid var(--panel-line);
    padding:0.5rem 0.9rem;
    border-radius:999px;
    font-size:0.78rem;
    color:var(--muted);
  }
  .chip svg{width:16px; height:16px; flex:none;}

  /* portrait */
  .hero-visual{position:relative; display:flex; justify-content:center;}
  .ring{
    position:absolute;
    width:min(420px, 86vw); height:min(420px, 86vw);
    border-radius:50%;
    background:conic-gradient(from 0deg, var(--lime), var(--green), var(--green-deep), transparent 60%, var(--lime));
    filter:blur(2px);
    opacity:0.55;
    animation:spin 18s linear infinite;
  }
  @keyframes spin{ to{ transform:rotate(360deg); } }
  .portrait-frame{
    position:relative;
    width:min(360px, 76vw);
    aspect-ratio:1/1;
    border-radius:50%;
    overflow:hidden;
    border:6px solid var(--bg);
    box-shadow:0 0 0 1px var(--panel-line);
    background:#0a120d;
  }
  .portrait-frame img{
    width:100%; height:100%; object-fit:cover; object-position:top center;
    display:block;
    filter:grayscale(0.05);
  }
  .float-pin{
    position:absolute;
    display:flex; align-items:center; gap:0.45rem;
    background:var(--bg-2);
    border:1px solid var(--panel-line);
    padding:0.5rem 0.85rem;
    border-radius:999px;
    font-size:0.72rem;
    font-weight:600;
    box-shadow:0 12px 26px -10px rgba(0,0,0,0.6);
  }
  .float-pin svg{width:16px;height:16px;}
  .pin-1{ top:6%; left:-6%; }
  .pin-2{ bottom:12%; right:-10%; }
  .pin-3{ bottom:-4%; left:14%; }
  @media (max-width:520px){
    .float-pin{ font-size:0.64rem; padding:0.4rem 0.65rem; }
    .pin-1{ left:-2%; }
    .pin-2{ right:-4%; }
  }

  /* ---------- section shell ---------- */
  section{ padding:5rem 0; position:relative; }
  .section-head{ max-width:640px; margin-bottom:3rem; }
  .section-head h2{
    font-size:clamp(1.7rem,3vw,2.35rem);
    font-weight:800;
    color:#fff;
    margin-top:0.8rem;
  }
  .section-head p{ color:var(--muted); margin-top:0.9rem; font-size:1.02rem; }

  /* ---------- route / stops ---------- */
  .route{
    background:var(--bg-2);
    border-top:1px solid var(--panel-line);
    border-bottom:1px solid var(--panel-line);
  }
  .route-list{
    position:relative;
    display:flex; flex-direction:column;
    gap:0;
  }
  .route-list::before{
    content:'';
    position:absolute;
    left:27px; top:14px; bottom:14px;
    width:2px;
    background:repeating-linear-gradient(to bottom, var(--green) 0 8px, transparent 8px 16px);
    opacity:0.55;
  }
  .stop{
    position:relative;
    display:grid;
    grid-template-columns:56px 1fr;
    gap:1.4rem;
    padding:1.7rem 0;
    border-bottom:1px solid var(--panel-line);
  }
  .stop:last-child{ border-bottom:none; }
  .stop-node{
    position:relative; z-index:2;
    width:56px; height:56px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--panel);
    border:1px solid var(--panel-line);
  }
  .stop-node svg{ width:26px; height:26px; }
  .stop-body .eyebrow{ margin-bottom:0.5rem; color:var(--muted-2); }
  .stop-body .eyebrow::before{ background:var(--muted-2); box-shadow:none; }
  .stop-body h3{
    font-size:1.22rem; font-weight:700; color:#fff; margin-bottom:0.4rem;
  }
  .stop-body p{ color:var(--muted); font-size:0.96rem; max-width:56ch; }
  .stop-link{
    display:inline-block; margin-top:0.7rem;
    font-size:0.86rem; font-weight:600; color:var(--lime);
    border-bottom:1px solid transparent;
  }
  .stop-link:hover{ border-color:var(--lime); }

  /* ---------- transformação (antes/depois) ---------- */
  .transform-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.4rem;
  }
  @media (max-width:760px){ .transform-grid{grid-template-columns:1fr;} }
  .t-panel{
    border-radius:var(--radius);
    padding:1.9rem 1.7rem;
    border:1px solid var(--panel-line);
  }
  .t-panel.before{ background:var(--panel); }
  .t-panel.after{
    background:linear-gradient(160deg, rgba(61,220,115,0.09), var(--panel) 60%);
    border-color:rgba(61,220,115,0.35);
  }
  .t-panel .t-label{
    font-family:'Space Mono',monospace;
    font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--muted-2); margin-bottom:1.1rem; display:block;
  }
  .t-panel.after .t-label{ color:var(--lime); }
  .t-panel ul{ list-style:none; display:flex; flex-direction:column; gap:0.85rem; }
  .t-panel li{
    display:flex; gap:0.7rem; align-items:flex-start;
    font-size:0.95rem; color:#dbe7df;
  }
  .t-panel li svg{ flex:none; width:18px; height:18px; margin-top:0.15rem; }

  /* ---------- processo ---------- */
  .process-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1.2rem;
  }
  @media (max-width:900px){ .process-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .process-grid{grid-template-columns:1fr;} }
  .process-card{
    background:var(--panel);
    border:1px solid var(--panel-line);
    border-radius:var(--radius);
    padding:1.5rem 1.3rem;
  }
  .process-card .step-num{
    font-family:'Space Mono',monospace;
    font-size:0.75rem; color:var(--muted-2); display:block; margin-bottom:0.9rem;
  }
  .process-card h3{ font-size:1.05rem; color:#fff; margin-bottom:0.5rem; }
  .process-card p{ color:var(--muted); font-size:0.88rem; }

  /* ---------- sobre ---------- */
  .about-grid{
    display:grid;
    grid-template-columns:0.8fr 1.2fr;
    gap:2.6rem;
    align-items:center;
  }
  @media (max-width:820px){ .about-grid{grid-template-columns:1fr; gap:2rem;} }
  .about-photo{
    border-radius:var(--radius);
    overflow:hidden;
    border:1px solid var(--panel-line);
    aspect-ratio:4/5;
  }
  .about-photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; }
  .about-text h2{ font-size:clamp(1.5rem,2.6vw,2rem); color:#fff; font-weight:800; margin:0.7rem 0 1rem; }
  .about-text p{ color:var(--muted); margin-bottom:1rem; font-size:0.98rem; }
  .about-tags{ display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:1.2rem; }
  .about-tags span{
    font-size:0.76rem; padding:0.4rem 0.8rem; border-radius:999px;
    background:var(--bg-2); border:1px solid var(--panel-line); color:var(--muted);
  }

  /* ---------- faq ---------- */
  .faq-list{ display:flex; flex-direction:column; gap:0.8rem; }
  .faq-item{
    background:var(--panel);
    border:1px solid var(--panel-line);
    border-radius:14px;
    padding:0.3rem 1.3rem;
  }
  .faq-item summary{
    list-style:none;
    cursor:pointer;
    padding:1.1rem 0;
    font-weight:600;
    color:#fff;
    font-size:0.98rem;
    display:flex; align-items:center; justify-content:space-between; gap:1rem;
  }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::after{
    content:'+';
    font-family:'Poppins',sans-serif;
    font-size:1.3rem; color:var(--lime); flex:none;
    transition:transform 0.2s ease;
  }
  .faq-item[open] summary::after{ transform:rotate(45deg); }
  .faq-item p{ color:var(--muted); font-size:0.92rem; padding-bottom:1.2rem; max-width:65ch; }

  /* ---------- final cta ---------- */
  .final-cta{
    background:
      radial-gradient(ellipse 60% 80% at 20% 20%, rgba(200,255,92,0.10), transparent 60%),
      linear-gradient(160deg, var(--green-deep), #06110a 60%);
    border-radius:28px;
    padding:3.4rem 2.2rem;
    text-align:center;
    border:1px solid var(--panel-line);
  }
  .final-cta h2{ font-size:clamp(1.6rem,3.4vw,2.3rem); color:#fff; font-weight:800; }
  .final-cta p{ color:var(--muted); max-width:52ch; margin:0.9rem auto 1.8rem; }
  .final-actions{ display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }

  /* ---------- footer ---------- */
  footer{
    border-top:1px solid var(--panel-line);
    padding:3rem 0 6.5rem;
  }
  .footer-row{
    display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:2rem;
  }
  .footer-brand img{ height:24px; margin-bottom:0.8rem; }
  .footer-brand p{ color:var(--muted-2); font-size:0.84rem; max-width:32ch; }
  .footer-links{ display:flex; gap:2.5rem; flex-wrap:wrap; }
  .footer-col h4{ font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); margin-bottom:0.9rem; }
  .footer-col a{ display:block; color:var(--muted-2); font-size:0.88rem; margin-bottom:0.6rem; }
  .footer-col a:hover{ color:var(--lime); }
  .footer-bottom{
    margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--panel-line);
    font-size:0.78rem; color:var(--muted-2);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.6rem;
  }

  /* ---------- sticky mobile cta ---------- */
  .sticky-cta{
    position:fixed; left:0; right:0; bottom:0; z-index:200;
    display:none;
    padding:0.75rem 5%;
    background:rgba(7,10,8,0.92);
    backdrop-filter:blur(10px);
    border-top:1px solid var(--panel-line);
  }
  .sticky-cta .btn{ width:100%; }
  @media (max-width:720px){ .sticky-cta{ display:block; } footer{ padding-bottom:5.5rem; } }
