/* ===== Tokens ===== */
:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + 0.6vw, 1.4rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.1vw, 2.1rem);
  --text-2xl: clamp(2rem, 1.3rem + 2.4vw, 3.3rem);

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --radius-sm:.5rem; --radius-md:.85rem; --radius-lg:1.25rem; --radius-xl:1.75rem; --radius-full:9999px;
  --transition:200ms cubic-bezier(.16,1,.3,1);
  --content-wide:1180px;

  --font-display:'Zodiak','Georgia',serif;
  --font-name:'Fraunces','Georgia',serif;
  --font-body:'General Sans','Work Sans','Helvetica Neue',sans-serif;
}

:root,[data-theme="light"]{
  --color-bg:#fbf6f3;
  --color-surface:#ffffff;
  --color-surface-2:#fdf3ee;
  --color-surface-offset:#f6e7e0;
  --color-border:#ecd8cf;
  --color-divider:#f0e0d8;
  --color-text:#3a2b27;
  --color-text-muted:#8a716a;
  --color-text-faint:#b8a39b;
  --color-text-inverse:#fff6f2;
  --color-primary:#b06a5c;        /* terracotta rosa */
  --color-primary-hover:#9a574b;
  --color-primary-soft:#f3ddd5;
  --color-accent:#c98b86;
  --color-cream:#f7ece4;
  --shadow-sm:0 1px 3px rgba(120,80,70,.07);
  --shadow-md:0 8px 24px rgba(120,80,70,.10);
  --shadow-lg:0 20px 50px rgba(120,80,70,.16);
}
[data-theme="dark"]{
  --color-bg:#1c1715;
  --color-surface:#241d1b;
  --color-surface-2:#2a221f;
  --color-surface-offset:#322723;
  --color-border:#3d302b;
  --color-divider:#2f2521;
  --color-text:#ede2dc;
  --color-text-muted:#b09a91;
  --color-text-faint:#7c6760;
  --color-text-inverse:#fff6f2;
  --color-primary:#d49384;
  --color-primary-hover:#e0a698;
  --color-primary-soft:#3a2a25;
  --color-accent:#caa19a;
  --color-cream:#2a221f;
  --shadow-sm:0 1px 3px rgba(0,0,0,.3);
  --shadow-md:0 8px 24px rgba(0,0,0,.4);
  --shadow-lg:0 20px 50px rgba(0,0,0,.5);
}

/* ===== Base ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:90px}
body{min-height:100dvh;line-height:1.65;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);transition:background var(--transition),color var(--transition)}
img,svg{display:block;max-width:100%;height:auto}
ul[role=list]{list-style:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;line-height:1.12;text-wrap:balance;letter-spacing:-.01em}
p{text-wrap:pretty}
a{color:inherit;text-decoration:none}
button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}
.container{width:100%;max-width:var(--content-wide);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2.5rem)}
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.skip-link{position:absolute;left:-999px;top:0;background:var(--color-primary);color:#fff;padding:.6rem 1rem;border-radius:0 0 var(--radius-sm) 0;z-index:200}
.skip-link:focus{left:0}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
.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}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.eyebrow{display:inline-block;font-size:var(--text-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-4)}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-weight:500;font-size:var(--text-sm);padding:.85rem 1.6rem;border-radius:var(--radius-full);transition:all var(--transition);white-space:nowrap;line-height:1}
.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-ghost{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}
.btn-ghost:hover{background:var(--color-surface-2);transform:translateY(-2px)}
.btn-sm{padding:.6rem 1.15rem}
.btn-lg{padding:1rem 1.9rem;font-size:var(--text-base)}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:100;background:color-mix(in oklab,var(--color-bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--color-divider)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-3)}
.brand{display:flex;align-items:center;gap:.65rem;color:var(--color-primary)}
.brand-mark{flex-shrink:0}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-family:var(--font-name);font-size:1.02rem;font-weight:600;color:var(--color-text)}
.brand-sub{font-size:.72rem;color:var(--color-text-muted);letter-spacing:.04em}
.nav{display:flex;gap:var(--space-6);font-size:var(--text-sm)}
.nav a{color:var(--color-text-muted);font-weight:500;position:relative;padding-block:.3rem}
.nav a:hover{color:var(--color-text)}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--color-primary);transition:width var(--transition)}
.nav a:hover::after{width:100%}
.header-actions{display:flex;align-items:center;gap:var(--space-3)}
.theme-toggle{width:38px;height:38px;display:grid;place-items:center;border-radius:var(--radius-full);color:var(--color-text-muted);border:1px solid var(--color-border)}
.theme-toggle:hover{color:var(--color-primary);border-color:var(--color-primary)}
.menu-toggle{display:none;flex-direction:column;gap:5px;width:42px;height:42px;align-items:center;justify-content:center;border-radius:var(--radius-sm)}
.menu-toggle span{width:22px;height:2px;background:var(--color-text);border-radius:2px;transition:all var(--transition)}
.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)}
.mobile-nav{display:none;flex-direction:column;gap:var(--space-2);padding:var(--space-4) clamp(1.25rem,5vw,2.5rem) var(--space-6);border-bottom:1px solid var(--color-divider);background:var(--color-bg)}
.mobile-nav a{padding:.75rem 0;color:var(--color-text);font-weight:500;border-bottom:1px solid var(--color-divider)}
.mobile-nav .btn{margin-top:var(--space-3)}
.mobile-nav.open{display:flex}

/* ===== Hero ===== */
.hero{padding-block:clamp(var(--space-12),7vw,var(--space-24));overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(var(--space-8),5vw,var(--space-20));align-items:center}
.hero h1{font-size:var(--text-2xl);margin-bottom:var(--space-5)}
.hero-lead{font-size:var(--text-lg);color:var(--color-text-muted);max-width:46ch;margin-bottom:var(--space-8)}
.hero-cta-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-8)}
.hero-trust{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}
.hero-trust p{max-width:32ch}
.hero-trust a{color:var(--color-primary);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.stars{color:#d99a4e;letter-spacing:2px;font-size:1.05rem}
.hero-media{position:relative}
.hero-media>img{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;object-fit:cover;aspect-ratio:1/1}
.hero-badge{position:absolute;left:-12px;bottom:24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.7rem 1.1rem;box-shadow:var(--shadow-md);display:flex;flex-direction:column}
.hero-badge strong{font-family:var(--font-name);font-size:.95rem}
.hero-badge span{font-size:.74rem;color:var(--color-text-muted)}

/* ===== Credentials ===== */
.credentials{background:var(--color-surface-offset);border-block:1px solid var(--color-divider)}
.cred-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);padding-block:var(--space-8)}
.cred-item{display:flex;align-items:center;gap:.75rem;justify-content:center;font-weight:500;font-size:var(--text-sm);text-align:center}
.cred-icon{font-size:1.4rem}

/* ===== Section head ===== */
.section-head{text-align:center;max-width:620px;margin:0 auto var(--space-12)}
.section-head h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}
.section-sub{color:var(--color-text-muted)}

/* ===== About ===== */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(var(--space-8),5vw,var(--space-20));align-items:center}
.about-media img{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;aspect-ratio:4/5;object-fit:cover}
.about-copy h2{font-size:var(--text-xl);margin-bottom:var(--space-5)}
.about-copy p{color:var(--color-text-muted);margin-bottom:var(--space-4)}
.about-creds{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-6) 0 var(--space-8)}
.about-creds li{display:flex;flex-direction:column;padding-left:var(--space-5);position:relative}
.about-creds li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:var(--radius-full);background:var(--color-primary)}
.about-creds strong{font-weight:600}
.about-creds span{font-size:var(--text-sm);color:var(--color-text-muted)}

/* ===== Specialties ===== */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition),box-shadow var(--transition)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.card-media{aspect-ratio:4/3;overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform 400ms ease}
.card:hover .card-media img{transform:scale(1.05)}
.card-body{padding:var(--space-6)}
.card-body h3{font-size:var(--text-lg);margin-bottom:var(--space-3)}
.card-body p{color:var(--color-text-muted);font-size:var(--text-sm)}
.card-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--color-primary);text-decoration:none}
.card-link svg{transition:transform 200ms ease}
.card-link:hover svg{transform:translateX(3px)}
.licenses{margin:var(--space-6) 0 var(--space-8);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.licenses-title{font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-3)}
.licenses-intro{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-5)}
.licenses-intro a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}
.licenses-list{display:flex;flex-direction:column;gap:var(--space-3)}
.licenses-list li{display:flex;flex-direction:column;gap:.15rem}
.lic-label{font-weight:600;font-size:var(--text-sm)}
.lic-meta{font-size:var(--text-xs);color:var(--color-text-muted)}

/* ===== Perinatal feature ===== */
.perinatal-feature{background:var(--color-surface-2)}
.perinatal-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-8),5vw,var(--space-20));align-items:center}
.perinatal-media img{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;aspect-ratio:1/1;object-fit:cover}
.perinatal-copy h2{font-size:var(--text-xl);margin-bottom:var(--space-5)}
.perinatal-copy>p{color:var(--color-text-muted);margin-bottom:var(--space-6)}
.check-list{display:grid;gap:var(--space-3)}
.check-list li{display:flex;align-items:flex-start;gap:.7rem;font-size:var(--text-sm)}
.check-list li::before{content:"✓";color:var(--color-primary);font-weight:700;flex-shrink:0}
.perinatal-cta{margin-top:var(--space-8);display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start}
.perinatal-cta-note{font-size:var(--text-xs);color:var(--color-text-muted)}

/* ===== Contact ===== */
.contact-card{position:relative;background:linear-gradient(140deg,var(--color-primary-soft),var(--color-surface-2));border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:clamp(var(--space-8),6vw,var(--space-20));box-shadow:var(--shadow-md);display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(var(--space-8),5vw,var(--space-16));align-items:center;overflow:hidden}
.contact-media{align-self:stretch;display:flex}
.contact-media img{width:100%;border-radius:var(--radius-lg);object-fit:cover;aspect-ratio:4/5;box-shadow:var(--shadow-md)}
.contact-copy{max-width:none}
.contact-copy h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}
.contact-copy>p{color:var(--color-text-muted);margin-bottom:var(--space-8)}
.contact-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-10)}
.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}
.detail{display:flex;flex-direction:column;gap:.3rem}
.detail-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}
.detail span:last-child{font-size:var(--text-sm);color:var(--color-text-muted)}

/* ===== Newsletter ===== */
.newsletter{text-align:center}
.newsletter-inner{max-width:560px;margin:0 auto}
.newsletter h2{font-size:var(--text-xl);margin-bottom:var(--space-4)}
.newsletter>.newsletter-inner>p{color:var(--color-text-muted);margin-bottom:var(--space-8)}
.newsletter-form{display:flex;gap:var(--space-3);max-width:460px;margin:0 auto var(--space-4)}
.newsletter-form input{flex:1;padding:.9rem 1.2rem;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm)}
.newsletter-form input:focus{outline:none;border-color:var(--color-primary)}
.nl-note{font-size:var(--text-xs);color:var(--color-text-muted)}

/* ===== Footer ===== */
.site-footer{background:var(--color-surface-offset);border-top:1px solid var(--color-divider);padding-block:var(--space-16) var(--space-8)}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-12);margin-bottom:var(--space-12)}
.footer-brand{display:flex;gap:var(--space-3);color:var(--color-primary);align-items:flex-start}
.footer-brand strong{font-family:var(--font-display);color:var(--color-text);font-size:1.05rem}
.footer-brand p{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:.3rem}
.footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}
.footer-col h4{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-4);color:var(--color-text)}
.footer-col a{display:block;color:var(--color-text-muted);font-size:var(--text-sm);padding-block:.35rem}
.footer-col a:hover{color:var(--color-primary)}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--color-divider);color:var(--color-text-faint);font-size:var(--text-xs);flex-wrap:wrap}

/* ===== WhatsApp float ===== */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:120;width:56px;height:56px;border-radius:var(--radius-full);background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:var(--shadow-lg);transition:transform var(--transition)}
.wa-float:hover{transform:scale(1.08)}

/* ===== Responsive ===== */
@media (max-width:900px){
  .nav,.header-cta{display:none}
  .menu-toggle{display:flex}
  .hero-grid,.about-grid,.perinatal-grid{grid-template-columns:1fr}
  .hero-media{order:-1;max-width:480px;margin-inline:auto}
  .about-media{max-width:440px;margin-inline:auto}
  .cards{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr}
}
@media (max-width:600px){
  .cred-grid{grid-template-columns:1fr;gap:var(--space-4)}
  .cred-item{justify-content:flex-start}
  .cards{grid-template-columns:1fr}
  .newsletter-form{flex-direction:column}
  .contact-details{grid-template-columns:1fr}
  .contact-card{grid-template-columns:1fr}
  .contact-media{display:none}
  .footer-bottom{flex-direction:column;gap:var(--space-2)}
  .hero-badge{left:0}
}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
