/* ==========================================================================
   La Nuova Nascita - main stylesheet
   Mobile first. Breakpoints: 480 / 768 / 1024 / 1100 (desktop nav) / 1440.

    1. Fonts                 9. Welcome bento
    2. Tokens               10. Activities
    3. Base                 11. Footer
    4. Layout & utilities   12. Page header & body
    5. Buttons & pills      13. Content (Gutenberg blocks from the old site) + 13b composed pages
    6. Header               14. Password form
    7. Menu toggle/overlay  15. Lists, search, 404
    8. Hero                 16. Motion
   ========================================================================== */

/* 1. Fonts ---------------------------------------------------------------- */

@font-face {
	font-family: "Manrope";
	src: url("../fonts/manrope-latin-wght-normal.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Newsreader";
	src: url("../fonts/newsreader-latin-wght-italic.woff2") format("woff2");
	font-weight: 200 800;
	font-style: italic;
	font-display: swap;
}

/* 2. Tokens --------------------------------------------------------------- */

:root {
	--ink: #14100d;
	--espresso: #1f1813;
	--umber: #2a2019;
	--bark: #3a2c21;
	--amber: #e3a857;
	--amber-soft: #f0c88e;
	--amber-deep: #8f5716;
	--cream: #f6efe5;
	--paper: #fbf8f3;
	--sand: #cdbfae;
	--stone: #4a3f36;
	--white: #fff;
	--line-dark: rgba(246, 239, 229, 0.12);
	--line-light: rgba(20, 16, 13, 0.1);

	--font-sans: "Manrope", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--font-serif: "Newsreader", ui-serif, Georgia, "Times New Roman", serif;

	--radius-sm: 14px;
	--radius: 24px;
	--radius-lg: 32px;
	--radius-sheet: clamp(28px, 4vw, 48px);
	--shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 24px 48px -24px rgba(0, 0, 0, 0.55);
	--shadow-soft: 0 1px 2px rgba(20, 16, 13, 0.06), 0 24px 48px -30px rgba(20, 16, 13, 0.5);

	/* Spacing presets used inline by content written under Sonoran. */
	--wp--preset--spacing--superbspacing-xxsmall: clamp(5px, 1vw, 10px);
	--wp--preset--spacing--superbspacing-xsmall: clamp(10px, 2vw, 20px);
	--wp--preset--spacing--superbspacing-small: clamp(20px, 4vw, 40px);
	--wp--preset--spacing--superbspacing-medium: clamp(30px, 6vw, 60px);
	--wp--preset--spacing--superbspacing-large: clamp(40px, 8vw, 80px);
	--wp--preset--spacing--superbspacing-xlarge: clamp(50px, 10vw, 100px);
	--wp--preset--spacing--superbspacing-xxlarge: clamp(60px, 12vw, 120px);

	--gutter: clamp(16px, 4vw, 40px);
	--container: 1240px;
	--header-h: 88px;
	--overlap: 0px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

@media (min-width: 1024px) {
	:root {
		--overlap: 150px;
		--header-h: 104px;
	}
}

/* 3. Base ----------------------------------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: 24px;
}

body {
	position: relative;
	margin: 0;
	min-height: 100vh;
	background: var(--ink);
	color: var(--cream);
	font-family: var(--font-sans);
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: -0.02em;
	text-wrap: balance;
}

p {
	margin: 0 0 1em;
	text-wrap: pretty;
}

::selection {
	background: var(--amber);
	color: var(--ink);
}

:focus-visible {
	outline: 2px solid var(--amber);
	outline-offset: 3px;
}

.icon {
	width: 1em;
	height: 1em;
	flex: none;
}

/* 4. Layout & utilities --------------------------------------------------- */

.container {
	width: 100%;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
	word-wrap: normal !important;
}

.skip-link:focus {
	position: fixed !important;
	z-index: 100;
	top: 12px;
	left: 12px;
	width: auto;
	height: auto;
	margin: 0;
	padding: 12px 20px;
	clip: auto;
	border-radius: 999px;
	background: var(--cream);
	color: var(--ink);
	font-weight: 600;
	text-decoration: none;
}

/* 5. Buttons & pills ------------------------------------------------------ */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 52px;
	padding: 0.8em 1.5em;
	border: 0;
	border-radius: 999px;
	font: 600 1rem/1.2 var(--font-sans);
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease);
}

.btn--ink {
	background: var(--ink);
	color: var(--cream);
}

.btn--ink:hover {
	background: var(--bark);
}

.btn--amber {
	background: var(--amber);
	color: var(--ink);
}

.btn--amber:hover {
	background: var(--amber-soft);
}

.pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	min-height: 44px;
	padding: 0.5em 1.1em;
	border-radius: 999px;
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease);
}

.pill--ghost {
	background: rgba(246, 239, 229, 0.07);
	border: 1px solid rgba(246, 239, 229, 0.16);
	color: var(--cream);
}

.pill--ghost:hover {
	background: var(--cream);
	color: var(--ink);
}

.pill .icon {
	width: 1.1em;
	height: 1.1em;
}

.icon-pill {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--cream);
	color: var(--ink);
	transition: background-color 0.25s var(--ease), transform 0.25s var(--ease);
}

.icon-pill:hover {
	background: var(--amber);
}

.icon-pill .icon {
	width: 20px;
	height: 20px;
}

/* Zona Membri / Zona Campisti */
.zone-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.zone-pills a {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	min-height: 44px;
	padding: 0.55em 1.1em;
	border: 1px solid rgba(246, 239, 229, 0.3);
	border-radius: 999px;
	background: rgba(20, 16, 13, 0.35);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	color: var(--cream);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease);
}

.zone-pills .icon {
	color: var(--amber);
	transition: transform 0.3s var(--ease), color 0.25s var(--ease);
}

.zone-pills a:hover,
.zone-pills [aria-current] {
	border-color: var(--cream);
	background: var(--cream);
	color: var(--ink);
}

.zone-pills a:hover .icon,
.zone-pills [aria-current] .icon {
	color: var(--amber-deep);
	transform: translate(2px, -2px);
}

/* 6. Header --------------------------------------------------------------- */

/* The header floats over the hero / page header on every page, so their
   photo or glow reaches the top of the screen. */
.site-header {
	position: absolute;
	z-index: 20;
	inset: 0 0 auto;
}

.site-header__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: var(--header-h);
	padding-block: 14px;
}

.brand {
	display: inline-flex;
	flex: none;
	align-items: center;
	border-radius: 8px;
	text-decoration: none;
}

.brand__logo {
	display: block;
	width: 124px;
	height: auto;
}

.brand__name {
	font-weight: 600;
	letter-spacing: -0.02em;
}

.primary-nav {
	display: none;
}

.primary-nav__list {
	display: flex;
	gap: clamp(18px, 2vw, 34px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-nav__list a {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 10px 2px;
	color: rgba(246, 239, 229, 0.86);
	font-size: 0.9375rem;
	font-weight: 500;
	text-decoration: none;
	transition: color 0.2s var(--ease);
}

.primary-nav__list a::after {
	content: "";
	position: absolute;
	right: 2px;
	bottom: 4px;
	left: 2px;
	height: 1px;
	background: var(--amber);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--ease);
}

.primary-nav__list a:hover,
.primary-nav__list [aria-current] {
	color: var(--cream);
}

.primary-nav__list a:hover::after,
.primary-nav__list [aria-current]::after {
	transform: scaleX(1);
}

.icon--ext {
	width: 0.85em;
	height: 0.85em;
	opacity: 0.7;
}

.header-actions {
	display: none;
	align-items: center;
	gap: 10px;
	margin-left: auto;
}

@media (min-width: 768px) {
	.brand__logo {
		width: 160px;
	}

	.header-actions {
		display: flex;
	}
}

@media (min-width: 1100px) {
	.primary-nav {
		display: block;
		margin-inline: auto;
	}

	.header-actions {
		margin-left: 0;
	}
}

/* 7. Menu toggle & overlay (below 1100px) --------------------------------- */

.menu-toggle {
	position: fixed;
	z-index: 60;
	bottom: max(16px, env(safe-area-inset-bottom));
	left: 50%;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 54px;
	padding: 0 24px 0 18px;
	border: 1px solid rgba(246, 239, 229, 0.18);
	border-radius: 999px;
	background: rgba(20, 16, 13, 0.8);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 12px 32px -12px rgba(0, 0, 0, 0.7);
	color: var(--cream);
	font: 600 0.9375rem/1 var(--font-sans);
	cursor: pointer;
	transform: translateX(-50%);
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease);
}

.menu-toggle__icons {
	display: grid;
	width: 22px;
	height: 22px;
}

.menu-toggle .icon {
	grid-area: 1 / 1;
	width: 22px;
	height: 22px;
	transition: opacity 0.2s var(--ease), transform 0.3s var(--ease);
}

.menu-toggle__close {
	opacity: 0;
	transform: rotate(-45deg);
}

.menu-open .menu-toggle {
	background: var(--cream);
	color: var(--ink);
}

.menu-open .menu-toggle__open {
	opacity: 0;
	transform: rotate(45deg);
}

.menu-open .menu-toggle__close {
	opacity: 1;
	transform: none;
}

.menu-open body {
	overflow: hidden;
}

.menu-overlay {
	position: fixed;
	z-index: 50;
	inset: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	background: var(--ink);
	color: var(--cream);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s var(--ease), visibility 0s linear 0.3s;
}

.menu-open .menu-overlay {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.3s var(--ease);
}

.menu-overlay__glow {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(90% 55% at 85% 0%, rgba(227, 168, 87, 0.3), transparent 62%),
		radial-gradient(70% 40% at 0% 100%, rgba(227, 168, 87, 0.12), transparent 70%);
	pointer-events: none;
}

.menu-overlay__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 28px;
	min-height: 100%;
	padding-top: 18px;
	padding-bottom: calc(112px + env(safe-area-inset-bottom));
}

.brand--overlay {
	align-self: flex-start;
	margin-bottom: auto;
}

/* Links sit low on the screen, where thumbs reach. */
.overlay-nav__list {
	display: grid;
	gap: 2px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.overlay-nav__list a {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 6px 0;
	color: var(--cream);
	font-size: clamp(2rem, 1.2rem + 4vw, 3rem);
	font-weight: 300;
	letter-spacing: -0.035em;
	line-height: 1.1;
	text-decoration: none;
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.5s var(--ease), transform 0.5s var(--ease), color 0.2s;
}

.overlay-nav__list .icon--ext {
	width: 0.5em;
	height: 0.5em;
}

.menu-open .overlay-nav__list a {
	opacity: 1;
	transform: none;
}

.menu-open .overlay-nav__list li:nth-child(2) a { transition-delay: 0.04s, 0.04s, 0s; }
.menu-open .overlay-nav__list li:nth-child(3) a { transition-delay: 0.08s, 0.08s, 0s; }
.menu-open .overlay-nav__list li:nth-child(4) a { transition-delay: 0.12s, 0.12s, 0s; }
.menu-open .overlay-nav__list li:nth-child(5) a { transition-delay: 0.16s, 0.16s, 0s; }
.menu-open .overlay-nav__list li:nth-child(n+6) a { transition-delay: 0.2s, 0.2s, 0s; }

.overlay-nav__list a:hover,
.overlay-nav__list [aria-current] {
	color: var(--amber);
}

.zone-pills--overlay a {
	min-height: 52px;
	padding-inline: 1.3em;
	font-size: 1rem;
}

.menu-overlay__meta {
	display: flex;
	gap: 10px;
}

@media (min-width: 1100px) {
	.menu-toggle,
	.menu-overlay {
		display: none;
	}
}

/* Without JavaScript the toggle cannot work: show the menu as a plain block. */
.no-js .menu-toggle {
	display: none;
}

.no-js .menu-overlay {
	position: static;
	opacity: 1;
	visibility: visible;
}

.no-js .overlay-nav__list a {
	opacity: 1;
	transform: none;
}

/* 8. Hero ----------------------------------------------------------------- */

.hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: max(620px, 100vh);
	min-height: max(620px, 100svh);
	padding-top: calc(var(--header-h) + 40px);
	padding-bottom: calc(var(--overlap) + clamp(40px, 7vw, 72px));
	overflow: hidden;
}

/* Keep the hero text clear of the floating menu button. */
@media (max-width: 1099px) {
	.hero {
		padding-bottom: calc(var(--overlap) + 108px);
	}
}

.hero__media {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: var(--espresso);
}

.hero__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 62% 50%;
}

/* Golden-hour grade over the (unchanged) photo. */
.hero__tint {
	position: absolute;
	inset: 0;
	background: linear-gradient(160deg, #f6bd6a 0%, #b8692a 55%, #3b1f0e 100%);
	mix-blend-mode: soft-light;
	opacity: 0.8;
}

.hero__shade {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(70% 55% at 88% 4%, rgba(255, 196, 120, 0.3), transparent 62%),
		linear-gradient(180deg, rgba(20, 16, 13, 0.6) 0%, rgba(20, 16, 13, 0) 24%, rgba(20, 16, 13, 0) 40%, rgba(20, 16, 13, 0.62) 72%, var(--ink) 100%),
		linear-gradient(90deg, rgba(20, 16, 13, 0.6) 0%, rgba(20, 16, 13, 0) 70%);
}

.hero__content {
	position: relative;
}

.hero__title {
	max-width: 9.5em;
	margin: 0;
	color: var(--cream);
	font-size: clamp(2.45rem, 1rem + 6.3vw, 6.5rem);
	font-weight: 300;
	letter-spacing: -0.045em;
	line-height: 1;
	animation: lnn-rise 1.1s var(--ease) 0.1s both;
}

.hero__title-accent {
	display: block;
	margin-top: 0.06em;
	color: var(--amber-soft);
	font-family: var(--font-serif);
	font-style: italic;
	font-weight: 300;
	letter-spacing: -0.025em;
}

.hero__verse {
	display: grid;
	gap: 12px;
	max-width: 34em;
	margin: clamp(20px, 3vw, 32px) 0 0;
	animation: lnn-rise 1.1s var(--ease) 0.3s both;
}

.hero__verse-text {
	color: rgba(246, 239, 229, 0.95);
	font-family: var(--font-serif);
	font-size: clamp(1.2rem, 1rem + 0.9vw, 1.65rem);
	font-style: italic;
	font-weight: 350;
	line-height: 1.35;
}

.hero__verse-ref {
	color: var(--sand);
	font-size: 0.8125rem;
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.zone-pills--hero {
	margin-top: 28px;
	animation: lnn-rise 1.1s var(--ease) 0.45s both;
}

@media (min-width: 768px) {
	.zone-pills--hero {
		display: none;
	}
}

@keyframes lnn-rise {
	from {
		opacity: 0;
		transform: translateY(18px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* 9. Welcome bento -------------------------------------------------------- */

.welcome {
	position: relative;
	z-index: 2;
	margin-top: calc(var(--overlap) * -1);
	padding-top: 8px;
	padding-bottom: clamp(56px, 9vw, 112px);
}

.bento {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

.tile {
	position: relative;
	overflow: hidden;
	margin: 0;
	padding: clamp(24px, 3.2vw, 44px);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}

.tile--welcome {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 18px;
	background: var(--cream);
	color: var(--ink);
}

.tile__star {
	position: absolute;
	top: clamp(24px, 3.2vw, 44px);
	right: clamp(24px, 3.2vw, 44px);
	width: 30px;
	height: 30px;
	color: var(--amber-deep);
}

.tile__display {
	margin: 0;
	font-size: clamp(2.75rem, 1.6rem + 4.4vw, 5.25rem);
	font-weight: 300;
	letter-spacing: -0.05em;
	line-height: 1;
}

.tile__lead {
	max-width: 36ch;
	margin: 0;
	color: var(--stone);
	font-size: clamp(1.0625rem, 1rem + 0.4vw, 1.3rem);
	line-height: 1.6;
}

.tile--welcome .btn {
	margin-top: 8px;
}

.tile--quote {
	display: flex;
	flex-direction: column;
	gap: 16px;
	background: var(--umber);
	color: var(--cream);
}

.tile__quote-mark {
	width: 34px;
	height: 34px;
	color: var(--amber);
}

.tile__quote {
	margin: 0;
}

.tile__quote p {
	margin: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.75rem);
	font-style: italic;
	font-weight: 350;
	line-height: 1.38;
}

.tile__cite {
	margin-top: auto;
	color: var(--sand);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.tile--photo {
	aspect-ratio: 4 / 3;
	padding: 0;
	background: var(--umber);
}

.tile__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.4s var(--ease);
}

.tile--event {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	min-height: 200px;
	background: var(--white);
	color: var(--ink);
	text-decoration: none;
}

.tile__event-title {
	max-width: 8ch;
	margin: 0;
	font-size: clamp(1.85rem, 1.3rem + 1.6vw, 2.6rem);
	font-weight: 400;
	letter-spacing: -0.04em;
	line-height: 1.02;
}

.tile__event-arrow {
	display: inline-grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--ink);
	color: var(--cream);
	transition: background-color 0.3s var(--ease), color 0.3s var(--ease);
}

.tile__event-arrow .icon {
	width: 22px;
	height: 22px;
	transition: transform 0.3s var(--ease);
}

.tile__event-star {
	position: absolute;
	right: clamp(24px, 3.2vw, 36px);
	bottom: clamp(24px, 3.2vw, 36px);
	width: 44px;
	height: 44px;
	color: var(--ink);
	transition: transform 1.2s var(--ease);
}

/* Flyer from the Eventi page's featured image ("Immagine in evidenza"):
   title on top, the flyer (never cropped) and the arrow below. */
.tile--has-flyer {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-rows: auto 1fr;
	align-items: end;
	gap: 22px 16px;
}

.tile--has-flyer .tile__event-title {
	grid-column: 1 / -1;
	align-self: start;
}

.tile__flyer {
	display: block;
	grid-row: 2;
	grid-column: 1;
	transform: rotate(-3deg);
	transform-origin: bottom left;
	transition: transform 0.5s var(--ease);
}

.tile__flyer-img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 200px;
	border-radius: 6px;
	box-shadow: 0 1px 2px rgba(20, 16, 13, 0.15), 0 18px 30px -14px rgba(20, 16, 13, 0.55);
}

.tile--has-flyer .tile__event-arrow {
	grid-row: 2;
	grid-column: 2;
	justify-self: end;
}

@media (min-width: 1024px) {
	.tile__flyer-img {
		max-height: 170px;
	}
}

@media (hover: hover) {
	.tile--has-flyer:hover .tile__flyer {
		transform: rotate(0deg) scale(1.03);
	}

	.tile--photo:hover .tile__img {
		transform: scale(1.04);
	}

	.tile--event:hover .tile__event-arrow {
		background: var(--amber);
		color: var(--ink);
	}

	.tile--event:hover .tile__event-arrow .icon {
		transform: translate(2px, -2px);
	}

	.tile--event:hover .tile__event-star {
		transform: rotate(45deg);
	}
}

@media (min-width: 768px) {
	.bento {
		grid-template-columns: repeat(6, 1fr);
	}

	.tile--welcome,
	.tile--quote {
		grid-column: 1 / -1;
	}

	.tile--photo {
		grid-column: 1 / span 3;
		aspect-ratio: auto;
		min-height: 260px;
	}

	.tile--event {
		grid-column: 4 / span 3;
	}
}

@media (min-width: 1024px) {
	.bento {
		grid-template-columns: repeat(12, 1fr);
		grid-template-rows: minmax(250px, auto) minmax(250px, auto);
		gap: 14px;
	}

	.tile--welcome {
		grid-column: 1 / span 6;
		grid-row: 1 / span 2;
		justify-content: flex-end;
		padding: 48px;
	}

	.tile--welcome .btn {
		margin-top: 16px;
	}

	.tile--quote {
		grid-column: 7 / span 6;
		grid-row: 1;
	}

	.tile--photo {
		grid-column: 7 / span 3;
		grid-row: 2;
		min-height: 0;
	}

	.tile--event {
		grid-column: 10 / span 3;
		grid-row: 2;
	}
}

/* 10. Activities ---------------------------------------------------------- */

.activities {
	padding-block: clamp(64px, 10vw, 128px);
	border-radius: var(--radius-sheet);
	background: var(--cream);
	color: var(--ink);
}

.section-head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: clamp(28px, 4vw, 52px);
}

.section-head__star {
	width: 34px;
	height: 34px;
	color: var(--amber-deep);
}

.section-title {
	margin: 0;
	font-size: clamp(2.25rem, 1.3rem + 3.8vw, 4.5rem);
	font-weight: 300;
	letter-spacing: -0.05em;
	line-height: 1.02;
}

.activity-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

.activity {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 400px;
	overflow: hidden;
	border-radius: var(--radius);
	background: var(--espresso);
	box-shadow: var(--shadow-soft);
	color: var(--cream);
}

.activity__media {
	position: absolute;
	z-index: -1;
	inset: 0;
}

.activity__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(20, 16, 13, 0) 20%, rgba(20, 16, 13, 0.6) 52%, rgba(20, 16, 13, 0.94) 100%);
}

.activity__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.4s var(--ease);
}

.activity__body {
	display: grid;
	gap: 10px;
	padding: clamp(22px, 2.6vw, 32px);
}

.activity__title {
	margin: 0;
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.1;
}

.activity__text {
	max-width: 46ch;
	margin: 0;
	color: rgba(246, 239, 229, 0.88);
	font-size: 1rem;
	line-height: 1.55;
}

.activity__link {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	margin-top: 4px;
	padding: 10px 0;
	color: var(--amber-soft);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}

/* The whole tile is clickable; the real link is "Scopri di più". */
.activity__link::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
}

.activity__link:focus-visible {
	outline: none;
}

.activity:has(.activity__link:focus-visible) {
	outline: 2px solid var(--amber-deep);
	outline-offset: 4px;
}

.activity__arrow {
	display: inline-block;
	transition: transform 0.3s var(--ease);
}

.activity--sunday .activity__title {
	font-size: clamp(1.85rem, 1.2rem + 2.2vw, 3.25rem);
	font-weight: 400;
}

.activity--sunday .activity__text {
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.2rem);
}

@media (hover: hover) {
	.activity:hover .activity__img {
		transform: scale(1.045);
	}

	.activity:hover .activity__arrow {
		transform: translateX(4px);
	}
}

@media (min-width: 768px) {
	.activity-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}

	.activity--sunday {
		grid-column: 1 / -1;
		min-height: 500px;
	}
}

@media (min-width: 1024px) {
	.activity-grid {
		grid-template-columns: repeat(4, 1fr);
		grid-template-rows: minmax(260px, auto) minmax(260px, auto) minmax(330px, auto);
		grid-template-areas:
			"sunday sunday prayer music"
			"sunday sunday prayer music"
			"study study youth youth";
	}

	.activity {
		min-height: 0;
	}

	.activity--sunday { grid-area: sunday; min-height: 0; }
	.activity--prayer { grid-area: prayer; }
	.activity--music  { grid-area: music; }
	.activity--study  { grid-area: study; }
	.activity--youth  { grid-area: youth; }
}

/* 11. Footer -------------------------------------------------------------- */

.site-footer {
	position: relative;
	overflow: hidden;
	padding-top: clamp(56px, 8vw, 96px);
	padding-bottom: 120px; /* room for the floating menu button */
	color: var(--sand);
}

.site-footer__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(60% 70% at 100% 100%, rgba(227, 168, 87, 0.12), transparent 70%);
	pointer-events: none;
}

.site-footer .container {
	position: relative;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px 24px;
}

.site-footer__brand {
	display: flex;
	grid-column: 1 / -1;
	align-items: center;
	justify-content: space-between;
}

.brand--footer .brand__logo {
	width: 150px;
}

.site-footer__star {
	width: 32px;
	height: 32px;
	color: var(--amber);
}

.footer-col__title {
	margin: 0 0 12px;
	color: var(--cream);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.footer-col__title a {
	text-decoration: none;
}

.footer-links {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-links a,
.footer-contact a {
	display: inline-block;
	padding-block: 9px;
	color: var(--sand);
	font-size: 1rem;
	text-decoration: none;
	transition: color 0.2s var(--ease);
}

.footer-links a:hover,
.footer-contact a:hover,
.footer-links [aria-current] {
	color: var(--cream);
	text-decoration: underline;
}

.footer-contact {
	display: grid;
	margin: 0;
}

.footer-contact__label {
	color: rgba(205, 191, 174, 0.8);
	font-size: 0.875rem;
}

/* Phones: the e-mail address needs the full row to stay on one line. */
@media (max-width: 767px) {
	.footer-col--contact {
		grid-column: 1 / -1;
	}
}

.footer-contact a {
	overflow-wrap: anywhere;
}

.social-pill {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 8px 20px 8px 14px;
	border: 1px solid rgba(246, 239, 229, 0.16);
	border-radius: 999px;
	background: rgba(246, 239, 229, 0.06);
	color: var(--cream);
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease);
}

.social-pill .icon {
	width: 22px;
	height: 22px;
}

.social-pill:hover {
	background: var(--cream);
	color: var(--ink);
}

.site-footer__credit {
	margin: 56px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--line-dark);
	color: rgba(205, 191, 174, 0.8);
	font-size: 0.8125rem;
}

@media (min-width: 768px) {
	.site-footer__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (min-width: 1024px) {
	.site-footer__grid {
		grid-template-columns: 1.5fr repeat(4, 1fr);
	}

	.site-footer__brand {
		flex-direction: column;
		grid-column: auto;
		align-items: flex-start;
		gap: 28px;
	}
}

@media (min-width: 1100px) {
	.site-footer {
		padding-bottom: 40px;
	}
}

/* 12. Page header & body -------------------------------------------------- */

.page-header {
	position: relative;
	overflow: hidden;
	padding-top: calc(var(--header-h) + clamp(20px, 5vw, 72px));
	padding-bottom: clamp(36px, 5vw, 72px);
}

.page-header__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(55% 90% at 88% 0%, rgba(227, 168, 87, 0.22), transparent 62%);
	pointer-events: none;
}

.page-header__inner {
	position: relative;
}

.page-header__parent {
	margin-bottom: 22px;
}

.page-title {
	max-width: 18ch;
	margin: 0;
	color: var(--cream);
	font-size: clamp(2.2rem, 1.3rem + 3.8vw, 4.75rem);
	font-weight: 300;
	letter-spacing: -0.045em;
	line-height: 1.04;
	overflow-wrap: break-word;
	animation: lnn-rise 0.9s var(--ease) both;
}

.page-header__sub {
	margin: 16px 0 0;
	color: var(--sand);
}

.page-body {
	padding-top: clamp(36px, 6vw, 80px);
	padding-bottom: clamp(64px, 9vw, 112px);
	border-radius: var(--radius-sheet);
	background: var(--espresso);
}

/* 13. Content (blocks written in the old editor) -------------------------- */

.entry-content {
	color: var(--cream);
	font-size: 1.0625rem;
	line-height: 1.7;
}

.entry-content::after {
	content: "";
	display: table;
	clear: both;
}

/* Reading width for text, wider for layout blocks. Old content carries
   inline side margins meant for the previous layout: the column is centred
   regardless. */
.entry-content > * {
	max-width: 760px;
	margin-inline: auto !important;
	margin-block: 0;
}

.entry-content > * + * {
	margin-block-start: 1.4em;
}

.entry-content > .alignwide,
.entry-content > .wp-block-columns,
.entry-content > .wp-block-media-text,
.entry-content > .wp-block-group,
.entry-content > .wp-block-cover,
.entry-content > .wp-block-gallery,
.entry-content > .wp-block-embed,
.entry-content > .wp-block-video,
.entry-content > .wp-block-table,
.entry-content > .wp-block-image,
.entry-content > .wp-block-buttons,
.entry-content > .wp-block-file,
.entry-content > iframe,
.entry-content > p:has(> iframe),
.entry-content > div[data-aidaform-app] {
	max-width: 1200px;
}

/* Old pages use full-width groups only as wrappers (no backgrounds):
   keep them in the page column so text lines up with the title. */
.entry-content > .alignfull {
	max-width: 1200px;
}

.entry-content .alignfull .alignfull,
.entry-content .alignfull .alignwide {
	max-width: 100%;
	margin-inline: 0;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4 {
	font-weight: 400;
	letter-spacing: -0.03em;
	line-height: 1.15;
}

.entry-content h1 { font-size: clamp(2.2rem, 1.5rem + 2.8vw, 3.5rem); font-weight: 300; }
.entry-content h2 { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.6rem); font-weight: 300; }
.entry-content h3 { font-size: clamp(1.35rem, 1.2rem + 0.6vw, 1.7rem); }
.entry-content h4 { font-size: 1.2rem; font-weight: 600; }

.entry-content > h2,
.entry-content > h3 {
	margin-block-start: 1.8em;
}

:where(.entry-content) a {
	color: var(--amber-soft);
}

:where(.entry-content) a:hover {
	color: var(--cream);
}

.entry-content strong,
.entry-content b {
	font-weight: 700;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.3em;
}

.entry-content li + li {
	margin-top: 0.35em;
}

.entry-content li::marker {
	color: var(--amber);
}

.entry-content mark.has-inline-color {
	padding: 0;
}

/* Core "vivid red" (e.g. "Iscrizioni chiuse...") is too dark on espresso;
   a lighter red keeps the warning readable (AA). */
.entry-content .has-vivid-red-color {
	color: #ff7a6b !important;
}

.entry-content hr,
.entry-content .wp-block-separator {
	height: 1px;
	margin-block: 2.5em;
	border: 0;
	background: var(--line-dark);
	opacity: 1;
}

.entry-content .wp-block-separator.has-background {
	opacity: 0.5;
}

.entry-content blockquote,
.entry-content .wp-block-pullquote {
	margin-inline: auto;
	padding: 0.4em 0 0.4em 1.2em;
	border: 0;
	border-left: 2px solid var(--amber);
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.6rem);
	font-style: italic;
	line-height: 1.4;
	text-align: left;
}

.entry-content .wp-block-pullquote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: inherit;
}

.entry-content .wp-block-pullquote cite,
.entry-content blockquote cite {
	display: block;
	margin-top: 0.6em;
	color: var(--sand);
	font-family: var(--font-sans);
	font-size: 0.8125rem;
	font-style: normal;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.entry-content img {
	border-radius: var(--radius-sm);
}

.entry-content figure {
	margin-inline: auto;
}

/* Phones: no room for floated images next to text. */
@media (max-width: 599px) {
	.entry-content .alignleft,
	.entry-content .alignright {
		float: none;
		margin: 0 auto 1em;
	}

	.entry-content .wp-block-image .alignleft img,
	.entry-content .wp-block-image .alignright img {
		width: 100% !important;
	}
}

.entry-content figcaption,
.entry-content .wp-element-caption {
	margin-top: 0.6em;
	color: var(--sand);
	font-size: 0.875rem;
	text-align: center;
}

.entry-content .wp-block-columns {
	gap: clamp(16px, 3vw, 40px);
	margin-bottom: 0;
}

.entry-content .wp-block-column > * + * {
	margin-top: 1em;
}

.entry-content .wp-block-column > :first-child {
	margin-top: 0;
}

.entry-content .wp-block-group.has-background {
	padding: clamp(22px, 3.5vw, 44px);
	border-radius: var(--radius);
}

.entry-content .wp-block-cover {
	overflow: hidden;
	border-radius: var(--radius);
}

.entry-content .wp-block-cover img {
	border-radius: 0;
}

.entry-content .wp-block-media-text {
	gap: 0;
	overflow: hidden;
	border-radius: var(--radius);
}

.entry-content .wp-block-media-text__media img {
	border-radius: var(--radius);
}

.entry-content .wp-block-media-text__content {
	padding: clamp(18px, 3vw, 40px);
}

.entry-content .wp-block-buttons {
	gap: 10px;
}

.entry-content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.75em 1.5em;
	border-radius: 999px;
	background-color: var(--bark);
	color: var(--cream);
	font-family: var(--font-sans);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
	transition: transform 0.25s var(--ease), filter 0.25s var(--ease);
}

/* Old buttons carry inline borders, radius and padding from the previous theme. */
.entry-content .wp-block-button__link {
	border-width: 1px !important;
	border-radius: 999px !important;
	padding: 0.75em 1.5em !important;
}

/* A button without a link (e.g. registration closed) looks inactive. */
.entry-content a.wp-block-button__link:not([href]) {
	cursor: default;
	opacity: 0.45;
	filter: none !important;
	transform: none !important;
}

.entry-content .is-style-outline > .wp-block-button__link:not(.has-background) {
	border: 1.5px solid currentColor;
	background-color: transparent;
}

.entry-content .wp-block-button__link:hover {
	filter: brightness(1.15);
}

@media (hover: hover) {
	.entry-content .wp-block-button__link:hover {
		transform: translateY(-1px);
	}
}

.entry-content .wp-block-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	border-radius: var(--radius-sm);
	background: var(--umber);
}

.entry-content .wp-block-file__button {
	margin-left: auto;
	padding: 0.6em 1.2em;
	border-radius: 999px;
	background: var(--amber);
	color: var(--ink);
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}

.entry-content video,
.entry-content .wp-block-video video {
	width: 100%;
	border-radius: var(--radius-sm);
	background: #000;
}

.entry-content iframe {
	max-width: 100%;
	border-radius: var(--radius-sm);
}

/* Calendario attività: Google's embed can't be styled inside, so the whole
   frame is inverted and warmed to sit in the dark design (inc/calendar-embed.php
   picks the view: month grid, or agenda on phones). */
.entry-content > .lnn-calendar {
	max-width: 1200px;
}

.lnn-calendar {
	overflow: hidden;
	border: 1px solid var(--line-dark);
	border-radius: var(--radius-lg);
	background: #141210;
	box-shadow: var(--shadow);
}

.entry-content .lnn-calendar__frame {
	display: block;
	width: 100%;
	height: min(80vh, 780px);
	min-height: 560px;
	border: 0;
	border-radius: 0;
	filter: invert(0.92) hue-rotate(180deg) sepia(0.28) saturate(1.25);
}

@media (max-width: 767px) {
	.entry-content .lnn-calendar__frame {
		height: 74vh;
		min-height: 520px;
	}
}

.page-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 3em;
}

.page-links .post-page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding-inline: 12px;
	border-radius: 999px;
	background: var(--umber);
	color: var(--cream);
	text-decoration: none;
}

.page-links .post-page-numbers.current {
	background: var(--amber);
	color: var(--ink);
}

/* 13b. Composed pages (inc/page-composer.php) ----------------------------- */

/* Split page header: title, kicker and lead next to the page's first picture. */
.page-header__text {
	position: relative;
}

.page-header .page-header__kicker {
	max-width: 30em;
	margin: 18px 0 0 !important;
	padding: 0 !important;
	color: var(--amber-soft) !important;
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem) !important;
	font-style: italic;
	font-weight: 350;
	letter-spacing: -0.01em;
	line-height: 1.3;
	text-align: left !important;
}

.page-header .page-header__kicker mark {
	color: inherit !important;
}

.page-header .page-header__lead {
	max-width: 40em;
	margin: 24px 0 0 !important;
	color: rgba(246, 239, 229, 0.9) !important;
	font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.25rem) !important;
	line-height: 1.65;
	text-align: left !important;
	animation: lnn-rise 0.9s var(--ease) 0.1s both;
}

.page-header .wp-block-pullquote.page-header__lead {
	padding: 22px 26px;
	border: 0;
	border-left: 2px solid var(--amber);
	border-radius: 0 var(--radius) var(--radius) 0;
	background: rgba(227, 168, 87, 0.08) !important;
}

.page-header .wp-block-pullquote.page-header__lead blockquote,
.page-header .wp-block-pullquote.page-header__lead p {
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--font-serif);
	font-size: clamp(1.2rem, 1rem + 0.7vw, 1.5rem);
	font-style: italic;
	line-height: 1.4;
}

.page-header--split {
	padding-bottom: clamp(48px, 7vw, 96px);
}

.page-header__media {
	position: relative;
	isolation: isolate;
	justify-self: center;
	margin-top: 40px;
	animation: lnn-rise 1s var(--ease) 0.2s both;
}

.page-header__media::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 12% -6% -8% 12%;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(227, 168, 87, 0.4), transparent);
	filter: blur(30px);
}

.page-header__img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: min(64vh, 560px);
	margin-inline: auto;
	border-radius: var(--radius-lg);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(246, 239, 229, 0.06);
}

.page-header__star {
	position: absolute;
	bottom: -16px;
	left: -10px;
	width: 44px;
	height: 44px;
	color: var(--amber);
}

.page-header--cover .page-header__media {
	width: 100%;
}

.page-header--cover .wp-block-cover {
	min-height: 340px;
	margin: 0;
	border-radius: var(--radius-lg);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.85);
}

@media (min-width: 900px) {
	.page-header--split .page-header__inner {
		display: grid;
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		align-items: center;
		gap: clamp(40px, 5vw, 80px);
	}

	.page-header__media {
		justify-self: end;
		margin-top: 0;
	}
}

/* Old content carries inline side margins meant for the previous layout. */
.entry-content.is-composed :is(p, h1, h2, h3, h4, ul, ol) {
	margin-right: 0 !important;
	margin-left: 0 !important;
}

/* Rhythm between components. */
.entry-content.is-composed > * + * {
	margin-block-start: clamp(40px, 6vw, 80px);
}

.entry-content.is-composed > .lnn-row { max-width: 1100px; }
.entry-content.is-composed > .lnn-cta { max-width: 1000px; }
.entry-content.is-composed > .lnn-block { max-width: 1000px; }
.entry-content.is-composed > .lnn-hub,
.entry-content.is-composed > .lnn-logos { max-width: 1100px; }
.entry-content.is-composed > .lnn-cards,
.entry-content.is-composed > .lnn-events,
.entry-content.is-composed > .lnn-mt-grid,
.entry-content.is-composed > .lnn-title,
.entry-content.is-composed > .lnn-banner { max-width: 1200px; }
.entry-content.is-composed > .lnn-callout,
.entry-content.is-composed > .lnn-verse,
.entry-content.is-composed > .lnn-files { max-width: 860px; }

.lnn-prose > * + *,
.lnn-row__text > * + *,
.lnn-card__body > * + * {
	margin-top: 1.1em;
}

/* Section headings (paragraphs used as headings, h1 in content). */
.entry-content .lnn-heading {
	margin: 0 0 0.6em;
	color: var(--cream) !important;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem) !important;
	font-weight: 400;
	letter-spacing: -0.03em;
	line-height: 1.12;
	text-align: left !important;
}

.entry-content .lnn-heading mark,
.entry-content .lnn-heading strong {
	color: inherit !important;
	font-weight: inherit;
}

.lnn-title .lnn-heading {
	display: flex;
	align-items: center;
	gap: 16px;
	margin: 0;
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem) !important;
	font-weight: 300;
	letter-spacing: -0.045em;
}

.lnn-title .lnn-heading::before,
.lnn-section .lnn-heading::before {
	content: "";
	flex: none;
	width: 32px;
	height: 1px;
	background: var(--amber);
}

.lnn-section .lnn-heading {
	display: flex;
	align-items: center;
	gap: 14px;
}

.lnn-sections {
	display: grid;
	gap: clamp(40px, 5vw, 64px);
}

/* Picture + text rows */
.lnn-row {
	display: grid;
	align-items: center;
	gap: clamp(24px, 4vw, 64px);
}

.lnn-row__media {
	position: relative;
	justify-self: center;
	margin: 0;
}

.lnn-row__img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 560px;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}

@media (min-width: 800px) {
	.lnn-row {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	}

	.lnn-row--media-right {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	}

	.lnn-row--media-right .lnn-row__media {
		order: 2;
	}
}

/* Cards (heading + text), numbered when they form a grid */
.lnn-cards {
	display: grid;
	gap: 14px;
	counter-reset: lnn-card;
}

@media (min-width: 760px) {
	.lnn-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.lnn-card {
	position: relative;
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--line-dark);
	border-radius: var(--radius);
	background: var(--umber);
}

.lnn-card:first-child {
	background: linear-gradient(160deg, rgba(227, 168, 87, 0.16), transparent 60%), var(--umber);
}

/* A lone card is a highlighted block, not a grid. */
.entry-content.is-composed > .lnn-cards--1 {
	max-width: 860px;
}

@media (min-width: 760px) {
	.lnn-cards--1 {
		grid-template-columns: minmax(0, 1fr);
	}
}

.lnn-cards--1 .lnn-card p {
	text-align: left !important;
}

.lnn-cards:not(.lnn-cards--plain):not(.lnn-cards--1) .lnn-card::before {
	content: counter(lnn-card, decimal-leading-zero);
	counter-increment: lnn-card;
	display: block;
	margin-bottom: 22px;
	color: var(--amber);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.lnn-card p {
	font-size: 1rem;
	line-height: 1.65;
}

.lnn-card--plain > p {
	margin: 0;
	text-align: left !important;
}

/* Day & time paragraphs */
.lnn-info {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 22px 24px;
	border: 1px solid rgba(227, 168, 87, 0.3);
	border-radius: var(--radius);
	background: linear-gradient(135deg, rgba(227, 168, 87, 0.16), rgba(227, 168, 87, 0.04));
}

.entry-content.is-composed > .lnn-info {
	max-width: 820px;
}

.lnn-info__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--amber);
	color: var(--ink);
}

.lnn-info__icon .icon {
	width: 24px;
	height: 24px;
}

.lnn-info__text p {
	margin: 0;
	color: var(--cream) !important;
}

/* Larger paragraphs: highlighted, serif */
.lnn-callout {
	padding: 6px 0 6px clamp(20px, 3vw, 32px);
	border-left: 2px solid var(--amber);
}

.lnn-callout p {
	margin: 0;
	color: var(--cream) !important;
	font-family: var(--font-serif);
	font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem) !important;
	font-style: italic;
	font-weight: 350;
	line-height: 1.45;
	text-align: left !important;
}

/* Long highlighted paragraphs stay in the sans for readability. */
.lnn-callout--long p {
	font-family: var(--font-sans);
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.2rem) !important;
	font-style: normal;
	font-weight: 400;
	line-height: 1.7;
}

/* Bible verses written as paragraphs in quotes */
.lnn-verse {
	margin-inline: auto;
	text-align: center;
}

.lnn-verse__mark {
	display: block;
	width: 40px;
	height: 40px;
	margin: 0 auto 18px;
	color: var(--amber);
}

.lnn-verse p {
	margin: 0;
	color: var(--cream) !important;
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 1.1rem + 1vw, 2rem) !important;
	font-style: italic;
	font-weight: 350;
	line-height: 1.38;
}

.lnn-verse--inline p {
	font-size: 1.3rem !important;
}

/* Short exclamations ("Tramite la preghiera!") */
.lnn-emph p {
	margin: 0.3em 0;
	color: var(--amber-soft) !important;
	font-family: var(--font-serif);
	font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem) !important;
	font-style: italic;
	font-weight: 350;
	line-height: 1.2;
}

/* Notices ("Iscrizioni chiuse...") and fine print */
.lnn-alert-wrap {
	text-align: center;
}

.lnn-alert {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	max-width: 100%;
	padding: 10px 18px;
	border: 1px solid rgba(255, 122, 107, 0.4);
	border-radius: 999px;
	background: rgba(255, 122, 107, 0.12);
	color: #ffb3aa;
	text-align: left;
}

.lnn-alert .icon {
	flex: none;
	width: 20px;
	height: 20px;
}

.lnn-alert p {
	margin: 0 !important;
	color: #ffc1b9 !important;
	font-size: 0.9375rem !important;
	font-weight: 600;
	text-align: left !important;
}

p.lnn-alert-text {
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid rgba(255, 122, 107, 0.4);
	border-radius: 999px;
	background: rgba(255, 122, 107, 0.12);
	color: #ffc1b9 !important;
	font-size: 0.875rem !important;
	font-weight: 600;
}

/* Places: the address is the card title. */
.lnn-mt-grid--stack .wp-block-media-text__content > p:first-child {
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem) !important;
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.3;
}

.lnn-fine p {
	margin: 0;
	color: rgba(205, 191, 174, 0.85) !important;
	font-size: 0.8125rem !important;
	line-height: 1.5;
}

/* Call-to-action band */
.lnn-cta {
	position: relative;
	display: grid;
	justify-items: center;
	gap: 18px;
	overflow: hidden;
	padding: clamp(32px, 5vw, 56px) clamp(20px, 4vw, 48px);
	border: 1px solid rgba(227, 168, 87, 0.24);
	border-radius: var(--radius-lg);
	background:
		radial-gradient(90% 120% at 100% 0%, rgba(227, 168, 87, 0.26), transparent 60%),
		radial-gradient(60% 80% at 0% 100%, rgba(227, 168, 87, 0.1), transparent 70%),
		var(--umber);
	text-align: center;
}

.lnn-cta__star {
	width: 34px;
	height: 34px;
	color: var(--amber);
}

.lnn-cta > p {
	max-width: 46ch;
	margin: 0;
	color: var(--cream) !important;
	font-size: clamp(1.15rem, 1rem + 0.5vw, 1.4rem) !important;
}

.lnn-cta .lnn-fine p {
	max-width: 60ch;
	text-align: center !important;
}

.entry-content .lnn-cta .wp-block-buttons {
	justify-content: center;
	gap: 10px;
	margin: 0;
}

.entry-content .lnn-cta .wp-block-button__link {
	min-height: 54px;
	padding-inline: 1.7em;
	border: 1px solid rgba(246, 239, 229, 0.22);
	background-color: rgba(246, 239, 229, 0.06) !important;
	color: var(--cream) !important;
	font-size: 1rem !important;
}

.entry-content .lnn-cta .wp-block-button:first-child .wp-block-button__link {
	border-color: transparent;
	background-color: var(--amber) !important;
	color: var(--ink) !important;
}

/* Hub pages: big tiles to the sub-pages */
.lnn-hub {
	display: grid;
	gap: 14px;
}

@media (min-width: 640px) {
	.lnn-hub {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.lnn-hub:has(> :nth-child(3)) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.lnn-hub__tile {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 48px;
	min-height: 220px;
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--line-dark);
	border-radius: var(--radius);
	background: var(--umber);
	box-shadow: var(--shadow);
	color: var(--cream);
	text-decoration: none;
	transition: background-color 0.3s var(--ease), transform 0.3s var(--ease);
}

.lnn-hub__tile:first-child {
	border-color: transparent;
	background: var(--cream);
	color: var(--ink);
}

.lnn-hub__title {
	max-width: 14ch;
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem);
	font-weight: 400;
	letter-spacing: -0.035em;
	line-height: 1.05;
}

.lnn-hub__title * {
	color: inherit !important;
}

.lnn-hub__arrow {
	display: inline-grid;
	align-self: flex-end;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--cream);
	color: var(--ink);
	transition: background-color 0.3s var(--ease);
}

.lnn-hub__tile:first-child .lnn-hub__arrow {
	background: var(--ink);
	color: var(--cream);
}

.lnn-hub__arrow .icon {
	width: 22px;
	height: 22px;
	transition: transform 0.3s var(--ease);
}

.lnn-hub__lock {
	position: absolute;
	top: clamp(24px, 3vw, 36px);
	right: clamp(24px, 3vw, 36px);
	color: var(--amber);
}

.lnn-hub__tile:first-child .lnn-hub__lock {
	color: var(--amber-deep);
}

.lnn-hub__lock .icon {
	width: 24px;
	height: 24px;
}

.lnn-hub__tile--muted {
	opacity: 0.55;
}

/* Buttons saved without a link ("Coming soon"): not clickable. */
.lnn-hub__tile--inactive {
	box-shadow: none;
	cursor: default;
	transform: none !important;
}

@media (hover: hover) {
	.lnn-hub__tile:hover {
		transform: translateY(-3px);
	}

	.lnn-hub__tile:hover .lnn-hub__arrow {
		background: var(--amber);
		color: var(--ink);
	}

	.lnn-hub__tile:hover .lnn-hub__arrow .icon {
		transform: translate(2px, -2px);
	}
}

/* Media-text runs: places (stacked) and books (cover beside the text) */
.lnn-mt-grid {
	display: grid;
	gap: 14px;
}

@media (min-width: 800px) {
	.lnn-mt-grid--stack {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.lnn-mt-grid--list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.lnn-mt-card {
	display: flex;
}

.entry-content .lnn-mt-card .wp-block-media-text {
	display: flex !important;
	flex-direction: column;
	width: 100%;
	margin: 0;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid var(--line-dark);
	border-radius: var(--radius);
	background: var(--umber);
}

.lnn-mt-card .wp-block-media-text__media {
	margin: 0;
}

.lnn-mt-card .wp-block-media-text__media img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
}

.lnn-mt-card .wp-block-media-text.is-image-fill .wp-block-media-text__media {
	height: auto;
	min-height: 0;
	aspect-ratio: 16 / 9;
	border-radius: 0;
}

.entry-content .lnn-mt-card .wp-block-media-text__content {
	padding: clamp(22px, 3vw, 32px) !important;
}

.lnn-mt-card .wp-block-media-text__media,
.lnn-mt-card .wp-block-media-text__content {
	align-self: stretch;
	width: 100%;
}

.lnn-mt-card .wp-block-media-text__content > :first-child {
	margin-top: 0 !important;
}

.lnn-mt-card .wp-block-media-text__content > * + * {
	margin-top: 0.9em;
}

.lnn-mt-card .has-text-align-right {
	text-align: left !important;
}

@media (min-width: 600px) {
	.entry-content .lnn-mt-grid--list .wp-block-media-text {
		flex-direction: row;
		align-items: flex-start;
	}

	.entry-content .lnn-mt-grid--list .has-media-on-the-right {
		flex-direction: row-reverse;
	}

	.lnn-mt-grid--list .wp-block-media-text__media {
		flex: 0 0 34%;
		align-self: flex-start;
		width: auto;
		padding: 22px 0 22px 22px;
	}

	.lnn-mt-grid--list .wp-block-media-text__content {
		flex: 1 1 auto;
		align-self: flex-start;
		width: auto;
	}

	.lnn-mt-grid--list .wp-block-media-text__media img {
		border-radius: 10px;
		box-shadow: 0 16px 30px -18px rgba(0, 0, 0, 0.9);
	}
}

/* Event cards (Eventi) */
.lnn-events {
	display: grid;
	gap: 14px;
}

@media (min-width: 768px) {
	.lnn-events--2,
	.lnn-events--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.lnn-events--3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.lnn-event {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--line-dark);
	border-radius: var(--radius);
	background: var(--umber);
}

.entry-content .lnn-event__media {
	width: 100%;
	margin: 0;
	overflow: hidden;
}

.lnn-event__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 0 !important;
	transition: transform 1.2s var(--ease);
}

.lnn-event__body {
	display: grid;
	align-content: start;
	gap: 12px;
	padding: clamp(22px, 3vw, 32px);
}

.lnn-event__body > * {
	margin: 0 !important;
}

.entry-content .lnn-event__body .lnn-heading {
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem) !important;
}

.lnn-event__body p {
	color: rgba(246, 239, 229, 0.86) !important;
	font-size: 1rem !important;
	text-align: left !important;
}

.lnn-event__body a {
	color: var(--amber-soft) !important;
	font-weight: 600;
	text-decoration: none;
}

.lnn-event__body a::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
}

.lnn-event:has(a:focus-visible) {
	outline: 2px solid var(--amber);
	outline-offset: 3px;
}

@media (hover: hover) {
	.lnn-event:hover .lnn-event__img {
		transform: scale(1.04);
	}
}

/* Flyers and other tall pictures: whole, over a blurred copy of themselves. */
.lnn-event--portrait .lnn-event__media {
	position: relative;
	isolation: isolate;
	aspect-ratio: 4 / 3;
	background: var(--espresso);
}

/* Phones (one card per row): a taller frame so the flyer stays readable. */
@media (max-width: 767px) {
	.lnn-event--portrait .lnn-event__media {
		aspect-ratio: 4 / 5;
	}
}

.lnn-event--portrait .lnn-event__media::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: -24px;
	background: var(--lnn-backdrop) center / cover no-repeat;
	filter: blur(22px) brightness(0.5) saturate(1.1);
}

.entry-content .lnn-event--portrait .lnn-event__img {
	position: absolute;
	inset: 18px;
	width: calc(100% - 36px);
	height: calc(100% - 36px);
	aspect-ratio: auto;
	object-fit: contain;
	filter: drop-shadow(0 14px 18px rgba(0, 0, 0, 0.6));
}

@media (min-width: 900px) {
	.lnn-events--1 .lnn-event {
		display: grid;
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	}

	.lnn-events--1 .lnn-event__media {
		position: relative;
		min-height: 380px;
	}

	.lnn-events--1 .lnn-event__img {
		position: absolute;
		inset: 0;
		height: 100%;
		aspect-ratio: auto;
	}

	/* A single event with a flyer: the flyer stands whole in its column. */
	.lnn-events--1 .lnn-event--portrait .lnn-event__media {
		min-height: 460px;
		aspect-ratio: auto;
	}

	.entry-content .lnn-events--1 .lnn-event--portrait .lnn-event__img {
		inset: 28px;
		width: calc(100% - 56px);
		height: calc(100% - 56px);
	}

	.lnn-events--1 .lnn-event__body {
		align-content: center;
		padding: 48px;
	}
}

/* Logo grid (Link utili) */
.lnn-logos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

@media (min-width: 700px) {
	.lnn-logos {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.lnn-logos {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.lnn-logo {
	position: relative;
	display: grid;
	place-items: center;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	padding: clamp(14px, 2vw, 22px);
	border-radius: var(--radius);
	background: var(--paper);
	transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}

.lnn-logo .wp-block-image,
.lnn-logo figure {
	display: grid !important;
	place-items: center;
	width: 100%;
	height: 100%;
	margin: 0 !important;
}

.lnn-logo a {
	display: contents;
}

.lnn-logo img {
	width: auto !important;
	max-width: 100%;
	height: auto !important;
	max-height: clamp(72px, 8vw, 116px);
	aspect-ratio: auto !important;
	object-fit: contain;
	border-radius: 6px;
}

.lnn-logo a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--radius);
}

.lnn-logo:has(a:focus-visible) {
	outline: 2px solid var(--amber);
	outline-offset: 3px;
}

@media (hover: hover) {
	.lnn-logo:hover {
		box-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.8);
		transform: translateY(-4px);
	}
}

/* Downloads (Studio Risveglio lessons) */
.lnn-files {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: lnn-file;
}

.lnn-file {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 4px 20px;
	padding: 18px 22px;
	border: 1px solid var(--line-dark);
	border-radius: var(--radius-sm);
	background: var(--umber);
	counter-increment: lnn-file;
}

.lnn-file + .lnn-file {
	margin-top: 0;
}

.lnn-file::before {
	content: counter(lnn-file, decimal-leading-zero);
	grid-row: span 2;
	color: var(--amber);
	font-size: 1.6rem;
	font-weight: 300;
	letter-spacing: -0.02em;
}

.lnn-file:not(:has(.lnn-file__label))::before {
	grid-row: auto;
}

.lnn-file__label p {
	margin: 0 !important;
	color: var(--sand) !important;
	font-size: 0.8125rem !important;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-align: left !important;
	text-transform: uppercase;
}

.entry-content .lnn-file__body .wp-block-file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 0;
	padding: 0;
	background: none;
	text-align: left !important;
}

.lnn-file__body .wp-block-file a:not(.wp-block-file__button) {
	color: var(--cream);
	font-weight: 500;
	text-decoration: none;
}

.lnn-file__body .wp-block-file a:not(.wp-block-file__button):hover {
	color: var(--amber-soft);
}

/* Single blocks (videos, embeds) and lone pictures */
.lnn-block .alignleft,
.lnn-block .alignright {
	float: none;
	margin-inline: auto;
}

.lnn-block .wp-block-embed {
	max-width: 100%;
}

.lnn-figure {
	text-align: center;
}

.lnn-figure img {
	width: auto;
	max-width: 100%;
	max-height: 70vh;
	border-radius: var(--radius);
}

.lnn-pull .wp-block-pullquote {
	margin: 0;
}

/* 14. Password form ------------------------------------------------------- */

.entry-content--locked > * {
	max-width: 580px;
}

.lock-card {
	position: relative;
	padding: clamp(28px, 4vw, 44px);
	border: 1px solid var(--line-dark);
	border-radius: var(--radius-lg);
	background: var(--umber);
	box-shadow: var(--shadow);
}

.lock-card__icon {
	display: inline-grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin-bottom: 20px;
	border-radius: 50%;
	background: rgba(227, 168, 87, 0.14);
	color: var(--amber);
}

.lock-card__icon .icon {
	width: 26px;
	height: 26px;
}

.post-password-form p {
	margin: 0 0 18px;
	color: var(--sand);
}

/* wpautop leaves empty paragraphs around the form. */
.lock-card p:empty {
	display: none;
}

.post-password-form p:last-child {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
	margin: 0;
}

.post-password-form label {
	display: grid;
	flex: 1 1 220px;
	gap: 8px;
	color: var(--cream);
	font-size: 0.9375rem;
	font-weight: 600;
}

.post-password-form input[type="password"],
.search-form .search-field {
	width: 100%;
	min-height: 52px;
	padding: 0 16px;
	border: 1px solid rgba(246, 239, 229, 0.22);
	border-radius: var(--radius-sm);
	background: var(--ink);
	color: var(--cream);
	font: 500 1rem var(--font-sans);
}

.post-password-form input[type="password"]:focus,
.search-form .search-field:focus {
	border-color: transparent;
	outline: 2px solid var(--amber);
	outline-offset: 1px;
}

.post-password-form input[type="submit"],
.search-form .search-submit {
	min-height: 52px;
	padding: 0 28px;
	border: 0;
	border-radius: 999px;
	background: var(--amber);
	color: var(--ink);
	font: 600 1rem var(--font-sans);
	cursor: pointer;
	transition: background-color 0.25s var(--ease);
}

.post-password-form input[type="submit"]:hover,
.search-form .search-submit:hover {
	background: var(--amber-soft);
}

.post-password-form-invalid-password {
	padding: 12px 16px;
	border-radius: var(--radius-sm);
	background: rgba(227, 168, 87, 0.14);
	color: var(--amber-soft) !important;
}

/* 15. Lists, search, 404 -------------------------------------------------- */

.entry-list {
	display: grid;
	gap: 12px;
	max-width: 860px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.entry-card {
	padding: 24px 28px;
	border-radius: var(--radius);
	background: var(--umber);
}

.entry-card__title {
	margin: 0;
	font-size: 1.375rem;
	font-weight: 500;
}

.entry-card__title a {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	text-decoration: none;
}

.entry-card__title .icon {
	color: var(--amber);
}

.entry-card__excerpt {
	margin: 8px 0 0;
	color: var(--sand);
}

.search-again {
	max-width: 860px;
	margin: 0 auto 32px;
}

.search-form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.search-form label {
	flex: 1 1 240px;
}

.nav-links {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
}

.nav-links .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	border-radius: 999px;
	background: var(--umber);
	text-decoration: none;
}

.nav-links .page-numbers.current {
	background: var(--amber);
	color: var(--ink);
}

.not-found {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 80vh;
	padding-top: calc(var(--header-h) + 48px);
	padding-bottom: 96px;
	overflow: hidden;
	text-align: center;
}

.not-found__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(50% 60% at 50% 40%, rgba(227, 168, 87, 0.18), transparent 70%);
	pointer-events: none;
}

.not-found__inner {
	position: relative;
	display: grid;
	justify-items: center;
}

.not-found__star {
	width: 52px;
	height: 52px;
	color: var(--amber);
	animation: lnn-spin 60s linear infinite;
}

.not-found__title {
	display: grid;
	gap: 10px;
	margin: 28px 0 36px;
}

.not-found__code {
	font-size: clamp(3rem, 1.6rem + 7vw, 7.5rem);
	font-weight: 200;
	letter-spacing: -0.05em;
	line-height: 1;
}

.not-found__msg {
	color: var(--amber-soft);
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem);
	font-style: italic;
	font-weight: 350;
}

@keyframes lnn-spin {
	to {
		transform: rotate(360deg);
	}
}

/* 16. Motion -------------------------------------------------------------- */

/* Only elements below the fold are hidden, and only once JS is running
   (main.js adds .reveal-on), so nothing stays invisible if JS fails. */
.reveal-on [data-reveal]:not(.is-visible) {
	opacity: 0;
	transform: translateY(22px);
}

.reveal-on [data-reveal] {
	transition: opacity 0.9s var(--ease) var(--reveal-delay, 0s), transform 0.9s var(--ease) var(--reveal-delay, 0s);
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
		scroll-behavior: auto !important;
	}

	.reveal-on [data-reveal]:not(.is-visible) {
		opacity: 1;
		transform: none;
	}
}
