:root{
    --navy: #0B1624;
    --navy-2: #101E30;
    --navy-3: #16273B;
    --wine: #6B1A1A;
    --wine-light: #8E2A2A;
    --wine-dim: rgba(107,26,26,0.35);
    --paper: #ECE9E1;
    --paper-2: #E2DED3;
    --ink: #14181C;
    --mist: #93A0AD;
    --mist-dim: #5D6A78;
    --line: rgba(243,239,231,0.14);
    --line-strong: rgba(243,239,231,0.28);
    --display: 'Mulish', sans-serif;
    --body: 'Mulish', sans-serif;
    --mono: 'Mulish', sans-serif;
    --ease: cubic-bezier(.16,.8,.28,1);
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  body{
    background:var(--navy);
    color:var(--paper);
    font-family:var(--body);
    font-weight:300;
    line-height:1.5;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
  }

  img{display:block;width:100%;height:100%;object-fit:cover;}
  picture{display:block;width:100%;height:100%;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;background:none;border:none;color:inherit;cursor:pointer;}

  ::selection{background:var(--wine);color:var(--paper);}

  .eyebrow{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--mist);
  }

  /* ---------- terrain / strata motif ---------- */
  .strata-svg line{
    stroke:currentColor;
    stroke-width:1;
    vector-effect:non-scaling-stroke;
  }
  .strata-svg .s-line{
    stroke-dasharray:1 1;
    stroke-dashoffset:1;
    transition:stroke-dashoffset 1.4s var(--ease);
  }
  .strata-svg.in-view .s-line{stroke-dashoffset:0;}
  .strata-svg .s-line{ pathLength: 1; }

  /* ---------- nav ---------- */
  header{
    position:fixed;top:0;left:0;right:0;
    display:flex;align-items:center;justify-content:space-between;
    padding:28px clamp(20px,4vw,56px);
    z-index:100;
    mix-blend-mode:normal;
    transition:padding .5s var(--ease), background .5s var(--ease), border-color .5s var(--ease);
    border-bottom:1px solid transparent;
  }
  header.scrolled{
    padding:16px clamp(20px,4vw,56px);
    background:rgba(11,22,36,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .logo{display:flex;align-items:center;}
  .logo-img{
    height:40px;width:auto;display:block;
    transition:height .5s var(--ease);
  }
  header.scrolled .logo-img{height:32px;}

  nav.main-nav{display:flex;gap:clamp(14px,2.2vw,32px);align-items:center;}
  nav.main-nav a{
    font-family:var(--mono);
    font-size:10.5px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--mist);
    position:relative;
    padding-bottom:4px;
    white-space:nowrap;
  }
  nav.main-nav a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
    background:var(--wine-light);transition:width .35s var(--ease);
  }
  nav.main-nav a:hover{color:var(--paper);}
  nav.main-nav a:hover::after{width:100%;}
  .nav-cta{
    border:1px solid var(--line-strong);
    padding:9px 18px;
    border-radius:2px;
    color:var(--paper) !important;
    transition:background .3s, border-color .3s;
  }
  .nav-cta:hover{background:var(--wine);border-color:var(--wine);}
  .nav-cta::after{display:none;}

  /* hamburger toggle — hidden on desktop, shown below the nav breakpoint */
  .nav-toggle{
    display:none;flex-direction:column;justify-content:center;gap:5px;
    width:34px;height:30px;padding:0;background:none;border:none;cursor:pointer;flex-shrink:0;
  }
  .nav-toggle span{
    display:block;width:100%;height:1px;background:var(--paper);transition:transform .3s var(--ease), opacity .3s var(--ease);
  }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

  /* mobile nav drawer */
  .mobile-nav{
    position:fixed;top:0;left:0;right:0;bottom:0;z-index:99;
    background:var(--navy);
    display:flex;flex-direction:column;justify-content:center;
    padding:90px clamp(24px,8vw,64px) 40px;
    overflow-y:auto;
    transform:translateY(-8px);opacity:0;
    transition:opacity .35s var(--ease), transform .35s var(--ease);
  }
  .mobile-nav[hidden]{display:none;}
  .mobile-nav.open{opacity:1;transform:translateY(0);}
  .mobile-nav-links{display:flex;flex-direction:column;gap:6px;}
  .mobile-nav-links a{
    font-family:var(--display);font-weight:500;font-size:clamp(19px,5vw,28px);
    color:var(--paper);padding:11px 0;border-bottom:1px solid var(--line);
  }
  .mobile-nav-links a:last-child{border-bottom:none;}

  /* ---------- section basics ---------- */
  section{position:relative;}
  .band{padding:clamp(90px,14vw,180px) clamp(20px,6vw,80px);}

  /* ---------- 01 HERO ---------- */
  .hero{
    height:100svh;min-height:640px;
    display:flex;flex-direction:column;justify-content:flex-end;
    position:relative;
    overflow:hidden;
  }
  .hero-bg{position:absolute;inset:0;z-index:0;}
  .hero-bg img{
    filter:saturate(0.85) contrast(1.05) brightness(0.62);
    transform:scale(1.08);
    animation:heroZoom 20s var(--ease) forwards;
  }
  @keyframes heroZoom{to{transform:scale(1);}}
  .hero-bg::after{
    content:'';position:absolute;inset:0;
    background:
      linear-gradient(180deg, rgba(11,22,36,0.35) 0%, rgba(11,22,36,0.15) 30%, rgba(11,22,36,0.55) 72%, rgba(11,22,36,0.96) 100%),
      linear-gradient(90deg, rgba(11,22,36,0.55) 0%, transparent 35%);
  }
  .hero-strata{
    position:absolute;left:0;right:0;bottom:0;height:46%;
    z-index:1;opacity:0.55;color:var(--paper);
    pointer-events:none;
  }
  .hero-content{position:relative;z-index:2;padding:0 clamp(20px,6vw,80px) clamp(56px,7vw,88px);}
  .hero-eyebrow{margin-bottom:22px;display:flex;align-items:center;gap:10px;}
  .hero-eyebrow .dot{width:5px;height:5px;background:var(--wine-light);border-radius:50%;}
  h1.hero-headline{
    font-family:var(--display);
    font-weight:700;
    font-size:clamp(34px,5.4vw,76px);
    line-height:1.08;
    letter-spacing:-0.01em;
    max-width:21ch;
  }
  h1.hero-headline em{font-style:italic;color:var(--mist);font-weight:400;}
  .hero-foot{
    margin-top:26px;display:flex;justify-content:space-between;align-items:flex-end;
    gap:24px;flex-wrap:wrap;
  }
  .hero-left{max-width:46ch;}
  .hero-sub{max-width:40ch;font-size:15px;color:var(--mist);font-weight:300;}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px;}
  .hero-cta-primary,.hero-cta-secondary{
    font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
    padding:14px 22px;border-radius:2px;white-space:nowrap;
    transition:background .3s, border-color .3s, color .3s;
  }
  .hero-cta-primary{background:var(--wine);color:var(--paper);border:1px solid var(--wine);}
  .hero-cta-primary:hover{background:var(--wine-light);border-color:var(--wine-light);}
  .hero-cta-secondary{background:transparent;color:var(--paper);border:1px solid var(--line-strong);}
  .hero-cta-secondary:hover{background:rgba(243,239,231,0.1);}
  @media(max-width:560px){
    .hero-ctas{width:100%;}
    .hero-cta-primary,.hero-cta-secondary{flex:1;text-align:center;}
  }
  .scroll-cue{
    display:flex;align-items:center;gap:12px;
    font-family:var(--mono);font-size:11px;letter-spacing:0.14em;
    text-transform:uppercase;color:var(--mist);
  }
  .scroll-cue svg{width:14px;height:22px;}
  .scroll-cue .cue-line{stroke:var(--mist);stroke-width:1;animation:cueMove 2.2s var(--ease) infinite;}
  @keyframes cueMove{
    0%{stroke-dashoffset:16;opacity:0;}
    30%{opacity:1;}
    70%{opacity:1;}
    100%{stroke-dashoffset:0;opacity:0;}
  }

  /* ---------- 02 STATEMENT ---------- */
  .statement{
    background:var(--navy);
    text-align:center;
    display:flex;flex-direction:column;align-items:center;
    padding:clamp(110px,16vw,200px) clamp(20px,6vw,80px);
  }
  .statement .stat-mark{width:36px;height:auto;margin-bottom:36px;}
  p.statement-text{
    font-family:var(--display);
    font-weight:500;font-style:italic;
    font-size:clamp(24px,3.6vw,46px);
    line-height:1.28;
    max-width:34ch;
    color:var(--paper);
  }
  @media(max-width:600px){.statement{padding-left:14px;padding-right:14px;}p.statement-text{font-size:clamp(16px,4.6vw,22px);}}
  p.statement-sub{
    margin-top:32px;font-size:14px;color:var(--mist);
    max-width:44ch;font-family:var(--body);font-weight:300;
  }

  /* ---------- 04 CAPACIDADE ---------- */
  .capacity{background:var(--paper);color:var(--ink);}
  .capacity-head{max-width:26ch;margin-bottom:64px;}
  .capacity-head .eyebrow{color:var(--wine);}
  .capacity-head h2{
    font-family:var(--display);font-weight:700;font-size:clamp(28px,4.2vw,54px);
    line-height:1.1;margin-top:18px;color:var(--ink);
  }
  .cap-grid{border-top:1px solid rgba(20,24,28,0.14);}
  .cap-row{
    display:grid;grid-template-columns:64px 1fr 1.4fr 40px;
    align-items:center;gap:24px;
    padding:26px 0;border-bottom:1px solid rgba(20,24,28,0.14);
    cursor:default;transition:padding .35s var(--ease);
  }
  .cap-row .cap-idx{font-family:var(--mono);font-size:12px;color:var(--mist-dim);}
  .cap-row h3{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.6vw,30px);}
  .cap-row p{
    font-size:14px;color:#495259;max-width:52ch;
    max-height:0;opacity:0;overflow:hidden;
    transition:max-height .45s var(--ease), opacity .35s var(--ease);
  }
  .cap-row .cap-arrow{
    width:16px;height:16px;justify-self:end;color:var(--wine);
    opacity:0;transform:translateX(-6px);transition:.35s var(--ease);
  }
  .cap-row:hover{padding-left:8px;padding-right:8px;background:var(--paper-2);}
  .cap-row:hover p{max-height:60px;opacity:1;margin-top:6px;}
  .cap-row:hover .cap-arrow{opacity:1;transform:translateX(0);}
  @media(max-width:720px){
    .cap-row{grid-template-columns:40px 1fr 26px;}
    .cap-row p{grid-column:2/3;}
  }

  /* ---------- ECOSSISTEMA IPF (substitui "Áreas de atuação") ----------
     Scoped under .pf-ecosystem — all classes prefixed pf- to avoid colliding
     with the rest of the stylesheet. Colors reuse the site's own tokens
     (--navy, --wine, --paper, --mist…); --pf-ice is a new, locally-scoped
     accent used only as a discreet technological highlight on the diagram's
     active connections, never as a base color. */
  .pf-ecosystem{
    --pf-ice:#9AC9D5;
    position:relative;overflow:hidden;isolation:isolate;
    background:linear-gradient(125deg,var(--navy) 8%,#0c192a 45%,var(--navy-2) 100%);
    color:var(--paper);
  }
  .pf-ecosystem:before{
    content:"";pointer-events:none;position:absolute;inset:0;z-index:-1;
    background-image:linear-gradient(to right,rgba(154,201,213,.045) 1px,transparent 1px),
      linear-gradient(to bottom,rgba(154,201,213,.045) 1px,transparent 1px);
    background-size:58px 58px;
    mask-image:linear-gradient(90deg,transparent 7%,#000 63%,#000 95%);
  }
  .pf-ecosystem:after{
    content:"";pointer-events:none;position:absolute;width:760px;height:760px;right:-120px;top:20%;
    background:radial-gradient(circle,var(--wine-dim),rgba(107,26,26,0) 66%);z-index:-1;
  }
  .pf-layout{
    width:min(1480px,100%);margin:auto;display:grid;
    grid-template-columns:minmax(300px,390px) minmax(0,1fr);
    gap:clamp(20px,3vw,52px);align-items:center;
    padding:clamp(68px,8vw,122px) clamp(20px,6vw,80px) 60px;
  }
  .pf-copy{align-self:center;position:relative;z-index:2;}
  .pf-label{margin:0 0 26px;}
  .pf-title{
    font-family:var(--display);font-weight:500;color:var(--paper);
    font-size:clamp(34px,4.3vw,64px);letter-spacing:-.03em;line-height:1.1;margin:18px 0 24px;
  }
  .pf-title em{font-style:normal;color:#cdb4b4;}
  .pf-intro{max-width:380px;color:var(--mist);font-size:15px;line-height:1.85;font-weight:400;margin:0;}
  .pf-note{font-size:11px;color:var(--mist-dim);line-height:1.6;margin:22px 0 0;}
  .pf-visual-wrap{min-width:0;width:100%;position:relative;}
  .pf-stage{position:relative;aspect-ratio:4/3;max-width:1000px;margin:auto;isolation:isolate;}
  .pf-stage>svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible;pointer-events:none;}
  .pf-ring{fill:none;stroke:rgba(197,214,225,.14);stroke-width:1;vector-effect:non-scaling-stroke;}
  .pf-ring.outer{stroke-dasharray:1 7;stroke:rgba(186,208,217,.18);}
  .pf-ring.inner{stroke:rgba(184,206,220,.19);}
  .pf-ring.glow{stroke:var(--wine-dim);stroke-width:12;filter:blur(13px);}
  .pf-arc{fill:none;stroke:var(--wine-light);stroke-width:2;stroke-linecap:round;stroke-dasharray:24 145;opacity:.8;transform-origin:480px 360px;}
  .pf-ecosystem.pf-inview .pf-arc{animation:pf-turn 38s linear infinite;}
  .pf-ecosystem:not(.pf-in-viewport) .pf-arc{animation-play-state:paused;}
  @keyframes pf-turn{to{transform:rotate(360deg);}}
  .pf-path{
    fill:none;stroke:rgba(190,213,225,.14);stroke-width:1;vector-effect:non-scaling-stroke;
    stroke-dasharray:1;stroke-dashoffset:1;
    transition:stroke .4s,stroke-width .4s,opacity .4s,stroke-dashoffset 1.5s var(--ease);opacity:.52;
  }
  .pf-ecosystem.pf-inview .pf-path{stroke-dashoffset:0;}
  .pf-path.pf-corepath{stroke:rgba(224,233,238,.43);opacity:.7;}
  .pf-path.pf-active{stroke:var(--pf-ice);stroke-width:1.7;opacity:.8;}
  .pf-path.pf-corepath.pf-active{stroke:#cdb0b0;stroke-width:1.6;opacity:1;}
  .pf-core{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:clamp(120px,19.5%,190px);aspect-ratio:1;display:flex;flex-direction:column;
    align-items:center;justify-content:center;text-align:center;z-index:3;
    background:linear-gradient(145deg,var(--navy-3),var(--navy) 72%);
    border:1px solid rgba(233,225,214,.3);
    clip-path:polygon(50% 0,91% 23%,91% 77%,50% 100%,9% 77%,9% 23%);
    box-shadow:0 0 0 1px rgba(12,24,40,.25);
  }
  .pf-core:after{
    content:"";position:absolute;inset:11px;border:1px solid var(--wine-dim);
    clip-path:polygon(50% 0,91% 23%,91% 77%,50% 100%,9% 77%,9% 23%);opacity:.6;
  }
  .pf-core-logo{width:68%;height:auto;display:block;z-index:1;}
  .pf-core-mark{font-family:var(--display);font-size:clamp(12px,1.45vw,17px);letter-spacing:.19em;font-weight:800;line-height:1.5;z-index:1;}
  .pf-core-sub{font-family:var(--mono);font-size:clamp(6px,.8vw,9px);font-weight:700;letter-spacing:.11em;z-index:1;color:var(--mist);text-transform:uppercase;margin-top:2px;}
  .pf-pillar{
    --pf-x:50%;--pf-y:50%;position:absolute;left:var(--pf-x);top:var(--pf-y);
    transform:translate(-50%,-50%);z-index:5;width:clamp(116px,19%,190px);min-height:70px;
    border-radius:2px;border:1px solid rgba(232,235,238,.2);background:rgba(18,33,51,.97);
    box-shadow:0 15px 35px rgba(2,7,12,.27);color:var(--paper);padding:12px 11px;text-align:center;
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    font-family:var(--body);
    transition:border-color .35s,background .35s,box-shadow .35s,transform .35s;
  }
  .pf-pillar:hover,.pf-pillar[aria-pressed="true"]{
    border-color:var(--pf-ice);background:#1a3147;
    box-shadow:0 0 32px rgba(83,153,186,.19),0 18px 45px rgba(2,7,12,.32);
  }
  .pf-pillar:hover{transform:translate(-50%,-50%) scale(1.035);}
  .pf-pillar:focus-visible{outline:2px solid var(--pf-ice);outline-offset:4px;}
  .pf-pillar-num{font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.22em;color:#af7474;}
  .pf-pillar-text{font-weight:800;font-size:clamp(10px,1.05vw,13px);letter-spacing:.005em;line-height:1.24;}
  .pf-pillar[data-pillar="solucoes"]{--pf-x:50%;--pf-y:25%;}
  .pf-pillar[data-pillar="geotecnia"]{--pf-x:29%;--pf-y:70%;}
  .pf-pillar[data-pillar="ensaios"]{--pf-x:71%;--pf-y:70%;}
  .pf-sector{
    position:absolute;z-index:2;left:var(--pf-x);top:var(--pf-y);transform:translate(-50%,-50%);
    display:flex;align-items:center;flex-direction:column;gap:6px;min-width:88px;max-width:112px;
    text-align:center;pointer-events:none;transition:opacity .3s;
  }
  .pf-dot{height:8px;width:8px;background:#718b9e;border:2px solid #a1b5c4;border-radius:50%;box-shadow:0 0 0 6px rgba(147,179,197,.05);transition:box-shadow .3s,background .3s,border-color .3s;}
  .pf-sector-label{font-family:var(--mono);font-size:clamp(8px,.78vw,10px);letter-spacing:.075em;line-height:1.3;text-transform:uppercase;color:#7e95a6;font-weight:800;transition:color .3s;}
  .pf-sector.pf-related .pf-dot{background:#cddce1;border-color:var(--pf-ice);box-shadow:0 0 0 7px rgba(154,201,213,.11),0 0 20px rgba(154,201,213,.35);}
  .pf-sector.pf-related .pf-sector-label{color:#c4d3dc;}
  .pf-sector.pf-muted{opacity:.43;}
  .pf-sector[data-sector="infra"]{--pf-x:50%;--pf-y:5%;}
  .pf-sector[data-sector="miner"]{--pf-x:72%;--pf-y:9%;}
  .pf-sector[data-sector="log"]{--pf-x:89%;--pf-y:26%;}
  .pf-sector[data-sector="trans"]{--pf-x:95%;--pf-y:48%;}
  .pf-sector[data-sector="sane"]{--pf-x:88%;--pf-y:73%;}
  .pf-sector[data-sector="ener"]{--pf-x:69%;--pf-y:90%;}
  .pf-sector[data-sector="hidro"]{--pf-x:44%;--pf-y:96%;}
  .pf-sector[data-sector="urb"]{--pf-x:22%;--pf-y:87%;}
  .pf-sector[data-sector="amb"]{--pf-x:8%;--pf-y:67%;}
  .pf-sector[data-sector="edif"]{--pf-x:10%;--pf-y:29%;}
  .pf-mobile-legend{display:none;}
  .pf-bottom{width:min(1340px,100%);margin:0 auto;padding:0 clamp(20px,6vw,80px) clamp(68px,7vw,100px);}
  .pf-detail{border-top:1px solid rgba(232,235,238,.18);padding-top:28px;display:grid;grid-template-columns:160px 1fr 1fr;gap:25px;align-items:start;}
  .pf-detail-number{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--mist);text-transform:uppercase;}
  .pf-detail-title{font-family:var(--display);font-size:24px;font-weight:600;margin:0 0 10px;letter-spacing:-.02em;color:var(--paper);}
  .pf-detail-desc{font-size:13px;line-height:1.75;color:var(--mist);margin:0;max-width:470px;}
  .pf-detail-right{display:flex;flex-direction:column;gap:18px;}
  .pf-detail-list{margin:0;padding:0;list-style:none;display:grid;gap:8px;line-height:1.4;}
  .pf-detail-list li{font-size:12px;color:#c4d1d8;display:flex;gap:10px;align-items:baseline;}
  .pf-detail-list li:before{content:'↗';color:#b67a7a;font-size:14px;}
  .pf-detail-cta{
    display:inline-flex;align-items:center;gap:10px;align-self:flex-start;
    font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
    color:var(--paper);border-bottom:1px solid rgba(154,201,213,.45);padding-bottom:6px;
    transition:gap .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
  }
  .pf-detail-cta:hover,.pf-detail-cta:focus-visible{gap:16px;color:var(--pf-ice);border-color:var(--pf-ice);}
  .pf-detail-cta:focus-visible{outline:2px solid var(--pf-ice);outline-offset:5px;}
  @media(max-width:1150px){
    .pf-layout{grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:12px;}
    .pf-sector-label{font-size:8px;}
    .pf-pillar{padding:10px 8px;}
    .pf-visual-wrap{transform:scale(1.015);}
  }
  @media(max-width:940px){
    .pf-layout{grid-template-columns:1fr;gap:26px;padding-top:70px;padding-bottom:24px;}
    .pf-copy{max-width:700px;}
    .pf-title{max-width:720px;font-size:clamp(34px,7vw,58px);}
    .pf-intro{max-width:590px;}
    .pf-visual-wrap{width:min(780px,100%);margin:auto;transform:none;}
    .pf-stage{width:100%;}
    .pf-bottom{padding-top:10px;padding-bottom:70px;}
    .pf-detail{grid-template-columns:110px 1fr 1fr;gap:20px;}
  }
  @media(max-width:600px){
    .pf-layout{padding-top:54px;padding-bottom:18px;gap:14px;}
    .pf-label{margin-bottom:20px;}
    .pf-title{font-size:clamp(32px,10vw,46px);margin-bottom:18px;}
    .pf-intro{font-size:13px;line-height:1.8;}
    .pf-note{display:none;}
    .pf-stage{aspect-ratio:1/1;max-height:500px;}
    .pf-stage>svg{display:none;}
    .pf-sector{display:none;}
    .pf-pillar{min-height:66px;width:40%;max-width:185px;}
    .pf-pillar-num{font-size:9px;}
    .pf-pillar-text{font-size:11px;}
    .pf-pillar[data-pillar="solucoes"]{--pf-x:50%;--pf-y:15%;}
    .pf-pillar[data-pillar="geotecnia"]{--pf-x:26%;--pf-y:73%;}
    .pf-pillar[data-pillar="ensaios"]{--pf-x:74%;--pf-y:73%;}
    .pf-core{width:37%;max-width:170px;top:50%;background:linear-gradient(145deg,#202c3d,var(--navy-2));}
    .pf-core-mark{font-size:14px;}
    .pf-core-sub{font-size:7px;}
    .pf-stage:before,.pf-stage:after{
      content:"";position:absolute;left:50%;top:50%;width:45%;height:45%;transform:translate(-50%,-50%);
      border:1px solid rgba(203,225,236,.15);border-radius:50%;
    }
    .pf-stage:after{width:82%;height:82%;border-style:dashed;border-color:rgba(173,191,207,.13);}
    .pf-mobile-legend{display:block;color:var(--mist-dim);text-align:center;font-size:10px;margin-top:-6px;letter-spacing:.035em;}
    .pf-bottom{padding:26px 20px 70px;}
    .pf-detail{grid-template-columns:1fr;gap:14px;padding-top:22px;}
    .pf-detail-title{font-size:24px;}
    .pf-detail-right{gap:14px;}
    .pf-detail-list{margin-top:4px;gap:9px;}
  }
  @media(prefers-reduced-motion:reduce){
    .pf-ecosystem .pf-arc{animation:none !important;}
    .pf-ecosystem .pf-path{stroke-dashoffset:0;}
  }

  /* ---------- SERVIÇOS ---------- */
  .services{background:var(--paper);color:var(--ink);padding-top:clamp(40px,5vw,64px);}
  .services-head{max-width:52ch;margin-bottom:40px;}
  .services-head .eyebrow{color:var(--wine);}
  .services-head h2{
    font-family:var(--display);font-weight:700;font-size:clamp(28px,4.2vw,54px);
    line-height:1.1;margin-top:18px;color:var(--ink);
  }
  .services-head p{margin-top:18px;font-size:14.5px;color:#495259;max-width:56ch;}

  .services-controls{
    display:flex;align-items:center;gap:20px;flex-wrap:wrap;
    margin-bottom:8px;padding-bottom:20px;border-bottom:1px solid rgba(20,24,28,0.14);
  }
  .svc-hint{font-family:var(--mono);font-size:11px;color:var(--mist-dim);letter-spacing:.03em;}

  /* dropdown */
  .svc-dropdown{position:relative;}
  .svc-dropdown-btn{
    display:flex;align-items:center;gap:12px;
    padding:12px 18px;border:1px solid var(--ink);border-radius:2px;
    font-family:var(--body);font-weight:500;font-size:14px;color:var(--ink);
    background:var(--paper);transition:background .3s, color .3s, border-color .3s;
  }
  .svc-dropdown-btn:hover{background:var(--ink);color:var(--paper);}
  .svc-chevron{width:11px;height:8px;transition:transform .3s var(--ease);flex-shrink:0;}
  .svc-chevron polyline{stroke:currentColor;stroke-width:1.4;}
  .svc-dropdown.open .svc-chevron{transform:rotate(180deg);}
  .svc-dropdown.open .svc-dropdown-btn{background:var(--ink);color:var(--paper);}

  .svc-dropdown-menu{
    position:absolute;top:calc(100% + 8px);left:0;z-index:20;
    min-width:280px;background:var(--ink);border-radius:2px;
    box-shadow:0 18px 40px rgba(11,22,36,0.25);
    opacity:0;visibility:hidden;transform:translateY(-6px);
    transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
    overflow:hidden;
  }
  .svc-dropdown.open .svc-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0);}
  .svc-dropdown-menu li{
    display:flex;justify-content:space-between;align-items:center;gap:20px;
    padding:13px 18px;font-size:13.5px;color:var(--paper);cursor:pointer;
    border-bottom:1px solid rgba(243,239,231,0.1);
    transition:background .25s, padding-left .25s;
  }
  .svc-dropdown-menu li:last-child{border-bottom:none;}
  .svc-dropdown-menu li span{font-family:var(--mono);font-size:11px;color:var(--mist);}
  .svc-dropdown-menu li:hover{background:rgba(243,239,231,0.08);padding-left:22px;}
  .svc-dropdown-menu li[aria-selected="true"]{color:var(--wine-light);}
  .svc-dropdown-menu li[aria-selected="true"] span{color:var(--wine-light);}

  /* list */
  .svc-list{margin-top:4px;}
  .svc-group-label{
    display:flex;align-items:baseline;justify-content:space-between;
    padding:26px 4px 10px;font-family:var(--mono);font-size:11px;
    letter-spacing:.12em;text-transform:uppercase;color:var(--wine);
  }
  .svc-group-label em{font-style:normal;color:var(--mist-dim);letter-spacing:.03em;text-transform:none;}
  .svc-group-label:first-child{padding-top:4px;}

  .svc-row{border-bottom:1px solid rgba(20,24,28,0.13);}
  .svc-row.svc-hidden{display:none;}
  .svc-row-trigger{
    width:100%;display:grid;grid-template-columns:44px 1fr auto 16px;
    align-items:center;gap:18px;padding:18px 4px;text-align:left;
    transition:padding-left .3s var(--ease);
  }
  .svc-row-trigger:hover{padding-left:10px;}
  .svc-idx{font-family:var(--mono);font-size:12px;color:var(--mist-dim);}
  .svc-name{font-family:var(--display);font-weight:600;font-size:clamp(16.5px,1.9vw,19px);color:var(--ink);line-height:1.3;}
  .svc-tag{
    font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--mist-dim);border:1px solid rgba(20,24,28,0.18);border-radius:20px;
    padding:5px 11px;white-space:nowrap;justify-self:end;
  }
  .svc-plus{position:relative;width:14px;height:14px;flex-shrink:0;justify-self:end;}
  .svc-plus::before,.svc-plus::after{content:'';position:absolute;background:var(--mist-dim);transition:transform .4s var(--ease), background .3s;}
  .svc-plus::before{left:0;top:50%;width:100%;height:1px;transform:translateY(-50%);}
  .svc-plus::after{top:0;left:50%;width:1px;height:100%;transform:translateX(-50%);}
  .svc-row.open .svc-plus::after{transform:translateX(-50%) rotate(90deg);opacity:0;}
  .svc-row.open .svc-plus::before{background:var(--wine);}
  .svc-row.open .svc-name{color:var(--wine);}

  .svc-panel{max-height:0;overflow:hidden;transition:max-height .5s var(--ease);}
  .svc-panel-inner{
    display:grid;grid-template-columns:220px 1fr;gap:28px;
    padding:4px 4px 28px 62px;align-items:center;
  }
  .svc-panel-inner.no-photo{grid-template-columns:1fr;padding-left:62px;}
  .svc-photo{aspect-ratio:4/3;overflow:hidden;border-radius:2px;background:#d8d3c6;}
  .svc-panel-inner p{font-size:14px;color:#495259;line-height:1.55;max-width:56ch;}
  @media(max-width:640px){
    .svc-row-trigger{grid-template-columns:32px 1fr 16px;}
    .svc-tag{display:none;}
    .svc-panel-inner{grid-template-columns:1fr;padding-left:4px;}
    .svc-panel-inner.no-photo{padding-left:4px;}
    .svc-photo{aspect-ratio:16/10;}
  }

  /* ---------- 05 CPTu / um dos ensaios (de-enfatizado) ---------- */
  .cptu{background:linear-gradient(180deg, var(--navy) 0%, var(--wine) 130%);display:grid;grid-template-columns:1.05fr 0.95fr;min-height:100vh;}
  .cptu-minor{min-height:auto;}
  .cptu-visual{position:relative;background:var(--navy-3);overflow:hidden;}
  .cptu-minor .cptu-visual{min-height:46vh;}
  .cptu-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.5;filter:grayscale(0.3) contrast(1.1);}
  .cptu-diagram{position:relative;z-index:2;width:100%;height:100%;}
  .cptu-text{
    padding:clamp(60px,7vw,110px) clamp(28px,5vw,90px);
    display:flex;flex-direction:column;justify-content:center;
  }
  .cptu-minor .cptu-text{padding:clamp(48px,6vw,80px) clamp(28px,5vw,90px);}
  .cptu-text .eyebrow{color:#c78f8f;margin-bottom:20px;}
  .cptu-text h2{
    font-family:var(--display);font-weight:700;font-size:clamp(26px,3.4vw,42px);
    line-height:1.1;margin-bottom:20px;
  }
  .cptu-text p{color:var(--mist);font-size:14.5px;max-width:46ch;margin-bottom:14px;}
  .cptu-brand{margin-top:clamp(28px,3.4vw,44px);padding-top:clamp(24px,3vw,36px);border-top:1px solid rgba(255,255,255,.14);max-width:46ch;}
  .cptu-brand img{display:block;height:clamp(64px,6.4vw,88px);width:auto;opacity:.95;}
  .cptu-meta{display:flex;gap:36px;margin-top:34px;flex-wrap:wrap;}
  .cptu-meta div{font-family:var(--mono);font-size:11px;color:var(--mist-dim);letter-spacing:.06em;}
  .cptu-meta strong{display:block;font-family:var(--display);font-size:26px;font-weight:700;color:var(--paper);margin-top:6px;}
  @media(max-width:880px){.cptu{grid-template-columns:1fr;}.cptu-visual{height:52vh;}.cptu-minor .cptu-visual{height:36vh;}}

  /* ---------- 07 PROJETOS ---------- */
  .projects{background:var(--paper);color:var(--ink);}
  .projects-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px;gap:24px;flex-wrap:wrap;}
  .projects-head .eyebrow{color:var(--wine);}
  .projects-head h2{font-family:var(--display);font-weight:700;font-size:clamp(28px,4vw,52px);margin-top:16px;}
  .proj-list{display:flex;flex-direction:column;}
  .proj-item{
    display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(22px,5vw,80px);
    padding:clamp(30px,4vw,56px) 0;border-top:1px solid rgba(20,24,28,0.14);
    align-items:center;
  }
  .proj-item:last-child{border-bottom:1px solid rgba(20,24,28,0.14);}
  .proj-code{font-family:var(--mono);font-size:12px;color:var(--wine);letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:14px;display:block;}
  .proj-info h3{font-family:var(--display);font-weight:600;font-size:clamp(22px,2.8vw,34px);margin-bottom:22px;line-height:1.16;}
  .proj-rule{width:32px;height:2px;background:var(--wine);}
  .proj-description{font-size:14.5px;line-height:1.7;color:#495259;margin-top:20px;max-width:52ch;}

  /* Carrossel de imagens do projeto — crossfade, sem zoom/lightbox.
     Imagens são documentos técnicos: object-fit:contain em moldura neutra,
     sem filtros, sem overlay e sem scale() no hover. */
  .project-carousel{position:relative;min-width:0;width:100%;max-width:640px;}
  .pc-slides{position:relative;overflow:hidden;aspect-ratio:16/10;background:#f7f7f5;border:1px solid rgba(20,24,28,0.16);touch-action:pan-y;}
  .pc-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .62s ease,visibility .62s ease;pointer-events:none;}
  .pc-slide.is-active{opacity:1;visibility:visible;}
  .pc-slide img{width:100%;height:100%;object-fit:contain;object-position:center;padding:6px;transform:none;cursor:default;user-select:none;-webkit-user-drag:none;}
  .pc-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 16px;padding-top:12px;}
  .pc-caption{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#424f58;}
  .pc-controls{display:flex;align-items:center;gap:6px;}
  .pc-arrow{
    width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
    background:transparent;color:var(--ink);border:1px solid rgba(20,24,28,0.3);
    font-size:16px;line-height:1;cursor:pointer;transition:background .25s,color .25s,border-color .25s;
  }
  .pc-arrow:hover{background:var(--wine);color:var(--paper);border-color:var(--wine);}
  .pc-dots{display:flex;align-items:center;}
  .pc-dot{width:22px;height:34px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;}
  .pc-dot::before{content:"";width:18px;height:3px;background:rgba(20,24,28,0.25);transition:background .25s;}
  .pc-dot.active::before{background:var(--wine);}
  .pc-arrow:focus-visible,.pc-dot:focus-visible{outline:2px solid var(--wine);outline-offset:2px;}
  .pc-count{font-family:var(--mono);font-size:12px;color:#5d6a70;font-variant-numeric:tabular-nums;margin-left:8px;}
  @media(max-width:760px){.proj-item{grid-template-columns:1fr;gap:22px;}.project-carousel{max-width:100%;}.pc-slides{aspect-ratio:16/11;}}
  @media(max-width:420px){.pc-slides{aspect-ratio:5/4;}}

  /* ---------- 08 EXPERTISE ---------- */
  .expertise{background:var(--navy-2);}
  .exp-wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:start;}
  .exp-head{position:sticky;top:120px;}
  .exp-head .eyebrow{color:var(--wine-light);margin-bottom:18px;}
  .exp-head h2{font-family:var(--display);font-weight:700;font-size:clamp(28px,3.6vw,46px);line-height:1.12;max-width:12ch;}
  .exp-list{border-top:1px solid var(--line);}
  .exp-item{border-bottom:1px solid var(--line);}
  .exp-trigger{
    width:100%;display:flex;justify-content:space-between;align-items:center;
    padding:26px 4px;text-align:left;gap:20px;
  }
  .exp-trigger h3{font-family:var(--display);font-weight:600;font-size:clamp(19px,2.2vw,26px);color:var(--paper);}
  .exp-num{font-family:var(--mono);font-size:12px;color:var(--mist-dim);}
  .exp-plus{position:relative;width:14px;height:14px;flex-shrink:0;}
  .exp-plus::before,.exp-plus::after{
    content:'';position:absolute;background:var(--mist);transition:transform .4s var(--ease), background .3s;
  }
  .exp-plus::before{left:0;top:50%;width:100%;height:1px;transform:translateY(-50%);}
  .exp-plus::after{top:0;left:50%;width:1px;height:100%;transform:translateX(-50%);}
  .exp-item.open .exp-plus::after{transform:translateX(-50%) rotate(90deg);opacity:0;}
  .exp-item.open .exp-plus::before{background:var(--wine-light);}
  .exp-panel{max-height:0;overflow:hidden;transition:max-height .5s var(--ease);}
  .exp-panel-inner{padding:0 4px 30px;display:flex;gap:28px;flex-wrap:wrap;}
  .exp-panel-inner p{font-size:14px;color:var(--mist);max-width:44ch;}
  .exp-panel-inner ul{list-style:none;font-family:var(--mono);font-size:11px;color:var(--mist-dim);display:flex;flex-direction:column;gap:8px;}
  @media(max-width:860px){.exp-wrap{grid-template-columns:1fr;}.exp-head{position:static;}}

  /* ---------- 09 MANIFESTO ---------- */
  .manifesto{
    background:var(--wine);
    display:flex;align-items:center;justify-content:center;text-align:center;
    padding:clamp(110px,16vw,220px) clamp(20px,6vw,80px);
    position:relative;overflow:hidden;
  }
  .manifesto-strata{position:absolute;inset:0;opacity:0.18;color:var(--paper);pointer-events:none;}
  h2.manifesto-text{
    position:relative;z-index:1;
    font-family:var(--display);font-weight:700;font-size:clamp(32px,6vw,84px);
    line-height:1.05;max-width:22ch;letter-spacing:-0.01em;text-wrap:balance;
  }
  @media(max-width:600px){h2.manifesto-text{font-size:clamp(22px,6.4vw,36px);}.manifesto{padding-left:14px;padding-right:14px;}}

  /* ---------- 10 CONTATO ---------- */
  .contact{background:var(--navy);padding-bottom:0;}
  .contact-inner{display:flex;flex-direction:column;align-items:flex-start;}
  .contact .eyebrow{color:var(--wine-light);margin-bottom:22px;}
  h2.contact-headline{
    font-family:var(--display);font-weight:700;font-size:clamp(32px,5.6vw,74px);
    line-height:1.08;max-width:18ch;margin-bottom:18px;
  }
  .contact-sub{
    color:var(--mist);font-size:15px;max-width:52ch;margin-bottom:40px;font-weight:300;
  }
  .contact-cta{
    display:inline-flex;align-items:center;gap:14px;
    font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;
    padding:18px 28px;border:1px solid var(--line-strong);border-radius:2px;
    transition:background .35s, border-color .35s;
  }
  .contact-cta svg{width:14px;height:14px;transition:transform .3s var(--ease);}
  .contact-cta:hover{background:var(--wine);border-color:var(--wine);}
  .contact-cta:hover svg{transform:translateX(4px);}

  /* contact form */
  .contact-form{
    width:100%;max-width:640px;
    background:var(--paper);color:var(--ink);
    padding:clamp(28px,4vw,44px);
    border-radius:2px;
  }
  .cf-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .cf-field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
  .cf-field.cf-full{grid-column:1/-1;}
  .cf-field label{
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
    color:var(--mist-dim);
  }
  .cf-field input,.cf-field textarea{
    font-family:var(--body);font-size:15px;color:var(--ink);
    background:transparent;border:none;border-bottom:1px solid rgba(20,24,28,0.28);
    padding:8px 2px;transition:border-color .3s;
  }
  .cf-field textarea{resize:vertical;min-height:84px;line-height:1.5;}
  .cf-field input::placeholder,.cf-field textarea::placeholder{color:#9aa19f;font-size:13.5px;}
  .cf-field input:focus,.cf-field textarea:focus{outline:none;border-color:var(--wine);box-shadow:0 1px 0 0 var(--wine);}
  .cf-field input:focus-visible,.cf-field textarea:focus-visible{outline:2px solid var(--wine);outline-offset:2px;border-radius:1px;}
  .cf-submit{
    display:inline-flex;align-items:center;gap:12px;margin-top:6px;
    font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
    padding:15px 26px;background:var(--ink);color:var(--paper);border-radius:2px;
    transition:background .3s;
  }
  .cf-submit svg{width:12px;height:12px;transition:transform .3s var(--ease);}
  .cf-submit:hover{background:var(--wine);}
  .cf-submit:hover svg{transform:translateX(3px);}
  .cf-submit:disabled{opacity:.55;cursor:default;}
  .cf-status{margin-top:16px;font-size:13px;font-family:var(--body);min-height:1.2em;}
  .cf-status.ok{color:#2f6b3f;}
  .cf-status.err{color:var(--wine);}
  @media(max-width:560px){
    .cf-row{grid-template-columns:1fr;}
    .cf-field{margin-bottom:16px;}
  }

  footer{
    margin-top:clamp(80px,10vw,120px);
    border-top:1px solid var(--line);
    padding:44px clamp(20px,6vw,80px) 40px;
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px;
  }
  .footer-col h4{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mist-dim);margin-bottom:14px;}
  .footer-logo{height:56px;width:auto;margin-bottom:16px;}
  .footer-col a,.footer-col p{display:block;font-size:13px;color:var(--mist);margin-bottom:8px;}
  .footer-col a:hover{color:var(--paper);}
  .footer-bottom{font-family:var(--mono);font-size:11px;color:var(--mist-dim);}

  /* ---------- reveal utility ---------- */
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease), transform .9s var(--ease);}
  .reveal.in-view{opacity:1;transform:translateY(0);}
  .reveal-mask{position:relative;overflow:hidden;}
  .reveal-mask .rm-cover{
    position:absolute;inset:0;background:var(--paper);z-index:3;
    transform:scaleX(1);transform-origin:right;
    transition:transform 1.1s var(--ease);
  }
  .reveal-mask.dark .rm-cover{background:var(--navy);}
  .reveal-mask.in-view .rm-cover{transform:scaleX(0);}

  @media(max-width:1000px){
    nav.main-nav .nav-links{display:none;}
    nav.main-nav .nav-cta{display:none;}
    .nav-toggle{display:flex;}
  }
  @media(max-width:860px){
    .cap-row{padding:20px 0;}
  }

  /* ---------- utility classes (replacing former inline style="" attrs) ---------- */
  .nav-links{display:flex;gap:clamp(18px,3vw,40px);}
  .hp-field{display:none;}
  .delay-100{transition-delay:.1s;}
  .delay-120{transition-delay:.12s;}
  .delay-150{transition-delay:.15s;}
  .delay-240{transition-delay:.24s;}
  .delay-250{transition-delay:.25s;}
  .delay-300{transition-delay:.3s;}
  .delay-360{transition-delay:.36s;}
  .delay-400{transition-delay:.4s;}
  .delay-450{transition-delay:.45s;}
  .delay-480{transition-delay:.48s;}
  .delay-550{transition-delay:.55s;}
  .delay-600{transition-delay:.6s;}
  .delay-700{transition-delay:.7s;}

/* ============ LGPD / COOKIE CONSENT ============ */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:var(--navy);border-top:1px solid var(--line-strong);
  padding:20px clamp(16px,4vw,40px);
  animation:cookieSlideUp .5s var(--ease);
}
@keyframes cookieSlideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
.cookie-banner[hidden]{display:none;}
.cookie-banner-inner{
  max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;
}
.cookie-banner-inner p{font-size:13px;color:var(--mist);max-width:60ch;line-height:1.6;}
.cookie-banner-inner p a{color:var(--paper);text-decoration:underline;text-underline-offset:2px;}
.cookie-banner-actions{display:flex;gap:10px;flex-wrap:wrap;}

.cookie-btn{
  font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  padding:11px 18px;border-radius:2px;white-space:nowrap;transition:background .3s,border-color .3s,color .3s;
}
.cookie-btn-ghost{background:transparent;color:var(--mist);border:1px solid transparent;text-decoration:underline;text-underline-offset:3px;}
.cookie-btn-ghost:hover{color:var(--paper);}
.cookie-btn-outline{background:transparent;color:var(--paper);border:1px solid var(--line-strong);}
.cookie-btn-outline:hover{background:rgba(243,239,231,0.08);}
.cookie-btn-solid{background:var(--wine);color:var(--paper);border:1px solid var(--wine);}
.cookie-btn-solid:hover{background:var(--wine-light);}

.cookie-modal{
  position:fixed;inset:0;z-index:210;
  background:rgba(11,22,36,0.72);backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.cookie-modal[hidden]{display:none;}
.cookie-modal-card{
  background:var(--paper);color:var(--ink);max-width:560px;width:100%;
  border-radius:2px;max-height:85vh;overflow-y:auto;
}
.cookie-modal-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 26px;border-bottom:1px solid rgba(20,24,28,0.14);
}
.cookie-modal-head h3{font-family:var(--display);font-weight:600;font-size:20px;}
.cookie-modal-close{font-size:24px;line-height:1;color:var(--mist-dim);}
.cookie-modal-close:hover{color:var(--ink);}
.cookie-modal-body{padding:10px 26px;}
.cookie-cat{padding:18px 0;border-bottom:1px solid rgba(20,24,28,0.1);}
.cookie-cat:last-child{border-bottom:none;}
.cookie-cat-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.cookie-cat-head strong{font-family:var(--body);font-weight:600;font-size:14.5px;}
.cookie-cat p{font-size:13px;color:#5d6a70;line-height:1.55;}
.cookie-toggle-locked{
  font-family:var(--mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--mist-dim);border:1px solid rgba(20,24,28,0.18);border-radius:20px;padding:4px 10px;
}
.cookie-switch{position:relative;display:inline-block;width:38px;height:22px;flex-shrink:0;}
.cookie-switch input{opacity:0;width:0;height:0;}
.cookie-switch-slider{
  position:absolute;inset:0;background:#c9c2b4;border-radius:20px;cursor:pointer;transition:background .3s;
}
.cookie-switch-slider::before{
  content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;
  background:#fff;border-radius:50%;transition:transform .3s;
}
.cookie-switch input:checked + .cookie-switch-slider{background:var(--wine);}
.cookie-switch input:checked + .cookie-switch-slider::before{transform:translateX(16px);}
.cookie-modal-foot{
  display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;
  padding:20px 26px;border-top:1px solid rgba(20,24,28,0.14);
}
@media(max-width:560px){
  .cookie-banner-inner{flex-direction:column;align-items:stretch;}
  .cookie-banner-actions{justify-content:stretch;}
  .cookie-banner-actions .cookie-btn{flex:1;}
}

.cf-lgpd{
  font-size:12px;line-height:1.6;color:var(--mist-dim);max-width:56ch;margin:4px 0 18px;
}
.cf-lgpd a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;}
.cf-trust{
  margin-top:12px;font-family:var(--mono);font-size:11px;color:var(--mist-dim);letter-spacing:.02em;
}

/* footer button that looks like a footer link (reopens cookie preferences) */
.footer-link-btn{
  display:block;font-size:13px;color:var(--mist);margin-bottom:8px;
  background:none;border:none;padding:0;text-align:left;cursor:pointer;
  font-family:var(--body);font-weight:300;
}
.footer-link-btn:hover{color:var(--paper);}

/* ---------- acessibilidade: foco visível em toda a navegação por teclado ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--wine-light);
  outline-offset: 2px;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:999;
  background:var(--wine);color:#fff;padding:12px 20px;
  font-family:var(--mono);font-size:13px;text-decoration:none;
}
.skip-link:focus{left:12px;top:12px;}

/* ---------- contact form: accordions (serviços / prazo) ---------- */
.cf-field-label-standalone{
  display:block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--mist-dim);margin-bottom:8px;
}
.cf-accordion{
  border:1px solid rgba(20,24,28,0.22);border-radius:2px;background:transparent;
}
.cfa-trigger{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:13px 16px;font-family:var(--body);font-size:14px;color:var(--ink);
  text-align:left;
}
.cfa-trigger-text{color:#5d6a70;}
.cf-accordion.has-selection .cfa-trigger-text{color:var(--ink);}
.cfa-chevron{width:11px;height:8px;flex-shrink:0;transition:transform .3s var(--ease);color:var(--mist-dim);}
.cfa-chevron svg{width:100%;height:100%;}
.cfa-chevron polyline{stroke:currentColor;stroke-width:1.4;}
.cf-accordion.open .cfa-chevron{transform:rotate(180deg);}
.cf-accordion.open .cfa-trigger{border-bottom:1px solid rgba(20,24,28,0.14);}

.cfa-panel{max-height:0;overflow:hidden;transition:max-height .45s var(--ease);}
.cfa-panel-inner{padding:14px 16px 16px;max-height:280px;overflow-y:auto;}

.cfa-group-label{
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--wine);margin:14px 0 8px;
}
.cfa-group-label:first-child{margin-top:0;}

.cfa-check{
  display:flex;align-items:flex-start;gap:10px;padding:6px 2px;cursor:pointer;
  font-size:13.5px;color:#3d454b;line-height:1.4;
}
.cfa-check input{margin-top:3px;accent-color:var(--wine);flex-shrink:0;cursor:pointer;}
.cfa-check:hover span{color:var(--ink);}
.cfa-check-highlight{
  border:1px dashed rgba(107,26,26,0.4);border-radius:2px;padding:12px 14px;background:rgba(107,26,26,0.04);
  font-size:14px;color:var(--ink);
}
@media(max-width:560px){
  .cfa-panel-inner{max-height:240px;}
}

/* ---------- contact form: item wrapper + quantity stepper ---------- */
.cfa-item{border-bottom:1px solid rgba(20,24,28,0.06);}
.cfa-item:last-child{border-bottom:none;}
.cfa-hint{
  font-size:12px;color:var(--mist-dim);margin:0 0 10px;font-style:italic;
}
.cfa-qty{
  display:flex;align-items:center;gap:10px;margin:2px 0 10px 26px;
}
.cfa-qty[hidden]{display:none;}
.cfa-qty-btn{
  width:26px;height:26px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(20,24,28,0.25);border-radius:2px;background:transparent;
  font-family:var(--mono);font-size:15px;line-height:1;color:var(--ink);
  transition:background .2s,border-color .2s;
}
.cfa-qty-btn:hover{background:var(--wine);border-color:var(--wine);color:#fff;}
.cfa-qty-input{
  width:44px;text-align:center;border:1px solid rgba(20,24,28,0.25);border-radius:2px;
  font-family:var(--mono);font-size:13px;color:var(--ink);padding:5px 2px;
  -moz-appearance:textfield;
}
.cfa-qty-input::-webkit-outer-spin-button,
.cfa-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.cfa-qty-label{font-size:11px;color:var(--mist-dim);font-family:var(--mono);}

/* ---------- contact form: select (tipo de obra) ---------- */
.cf-field select{
  font-family:var(--body);font-size:15px;color:var(--ink);
  background:transparent;border:none;border-bottom:1px solid rgba(20,24,28,0.28);
  padding:8px 2px;transition:border-color .3s;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpolyline points='1,1 6,7 11,1' fill='none' stroke='%235D6A78' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center;background-size:11px 7px;
  padding-right:20px;
}
.cf-field select:focus{outline:none;border-color:var(--wine);}
.cf-field select:focus-visible{outline:2px solid var(--wine);outline-offset:2px;}

/* ---------- contact form: required field marker ---------- */
.cf-required{color:var(--wine);font-weight:600;}
.cf-required-note{font-size:11px;color:var(--mist-dim);margin:2px 0 18px;font-family:var(--mono);}
