/* ============ RESET ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
ul{list-style:none;}

/* ============ TOKENS ============ */
:root{
  --white:#FFFFFF;
  --off-white:#FAF8F6;
  --nude:#E8DDD4;
  --rose-nude:#DCC8BD;
  --brown:#B89F90;
  --brown-deep:#7A6552;
  --ink:#1E1E1E;
  --ink-soft:#5B5450;

  --font-display:'Playfair Display', serif;
  --font-body:'Inter', sans-serif;

  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px; --s7:96px; --s8:128px;

  --radius-sm:12px;
  --radius-md:20px;
  --radius-lg:28px;
  --shadow-soft: 0 20px 45px -20px rgba(122,101,82,0.28);
  --shadow-hover: 0 28px 55px -18px rgba(122,101,82,0.38);
  --max-w:1360px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* ============ BASE ============ */
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--off-white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  font-weight:400;
}
.container{
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 var(--s4);
}
h1,h2,h3,h4{font-family:var(--font-display); font-weight:600; letter-spacing:0.01em; color:var(--ink);}
h2{font-size:clamp(2rem, 3.2vw, 2.9rem); font-weight:500;}
h3{font-size:1.35rem; font-weight:600;}
.eyebrow{
  display:inline-flex; align-items:center; gap:var(--s2);
  font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--brown-deep); font-weight:600; margin-bottom:var(--s2);
}
.stroke-accent{
  width:64px; height:10px; flex:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cpath d='M2 8 Q20 2 40 8 T78 8 T118 6' stroke='%23B89F90' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-size:contain;
}
.stroke-accent.center{margin:0 auto var(--s2);}
.section{padding:var(--s7) 0;}
.section-head{max-width:640px; margin-bottom:var(--s5);}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head p{color:var(--ink-soft); font-size:1.02rem;}
.section-alt{background:var(--white);}

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:var(--s1);
  padding:16px 34px; border-radius:999px;
  font-size:0.92rem; font-weight:600; letter-spacing:0.02em;
  transition:transform .35s ease, box-shadow .35s ease, background .35s ease, color .35s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--ink); color:var(--white);}
.btn-primary:hover{background:var(--brown-deep); transform:translateY(-2px); box-shadow:var(--shadow-hover);}
.btn-outline{border:1.5px solid var(--ink); color:var(--ink); background:transparent;}
.btn-outline:hover{background:var(--ink); color:var(--white); transform:translateY(-2px);}
.btn-outline.on-dark{border-color:var(--white); color:var(--white);}
.btn-outline.on-dark:hover{background:var(--white); color:var(--ink);}
.btn-sm{padding:11px 22px; font-size:0.82rem; border-radius:999px; border:1.5px solid var(--ink); width:100%; text-align:center;}
.btn-sm:hover{background:var(--ink); color:var(--white);}

/* ============ MEDIA PLACEHOLDER (signature motif) ============ */
.media-ph{
  position:relative; width:100%; overflow:hidden;
  border-radius:var(--radius-md);
  background:linear-gradient(145deg, var(--nude), var(--rose-nude));
  aspect-ratio:var(--ratio, 4/5);
}
.media-ph::before{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 86 C50 62 29 56 29 35 C29 19 44 13 50 13 C56 13 71 19 71 35 C71 56 50 62 50 86 Z' fill='none' stroke='%231E1E1E' stroke-width='1.6'/%3E%3Ccircle cx='50' cy='29' r='3.2' fill='%231E1E1E'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; background-size:32%;
  opacity:0.16;
}
.media-ph.alt{background:linear-gradient(145deg, var(--rose-nude), var(--brown));}
.media-ph.alt2{background:linear-gradient(145deg, var(--off-white), var(--nude));}
.media-ph.square{--ratio:1/1;}
.media-ph.wide{--ratio:16/10;}
.media-ph.tall{--ratio:3/4;}

/* ============ HEADER ============ */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:var(--s3) 0;
  transition:background .4s ease, box-shadow .4s ease, padding .4s ease;
}
.site-header.scrolled{
  background:rgba(250,248,246,0.92); backdrop-filter:blur(10px);
  box-shadow:0 8px 30px -20px rgba(30,30,30,0.25);
  padding:var(--s2) 0;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; position:relative;}
.logo{font-family:var(--font-display); font-size:1.35rem; font-weight:600; letter-spacing:0.02em; flex:none;}
.logo-img{height:46px; width:auto; display:block;}
.mobile-logo{height:64px; width:auto; margin-bottom:var(--s2);}
.nav-desktop{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; align-items:center;}
.nav-desktop ul{display:flex; gap:var(--s4); font-size:0.9rem; font-weight:500;}
.nav-desktop a{position:relative; padding-bottom:4px;}
.nav-desktop a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .3s ease;}
.nav-desktop a:hover::after{width:100%;}
.header-ctas{display:flex; gap:var(--s2); flex:none;}
.header-ctas .btn{padding:11px 22px; font-size:0.82rem;}
.burger{display:none; width:26px; height:20px; position:relative; flex-direction:column; justify-content:space-between;}
.burger span{display:block; height:2px; width:100%; background:var(--ink); transition:.3s;}

.mobile-menu{
  position:fixed; inset:0; background:var(--off-white); z-index:99;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--s4);
  transform:translateY(-100%); transition:transform .45s ease; opacity:0;
}
.mobile-menu.open{transform:translateY(0); opacity:1;}
.mobile-menu a{font-family:var(--font-display); font-size:1.6rem;}
.mobile-menu .btn{margin-top:var(--s3);}

/* ============ HERO ============ */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
  padding-top:120px; padding-bottom:var(--s6);
  overflow:hidden;
}
.hero-bg{position:absolute; inset:0; z-index:0;}
.hero-bg-img{
  position:absolute; top:-14%; left:0;
  height:128%; width:100%;
  object-fit:cover; object-position:center 42%;
  will-change:transform;
}
.hero-bg::after{content:"";position:absolute; inset:0; background:linear-gradient(180deg, rgba(250,248,246,0.55) 0%, rgba(250,248,246,0.72) 45%, rgba(250,248,246,0.92) 100%);}
.hero-content{position:relative; z-index:1; max-width:620px; margin:0 auto; text-align:center;}
.hero-content h1{font-size:clamp(2.4rem, 5vw, 3.9rem); line-height:1.12; margin:var(--s2) 0 var(--s3);}
.hero-content p{font-size:1.08rem; color:var(--ink-soft); margin:0 auto var(--s4) auto; max-width:480px;}
.hero-ctas{display:flex; gap:var(--s2); flex-wrap:wrap; justify-content:center;}

/* ============ REVEAL ============ */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.is-visible{opacity:1; transform:translateY(0);}

/* ============ SERVICE NAV PILLS ============ */
.cat-nav-wrap{position:sticky; top:78px; z-index:40; background:var(--off-white); padding:var(--s2) 0; margin-bottom:var(--s5); border-bottom:1px solid rgba(184,159,144,0.25);}
.cat-nav{display:flex; gap:var(--s2); overflow-x:auto; scrollbar-width:none; padding-bottom:2px;}
.cat-nav::-webkit-scrollbar{display:none;}
.cat-pill{
  flex:none; padding:9px 20px; border-radius:999px; font-size:0.82rem; font-weight:500;
  background:var(--white); border:1px solid var(--nude); color:var(--ink-soft);
  transition:all .3s ease;
}
.cat-pill:hover{border-color:var(--brown); color:var(--ink);}
.cat-pill.active{background:var(--ink); color:var(--white); border-color:var(--ink);}

/* ============ SERVICE CATEGORY BLOCKS ============ */
.cat-block{margin-bottom:var(--s7);}
.cat-head{display:flex; align-items:baseline; justify-content:space-between; gap:var(--s3); margin-bottom:var(--s2); flex-wrap:wrap;}
.cat-head h3{font-size:1.6rem;}
.cat-desc{color:var(--ink-soft); font-size:0.95rem; margin-bottom:var(--s2);}
.cat-note{
  font-size:0.82rem; color:var(--brown-deep); background:var(--nude); border-radius:var(--radius-sm);
  padding:10px 16px; margin-bottom:var(--s3); display:inline-block;
}
.cards-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:var(--s3);
}
.service-card{
  background:var(--white); border-radius:var(--radius-md); overflow:hidden;
  box-shadow:var(--shadow-soft); transition:transform .4s ease, box-shadow .4s ease;
  display:flex; flex-direction:column;
}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-hover);}
.service-card .media-ph{border-radius:0; --ratio:16/11;}
.service-card:hover .media-ph::before{opacity:0.26; transition:opacity .4s ease;}
.card-body{padding:var(--s3); display:flex; flex-direction:column; gap:var(--s1); flex:1;}
.card-body h4{font-family:var(--font-display); font-size:1.12rem; font-weight:600;}
.card-body p{font-size:0.88rem; color:var(--ink-soft); flex:1;}
.price-row{display:flex; align-items:baseline; justify-content:space-between; margin-top:var(--s1); padding-top:var(--s1); border-top:1px dashed var(--nude);}
.price-main{font-family:var(--font-display); font-size:1.25rem; font-weight:600; color:var(--brown-deep);}
.price-sub{font-size:0.72rem; color:var(--ink-soft); text-align:right; line-height:1.3;}
.card-body .btn-sm{margin-top:var(--s2);}
.extras-list{display:flex; flex-direction:column; gap:8px; margin-top:var(--s1);}
.extras-list li{display:flex; justify-content:space-between; align-items:baseline; font-size:0.85rem; padding-bottom:8px; border-bottom:1px dashed var(--nude); color:var(--ink-soft);}
.extras-list li:last-child{border-bottom:none; padding-bottom:0;}
.extras-list strong{color:var(--brown-deep); font-family:var(--font-display); font-weight:600; white-space:nowrap; margin-left:var(--s2);}

/* ============ PROFESSIONALS ============ */
.pro-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--s3);}
.pro-card{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--s1);
  background:var(--white); border-radius:var(--radius-lg); padding:var(--s4) var(--s3); box-shadow:var(--shadow-soft);
  transition:transform .4s ease, box-shadow .4s ease;
}
.pro-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-hover);}
.pro-card .media-ph{width:120px; flex:none; border-radius:50%; --ratio:1/1; margin-bottom:var(--s2);}
.pro-photo{width:120px; height:120px; flex:none; border-radius:50%; object-fit:cover; margin-bottom:var(--s2); box-shadow:0 8px 20px -8px rgba(122,101,82,0.4);}
.pro-card h3{margin-bottom:2px; font-size:1.18rem;}
.pro-role{color:var(--brown-deep); font-size:0.78rem; font-weight:600; letter-spacing:0.03em; text-transform:uppercase; margin-bottom:var(--s1);}
.pro-card p{color:var(--ink-soft); font-size:0.88rem;}
.pro-cta{
  margin-top:var(--s2); padding:10px 22px; border-radius:999px; border:1.5px solid var(--ink);
  font-size:0.78rem; font-weight:600; transition:background .3s ease, color .3s ease, transform .3s ease;
}
.pro-cta:hover{background:var(--ink); color:var(--white); transform:translateY(-2px);}

/* ============ ABOUT ============ */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--s6); align-items:center;}
.about-grid .media-ph{--ratio:4/5;}
.about-photo{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 12%; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); display:block;}
.about-text p{color:var(--ink-soft); margin-bottom:var(--s3); font-size:1rem;}
.about-text .btn{margin-top:var(--s2);}

/* ============ GALLERY ============ */
.gallery-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--s2);
}
.gallery-grid .media-ph{border-radius:var(--radius-sm);}
.gallery-grid .g-tall{--ratio:3/4;}
.gallery-grid .g-wide{--ratio:4/3; grid-column:span 2;}
.gallery-grid .g-sq{--ratio:1/1;}
.g-label{position:absolute; bottom:14px; left:14px; z-index:2; font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--white); font-weight:600; text-shadow:0 2px 10px rgba(0,0,0,0.35);}
.g-item{position:relative;}
.g-item .media-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(30,30,30,0.32), transparent 55%);}

/* ============ HOW IT WORKS ============ */
.steps-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s4);}
.step-card{text-align:center; padding:var(--s4) var(--s3); background:var(--white); border-radius:var(--radius-lg); box-shadow:var(--shadow-soft);}
.step-num{font-family:var(--font-display); font-size:2.6rem; color:var(--rose-nude); font-weight:600; margin-bottom:var(--s2); line-height:1;}
.step-icon{width:44px; height:44px; margin:0 auto var(--s2); color:var(--brown-deep);}
.step-card h4{font-size:1.15rem; margin-bottom:6px;}
.step-card p{font-size:0.88rem; color:var(--ink-soft);}

/* ============ TESTIMONIALS ============ */
.testi-columns-wrap{
  display:flex; justify-content:center; gap:var(--s3);
  max-height:720px; overflow:hidden; position:relative;
  -webkit-mask-image:linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
  mask-image:linear-gradient(to bottom, transparent, #000 12%, #000 88%, transparent);
}
.testi-col{
  display:flex; flex-direction:column; gap:var(--s3);
  flex:0 0 320px; width:320px;
  animation-name:testiColScroll; animation-timing-function:linear; animation-iteration-count:infinite;
}
.testi-columns-wrap:hover .testi-col{animation-play-state:paused;}
@keyframes testiColScroll{ from{transform:translateY(0);} to{transform:translateY(-50%);} }
.testi-source{text-align:center; font-size:0.8rem; color:var(--ink-soft); font-style:italic; margin-top:var(--s3);}
.testi-card{
  background:var(--white); padding:var(--s4) var(--s3); border-radius:var(--radius-md); box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column; gap:var(--s2);
  width:100%;
}
.stars{color:var(--brown); font-size:0.95rem; letter-spacing:2px;}
.testi-card p{font-size:0.9rem; color:var(--ink-soft); flex:1;}
.testi-who{display:flex; align-items:center; gap:var(--s2);}
.testi-who .media-ph{width:42px; height:42px; border-radius:50%; --ratio:1/1;}
.testi-who span{font-weight:600; font-size:0.88rem;}

/* ============ FAQ ============ */
.faq-list{max-width:760px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--nude);}
.faq-q{width:100%; display:flex; justify-content:space-between; align-items:center; padding:var(--s3) 0; font-family:var(--font-display); font-size:1.08rem; font-weight:500; text-align:left;}
.faq-q svg{flex:none; width:18px; height:18px; transition:transform .35s ease;}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .4s ease;}
.faq-a p{padding-bottom:var(--s3); color:var(--ink-soft); font-size:0.92rem; max-width:640px;}

/* ============ FORMAÇÕES ============ */
.training-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--s3); margin-bottom:var(--s4);}
.training-card{
  background:var(--white); border-radius:var(--radius-md); overflow:hidden;
  box-shadow:var(--shadow-soft); transition:transform .4s ease, box-shadow .4s ease;
  display:flex; flex-direction:column;
}
.training-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-hover);}
.training-card{position:relative;}
.training-featured{border:2px solid var(--brown-deep);}
.training-featured .training-body{border-top-color:var(--brown-deep);}
.training-badge{
  position:absolute; top:14px; right:14px; z-index:2;
  background:var(--brown-deep); color:var(--white);
  font-size:0.68rem; font-weight:600; letter-spacing:0.05em; text-transform:uppercase;
  padding:6px 14px; border-radius:999px;
  box-shadow:0 8px 18px -6px rgba(122,101,82,0.55);
}
.training-card .media-ph{border-radius:0; --ratio:16/9;}
.training-photo{width:100%; aspect-ratio:3/2; object-fit:cover; object-position:center; display:block;}
.training-body{padding:var(--s4) var(--s3); border-top:3px solid var(--rose-nude); display:flex; flex-direction:column; flex:1;}
.training-body h3{font-family:var(--font-display); font-size:1.15rem; margin-bottom:8px;}
.training-body p{font-size:0.88rem; color:var(--ink-soft); margin-bottom:var(--s3);}
.training-topics{display:flex; flex-direction:column; gap:10px; flex:1;}
.training-topics li{display:flex; align-items:flex-start; gap:10px; font-size:0.85rem; color:var(--ink-soft);}
.training-topics svg{flex:none; width:16px; height:16px; margin-top:2px; color:var(--brown-deep);}
.training-body .btn-sm{margin-top:var(--s3);}
@media (max-width:980px){ .training-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .training-grid{grid-template-columns:1fr;} }

/* ============ LOCALIZAÇÃO ============ */
.map-wrap{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); max-width:900px; margin:0 auto;}
.map-wrap iframe{display:block; width:100%; height:420px; border:0;}
.map-address{text-align:center; margin-top:var(--s3); font-size:0.95rem; color:var(--ink-soft);}
.map-address a{color:var(--brown-deep); font-weight:600; text-decoration:underline; text-underline-offset:3px;}
@media (max-width:600px){ .map-wrap iframe{height:320px;} }
.cta-final{
  position:relative; overflow:hidden; border-radius:var(--radius-lg); margin:0 var(--s4);
  height:520px; background:var(--brown-deep);
}
.cta-final-content{position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:var(--s4); color:var(--white);}
.cta-final-content h2{color:var(--white); margin-bottom:var(--s2);}
.cta-final-content p{max-width:480px; margin-bottom:var(--s4); font-size:1.02rem; opacity:0.9;}
.cta-final-ctas{display:flex; gap:var(--s2); flex-wrap:wrap; justify-content:center;}

/* ============ FOOTER ============ */
footer{background:var(--ink); color:var(--off-white); padding:var(--s6) 0 var(--s3);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:var(--s5); margin-bottom:var(--s5);}
.footer-logo-chip{display:inline-block; background:var(--off-white); border-radius:var(--radius-sm); padding:12px 18px; margin-bottom:var(--s2);}
.footer-logo-img{height:44px; width:auto; display:block;}
.footer-grid p, .footer-grid a{color:#cfc7c1; font-size:0.9rem;}
.footer-grid h5{font-size:0.82rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--rose-nude); margin-bottom:var(--s2); font-weight:600;}
.footer-grid li{margin-bottom:10px;}
.footer-grid a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.12); padding-top:var(--s3); text-align:center; font-size:0.78rem; color:#a89e97;}

/* ============ RESPONSIVE ============ */
@media (max-width:980px){
  .about-grid{grid-template-columns:1fr; gap:var(--s4);}
  .steps-grid{grid-template-columns:1fr; gap:var(--s3);}
  .gallery-grid{grid-template-columns:repeat(3,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .pro-grid{grid-template-columns:1fr 1fr;}
  .testi-col-3{display:none;}
}
@media (max-width:760px){
  .nav-desktop{display:none;}
  .burger{display:flex;}
  .header-ctas{display:none;}
  .hero-content{max-width:100%;}
  .hero-content p{max-width:100%;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .g-wide{grid-column:span 2;}
  .pro-grid{grid-template-columns:1fr;}
  .testi-col-2{display:none;}
  .testi-col{flex:0 0 calc(100vw - 64px); width:calc(100vw - 64px);}
  .footer-grid{grid-template-columns:1fr; gap:var(--s4);}
  .cta-final{margin:0 var(--s2); height:440px;}
  .section{padding:var(--s6) 0;}
}

/* ============ MULTI-PAGE ============ */
/* inner pages have no hero, so the first section clears the fixed header */
.inner-page main > .section:first-child{padding-top:calc(var(--s7) + 90px);}
.page-title{font-size:clamp(2rem, 3.2vw, 2.9rem); font-weight:500;}
.section-head .page-title{margin-bottom:var(--s2);}
.nav-desktop a[aria-current="page"]::after{width:100%;}
.nav-desktop a[aria-current="page"], .mobile-menu a[aria-current="page"]{color:var(--brown-deep);}
a:focus-visible, button:focus-visible{outline:2px solid var(--brown-deep); outline-offset:3px; border-radius:6px;}
/* services: sticky pills inherit the section colour */
.section-alt .cat-nav-wrap{background:var(--white);}

/* ============ HOME HERO: left-aligned, larger ============ */
.home .hero{justify-content:flex-start;}
.home .hero-bg::after{background:linear-gradient(90deg, rgba(250,248,246,0.94) 0%, rgba(250,248,246,0.82) 40%, rgba(250,248,246,0.35) 75%, rgba(250,248,246,0.15) 100%);}
.home .hero-content{width:100%; max-width:var(--max-w); margin:0 auto; text-align:left;}
.home .hero-content > *{max-width:760px;}
.home .hero-content h1{font-size:clamp(2.8rem, 6.2vw, 5.4rem); line-height:1.05; margin:var(--s2) 0 var(--s3);}
.home .hero-content p{font-size:clamp(1.15rem, 1.6vw, 1.4rem); margin:0 0 var(--s5); max-width:560px;}
.home .hero-content .eyebrow{font-size:0.86rem;}
.home .hero-ctas{justify-content:flex-start;}

/* ============ HOME INTRO TILES (2 x 2) ============ */
.intro-grid{display:grid; grid-template-columns:1fr 1fr; gap:var(--s3);}
.intro-tile{
  position:relative; display:block; overflow:hidden; border-radius:var(--radius-lg);
  min-height:clamp(420px, 42vw, 600px); color:var(--white); isolation:isolate;
  box-shadow:var(--shadow-soft);
}
.intro-media{position:absolute; inset:0; z-index:-1;}
.intro-img{width:100%; height:100%; object-fit:cover; object-position:center 30%; transition:transform 1.2s ease;}
.intro-mosaic{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); width:100%; height:100%; gap:2px; background:var(--nude);}
.intro-mosaic img{width:100%; height:100%; min-height:0; object-fit:cover; object-position:center 22%; transition:transform 1.2s ease;}
.intro-media::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(30,30,30,0.78) 0%, rgba(30,30,30,0.35) 42%, rgba(30,30,30,0) 70%);}
.intro-body{position:absolute; left:0; right:0; bottom:0; padding:var(--s5) var(--s5) var(--s4);}
.intro-body h2{color:var(--white); font-size:clamp(1.8rem, 2.8vw, 2.6rem); line-height:1.1; margin-bottom:var(--s1);}
.intro-body p{color:rgba(255,255,255,0.88); max-width:440px; font-size:1rem; margin-bottom:var(--s3);}
.intro-cta{display:inline-flex; padding:12px 26px; border-radius:999px; border:1.5px solid var(--white); font-size:0.85rem; font-weight:600; transition:background .35s ease, color .35s ease;}
.intro-tile:hover .intro-cta, .intro-tile:focus-visible .intro-cta{background:var(--white); color:var(--ink);}
.intro-tile:hover .intro-img, .intro-tile:hover .intro-mosaic img{transform:scale(1.04);}
.intro-tile:focus-visible{outline:3px solid var(--brown-deep); outline-offset:4px;}

/* ============ FORMAÇÕES: 2 x 2 large blocks ============ */
.training-grid{grid-template-columns:1fr 1fr; gap:var(--s4);}
.training-photo{aspect-ratio:16/10;}
.training-body{padding:var(--s5) var(--s5) var(--s4);}
.training-body h3{font-size:clamp(1.5rem, 2vw, 1.9rem); margin-bottom:var(--s2);}
.training-body p{font-size:1rem; max-width:520px;}
.training-topics{gap:14px;}
.training-topics li{font-size:0.95rem;}
.training-topics svg{width:18px; height:18px;}
.training-body .btn-sm{width:auto; align-self:flex-start; padding:13px 30px; font-size:0.88rem;}
.training-badge{top:20px; right:20px; font-size:0.74rem; padding:8px 16px;}

/* ============ WHATSAPP FLOATING ============ */
.wa-float{
  position:fixed; z-index:90;
  right:calc(var(--s3) + env(safe-area-inset-right, 0px));
  bottom:calc(var(--s3) + env(safe-area-inset-bottom, 0px));
  display:inline-flex; align-items:center; gap:10px;
  background:#25D366; color:#fff; border-radius:999px;
  padding:14px 22px 14px 16px; font-weight:600; font-size:0.9rem;
  box-shadow:0 14px 30px -10px rgba(18,140,70,0.55);
  transition:transform .3s ease, box-shadow .3s ease;
}
.wa-float svg{width:26px; height:26px; flex:none;}
.wa-float:hover{transform:translateY(-3px); box-shadow:0 18px 36px -10px rgba(18,140,70,0.65);}
.mobile-menu.open ~ .wa-float{display:none;}

@media (max-width:980px){
  .intro-grid{grid-template-columns:1fr;}
  .intro-tile{min-height:clamp(380px, 80vw, 520px);}
}
@media (max-width:760px){
  .inner-page main > .section:first-child{padding-top:calc(var(--s6) + 80px);}
  .training-grid{grid-template-columns:1fr;}
  .training-body{padding:var(--s4) var(--s3);}
  .intro-body{padding:var(--s4) var(--s3) var(--s3);}
  .home .hero-bg::after{background:linear-gradient(180deg, rgba(250,248,246,0.7) 0%, rgba(250,248,246,0.85) 50%, rgba(250,248,246,0.95) 100%);}
  .wa-float{padding:14px; right:calc(var(--s2) + env(safe-area-inset-right, 0px)); bottom:calc(var(--s2) + env(safe-area-inset-bottom, 0px));}
  .wa-label{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0);}
  .wa-float svg{width:30px; height:30px;}
}

/* ============ v3: header icon, bigger logo ============ */
.logo-img{height:58px;}
.site-header.scrolled .logo-img{height:48px;}
.footer-logo-img{height:52px;}
.logo-img{transition:height .4s ease;}
.mobile-logo{height:76px;}
.header-ctas{align-items:center;}
.icon-link{display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; border:1.5px solid var(--ink); color:var(--ink); transition:background .3s ease, color .3s ease, transform .3s ease;}
.icon-link svg{width:19px; height:19px;}
.icon-link:hover{background:var(--ink); color:var(--white); transform:translateY(-2px);}
.mobile-menu .icon-link{margin-top:var(--s1); width:52px; height:52px;}
.mobile-menu .icon-link svg{width:22px; height:22px;}

/* footer social */
.footer-social{display:flex; gap:12px; margin-top:var(--s3);}
.footer-social a{display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,255,255,0.25); color:#cfc7c1; transition:background .3s ease, color .3s ease, border-color .3s ease;}
.footer-social a:hover{background:var(--off-white); color:var(--ink); border-color:var(--off-white);}
.footer-social svg{width:18px; height:18px;}

/* gallery → Instagram */
.gallery-cta{text-align:center; margin-top:var(--s6); padding-top:var(--s5); border-top:1px solid var(--nude);}
.gallery-cta h2{font-size:clamp(1.6rem, 2.4vw, 2.1rem); margin-bottom:var(--s1);}
.gallery-cta p{color:var(--ink-soft); margin-bottom:var(--s3);}
.gallery-cta .btn svg{width:18px; height:18px;}

/* home tiles: 4 side by side, full width, square corners, no gaps */
.intro-section{padding:var(--s7) 0 0;}
.section-head h1, .section-head h2{text-wrap:balance;}
@media (max-width:760px){ .intro-section{padding:var(--s6) 0 0;} }
/* stronger, taller gradient so the text always reads, whatever the photo */
.intro-media::after{background:linear-gradient(to top, rgba(30,30,30,0.92) 0%, rgba(30,30,30,0.78) 22%, rgba(30,30,30,0.45) 45%, rgba(30,30,30,0.12) 68%, rgba(30,30,30,0) 85%);}
.intro-body h2, .intro-body p{text-shadow:0 2px 14px rgba(0,0,0,0.35);}
.intro-body p{color:rgba(255,255,255,0.94);}
.intro-grid{grid-template-columns:repeat(4, 1fr); gap:0;}
.intro-tile{border-radius:0; box-shadow:none; min-height:clamp(480px, 46vw, 720px);}
.intro-body{padding:var(--s4) var(--s4) var(--s5);}
.intro-body h2{font-size:clamp(1.6rem, 2.1vw, 2.2rem);}
.intro-body p{font-size:0.95rem;}
.intro-mosaic{grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr));}
.intro-tile:focus-visible{outline-offset:-4px; outline-color:var(--white);}
@media (max-width:1100px){
  .intro-grid{grid-template-columns:repeat(2, 1fr);}
  .intro-tile{min-height:clamp(420px, 60vw, 600px);}
}
@media (max-width:600px){
  .intro-grid{grid-template-columns:1fr;}
  .intro-tile{min-height:440px;}
  .intro-body{padding:var(--s3) var(--s3) var(--s4);}
  .intro-mosaic{grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr));}
  .logo-img{height:46px;}
  .site-header.scrolled .logo-img{height:40px;}
}

/* ============ v5 ============ */
/* same space above and below every title block: section top padding = gap between subtitle and content */
.section-head{margin-bottom:var(--s7);}
.inner-page main > .section:first-child{padding-top:calc(var(--s7) + 106px);}  /* 106px = header height */
@media (max-width:760px){
  .section-head{margin-bottom:var(--s6);}
  .inner-page main > .section:first-child{padding-top:calc(var(--s6) + 94px);}
}

/* CTAs inside cards: text + arrow, no border */
.btn-sm, .pro-cta, .intro-cta{
  display:inline-flex; align-items:center; gap:10px; width:auto; align-self:flex-start;
  padding:0; border:none; border-radius:0; background:none;
  font-size:0.9rem; font-weight:600; letter-spacing:0.01em; color:var(--ink); text-align:left;
}
.cta-arrow{width:18px; height:18px; flex:none; transition:transform .3s ease;}
.btn-sm:hover, .pro-cta:hover{background:none; color:var(--brown-deep); transform:none;}
.btn-sm:hover .cta-arrow, .pro-cta:hover .cta-arrow,
.intro-tile:hover .cta-arrow, .intro-tile:focus-visible .cta-arrow{transform:translateX(5px);}
.card-body .btn-sm{margin-top:var(--s2);}
.training-body .btn-sm{padding:0; font-size:0.92rem; margin-top:var(--s3);}
.pro-card .pro-cta{align-self:center; margin-top:var(--s2);}
.intro-cta{color:var(--white); font-size:0.95rem;}
.intro-tile:hover .intro-cta, .intro-tile:focus-visible .intro-cta{background:none; color:var(--white);}

/* home tiles: titles on one line across all four, CTAs pinned to the bottom */
.intro-body{display:flex; flex-direction:column; height:var(--tile-body-h, 262px); padding:var(--s4) var(--s4) var(--s5);}
.intro-body h2{margin-bottom:var(--s2);}
.intro-body p{margin-bottom:var(--s4);}
.intro-cta{margin-top:auto;}
.intro-mosaic{display:none;}
@media (max-width:1399px){ .intro-body{--tile-body-h:282px;} }
@media (max-width:1100px){ .intro-body{--tile-body-h:248px;} }
@media (max-width:600px){ .intro-body{--tile-body-h:auto; padding:var(--s3) var(--s3) var(--s4);} }

/* formações: shorter cards so one fits on screen */
.training-photo{aspect-ratio:2/1;}
.training-body{padding:var(--s4) var(--s4) var(--s4);}
.training-body h3{font-size:clamp(1.4rem, 1.8vw, 1.7rem); margin-bottom:var(--s1);}
.training-body p{margin-bottom:var(--s2); font-size:0.95rem;}
.training-topics{gap:8px;}
.training-topics li{font-size:0.9rem;}

/* home hero: warmer, slightly darker beige → brown filter; photo stays visible on the right */
.home .hero-bg::after{background:linear-gradient(90deg,
  rgba(232,221,212,0.93) 0%, rgba(220,200,189,0.84) 36%, rgba(184,159,144,0.55) 66%, rgba(122,101,82,0.38) 100%);}
@media (max-width:760px){
  .home .hero-bg::after{background:linear-gradient(180deg, rgba(232,221,212,0.86) 0%, rgba(220,200,189,0.84) 55%, rgba(184,159,144,0.78) 100%);}
}
.home .hero-content p{color:#4a423d;}

/* ============ v6 ============ */
/* inner pages: content sits a little closer to the menu */
.inner-page main > .section:first-child{padding-top:calc(var(--s6) + 106px);}
.inner-page main > .section:first-child .section-head{margin-bottom:var(--s6);}   /* keep space above = space below the title */
@media (max-width:760px){
  .inner-page main > .section:first-child{padding-top:calc(var(--s5) + 94px);}
  .inner-page main > .section:first-child .section-head{margin-bottom:var(--s5);}
}

/* titles on one line whenever they fit; subtitles keep a comfortable reading width */
.section-head{max-width:none;}
.section-head p{max-width:640px;}
.section-head.center p{margin-left:auto; margin-right:auto;}

/* sobre: subtitle as the lead of the right column */
.about-text .about-lead{font-family:var(--font-display); font-size:clamp(1.3rem, 1.8vw, 1.6rem); line-height:1.35; color:var(--ink); margin-bottom:var(--s3);}

/* home tiles: dark grey gradient behind the text, lighter so the photo shows through */
.intro-media::after{background:linear-gradient(to top, rgba(38,38,38,0.78) 0%, rgba(38,38,38,0.62) 24%, rgba(38,38,38,0.3) 46%, rgba(38,38,38,0) 66%);}
.intro-body h2, .intro-body p{text-shadow:0 1px 12px rgba(0,0,0,0.45);}

/* ============ v7: home hero filter, lighter beige ============ */
.home .hero-bg::after{background:linear-gradient(90deg,
  rgba(250,248,246,0.94) 0%, rgba(240,232,225,0.86) 34%, rgba(232,221,212,0.6) 64%, rgba(220,200,189,0.3) 100%);}
@media (max-width:760px){
  .home .hero-bg::after{background:linear-gradient(180deg, rgba(250,248,246,0.86) 0%, rgba(240,232,225,0.84) 55%, rgba(232,221,212,0.8) 100%);}
}
.home .hero-content p{color:var(--ink-soft);}

/* ============ v8: whole service and training cards are clickable ============ */
/* the card's own CTA link is stretched over the card, so there is one link per card (no nested links) */
.service-card, .training-card{position:relative;}
.service-card .btn-sm::after, .training-card .btn-sm::after{content:""; position:absolute; inset:0; z-index:1;}
.service-card:has(.btn-sm), .training-card{cursor:pointer;}
.service-card:hover .cta-arrow, .training-card:hover .cta-arrow{transform:translateX(5px);}
.service-card:hover .btn-sm, .training-card:hover .btn-sm{color:var(--brown-deep);}
.service-card .btn-sm:focus-visible, .training-card .btn-sm:focus-visible{outline:none;}
.service-card:has(.btn-sm:focus-visible), .training-card:has(.btn-sm:focus-visible){outline:2px solid var(--brown-deep); outline-offset:4px;}
.training-badge{z-index:2; pointer-events:none;}

/* ============ v9: hero social proof next to the CTAs ============ */
.home .hero-ctas{align-items:center; gap:var(--s2);}
.hero-proof{display:flex; align-items:center; gap:14px; margin-left:var(--s3);}
.hero-avatars{display:flex;}
.av{
  width:44px; height:44px; border-radius:50%; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:1.05rem; font-weight:500; color:var(--white);
  border:2.5px solid var(--off-white); box-shadow:0 6px 14px -6px rgba(122,101,82,0.5);
}
.av + .av{margin-left:-10px;}
.av1{background:var(--brown-deep);} .av2{background:var(--brown);} .av3{background:#9C8574;} .av4{background:#C9B3A6; color:var(--ink);}
.home .hero-content .hero-proof p{margin:0; font-size:0.95rem; line-height:1.3; color:var(--ink-soft); max-width:none;}
.hero-proof strong{display:block; font-family:var(--font-display); font-size:1.35rem; font-weight:600; color:var(--ink);}
@media (max-width:760px){
  .hero-proof{margin-left:0; margin-top:var(--s2); width:100%;}
}

/* ============ v10 ============ */
/* testimonials: continuous loop, no pause on hover; spacing as margin so -50% is a seamless jump */
.testi-columns-wrap:hover .testi-col{animation-play-state:running;}
.testi-col{gap:0;}
.testi-col .testi-card{margin-bottom:var(--s3);}

/* home tiles: bolder titles, dark grey gradient 90% at the bottom → 0% at the top */
.intro-body h2{font-weight:600; font-size:clamp(1.3rem, 1.8vw, 2.1rem);}
@media (max-width:1100px){ .intro-body h2{font-size:clamp(1.6rem, 3.2vw, 2.1rem);} }
.intro-media::after{background:linear-gradient(to top, rgba(38,38,38,0.9) 0%, rgba(38,38,38,0) 100%);}

/* ============ v11: bigger tile titles ============ */
.intro-body h2{font-size:clamp(1.7rem, 2.3vw, 2.6rem); line-height:1.08;}
.intro-body{--tile-body-h:290px;}
@media (max-width:1399px){ .intro-body{--tile-body-h:288px;} }
@media (max-width:1100px){ .intro-body h2{font-size:clamp(1.9rem, 3.8vw, 2.5rem);} .intro-body{--tile-body-h:262px;} }
@media (max-width:600px){ .intro-body{--tile-body-h:auto;} .intro-body h2{font-size:2rem;} }

/* ============ v12 ============ */
/* como funciona: illustration on top of each card */
.step-card{padding:0 0 var(--s4); overflow:hidden; display:flex; flex-direction:column;}
.step-img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block; margin-bottom:var(--s3);}
.step-card > :not(.step-img){padding-left:var(--s3); padding-right:var(--s3);}
.step-num{font-size:2.2rem; margin-bottom:var(--s1);}

/* CTA final: salon photo, kept subtle under the brown filter */
.cta-final-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; z-index:0;}
.cta-final::after{content:""; position:absolute; inset:0; z-index:1; background:rgba(122,101,82,0.8);}

/* ============ v13: professionals ↔ services ============ */
.pro-card .pro-cta{margin-top:auto; padding-top:var(--s3);}
.pro-card p{margin-bottom:0;}
.pro-proof{width:100%; margin-top:var(--s3); padding-top:var(--s3); border-top:1px solid rgba(184,159,144,0.3);
  display:flex; align-items:center; justify-content:center; gap:12px;}
.pro-avatars{display:flex; flex:none;}
.pro-avatars .av{width:30px; height:30px; font-size:0.78rem; border-width:2px; box-shadow:none;}
.pro-avatars .av + .av{margin-left:-8px;}
.pro-avatars .av:nth-child(1){background:var(--brown-deep);} .pro-avatars .av:nth-child(2){background:var(--brown);}
.pro-avatars .av:nth-child(3){background:#9C8574;} .pro-avatars .av:nth-child(4){background:#C9B3A6; color:var(--ink);}
.pro-card .pro-proof p{font-size:0.8rem; line-height:1.35; text-align:left; color:var(--ink-soft);}
.pro-proof strong{color:var(--ink); font-weight:600;}

/* services: filter by professional */
.pro-filter{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:10px; margin-bottom:var(--s2);}
.pf-label{font-size:0.82rem; color:var(--ink-soft); margin-right:4px;}
.pf-chip{display:inline-flex; align-items:center; gap:8px; padding:5px 14px 5px 5px; border-radius:999px;
  background:var(--white); border:1px solid var(--nude); font-size:0.82rem; font-weight:500; color:var(--ink-soft); transition:all .3s ease;}
.pf-chip img{width:26px; height:26px; border-radius:50%; object-fit:cover;}
.pf-chip.pf-all{padding:9px 18px;}
.pf-chip:hover{border-color:var(--brown); color:var(--ink);}
.pf-chip[aria-pressed="true"]{background:var(--ink); border-color:var(--ink); color:var(--white);}
.pf-status{text-align:center; font-size:0.92rem; color:var(--brown-deep); margin:calc(var(--s3) * -1) 0 var(--s3);}
.pf-status[hidden]{display:none;}
.pf-status button{font-weight:600; text-decoration:underline; text-underline-offset:3px; margin-left:6px; color:var(--ink);}
.is-filtered-out{display:none !important;}
@media (max-width:760px){ .pro-filter{justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; scrollbar-width:none;} .pf-chip{flex:none;} }

/* ============ v14: rating badge on professional cards ============ */
.pro-card{position:relative;}
.pro-rating{position:absolute; top:var(--s3); right:var(--s3); display:inline-flex; align-items:center; gap:5px;
  font-size:0.85rem; font-weight:600; color:var(--ink); background:var(--off-white); border:1px solid var(--nude);
  padding:5px 11px 5px 9px; border-radius:999px; line-height:1;}
.pro-rating svg{width:15px; height:15px; color:var(--brown-deep);}

/* ============ v15: mobile menu ============ */
/* slides in from the right; the header (logo left, close icon right) stays on top */
.mobile-menu{transform:translateX(100%); opacity:1; visibility:hidden;
  transition:transform .45s cubic-bezier(.22,.61,.36,1), visibility 0s linear .45s;
  padding:calc(110px + env(safe-area-inset-top, 0px)) var(--s4) calc(var(--s5) + env(safe-area-inset-bottom, 0px));
  justify-content:flex-start; overflow-y:auto;}
.mobile-menu.open{transform:translateX(0); visibility:visible; transition:transform .45s cubic-bezier(.22,.61,.36,1), visibility 0s;}
.mobile-menu a[aria-current="page"]{color:var(--brown-deep);}
body.menu-open{overflow:hidden;}
body.menu-open .site-header{background:var(--off-white); box-shadow:none; backdrop-filter:none;}
/* burger → close (X) */
.burger{position:relative; z-index:101;}
.burger span{transform-origin:center;}
.burger.is-open span:nth-child(1){transform:translateY(9px) rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){transform:translateY(-9px) rotate(-45deg);}
.mobile-menu .btn{font-family:var(--font-body); font-size:1rem; padding:16px 40px;}
.mobile-menu .icon-link{flex:none; width:52px; height:52px; min-height:52px; font-size:0;}

/* ============ v16: very dark brown instead of near-black for CTAs and footer ============ */
:root{--espresso:#171513; --espresso-hover:#3A332D;}
.btn-primary{background:var(--espresso);}
.btn-primary:hover{background:var(--espresso-hover);}
.btn-outline{border-color:var(--espresso); color:var(--espresso);}
.btn-outline:hover{background:var(--espresso); color:var(--white);}
.btn-outline.on-dark{border-color:var(--white); color:var(--white);}
.btn-outline.on-dark:hover{background:var(--white); color:var(--espresso);}
.icon-link{border-color:var(--espresso); color:var(--espresso);}
.icon-link:hover{background:var(--espresso); color:var(--white);}
.btn-sm, .pro-cta{color:var(--espresso);}
.btn-sm:hover, .pro-cta:hover, .service-card:hover .btn-sm, .training-card:hover .btn-sm{color:var(--brown-deep);}
footer{background:var(--espresso);}
.footer-bottom{border-top-color:rgba(255,255,255,0.14);}
.footer-social a:hover{color:var(--espresso);}

/* ============ v17: CTA final full width, touching "Visite-nos" and the footer ============ */
main > .section:last-child{padding:0;}
.cta-final{margin:0; border-radius:0;}
@media (max-width:760px){ .cta-final{margin:0;} }

/* ============ v18: hero secondary CTA as text + arrow ============ */
.hero-link{display:inline-flex; align-items:center; gap:10px; padding:16px 10px; font-size:0.95rem; font-weight:600; color:var(--espresso); transition:color .3s ease;}
.hero-link:hover{color:var(--brown-deep);}
.hero-link:hover .cta-arrow{transform:translateX(5px);}
.hero-link .cta-arrow{width:20px; height:20px;}
@media (max-width:760px){ .hero-link{padding:8px 0;} }

/* ============ v19: new photos in the home tiles ============ */
.intro-img[src$="profissionais.jpg"]{object-position:center 18%;}
.intro-img[src$="servicos.jpg"]{object-position:center 45%;}

/* ============ v20: inner pages, a little less space above the title block ============ */
.inner-page main > .section:first-child{padding-top:calc(var(--s5) + 106px);}
@media (max-width:760px){ .inner-page main > .section:first-child{padding-top:calc(var(--s4) + 94px);} }

/* ============ v21: "Visite-nos" + "Pronta para cuidar de si?" merged, full width ============ */
.contact-section{padding:0;}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; min-height:clamp(560px, 46vw, 680px);}
.contact-panel{position:relative; overflow:hidden; isolation:isolate; display:flex; align-items:center; color:var(--white);}
.contact-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; z-index:-2;}
.contact-panel::after{content:""; position:absolute; inset:0; z-index:-1; background:rgba(122,101,82,0.86);}
.contact-content{width:100%; max-width:640px; margin-left:auto; padding:var(--s7) var(--s6) var(--s7) var(--s4);}
.contact-content .eyebrow{color:rgba(255,255,255,0.85);}
.contact-content .eyebrow .stroke-accent{filter:brightness(2.2);}
.contact-content h2{color:var(--white); font-size:clamp(2rem, 3vw, 2.8rem); margin:var(--s2) 0 var(--s2);}
.contact-lead{color:rgba(255,255,255,0.9); font-size:1.05rem; max-width:440px; margin-bottom:var(--s4);}
.contact-ctas{display:flex; flex-wrap:wrap; gap:var(--s2); margin-bottom:var(--s5);}
.btn-wa{display:inline-flex; align-items:center; gap:10px;}
.btn-wa svg{width:19px; height:19px;}
.contact-list{list-style:none; padding:var(--s4) 0 0; margin:0; border-top:1px solid rgba(255,255,255,0.25); display:grid; gap:14px;}
.contact-list li{display:flex; align-items:center; gap:12px; font-size:0.95rem;}
.contact-list svg{width:18px; height:18px; flex:none; color:rgba(255,255,255,0.75);}
.contact-list a{color:var(--white); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .3s ease;}
.contact-list a:hover{border-bottom-color:rgba(255,255,255,0.7);}
.contact-map{position:relative; min-height:420px; background:var(--nude);}
.contact-map iframe{position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(0.25) sepia(0.08);}
.map-card{position:absolute; left:var(--s4); bottom:var(--s4); display:flex; gap:14px; align-items:flex-start;
  background:var(--white); color:var(--ink); padding:var(--s3) var(--s4) var(--s3) var(--s3); border-radius:var(--radius-lg);
  box-shadow:0 18px 40px -16px rgba(23,21,19,0.35); max-width:calc(100% - 2 * var(--s4));}
.map-card-icon{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:var(--nude); color:var(--brown-deep); flex:none;}
.map-card-icon svg{width:20px; height:20px;}
.map-card-address{font-size:0.95rem; line-height:1.45; margin:0 0 8px; color:var(--ink);}
.map-card-link{display:inline-flex; align-items:center; gap:8px; font-size:0.9rem; font-weight:600; color:var(--espresso);}
.map-card-link:hover{color:var(--brown-deep);}
.map-card-link:hover .cta-arrow{transform:translateX(5px);}
@media (max-width:980px){
  .contact-grid{grid-template-columns:1fr;}
  .contact-content{max-width:none; margin:0; padding:var(--s6) var(--s4);}
  .contact-map{min-height:380px;}
}
@media (max-width:760px){
  .contact-content{padding:var(--s6) var(--s3);}
  .contact-ctas .btn{width:100%; justify-content:center;}
  .map-card{left:var(--s2); right:var(--s2); bottom:var(--s2); max-width:none;}
}

/* ============ v22: contact panel, solid brown, content aligned with the menu/footer left edge ============ */
.contact-panel{background:var(--brown-deep);}
.contact-panel::after{content:none;}
/* the panel is half the page wide, so 100% - max-w/2 = the empty gutter the .container leaves on the left */
.contact-content{max-width:none; margin:0; padding:var(--s7) var(--s6) var(--s7) calc(max(0px, 100% - var(--max-w) / 2) + var(--s4));}
.contact-content > *{max-width:560px;}
.contact-content .contact-ctas{max-width:none;}
@media (max-width:980px){ .contact-content{padding:var(--s6) var(--s4);} }
@media (max-width:760px){ .contact-content{padding:var(--s6) var(--s4);} }

/* ============ v23: testimonial avatars with initials ============ */
.testi-avatar{width:42px; height:42px; border-radius:50%; flex:none; display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-size:0.92rem; font-weight:600; letter-spacing:0.04em; color:var(--white);}
.testi-avatar.t1{background:var(--brown-deep);} .testi-avatar.t2{background:var(--brown);}
.testi-avatar.t3{background:#9C8574;} .testi-avatar.t4{background:#C9B3A6; color:var(--ink);}
.testi-who span.testi-avatar{font-size:0.92rem;}

/* ============ v24: same 16px between every label (eyebrow) and its title, site-wide ============ */
.eyebrow{display:flex; margin-bottom:var(--s2);}
.eyebrow + h1, .eyebrow + h2, .eyebrow + .page-title{margin-top:0;}
.home .hero-content h1{margin-top:0;}
.contact-content h2{margin-top:0;}

/* ============ v25: mobile booking bar (replaces the floating WhatsApp on phones) ============ */
.mobile-cta-bar{display:none;}
@media (max-width:760px){
  .wa-float{display:none;}
  .mobile-cta-bar{
    display:flex; gap:10px; align-items:center;
    position:fixed; left:0; right:0; bottom:0; z-index:95;
    padding:10px var(--s3) calc(10px + env(safe-area-inset-bottom, 0px));
    background:rgba(250,248,246,0.96); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    border-top:1px solid var(--nude); box-shadow:0 -10px 30px -18px rgba(23,21,19,0.35);
  }
  .mobile-cta-bar .btn{flex:1; justify-content:center; padding:15px 20px; font-size:0.95rem;}
  .mcb-wa{flex:none; width:52px; height:52px; border-radius:50%; background:#25D366; color:#fff; display:inline-flex; align-items:center; justify-content:center;}
  .mcb-wa svg{width:26px; height:26px;}
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px));}
  body.menu-open .mobile-cta-bar{display:none;}
}

/* ============ v26 ============ */
/* home (phones): booking bar slides up from the bottom only after the first section's CTA is out of view */
@media (max-width:760px){
  .home .mobile-cta-bar{transform:translateY(110%); transition:transform .45s cubic-bezier(.22,.61,.36,1);}
  .home .mobile-cta-bar.is-shown{transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){ .home .mobile-cta-bar{transition:none;} }

/* less space between title and content in these three sections */
#como-funciona .section-head, #testemunhos .section-head, #faq .section-head{margin-bottom:var(--s5);}
@media (max-width:760px){ #como-funciona .section-head, #testemunhos .section-head, #faq .section-head{margin-bottom:var(--s4);} }

/* WhatsApp in the site's beige instead of WhatsApp green (the glyph keeps it recognisable) */
.wa-float{background:#DCC8BD; color:var(--espresso); box-shadow:0 14px 30px -12px rgba(23,21,19,0.35);}
.wa-float:hover{background:#CDB6A8; box-shadow:0 18px 36px -12px rgba(23,21,19,0.45);}
.mcb-wa{background:#DCC8BD; color:var(--espresso);}

/* ============ v27 ============ */
/* footer: 4 columns with opening hours */
.footer-grid{grid-template-columns:1.4fr 1fr 1.2fr 1fr;}
.footer-hours li{display:flex; flex-direction:column; gap:2px; margin-bottom:12px;}
.footer-hours li span:first-child{color:#cfc7c1; font-size:0.8rem;}
.footer-hours li span:last-child{color:var(--white);}
@media (max-width:980px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr;} }

/* reviews: real Google rating */
.google-rating{display:inline-flex; align-items:center; gap:10px; margin-top:var(--s3); padding:10px 20px; border-radius:999px;
  background:var(--white); border:1px solid var(--nude); color:var(--ink); box-shadow:0 10px 24px -16px rgba(23,21,19,0.3); transition:border-color .3s ease, transform .3s ease;}
.google-rating:hover{border-color:var(--brown); transform:translateY(-2px);}
.gr-score{font-family:var(--font-display); font-size:1.35rem; font-weight:600; line-height:1;}
.gr-stars{display:inline-flex; gap:2px; color:var(--brown-deep);}
.gr-stars svg{width:16px; height:16px;}
.gr-count{font-size:0.88rem; color:var(--ink-soft);}
.testi-source a{color:var(--espresso); font-weight:600; text-decoration:underline; text-underline-offset:3px;}
@media (max-width:420px){ .google-rating{flex-wrap:wrap; justify-content:center;} }

/* home: featured services */
.feat-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:var(--s3);}
.feat-card{position:relative; display:flex; flex-direction:column; background:var(--white); border-radius:var(--radius-lg);
  padding:var(--s4); box-shadow:var(--shadow-soft); transition:transform .4s ease, box-shadow .4s ease; cursor:pointer;}
.section-alt .feat-card{background:var(--off-white);}
.feat-card:hover{transform:translateY(-4px);}
.feat-cat{font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--brown-deep); font-weight:600; margin-bottom:var(--s2);}
.feat-card h3{font-size:1.45rem; line-height:1.15; margin-bottom:var(--s1);}
.feat-card p{font-size:0.92rem; color:var(--ink-soft); margin-bottom:var(--s3);}
.feat-price{margin-top:auto; padding-top:var(--s2); border-top:1px solid var(--nude); display:flex; flex-direction:column; gap:2px; margin-bottom:var(--s3);}
.feat-price strong{font-family:var(--font-display); font-size:1.6rem; font-weight:600; color:var(--ink);}
.feat-detail{font-size:0.8rem; color:var(--ink-soft);}
.feat-card .btn-sm::after{content:""; position:absolute; inset:0;}
.feat-card:hover .btn-sm{color:var(--brown-deep);}
.feat-card:hover .cta-arrow{transform:translateX(5px);}
.feat-card:has(.btn-sm:focus-visible){outline:2px solid var(--brown-deep); outline-offset:4px;}
.feat-card .btn-sm:focus-visible{outline:none;}
.feat-more{text-align:center; margin-top:var(--s4);}
#destaques .section-head{margin-bottom:var(--s5);}
@media (max-width:760px){ #destaques .section-head{margin-bottom:var(--s4);} }
@media (max-width:1100px){ .feat-grid{grid-template-columns:repeat(2, 1fr);} }
@media (max-width:600px){ .feat-grid{grid-template-columns:1fr;} }

/* ============ v28 ============ */
/* Google rating badge: G logo and an outline in Google's colours */
.google-rating{border:2px solid transparent;
  background:linear-gradient(var(--white), var(--white)) padding-box,
             linear-gradient(90deg, #4285F4 0%, #4285F4 25%, #EA4335 25%, #EA4335 50%, #FBBC05 50%, #FBBC05 75%, #34A853 75%, #34A853 100%) border-box;}
.google-rating:hover{border-color:transparent;}
.gr-logo{width:20px; height:20px; flex:none;}
/* "desde" small and quiet next to the price */
.service-card{display:flex; flex-direction:column;}
.service-card .card-body{flex:1; display:flex; flex-direction:column;}
.service-card .card-body .price-row{margin-top:auto;}
.price-row{align-items:flex-start;}
.price-from{font-family:var(--font-body); font-size:0.7rem; font-weight:500; color:var(--ink-soft); letter-spacing:0.02em; margin-right:5px; vertical-align:baseline;}

/* ============ v29 ============ */
/* arrows on text CTAs appear only on hover / keyboard focus */
.btn-sm, .pro-cta, .intro-cta, .hero-link, .map-card-link{gap:0;}
.cta-arrow{width:0; margin-left:0; opacity:0; transform:translateX(-6px);
  transition:width .3s ease, margin-left .3s ease, opacity .3s ease, transform .3s ease;}
.btn-sm:hover .cta-arrow, .btn-sm:focus-visible .cta-arrow,
.pro-cta:hover .cta-arrow, .pro-cta:focus-visible .cta-arrow,
.hero-link:hover .cta-arrow, .hero-link:focus-visible .cta-arrow,
.map-card-link:hover .cta-arrow, .map-card-link:focus-visible .cta-arrow,
.service-card:hover .cta-arrow, .training-card:hover .cta-arrow,
.intro-tile:hover .cta-arrow, .intro-tile:focus-visible .cta-arrow{
  width:18px; margin-left:10px; opacity:1; transform:translateX(0);}
.hero-link:hover .cta-arrow, .hero-link:focus-visible .cta-arrow{width:20px;}
@media (prefers-reduced-motion: reduce){ .cta-arrow{transition:none;} }

/* featured prices: "desde" under the value, sizes on one line */
#destaques .price-main{display:inline-flex; flex-direction:column-reverse; line-height:1.1;}
#destaques .price-from{margin:2px 0 0;}
#destaques .price-sub{white-space:nowrap; padding-top:4px;}
.price-sub{white-space:nowrap;}

/* ============ v30: duration label on service cards (top-left of the image) ============ */
.service-card{position:relative;}
.dur-label{position:absolute; top:14px; left:14px; z-index:2; display:inline-flex; align-items:center; gap:6px;
  padding:6px 12px 6px 9px; border-radius:999px; background:rgba(255,255,255,0.92); backdrop-filter:blur(6px);
  font-size:0.78rem; font-weight:600; color:var(--espresso); line-height:1; pointer-events:none;
  box-shadow:0 6px 16px -10px rgba(23,21,19,0.4);}
.dur-label svg{width:14px; height:14px; color:var(--brown-deep);}

/* ============ v31: formações as a list (photo left, content right) ============ */
.training-grid{grid-template-columns:1fr; gap:var(--s3); max-width:1080px; margin-left:auto; margin-right:auto;}
.training-card{display:grid; grid-template-columns:minmax(260px, 40%) 1fr; align-items:stretch;}
.training-card .training-photo{width:100%; height:100%; min-height:300px; aspect-ratio:auto; object-fit:cover; contain:size;}
.training-body{padding:var(--s5); justify-content:center;}
.training-body p{max-width:none;}
.training-card:hover{transform:translateY(-4px);}
@media (max-width:760px){
  .training-card{grid-template-columns:1fr;}
  .training-card .training-photo{height:auto; min-height:0; aspect-ratio:16/10; contain:none;}
  .training-body{padding:var(--s4) var(--s3);}
}

/* ============ v32: level tags on the trainings ============ */
.training-levels{display:flex; gap:8px; margin-bottom:var(--s2);}
.level-tag{display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:999px; font-size:0.72rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; line-height:1;}
.level-tag::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor;}
.level-intermedio{background:var(--nude); color:var(--brown-deep);}
.level-avancado{background:#4A4541; color:var(--white);}

/* ============ v33: gentle zoom on the training photos on hover, clipped to the photo's own area ============ */
.training-card{overflow:hidden;}
.training-media{position:relative; overflow:hidden; min-height:300px;}
.training-media .training-photo{position:absolute; inset:0; min-height:0;}
@media (max-width:760px){ .training-media{min-height:0; aspect-ratio:16/10;} }
.training-card .training-photo{transition:transform 1.2s ease;}
.training-card:hover .training-photo{transform:scale(1.04);}
@media (prefers-reduced-motion: reduce){ .training-card .training-photo{transition:none;} .training-card:hover .training-photo{transform:none;} }

/* ============ v34: Instagram fan ============ */
.ig-section{overflow:hidden;}
.ig-section .section-head{margin-bottom:var(--s5);}
.ig-fan{
  --w:clamp(150px, 19vw, 290px); --h:calc(var(--w) * 1.42);
  --spread:0.62; --drop:calc(var(--w) * 0.075); --tilt:7deg;
  position:relative; height:calc(var(--h) + var(--drop) * 9 + 40px); max-width:1400px; margin:0 auto;
}
.ig-card{
  --lift:0px; --s:1;
  position:absolute; left:50%; top:20px; width:var(--w); height:var(--h); margin-left:calc(var(--w) / -2);
  border-radius:clamp(18px, 2.2vw, 32px); overflow:hidden; background:var(--nude);
  box-shadow:0 24px 50px -24px rgba(23,21,19,0.45);
  transform:translate(0, 40px) rotate(0deg) scale(0.9);
  transition:transform .9s cubic-bezier(.22,.8,.3,1), box-shadow .4s ease;
  transition-delay:calc(var(--abs) * 70ms);
}
.ig-fan.is-open .ig-card{
  transform:translate(calc(var(--i) * var(--spread) * var(--w)), calc(var(--i2) * var(--drop) + var(--lift))) rotate(calc(var(--i) * var(--tilt))) scale(var(--s));
}
.ig-card img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease;}
.ig-fan.is-open .ig-card:hover, .ig-fan.is-open .ig-card:focus-visible{
  --lift:-22px; --s:1.03; z-index:20 !important; transition-delay:0s; box-shadow:0 34px 60px -24px rgba(23,21,19,0.55);}
.ig-card:hover img, .ig-card:focus-visible img{transform:scale(1.08);}
.ig-card:focus-visible{outline:3px solid var(--brown-deep); outline-offset:4px;}
.ig-follow{text-align:center; margin-top:var(--s4);}
.ig-follow p{font-family:var(--font-display); font-size:clamp(1.3rem, 2vw, 1.75rem); color:var(--ink); margin-bottom:var(--s3);}
.ig-follow p strong{font-weight:600;}
.btn-ig{display:inline-flex; align-items:center; gap:10px;}
.btn-ig svg{width:18px; height:18px;}
@media (max-width:760px){
  .ig-fan{--w:42vw; --spread:0.42; --drop:calc(var(--w) * 0.06); --tilt:6deg; height:calc(var(--h) + var(--drop) * 4 + 50px);}
  .ig-card[style*="--abs:3"]{display:none;}
}
@media (prefers-reduced-motion: reduce){ .ig-card, .ig-card img{transition:none;} }

/* ============ v35: certificates slider (Sobre) ============ */
.cert-head{display:flex; align-items:flex-end; justify-content:space-between; gap:var(--s4); margin-bottom:var(--s5);}
.cert-head .section-head{margin-bottom:0; text-align:left;}
.cert-head .section-head p{margin-left:0;}
.cert-nav{display:flex; gap:10px; flex:none;}
.cert-btn{width:52px; height:52px; border-radius:50%; border:1.5px solid var(--espresso); color:var(--espresso); background:transparent;
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer; transition:background .3s ease, color .3s ease, opacity .3s ease;}
.cert-btn svg{width:20px; height:20px;}
.cert-btn:hover:not(:disabled){background:var(--espresso); color:var(--white);}
.cert-btn:disabled{opacity:.3; cursor:default;}
.cert-track{list-style:none; margin:0; padding:4px 0 var(--s3); display:flex; gap:var(--s3); overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; scrollbar-width:none; overscroll-behavior-x:contain;}
.cert-track::-webkit-scrollbar{display:none;}
.cert-track:focus-visible{outline:2px solid var(--brown-deep); outline-offset:6px; border-radius:var(--radius-lg);}
.cert-slide{flex:0 0 calc((100% - 2 * var(--s3)) / 3); scroll-snap-align:start;}
.cert-card{margin:0;}
.cert-img{border-radius:var(--radius-lg); overflow:hidden; background:var(--white); box-shadow:var(--shadow-soft); aspect-ratio:566/400;}
.cert-img img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease;}
.cert-card:hover .cert-img img{transform:scale(1.04);}
.cert-card figcaption{display:flex; flex-direction:column; gap:2px; padding:var(--s2) 4px 0;}
.cert-card figcaption strong{font-family:var(--font-display); font-size:1.15rem; font-weight:600; color:var(--ink);}
.cert-card figcaption span{font-size:0.88rem; color:var(--ink-soft);}
.cert-dots{display:flex; justify-content:center; gap:8px; margin-top:var(--s2);}
.cert-dots span{width:8px; height:8px; border-radius:999px; background:var(--nude); transition:width .3s ease, background .3s ease;}
.cert-dots span.is-active{width:24px; background:var(--brown-deep);}
@media (max-width:980px){ .cert-slide{flex-basis:calc((100% - var(--s3)) / 2);} }
@media (max-width:760px){
  .cert-head{flex-direction:column; align-items:flex-start;}
  .cert-nav{display:none;}
  .cert-slide{flex-basis:82%;}
}
@media (prefers-reduced-motion: reduce){ .cert-track{scroll-behavior:auto;} }

/* ============ v36: small labels ("desde", "aplicação") always sit under the price ============ */
.price-main:has(.price-from){display:inline-flex; flex-direction:column-reverse; line-height:1.1;}
.price-main .price-from{margin:2px 0 0;}
.price-sub{padding-top:4px;}
.service-card .card-body .extras-list{margin-top:var(--s1);}
.card-body:has(.extras-list) p{flex:0 0 auto;}

/* ============ v37: service photos ============ */
.media-ph.has-img{background:var(--nude);}
.media-ph.has-img::before{content:none;}
.media-ph.has-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease;}
.service-card:hover .media-ph.has-img img{transform:scale(1.05);}
@media (prefers-reduced-motion: reduce){ .media-ph.has-img img{transition:none;} .service-card:hover .media-ph.has-img img{transform:none;} }

/* ============ v38: professional cards, client count as plain text ============ */
.pro-proof{justify-content:center;}
.pro-card .pro-proof p{text-align:center; font-size:0.85rem;}

/* ============ v39: Sobre, text as a quote ============ */
.about-text .about-lead{font-weight:600;}
.about-quote{position:relative; margin:0 0 var(--s4); padding:4px 0 4px var(--s4); border-left:2px solid var(--rose-nude);}
.about-quote p{font-style:italic;}
.about-quote .about-quote-author{font-style:normal; margin:var(--s2) 0 0; font-size:0.85rem; font-weight:600; letter-spacing:0.04em; color:var(--brown-deep);}

/* ============ v46: home hero — darker layer, header, and the category accordion ============ */
.home .hero-bg::after{background:linear-gradient(90deg, rgba(23,21,19,0.82) 0%, rgba(23,21,19,0.66) 45%, rgba(23,21,19,0.5) 100%);}
.home .hero-content .eyebrow{color:var(--rose-nude);}
.home .hero-content h1{color:var(--white); font-size:clamp(2.6rem, 4.8vw, 4.6rem);}
.home .hero-content p{color:rgba(255,255,255,0.86);}
.home .hero .btn-primary{background:var(--off-white); color:var(--espresso);}
.home .hero .btn-primary:hover{background:var(--nude); color:var(--espresso);}
.home .hero .hero-link{color:var(--white);}
.home .hero .hero-link:hover{color:var(--rose-nude);}
.home .hero-content .hero-proof p{color:rgba(255,255,255,0.78);}
.home .hero-proof strong{color:var(--white);}
.home .hero .av{border-color:rgba(23,21,19,0.6);}
.home .hero-text .hero-ctas{flex-wrap:wrap;}
.home .hero-text .hero-proof{margin-left:0; width:100%; margin-top:var(--s2);}
.home .hero-content > .hero-text, .home .hero-content > .cat-fan{max-width:none;}
/* header: light bar over the dark photo, 80% → 100% on scroll */
.home .site-header{background:rgba(250,248,246,0.8); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); box-shadow:0 8px 30px -20px rgba(30,30,30,0.35);}
.site-header.scrolled, .home .site-header.scrolled{background:rgba(250,248,246,1);}

/* ---- category items: shared ---- */
.cat-fan{--cat-bg:#7A6552;}
.cat-card{position:relative; display:flex; color:var(--white); background:var(--cat-bg); overflow:hidden; text-decoration:none;}
.cat-ico{width:24px; height:24px; flex:none; color:var(--rose-nude);}
.cat-name{font-family:var(--font-display); font-weight:600; line-height:1.15;}
.cat-index{font-family:var(--font-display); font-weight:500; color:rgba(255,255,255,0.35); line-height:1;}
.cat-cta{display:inline-flex; align-items:center; gap:10px; font-size:0.9rem; font-weight:600; color:var(--white);}
.cat-cta svg{width:18px; height:18px; transition:transform .3s ease;}
.cat-card:focus-visible{outline:2px solid var(--rose-nude); outline-offset:-4px;}

/* ---- desktop: an accordion filling the right side, top to bottom, no gaps ---- */
@media (min-width:981px){
  .home .hero-split{display:block;}
  .home .hero-text{max-width:min(620px, calc(100% - clamp(300px, 30vw, 440px) - var(--s5)));}
  .cat-fan{position:absolute; top:106px; bottom:0; right:0; width:clamp(300px, 30vw, 440px);
    display:flex; flex-direction:column; margin:0; z-index:2;}
  .cat-card{flex:1 1 0; min-height:0; flex-direction:column; justify-content:center; padding:0 var(--s4);
    border-top:1px solid rgba(255,255,255,0.14); transition:flex-grow .55s cubic-bezier(.22,.8,.3,1), background .4s ease;
    opacity:0; transform:translateX(30px);}
  .cat-card:first-child{border-top:0;}
  .cat-fan.is-open .cat-card{opacity:1; transform:none; transition:flex-grow .55s cubic-bezier(.22,.8,.3,1), background .4s ease, opacity .5s ease calc((var(--k) + 3) * 60ms), transform .6s ease calc((var(--k) + 3) * 60ms);}
  .cat-row{display:flex; align-items:center; gap:14px;}
  .cat-name{font-size:clamp(1.05rem, 1.3vw, 1.3rem); transition:font-size .45s ease;}
  .cat-index, .cat-cta{max-height:0; opacity:0; overflow:hidden; transition:max-height .5s ease, opacity .35s ease, margin .5s ease;}
  .cat-index{font-size:clamp(2.6rem, 3.6vw, 3.6rem);}
  /* expanded item */
  .cat-card.is-active{flex-grow:3.4; background:linear-gradient(160deg, #8B7562 0%, #7A6552 70%);}
  .cat-card.is-active .cat-index{max-height:70px; opacity:1; margin-bottom:var(--s2);}
  .cat-card.is-active .cat-name{font-size:clamp(1.5rem, 2vw, 2rem);}
  .cat-card.is-active .cat-ico{width:28px; height:28px;}
  .cat-card.is-active .cat-cta{max-height:40px; opacity:1; margin-top:var(--s3); transition-delay:0s, .15s, 0s;}
  .cat-card.is-active:hover .cat-cta svg{transform:translateX(5px);}
}
@media (min-width:981px) and (prefers-reduced-motion: reduce){
  .cat-card, .cat-fan.is-open .cat-card, .cat-name, .cat-index, .cat-cta{transition:none;}
}

/* ---- tablet: the accordion turns into a simple 2-column list under the text ---- */
@media (min-width:761px) and (max-width:980px){
  .home .hero-split{display:block;}
  .cat-fan{display:grid; grid-template-columns:1fr 1fr; margin-top:var(--s4); border-radius:var(--radius-lg); overflow:hidden;}
  .cat-card{align-items:center; padding:20px var(--s3); border-top:1px solid rgba(255,255,255,0.14);}
  .cat-card:nth-child(even){border-left:1px solid rgba(255,255,255,0.14);}
  .cat-row{display:flex; align-items:center; gap:12px;}
  .cat-name{font-size:1.1rem;}
  .cat-index, .cat-cta{display:none;}
}

/* ---- phones: swipeable row of small square cards ---- */
@media (max-width:760px){
  .home .hero-bg::after{background:linear-gradient(180deg, rgba(23,21,19,0.78) 0%, rgba(23,21,19,0.7) 55%, rgba(23,21,19,0.62) 100%);}
  .cat-fan{--w:30vw; display:flex; gap:10px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:var(--s4);
    margin:var(--s4) calc(var(--s4) * -1) 0; padding:6px var(--s4) 14px; scrollbar-width:none;}
  .cat-fan::-webkit-scrollbar{display:none;}
  .cat-card{flex:0 0 var(--w); height:calc(var(--w) * 1.05); border-radius:16px; scroll-snap-align:start; padding:12px;}
  .cat-row{display:flex; flex-direction:column; justify-content:space-between; height:100%;}
  .cat-ico{width:22px; height:22px;}
  .cat-name{font-size:1rem;}
  .cat-index, .cat-cta{display:none;}
}
@media (min-width:981px){
  .home .hero{position:relative;}
  .home .hero-content.hero-split{position:static;}
  .home .hero-text{position:relative; z-index:1;}
}
@media (min-width:981px){
  .home .hero-content > .hero-text{max-width:min(600px, calc(100% - clamp(300px, 30vw, 440px) - var(--s5)));}
  /* keep the floating WhatsApp clear of the accordion */
  .home .wa-float{right:calc(clamp(300px, 30vw, 440px) + var(--s3));}
}

/* ============ v47: categories at 50% opacity; service count instead of a number ============ */
.cat-fan{--cat-bg:rgba(122,101,82,0.5);}
@media (min-width:981px){
  .cat-card.is-active{background:linear-gradient(160deg, rgba(139,117,98,0.5) 0%, rgba(122,101,82,0.5) 70%);}
  .cat-index{font-family:var(--font-body); font-size:0.78rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--rose-nude);}
  .cat-card.is-active .cat-index{max-height:24px; margin-bottom:var(--s2);}
}

/* ============ v48: grey categories at 70%; WhatsApp back bottom-right, shown after the first scroll ============ */
.cat-fan{--cat-bg:rgba(74,69,65,0.7);}
@media (min-width:981px){
  .cat-card.is-active{background:linear-gradient(160deg, rgba(96,90,85,0.7) 0%, rgba(74,69,65,0.7) 70%);}
  .home .wa-float{right:calc(var(--s3) + env(safe-area-inset-right, 0px));
    opacity:0; visibility:hidden; transform:translateY(16px);
    transition:opacity .35s ease, transform .35s ease, visibility 0s linear .35s, background .3s ease, box-shadow .3s ease;}
  .home .wa-float.is-shown{opacity:1; visibility:visible; transform:none;
    transition:opacity .35s ease, transform .35s ease, visibility 0s, background .3s ease, box-shadow .3s ease;}
  .home .wa-float.is-shown:hover{transform:translateY(-3px);}
}

/* ============ v49: categories background at 80% ============ */
.cat-fan{--cat-bg:rgba(74,69,65,0.8);}
@media (min-width:981px){ .cat-card.is-active{background:linear-gradient(160deg, rgba(96,90,85,0.8) 0%, rgba(74,69,65,0.8) 70%);} }

/* ============ v50: client info a little lower on desktop ============ */
@media (min-width:981px){ .home .hero-text .hero-proof{margin-top:var(--s5);} }

/* ============ v51: more room between the menu and the hero text (desktop); solid menu from the start ============ */
.home .site-header{background:rgba(250,248,246,1);}
@media (min-width:981px){ .home .hero{padding-top:clamp(200px, 27vh, 300px);} }

/* ============ v52: hero text a little higher again (desktop) ============ */
@media (min-width:981px){ .home .hero{padding-top:clamp(160px, 21vh, 240px);} }

/* ============ v53: tablet + phone — edge-to-edge swipe row, no gaps, bigger names, service count ============ */
@media (max-width:980px){
  .home .hero-split{display:block;}
  .cat-fan{--w:30vw; display:flex; grid-template-columns:none; gap:0; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:0;
    margin:var(--s4) calc(var(--s4) * -1) 0; padding:0; border-radius:0; scrollbar-width:none;}
  .cat-fan::-webkit-scrollbar{display:none;}
  .cat-card{flex:0 0 var(--w); height:calc(var(--w) * 0.95); border-radius:0; scroll-snap-align:start;
    padding:14px 14px 16px; align-items:stretch; border-top:0; border-left:1px solid rgba(255,255,255,0.14);}
  .cat-card:first-child{border-left:0;}
  .cat-card:nth-child(even){border-left:1px solid rgba(255,255,255,0.14);}
  .cat-row{display:flex; flex-direction:column; justify-content:flex-start; gap:0; height:100%;}
  .cat-ico{width:22px; height:22px;}
  .cat-name{font-size:1.2rem; margin-top:auto;}
  .cat-index{display:block; order:2; max-height:none; opacity:1; font-family:var(--font-body); font-size:0.7rem; font-weight:600;
    letter-spacing:0.12em; text-transform:uppercase; color:var(--rose-nude); position:absolute; left:14px; bottom:16px;}
  .cat-name{margin-bottom:22px;}
  .cat-cta{display:none;}
}
@media (min-width:761px) and (max-width:980px){
  .cat-fan{--w:24vw;}
  .cat-card{height:calc(var(--w) * 0.8);}
  .cat-name{font-size:1.3rem;}
}
@media (max-width:760px){
  .cat-fan{--w:36vw;}
}

/* ============ v54: phones — margins back (page sides + between cards), service count kept ============ */
@media (max-width:760px){
  .cat-fan{--w:34vw; gap:10px; padding:4px var(--s4) 12px; scroll-padding-inline:var(--s4);}
  .cat-card, .cat-card:nth-child(even){border-left:0; border-radius:16px;}
}

/* ============ v55: tablet — same margins as phones (page sides + between cards) ============ */
@media (min-width:761px) and (max-width:980px){
  .cat-fan{--w:24vw; gap:12px; padding:4px var(--s4) 12px; scroll-padding-inline:var(--s4);}
  .cat-card, .cat-card:nth-child(even){border-left:0; border-radius:18px;}
}

/* ============ v55b: tablets — menu links collapse into the burger so they don't overlap ============ */
@media (min-width:761px) and (max-width:1080px){
  .nav-desktop{display:none;}
  .burger{display:flex;}
  .header-ctas{margin-left:auto; margin-right:var(--s3);}
}

/* ============ v56: TEST — centred hero + category cover-flow slider ============ */
.home .hero.hero-centered{flex-direction:column; justify-content:flex-start; align-items:stretch; padding-top:clamp(140px, 17vh, 190px); padding-bottom:var(--s5);}
.home .hero-centered .hero-bg::after{background:linear-gradient(180deg, rgba(23,21,19,0.8) 0%, rgba(23,21,19,0.72) 55%, rgba(23,21,19,0.82) 100%);}
.home .hero-centered .hero-content{text-align:center;}
.home .hero-centered .hero-content > .hero-text{max-width:820px; margin:0 auto;}
.home .hero-centered .eyebrow{justify-content:center;}
.home .hero-centered .eyebrow::after{content:""; width:64px; height:10px; flex:none; background:inherit;}
.home .hero-centered h1{font-size:clamp(2.4rem, 4.6vw, 4.2rem); margin-left:auto; margin-right:auto;}
.home .hero-centered .hero-text > p{margin-left:auto; margin-right:auto; max-width:560px;}
.home .hero-centered .hero-ctas{justify-content:center;}
.home .hero-centered .hero-text .hero-proof{justify-content:center; margin-top:var(--s3);}
.home .hero-centered .hero-text .hero-proof p{text-align:left;}

/* slider */
.cat-slider{--cw:clamp(220px, 21vw, 300px); --ch:calc(var(--cw) * 1.25); position:relative; z-index:1; margin-top:var(--s5); width:100%;}
.cs-track{list-style:none; margin:0; padding:0; position:relative; height:calc(var(--ch) + 110px); perspective:1400px; transform-style:preserve-3d;}
.cs-slide{position:absolute; left:50%; top:0; width:var(--cw); margin-left:calc(var(--cw) / -2);
  --o:0; --a:0;
  transform:translateX(calc(var(--o) * var(--cw) * 0.74)) translateZ(calc(var(--a) * -90px)) rotateY(calc(var(--o) * -16deg)) scale(calc(1 - var(--a) * 0.05));
  z-index:calc(10 - var(--a)); transition:transform .7s cubic-bezier(.22,.8,.3,1), opacity .5s ease, filter .5s ease; cursor:pointer;
  filter:brightness(calc(1 - var(--a) * 0.12));}
.cs-slide.is-hidden{opacity:0; pointer-events:none;}
.cs-card{border-radius:24px; overflow:hidden; background:rgba(40,36,33,0.92); box-shadow:0 30px 60px -28px rgba(0,0,0,0.75);
  border:1px solid rgba(255,255,255,0.08);}
.cs-media{height:var(--ch); overflow:hidden;}
.cs-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .7s ease;}
.cs-info{padding:0 16px; max-height:0; opacity:0; overflow:hidden; text-align:center; transition:max-height .5s ease, opacity .35s ease, padding .5s ease;}
.cs-info h3{color:var(--white); font-size:1.3rem; margin:0 0 4px;}
.cs-count{display:block; font-size:0.74rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--rose-nude);}
.cs-cta{display:inline-flex; align-items:center; gap:0; margin-top:12px; padding:10px 20px; border-radius:999px; background:var(--off-white); color:var(--espresso); font-size:0.88rem; font-weight:600;}
.cs-cta .cta-arrow, .cs-cta svg{width:16px; height:16px;}
/* the slide in front */
.cs-slide.is-active{cursor:default;}
.cs-slide.is-active .cs-card{background:rgba(40,36,33,0.96); padding:10px; border-color:rgba(255,255,255,0.12);}
.cs-slide.is-active .cs-media{height:calc(var(--ch) - 20px); border-radius:16px;}
.cs-slide.is-active .cs-info{max-height:130px; opacity:1; padding:14px 16px 8px;}
.cs-slide.is-active:hover .cs-media img{transform:scale(1.05);}
.cs-slide:not(.is-active):hover{filter:brightness(1);}
.cs-cta:hover{background:var(--nude);}
.cs-cta svg{transition:transform .3s ease; margin-left:8px;}
.cs-cta:hover svg{transform:translateX(4px);}
/* arrows */
.cs-arrow{position:absolute; top:calc(var(--ch) / 2); transform:translateY(-50%); z-index:20; width:56px; height:56px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center; background:rgba(250,248,246,0.12); color:var(--white);
  border:1px solid rgba(255,255,255,0.2); backdrop-filter:blur(8px); cursor:pointer; transition:background .3s ease;}
.cs-arrow:hover{background:rgba(250,248,246,0.25);}
.cs-arrow svg{width:22px; height:22px;}
.cs-prev{left:clamp(16px, 4vw, 60px);} .cs-next{right:clamp(16px, 4vw, 60px);}
/* pagination: 1 —— 2 3 4 */
.cs-dots{display:flex; justify-content:center; align-items:center; gap:14px; margin-top:var(--s2);}
.cs-dot{display:inline-flex; align-items:center; gap:12px; background:none; border:0; padding:6px 2px; cursor:pointer; color:rgba(255,255,255,0.55); font-size:0.85rem; font-weight:600;}
.cs-dot-line{width:0; height:2px; background:var(--rose-nude); transition:width .4s ease;}
.cs-dot.is-active{color:var(--rose-nude);}
.cs-dot.is-active .cs-dot-line{width:36px;}
.cs-dot:hover{color:var(--white);}
.cs-dot:focus-visible, .cs-arrow:focus-visible, .cs-cta:focus-visible{outline:2px solid var(--rose-nude); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){ .cs-slide, .cs-media img, .cs-info{transition:none;} }
@media (max-width:980px){
  .cat-slider{--cw:clamp(200px, 34vw, 260px);}
}
@media (max-width:760px){
  .home .hero.hero-centered{padding-top:120px;}
  .cat-slider{--cw:58vw; margin-top:var(--s4); overflow:hidden; padding-bottom:4px;}
  .cs-slide{transform:translateX(calc(var(--o) * var(--cw) * 0.62)) translateZ(calc(var(--a) * -80px)) rotateY(calc(var(--o) * -14deg)) scale(calc(1 - var(--a) * 0.06));}
  .cs-arrow{display:none;}
  .cs-dots{gap:10px;}
  .cs-dot-line{transition:width .4s ease;} .cs-dot.is-active .cs-dot-line{width:24px;}
}
/* v56b: fit text + slider in one screen on desktop */
@media (min-width:761px){
  .home .hero.hero-centered{padding-top:clamp(120px, 14vh, 160px); min-height:100vh;}
  .home .hero-centered h1{font-size:clamp(2.2rem, 3.8vw, 3.6rem); margin-bottom:var(--s2);}
  .home .hero-centered .hero-text > p{margin-bottom:var(--s4);}
  .home .hero-centered .hero-text .hero-proof{margin-top:var(--s2);}
  .cat-slider{--cw:clamp(180px, 15vw, 240px); margin-top:var(--s4);}
  .cs-track{height:calc(var(--ch) + 120px);}
}
@media (min-width:761px){
  .home .hero.hero-centered{padding-top:clamp(116px, 13vh, 150px); padding-bottom:var(--s3);}
  .cat-slider{--ch:calc(var(--cw) * 1.08); margin-top:var(--s3);}
  .cs-track{height:calc(var(--ch) + 118px);}
  .cs-slide.is-active .cs-info{padding:10px 14px 6px;}
  .cs-info h3{font-size:1.2rem;}
  .cs-cta{margin-top:8px; padding:8px 18px;}
  .cs-dots{margin-top:0;}
}

/* ============ v57: TEST — all categories visible at once (no slider), full container width ============ */
.cat-grid-wrap{position:relative; z-index:1; width:100%; margin-top:var(--s5);}
.cat-grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:12px;}
.cg-card{position:relative; display:block; aspect-ratio:3/4; border-radius:20px; overflow:hidden; isolation:isolate; color:var(--white);
  border:1px solid rgba(255,255,255,0.12); box-shadow:0 24px 50px -28px rgba(0,0,0,0.7);
  transition:transform .45s cubic-bezier(.22,.8,.3,1), border-color .35s ease, box-shadow .45s ease;}
.cg-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .8s ease, filter .45s ease; filter:brightness(.92);}
.cg-card::after{content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to top, rgba(23,21,19,0.9) 0%, rgba(23,21,19,0.55) 34%, rgba(23,21,19,0) 62%); transition:background .45s ease;}
.cg-body{position:absolute; left:14px; right:14px; bottom:14px; display:flex; flex-direction:column; gap:4px;}
.cg-count{font-size:0.66rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--rose-nude);}
.cg-name{font-family:var(--font-display); font-size:clamp(1rem, 1.25vw, 1.25rem); font-weight:600; line-height:1.15;}
.cg-cta{display:inline-flex; align-items:center; gap:0; font-size:0.8rem; font-weight:600; color:var(--white);
  max-height:0; opacity:0; overflow:hidden; transition:max-height .4s ease, opacity .3s ease, margin .4s ease;}
.cg-cta .cta-arrow{width:16px; height:16px;}
/* hover / focus */
.cg-card:hover, .cg-card:focus-visible{transform:translateY(-8px); border-color:rgba(220,200,189,0.6); box-shadow:0 34px 60px -26px rgba(0,0,0,0.8);}
.cg-card:hover img, .cg-card:focus-visible img{transform:scale(1.07); filter:brightness(1);}
.cg-card:hover::after, .cg-card:focus-visible::after{background:linear-gradient(to top, rgba(23,21,19,0.92) 0%, rgba(23,21,19,0.6) 42%, rgba(23,21,19,0) 70%);}
.cg-card:hover .cg-cta, .cg-card:focus-visible .cg-cta{max-height:24px; opacity:1; margin-top:6px;}
.cg-card:hover .cg-cta .cta-arrow, .cg-card:focus-visible .cg-cta .cta-arrow{width:16px; margin-left:8px; opacity:1; transform:none;}
.cg-card:focus-visible{outline:2px solid var(--rose-nude); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){ .cg-card, .cg-card img, .cg-cta{transition:none;} }
/* tablet + phone: one swipeable row with the site's margins, names always visible */
@media (max-width:980px){
  .cat-grid-wrap{padding:0; max-width:none; margin-top:var(--s4);}
  .cat-grid{display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:var(--s4); padding:6px var(--s4) 12px; scrollbar-width:none;}
  .cat-grid::-webkit-scrollbar{display:none;}
  .cat-grid li{flex:0 0 clamp(150px, 26vw, 210px); scroll-snap-align:start;}
  .cg-card:hover, .cg-card:focus-visible{transform:none;}
}
@media (max-width:760px){
  .cat-grid li{flex-basis:40vw;}
  .cg-name{font-size:1.1rem;}
}

/* ============ v58: without the client info, keep the hero content vertically balanced ============ */
@media (min-width:761px){ .home .hero.hero-centered{justify-content:center; padding-top:106px; padding-bottom:var(--s4);} }
@media (min-width:981px){ .cat-grid-wrap{margin-top:var(--s6);} }

/* ============ v59: same space above and below the hero content (desktop) ============ */
@media (min-width:761px){ .home .hero.hero-centered{padding-top:106px; padding-bottom:0;} }

/* ============ v60: phones — same space above and below the hero content, more room before the cards ============ */
@media (max-width:760px){
  .home .hero.hero-centered{min-height:0; padding-top:calc(94px + var(--s5)); padding-bottom:calc(var(--s5) - 12px);}
  .cat-grid-wrap{margin-top:var(--s5);}
}

/* ============ v61: home — text left, categories as the 2nd section, horizontal fade on the photo ============ */
/* grey layer only behind the text: fades to 0 towards the right so the photo stays sharp */
.home .hero-bg::after{background:linear-gradient(90deg, rgba(36,33,30,0.88) 0%, rgba(36,33,30,0.72) 32%, rgba(36,33,30,0.3) 58%, rgba(36,33,30,0) 80%);}
@media (max-width:760px){
  /* on phones the text spans the whole width, so the layer covers it all */
  .home .hero-bg::after{background:linear-gradient(180deg, rgba(36,33,30,0.8) 0%, rgba(36,33,30,0.72) 60%, rgba(36,33,30,0.6) 100%);}
}
.home .hero{justify-content:flex-start;}
@media (min-width:761px){
  .home .hero{padding-top:106px; padding-bottom:0; align-items:center;}
  .home .hero-content > .hero-text{max-width:620px;}
  .home .hero-content h1{font-size:clamp(2.8rem, 5.4vw, 5rem);}
}
/* categories section */
.cat-section{padding:var(--s6) 0;}
.cat-section .cat-grid-wrap{margin-top:0;}
.cat-section .cg-card{border-color:transparent; box-shadow:0 20px 40px -26px rgba(23,21,19,0.55);}
.cat-section .cg-card:hover, .cat-section .cg-card:focus-visible{border-color:transparent; box-shadow:0 30px 50px -24px rgba(23,21,19,0.6);}
@media (max-width:980px){ .cat-section .cat-grid-wrap{padding:0;} .cat-section .cat-grid{margin:0 calc(var(--s4) * -1);} }
@media (max-width:760px){ .cat-section{padding:var(--s5) 0;} }
@media (max-width:980px){ .cat-section .cat-grid{margin:0;} }

/* ============ v62: Sobre — "10 anos de experiência" sticker, half on the photo ============ */
.about-photo-wrap{position:relative;}
.exp-badge{--d:clamp(132px, 12vw, 168px);
  position:absolute; right:calc(var(--d) / -2); bottom:14%; width:var(--d); height:var(--d); border-radius:50%;
  background:var(--espresso); color:var(--white); display:grid; place-items:center; z-index:2;
  box-shadow:0 20px 40px -18px rgba(23,21,19,0.6); border:4px solid var(--off-white);}
.exp-ring{position:absolute; inset:6px; width:calc(100% - 12px); height:calc(100% - 12px); animation:expSpin 22s linear infinite;}
.exp-ring text{font-family:var(--font-body); font-size:15.5px; font-weight:600; letter-spacing:3.2px; fill:var(--rose-nude);}
.exp-center{display:flex; flex-direction:column; align-items:center; line-height:1;}
.exp-center strong{font-family:var(--font-display); font-size:calc(var(--d) * 0.3); font-weight:600; color:var(--white);}
.exp-center span{font-size:0.72rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--rose-nude); margin-top:4px;}
@keyframes expSpin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){ .exp-ring{animation:none;} }
/* single column: the sticker sits half over the bottom edge of the photo */
@media (max-width:980px){
  .exp-badge{right:var(--s3); bottom:calc(var(--d) / -2);}
  .about-photo-wrap{margin-bottom:calc(var(--d) / 2);}
}
.exp-ring text{font-size:14px; letter-spacing:2px;}
@media (min-width:981px){ .about-grid{column-gap:clamp(110px, 10vw, 150px);} }
@media (max-width:980px){ .about-photo-wrap{margin-bottom:calc(clamp(132px, 12vw, 168px) / 2);} }

/* ============ v63: sticker — 8 anos centred in the circle; on desktop at face height ============ */
.exp-center{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;}
.exp-center strong{line-height:0.9; display:block;}
.exp-center span{margin-top:2px; line-height:1;}
@media (min-width:981px){ .exp-badge{top:12%; bottom:auto;} }

/* ============ v64: "Como funciona" — text + steps list on the left, photo on the right ============ */
.hw-grid{display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.05fr); gap:var(--s6); align-items:center;}
.hw-text .section-head{text-align:left; margin-bottom:var(--s4);}
.hw-steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column;}
.hw-step{display:flex; gap:var(--s3); align-items:flex-start; padding:var(--s3) 0; border-top:1px solid var(--nude);}
.hw-step:last-child{border-bottom:1px solid var(--nude);}
.hw-num{flex:none; width:44px; height:44px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center;
  background:var(--nude); color:var(--brown-deep); font-family:var(--font-display); font-weight:600; font-size:1rem;}
.hw-step h3{font-size:1.2rem; margin:8px 0 4px;}
.hw-step p{color:var(--ink-soft); font-size:0.95rem; margin:0;}
.hw-media{margin:0; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); aspect-ratio:4/3; background:var(--nude);}
.hw-media img{width:100%; height:100%; object-fit:cover; display:block;}
@media (max-width:980px){
  .hw-grid{grid-template-columns:1fr; gap:var(--s4);}
  .hw-media{order:-1;}
}

/* ============ v65: como funciona — numbers centred, circles aligned with the text, photo after the steps on tablet/phone ============ */
.hw-step{align-items:center;}
.hw-num{line-height:1; padding-top:2px;}
.hw-step h3{margin-top:0;}
@media (max-width:980px){ .hw-media{order:0;} }

/* ============ v66: como funciona — no divider lines between the steps ============ */
.hw-step, .hw-step:last-child{border-top:0; border-bottom:0; padding:var(--s2) 0;}
.hw-steps{gap:var(--s2);}

/* ============ v67: como funciona — title closer to the steps ============ */
#como-funciona .hw-text .section-head{margin-bottom:var(--s3);}

/* ============ v68: floating menu on desktop ============ */
@media (min-width:1081px){
  .site-header, .home .site-header, .site-header.scrolled, .home .site-header.scrolled{
    top:14px; left:50%; right:auto; transform:translateX(-50%);
    width:min(var(--max-w), calc(100% - 2 * var(--s4)));
    border-radius:999px; padding:12px 0;
    background:rgba(250,248,246,0.96); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
    box-shadow:0 14px 40px -18px rgba(23,21,19,0.35), 0 0 0 1px rgba(23,21,19,0.04);
  }
  .site-header .container{padding:0 var(--s3) 0 var(--s4);}
  .logo-img, .site-header.scrolled .logo-img{height:50px;}
  /* content below clears the taller floating bar */
  .inner-page main > .section:first-child{padding-top:calc(var(--s5) + 124px);}
  .home .hero{padding-top:124px;}
  .mobile-menu{top:0;}
}

/* ============ v69: home hero — text a little higher ============ */
@media (min-width:761px){ .home .hero{padding-bottom:var(--s7);} }

/* ============ v70: SEO / accessibility helpers ============ */
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;}
.skip-link{position:absolute; left:var(--s3); top:-60px; z-index:1000; background:var(--espresso); color:var(--white); padding:12px 18px; border-radius:999px; font-weight:600; transition:top .2s ease;}
.skip-link:focus{top:var(--s3);}
.footer-nav{display:flex; flex-wrap:wrap; gap:6px var(--s3); justify-content:center; margin-top:var(--s5); padding-top:var(--s4); border-top:1px solid rgba(255,255,255,0.14);}
.footer-nav a{color:#cfc7c1; font-size:0.88rem; text-decoration:none;}
.footer-nav a:hover{color:var(--white);}
.footer-bottom{border-top:0; margin-top:var(--s2); padding-top:var(--s2);}

/* ============ v71: legal pages, footer legal links, cookie banner, map on demand ============ */
.legal{max-width:820px;}
.legal .section-head{text-align:left; margin-bottom:var(--s4);}
.legal-updated{font-size:0.85rem; color:var(--ink-soft);}
.legal-body h2{font-size:1.35rem; margin:var(--s4) 0 var(--s2);}
.legal-body p, .legal-body li{color:var(--ink-soft); line-height:1.7;}
.legal-body ul{padding-left:1.2em; margin:0 0 var(--s2);}
.legal-body li{margin-bottom:8px;}
.legal-body a{color:var(--espresso); text-decoration:underline; text-underline-offset:3px;}
.legal-table{width:100%; border-collapse:collapse; font-size:0.9rem; margin:var(--s2) 0;}
.legal-table th, .legal-table td{text-align:left; padding:10px 12px; border-bottom:1px solid var(--nude); vertical-align:top; color:var(--ink-soft);}
.legal-table th{color:var(--ink); font-weight:600;}
.link-button{background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:3px;}
.footer-legal{display:flex; flex-wrap:wrap; gap:6px var(--s3); justify-content:center; margin-top:var(--s2);}
.footer-legal a, .footer-legal .link-button{color:#a9a09a; font-size:0.8rem; text-decoration:none;}
.footer-legal a:hover, .footer-legal .link-button:hover{color:var(--white); text-decoration:underline;}
/* cookie banner */
.consent{position:fixed; left:var(--s3); right:var(--s3); bottom:calc(var(--s3) + env(safe-area-inset-bottom, 0px)); z-index:200; max-width:560px; margin:0 auto;
  background:var(--white); color:var(--ink); border-radius:var(--radius-lg); padding:var(--s3) var(--s4); box-shadow:0 24px 60px -20px rgba(23,21,19,0.45); border:1px solid var(--nude);}
.consent p{font-size:0.9rem; color:var(--ink-soft); margin:0 0 var(--s2);}
.consent p a{color:var(--espresso); text-decoration:underline; text-underline-offset:3px;}
.consent-actions{display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap;}
.consent-actions .btn{padding:11px 22px; font-size:0.85rem;}
@media (max-width:760px){
  .consent{left:var(--s2); right:var(--s2); bottom:calc(84px + env(safe-area-inset-bottom, 0px)); padding:var(--s3);}
  .consent-actions .btn{flex:1; justify-content:center;}
}
/* map on demand */
.map-gate{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--s2); padding:var(--s4); text-align:center;
  background:linear-gradient(135deg, var(--nude), var(--rose-nude));}
.map-gate p{font-size:0.82rem; color:var(--ink-soft); max-width:360px; margin:0;}
.map-gate p a{color:var(--espresso); text-decoration:underline; text-underline-offset:3px;}

/* ============ v72: gallery with real photos and reels ============ */
.gallery-grid{grid-template-columns:repeat(4, 1fr); gap:var(--s2);}
.gallery-grid .g-tall{--ratio:9/16;}
.g-item{border-radius:var(--radius-sm); overflow:hidden; background:var(--nude);}
.g-item .media-ph{border-radius:0;}
.g-item .media-ph.has-img img{transition:transform .8s ease;}
.g-video{position:relative; aspect-ratio:9/16; cursor:pointer; background:var(--espresso);}
.g-media{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;}
.g-video::after{content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(30,30,30,0.32), transparent 55%); pointer-events:none; z-index:1;}
.g-play{position:absolute; left:50%; top:50%; width:56px; height:56px; margin:-28px 0 0 -28px; z-index:2; border-radius:50%;
  background:rgba(250,248,246,0.9); color:var(--espresso); display:inline-flex; align-items:center; justify-content:center; pointer-events:none;
  transition:opacity .3s ease, transform .3s ease;}
.g-play svg{width:24px; height:24px; margin-left:3px;}
.g-video.is-playing .g-play{opacity:0; transform:scale(.8);}
@media (hover: hover){
  .g-item:hover .media-ph.has-img img{transform:scale(1.06);}
  .g-video .g-play{opacity:0;}
  .g-video:hover .g-play{opacity:0;}
}
@media (max-width:980px){ .gallery-grid{grid-template-columns:repeat(3, 1fr);} }
@media (max-width:760px){ .gallery-grid{grid-template-columns:repeat(2, 1fr); gap:10px;} .g-play{width:48px; height:48px; margin:-24px 0 0 -24px;} }

/* ============ v73: gallery as a masonry (different heights that fit together) ============ */
.gallery-grid{display:block; column-count:4; column-gap:var(--s2);}
.gallery-grid .g-item{display:block; break-inside:avoid; margin:0 0 var(--s2); width:100%;}
.gallery-grid .r-916{--ratio:9/16;} .gallery-grid .r-45{--ratio:4/5;} .gallery-grid .r-34{--ratio:3/4;}
.g-video.r-45{aspect-ratio:4/5;}
.g-video .g-media{object-position:center;}
@media (max-width:980px){ .gallery-grid{column-count:3;} }
@media (max-width:760px){ .gallery-grid{column-count:2; column-gap:10px;} .gallery-grid .g-item{margin-bottom:10px;} }
.g-video.r-916{aspect-ratio:9/16;}

/* ============ v74: gallery columns laid out explicitly (balanced, big/small alternating) ============ */
.gallery-grid{display:grid; column-count:auto; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--s2); align-items:start;}
.g-col{display:flex; flex-direction:column; gap:var(--s2); min-width:0;}
.gallery-grid .g-item{margin:0;}
@media (max-width:980px){ .gallery-grid{grid-template-columns:repeat(2, minmax(0,1fr)); column-count:auto;} }
@media (max-width:760px){ .gallery-grid{gap:10px;} .g-col{gap:10px;} }
