:root{
    --paper:#FBF6EC;
    --paper-2:#F4E9D4;
    --card:#FFFDF7;
    --ink:#2C2114;
    --ink-soft:#6E5C44;
    --line:#E7D8BC;
    --honey:#E3A63A;
    --honey-2:#C1841C;
    --clay:#CB6242;
    --clay-2:#AC4C2E;
    --sage:#7C9A6E;
    --sage-2:#5E7B52;
    --shadow: 0 16px 44px -26px rgba(74,52,20,.32);
    --shadow-sm: 0 8px 22px -16px rgba(74,52,20,.24);
    --radius: 26px;
    --maxw: 1180px;
    --ease: cubic-bezier(.22,.61,.36,1);
  }

  *{box-sizing:border-box}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

  body{
    margin:0;
    font-family:"Nunito Sans", system-ui, sans-serif;
    color:var(--ink);
    background:var(--paper);
    font-size:clamp(1rem, .96rem + .3vw, 1.12rem);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  /* warm grain overlay */
  body::before{
    content:"";
    position:fixed; inset:0; z-index:0; pointer-events:none;
    opacity:.5; mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
  }

  h1,h2,h3,h4{font-family:"Fraunces", Georgia, serif; font-weight:560; line-height:1.08; letter-spacing:-.01em; margin:0;}
  p{margin:0}
  a{color:inherit; text-decoration:none}
  img{max-width:100%; display:block}
  ::selection{background:var(--honey); color:#fff}

  .wrap{width:min(100% - 2.6rem, var(--maxw)); margin-inline:auto; position:relative; z-index:1}

  /* inline-block (not flex) so long eyebrow text wraps naturally on mobile */
  .eyebrow{
    display:inline-block;
    font-family:"Nunito Sans"; font-weight:700;
    font-size:.78rem; letter-spacing:.16em; text-transform:uppercase;
    color:var(--clay-2); line-height:1.5;
  }
  .eyebrow::before{content:""; display:inline-block; width:26px; height:2px; background:var(--honey); border-radius:2px; vertical-align:middle; margin-right:.55rem; margin-bottom:.16em}

  .lead{color:var(--ink-soft); font-size:clamp(1.05rem,1rem + .4vw,1.28rem); line-height:1.6}

  /* ---------- buttons ---------- */
  .btn{
    --bg:var(--clay); --fg:#fff8ee;
    display:inline-flex; align-items:center; gap:.6rem;
    padding:.92rem 1.5rem; border-radius:100px;
    font-weight:700; font-size:1rem; cursor:pointer;
    background:var(--bg); color:var(--fg);
    border:1.5px solid transparent;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s ease;
    box-shadow:var(--shadow-sm);
    will-change:transform;
  }
  .btn:hover{transform:translateY(-3px); box-shadow:0 22px 40px -18px rgba(171,76,46,.6); background:var(--clay-2)}
  .btn svg{width:20px;height:20px}
  .btn.ghost{--bg:transparent; --fg:var(--ink); border-color:var(--line); box-shadow:none}
  .btn.ghost:hover{background:#fff; border-color:var(--honey); box-shadow:var(--shadow-sm)}
  .btn.honey{--bg:var(--honey); --fg:#3a2a10}
  .btn.honey:hover{background:var(--honey-2)}
  :focus-visible{outline:3px solid var(--sage); outline-offset:3px; border-radius:8px}

  /* ---------- nav ---------- */
  .nav{
    position:sticky; top:0; z-index:60;
    transition:background .4s ease, box-shadow .4s ease, backdrop-filter .4s ease;
  }
  .nav.scrolled{ background:rgba(251,246,236,.82); backdrop-filter:blur(12px); box-shadow:0 1px 0 var(--line); }
  .nav-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.85rem 0}
  .brand{display:flex; align-items:center; gap:.7rem; font-family:"Fraunces"; font-weight:600; font-size:1.18rem}
  .brand .mono{
    width:42px;height:42px;border-radius:13px; flex:none;
    display:grid;place-items:center;color:#fff8ea;font-weight:700;font-size:1.3rem;
    background:linear-gradient(150deg,var(--honey),var(--clay)); box-shadow:var(--shadow-sm);
  }
  .brand small{display:block; font-family:"Nunito Sans"; font-weight:600; font-size:.72rem; letter-spacing:.04em; color:var(--ink-soft); margin-top:-3px}
  .nav-links{display:flex; align-items:center; gap:.35rem}
  .nav-links a{padding:.5rem .85rem; border-radius:100px; font-weight:600; font-size:.96rem; color:var(--ink-soft); transition:color .25s, background .25s}
  .nav-links a:hover{color:var(--ink); background:#fff}
  .tem-sub{position:relative}
  .tem-sub .pai{display:inline-flex; align-items:center; gap:.3rem}
  .tem-sub .ch{font-size:.7rem; opacity:.6; transition:transform .25s}
  .tem-sub:hover .ch,.tem-sub:focus-within .ch{transform:rotate(180deg)}
  .sub{
    position:absolute; left:0; top:calc(100% + .5rem); min-width:270px; z-index:60;
    background:var(--card); border:1px solid var(--line); border-radius:20px;
    padding:.5rem; box-shadow:var(--shadow); display:grid; gap:.1rem;
    opacity:0; visibility:hidden; transform:translateY(-6px);
    transition:opacity .22s, transform .22s, visibility .22s;
  }
  .tem-sub:hover .sub,.tem-sub:focus-within .sub{opacity:1; visibility:visible; transform:none}
  .sub a{display:block; padding:.6rem .8rem; border-radius:14px; transition:background .18s}
  .sub a:hover{background:var(--paper-2)}
  .sub b{display:block; font-size:.93rem; font-weight:800; color:var(--ink)}
  .sub small{display:block; font-size:.8rem; color:var(--ink-soft); font-weight:600; margin-top:.05rem}
  @media (max-width:960px){
    .sub{position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
         border:0; padding:0 0 0 .6rem; min-width:0; background:none}
    .sub a{padding:.45rem .6rem}
    .sub small{display:none}
    .tem-sub .ch{display:none}
  }

  .nav-cta{display:flex; align-items:center; gap:.6rem}
  .nav-toggle{display:none; background:none; border:1px solid var(--line); border-radius:12px; width:46px;height:44px; cursor:pointer; align-items:center; justify-content:center}
  .nav-toggle span{display:block; width:20px; height:2px; background:var(--ink); position:relative}
  .nav-toggle span::before,.nav-toggle span::after{content:""; position:absolute; left:0; width:20px; height:2px; background:var(--ink)}
  .nav-toggle span::before{top:-6px} .nav-toggle span::after{top:6px}

  /* ---------- hero ---------- */
  .hero{position:relative; padding:clamp(2.4rem,6vw,5.5rem) 0 clamp(3.4rem,7vw,6rem)}
  .hero-grid{display:grid; grid-template-columns:1.32fr .68fr; gap:clamp(2rem,5vw,4.5rem); align-items:center}
  /* Sized so each hardcoded line ("Uma educação que" = 7.27em, the widest)
     fits on one line at every width — incl. the tight 2-col band near 960px. */
  .hero-title{font-size:clamp(2rem, 1.14rem + 4.56vw, 4.25rem); margin:1.1rem 0 1.4rem}
  .hero-title .line-mask{display:block; overflow:hidden; padding-block:.04em}
  .hero-title .line{display:block}
  .hero-title em{font-style:italic; color:var(--clay); font-weight:500}
  .u-word{position:relative; white-space:nowrap; color:var(--honey-2)}
  .u-word svg{position:absolute; left:-2%; bottom:-.24em; width:104%; height:.4em; overflow:visible}
  .u-word path{fill:none; stroke:var(--honey); stroke-width:8; stroke-linecap:round}
  .hero .lead{max-width:34ch}
  .hero-actions{display:flex; flex-wrap:wrap; gap:.85rem; margin:1.8rem 0 1.4rem}
  .trust{display:flex; align-items:center; gap:.6rem; color:var(--ink-soft); font-weight:600; font-size:.95rem}
  .trust svg{width:19px;height:19px;color:var(--sage-2);flex:none}

  .hero-figure{position:relative; justify-self:center; width:min(100%,430px)}
  .photo-frame{
    position:relative; z-index:2;
    border-radius:50% 50% 46% 46%/ 44% 44% 52% 52%;
    overflow:hidden; aspect-ratio:83/100;
    border:8px solid #fff; box-shadow:var(--shadow);
    background:var(--paper-2);
  }
  .photo-frame img{width:100%;height:100%;object-fit:cover; object-position:center 18%}
  .blob{position:absolute; z-index:1; border-radius:50%; filter:blur(2px)}
  .blob.b1{width:78%; aspect-ratio:1; right:-14%; top:-9%; background:radial-gradient(circle at 35% 35%,#F6D48A,#E3A63A); opacity:.55; filter:blur(6px)}
  .blob.b2{width:52%; aspect-ratio:1; left:-16%; bottom:2%; background:radial-gradient(circle at 40% 40%,#E7A98F,#CB6242); opacity:.42; filter:blur(8px)}
  .chip-float{
    position:absolute; z-index:3; background:var(--card);
    border:1px solid var(--line); border-radius:100px;
    padding:.55rem .95rem; font-weight:700; font-size:.86rem;
    box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:.5rem; white-space:nowrap;
  }
  .chip-float .dot{width:9px;height:9px;border-radius:50%}
  .cf1{top:8%; left:-8%} .cf1 .dot{background:var(--sage)}
  .cf2{top:44%; right:-11%} .cf2 .dot{background:var(--clay)}
  .cf3{bottom:6%; left:-4%} .cf3 .dot{background:var(--honey)}

  .scrollcue{display:flex; align-items:center; gap:.6rem; margin-top:2.6rem; color:var(--ink-soft); font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700}
  .scrollcue .mouse{width:22px;height:34px;border:2px solid var(--ink-soft);border-radius:12px;position:relative;flex:none}
  .scrollcue .mouse::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:6px;border-radius:3px;background:var(--ink-soft);transform:translateX(-50%);animation:wheel 1.6s var(--ease) infinite}
  @keyframes wheel{0%{opacity:0;transform:translate(-50%,-3px)}40%{opacity:1}80%,100%{opacity:0;transform:translate(-50%,7px)}}
  @media (prefers-reduced-motion: reduce){.scrollcue .mouse::after{animation:none}}

  /* ---------- stats band ---------- */
  .stats{background:linear-gradient(180deg,var(--paper),var(--paper-2)); border-block:1px solid var(--line); margin-top:1rem}
  .stats-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; padding:clamp(2rem,4vw,3.2rem) 0}
  .stat{text-align:center; padding:.5rem}
  .stat .num{font-family:"Fraunces"; font-weight:600; font-size:clamp(2.6rem,2rem + 3vw,4rem); color:var(--clay); line-height:1; display:block}
  .stat .lbl{color:var(--ink-soft); font-weight:600; margin-top:.5rem}
  .stat + .stat{border-left:1px solid var(--line)}

  /* ---------- section scaffolding ---------- */
  section{position:relative}
  .section{padding:clamp(4.2rem,9vw,8rem) 0}
  .section-head{max-width:620px; margin-bottom:clamp(2.6rem,5vw,4rem)}
  .section-head h2{font-size:clamp(2rem,1.6rem + 2.4vw,3.1rem); margin:.9rem 0 .8rem}

  /* ---------- sobre ---------- */
  .sobre-grid{display:grid; grid-template-columns:1.25fr .85fr; gap:clamp(1.8rem,4vw,3.4rem); align-items:start}
  .sobre-body p + p{margin-top:1.1rem}
  .sig{font-family:"Fraunces"; font-style:italic; font-size:1.5rem; color:var(--clay); margin-top:1.4rem}
  .chips{display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem}
  .tag{display:inline-flex; align-items:center; gap:.45rem; padding:.5rem .9rem; border-radius:100px; background:#fff; border:1px solid var(--line); font-weight:700; font-size:.88rem; color:var(--ink)}
  .tag svg{width:16px;height:16px;color:var(--sage-2)}

  .facts{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.4rem,3vw,2rem); box-shadow:var(--shadow-sm)}
  .facts h3{font-family:"Nunito Sans"; font-weight:800; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--clay-2); margin:1.5rem 0 .6rem}
  .facts h3:first-child{margin-top:0}
  .facts .fact{display:flex; gap:.7rem; padding:.35rem 0}
  .facts .fact .k{font-weight:700}
  .facts .fact small{display:block; color:var(--ink-soft); font-weight:600}
  .facts .mk{color:var(--honey-2); flex:none; margin-top:.15rem}
  .facts ul{margin:.2rem 0 0; padding:0; list-style:none; color:var(--ink-soft); font-weight:600}
  .facts ul li{position:relative; padding-left:1.1rem; margin:.28rem 0}
  .facts ul li::before{content:""; position:absolute; left:0; top:.62em; width:6px;height:6px;border-radius:50%; background:var(--sage)}

  /* ---------- serviços ---------- */
  .servicos{background:var(--paper-2); border-block:1px solid var(--line)}
  .servicos .cards{grid-template-columns:1fr 1fr}
  @media (max-width:760px){ .servicos .cards{grid-template-columns:1fr} }
  .midia .cards{grid-template-columns:repeat(3,1fr)}
  @media (max-width:980px){ .midia .cards{grid-template-columns:1fr 1fr} }
  @media (max-width:760px){ .midia .cards{grid-template-columns:1fr} }
  .card.s4{--accent:#12304B; --accent-ink:#12304B}
  .card.s4 .ico{background:color-mix(in srgb,#12304B 12%,#fff); color:#12304B}
  .cards{display:grid; grid-template-columns:repeat(3,1fr); gap:2rem}
  .card{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
    padding:clamp(1.6rem,3vw,2.1rem); display:flex; flex-direction:column; gap:.9rem;
    transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s;
    position:relative; overflow:hidden;
  }
  .card::after{content:""; position:absolute; inset:0 0 auto 0; height:5px; background:var(--accent, var(--honey)); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease)}
  .card:hover{transform:translateY(-8px); box-shadow:var(--shadow); border-color:transparent}
  .card:hover::after{transform:scaleX(1)}
  .card .ico{
    width:60px;height:60px;border-radius:18px; display:grid;place-items:center; flex:none;
    background:color-mix(in srgb, var(--accent) 16%, #fff); color:var(--accent-ink,var(--honey-2));
  }
  .card .ico svg{width:30px;height:30px}
  .card h3{font-size:1.42rem}
  .card p{color:var(--ink-soft); line-height:1.65}
  .card .who{margin-top:auto; padding-top:.6rem; font-size:.86rem; font-weight:700; color:var(--ink); display:flex; align-items:center; gap:.45rem}
  .card .who svg{width:16px;height:16px;color:var(--accent-ink,var(--honey-2))}
  .card .more{font-weight:800; font-size:.92rem; color:var(--accent-ink,var(--honey-2)); display:inline-flex; align-items:center; gap:.4rem; transition:gap .3s}
  .card:hover .more{gap:.7rem}
  .card.s1{--accent:var(--sage); --accent-ink:var(--sage-2)}
  .card.s2{--accent:var(--honey); --accent-ink:var(--honey-2)}
  .card.s3{--accent:var(--clay); --accent-ink:var(--clay-2)}

  /* ---------- método ---------- */
  .metodo-grid{display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2rem,4vw,3.6rem); align-items:center}
  .quote{font-family:"Fraunces"; font-weight:500; font-size:clamp(1.5rem,1.2rem + 1.6vw,2.35rem); line-height:1.25; color:var(--ink)}
  .quote .mk{color:var(--honey); font-size:1.4em; line-height:0; vertical-align:-.15em; margin-right:.1em}
  .principles{display:grid; gap:1rem}
  .principle{display:flex; gap:1rem; padding:1.1rem 1.2rem; background:var(--card); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-sm)}
  .principle .pn{width:44px;height:44px;flex:none;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--sage) 18%,#fff);color:var(--sage-2)}
  .principle .pn svg{width:23px;height:23px}
  .principle h4{font-family:"Nunito Sans"; font-weight:800; font-size:1.05rem; margin-bottom:.15rem}
  .principle p{color:var(--ink-soft); font-size:.96rem; line-height:1.5}

  /* ---------- mídia / produção ---------- */
  .midia{background:var(--paper-2); border-block:1px solid var(--line)}
  .midia .card p + p{margin-top:.55rem}
  .midia .sub{margin-top:-.55rem; font-size:.9rem; font-weight:700; color:var(--accent-ink)}
  .midia .roles{display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.4rem; opacity:.78}
  .midia .roles span{
    font-size:.78rem; font-weight:700; letter-spacing:.01em; padding:.3rem .65rem;
    border-radius:100px; background:color-mix(in srgb,var(--accent) 16%,#fff);
    color:var(--accent-ink); border:1px solid color-mix(in srgb,var(--accent) 30%,#fff);
  }
  .midia .eps{display:flex; flex-direction:column; gap:.45rem; margin-top:auto; padding-top:.7rem}
  .midia .eps a{
    display:flex; align-items:center; gap:.5rem; padding:.55rem .8rem; border-radius:12px;
    font-size:.87rem; font-weight:700; color:var(--ink); background:#fff;
    border:1px solid var(--line); transition:transform .3s var(--ease), border-color .3s, background .3s;
  }
  .midia .eps a svg{width:17px;height:17px;flex:none;color:#1DB954}
  .midia .eps a.ig svg{color:var(--accent-ink)}
  .midia .eps a:hover{background:color-mix(in srgb,var(--accent) 10%,#fff); border-color:color-mix(in srgb,var(--accent) 45%,#fff); transform:translateX(3px)}
  .midia .eps .show{font-size:.8rem; font-weight:700; color:var(--ink-soft); padding-left:.15rem}
  .midia .eps .show a{display:inline; padding:0; border:0; background:none; color:var(--accent-ink); text-decoration:underline; text-underline-offset:3px}
  .midia .meta{
    display:flex; flex-wrap:wrap; gap:.4rem 1rem; margin-top:.1rem;
    font-size:.85rem; font-weight:700; color:var(--ink-soft);
  }
  .midia .meta span{display:inline-flex; align-items:center; gap:.35rem}
  .midia .meta svg{width:15px;height:15px;color:var(--accent-ink)}

  .epslist{margin-top:clamp(2.2rem,4vw,3.2rem)}
  .epslist > h3{font-family:"Fraunces"; font-weight:600; font-size:1.5rem; margin-bottom:.35rem}
  .epslist > p{color:var(--ink-soft); font-size:.95rem; margin-bottom:1.4rem; max-width:60ch}
  .epgrid{display:grid; grid-template-columns:1fr 1fr; gap:1.3rem}
  .epgroup{
    background:var(--card); border:1px solid var(--line); border-radius:20px;
    padding:1.35rem 1.4rem; box-shadow:var(--shadow-sm);
    display:flex; flex-direction:column; gap:.45rem;
  }
  .epgroup h4{font-family:"Nunito Sans"; font-weight:800; font-size:1.02rem}
  .epgroup .src{color:var(--ink-soft); font-size:.85rem; margin-bottom:.5rem}
  .epgroup a{
    display:flex; align-items:center; gap:.5rem; padding:.55rem .8rem; border-radius:12px;
    font-size:.87rem; font-weight:700; color:var(--ink); background:var(--paper);
    border:1px solid var(--line); transition:transform .3s var(--ease), border-color .3s, background .3s;
  }
  .epgroup a svg{width:17px;height:17px;flex:none;color:#1DB954}
  .epgroup a:hover{background:#fff; border-color:var(--honey); transform:translateX(3px)}


  /* ---------- mapa falado ---------- */
  .mf{background:linear-gradient(170deg,#12304B,#0B1F33); color:#EAF4FB; border-block:1px solid #1D405E; position:relative; overflow:hidden}
  .mf::before{content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
    background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.07) 1px, transparent 0); background-size:24px 24px}
  .mf .wrap{position:relative}
  .mf .eyebrow{color:#FFC233}
  .mf h2{color:#FFFFFF}
  .mf .lead{color:#B8D2E6}
  .mf-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(1.4rem,3vw,2.6rem); align-items:center}
  @media (max-width:860px){ .mf-grid{grid-template-columns:1fr} }
  .mf-texto p{color:#B8D2E6; margin-bottom:.9rem; max-width:60ch}
  .mf-texto p strong{color:#FFFFFF}
  .mf-selos{display:flex; flex-wrap:wrap; gap:.5rem; margin:1.3rem 0 1.6rem}
  .mf-selos span{font-size:.84rem; font-weight:800; padding:.42rem .9rem; border-radius:100px;
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:#DCEBF6}
  .mf-cta{display:inline-flex; align-items:center; gap:.6rem; font-weight:800; font-size:1rem;
    padding:.85rem 1.5rem; border-radius:100px; background:#F2682A; color:#fff;
    box-shadow:0 12px 30px -12px rgba(242,104,42,.8); transition:transform .2s, filter .2s}
  .mf-cta:hover{filter:brightness(1.08); transform:translateY(-2px)}
  .mf-cta svg{width:19px;height:19px}
  .mf-nota{display:block; margin-top:.7rem; font-size:.82rem; color:#7FA3BF; font-weight:700}
  .mf-mapa{background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:26px; padding:1.3rem 1.4rem}
  .mf-mapa h3{font-size:1.05rem; color:#fff; margin-bottom:.1rem}
  .mf-mapa > p{font-size:.86rem; color:#8FB2CB; font-weight:700; margin-bottom:1rem}
  .mf-lista{display:grid; gap:.55rem}
  .mf-item{display:flex; align-items:center; gap:.75rem; font-size:.9rem; color:#CFE3F1; font-weight:700}
  .mf-item b{flex:none; width:58px; text-align:right; font-family:"Fraunces",Georgia,serif; font-weight:600; color:#FFC233; font-size:.92rem}
  .mf-item i{flex:none; width:10px;height:10px;border-radius:50%; background:var(--pt)}
  .mf-item span{min-width:0}

  /* ---------- trajetória ---------- */
  .traj{border-block:1px solid var(--line)}
  .timeline{display:grid; gap:1.4rem; position:relative}
  .tl-item{
    display:grid; grid-template-columns:7.5rem 1fr; gap:1.2rem;
    background:var(--card); border:1px solid var(--line); border-radius:20px;
    padding:1.4rem 1.6rem; box-shadow:var(--shadow-sm);
  }
  .tl-item .when{font-family:"Fraunces"; font-weight:600; color:var(--clay); font-size:1rem; line-height:1.35; padding-top:.15rem}
  .tl-item h4{font-family:"Nunito Sans"; font-weight:800; font-size:1.12rem}
  .tl-item .org{color:var(--honey-2); font-weight:700; font-size:.92rem; margin:.1rem 0 .35rem}
  .tl-item p{color:var(--ink-soft); font-size:.95rem; line-height:1.6}
  .tl-item p a{color:var(--honey-2); font-weight:700; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1.5px; text-decoration-color:color-mix(in srgb,var(--honey) 55%,transparent)}
  .tl-item p a:hover{text-decoration-color:var(--honey-2)}

  .tl-resto[hidden]{display:none}
  .tl-resto{display:grid; gap:1.4rem}
  .tl-mais{
    font:inherit; font-family:"Nunito Sans",sans-serif; font-weight:800; font-size:.95rem;
    cursor:pointer; display:flex; align-items:center; justify-content:center; gap:.6rem;
    width:100%; padding:1rem; margin-top:.2rem; color:var(--ink-soft);
    background:none; border:1.5px dashed var(--line); border-radius:20px;
    transition:border-color .25s, color .25s, background .25s;
  }
  .tl-mais:hover{border-color:var(--honey); color:var(--ink); background:#fff}
  .tl-mais:focus-visible{outline:2px solid var(--honey); outline-offset:3px}
  .tl-mais .n{font-family:"Fraunces"; font-weight:600; color:var(--honey-2)}
  .tl-mais[aria-expanded="true"] .n{display:none}


  .como{margin-top:clamp(3rem,6vw,4.5rem); padding-top:clamp(2.4rem,5vw,3.4rem); border-top:1px solid var(--line)}
  .como-cab{max-width:620px; margin-bottom:clamp(1.8rem,4vw,2.6rem)}
  .como-cab .quote{margin-top:.9rem}

  .numeros{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:1.8rem 0 1.4rem;
    padding:1.3rem 0; border-block:1px solid var(--line)}
  .numeros .stat{text-align:left}
  .numeros .num{display:block; font-family:"Fraunces"; font-weight:600; font-size:clamp(1.5rem,1.2rem+1vw,2rem); color:var(--honey-2); line-height:1}
  .numeros .lbl{display:block; font-size:.82rem; color:var(--ink-soft); font-weight:700; margin-top:.25rem; line-height:1.3}
  @media (max-width:560px){ .numeros{grid-template-columns:1fr; gap:.9rem} }

  .chamada{display:flex; flex-wrap:wrap; align-items:center; gap:1rem;
    margin-top:clamp(2.2rem,5vw,3.2rem); padding-top:clamp(1.6rem,4vw,2.2rem);
    border-top:1px dashed var(--line)}
  .chamada p{margin:0; font-weight:800; color:var(--ink); font-size:1.02rem}

  /* ---------- perguntas ---------- */
  .faq{background:var(--paper-2); border-block:1px solid var(--line)}
  .faq-lista{display:grid; gap:.7rem; max-width:820px}
  .faq-item{background:var(--card); border:1px solid var(--line); border-radius:20px; overflow:hidden;
    transition:border-color .22s, box-shadow .22s}
  .faq-item[open]{border-color:var(--honey); box-shadow:var(--shadow-sm)}
  .faq-item summary{
    cursor:pointer; list-style:none; padding:1.1rem 1.3rem; font-weight:800; font-size:1rem;
    display:flex; align-items:center; justify-content:space-between; gap:1rem; color:var(--ink);
  }
  .faq-item summary::-webkit-details-marker{display:none}
  .faq-item summary:hover{color:var(--honey-2)}
  .faq-item summary:focus-visible{outline:2px solid var(--honey); outline-offset:-2px; border-radius:20px}
  .faq-item .mais{flex:none; width:22px;height:22px; position:relative}
  .faq-item .mais::before,.faq-item .mais::after{
    content:""; position:absolute; left:50%; top:50%; background:var(--honey-2); border-radius:2px;
    transform:translate(-50%,-50%); transition:transform .25s}
  .faq-item .mais::before{width:14px;height:2px}
  .faq-item .mais::after{width:2px;height:14px}
  .faq-item[open] .mais::after{transform:translate(-50%,-50%) rotate(90deg); opacity:0}
  .faq-item p{margin:0; padding:0 1.3rem 1.3rem; color:var(--ink-soft); line-height:1.65; max-width:68ch}
  .faq-fim{display:flex; flex-wrap:wrap; align-items:center; gap:1rem; margin-top:2rem}
  .faq-fim p{margin:0; font-weight:800; color:var(--ink)}

  .foto-sala{margin:0 0 1.6rem; grid-column:1 / -1}
  .foto-sala img{width:100%; height:auto; display:block; border-radius:24px; box-shadow:var(--shadow)}
  .foto-sala figcaption{margin-top:.8rem; font-size:.88rem; color:var(--ink-soft); line-height:1.55; max-width:62ch}
  .foto-sala figcaption strong{color:var(--ink)}
  @media (min-width:861px){
    .sobre-grid{align-items:start}
    .foto-sala{grid-column:2; margin-bottom:1.4rem}
    .foto-sala img{border-radius:22px}
  }

  /* ---------- trilhas ---------- */
  .trilhas{background:linear-gradient(170deg,#12304B,#0B1F33); color:#EAF4FB; border-block:1px solid #1D405E; position:relative; overflow:hidden}
  .trilhas::before{content:""; position:absolute; inset:0; opacity:.45; pointer-events:none;
    background-image:radial-gradient(circle at 1px 1px, rgba(255,255,255,.07) 1px, transparent 0); background-size:24px 24px}
  .trilhas .wrap{position:relative}
  .trilhas .eyebrow{color:#FFC233}
  .trilhas h2{color:#fff}
  .trilhas .lead{color:#B8D2E6}
  .tr-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(1.6rem,4vw,3rem); align-items:center}
  @media (max-width:860px){ .tr-grid{grid-template-columns:1fr} }
  .tr-passos{display:grid; gap:.9rem; margin:0 0 1.8rem; padding:0; list-style:none}
  .tr-passos li{display:flex; gap:.9rem; align-items:flex-start; color:#C6DCEC; font-weight:600; font-size:.97rem; line-height:1.55}
  .tr-passos b{flex:none; width:30px;height:30px;border-radius:11px; background:rgba(255,255,255,.1);
    color:#FFC233; display:grid;place-items:center; font-family:"Fraunces"; font-size:.92rem; font-weight:600}
  .tr-passos strong{color:#fff; font-weight:800}
  .tr-usos{display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.7rem}
  .tr-usos span{font-size:.85rem; font-weight:800; padding:.45rem .95rem; border-radius:100px;
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); color:#DCEBF6}
  .tr-demo{background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.14); border-radius:26px; padding:1.5rem 1.6rem}
  .tr-demo .et{font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#FFC233}
  .tr-demo h3{font-size:1.3rem; color:#fff; margin:.3rem 0 .5rem}
  .tr-demo p{font-size:.93rem; color:#A8C6DC; margin-bottom:1.2rem}
  .tr-nums{display:flex; gap:1.6rem; margin-bottom:1.3rem}
  .tr-nums div b{display:block; font-family:"Fraunces"; font-weight:600; font-size:1.6rem; color:#FFC233; line-height:1}
  .tr-nums div span{font-size:.8rem; color:#8FB2CB; font-weight:700}
  .btn-sol{display:inline-flex; align-items:center; gap:.55rem; font-weight:800; font-size:.98rem;
    padding:.85rem 1.5rem; border-radius:100px; background:#F2682A; color:#fff;
    box-shadow:0 12px 30px -12px rgba(242,104,42,.8); transition:transform .2s, filter .2s}
  .btn-sol:hover{filter:brightness(1.08); transform:translateY(-2px)}
  .btn-sol svg{width:18px;height:18px}
  .btn-claro{display:inline-flex; align-items:center; gap:.5rem; font-weight:800; font-size:.95rem;
    padding:.8rem 1.4rem; border-radius:100px; border:1.5px solid rgba(255,255,255,.3); color:#EAF4FB;
    transition:border-color .2s, background .2s}
  .btn-claro:hover{border-color:#FFC233; background:rgba(255,255,255,.07)}

  /* ---------- mapa falado ---------- */
  .mf-sec .breve{display:inline-flex; align-items:center; gap:.5rem; font-size:.8rem; font-weight:800;
    background:color-mix(in srgb,var(--honey) 18%,#fff); color:var(--honey-2);
    padding:.35rem .9rem; border-radius:100px; margin-bottom:1rem}
  .mf-sec .breve i{width:7px;height:7px;border-radius:50%;background:var(--honey-2);font-style:normal}
  .mf-lista{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.6rem}
  @media (max-width:760px){ .mf-lista{grid-template-columns:1fr} }
  .mf-item{background:var(--card); border:1px solid var(--line); border-radius:22px; padding:1.1rem 1.2rem}
  .mf-item b{display:block; font-family:"Fraunces"; font-weight:600; font-size:1.02rem; margin-bottom:.2rem}
  .mf-item p{margin:0; font-size:.88rem; color:var(--ink-soft)}

  /* ---------- contato ---------- */
  .contato{position:relative; overflow:hidden}
  .contato-card{
    position:relative; background:linear-gradient(155deg,#3a2c18,#5a4222); color:#fbeed3;
    border-radius:clamp(24px,4vw,40px); padding:clamp(2.2rem,5vw,4.2rem);
    box-shadow:var(--shadow); overflow:hidden;
  }
  .contato-card::before{content:""; position:absolute; width:420px;height:420px; right:-120px; top:-160px; border-radius:50%; background:radial-gradient(circle,#E3A63A,transparent 68%); opacity:.5}
  .contato-card::after{content:""; position:absolute; width:340px;height:340px; left:-120px; bottom:-160px; border-radius:50%; background:radial-gradient(circle,#CB6242,transparent 68%); opacity:.42}
  .contato-inner{position:relative; z-index:2; display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(1.6rem,4vw,3rem); align-items:center}
  .contato h2{color:#fff; font-size:clamp(2rem,1.6rem + 2.4vw,3.2rem)}
  .contato .lead{color:#f0dcb8}
  .contato-actions{display:flex; flex-wrap:wrap; gap:.85rem; margin-top:1.8rem}
  .contlist{display:grid; gap:.7rem}
  .contlist a{display:flex; align-items:center; gap:.9rem; padding:.85rem 1.1rem; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:16px; font-weight:600; transition:background .3s, transform .3s}
  .contlist a:hover{background:rgba(255,255,255,.13); transform:translateX(4px)}
  .contlist .ci{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:rgba(227,166,58,.22);color:#F6D48A}
  .contlist .ci svg{width:20px;height:20px}
  .contlist small{display:block; color:#c9b590; font-weight:600; font-size:.78rem}

  /* ---------- footer ---------- */
  footer{padding:2.6rem 0 3rem; border-top:1px solid var(--line)}
  .foot{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem}
  .foot .brand small{color:var(--ink-soft)}
  .foot-note{color:var(--ink-soft); font-size:.86rem}
  .foot-links{display:flex; gap:1.2rem; flex-wrap:wrap; font-weight:600; font-size:.92rem}
  .foot-links a{color:var(--ink-soft)} .foot-links a:hover{color:var(--ink)}

  /* ---------- floating whatsapp ---------- */
  .wa-float{
    position:fixed; right:20px; bottom:20px; z-index:70;
    width:60px;height:60px;border-radius:50%; display:grid;place-items:center;
    background:#25D366; color:#fff; box-shadow:0 14px 30px -8px rgba(37,211,102,.6);
    transform:translateY(120px) scale(.7); opacity:0; transition:transform .5s var(--ease), opacity .4s, box-shadow .3s;
  }
  .wa-float.show{transform:translateY(0) scale(1); opacity:1}
  .wa-float:hover{transform:translateY(-4px) scale(1.05)}
  .wa-float svg{width:32px;height:32px}

  /* ---------- reveal (only when .anim) ---------- */
  .anim [data-reveal],
  .anim [data-item]{opacity:0; transform:translateY(30px)}
  /* Hide the headline via visibility (NOT a transform) so GSAP reads a clean
     identity transform. Animating yPercent over a CSS translateY(%) leaves a
     residual px offset that keeps the line clipped by its mask. */
  .anim .hero-title{visibility:hidden}
  .anim [data-hero]{opacity:0}
  .anim .chip-float{opacity:0}
  .anim .u-word path{stroke-dasharray:1; stroke-dashoffset:1}

  /* ---------- responsive ---------- */
  @media (max-width:960px){
    .epgrid{grid-template-columns:1fr}
    .hero-grid{grid-template-columns:1fr; gap:2.5rem}
    .hero-figure{order:-1; width:min(78%,360px)}
    .hero .lead{max-width:52ch}
    .sobre-grid,.metodo-grid,.contato-inner{grid-template-columns:1fr}
    .cards{grid-template-columns:1fr 1fr}
    /* mobile menu */
    .nav-toggle{display:flex}
    .nav-links{
      display:none; position:absolute; top:100%; left:0; right:0;
      flex-direction:column; align-items:stretch; gap:.2rem;
      background:var(--paper); border-bottom:1px solid var(--line); padding:.8rem 1.3rem 1.2rem; box-shadow:var(--shadow-sm);
    }
    .nav-links.open{display:flex}
    .nav-links a{padding:.75rem .6rem}
  }
  @media (max-width:680px){
    .nav .btn.desktop{display:none}
    /* keep the floating chips fully inside the photo (never past the viewport) */
    .hero-figure{width:min(84%,340px)}
    .chip-float{font-size:.72rem; padding:.42rem .7rem}
    .cf1{left:2%; top:3%} .cf2{display:none} .cf3{left:2%; bottom:3%}
    .hero .eyebrow{display:block; font-size:.66rem; letter-spacing:.08em}
    .cards{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:1fr}
    .stat + .stat{border-left:none; border-top:1px solid var(--line); padding-top:1.4rem}
    .tl-item{grid-template-columns:1fr; gap:.4rem}
    .tl-item .when{padding-top:0}
  }

  /* ---------- dois caminhos ---------- */
  .caminhos{display:grid; gap:.7rem; margin:1.8rem 0 1.4rem; max-width:480px}
  .caminho{
    display:flex; align-items:center; gap:.9rem; padding:.95rem 1.1rem;
    background:var(--card); border:1px solid var(--line); border-radius:20px;
    box-shadow:var(--shadow-sm); transition:transform .2s var(--ease), border-color .2s, box-shadow .2s;
  }
  .caminho:hover{transform:translateX(4px); border-color:var(--honey); box-shadow:var(--shadow)}
  .caminho .ic{flex:none; width:42px;height:42px;border-radius:14px; display:grid;place-items:center;
    background:color-mix(in srgb,var(--honey) 16%,#fff); color:var(--honey-2)}
  .caminho .ic svg{width:21px;height:21px}
  .caminho .tx{flex:1; min-width:0}
  .caminho b{display:block; font-size:1rem; font-weight:800; color:var(--ink); line-height:1.2}
  .caminho small{display:block; font-size:.84rem; color:var(--ink-soft); font-weight:600; margin-top:.1rem}
  .caminho .seta{flex:none; color:var(--honey-2); font-weight:800; transition:transform .2s}
  .caminho:hover .seta{transform:translateX(3px)}

  /* ---------- credenciais ---------- */
  .cred{background:var(--paper-2); border-block:1px solid var(--line)}
  .cred-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(1.8rem,4vw,3.4rem); align-items:center}
  @media (max-width:860px){ .cred-grid{grid-template-columns:1fr} }
  .cred-grid h2{font-size:clamp(1.6rem,1.3rem + 1.6vw,2.3rem); margin:.8rem 0 .9rem}
  .cred-grid > div > p{color:var(--ink-soft); max-width:56ch; margin-bottom:1.5rem}
  .cred-lista{list-style:none; margin:0; padding:0; display:grid; gap:.1rem}
  .cred-lista li{display:flex; gap:1rem; align-items:baseline; padding:.95rem 0; border-bottom:1px solid var(--line)}
  .cred-lista li:last-child{border-bottom:0}
  .cred-lista b{flex:none; width:38%; font-family:"Fraunces"; font-weight:600; font-size:1.02rem; color:var(--honey-2)}
  .cred-lista span{flex:1; font-size:.9rem; color:var(--ink-soft); font-weight:600; line-height:1.4}

  .tr-demo .et{display:inline-flex; align-items:center; gap:.45rem}
  .tr-demo .viva{width:7px;height:7px;border-radius:50%;background:#6BCB4F;flex:none;
    box-shadow:0 0 0 0 rgba(107,203,79,.6); animation:viva 2.4s infinite}
  @keyframes viva{70%{box-shadow:0 0 0 7px rgba(107,203,79,0)}100%{box-shadow:0 0 0 0 rgba(107,203,79,0)}}
  @media (prefers-reduced-motion:reduce){ .tr-demo .viva{animation:none} }
  .sub a.destaque{background:color-mix(in srgb,var(--honey) 12%,#fff)}
  .sub a.destaque:hover{background:color-mix(in srgb,var(--honey) 20%,#fff)}
  .sub a.destaque b{color:var(--honey-2)}
