/*
Theme Name:   Eminence Media 2026
Theme URI:    https://eminencemedia.co
Description:  Child theme of Ollie for Eminence Media LLC. Pine and brick brand system, Archivo and Public Sans type, and custom patterns for home service marketing. Version 3 blends photo heroes with rounded cards, icons, pill buttons, and Ollie pattern layouts. Forms are found by title, so no form IDs are needed.
Author:       Eminence Media LLC
Author URI:   https://eminencemedia.co
Template:     ollie
Version:      3.2.1
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  eminence-media
*/

/* Keyboard focus: always visible, brand colored */
:where(a, button, input, select, textarea, summary, .wp-element-button):focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
	border-radius: 2px;
}

.has-main-background-color :where(a, button, .wp-element-button):focus-visible {
	outline-color: var(--wp--preset--color--main-accent);
}

/* Even line lengths in headings, so no single word hangs on its own line */
h1, h2, h3, .wp-block-heading, .wp-block-post-title, .wp-block-query-title { text-wrap: balance; }

/* Small label above headings */
.em-eyebrow {
	font-family: var(--wp--preset--font-family--secondary);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}


/* Price line inside offer cards */
.em-price {
	font-family: var(--wp--preset--font-family--secondary);
	font-weight: 700;
	line-height: 1.1;
}

/* Announcement bar links */
.em-announcement a {
	text-underline-offset: 3px;
}

/* Calendly embed */
.em-calendly {
	min-width: 280px;
	height: 760px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--wp--preset--color--base);
}

/* Keep long links from overflowing small screens, without splitting words in headings */
.wp-block-post-content p a { overflow-wrap: anywhere; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Logo size on small screens */
.em-logo img { height: auto; }
@media (max-width: 600px) {
	.em-logo { width: 150px !important; }
	.em-logo img { width: 150px !important; }
	.wp-block-buttons.em-header-cta { display: none !important; }
}

/* Tablets and small laptops: use the menu button so the header stays on one line */
.em-header-cta .wp-block-button__link { white-space: nowrap; }
@media (min-width: 600px) and (max-width: 1099px) {
	.em-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.em-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* Checkup link only inside the mobile menu */
.wp-block-navigation .wp-block-navigation-item.em-nav-cta-mobile { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.em-nav-cta-mobile {
	display: flex;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}
.wp-block-navigation__responsive-container.is-menu-open .em-nav-cta-mobile .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary) !important;
}

/* Header and footer */
.em-header { border-bottom: 1px solid var(--wp--preset--color--border-light); }
.em-footer-rule { border-color: var(--wp--preset--color--border-dark) !important; opacity: 1; }
.em-footer a { text-decoration: none; }
.em-footer a:hover, .em-footer a:focus-visible { text-decoration: underline; }

/* Images */
.em-headshot img { border-radius: 12px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.em-cover img { border-radius: 8px; width: 100%; height: auto; }

/* FAQ */
.em-faq { border-bottom: 1px solid var(--wp--preset--color--border-light); padding: 1rem 0; }
.em-faq summary { font-family: var(--wp--preset--font-family--secondary); font-weight: 600; font-size: var(--wp--preset--font-size--medium); cursor: pointer; }
.em-faq[open] summary { margin-bottom: 0.5rem; }

/* Cards in a row share one height, and their buttons line up at the bottom */
.em-equal > .wp-block-column > .em-card { height: 100%; display: flex; flex-direction: column; }
.em-equal > .wp-block-column > .em-card > * { width: 100%; }
.em-equal > .wp-block-column > .em-card > .wp-block-buttons:last-child { margin-top: auto; padding-top: var(--wp--preset--spacing--small); }

/* Photo heroes (Cover blocks) */
.em-hero a:not(.wp-element-button) { color: var(--wp--preset--color--base); }
.em-hero .em-card { color: var(--wp--preset--color--main); }
.em-hero .em-hero-lede { max-width: 40rem; }
.em-hero .em-cover-portrait img { max-width: 340px; margin-left: auto; display: block; }
@media (max-width: 781px) {
	.em-hero .wp-block-cover__background { background: rgba(23, 34, 29, 0.82) !important; }
	.em-hero .em-cover-portrait img { max-width: 240px; margin: 0 auto; }
}
/* A background video, if you add one, stays still for visitors who turn off motion */
@media (prefers-reduced-motion: reduce) {
	.em-hero .wp-block-cover__video-background { display: none; }
}

/* ==========================================================
   Version 3: blended components
   ========================================================== */

/* Big headlines: heaviest weight, tight spacing */
.em-display,
.wp-block-heading.has-xx-large-font-size,
.wp-block-post-title.has-xx-large-font-size,
.wp-block-query-title {
	font-weight: 900;
	letter-spacing: -0.03em;
	line-height: 1.05;
}
.em-display { max-width: 18em; }

/* Lead paragraph under headlines */
.em-lede {
	font-size: clamp(1.15rem, 1rem + 0.55vw, 1.45rem);
	line-height: 1.5;
}
.has-text-align-center.em-lede { max-width: 42rem; margin-left: auto; margin-right: auto; }

/* Avoid a single word alone on the last line of a paragraph */
p { text-wrap: pretty; }

/* Checkmarks in brand color */
ul.is-style-list-check li::before { color: var(--wp--preset--color--primary); font-weight: 700; }
.has-main-background-color ul.is-style-list-check li::before,
.em-card-featured ul.is-style-list-check li::before { color: var(--wp--preset--color--main-accent); }
.has-main-background-color .em-card:not(.em-card-featured) ul.is-style-list-check li::before { color: var(--wp--preset--color--primary); }

/* ---------- Buttons ---------- */

/* Secondary buttons: a soft pine pill on light sections */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: var(--wp--preset--color--primary-accent);
	color: var(--wp--preset--color--main);
	border: 0;
	outline: 0;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--main-accent);
	color: var(--wp--preset--color--main);
}

/* On dark photo, Ink, and pine sections: a white outline pill */
.em-hero .wp-block-button.is-style-outline > .wp-block-button__link,
.has-main-background-color .wp-block-button.is-style-outline > .wp-block-button__link,
.has-primary-background-color .wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--base);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.75);
}
.em-hero .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-main-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-primary-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--main);
}

/* White buttons on dark sections */
.wp-block-button.is-style-button-light > .wp-block-button__link:hover {
	background: var(--wp--preset--color--main-accent);
	color: var(--wp--preset--color--main);
}

/* "Jump to" chips inside photo heroes */
.wp-block-buttons:has(.em-chip) { gap: 0.5rem; }
.wp-block-button.em-chip > .wp-block-button__link {
	font-size: var(--wp--preset--font-size--x-small);
	padding: 0.45em 1.1em;
	background: rgba(255, 255, 255, 0.14);
	color: var(--wp--preset--color--base);
}
.wp-block-button.em-chip > .wp-block-button__link:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--main); }

/* ---------- Cards ---------- */

.em-card { border: 0 !important; }

/* Cards always contrast with the section behind them */
.has-tertiary-background-color .em-card:not(.em-card-brick):not(.em-card-featured) { background-color: var(--wp--preset--color--base) !important; }
.has-base-background-color .em-card:not(.em-card-brick):not(.em-card-featured) { background-color: var(--wp--preset--color--tertiary) !important; }
.has-main-background-color .em-card:not(.em-card-featured) { background-color: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--main); }
.em-card-brick { background-color: var(--wp--preset--color--primary-alt-accent) !important; }

/* Highlighted price card */
.em-card-featured { box-shadow: 0 24px 48px rgba(23, 34, 29, 0.22); }
@media (min-width: 782px) { .em-price-row > .wp-block-column:nth-child(2) > .em-card-featured { transform: translateY(-14px); } }
.em-badge {
	display: inline-block;
	align-self: flex-start;
	width: auto !important;
	margin: 0;
	padding: 0.3em 0.95em;
	border-radius: 100px;
	background: var(--wp--preset--color--primary-alt);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: 0.02em;
}

/* Prices and card titles */
.em-price { font-weight: 900; letter-spacing: -0.03em; }
.em-price span { font-family: var(--wp--preset--font-family--primary); font-weight: 500; letter-spacing: 0; margin-left: 0.2em; }
.em-card > p.has-medium-font-size strong {
	font-family: var(--wp--preset--font-family--secondary);
	font-weight: 800;
	letter-spacing: -0.015em;
}

/* Icon tiles */
.wp-block-image.em-icon { margin: 0 0 0.25rem; }
.wp-block-image.em-icon img {
	width: 48px;
	height: 48px;
	padding: 12px;
	box-sizing: border-box;
	border-radius: 12px;
	background: var(--wp--preset--color--primary-accent);
}
.wp-block-image.em-icon-brick img { background: var(--wp--preset--color--primary-alt-accent); }
.em-card-brick .wp-block-image.em-icon-brick img { background: var(--wp--preset--color--base); }

/* ---------- Home hero: checkup card and founder line ---------- */

.em-hero .em-hero-card { box-shadow: 0 24px 48px rgba(0, 0, 0, 0.3); }
.em-founder-line { align-items: center; }
.wp-block-image.em-avatar-img { margin: 0; flex-shrink: 0; }
.wp-block-image.em-avatar-img img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.em-founder-line p { margin: 0; }

/* ---------- Numbers band ---------- */

.em-stat {
	font-family: var(--wp--preset--font-family--secondary);
	font-weight: 900;
	font-size: clamp(2.4rem, 1.6rem + 2.4vw, 3.6rem);
	letter-spacing: -0.04em;
	line-height: 1;
	margin-bottom: 0.15em;
}
.em-stats > .wp-block-column { border-left: 2px solid var(--wp--preset--color--border-light); padding-left: var(--wp--preset--spacing--medium); }
.has-main-background-color .em-stats > .wp-block-column { border-left-color: var(--wp--preset--color--border-dark); }
.em-stats p { margin: 0; }

/* ---------- Numbered steps beside a photo ---------- */

.em-step-num {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	margin: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--secondary);
	font-weight: 800;
}
.em-step h3 { margin-top: 0.35rem; }
.wp-block-image.em-side-photo { margin: 0; }
.wp-block-image.em-side-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 24px 24px 80px 24px; }
@media (max-width: 781px) { .wp-block-image.em-side-photo img { aspect-ratio: 4 / 3; } }

/* ---------- Testimonials ---------- */

.em-quote-lg {
	font-family: var(--wp--preset--font-family--secondary);
	font-size: clamp(1.3rem, 1.05rem + 0.9vw, 1.85rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.3;
}
.em-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	margin: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--primary-accent);
	color: var(--wp--preset--color--primary);
	font-family: var(--wp--preset--font-family--secondary);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--x-small);
}
.em-person p { margin: 0; line-height: 1.35; }
.em-equal > .wp-block-column > .em-card > .em-person:last-child { margin-top: auto; padding-top: var(--wp--preset--spacing--small); }

/* ---------- FAQ and "Still have questions?" bar ---------- */

.em-qa h3 { letter-spacing: -0.015em; }
.em-still { align-items: center; }
.em-still p { margin: 0; }

/* ---------- Images ---------- */

.em-headshot img { border-radius: 24px; }
.em-cover img { border-radius: 12px; }
.em-lead-card .em-cover img { box-shadow: 0 16px 32px rgba(23, 34, 29, 0.18); }

/* ---------- Footer social icons ---------- */

.em-footer .em-social { gap: 0.75rem; }
.em-footer .em-social .wp-social-link { color: var(--wp--preset--color--base); }
.em-footer .em-social .wp-social-link a { padding: 0; }
.em-footer .em-social .wp-social-link:hover { color: var(--wp--preset--color--main-accent); }

.em-footer .em-social:not(:has(li)) { display: none; }
