/* Camada aditiva: preserva dimensões, fontes, cores, conteúdo e composição originais. */
:root{--premium-ease:cubic-bezier(.22,1,.36,1)}
.btn{isolation:isolate;position:relative;overflow:hidden}
.btn::after{content:'';position:absolute;pointer-events:none;inset:-80% -60%;background:linear-gradient(110deg,transparent 35%,rgba(255,250,230,.28) 48%,transparent 61%);transform:translateX(-80%);opacity:0}
.btn:hover::after,.btn:focus-visible::after{animation:premium-glint 1s var(--premium-ease) both}
@keyframes premium-glint{0%{transform:translateX(-80%);opacity:0}20%{opacity:1}100%{transform:translateX(80%);opacity:0}}
.header.scrolled{box-shadow:0 5px 28px rgba(33,52,42,.075)}
.nav-link{position:relative}
.nav-link::after{content:'';position:absolute;bottom:3px;left:22%;right:22%;height:1px;background:var(--terracotta);transform:scaleX(0);transform-origin:center;transition:transform .45s var(--premium-ease);pointer-events:none}
.nav-link:hover::after,.nav-link:focus-visible::after{transform:scaleX(1)}
.service-card::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(320px circle at var(--light-x,50%) var(--light-y,50%),rgba(173,138,72,.13),transparent 75%);opacity:0;transition:opacity .6s}
.service-card:hover::after{opacity:1}
.service-icon{transition:transform .6s var(--premium-ease),box-shadow .6s}
.service-card:hover .service-icon{transform:translateY(-3px) rotate(-4deg);box-shadow:0 7px 20px rgba(173,138,72,.1)}
.premium-depth{rotate:var(--depth-rotation,0deg);translate:0 var(--depth-y,0px);transition:rotate .8s var(--premium-ease),translate .8s var(--premium-ease)}
.cta-section::before{transform-origin:75% 50%;animation:premium-light 16s ease-in-out infinite alternate;animation-play-state:paused}
.cta-section.premium-in-view::before{animation-play-state:running}
@keyframes premium-light{from{transform:translateX(-5%) scale(.96);opacity:.72}to{transform:translateX(5%) scale(1.12);opacity:1}}
.review-seasons button,.review-colors button{transition:transform .35s var(--premium-ease),box-shadow .35s,background .35s,border-color .35s}
.review-seasons button:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(58,35,24,.07)}
.review-colors button:hover{transform:scale(1.2)}
.form-group input,.form-group select,.form-group textarea{transition:border-color .25s,box-shadow .3s,background .3s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{box-shadow:0 0 0 4px rgba(173,138,72,.1)}
.footer-links a{display:inline-block;transition:color .3s,translate .35s var(--premium-ease)}
.footer-links a:hover{translate:3px 0}
.premium-pressed{scale:.98;transition:scale .15s!important}
body.premium-page-hidden .cta-section::before{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.btn::after,.cta-section::before{animation:none!important}.premium-depth{rotate:none!important;translate:none!important}.premium-pressed{scale:1}.service-card:hover .service-icon,.review-seasons button:hover,.review-colors button:hover{transform:none}.footer-links a:hover{translate:none}}

/* ── Fase 1: fundação e acessibilidade (não altera a aparência) ───────────── */
picture{display:contents}
.skip-link{position:fixed;top:-120px;left:16px;z-index:2000;background:var(--green-deep,#143025);color:#fff;padding:.8rem 1.25rem;border-radius:var(--r-pill,100px);font:500 .85rem/1 var(--font-sans,system-ui);text-decoration:none;box-shadow:0 8px 28px rgba(20,48,37,.28);transition:top .25s var(--premium-ease)}
.skip-link:focus{top:14px;outline:2px solid var(--gold-light,#C9A861);outline-offset:3px}
main:focus{outline:none}
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--terracotta,#AD8A48);outline-offset:3px;border-radius:4px}
.btn:focus-visible{outline-offset:4px;border-radius:var(--r-pill,100px)}

/* ══════════════════════════════════════════════════════════════════════════
   FASE 2 — acabamento visual. Mesma paleta, mesmos textos, mesma composição:
   só profundidade, textura e ritmo de entrada. Tudo respeita movimento reduzido.
   ══════════════════════════════════════════════════════════════════════════ */

/* A. Tipografia: kerning, tamanho óptico e quebras de linha sem palavra órfã nos textos de destaque */
body{font-kerning:normal;text-rendering:optimizeLegibility;font-optical-sizing:auto}
.lead,.impact-text,.testimonial-text,.hero-lead{text-wrap:pretty}
.testimonial-text{hanging-punctuation:first}

/* B. Profundidade: sombras em camadas (mais naturais que uma sombra única) e leve brilho na borda superior */
:root{
  --sh-xs:0 1px 2px rgba(58,35,24,.05),0 2px 6px rgba(58,35,24,.04);
  --sh-sm:0 1px 2px rgba(58,35,24,.04),0 4px 10px rgba(58,35,24,.05),0 10px 24px rgba(58,35,24,.05);
  --sh-md:0 1px 2px rgba(58,35,24,.04),0 6px 14px rgba(58,35,24,.06),0 18px 40px rgba(58,35,24,.08);
  --sh-lg:0 2px 4px rgba(58,35,24,.04),0 12px 28px rgba(58,35,24,.07),0 32px 64px rgba(58,35,24,.10);
}
.service-card,.step,.contact-card,.info-card{box-shadow:var(--sh-xs),inset 0 1px 0 rgba(255,255,255,.9)}
.header.scrolled{box-shadow:0 1px 0 rgba(173,138,72,.2),0 6px 24px rgba(33,52,42,.06)}

/* C. Textura de papel, quase imperceptível: tira o aspecto "digital chapado" do fundo creme */
body::after{content:'';position:fixed;inset:0;z-index:700;pointer-events:none;opacity:.5;background-size:220px 220px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .36 0 0 0 0 .28 0 0 0 0 .18 .24 0 0 0 -.05'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@media print,(prefers-contrast:more){body::after{display:none}}

/* D. Títulos das seções entram "revelados" por uma máscara, junto com o .reveal já existente */
@media (prefers-reduced-motion:no-preference){
  .reveal h2{clip-path:inset(0 0 100% 0);transform:translateY(.4em);transition:clip-path 1.1s var(--premium-ease) .18s,transform 1.1s var(--premium-ease) .18s}
  .reveal.visible h2{clip-path:inset(-.2em -.1em -.4em -.1em);transform:none}

  /* E. Fotos das especialidades assentam suavemente ao entrar na tela */
  .specialty-visual img{transform:scale(1.07);transition:transform 1.8s var(--premium-ease)}
  .specialty-visual.visible img{transform:none}

  /* G. Transição suave entre páginas (navegadores compatíveis; os demais navegam normalmente) */
  @view-transition{navigation:auto}
  .whatsapp-float{view-transition-name:float-whatsapp}
  .google-review-float{view-transition-name:float-google}
  ::view-transition-old(root){animation:premium-vt-out .26s var(--premium-ease) both}
  ::view-transition-new(root){animation:premium-vt-in .45s var(--premium-ease) both}

  /* H. Cabeçalho recolhe ao rolar para baixo e volta ao rolar para cima */
  .header{transition:background .4s var(--elegant,ease),box-shadow .4s var(--elegant,ease),height .3s var(--elegant,ease),top .45s var(--premium-ease)}
  .header.premium-hidden{top:-130px}
}
@keyframes premium-vt-out{to{opacity:0}}
@keyframes premium-vt-in{from{opacity:0;transform:translateY(10px)}}
/* a árvore/QR precisam de contraste limpo para o leitor de câmera: ficam acima da textura */
.review-garden{position:relative;z-index:701}

/* ── Fase 4: agendamento em etapas, confirmação, "Encontre seu caminho", Imersão ── */
.flow-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.flow-progress{display:flex;justify-content:space-between;gap:.5rem;list-style:none;margin:0 0 1.75rem;padding:0;position:relative}
.flow-progress::before{content:'';position:absolute;left:14%;right:14%;top:15px;height:1px;background:rgba(173,138,72,.35)}
.flow-progress li{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;position:relative;font-size:.78rem;color:var(--muted);letter-spacing:.03em}
.flow-dot{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--cream,#FDFAF4);border:1px solid rgba(173,138,72,.5);font-size:.85rem;transition:background .4s,color .4s,border-color .4s,box-shadow .4s}
.flow-progress .now .flow-dot{background:var(--gold,#AD8A48);color:#fff;border-color:var(--gold,#AD8A48);box-shadow:0 0 0 5px rgba(173,138,72,.16)}
.flow-progress .now{color:var(--sage,#2F5645)}
.flow-progress .done .flow-dot{background:var(--sage,#2F5645);color:#fff;border-color:var(--sage,#2F5645)}
.flow-step[hidden],.flow-nav [hidden]{display:none!important}
.flow-nav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem}
.flow-nav .flow-next{margin-left:auto}
.flow-on .btn-submit{width:100%}
@media (prefers-reduced-motion:no-preference){.flow-step:not([hidden]){animation:flow-in .5s var(--premium-ease) both}}
@keyframes flow-in{from{opacity:0;transform:translateY(12px)}}

.flow-done{text-align:center;padding:2.5rem 1rem;color:var(--sage,#2F5645)}
.flow-done:focus{outline:none}
.flow-done .fd-msg{margin:1.25rem auto 1.75rem;max-width:34ch;font-family:'Cormorant Garamond',serif;font-size:1.5rem;line-height:1.35;color:var(--text,#3B3B34)}
.fd-ring,.fd-check{stroke-dasharray:160;stroke-dashoffset:0}
@media (prefers-reduced-motion:no-preference){
  .fd-ring{animation:fd-draw 1s var(--premium-ease) both}
  .fd-check{stroke-dasharray:50;animation:fd-draw-c .6s .7s var(--premium-ease) both}
}
@keyframes fd-draw{from{stroke-dashoffset:160}}
@keyframes fd-draw-c{from{stroke-dashoffset:50}}

.path-finder{padding:clamp(2.5rem,5vw,4rem) 0 clamp(1rem,2vw,2rem);text-align:center}
.path-finder h2{font-size:clamp(1.8rem,2.4vw,2.3rem);margin-bottom:.4rem}
.pf-lead{color:var(--muted);margin-bottom:1.5rem}
.pf-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem;max-width:860px;margin:0 auto}
.pf-chip{font:inherit;font-size:.9rem;padding:.6rem 1.15rem;border-radius:999px;border:1px solid rgba(173,138,72,.5);background:#fff;color:var(--sage,#2F5645);cursor:pointer;box-shadow:var(--sh-xs);transition:background .3s,color .3s,transform .3s,box-shadow .3s}
.pf-chip:hover{transform:translateY(-2px);box-shadow:var(--sh-sm)}
.pf-chip[aria-pressed=true]{background:var(--sage,#2F5645);color:#fff;border-color:var(--sage,#2F5645)}
.pf-result{max-width:640px;margin:1.75rem auto 0;min-height:1px}
.pf-result:empty{display:none}
.pf-title{font-family:'Cormorant Garamond',serif;font-size:1.5rem;line-height:1.3;margin-bottom:1.1rem}
.pf-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}
@media (prefers-reduced-motion:no-preference){.pf-result.pf-in{animation:flow-in .5s var(--premium-ease) both}}

.imersao-when{margin:1.25rem 0 1.5rem}
.countdown{display:flex;gap:.75rem}
.countdown[hidden]{display:none}
.countdown>div{min-width:76px;padding:.75rem .5rem;text-align:center;background:#fff;border:1px solid rgba(173,138,72,.35);border-radius:14px;box-shadow:var(--sh-xs),inset 0 1px 0 rgba(255,255,255,.9)}
.countdown b{display:block;font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:500;line-height:1;color:var(--sage,#2F5645);font-variant-numeric:tabular-nums}
.countdown span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cal-links{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:.9rem;font-size:.88rem}
.cal-links a{color:var(--gold,#AD8A48);text-decoration:underline;text-underline-offset:3px}
.flow-nav .btn{min-height:46px}

/* espaço reservado: o bloco é preenchido por JS e não pode empurrar a página (CLS) */
.path-finder{min-height:236px}
@media (max-width:768px){.path-finder{min-height:440px}}

/* ── Fase 3: depoimentos em carrossel ── */
.t-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:2rem;outline:none}
.t-track::-webkit-scrollbar{display:none}
.t-track:focus-visible{outline:2px solid var(--gold,#AD8A48);outline-offset:6px;border-radius:12px}
.t-slide{flex:0 0 100%;scroll-snap-align:center;margin:0;display:flex;flex-direction:column;align-items:center}
.t-slide blockquote{margin:0}
.t-slide .testimonial-text{font-size:clamp(1.15rem,2.1vw,1.6rem)}
.t-ctl{display:flex;align-items:center;justify-content:center;gap:1.25rem;margin-top:2rem}
.t-dots{display:flex;gap:.6rem}
.t-dot{width:9px;height:9px;padding:0;border-radius:50%;border:1px solid var(--gold,#AD8A48);background:transparent;cursor:pointer;position:relative;transition:background .3s,transform .3s}
.t-dot::after{content:'';position:absolute;inset:-14px}
.t-dot.on{background:var(--gold,#AD8A48);transform:scale(1.25)}
.t-arrow{width:44px;height:44px;border-radius:50%;border:1px solid rgba(173,138,72,.5);background:#fff;color:var(--sage,#2F5645);font-size:1.4rem;line-height:1;cursor:pointer;box-shadow:var(--sh-xs);transition:transform .3s,box-shadow .3s}
.t-arrow:hover{transform:translateY(-2px);box-shadow:var(--sh-sm)}
@media (prefers-reduced-motion:no-preference){.t-track{scroll-behavior:smooth}}

/* ══════════════════════════════════════════════════════════════════════════
   FASE 5 — direção de arte e movimento com sentido. Mesma paleta e textos.
   ══════════════════════════════════════════════════════════════════════════ */

/* A2. Molduras em arco (janela): topo em semicírculo, base com canto suave. Só o recorte muda; o tamanho não. */
.image-blob{border-radius:50% 50% 6% 6%/40% 40% 4.8% 4.8%;animation-name:arch-float}
@keyframes arch-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.about-blob,.bio-blob{border-radius:50% 50% 7% 7%/37.5% 37.5% 5.25% 5.25%}
.specialty-visual{border-radius:50% 50% var(--r-lg) var(--r-lg)/34% 34% var(--r-lg) var(--r-lg)}
/* fio dourado deslocado atrás das fotos principais, como a moldura de uma janela */
.hero-visual::before,.about-image-wrap::before,.bio-image-wrap::before{content:'';position:absolute;pointer-events:none;border:1px solid rgba(173,138,72,.45)}
.hero-visual::before{width:clamp(320px,42vw,500px);aspect-ratio:4/5;border-radius:50% 50% 6% 6%/40% 40% 4.8% 4.8%;translate:16px 16px}
.about-image-wrap::before,.bio-image-wrap::before{inset:16px -16px -16px 16px;border-radius:50% 50% 7% 7%/37.5% 37.5% 5.25% 5.25%}
.about-image-wrap>picture img,.bio-image-wrap>picture img{position:relative}
@media (max-width:768px){.hero-visual::before{width:min(300px,80vw);translate:12px 12px}.about-image-wrap::before,.bio-image-wrap::before{inset:12px -12px -12px 12px}}

/* A3. Tipografia editorial: títulos de seção maiores, mais leves e mais justos; ritmo vertical único */
:root{--ritmo-1:.75rem;--ritmo-2:1.25rem;--ritmo-3:clamp(3rem,5vw,4.5rem)}
.section-header h2,.about-text h2,.bio-content h2,.cta-inner h2{font-size:clamp(2.45rem,4.7vw,3.75rem);font-weight:400;line-height:1.06;letter-spacing:-.022em}
.section-header .eyebrow,.about-text .eyebrow,.bio-content .eyebrow{margin-bottom:var(--ritmo-2)}
.section-header h2,.about-text h2,.bio-content h2{margin-bottom:var(--ritmo-2)}
@media (max-width:480px){.section-header h2,.about-text h2,.bio-content h2,.cta-inner h2{font-size:2.2rem}}
/* ênfase: UMA palavra por título em itálico dourado. Classe pronta; só é aplicada às palavras aprovadas. */
/* dourado um pouco mais fundo que --gold: contraste ≥ 3:1 (texto grande, WCAG AA) também sobre o creme quente #F4EEE2 */
:root{--enfase:#9A7A3E}
.enfase{font-style:italic;font-weight:inherit;color:var(--enfase);-webkit-text-fill-color:var(--enfase)}
.cta-section .enfase{color:var(--gold-light);-webkit-text-fill-color:var(--gold-light)}

/* B4. Quatro estações ao rolar: um véu de cor quase imperceptível (multiplicado) passa de primavera → verão → outono → inverno.
   Sem suporte a animações ligadas à rolagem, ou com movimento reduzido: nada muda (fundo original). */
body::before{content:none}
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    body::before{content:'';position:fixed;inset:0;z-index:699;pointer-events:none;mix-blend-mode:multiply;background:#F8FAF4;
      animation:estacoes linear both;animation-timeline:scroll(root block)}
  }
}
@keyframes estacoes{0%,8%{background-color:#F8FAF4}36%{background-color:#FFFAF0}66%{background-color:#FDF4EC}92%,100%{background-color:#F4F6F8}}
@media print,(prefers-contrast:more){body::before{content:none!important}}

/* B5. Desenhos de linha botânicos que se "desenham" ao entrar na tela (traço já completo sem suporte / movimento reduzido) */
.services-section,.faq-section,.values-section,.page-hero{position:relative}
.bot-line{position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(.75rem,5vw,5rem);width:clamp(52px,6vw,86px);height:auto;color:var(--gold);opacity:.6;pointer-events:none;view-timeline:--bot block}
.bot-line.l{right:auto;left:clamp(.75rem,5vw,5rem);scale:-1 1}
.bot-line.sage{color:var(--sage);opacity:.45}
.bot-line path{fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:768px){.bot-line{opacity:.4}}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .bot-line path{stroke-dasharray:1;stroke-dashoffset:1;animation:bot-draw linear both;animation-timeline:--bot;animation-range:entry 30% cover 55%}
    .bot-line path:nth-child(n+2){animation-range:entry 55% cover 62%}
  }
}
@keyframes bot-draw{to{stroke-dashoffset:0}}

/* B6. Respiro: o brilho quente do topo expande e recolhe em ~6 s (só opacidade/escala; pausado fora da tela) */
@media (prefers-reduced-motion:no-preference){
  .hero::before{transform-origin:72% 45%;animation:respiro 6s ease-in-out infinite;animation-play-state:paused}
  .hero.premium-in-view::before{animation-play-state:running}
  body.premium-page-hidden .hero::before{animation-play-state:paused}
}
@keyframes respiro{0%,100%{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.hero::before,.image-blob,.bot-line path,body::before{animation:none!important}.bot-line path{stroke-dashoffset:0!important}}
