/*
Theme Name: Elizaveta
Theme URI: https://elizavetaphotography.com
Author: Elizaveta Photography
Description: Editorial block theme for elizavetaphotography.com: clients (Stream A) and photographers (Stream B). No page builder needed.
Version: 2.9.4
Requires at least: 6.9
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elizaveta
*/

/* ---------- Base ---------- */
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.wp-site-blocks > main { margin-top: 0; }

/* Kicker: any italic words at the start of an H1, H2 or H3 sit on their own line, smaller and lowercase. */
.wp-block-heading em {
	display: block;
	font-size: 0.5em;
	font-weight: 400;
	line-height: 1.15;
	margin-bottom: 8px;
	text-transform: none;
	letter-spacing: 0;
}
h3.wp-block-heading em { font-size: 0.62em; margin-bottom: 6px; }
.ep-stream-b .wp-block-heading em { color: var(--wp--preset--color--violet); }
.has-background .wp-block-heading em { color: inherit; }
.has-ice-blue-background-color .wp-block-heading em,
.has-mist-background-color .wp-block-heading em,
.has-peach-background-color .wp-block-heading em,
.has-blush-background-color .wp-block-heading em,
.has-periwinkle-background-color .wp-block-heading em { color: inherit; }

/* Handwritten line (Mr Dafoe), tilted. */
.ep-script {
	font-family: var(--wp--preset--font-family--script);
	font-weight: 400;
	font-size: clamp(36px, 3.6vw, 52px) !important;
	line-height: 1 !important;
	letter-spacing: 0;
	text-transform: none;
	transform: rotate(-6deg);
	width: fit-content;
	margin-left: auto !important;
	margin-right: auto !important;
}
.ep-script.has-text-align-left { margin-left: 0 !important; }

/* Small caps label (paragraph style "Label"). */
.is-style-label {
	font-size: var(--wp--preset--font-size--label) !important;
	letter-spacing: 3px;
	text-transform: uppercase;
	font-weight: 500;
	line-height: 1.4;
}
/* Underlined caps link (paragraph style "Arrow link"). */
.is-style-arrow-link {
	font-size: 12px !important;
	letter-spacing: 2.5px;
	text-transform: uppercase;
	font-weight: 500;
	line-height: 1.4;
}
.is-style-arrow-link a {
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}
/* Serif italic line, e.g. locations and dates. */
.is-style-serif-note {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 20px !important;
	color: var(--wp--preset--color--muted);
}

/* Buttons: outline by default; "Fill" style for dark, white or coral buttons. */
.wp-block-button .wp-block-button__link { white-space: nowrap; transition: background-color .2s, color .2s; }
.wp-block-button.is-style-fill .wp-block-button__link { border-color: transparent; font-weight: 500; }
.wp-block-button.is-style-fill .wp-block-button__link:hover { opacity: .88; }

/* ---------- Header ---------- */
.ep-header { padding-top: 20px; padding-bottom: 20px; }
.ep-header .wp-block-site-logo img { width: 150px; }
.ep-header .wp-block-navigation a { text-decoration: none; }
.ep-header .wp-block-navigation .current-menu-item > a,
.ep-header .wp-block-navigation a[aria-current="page"] { border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.ep-nav-photographers > a,
.ep-nav-photographers .wp-block-navigation-item__content { color: var(--wp--preset--color--violet) !important; font-style: italic; }
.wp-block-navigation__submenu-container { border: 0 !important; box-shadow: 0 12px 30px rgba(0,0,0,.08); padding: 10px 0 !important; min-width: 240px !important; }
.wp-block-navigation__submenu-container a { padding: 8px 18px !important; }

/* Phone menu: full-screen white overlay, big serif links. */
.wp-block-navigation__responsive-container.is-menu-open { padding: 20px 24px 40px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px; align-items: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 300;
	font-size: 34px;
	letter-spacing: .02em;
	line-height: 1.1;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 16px;
	box-shadow: none;
	padding: 12px 0 6px 2px !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a {
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: 13px !important;
	letter-spacing: 2.5px;
	padding: 0 !important;
}
@media (max-width: 640px) {
	.ep-header .wp-block-site-logo img { width: 112px; }
}

/* ---------- Footer ---------- */
.ep-footer { border-top: 1px solid #8C8C8C; }
.ep-footer .wp-block-site-logo img { width: clamp(200px, 20vw, 280px); }
.ep-footer-nav { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, auto)); gap: 22px clamp(32px, 4vw, 64px); }
.ep-footer-nav li, .ep-footer-social li { font-size: 13px; letter-spacing: 3px; text-transform: uppercase; white-space: nowrap; }
.ep-footer-nav a, .ep-footer-social a { text-decoration: none; }
.ep-footer-nav .ep-num { display: inline-block; min-width: 3em; }
.ep-footer-social { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 22px; }
.ep-footer-divider { border-left: 1px solid #8C8C8C; padding-left: clamp(32px, 5vw, 80px); }
.ep-footer-bottom { border-top: 1px solid #8C8C8C; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; }
@media (max-width: 640px) { .ep-footer-divider { border-left: 0; padding-left: 0; } }

/* ---------- Sections ---------- */
.ep-section { padding-top: var(--wp--preset--spacing--section); padding-bottom: var(--wp--preset--spacing--section); }

/* Photo strip: 4 photos visible, swipe or use the arrows. No slider library. */
.ep-strip.wp-block-gallery.has-nested-images {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 10px !important;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	margin-top: 4px;
}
.ep-strip::-webkit-scrollbar { display: none; }
.ep-strip.wp-block-gallery.has-nested-images figure.wp-block-image {
	flex: 0 0 calc((100% - 30px) / 4) !important;
	width: calc((100% - 30px) / 4) !important;
	scroll-snap-align: start;
	margin: 0 !important;
}
.ep-strip figure.wp-block-image img { aspect-ratio: 2 / 3; object-fit: cover; width: 100%; height: 100% !important; }
@media (max-width: 640px) {
	.ep-strip.wp-block-gallery.has-nested-images figure.wp-block-image { flex-basis: calc((100% - 10px) / 2) !important; width: calc((100% - 10px) / 2) !important; }
}

/* Staggered columns (sessions, portfolio). */
@media (min-width: 782px) {
	.ep-stagger > .wp-block-column:nth-child(2) { padding-top: clamp(0px, 9vw, 140px); }
	.ep-stagger > .wp-block-column:nth-child(3) { padding-top: clamp(0px, 4vw, 60px); }
}
.ep-stagger .wp-block-image img { aspect-ratio: 5 / 7; object-fit: cover; width: 100%; }
@media (max-width: 640px) { .ep-stagger .wp-block-image img { aspect-ratio: 4 / 5; } }

/* Fixed-ratio photos. */
.ep-ratio-portrait img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ep-ratio-tall img { aspect-ratio: 2 / 3; object-fit: cover; width: 100%; }
.ep-ratio-wide img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.ep-ratio-square img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }

/* Three photos under a page title: one row, also on phones. */
.ep-trio { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ep-trio figure { margin: 0 !important; }
.ep-trio img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
@media (max-width: 640px) { .ep-trio { gap: 6px; } .ep-trio img { aspect-ratio: 2 / 3; } }

/* Framed squares (category links). */
.ep-framed img { border: 12px solid #FFFFFF; box-sizing: border-box; aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }
.ep-squares { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.ep-squares figure { margin: 0 !important; }
.ep-squares figcaption { text-align: center; font-size: 17px; margin-top: 16px !important; }
.ep-squares figcaption a { text-decoration: none; }
@media (max-width: 781px) { .ep-squares { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; } .ep-framed img { border-width: 6px; } }

/* Coral "using it & loving it" sticker on a tool card. */
.ep-has-badge { position: relative; }
.ep-badge {
	position: absolute; top: -18px; right: -14px; z-index: 2;
	width: 92px; height: 92px; border-radius: 50%;
	background: var(--wp--preset--color--coral); color: #FFFFFF;
	display: flex; align-items: center; justify-content: center; text-align: center;
	transform: rotate(10deg); margin: 0 !important; padding: 10px; box-sizing: border-box;
	font-family: var(--wp--preset--font-family--serif); font-style: italic; font-size: 16px !important; line-height: 1.1 !important;
}

/* Cards in a grid (tools, freebies). */
.ep-card-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 56px clamp(24px, 3vw, 40px); }
.ep-card { text-align: center; }
.ep-card-grid > .ep-card { justify-content: flex-start !important; }
.ep-card-grid > * { margin-block-start: 0 !important; }
.ep-card > .ep-has-badge, .ep-card > .ep-tile, .ep-has-badge > .ep-tile { width: 100%; align-self: stretch; }
.ep-tile { aspect-ratio: 4 / 3; display: flex; flex-direction: column; justify-content: center; align-items: center; }

/* FAQ (details block). */
.wp-block-details summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; font-family: var(--wp--preset--font-family--serif); font-size: 26px; line-height: 1.2; font-weight: 400; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-family: var(--wp--preset--font-family--sans); font-weight: 300; transition: transform .2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > *:not(summary) { font-size: 17px; line-height: 1.7; max-width: 680px; }
.ep-faq-list { border-top: 1px solid var(--wp--preset--color--pale-blue); }

/* Reviews: one at a time with arrows (see assets/js/elizaveta.js). */
.ep-slider { position: relative; }
.ep-slider.is-ready > .ep-slide:not(.is-active) { display: none; }
.ep-slider-nav { display: flex; justify-content: center; align-items: center; gap: 24px; margin-top: 32px; font-size: 13px; letter-spacing: 3px; }
.ep-slider-nav button { border: 0; background: transparent; color: inherit; font-size: 22px; cursor: pointer; padding: 6px 12px; }
.wp-block-quote { margin: 0; padding: 0 !important; }
.wp-block-quote cite { display: block; margin-top: 36px; font-family: var(--wp--preset--font-family--sans); font-style: normal; font-size: 13px; letter-spacing: 3px; text-transform: uppercase; }

/* Steps (how it works). */
.ep-step { border-top: 1px solid rgba(64,64,64,.25); padding-top: 22px; }
.ep-step-num { font-family: var(--wp--preset--font-family--serif); font-size: 44px !important; line-height: 1 !important; }

/* Bulleted lists with a small star. */
.ep-stars { list-style: none; padding-left: 0; }
.ep-stars li { position: relative; padding-left: 26px; margin-bottom: 12px; }
.ep-stars li::before { content: "\2726"; position: absolute; left: 0; color: var(--wp--preset--color--dusty-blue); }
.ep-stream-b .ep-stars li::before { color: var(--wp--preset--color--violet); }
.has-background .ep-stars li::before { color: inherit; }

/* ---------- Blog ---------- */
.wp-block-post-content > h2 { font-size: var(--wp--preset--font-size--post-heading); margin-top: 56px; }
.wp-block-post-content ul.wp-block-list:not(.ep-stars) { list-style: none; padding-left: 0; }
.wp-block-post-content ul.wp-block-list:not(.ep-stars) > li { position: relative; padding-left: 26px; margin-bottom: 14px; }
.wp-block-post-content ul.wp-block-list:not(.ep-stars) > li::before { content: "\2726"; position: absolute; left: 0; color: var(--wp--preset--color--dusty-blue); }
.ep-stream-b .wp-block-post-content ul.wp-block-list:not(.ep-stars) > li::before { color: var(--wp--preset--color--violet); }
.wp-block-post-content a { text-decoration: underline; text-underline-offset: 3px; }
.wp-block-post-content .wp-element-button, .wp-block-post-content .wp-block-button__link, .wp-element-button { text-decoration: none; }
.ep-stream-b .wp-block-post-content a { color: var(--wp--preset--color--violet); }
.wp-block-post-content table { font-size: 16px; }
.wp-block-post-content thead { background: var(--wp--preset--color--peach); }
.wp-block-post-content th { text-align: left; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; font-weight: 500; }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: 14px 16px; }

/* Post cards in query loops. */
.ep-cards .wp-block-post-featured-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ep-cards.ep-square .wp-block-post-featured-image img { aspect-ratio: 1 / 1; }
.ep-cards .wp-block-post-title a { text-decoration: none; }
.ep-cards .wp-block-post-terms { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; font-weight: 500; color: var(--wp--preset--color--dusty-blue); }
.ep-cards .wp-block-post-terms a { text-decoration: none; color: inherit; }
.ep-stream-b .ep-cards .wp-block-post-terms { color: var(--wp--preset--color--violet); }

/* Category page: the newest post is shown large, the rest in a 3-column grid. */
@media (min-width: 782px) {
	.ep-archive .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.ep-archive .wp-block-post-template > li:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 96px); align-items: center; max-width: 1100px; margin: 0 auto 32px; }
	.ep-archive .wp-block-post-template > li:first-child .wp-block-post-title { font-size: var(--wp--preset--font-size--title) !important; }
}
.ep-archive .wp-block-post-excerpt { display: none; }
.ep-archive .wp-block-post-template > li:first-child .wp-block-post-excerpt { display: block; font-size: 19px; }

/* Page numbers as squares. */
.wp-block-query-pagination { gap: 12px; margin-top: 64px; }
.wp-block-query-pagination .page-numbers {
	width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid currentColor; text-decoration: none; margin: 0 6px 0 0;
}
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--text); color: #FFFFFF; }
.ep-stream-b .wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--ink); }
.wp-block-query-pagination-next, .wp-block-query-pagination-previous {
	font-family: var(--wp--preset--font-family--sans); font-size: 13px; letter-spacing: 3px; text-transform: uppercase;
	border: 1px solid currentColor; height: 52px; display: inline-flex; align-items: center; padding: 0 28px; text-decoration: none;
}

/* Category links under archive titles. */
.ep-cat-links { list-style: none; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 36px; }
.ep-cat-links li { font-size: 13px; letter-spacing: 3px; text-transform: uppercase; font-weight: 500; }
.ep-cat-links a { text-decoration: none; padding-bottom: 4px; }
.ep-cat-links a[aria-current="page"] { border-bottom: 1px solid currentColor; }
.ep-stream-b .ep-cat-links a[aria-current="page"] { color: var(--wp--preset--color--violet); }

/* Author box photo. */
.ep-avatar img { border-radius: 50%; aspect-ratio: 1 / 1; object-fit: cover; }

/* ---------- Stream B (For Photographers) ---------- */
.ep-stream-b { color: var(--wp--preset--color--ink); }
.ep-stream-b a:hover { color: var(--wp--preset--color--violet); }

/* Contact form placeholder and form styling (works with most form plugins). */
.ep-form input[type="text"], .ep-form input[type="email"], .ep-form select, .ep-form textarea {
	width: 100%; box-sizing: border-box; border: 0; background: var(--wp--preset--color--mist);
	padding: 16px 18px; font-family: var(--wp--preset--font-family--sans); font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: inherit;
}
/* Contact Form 7 inside .ep-form. */
.ep-form .wpcf7-form > p { display: grid; gap: 12px; margin: 0; }
.ep-form .wpcf7-form > p br { display: none; }
.ep-form .wpcf7-form-control-wrap { display: block; }
.ep-form select { appearance: none; -webkit-appearance: none; cursor: pointer;
	background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position: calc(100% - 22px) 50%, calc(100% - 17px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.ep-form textarea { min-height: 160px; resize: vertical; }
.ep-form input::placeholder, .ep-form textarea::placeholder { color: var(--wp--preset--color--muted); opacity: 1; }
.ep-form input:focus, .ep-form select:focus, .ep-form textarea:focus { outline: 1px solid var(--wp--preset--color--dusty-blue); outline-offset: 0; }
.ep-form input[type="submit"] { justify-self: start; margin-top: 8px; cursor: pointer; border: 1px solid currentColor; border-radius: 0; background: transparent; color: inherit;
	padding: 16px clamp(22px, 3vw, 38px); font-family: var(--wp--preset--font-family--sans); font-size: clamp(10px, 2.6vw, 13px); font-weight: 400;
	letter-spacing: clamp(1.5px, 0.5vw, 3px); text-transform: uppercase; line-height: 1.4; }
.ep-form input[type="submit"]:hover { background: var(--wp--preset--color--text); color: var(--wp--preset--color--white); }
.ep-form .wpcf7-spinner { margin: 8px 0 0; }
.ep-form .wpcf7-not-valid-tip { font-size: 12px; color: var(--wp--preset--color--coral); margin-top: 4px; }
.ep-form .wpcf7-response-output { margin: 16px 0 0 !important; padding: 12px 16px !important; font-size: 14px; border-color: var(--wp--preset--color--dusty-blue) !important; }
.ep-form-placeholder { border: 1px dashed var(--wp--preset--color--pale-blue); padding: 32px; text-align: center; }

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

/* Keep long words in big headings whole. */
h1, h2, .wp-block-post-title { overflow-wrap: normal; word-break: normal; hyphens: manual; }
/* Page titles may run wider than the text column so they fit on two lines. */
.is-layout-constrained > h1.wp-block-heading { max-width: min(1040px, 100%); }
@media (max-width: 480px) { h1.wp-block-heading, h1.wp-block-post-title { font-size: clamp(32px, 9.5vw, 44px) !important; } }

.ep-card-grid.ep-fit { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }

/* Small italic words inside a heading (not a kicker): use <i>, e.g. EVERYTHING YOU NEED <i>to</i> KNOW. */
.wp-block-heading i { display: inline; font-style: italic; text-transform: none; }
/* Double photo layout: keep the small photo centered next to the tall one. */
.ep-pair > .wp-block-column { align-self: center; }

/* Arrow links: one line under the text (the border), no extra underline. */
.wp-block-post-content .is-style-arrow-link a { text-decoration: none; }

/* Sessions grid on the home page: three even columns, two cards each. */
.ep-sessions .wp-block-image img { aspect-ratio: 5 / 7; object-fit: cover; width: 100%; }
.ep-sessions + .ep-sessions { margin-top: clamp(64px, 7vw, 110px) !important; }
@media (max-width: 781px) { .ep-sessions + .ep-sessions { margin-top: 48px !important; } }
.ep-sessions h3.wp-block-heading { margin-top: 40px !important; }
@media (max-width: 781px) { .ep-sessions .wp-block-image img { aspect-ratio: 4 / 5; } }

/* A photo that fills its column from top to bottom (How a session works). */
.ep-fill { display: flex; }
.ep-fill > .wp-block-image { flex: 1; margin: 0; }
.ep-fill > .wp-block-image img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 781px) { .ep-fill > .wp-block-image img { aspect-ratio: 4 / 5; height: auto; } }

/* More room between a divider and the label under it (As seen on). */
.wp-block-separator + .is-style-label { margin-top: var(--wp--preset--spacing--m) !important; }

/* ---------- v2.7: About and For Photographers layouts ---------- */
/* Wide banner photo across the top of a page. */
.ep-banner { margin: 0 !important; }
.ep-banner img { width: 100%; height: clamp(300px, 36vw, 540px) !important; aspect-ratio: auto !important; object-fit: cover; object-position: 50% 40%; display: block; }
/* A section that tucks up over the banner or colored band above it. */
.ep-tuck { position: relative; z-index: 2; margin-top: clamp(-200px, -12vw, -60px) !important; }
.ep-tuck-hero { position: relative; z-index: 2; margin-top: clamp(-230px, -16vw, -130px) !important; }
.ep-hero-tall { padding-bottom: clamp(180px, 20vw, 300px) !important; }
@media (max-width: 781px) { .ep-tuck { margin-top: -60px !important; } }
/* White frame around a photo. */
.ep-frame img { border: 12px solid #FFFFFF; box-sizing: border-box; }
.ep-frame-shadow img { border: 14px solid #FFFFFF; box-sizing: border-box; box-shadow: 0 10px 30px rgba(64, 64, 64, 0.08); }
.ep-portrait-2x3 img { aspect-ratio: 2 / 3; object-fit: cover; width: 100%; }
.ep-portrait-4x5 img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ep-max-400 { max-width: 400px; margin-left: auto !important; margin-right: auto !important; }
/* Big serif lead paragraph. */
.ep-lead { font-family: var(--wp--preset--font-family--serif); font-weight: 400; font-size: clamp(26px, 2.6vw, 36px) !important; line-height: 1.25 !important; }
/* Large heading (About, For Photographers). */
.ep-display { font-size: clamp(44px, 5.7vw, 82px) !important; line-height: 1.02 !important; }
/* Handwritten signature. */
.ep-signature { font-family: var(--wp--preset--font-family--script); font-size: clamp(44px, 4.4vw, 60px) !important; line-height: 1 !important; text-align: right; }
/* Script line that sits above a heading. */
.ep-script + h1.wp-block-heading { margin-top: 14px !important; }
/* Photo collage: tall photo with a smaller framed photo overlapping its lower right corner. */
.ep-collage { position: relative; padding-bottom: clamp(60px, 8vw, 120px); }
.ep-collage > .wp-block-image:first-child { width: 74%; margin: 0 !important; }
.ep-collage > .wp-block-image:first-child img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.ep-collage > .wp-block-image + .wp-block-image { position: absolute; right: 0; bottom: 0; width: 44%; margin: 0 !important; }
.ep-collage > .wp-block-image + .wp-block-image img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; border: 10px solid #FFFFFF; box-sizing: border-box; }
/* Title on the left, thin line, content on the right (What I write about). */
.ep-divided { border-right: 1px solid rgba(48, 48, 48, 0.35); padding-right: clamp(32px, 4vw, 64px); }
.ep-divided + .wp-block-column { padding-left: clamp(32px, 4vw, 64px); }
@media (max-width: 781px) { .ep-divided { border-right: 0; padding-right: 0; } .ep-divided + .wp-block-column { padding-left: 0; } }
.ep-topic h3.wp-block-heading { font-size: clamp(24px, 2.2vw, 30px) !important; line-height: 1.1; font-weight: 400; text-transform: uppercase; }
/* Portfolio cards: the couple's name is a link without an underline. */
.ep-portfolio h2 a { text-decoration: none; color: inherit; }
/* Current tab in the Weddings / Portraits switch. */
.ep-current a { border-bottom: 1px solid currentColor; padding-bottom: 4px; }
/* Start-here links on a page. */
.ep-start-links a { text-decoration: none !important; color: var(--wp--preset--color--ink); }
.ep-start-links .ep-accent a { color: var(--wp--preset--color--violet); }

/* v2.7.1: white text on colored bands, tools band button */
.has-white-color :is(h1,h2,h3,h4,h5,h6,p):not(.has-text-color){color:inherit}
.has-deep-teal-background-color .wp-block-columns > .wp-block-column:last-child{border-top:1px solid rgba(255,255,255,.4)}
.has-deep-teal-background-color .wp-block-button__link{color:var(--wp--preset--color--deep-teal)!important;font-weight:500}

/* The palette slug "text" generates .has-text-color, which collides with the WordPress marker class and turned white text gray. */
.has-white-color.has-text-color{color:var(--wp--preset--color--white)!important}

/* 2.7.3: header menu links */
.ep-header .wp-block-navigation .ep-nav-contact > a { border-bottom: 1px solid currentColor; padding-bottom: 2px; }

/* v2.8: easier-to-read dropdowns. */
.ep-header .wp-block-navigation__submenu-container { padding: 12px 0 !important; min-width: 220px !important; background: #FFFFFF !important; }
.ep-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 15px !important; letter-spacing: 0.02em !important; text-transform: none !important; font-weight: 400 !important;
	line-height: 1.4; color: var(--wp--preset--color--ink) !important; padding: 9px 22px !important; border: 0 !important;
}
.ep-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ep-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus { background: var(--wp--preset--color--mist); }

/* v2.8: For Photographers header. "For clients" is a light blue button back to the client side. */
.ep-header .wp-block-navigation .ep-nav-clients > a {
	background: var(--wp--preset--color--ice-blue); color: var(--wp--preset--color--ink) !important;
	padding: 10px 18px !important; border-radius: 0; border: 0 !important; font-style: normal;
}
.ep-header .wp-block-navigation .ep-nav-clients > a:hover { background: var(--wp--preset--color--pale-blue); }
.ep-header-b .wp-block-navigation a[aria-current="page"] { color: var(--wp--preset--color--violet); }

/* v2.8: footer button to the For Photographers side, and the legal link. */
.ep-footer .ep-btn-photographers .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--violet); border: 1px solid var(--wp--preset--color--violet);
	padding: 12px 22px; font-size: 12px; letter-spacing: 3px; text-transform: uppercase;
}
.ep-footer .ep-btn-photographers .wp-block-button__link:hover { background: var(--wp--preset--color--violet); color: #FFFFFF; }
.ep-footer-bottom a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* v2.8.1: Tools page details. */
#toolbox .ep-squares figcaption a { color: var(--wp--preset--color--muted) !important; }
.ep-deal, .ep-deal a { color: var(--wp--preset--color--coral) !important; font-weight: 600 !important; }
#course .wp-block-button__link { background: transparent !important; color: #FFFFFF !important; border: 1px solid #FFFFFF !important; }
#course .wp-block-button__link:hover { background: #FFFFFF !important; color: var(--wp--preset--color--ink) !important; }
#blog .wp-block-post-title, #blog .wp-block-post-title a { color: var(--wp--preset--color--muted) !important; }

/* v2.8.1: portfolio switch (Weddings / Portraits): no underlines, the current one is a blue box. */
.wp-block-group:has(> .is-style-label.ep-current) .is-style-label a {
	text-decoration: none !important; border: 0 !important; display: inline-block; padding: 10px 20px;
}
.wp-block-group:has(> .is-style-label.ep-current) .is-style-label.ep-current a {
	background: var(--wp--preset--color--dusty-blue); color: #FFFFFF !important;
}

/* v2.8.3: light pink "using it & loving it" sticker. */
.ep-badge { background: var(--wp--preset--color--blush) !important; color: var(--wp--preset--color--ink) !important; }

/* v2.8.5 pink tools band, gray text */
.ep-tools-band, .ep-tools-band :is(h2,p) { color: var(--wp--preset--color--muted) !important; }
.ep-tools-band .wp-block-button__link { color: #fff !important; }

/* v2.8.6 photographers footer: light blue "For clients" button */
.ep-footer .ep-btn-clients .wp-block-button__link { background: var(--wp--preset--color--ice-blue); color: var(--wp--preset--color--ink); border: 0; padding: 12px 22px; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; }
.ep-footer .ep-btn-clients .wp-block-button__link:hover { background: var(--wp--preset--color--pale-blue); color: var(--wp--preset--color--ink); }

/* v2.8.7 Kit newsletter form, styled to match the site */
.ep-kit .formkit-form { max-width: none !important; background: transparent !important; border: 0 !important; box-shadow: none !important; margin: 0 !important; }
.ep-kit .formkit-form [data-style="clean"], .ep-kit .formkit-form > div { padding: 0 !important; }
.ep-kit .formkit-fields { display: flex !important; flex-wrap: wrap; gap: 10px; margin: 0 !important; }
.ep-kit .formkit-field { flex: 1 1 220px !important; margin: 0 !important; }
.ep-kit .formkit-input { width: 100% !important; background: #fff !important; color: var(--wp--preset--color--ink) !important; border: 0 !important; border-radius: 0 !important; padding: 14px 16px !important; font-family: inherit !important; font-size: 16px !important; }
.ep-kit .formkit-submit { flex: 0 0 auto !important; margin: 0 !important; background: var(--wp--preset--color--ink) !important; color: #fff !important; border: 0 !important; border-radius: 0 !important; font-family: inherit !important; }
.ep-kit .formkit-submit > span { padding: 14px 24px !important; font-size: 12px !important; letter-spacing: 3px !important; text-transform: uppercase !important; font-weight: 500 !important; }
.ep-kit .formkit-powered-by-convertkit-container, .ep-kit .formkit-guarantee, .ep-kit .formkit-header { display: none !important; }
.ep-kit .formkit-alert-success { background: rgba(255,255,255,.9) !important; color: var(--wp--preset--color--ink) !important; border: 0 !important; border-radius: 0 !important; }

/* v2.8.8 newsletter form posting straight to Kit, styled like the mockup */
.ep-nl-form{display:flex;flex-direction:column;gap:14px;margin:0;width:100%}
.ep-nl-form input[type=text],.ep-nl-form input[type=email]{width:100%;box-sizing:border-box;border:0!important;border-radius:0!important;background:#fff!important;padding:16px 18px!important;font-family:var(--wp--preset--font-family--sans)!important;font-size:15px!important;color:#303030!important;outline:0;box-shadow:none!important;margin:0!important}
.ep-nl-form input::placeholder{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:#595959;opacity:1}
.ep-nl-form input:focus{outline:2px solid #303030!important;outline-offset:0}
.ep-nl-form .ep-nl-actions{margin-top:8px}
.ep-nl-form button{padding:16px clamp(22px,3vw,38px);border:0;border-radius:0;background:#303030;color:#fff;font-family:var(--wp--preset--font-family--sans);font-size:13px;letter-spacing:3px;text-transform:uppercase;font-weight:500;white-space:nowrap;cursor:pointer}
.ep-nl-form button:hover{background:#000}
.ep-nl-form button[disabled]{opacity:.6;cursor:wait}
.ep-nl-form .ep-nl-msg{margin:0;font-size:17px;line-height:1.6}
.ep-nl-form .ep-nl-msg:empty{display:none}
.ep-nl-form.is-done input,.ep-nl-form.is-done .ep-nl-actions{display:none}

/* v2.9.0 Sprout Studio inquiry form */
.ep-sprout iframe { display: block; width: 100% !important; border: 0; }

/* v2.9.1 inquiry form (Sprout Studio), styled like the rest of the site */
.ep-lead-form { display: grid; gap: 12px; margin: 0; }
.ep-lead-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 600px) { .ep-lead-row { grid-template-columns: 1fr; } }
.ep-lead-form input[type="text"], .ep-lead-form input[type="email"], .ep-lead-form select, .ep-lead-form textarea {
	width: 100%; box-sizing: border-box; margin: 0; border: 1px solid transparent; border-radius: 0; background: var(--wp--preset--color--mist);
	padding: 16px 18px; font-family: var(--wp--preset--font-family--sans); font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--wp--preset--color--ink);
}
.ep-lead-form select { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.ep-lead-form select.is-chosen { color: var(--wp--preset--color--ink); }
.ep-lead-form input::placeholder, .ep-lead-form textarea::placeholder { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--wp--preset--color--muted); opacity: 1; }
.ep-lead-form textarea { min-height: 180px; line-height: 1.6; resize: vertical; }
.ep-lead-form input:focus, .ep-lead-form select:focus, .ep-lead-form textarea:focus { outline: 1px solid var(--wp--preset--color--dusty-blue); outline-offset: 0; }
.ep-lead-form .is-error { border-color: var(--wp--preset--color--coral) !important; }
.ep-lead-error { margin: 0; font-size: 14px; color: var(--wp--preset--color--coral); }
.ep-lead-error:empty { display: none; }
.ep-lead-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ep-lead-actions { margin-top: 8px; }
.ep-lead-form button { cursor: pointer; border: 1px solid var(--wp--preset--color--ink); border-radius: 0; background: var(--wp--preset--color--ink); color: #fff;
	padding: 16px clamp(22px, 3vw, 38px); font-family: var(--wp--preset--font-family--sans); font-size: 13px; font-weight: 500; letter-spacing: 3px; text-transform: uppercase; }
.ep-lead-form button:hover { background: transparent; color: var(--wp--preset--color--ink); }
.ep-lead-form button[disabled] { opacity: .6; cursor: wait; }
.ep-lead-thanks { padding: 32px; background: var(--wp--preset--color--mist); }
.ep-lead-thanks p { margin: 0; font-size: 17px; line-height: 1.6; }
.ep-lead-thanks .ep-lead-thanks-title { font-family: var(--wp--preset--font-family--serif); font-size: 32px; line-height: 1.1; margin-bottom: 10px; }

/* v2.9.2 "For photographers" in the client menu: purple button, white text, not italic */
.ep-header .wp-block-navigation .ep-nav-photographers > a,
.ep-header .wp-block-navigation .ep-nav-photographers .wp-block-navigation-item__content {
	background: var(--wp--preset--color--violet); color: #FFFFFF !important; font-style: normal !important;
	padding: 10px 18px !important; border: 0 !important; border-bottom: 0 !important; text-decoration: none !important;
}
.ep-header .wp-block-navigation .ep-nav-photographers > a:hover { background: #4F63A8; color: #FFFFFF !important; }
