/* ============================================================
   Dra. Cristiane Ramos — Ginecologia & Saúde Mental da Mulher
   Identidade: logo lótus, paleta terrosa, tipografia elegante.
   ============================================================ */

:root{
  --terracotta:      #C48B73;
  --terracotta-dark: #9F6A51;
  --terracotta-deep: #7E5540;
  --terracotta-night:#6B4737;
  --rose:            #DFB29E;
  --rose-soft:       #EAD3C6;
  --sand:            #EFE6DF;
  --cream:           #F7F3EF;
  --off-white:       #FBF9F6;
  --ink:             #4A4441;
  --ink-soft:        #6E6560;
  --white:           #ffffff;

  --font-display: 'Cormorant Garamond', Georgia, serif;
  --font-label:   'Jost', system-ui, sans-serif;
  --font-body:    'Mulish', system-ui, sans-serif;

  --wrap: 1180px;
  --radius: 18px;
  --radius-lg: 26px;
  --shadow-sm: 0 6px 24px rgba(126, 85, 64, .08);
  --shadow-md: 0 20px 55px rgba(126, 85, 64, .16);
  --shadow-btn: 0 10px 26px rgba(126, 85, 64, .30), 0 2px 6px rgba(126, 85, 64, .22);
  --shadow-btn-hover: 0 16px 38px rgba(126, 85, 64, .40), 0 3px 8px rgba(126, 85, 64, .28);
  --ease: cubic-bezier(.22,.61,.36,1);

  /* textura de grão sutil para faixas terrosas */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
html,body{ overflow-x:clip; }
h1,h2,h3,p,li,summary,blockquote{ overflow-wrap:break-word; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--off-white);
  line-height:1.72;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; position:relative; z-index:1; }

h1,h2,h3{ color:var(--terracotta-deep); margin:0; }
h1,h2{ font-family:var(--font-display); font-weight:500; line-height:1.08; letter-spacing:.2px; }
h1{ font-size:clamp(2.5rem,5.6vw,4.2rem); }
h2{ font-size:clamp(2rem,4vw,3.1rem); }
h3{ font-family:var(--font-label); font-weight:500; font-size:1.12rem; line-height:1.3; }

.eyebrow{
  font-family:var(--font-label);
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:.72rem;
  font-weight:500;
  color:var(--terracotta);
  margin:0 0 1.1rem;
}
.eyebrow-center{ text-align:center; }
.eyebrow-light{ color:var(--rose); }

.accent{ color:var(--terracotta); font-style:italic; }

/* ornamento de lótus acima de títulos */
.ornament{ width:40px; height:auto; margin:0 auto 1.2rem; opacity:.9; }
.mirror-head .ornament,.cta-inner .ornament{ opacity:.8; }

/* ---------- Logo (marca circular, sem fundo) ---------- */
.brand-mark{ width:48px; height:48px; border-radius:50%; }
.medallion-mark{ width:118px; height:118px; border-radius:50%; }
.footer-mark{ width:60px; height:60px; border-radius:50%; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--font-label); font-weight:500; font-size:.98rem;
  letter-spacing:.03em;
  padding:1rem 2rem; border-radius:100px;
  cursor:pointer; border:1.5px solid transparent;
  transition:transform .35s var(--ease), background .3s, color .3s, box-shadow .3s;
  white-space:nowrap;
}
.btn-primary{ background:var(--terracotta); color:var(--white); box-shadow:var(--shadow-btn); }
.btn-primary:hover{ background:var(--terracotta-dark); transform:translateY(-3px); box-shadow:var(--shadow-btn-hover); }
.btn-ghost{ background:transparent; color:var(--terracotta-deep); border-color:var(--rose); }
.btn-ghost:hover{ background:var(--rose-soft); transform:translateY(-3px); box-shadow:var(--shadow-sm); }
.btn-light{ background:var(--white); color:var(--terracotta-dark); box-shadow:var(--shadow-btn); }
.btn-light:hover{ background:var(--terracotta-deep); color:var(--white); transform:translateY(-3px); box-shadow:var(--shadow-btn-hover); }
.btn-lg{ padding:1.2rem 2.6rem; font-size:1.05rem; }
.btn-sm{ padding:.62rem 1.35rem; font-size:.88rem; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,249,246,.85);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(196,139,115,.16);
  transition:box-shadow .3s;
}
.site-header.scrolled{ box-shadow:0 4px 26px rgba(126,85,64,.08); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; height:80px; }
.brand{ display:flex; align-items:center; gap:.85rem; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-text strong{ font-family:var(--font-display); font-weight:600; font-size:1.32rem; color:var(--terracotta-deep); letter-spacing:.3px; }
.brand-text em{ font-style:normal; font-family:var(--font-label); font-size:.7rem; letter-spacing:.06em; color:var(--ink-soft); margin-top:1px; }

.main-nav{ display:flex; align-items:center; gap:2.1rem; }
.main-nav a{ font-family:var(--font-label); font-size:.95rem; color:var(--ink); transition:color .25s; position:relative; }
.main-nav a:not(.nav-cta):hover{ color:var(--terracotta); }
.main-nav a:not(.nav-cta)::after{
  content:''; position:absolute; left:0; bottom:-6px; width:0; height:1.5px;
  background:var(--terracotta); transition:width .3s var(--ease);
}
.main-nav a:not(.nav-cta):hover::after{ width:100%; }
.nav-cta{ background:var(--terracotta); color:var(--white)!important; box-shadow:var(--shadow-sm); }
.nav-cta:hover{ background:var(--terracotta-dark); }

.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{ width:24px; height:2px; background:var(--terracotta-deep); border-radius:2px; transition:.3s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- Textura em faixas terrosas ---------- */
.textured{ position:relative; }
.textured::before{
  content:''; position:absolute; inset:0; z-index:0;
  background-image:url("assets/tex-grain.png");
  background-size:240px 240px;
  background-repeat:repeat;
  opacity:.4; pointer-events:none;
}

/* ---------- Hero ---------- */
.hero{ position:relative; overflow:hidden; background:linear-gradient(160deg,var(--cream) 0%,var(--sand) 100%); }
.hero-bg{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(circle at 82% 18%, rgba(223,178,158,.40), transparent 46%),
    radial-gradient(circle at 8% 92%, rgba(196,139,115,.20), transparent 42%);
}
.hero-inner{
  position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:60px;
  align-items:center; padding:clamp(52px,7vw,104px) 24px;
}
.hero-copy .eyebrow{ margin-bottom:1.5rem; }
.hero-copy h1{ margin-bottom:.2rem; }
.hero-copy .lead{ font-size:1.14rem; color:var(--ink-soft); max-width:34ch; margin:1.6rem 0 2.2rem; }
.hero-copy .lead strong{ color:var(--terracotta-dark); font-weight:700; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; }
.hero-meta{ margin-top:2rem; font-family:var(--font-label); font-size:.82rem; letter-spacing:.04em; color:var(--ink-soft); }

.hero-visual{ position:relative; }
.hero-visual .photo-frame{ margin-left:auto; }
.hero-badge{
  position:absolute; left:-6px; bottom:26px;
  background:var(--white); border-radius:20px; padding:1rem 1.35rem;
  box-shadow:var(--shadow-md); display:flex; align-items:center; gap:.8rem;
}
.hero-badge strong{ font-family:var(--font-display); font-weight:500; font-size:2.7rem; color:var(--terracotta); line-height:1; }
.hero-badge span{ font-family:var(--font-label); font-size:.78rem; color:var(--ink-soft); line-height:1.25; }

/* ---------- Photo frames ---------- */
.photo-frame{
  position:relative; overflow:hidden; border-radius:var(--radius-lg);
  background:linear-gradient(160deg,var(--rose) 0%,var(--terracotta) 100%);
  box-shadow:var(--shadow-md);
}
.photo-frame::after{ /* moldura fina interna */
  content:''; position:absolute; inset:10px; border:1px solid rgba(255,255,255,.35);
  border-radius:calc(var(--radius-lg) - 10px); pointer-events:none;
}
.photo-frame img.real{ width:100%; height:100%; object-fit:cover; display:block; }
.photo-portrait{ aspect-ratio:4/5; max-width:440px; }
.photo-tall{ aspect-ratio:4/5; width:100%; }

/* ---------- Generic section ---------- */
.section{ padding:clamp(68px,8vw,118px) 0; }
.section-head{ max-width:660px; margin:0 auto clamp(44px,5vw,64px); text-align:center; }
.section-sub{ color:var(--ink-soft); margin-top:1rem; font-size:1.06rem; }
.section-sub strong{ color:var(--terracotta-dark); }

/* ---------- Mirror / identificação ---------- */
.section-mirror{ background:var(--terracotta-deep); color:var(--cream); }
.section-mirror h2{ color:var(--cream); }
.mirror-head{ text-align:center; max-width:760px; margin:0 auto 3.2rem; }
.phrase-grid{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
}
.phrase{
  font-family:var(--font-display); font-weight:500; font-size:1.42rem; font-style:italic;
  background:rgba(255,255,255,.07); border:1px solid rgba(234,211,198,.18);
  border-radius:16px; padding:1.7rem 1.7rem; line-height:1.35;
  color:var(--sand); text-align:center;
}
.mirror-foot{ text-align:center; max-width:660px; margin:3.2rem auto 0; color:var(--rose-soft); font-size:1.1rem; }
.mirror-foot strong{ color:var(--white); font-weight:600; }

/* ---------- Sobre ---------- */
.section-sobre{ background:var(--off-white); }
.sobre-inner{ display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:start; }
.sobre-visual{ position:sticky; top:104px; }
.sobre-sign{
  display:block; text-align:center; margin-top:1rem;
  font-family:var(--font-display); font-style:italic; font-size:1.3rem; color:var(--terracotta-dark);
}
.sobre-copy p{ color:var(--ink-soft); margin:0 0 1.2rem; }
.sobre-copy h2{ margin-bottom:1.4rem; }
.sobre-human{ font-style:italic; color:var(--terracotta-dark)!important; border-left:2px solid var(--rose); padding-left:1.2rem; }
.cred-title{ font-family:var(--font-label); text-transform:uppercase; letter-spacing:.2em; font-size:.72rem; color:var(--terracotta); margin:2.2rem 0 1rem!important; }
.cred-list{ list-style:none; margin:0; padding:0; display:grid; gap:1rem; }
.cred-list li{ position:relative; padding-left:1.6rem; }
.cred-list li::before{
  content:''; position:absolute; left:0; top:.4em; width:8px; height:8px;
  border-radius:50%; background:var(--terracotta); opacity:.8;
}
.cred-list strong{ display:block; font-family:var(--font-label); font-weight:500; color:var(--ink); font-size:1rem; }
.cred-list span{ font-size:.86rem; color:var(--ink-soft); }

/* ---------- Why / filosofia ---------- */
.section-why{ background:linear-gradient(180deg,var(--cream),var(--sand)); text-align:center; }
.why-inner{ max-width:840px; margin:0 auto; }
.why-quote{
  font-family:var(--font-display); font-weight:500; font-size:clamp(1.5rem,3vw,2.15rem);
  line-height:1.4; color:var(--terracotta-deep); margin:1rem 0 0;
}
.why-quote span{ display:block; margin-top:1.3rem; color:var(--terracotta); font-style:italic; }

/* ---------- Áreas de cuidado ---------- */
.section-cuidado{ background:var(--off-white); }
.care-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.care-card{
  background:var(--white); border:1px solid rgba(196,139,115,.16);
  border-radius:var(--radius); padding:1.8rem 1.6rem; position:relative; overflow:hidden;
  transition:transform .35s var(--ease), box-shadow .35s, border-color .35s;
}
.care-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--rose),var(--terracotta));
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease);
}
.care-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.care-card:hover::before{ transform:scaleX(1); }
.care-card h3{ color:var(--terracotta-dark); margin-bottom:.5rem; font-size:1.1rem; }
.care-card p{ margin:0; color:var(--ink-soft); font-size:.94rem; }
.care-card-cta{
  background:linear-gradient(160deg,var(--terracotta) 0%,var(--terracotta-dark) 100%);
  color:var(--cream); border-color:transparent; display:flex; flex-direction:column;
}
.care-card-cta::before{ display:none; }
.care-card-cta h3{ color:var(--white); font-family:var(--font-display); font-weight:500; font-size:1.4rem; }
.care-card-cta p{ color:var(--rose-soft); }
.care-cta-link{ margin-top:auto; padding-top:.8rem; font-family:var(--font-label); font-weight:500; color:var(--white); letter-spacing:.02em; }
.care-card-cta:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }

.care-scope{
  margin-top:2.8rem; text-align:center; background:var(--rose-soft);
  border-radius:var(--radius); padding:1.5rem 1.9rem; max-width:790px; margin-inline:auto;
}
.care-scope p{ margin:0; color:var(--terracotta-deep); font-size:.98rem; }
.care-scope-link{ display:inline-block; margin-left:.4rem; font-family:var(--font-label); font-weight:500; color:var(--terracotta-dark); border-bottom:1px solid var(--terracotta); transition:color .25s, border-color .25s; }
.care-scope-link:hover{ color:var(--terracotta); border-color:transparent; }

/* ---------- Tratamentos e abordagens ---------- */
.section-tratamentos{ background:linear-gradient(180deg,var(--off-white),var(--sand)); }

/* ---------- A consulta / CICLO ---------- */
.section-consulta{ background:linear-gradient(180deg,var(--sand),var(--cream)); }
.cycle{
  position:relative; max-width:720px; margin:0 auto;
  display:grid; grid-template-columns:1fr auto 1fr; grid-template-rows:auto auto auto;
  gap:26px 22px; align-items:center; justify-items:center;
}
.cycle-steps{ display:contents; }
.cycle-ring{ position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.medallion{ grid-column:2; grid-row:2; text-align:center; z-index:2; }
.medallion p{ margin:.7rem 0 0; font-family:var(--font-display); font-style:italic; font-size:1.2rem; color:var(--terracotta-deep); line-height:1.2; }
.cycle-node{
  background:var(--white); border:1px solid rgba(196,139,115,.16); border-radius:var(--radius);
  padding:1.5rem 1.4rem; box-shadow:var(--shadow-sm); max-width:250px; z-index:1;
  transition:transform .35s var(--ease), box-shadow .35s;
}
.cycle-node:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.cycle-num{ font-family:var(--font-label); font-weight:300; font-size:1.7rem; color:var(--rose); display:block; line-height:1; margin-bottom:.4rem; letter-spacing:.05em; }
.cycle-node h3{ color:var(--terracotta-dark); margin-bottom:.4rem; }
.cycle-node p{ margin:0; color:var(--ink-soft); font-size:.9rem; line-height:1.55; }
.n1{ grid-column:1; grid-row:1; } .n2{ grid-column:3; grid-row:1; }
.n3{ grid-column:3; grid-row:3; } .n4{ grid-column:1; grid-row:3; }
.cycle-caption{ text-align:center; max-width:560px; margin:2.6rem auto 0; font-style:italic; font-family:var(--font-display); font-size:1.2rem; color:var(--terracotta-dark); }

/* ---------- Manifesto ---------- */
.section-manifesto{ background:var(--terracotta); color:var(--white); text-align:center; }
.manifesto-inner{ max-width:740px; margin:0 auto; }
.manifesto-lotus{ width:80px; margin:0 auto 1.6rem; opacity:.95; }
.manifesto-quote{ font-family:var(--font-display); font-weight:500; font-style:italic; font-size:clamp(2.1rem,4.6vw,3.4rem); margin:0 0 1.3rem; line-height:1.1; }
.manifesto-sub{ font-family:var(--font-body); color:var(--cream); font-size:1.05rem; margin:0 auto; max-width:46ch; opacity:.94; }

/* ---------- Modalidades ---------- */
.section-modalidades{ background:var(--off-white); }
.mod-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.mod-card{
  background:var(--cream); border-radius:var(--radius-lg); padding:2.5rem 2.1rem;
  border:1px solid rgba(196,139,115,.16); transition:transform .35s var(--ease), box-shadow .35s;
}
.mod-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.mod-icon{ display:inline-flex; width:52px; height:52px; align-items:center; justify-content:center; border-radius:14px; background:var(--rose-soft); color:var(--terracotta-deep); margin-bottom:1.1rem; }
.mod-icon svg{ width:26px; height:26px; }
.mod-card h3{ font-family:var(--font-display); font-weight:500; font-size:1.7rem; color:var(--terracotta-deep); }
.mod-when{ font-family:var(--font-label); color:var(--terracotta); font-size:.92rem; letter-spacing:.02em; margin:.25rem 0 1rem; text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; }
.mod-card p{ margin:0; color:var(--ink-soft); }
.mod-card p strong{ color:var(--terracotta-dark); }
.mod-note{ display:block; margin-top:.6rem; font-size:.86rem; color:var(--ink-soft); opacity:.85; }

.myth{
  margin-top:40px; background:var(--terracotta-deep); color:var(--cream);
  border-radius:var(--radius-lg); padding:2.3rem 2.4rem; text-align:center; max-width:800px; margin-inline:auto;
}
.myth-tag{ font-family:var(--font-label); text-transform:uppercase; letter-spacing:.24em; font-size:.7rem; color:var(--rose); margin:0 0 .7rem; }
.myth-text{ font-family:var(--font-display); font-weight:500; font-size:1.55rem; margin:0; line-height:1.4; }
.myth-text em{ color:var(--rose-soft); font-style:italic; }

/* ---------- CTA ---------- */
.section-cta{ background:linear-gradient(150deg,var(--rose) 0%,var(--terracotta) 55%,var(--terracotta-dark) 100%); color:var(--white); text-align:center; }
.cta-inner{ max-width:660px; margin:0 auto; }
.section-cta h2{ color:var(--white); }
.section-cta p{ margin:1.3rem auto 2.2rem; max-width:48ch; opacity:.96; }
.cta-sub{ font-family:var(--font-label); font-size:.86rem; margin-top:1.8rem!important; opacity:.9; }

/* ---------- FAQ ---------- */
.section-faq{ background:var(--off-white); }
.faq-inner{ max-width:820px; margin:0 auto; }
.faq-list{ display:grid; gap:14px; }
.faq-item{
  background:var(--white); border:1px solid rgba(196,139,115,.18);
  border-radius:14px; overflow:hidden; transition:border-color .3s, box-shadow .3s;
}
.faq-item[open]{ border-color:var(--rose); box-shadow:var(--shadow-sm); }
.faq-item summary{
  cursor:pointer; list-style:none; padding:1.35rem 1.7rem;
  font-family:var(--font-label); font-size:1.06rem; font-weight:500; color:var(--terracotta-deep);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:'+'; font-family:var(--font-label); font-weight:300; font-size:1.5rem;
  color:var(--terracotta); transition:transform .3s var(--ease); line-height:1;
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-answer{ padding:0 1.7rem 1.5rem; }
.faq-answer p{ margin:0; color:var(--ink-soft); }

/* ---------- Footer ---------- */
.site-footer{ background:var(--terracotta-night); color:var(--rose-soft); }
.footer-inner{ display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:44px; padding:70px 24px 52px; }
.footer-name{ font-family:var(--font-display); font-weight:600; font-size:1.5rem; color:var(--cream); margin:1rem 0 0; }
.footer-role{ font-family:var(--font-label); font-size:.85rem; margin:.4rem 0 0; opacity:.82; }
.footer-title{ font-family:var(--font-label); text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; color:var(--rose); margin:0 0 1.1rem; }
.footer-contact a{ display:block; margin-bottom:.7rem; transition:color .25s; }
.footer-contact a:hover{ color:var(--cream); }
.footer-modes{ font-size:.86rem; margin-top:1.1rem; opacity:.82; }
.footer-note p{ font-size:.85rem; line-height:1.65; opacity:.78; margin:0; }
.footer-bottom{ border-top:1px solid rgba(234,211,198,.16); position:relative; z-index:1; }
.footer-bottom .wrap{ padding-top:22px; padding-bottom:22px; }
.footer-bottom p{ margin:0; font-family:var(--font-label); font-size:.8rem; opacity:.72; text-align:center; }

/* ---------- WhatsApp float ---------- */
.wa-float{
  position:fixed; right:22px; bottom:22px; z-index:90;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(37,211,102,.45);
  transition:transform .3s var(--ease);
}
.wa-float:hover{ transform:scale(1.09); }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width:960px){
  .hero-inner{ grid-template-columns:1fr; gap:44px; }
  .hero-visual{ max-width:420px; margin:0 auto; }
  .hero-visual .photo-frame{ margin:0 auto; }
  .sobre-inner{ grid-template-columns:1fr; gap:40px; }
  .sobre-visual{ position:static; max-width:440px; margin:0 auto; }
  .care-grid{ grid-template-columns:repeat(2,1fr); }
  .phrase-grid{ grid-template-columns:repeat(2,1fr); }
  .footer-inner{ grid-template-columns:1fr 1fr; }
  .footer-note{ grid-column:1 / -1; }
}

@media (max-width:760px){
  .main-nav{
    position:fixed; inset:80px 0 auto 0; flex-direction:column; align-items:flex-start;
    gap:0; background:var(--off-white); padding:12px 24px 24px;
    border-bottom:1px solid rgba(196,139,115,.14);
    transform:translateY(-150%); transition:transform .4s var(--ease); box-shadow:var(--shadow-md);
  }
  .main-nav.open{ transform:translateY(0); }
  .main-nav a{ width:100%; padding:15px 0; border-bottom:1px solid rgba(196,139,115,.1); }
  .main-nav a:not(.nav-cta)::after{ display:none; }
  .nav-cta{ margin-top:14px; text-align:center; }
  .nav-toggle{ display:flex; }
  .brand-text em{ display:none; }
  .mod-grid{ grid-template-columns:1fr; }

  /* Ciclo vira linha do tempo vertical */
  .cycle{ display:block; max-width:460px; }
  .cycle-ring{ display:none; }
  .medallion{ display:none; }
  .cycle-steps{ display:block; position:relative; padding-left:3.4rem; }
  /* linha contínua no gutter esquerdo, atrás dos selos */
  .cycle-steps::before{
    content:''; position:absolute; left:1.3rem; top:2rem; bottom:2rem;
    width:2px; background:repeating-linear-gradient(var(--rose) 0 5px, transparent 5px 11px);
  }
  .cycle-node{ position:relative; width:auto; max-width:none;
    margin:0 0 1.2rem 0; padding:1.35rem 1.4rem; text-align:left; }
  .cycle-node:last-of-type{ margin-bottom:0; }
  .cycle-num{ position:absolute; left:-3.4rem; top:1.15rem; margin:0;
    width:2.6rem; height:2.6rem; border-radius:50%;
    background:var(--terracotta); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:.98rem; font-weight:500; z-index:1; }
}

@media (max-width:480px){
  body{ font-size:16px; }
  .wrap{ padding:0 20px; }
  .hero-badge{ padding:.8rem 1rem; left:0; }
  .care-grid{ grid-template-columns:1fr; }
  .phrase-grid{ grid-template-columns:1fr; }
  .footer-inner{ grid-template-columns:1fr; gap:34px; }
  .phrase{ font-size:1.3rem; padding:1.4rem 1.4rem; }
  .mod-card,.myth{ padding-left:1.5rem; padding-right:1.5rem; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none!important; transition:none!important; scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
}
