/*
 * EnoAcademy theme styles.
 * Layout: one 680px reading column; on wide screens an index rail (160px) and an
 * ad rail (300px) flank it. Colors come from theme.json presets; dark mode redefines them.
 */

:root {
	--ea-header-h: 64px;
	--ea-read: 680px;
	--ea-site: 1200px;
	--ea-gutter: max(20px, env(safe-area-inset-left, 0px));
	--ea-gutter-r: max(20px, env(safe-area-inset-right, 0px));
	--ea-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--ea-ease-io: cubic-bezier(0.65, 0, 0.35, 1);
	--ea-display: var(--wp--preset--font-family--display);
	--ea-sans: var(--wp--preset--font-family--sans);
	--ea-paper: var(--wp--preset--color--paper);
	--ea-card: var(--wp--preset--color--card);
	--ea-ink: var(--wp--preset--color--ink);
	--ea-soft: var(--wp--preset--color--ink-soft);
	--ea-wine: var(--wp--preset--color--wine);
	--ea-must: var(--wp--preset--color--must);
	--ea-olive: var(--wp--preset--color--olive);
	--ea-line: var(--wp--preset--color--line);
	color-scheme: light;
}

/* Dark mode: same tokens, lighter wine, never black-and-gold. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--wp--preset--color--paper: #181416;
		--wp--preset--color--card: #221C1F;
		--wp--preset--color--ink: #EEE6DB;
		--wp--preset--color--ink-soft: #B2A8AA;
		--wp--preset--color--wine: #DE8CA2;
		--wp--preset--color--must: #EEAABC;
		--wp--preset--color--olive: #AABA84;
		--wp--preset--color--line: #40363A;
		color-scheme: dark;
	}
}
:root[data-theme="dark"] {
	--wp--preset--color--paper: #181416;
	--wp--preset--color--card: #221C1F;
	--wp--preset--color--ink: #EEE6DB;
	--wp--preset--color--ink-soft: #B2A8AA;
	--wp--preset--color--wine: #DE8CA2;
	--wp--preset--color--must: #EEAABC;
	--wp--preset--color--olive: #AABA84;
	--wp--preset--color--line: #40363A;
	color-scheme: dark;
}

html { scroll-padding-top: calc(var(--ea-header-h) + 24px); -webkit-text-size-adjust: 100%; }
body { background: var(--ea-paper); color: var(--ea-ink); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); background: var(--ea-paper); z-index: 60; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
::selection { background: color-mix(in srgb, var(--ea-wine) 18%, transparent); }
:where(a, button, input, summary, select, textarea):focus-visible { outline: 2px solid var(--ea-wine); outline-offset: 3px; border-radius: 2px; }
img { max-width: 100%; height: auto; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Flow layouts add top margins between children; our grids and flex rows manage their own gaps. */
.ea-cover__grid > *, .ea-cover__ctas > *, .ea-article__body > *, .ea-doors__list > *, .ea-latest__grid > *, .ea-split-head > *,
.ea-bridge > *, .ea-letter > *, .ea-cards > *, .ea-section-head > *, .ea-place > * { margin-block: 0; }

/* Containers */
.ea-wrap { max-width: var(--ea-site); margin-inline: auto; padding-left: var(--ea-gutter); padding-right: var(--ea-gutter-r); box-sizing: content-box; }
.ea-col { max-width: var(--ea-read); margin-inline: auto; box-sizing: content-box; padding-left: var(--ea-gutter); padding-right: var(--ea-gutter-r); }
.ea-article .ea-col { padding-inline: 0; }
.ea-article { padding-left: var(--ea-gutter); padding-right: var(--ea-gutter-r); }

/* Type helpers */
.ea-eyebrow, .is-style-ea-eyebrow {
	font-family: var(--ea-sans); font-size: clamp(12px, 0.74rem + 0.06vw, 13px); font-weight: 600;
	letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.2; color: var(--ea-soft); text-decoration: none;
}
.ea-eyebrow--wine, .is-style-ea-eyebrow.ea-eyebrow--wine { color: var(--ea-wine); }
.ea-eyebrow--olive { color: var(--ea-olive); }
.ea-dek, .wp-block-post-excerpt.ea-dek { font-family: var(--ea-display); font-style: italic; font-size: var(--wp--preset--font-size--dek); line-height: 1.45; color: var(--ea-soft); }
.ea-dek .wp-block-post-excerpt__excerpt { margin: 0; }
.ea-lede { font-size: 17px; line-height: 1.6; color: var(--ea-soft); max-width: 52ch; }
.ea-display-2 { font-size: clamp(36px, 1.8rem + 2vw, 56px) !important; line-height: 1 !important; letter-spacing: -0.02em; margin: 0; }
.ea-display-3 { font-size: clamp(30px, 1.5rem + 1.6vw, 48px) !important; line-height: 1.06 !important; letter-spacing: -0.015em; }
.ea-muted { color: var(--ea-soft); }
.ea-link { color: var(--ea-wine); font-size: 14px; font-weight: 600; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--ea-wine) 30%, transparent); text-underline-offset: 3px; transition: color .2s; }
.ea-link:hover { color: var(--ea-must); }
.ea-icon { flex-shrink: 0; }

/* Buttons */
.ea-btn, .wp-block-read-more.ea-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 24px;
	font: 600 15px/1 var(--ea-sans); text-decoration: none; cursor: pointer; border: 1px solid var(--ea-wine);
	background: var(--ea-wine); color: var(--ea-paper); transition: background-color .2s, color .2s, border-color .2s, transform .3s var(--ea-ease);
}
.ea-btn:hover { background: var(--ea-must); border-color: var(--ea-must); color: var(--ea-paper); }
.ea-btn:active { transform: scale(.97); }
.ea-btn--ghost { background: transparent; color: var(--ea-ink); border-color: color-mix(in srgb, var(--ea-ink) 80%, transparent); }
.ea-btn--ghost:hover { background: transparent; color: var(--ea-wine); border-color: var(--ea-wine); }
.wp-block-read-more.ea-btn::after, .ea-btn--magnetic:not(button)::after { content: "→"; transition: transform .3s var(--ea-ease); }
.ea-btn:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-ea-ghost .wp-block-button__link { background: transparent; color: var(--ea-ink); border: 1px solid var(--ea-ink); }
.wp-block-button.is-style-ea-ghost .wp-block-button__link:hover { color: var(--ea-wine); border-color: var(--ea-wine); }
.wp-block-button__link { transition: background-color .2s, transform .3s var(--ea-ease); }
.wp-block-button__link:active { transform: scale(.97); }

/* ---------- Header ---------- */
.ea-header-wrap { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; }
.ea-header { background: var(--ea-paper); border-bottom: 1px solid transparent; transition: background-color .3s, border-color .3s; position: relative; }
.is-scrolled .ea-header, .has-panel .ea-header { background: color-mix(in srgb, var(--ea-paper) 90%, transparent); border-bottom-color: var(--ea-line); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.ea-header__bar { max-width: var(--ea-site); margin-inline: auto; height: var(--ea-header-h); display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-left: var(--ea-gutter); padding-right: var(--ea-gutter-r); }
.ea-header__brand { text-decoration: none; color: inherit; transform-origin: left center; transition: transform .32s var(--ea-ease); }
.is-scrolled .ea-header__brand { transform: scale(.92); }
.ea-header__nav { display: none; }
.ea-header__nav ul { display: flex; gap: 40px; list-style: none; margin: 0; padding: 0; }
.ea-header__nav a { position: relative; padding: 8px 0; color: var(--ea-ink); font-size: 15px; text-decoration: none; transition: color .2s; }
.ea-header__nav a:hover, .ea-header__nav a[aria-current] { color: var(--ea-wine); }
.ea-header__nav a[aria-current]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--ea-wine); }
.ea-header__actions { display: flex; align-items: center; gap: 4px; }
.ea-iconbtn { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: none; border: 0; color: var(--ea-ink); cursor: pointer; transition: color .2s, transform .2s; }
.ea-iconbtn:hover { color: var(--ea-wine); }
.ea-iconbtn:active { transform: scale(.92); }
.ea-iconbtn .ea-icon-close, .ea-iconbtn[aria-expanded="true"] .ea-icon-search, .ea-iconbtn[aria-expanded="true"] .ea-icon-menu { display: none; }
.ea-iconbtn[aria-expanded="true"] .ea-icon-close { display: block; }
[data-ea-theme-toggle] .ea-icon-sun { display: none; }
.is-dark [data-ea-theme-toggle] .ea-icon-sun { display: block; }
.is-dark [data-ea-theme-toggle] .ea-icon-moon { display: none; }
@media (min-width: 1024px) {
	.ea-header__nav { display: block; }
	.ea-header__menu-btn { display: none; }
}

.ea-panel { max-width: var(--ea-site); margin-inline: auto; padding: 8px var(--ea-gutter-r) 24px var(--ea-gutter); animation: ea-drop .32s var(--ea-ease); }
.ea-panel__menu { list-style: none; margin: 0; padding: 0; }
.ea-panel__menu li + li { border-top: 1px solid var(--ea-line); }
.ea-panel__menu a { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; font: 500 22px/1.2 var(--ea-display); color: var(--ea-ink); text-decoration: none; }
.ea-panel__menu a[aria-current] { color: var(--ea-wine); }
.ea-panel__menu .ea-icon { color: var(--ea-soft); }
.ea-search { max-width: var(--ea-read); margin-inline: auto; }
.ea-search__row { display: flex; align-items: center; gap: 16px; margin-top: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--ea-ink); color: var(--ea-soft); }
.ea-search__row input { width: 100%; min-width: 0; border: 0; background: transparent; font: 400 24px/1.3 var(--ea-display); color: var(--ea-ink); outline: none; }
@keyframes ea-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.ea-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; pointer-events: none; }
.ea-progress span { display: block; height: 100%; background: var(--ea-wine); transform-origin: left; transform: scaleX(0); }
body:not(.ea-single) .ea-progress { display: none; }

/* Logo */
.ea-logo { display: inline-flex; align-items: center; gap: 10px; }
.ea-logo__symbol { height: 30px; width: auto; flex-shrink: 0; }
.ea-logo__text { display: flex; flex-direction: column; }
.ea-logo__word { font: 500 22px/1 var(--ea-display); letter-spacing: -0.01em; color: var(--ea-ink); }
.ea-logo__word em { font-weight: 600; color: var(--ea-wine); }
.ea-logo__by { display: flex; align-items: center; gap: 6px; margin-top: 5px; font: 600 9px/1 var(--ea-sans); letter-spacing: .26em; text-transform: uppercase; color: var(--ea-wine); }
.ea-logo__by span { width: 12px; height: 1px; background: var(--ea-olive); }
.ea-symbol { height: 32px; width: auto; }

/* ---------- Article ---------- */
.ea-article { padding-top: clamp(24px, 3vw, 40px); }
.ea-article__head { display: flex; flex-direction: column; gap: 40px; }
.ea-article__head > *, .ea-article__titles > * { margin-block: 0; }
.ea-article__titles { display: flex; flex-direction: column; gap: 24px; }
.ea-article__title { font-size: var(--wp--preset--font-size--title); }
.ea-article__hero { max-width: 1040px; margin: 40px auto 0 !important; }
.ea-article__hero img { width: 100%; background: var(--ea-card); }
.ea-article__hero figcaption, .ea-article__hero + .ea-caption { font-style: italic; font-size: 14px; color: var(--ea-soft); }

.ea-crumbs ol { display: flex; flex-wrap: wrap; gap: 2px 8px; list-style: none; margin: 0; padding: 0; font-size: 14px; color: var(--ea-soft); }
.ea-crumbs li { display: flex; gap: 8px; }
.ea-crumbs a { color: var(--ea-soft); text-decoration: none; }
.ea-crumbs a:hover { color: var(--ea-wine); }
.ea-crumbs span { color: var(--ea-line); }
.ea-crumbs [aria-current] { color: var(--ea-ink); max-width: 28ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ea-eyebrow-row, .ea-meta-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.ea-meta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 14px; color: var(--ea-soft); }
.ea-level { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border: 1px solid color-mix(in srgb, var(--ea-olive) 40%, transparent); font: 600 12px/1 var(--ea-sans); color: var(--ea-olive); }
.ea-level__pips { display: flex; gap: 2px; }
.ea-level__pips span { width: 3px; height: 6px; background: color-mix(in srgb, var(--ea-olive) 25%, transparent); }
.ea-level__pips span.is-on { background: var(--ea-olive); }

.ea-byline { display: flex; align-items: center; gap: 16px; padding-top: 24px; border-top: 1px solid var(--ea-line); }
.ea-byline__text { display: flex; flex-direction: column; font-size: 14px; min-width: 0; }
.ea-byline__text p { margin: 0; display: flex; flex-wrap: wrap; gap: 0 8px; color: var(--ea-soft); }
.ea-byline__name { font-weight: 600; color: var(--ea-ink); text-decoration: none; }
.ea-byline__name:hover { color: var(--ea-wine); }
.ea-byline__time { display: inline-flex; align-items: center; gap: 4px; }
.ea-avatar { position: relative; display: grid; place-items: center; flex-shrink: 0; overflow: hidden; border-radius: 50%; background: var(--ea-wine); color: var(--ea-paper); font-family: var(--ea-display); font-style: italic; }
.ea-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.ea-quick { box-sizing: border-box; background: var(--ea-card); border-block: 1px solid var(--ea-line); padding: 24px; }
.ea-quick p { margin: 0; }
.ea-quick p + p { margin-top: 8px; font-size: 17px; line-height: 1.6; }

.ea-article__body { margin-top: 40px; }
.ea-article__main { display: flex; flex-direction: column; gap: 40px; }
.ea-article__main > * { margin-block: 0; }
.ea-rail, .ea-article__aside { display: none; }
.ea-article__after { margin-top: 64px; display: flex; flex-direction: column; gap: 64px; }
.ea-article__after > * { margin-block: 0; }

@media (min-width: 1320px) {
	.ea-article__body { display: grid; grid-template-columns: 160px var(--ea-read) 300px; column-gap: 40px; max-width: 1220px; margin-inline: auto; }
	.ea-article__body .ea-col { max-width: none; margin: 0; }
	.ea-article .ea-article__head { max-width: 1220px; padding-left: 200px; box-sizing: border-box; }
	.ea-article__head > * { max-width: var(--ea-read); }
	.ea-article__hero { max-width: 1020px; margin-left: max(calc((100% - 1220px) / 2 + 200px), 0px) !important; margin-right: auto !important; }
	.ea-rail:not([hidden]), .ea-article__aside { display: block; }
	.ea-rail { position: sticky; top: calc(var(--ea-header-h) + 40px); align-self: start; }
	.ea-article__aside .ea-ad { position: sticky; top: calc(var(--ea-header-h) + 40px); }
	.ea-toc { display: none; }
	.ea-progress { display: none; }
}

/* Inline index */
.ea-toc { border-block: 1px solid var(--ea-line); }
.ea-toc > button { display: flex; width: 100%; min-height: 52px; align-items: center; justify-content: space-between; gap: 16px; padding: 0; border: 0; background: none; color: var(--ea-ink); cursor: pointer; text-align: left; }
.ea-toc > button .ea-eyebrow { color: var(--ea-ink); }
.ea-toc__count { margin-left: auto; font-size: 14px; color: var(--ea-soft); }
.ea-toc > button .ea-icon { transition: transform .3s; color: var(--ea-soft); }
.ea-toc > button[aria-expanded="true"] .ea-icon { transform: rotate(180deg); }
.ea-toc ol { list-style: none; margin: 0; padding: 0 0 16px; counter-reset: toc; }
.ea-toc li { counter-increment: toc; }
.ea-toc a { display: grid; grid-template-columns: 32px 1fr; padding: 6px 0; font-size: 16px; color: var(--ea-ink); text-decoration: none; }
.ea-toc a::before { content: counter(toc); font-family: var(--ea-display); font-style: italic; color: var(--ea-soft); }
.ea-toc a:hover { color: var(--ea-wine); }

/* Reading thread: the logo's bookmark thread, with a wine drop that travels as you read. */
.ea-rail .ea-eyebrow { margin: 0 0 16px; }
.ea-rail__track { position: relative; padding-left: 24px; }
.ea-rail__line, .ea-rail__fill { position: absolute; left: 5px; top: 0; bottom: 0; width: 1px; background: var(--ea-line); }
.ea-rail__fill { background: var(--ea-wine); transform-origin: top; transform: scaleY(0); }
.ea-rail__drop { position: absolute; left: 0; top: 0; width: 11px; height: 16px; fill: var(--ea-wine); }
.ea-rail ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ea-rail a { display: block; padding: 6px 0; font-size: 14px; line-height: 1.4; color: var(--ea-soft); text-decoration: none; transition: color .2s; }
.ea-rail a:hover, .ea-rail a[aria-current] { color: var(--ea-wine); }
.ea-rail__left { margin: 24px 0 0; font-size: 14px; color: var(--ea-soft); font-variant-numeric: tabular-nums; }

/* Article content */
.ea-content { font-size: var(--wp--preset--font-size--body); line-height: 1.7; }
.ea-content > * { margin-block: 0; }
.ea-content > * + * { margin-top: 24px; }
.ea-content > h2 { margin-top: 64px; }
.ea-content > h3 { margin-top: 40px; }
.ea-content > p:first-of-type::first-letter {
	float: left; font-family: var(--ea-display); font-weight: 500; font-size: 4.1em; line-height: .82; padding: .06em .1em 0 0; color: var(--ea-wine);
}
.ea-content a:not(.wp-element-button):not(.ea-btn) { color: var(--ea-wine); text-decoration-color: color-mix(in srgb, var(--ea-wine) 30%, transparent); text-underline-offset: 3px; }
.ea-content .wp-block-image figcaption, .ea-content figcaption { font-size: 14px; font-style: italic; color: var(--ea-soft); margin-top: 8px; }

.ea-term { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: help; text-decoration: underline dotted color-mix(in srgb, var(--ea-wine) 60%, transparent); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.ea-term:hover { color: var(--ea-wine); }
.ea-tip-bubble { position: absolute; z-index: 40; width: min(280px, 80vw); padding: 16px; background: var(--ea-card); border: 1px solid var(--ea-line); font-size: 14px; line-height: 1.5; color: var(--ea-ink); animation: ea-rise .18s var(--ea-ease); }
.ea-tip-bubble strong { display: block; margin-bottom: 4px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ea-wine); }
@keyframes ea-rise { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* Technical / region sheet */
.is-style-ea-sheet:is(.wp-block-group) { background: var(--ea-card); border: 1px solid var(--ea-line); padding: 0 !important; }
.is-style-ea-sheet > * { margin: 0 !important; }
.ea-sheet__title { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 24px; border-bottom: 1px solid var(--ea-line); margin: 0; }
.ea-sheet__title strong { font: 600 13px/1.2 var(--ea-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ea-wine); }
.ea-sheet__title em { font-family: var(--ea-display); font-size: 14px; color: var(--ea-soft); }
.wp-block-table.is-style-ea-sheet { overflow-x: auto; }
.wp-block-table.is-style-ea-sheet table { width: 100%; border-collapse: collapse; font-size: 15px; }
.wp-block-table.is-style-ea-sheet :is(th, td) { border: 0; border-bottom: 1px solid var(--ea-line); padding: 12px 24px; text-align: left; vertical-align: top; font-variant-numeric: tabular-nums; }
.wp-block-table.is-style-ea-sheet tbody tr:last-child :is(th, td) { border-bottom: 0; }
.wp-block-table.is-style-ea-sheet tbody th, .wp-block-table.is-style-ea-sheet tbody td:first-child:not(:only-child) { width: 40%; font-weight: 400; font-size: 14px; color: var(--ea-soft); }
.wp-block-table.is-style-ea-sheet thead th { font-family: var(--ea-display); font-weight: 500; font-size: 16px; color: var(--ea-ink); border-bottom: 1px solid var(--ea-line); }
.wp-block-table.ea-villages tbody td:first-child { font-family: var(--ea-display); font-size: 18px; color: var(--ea-ink); }
@media (max-width: 639px) { .wp-block-table.is-style-ea-sheet :is(th, td) { padding: 12px 12px 12px 16px; } .wp-block-table.ea-villages tbody td:first-child { font-size: 16px; } }
.wp-block-table.is-style-ea-sheet figcaption { margin: 0; padding: 8px 24px; border-top: 1px solid var(--ea-line); text-align: left; }

/* Sommelier tip */
.is-style-ea-tip { border-top: 1px solid color-mix(in srgb, var(--ea-wine) 30%, transparent); padding-top: 16px; padding-left: 38px; position: relative; }
.is-style-ea-tip::before { content: ""; position: absolute; left: 0; top: 18px; width: 22px; height: 22px; background: var(--ea-wine);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3h8l-.6 5.2A3.4 3.4 0 0 1 12 11.2a3.4 3.4 0 0 1-3.4-3L8 3Zm4 8.2V20m-3.5 0h7'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3h8l-.6 5.2A3.4 3.4 0 0 1 12 11.2a3.4 3.4 0 0 1-3.4-3L8 3Zm4 8.2V20m-3.5 0h7'/%3E%3C/svg%3E") center/contain no-repeat; }
.is-style-ea-tip > * { margin-block: 0; }
.is-style-ea-tip > * + * { margin-top: 6px; }
.is-style-ea-tip p:not(.is-style-ea-eyebrow) { font-family: var(--ea-display); font-style: italic; font-size: 18px; line-height: 1.55; }

/* Pull quote */
.wp-block-quote.is-style-ea-pull { border: 0; padding: 16px 0; text-align: center; }
.wp-block-quote.is-style-ea-pull p { font-family: var(--ea-display); font-style: italic; font-size: clamp(26px, 1.4rem + 1vw, 36px); line-height: 1.2; color: var(--ea-wine); }
.wp-block-quote.is-style-ea-pull p::before { content: "“"; } .wp-block-quote.is-style-ea-pull p::after { content: "”"; }
.wp-block-quote.is-style-ea-pull cite { display: block; margin-top: 16px; font: normal 14px/1.5 var(--ea-sans); color: var(--ea-soft); }

/* Pairing table: stacked rows on phones */
.wp-block-table.is-style-ea-pairing { display: flex; flex-direction: column-reverse; }
.wp-block-table.is-style-ea-pairing figcaption { margin: 0 0 16px; font: 600 13px/1.2 var(--ea-sans); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: var(--ea-wine); text-align: left; }
.wp-block-table.is-style-ea-pairing table { width: 100%; border-collapse: collapse; }
.wp-block-table.is-style-ea-pairing :is(th, td) { border: 0; border-bottom: 1px solid var(--ea-line); padding: 16px 16px 16px 0; text-align: left; vertical-align: top; font-size: 15px; }
.wp-block-table.is-style-ea-pairing thead th { border-bottom: 1px solid var(--ea-ink); padding-block: 8px; font-weight: 400; font-size: 14px; color: var(--ea-soft); }
.wp-block-table.is-style-ea-pairing tbody td:first-child { font-family: var(--ea-display); font-weight: 500; font-size: 17px; color: var(--ea-ink); }
.wp-block-table.is-style-ea-pairing tbody td:last-child { color: var(--ea-soft); }
.wp-block-table.is-style-ea-pairing td.is-avoid { color: var(--ea-must) !important; font-weight: 600; }
@media (max-width: 639px) {
	.wp-block-table.is-style-ea-pairing thead { display: none; }
	.wp-block-table.is-style-ea-pairing table { border-top: 1px solid var(--ea-ink); }
	.wp-block-table.is-style-ea-pairing tr { display: block; padding: 16px 0; border-bottom: 1px solid var(--ea-line); }
	.wp-block-table.is-style-ea-pairing td { display: block; border: 0 !important; padding: 2px 0 !important; }
}

/* FAQ */
.is-style-ea-faq { border-top: 1px solid var(--ea-line); }
.is-style-ea-faq > * { margin: 0 !important; }
.is-style-ea-faq details { border-bottom: 1px solid var(--ea-line); }
.is-style-ea-faq summary { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; list-style: none; cursor: pointer; font: 500 19px/1.35 var(--ea-display); color: var(--ea-ink); transition: color .2s; }
.is-style-ea-faq summary::-webkit-details-marker { display: none; }
.is-style-ea-faq summary::after { content: ""; flex-shrink: 0; width: 10px; height: 10px; margin-top: 6px; border-right: 1.5px solid var(--ea-soft); border-bottom: 1.5px solid var(--ea-soft); transform: rotate(45deg); transition: transform .3s; }
.is-style-ea-faq details[open] summary::after { transform: rotate(-135deg); }
.is-style-ea-faq summary:hover { color: var(--ea-wine); }
.is-style-ea-faq details p { margin: 0 0 24px; padding-right: 40px; font-size: 17px; line-height: 1.65; color: var(--ea-soft); }

.is-style-ea-box { background: var(--ea-card); border: 1px solid var(--ea-line); padding: 24px !important; }

/* Ads: framed, labelled, height reserved up front */
.ea-ad { background: var(--ea-card); border-block: 1px solid var(--ea-line); padding: 8px 0; margin-block: 0; }
.ea-ad__label { margin: 0; text-align: center; font: 400 11px/1 var(--ea-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ea-soft); }
.ea-ad__box { display: grid; place-items: center; min-height: 280px; margin-top: 8px; overflow: hidden; }
.ea-ad--rail .ea-ad__box { width: 300px; height: 600px; min-height: 0; margin-inline: auto; }
.ea-ad--home { max-width: 970px; margin: 0 auto; }
.ea-ad__ph { font-size: 13px; color: color-mix(in srgb, var(--ea-soft) 60%, transparent); }
.ea-content > .ea-ad { margin-block: 40px; }

/* Newsletter */
.ea-news__row { display: flex; flex-direction: column; gap: 8px; }
.ea-news input[type="email"] { min-height: 48px; width: 100%; min-width: 0; box-sizing: border-box; padding: 0 16px; border: 1px solid var(--ea-line); background: var(--ea-paper); color: var(--ea-ink); font: 16px var(--ea-sans); }
.ea-news input:focus { outline: none; border-color: var(--ea-wine); }
.ea-news input[aria-invalid="true"] { border-color: var(--ea-must); }
.ea-news .ea-btn { flex-shrink: 0; }
.ea-news__msg { margin: 8px 0 0; font-size: 14px; color: var(--ea-must); min-height: 0; }
.ea-news__msg.is-ok { font: italic 20px/1.3 var(--ea-display); color: var(--ea-wine); }
.ea-news label.ea-eyebrow { display: block; margin-bottom: 8px; }
@media (min-width: 640px) { .ea-news__row { flex-direction: row; } }
.ea-newsbox { background: var(--ea-card); border: 1px solid var(--ea-line); padding: 40px 24px; }
.ea-newsbox > * { margin: 0; }
.ea-newsbox__title { margin-top: 8px !important; font: 500 26px/1.2 var(--ea-display); color: var(--ea-ink); }
.ea-newsbox__text { margin: 8px 0 24px !important; font-size: 16px; color: var(--ea-soft); }
@media (min-width: 640px) { .ea-newsbox { padding: 40px; } }

/* Author, bridge, related */
.ea-author { display: grid; grid-template-columns: auto 1fr; gap: 8px 24px; padding-top: 24px; border-top: 1px solid var(--ea-ink); }
.ea-author > div > * { margin: 0; }
.ea-author__name { margin-top: 4px !important; font: 500 24px/1.2 var(--ea-display); color: var(--ea-ink); }
.ea-author__role { margin-top: 2px !important; font-size: 14px; color: var(--ea-wine); }
.ea-author__bio { margin-top: 16px !important; font-size: 16px; line-height: 1.65; color: var(--ea-soft); }
.ea-author .ea-link { display: inline-block; margin-top: 16px; }

.ea-bridge { display: grid; gap: 16px; }
@media (min-width: 640px) { .ea-bridge { grid-template-columns: 1fr 1fr; } }
.ea-bridge__card { display: flex; flex-direction: column; border: 1px solid var(--ea-line); padding: 24px !important; }
.ea-bridge__card.is-filled { background: var(--ea-card); }
.ea-bridge__card > * { margin: 0; }
.ea-bridge__card > .is-style-ea-eyebrow { margin-top: 24px; }
.ea-bridge__title { margin-top: 8px !important; font: 500 22px/1.2 var(--ea-display); color: var(--ea-ink); }
.ea-bridge__text { margin: 8px 0 24px !important; font-size: 15px; line-height: 1.6; color: var(--ea-soft); }
.ea-bridge__card .wp-block-buttons { margin-top: auto; }
.ea-bridge__mark { font: italic 28px/1 var(--ea-display); color: var(--ea-wine); }

.ea-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--ea-ink); }
.ea-section-head h2 { margin: 0; font-size: var(--wp--preset--font-size--heading); }
.ea-cards { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 40px; }
@media (min-width: 640px) { .ea-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
.ea-card { display: flex; flex-direction: column; gap: 16px; text-decoration: none; color: inherit; }
.ea-card > * { margin: 0 !important; }
.ea-card__media { display: block; overflow: hidden; background: var(--ea-card); }
.ea-card__media img, .ea-card__img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .7s var(--ea-ease); }
.ea-card:hover .ea-card__media img, .ea-card:hover .ea-card__img { transform: scale(1.04); }
.ea-card__ph { display: block; aspect-ratio: 4 / 5; background: var(--ea-card); }
.ea-card__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 14px; color: var(--ea-soft); }
.ea-card__title, .ea-card__title a { font: 500 20px/1.25 var(--ea-display); color: var(--ea-ink); text-decoration: none; transition: color .2s; }
.ea-card:hover .ea-card__title, .ea-card__title a:hover { color: var(--ea-wine); }
.ea-card .ea-level { align-self: flex-start; }

/* ---------- Archive / hub / search / 404 ---------- */
.ea-archive, .ea-404 { padding-top: 40px; }
.ea-archive__head { max-width: var(--ea-read); display: flex; flex-direction: column; gap: 24px; margin-bottom: 64px; }
.ea-archive__head > * { margin: 0; }
.ea-archive__head h1 { font-size: clamp(40px, 2rem + 2.5vw, 64px); letter-spacing: -0.02em; }
.ea-archive__intro { font-size: 18px; line-height: 1.7; color: var(--ea-ink); }
.ea-hub .ea-archive__intro { padding-top: 24px; border-top: 1px solid var(--ea-ink); }
.ea-cards--grid { list-style: none; padding: 0; display: grid; gap: 40px; }
@media (min-width: 640px) { .ea-cards--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; } }
@media (min-width: 1024px) { .ea-cards--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ea-pagination { margin-top: 64px; padding-top: 24px; border-top: 1px solid var(--ea-line); font-size: 15px; }
.ea-pagination a { color: var(--ea-ink); text-decoration: none; }
.ea-pagination .current { color: var(--ea-wine); font-weight: 600; }
.ea-searchform .wp-block-search__inside-wrapper { border: 0; border-bottom: 1px solid var(--ea-ink); padding: 0; }
.ea-searchform input { border: 0; background: transparent; font: 400 22px var(--ea-display); color: var(--ea-ink); padding: 8px 0; }
.ea-suggest { margin-top: 96px; padding-top: 24px; border-top: 1px solid var(--ea-ink); }
.ea-suggest__cats, .ea-suggest__posts { list-style: none; padding: 0; columns: 2; font-size: 16px; }
.ea-suggest a { color: var(--ea-ink); text-decoration: none; }
.ea-suggest a:hover { color: var(--ea-wine); }
.ea-page { padding-top: 40px; }
.ea-page__head h1 { margin-top: 0; }
.ea-page__hero { max-width: 1040px; margin: 40px auto !important; }

/* ---------- Home ---------- */
.ea-front { display: flex; flex-direction: column; gap: clamp(64px, 3rem + 3vw, 96px); padding-top: 24px; }
.ea-front > * { margin-block: 0 !important; }

.ea-dateline { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding-bottom: 16px; border-bottom: 1px solid var(--ea-ink); font-size: 14px; color: var(--ea-soft); }
.ea-dateline p { margin: 0; }
.ea-dateline__mission { font-family: var(--ea-display); font-style: italic; }
.ea-cover__query { margin-top: 40px; }
.ea-cover__query ul { list-style: none; margin: 0; padding: 0; }
.ea-cover__grid { display: grid; gap: 40px; align-items: end; }
.ea-cover__text { display: flex; flex-direction: column; gap: 24px; }
.ea-cover__text > * { margin: 0 !important; }
.ea-cover__title, .ea-cover__title a { font-size: var(--wp--preset--font-size--display) !important; line-height: .98 !important; letter-spacing: -0.025em; color: var(--ea-ink); text-decoration: none; }
.ea-cover__title .ea-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.ea-cover__title .ea-w > span { display: inline-block; }
.ea-cover__dek { max-width: 46ch; }
.ea-cover__media { margin: 0 !important; overflow: hidden; background: var(--ea-card); }
.ea-cover__media img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; }
@media (min-width: 1024px) {
	.ea-cover__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; }
	.ea-cover__text { padding-bottom: 40px; }
}

.ea-split-head { display: grid; gap: 24px; }
.ea-split-head h2 { margin: 0; }
@media (min-width: 1024px) { .ea-split-head { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; } }

.ea-doors__list { list-style: none; margin: 40px 0 0 !important; padding: 0; display: grid; gap: 0 24px; }
@media (min-width: 640px) { .ea-doors__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ea-doors__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ea-door { position: relative; display: flex; flex-direction: column; padding: 24px 0 40px; border-top: 1px solid var(--ea-line); }
.ea-door > * { margin: 0 !important; }
.ea-door::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--ea-wine); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ea-ease); }
.ea-door:hover::before, .ea-door:focus-within::before { transform: scaleX(1); }
.ea-door__num { font: italic 40px/1 var(--ea-display); color: var(--ea-wine); }
.ea-door__title { margin-top: 24px !important; font: 500 26px/1.2 var(--ea-display) !important; }
.ea-door__title a { color: var(--ea-ink); text-decoration: none; }
.ea-door__title a::after { content: ""; position: absolute; inset: 0; }
.ea-door__title a:focus-visible { outline: none; }
.ea-door:focus-within .ea-door__title a { color: var(--ea-wine); }
.ea-door__text { margin-top: 8px !important; font-size: 15px; line-height: 1.6; color: var(--ea-soft); }
.ea-door__starters { list-style: none; padding: 0; margin-top: 16px !important; font-size: 15px; }
.ea-door__starters li { display: flex; gap: 8px; padding: 3px 0; }
.ea-door__starters li::before { content: "—"; color: var(--ea-line); }
.ea-door__go { margin-top: 24px !important; font-size: 14px; font-weight: 600; color: var(--ea-wine); }

.ea-place__frame { position: relative; aspect-ratio: 4 / 5; max-width: 100%; overflow: hidden; background: var(--ea-card); }
.ea-place__frame img { position: absolute; inset: 0 0 auto; width: 100%; height: 115%; object-fit: cover; object-position: 60% 50%; }
@media (min-width: 640px) { .ea-place__frame { aspect-ratio: 21 / 9; } }
.ea-place__card { position: relative; max-width: 560px; margin-top: -96px !important; padding: 24px !important; background: var(--ea-paper); border-top: 2px solid var(--ea-wine); }
.ea-place__card > * { margin: 0 !important; }
.ea-place__card h2 { margin-top: 8px !important; }
.ea-place__card .ea-lede { margin: 16px 0 24px !important; }
@media (min-width: 640px) { .ea-place__card { padding: 40px !important; } }

.ea-latest__query { margin-top: 40px; }
.ea-latest__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 40px; }
.ea-latest__grid .ea-card__media img { aspect-ratio: 4 / 5; }
.ea-latest__grid .ea-card__body { display: flex; flex-direction: column; gap: 16px; }
.ea-latest__grid .ea-card__body > * { margin: 0 !important; }
.ea-latest__grid .ea-card__dek { display: none; }
.ea-latest__grid > li:first-child .ea-card__media img { aspect-ratio: 3 / 2; }
.ea-latest__grid > li:first-child .ea-card__title, .ea-latest__grid > li:first-child .ea-card__title a { font-size: clamp(28px, 1.4rem + 1.5vw, 44px); line-height: 1.08; letter-spacing: -0.015em; }
.ea-latest__grid > li:first-child .ea-card__dek { display: block; font-family: var(--ea-display); font-style: italic; font-size: var(--wp--preset--font-size--dek); color: var(--ea-soft); }
.ea-latest__grid > li:first-child .ea-card__dek p { margin: 0; }
@media (min-width: 640px) {
	.ea-latest__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 64px 24px; }
	.ea-latest__grid > li:first-child { grid-column: 1 / -1; }
	.ea-latest__grid > li:first-child .ea-card { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: end; }
	.ea-latest__grid > li:first-child .ea-card__body { padding-bottom: 24px; }
	/* Broken grid: the middle small card drops a step, like a magazine spread. */
	.ea-latest__grid > li:nth-child(3) { margin-top: 64px; }
}
@media (min-width: 1024px) { .ea-latest__grid { column-gap: 40px; } }
.ea-latest > .ea-ad { margin-top: 64px !important; }

.ea-series { background: var(--ea-wine); color: var(--ea-paper); overflow: hidden; padding-bottom: 64px; }
.ea-series > * { margin-block: 0 !important; }
.ea-series__pan { padding-top: 64px; white-space: nowrap; font: italic 400 clamp(72px, 2rem + 11vw, 176px)/.9 var(--ea-display); letter-spacing: -0.03em; color: color-mix(in srgb, var(--ea-paper) 90%, transparent); will-change: transform; }
.ea-series .ea-wrap { padding-top: 40px; }
.ea-series .is-style-ea-eyebrow { color: color-mix(in srgb, var(--ea-paper) 80%, transparent); margin: 0; }
.ea-series h2 { color: var(--ea-paper); margin: 8px 0 0; }
.ea-series .ea-lede { color: color-mix(in srgb, var(--ea-paper) 85%, transparent); margin: 0; }
.ea-series__list { list-style: none; counter-reset: ch; margin: 40px 0 0 !important; padding: 0; display: grid; border-top: 1px solid color-mix(in srgb, var(--ea-paper) 30%, transparent); }
.ea-series__list li { counter-increment: ch; border-bottom: 1px solid color-mix(in srgb, var(--ea-paper) 30%, transparent); }
.ea-series__list li > a, .ea-series__list li.is-soon { display: flex; flex-direction: column; padding: 24px 24px 24px 0; color: color-mix(in srgb, var(--ea-paper) 75%, transparent); font-size: 14px; text-decoration: none; height: 100%; box-sizing: border-box; transition: background-color .2s; }
.ea-series__list li.is-soon { opacity: .7; }
.ea-series__list li > a:hover { background: color-mix(in srgb, var(--ea-paper) 6%, transparent); }
.ea-series__list li > a::before, .ea-series__list li.is-soon::before { content: counter(ch, decimal-leading-zero); font: italic 28px/1 var(--ea-display); color: color-mix(in srgb, var(--ea-paper) 70%, transparent); margin-bottom: 24px; }
.ea-series__list strong { display: block; margin-bottom: 8px; font: 500 22px/1.2 var(--ea-display); color: var(--ea-paper); }

@media (min-width: 640px) { .ea-series__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) {
	.ea-series__list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
	.ea-series__list li { border-bottom: 0; border-right: 1px solid color-mix(in srgb, var(--ea-paper) 30%, transparent); }
	.ea-series__list li:last-child { border-right: 0; }
	.ea-series__list li > a, .ea-series__list li.is-soon { padding-left: 24px; }
	.ea-series__list li:first-child > a { padding-left: 0; }
}

.ea-letter { display: grid; gap: 40px; padding-block: 64px; border-block: 1px solid var(--ea-ink); }
.ea-letter__text > * { margin: 0 !important; }
.ea-letter__text { display: flex; flex-direction: column; gap: 24px; }
.ea-letter__text .ea-news { max-width: 520px; }
.ea-letter__recent-label { margin-top: 16px !important; }
.ea-letter__recent { list-style: none; padding: 0; margin-top: -8px !important; }
.ea-letter__recent li { padding: 16px 0; border-bottom: 1px solid var(--ea-line); font: italic 20px/1.35 var(--ea-display); color: var(--ea-ink); }
.ea-letter__media { display: none; margin: 0; }
.ea-letter__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--ea-card); }
@media (min-width: 1024px) {
	.ea-letter { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; }
	.ea-letter__media { display: block; }
}

.ea-endorse { display: flex; flex-direction: column; gap: 24px; }
.ea-endorse__text { display: flex; align-items: center; gap: 24px; }
.ea-endorse__text p { margin: 0; max-width: 56ch; font-size: 15px; line-height: 1.6; color: var(--ea-soft); }
.ea-endorse__symbol { height: 48px; width: auto; flex-shrink: 0; }
.ea-endorse__seal { width: 84px; height: 84px; flex-shrink: 0; object-fit: contain; }
.ea-endorse__seal--text { display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--ea-olive) 60%, transparent); border-radius: 50%; text-align: center; font: 600 10px/1.3 var(--ea-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--ea-olive); padding: 0 12px; box-sizing: border-box; }
@media (min-width: 640px) { .ea-endorse { flex-direction: row; align-items: center; justify-content: space-between; } }

/* ---------- Footer ---------- */
.ea-footer { margin-top: 96px; background: var(--ea-card); border-top: 1px solid var(--ea-line); }
.ea-footer__grid, .ea-footer__base { max-width: var(--ea-site); margin-inline: auto; padding-left: var(--ea-gutter); padding-right: var(--ea-gutter-r); }
.ea-footer__grid { display: grid; gap: 64px; padding-top: 64px; }
@media (min-width: 1024px) { .ea-footer__grid { grid-template-columns: 1.1fr 1fr; } }
.ea-footer__brand { display: flex; flex-direction: column; gap: 24px; }
.ea-footer__brand > a { text-decoration: none; }
.ea-footer__mission { margin: 0; max-width: 18ch; font: italic 400 clamp(28px, 1.5rem + 1vw, 40px)/1.1 var(--ea-display); color: var(--ea-ink); }
.ea-footer__news { max-width: 440px; }
.ea-footer__news > p { margin: 0 0 16px; font-size: 16px; color: var(--ea-soft); }
.ea-footer__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
@media (min-width: 640px) { .ea-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ea-footer__cols .ea-eyebrow { margin: 0 0 16px; }
.ea-footer__cols ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ea-footer__cols a { color: var(--ea-ink); font-size: 15px; text-decoration: none; }
.ea-footer__cols a:hover { color: var(--ea-wine); }
.ea-footer__base { display: flex; flex-direction: column; gap: 8px; margin-top: 64px; padding-block: 24px calc(24px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--ea-line); font-size: 14px; color: var(--ea-soft); }
.ea-footer__base p { margin: 0; }
.ea-footer__legal { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.ea-footer__legal button, .ea-footer__legal a { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; text-decoration-color: var(--ea-line); text-underline-offset: 3px; }
.ea-footer__legal :is(button, a):hover { color: var(--ea-wine); }
@media (min-width: 640px) { .ea-footer__base { flex-direction: row; justify-content: space-between; } }

/* ---------- Cookie banner ---------- */
.ea-cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; background: var(--ea-card); border-top: 1px solid var(--ea-ink); box-shadow: 0 -8px 24px -12px color-mix(in srgb, var(--ea-ink) 25%, transparent); padding-bottom: env(safe-area-inset-bottom, 0px); transform: translateY(100%); transition: transform .6s var(--ea-ease); max-height: 100dvh; overflow-y: auto; }
.ea-cookies.is-open { transform: none; }
.ea-cookies__inner { max-width: var(--ea-site); margin-inline: auto; padding: 24px var(--ea-gutter-r) 24px var(--ea-gutter); }
.ea-cookies__main { display: flex; flex-direction: column; gap: 16px; }
.ea-cookies__copy { max-width: 68ch; }
.ea-cookies h2 { margin: 0; font: 500 20px/1.2 var(--ea-display); }
.ea-cookies p { margin: 6px 0 0; font-size: 15px; line-height: 1.55; color: var(--ea-soft); }
.ea-cookies__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; flex-shrink: 0; }
.ea-cookies__actions .ea-btn--ghost { border-color: var(--ea-ink); }
.ea-cookies__actions .ea-btn--ghost:hover { background: var(--ea-wine); border-color: var(--ea-wine); color: var(--ea-paper); }
.ea-cookies__more { grid-column: 1 / -1; min-height: 44px; padding: 0 16px; border: 0; background: none; font: 600 15px var(--ea-sans); color: var(--ea-wine); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--ea-wine) 30%, transparent); text-underline-offset: 3px; cursor: pointer; }
.ea-cookies__details { margin: 24px 0 0; padding: 16px 0 0; border: 0; border-top: 1px solid var(--ea-line); }
.ea-cookies__details ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 40px; }
.ea-cookies__details li { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--ea-line); }
.ea-cookies__details label { display: block; font-weight: 600; font-size: 15px; }
.ea-cookies__details li span span { display: block; margin-top: 2px; font-size: 13px; color: var(--ea-soft); }
.ea-cookies__save { display: flex; justify-content: flex-end; margin-top: 16px; }
.ea-switch { appearance: none; -webkit-appearance: none; position: relative; flex-shrink: 0; width: 44px; height: 24px; margin: 2px 0 0; border: 1px solid color-mix(in srgb, var(--ea-ink) 60%, transparent); border-radius: 999px; background: var(--ea-paper); cursor: pointer; transition: background-color .2s, border-color .2s; }
.ea-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--ea-ink); transition: transform .25s var(--ea-ease), background-color .2s; }
.ea-switch:checked { background: var(--ea-wine); border-color: var(--ea-wine); }
.ea-switch:checked::after { transform: translateX(20px); background: var(--ea-paper); }
.ea-switch:disabled { opacity: .6; cursor: not-allowed; }
@media (min-width: 640px) {
	.ea-cookies__actions { display: flex; flex-wrap: wrap; }
	.ea-cookies__more { grid-column: auto; }
	.ea-cookies__details ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ea-cookies__details li { border-bottom: 0; }
}
@media (min-width: 1024px) { .ea-cookies__main { flex-direction: row; align-items: center; justify-content: space-between; gap: 40px; } }

/* ---------- Motion (home only, enhanced by JS) ---------- */
.ea-motion .ea-cover__title .ea-w > span { transform: translateY(105%); transition: transform .9s var(--ea-ease); }
.ea-motion.is-ready .ea-cover__title .ea-w > span { transform: none; }
.ea-motion .ea-cover__media img { transform: scale(1.08); transition: transform 1.4s var(--ea-ease); }
.ea-motion.is-ready .ea-cover__media img { transform: none; }
[data-ea-rise] { transition: transform .8s var(--ea-ease); }
[data-ea-rise].is-below { transform: translateY(24px); }
.ea-btn--magnetic { transition: background-color .2s, color .2s, border-color .2s, transform .45s var(--ea-ease); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.ea-cookies { transition: none; }
}

/* ---------- Share ---------- */
.ea-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.ea-share .ea-eyebrow { margin: 0; }
.ea-share ul { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0; padding: 0; }
.ea-share__btn { position: relative; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--ea-line); background: transparent; color: var(--ea-soft); cursor: pointer; text-decoration: none; transition: color .2s, border-color .2s, background-color .2s, transform .2s; }
.ea-share__btn:hover { color: var(--ea-wine); border-color: var(--ea-wine); }
.ea-share__btn:active { transform: scale(.94); }
.ea-share__copied { position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 12px; color: var(--ea-wine); pointer-events: none; }
.ea-share--top { padding-bottom: 24px; border-bottom: 1px solid var(--ea-line); margin-top: -8px; }
.ea-byline + .ea-share--top { padding-top: 16px; }
.ea-share--end { padding: 24px; background: var(--ea-card); border: 1px solid var(--ea-line); justify-content: space-between; }
.ea-share--end .ea-eyebrow { color: var(--ea-ink); }
