:root{
    /* Marca */
    --navy:#142B4F;
    --navy-deep:#0B1930;
    --navy-mid:#2C4A7C;
    --tint:#EDF0F6;
    --tint-2:#DCE3EE;
    --mint:#00B39A;
    --ground:#F7F8FA;
    --paper:#FFFFFF;
    --ink:#161B24;
    --muted:#4A5262;
    --on-navy:#FFFFFF;
    --on-navy-2:#C9D3E4;
    --wa:#15803D;

    /* Tipo: cinco degraus */
    --t-display:clamp(44px, 5.4vw, 84px);
    --t-h2:clamp(30px, 3.4vw, 50px);
    --t-statement:clamp(24px, 2.4vw, 34px);
    --t-body:17px;
    --t-small:14px;

    /* O motivo: a perna do "A" da marca (inclinação ~2,2 : 1) */
    --leg:2.2;

    --m:clamp(20px, 3.4vw, 56px);
    --gap:clamp(16px, 1.8vw, 28px);
    --sec:clamp(96px, 13vw, 200px);

    --ease-out:cubic-bezier(.16,1,.3,1);
    --t-hover:180ms;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
  body{
    margin:0; background:var(--ground); color:var(--ink);
    font-family:'Inter', system-ui, sans-serif; font-size:var(--t-body); line-height:1.55;
    -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  }
  h1,h2,h3{font-family:'Plus Jakarta Sans', 'Inter', sans-serif; margin:0; color:inherit; text-wrap:balance;}
  p{margin:0; text-wrap:pretty;}
  a{color:inherit;}
  img,svg{display:block; max-width:100%;}
  button,input,select,textarea{font:inherit; color:inherit;}
  a,button,summary,label{touch-action:manipulation; -webkit-tap-highlight-color:transparent;}
  :focus-visible{outline:3px solid var(--mint); outline-offset:3px;}
  ::selection{background:var(--navy); color:#fff;}
  .sr-only{position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
  .skip{position:absolute; left:var(--m); top:-60px; background:var(--navy); color:#fff; padding:12px 16px; z-index:100; text-decoration:none;}
  .skip:focus{top:12px;}

  .frame{padding-left:var(--m); padding-right:var(--m);}
  [id]{scroll-margin-top:24px;}
  .grid{display:grid; grid-template-columns:repeat(12, minmax(0,1fr)); column-gap:var(--gap);}

  /* ---------- botões: retângulo com o canto cortado pela perna do A ---------- */
  .btn{
    --c:16px;
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    min-height:56px; padding:0 calc(28px + var(--c)) 0 28px;
    font-family:'Plus Jakarta Sans', sans-serif; font-weight:700; font-size:16px;
    text-decoration:none; border:0; cursor:pointer;
    clip-path:polygon(0 0, calc(100% - var(--c)) 0, 100% calc(var(--c) * var(--leg)), 100% 100%, 0 100%);
    transition:background-color var(--t-hover) ease, transform 140ms var(--ease-out);
  }
  .btn:active{transform:scale(.97);}
  .btn-navy{background:var(--navy); color:#fff;}
  .btn-navy:hover{background:var(--navy-deep);}
  .btn-wa{background:var(--wa); color:#fff;}
  .btn-wa:hover{background:#116B33;}
  .btn-light{background:#fff; color:var(--navy);}
  .btn-light:hover{background:var(--tint);}
  .btn svg{width:20px; height:20px; flex:none;}

  /* marcador: o A, pequeno */
  .tri{display:inline-block; width:.62em; height:.56em; background:currentColor; clip-path:polygon(50% 0, 100% 100%, 0 100%); flex:none;}

  /* ---------- cabeçalho ---------- */
  .top{position:absolute; inset:0 0 auto 0; z-index:20;}
  .top .bar{display:flex; align-items:center; justify-content:space-between; gap:24px; height:88px;}
  .brand{display:flex; align-items:center; gap:12px; text-decoration:none; font-family:'Plus Jakarta Sans', sans-serif; font-weight:800; font-size:18px; color:var(--ink);}
  .brand img{width:44px; height:44px;}
  .top nav{display:flex; align-items:center; gap:clamp(18px, 2.4vw, 36px);}
  .top nav a{text-decoration:none; font-size:15px; font-weight:500; color:var(--muted); transition:color var(--t-hover) ease;}
  .top nav a:hover{color:var(--ink);}
  .top nav .nav-tel{font-weight:600; color:var(--ink);}

  /* ---------- hero ---------- */
  .hero{position:relative; min-height:max(800px, 100svh); overflow:hidden; background:var(--ground);}
  .hero-copy{position:relative; z-index:2; pointer-events:none; padding-top:clamp(132px, 17vh, 168px);}
  .hero-copy > *{pointer-events:auto;}
  .hero h1{font-size:var(--t-display); font-weight:800; line-height:.98; letter-spacing:-.035em; max-width:13em;}
  .hero h1 span{display:block;}
  .hero-sub{margin-top:36px; font-size:19px; line-height:1.5; max-width:31ch; color:var(--ink);}
  .hero-actions{margin-top:32px; width:fit-content; max-width:100%; display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
  .hero-actions .alt{font-size:15px; font-weight:600; color:var(--navy); text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:2px; padding:12px 4px;}
  .hero-actions .alt:hover{color:var(--navy-deep);}

  .stage{
    --cut:clamp(110px, 12vw, 200px);
    position:absolute; z-index:1;
    left:calc(var(--m) + (100% - 2 * var(--m) + var(--gap)) / 12 * 4.6);
    right:0; bottom:0; top:41%;
    background:var(--navy);
    clip-path:polygon(var(--cut) 0, 100% 0, 100% 100%, 0 100%, 0 calc(var(--cut) * var(--leg)));
  }
  .stage .ui-wrap{position:absolute; left:clamp(56px, 8vw, 150px); top:56px; width:min(640px, calc(100% - 96px));}
  .try{margin-top:clamp(40px, 7vh, 72px); max-width:30ch; font-size:var(--t-small); line-height:1.5; color:var(--muted); animation:lineUp 900ms var(--ease-out) 340ms both;}
  .try strong{color:var(--ink); font-weight:600;}
  .stage-note{position:absolute; right:var(--m); top:56px; max-width:22ch; color:var(--on-navy-2); font-size:var(--t-small); line-height:1.5;}
  .stage-note strong{display:block; color:#fff; font-family:'Plus Jakarta Sans', sans-serif; font-size:17px; margin-bottom:4px;}

  /* ---------- fragmento: calendário fiscal (o "live thing") ---------- */
  [data-ui]{font-family:'Inter', sans-serif; color:var(--ink);}
  .cal{background:#fff; border-radius:6px; overflow:hidden;}
  .cal-head{padding:22px 24px 18px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; border-bottom:1px solid #E6E9F0;} /* taste-skill-ignore: data-ui fragment */
  .cal-title{font-family:'Plus Jakarta Sans', sans-serif; font-weight:800; font-size:20px; letter-spacing:-.01em;}
  .cal-title small{display:block; font-family:'Inter', sans-serif; font-weight:500; font-size:14px; color:var(--muted); letter-spacing:0; margin-top:2px;}
  .seg{display:inline-flex; background:var(--tint); border-radius:6px; padding:3px; gap:2px;}
  .seg label{position:relative; cursor:pointer;}
  .seg input{position:absolute; opacity:0; inset:0; margin:0; cursor:pointer;}
  .seg span{display:block; padding:8px 12px; border-radius:4px; font-size:14px; font-weight:600; color:var(--muted); transition:background-color var(--t-hover) ease, color var(--t-hover) ease; white-space:nowrap;}
  .seg input:checked + span{background:#fff; color:var(--navy); box-shadow:0 1px 2px rgba(11,25,48,.12);} /* taste-skill-ignore: data-ui fragment */
  .seg input:focus-visible + span{outline:3px solid var(--mint); outline-offset:1px;}
  .seg label:hover span{color:var(--ink);}
  .cal-opts{padding:12px 24px; display:flex; align-items:center; gap:10px; font-size:14px; color:var(--muted); border-bottom:1px solid #E6E9F0; background:#FBFCFD;} /* taste-skill-ignore: data-ui fragment */
  .switch{position:relative; width:42px; height:24px; flex:none;}
  .switch input{position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; z-index:1;}
  .switch i{position:absolute; inset:0; border-radius:12px; background:#C5CDDB; transition:background-color var(--t-hover) ease;}
  .switch i::after{content:''; position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform 220ms var(--ease-out);}
  .switch input:checked + i{background:var(--navy);}
  .switch input:checked + i::after{transform:translateX(18px);}
  .switch input:focus-visible + i{outline:3px solid var(--mint); outline-offset:2px;}
  .cal-opts label.txt{cursor:pointer; color:var(--ink); font-weight:500;}
  .cal-list{list-style:none; margin:0; padding:0;}
  .cal-row{display:grid; grid-template-columns:64px 1fr auto; gap:16px; align-items:center; padding:14px 24px; border-bottom:1px solid #EEF0F5; animation:rowIn 420ms var(--ease-out) both; animation-delay:calc(var(--i, 0) * 55ms);} /* taste-skill-ignore: data-ui fragment */
  .cal-row:hover{background:#F8F9FC;}
  .cal-date{text-align:center; line-height:1;}
  .cal-date b{display:block; font-family:'Plus Jakarta Sans', sans-serif; font-size:26px; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums;}
  .cal-date span{display:block; font-size:13px; color:var(--muted); margin-top:4px; text-transform:lowercase;}
  .cal-what b{display:block; font-size:16px; font-weight:600;}
  .cal-what span{display:block; font-size:14px; color:var(--muted); margin-top:2px;}
  .cal-left{font-size:13px; font-weight:600; padding:6px 10px; border-radius:4px; background:var(--tint); color:var(--navy); white-space:nowrap; font-variant-numeric:tabular-nums;}
  .cal-left.soon{background:#FFF1D6; color:#7A4B00;}
  .cal-left.today{background:var(--navy); color:#fff;}
  .cal-foot{padding:14px 24px 18px; font-size:13px; color:var(--muted); line-height:1.5;}
  @keyframes rowIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}

  /* ---------- abertura (statement) ---------- */
  .intro{padding-top:var(--sec); padding-bottom:calc(var(--sec) * .7);}
  .intro .grid{align-items:end; row-gap:48px;}
  .intro-text{grid-column:1 / span 7;}
  .intro-text p{font-family:'Plus Jakarta Sans', sans-serif; font-weight:700; font-size:var(--t-statement); line-height:1.25; letter-spacing:-.015em;}
  .intro-text p + p{margin-top:28px; font-family:'Inter', sans-serif; font-weight:400; font-size:var(--t-body); line-height:1.6; letter-spacing:0; max-width:52ch; color:var(--ink);}
  .intro-text h2{font-size:var(--t-h2); font-weight:800; letter-spacing:-.03em; line-height:1.02; margin-bottom:28px;}
  .route{grid-column:8 / span 5;}
  .route figure{margin:0;}
  .route svg{width:100%; height:auto;}
  .route figcaption{font-size:var(--t-small); color:var(--muted); margin-top:14px;}

  /* ---------- como funciona: quatro campos, o mesmo cartão ---------- */
  .steps{display:grid; grid-template-columns:repeat(4, 1fr);}
  .field{position:relative; min-height:max(560px, 78svh); padding:40px clamp(20px, 2.2vw, 36px) 36px; display:flex; flex-direction:column;}
  .field:nth-child(1){background:var(--tint);}
  .field:nth-child(2){background:var(--tint-2);}
  .field:nth-child(3){background:var(--navy-mid); color:#fff;}
  .field:nth-child(4){background:var(--navy); color:#fff;}
  .field:nth-child(4)::after{content:''; position:absolute; right:0; top:0; width:clamp(48px,5vw,80px); height:calc(clamp(48px,5vw,80px) * var(--leg)); background:var(--ground); clip-path:polygon(0 0, 100% 0, 100% 100%);}
  .field h2{font-size:var(--t-h2); font-weight:800; letter-spacing:-.03em; line-height:1.02; min-height:2.04em;}
  .field .slot{flex:1; display:flex; align-items:center; padding:28px 0;}
  .field p.clause{font-family:'Plus Jakarta Sans', sans-serif; font-weight:700; font-size:clamp(20px, 1.7vw, 26px); line-height:1.2; letter-spacing:-.01em;}
  .field p.detail{margin-top:10px; font-size:15px; line-height:1.5; max-width:30ch;}
  .field:nth-child(3) p.detail, .field:nth-child(4) p.detail{color:var(--on-navy-2);}

  .ticket{width:min(100%, 280px); background:#fff; color:var(--ink); border-radius:6px; padding:16px 16px 14px; transition:transform 150ms var(--ease-out);}
  .field:hover .ticket{transform:translateY(-6px);}
  .ticket .t-top{display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:13px; color:var(--muted);}
  .ticket .t-name{font-weight:600; font-size:15px; margin:8px 0 10px;}
  .badge{font-size:13px; font-weight:600; padding:3px 8px; border-radius:4px; background:var(--tint); color:var(--navy); white-space:nowrap;}
  .badge.ok{background:#DDF5F0; color:#00715F;}
  .badge.wait{background:#FFF1D6; color:#7A4B00;}
  .ticket ul{list-style:none; margin:0; padding:10px 0 0; border-top:1px solid #EEF0F5; display:grid; gap:7px;} /* taste-skill-ignore: data-ui fragment */
  .ticket li{display:flex; gap:8px; align-items:center; font-size:13px;}
  .ticket li .bx{width:15px; height:15px; border-radius:3px; border:1.5px solid #B8C1D1; flex:none; display:grid; place-items:center;}
  .ticket li.done{color:var(--muted);}
  .ticket li.done .bx{background:var(--mint); border-color:var(--mint);}
  .ticket li.done .bx::after{content:''; width:7px; height:4px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg) translate(1px,-1px);}
  .ticket .t-foot{margin-top:12px; padding-top:10px; border-top:1px solid #EEF0F5; display:flex; justify-content:space-between; font-size:13px; color:var(--muted);} /* taste-skill-ignore: data-ui fragment */
  .ticket .t-foot b{color:var(--ink); font-weight:600;}

  /* ---------- serviços: placa quadrada + abas ---------- */
  .show{padding-top:var(--sec); padding-bottom:var(--sec);}
  .show .grid{align-items:stretch;}
  .plate{grid-column:1 / span 6; position:relative; aspect-ratio:1/1; background:var(--navy); overflow:hidden;
    --cut:clamp(80px, 9vw, 150px);
    clip-path:polygon(0 0, calc(100% - var(--cut)) 0, 100% calc(var(--cut) * var(--leg)), 100% 100%, 0 100%);}
  .plate .pane{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:clamp(28px, 5vw, 72px);}
  .plate .pane[hidden]{display:none;}
  .no-js .plate .pane + .pane{display:none;}
  .plate .pane > div{width:100%; max-width:440px;}
  .show-copy{grid-column:8 / span 5; display:flex; flex-direction:column; justify-content:space-between; gap:40px; padding:8px 0;}
  .tabs{display:flex; flex-wrap:wrap; gap:6px 24px;}
  .tabs button{background:none; border:0; padding:8px 0; cursor:pointer; font-size:18px; font-weight:600; color:var(--muted); position:relative; transition:color var(--t-hover) ease;}
  .tabs button:hover{color:var(--ink);}
  .tabs .short{display:none;}
  .tabs button[aria-selected="true"]{color:var(--navy);}
  .tabs button[aria-selected="true"]::after{content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--navy);}
  .show-copy h2{font-size:var(--t-h2); font-weight:800; letter-spacing:-.03em; line-height:1.02;}
  .show-copy .panel-text h3{font-size:clamp(24px, 2.2vw, 32px); font-weight:800; letter-spacing:-.02em; line-height:1.1;}
  .show-copy .panel-text p{margin-top:20px; max-width:40ch;}
  .show-copy .panel-text ul{list-style:none; margin:24px 0 0; padding:0; display:grid; gap:10px;}
  .show-copy .panel-text li{display:flex; gap:12px; align-items:baseline;}
  .show-copy .panel-text li .tri{color:var(--navy); transform:translateY(-.05em);}
  .show-copy .panel-text[hidden]{display:none;}
  .cells{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
  .cells a{min-height:72px; display:flex; align-items:center; justify-content:center; gap:10px; text-decoration:none; font-family:'Plus Jakarta Sans', sans-serif; font-weight:700; font-size:16px; transition:background-color var(--t-hover) ease, transform 140ms var(--ease-out);}
  .cells a:active{transform:scale(.98);}
  .cells .c1{background:var(--navy); color:#fff; clip-path:polygon(0 0, calc(100% - 18px) 0, 100% 40px, 100% 100%, 0 100%);}
  .cells .c1:hover{background:var(--navy-deep);}
  .cells .c2{background:var(--tint-2); color:var(--navy);}
  .cells .c2:hover{background:#CBD5E5;}

  /* cartões dentro da placa */
  .card-ui{background:#fff; border-radius:6px; padding:20px; font-size:14px;}
  .card-ui .ch{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px;}
  .card-ui .ch b{font-size:16px;}
  .card-ui .muted{color:var(--muted);}
  .steps-ui{list-style:none; margin:0; padding:0; display:grid; gap:0;}
  .steps-ui li{display:grid; grid-template-columns:20px 1fr auto; gap:10px; align-items:center; padding:10px 0; border-top:1px solid #EEF0F5;} /* taste-skill-ignore: data-ui fragment */
  .steps-ui .dot{width:14px; height:14px; border-radius:50%; border:2px solid #B8C1D1;}
  .steps-ui li.done .dot{background:var(--mint); border-color:var(--mint);}
  .steps-ui li.now .dot{border-color:var(--navy); background:#fff; box-shadow:inset 0 0 0 3px #fff, inset 0 0 0 7px var(--navy);} /* taste-skill-ignore: data-ui fragment */
  .steps-ui li.now{font-weight:600;}
  table.rec{width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums;}
  table.rec th{font-size:13px; font-weight:500; color:var(--muted); text-align:left; padding:6px 0; border-bottom:1px solid #E6E9F0;} /* taste-skill-ignore: data-ui fragment */
  table.rec td{padding:9px 0; border-bottom:1px solid #EEF0F5; font-size:14px;} /* taste-skill-ignore: data-ui fragment */
  table.rec td.n, table.rec th.n{text-align:right;}
  table.rec tr.sel td{background:#F2F5FA;}
  table.rec tfoot td{font-weight:600; border-bottom:0; padding-top:12px;}
  .match{display:inline-block; font-size:12px; font-weight:600; padding:2px 6px; border-radius:3px; background:#DDF5F0; color:#00715F;}
  .match.no{background:#FFF1D6; color:#7A4B00;}
  .topics{list-style:none; margin:0; padding:0;}
  .topics li{display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-top:1px solid #EEF0F5;} /* taste-skill-ignore: data-ui fragment */
  .ui-caption{color:var(--on-navy-2); font-size:13px; margin-top:12px;}

  /* ---------- números ---------- */
  .stats{padding-bottom:var(--sec);}
  .stats .grid{grid-template-rows:auto; align-items:start; column-gap:8px;}
  .tile{--cut:clamp(40px, 4vw, 64px); position:relative; display:flex; flex-direction:column; justify-content:space-between; padding:28px;
    clip-path:polygon(0 0, calc(100% - var(--cut)) 0, 100% calc(var(--cut) * var(--leg)), 100% 100%, 0 100%);}
  .tile .num{font-family:'Plus Jakarta Sans', sans-serif; font-weight:800; font-size:clamp(56px, 5.6vw, 96px); line-height:.95; letter-spacing:-.04em; font-variant-numeric:tabular-nums;}
  .tile p{font-size:17px; line-height:1.4; max-width:22ch;}
  .tile-a{grid-row:1; grid-column:1 / span 6; min-height:max(440px, 64vh); background:var(--navy); color:#fff;}
  .tile-a p{color:var(--on-navy-2);}
  .tile-b{grid-row:1; grid-column:7 / span 3; margin-top:max(150px, 20vh); min-height:max(300px, 42vh); background:var(--ink); color:#fff;}
  .tile-b p{color:#C8CDD6;}
  .tile-c{grid-row:1; grid-column:10 / span 3; margin-top:max(230px, 30vh); min-height:max(240px, 32vh); background:var(--tint-2); color:var(--ink);}
  .stats-head{grid-column:7 / span 6; grid-row:1; align-self:start; padding-top:6px;}
  .stats-head h2{font-size:var(--t-h2); font-weight:800; letter-spacing:-.03em; line-height:1.02;}
  .stats-head p{margin-top:12px; color:var(--muted); font-size:15px;}

  /* ---------- faixa do A (separa as metades) ---------- */
  .aband{position:relative; height:clamp(120px, 16vw, 260px); background:var(--navy); overflow:hidden;}
  .aband svg{position:absolute; inset:0; width:100%; height:100%;}

  /* ---------- dúvidas ---------- */
  .faq{padding-top:var(--sec); padding-bottom:var(--sec);}
  .faq-head{grid-column:1 / span 4;}
  .faq-head .sticky{position:sticky; top:96px;}
  .faq-head h2{font-size:clamp(34px, 4vw, 60px); font-weight:800; letter-spacing:-.035em; line-height:1;}
  .faq-head p{margin-top:20px; max-width:28ch; font-size:16px;}
  .faq-list{grid-column:5 / span 8; display:grid; gap:8px;}
  .faq details{background:var(--tint); border-radius:4px; transition:background-color 220ms ease, color 220ms ease;}
  .faq summary{list-style:none; cursor:pointer; min-height:76px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 28px; font-family:'Plus Jakarta Sans', sans-serif; font-size:clamp(17px, 1.4vw, 20px); font-weight:700; letter-spacing:-.01em;}
  .faq summary::-webkit-details-marker{display:none;}
  .faq .pm{position:relative; width:16px; height:16px; flex:none;}
  .faq .pm::before, .faq .pm::after{content:''; position:absolute; left:0; top:6.5px; width:16px; height:3px; background:currentColor; transition:transform 260ms var(--ease-out);}
  .faq .pm::after{transform:rotate(90deg);}
  .faq details[open]{background:var(--navy); color:#fff;}
  .faq details[open] .pm::after{transform:rotate(0deg);}
  .faq details:not([open]) summary:hover{background:var(--tint-2); border-radius:4px;}
  .faq .ans{padding:0 28px 26px; max-width:60ch; font-size:17px; color:inherit;}
  .faq details[open] .ans{color:var(--on-navy-2);}
  .faq .ans a{color:#fff;}

  /* ---------- cupom / contato ---------- */
  .contact{padding-bottom:var(--sec);}
  .coupon{grid-column:1 / span 12; position:relative; display:grid; grid-template-columns:44% 56%; background:var(--navy); color:#fff; border-radius:14px;
    -webkit-mask:radial-gradient(circle 15px at 44% 0, #0000 98%, #000) top/100% 51% no-repeat, radial-gradient(circle 15px at 44% 100%, #0000 98%, #000) bottom/100% 51% no-repeat; /* taste-skill-ignore: coupon notches, a mask not a fill */
            mask:radial-gradient(circle 15px at 44% 0, #0000 98%, #000) top/100% 51% no-repeat, radial-gradient(circle 15px at 44% 100%, #0000 98%, #000) bottom/100% 51% no-repeat;} /* taste-skill-ignore: coupon notches, a mask not a fill */
  .coupon::before{content:''; position:absolute; left:44%; top:24px; bottom:24px; border-left:5px dotted var(--ground); transform:translateX(-2.5px);}
  .c-left{padding:clamp(32px, 4vw, 56px); display:flex; flex-direction:column; justify-content:space-between; gap:40px;}
  .c-left h2{font-size:clamp(32px, 3.4vw, 52px); font-weight:800; letter-spacing:-.03em; line-height:1.02;}
  .c-left p{color:var(--on-navy-2); max-width:36ch;}
  .c-lines{display:grid; gap:14px; font-size:16px;}
  .c-lines a{color:#fff; text-decoration:none; font-weight:600; overflow-wrap:anywhere;}
  .c-lines a:hover{text-decoration:underline; text-underline-offset:4px;}
  .c-lines span{display:block; color:var(--on-navy-2); font-size:14px; font-weight:400;}
  .c-right{padding:clamp(32px, 4vw, 56px) clamp(32px, 4vw, 56px) clamp(32px, 4vw, 56px) clamp(40px, 4.4vw, 64px);}
  form{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .f{position:relative;}
  .f.full{grid-column:1 / -1;}
  .f input, .f select, .f textarea{
    width:100%; min-height:54px; border:0; border-radius:4px; background:#24406D; color:#fff;
    padding:15px 16px; font-size:16px; outline:none; transition:background-color var(--t-hover) ease, box-shadow var(--t-hover) ease;
  }
  .f textarea{min-height:96px; resize:vertical;}
  .f select{appearance:none; -webkit-appearance:none; padding-right:40px; cursor:pointer;}
  .f select option{color:var(--ink); background:#fff;}
  .f.sel::after{content:''; position:absolute; right:18px; top:50%; width:9px; height:8px; margin-top:-4px; background:var(--on-navy-2); clip-path:polygon(0 0, 100% 0, 50% 100%); pointer-events:none;}
  .f input::placeholder, .f textarea::placeholder{color:#AFBBD0;}
  .f input:hover, .f select:hover, .f textarea:hover{background:#2A4979;}
  .f input:focus-visible, .f select:focus-visible, .f textarea:focus-visible{box-shadow:0 0 0 3px var(--mint);} /* taste-skill-ignore: focus ring */
  .f select:invalid{color:#AFBBD0;}
  .hp{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;} /* taste-skill-ignore: hidden honeypot field */
  .submit{grid-column:1 / -1; min-height:58px; border:0; cursor:pointer; background:#fff; color:var(--navy); font-family:'Plus Jakarta Sans', sans-serif; font-weight:800; font-size:17px;
    clip-path:polygon(0 0, calc(100% - 22px) 0, 100% 48px, 100% 100%, 0 100%); transition:background-color var(--t-hover) ease, transform 140ms var(--ease-out);}
  .submit:hover{background:var(--tint);}
  .submit:active{transform:scale(.99);}
  .submit:disabled{opacity:.7; cursor:progress;}
  .form-msg{--brand:#8FE6D6; grid-column:1 / -1; min-height:1.5em; font-size:15px; font-weight:600; color:#fff;}
  .form-msg[style*="200, 30, 58"], .form-msg[style*="C81E3A"]{color:#FFB4BF !important;}
  .form-msg:empty{display:none;}
  .privacy{grid-column:1 / -1; font-size:13px; color:var(--on-navy-2);}

  /* ---------- rodapé: a marca, construída grande ---------- */
  footer{background:var(--ink); color:#fff; padding:clamp(56px, 7vw, 96px) 0 32px;}
  .mark-big{width:100%; height:auto;}
  .foot-cols{margin-top:56px; row-gap:32px;}
  .foot-cols h3{font-size:15px; font-weight:700; margin-bottom:12px; color:#fff;}
  .foot-cols ul{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
  .foot-cols a{color:#C8CDD6; text-decoration:none; font-size:15px; overflow-wrap:anywhere;}
  .foot-cols a:hover{color:#fff;}
  .foot-cols p{color:#C8CDD6; font-size:15px; line-height:1.6;}
  .fc1{grid-column:1 / span 3;} .fc2{grid-column:4 / span 3;} .fc3{grid-column:7 / span 3;} .fc4{grid-column:10 / span 3;}
  .foot-last{margin-top:56px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; font-size:14px; color:#AEB5C1;}
  .foot-last .btn{min-height:44px; font-size:14px; padding:0 34px 0 18px; --c:12px;}

  /* botão flutuante de WhatsApp (flutua, então pode ter sombra) */
  .wa-float{position:fixed; right:18px; bottom:18px; z-index:50; width:58px; height:58px; border-radius:50%; background:var(--wa); display:grid; place-items:center; box-shadow:0 10px 24px -8px rgba(0,0,0,.4); transition:transform var(--t-hover) var(--ease-out);} /* taste-skill-ignore: floats over the page */
  .wa-float:hover{transform:scale(1.06);}
  .wa-float svg{width:30px; height:30px;}

  /* ---------- movimento ---------- */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity 700ms var(--ease-out), transform 700ms var(--ease-out); transition-delay:calc(var(--d, 0) * 80ms);}
  .reveal.is-visible{opacity:1; transform:none;}
  .no-js .reveal{opacity:1; transform:none;}
  .hero h1 span{animation:lineUp 900ms var(--ease-out) both;}
  .hero h1 span:nth-child(2){animation-delay:60ms;}
  .hero h1 span:nth-child(3){animation-delay:120ms;}
  .hero-sub{animation:lineUp 900ms var(--ease-out) 180ms both;}
  .hero-actions{animation:lineUp 900ms var(--ease-out) 260ms both;}
  @keyframes lineUp{from{opacity:0; transform:translateY(28px);} to{opacity:1; transform:none;}}
  /* assinatura: o palco abre como uma persiana, pela diagonal do A */
  .stage{animation:shutter 1100ms var(--ease-out) 200ms both;}
  .stage .ui-wrap{animation:settle 1300ms var(--ease-out) 300ms both;}
  @keyframes shutter{
    from{clip-path:polygon(100% 0, 100% 0, 100% 100%, 100% 100%, 100% calc(var(--cut) * var(--leg)));}
    to{clip-path:polygon(var(--cut) 0, 100% 0, 100% 100%, 0 100%, 0 calc(var(--cut) * var(--leg)));}
  }
  @keyframes settle{from{opacity:0; transform:translateY(40px) scale(1.04);} to{opacity:1; transform:none;}}
  .aband .drift{animation:drift 4.5s var(--ease-out) both;}
  @keyframes drift{from{transform:translateX(4%);} to{transform:translateX(0);}}

  /* ================= peças do site completo ================= */

  /* faixa de oferta (script.js fecha e lembra) */
  .offer{background:var(--navy-deep); color:#fff; font-size:15px; position:relative; z-index:30;}
  .offer .in{display:flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:10px 48px; text-align:center;}
  .offer a{color:#fff; text-underline-offset:4px; text-decoration-thickness:1.5px;}
  .offer a:hover{color:var(--on-navy-2);}
  .offer .x{position:absolute; right:calc(var(--m) - 10px); top:50%; transform:translateY(-50%); width:40px; height:40px; background:none; border:0; color:var(--on-navy-2); cursor:pointer; display:grid; place-items:center; transition:color var(--t-hover) ease;}
  .offer .x:hover{color:#fff;}
  .offer .x svg{width:16px; height:16px;}

  /* serviços com cinco abas */
  .tabs.many{gap:4px 22px;}
  .other{font-size:15px; color:var(--muted); margin-top:16px;}
  .other a{color:var(--navy); font-weight:600; text-underline-offset:3px;}

  /* diferenciais: um capítulo azul */
  .diff{background:var(--navy-deep); color:#fff; padding-top:var(--sec); padding-bottom:var(--sec); position:relative; overflow:hidden;}
  .diff::before{content:''; position:absolute; right:-6vw; top:0; width:min(46vw, 640px); aspect-ratio:1 / 1.1; background:#122544; clip-path:polygon(50% 0, 100% 100%, 0 100%);}
  .diff .grid{position:relative; row-gap:56px;}
  .diff h2{grid-column:1 / span 5; font-size:var(--t-h2); font-weight:800; letter-spacing:-.03em; line-height:1.02;}
  .diff .lead{grid-column:1 / span 5; grid-row:2; align-self:start; font-size:var(--t-body); color:var(--on-navy-2); max-width:36ch; margin-top:-32px;}
  .diff ul{grid-column:7 / span 6; grid-row:1 / span 3; list-style:none; margin:0; padding:0; display:grid; gap:4px;}
  .diff li{display:flex; gap:18px; align-items:baseline; padding:18px 0; font-family:'Plus Jakarta Sans', sans-serif; font-weight:700; font-size:clamp(19px, 1.6vw, 24px); line-height:1.25; letter-spacing:-.01em;}
  .diff li .tri{color:var(--mint); font-size:18px; transform:translateY(-.05em);}

  /* sobre: texto + relatório do mês */
  .about{padding-top:calc(var(--sec) * .75); padding-bottom:var(--sec);}
  .about .grid{align-items:center; row-gap:56px;}
  .about-text{grid-column:1 / span 6;}
  .about-text h2{font-size:var(--t-h2); font-weight:800; letter-spacing:-.03em; line-height:1.02;}
  .about-text p.st{margin-top:28px; font-family:'Plus Jakarta Sans', sans-serif; font-weight:700; font-size:var(--t-statement); line-height:1.25; letter-spacing:-.015em;}
  .about-text p.bd{margin-top:24px; max-width:54ch;}
  .about-text p.bd strong{font-weight:600;}
  .about-fig{grid-column:8 / span 5; margin:0; position:relative; background:var(--tint-2); padding:calc(var(--cutf) * var(--leg) - 40px) clamp(20px, 3vw, 40px) clamp(20px, 3vw, 40px);
    --cutf:clamp(64px, 6vw, 100px);
    clip-path:polygon(var(--cutf) 0, 100% 0, 100% 100%, 0 100%, 0 calc(var(--cutf) * var(--leg)));}
  .about-fig figcaption{font-size:var(--t-small); color:var(--muted); margin-top:14px;}
  .rep .row{display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-top:1px solid #EEF0F5; font-size:15px; font-variant-numeric:tabular-nums;} /* taste-skill-ignore: data-ui fragment */
  .rep .row.total{font-weight:700; font-size:17px; color:var(--navy);}
  .rep .bar{height:10px; border-radius:2px; background:var(--tint); margin:6px 0 14px; display:flex; overflow:hidden;}
  .rep .bar i{display:block; height:100%;}

  /* abrangência: o mapa do Brasil */
  .cover{padding-top:calc(var(--sec) * .4); padding-bottom:calc(var(--sec) * .6);}
  .cover .grid{align-items:center; row-gap:48px;}
  .cover-map{grid-column:1 / span 6;}
  .cover-map svg{width:100%; height:auto; max-height:640px;}
  .cover-map .state{fill:#D5DCE8; stroke:var(--ground); stroke-width:1.4; transition:fill var(--t-hover) ease;}
  .cover-map .state.hl{fill:var(--navy);}
  .cover-map .state.on{fill:var(--mint);}
  .cover-text{grid-column:8 / span 5;}
  .cover-text h2{font-size:var(--t-h2); font-weight:800; letter-spacing:-.03em; line-height:1.02;}
  .cover-text > p{margin-top:24px; max-width:40ch;}
  .ufs{list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:4px 24px;}
  .ufs li{display:flex; gap:12px; align-items:baseline; padding:7px 0; font-size:16px; cursor:default; transition:color var(--t-hover) ease;}
  .ufs li .tri{color:var(--navy); transition:color var(--t-hover) ease;}
  .ufs li:hover, .ufs li.on{color:var(--navy); font-weight:600;}
  .ufs li:hover .tri, .ufs li.on .tri{color:var(--mint);}
  .cover-text .note{margin-top:24px; font-size:15px; color:var(--muted);}

  /* como chegar */
  .visit{grid-column:1 / span 12; display:grid; grid-template-columns:4fr 8fr; gap:var(--gap); margin-top:56px; align-items:stretch;}
  .visit-text{display:flex; flex-direction:column; justify-content:space-between; gap:24px; padding:8px 0;}
  .visit-text h3{font-size:clamp(24px, 2.2vw, 32px); font-weight:800; letter-spacing:-.02em; line-height:1.1;}
  .visit-text p{margin-top:16px;}
  .visit-text a.go{font-weight:600; color:var(--navy); text-underline-offset:4px; text-decoration-thickness:2px;}
  .visit iframe{width:100%; height:100%; min-height:360px; border:0; display:block; background:var(--tint);}

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *, *::before, *::after{animation-duration:.01ms !important; animation-delay:0s !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; transition-delay:0s !important;}
    .reveal{opacity:1; transform:none;}
  }

  /* ---------- tablet ---------- */
  @media (max-width: 1080px){
    .top nav a:not(.nav-tel){display:none;}
    .hero{min-height:0;}
    .stage{position:relative; inset:auto; left:auto; right:auto; top:auto; bottom:auto; margin-top:56px; margin-left:calc(var(--m) + 8%); --cut:96px; padding:calc(96px * var(--leg) - 64px) var(--m) 0 clamp(40px, 8vw, 96px); overflow:hidden;}
    .stage .ui-wrap{position:relative; left:auto; top:auto; width:auto; max-width:640px;}
    .try{margin-top:clamp(40px, 7vh, 72px); max-width:30ch; font-size:var(--t-small); line-height:1.5; color:var(--muted); animation:lineUp 900ms var(--ease-out) 340ms both;}
  .try strong{color:var(--ink); font-weight:600;}
  .stage-note{display:none;}
    .steps{grid-template-columns:1fr 1fr;}
    .field{min-height:520px;}
    .field:nth-child(1) h2{min-height:0;}
    .plate{grid-column:1 / -1; max-width:640px;}
    .show-copy{grid-column:1 / -1; margin-top:40px;}
    .intro-text{grid-column:1 / -1;}
    .route{grid-column:1 / span 8;}
    .faq-head{grid-column:1 / -1; margin-bottom:32px;}
    .faq-head .sticky{position:static;}
    .faq-list{grid-column:1 / -1;}
    .coupon{grid-template-columns:minmax(0, 1fr);
      -webkit-mask:radial-gradient(circle 15px at 0 50%, #0000 98%, #000) left/51% 100% no-repeat, radial-gradient(circle 15px at 100% 50%, #0000 98%, #000) right/51% 100% no-repeat; /* taste-skill-ignore: coupon notches, a mask not a fill */
              mask:radial-gradient(circle 15px at 0 50%, #0000 98%, #000) left/51% 100% no-repeat, radial-gradient(circle 15px at 100% 50%, #0000 98%, #000) right/51% 100% no-repeat;} /* taste-skill-ignore: coupon notches, a mask not a fill */
    .coupon::before{display:none;}
    .c-left{padding-bottom:48px; border-bottom:5px dotted var(--ground);}
    .c-right{padding-left:clamp(24px, 4vw, 56px);}
    .fc1, .fc2{grid-column:span 6;} .fc3, .fc4{grid-column:span 6;}
  }

  /* ---------- celular: composição própria ---------- */
  @media (max-width: 680px){
    :root{--t-display:9vw; --m:20px;}
    .top .bar{height:72px;}
    .brand{font-size:16px;}
    .brand img{width:38px; height:38px;}
    .top nav .nav-tel{display:none;}
    .hero{min-height:0; padding-bottom:0;}
    .hero-copy{padding-top:104px;}
    .hero h1{letter-spacing:-.03em;}
    .try{margin-top:28px;}
    .hero-sub{margin-top:24px; font-size:17px;}
    .hero-actions .btn{flex:1 1 100%;}
    .stage{margin-top:48px; margin-left:0; --cut:72px; padding:calc(72px * var(--leg) - 40px) 16px 0 16px;}
    .stage .ui-wrap{position:relative; left:auto; top:auto; width:auto;}
    .cal-head{padding:18px 16px 14px;}
    .seg span{padding:8px 9px; font-size:13px;}
    .cal-opts, .cal-foot{padding-left:16px; padding-right:16px;}
    .cal-row{grid-template-columns:48px 1fr; padding:12px 16px; gap:12px;}
    .cal-row .cal-left{grid-column:2; justify-self:start;}
    .intro-text p{font-size:22px;}
    .route{grid-column:1 / -1;}
    .steps{grid-template-columns:1fr;}
    .field{min-height:0; padding:32px 20px 36px;}
    .field .slot{padding:24px 0;}
    .field:nth-child(4)::after{display:none;}
    .plate{max-width:none; aspect-ratio:auto; --cut:56px;}
    .plate .pane{position:relative; inset:auto; padding:calc(56px * var(--leg) - 24px) 16px 24px;}
    .tabs{gap:6px 18px;}
    .tabs .long{display:none;}
    .tabs .short{display:inline;}
    .tabs button{font-size:17px;}
    .cells{grid-template-columns:1fr;}
    .cells a{min-height:60px;}
    .stats .grid{column-gap:6px;}
    .stats-head{grid-column:1 / -1; grid-row:1; margin-bottom:24px;}
    .stats-head h2{font-size:28px;}
    .tile{padding:20px;}
    .tile-a{grid-row:2; grid-column:1 / -1; min-height:56vw;}
    .tile-a .num{font-size:15vw;}
    .tile-b{grid-row:3; grid-column:1 / span 6; margin-top:56px; min-height:220px;}
    .tile-c{grid-row:3; grid-column:7 / span 6; margin-top:88px; min-height:220px;}
    .tile-b .num, .tile-c .num{font-size:11vw;}
    .tile p{font-size:15px;}
    .faq-head h2{font-size:9.4vw;}
    .faq summary{padding:16px 20px; min-height:64px; font-size:18px;}
    .faq .ans{padding:0 20px 22px; font-size:16px;}
    form{grid-template-columns:1fr;}
    .c-left{gap:28px;}
    .fc1, .fc2, .fc3, .fc4{grid-column:span 12;}
    .wa-float{width:54px; height:54px; right:14px; bottom:14px;}
  }

  /* responsivo das peças novas */
  @media (max-width: 1080px){
    .diff h2, .diff .lead, .diff ul{grid-column:1 / -1; grid-row:auto;}
    .diff .lead{margin-top:-32px;}
    .about-text, .about-fig{grid-column:1 / -1;}
    .about-fig{max-width:640px;}
    .ui-caption{display:none;}
    .cover-map{grid-column:1 / span 10;}
    .cover-text{grid-column:1 / -1;}
    .visit{grid-template-columns:1fr;}
  }
  @media (max-width: 680px){
    .offer .in{justify-content:flex-start; text-align:left; padding:10px 52px 10px var(--m); font-size:14px;}
    .diff::before{width:80vw; right:-30vw;}
    .diff li{font-size:18px; padding:14px 0;}
    .about-fig{--cutf:56px;}
    .cover-map{grid-column:1 / -1;}
    .ufs{grid-template-columns:1fr 1fr; gap:0 16px;}
    .ufs li{font-size:15px;}
    .visit iframe{min-height:280px;}
    .tabs.many button{font-size:16px;}
  }

  /* rodapé: logo real + nome */
  .foot-brand{display:flex; align-items:center; gap:clamp(20px, 3vw, 44px);}
  .foot-brand img{width:clamp(80px, 9vw, 128px); height:auto; flex:none;}
  .foot-name{font-family:'Plus Jakarta Sans', sans-serif; font-weight:800; font-size:clamp(40px, 7vw, 112px); line-height:.95; letter-spacing:-.04em; color:#fff;}


  /* rodapé no azul do logo, logo em destaque */
  footer{background:#1A2A4C;}
  .foot-brand{gap:clamp(8px, 2vw, 32px); flex-wrap:wrap;}
  .foot-brand img{width:clamp(180px, 24vw, 340px); margin-left:clamp(-28px, -2vw, -12px);}
  .foot-cols a, .foot-cols p{color:#C9D3E4;}
  .foot-last{color:#B4C0D6;}
  @media (max-width: 680px){
    .foot-brand img{width:170px;}
    .foot-name{font-size:40px;}
  }


  /* topo: logo numa aba azul integrada */
  .top .bar{height:104px; align-items:flex-start;}
  .top nav{height:88px;}
  .brand{
    background:#1A2A4C; color:#fff; height:104px;
    margin-left:calc(-1 * var(--m)); padding:0 56px 0 calc(var(--m) - 14px);
    gap:6px; font-size:19px; line-height:1.05; letter-spacing:-.01em;
    clip-path:polygon(0 0, 100% 0, calc(100% - 40px) 100%, 0 100%);
  }
  .brand img{width:96px; height:96px; margin-top:4px;}
  .brand span{display:block;}
  .brand:hover{background:#14223F;}
  @media (max-width: 680px){
    .top .bar{height:80px;}
    .top nav{height:72px;}
    .brand{height:80px; padding:0 40px 0 6px; font-size:16px; clip-path:polygon(0 0, 100% 0, calc(100% - 30px) 100%, 0 100%);}
    .brand img{width:72px; height:72px;}
    .hero-copy{padding-top:120px;}
  }
