/*
Theme Name: Nicole Vegi Capuzzo
Theme URI: https://nicolecapuzzopsi.com/
Author: Nicole Vegi Capuzzo
Description: Tema responsivo personalizado para o site profissional da psicóloga Nicole Vegi Capuzzo.
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: nicole-vegi-capuzzo
*/

:root {
	--cream: #f2e8df;
	--ink: #3a4a46;
	--sage: #86a69d;
	--sage-dark: #789990;
	--pink: #f2c6c2;
	--yellow: #f2b263;
	--white: #fff;
	--serif: 'Fraunces', Georgia, serif;
	--sans: 'DM Sans', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.55;
	overflow-x: hidden;
}
a { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
	color: var(--sage);
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.08;
}
h2 { margin-bottom: 26px; font-size: 36px; line-height: 40px; }
h3 { margin-bottom: 12px; font-size: 24px; }
p { font-size: 17px; line-height: 1.65; }
svg { display: block; }

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	height: 73px;
	background: rgba(242, 232, 223, .86);
	border-bottom: 1px solid rgba(134, 166, 157, .18);
	backdrop-filter: blur(12px);
}
.admin-bar .site-header { top: 32px; }
.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 100%;
	max-width: 1110px;
	margin: auto;
	padding: 0 16px;
}
.brand-link { text-decoration: none; }
.brand { display: flex; align-items: center; gap: 13px; color: var(--sage-dark); }
.brand img { width: 45px; height: 45px; object-fit: contain; }
.brand div { display: flex; flex-direction: column; }
.brand strong { font-family: var(--serif); font-size: 16px; font-weight: 600; line-height: 1.25; }
.brand span { font-size: 12px; font-weight: 500; }
.cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: max-content;
	padding: 15px 31px;
	border-radius: 16px;
	background: var(--sage);
	color: white;
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
	transition: .2s ease;
}
.cta:hover, .cta:focus-visible { background: #75958d; transform: translateY(-1px); }
.cta:focus-visible, .floating-whatsapp:focus-visible, .faq-item summary:focus-visible, a:focus-visible {
	outline: 3px solid rgba(58, 74, 70, .35);
	outline-offset: 3px;
}
.cta-compact { padding: 12px 25px; }
.cta-light { background: var(--cream); color: var(--sage-dark); }
.cta-light:hover, .cta-light:focus-visible { background: #fff; }

.hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 56px;
	min-height: 789px;
	max-width: 1152px;
	margin: auto;
	padding: 64px 32px 80px;
}
.hero-copy h1 { margin-bottom: 23px; font-size: 60px; line-height: 60px; letter-spacing: normal; }
.hero-copy > p { max-width: 500px; margin-bottom: 30px; font-size: 18px; line-height: 29.25px; }
.hero-copy small { display: block; max-width: 520px; margin-top: 25px; font-size: 14px; line-height: 20px; }
.hero-assurance { display: block; max-width: 520px; margin-top: 16px; color: rgba(58, 74, 70, .78); font-size: 13px; line-height: 19px; }
.hero-copy .hero-assurance + small { margin-top: 14px; }
.hero-image, .bio-image { position: relative; }
.hero-image::before, .hero-image::after, .bio-image::after {
	position: absolute;
	z-index: -1;
	border-radius: 999px;
	content: '';
}
.hero-image::before { top: -16px; right: -18px; width: 105px; height: 105px; background: rgba(242, 198, 194, .48); }
.hero-image::after { bottom: -20px; left: -20px; width: 75px; height: 75px; background: rgba(134, 166, 157, .3); }
.hero-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 29px; box-shadow: 0 8px 18px rgba(58, 74, 70, .12); }

.quote-strip {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 112px;
	padding: 20px;
	background: var(--sage);
	color: white;
	font-family: var(--serif);
	font-size: 24px;
	line-height: 32px;
	text-align: center;
}
.section-narrow { max-width: 1024px; margin: auto; padding: 96px 32px; }
.section-wide { max-width: 1152px; margin: auto; padding: 96px 32px; }
.section-mid { max-width: 928px; margin: auto; padding: 96px 32px; }
.intro p, .section-analytic p { font-size: 18px; line-height: 29.25px; }
.intro p { max-width: 860px; }
.concerns-title { margin: 25px 0 12px; color: var(--ink); font-family: var(--sans); font-size: 15px; font-weight: 600; line-height: 22px; }
.pills { display: flex; flex-wrap: wrap; gap: 13px; margin: 0; padding: 14px 0 0; list-style: none; }
.pills li { padding: 12px 20px; border: 1px solid rgba(58, 74, 70, .09); border-radius: 14px; background: white; box-shadow: 0 2px 7px rgba(58, 74, 70, .08); }
.soft-green { background: rgba(134, 166, 157, .12); }
.soft-pink { background: rgba(242, 198, 194, .22); }
.soft-yellow { background: rgba(242, 178, 99, .12); }

.listening-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px 72px; }
.listening-grid article { display: grid; grid-template-columns: 49px 1fr; gap: 16px; }
.listening-grid h3 { margin: 2px 0 7px; font-size: 20px; line-height: 28px; }
.listening-grid p { margin: 0; font-size: 16px; }
.icon-box { display: grid; place-items: center; width: 49px; height: 49px; border-radius: 14px; background: rgba(242, 232, 223, .86); color: var(--sage); }

.phases h2 { margin-bottom: 38px; }
.phase-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.phase-grid article { min-height: 278px; padding: 28px; border: 1px solid rgba(58, 74, 70, .08); border-radius: 23px; background: white; box-shadow: 0 2px 5px rgba(58, 74, 70, .05); }
.phase-grid i, .yellow-line { display: block; width: 47px; height: 5px; margin-bottom: 19px; border-radius: 4px; }
.phase-grid .green { background: var(--sage); }
.phase-grid .yellow, .yellow-line { background: var(--yellow); }
.phase-grid .pink { background: var(--pink); }
.phase-grid p { margin: 0; font-size: 16px; }
.section-cta { margin-top: 30px; }

.meeting-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 38px; }
.meeting-copy p { font-size: 16px; }
.detail-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 22px 0 34px; }
.detail-grid > div { display: flex; flex-direction: column; gap: 12px; min-height: 116px; padding: 18px 15px; border: 1px solid rgba(58, 74, 70, .08); border-radius: 15px; background: white; font-size: 14px; line-height: 1.35; }
.detail-grid svg { color: var(--sage); }

.section-analytic { max-width: 896px; margin: auto; padding: 96px 32px; }
.section-analytic h2 { margin-bottom: 20px; }
.section-analytic p { margin: 0; }
.yellow-line { width: 63px; }

.bio { display: grid; grid-template-columns: 1fr 1.35fr; align-items: center; gap: 80px; }
.bio-image img { width: 100%; height: 480px; object-fit: cover; border-radius: 25px; box-shadow: 0 6px 15px rgba(58, 74, 70, .1); }
.bio-image::after { right: -47px; bottom: -18px; width: 112px; height: 112px; background: rgba(242, 178, 99, .32); }
.bio h2 { margin-bottom: 8px; }
.bio strong { display: block; margin-bottom: 24px; color: var(--sage-dark); }
.bio p { font-size: 16px; }
.bio .cta { margin-top: 5px; }

.modalities h2 { margin-bottom: 42px; }
.modality-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.office-card, .online-card { min-height: 450px; overflow: hidden; border-radius: 23px; }
.office-card { border: 1px solid rgba(58, 74, 70, .08); background: #fff; }
.office-images { display: grid; grid-template-columns: 1fr 1fr; height: 190px; }
.office-images img { width: 100%; height: 100%; object-fit: cover; }
.office-images img:first-child { border-right: 3px solid white; }
.office-card > div:last-child { display: flex; flex-direction: column; align-items: flex-start; min-height: 260px; padding: 25px 28px; }
.office-card h3, .online-card h3 { display: flex; align-items: center; gap: 9px; }
.office-card p, .online-card p { font-size: 16px; }
.office-card .cta { margin-top: auto; }
.online-card { display: flex; flex-direction: column; padding: 31px 29px; background: var(--sage); color: white; }
.online-card h3 { color: white; }
.online-card .cta { margin-top: auto; }

.faq-wrap { max-width: 768px; margin: auto; padding: 96px 32px; }
.faq-wrap h2 { margin-bottom: 35px; text-align: center; }
.faq-item { border-bottom: 1px solid rgba(134, 166, 157, .18); }
.faq-item summary {
	display: flex;
	justify-content: space-between;
	gap: 25px;
	width: 100%;
	padding: 21px 0;
	color: var(--sage-dark);
	font-family: var(--serif);
	font-size: 20px;
	font-weight: 500;
	text-align: left;
	cursor: pointer;
	list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary i { display: grid; place-items: center; flex: 0 0 29px; width: 29px; height: 29px; border-radius: 50%; background: rgba(242, 232, 223, .8); font-family: var(--sans); font-size: 20px; font-style: normal; font-weight: 400; }
.faq-item summary i::before { content: '+'; }
.faq-item[open] summary i::before { content: '−'; }
.faq-answer p { margin: 0; padding: 0 0 25px; font-size: 16px; }

.final-cta { max-width: 768px; min-height: 538.5px; margin: auto; padding: 112px 32px; text-align: center; }
.final-cta h2 { margin-bottom: 20px; font-size: 48px; line-height: 48px; }
.final-cta > p { margin-bottom: 33px; }
.final-cta .cta { margin: auto; }
.final-cta small { display: block; margin-top: 22px; }

.site-footer { min-height: 281px; padding: 56px max(32px, calc((100% - 1110px) / 2)) 28px; background: var(--sage); color: rgba(255, 255, 255, .78); }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding-bottom: 39px; }
.brand-inverse { color: rgba(255, 255, 255, .73); }
.footer-grid p { margin-bottom: 5px; font-size: 14px; }
.footer-grid a { font-size: 14px; }
.disclaimer { margin: 0; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .13); font-size: 12px !important; }
.floating-whatsapp { position: fixed; right: 38px; bottom: 31px; z-index: 60; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--sage); color: white; text-decoration: none; box-shadow: 0 7px 18px rgba(58, 74, 70, .25); }

.privacy-page { min-height: 100vh; background: var(--cream); }
.privacy-header, .simple-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 78px; padding: 18px max(24px, calc((100% - 860px) / 2)); border-bottom: 1px solid rgba(134, 166, 157, .22); background: rgba(242, 232, 223, .92); }
.privacy-header > div { display: flex; flex-direction: column; color: var(--sage-dark); text-align: right; }
.privacy-header strong { font-family: var(--serif); font-weight: 600; }
.privacy-header span { font-size: 12px; }
.back-link { font-size: 14px; font-weight: 600; text-decoration: none; }
.privacy-content, .content-article { max-width: 860px; margin: 0 auto; padding: 72px 24px 100px; }
.privacy-content .eyebrow { color: var(--sage-dark); font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.privacy-content h1, .content-article h1 { margin-bottom: 28px; color: var(--sage); font-size: 54px; line-height: 1.05; }
.privacy-content h2, .content-article h2 { margin: 42px 0 12px; font-size: 28px; line-height: 1.2; }
.privacy-content p, .content-article p { font-size: 16px; line-height: 1.75; }
.privacy-content a, .content-article a { color: var(--sage-dark); font-weight: 600; }
.content-page { min-height: calc(100vh - 78px); }

@media (min-width: 801px) {
	.intro { min-height: 561px; }
	.listening-section { min-height: 506px; }
	.phases { min-height: 552px; }
	.meeting-section { min-height: 699px; }
	.section-analytic { min-height: 420px; }
	.bio-section { min-height: 672px; }
	.modalities { min-height: 618px; }
	.faq-section { min-height: 902px; }
}

@media (max-width: 800px) {
	h2 { font-size: 31px; line-height: 1.12; }
	.site-header { height: 70px; }
	.brand img { width: 38px; height: 38px; }
	.brand strong { font-size: 14px; }
	.brand span { font-size: 10px; }
	.cta-compact { width: 54px; height: 48px; padding: 0; font-size: 0; }
	.cta-compact svg { width: 23px; height: 23px; }
	.hero { grid-template-columns: 1fr; gap: 44px; min-height: auto; padding: 48px 20px 64px; }
	.hero-copy h1 { font-size: 43px; line-height: 1.06; }
	.hero-copy h1 br { display: none; }
	.hero-copy > p { font-size: 16px; line-height: 1.65; }
	.hero-image { max-width: 520px; margin: auto; }
	.quote-strip { height: auto; min-height: 105px; font-size: 21px; }
	.section-narrow, .section-wide, .section-mid, .section-analytic, .faq-wrap { padding: 68px 20px; }
	.listening-grid, .meeting-copy, .bio, .modality-grid { grid-template-columns: 1fr; }
	.listening-grid { gap: 29px; }
	.phase-grid { grid-template-columns: 1fr; }
	.phase-grid article { min-height: auto; }
	.detail-grid { grid-template-columns: 1fr 1fr; }
	.bio { gap: 45px; }
	.bio-image img { height: auto; aspect-ratio: 1.15 / 1; object-position: center 38%; }
	.modalities h2 { margin-bottom: 30px; }
	.office-card, .online-card { min-height: auto; }
	.office-card > div:last-child { min-height: 300px; }
	.faq-item summary { font-size: 18px; }
	.final-cta { padding: 78px 20px; }
	.final-cta h2 { font-size: 34px; line-height: 1.12; }
	.footer-grid { grid-template-columns: 1fr; }
	.floating-whatsapp { right: 19px; bottom: 18px; width: 55px; height: 55px; }
	.section-cta { margin-top: 26px; }
	.privacy-header { align-items: flex-start; }
	.privacy-header > div { display: none; }
	.privacy-content { padding-top: 52px; }
	.privacy-content h1, .content-article h1 { font-size: 42px; }
	.privacy-content h2, .content-article h2 { font-size: 25px; }
	.hero-assurance, .hero-copy small { font-size: 12px; }
}

@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}

@media (max-width: 480px) {
	body { font-size: 15px; }
	.hero { padding-top: 38px; }
	.hero-copy h1 { font-size: 38px; }
	.cta { padding: 14px 23px; font-size: 16px; }
	.cta-compact { padding: 0; font-size: 0; }
	.pills { display: grid; }
	.pills li { font-size: 14px; }
	.listening-grid article { grid-template-columns: 45px 1fr; }
	.icon-box { width: 45px; height: 45px; }
	.detail-grid { grid-template-columns: 1fr; }
	.office-images { height: 155px; }
	.online-card { min-height: 300px; }
	.final-cta h2 { font-size: 31px; }
	.footer-grid { gap: 28px; }
	.simple-header .brand { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; }
}
