/*
Theme Name: Lakemont Group
Description: A custom block theme scaffolded by Studio Code.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lakemont
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* WordPress inserts margin-block-start: var(--wp--style--block-gap) between the
   template's top-level sections (header part, main, footer part) — a gap that
   exists even when no markup asks for it. Zero it so sections butt edge-to-edge
   and own their vertical rhythm via padding; this does not affect block gaps
   inside nested layouts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* === typography === */
.site-footer__title {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: 1.375rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 600;
}

.site-header__logo img {
	width: 180px;
	height: auto;
	filter: brightness(0) invert(1);
}

.site-footer__logo img {
	width: 220px;
	height: auto;
	filter: brightness(0) invert(1);
}

.has-drop-cap:not(:focus)::first-letter {
	font-family: var(--wp--preset--font-family--vollkorn);
}
/* === header === */
.site-header__nav .wp-block-navigation-item > a {
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	opacity: 0.92;
}

.site-header__nav .wp-block-navigation-item > a:hover {
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 6px;
}

/* Multi-word nav labels break onto two centered lines on the inline desktop
   bar (the literal \n in the label renders as a forced break here). The
   mobile overlay list is left untouched so items just wrap normally. */
.site-header__nav:not(.is-menu-open) .wp-block-navigation-item > a {
	white-space: pre-line;
	text-align: center;
	line-height: 1.4;
}

.site-header__nav:not(.is-menu-open) .wp-block-navigation__container {
	align-items: center;
}
/* === hero === */
.hero-cover .wp-block-cover__inner-container {
	max-width: 720px;
	margin-inline: 0;
	gap: 1.25rem;
}

.wp-block-heading a {
	color: inherit;
	text-decoration: none;
}

.wp-block-heading a:hover {
	text-decoration: underline;
	text-underline-offset: 6px;
}

.hero-cover .wp-block-cover__image-background {
	filter: grayscale(55%) saturate(70%) contrast(1.05);
}

.hero-eyebrow {
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	opacity: 0.82;
}

.eyebrow {
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 600;
	margin-bottom: 0.5rem;
}

.hero-cta .wp-element-button:hover {
	background-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}

.wp-block-button.is-style-outline .wp-element-button:hover {
	background-color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base);
}

/* === contact form === */
.contact-form .grunion-field-label {
	font-size: 0.875rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	font-weight: 600;
	margin-bottom: 8px;
}

.contact-form .grunion-label-required {
	color: var(--wp--preset--color--accent);
	text-transform: none;
	font-weight: 400;
	letter-spacing: normal;
}

.contact-form input.grunion-field,
.contact-form textarea.grunion-field {
	border: 1px solid var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--base);
	font-size: 1rem;
	padding: 14px 16px;
}

.contact-form input.grunion-field:focus,
.contact-form textarea.grunion-field:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent);
}
/* === sections === */
.focus-card__num {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-size: 2rem;
	font-weight: 600;
	margin-bottom: 0.25rem;
}

#corporate-strategy,
#urban-strategies,
#economic-analysis,
#capital-markets,
#speaking-training {
	scroll-margin-top: 140px;
}

.client-quote {
	border-left: 2px solid var(--wp--preset--color--accent);
	padding-left: 1.25rem;
	margin: 0;
}



.client-quote p {
	font-family: var(--wp--preset--font-family--vollkorn);
	font-style: italic;
	font-size: 1.25rem;
}

.client-quote cite {
	opacity: 0.75;
	font-style: normal;
	font-size: 0.9rem;
}

/* === photo bands === */
.industries-photo-band img,
.practice-photo-band img,
.geo-photo-band img {
	width: 100%;
	height: 60vh;
	max-height: 560px;
	object-fit: cover;
	object-position: 50% 55%;
	filter: grayscale(50%) saturate(0.6) contrast(1.05);
}

.geo-photo-band img {
	filter: grayscale(72%) saturate(0.4) contrast(1.05);
}

/* === insights list === */
.insights-list .wp-block-post-template {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.insights-entry {
	padding: 40px 0;
	border-bottom: 1px solid var(--wp--preset--color--contrast);
}

.insights-entry:first-child {
	padding-top: 0;
}

.insights-entry .wp-block-post-title {
	margin-bottom: 8px;
}

.insights-entry .wp-block-post-title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.insights-entry .wp-block-post-title a:hover {
	text-decoration: underline;
	text-underline-offset: 6px;
}

.insights-entry .wp-block-post-date {
	display: block;
	margin-bottom: 14px;
}

/* Infinite scroll: once JS takes over, hide the manual pagination controls
   and show a small "loading" cue in their place. Without JS, none of this
   applies and the normal Previous/Numbers/Next links render as usual. */
.wp-block-query-pagination.is-infinite-scroll .wp-block-query-pagination-previous,
.wp-block-query-pagination.is-infinite-scroll .wp-block-query-pagination-numbers,
.wp-block-query-pagination.is-infinite-scroll .wp-block-query-pagination-next {
	display: none;
}

.wp-block-query-pagination.is-infinite-scroll {
	min-height: 1px;
}

.wp-block-query-pagination.is-loading::before {
	content: "Loading more\2026";
	display: block;
	text-align: center;
	padding: 32px 0;
	font-family: var(--wp--preset--font-family--manrope);
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	opacity: 0.85;
}

.insights-entry.is-fading-in {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.insights-entry.is-fading-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.insights-entry.is-fading-in {
		transition: none;
		opacity: 1;
		transform: none;
	}
}

.founder-portrait img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 8%;
	width: 100%;
}

.two-col-list {
	column-count: 2;
	column-gap: 2rem;
}

.two-col-list li {
	break-inside: avoid;
}

.industry-card {
	border-top: 2px solid var(--wp--preset--color--accent);
	padding-top: 1.25rem;
}

.industry-card h4 {
	margin-bottom: 0.75rem;
}
/* === cta === */
/* === footer === */
.site-footer__rule {
	opacity: 0.18;
}

.site-footer a {
	color: var(--wp--preset--color--base);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.site-footer a:hover {
	color: var(--wp--preset--color--accent);
}
/* === responsive === */
