/*
Theme Name: Na Ponta da Língua
Description: Child block theme for Na Ponta da Língua — Centro de Estudo.
Template: twentytwentyfive
Version: 0.1.0
Requires at least: 6.7
Requires PHP: 7.2
Text Domain: na-ponta-da-lingua
License: GPL-2.0-or-later
*/

:root {
	--npl-paper: #f8f6f1;
	--npl-white: #fff;
	--npl-ink: #18343c;
	--npl-teal: #256b70;
	--npl-deep-teal: #164d53;
	--npl-mint: #d9e9df;
	--npl-coral: #e8a883;
	--npl-border: #d9e3df;
	--npl-wide: 1200px;
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--npl-paper);
	color: var(--npl-ink);
}

.wp-site-blocks {
	min-height: 100vh;
	overflow: hidden;
}

.npl-site-header,
.npl-site-footer {
	max-width: none !important;
	width: 100%;
}

.npl-site-header {
	background: var(--npl-paper);
	border-bottom: 1px solid rgba(24, 52, 60, .08);
	margin: 0;
	position: relative;
	z-index: 20;
}

.npl-site-header__inner {
	gap: 28px;
	margin: 0 auto;
	max-width: var(--npl-wide);
	min-height: 98px;
	padding: 16px 24px;
}

.npl-brand {
	margin: 0 !important;
}

.npl-brand .wp-block-site-title,
.npl-site-footer .wp-block-site-title {
	font-size: clamp(1.25rem, 1.8vw, 1.58rem);
	font-weight: 800;
	letter-spacing: -.055em;
	line-height: 1.12;
	margin: 0;
}

.npl-brand .wp-block-site-title a,
.npl-site-footer .wp-block-site-title a {
	color: var(--npl-ink);
	text-decoration: none;
}

.npl-brand .wp-block-site-tagline,
.npl-site-footer .wp-block-site-tagline {
	color: var(--npl-teal);
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .16em;
	line-height: 1.4;
	margin: 4px 0 0;
	text-transform: uppercase;
}

.npl-site-header .wp-block-navigation {
	font-size: .92rem;
	font-weight: 700;
}

.npl-site-header .wp-block-navigation a {
	color: var(--npl-ink);
	text-decoration: none;
}

.npl-site-header .wp-block-navigation a:hover,
.npl-site-header .wp-block-navigation .current-menu-item > a {
	color: var(--npl-teal);
}

.npl-main,
.npl-main > .wp-block-post-content,
.npl-main > .wp-block-post-content > :first-child {
	margin-block-start: 0;
}

.npl-hero {
	background: radial-gradient(circle at 90% 10%, #eff7ed 0, transparent 34%), linear-gradient(140deg, #fcfaf5 0%, #f1f2e9 100%);
	padding: clamp(52px, 7vw, 112px) 24px clamp(64px, 8vw, 120px);
}

.npl-hero__grid {
	gap: clamp(40px, 7vw, 110px);
	margin: 0 auto;
	max-width: var(--npl-wide);
}

.npl-eyebrow {
	color: var(--npl-teal);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .18em;
	margin-bottom: 22px;
	text-transform: uppercase;
}

.npl-hero__title {
	font-size: clamp(3.2rem, 5.25vw, 5.8rem);
	letter-spacing: -.065em;
	line-height: 1.05;
	margin: 0;
}

.npl-hero__title em {
	color: var(--npl-teal);
	font-style: normal;
}

.npl-hero__lead {
	font-size: clamp(1.06rem, 1.3vw, 1.23rem);
	line-height: 1.7;
	margin-top: 29px;
	max-width: 590px;
}

.npl-hero__actions {
	gap: 12px;
	margin-top: 35px;
}

.wp-block-button__link {
	box-shadow: none;
	font-size: .92rem;
	font-weight: 800;
	padding: 15px 26px;
	transition: background .2s ease, color .2s ease, transform .2s ease;
}

.wp-block-button__link:hover {
	background: var(--npl-deep-teal);
	transform: translateY(-2px);
}

.wp-block-button.is-style-outline .wp-block-button__link {
	border-color: var(--npl-teal);
	color: var(--npl-teal);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--npl-teal);
	color: #fff;
}

.npl-hero-card {
	background: var(--npl-deep-teal);
	border-radius: 34px;
	box-shadow: 0 32px 68px rgba(24, 52, 60, .17);
	color: #fff;
	margin: 0 auto;
	max-width: 460px;
	min-height: 490px;
	overflow: hidden;
	padding: clamp(32px, 4.5vw, 58px);
	position: relative;
	transform: rotate(3deg);
}

.npl-hero-card::before,
.npl-hero-card::after {
	border: 2px solid rgba(255, 255, 255, .16);
	border-radius: 50%;
	content: "";
	pointer-events: none;
	position: absolute;
}

.npl-hero-card::before {
	height: 320px;
	right: -156px;
	top: -128px;
	width: 320px;
}

.npl-hero-card::after {
	bottom: -195px;
	height: 370px;
	left: -170px;
	width: 370px;
}

.npl-hero-card > * {
	position: relative;
	z-index: 1;
}

.npl-hero-card__label {
	color: var(--npl-coral);
	font-size: .77rem;
	font-weight: 800;
	letter-spacing: .18em;
	margin: 0 0 82px;
	text-transform: uppercase;
}

.npl-hero-card h2 {
	color: #fff;
	font-size: clamp(2.2rem, 3vw, 3.25rem);
	letter-spacing: -.055em;
	margin-bottom: 22px;
}

.npl-hero-card > p:not(.npl-hero-card__label) {
	color: #d7e8e1;
	font-size: 1.04rem;
}

.npl-hero-card__tags {
	gap: 8px;
	margin-top: 34px;
}

.npl-hero-card__tags p {
	border: 1px solid rgba(255, 255, 255, .38);
	border-radius: 99px;
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	margin: 0;
	padding: 8px 12px;
}

.npl-values {
	background: var(--npl-mint);
	margin: 0;
	padding: 42px 24px;
}

.npl-values__grid {
	gap: clamp(26px, 4vw, 60px);
	margin: 0 auto;
	max-width: var(--npl-wide);
}

.npl-values__grid > .wp-block-column {
	border-left: 2px solid rgba(37, 107, 112, .25);
	padding-left: 24px;
}

.npl-values h3 {
	font-size: 1.15rem;
	margin: 0 0 8px;
}

.npl-values p {
	font-size: .94rem;
	margin: 0;
}

.npl-section {
	max-width: var(--npl-wide);
	padding: clamp(82px, 9vw, 136px) 24px;
}

.npl-section-title {
	font-size: clamp(2.5rem, 4.3vw, 4.5rem);
	letter-spacing: -.055em;
	margin-bottom: 23px;
	max-width: 850px;
}

.npl-section-intro {
	font-size: 1.08rem;
	max-width: 700px;
}

.npl-card-grid,
.npl-page-cards {
	gap: 20px;
	margin-top: 50px;
}

.npl-card {
	background: #fff;
	border: 1px solid var(--npl-border);
	border-radius: 22px;
	box-shadow: 0 16px 38px rgba(24, 52, 60, .04);
	padding: 34px;
}

.npl-card__number {
	color: var(--npl-teal);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .14em;
	margin-bottom: 52px;
}

.npl-card h3 {
	font-size: 1.43rem;
	letter-spacing: -.035em;
	margin-bottom: 14px;
}

.npl-card p:last-child {
	font-size: .96rem;
	margin-bottom: 0;
}

.npl-text-link {
	font-size: .96rem;
	font-weight: 800;
	margin-top: 35px;
}

.npl-text-link a {
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}

.npl-approach {
	background: #eaf1e8;
	margin: 0;
	padding: clamp(82px, 9vw, 136px) 24px;
}

.npl-approach__grid {
	gap: clamp(45px, 7vw, 115px);
	margin: 0 auto;
	max-width: var(--npl-wide);
}

.npl-approach__grid > .wp-block-column:first-child > p:not(.npl-eyebrow):not(.npl-text-link) {
	font-size: 1.08rem;
	max-width: 600px;
}

.npl-quote-card {
	background: var(--npl-coral);
	border-radius: 32px;
	margin: 0 auto;
	max-width: 480px;
	padding: clamp(35px, 5vw, 65px);
	transform: rotate(-3deg);
}

.npl-quote-card__mark {
	color: var(--npl-deep-teal);
	font-size: 6rem;
	font-weight: 800;
	line-height: .8;
	margin: 0 0 15px;
}

.npl-quote-card h3 {
	font-size: clamp(1.9rem, 2.5vw, 2.7rem);
	letter-spacing: -.05em;
}

.npl-quote-card p:last-child {
	margin-bottom: 0;
}

.npl-end {
	text-align: center;
}

.npl-end .npl-section-title,
.npl-end > p {
	margin-left: auto;
	margin-right: auto;
}

.npl-end > p:not(.npl-eyebrow) {
	max-width: 620px;
}

.npl-end .wp-block-buttons {
	justify-content: center;
	margin-top: 30px;
}

.npl-inner-page {
	margin: 0 auto;
	max-width: var(--npl-wide);
	min-height: 60vh;
	padding: clamp(72px, 9vw, 130px) 24px;
}

.npl-page-title {
	font-size: clamp(3rem, 5vw, 5rem);
	letter-spacing: -.06em;
	margin-bottom: 30px;
}

.npl-inner-page .wp-block-post-content {
	font-size: 1.04rem;
}

.npl-inner-page .wp-block-post-content h2 {
	font-size: clamp(1.9rem, 2.8vw, 2.8rem);
	letter-spacing: -.04em;
	margin-top: 72px;
}

.npl-page-lead {
	color: var(--npl-teal);
	font-size: clamp(1.3rem, 2vw, 1.75rem);
	font-weight: 600;
	line-height: 1.45;
}

.npl-page-cards {
	margin-left: min(-170px, calc((760px - 100vw) / 2 + 24px));
	margin-right: min(-170px, calc((760px - 100vw) / 2 + 24px));
}

.npl-page-cards .npl-card {
	padding: 26px;
}

.npl-about-highlight {
	background: var(--npl-mint);
	border-radius: 22px;
	margin-top: 54px;
	padding: 35px;
}

.npl-about-highlight h3 {
	font-size: 1.5rem;
	margin-top: 0;
}

.npl-site-footer {
	background: var(--npl-ink);
	color: #fff;
	margin: 0;
	padding: 68px 24px;
}

.npl-site-footer__inner {
	gap: 50px;
	margin: 0 auto;
	max-width: var(--npl-wide);
}

.npl-site-footer .wp-block-site-title a,
.npl-site-footer .wp-block-site-tagline {
	color: #fff;
}

.npl-site-footer .wp-block-column:last-child {
	align-self: end;
	color: #d2e2df;
	max-width: 300px;
}

.npl-site-footer .wp-block-column:last-child p {
	margin: 0 0 15px;
}

.npl-site-footer .wp-block-column:last-child a {
	color: #fff;
}

.npl-contact-grid {
	gap: 45px;
	margin-top: 55px;
}

.npl-contact-grid .wp-block-column {
	background: #fff;
	border: 1px solid var(--npl-border);
	border-radius: 22px;
	padding: 32px;
}

.npl-contact-grid h2 {
	font-size: 1.5rem !important;
	margin: 0 0 20px !important;
}

.npl-contact-grid p {
	margin: 0;
}

.npl-contact-grid .npl-text-link {
	margin-top: 20px;
}

.npl-not-found .wp-block-buttons {
	margin-top: 30px;
}

@media (max-width: 850px) {
	.npl-hero__grid,
	.npl-approach__grid {
		gap: 60px;
	}

	.npl-hero-card {
		min-height: 420px;
		transform: rotate(2deg);
	}

	.npl-hero-card__label {
		margin-bottom: 50px;
	}

	.npl-card-grid,
	.npl-page-cards {
		flex-wrap: wrap !important;
	}

	.npl-card-grid > .wp-block-column,
	.npl-page-cards > .wp-block-column {
		flex-basis: calc(50% - 10px) !important;
	}
}

@media (max-width: 600px) {
	.npl-site-header__inner {
		min-height: 78px;
		padding: 12px 20px;
	}

	.npl-brand .wp-block-site-title {
		font-size: 1.17rem;
	}

	.npl-brand .wp-block-site-tagline {
		font-size: .63rem;
	}

	.npl-hero {
		padding: 52px 20px 70px;
	}

	.npl-hero__title {
		font-size: clamp(2.85rem, 10vw, 4rem);
	}

	.npl-hero-card {
		min-height: 390px;
		transform: none;
	}

	.npl-values {
		padding: 40px 20px;
	}

	.npl-values__grid {
		gap: 25px;
	}

	.npl-section,
	.npl-approach,
	.npl-inner-page {
		padding-left: 20px;
		padding-right: 20px;
	}

	.npl-card-grid > .wp-block-column,
	.npl-page-cards > .wp-block-column {
		flex-basis: 100% !important;
	}

	.npl-card__number {
		margin-bottom: 24px;
	}

	.npl-quote-card {
		transform: none;
	}

	.npl-site-footer {
		padding: 55px 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.wp-block-button__link {
		transition: none;
	}
}
