/* ============ TOKENS ============ */
:root{
  --sage-900:#33422f;
  --sage-700:#4a5d3f;
  --sage-500:#748a5f;
  --terracota:#c97c5d;
  --terracota-dark:#a85f43;
  --bege:#f3ecdf;
  --cream:#fbf8f2;
  --ink:#2b2b26;
  --ink-soft:#5b5a4f;
  --line:#e1d8c4;

  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Inter', -apple-system, sans-serif;

  --radius-lg:28px;
  --radius-md:16px;
  --shadow-soft:0 10px 40px -12px rgba(51,66,47,0.25);

  --wrap:1120px;
  --gutter:clamp(1.25rem,4vw,3rem);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .35s ease, color .35s ease;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;margin:0;padding:0;}
h1,h2,h3{font-family:var(--font-display);color:var(--sage-900);margin:0 0 .5em;line-height:1.15;font-weight:500;}
h1{font-size:clamp(2.4rem,5vw,4rem);}
h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}
h3{font-size:1.2rem;}
p{line-height:1.7;color:var(--ink-soft);margin:0 0 1em;}
em{font-style:italic;color:var(--terracota-dark);}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);}
.wrap-narrow{max-width:760px;}
.center{text-align:center;margin-left:auto;margin-right:auto;}

.eyebrow{
  font-family:var(--font-body);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--terracota-dark);
  font-weight:600;
  margin:0 0 .9em;
}

@media (prefers-reduced-motion:no-preference){
  [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
  [data-reveal].is-visible{opacity:1;transform:translateY(0);}
}

/* subtle paper grain overlay */
.grain{
  position:fixed;inset:0;pointer-events:none;z-index:999;opacity:.035;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.85em 1.7em;
  border-radius:999px;
  font-weight:600;
  font-size:.95rem;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}
.btn-primary{background:var(--terracota);color:#fff;}
.btn-primary:hover{background:var(--terracota-dark);transform:translateY(-2px);box-shadow:var(--shadow-soft);}
.btn-ghost{background:transparent;border-color:var(--sage-700);color:var(--sage-900);}
.btn-ghost:hover{background:var(--sage-900);color:var(--cream);}
.btn-block{width:100%;}
.btn:focus-visible{outline:3px solid var(--terracota-dark);outline-offset:3px;}

/* ============ HEADER ============ */
.site-header{
  position:sticky;top:0;z-index:100;
  padding:1.3rem 0;
  transition:padding .3s ease, background .3s ease, box-shadow .3s ease;
}
.site-header.scrolled{
  padding:.7rem 0;
  background:rgba(251,248,242,.9);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}
.logo{display:flex;align-items:center;gap:.6rem;}
.logo-mark{
  width:34px;height:34px;border-radius:50%;
  background:radial-gradient(circle at 32% 32%, var(--sage-500), var(--sage-900));
  flex:none;
}
.logo-text{font-family:var(--font-display);font-size:1.15rem;color:var(--sage-900);line-height:1.1;}
.logo-sub{display:block;font-family:var(--font-body);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;}

.nav{display:flex;align-items:center;gap:2rem;}
.nav a{font-size:.92rem;font-weight:500;color:var(--ink);position:relative;padding:.2rem 0;}
.nav a:not(.nav-cta)::after{
  content:"";position:absolute;left:0;bottom:-3px;height:2px;width:0;background:var(--terracota);
  transition:width .25s ease;
}
.nav a:not(.nav-cta):hover::after,
.nav a.active::after{width:100%;}
.nav a.nav-cta{background:var(--terracota);color:#fff;padding:.65em 1.4em;border-radius:999px;font-weight:600;}
.nav a.nav-cta:hover{background:var(--terracota-dark);}

.menu-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:40px;height:40px;border:none;background:none;cursor:pointer;padding:0;
}
.menu-toggle span{width:100%;height:2px;background:var(--sage-900);border-radius:2px;transition:transform .3s ease, opacity .3s ease;}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============ HERO ============ */
.hero{padding:clamp(2rem,6vw,5rem) 0 clamp(3rem,7vw,6rem);}
.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.hero-lede{font-size:1.08rem;max-width:46ch;}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.6rem;}

.hero-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;padding:2rem;}
.breathe-stack{position:relative;width:340px;height:340px;display:flex;align-items:center;justify-content:center;flex:none;}
.breathe-ring{
  position:absolute;top:50%;left:50%;border-radius:50%;border:1.5px solid var(--sage-500);
  opacity:.5;transform:translate(-50%,-50%);
}
.ring-1{width:280px;height:280px;}
.ring-2{width:340px;height:340px;border-color:var(--terracota);opacity:.3;}
@media (prefers-reduced-motion:no-preference){
  .ring-1{animation:breathe 8s ease-in-out infinite;}
  .ring-2{animation:breathe 8s ease-in-out infinite .3s;}
}
@keyframes breathe{
  0%,100%{transform:translate(-50%,-50%) scale(.92);opacity:.28;}
  40%{transform:translate(-50%,-50%) scale(1.06);opacity:.55;}
  60%{transform:translate(-50%,-50%) scale(1.06);opacity:.55;}
}

.portrait-frame{
  position:relative;width:240px;height:240px;border-radius:50%;
  overflow:hidden;background:linear-gradient(160deg,var(--sage-500),var(--sage-900));
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-soft);border:5px solid var(--cream);
}
.portrait-frame--sm{width:220px;height:220px;}
.portrait-img{width:100%;height:100%;object-fit:cover;}
.portrait-fallback{
  display:none;font-family:var(--font-display);font-size:3.4rem;color:var(--cream);
}
.portrait-frame.no-photo .portrait-fallback{display:block;}
.portrait-frame:not(.no-photo) .portrait-fallback{display:none;}
.portrait-frame img:not([src]),
.portrait-frame img[src=""]{display:none;}

.breathe-caption{
  margin-top:1.4rem;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:500;
}

/* ============ SECTIONS ============ */
.section{padding:clamp(3.5rem,8vw,6.5rem) 0;}
.section-alt{background:var(--bege);}
.section .lede{max-width:60ch;margin-left:auto;margin-right:auto;font-size:1.05rem;}
.section h2{margin-bottom:.4em;}
.section > .wrap > .eyebrow.center,
.section > .wrap > h2.center{max-width:none;}

/* SOBRE */
.sobre-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(2rem,5vw,4rem);align-items:center;}
.sobre-photo{display:flex;justify-content:center;}
.credentials{margin-top:1.4rem;display:flex;flex-direction:column;gap:.55rem;}
.credentials li{
  font-size:.92rem;color:var(--sage-900);font-weight:500;
  padding-left:1.4rem;position:relative;
}
.credentials li::before{
  content:"";position:absolute;left:0;top:.5em;width:7px;height:7px;border-radius:50%;background:var(--terracota);
}

/* CARDS */
.cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-top:3rem;}
.card{
  background:var(--cream);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:2rem 1.6rem;transition:transform .3s ease, box-shadow .3s ease;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-soft);}
.card-icon{font-size:1.8rem;color:var(--terracota);display:block;margin-bottom:.9rem;}
.card h3{margin-bottom:.4em;}
.card p{font-size:.92rem;margin:0;}

/* STEPS */
.steps{max-width:720px;margin:3rem auto 0;display:flex;flex-direction:column;gap:1.8rem;}
.step{display:flex;gap:1.4rem;align-items:flex-start;}
.step-n{
  flex:none;width:44px;height:44px;border-radius:50%;
  background:var(--sage-900);color:var(--cream);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-size:1.15rem;
}
.step h3{margin-bottom:.3em;}
.step p{margin:0;}
.modal-note{
  max-width:720px;margin:2.6rem auto 0;padding:1.2rem 1.6rem;
  background:var(--bege);border-left:3px solid var(--terracota);border-radius:0 var(--radius-md) var(--radius-md) 0;
}
.modal-note p{margin:0;color:var(--sage-900);font-size:.94rem;}

/* CAROUSEL */
.carousel{max-width:720px;margin:3rem auto 0;}
.carousel-track{position:relative;min-height:180px;}
.testimonial{
  display:none;margin:0;padding:2.2rem 2rem;background:var(--cream);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);text-align:center;
}
.testimonial.is-active{display:block;animation:fadeIn .5s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.testimonial p{font-family:var(--font-display);font-size:1.15rem;font-style:italic;color:var(--sage-900);margin-bottom:1em;}
.testimonial footer{font-size:.82rem;color:var(--ink-soft);font-weight:500;}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:1.4rem;margin-top:1.6rem;}
.carousel-btn{
  width:40px;height:40px;padding:0;border-radius:50%;border:1.5px solid var(--sage-700);background:var(--cream);
  color:var(--sage-900);cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex:none;line-height:0;
  transition:background .25s ease,color .25s ease,border-color .25s ease,transform .2s ease;
}
.carousel-btn:hover{background:var(--sage-900);border-color:var(--sage-900);color:var(--cream);transform:translateY(-2px);}
.carousel-btn:active{transform:translateY(0);}
.carousel-btn:focus-visible{outline:2px solid var(--terracota-dark);outline-offset:2px;}
.carousel-btn svg{display:block;}
.carousel-dots{display:flex;gap:.5rem;}
.dot{width:8px;height:8px;border-radius:50%;background:var(--line);border:none;cursor:pointer;padding:0;transition:background .25s ease,transform .25s ease;}
.dot.is-active{background:var(--terracota);transform:scale(1.3);}

/* FAQ */
.accordion{margin-top:2.6rem;display:flex;flex-direction:column;gap:.7rem;}
.accordion-item{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--cream);overflow:hidden;}
.accordion-trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:none;border:none;text-align:left;cursor:pointer;
  padding:1.15rem 1.4rem;font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--sage-900);
}
.accordion-icon{font-size:1.3rem;color:var(--terracota);transition:transform .3s ease;flex:none;}
.accordion-trigger[aria-expanded="true"] .accordion-icon{transform:rotate(45deg);}
.accordion-panel{
  max-height:0;overflow:hidden;transition:max-height .35s ease, padding .35s ease;padding:0 1.4rem;
}
.accordion-panel p{margin:0 0 1.15rem;font-size:.94rem;}

/* CONTATO */
.section-contact{background:var(--sage-900);}
.section-contact h2,.section-contact .eyebrow{color:var(--cream);}
.section-contact .eyebrow{color:#e3b79f;}
.section-contact .lede{color:#cfd6c8;}
.contato-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.contato-info{margin-top:2rem;display:flex;flex-direction:column;gap:1.1rem;}
.contato-info p{margin:0;color:#cfd6c8;font-size:.94rem;}
.contato-info strong{color:var(--cream);font-family:var(--font-display);font-weight:500;font-size:1.02rem;}

.contato-form{background:var(--cream);border-radius:var(--radius-lg);padding:clamp(1.6rem,3vw,2.4rem);box-shadow:var(--shadow-soft);}
.form-row{margin-bottom:1.2rem;display:flex;flex-direction:column;gap:.4rem;}
.form-row label{font-size:.85rem;font-weight:600;color:var(--sage-900);}
.form-row input,.form-row textarea{
  font-family:var(--font-body);font-size:.96rem;padding:.75em .9em;
  border:1.5px solid var(--line);border-radius:var(--radius-md);background:#fff;color:var(--ink);
  resize:vertical;transition:border-color .25s ease, box-shadow .25s ease;
}
.form-row input:focus,.form-row textarea:focus{
  outline:none;border-color:var(--terracota);box-shadow:0 0 0 3px rgba(201,124,93,.18);
}
.form-row.has-error input,.form-row.has-error textarea{border-color:#b0473a;}
.form-error{font-size:.78rem;color:#b0473a;min-height:1em;}
.form-success{
  margin:.9rem 0 0;font-size:.9rem;font-weight:600;color:var(--sage-700);
  opacity:0;transform:translateY(-6px);transition:opacity .35s ease, transform .35s ease;
}
.form-success.is-visible{opacity:1;transform:translateY(0);}

/* ============ FOOTER ============ */
.site-footer{background:var(--sage-900);color:#cfd6c8;padding:2.4rem 0 1.6rem;border-top:1px solid rgba(255,255,255,.08);}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem;}
.footer-brand{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);color:var(--cream);}
.footer-links{display:flex;gap:1.6rem;flex-wrap:wrap;}
.footer-links a{font-size:.88rem;color:#cfd6c8;}
.footer-links a:hover{color:var(--cream);}
.footer-disclaimer{
  max-width:var(--wrap);margin:1.8rem auto 0;padding:0 var(--gutter);
  font-size:.76rem;color:#93a189;border-top:1px solid rgba(255,255,255,.08);padding-top:1.2rem;
}

.footer-credit{
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  margin-top:1.4rem;padding:0 var(--gutter);
  font-size:.78rem;color:#93a189;
  transition:opacity .2s ease;
}
.footer-credit:hover{opacity:.8;}
.footer-credit-logo{height:14px;width:auto;}

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .nav{
    position:fixed;top:0;right:0;height:100vh;width:min(320px,80vw);
    background:var(--cream);flex-direction:column;align-items:flex-start;justify-content:center;
    padding:2rem;gap:1.6rem;box-shadow:-10px 0 40px rgba(0,0,0,.15);
    transform:translateX(100%);transition:transform .35s ease;
    z-index:150;
  }
  .nav.is-open{transform:translateX(0);}
  .nav-cta{margin-top:.5rem;}
  .menu-toggle{display:flex;}

  .hero-inner{grid-template-columns:1fr;text-align:center;}
  .hero-copy{order:2;}
  .hero-lede{margin-left:auto;margin-right:auto;}
  .hero-actions{justify-content:center;}

  .sobre-grid{grid-template-columns:1fr;text-align:center;}
  .credentials{align-items:center;}
  .credentials li{padding-left:0;}
  .credentials li::before{display:none;}

  .cards-grid{grid-template-columns:repeat(2,1fr);}
  .contato-grid{grid-template-columns:1fr;}
}

@media (max-width:560px){
  .cards-grid{grid-template-columns:1fr;}
  .breathe-stack{width:250px;height:250px;}
  .ring-1{width:210px;height:210px;}
  .ring-2{width:250px;height:250px;}
  .portrait-frame{width:180px;height:180px;}
}

/* ============ SOCIAL / MAPS ============ */
.social-link{color:var(--sage-900);font-weight:600;}
.social-link:hover{color:var(--terracota-dark);}

.maps-embed{
  margin-top:3.5rem;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-soft);filter:saturate(.85);
}
.maps-embed iframe{display:block;}

.footer-social{display:inline-flex;align-items:center;color:#cfd6c8;}
.footer-social:hover{color:var(--cream);}

/* ============ WHATSAPP FLOAT ============ */
.whatsapp-float{
  position:fixed;right:1.5rem;bottom:1.5rem;z-index:120;
  width:58px;height:58px;border-radius:50%;
  background:var(--terracota);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:var(--shadow-soft);
  transition:transform .25s ease,background .25s ease;
}
.whatsapp-float:hover{background:var(--terracota-dark);transform:translateY(-3px) scale(1.05);}
.whatsapp-float:focus-visible{outline:3px solid var(--sage-900);outline-offset:3px;}
@media (max-width:560px){
  .whatsapp-float{right:1rem;bottom:1rem;width:52px;height:52px;}
}

/* ============ PAGE LOADER ============ */
.page-loader{
  position:fixed;inset:0;z-index:1000;
  background:var(--cream);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .5s ease;
}
.page-loader.is-hidden{opacity:0;pointer-events:none;}
.page-loader-rings{position:relative;width:120px;height:120px;}
.page-loader-ring{
  position:absolute;top:50%;left:50%;border-radius:50%;
  border:1.5px solid var(--sage-500);opacity:.5;transform:translate(-50%,-50%);
  width:70px;height:70px;
}
.page-loader-ring--2{width:110px;height:110px;border-color:var(--terracota);opacity:.3;}
@media (prefers-reduced-motion:no-preference){
  .page-loader-ring{animation:breathe 1.6s ease-in-out infinite;}
  .page-loader-ring--2{animation:breathe 1.6s ease-in-out infinite .2s;}
}
