/*
Theme Name: Mommy
Theme URI: https://somosmommy.com.br
Author: R3 TECH LTDA
Description: Tema do site Somos Mommy (institucional, landing de campanha, guias, plano de apoio e blog). Pipeline do grupor3tech/site-template.
Version: 2.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: mommy
License: Proprietário
*/

/* ===== Tokens (Brand Book Mommy) ===== */
:root {
	--off: #FAF9F6;
	--ink: #203741;
	--ink-2: #3d5058;
	--ink-3: #576872;
	--slate: #50658A;
	--slate-bg: #e6ebf2;
	--coral: #CD5C5C;
	--coral-dark: #8a2f2a;
	--sage: #9DC183;
	--sage-bg: #e8f1e1;
	--sage-ink: #3f6630;
	--sage-ink-2: #2e4a3a;
	--teal: #005F6A;
	--teal-bg: #dae8e8;
	--teal-ink: #0b4a52;
	--peach: #FFDAB9;
	--peach-bg: #FFE8D6;
	--lilac-bg: #e9e0f3;
	--line: #cfd8d8;
	--line-soft: #ece7df;
	--white: #ffffff;
	--serif: 'DM Serif Display', Georgia, 'Times New Roman', serif;
	--sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--wrap: 1200px;
	--gutter: 20px;
	--r-lg: 40px;
	--r-md: 28px;
	--r-sm: 20px;
	--shadow: 0 2px 10px rgba(32, 55, 65, .06);
}

@media (min-width: 768px) {
	:root { --gutter: 40px; }
}

/* ===== Base ===== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
	margin: 0;
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.55;
	color: var(--ink);
	background: var(--off);
	-webkit-font-smoothing: antialiased;
}
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--ink); text-underline-offset: 3px; }
a:hover { color: var(--coral-dark); }
h1, h2, h3, h4 { margin: 0; font-weight: 400; }
p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; border-radius: 6px; }

.serif { font-family: var(--serif); font-weight: 400; }
.eb {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.eb--coral { color: var(--coral-dark); }
.eb--sage { color: var(--sage-ink); }
.muted { color: var(--ink-2); }
.small { font-size: 14px; color: var(--ink-3); }
.hl-coral { color: var(--coral); font-style: italic; }
.hl-sage { color: var(--sage-ink); font-style: italic; }
.hl-peach { color: var(--peach); font-style: italic; }
.sr-only {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip {
	position: absolute; left: 12px; top: -60px; z-index: 100;
	background: var(--ink); color: var(--off); padding: 10px 16px; border-radius: 10px;
}
.skip:focus { top: 12px; color: var(--off); }

.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.band { margin: 0 12px; border-radius: 30px; }
@media (min-width: 768px) { .band { margin: 0 40px; border-radius: var(--r-lg); } }
/*
 * Limite do template: o conteúdo das faixas (.band) fica na mesma coluna do
 * cabeçalho (.wrap, até var(--wrap)). O fundo da faixa continua largo; só o
 * conteúdo é contido. --band-x é o recuo lateral de uma faixa filha direta de
 * <main> (a faixa tem 40px de margem de cada lado a partir de 768px).
 */
:root { --band-x: max(80px, calc((100% - 80px - var(--wrap)) / 2)); }
.section { padding-top: 56px; padding-bottom: 56px; }
@media (min-width: 1024px) { .section { padding-top: 72px; padding-bottom: 72px; } }
.stack { display: flex; flex-direction: column; gap: 18px; }
.stack-sm { display: flex; flex-direction: column; gap: 10px; }
.grid-2 { display: grid; gap: 40px; align-items: center; }
.grid-3 { display: grid; gap: 24px; }
@media (min-width: 900px) {
	.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; }
	.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
}

.h-hero { font-family: var(--serif); font-size: clamp(42px, 7vw, 76px); line-height: 1.02; letter-spacing: -.02em; }
.h-1 { font-family: var(--serif); font-size: clamp(38px, 5vw, 64px); line-height: 1.04; }
.h-2 { font-family: var(--serif); font-size: clamp(32px, 4vw, 50px); line-height: 1.05; }
.h-3 { font-family: var(--serif); font-size: clamp(26px, 3vw, 36px); line-height: 1.1; }
.lead { font-size: clamp(17px, 1.6vw, 20px); line-height: 1.5; color: var(--ink-2); max-width: 600px; }

/* ===== Botões ===== */
.btn, .btn-ink, .btn-line, .wpcf7-submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 52px; padding: 0 26px; border-radius: 999px; border: 0;
	font-family: var(--sans); font-size: 18px; font-weight: 700; line-height: 1.1;
	text-decoration: none; cursor: pointer; text-align: center;
	transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.btn { background: var(--coral); color: #fff; box-shadow: 0 3px 10px rgba(205, 92, 92, .18); }
.btn:hover { background: #b84c4c; color: #fff; transform: translateY(-1px); }
.btn-ink, .wpcf7-submit { background: var(--ink); color: var(--off); }
.btn-ink:hover, .wpcf7-submit:hover { background: #142630; color: var(--off); }
.btn-line { background: #fff; color: var(--ink); border: 1.5px solid var(--ink); }
.btn-line:hover { background: var(--ink); color: var(--off); }
.btn--sm { min-height: 46px; font-size: 16px; padding: 0 20px; }
.btn--block { width: 100%; }
.btn svg, .btn-line svg { flex-shrink: 0; }
@media (max-width: 480px) { .btn, .btn-ink, .btn-line { font-size: 17px; padding: 0 20px; } }
.trial-note { font-size: 14px; color: var(--ink-2); }
.text-link { font-weight: 700; }

.chip {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px;
	border-radius: 999px; border: 1.5px solid var(--line); background: #fff;
	font-size: 15px; font-weight: 600; color: var(--ink); text-decoration: none; cursor: pointer;
}
.chip:hover { border-color: var(--ink); color: var(--ink); }
.chip.is-on, .chip[aria-pressed="true"], .chip[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: var(--off); }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.tag {
	display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px;
	border-radius: 999px; font-size: 13px; font-weight: 700; text-decoration: none;
	background: var(--slate-bg); color: #34466b; align-self: flex-start;
}
.tag--sage { background: var(--sage-bg); color: #34532a; }
.tag--peach { background: var(--peach); color: var(--coral-dark); }
.tag--lilac { background: var(--lilac-bg); color: #4e3b6b; }
.tag--teal { background: var(--teal-bg); color: var(--teal-ink); }
.tag--sand { background: #EFE9E1; color: #5b4a30; }
.card { background: #fff; border-radius: 24px; box-shadow: var(--shadow); }

/* ===== Logo (símbolo + mommy, SVG vetorizado em 2.1.0) ===== */
.logo { display: inline-flex; align-items: center; text-decoration: none; flex-shrink: 0; }
.logo svg { width: 160px; height: 29px; display: block; }
@media (min-width: 900px) { .logo svg { width: 204px; height: 37px; } }

/* ===== Cabeçalho ===== */
.site-header { position: relative; z-index: 20; background: var(--off); border-bottom: 1px solid var(--line-soft); }
.site-header--plain { border-bottom: 0; }
.header-inner { display: flex; align-items: center; gap: 24px; min-height: 72px; }
@media (min-width: 900px) { .header-inner { min-height: 92px; gap: 40px; } }
.nav-main { display: none; }
.nav-main ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 30px; }
.nav-main a { text-decoration: none; font-weight: 500; padding: 6px 0; }
.nav-main .current-menu-item > a, .nav-main .current_page_item > a, .nav-main .current-page-ancestor > a, .nav-main a[aria-current="page"] {
	font-weight: 700; box-shadow: inset 0 -2px 0 var(--coral);
}
.header-actions { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.header-login { display: none; font-weight: 600; }
.header-cta { display: none; }
.menu-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
	border-radius: 14px; border: 1.5px solid var(--line); background: #fff; cursor: pointer;
}
@media (min-width: 1100px) {
	.nav-main { display: block; flex-grow: 1; }
	.header-login, .header-cta { display: inline-flex; }
	.menu-toggle { display: none; }
}
@media (min-width: 640px) and (max-width: 1099px) { .header-cta { display: inline-flex; } }
.mobile-nav { display: none; border-top: 1px solid var(--line-soft); padding: 12px 0 24px; }
.mobile-nav.is-open { display: block; }
.mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-nav a { display: flex; align-items: center; min-height: 52px; font-size: 18px; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--line-soft); }
.mobile-nav .btn { margin-top: 18px; width: 100%; }
.mobile-nav .mobile-login { justify-content: center; border: 0; }
@media (min-width: 1100px) { .mobile-nav, .mobile-nav.is-open { display: none; } }

/* ===== Hero ===== */
.hero { background: var(--peach-bg); overflow: hidden; }
.hero-inner { display: grid; gap: 8px; padding: 32px 20px 0; }
@media (min-width: 900px) {
	/* Recuo calculado sobre a largura da própria faixa (pai do .hero-inner). */
	.hero-inner { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 48px; align-items: center; padding: 64px max(80px, calc((100% - var(--wrap)) / 2)) 0; min-height: 640px; }
}
.hero-copy { display: flex; flex-direction: column; gap: 20px; padding-bottom: 8px; }
@media (min-width: 900px) { .hero-copy { padding-bottom: 64px; } }
.hero-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.hero-actions .secondary { font-size: 16px; font-weight: 600; }
@media (min-width: 640px) { .hero-actions--row { flex-direction: row; align-items: center; gap: 22px; flex-wrap: wrap; } }
.hero-art { position: relative; min-height: 380px; align-self: end; }
@media (min-width: 900px) { .hero-art { min-height: 576px; } }
.hero-art .ilustra { position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: min(100%, 420px); height: auto; }
@media (min-width: 900px) { .hero-art .ilustra { width: 100%; max-width: 560px; left: 0; transform: none; } }
.hero-art .phone-float { position: absolute; right: -6px; bottom: 16px; transform: scale(.42); transform-origin: bottom right; }
@media (min-width: 900px) { .hero-art .phone-float { right: 0; bottom: 28px; transform: scale(.5); } }

/* ===== Telas do app (mockup) ===== */
.phone {
	width: 260px; height: 540px; border: 9px solid var(--ink); border-radius: 38px; background: var(--off);
	overflow: hidden; display: flex; flex-direction: column; color: var(--ink); font-family: var(--sans);
	box-shadow: 0 18px 40px rgba(32, 55, 65, .18); flex-shrink: 0; text-align: left;
}
.phone__notch { height: 22px; display: flex; justify-content: center; align-items: flex-end; }
.phone__notch span { width: 70px; height: 6px; border-radius: 6px; background: var(--ink); opacity: .85; }
.phone__body { padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.phone__eb { font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); }
.phone__title { font-family: var(--serif); font-size: 24px; line-height: 1.05; }
.phone__now { background: var(--peach); border-radius: 18px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; }
.phone__now b { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--coral-dark); }
.phone__now strong { font-size: 14px; line-height: 1.3; }
.phone__now span { font-size: 12px; color: var(--ink-2); }
.phone__list { background: #fff; border-radius: 16px; padding: 4px 12px; display: flex; flex-direction: column; font-size: 12px; }
.phone__row { display: flex; gap: 10px; align-items: center; justify-content: flex-start; min-height: 40px; border-bottom: 1px solid rgba(205, 92, 92, .14); }
.phone__row:last-child { border-bottom: 0; }
.phone__row--split { justify-content: space-between; }
.phone__box { width: 16px; height: 16px; border-radius: 6px; border: 1.5px solid #a9b6bb; flex-shrink: 0; }
.phone__box--done { background: var(--teal); border-color: var(--teal); }
.phone__done { text-decoration: line-through; color: var(--ink-3); }
.phone__avatar { width: 30px; height: 30px; border-radius: 50%; flex-shrink: 0; }
.phone__bubble { background: var(--sage-bg); border-radius: 4px 16px 16px 16px; padding: 10px 12px; font-size: 12px; line-height: 1.4; }
.phone__bubble strong { display: block; font-size: 11px; color: var(--sage-ink); }
.phone__bubble--anon { background: #fff; border: 1px dashed var(--sage); border-radius: 16px; }
.phone__bubble--anon strong { color: var(--ink-3); }
.phone__input { display: flex; align-items: center; gap: 8px; min-height: 40px; border-radius: 999px; background: #fff; border: 1px solid var(--line); padding: 0 12px; font-size: 12px; color: var(--ink-3); }
.phone__input span:first-child { flex-grow: 1; }
.phone__input span:last-child { width: 26px; height: 26px; border-radius: 50%; background: var(--sage); }
.phone__invite { display: flex; justify-content: center; align-items: center; min-height: 40px; border-radius: 999px; border: 1.5px solid var(--coral); font-size: 13px; font-weight: 700; }
.phone__tabbar { margin-top: auto; height: 50px; border-top: 1px solid #e6ebeb; background: #fff; display: flex; justify-content: space-around; align-items: center; font-size: 10px; color: var(--ink-3); }
.phone__tabbar span:first-child { font-weight: 700; color: var(--coral); }
.phone-scale { transform: scale(.82); transform-origin: top center; margin-bottom: -97px; }
@media (min-width: 900px) { .phone-scale { transform: none; margin-bottom: 0; } }

/* ===== Foto com app sobreposto ===== */
.photo-app { position: relative; }
.photo-app > img, .photo-app .photo-fallback { width: 100%; height: 360px; object-fit: cover; border-radius: 32px; }
@media (min-width: 900px) { .photo-app > img, .photo-app .photo-fallback { height: 500px; } }
.photo-app .phone-float { position: absolute; bottom: -24px; transform: scale(.42); }
.photo-app--right .phone-float { right: -8px; transform-origin: bottom right; }
.photo-app--left .phone-float { left: -8px; transform-origin: bottom left; }
@media (min-width: 900px) {
	/* O celular fica dentro do limite do template (não passa da coluna do cabeçalho). */
	.photo-app .phone-float { transform: scale(.5); }
	.photo-app--right .phone-float { right: 0; }
	.photo-app--left .phone-float { left: 0; }
}
.photo-fallback { background: linear-gradient(160deg, var(--peach-bg), var(--sage-bg)); }
.photo-credit { margin-top: 10px; font-size: 12px; color: var(--ink-3); }

/* ===== Seções da home ===== */
.pillars { display: grid; gap: 28px; padding: 48px 0; }
@media (min-width: 900px) { .pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; padding: 64px 0; } }
.pillar { display: flex; flex-direction: column; gap: 8px; }
.pillar strong { font-family: var(--serif); font-weight: 400; font-size: 30px; line-height: 1.1; }
.pillar--sage { background: var(--sage-bg); border-radius: 24px; padding: 20px 24px; }
@media (min-width: 900px) { .pillar--sage { margin: -20px 0; } }

.moments { background: #fff; padding: 40px 20px; }
@media (min-width: 900px) { .moments { padding: 56px var(--band-x); } }
.moment-panel[hidden] { display: none; }
.moment-panel ul { margin: 0; padding-left: 22px; font-size: 18px; line-height: 1.8; color: var(--ink-2); }

.community { background: var(--sage-bg); padding: 40px 20px 56px; }
@media (min-width: 900px) { .community { padding: 64px var(--band-x); } }
.community .lead { color: var(--sage-ink-2); }
.quote-card { margin: 0; background: #fff; border-radius: 22px; padding: 18px 22px; font-size: 17px; line-height: 1.5; }
.quote-card cite { display: block; margin-top: 8px; font-size: 14px; font-style: normal; color: var(--ink-2); }
.circle-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.circle-chips span { display: inline-flex; align-items: center; min-height: 38px; padding: 0 16px; border-radius: 999px; background: #fff; border: 1.5px solid var(--sage); font-size: 15px; font-weight: 600; }
.circle-chips span:first-child { background: var(--sage); }
.safety { display: flex; gap: 12px; align-items: flex-start; background: #fff; border-radius: 20px; padding: 16px 18px; font-size: 15px; line-height: 1.5; }
.safety svg { flex-shrink: 0; }

.products-grid .card { padding: 30px; display: flex; flex-direction: column; gap: 10px; }
.products-grid .card strong { font-size: 24px; }
.products-grid .card--sage { background: var(--sage-bg); box-shadow: none; }

.plan-band { background: var(--slate-bg); padding: 40px 20px; }
@media (min-width: 900px) { .plan-band { padding: 64px var(--band-x); } }
.mini-plan { background: #fff; border-radius: 28px; padding: 28px; display: flex; flex-direction: column; gap: 4px; }
.mini-plan__row { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid #edf0f0; font-size: 16px; }
.mini-plan__row:last-of-type { border-bottom: 0; }
.mini-plan__row span { color: var(--ink-3); text-align: right; }

.post-card { text-decoration: none; overflow: hidden; display: flex; flex-direction: column; color: var(--ink); }
.post-card:hover { color: var(--ink); box-shadow: 0 8px 24px rgba(32, 55, 65, .1); }
.post-card__img { height: 200px; width: 100%; object-fit: cover; }
.post-card__img.photo-fallback { display: block; }
.post-card__body { padding: 22px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.post-card__title { font-family: var(--serif); font-size: 24px; line-height: 1.15; }
.post-card__meta { margin-top: auto; }

.about-grid img, .about-grid .photo-fallback { width: 100%; height: 300px; object-fit: cover; border-radius: 32px; }
.about-quote { font-size: 19px; line-height: 1.55; color: var(--ink-2); margin: 0; }

.faq { display: flex; flex-direction: column; gap: 14px; max-width: 880px; margin: 0 auto; }
.faq details { background: #fff; border-radius: 20px; padding: 20px 24px; }
.faq summary { font-size: 18px; font-weight: 700; cursor: pointer; list-style-position: outside; }
.faq details p { margin-top: 12px; font-size: 16px; line-height: 1.6; color: var(--ink-2); }

.final-cta { background: var(--ink); color: var(--off); text-align: center; padding: 56px 24px; }
@media (min-width: 900px) { .final-cta { padding: 80px max(200px, var(--band-x)); } }
.final-cta .h-2 { font-size: clamp(38px, 5vw, 60px); }
.final-cta p { color: #dbe3e5; }
.final-cta .trial-note { color: #dbe3e5; }

/* ===== Landing ===== */
.lp-benefits { display: grid; gap: 48px; }
@media (min-width: 900px) { .lp-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; } }
.lp-benefit { display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; }
@media (min-width: 900px) { .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; } }
.steps li { display: flex; gap: 14px; align-items: flex-start; }
@media (min-width: 900px) { .steps li { flex-direction: column; gap: 12px; } }
.steps .num { width: 52px; height: 52px; border-radius: 50%; background: var(--peach); display: grid; place-items: center; font-family: var(--serif); font-size: 26px; color: var(--coral-dark); flex-shrink: 0; }
.voices { display: grid; gap: 20px; }
@media (min-width: 900px) { .voices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
.voice { margin: 0; border-radius: 28px 28px 28px 6px; padding: 24px 28px; display: flex; flex-direction: column; gap: 12px; }
.voice blockquote { margin: 0; font-size: 18px; line-height: 1.5; }
.voice figcaption { font-size: 15px; color: var(--ink-2); }
.bonus .card { padding: 26px; box-shadow: none; border: 1.5px solid var(--line); background: transparent; display: flex; flex-direction: column; gap: 8px; }
.sticky-cta {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; padding: 12px 16px calc(14px + env(safe-area-inset-bottom));
	background: var(--off); border-top: 1px solid #e6ebeb; box-shadow: 0 -8px 24px rgba(32, 55, 65, .12);
	transform: translateY(110%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s;
}
.sticky-cta.is-visible { transform: translateY(0); visibility: visible; transition: transform .25s ease; }
.sticky-cta .btn { width: 100%; }
@media (min-width: 900px) { .sticky-cta { display: none; } }
.lp-header .header-inner { justify-content: space-between; }

/* ===== Páginas internas ===== */
.page-head { padding: 28px 0 32px; display: flex; flex-direction: column; gap: 14px; max-width: 980px; }
.breadcrumbs { font-size: 14px; color: var(--ink-3); display: flex; flex-wrap: wrap; gap: 8px; }
.breadcrumbs a { color: var(--ink-3); }
.benefit-strip { display: flex; flex-wrap: wrap; gap: 10px; }
.benefit-strip span { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border-radius: 999px; background: var(--sage-bg); color: #34532a; font-size: 14px; font-weight: 700; }
.two-col { display: grid; gap: 32px; align-items: start; padding-bottom: 56px; }
@media (min-width: 1000px) { .two-col { grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; } }
.two-col--left { }
@media (min-width: 1000px) { .two-col--left { grid-template-columns: 300px minmax(0, 1fr); } }
.side { display: flex; flex-direction: column; gap: 18px; }
@media (min-width: 1000px) { .side--sticky { position: sticky; top: 24px; } }
.side-nav { padding: 22px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.side-box { border-radius: 24px; padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.side-box--peach { background: var(--peach-bg); }
.side-box--sage { background: var(--sage-bg); }

/* Conteúdo editorial (guias, posts, páginas legais) */
.prose { font-size: 18px; line-height: 1.7; max-width: 760px; }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-family: var(--serif); font-size: clamp(26px, 3vw, 32px); line-height: 1.15; margin-top: 1.6em; }
.prose h3 { font-size: 21px; font-weight: 700; line-height: 1.3; margin-top: 1.4em; }
.prose p, .prose li { color: var(--ink-2); }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li + li { margin-top: .4em; }
.prose a { color: var(--ink); font-weight: 600; }
.prose img { border-radius: 20px; }
.prose blockquote { margin-left: 0; margin-right: 0; border-radius: 22px; background: var(--sage-bg); padding: 22px 26px; font-family: var(--serif); font-size: 24px; line-height: 1.35; color: var(--ink); }
.prose blockquote p { color: var(--ink); }
.prose blockquote cite { display: block; margin-top: 8px; font-family: var(--sans); font-size: 14px; font-style: normal; color: var(--ink-2); }
.prose section { scroll-margin-top: 24px; }
.prose details { background: #fff; border-radius: 18px; padding: 18px 22px; box-shadow: var(--shadow); }
.prose summary { font-weight: 700; cursor: pointer; }
.answer-box { background: var(--peach-bg); border-radius: 20px; padding: 22px 26px; }
.answer-box strong { display: block; font-size: 16px; }
.answer-box p { margin-top: 6px; font-size: 17px; line-height: 1.6; color: var(--ink); }
.table-scroll { overflow-x: auto; border-radius: 20px; background: #fff; box-shadow: var(--shadow); }
.guide-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.guide-table th { background: var(--ink); color: #fff; text-align: left; padding: 14px 18px; }
.guide-table td { padding: 14px 18px; border-top: 1px solid #edf0f0; color: var(--ink-2); vertical-align: top; }
.editorial-note { font-size: 14px; color: var(--ink-3); }
.health-note { background: var(--teal-bg); border-radius: 20px; padding: 18px 22px; font-size: 15px; line-height: 1.55; color: var(--teal-ink); }
.checklist { list-style: none; padding: 0 !important; display: flex; flex-direction: column; gap: 10px; }
.checklist li { margin: 0 !important; }
.checklist label { display: flex; gap: 12px; align-items: flex-start; background: #fff; border-radius: 16px; padding: 14px 16px; cursor: pointer; box-shadow: var(--shadow); color: var(--ink); }
.checklist input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--teal); flex-shrink: 0; }
.check-progress { font-weight: 700; color: var(--teal) !important; }
.inline-cta { border-radius: 24px; background: #fff; border: 1.5px solid var(--coral); padding: 22px 24px; display: flex; flex-direction: column; gap: 14px; }
@media (min-width: 700px) { .inline-cta { flex-direction: row; align-items: center; gap: 20px; } .inline-cta > div { flex-grow: 1; } }
.inline-cta .btn { white-space: nowrap; flex-shrink: 0; }
.inline-cta--sage { background: var(--sage-bg); border: 0; }
.inline-cta--ink { background: var(--ink); border: 0; color: var(--off); }
.inline-cta--ink p { color: #dbe3e5; }
.inline-cta strong.serif { font-size: 24px; line-height: 1.15; display: block; }

/* Guias (hub) e blog */
.card-link { text-decoration: none; padding: 0; overflow: hidden; display: flex; flex-direction: column; color: var(--ink); }
.card-link:hover { color: var(--ink); box-shadow: 0 8px 24px rgba(32, 55, 65, .1); }
.card-link__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.card-link__more { font-weight: 700; font-size: 15px; color: var(--coral); }
.featured { display: grid; overflow: hidden; text-decoration: none; color: var(--ink); }
.featured:hover { color: var(--ink); }
@media (min-width: 900px) { .featured { grid-template-columns: 1.2fr 1fr; } }
.featured__img { width: 100%; height: 280px; object-fit: cover; }
@media (min-width: 900px) { .featured__img { height: 100%; min-height: 420px; } }
.featured__body { padding: 32px; display: flex; flex-direction: column; justify-content: center; gap: 16px; }
@media (min-width: 900px) { .featured__body { padding: 48px; } }
.blog-grid { display: grid; gap: 24px; }
@media (min-width: 700px) { .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; } }
.search-form { display: flex; gap: 10px; width: 100%; max-width: 420px; }
.search-form input[type="search"] { flex-grow: 1; min-width: 0; }
.pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; padding: 8px 0 56px; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; text-decoration: none; font-weight: 600; }
.pagination .current { background: var(--ink); border-color: var(--ink); color: var(--off); }
.empty-state { padding: 40px; text-align: center; }
.post-hero { margin: 0 0 8px; }
.post-hero img { width: 100%; height: 280px; object-fit: cover; border-radius: 28px; }
@media (min-width: 900px) { .post-hero img { height: 520px; } }
.author-line { display: flex; align-items: center; gap: 14px; font-size: 15px; line-height: 1.45; }
.author-line .avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--peach); flex-shrink: 0; }
.share { display: flex; flex-wrap: wrap; gap: 8px; }

/* Planejador */
.planner-grid { display: grid; gap: 28px; padding-bottom: 40px; align-items: start; }
@media (min-width: 1000px) { .planner-grid { grid-template-columns: 2fr 1fr; gap: 32px; } }
.planner { padding: 28px 22px; display: flex; flex-direction: column; gap: 14px; }
@media (min-width: 700px) { .planner { padding: 32px; } }
.planner label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.form-top { display: grid; gap: 14px; }
@media (min-width: 700px) { .form-top { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.task-row { display: grid; gap: 12px; padding: 14px 0; border-top: 1px solid #edf0f0; }
@media (min-width: 800px) { .task-row { grid-template-columns: 1.3fr 1fr 1fr; align-items: end; gap: 14px; } }
.task-row.disabled { opacity: .5; }
.task-check { flex-direction: row !important; align-items: center; gap: 12px !important; min-height: 48px; font-size: 16px !important; color: var(--ink) !important; }
.task-check input { width: 22px; height: 22px; accent-color: var(--ink); margin: 0; flex-shrink: 0; }
.inp, .planner select, .planner input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="text"], .search-form input[type="search"] {
	min-height: 52px; width: 100%; border-radius: 14px; border: 1px solid #b9c6c7; background: #fff;
	padding: 0 16px; font-size: 16px; color: var(--ink);
}
.result-status { font-size: 15px; font-weight: 600; color: var(--coral-dark); min-height: 1em; }
.result-status:empty { display: none; }
.plan-result { background: var(--peach-bg); border-radius: 32px; padding: 32px 22px; display: grid; gap: 32px; margin-bottom: 56px; scroll-margin-top: 20px; }
@media (min-width: 900px) { .plan-result { grid-template-columns: 1.2fr 1fr; padding: 40px 48px; align-items: start; } }
.plan-result[hidden] { display: none; }
.plan-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.plan-list li { background: #fff; border-radius: 16px; padding: 12px 16px; display: flex; flex-direction: column; }
.plan-list small { color: var(--ink-3); font-size: 14px; }
.empty-warning { font-size: 15px; color: var(--ink-2); }
.actions-row { display: flex; flex-wrap: wrap; gap: 12px; }
#copy-fallback textarea { width: 100%; min-height: 160px; border-radius: 14px; border: 1px solid #b9c6c7; padding: 12px; }
.planner-help ol { margin: 0; padding-left: 20px; font-size: 15px; line-height: 1.7; color: var(--ink-2); }

/* ===== Contact Form 7 ===== */
.wpcf7 form { margin: 0; }
.wpcf7 .mommy-form { display: flex; flex-direction: column; gap: 10px; }
.wpcf7 .mommy-form .lbl { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.mommy-email { display: block; }
.mommy-isca { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.45; cursor: pointer; }
.wpcf7-acceptance input { width: 20px; height: 20px; margin: 0; flex-shrink: 0; accent-color: var(--ink); }
.wpcf7-submit { width: 100%; }
.wpcf7-spinner { display: none; }
.wpcf7 form.submitting .wpcf7-spinner { display: inline-block; }
.wpcf7-not-valid-tip { font-size: 13px; color: var(--coral-dark); margin-top: 4px; }
.wpcf7 form .wpcf7-response-output { margin: 8px 0 0; padding: 10px 14px; border-radius: 12px; font-size: 14px; border: 1.5px solid var(--sage); background: #fff; color: var(--ink); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--coral); }
.form-note { font-size: 12px; line-height: 1.45; color: var(--ink-3); }
.form-note a { color: inherit; }
.form-dark .wpcf7-acceptance label, .form-dark .form-note, .form-dark .form-note a { color: #dbe3e5; }
.form-dark .wpcf7-submit { background: var(--peach); color: var(--ink); }
.form-dark .wpcf7-submit:hover { background: #ffcfa3; color: var(--ink); }
.form-missing { font-size: 13px; color: var(--ink-3); }

/* ===== Rodapé ===== */
.site-footer { background: var(--ink); color: #dbe3e5; padding: 56px 0 32px; margin-top: 56px; }
.site-footer a { color: #dbe3e5; }
.site-footer a:hover { color: #fff; }
.footer-grid { display: grid; gap: 36px; }
@media (min-width: 700px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .footer-grid { grid-template-columns: 1.2fr .8fr .8fr 1.2fr; gap: 40px; } }
.footer-col { display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.footer-col strong { color: var(--off); }
.footer-slogan { font-family: var(--serif); font-size: 28px; line-height: 1.1; color: var(--off); }
.footer-slogan em { color: var(--peach); }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .15); margin-top: 40px; padding-top: 20px; display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: #a9b6bb; }
@media (min-width: 900px) { .footer-bottom { flex-direction: row; justify-content: space-between; } }
.has-sticky .site-footer { padding-bottom: 110px; }
@media (min-width: 900px) { .has-sticky .site-footer { padding-bottom: 32px; } }

/* ===== 404 ===== */
.notfound { display: grid; gap: 32px; align-items: center; padding: 48px 0; }
@media (min-width: 900px) { .notfound { grid-template-columns: 1.1fr 1fr; gap: 56px; padding: 64px 0; } }
.notfound img { max-height: 520px; width: auto; margin: 0 auto; }


/* ===== Termos de uso (layered notice) ===== */
.terms-meta { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; font-size: 15px; background: #fff; border-radius: 20px; padding: 20px 22px; box-shadow: var(--shadow); }
.terms-meta dt { font-weight: 700; }
.terms-meta dd { margin: 0; color: var(--ink-2); }
@media (max-width: 600px) { .terms-meta { grid-template-columns: 1fr; } .terms-meta dd { margin-bottom: 8px; } }
.prose blockquote.terms-quote { font-family: var(--sans); font-size: 17px; background: var(--peach-bg); }
.quick-grid { display: grid; gap: 14px; }
@media (min-width: 700px) { .quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.quick-item { background: #fff; border-radius: 18px; padding: 18px 20px; box-shadow: var(--shadow); }
.prose .quick-item h3 { margin-top: 0; font-size: 17px; }
.quick-item p { font-size: 15px; margin-top: 6px; }
.journey-flow { margin: 0; background: var(--slate-bg); border-radius: 20px; padding: 20px 22px; }
.journey-flow figcaption { font-size: 12px; font-weight: 700; letter-spacing: .12em; color: var(--ink-3); }
.journey-flow ol { margin: 12px 0 0; }
.journey-flow li span { display: block; }
.journey-flow li span + span { font-size: 15px; color: var(--ink-3); }
.formal-label { font-size: 12px !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3) !important; }
.layer-note { font-size: 15px !important; }
.prose code { font-size: .9em; background: #EFE9E1; padding: 1px 6px; border-radius: 6px; }
.ilustra-404 { max-height: 480px; width: auto; margin: 0 auto; }

/* ===== Impressão (plano de apoio) ===== */
@media print {
	.site-header, .site-footer, .no-print, .planner-grid, .page-head, .sticky-cta, .skip { display: none !important; }
	body { background: #fff; }
	.plan-result { display: block !important; background: #fff; padding: 0; }
	.plan-result .wpcf7, .plan-result .actions-row { display: none !important; }
}
