:root{
    --wine: #5C2547;
    --wine-deep: #33122A;
    --rose: #C77B98;
    --rose-soft: #EBD3DC;
    --gold: #B8935B;
    --gold-soft: #E8D9C0;
    --cream: #FBF6F1;
    --cream-card: #FFFDFB;
    --ink: #2B2230;
    --ink-soft: #6B5C66;
    --shadow: 0 20px 50px -20px rgba(51,18,42,0.25);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Mulish', sans-serif;
    color:var(--ink);
    background:var(--cream);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block;}
  a{text-decoration:none; color:inherit;}
  h1,h2,h3{font-family:'Playfair Display', serif; margin:0; color:var(--wine-deep);}
  .script{font-family:'Alex Brush', cursive; line-height:1;}
  .eyebrow{
    font-family:'Mulish', sans-serif;
    font-weight:700;
    letter-spacing:0.18em;
    text-transform:uppercase;
    font-size:0.78rem;
    color:var(--rose);
  }
  .container{max-width:1160px; margin:0 auto; padding:0 28px;}

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--rose);
    outline-offset:3px;
    border-radius:4px;
  }
  .skip-link{
    position:absolute; left:-999px; top:0; background:var(--wine); color:#fff; padding:10px 16px; z-index:999;
  }
  .skip-link:focus{ left:12px; top:12px; }

  /* reveal on scroll */
  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }
  .beneficios-grid .reveal:nth-child(2){transition-delay:.05s}
  .beneficios-grid .reveal:nth-child(3){transition-delay:.1s}
  .beneficios-grid .reveal:nth-child(4){transition-delay:.15s}
  .beneficios-grid .reveal:nth-child(5){transition-delay:.2s}
  .beneficios-grid .reveal:nth-child(6){transition-delay:.25s}
  .beneficios-grid .reveal:nth-child(7){transition-delay:.3s}
  .beneficios-grid .reveal:nth-child(8){transition-delay:.35s}
  .acc-list .reveal:nth-child(2){transition-delay:.04s}
  .acc-list .reveal:nth-child(3){transition-delay:.08s}
  .acc-list .reveal:nth-child(4){transition-delay:.12s}
  .acc-list .reveal:nth-child(5){transition-delay:.16s}
  .acc-list .reveal:nth-child(6){transition-delay:.2s}
  .acc-list .reveal:nth-child(7){transition-delay:.24s}
  .acc-list .reveal:nth-child(8){transition-delay:.28s}
  .acc-list .reveal:nth-child(9){transition-delay:.32s}

  /* Sticky header */
  header.site{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(251,246,241,0.9);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(184,147,91,0.25);
    transition:box-shadow .3s ease;
  }
  header.site.scrolled{ box-shadow:0 8px 26px -14px rgba(51,18,42,0.25); }
  header.site .bar{
    display:flex; align-items:center; justify-content:space-between;
    gap:18px;
    padding:13px 28px;
    max-width:1160px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:10px;}
  .brand-mark{width:32px; height:32px; flex-shrink:0;}
  .brand-name{font-family:'Playfair Display', serif; font-weight:600; font-size:1rem; color:var(--wine-deep); letter-spacing:0.02em;}
  .brand-role{display:block; font-size:0.6rem; letter-spacing:0.13em; text-transform:uppercase; color:var(--ink-soft); font-weight:600;}

  .nav-links{ display:none; flex:1; justify-content:center; gap:30px; }
  .nav-links a{ font-size:0.86rem; font-weight:600; color:var(--ink-soft); transition:color .2s; }
  .nav-links a:hover{ color:var(--wine); }

  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:12px 26px;
    border-radius:100px;
    font-weight:700;
    font-size:0.92rem;
    cursor:pointer;
    border:none;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
    white-space:nowrap;
  }
  .btn-primary{
    background:linear-gradient(135deg, var(--wine), var(--wine-deep));
    color:#fff;
    box-shadow:0 12px 30px -10px rgba(92,37,71,0.55);
  }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 34px -8px rgba(92,37,71,0.6); }
  .btn-ghost{
    background:transparent; color:var(--wine-deep); border:1.5px solid var(--wine-deep);
  }
  .btn-ghost:hover{ background:var(--wine-deep); color:#fff; }
  .btn-small{padding:9px 18px; font-size:0.82rem;}
  .btn[disabled], .btn.is-disabled{ opacity:0.5; pointer-events:none; }

  header .bar .actions{display:flex; align-items:center; gap:10px;}

  /* HERO */
  .hero{
    position:relative;
    padding:150px 0 90px;
    background:
      radial-gradient(ellipse 900px 600px at 85% 0%, rgba(199,123,152,0.18), transparent 60%),
      radial-gradient(ellipse 700px 500px at 10% 100%, rgba(184,147,91,0.14), transparent 60%),
      var(--cream);
    overflow:hidden;
  }
  .hero .container{
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    gap:56px;
    align-items:center;
  }
  .hero-copy{ animation:fadeUp .9s ease both; }
  .hero-copy .eyebrow{ display:flex; align-items:center; gap:8px; margin-bottom:22px;}
  .hero-copy .eyebrow .pin{width:14px; height:14px; color:var(--gold); flex-shrink:0;}
  .hero h1{
    font-size:clamp(2.6rem, 5vw, 3.6rem);
    line-height:1.2;
    font-weight:400;
    color:var(--wine-deep);
  }
  .hero h1 .script{
    font-size:1.5em;
    display:block;
    color:var(--wine);
    margin-bottom:2px;
  }
  .hero-tagline{
    margin-top:22px;
    font-size:1.18rem;
    color:var(--ink-soft);
    max-width:44ch;
    line-height:1.6;
  }
  .hero-actions{ 
    display:flex; gap:14px; margin-top:36px; flex-wrap:wrap;
  }

  .hero-actions svg {
    width: 29px;
    height: 29px;
  }
  .hero-trust{ margin-top:38px; display:flex; gap:26px; flex-wrap:wrap; }
  .hero-trust div{ font-size:0.86rem; color:var(--ink-soft); display:flex; align-items:center; gap:8px;}
  .hero-trust svg{width:17px; height:17px; color:var(--rose); flex-shrink:0;}

  .hero-visual{ position:relative; display:flex; justify-content:center; align-items:center; animation:fadeIn 1.2s ease both; }
  .hero-visual::before{
    content:''; position:absolute; width:88%; height:88%;
    background:linear-gradient(135deg, var(--rose-soft), var(--gold-soft));
    border-radius:32px; transform:rotate(-4deg); z-index:0;
  }
  .photo-frame{ position:relative; width:100%; max-width:360px; z-index:1; }
  .photo-frame img{ width:100%; height:auto; display:block; border-radius:22px; box-shadow:var(--shadow); }
  .badge-float{
    position:absolute; bottom:-6px; left:-18px;
    background:var(--cream-card); padding:14px 20px; border-radius:16px; box-shadow:var(--shadow);
    display:flex; align-items:center; gap:12px; max-width:230px; z-index:3;
  }
  .badge-float svg{width:26px; height:26px; color:var(--wine); flex-shrink:0;}
  .badge-float span{font-size:0.78rem; font-weight:700; color:var(--ink); line-height:1.3;}

  @keyframes fadeUp{ from{opacity:0; transform:translateY(24px);} to{opacity:1; transform:translateY(0);} }
  @keyframes fadeIn{ from{opacity:0; transform:scale(.96);} to{opacity:1; transform:scale(1);} }

  section{ padding:100px 0; }
  .section-head{ text-align:center; max-width:640px; margin:0 auto 56px; }
  .section-head .eyebrow{ display:block; margin-bottom:14px; }
  .section-head h2{ font-size:clamp(1.9rem, 3.4vw, 2.5rem); font-weight:600; }
  .section-head p{ margin-top:16px; color:var(--ink-soft); font-size:1.05rem; line-height:1.7; }

  /* ABOUT */
  .about{ background:var(--cream-card); }
  .about .container{ max-width:820px; text-align:center; }
  .about blockquote{
    font-family:'Playfair Display', serif; font-style:italic; font-size:1.35rem;
    color:var(--wine-deep); line-height:1.6; margin:0 0 28px;
  }
  .about p{ color:var(--ink-soft); font-size:1.05rem; line-height:1.8; }

  .video-frame{
  position:relative; width:100%; max-width:300px; aspect-ratio:9/16;
  margin:36px auto 0; border-radius:22px; overflow:hidden;
  box-shadow:var(--shadow); background:#000; cursor:pointer;
  }

  .video-frame iframe{ 
    position:absolute; 
    top:0; 
    left:0; 
    width:100%; 
    height:100%; 
    border:0; 
  }

  .video-poster{ 
    position:absolute; 
    inset:0; 
    width:100%; 
    height:100%; 
    object-fit:cover;
  }

  .video-play-btn{
  position:absolute; 
  top:50%; 
  left:50%; 
  transform:translate(-50%,-50%);
  width:64px; 
  height:64px; 
  border-radius:50%; 
  background:rgba(255,255,255,0.92);
  border:none; 
  cursor:pointer; 
  display:flex; 
  align-items:center; 
  justify-content:center;
  box-shadow:0 10px 26px -8px rgba(0,0,0,0.5);
  transition:transform .25s ease, background .25s ease;
  }

  .video-play-btn:hover{
     transform:translate(-50%,-50%) scale(1.08); background:#fff; 
    }

  .video-play-btn svg{ 
    width:26px; 
    height:26px; 
    color:var(--wine); 
    margin-left:3px; 
  }

  /* BENEFICIOS */
  .beneficios{ background:var(--cream); }
  .beneficios-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:22px; }
  .beneficio-card{
    background:var(--cream-card); border-radius:18px; padding:26px 22px;
    border:1px solid rgba(184,147,91,0.16); box-shadow:0 10px 26px -18px rgba(51,18,42,0.16);
    transition:transform .3s ease, box-shadow .3s ease;
  }
  .beneficio-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
  .beneficio-icon{
    width:44px; height:44px; border-radius:12px; margin-bottom:16px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, var(--rose-soft), var(--gold-soft));
  }
  .beneficio-icon svg{ width:22px; height:22px; color:var(--wine-deep); }
  .beneficio-card h3{ font-size:0.98rem; font-weight:600; margin-bottom:8px; }
  .beneficio-card p{ font-size:0.85rem; color:var(--ink-soft); line-height:1.6; margin:0; }

  /* TERAPIAS accordion */
  .terapias{ background:var(--cream-card); }
  .acc-list{ display:flex; flex-direction:column; gap:14px; max-width:820px; margin:0 auto; }
  .acc-item{
    background:var(--cream); border:1px solid rgba(184,147,91,0.22); border-radius:16px; overflow:hidden;
  }
  .acc-header{
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:20px 24px; background:none; border:none; cursor:pointer; text-align:left;
    font-family:'Playfair Display', serif; font-size:1.12rem; font-weight:600; color:var(--wine-deep);
  }
  .acc-header .left{ display:flex; align-items:center; gap:14px; }
  .acc-header .num{ font-family:'Mulish',sans-serif; font-size:0.72rem; font-weight:800; color:var(--gold); letter-spacing:0.05em; flex-shrink:0; }
  .acc-header .chev{ width:18px; height:18px; color:var(--wine); flex-shrink:0; transition:transform .3s ease; }
  .acc-item.is-open .acc-header .chev{ transform:rotate(180deg); }
  .acc-body{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
  .acc-body-inner{ padding:0 24px 24px; display:grid; gap:12px; }
  .acc-body-inner p{ margin:0; font-size:0.92rem; line-height:1.65; color:var(--ink-soft); }
  .acc-body-inner p strong{ color:var(--wine); font-weight:700; }

  /* COMPETENCIAS */
  .competencias{ background:var(--wine-deep); color:#fff; position:relative; overflow:hidden;}
  .competencias::before{
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse 700px 400px at 90% 10%, rgba(199,123,152,0.25), transparent 60%);
  }
  .competencias .container{ position:relative; }
  .competencias .section-head h2{ color:#fff; }
  .competencias .section-head .eyebrow{ color:var(--gold-soft); }
  .competencias .section-head p{ color:rgba(255,255,255,0.72); }
  .chip-row{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; }
  .chip{
    display:flex; align-items:center; gap:10px; background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.16); padding:12px 22px; border-radius:100px;
    font-size:0.92rem; font-weight:600;
  }
  .chip svg{ width:16px; height:16px; color:var(--rose); flex-shrink:0; }

  /* GALERIA */
  .galeria{ background:var(--cream); }
  .galeria-grid{ display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:1fr 1fr; gap:20px; height:560px; }
  .galeria-grid .frame{ border-radius:22px; overflow:hidden; box-shadow:var(--shadow); position:relative; }
  .galeria-grid .frame img{ width:100%; height:100%; object-fit:cover; }
  .galeria-grid .frame.tall{ grid-row:1 / 3; grid-column:1; }
  .galeria-grid .frame.top-right{ grid-row:1; grid-column:2; }
  .galeria-grid .frame.bottom-right{ grid-row:2; grid-column:2; }
  .galeria-text{ text-align:center; max-width:680px; margin:32px auto 0; color:var(--ink-soft); line-height:1.8; }

  /* MISSAO */
  .missao{ background:linear-gradient(135deg, var(--wine), var(--wine-deep)); color:#fff; text-align:center; position:relative; }
  .missao .lotus-icon{ width:44px; height:44px; margin:0 auto 26px; color:var(--gold-soft); }
  .missao blockquote{
    font-family:'Playfair Display', serif; font-style:italic; font-weight:500;
    font-size:clamp(1.3rem, 2.6vw, 1.8rem); line-height:1.6; max-width:760px; margin:0 auto;
  }

  /* DEPOIMENTOS */
  .depoimentos{ background:var(--cream-card); }
  .depoimentos-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start; }
  .depoimentos-grid .depoimento-card:first-child{ grid-column:1 / -1; }
  .depoimentos-grid .depoimento-card:first-child img{ max-width:520px; margin:0 auto; }
  .depoimento-card{
    background:var(--cream); border:1px solid rgba(184,147,91,0.18); border-radius:18px; padding:28px;
    box-shadow:0 10px 26px -18px rgba(51,18,42,0.16);
  }
  .depoimento-card .stars{
     color:var(--gold); font-size:1rem; letter-spacing:2px; margin-bottom:14px; 
  }

  .depoimento-card p{
     font-family:'Playfair Display', serif; font-style:italic; color:var(--ink); line-height:1.6; margin:0 0 16px; 
  }

  .depoimento-card strong{ font-size:0.85rem; color:var(--wine); text-transform:uppercase; letter-spacing:0.06em;
  }

  .depoimento-card.depoimento-print{ padding:0; overflow:hidden; }
  .depoimento-card.depoimento-print img{ width:100%; height:auto; display:block; }

  .depoimentos-empty{
    grid-column:1 / -1; text-align:center; padding:50px 20px; display:flex; flex-direction:column; align-items:center; gap:16px;
  }
  .depoimentos-empty svg{ width:38px; height:38px; color:var(--rose); }
  .depoimentos-empty p{ color:var(--ink-soft); font-size:1rem; max-width:40ch; margin:0; }

  /* PREÇOS */ 
  .precos{ background:var(--cream-card); }
  .price-image-frame{
     max-width:460px; 
     margin:0 auto; 
     border-radius:24px; 
     overflow:hidden; 
     box-shadow:var(--shadow); 
  }
  .price-image-frame img{ 
    width:100%;
    height:auto; 
    display:block; 
  }

  /* FAQ */
  .faq{ background:var(--cream); }

  /* AGENDA / CTA */
  .agenda{ background:var(--cream-card); }
  .agenda-box{
    background:var(--cream); border-radius:28px; box-shadow:var(--shadow); padding:56px;
    display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  }
  .agenda-box h2{ font-size:clamp(1.8rem,3vw,2.3rem); font-weight:600; margin-bottom:16px; }
  .agenda-box p{ color:var(--ink-soft); line-height:1.75; margin-bottom:28px; }
  .info-list{ display:flex; flex-direction:column; gap:20px; }
  .info-item{ display:flex; gap:16px; align-items:flex-start; }
  .info-item .ic{
    width:42px; height:42px; border-radius:12px; flex-shrink:0;
    background:var(--rose-soft); display:flex; align-items:center; justify-content:center;
  }
  .info-item .ic svg{ width:20px; height:20px; color:var(--wine-deep); }
  .info-item strong{ display:block; font-size:0.95rem; margin-bottom:2px; }
  .info-item span, .info-item a{ font-size:0.9rem; color:var(--ink-soft); }
  .info-item a:hover{ color:var(--wine); }

  /* FOOTER */
  footer{ background:var(--wine-deep); color:rgba(255,255,255,0.65); padding:52px 0 28px; text-align:center; font-size:0.85rem; }
  .footer-brand{ display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:8px; }
  .footer-brand .brand-mark-footer{ width:44px; height:44px; }
  footer .brand-name{ color:#fff; font-size:1.5rem; }
  footer .foot-links{ display:flex; gap:22px; justify-content:center; margin:20px 0; flex-wrap:wrap; }
  footer .foot-links a{ color:rgba(255,255,255,0.75); transition:color .2s; }
  footer .foot-links a:hover{ color:#fff; }
  .footer-insta{ display:inline-flex; align-items:center; gap:8px; margin-top:6px; color:rgba(255,255,255,0.8); }
  .footer-insta svg{ width:16px; height:16px; }
  .footer-insta:hover{ color:#fff; }
  .credit{ margin-top:10px !important; font-size:0.76rem; opacity:0.55; }
  .credit a{ text-decoration:underline; text-underline-offset:2px; }
  .credit a:hover{ opacity:0.85; }

  /* WHATSAPP FLOAT */
  .wa-float{
  position:fixed;
  bottom:22px;
  right:22px;
  z-index:90;
  width:58px;
  height:58px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--wine), var(--wine-deep));
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 14px 30px -10px rgba(51,18,42,0.5);
  animation:pulse 2.8s ease-in-out infinite;
}

  .wa-float svg{ 
    width:29px; height:29px; display: block;
  }

  @keyframes pulse{
    0%,100%{ box-shadow:0 14px 30px -10px rgba(51,18,42,0.5); }
    50%{ box-shadow:0 14px 30px -6px rgba(199,123,152,0.65); }
  }

  @media (min-width:1000px){
     .nav-links{ display:flex; } 
  }
  @media (max-width:900px){
    .hero .container{ grid-template-columns:1fr; }
    .hero-visual{ order:-1; margin-bottom:20px; }
    .photo-frame{ max-width:270px; }
    .beneficios-grid{ grid-template-columns:repeat(2,1fr); }
    .galeria-grid{ grid-template-columns:1fr; grid-template-rows:none; height:auto; }
    .galeria-grid .frame{ aspect-ratio:4/3; }
    .galeria-grid .frame.tall,.galeria-grid .frame.top-right,.galeria-grid .frame.bottom-right{ grid-column:1; grid-row:auto; }
    .agenda-box{ grid-template-columns:1fr; padding:36px 24px; }
    .depoimentos-grid{ grid-template-columns:1fr; }
  }
  @media (max-width:600px){
    section{ padding:70px 0; }
    .beneficios-grid{ grid-template-columns:1fr; }
    .hero{ padding-top:120px; }
    .hero-actions{ flex-direction:column; align-items:stretch; }
    .hero-actions .btn{ justify-content:center; }
    .brand-role{ display:none; }
    .acc-header{ padding:16px 18px; font-size:1rem; }
    .acc-body-inner{ padding:0 18px 18px; }
  }
  @media (prefers-reduced-motion: reduce){
    *{ animation:none !important; transition:none !important; }
    .reveal{ opacity:1 !important; transform:none !important; }
  }
