/*
Theme Name: Sentido
Theme URI: https://ivory-pelican-472752.hostingersite.com/
Author: Roberto
Description: Tema sob medida para o consultório de avaliação psicológica de Emanuella Brito. Inclui padrões de página prontos com a copy aprovada, botão de WhatsApp em todas as páginas e dados do consultório editáveis em Aparência › Personalizar › Consultório.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sentido
*/

/* ==========================================================================
   Tokens
   ========================================================================== */
:root,
body {
	--fog: #F5F6F2;
	--paper: #FFFFFF;
	--ink: #1B2523;
	--muted: #56635F;
	--line: #DCE2DB;
	--petrol: #1E4744;
	--petrol-deep: #143432;
	--tint: #E4ECE7;
	--lichen: #A9C2B4;
	--on-petrol: #EEF4F0;
	--on-petrol-muted: #B9CBC2;

	--display: "Newsreader", Georgia, "Times New Roman", serif;
	--body: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--content: 680px;
	--wide: 1080px;
	--text: 40rem;
	--gutter: clamp(20px, 5vw, 40px);
	--section: clamp(56px, 9vw, 104px);
	--radius: 3px;
}

/* ==========================================================================
   Base
   ========================================================================== */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }

body {
	margin: 0;
	background: var(--fog);
	color: var(--ink);
	font-family: var(--body);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
@media (min-width: 900px) { body { font-size: 1.125rem; } }

img { max-width: 100%; height: auto; display: block; }
p { margin: 0; }

a { color: var(--petrol); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--petrol-deep); }
:focus-visible { outline: 2px solid var(--petrol); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--lichen); color: var(--ink); }

h1, h2, h3, h4, h5, h6 { color: var(--ink); margin: 0; text-wrap: balance; }
h1, h2 { font-family: var(--display); font-weight: 400; letter-spacing: -.012em; }
h1 { font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 1.08; }
h2 { font-size: clamp(1.65rem, 3vw, 2.35rem); line-height: 1.15; }
h3 { font-family: var(--body); font-weight: 600; font-size: 1.1rem; line-height: 1.35; letter-spacing: -.005em; }
h4, h5, h6 { font-family: var(--body); font-weight: 600; font-size: 1rem; }
h1 em, h2 em { font-style: italic; font-weight: 300; color: var(--petrol); }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: 12px; top: -80px; z-index: 100;
	background: var(--petrol); color: var(--on-petrol);
	padding: 10px 16px; border-radius: 999px; text-decoration: none; font-weight: 600;
}
.skip-link:focus { top: 12px; color: var(--on-petrol); }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header {
	position: sticky; top: 0; z-index: 50;
	background: rgba(245, 246, 242, .94);
	-webkit-backdrop-filter: saturate(1.2) blur(10px);
	backdrop-filter: saturate(1.2) blur(10px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease;
}
.site-header.is-scrolled { border-bottom-color: var(--line); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

.site-header__inner {
	max-width: calc(var(--wide) + 2 * var(--gutter));
	margin: 0 auto;
	padding: 14px var(--gutter);
	display: flex; align-items: center; gap: 24px;
	position: relative;
}

.brand {
	display: flex; flex-direction: column;
	margin-right: auto; color: var(--ink); text-decoration: none; line-height: 1.15;
}
.brand:hover { color: var(--ink); }
.brand__name { font-family: var(--display); font-size: 1.45rem; letter-spacing: -.01em; }
.brand__meta {
	margin-top: 4px; font-size: .7rem; font-weight: 500;
	letter-spacing: .13em; text-transform: uppercase; color: var(--muted);
}

.site-nav { display: flex; align-items: center; gap: 30px; }
.site-nav__list { display: flex; gap: 26px; list-style: none; margin: 0; padding: 0; }
.site-nav__list a {
	display: inline-block; padding: 6px 0;
	color: var(--ink); text-decoration: none; font-size: .95rem; font-weight: 500;
	border-bottom: 1px solid transparent; transition: color .15s, border-color .15s;
}
.site-nav__list a:hover,
.site-nav__list .current-menu-item > a,
.site-nav__list .current_page_item > a,
.site-nav__list .current_page_parent > a { color: var(--petrol); border-bottom-color: var(--petrol); }

.site-nav__cta {
	display: inline-flex; align-items: center; gap: .5em;
	padding: .62em 1.15em; border-radius: 999px;
	background: var(--petrol); color: var(--on-petrol);
	font-size: .9rem; font-weight: 600; text-decoration: none;
	transition: background .2s;
}
.site-nav__cta:hover { background: var(--petrol-deep); color: var(--on-petrol); }

.nav-toggle {
	display: none; align-items: center; justify-content: center;
	width: 44px; height: 44px; margin-right: -10px;
	background: none; border: 0; cursor: pointer; color: var(--ink);
}
.nav-toggle__bars,
.nav-toggle__bars::before,
.nav-toggle__bars::after {
	display: block; width: 22px; height: 1.5px; background: currentColor;
	transition: transform .25s ease, opacity .2s;
}
.nav-toggle__bars { position: relative; }
.nav-toggle__bars::before,
.nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bars::before { top: -7px; }
.nav-toggle__bars::after { top: 7px; }
.nav-open .nav-toggle__bars { background: transparent; }
.nav-open .nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.nav-open .nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 899px) {
	.nav-toggle { display: inline-flex; }
	.site-nav {
		display: none;
		position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 20px;
		padding: 8px var(--gutter) 28px;
		background: var(--fog); border-bottom: 1px solid var(--line);
	}
	.nav-open .site-nav { display: flex; }
	.site-nav__list { flex-direction: column; gap: 0; }
	.site-nav__list a {
		display: block; padding: 14px 0; font-size: 1.1rem;
		border-bottom: 1px solid var(--line);
	}
	.site-nav__list .current-menu-item > a,
	.site-nav__list .current_page_item > a { border-bottom-color: var(--line); }
	.site-nav__cta { justify-content: center; padding: 1em; font-size: 1rem; }
}

/* ==========================================================================
   Content frame
   ========================================================================== */
.site-main { display: block; }

.entry-content { padding-inline: var(--gutter); padding-bottom: var(--section); }
.entry-content:has(> .alignfull:last-child) { padding-bottom: 0; }

.entry-content > * { max-width: var(--content); margin-inline: auto; }
.entry-content > .alignwide { max-width: var(--wide); }
.entry-content > .alignfull { max-width: none; margin-inline: calc(var(--gutter) * -1); }
.entry-content > * + * { margin-top: 1.25rem; }
.entry-content > .alignfull,
.entry-content > .alignfull + * { margin-top: 0; }
.entry-content > :not(.alignfull) + .alignfull { margin-top: var(--section); }
.entry-content > .alignfull + :not(.alignfull) { margin-top: var(--section); }

/* Prose — articles and any non-pattern page */
.entry-content > h2 { margin-top: 2.6rem; }
.entry-content > h3 { margin-top: 2rem; }
.entry-content ul:not([class*="sentido"]),
.entry-content ol:not([class*="sentido"]) { padding-left: 1.25em; }
.entry-content li + li { margin-top: .4em; }
.entry-content li::marker { color: var(--petrol); }
.entry-content blockquote,
.entry-content .wp-block-quote {
	margin-inline: auto; padding: .25rem 0 .25rem 1.4rem;
	border-left: 2px solid var(--lichen);
	font-family: var(--display); font-size: 1.3rem; line-height: 1.45; font-style: italic;
}
.entry-content blockquote cite,
.entry-content .wp-block-quote cite {
	display: block; margin-top: .6rem;
	font-family: var(--body); font-style: normal; font-size: .85rem; color: var(--muted);
}
.entry-content figcaption,
.entry-content .wp-element-caption { margin-top: .6rem; font-size: .85rem; color: var(--muted); }
.entry-content hr,
.entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin-block: 2.5rem; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }

.entry-content .wp-block-button__link,
.button {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	padding: .95em 1.55em; border-radius: 999px;
	background: var(--petrol); color: var(--on-petrol);
	border: 1px solid var(--petrol);
	font-family: var(--body); font-size: .98rem; font-weight: 600; line-height: 1.2;
	text-decoration: none;
	transition: background .2s, color .2s, border-color .2s;
}
.entry-content .wp-block-button__link:hover,
.button:hover { background: var(--petrol-deep); border-color: var(--petrol-deep); color: var(--on-petrol); }

.entry-content .is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--petrol); border-color: var(--petrol);
}
.entry-content .is-style-outline > .wp-block-button__link:hover { background: var(--tint); color: var(--petrol-deep); }

/* WhatsApp glyph on any link that opens WhatsApp */
.entry-content a.wp-block-button__link[href*="wa.me"]::before,
.button[href*="wa.me"]::before,
.site-nav__cta::before,
.wa-float::before {
	content: ""; width: 1.15em; height: 1.15em; flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5a9.5 9.5 0 0 0-8.2 14.3L2.5 21.5l4.8-1.3A9.5 9.5 0 1 0 12 2.5Zm0 1.7a7.8 7.8 0 1 1-4 14.5l-.3-.2-2.8.8.8-2.7-.2-.3A7.8 7.8 0 0 1 12 4.2Zm-3 3.6c-.2 0-.5 0-.7.3-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.2 5 4.4 2.5 1 3 .8 3.5.7.6-.1 1.8-.7 2-1.4.3-.7.3-1.3.2-1.4l-.5-.3-1.9-.9c-.3-.1-.5-.1-.7.1l-.9 1.1c-.2.2-.3.2-.6.1a6.4 6.4 0 0 1-3.2-2.8c-.2-.4.2-.4.7-1.3l.1-.4-.1-.3-.9-2.1c-.2-.5-.4-.5-.6-.5h-.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5a9.5 9.5 0 0 0-8.2 14.3L2.5 21.5l4.8-1.3A9.5 9.5 0 1 0 12 2.5Zm0 1.7a7.8 7.8 0 1 1-4 14.5l-.3-.2-2.8.8.8-2.7-.2-.3A7.8 7.8 0 0 1 12 4.2Zm-3 3.6c-.2 0-.5 0-.7.3-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.2 5 4.4 2.5 1 3 .8 3.5.7.6-.1 1.8-.7 2-1.4.3-.7.3-1.3.2-1.4l-.5-.3-1.9-.9c-.3-.1-.5-.1-.7.1l-.9 1.1c-.2.2-.3.2-.6.1a6.4 6.4 0 0 1-3.2-2.8c-.2-.4.2-.4.7-1.3l.1-.4-.1-.3-.9-2.1c-.2-.5-.4-.5-.6-.5h-.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ==========================================================================
   Section system (used by the theme's block patterns)
   ========================================================================== */
.sentido-hero,
.sentido-pagehero,
.sentido-section,
.sentido-cta { padding-inline: var(--gutter); }

.sentido-hero > *,
.sentido-pagehero > *,
.sentido-section > *,
.sentido-cta > * { max-width: var(--wide); margin-inline: auto !important; }

.sentido-section { padding-block: var(--section); }
.sentido-section.is-tinted { background: var(--tint); }
.sentido-section.is-paper { background: var(--paper); }

/* Inner wrapper: one shared left edge, readable line length */
.sentido-wrap > * + * { margin-top: 1.25rem; }
.sentido-wrap > :where(p, ul, ol, h2, h3, .wp-block-details, .sentido-faq) { max-width: var(--text); }
.sentido-wrap > .wp-block-buttons { margin-top: 2rem; }

.sentido-kicker,
.entry-content h2.sentido-kicker,
.sentido-eyebrow,
.page-eyebrow {
	font-family: var(--body); font-size: .78rem; font-weight: 600;
	letter-spacing: .14em; text-transform: uppercase; line-height: 1.4;
	color: var(--petrol);
}
.sentido-wrap > .sentido-kicker + * { margin-top: .9rem; }

.sentido-statement {
	font-family: var(--display); font-weight: 400;
	font-size: clamp(1.45rem, 2.6vw, 1.95rem); line-height: 1.35; letter-spacing: -.008em;
	color: var(--ink);
}
.sentido-wrap > .sentido-statement { max-width: 30em; }

.sentido-lead { font-size: clamp(1.08rem, 1.6vw, 1.25rem); line-height: 1.55; color: var(--muted); }
.sentido-credential { font-size: .95rem; color: var(--muted); }
.sentido-credential strong { color: var(--ink); font-weight: 600; }

/* --- Home hero --------------------------------------------------------- */
.sentido-hero {
	position: relative; overflow: hidden; isolation: isolate;
	padding-block: clamp(56px, 10vw, 128px) clamp(64px, 10vw, 128px);
}
.sentido-hero > * { position: relative; z-index: 1; }
.sentido-hero .sentido-wrap > .sentido-eyebrow + * { margin-top: 1.4rem; }
.sentido-hero__title,
.entry-content h1.sentido-hero__title {
	font-size: clamp(2.4rem, 5.6vw, 4.25rem); line-height: 1.05; letter-spacing: -.018em;
	max-width: 14.5em;
}
.sentido-hero .sentido-wrap > .sentido-lead { margin-top: 1.6rem; max-width: 34em; }
.sentido-hero .sentido-wrap > .wp-block-buttons { margin-top: 2.25rem; }

/* The lens: two rings that come into focus */
.sentido-hero::before,
.sentido-hero::after {
	content: ""; position: absolute; z-index: 0; pointer-events: none;
	top: 50%; right: max(var(--gutter), calc((100% - var(--wide)) / 2 - 40px));
	aspect-ratio: 1; border-radius: 50%;
	border: 1px solid var(--lichen);
	transform: translate(50%, -50%);
}
.sentido-hero::before { width: min(64vw, 640px); animation: sentido-focus-a 1.9s cubic-bezier(.16, .8, .2, 1) .15s both; }
.sentido-hero::after {
	width: min(38vw, 380px);
	background: radial-gradient(circle, var(--petrol) 0 3px, transparent 3.5px);
	animation: sentido-focus-b 1.9s cubic-bezier(.16, .8, .2, 1) .15s both;
}
@keyframes sentido-focus-a {
	from { opacity: 0; transform: translate(calc(50% - 46px), calc(-50% + 28px)); }
	to   { opacity: 1; transform: translate(50%, -50%); }
}
@keyframes sentido-focus-b {
	from { opacity: 0; transform: translate(calc(50% + 54px), calc(-50% - 36px)); }
	to   { opacity: 1; transform: translate(50%, -50%); }
}
@media (max-width: 899px) {
	.sentido-hero::before,
	.sentido-hero::after { top: 14%; right: 0; opacity: .55; }
	.sentido-hero::before { width: 380px; }
	.sentido-hero::after { width: 220px; }
	@keyframes sentido-focus-a { from { opacity: 0; } to { opacity: .55; } }
	@keyframes sentido-focus-b { from { opacity: 0; } to { opacity: .55; } }
}

/* --- Inner page hero --------------------------------------------------- */
.sentido-pagehero { padding-block: clamp(16px, 2.5vw, 28px) clamp(48px, 7vw, 88px); }
.sentido-pagehero h1 { max-width: 17em; }
.sentido-pagehero .sentido-wrap > .sentido-lead { margin-top: 1.4rem; max-width: 36em; }
.sentido-pagehero .sentido-wrap > .wp-block-buttons { margin-top: 2rem; }

/* --- Two columns ------------------------------------------------------- */
.sentido-duo { gap: clamp(40px, 7vw, 96px) !important; }
.sentido-duo > .wp-block-column > * + * { margin-top: 1.1rem; }
.sentido-duo > .wp-block-column > .sentido-kicker + * { margin-top: .9rem; }
.sentido-duo > .wp-block-column > .wp-block-buttons { margin-top: 1.75rem; }

/* --- Numbered list (real sequences only) ------------------------------- */
.entry-content ol.sentido-numbered {
	list-style: none; padding: 0; margin-inline: 0;
	counter-reset: sentido-n; display: grid; gap: 1.1rem;
}
.entry-content ol.sentido-numbered > li {
	counter-increment: sentido-n; margin: 0;
	display: grid; grid-template-columns: 2.6rem 1fr; column-gap: 1rem; align-items: start;
}
.entry-content ol.sentido-numbered > li::before {
	content: counter(sentido-n);
	width: 2.6rem; height: 2.6rem; display: grid; place-items: center;
	border: 1px solid var(--lichen); border-radius: 50%;
	font-family: var(--display); font-size: 1.15rem; color: var(--petrol);
	margin-top: -.3rem;
}

/* --- Steps ------------------------------------------------------------- */
.sentido-steps { counter-reset: sentido-s; max-width: var(--text); }
.sentido-wrap > .sentido-steps { margin-top: 0; }
.sentido-step {
	counter-increment: sentido-s;
	display: grid; grid-template-columns: 3.25rem 1fr; column-gap: 1.5rem;
	padding-block: 1.9rem; border-top: 1px solid var(--line);
}
.sentido-step:last-child { border-bottom: 1px solid var(--line); }
.sentido-step::before {
	content: counter(sentido-s);
	grid-column: 1; grid-row: 1 / span 6;
	width: 3.25rem; height: 3.25rem; display: grid; place-items: center;
	border: 1px solid var(--lichen); border-radius: 50%;
	font-family: var(--display); font-size: 1.4rem; color: var(--petrol);
}
.sentido-step > * { grid-column: 2; margin: 0 !important; }
.sentido-step > h3 { font-family: var(--display); font-weight: 400; font-size: 1.55rem; line-height: 1.2; padding-top: .35rem; }
.sentido-step > * + * { margin-top: .55rem !important; }
.sentido-step > p { color: var(--muted); }

/* --- Cards ------------------------------------------------------------- */
.sentido-cards {
	display: grid; gap: 16px !important;
	grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr));
}
.sentido-wrap > .sentido-cards { margin-top: 2rem; }
.sentido-card {
	background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
	padding: 1.75rem 1.6rem 1.9rem;
}
.sentido-card::before {
	content: ""; display: block; width: 14px; height: 14px; margin-bottom: 1.1rem;
	border: 1px solid var(--petrol); border-radius: 50%;
	box-shadow: 0 0 0 5px var(--paper), 0 0 0 6px var(--lichen);
}
.sentido-card > * + * { margin-top: .5rem; }
.sentido-card > h3 { color: var(--petrol); }
.sentido-card > p { color: var(--muted); font-size: .97rem; }

/* --- FAQ --------------------------------------------------------------- */
.sentido-faq { max-width: var(--text); }
.sentido-faq > * + * { margin-top: 0 !important; }
.sentido-faq .wp-block-details {
	border-top: 1px solid var(--line); padding-block: 1.15rem;
}
.sentido-faq .wp-block-details:last-child { border-bottom: 1px solid var(--line); }
.sentido-faq summary {
	cursor: pointer; list-style: none;
	display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
	font-weight: 600; font-size: 1.05rem;
}
.sentido-faq summary::-webkit-details-marker { display: none; }
.sentido-faq summary::after {
	content: "+"; flex: none;
	font-family: var(--display); font-size: 1.6rem; line-height: 1; color: var(--petrol);
	transition: transform .25s ease;
}
.sentido-faq details[open] > summary::after { transform: rotate(45deg); }
.sentido-faq details > :not(summary) { margin-top: .65rem; color: var(--muted); }

/* --- About ------------------------------------------------------------- */
.sentido-portrait { margin: 0; }
.sentido-portrait img {
	width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
	border-radius: var(--radius);
}
@media (min-width: 820px) {
	.sentido-about:has(> .sentido-portrait) {
		display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		column-gap: clamp(40px, 6vw, 80px); align-items: start;
	}
	.sentido-about:has(> .sentido-portrait) > * { grid-column: 2; }
	.sentido-about:has(> .sentido-portrait) > .sentido-portrait { grid-column: 1; grid-row: 1 / span 12; margin-top: 0; }
	.sentido-about:has(> .sentido-portrait) > .sentido-portrait + * { margin-top: 0; }
}

/* --- CTA band ---------------------------------------------------------- */
.sentido-cta {
	position: relative; overflow: hidden; isolation: isolate;
	background: var(--petrol); color: var(--on-petrol);
	padding-block: var(--section);
}
.sentido-cta > * { position: relative; z-index: 1; }
.sentido-cta::before {
	content: ""; position: absolute; z-index: 0; pointer-events: none;
	width: 520px; aspect-ratio: 1; border-radius: 50%;
	right: -120px; bottom: -300px;
	border: 1px solid rgba(169, 194, 180, .35);
	box-shadow: 0 0 0 90px rgba(169, 194, 180, .05);
}
.sentido-cta h2 { color: #fff; }
.sentido-cta p { color: var(--on-petrol-muted); }
.sentido-cta a:not(.wp-block-button__link) { color: #fff; }
.entry-content .sentido-cta .wp-block-button__link {
	background: var(--on-petrol); color: var(--petrol-deep); border-color: var(--on-petrol);
}
.entry-content .sentido-cta .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--petrol-deep); }

/* ==========================================================================
   Page header (title from WordPress)
   ========================================================================== */
.page-header { padding: clamp(48px, 8vw, 96px) var(--gutter) clamp(28px, 4vw, 48px); }
.page-header.is-quiet { padding-block: clamp(36px, 5vw, 64px) 0; }
.page-header__inner { max-width: var(--wide); margin: 0 auto; }
.page-title { max-width: 17em; }

/* ==========================================================================
   Articles
   ========================================================================== */
.archive-header { padding: clamp(48px, 8vw, 96px) var(--gutter) clamp(32px, 5vw, 56px); }
.archive-header__inner { max-width: var(--wide); margin: 0 auto; }
.archive-header__inner > * + * { margin-top: 1rem; }
.archive-intro { max-width: var(--text); color: var(--muted); font-size: 1.08rem; }
.archive-intro > * + * { margin-top: .8rem; }

.post-grid {
	max-width: calc(var(--wide) + 2 * var(--gutter)); margin: 0 auto;
	padding: 0 var(--gutter) var(--section);
	display: grid; gap: 16px;
	grid-template-columns: repeat(auto-fill, minmax(min(19rem, 100%), 1fr));
}
.post-card {
	background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
	transition: border-color .2s, transform .2s;
}
.post-card:hover { border-color: var(--lichen); transform: translateY(-2px); }
.post-card a { display: flex; flex-direction: column; gap: .7rem; height: 100%; padding: 1.75rem 1.6rem; color: inherit; text-decoration: none; }
.post-card__meta { font-size: .8rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.post-card__title { font-family: var(--display); font-weight: 400; font-size: 1.45rem; line-height: 1.22; }
.post-card__excerpt { color: var(--muted); font-size: .97rem; }
.post-card__more { margin-top: auto; padding-top: .6rem; font-weight: 600; font-size: .9rem; color: var(--petrol); }

.empty-state {
	max-width: calc(var(--wide) + 2 * var(--gutter)); margin: 0 auto;
	padding: 0 var(--gutter) var(--section);
}
.empty-state__box {
	max-width: var(--text); background: var(--paper); border: 1px solid var(--line);
	border-radius: var(--radius); padding: 2rem;
}
.empty-state__box > * + * { margin-top: 1rem; }

.pagination { max-width: var(--wide); margin: 0 auto; padding: 0 var(--gutter) var(--section); }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.pagination .page-numbers {
	min-width: 2.6rem; padding: .5rem .8rem; text-align: center;
	border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--ink);
}
.pagination .page-numbers.current { background: var(--petrol); border-color: var(--petrol); color: var(--on-petrol); }

.post-header { padding: clamp(48px, 8vw, 96px) var(--gutter) clamp(28px, 4vw, 44px); }
.post-header__inner { max-width: var(--content); margin: 0 auto; }
.post-header__inner > * + * { margin-top: 1rem; }
.post-title { font-size: clamp(2.1rem, 4.6vw, 3.2rem); }
.post-meta { font-size: .88rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.page-eyebrow a { color: inherit; text-decoration: none; }
.post-cover { max-width: var(--wide); margin: 0 auto clamp(32px, 5vw, 56px); padding-inline: var(--gutter); }
.post-cover img { width: 100%; border-radius: var(--radius); }

.single .entry-content { padding-bottom: 0; }

.author-box {
	max-width: var(--content); margin: clamp(48px, 7vw, 72px) auto 0;
	display: flex; gap: 1.25rem; align-items: flex-start;
	padding: 1.75rem; background: var(--paper);
	border: 1px solid var(--line); border-radius: var(--radius);
}
.author-wrap { padding-inline: var(--gutter); }
.author-box .sentido-portrait { flex: 0 0 72px; }
.author-box .sentido-portrait img { aspect-ratio: 1; border-radius: 50%; }
.author-box__body > * + * { margin-top: .5rem; }
.author-box__label { font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--petrol); }
.author-box__name { font-family: var(--display); font-size: 1.3rem; }
.author-box__body p { font-size: .97rem; color: var(--muted); }
.author-box__body .button { margin-top: 1rem; }
.post-disclaimer {
	max-width: var(--content); margin: 1.25rem auto 0; padding: 0 var(--gutter) var(--section);
	font-size: .85rem; color: var(--muted);
	box-sizing: content-box;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--petrol-deep); color: var(--on-petrol-muted); font-size: .95rem; }
.site-footer a { color: var(--on-petrol); text-decoration-color: rgba(238, 244, 240, .35); }
.site-footer a:hover { color: #fff; }

.site-footer__inner {
	max-width: calc(var(--wide) + 2 * var(--gutter)); margin: 0 auto;
	padding: clamp(56px, 8vw, 88px) var(--gutter) 40px;
	display: grid; gap: 32px;
	grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 640px) { .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; } }
@media (min-width: 1000px) { .site-footer__inner { grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); } }

.site-footer__name { font-family: var(--display); font-size: 1.6rem; color: #fff; line-height: 1.2; }
.site-footer__id > * + * { margin-top: .45rem; }
.site-footer__note { margin-top: 1rem !important; max-width: 24em; }
.site-footer__col > * + * { margin-top: .45rem; }
.site-footer__label {
	font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	color: var(--lichen); margin-bottom: .9rem !important;
}
.site-footer__menu { list-style: none; margin: 0; padding: 0; }
.site-footer__menu li + li { margin-top: .45rem; }
.site-footer__menu a { text-decoration: none; }
.site-footer__menu a:hover { text-decoration: underline; }

.site-footer__base {
	max-width: calc(var(--wide) + 2 * var(--gutter)); margin: 0 auto;
	padding: 22px var(--gutter) 32px;
	border-top: 1px solid rgba(185, 203, 194, .18);
	display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px;
	font-size: .82rem;
}

/* ==========================================================================
   Floating WhatsApp
   ========================================================================== */
.wa-float {
	position: fixed; z-index: 60;
	right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px));
	display: inline-flex; align-items: center; gap: .6em;
	padding: .9em 1.35em; border-radius: 999px;
	background: var(--petrol); color: var(--on-petrol);
	font-weight: 600; font-size: .95rem; text-decoration: none;
	box-shadow: 0 14px 34px -14px rgba(20, 52, 50, .7);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), background .2s;
}
.wa-float:hover { background: var(--petrol-deep); color: var(--on-petrol); }
@media (min-width: 700px) {
	.js .wa-float:not(.is-visible) { transform: translateY(calc(100% + 40px)); }
}
@media (max-width: 699px) {
	.wa-float {
		left: 0; right: 0; bottom: 0; justify-content: center; border-radius: 0;
		padding: 15px var(--gutter) calc(15px + env(safe-area-inset-bottom, 0px));
		font-size: 1rem; box-shadow: 0 -8px 24px -16px rgba(20, 52, 50, .6);
	}
	body.has-wa-float { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
}

/* ==========================================================================
   404
   ========================================================================== */
.notfound { max-width: calc(var(--wide) + 2 * var(--gutter)); margin: 0 auto; padding: clamp(64px, 10vw, 128px) var(--gutter) var(--section); }
.notfound > * + * { margin-top: 1.25rem; }
.notfound p { max-width: var(--text); color: var(--muted); }

/* ==========================================================================
   Motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	html { scroll-behavior: auto; }
}
