/*
Theme Name: Laureate Strategies
Theme URI: https://laureatestrategies.com/
Author: Laureate Strategies
Description: Custom block theme for Laureate Strategies — Ed Tech partner for public, charter and private schools. Includes home, services, why-us and contact page layouts, a styled blog, and a built-in contact form that emails and stores every submission.
Version: 1.1.0
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: laureate
*/

:root {
	--ls-radius: 14px;
	--ls-shadow: 0 1px 2px rgba(29, 38, 43, .06), 0 8px 28px rgba(29, 38, 43, .08);
	--ls-section: clamp(64px, 9vw, 112px);
	--ls-bronze: var(--wp--preset--color--bronze);
	--ls-bronze-dark: var(--wp--preset--color--bronze-dark);
	--ls-bronze-light: var(--wp--preset--color--bronze-light);
	--ls-tint: var(--wp--preset--color--bronze-tint);
	--ls-ink: var(--wp--preset--color--ink);
	--ls-muted: var(--wp--preset--color--muted);
	--ls-line: var(--wp--preset--color--line);
}

html { scroll-behavior: smooth; }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 3px solid var(--ls-bronze-light); outline-offset: 2px; border-radius: 4px; }

/* Remove block-gap seams between full-width sections */
.wp-site-blocks > *,
.wp-site-blocks > main,
.wp-block-post-content > .alignfull,
main > .alignfull { margin-block-start: 0 !important; }
.wp-block-post-content > .alignfull:last-child { margin-block-end: 0; }

/* ---------- Shared text styles ---------- */
.eyebrow {
	font-size: .8rem !important;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--ls-bronze);
	margin-bottom: 0;
}
.eyebrow + * { margin-block-start: .75rem !important; }
.lead { font-size: 1.2rem; color: var(--ls-muted); max-width: 64ch; }
.section-head { max-width: 760px; margin-bottom: 48px !important; }
.section-head.is-centered { margin-left: auto !important; margin-right: auto !important; text-align: center; }

/* Constrained layouts center any child narrower than the 1160px column.
   Keep narrow headings/intros aligned to the column's left edge instead. */
:is(.section, .page-hero, .hero) > :is(.section-head:not(.is-centered), .lead, h1, .wp-block-post-title) {
	margin-left: max(0px, calc((100% - 1160px) / 2)) !important;
	margin-right: auto !important;
}
.section-head.is-centered .lead { margin-left: auto; margin-right: auto; }

/* ---------- Sections ---------- */
.section { padding-top: var(--ls-section); padding-bottom: var(--ls-section); }
.section--cream { background: var(--wp--preset--color--cream); }
.section--ink { background: var(--ls-ink); color: #c9d3d7; }
.section--ink h2, .section--ink h3 { color: #fff; }
.section--ink .lead { color: #b9c4c9; }

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { transition: background .2s, color .2s, border-color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 2px solid var(--ls-bronze); color: var(--ls-bronze); background: transparent;
	padding: 12px 24px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--ls-bronze); color: #fff; }
.wp-block-button.is-style-ghost > .wp-block-button__link {
	border: 2px solid #fff; color: #fff; background: transparent; padding: 12px 24px;
}
.wp-block-button.is-style-ghost > .wp-block-button__link:hover { background: #fff; color: var(--ls-ink); }
.wp-block-button.is-style-light > .wp-block-button__link { background: #fff; color: var(--ls-bronze-dark); }
.wp-block-button.is-style-light > .wp-block-button__link:hover { background: var(--ls-ink); color: #fff; }

/* ---------- Header ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
@media (max-width: 600px) { .admin-bar header.wp-block-template-part { top: 0; } }
.site-header { background: #fff; border-bottom: 1px solid var(--ls-line); }
.site-header .nav { min-height: 84px; }
.brand { display: block; line-height: 0; }
.brand img { height: 58px; width: auto; }
.site-header .wp-block-navigation a { color: var(--wp--preset--color--slate); text-decoration: none; padding: 8px 6px; }
.site-header .wp-block-navigation a:hover,
.site-header .wp-block-navigation .current-menu-item > a { color: var(--ls-bronze); }
.header-cta .wp-block-button__link { padding: 11px 20px; }
@media (max-width: 600px) {
	.site-header .nav { min-height: 72px; }
	.brand img { height: 48px; }
	.header-cta { display: none !important; }
}
.wp-block-navigation__responsive-container.is-menu-open { padding: 24px 28px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 40px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: 6px !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.35rem; width: 100%; border-bottom: 1px solid var(--ls-line); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a { padding: 12px 0 !important; width: 100%; }

/* ---------- Hero ---------- */
.hero {
	position: relative;
	isolation: isolate;
	color: #e9eef0;
	background: var(--ls-ink) url("assets/hero.jpg") center 35% / cover no-repeat;
	padding-top: clamp(64px, 10vw, 120px);
	padding-bottom: clamp(64px, 10vw, 120px);
}
.hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(100deg, rgba(20, 27, 31, .94) 0%, rgba(20, 27, 31, .82) 48%, rgba(60, 34, 16, .55) 100%);
}
.hero h1 { color: #fff; }
.hero .eyebrow { color: var(--ls-bronze-light); }
.hero .lead { color: #cfd8dc; }
.hero .wp-block-columns { gap: 56px; }

.page-hero {
	position: relative; overflow: hidden;
	background: var(--ls-ink); color: #cfd8dc;
	padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px);
}
.page-hero::after {
	content: ""; position: absolute; right: -80px; top: 50%; transform: translateY(-50%);
	width: 380px; height: 380px; opacity: .07; pointer-events: none;
	background: url("assets/laurel.png") center / contain no-repeat;
}
.page-hero h1, .page-hero .wp-block-post-title { color: #fff; max-width: 22ch; }
.page-hero .eyebrow { color: var(--ls-bronze-light); }
.page-hero .lead, .page-hero .wp-block-post-date, .page-hero .wp-block-post-terms { color: #cfd8dc; }
.page-hero .wp-block-post-terms a { color: var(--ls-bronze-light); }

/* ---------- Cards ---------- */
.feature {
	background: #fff;
	border: 1px solid var(--ls-line);
	border-radius: var(--ls-radius);
	padding: 30px;
	transition: border-color .2s, box-shadow .2s, transform .2s;
}
.feature:hover { border-color: var(--ls-bronze-light); box-shadow: var(--ls-shadow); transform: translateY(-2px); }
.feature p { color: var(--ls-muted); margin-bottom: 0; }
.feature h3 { margin-block-start: 18px !important; margin-bottom: 0; }
.feature h3 + p { margin-block-start: 10px !important; }
.icon {
	width: 52px; height: 52px; border-radius: 12px;
	display: grid; place-items: center;
	background: var(--ls-tint); color: var(--ls-bronze);
}
.icon svg { width: 26px; height: 26px; }
.after-grid { margin-block-start: 36px !important; }

/* ---------- Panel + checklist ---------- */
.panel {
	position: relative; overflow: hidden;
	background: var(--ls-ink); color: #d6dde0;
	border-radius: 20px; padding: 44px;
}
.panel h3 { color: #fff; font-size: 1.5rem; }
.panel::after {
	content: ""; position: absolute; right: -60px; bottom: -60px; width: 240px; height: 240px; opacity: .08; pointer-events: none;
	background: url("assets/laurel.png") center / contain no-repeat;
}
@media (max-width: 600px) { .panel { padding: 30px 24px; } }
.checklist { list-style: none; padding-left: 0; display: grid; gap: 12px; }
.checklist li { position: relative; padding-left: 32px; }
.checklist li::before {
	content: ""; position: absolute; left: 0; top: 5px;
	width: 20px; height: 20px; border-radius: 50%;
	background: var(--ls-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239a5a2c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.panel .checklist li::before { background-color: rgba(201, 138, 85, .2); }

/* ---------- Stats ---------- */
.stat { border-top: 2px solid var(--ls-bronze); padding-top: 18px; }
.stat > * { margin: 0 !important; }
.stat .stat-num { font-family: var(--wp--preset--font-family--fraunces); font-size: 2.1rem; font-weight: 600; line-height: 1.1; color: #fff; }
.stat .stat-num + p { margin-top: 6px !important; }

/* ---------- Services ---------- */
.services-toc { position: sticky; top: 120px; }
.services-toc ul { list-style: none; padding: 0; margin: 0; border-left: 2px solid var(--ls-line); }
.services-toc a { display: block; padding: 7px 0 7px 16px; margin-left: -2px; border-left: 2px solid transparent; text-decoration: none; color: var(--ls-muted); font-size: .95rem; }
.services-toc a:hover { color: var(--ls-bronze); border-left-color: var(--ls-bronze); }
@media (max-width: 781px) { .services-toc-col { display: none; } }

.service {
	display: grid; grid-template-columns: 64px 1fr; gap: 22px;
	padding: 32px 0; border-top: 1px solid var(--ls-line);
	scroll-margin-top: 110px;
}
.service > *, .service-body > :first-child { margin-block-start: 0 !important; }
.service:last-child { border-bottom: 1px solid var(--ls-line); }
.service h3 { margin-bottom: 8px; }
.service-body p, .service-body li { color: var(--ls-muted); }
.service-body ul { margin: 0; padding-left: 20px; columns: 2; column-gap: 40px; }
.service-body li { margin-bottom: 6px; break-inside: avoid; }
@media (max-width: 640px) { .service { grid-template-columns: 1fr; gap: 12px; } .service-body ul { columns: 1; } }

/* ---------- FAQ (Details block) ---------- */
.faq { max-width: 860px; margin-left: auto !important; margin-right: auto !important; }
.faq .wp-block-details {
	background: #fff; border: 1px solid var(--ls-line); border-radius: var(--ls-radius);
	margin-block-start: 14px; padding: 0;
}
.faq summary {
	list-style: none; cursor: pointer; position: relative;
	padding: 22px 60px 22px 26px;
	font-family: var(--wp--preset--font-family--fraunces); font-size: 1.15rem; font-weight: 600; color: var(--ls-ink);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
	content: "+"; position: absolute; right: 24px; top: 50%; transform: translateY(-50%);
	font-family: var(--wp--preset--font-family--figtree); font-size: 1.6rem; font-weight: 400; color: var(--ls-bronze);
}
.faq details[open] summary::after { content: "\2212"; }
.faq details[open] { border-color: var(--ls-bronze-light); }
.faq .wp-block-details > p { padding: 0 26px 24px; margin: 0; color: var(--ls-muted); }

/* ---------- Process steps ---------- */
.steps { counter-reset: step; }
.step { background: #fff; border: 1px solid var(--ls-line); border-radius: var(--ls-radius); padding: 30px; }
.step::before {
	counter-increment: step; content: "0" counter(step);
	display: block; margin-bottom: 10px;
	font-family: var(--wp--preset--font-family--fraunces); font-size: 2.2rem; font-weight: 600; color: var(--ls-bronze-light);
}
.step > h3 { margin-block-start: 0 !important; }
.step p { color: var(--ls-muted); margin-bottom: 0; }

/* ---------- CTA band ---------- */
.cta-band {
	background: linear-gradient(120deg, var(--ls-bronze-dark), var(--ls-bronze));
	color: #f7ebe0; border-radius: 22px; padding: clamp(36px, 6vw, 64px) !important;
	gap: 32px;
}
.cta-band h2 { color: #fff; margin: 0 0 8px; }
.cta-band p { margin: 0; max-width: 56ch; }
.cta-band > .wp-block-group > * { margin-block-start: 0; }

/* ---------- Contact ---------- */
.contact-list { display: grid; gap: 18px; margin-top: 28px; }
.contact-item { display: flex; gap: 14px; align-items: center; }
.contact-item a { font-weight: 600; font-size: 1.1rem; text-decoration: none; }
.contact-item small { display: block; color: var(--ls-muted); font-size: .85rem; }

/* ---------- Form ---------- */
.form-card {
	background: #fff; color: var(--wp--preset--color--slate);
	border: 1px solid var(--ls-line); border-radius: var(--ls-radius);
	padding: 30px; box-shadow: var(--ls-shadow);
}
.form-card h2 { font-size: 1.6rem; margin: 0 0 4px; }
.form-card .sub { color: var(--ls-muted); font-size: .95rem; margin: 0 0 20px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 520px) { .form-grid { grid-template-columns: 1fr; } }
.form-card label { display: block; font-size: .88rem; font-weight: 600; color: var(--ls-ink); margin-bottom: 6px; }
.form-card input, .form-card textarea, .form-card select {
	width: 100%; box-sizing: border-box;
	font: inherit; font-size: 1rem;
	padding: 12px 14px;
	border: 1px solid #cfc6bc; border-radius: 10px;
	background: #fff; color: var(--ls-ink);
}
.form-card input:focus, .form-card textarea:focus, .form-card select:focus { outline: none; border-color: var(--ls-bronze); box-shadow: 0 0 0 3px rgba(154, 90, 44, .18); }
.form-card textarea { min-height: 110px; resize: vertical; }
.form-card .check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: .9rem; color: var(--ls-muted); }
.form-card .check input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--ls-bronze); flex: none; }
.form-card button { width: 100%; margin-top: 16px; cursor: pointer; border: 0; }
.form-card .fine { font-size: .82rem; color: var(--ls-muted); margin: 12px 0 0; }
.form-status { margin: 0 0 16px; padding: 12px 14px; border-radius: 10px; font-size: .95rem; }
.form-status.ok { background: #e8f3ea; color: #1f5a2c; }
.form-status.err { background: #fbeaea; color: #8a1f1f; }
.ls-hp { position: absolute !important; left: -9999px !important; }

/* ---------- Blog ---------- */
.blog-grid .wp-block-post {
	background: #fff; border: 1px solid var(--ls-line); border-radius: var(--ls-radius);
	overflow: hidden; display: flex; flex-direction: column;
	transition: box-shadow .2s, transform .2s, border-color .2s;
}
.blog-grid .wp-block-post:hover { box-shadow: var(--ls-shadow); transform: translateY(-2px); border-color: var(--ls-bronze-light); }
.blog-grid .wp-block-post > * { margin: 0; padding-left: 26px; padding-right: 26px; }
.blog-grid .wp-block-post-featured-image { padding: 0; margin: 0 0 22px !important; }
.blog-grid .wp-block-post > :first-child:not(.wp-block-post-featured-image) { padding-top: 26px; }
.blog-grid .wp-block-post > :last-child { padding-bottom: 26px; }
.blog-grid .wp-block-post-title { font-size: 1.3rem; margin-top: 8px !important; }
.blog-grid .wp-block-post-title a { color: var(--ls-ink); text-decoration: none; }
.blog-grid .wp-block-post-title a:hover { color: var(--ls-bronze); }
.blog-grid .wp-block-post-date { font-size: .85rem; color: var(--ls-muted); }
.blog-grid .wp-block-post-excerpt { color: var(--ls-muted); margin-top: 10px !important; }
.blog-grid .wp-block-post-excerpt__more-link { font-weight: 600; text-decoration: none; }
.wp-block-query-pagination { margin-top: 48px !important; gap: 12px; }

.post-body { padding-top: 56px; padding-bottom: 32px; }
.post-body .wp-block-post-featured-image img { border-radius: var(--ls-radius); }
.post-body .wp-block-post-content { font-size: 1.1rem; line-height: 1.75; }
.post-body .wp-block-post-content h2 { font-size: 1.8rem; margin-top: 2em; }
.post-body .wp-block-post-content h3 { margin-top: 1.6em; }
.post-body .wp-block-post-content blockquote { border-left: 3px solid var(--ls-bronze); padding-left: 20px; margin-left: 0; font-style: italic; }

/* ---------- Footer ---------- */
.site-footer { background: #141b1f; color: #a9b4b9; font-size: .95rem; padding-top: 64px; padding-bottom: 28px; }
.site-footer h4 { color: #fff; font-family: var(--wp--preset--font-family--figtree); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 16px; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.site-footer a { color: #d9e0e3; text-decoration: none; }
.site-footer a:hover { color: var(--ls-bronze-light); }
.footer-logo { background: #fff; border-radius: 12px; padding: 10px 14px; display: inline-block; line-height: 0; }
.footer-logo img { height: 52px; width: auto; }
.footer-bottom { border-top: 1px solid #28343a; margin-top: 48px !important; padding-top: 22px; font-size: .85rem; }
.footer-bottom p { margin: 0; }

/* ---------- AI enablement ---------- */
.icon--lg { width: 72px; height: 72px; border-radius: 18px; flex: none; }
.icon--lg svg { width: 34px; height: 34px; }

.ai-band { background: var(--ls-tint); border-bottom: 1px solid var(--ls-line); padding-top: 44px; padding-bottom: 44px; }
.ai-band-copy { gap: 24px; align-items: center; }
.ai-band-copy .icon--lg { background: var(--ls-bronze); color: #fff; }
.ai-band-copy > .wp-block-group > * { margin-block-start: 0; }
.ai-band-copy > .wp-block-group > * + * { margin-block-start: 8px !important; }
.ai-band h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.ai-band p:not(.eyebrow) { color: var(--ls-muted); margin-bottom: 0; }
.ai-band-cta { justify-content: flex-end; }
@media (max-width: 781px) {
	.ai-band-cta { justify-content: flex-start; }
	.ai-band-copy { flex-wrap: wrap !important; }
}

.stat-card {
	display: flex; gap: 26px; align-items: center;
	background: #fff; border: 1px solid var(--ls-line); border-radius: var(--ls-radius); padding: 28px;
}
.stat-card > * { margin: 0 !important; }
.stat-card p:not(.stat-ring) { flex: 1 1 0; min-width: 0; font-size: 1.1rem; color: var(--wp--preset--color--slate); }
.stat-card strong { color: var(--ls-ink); }
.stat-ring {
	flex: none; width: 118px; height: 118px; border-radius: 50%;
	display: grid; place-items: center;
	border: 3px solid var(--ls-bronze); background: var(--ls-tint);
	font-family: var(--wp--preset--font-family--fraunces); font-size: 2.3rem; font-weight: 600; color: var(--ls-ink);
}
@media (max-width: 480px) { .stat-card { flex-direction: column; align-items: flex-start; } }
.sources { font-size: .82rem !important; color: var(--ls-muted); margin-top: 20px !important; }

.video-card {
	display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center;
	background: #fff; border: 2px solid var(--ls-bronze-light); border-radius: 20px; padding: 32px 36px;
	box-shadow: var(--ls-shadow);
}
.video-card > *, .video-card-body > :first-child { margin-block-start: 0 !important; }
.video-card h3 { font-size: 1.5rem; margin-bottom: 6px; }
.video-card-body p:not(.eyebrow) { color: var(--ls-muted); margin: 0; }
@media (max-width: 781px) { .video-card { grid-template-columns: 1fr; padding: 28px; } }

.dimensions { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px !important; }
.dimensions li {
	background: #fff; border: 1px solid var(--ls-line); border-radius: 999px;
	padding: 8px 16px; font-weight: 600; font-size: .95rem; color: var(--ls-ink);
}
.dimensions li::before { content: "✓"; color: var(--ls-bronze); margin-right: 8px; }

.price-card {
	background: #fff; border: 1px solid var(--ls-bronze-light); border-radius: 20px;
	padding: 36px; box-shadow: var(--ls-shadow);
}
.price-card > :first-child { margin-block-start: 0; }
.price { font-family: var(--wp--preset--font-family--fraunces); font-size: 3.2rem !important; font-weight: 600; line-height: 1; color: var(--ls-ink); margin-bottom: 0; }
.price-note { color: var(--ls-muted); font-size: .95rem; margin-top: 8px !important; }
.price-card .checklist { margin: 22px 0 26px; }
.price-card .wp-block-button, .price-card .wp-block-button__link { width: 100%; text-align: center; }

.roadmap-card {
	background: rgba(255, 255, 255, .04); border: 1px solid #33434b; border-radius: var(--ls-radius); padding: 34px;
}
.roadmap-card > :first-child { margin-block-start: 0; }
.roadmap-card .phase { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.1rem; color: var(--ls-bronze-light); margin: 0; }
.roadmap-card h3 { font-size: 1.5rem; margin-block-start: 6px !important; }
.roadmap-card p:not(.phase) { color: #c9d3d7; }
.section--ink .checklist li::before, .hero .checklist li::before { background-color: rgba(201, 138, 85, .22); }

.platform-card .best-for { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--ls-bronze); margin: 0; }
.platform-card h3 { font-size: 1.6rem; margin-block-start: 8px !important; }
.platform-card .checklist { margin-top: 18px; }
.platform-card .checklist li { color: var(--wp--preset--color--slate); }

.checklist--light li { color: #e2e8ea; }
.hero--ai .checklist { margin-top: 28px; }

.site-header--landing .landing-phone { font-weight: 600; color: var(--wp--preset--color--slate); text-decoration: none; white-space: nowrap; }
.site-header--landing .landing-phone:hover { color: var(--ls-bronze); }
.site-footer--landing { padding-top: 8px; }
.site-footer--landing .footer-bottom { border-top: 0; margin-top: 0 !important; }

@media (max-width: 1080px) { .site-header:not(.site-header--landing) .header-cta { display: none !important; } }
@media (max-width: 900px) { .site-header .wp-block-navigation { gap: 14px; } }

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