/* ==========================================================================
   Psico Ariany — sistema visual
   Layout e espaçamentos ficam nos próprios blocos (painel do GenerateBlocks).
   Aqui ficam tipografia, botões, cartões, modo escuro e movimento.
   ========================================================================== */

:root {
	--pa-radius: 24px;
	--pa-radius-sm: 14px;
	--pa-shadow: 0 28px 60px -36px rgba(70, 42, 20, 0.45);
	--pa-glass: rgba(255, 252, 247, 0.78);
	--pa-scrim-x: linear-gradient(90deg, rgba(250, 246, 239, 0.97) 0%, rgba(250, 246, 239, 0.92) 30%, rgba(250, 246, 239, 0.5) 50%, rgba(250, 246, 239, 0) 68%);
	--pa-scrim-y: linear-gradient(0deg, rgba(250, 246, 239, 1) 0%, rgba(250, 246, 239, 0) 32%);
	--pa-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

html[data-theme="dark"] {
	--wp--preset--color--fundo: #15110d;
	--wp--preset--color--superficie: #1f1914;
	--wp--preset--color--cartao: #29211a;
	--wp--preset--color--texto: #f5eee4;
	--wp--preset--color--texto-suave: #c4b7a7;
	--wp--preset--color--linha: #3d3228;
	--wp--preset--color--destaque: #ebb084;
	--wp--preset--color--sobre-destaque: #21170f;
	--wp--preset--color--damasco: #8a5a3a;
	--wp--preset--color--verde: #a9c4ae;
	--pa-glass: rgba(31, 25, 20, 0.78);
	--pa-shadow: 0 28px 60px -36px rgba(0, 0, 0, 0.8);
	--pa-scrim-x: linear-gradient(90deg, rgba(21, 17, 13, 0.97) 0%, rgba(21, 17, 13, 0.9) 32%, rgba(21, 17, 13, 0.5) 54%, rgba(21, 17, 13, 0.12) 74%);
	--pa-scrim-y: linear-gradient(0deg, rgba(21, 17, 13, 1) 0%, rgba(21, 17, 13, 0) 32%);
	color-scheme: dark;
}

/* Base ------------------------------------------------------------------- */

html { scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: clip; -webkit-font-smoothing: antialiased; transition: background-color 0.3s var(--pa-ease), color 0.3s var(--pa-ease); }
img { max-width: 100%; height: auto; }
.pa-main > :where(:not(.pa-section)) { max-width: 760px; margin-left: auto; margin-right: auto; padding-left: 20px; padding-right: 20px; }
.pa-page-title { max-width: 760px; margin: 0 auto 32px; padding: 140px 20px 0; font-size: clamp(2.25rem, 5vw, 3.5rem); }
.pa-skip { position: absolute; left: 16px; top: -64px; z-index: 100; padding: 12px 20px; border-radius: 999px; background: var(--wp--preset--color--texto); color: var(--wp--preset--color--fundo); }
.pa-skip:focus { top: 16px; }

a:focus-visible, button:focus-visible, summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--destaque);
	outline-offset: 3px;
	border-radius: 6px;
}

/* Tipografia ------------------------------------------------------------- */

.pa-display, .pa-title, .pa-subtitle, .pa-card-title {
	font-family: var(--wp--preset--font-family--titulo);
	font-weight: 350;
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--wp--preset--color--texto);
	font-optical-sizing: auto;
	text-wrap: balance;
}
.pa-display { font-size: clamp(2.75rem, 6vw, 5.25rem); line-height: 1.04; }
.pa-title { font-size: clamp(2.125rem, 4.4vw, 3.5rem); line-height: 1.1; }
.pa-subtitle { font-size: clamp(1.625rem, 2.6vw, 2.25rem); line-height: 1.15; }
.pa-card-title { font-size: 1.5rem; line-height: 1.2; }
.pa-display em, .pa-title em, .pa-subtitle em, .pa-card-title em { font-style: italic; color: var(--wp--preset--color--destaque); }
.pa-display em { display: block; }

.pa-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--wp--preset--color--texto-suave);
}
.pa-eyebrow::before {
	content: "";
	flex: none;
	width: 22px;
	height: 1px;
	background: var(--wp--preset--color--destaque);
}
.pa-lead { margin: 0; font-size: 1.125rem; line-height: 1.65; color: var(--wp--preset--color--texto-suave); text-wrap: pretty; }
.pa-text { margin: 0; color: var(--wp--preset--color--texto-suave); text-wrap: pretty; }
.pa-kicker { margin: 0; font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--destaque); }
.pa-quote {
	margin: 0;
	padding-left: 20px;
	border-left: 2px solid var(--wp--preset--color--destaque);
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.25rem;
	font-style: italic;
	font-weight: 350;
	line-height: 1.45;
	color: var(--wp--preset--color--texto);
}

/* Botões ----------------------------------------------------------------- */

.pa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 12px 26px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: transform 0.2s var(--pa-ease), background-color 0.2s var(--pa-ease), border-color 0.2s var(--pa-ease), color 0.2s var(--pa-ease), box-shadow 0.2s var(--pa-ease);
}
.pa-btn:hover { transform: translateY(-2px); }
.pa-btn--primary { background-color: var(--wp--preset--color--destaque); color: var(--wp--preset--color--sobre-destaque); box-shadow: 0 14px 28px -16px rgba(169, 79, 38, 0.8); }
.pa-btn--primary:hover { color: var(--wp--preset--color--sobre-destaque); box-shadow: 0 18px 32px -14px rgba(169, 79, 38, 0.85); }
.pa-btn--ghost { border-color: var(--wp--preset--color--texto); color: var(--wp--preset--color--texto); background: transparent; }
.pa-btn--ghost:hover { background-color: var(--wp--preset--color--texto); color: var(--wp--preset--color--fundo); }
.pa-btn--small { min-height: 44px; padding: 8px 20px; font-size: 0.875rem; }

/* Cabeçalho -------------------------------------------------------------- */

.pa-site-header {
	position: fixed;
	top: 14px;
	left: 0;
	right: 0;
	z-index: 50;
	padding: 0 clamp(14px, 3vw, 32px);
	pointer-events: none;
}
.pa-nav {
	pointer-events: auto;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	max-width: 1200px;
	margin: 0 auto;
	padding: 8px 8px 8px 22px;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: 999px;
	background-color: var(--pa-glass);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	transition: box-shadow 0.3s var(--pa-ease);
}
.is-scrolled .pa-nav, .is-menu-open .pa-nav { box-shadow: var(--pa-shadow); }
.pa-brand {
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 1.25rem;
	font-weight: 400;
	letter-spacing: -0.01em;
	white-space: nowrap;
	text-decoration: none;
	color: var(--wp--preset--color--texto);
}
.pa-brand em { font-style: italic; color: var(--wp--preset--color--destaque); }
.pa-nav__links { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 28px); margin-left: auto; }
.pa-nav__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-size: 0.9375rem;
	text-decoration: none;
	color: var(--wp--preset--color--texto);
	transition: color 0.2s var(--pa-ease);
}
.pa-nav__link:hover { color: var(--wp--preset--color--destaque); }
.pa-nav__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--texto);
	cursor: pointer;
}
.pa-nav__toggle svg { width: 20px; height: 20px; }

@media (max-width: 860px) {
	.js .pa-nav__toggle { display: inline-flex; margin-left: auto; }
	.js .pa-nav__links {
		display: none;
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 10px 22px;
		border: 1px solid var(--wp--preset--color--linha);
		border-radius: var(--pa-radius);
		background-color: var(--wp--preset--color--cartao);
		box-shadow: var(--pa-shadow);
	}
	.js .is-menu-open .pa-nav__links { display: flex; }
	.pa-nav .pa-btn { display: none; }
	.pa-nav { padding: 6px 6px 6px 18px; }
	.pa-nav__links .pa-nav__link { min-height: 48px; }
}

/* Hero ------------------------------------------------------------------- */

.pa-hero { position: relative; isolation: isolate; overflow: hidden; }
.pa-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--pa-scrim-x);
	pointer-events: none;
}
.pa-hero__media { z-index: -1; }
.pa-hero__content { position: relative; z-index: 1; }
@media (max-width: 767px) {
	/* No celular, a foto vem primeiro e o texto fica abaixo dela. */
	.pa-hero::before { bottom: auto; height: calc(58svh + 2px); background: var(--pa-scrim-y); }
}
.pa-trust { display: flex; flex-direction: column; gap: 2px; padding-left: 16px; border-left: 2px solid var(--wp--preset--color--destaque); }
.pa-trust__label { margin: 0; font-size: 0.75rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--texto); }
.pa-trust__text { margin: 0; font-size: 0.875rem; color: var(--wp--preset--color--texto-suave); }

/* Cartões ---------------------------------------------------------------- */

.pa-card, .pa-service {
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: var(--pa-radius);
	background-color: var(--wp--preset--color--cartao);
	transition: transform 0.35s var(--pa-ease), box-shadow 0.35s var(--pa-ease);
}
.pa-service { overflow: hidden; }
.pa-service:hover, .pa-card:hover { box-shadow: var(--pa-shadow); }
.pa-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.pa-tag {
	margin: 0;
	padding: 5px 13px;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: 999px;
	font-size: 0.8125rem;
	line-height: 1.4;
	color: var(--wp--preset--color--texto-suave);
}
.pa-number {
	margin: 0;
	font-family: var(--wp--preset--font-family--titulo);
	font-size: 2.5rem;
	font-style: italic;
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--destaque);
}

/* Carrossel do consultório ------------------------------------------------ */

.pa-carousel {
	display: flex;
	gap: clamp(12px, 2vw, 24px);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding-inline: max(20px, calc(50% - min(39vw, 450px)));
	scroll-padding-inline: max(20px, calc(50% - min(39vw, 450px)));
}
.pa-carousel::-webkit-scrollbar { display: none; }
.pa-slide {
	flex: 0 0 min(78vw, 900px);
	margin: 0;
	scroll-snap-align: center;
	opacity: 0.55;
	transition: opacity 0.4s var(--pa-ease);
}
.pa-slide.is-active { opacity: 1; }
.no-js .pa-slide, html:not(.js) .pa-slide { opacity: 1; }
.pa-slide__caption { margin: 12px 4px 0; font-size: 0.875rem; color: var(--wp--preset--color--texto-suave); }
.pa-carousel__controls { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 24px; }
.pa-carousel__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--texto);
	cursor: pointer;
	transition: background-color 0.2s var(--pa-ease), color 0.2s var(--pa-ease);
}
.pa-carousel__btn:hover { background-color: var(--wp--preset--color--texto); color: var(--wp--preset--color--fundo); }
.pa-carousel__btn svg { width: 20px; height: 20px; }
.pa-carousel__dots { display: flex; gap: 2px; }
.pa-carousel__dot {
	width: 24px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	position: relative;
}
.pa-carousel__dot::before {
	content: "";
	position: absolute;
	left: 4px;
	right: 4px;
	top: 50%;
	height: 3px;
	margin-top: -1.5px;
	border-radius: 2px;
	background: var(--wp--preset--color--linha);
	transition: background-color 0.2s var(--pa-ease);
}
.pa-carousel__dot[aria-current="true"]::before { background: var(--wp--preset--color--destaque); }

/* Sobre e detalhes -------------------------------------------------------- */

.pa-photo { border-radius: var(--pa-radius); }
.pa-photo-frame { position: relative; }
.pa-photo-frame::before {
	content: "";
	position: absolute;
	inset: 28px -18px -18px 28px;
	z-index: -1;
	border-radius: var(--pa-radius);
	background-color: var(--wp--preset--color--damasco);
	opacity: 0.55;
}
.pa-isolate { isolation: isolate; }
.pa-stats { border-top: 1px solid var(--wp--preset--color--linha); }
.pa-stat__num { margin: 0; font-family: var(--wp--preset--font-family--titulo); font-size: 2.5rem; font-weight: 350; line-height: 1.1; color: var(--wp--preset--color--destaque); }
.pa-stat__label { margin: 0; font-size: 0.875rem; color: var(--wp--preset--color--texto-suave); }

/* Seção com círculo decorativo */
.pa-possibilities { position: relative; isolation: isolate; overflow: hidden; }
.pa-possibilities::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: -120px;
	right: -140px;
	width: clamp(280px, 38vw, 520px);
	aspect-ratio: 1;
	border-radius: 50%;
	background-color: var(--wp--preset--color--damasco);
	opacity: 0.32;
}

/* Lista de contato com ícone */
.pa-info { display: flex; align-items: flex-start; gap: 12px; margin: 0; color: var(--wp--preset--color--texto); }
.pa-info .gb-shape { flex: none; display: inline-flex; margin-top: 3px; color: var(--wp--preset--color--destaque); }
.pa-info .gb-shape svg { width: 20px; height: 20px; }
.pa-link { font-weight: 500; color: var(--wp--preset--color--destaque); }

/* Perguntas frequentes (bloco Detalhes nativo) ---------------------------- */

.pa-faq-item {
	border-bottom: 1px solid var(--wp--preset--color--linha);
	margin: 0;
}
.pa-faq-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 48px;
	padding: 20px 0;
	font-family: var(--wp--preset--font-family--titulo);
	font-size: clamp(1.125rem, 2vw, 1.375rem);
	font-weight: 400;
	line-height: 1.3;
	cursor: pointer;
	list-style: none;
	color: var(--wp--preset--color--texto);
}
.pa-faq-item summary::-webkit-details-marker { display: none; }
.pa-faq-item summary::after {
	content: "+";
	flex: none;
	font-family: var(--wp--preset--font-family--corpo);
	font-size: 1.5rem;
	font-weight: 300;
	line-height: 1;
	color: var(--wp--preset--color--destaque);
	transition: transform 0.25s var(--pa-ease);
}
.pa-faq-item[open] summary::after { transform: rotate(45deg); }
.pa-faq-item p { margin: 0; padding: 0 40px 24px 0; color: var(--wp--preset--color--texto-suave); }

/* Chamada final ----------------------------------------------------------- */

.pa-cta { overflow: hidden; border-radius: calc(var(--pa-radius) + 8px); background-color: var(--wp--preset--color--superficie); }

/* Rodapé ------------------------------------------------------------------ */

.pa-site-footer { border-top: 1px solid var(--wp--preset--color--linha); }
.pa-footer-note { margin: 0; font-size: 0.875rem; line-height: 1.6; color: var(--wp--preset--color--texto-suave); }
.pa-footer-alert { margin: 0; font-size: 0.8125rem; line-height: 1.6; color: var(--wp--preset--color--texto-suave); }

/* Botões flutuantes ------------------------------------------------------- */

.pa-wpp-float {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 40;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background-color: #128c4a;
	color: #fff;
	box-shadow: 0 14px 28px -12px rgba(0, 0, 0, 0.5);
	transition: transform 0.2s var(--pa-ease);
}
.pa-wpp-float:hover { transform: scale(1.06); color: #fff; }
.pa-wpp-float .gb-shape { display: inline-flex; }
.pa-wpp-float svg { width: 28px; height: 28px; }

.pa-theme-toggle {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 40;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--wp--preset--color--linha);
	border-radius: 50%;
	background-color: var(--pa-glass);
	color: var(--wp--preset--color--texto);
	cursor: pointer;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
.pa-theme-toggle svg { width: 20px; height: 20px; }
@media (max-width: 767px) {
	/* Empilhado à direita para não cobrir o texto alinhado à esquerda. */
	.pa-theme-toggle { left: auto; right: 26px; bottom: 88px; }
}
.pa-theme-toggle .pa-icon-sun { display: none; }
html[data-theme="dark"] .pa-theme-toggle .pa-icon-sun { display: block; }
html[data-theme="dark"] .pa-theme-toggle .pa-icon-moon { display: none; }

/* Movimento (somente com JS ativo e sem preferência por menos movimento) -- */

.pa-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.7s var(--pa-ease), transform 0.7s var(--pa-ease); }
.pa-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
	.pa-reveal { opacity: 1; transform: none; }
}
