:root{--bg:#fbf8f2;--paper:#fffaf1;--ink:#16120e;--muted:#6d6255;--black:#0f0e0c;--gold:#c6963a;--gold2:#f0b44d;--red:#7a1012;--line:rgba(198,150,58,.22);--shadow:0 30px 80px rgba(27,18,8,.18);--radius:28px;--font:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;font-family:var(--font);color:var(--ink);overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.progress{position:fixed;inset:0 auto auto 0;height:3px;background:linear-gradient(90deg,var(--gold),#fff1b6);width:0;z-index:1000}.topbar{height:36px;background:#070706;color:#d8c09b;display:flex;gap:30px;align-items:center;padding:0 5vw;font-size:12px;letter-spacing:.06em}.header{position:sticky;top:0;z-index:99;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:16px 5vw;background:rgba(255,250,241,.88);border-bottom:1px solid rgba(0,0,0,.08);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:12px;min-width:180px}.brand img{width:42px;height:42px;border-radius:50%;box-shadow:0 8px 24px rgba(122,16,18,.25)}.brand b{font-family:var(--serif);letter-spacing:.22em;font-size:20px}.brand small{display:block;color:var(--gold);font-size:9px;letter-spacing:.22em;text-transform:uppercase}nav{display:flex;gap:23px;align-items:center;font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:700}nav a{position:relative;color:#342d25}nav a:after{content:'';position:absolute;left:0;bottom:-10px;width:0;height:2px;background:var(--gold);transition:.35s}nav a:hover:after,nav a.active:after{width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--gold2),var(--gold));color:#14100c;padding:16px 22px;border-radius:14px;text-transform:uppercase;font-weight:900;font-size:12px;letter-spacing:.08em;border:1px solid rgba(255,255,255,.26);box-shadow:0 12px 35px rgba(198,150,58,.28);transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s}.btn:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(198,150,58,.38)}.btn.small{padding:12px 16px}.btn.ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(198,150,58,.6);box-shadow:none}.menu{display:none;border:1px solid #ddd;background:#fff;border-radius:999px;padding:12px 18px}.hero{min-height:74vh;display:grid;align-items:center;position:relative;isolation:isolate;overflow:hidden;background:#111}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.35),rgba(0,0,0,.08)),var(--img) center/cover no-repeat;z-index:-2;transform:scale(1.05);animation:ken 18s ease-in-out infinite alternate}.hero:after{content:'';position:absolute;inset:auto 0 0;height:38%;background:linear-gradient(0deg,#111,transparent);z-index:-1}@keyframes ken{to{transform:scale(1.14) translateX(-1.5%)}}.hero .content{width:min(680px,90vw);margin-left:5vw;color:#fff;padding:80px 0}.eyebrow{display:block;color:var(--gold2);font-size:12px;font-weight:900;letter-spacing:.22em;text-transform:uppercase;margin-bottom:18px}.hero h1,.title{font-family:var(--serif);font-weight:900;letter-spacing:-.04em;line-height:.92}.hero h1{font-size:clamp(45px,7vw,98px);margin:0 0 22px}.hero p,.lead{font-size:clamp(17px,2vw,22px);line-height:1.7;color:#eadfce}.actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}.strip{display:grid;grid-template-columns:repeat(6,1fr);background:#111;color:#eee;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.strip div{padding:22px;border-right:1px solid rgba(255,255,255,.12);font-size:13px;color:#cfc4b4}.strip b{display:block;color:#fff;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.section{padding:90px 5vw;position:relative}.section.dark{background:radial-gradient(circle at 85% 15%,rgba(198,150,58,.16),transparent 30%),#15120e;color:#fff}.section.soft{background:#fff}.title{font-size:clamp(34px,5vw,68px);margin:0 0 24px}.lead,.section p{color:var(--muted);line-height:1.75}.dark p{color:#d8cfc0}.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}.media{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#111}.media img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/11;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}.media:hover img{transform:scale(1.06)}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.card{background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 15px 50px rgba(31,20,10,.08);border:1px solid rgba(0,0,0,.06);transform-style:preserve-3d;transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s}.card:hover{transform:translateY(-12px) rotateX(3deg);box-shadow:0 30px 90px rgba(31,20,10,.16)}.card img{width:100%;height:230px;object-fit:cover}.card .pad{padding:24px}.card h3{font-family:var(--serif);font-size:30px;margin:0 0 10px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.step,.info{padding:26px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.06);backdrop-filter:blur(12px)}.step h3,.info h3{margin:0 0 10px}.showcase{display:grid;grid-template-columns:1.2fr .8fr;gap:28px}.sticky-note{position:sticky;top:110px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery img{border-radius:20px;aspect-ratio:4/3;object-fit:cover}.page-hero{padding:82px 5vw 50px;background:linear-gradient(135deg,#fffaf1,#f4eadb)}.page-hero h1{font-family:var(--serif);font-size:clamp(42px,6vw,86px);line-height:.95;margin:0}.amb-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}.amb-hero .media img{aspect-ratio:16/10}.modules{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:m}.module{counter-increment:m;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:18px;padding:20px}.module:before{content:counter(m,decimal-leading-zero);font-weight:900;color:var(--gold);display:block;margin-bottom:10px}.journal-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.journal-card:first-child{grid-row:span 2}.journal-card{background:#fff;border-radius:24px;overflow:hidden;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow)}.journal-card img{height:260px;width:100%;object-fit:cover}.journal-card:first-child img{height:520px}.whats{position:fixed;right:24px;bottom:24px;z-index:90;background:#25d366;color:#fff;padding:15px 20px;border-radius:999px;font-weight:900;box-shadow:0 18px 40px rgba(37,211,102,.35)}footer{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;background:#080807;color:#eee;padding:60px 5vw}footer b{font-family:var(--serif);letter-spacing:.14em}footer p,footer a{color:#c7bba8;line-height:1.8}.cookie{position:fixed;left:20px;bottom:20px;z-index:100;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:16px;max-width:430px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:center}.cookie p{margin:0;font-size:13px}.cookie button{border:0;border-radius:12px;padding:10px 14px;background:var(--black);color:#fff}.cookie.hide{display:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}.reveal.show{opacity:1;transform:none}.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.spec{border-left:3px solid var(--gold);padding:12px 18px;background:rgba(198,150,58,.06)}@container (min-width: 600px){.card .pad{padding:26px}}@media (max-width:1100px){nav{position:fixed;inset:86px 16px auto 16px;background:#fff;display:none;flex-direction:column;padding:22px;border-radius:22px;box-shadow:var(--shadow)}nav.open{display:flex}.menu{display:block}.strip{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:repeat(2,1fr)}.split,.amb-hero,.showcase,.journal-grid{grid-template-columns:1fr}.modules{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.topbar{display:none}.header{padding:12px 4vw}.brand b{font-size:16px}.hero{min-height:72vh}.grid,.steps,.modules,.specs,.gallery,footer{grid-template-columns:1fr}.card img{height:210px}.strip{grid-template-columns:1fr}.cookie{right:12px;left:12px;bottom:12px;max-width:none;flex-direction:column;align-items:flex-start}.section{padding:64px 5vw}.journal-card:first-child img,.journal-card img{height:260px}.whats{right:14px;bottom:14px}}


/* ===== Mestre V7: camada de experiência 2026 ===== */
:root{--ease:cubic-bezier(.22,1,.36,1);--glass:rgba(255,250,241,.72)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(700px circle at var(--mx,50%) var(--my,20%),rgba(240,180,77,.13),transparent 38%);z-index:0}body>*{position:relative}.header{transition:padding .35s var(--ease),background .35s var(--ease)}.header.compact{padding-top:9px;padding-bottom:9px;background:rgba(255,250,241,.96)}
.ambient-canvas{position:absolute;inset:0;z-index:-1;opacity:.45;mix-blend-mode:screen}.hero .content{animation:heroIn 1s var(--ease) both}@keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.btn{position:relative;overflow:hidden}.btn::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--bx,50%) var(--by,50%),rgba(255,255,255,.55),transparent 28%);opacity:0;transition:.35s}.btn:hover::after{opacity:.75}
.lux-panel{border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(255,245,225,.56));box-shadow:var(--shadow);padding:34px;backdrop-filter:blur(18px)}.dark .lux-panel{background:rgba(255,255,255,.06)}
.feature-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.feature{border:1px solid var(--line);border-radius:20px;padding:20px;background:rgba(255,255,255,.08);min-height:130px}.feature b{font-family:var(--serif);font-size:24px;display:block;margin-bottom:8px}.feature small{color:var(--gold2);font-weight:900;letter-spacing:.16em;text-transform:uppercase}.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:f}.flow-card{counter-increment:f;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:24px;padding:26px;position:relative;overflow:hidden}.flow-card::before{content:counter(f,decimal-leading-zero);font-size:58px;font-family:var(--serif);color:rgba(198,150,58,.18);position:absolute;right:20px;top:5px}.flow-card h3{margin:0 0 12px;font-size:24px}.image-zoom{cursor:zoom-in}.lightbox{position:fixed;inset:0;background:rgba(7,6,5,.86);z-index:200;display:none;align-items:center;justify-content:center;padding:4vw;backdrop-filter:blur(16px)}.lightbox.open{display:flex}.lightbox img{max-height:88vh;border-radius:24px;box-shadow:0 40px 120px #000}.lightbox button{position:absolute;top:22px;right:22px;border:1px solid var(--line);background:#111;color:#fff;border-radius:999px;padding:12px 16px}
.filterbar{position:sticky;top:86px;z-index:30;background:rgba(255,250,241,.84);backdrop-filter:blur(12px);padding:14px 5vw;border-bottom:1px solid rgba(0,0,0,.06);display:flex;gap:10px;overflow:auto}.chip{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:10px 14px;background:#fff;color:#352920;font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.chip.active{background:#111;color:#fff;border-color:#111}.card[hidden]{display:none}.meter{height:8px;border-radius:999px;background:#eee;overflow:hidden}.meter i{display:block;height:100%;width:var(--v);background:linear-gradient(90deg,var(--gold),var(--red))}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi{padding:24px;border-radius:22px;background:#111;color:#fff}.kpi b{font-size:38px;font-family:var(--serif);display:block;color:var(--gold2)}
.command{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:250;display:none;align-items:flex-start;justify-content:center;padding-top:10vh}.command.open{display:flex}.command-box{width:min(720px,92vw);background:#fff;border-radius:26px;box-shadow:0 40px 160px #000;overflow:hidden}.command input{width:100%;border:0;border-bottom:1px solid #eee;padding:22px;font-size:20px;outline:0}.command a{display:block;padding:16px 22px;border-bottom:1px solid #eee}.command a:hover{background:#fff6e6}
@supports (animation-timeline:view()){.reveal{animation:rise both;animation-timeline:view();animation-range:entry 0% cover 28%}@keyframes rise{from{opacity:0;transform:translateY(38px) scale(.98)}to{opacity:1;transform:none}}}
@media(max-width:1100px){.feature-row,.flow,.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.feature-row,.flow,.kpi-grid{grid-template-columns:1fr}.filterbar{top:68px}.lux-panel{padding:22px}}

/* Ajustes MESTREBR montagem de móveis */
.brand img{object-fit:contain;background:#fff;border-radius:12px;padding:3px}.hero:before{background-position:center center}.hero .content{max-width:760px}.card h3{font-size:27px}@media(max-width:620px){.hero:before{background-position:58% center}.hero h1{font-size:48px}.brand{min-width:auto}.brand small{letter-spacing:.12em}}

/* Hero principal: imagem inserida diretamente na página inicial para carregamento confiável no Netlify */
.hero{background:#111;min-height:74vh}
.hero:before,.hero:after{display:none!important}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:-3}
.hero-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.52) 34%,rgba(0,0,0,.16) 66%,rgba(0,0,0,.06) 100%)}
.hero .content{position:relative;z-index:1}
@media(max-width:620px){.hero-image{object-position:61% center}.hero-overlay{background:linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.62) 58%,rgba(0,0,0,.22) 100%)}}

/* ===== MESTREBR Motion System 2026 ===== */
:root{
  --motion-fast:180ms;
  --motion-normal:320ms;
  --motion-slow:600ms;
  --motion-hero:900ms;
  --ease-standard:cubic-bezier(.2,0,0,1);
  --ease-emphasis:cubic-bezier(.16,1,.3,1);
  --ease-exit:cubic-bezier(.4,0,1,1);
  --reveal-distance-sm:16px;
  --reveal-distance-md:28px;
  --reveal-distance-lg:48px;
  --header-h:72px;
}
html{scroll-padding-top:calc(var(--header-h) + 12px)}
section[id]{scroll-margin-top:calc(var(--header-h) + 16px)}

/* Progress bar uses scaleX for GPU */
.progress{transform-origin:left center;transform:scaleX(0);width:100%!important;transition:none;will-change:transform}

/* Smart header */
.header{transition:padding var(--motion-normal) var(--ease-standard),background var(--motion-normal) var(--ease-standard),box-shadow var(--motion-normal) var(--ease-standard),transform var(--motion-normal) var(--ease-standard)}
.header.compact{padding-top:8px;padding-bottom:8px;background:rgba(255,250,241,.96);box-shadow:0 8px 32px rgba(27,18,8,.08)}
.header.is-hidden{transform:translateY(-110%)}
.header.menu-open{transform:none}
body.nav-open{overflow:hidden}

/* Mobile nav refined */
@media(max-width:1100px){
  nav{
    position:fixed;inset:0 0 0 auto;width:min(360px,92vw);height:100dvh;
    background:rgba(255,250,241,.98);backdrop-filter:blur(20px);
    display:flex!important;flex-direction:column;gap:8px;
    padding:100px 28px 40px;border-radius:0;
    box-shadow:-20px 0 60px rgba(0,0,0,.18);
    transform:translateX(105%);
    transition:transform var(--motion-slow) var(--ease-emphasis);
    z-index:120;overflow-y:auto;
  }
  nav.open{transform:translateX(0)}
  nav a{font-size:15px;padding:14px 4px;border-bottom:1px solid rgba(0,0,0,.06)}
  nav a:after{display:none}
  .menu{display:inline-flex;align-items:center;justify-content:center;z-index:130;position:relative}
  .nav-backdrop{position:fixed;inset:0;background:rgba(7,6,5,.45);z-index:110;opacity:0;pointer-events:none;transition:opacity var(--motion-normal) var(--ease-standard)}
  .nav-backdrop.open{opacity:1;pointer-events:auto}
}

/* Data-animate system — content visible without JS */
[data-animate]{opacity:1;transform:none;transition:opacity var(--motion-slow) var(--ease-emphasis),transform var(--motion-slow) var(--ease-emphasis),filter var(--motion-slow) var(--ease-emphasis)}
.js-enabled [data-animate]:not(.is-visible){opacity:0}
.js-enabled [data-animate="fade-up"]:not(.is-visible){transform:translate3d(0,var(--reveal-distance-md),0)}
.js-enabled [data-animate="fade-down"]:not(.is-visible){transform:translate3d(0,calc(var(--reveal-distance-md)*-1),0)}
.js-enabled [data-animate="fade-left"]:not(.is-visible){transform:translate3d(var(--reveal-distance-md),0,0)}
.js-enabled [data-animate="fade-right"]:not(.is-visible){transform:translate3d(calc(var(--reveal-distance-md)*-1),0,0)}
.js-enabled [data-animate="zoom-in"]:not(.is-visible){transform:scale(.94)}
.js-enabled [data-animate="scale-up"]:not(.is-visible){transform:scale(.92) translate3d(0,12px,0)}
.js-enabled [data-animate].is-visible{opacity:1;transform:none;filter:none}
.reveal{opacity:1;transform:none}
.js-enabled .reveal:not(.show){opacity:0;transform:translate3d(0,var(--reveal-distance-md),0)}
.js-enabled .reveal.show{opacity:1;transform:none}

/* Stagger items inherit delay via CSS var */
[data-stagger-item]{transition-delay:var(--stagger-delay,0ms)}

/* Hero cinematic layers */
.hero-image{transition:transform 12s var(--ease-standard);will-change:transform}
.hero.is-ready .hero-image{transform:scale(1.04)}
.js-enabled .hero .eyebrow{opacity:0;transform:translateY(12px);animation:heroPiece var(--motion-hero) var(--ease-emphasis) .15s both}
.js-enabled .hero h1{opacity:0;transform:translateY(20px);animation:heroPiece var(--motion-hero) var(--ease-emphasis) .28s both}
.js-enabled .hero p{opacity:0;transform:translateY(16px);animation:heroPiece var(--motion-hero) var(--ease-emphasis) .42s both}
.js-enabled .hero .actions{opacity:0;transform:translateY(14px);animation:heroPiece var(--motion-hero) var(--ease-emphasis) .56s both}
@keyframes heroPiece{to{opacity:1;transform:none}}
.hero-scroll-hint{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(255,255,255,.7);font-size:11px;letter-spacing:.16em;text-transform:uppercase;z-index:2;animation:hintPulse 2.4s var(--ease-standard) infinite}
.hero-scroll-hint span{width:18px;height:28px;border:1.5px solid rgba(255,255,255,.45);border-radius:12px;position:relative}
.hero-scroll-hint span:after{content:"";position:absolute;top:6px;left:50%;width:3px;height:6px;margin-left:-1.5px;background:var(--gold2);border-radius:2px;animation:hintDot 2s var(--ease-standard) infinite}
@keyframes hintPulse{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes hintDot{0%{opacity:1;transform:translateY(0)}70%{opacity:0;transform:translateY(8px)}100%{opacity:0}}

/* Cards depth */
.card{transition:transform var(--motion-normal) var(--ease-emphasis),box-shadow var(--motion-normal) var(--ease-emphasis)}
.card img{transition:transform 1s var(--ease-emphasis)}
@media(hover:hover) and (pointer:fine){
  .card:hover{transform:translate3d(0,-10px,0);box-shadow:0 28px 80px rgba(31,20,10,.14)}
  .card:hover img{transform:scale(1.05)}
  .btn:hover{transform:translateY(-3px)}
  .btn:active{transform:translateY(0) scale(.98)}
}
.card:focus-visible,.btn:focus-visible,nav a:focus-visible,.chip:focus-visible,.menu:focus-visible{
  outline:2px solid var(--gold);outline-offset:3px
}

/* Flow cards */
.flow-card{transition:transform var(--motion-normal) var(--ease-emphasis),box-shadow var(--motion-normal) var(--ease-emphasis)}
@media(hover:hover) and (pointer:fine){
  .flow-card:hover{transform:translateY(-6px);box-shadow:0 18px 50px rgba(31,20,10,.1)}
}

/* Strip entrance */
.strip div{transition:opacity var(--motion-slow) var(--ease-emphasis),transform var(--motion-slow) var(--ease-emphasis)}

/* Back to top */
.back-top{
  position:fixed;right:24px;bottom:88px;z-index:89;
  width:46px;height:46px;border-radius:50%;
  background:#111;color:#fff;border:1px solid rgba(198,150,58,.4);
  display:grid;place-items:center;cursor:pointer;
  opacity:0;pointer-events:none;transform:translateY(12px);
  transition:opacity var(--motion-normal) var(--ease-standard),transform var(--motion-normal) var(--ease-standard);
  box-shadow:0 12px 30px rgba(0,0,0,.2)
}
.back-top.show{opacity:1;pointer-events:auto;transform:none}
.back-top:hover{background:var(--gold);color:#111}
.whats{transition:transform var(--motion-normal) var(--ease-emphasis),box-shadow var(--motion-normal) var(--ease-emphasis)}
.whats:hover{transform:translateY(-3px);box-shadow:0 22px 48px rgba(37,211,102,.4)}
@media(max-width:620px){
  .back-top{right:14px;bottom:78px;width:42px;height:42px}
  .hero-scroll-hint{display:none}
}

/* Lightbox focus */
.lightbox{opacity:0;transition:opacity var(--motion-normal) var(--ease-standard)}
.lightbox.open{opacity:1}

/* Reduced motion — essential */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important
  }
  .js-enabled [data-animate]:not(.is-visible),
  .js-enabled .reveal:not(.show){opacity:1;transform:none}
  .hero-image{transform:none!important}
  .progress{transition:none}
}

/* ===== Carrossel de depoimentos (acessível) ===== */
.testimonials{padding:90px 5vw;background:var(--paper)}
.testimonials .section-head{max-width:720px;margin-bottom:40px}
.carousel{
  position:relative;
  --carousel-gap:20px;
}
.carousel__viewport{
  overflow:hidden;
  border-radius:24px;
  touch-action:pan-y;
}
.carousel__track{
  display:flex;
  gap:var(--carousel-gap);
  transition:transform var(--motion-slow) var(--ease-emphasis);
  will-change:transform;
}
.carousel__slide{
  flex:0 0 100%;
  min-width:0;
  box-sizing:border-box;
}
@media(min-width:900px){
  .carousel__slide{flex:0 0 calc((100% - var(--carousel-gap)) / 2)}
}
@media(min-width:1200px){
  .carousel__slide{flex:0 0 calc((100% - 2 * var(--carousel-gap)) / 3)}
}
.testimonial-card{
  height:100%;
  background:#fff;
  border:1px solid rgba(0,0,0,.07);
  border-radius:24px;
  padding:32px 28px;
  box-shadow:0 16px 48px rgba(31,20,10,.06);
  display:flex;
  flex-direction:column;
  gap:18px;
}
.testimonial-card .stars{
  color:var(--gold);
  letter-spacing:2px;
  font-size:14px;
  line-height:1;
}
.testimonial-card blockquote{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(18px,2.2vw,22px);
  line-height:1.55;
  color:var(--ink);
  flex:1;
}
.testimonial-card footer{
  display:flex;
  align-items:center;
  gap:14px;
  padding:0;
  background:none;
  grid-template-columns:none;
}
.testimonial-card .avatar{
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold2),var(--gold));
  color:#14100c;font-weight:900;font-size:16px;
  display:grid;place-items:center;flex-shrink:0;
}
.testimonial-card .meta strong{display:block;font-size:15px}
.testimonial-card .meta span{font-size:13px;color:var(--muted)}
.carousel__controls{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin-top:28px;flex-wrap:wrap;
}
.carousel__nav{display:flex;gap:10px}
.carousel__btn{
  width:46px;height:46px;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--ink);
  display:grid;place-items:center;cursor:pointer;
  transition:background var(--motion-fast) var(--ease-standard),
              border-color var(--motion-fast) var(--ease-standard),
              transform var(--motion-fast) var(--ease-standard);
}
.carousel__btn:hover{background:#111;color:#fff;border-color:#111}
.carousel__btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.carousel__btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
.carousel__dots{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:4px; /* hit boxes 24px side by side; visual dots stay ~10px */
}
.carousel__dot{
  position:relative;
  box-sizing:border-box;
  width:24px;   /* WCAG 2.5.8 — área de toque */
  height:24px;
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
/* ponto visual (não é a área clicável) */
.carousel__dot::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:10px;
  height:10px;
  margin:-5px 0 0 -5px;
  border-radius:50%;
  background:rgba(0,0,0,.22);
  transition:background var(--motion-fast) var(--ease-standard),
              transform var(--motion-fast) var(--ease-standard);
}
.carousel__dot[aria-current="true"]::before{
  background:var(--gold);
  transform:scale(1.2);
}
.carousel__dot:hover::before{
  background:rgba(0,0,0,.4);
}
.carousel__dot[aria-current="true"]:hover::before{
  background:var(--gold);
}
.carousel__dot:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  .carousel__dot::before{transition:none}
}
.carousel__status{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap;
}
.carousel.is-dragging .carousel__track{transition:none}
@media(max-width:620px){
  .testimonials{padding:64px 5vw}
  .testimonial-card{padding:24px 20px}
}
@media(prefers-reduced-motion:reduce){
  .carousel__track{transition:none}
}

/* ===== Acessibilidade: skip link ===== */
.skip-link{
  position:absolute;left:16px;top:0;z-index:10000;
  padding:12px 18px;border-radius:0 0 12px 12px;
  background:#111;color:#fff;font-weight:700;font-size:14px;
  transform:translateY(-120%);
  transition:transform var(--motion-fast) var(--ease-standard);
}
.skip-link:focus,.skip-link:focus-visible{
  transform:translateY(0);
  outline:2px solid var(--gold2);outline-offset:2px;
}
/* Ensure focus visible globally for interactive elements */
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;
}

.module h2,.module h3{margin:0 0 10px;font-size:1.1rem}
.card h2{font-family:var(--serif);font-size:27px;margin:0 0 10px}

/* ===== WCAG 2.2 — 2.5.8 Target Size (Minimum) =====
   Alvo mínimo 24×24 CSS px, ou espaçamento equivalente.
   Preferimos área de toque ≥24px mantendo visual compacto onde fizer sentido.
*/
:root{
  --target-min: 24px;
  --target-comfortable: 44px; /* recomendação prática (Apple/Material ~44–48) */
}

/* Dots do carrossel: regras unificadas na seção .carousel (2.5.8 hit area 24px) */

/* Links de navegação desktop: altura de linha / padding para ≥24px */
nav a{
  min-height: var(--target-min);
  display: inline-flex;
  align-items: center;
  padding: 6px 0;
}

/* Botão menu mobile */
.menu{
  min-width: var(--target-comfortable);
  min-height: var(--target-comfortable);
  padding: 12px 16px;
}

/* Botões do carrossel já ~46px; reforço explícito */
.carousel__btn{
  min-width: var(--target-comfortable);
  min-height: var(--target-comfortable);
}

/* Chips de filtro */
.chip{
  min-height: var(--target-min);
  padding: 10px 14px;
}

/* Cookie: botão Aceitar */
.cookie button{
  min-height: var(--target-min);
  min-width: var(--target-min);
  padding: 10px 14px;
}

/* Lightbox fechar */
.lightbox button{
  min-width: var(--target-comfortable);
  min-height: var(--target-comfortable);
}

/* Footer links: área de toque vertical */
footer a{
  display: inline-block;
  min-height: var(--target-min);
  padding: 4px 0;
  line-height: 1.4;
}

/* Links inline em texto (exceção "Inline" da WCAG) — não forçar 24px no meio da frase */
p a, .lead a, li a{
  /* critério 2.5.8 permite targets inline limitados pelo line-height */
  padding: 0;
  min-height: 0;
}

/* Utilitário reutilizável */
.hit-24{
  min-width: var(--target-min);
  min-height: var(--target-min);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.hit-44{
  min-width: var(--target-comfortable);
  min-height: var(--target-comfortable);
  display: inline-flex;
  align-items: center;
  justify-content: center;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         }
