  :root{
    --bg:#ffffff;
    --bg-soft:#f8f4fa;
    --ink:#241128;
    --ink-soft:#5b4a62;
    --purple:#6b1a8c;
    --purple-deep:#4a1161;
    --purple-pale:#ede0f3;
    --line:#e3d6ea;
    --white:#ffffff;
    --shadow: 0 24px 48px -28px rgba(74,17,97,0.35);
    --radius-s: 3px;
    --radius-m: 6px;
    --maxw: 1160px;
  }

  /* Tema único e fixo (branco + paleta da marca) por decisão de sobriedade do cliente — não adapta a dark mode. */

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:"Work Sans", ui-sans-serif, system-ui, sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  img{max-width:100%; display:block;}

  h1,h2,h3{
    font-family:"Fraunces", ui-serif, Georgia, serif;
    font-weight:600;
    color:var(--ink);
    text-wrap:balance;
    margin:0;
  }

  .eyebrow{
    font-family:"Jost", ui-sans-serif, sans-serif;
    font-weight:500;
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--purple);
    margin:0 0 0.9em;
  }

  .wrap{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 28px;
  }

  .hr{
    height:1px;
    background:var(--line);
    border:none;
    margin:0;
  }

  section{padding:88px 0;}
  @media (max-width:720px){ section{padding:56px 0;} }

  .band{background:var(--bg-soft);}

  /* ---------- trust bar ---------- */
  .trustbar{
    background:var(--purple-pale);
    padding:9px 0;
  }
  .trustbar ul{
    list-style:none; margin:0; padding:0;
    display:flex; justify-content:center; gap:36px; flex-wrap:wrap;
  }
  .trustbar li{
    font-family:"Jost", sans-serif;
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--purple-deep);
  }

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:40;
    background:color-mix(in srgb, var(--bg) 92%, transparent);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .headerrow{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 0;
    gap:24px;
  }
  .logo img{height:44px; width:auto;}
  nav.mainnav ul{
    list-style:none; display:flex; gap:30px; margin:0; padding:0;
  }
  nav.mainnav a{
    font-family:"Jost", sans-serif;
    font-size:0.82rem;
    letter-spacing:0.03em;
    color:var(--ink);
    text-decoration:none;
    transition:color .15s ease;
  }
  nav.mainnav a:hover{color:var(--purple);}
  .headeractions{display:flex; align-items:center; gap:18px;}

  .btn{
    display:inline-flex; align-items:center; justify-content:center;
    font-family:"Jost", sans-serif;
    font-weight:500;
    font-size:0.85rem;
    letter-spacing:0.05em;
    text-transform:uppercase;
    text-decoration:none;
    border:1px solid transparent;
    border-radius:var(--radius-s);
    padding:14px 30px;
    cursor:pointer;
    transition:background .15s ease, color .15s ease, border-color .15s ease, transform .1s ease;
  }
  .btn:focus-visible{outline:2px solid var(--purple); outline-offset:2px;}
  .btn-primary{background:var(--purple); color:#fff;}
  .btn-primary:hover{background:var(--purple-deep);}
  .btn-primary:active{transform:translateY(1px);}
  .btn-ghost{background:transparent; color:var(--ink); border-color:var(--line);}
  .btn-ghost:hover{border-color:var(--purple); color:var(--purple);}
  .btn-small{padding:10px 20px; font-size:0.76rem;}

  .navtoggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .navtoggle svg{width:22px; height:22px; stroke:var(--ink);}

  @media (max-width:860px){
    nav.mainnav{
      position:absolute; top:100%; left:0; right:0;
      background:var(--bg);
      border-bottom:1px solid var(--line);
      display:none;
    }
    nav.mainnav.open{display:block;}
    nav.mainnav ul{flex-direction:column; padding:18px 28px; gap:16px;}
    .navtoggle{display:inline-flex;}
    .headeractions .btn-ghost{display:none;}
  }

  /* ---------- hero ---------- */
  .hero{padding:64px 0 88px;}
  .hero .wrap{
    display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center;
  }
  @media (max-width:900px){
    .hero .wrap{grid-template-columns:1fr; gap:40px;}
    .hero{padding:40px 0 56px;}
  }
  .hero-media{
    position:relative;
    background:var(--bg-soft);
    border-radius:var(--radius-m);
    padding:28px;
  }
  .hero-badge{
    position:absolute; top:22px; left:22px; z-index:2;
    background:var(--white);
    border:1px solid var(--line);
    font-family:"Jost", sans-serif;
    font-size:0.68rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--purple);
    padding:6px 12px;
    border-radius:20px;
  }

  .hc-track{
    position:relative;
    width:100%; max-width:420px; aspect-ratio:1/1;
    margin:0 auto;
    cursor:zoom-in;
  }
  .hc-slide{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:contain;
    opacity:0;
    transition:opacity .4s ease;
    filter:drop-shadow(var(--shadow));
  }
  .hc-slide.active{opacity:1;}
  .hc-arrow{
    position:absolute; top:50%; translate:0 -50%;
    width:38px; height:38px; border-radius:50%;
    border:1px solid var(--line); background:var(--bg);
    color:var(--purple); font-size:1.3rem; line-height:1;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; z-index:2;
    transition:background .15s ease, border-color .15s ease;
  }
  .hc-arrow:hover{border-color:var(--purple); background:var(--purple-pale);}
  .hc-prev{left:2px;}
  .hc-next{right:2px;}
  .hc-zoom{
    position:absolute; bottom:14px; right:14px; z-index:2;
    width:36px; height:36px; border-radius:50%;
    border:1px solid var(--line); background:var(--bg);
    color:var(--purple); display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:background .15s ease, border-color .15s ease;
  }
  .hc-zoom svg{width:17px; height:17px;}
  .hc-zoom:hover{border-color:var(--purple); background:var(--purple-pale);}

  .hc-thumbs{
    display:flex; justify-content:center; gap:10px; margin-top:18px;
  }
  .hc-thumb{
    width:56px; height:56px; padding:5px;
    border-radius:var(--radius-s); border:1.5px solid var(--line);
    background:var(--bg); cursor:pointer;
    transition:border-color .15s ease;
  }
  .hc-thumb img{width:100%; height:100%; object-fit:contain; display:block;}
  .hc-thumb.active{border-color:var(--purple);}
  .hc-thumb:hover{border-color:var(--purple);}

  .lightbox{
    position:fixed; inset:0; z-index:100;
    background:rgba(20,8,26,0.92);
    display:none; align-items:center; justify-content:center;
    padding:48px;
  }
  .lightbox.open{display:flex;}
  .lightbox img{max-width:100%; max-height:100%; object-fit:contain; border-radius:var(--radius-m);}
  .lightbox-close, .lightbox-arrow{
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.3); background:rgba(255,255,255,0.1);
    color:#fff; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s ease;
  }
  .lightbox-close:hover, .lightbox-arrow:hover{background:rgba(255,255,255,0.22);}
  .lightbox-close{top:20px; right:20px; width:42px; height:42px; font-size:1.4rem;}
  .lightbox-arrow{top:50%; translate:0 -50%; width:46px; height:46px; font-size:1.6rem;}
  .lightbox-prev{left:16px;}
  .lightbox-next{right:16px;}
  @media (max-width:640px){ .lightbox{padding:16px;} }

  h1.headline{
    font-size:clamp(2.05rem, 3.6vw, 3.1rem);
    line-height:1.12;
    letter-spacing:-0.01em;
  }
  .lead{
    font-size:1.08rem;
    color:var(--ink-soft);
    margin:18px 0 0;
    max-width:46ch;
  }

  .rating-row{
    display:flex; align-items:center; gap:10px;
    margin:22px 0 0;
    font-family:"Jost", sans-serif;
    font-size:0.85rem;
    color:var(--ink-soft);
  }
  .stars{color:var(--purple); letter-spacing:2px; font-size:1rem;}

  .price-row{
    display:flex; align-items:baseline; gap:12px;
    margin:22px 0 4px;
  }
  .price{
    font-family:"Fraunces", serif;
    font-weight:600;
    font-size:2.1rem;
    color:var(--ink);
  }
  .price-note{
    font-family:"Jost", sans-serif;
    font-size:0.78rem;
    letter-spacing:0.04em;
    color:var(--ink-soft);
    text-transform:uppercase;
  }
  .variant-note{
    font-size:0.9rem; color:var(--ink-soft); margin:0 0 26px;
  }
  .variant-note strong{color:var(--ink); font-weight:500;}

  .kit-select{
    display:grid; grid-template-columns:1fr 1fr; gap:14px;
    margin-bottom:26px;
  }
  @media (max-width:420px){ .kit-select{grid-template-columns:1fr;} }
  .kit-card{
    position:relative;
    border:1px solid var(--line);
    border-radius:var(--radius-m);
    padding:16px 16px 14px;
    cursor:pointer;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  .kit-card:hover{border-color:var(--purple);}
  .kit-card input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer;}
  .kit-card input:checked ~ .kit-card-inner .kit-radio{
    border-color:var(--purple); background:var(--purple);
  }
  .kit-card:has(input:checked){
    border-color:var(--purple);
    box-shadow:0 0 0 1px var(--purple);
    background:var(--purple-pale);
  }
  .kit-tag{
    position:absolute; top:-11px; right:14px;
    background:var(--purple); color:#fff;
    font-family:"Jost",sans-serif; font-size:0.62rem;
    letter-spacing:0.08em; text-transform:uppercase;
    padding:4px 9px; border-radius:20px;
  }
  .kit-card-inner{display:flex; gap:10px; align-items:flex-start;}
  .kit-radio{
    width:16px; height:16px; border-radius:50%;
    border:1.5px solid var(--ink-soft);
    margin-top:3px; flex:none;
    transition:background .15s ease, border-color .15s ease;
  }
  .kit-label{font-family:"Jost", sans-serif; font-size:0.86rem; font-weight:500; margin:0 0 3px;}
  .kit-price{font-family:"Fraunces", serif; font-weight:600; font-size:1.15rem; margin:0 0 2px;}
  .kit-sub{font-size:0.76rem; color:var(--ink-soft); margin:0;}

  .hero-cta{display:flex; flex-direction:column; gap:12px; align-items:flex-start;}
  .hero-cta .btn{width:100%; max-width:340px; padding:16px 30px; font-size:0.9rem;}
  .guarantee-line{
    font-size:0.82rem; color:var(--ink-soft);
    display:flex; align-items:center; gap:8px;
  }
  .guarantee-line svg{width:15px; height:15px; stroke:var(--purple); flex:none;}

  /* ---------- gallery ---------- */
  .gallery-grid{
    display:grid; grid-template-columns:repeat(4,1fr); gap:22px;
  }
  @media (max-width:900px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
  .gallery-item img{
    border-radius:var(--radius-m);
    aspect-ratio:1/1; object-fit:cover;
    width:100%;
    border:1px solid var(--line);
  }
  .gallery-cap{
    font-size:0.85rem; color:var(--ink-soft); margin-top:12px; line-height:1.45;
  }

  /* ---------- section heads ---------- */
  .sec-head{max-width:640px; margin:0 0 48px;}
  .sec-head.center{margin-left:auto; margin-right:auto; text-align:center;}
  .sec-head h2{font-size:clamp(1.6rem,2.6vw,2.2rem); line-height:1.2;}

  /* ---------- dores ---------- */
  .dores-list{
    max-width:760px; margin:0 auto;
    display:flex; flex-direction:column;
  }
  .dores-item{
    padding:26px 0;
    border-top:1px solid var(--line);
    font-family:"Fraunces", serif;
    font-style:italic;
    font-weight:400;
    font-size:1.2rem;
    line-height:1.45;
    color:var(--ink);
  }
  .dores-list .dores-item:last-child{border-bottom:1px solid var(--line);}

  /* ---------- benefits ---------- */
  .benefits-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:40px 36px;
  }
  @media (max-width:860px){ .benefits-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .benefits-grid{grid-template-columns:1fr;} }
  .benefit-num{
    font-family:"Fraunces", serif; font-weight:500; font-style:italic;
    color:var(--purple); font-size:1.1rem; margin:0 0 10px;
  }
  .benefit h3{font-size:1.1rem; font-weight:600; margin:0 0 8px;}
  .benefit p{font-size:0.94rem; color:var(--ink-soft); margin:0;}

  /* ---------- como usar ---------- */
  .steps{
    display:grid; grid-template-columns:repeat(3,1fr); gap:36px;
    counter-reset:step;
  }
  @media (max-width:760px){ .steps{grid-template-columns:1fr;} }
  .step{position:relative; padding-top:52px;}
  .step::before{
    counter-increment:step;
    content:counter(step, decimal-leading-zero);
    position:absolute; top:0; left:0;
    font-family:"Fraunces", serif; font-weight:500;
    font-size:1.6rem; color:var(--purple);
  }
  .step h3{font-size:1.05rem; font-weight:600; margin:0 0 8px;}
  .step p{font-size:0.94rem; color:var(--ink-soft); margin:0;}

  /* ---------- prova social ---------- */
  .stat-row{
    display:flex; align-items:center; gap:22px; justify-content:center;
    margin-bottom:56px;
  }
  .stat-number{
    font-family:"Fraunces", serif; font-weight:600; font-size:3rem; line-height:1;
  }
  .stat-copy{font-size:0.9rem; color:var(--ink-soft); max-width:20ch;}

  .ba-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:24px;
    max-width:600px; margin:0 auto;
  }
  @media (max-width:520px){ .ba-grid{grid-template-columns:1fr; max-width:320px;} }
  .ba-item img{
    display:block; box-sizing:border-box;
    width:100%; aspect-ratio:625/720;
    background:var(--bg-soft); border-radius:var(--radius-m);
    padding:14px; object-fit:contain;
  }
  .ba-cap{
    font-family:"Work Sans", sans-serif; font-size:0.92rem; line-height:1.5;
    color:var(--ink-soft);
    margin:16px 2px 0; text-align:left;
  }
  .ba-cap .ba-tag{
    font-family:"Jost", sans-serif; font-size:0.68rem; font-weight:500;
    letter-spacing:0.08em; text-transform:uppercase;
    color:var(--purple);
  }

  /* ---------- testimonials ---------- */
  .testi-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
  }
  @media (max-width:860px){ .testi-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .testi-grid{grid-template-columns:1fr;} }
  .testi-card{
    background:var(--bg);
    border:1px solid var(--line);
    border-radius:var(--radius-m);
    padding:26px 24px;
  }
  .testi-card .stars{display:block; margin-bottom:14px;}
  .testi-card p.quote{
    font-family:"Fraunces", serif; font-style:italic; font-size:1.02rem;
    line-height:1.5; margin:0 0 18px; color:var(--ink);
  }
  .testi-name{font-family:"Jost", sans-serif; font-size:0.82rem; font-weight:500; letter-spacing:0.03em;}

  /* ---------- FAQ ---------- */
  .faq-list{max-width:760px; margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-item summary{
    list-style:none;
    display:flex; align-items:center; justify-content:space-between; gap:20px;
    padding:22px 0;
    cursor:pointer;
    font-family:"Jost", sans-serif; font-size:1rem; font-weight:500;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-plus{
    flex:none; width:22px; height:22px; position:relative;
  }
  .faq-plus::before, .faq-plus::after{
    content:""; position:absolute; background:var(--purple);
    transition:transform .18s ease;
  }
  .faq-plus::before{left:0; top:50%; width:100%; height:1.5px; transform:translateY(-50%);}
  .faq-plus::after{top:0; left:50%; width:1.5px; height:100%; transform:translateX(-50%);}
  .faq-item[open] .faq-plus::after{transform:translateX(-50%) rotate(90deg); opacity:0;}
  .faq-item p{
    margin:0 0 22px; color:var(--ink-soft); font-size:0.95rem; max-width:64ch;
  }

  /* ---------- CTA final ---------- */
  .cta-final{
    background:var(--purple);
    color:#fff;
    border-radius:0;
  }
  .cta-final .wrap{
    display:grid; grid-template-columns:0.85fr 1fr; gap:56px; align-items:center;
  }
  @media (max-width:820px){
    .cta-final .wrap{grid-template-columns:1fr; text-align:center; justify-items:center;}
  }
  .cta-final-media{
    background:rgba(255,255,255,0.08);
    border-radius:var(--radius-m);
    padding:24px;
    display:flex; align-items:center; justify-content:center;
  }
  .cta-final-media img{
    max-height:300px; width:100%; object-fit:contain;
    filter:drop-shadow(0 20px 40px rgba(0,0,0,0.35));
  }
  .cta-final h2{color:#fff; font-size:clamp(1.7rem,3vw,2.3rem);}
  .cta-final p{color:color-mix(in srgb, #fff 82%, transparent); font-size:1rem; margin:16px 0 0;}
  .cta-final .btn-primary{background:#fff; color:var(--purple-deep);}
  .cta-final .btn-primary:hover{background:var(--purple-pale);}
  .cta-final .price{color:#fff; margin:20px 0 0; display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;}
  @media (max-width:820px){ .cta-final .price{justify-content:center;} }
  .cta-final .price-kit{
    font-family:"Jost", sans-serif; font-size:1.05rem; font-weight:500;
    color:color-mix(in srgb, #fff 88%, transparent);
  }
  .cta-final .btn{margin-top:30px;}

  /* ---------- footer ---------- */
  footer{padding:64px 0 36px; background:var(--bg-soft);}
  .footer-top{
    display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:40px;
    padding-bottom:40px; border-bottom:1px solid var(--line);
  }
  @media (max-width:760px){ .footer-top{grid-template-columns:1fr 1fr; row-gap:32px;} }
  .footer-col h4{
    font-family:"Jost", sans-serif; font-size:0.72rem; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--ink-soft); margin:0 0 16px;
  }
  .footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
  .footer-col a{color:var(--ink); text-decoration:none; font-size:0.9rem;}
  .footer-col a:hover{color:var(--purple);}
  .footer-logo img{height:36px; margin-bottom:14px;}
  .footer-col p{font-size:0.88rem; color:var(--ink-soft); margin:0 0 6px;}
  .footer-badges{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px;}
  .footer-badge{
    font-family:"Jost", sans-serif; font-size:0.66rem; letter-spacing:0.05em; text-transform:uppercase;
    border:1px solid var(--line); border-radius:20px; padding:5px 11px; color:var(--ink-soft);
  }
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
    padding-top:24px; font-size:0.8rem; color:var(--ink-soft);
  }

  .fade-in{animation:fadeIn .7s ease both;}
  @keyframes fadeIn{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }
