/*
Theme Name: Luhano Press
Theme URI: https://luhanopress.com.br
Author: Luhano Press
Description: An academic open-access publisher theme anchored in ink-blue and ivory, with Cormorant Garamond display type, Spectral body serif, and Inter utility sans. Designed for rigorous editorial publishing with university-press gravitas and generous negative space.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luhano-press
Tags: block-patterns, blog, custom-colors, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, one-column, sticky-post, translation-ready, wide-blocks
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
*/

/* ═══════════════════════════════════════════════════════════════
   FOUNDATIONS — global resets & root-level polish
   ═══════════════════════════════════════════════════════════════ */

html {
	scroll-behavior: smooth;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img {
	display: block;
}

/* ═══════════════════════════════════════════════════════════════
   STICKY HEADER
   ═══════════════════════════════════════════════════════════════ */

.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

.wp-site-blocks > header.wp-block-template-part::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	transition: background 0.4s ease, backdrop-filter 0.4s ease, -webkit-backdrop-filter 0.4s ease;
}

body.is-scrolled .wp-site-blocks > header.wp-block-template-part::before {
	background: var(--wp--preset--color--ink);
	box-shadow: 0 1px 0 var(--wp--preset--color--rule-light);
}

/* ═══════════════════════════════════════════════════════════════
   SITE HEADER INNER — .site-header className
   ═══════════════════════════════════════════════════════════════ */

.site-header {
	transition: padding 0.25s ease;
}

body.is-scrolled .site-header {
	padding-block: var(--wp--preset--spacing--20);
}

/* ═══════════════════════════════════════════════════════════════
   TYPOGRAPHY — polish beyond theme.json
   ═══════════════════════════════════════════════════════════════ */

h1 em,
h2 em,
h3 em {
	font-style: italic;
	font-weight: inherit;
	color: var(--wp--preset--color--muted);
}

/* Eyebrow / kicker pattern — small uppercase with gold rule */
.is-style-eyebrow,
.has-micro-font-size[style*="uppercase"] {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.is-style-eyebrow::before {
	content: "";
	display: block;
	width: 1.4rem;
	height: 1px;
	background: var(--wp--preset--color--gold);
	flex-shrink: 0;
}

/* Manifesto / large editorial pull text */
.is-style-manifesto {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	line-height: 1.4;
	letter-spacing: -0.01em;
}

/* ═══════════════════════════════════════════════════════════════
   LINKS — editorial underline treatments
   ═══════════════════════════════════════════════════════════════ */

a {
	transition: color 0.2s ease;
}

.wp-block-post-title a {
	text-decoration: none;
}

.wp-block-post-title a:hover {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--rule-light);
	text-underline-offset: 0.15em;
}

/* Gold-underlined inline links in body text */
.entry-content a:not(.wp-block-button__link),
.wp-block-post-content a:not(.wp-block-button__link) {
	text-decoration-color: var(--wp--preset--color--gold);
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}

.entry-content a:not(.wp-block-button__link):hover,
.wp-block-post-content a:not(.wp-block-button__link):hover {
	color: var(--wp--preset--color--gold);
	text-decoration: none;
}

/* ═══════════════════════════════════════════════════════════════
   NAVIGATION
   ═══════════════════════════════════════════════════════════════ */

.wp-block-navigation .wp-block-navigation-item__content {
	transition: color 0.2s ease;
}

.wp-block-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--ivory);
}

/* Submenu / dropdown polish */
.wp-block-navigation .wp-block-navigation__submenu-container {
	border-top: 2px solid var(--wp--preset--color--gold);
	border-radius: 0;
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE HAMBURGER OVERLAY
   ═══════════════════════════════════════════════════════════════ */

.wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: var(--wp--preset--spacing--40);
	align-items: flex-start;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: var(--wp--preset--font-size--large);
}

/* ═══════════════════════════════════════════════════════════════
   BUTTONS — ink-on-ivory default, gold-on-ink hover
   ═══════════════════════════════════════════════════════════════ */

.wp-block-button__link {
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Outline variant */
.is-style-outline .wp-block-button__link {
	border-width: 1px;
	border-style: solid;
}

/* Ghost button on dark surfaces */
.is-style-ghost .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--wp--preset--color--rule-gold);
	color: var(--wp--preset--color--ivory);
}

.is-style-ghost .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--ivory);
	background: transparent;
}

/* CTA button with gold border (used in nav-adjacent contexts) */
.is-style-cta-gold .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--wp--preset--color--gold);
	color: var(--wp--preset--color--gold);
}

.is-style-cta-gold .wp-block-button__link:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ink);
}

/* ═══════════════════════════════════════════════════════════════
   SEPARATOR — gold accent variant
   ═══════════════════════════════════════════════════════════════ */

.wp-block-separator.is-style-gold-rule {
	border-color: var(--wp--preset--color--rule-gold);
}

.wp-block-separator.is-style-gold-rule:not(.is-style-wide):not(.is-style-dots)::before {
	content: "◆";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	background: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--gold);
	font-size: var(--wp--preset--font-size--micro);
	padding: 0 0.5rem;
	line-height: 1;
}

.wp-block-separator.is-style-gold-rule {
	position: relative;
}

/* ═══════════════════════════════════════════════════════════════
   QUOTE & PULLQUOTE — editorial warmth
   ═══════════════════════════════════════════════════════════════ */

.wp-block-quote cite,
.wp-block-pullquote cite {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	display: block;
	margin-top: var(--wp--preset--spacing--30);
}

.wp-block-pullquote {
	text-align: left;
}

/* ═══════════════════════════════════════════════════════════════
   COVER BLOCK — hero-specific polish
   ═══════════════════════════════════════════════════════════════ */

.wp-block-cover .wp-block-cover__inner-container {
	max-width: 100%;
}

/* Hero kicker line inside cover */
.wp-block-cover .is-style-eyebrow {
	color: var(--wp--preset--color--gold);
}

.wp-block-cover .is-style-eyebrow::before {
	background: var(--wp--preset--color--gold);
}

/* Hero stat strip pattern */
.is-style-stat-strip {
	border-top: 1px solid var(--wp--preset--color--rule-gold);
}

.is-style-stat-strip .wp-block-column {
	border-right: 1px solid rgba(244, 239, 228, 0.07);
}

.is-style-stat-strip .wp-block-column:last-child {
	border-right: none;
}

/* ═══════════════════════════════════════════════════════════════
   IMAGE TREATMENTS — editorial restraint
   ═══════════════════════════════════════════════════════════════ */

.wp-block-image img {
	border-radius: 0;
}

.wp-block-image figcaption {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
	margin-top: var(--wp--preset--spacing--20);
	border-top: 1px solid var(--wp--preset--color--rule-light);
	padding-top: var(--wp--preset--spacing--20);
}

/* ═══════════════════════════════════════════════════════════════
   COLUMNS — editorial grids
   ═══════════════════════════════════════════════════════════════ */

/* NYT-style column dividers */
.is-style-divided-columns > .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--wp--preset--color--rule-light);
	padding-left: var(--wp--preset--spacing--40);
}

@media (max-width: 781px) {
	.is-style-divided-columns > .wp-block-column + .wp-block-column {
		border-left: none;
		padding-left: 0;
		border-top: 1px solid var(--wp--preset--color--rule-light);
		padding-top: var(--wp--preset--spacing--40);
	}
}

/* ═══════════════════════════════════════════════════════════════
   GROUP — band / section patterns
   ═══════════════════════════════════════════════════════════════ */

/* Dark band (ink background) text defaults */
.has-ink-background-color {
	color: var(--wp--preset--color--ivory);
}

.has-ink-background-color a:not(.wp-block-button__link) {
	color: var(--wp--preset--color--ivory);
	text-decoration-color: var(--wp--preset--color--rule-gold);
}

.has-ink-background-color a:not(.wp-block-button__link):hover {
	color: var(--wp--preset--color--gold);
}

/* Graphite band */
.has-graphite-background-color {
	color: var(--wp--preset--color--ivory);
}

/* Burgundy band (ticker, accent) */
.has-burgundy-background-color {
	color: var(--wp--preset--color--ivory);
}

/* Ivory dark band — subtle section break */
.has-ivory-dark-background-color {
	color: var(--wp--preset--color--graphite);
}

/* Gold left-border accent (callout boxes) */
.is-style-gold-border-left {
	border-left: 3px solid var(--wp--preset--color--gold);
	padding-left: var(--wp--preset--spacing--40);
}

/* Ink top-border accent (section headers, NYT-style) */
.is-style-ink-border-top {
	border-top: 3px solid var(--wp--preset--color--graphite);
	padding-top: var(--wp--preset--spacing--20);
}

/* ═══════════════════════════════════════════════════════════════
   POST TEMPLATE — book-cover grid & editorial cards
   ═══════════════════════════════════════════════════════════════ */

.wp-block-post-template {
	list-style: none;
}

/* Card hover lift */
.wp-block-post-template .wp-block-post {
	transition: transform 0.3s ease;
}

.wp-block-post-template .wp-block-post:hover {
	transform: translateY(-4px);
}

/* Book cover aspect ratio for featured images */
.is-style-book-grid .wp-block-post-featured-image {
	aspect-ratio: 155 / 235;
	overflow: hidden;
}

.is-style-book-grid .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Editorial card grid — hairline borders */
.is-style-editorial-grid .wp-block-post {
	border-bottom: 1px solid var(--wp--preset--color--rule-light);
	padding-bottom: var(--wp--preset--spacing--40);
}

/* ═══════════════════════════════════════════════════════════════
   POST TERMS — tag pill styling
   ═══════════════════════════════════════════════════════════════ */

.wp-block-post-terms a {
	display: inline-block;
	padding: 0.18rem 0.55rem;
	border: 1px solid var(--wp--preset--color--rule-gold);
	color: var(--wp--preset--color--gold);
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.wp-block-post-terms a:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ink);
}

/* ═══════════════════════════════════════════════════════════════
   TABLE — editorial data tables
   ═══════════════════════════════════════════════════════════════ */

.wp-block-table table {
	border-collapse: collapse;
}

.wp-block-table th {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	border-bottom: 2px solid var(--wp--preset--color--ink);
	padding: var(--wp--preset--spacing--30);
	text-align: left;
}

.wp-block-table td {
	border-bottom: 1px solid var(--wp--preset--color--rule-light);
	padding: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--graphite);
}

/* ═══════════════════════════════════════════════════════════════
   DETAILS / ACCORDION — FAQ pattern
   ═══════════════════════════════════════════════════════════════ */

.wp-block-details {
	border-bottom: 1px solid var(--wp--preset--color--rule-light);
	padding: var(--wp--preset--spacing--30) 0;
}

.wp-block-details summary {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 300;
	color: var(--wp--preset--color--gold);
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.wp-block-details[open] summary::after {
	transform: rotate(45deg);
}

.wp-block-details > *:not(summary) {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.8;
	color: var(--wp--preset--color--muted);
	padding-top: var(--wp--preset--spacing--20);
}

/* ═══════════════════════════════════════════════════════════════
   SEARCH — editorial search bar
   ═══════════════════════════════════════════════════════════════ */

.wp-block-search__input {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--medium);
	border: 1px solid var(--wp--preset--color--rule-light);
	background: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--graphite);
	padding: var(--wp--preset--spacing--30);
	border-radius: 0;
}

.wp-block-search__input:focus {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: -2px;
	border-color: var(--wp--preset--color--gold);
}

.wp-block-search__button {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ivory);
	border: none;
	border-radius: 0;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.wp-block-search__button:hover {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ink);
}

/* ═══════════════════════════════════════════════════════════════
   CATEGORIES & TAG CLOUD — sidebar polish
   ═══════════════════════════════════════════════════════════════ */

.wp-block-categories-list li,
.wp-block-archives-list li {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	padding: var(--wp--preset--spacing--20) 0;
	border-bottom: 1px solid var(--wp--preset--color--rule-light);
}

.wp-block-tag-cloud a {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--micro) !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	display: inline-block;
	padding: 0.2rem 0.55rem;
	border: 1px solid var(--wp--preset--color--rule-light);
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	margin: 0.15rem;
	transition: all 0.2s ease;
}

.wp-block-tag-cloud a:hover {
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--gold);
}

/* ═══════════════════════════════════════════════════════════════
   FOOTER — colophon rhythm
   ═══════════════════════════════════════════════════════════════ */

footer.wp-block-template-part .wp-block-heading {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--micro);
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold);
	margin-bottom: var(--wp--preset--spacing--30);
}

footer.wp-block-template-part .wp-block-navigation a {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	color: rgba(244, 239, 228, 0.4);
	text-decoration: none;
}

footer.wp-block-template-part .wp-block-navigation a:hover {
	color: var(--wp--preset--color--ivory);
}

/* Footer credit line */
footer.wp-block-template-part .wp-block-paragraph a {
	color: rgba(244, 239, 228, 0.35);
	text-decoration-color: rgba(176, 140, 79, 0.3);
}

footer.wp-block-template-part .wp-block-paragraph a:hover {
	color: rgba(244, 239, 228, 0.6);
}

/* Gold divider rule in footer brand column */
.is-style-footer-rule::after {
	content: "";
	display: block;
	width: 2rem;
	height: 1px;
	background: var(--wp--preset--color--gold);
	opacity: 0.4;
	margin-top: var(--wp--preset--spacing--30);
}

/* ═══════════════════════════════════════════════════════════════
   SERIES COLOR ACCENTS — category-coded borders & badges
   ═══════════════════════════════════════════════════════════════ */

.is-style-series-multi { border-left: 4px solid var(--wp--preset--color--series-multi); }
.is-style-series-exatas { border-left: 4px solid var(--wp--preset--color--series-exatas); }
.is-style-series-humanas { border-left: 4px solid var(--wp--preset--color--series-humanas); }
.is-style-series-vida { border-left: 4px solid var(--wp--preset--color--series-vida); }
.is-style-series-social { border-left: 4px solid var(--wp--preset--color--series-social); }
.is-style-series-periferia { border-left: 4px solid var(--wp--preset--color--series-periferia); }
.is-style-series-grafite { border-left: 4px solid var(--wp--preset--color--series-grafite); }

/* ═══════════════════════════════════════════════════════════════
   TICKER / MARQUEE BAND
   ═══════════════════════════════════════════════════════════════ */

.is-style-ticker {
	overflow: hidden;
	white-space: nowrap;
}

.is-style-ticker p {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.is-style-ticker strong {
	font-weight: 600;
}

/* ═══════════════════════════════════════════════════════════════
   COUNCIL / TEAM GRID — avatar initials
   ═══════════════════════════════════════════════════════════════ */

.is-style-council-grid {
	gap: 1px;
	background: var(--wp--preset--color--rule-light);
	border: 1px solid var(--wp--preset--color--rule-light);
}

.is-style-council-grid > * {
	background: var(--wp--preset--color--ivory);
	padding: var(--wp--preset--spacing--30);
}

/* ═══════════════════════════════════════════════════════════════
   OPEN ACCESS INFINITY GLYPH
   ═══════════════════════════════════════════════════════════════ */

.is-style-oa-glyph {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	line-height: 1;
	color: rgba(244, 239, 228, 0.12);
}

/* ═══════════════════════════════════════════════════════════════
   STEP / TIMELINE NUMBERS
   ═══════════════════════════════════════════════════════════════ */

.is-style-step-number {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 300;
	color: var(--wp--preset--color--gold);
	line-height: 1;
	min-width: 2.5rem;
}

/* ═══════════════════════════════════════════════════════════════
   GUIDE CARDS — left-color-accent grid items
   ═══════════════════════════════════════════════════════════════ */

.is-style-guide-card {
	border: 1px solid var(--wp--preset--color--rule-light);
	border-left-width: 3px;
	padding: var(--wp--preset--spacing--40);
}

.is-style-guide-card-gold { border-left-color: var(--wp--preset--color--gold); }
.is-style-guide-card-burgundy { border-left-color: var(--wp--preset--color--burgundy); }
.is-style-guide-card-graphite { border-left-color: var(--wp--preset--color--graphite); }

/* ═══════════════════════════════════════════════════════════════
   NEWSLETTER FORM PATTERN
   ═══════════════════════════════════════════════════════════════ */

.is-style-newsletter-form input[type="email"] {
	flex: 1;
	border: 1px solid var(--wp--preset--color--rule-light);
	padding: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--ivory);
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--graphite);
	border-radius: 0;
}

.is-style-newsletter-form input[type="email"]:focus {
	outline: 2px solid var(--wp--preset--color--gold);
	outline-offset: -2px;
}

.is-style-newsletter-form button[type="submit"] {
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ivory);
	border: none;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.is-style-newsletter-form button[type="submit"]:hover {
	background: var(--wp--preset--color--ink-light);
}

/* ═══════════════════════════════════════════════════════════════
   OPEN CALLS INDICATOR — pulsing dot
   ═══════════════════════════════════════════════════════════════ */

.is-style-pulse-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	animation: lp-pulse 1.4s ease-in-out infinite;
}

@keyframes lp-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.35; }
}

/* ═══════════════════════════════════════════════════════════════
   MAP / COLLECTION ROW — stripe anchor pattern
   ═══════════════════════════════════════════════════════════════ */

.is-style-map-row {
	display: flex;
	gap: 0;
	margin-bottom: 1px;
	background: rgba(30, 36, 64, 0.06);
}

.is-style-map-anchor {
	width: 5px;
	flex-shrink: 0;
}

.is-style-map-content {
	flex: 1;
	background: var(--wp--preset--color--ivory);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

/* ═══════════════════════════════════════════════════════════════
   LEGEND DOT
   ═══════════════════════════════════════════════════════════════ */

.is-style-legend-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════
   BADGE — inline metadata pills
   ═══════════════════════════════════════════════════════════════ */

.is-style-badge {
	display: inline-block;
	font-family: var(--wp--preset--font-family--ui);
	font-size: var(--wp--preset--font-size--micro);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-weight: 600;
	padding: 0.22rem 0.6rem;
	border: 1px solid currentColor;
}

/* ═══════════════════════════════════════════════════════════════
   SCROLL-DRIVEN — hero content fade
   ═══════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: scroll()) {
		.hero-content {
			opacity: 1;
			transform: translateY(0);
			animation: hero-fade linear both;
			animation-timeline: scroll(root);
			animation-range: 0px 60vh;
		}

		@keyframes hero-fade {
			from {
				opacity: 1;
				transform: translateY(0);
			}
			to {
				opacity: 0;
				transform: translateY(-40px);
			}
		}
	}
}

/* ═══════════════════════════════════════════════════════════════
   LOOP LAYOUT UTILITIES
   ═══════════════════════════════════════════════════════════════ */

/* Horizontal scrollable rail */
.wp-block-query.is-style-loop-rail .wp-block-post-template {
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	padding-bottom: var(--wp--preset--spacing--20);
}

.wp-block-query.is-style-loop-rail .wp-block-post-template > * {
	flex: 0 0 320px;
	scroll-snap-align: start;
}

/* Compact list with hairline row dividers */
.wp-block-query.is-style-loop-list .wp-block-post-template > * {
	border-bottom: 1px solid var(--wp--preset--color--rule-light);
	padding-block: var(--wp--preset--spacing--30);
}

.wp-block-query.is-style-loop-list .wp-block-post-template > *:last-child {
	border-bottom: 0;
}

/* Zigzag — flip the columns inside every even entry */
.wp-block-query.is-style-loop-zigzag .wp-block-post-template > *:nth-child(even) .wp-block-columns {
	flex-direction: row-reverse;
}

/* Timeline — vertical line with node markers per entry */
.wp-block-query.is-style-loop-timeline .wp-block-post-template {
	position: relative;
	padding-inline-start: 2.5rem;
}

.wp-block-query.is-style-loop-timeline .wp-block-post-template::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0.5rem;
	width: 2px;
	background: var(--wp--preset--color--rule-light);
}

.wp-block-query.is-style-loop-timeline .wp-block-post-template > * {
	position: relative;
}

.wp-block-query.is-style-loop-timeline .wp-block-post-template > *::before {
	content: "";
	position: absolute;
	inset-inline-start: -2.25rem;
	inset-block-start: 0.6rem;
	width: 1rem;
	height: 1rem;
	border: 2px solid var(--wp--preset--color--gold);
	border-radius: 50%;
	background: var(--wp--preset--color--ivory);
}

/* Magazine — first child spans 2 columns of the grid */
.wp-block-query.is-style-loop-magazine .wp-block-post-template > *:first-child {
	grid-column: span 2;
}

@media (max-width: 600px) {
	.wp-block-query.is-style-loop-magazine .wp-block-post-template > *:first-child {
		grid-column: auto;
	}
}

/* ═══════════════════════════════════════════════════════════════
   OVERFLOW SAFETY (sticky positioning)
   ═══════════════════════════════════════════════════════════════ */

:root,
body,
.wp-site-blocks {
	overflow: visible;
}