/* Shared navigation, focused guide header and footer. */
html { scrollbar-width: thin; scrollbar-color: #d8d4c8 #fbfaf5; }
body:has(> footer[data-shared-footer]) { padding-bottom: 0; }
html:has(.bio-page), body:has(> .bio-page) { min-width: 0; }
/* Keep the logotype's graphic proportions during text inflation; browser zoom still scales it. */
.brand-wordmark { display: inline-block; font-family: 'EB Garamond', Georgia, serif; font-size: 32px; font-weight: 700; line-height: 1.1; white-space: nowrap; letter-spacing: 0; text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
.brand-wordmark .brand-natura { color: #166b2d; }
.brand-wordmark .brand-vero { color: #5a2f8a; }
.bio-header .brand-wordmark { font-size: 40px; }
.bio-header .brand-link { width: max-content; max-width: 100%; }
[data-shared-footer] .brand-wordmark { font-size: 28px; }
.site-nav > a, .guide-header a:has(.brand-wordmark) { display: inline-flex; align-items: center; min-height: 48px; }
.whatsapp-icon { display: inline-block; width: 24px; height: 24px; flex: 0 0 24px; object-fit: contain; }
.bio-link .link-media--whatsapp .whatsapp-icon { width: 28px; height: 28px; }
.bio-link .link-media--date { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
.button-primary > span, .mobile-whatsapp-cta > span { min-width: 0; }
.mobile-nav .button-primary { display: flex; align-items: center; justify-content: center; gap: 12px; }
.mobile-nav-inner { grid-template-columns: minmax(0, 1fr); }
.mobile-nav-inner > a { min-width: 0; overflow-wrap: anywhere; }
#consulta-presencial { scroll-margin-top: 100px; }

/* A compact conversation shortcut, visually distinct from the page's primary buttons. */
@media (max-width: 860px) {
  .mobile-whatsapp-cta[data-whatsapp-cta] {
    left: auto;
    right: max(16px, env(safe-area-inset-right));
    bottom: calc(16px + env(safe-area-inset-bottom));
    width: max-content;
    max-width: calc(100% - 32px);
    min-height: 52px;
    padding: 12px 18px;
    gap: 9px;
    border: 1px solid #c5d8c9;
    border-radius: 999px;
    background: #fff;
    color: #0f4f21;
    box-shadow: 0 4px 20px rgba(15, 79, 33, .16);
    font-size: 16px;
    line-height: 1.4;
    font-weight: 600;
    transition: opacity .18s ease;
  }
  .mobile-whatsapp-cta[data-whatsapp-cta].is-hidden { transform: none; }
  .mobile-whatsapp-cta[data-whatsapp-cta]:focus-visible { outline: 2px solid #6b3fa0; outline-offset: 4px; }
}

/* Long words and addresses remain readable when visitors enlarge the text. */
main { overflow-wrap: anywhere; }
.page-hero h1, .consultation-hero-v2 h1, .aroma-hero-v3 h1, .about-hero-v3 h1 { overflow-wrap: anywhere; }
@media (max-width: 860px) {
  .session-price { grid-template-columns: minmax(0, 1fr) minmax(95px, max-content); }
}
@media (max-width: 480px) {
  .session-price { grid-template-columns: minmax(0, 1fr) minmax(80px, max-content); }
}

/* The map notice grows with its text; only the loaded map has a fixed height. */
.workshop-map, .workshop-map-intro { min-height: 300px; }
.workshop-map iframe { display: block; width: 100%; height: 300px; border: 0; }
@media (min-width: 768px) {
  .workshop-map, .workshop-map-intro { min-height: 450px; }
  .workshop-map iframe { height: 450px; }
}

/* Legal documents share a calm reading measure and the current type scale. */
.terms-page .terms-intro { max-width: 660px; margin-top: 22px; }
.terms-page .terms-navigation { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; padding-bottom: 12px; }
.terms-page .terms-navigation a { display: inline-flex; align-items: center; min-height: 48px; padding: 12px 22px; border: 1px solid #b39ddb; border-radius: 8px; font-weight: 500; text-decoration: none; }
.terms-page .terms-navigation a:hover { background: #f3edf9; }
.terms-page .terms-group { margin-top: 48px; scroll-margin-top: 100px; }
.terms-page .terms-group > h2 { margin-bottom: 12px; font-size: 40px; color: #0f4f21; }
.terms-page .legal-content { margin-top: 28px; }
.terms-page .legal-content h3 { margin: 0 0 12px; font-size: 28px; font-weight: 500; line-height: 1.25; }
.terms-page .legal-content h4 { margin-top: 22px; font-family: 'EB Garamond', Georgia, serif; font-size: 23px; font-weight: 500; }
.terms-page .legal-content section { scroll-margin-top: 100px; }
.terms-page .legal-content .terms-summary, .terms-page .legal-content .terms-index { padding: 24px; }
.terms-page .terms-index nav a { display: inline-block; padding-block: 6px; }
.terms-page .terms-back { display: inline-flex; align-items: center; min-height: 44px; margin-top: 16px; }
.legal-page > div { width: calc(100% - 48px); max-width: 820px; margin-inline: auto; padding-inline: 0; }
.legal-page h1 { font-family: 'EB Garamond', Georgia, serif; font-size: clamp(44px, 6vw, 64px); font-weight: 400; line-height: 1.1; color: #0f4f21; letter-spacing: -.02em; }
.legal-page h2 { font-family: 'EB Garamond', Georgia, serif; font-size: 30px; font-weight: 500; line-height: 1.25; color: #22251f; }
.legal-page p, .legal-page li { font-size: 16px; line-height: 1.75; color: #565d52; }
.legal-page a { color: #6b3fa0; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal-page > div > div:first-child > p, .legal-page .updated { font-size: 14px; }
.legal-page > div > section { border-top: 1px solid #deded4; padding-top: 28px; }
@media (max-width: 600px) { .legal-page h2 { font-size: 27px; } }

/* Keep the workshop action out of the common menu/cookie layer. */
#sticky-mobile-cta { gap: 12px; padding: 12px 16px; }
#sticky-mobile-cta > div { min-width: 0; }
#sticky-mobile-cta > a { flex-shrink: 0; min-height: 44px; padding: 12px 16px; border-radius: 10px; background: #6b3fa0; font-size: 13px; white-space: nowrap; }
#sticky-mobile-cta.translate-y-full { visibility: hidden; pointer-events: none; }
.mobile-whatsapp-cta.is-too-tall, #sticky-mobile-cta.is-too-tall { visibility: hidden !important; pointer-events: none !important; }
body.nav-open #sticky-mobile-cta,
body:has(#naturavero-cookie-banner) #sticky-mobile-cta { visibility: hidden; pointer-events: none; }

/* Common footer: deliberately self-contained so focused landings and /bio/
   render the same component without inheriting page-specific typography. */
footer.site-footer[data-shared-footer] {
  box-sizing: border-box;
  display: block;
  flex: 0 0 auto;
  width: 100%;
  margin: 0;
  padding: 58px 0 32px;
  border-top: 1px solid #deded4;
  background: #fbfaf5;
  color: #565d52;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0;
  text-align: left;
}
[data-shared-footer] *, [data-shared-footer] *::before, [data-shared-footer] *::after { box-sizing: border-box; }
[data-shared-footer] .nv-footer-shell { width: calc(100% - 64px); max-width: 1200px; margin: 0 auto; padding: 0; }
[data-shared-footer] .nv-footer-grid { display: grid; grid-template-columns: 1.35fr .8fr .75fr 1.1fr; align-items: start; gap: 40px; }
[data-shared-footer] .nv-footer-grid > * { min-width: 0; }
[data-shared-footer] a { color: #565d52; text-decoration: none; text-underline-offset: 5px; font-weight: 400; font-size: 15px; line-height: 1.6; transition: color 160ms ease; }
[data-shared-footer] a:hover { color: #6b3fa0; text-decoration: underline; }
[data-shared-footer] a:focus-visible { outline: 2px solid #6b3fa0; outline-offset: 4px; border-radius: 3px; box-shadow: none; }
[data-shared-footer] .nv-footer-logo { display: inline-flex; align-items: center; min-height: 48px; max-width: 100%; }
[data-shared-footer] .nv-footer-logo img { display: block; width: 190px; max-width: 100%; height: auto; margin: 0; }
[data-shared-footer] .nv-footer-brand p { margin: 16px 0 14px; padding: 0; max-width: 300px; font: inherit; }
[data-shared-footer] .nv-footer-social { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: #6b3fa0; }
[data-shared-footer] .nv-footer-social svg { display: block; width: 20px; height: 20px; flex: 0 0 20px; }
[data-shared-footer] .nv-footer-col h2 { margin: 8px 0 12px; padding: 0; color: #22251f; font-family: 'Inter', system-ui, sans-serif; font-size: 15px; font-weight: 600; line-height: 24px; letter-spacing: 0; text-transform: none; }
[data-shared-footer] .nv-footer-col ul { display: block; list-style: none; margin: 0; padding: 0; }
[data-shared-footer] .nv-footer-col li { display: block; margin: 0; padding: 0; }
[data-shared-footer] .nv-footer-col a { display: flex; align-items: center; width: fit-content; max-width: 100%; min-height: 44px; padding: 8px 0; overflow-wrap: anywhere; }
[data-shared-footer] .nv-footer-bottom { display: block; margin: 36px 0 0; padding: 22px 0 0; border-top: 1px solid #deded4; }
[data-shared-footer] .nv-footer-bottom p { margin: 0; padding: 0; color: #565d52; font: inherit; font-size: 13px; line-height: 1.65; }
@media (max-width: 960px) {
  [data-shared-footer] .nv-footer-grid { grid-template-columns: 1fr 1fr 1.2fr; gap: 24px; }
  [data-shared-footer] .nv-footer-brand { grid-column: 1 / -1; }
  [data-shared-footer] .nv-footer-brand p { max-width: 460px; }
}
@media (max-width: 600px) {
  footer.site-footer[data-shared-footer] { padding: 40px 0 28px; }
  [data-shared-footer] .nv-footer-shell { width: calc(100% - 48px); }
  [data-shared-footer] .nv-footer-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 20px; }
  [data-shared-footer] .nv-footer-legal { grid-column: 1 / -1; }
  [data-shared-footer] .nv-footer-legal ul { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px; }
  [data-shared-footer] .nv-footer-col h2 { margin-top: 0; }
  [data-shared-footer] .nv-footer-bottom { margin-top: 28px; padding-top: 20px; }
}
@media (prefers-reduced-motion: reduce) { [data-shared-footer] a { transition: none; } }
