/*
 * Dr. Suzanne — main stylesheet
 *
 * 1. Design tokens
 * 2. Reset & base
 * 3. Typography & utilities
 * 4. Buttons & links
 * 5. Header & navigation
 * 6. Mobile menu
 * 7. Sections & shared components
 * 8. Homepage sections
 * 9. Archives, cards & singles
 * 10. Forms
 * 11. Footer
 * 12. Entry (block editor) content
 * 13. Motion & reduced motion
 * 14. Cross-document view transitions
 */

/* ============================= 1. Tokens ============================= */
:root {
	--color-cream: #F1E9D6;
	--color-cream-light: #F7F2E7;
	--color-green: #455438;
	--color-green-dark: #455438;
	--color-green-soft: #87956D;
	--color-orange: #ED7930;
	--color-ink: #171713;
	--color-white: #FCFBF7;
	--color-sand: #D8CFBA;

	--color-background: var(--color-cream);
	--color-text: var(--color-ink);
	--color-primary: var(--color-green);
	--color-primary-hover: var(--color-green-dark);
	--color-accent: var(--color-orange);
	--color-border: rgba(69, 84, 56, 0.25);

	--font-display: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	--font-body: "Proxima Nova", "Helvetica Neue", Arial, sans-serif;

	--container-small: 760px;
	--container-medium: 1080px;
	--container-large: 1380px;
	--container-wide: 1600px;

	--space-xs: clamp(0.5rem, 0.4rem + 0.3vw, 0.8rem);
	--space-sm: clamp(1rem, 0.8rem + 0.5vw, 1.5rem);
	--space-md: clamp(2rem, 1.5rem + 1vw, 3rem);
	--space-lg: clamp(4rem, 3rem + 3vw, 7rem);
	--space-xl: clamp(6rem, 4rem + 5vw, 11rem);

	--radius-small: 4px;
	--radius-medium: 10px;
	--radius-large: clamp(20px, 2.2vw, 34px);

	--transition-fast: 180ms ease;
	--transition-standard: 320ms cubic-bezier(0.2, 0.7, 0.2, 1);

	--text-hero: clamp(2.6rem, 1.6rem + 4.2vw, 6.4rem);
	--text-h1: clamp(2.5rem, 1.7rem + 3.6vw, 5.6rem);
	--text-h2: clamp(2.1rem, 1.5rem + 2.4vw, 4.2rem);
	--text-h3: clamp(1.55rem, 1.3rem + 1.1vw, 2.6rem);
	--text-body-lg: clamp(1.2rem, 1.1rem + 0.4vw, 1.55rem);
	--text-body: clamp(1.0625rem, 1rem + 0.2vw, 1.1875rem);
	--text-label: clamp(0.72rem, 0.68rem + 0.15vw, 0.85rem);
}

/* ============================= 2. Reset ============================= */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: var(--text-body);
	line-height: 1.65;
	overflow-x: hidden;
}

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

figure { margin: 0; }

/* ====================== 3. Typography & utilities =================== */
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	font-weight: 400;
	line-height: 1.12;
	color: var(--color-green-dark);
	margin: 0 0 0.5em;
	overflow-wrap: break-word;
}

p { margin: 0 0 1em; }

a {
	color: var(--color-green-dark);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
	transition: color var(--transition-fast);
}
a:hover { color: var(--color-green); }

.drs-container {
	width: 100%;
	max-width: var(--container-medium);
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 4vw, 3rem);
}
.drs-container--small { max-width: var(--container-small); }
.drs-container--large { max-width: var(--container-large); }
.drs-container--wide { max-width: var(--container-wide); }

/*
 * The browser default for [hidden] is display:none, but any component rule
 * that sets a display value outruns it on specificity — which silently
 * breaks every "hide until asked" control. Restate it here so the attribute
 * always wins.
 */
[hidden] { display: none !important; }

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip-path: none;
	display: block;
	height: auto;
	width: auto;
	background: var(--color-cream-light);
	color: var(--color-green-dark);
	padding: 1rem 1.5rem;
	z-index: 100000;
	left: 5px;
	top: 5px;
	text-decoration: none;
	font-weight: 600;
}

.skip-link:focus {
	position: fixed;
}

:focus-visible {
	outline: 2px solid var(--color-green-dark);
	outline-offset: 3px;
}
.drs-section--green :focus-visible,
.drs-section--green-dark :focus-visible,
.mobile-menu :focus-visible {
	outline-color: var(--color-cream);
}

::selection {
	background: var(--color-green);
	color: var(--color-cream);
}

.drs-eyebrow {
	font-family: var(--font-body);
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-green-dark);
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin-bottom: var(--space-sm);
}
.drs-eyebrow__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--color-accent);
	flex: none;
}

.drs-symbol { color: var(--color-accent); }

.drs-section-header {
	max-width: 46ch;
	margin-bottom: var(--space-md);
}
.drs-section-header__title {
	font-size: var(--text-h2);
	letter-spacing: -0.01em;
}
.drs-section-header__intro {
	font-size: var(--text-body-lg);
	color: var(--color-green-dark);
	max-width: 40ch;
}
.drs-section-footer {
	margin-top: var(--space-md);
}

.drs-empty-state {
	padding: var(--space-lg) 0;
	font-size: var(--text-body-lg);
	color: var(--color-green-dark);
	text-align: center;
}

/* ======================= 4. Buttons & links ========================= */
.drs-button {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	font-family: var(--font-body);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.95em 1.9em;
	border-radius: var(--radius-small);
	border: 1px solid var(--color-primary);
	cursor: pointer;
	transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
	min-height: 44px;
}
.drs-button--primary {
	background: var(--color-primary);
	color: var(--color-cream);
}
.drs-button--primary:hover,
.drs-button--primary:focus-visible {
	background: var(--color-primary-hover);
	border-color: var(--color-primary-hover);
	color: var(--color-cream);
}
/*
 * On a green canvas the solid button flips to cream-on-green: its own green
 * is the same value as the background behind it, so left alone it vanishes.
 */
.drs-section--green .drs-button--primary,
.drs-section--green-dark .drs-button--primary,
.drs-podcast .drs-button--primary {
	background: var(--color-cream);
	border-color: var(--color-cream);
	color: var(--color-green-dark);
}
.drs-section--green .drs-button--primary:hover,
.drs-section--green .drs-button--primary:focus-visible,
.drs-section--green-dark .drs-button--primary:hover,
.drs-section--green-dark .drs-button--primary:focus-visible,
.drs-podcast .drs-button--primary:hover,
.drs-podcast .drs-button--primary:focus-visible {
	background: var(--color-white);
	border-color: var(--color-white);
	color: var(--color-green-dark);
}
.drs-button--secondary {
	background: transparent;
	color: var(--color-green-dark);
}
.drs-button--secondary:hover,
.drs-button--secondary:focus-visible {
	background: var(--color-primary);
	color: var(--color-cream);
}
.drs-button--ghost {
	background: transparent;
	color: var(--color-cream);
	border-color: rgba(241, 233, 214, 0.6);
}
.drs-button--ghost:hover,
.drs-button--ghost:focus-visible {
	background: var(--color-cream);
	color: var(--color-green-dark);
	border-color: var(--color-cream);
}
.drs-button__mark {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--color-accent);
	flex: none;
	transition: transform var(--transition-fast);
}
.drs-button:hover .drs-button__mark { transform: translateX(3px); }

/*
 * Buttons that leave the site swap the dot for an outward arrow, and it
 * travels that way on hover instead of sideways.
 */
.drs-button--external .drs-button__mark {
	width: auto;
	height: auto;
	border-radius: 0;
	background: none;
	color: var(--color-accent);
	font-size: 1.15em;
	line-height: 1;
}
.drs-button--external .drs-button__mark::before { content: "\2197"; }
.drs-button--external:hover .drs-button__mark,
.drs-button--external:focus-visible .drs-button__mark {
	transform: translate(3px, -3px);
}

.drs-textlink {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	font-weight: 600;
	color: var(--color-green-dark);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	cursor: pointer;
	transition: color var(--transition-fast);
}
.drs-textlink:hover { color: var(--color-green); }
.drs-textlink__arrow {
	color: var(--color-accent);
	transition: transform var(--transition-fast);
}
.drs-textlink:hover .drs-textlink__arrow { transform: translateX(3px); }

/* ====================== 5. Header & navigation ====================== */
.site-topbar {
	position: relative;
	z-index: 910;
	min-height: 42px;
	color: var(--color-cream-light);
	background: var(--color-green-dark);
}
.site-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	min-height: 42px;
}
.site-topbar__label {
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	white-space: nowrap;
}
.site-topbar .site-topbar__social {
	flex-wrap: nowrap;
	gap: 0.45rem;
}
.site-topbar .drs-social-icons__link {
	width: 24px;
	height: 24px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-cream-light);
}
.site-topbar .drs-social-icons__link svg {
	width: 14px;
	height: 14px;
}
.site-topbar .drs-social-icons__link:hover,
.site-topbar .drs-social-icons__link:focus-visible {
	background: transparent;
	color: var(--color-accent);
}
.site-header {
	position: sticky;
	top: 0;
	z-index: 900;
	background: var(--color-cream);
	border-bottom: 1px solid transparent;
	transition: background var(--transition-standard), border-color var(--transition-standard), box-shadow var(--transition-standard);
}
/* Transparent over a hero image; the scroll handler swaps in the solid bar. */
.site-header--hero {
	position: fixed;
	background: transparent;
	top: 42px;
	left: 0;
	right: 0;
	width: 100%;
	color: #F1E9D6;
}
.site-header--hero.is-scrolled { top: 0; }
.site-header--hero:not(.is-scrolled) .drs-menu a {
	color: #F1E9D6;
}
.site-header--hero:not(.is-scrolled) .drs-menu a::after {
	background: #F1E9D6;
}
.site-header--hero:not(.is-scrolled) .site-navigation__logo {
	filter: brightness(0) saturate(100%) invert(94%) sepia(11%) saturate(493%) hue-rotate(342deg) brightness(102%) contrast(90%);
}
.site-header--hero:not(.is-scrolled) .site-navigation__toggle {
	color: #F1E9D6;
	border-color: rgba(241, 233, 214, 0.65);
}
.site-header--editorial:not(.is-scrolled),
.site-header--editorial:not(.is-scrolled) .drs-menu a,
.site-header--editorial:not(.is-scrolled) .site-navigation__toggle {
	color: var(--color-green-dark);
}
.site-header--editorial:not(.is-scrolled) .drs-menu a::after { background: var(--color-green-dark); }
.site-header--editorial:not(.is-scrolled) .site-navigation__logo { filter: none; }
.site-header--editorial:not(.is-scrolled) .site-navigation__toggle { border-color: rgba(69, 84, 56, 0.55); }
.site-header.is-scrolled {
	background: var(--color-cream);
	border-bottom-color: var(--color-border);
	box-shadow: 0 8px 24px rgba(23, 23, 19, 0.06);
}

.site-navigation {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--space-sm);
	max-width: var(--container-large);
	margin-inline: auto;
	padding: 1rem clamp(1.25rem, 4vw, 3rem);
	min-height: 76px;
}
.site-navigation__left { justify-self: start; }
.site-navigation__right { justify-self: end; }

.site-navigation__brand {
	justify-self: center;
	text-decoration: none;
	text-align: center;
}
.site-navigation__wordmark {
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 1rem + 1vw, 1.7rem);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-green-dark);
	white-space: nowrap;
}
.site-navigation__logo {
	max-height: 52px;
	width: auto;
}

.drs-menu {
	display: flex;
	gap: clamp(1rem, 2vw, 2.2rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.drs-menu a {
	font-size: 0.92rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-ink);
	padding: 0.4em 0;
	position: relative;
	white-space: nowrap;
}
.drs-menu a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	height: 2px;
	width: 100%;
	background: var(--color-green);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--transition-standard);
}
.drs-menu a:hover { color: var(--color-green-dark); }
.drs-menu a:hover::after,
.drs-menu a:focus-visible::after { transform: scaleX(1); }
.drs-menu .current-menu-item > a,
.drs-menu .current_page_item > a {
	color: var(--color-green-dark);
}
.drs-menu .current-menu-item > a::after,
.drs-menu .current_page_item > a::after {
	transform: scaleX(1);
}

.drs-menu .drs-menu-item--bootcamp > a {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	padding: 0.55em 0.8em;
	border: 1px solid var(--color-green-dark);
	color: var(--color-green-dark);
}
.drs-menu .drs-menu-item--bootcamp > a::after {
	content: "\2197";
	position: static;
	display: inline-block;
	width: auto;
	height: auto;
	color: var(--color-accent);
	background: transparent;
	font-family: "Helvetica Neue", Arial, sans-serif;
	font-size: 1.05em;
	line-height: 1;
	transform: none;
	transition: transform var(--transition-fast);
}
.drs-menu .drs-menu-item--bootcamp > a:hover::after,
.drs-menu .drs-menu-item--bootcamp > a:focus-visible::after {
	transform: translate(2px, -2px);
}
.site-header--hero:not(.is-scrolled) .drs-menu .drs-menu-item--bootcamp > a {
	border-color: var(--color-cream-light);
	color: var(--color-cream-light);
}
.site-header--hero.site-header--editorial:not(.is-scrolled) .drs-menu .drs-menu-item--bootcamp > a {
	border-color: var(--color-green-dark);
	color: var(--color-green-dark);
}
.site-header--hero:not(.is-scrolled) .drs-menu .drs-menu-item--bootcamp > a::after {
	background: transparent;
}

/* Simple dropdown support if sub-menus are added later */
.drs-menu li { position: relative; }
.drs-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: var(--color-cream-light);
	border: 1px solid var(--color-border);
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
	display: none;
	z-index: 20;
}
.drs-menu li:hover > .sub-menu,
.drs-menu li:focus-within > .sub-menu { display: block; }
.drs-menu .sub-menu a {
	display: block;
	padding: 0.5em 1.2em;
	white-space: normal;
}
.drs-menu .sub-menu a::after { content: none; }

.site-navigation__toggle {
	display: none;
	grid-column: 3;
	justify-self: end;
	align-items: center;
	gap: 0.6em;
	background: none;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	padding: 0.55em 1em;
	font: inherit;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--color-green-dark);
	cursor: pointer;
	min-height: 44px;
}
.site-navigation__toggle-bars {
	display: inline-flex;
	flex-direction: column;
	gap: 5px;
}
.site-navigation__toggle-bars span {
	display: block;
	width: 20px;
	height: 2px;
	background: currentColor;
}

@media (max-width: 980px) {
	.site-navigation {
		grid-template-columns: 1fr auto 1fr;
		min-height: 64px;
	}
	.site-navigation__left,
	.site-navigation__right { display: none; }
	.site-navigation__brand { grid-column: 2; }
	.site-navigation__toggle { display: inline-flex; }
}

@media (max-width: 520px) {
	.site-topbar__inner { justify-content: center; }
	.site-topbar__label { display: none; }
}

/* ========================== 6. Mobile menu ========================== */
.mobile-menu {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: var(--color-cream);
	overflow-y: auto;
}
.mobile-menu__inner {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 1.25rem clamp(1.25rem, 5vw, 2.5rem) 2.5rem;
}
.mobile-menu__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--space-md);
}
.mobile-menu__close {
	background: none;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	color: var(--color-green-dark);
	font-size: 1.6rem;
	line-height: 1;
	width: 48px;
	height: 48px;
	cursor: pointer;
}
.mobile-menu__list {
	list-style: none;
	margin: 0 0 var(--space-sm);
	padding: 0;
}
.mobile-menu__list a {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(1.8rem, 6vw, 2.6rem);
	color: var(--color-green);
	text-decoration: none;
	padding: 0.35em 0;
	border-bottom: 1px solid var(--color-border);
}
.mobile-menu__list a:hover,
.mobile-menu__list .current-menu-item > a,
.mobile-menu__list .current_page_item > a {
	color: var(--color-green-dark);
}
.mobile-menu__list .sub-menu {
	list-style: none;
	padding-left: 1.25rem;
}
.mobile-menu__list .sub-menu a { font-size: 1.3rem; }
.mobile-menu__list .drs-menu-item--bootcamp > a::after {
	content: "\2197";
	display: inline-block;
	margin-left: 0.45em;
	color: var(--color-accent);
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: 0.62em;
	vertical-align: top;
}
.mobile-menu__footer {
	margin-top: auto;
	padding-top: var(--space-md);
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	align-items: flex-start;
}
.mobile-menu__social {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* =================== 7. Sections & shared components ================ */
section { padding-block: var(--space-lg); }


.drs-section--white { background: var(--color-white); }
.drs-section--sage { background: var(--color-cream-light); }
.drs-section--green {
	background: var(--color-green);
	color: var(--color-cream);
}
.drs-section--green-dark {
	background: var(--color-green-dark);
	color: var(--color-cream);
}
.drs-section--green h1, .drs-section--green h2, .drs-section--green h3,
.drs-section--green-dark h1, .drs-section--green-dark h2, .drs-section--green-dark h3 {
	color: var(--color-cream);
}
.drs-section--green a, .drs-section--green-dark a { color: var(--color-cream); }
.drs-section--green .drs-eyebrow, .drs-section--green-dark .drs-eyebrow { color: var(--color-cream); }
.drs-section--green .drs-textlink, .drs-section--green-dark .drs-textlink { color: var(--color-cream); }

.drs-image img {
	width: 100%;
	border-radius: var(--radius-small);
}
.drs-image__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	aspect-ratio: 3 / 4;
	width: 100%;
	background: repeating-linear-gradient(-45deg, var(--color-sand), var(--color-sand) 14px, var(--color-cream-light) 14px, var(--color-cream-light) 28px);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	color: var(--color-green-dark);
	font-size: 0.85rem;
	text-align: center;
	padding: 1.5rem;
}
.drs-image__placeholder-mark { color: var(--color-green-dark); opacity: 0.6; }

/* ======================= 8. Homepage sections ======================= */

/* Hero */
.drs-hero {
	--drs-hero-grid-edge: max(
		clamp(1.25rem, 4vw, 3rem),
		calc((100vw - var(--container-large)) / 2 + clamp(1.25rem, 4vw, 3rem))
	);
	position: relative;
	isolation: isolate;
	height: 100vh;
	height: 100svh;
	display: flex;
	align-items: center;
	overflow: hidden;
	background: #17231f;
	color: var(--color-white);
}
.admin-bar .drs-hero {
	height: calc(100vh - 32px);
	height: calc(100svh - 32px);
}
.drs-hero__slides,
.drs-hero__slide,
.drs-hero__shade {
	position: absolute;
	inset: 0;
}
.drs-hero__slides { z-index: -3; }
.drs-hero__slide {
	opacity: 0;
	visibility: hidden;
	transition: opacity 900ms ease, visibility 900ms ease;
}
.drs-hero__slide.is-active { opacity: 1; visibility: visible; }
.drs-hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 50%;
	transform: scale(1.035);
}
.drs-hero__slide.is-active img { animation: drs-hero-drift 5s ease-out both; }
.drs-hero__shade {
	z-index: -2;
	background:
		linear-gradient(90deg, rgba(8, 16, 14, 0.82) 0%, rgba(8, 16, 14, 0.54) 48%, rgba(8, 16, 14, 0.2) 100%),
		linear-gradient(0deg, rgba(8, 16, 14, 0.45) 0%, transparent 45%);
}
.drs-hero__content {
	width: 100%;
	padding-block: clamp(5rem, 10vh, 8rem);
}
.drs-hero__eyebrow {
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	margin-bottom: clamp(1rem, 2.5vh, 2rem);
	opacity: 0;
	animation: drs-hero-rise 800ms 150ms ease forwards;
}
.drs-hero__headline {
	font-size: clamp(3.4rem, 7vw, 7.8rem);
	line-height: 0.9;
	letter-spacing: -0.045em;
	color: #F1E9D6;
	max-width: 14ch;
	margin-bottom: clamp(1.5rem, 4vh, 2.8rem);
}
.drs-hero__rotator {
	display: block;
	position: relative;
	height: 0.95em;
	margin-bottom: 0.15em;
	opacity: 0;
	transform: translateY(35px);
	animation: drs-hero-rise 900ms 300ms cubic-bezier(0.2, 0.75, 0.2, 1) forwards;
}
.drs-hero__word {
	position: absolute;
	inset: 0 auto auto 0;
	opacity: 0;
	transform: translateY(45%) rotateX(-25deg);
	transform-origin: center bottom;
	transition: opacity 500ms ease, transform 650ms cubic-bezier(0.2, 0.75, 0.2, 1);
}
.drs-hero__word.is-active {
	opacity: 1;
	transform: translateY(0) rotateX(0);
}
.drs-hero__statement {
	display: block;
	font-size: 0.48em;
	line-height: 1.02;
	letter-spacing: -0.025em;
	max-width: 18ch;
	opacity: 0;
	transform: translateY(35px);
	animation: drs-hero-rise 900ms 480ms cubic-bezier(0.2, 0.75, 0.2, 1) forwards;
}
.drs-hero__statement em {
	display: block;
	color: #F1E9D6;
	font-weight: 400;
	text-decoration: underline;
	text-decoration-thickness: 0.045em;
	text-underline-offset: 0.09em;
}
.drs-hero__subhead {
	font-size: clamp(1rem, 1.3vw, 1.2rem);
	color: rgba(255, 255, 255, 0.9);
	max-width: 48ch;
	margin-bottom: var(--space-md);
	opacity: 0;
	animation: drs-hero-rise 800ms 650ms ease forwards;
}
.drs-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	opacity: 0;
	animation: drs-hero-rise 800ms 800ms ease forwards;
}
.drs-hero__actions .drs-button--ghost {
	border-color: rgba(255, 255, 255, 0.65);
	color: var(--color-white);
}
.drs-hero__actions .drs-button--ghost:hover {
	background: var(--color-white);
	border-color: var(--color-white);
	color: var(--color-green-dark);
}
.drs-hero__controls {
	position: absolute;
	left: var(--drs-hero-grid-edge);
	bottom: clamp(1.4rem, 3vw, 2.4rem);
	display: flex;
	gap: 0.65rem;
}
.drs-hero__dot {
	width: 2.5rem;
	height: 3px;
	border: 0;
	padding: 0;
	background: rgba(255, 255, 255, 0.42);
	cursor: pointer;
	transition: background 300ms ease, width 300ms ease;
}
.drs-hero__dot.is-active { width: 4rem; background: #F1E9D6; }
.drs-hero__scroll {
	position: absolute;
	right: var(--drs-hero-grid-edge);
	bottom: clamp(1.4rem, 3vw, 2.4rem);
	width: 44px;
	height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.6);
	border-radius: 50%;
}
.drs-hero__scroll span:not(.screen-reader-text) {
	position: absolute;
	left: 50%;
	top: 46%;
	width: 10px;
	height: 10px;
	border-right: 2px solid white;
	border-bottom: 2px solid white;
	transform: translate(-50%, -50%) rotate(45deg);
}
@keyframes drs-hero-drift { from { transform: scale(1.035); } to { transform: scale(1.105); } }
@keyframes drs-hero-rise { to { opacity: 1; transform: translateY(0); } }

/* Press strip */
.drs-press {
	background: var(--color-white);
	padding-block: var(--space-md);
	border-block: 1px solid var(--color-border);
}
.drs-press__heading {
	font-family: var(--font-body);
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-green-dark);
	text-align: center;
	margin-bottom: var(--space-sm);
}
.drs-press__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	list-style: none;
	margin: 0;
	padding: 0;
}
.drs-press__item img {
	max-height: 44px;
	width: auto;
	filter: grayscale(1) opacity(0.65);
	transition: filter var(--transition-fast);
}
.drs-press__item a:hover img,
.drs-press__item a:focus-visible img { filter: grayscale(0) opacity(1); }
.drs-press__name {
	font-family: var(--font-display);
	font-size: 1.15rem;
	letter-spacing: 0.04em;
	color: var(--color-green-dark);
}
@media (max-width: 700px) {
	.drs-press__list {
		justify-content: flex-start;
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 0.75rem;
		-webkit-overflow-scrolling: touch;
	}
	.drs-press__item { flex: none; }
}

/* Intro */
.drs-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.drs-intro__media {
	position: relative;
	margin-top: calc(-1 * var(--space-xl) / 3);
}
.drs-intro__media::after {
	content: "";
	position: absolute;
	inset: 1.25rem 1.25rem -1.25rem -1.25rem;
	z-index: 0;
	border: 1px solid var(--color-cream);
	pointer-events: none;
}
.drs-intro__portrait { position: relative; z-index: 1; }
.drs-intro__heading { font-size: var(--text-h2); max-width: 18ch; }
.drs-intro__text {
	font-size: var(--text-body-lg);
	max-width: 52ch;
	margin-bottom: var(--space-md);
}

/* Work pathways */
.drs-logo-carousel {
	overflow: hidden;
	background: var(--color-cream);
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
	padding-block: clamp(1.5rem, 3vw, 2.5rem);
}
.drs-logo-carousel__track {
	display: flex;
	width: max-content;
	animation: drs-logo-marquee 70s linear infinite;
}
.drs-logo-carousel__group {
	display: flex;
	align-items: center;
	flex: none;
	gap: clamp(4rem, 9vw, 10rem);
	list-style: none;
	margin: 0;
	padding: 0 clamp(2rem, 4.5vw, 5rem);
}
.drs-logo-carousel__group li {
	display: grid;
	place-items: center;
	width: clamp(120px, 12vw, 180px);
	height: 48px;
}
.drs-logo-carousel__group img {
	width: auto;
	max-width: 100%;
	max-height: 42px;
	object-fit: contain;
	/*
	 * The logos arrive in their own brand colours. Flattening them to black
	 * first (brightness/saturate) and then re-tinting gives one consistent
	 * green strip without needing recoloured source files.
	 */
	filter: brightness(0) saturate(100%) invert(30%) sepia(11%) saturate(1400%) hue-rotate(43deg) brightness(93%) contrast(88%);
}
.drs-logo-carousel__group img[src*="drew-barrymore"] { max-height: 48px; }
@keyframes drs-logo-marquee { to { transform: translateX(-50%); } }

.drs-work__list {
	list-style: none;
	margin: var(--space-md) 0 0;
	padding: 0;
	border-top: 1px solid var(--color-border);
}
.drs-work {
	position: relative;
	isolation: isolate;
	padding-block: var(--space-lg);
	overflow: hidden;
}
/* Mockup on the left, copy on the right, so this section alternates with
   the Monarch and Speaking splits around it. The markup keeps the copy
   first, so the order is swapped here and swapped back once it collapses. */
.drs-work__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(360px, 5fr) minmax(0, 5fr);
	gap: clamp(3rem, 8vw, 8rem);
	align-items: center;
}
.drs-work__media { order: 1; }
.drs-work__content { order: 2; }
.drs-work__heading {
	font-size: clamp(3.4rem, 6vw, 6.8rem);
	line-height: 0.9;
	letter-spacing: -0.04em;
	max-width: none;
}
.drs-work__heading span { display: block; white-space: nowrap; }
.drs-work__intro { max-width: 46ch; font-size: var(--text-body-lg); }
.drs-work__action { margin-top: var(--space-md); }
.drs-work__list li { border-bottom: 1px solid var(--color-border); }
.drs-work__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.8rem 0;
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 1.5vw, 1.65rem);
	color: var(--color-green-dark);
	text-decoration: none;
	transition: padding-left var(--transition-standard), color var(--transition-fast);
}
.drs-work__link:hover {
	padding-left: 0.6rem;
	color: var(--color-green);
}
.drs-work__link span:last-child { transition: transform var(--transition-standard); }
.drs-work__link:hover span:last-child { transform: translateX(6px); }
.drs-work__media {
	position: relative;
	width: 100%;
	max-width: 380px;
	margin-inline: auto;
	perspective: 1400px;
}
/*
 * The phone sits at a slight angle and drifts, so the section feels alive
 * without any JavaScript. Hovering straightens it out.
 */
.drs-work__mockup {
	position: relative;
	z-index: 2;
	display: block;
	width: 100%;
	height: auto;
	margin-inline: auto;
	transform-origin: 50% 60%;
	animation: drs-mockup-float 9s ease-in-out infinite;
	transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
	filter: drop-shadow(0 26px 45px rgba(23, 23, 19, 0.22));
}
.drs-work__media:hover .drs-work__mockup {
	animation-play-state: paused;
	transform: rotate(0deg) translateY(-6px) scale(1.02);
}
@keyframes drs-mockup-float {
	0%   { transform: rotate(-6deg) translateY(0); }
	50%  { transform: rotate(-3.5deg) translateY(-14px); }
	100% { transform: rotate(-6deg) translateY(0); }
}

/* Bootcamp — video band */
.drs-bootcamp {
	position: relative;
	isolation: isolate;
	display: grid;
	place-items: center;
	min-height: min(88vh, 900px);
	padding-block: clamp(5rem, 4rem + 5vw, 9rem);
	overflow: hidden;
	text-align: center;
}
.drs-bootcamp__stage {
	position: absolute;
	inset: 0;
	z-index: -1;
	/* The clip is scenery: no hover, no clicks, no tab stop. */
	pointer-events: none;
}
/* The clip covers the band, cropping whichever side overflows. */
.drs-bootcamp__frame {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 900ms ease;
	pointer-events: none;
}
.drs-bootcamp__frame.is-ready { opacity: 1; }
.drs-bootcamp__frame video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
	pointer-events: none;
}
.drs-bootcamp__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		0deg,
		rgba(23, 32, 20, 0.82) 0%,
		rgba(23, 32, 20, 0.58) 55%,
		rgba(23, 32, 20, 0.7) 100%
	);
}
.drs-bootcamp__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-sm);
}

/* The wordmark ships white on transparent; over the clip it is warmed to
   the brand cream (flatten to black, then tint). */
.drs-bootcamp__logo { margin: 0; }
.drs-bootcamp__logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: min(120px, 45vw);
	filter: brightness(0) saturate(100%) invert(93%) sepia(13%) saturate(430%) hue-rotate(4deg) brightness(99%) contrast(91%);
}

/* The outward arrow comes from .drs-button--external; only the wider
   letter-spacing is particular to this band. */
.drs-bootcamp__cta {
	padding-inline: 2.2em;
	letter-spacing: 0.1em;
}
.drs-bootcamp__heading {
	/* Between the h2 and h1 steps: two lines that fill the band without
	   crowding it. */
	font-size: clamp(2.3rem, 1.6rem + 3vw, 4.6rem);
	line-height: 0.95;
	max-width: 20ch;
	margin: 0;
	text-shadow: 0 2px 24px rgba(8, 12, 9, 0.45);
}
.drs-bootcamp__heading span { display: block; }
/* The last line is the payoff, so it lands in caps. */
.drs-bootcamp__heading-last { text-transform: uppercase; }
.drs-bootcamp__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-sm);
	margin-top: var(--space-xs);
}

/* Monarch — the practice
 *
 * The Speaking split, mirrored: copy on the left, media on the right inside
 * an offset outline. The markup keeps the media first, so the order is
 * swapped here and swapped back once the grid collapses.
 */
.drs-monarch__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.drs-monarch__content { order: 1; }
.drs-monarch__media {
	position: relative;
	order: 2;
}
/* Mirrored side, so the outline falls to the bottom-right. */
.drs-monarch__media::after {
	content: "";
	position: absolute;
	inset: 1.25rem -1.25rem -1.25rem 1.25rem;
	z-index: 0;
	border: 1px solid var(--color-green);
	pointer-events: none;
}
.drs-monarch__photo { position: relative; z-index: 1; }

/* The clip stands in for the Speaking photograph, so it takes the same
   portrait proportion and the section keeps the height of its neighbours.
   The source is a vertical film on a wide canvas: cropping to 3:4 trims the
   blurred bars it was padded with. */
.drs-monarch__frame {
	position: relative;
	z-index: 1;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: var(--color-cream-light);
}
.drs-monarch__cover,
.drs-monarch__frame video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}
.drs-monarch__frame video {
	position: absolute;
	inset: 0;
	background: var(--color-ink);
}

/* Play control: the brand's orange disc, centred until it is pressed. */
.drs-monarch__play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	width: 100%;
	border: 0;
	background: none;
	padding: 0;
	color: var(--color-cream);
	font-family: var(--font-body);
	cursor: pointer;
}
/*
 * The disc drifts toward the pointer: video-cover.js writes the offset into
 * --drs-play-x/y, and the slow easing here turns it into a trail rather than
 * a jump. Both are unset without a pointer or with reduced motion, so the
 * disc simply stays put.
 */
.drs-monarch__play > span[aria-hidden] {
	display: grid;
	place-items: center;
	width: clamp(5rem, 9vw, 7rem);
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--color-accent);
	box-shadow: 0 14px 32px rgba(23, 23, 19, 0.28);
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transform: translate(var(--drs-play-x, 0px), var(--drs-play-y, 0px));
	transition: transform var(--transition-standard), background var(--transition-fast);
}
.drs-monarch__play:hover > span[aria-hidden],
.drs-monarch__play:focus-visible > span[aria-hidden] {
	transform: translate(var(--drs-play-x, 0px), var(--drs-play-y, 0px)) scale(1.06);
	background: var(--color-green);
}
/* Once it is running the still and the disc step out of the way. */
.drs-monarch__frame.is-playing .drs-monarch__cover,
.drs-monarch__frame.is-playing .drs-monarch__play { display: none; }

/* End card: the clip stops on its last frame and the way to the practice
   lands on top of it. */
.drs-monarch__endcard {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: grid;
	place-items: center;
	padding: var(--space-sm);
	background: rgba(24, 33, 21, 0.72);
}

.drs-monarch__logo {
	margin: 0 0 var(--space-xs);
	color: var(--color-green);
	line-height: 0;
}
/* The wordmark carries her name at better than 9:1, so it needs real width
   before the "M.D." stops reading. */
.drs-monarch__logo svg,
.drs-monarch__logo img {
	display: block;
	width: min(380px, 80vw);
	height: auto;
	max-width: 100%;
}
.drs-monarch__heading { font-size: var(--text-h2); max-width: 18ch; }
.drs-monarch__heading span { display: block; }
.drs-monarch__text { font-size: var(--text-body-lg); max-width: 48ch; }
.drs-monarch__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }

/* Featured media — editorial split + collage */
.drs-featured-media__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.drs-featured-media__heading {
	font-size: var(--text-h1);
	letter-spacing: -0.015em;
	max-width: 9ch;
	margin-bottom: 0.5em;
}
.drs-featured-media__text {
	font-size: var(--text-body-lg);
	max-width: 40ch;
	margin-bottom: var(--space-sm);
}
.drs-featured-media__actions { margin: 0; }

/* Small ornament rule: line — brand symbol — line */
.drs-rule {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	max-width: 320px;
	margin: 0 0 var(--space-sm);
	color: var(--color-green);
}
.drs-rule__line {
	flex: 1 1 auto;
	height: 1px;
	background: var(--color-border);
}
.drs-rule__mark { flex: 0 0 auto; color: var(--color-green); }

.drs-featured-media__collage {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(1rem, 2vw, 1.75rem);
	align-items: start;
}

/* Large overlay card */
.drs-media-feature {
	position: relative;
	grid-column: 1 / -1;
	width: 93%;
	border-radius: var(--radius-medium);
	overflow: hidden;
	background: var(--color-green-dark);
	box-shadow: 0 18px 40px rgba(23, 23, 19, 0.14);
}
.drs-media-feature__media { aspect-ratio: 16 / 10; }
.drs-media-feature__media img,
.drs-media-feature__media .drs-image__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	aspect-ratio: auto;
}
.drs-media-feature__body {
	position: absolute;
	inset: auto 0 0 0;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	padding-right: clamp(5rem, 12vw, 9rem);
	color: var(--color-cream);
	background: linear-gradient(to top, rgba(23, 23, 19, 0.82) 15%, rgba(23, 23, 19, 0) 100%);
}
.drs-media-feature__type,
.drs-media-mini__type {
	margin: 0 0 0.5em;
	font-size: 0.75rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-green-soft);
}
.drs-media-feature__title {
	font-size: var(--text-h3);
	color: var(--color-cream);
	margin: 0 0 0.3em;
}
.drs-media-feature__title a { color: inherit; text-decoration: none; }
.drs-media-feature__title a:hover { text-decoration: underline; }
.drs-media-feature__excerpt {
	margin: 0;
	max-width: 34ch;
	opacity: 0.9;
}

.drs-playbutton {
	position: absolute;
	top: 50%;
	right: clamp(1.5rem, 5%, 3rem);
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: clamp(56px, 5vw, 72px);
	height: clamp(56px, 5vw, 72px);
	border: 0;
	border-radius: 50%;
	background: var(--color-orange);
	cursor: pointer;
	transition: transform var(--transition-fast), background var(--transition-fast);
}
.drs-playbutton:hover { transform: translateY(-50%) scale(1.06); }
.drs-playbutton__icon {
	width: 0;
	height: 0;
	margin-left: 4px;
	border-style: solid;
	border-width: 9px 0 9px 15px;
	border-color: transparent transparent transparent var(--color-white);
}

/* Supporting cards, offset so the group reads as a collage */
.drs-media-mini {
	position: relative;
	z-index: 2;
	display: flex;
	gap: 1rem;
	align-items: center;
	padding: 1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-medium);
	background: var(--color-cream-light);
	box-shadow: 0 10px 28px rgba(23, 23, 19, 0.08);
}
.drs-media-mini--one { margin-top: -2.5rem; }
.drs-media-mini--two { margin-top: -5rem; margin-right: -7%; z-index: 3; }
.drs-media-mini__media { flex: 0 0 clamp(70px, 8vw, 96px); }
.drs-media-mini__media img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	border-radius: var(--radius-small);
}
.drs-media-mini__body { min-width: 0; }
.drs-media-mini__title {
	font-size: 1.2rem;
	line-height: 1.2;
	margin: 0 0 0.4em;
}
.drs-media-mini__title a { text-decoration: none; }
.drs-media-mini__title a:hover { text-decoration: underline; }
.drs-media-mini__cta {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	font-size: 0.9rem;
	color: var(--color-green-dark);
}
.drs-media-mini__cta .drs-textlink__arrow { color: var(--color-accent); }

/* Connector labels around the collage (decorative, desktop only) */
.drs-collage-label { display: none; }
@media (min-width: 1101px) {
	.drs-featured-media__collage { padding-bottom: 3.5rem; padding-right: 4.5rem; }
	.drs-collage-label {
		position: absolute;
		display: flex;
		align-items: center;
		gap: 0.5rem;
		font-family: var(--font-body);
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0.18em;
		text-transform: uppercase;
		color: var(--color-green-dark);
		white-space: nowrap;
	}
	.drs-collage-label__dot {
		width: 7px;
		height: 7px;
		border-radius: 50%;
		background: var(--color-accent);
	}
	.drs-collage-label__line {
		width: 26px;
		height: 1px;
		background: var(--color-accent);
	}
	/* Feature: label reaches out to the right */
	.drs-media-feature .drs-collage-label { top: 22%; left: calc(100% + 0.75rem); }
	/* Minis: label drops below the card */
	.drs-media-mini .drs-collage-label {
		flex-direction: column;
		gap: 0.4rem;
		top: calc(100% + 0.75rem);
		left: 14%;
	}
	.drs-media-mini .drs-collage-label__line {
		width: 1px;
		height: 22px;
		background: var(--color-green-soft);
	}
	.drs-media-mini .drs-collage-label__dot { background: var(--color-green-soft); }
}

/* Podcast — "The Latest" episode list */
/*
 * The green is a clipped layer rather than the section's own background, so
 * its top edge can run on a diagonal while the portrait — which sits above
 * it — is free to rise past that edge instead of being cut off.
 */
/*
 * The section is at least as tall as the portrait (same value, kept in
 * --drs-portrait-h), so the portrait can rise clear of the green without
 * ever leaving the section and covering Television above it. overflow:
 * hidden is the guarantee, not a fallback.
 */
.drs-podcast {
	--drs-portrait-h: clamp(470px, 50vw, 790px);

	position: relative;
	color: var(--color-cream);
	padding-block: calc(var(--space-md) + 3vw) var(--space-md);
	min-height: var(--drs-portrait-h);
	overflow: hidden;
}
/* The green starts below the section's top edge, so the head of the
   portrait reads against the page rather than against the green. */
.drs-podcast::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--color-green-dark);
	clip-path: polygon(0 clamp(2.5rem, 5vw, 5.5rem), 100% 0, 100% 100%, 0 100%);
}
.drs-podcast > .drs-container { position: relative; z-index: 2; }
.drs-podcast__heading {
	font-size: var(--text-h2);
	color: var(--color-cream);
	margin-bottom: 0.5em;
}
.drs-podcast__subheading {
	font-size: var(--text-body-lg);
	color: var(--color-green-soft);
	margin: 0 0 var(--space-md);
}

.drs-episodes {
	list-style: none;
	margin: 0 0 var(--space-sm);
	padding: 0;
	display: grid;
	gap: 0.35rem;
	/* The pager holds a full page's height; without this the rows of a
	   short last page would stretch to fill it and drift apart. */
	align-content: start;
}
/*
 * The portrait is anchored to the bottom-left corner of the section — out of
 * the container's flow so it can bleed past the padding — and the episode
 * list keeps to the right-hand column beside it.
 */
.drs-podcast__grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
}
.drs-podcast__list { grid-column: 2; }
/*
 * A fixed size, deliberately not tied to the section's height: the portrait
 * must not resize when the episode list changes page. It is tall enough to
 * clear the slanted top edge on its own.
 */
.drs-podcast__portrait {
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 3;
	height: var(--drs-portrait-h);
	width: auto;
	margin: 0;
	pointer-events: none;
}
.drs-podcast__portrait img {
	display: block;
	height: 100%;
	width: auto;
	max-width: none;
}

.drs-episode {
	display: grid;
	grid-template-columns: clamp(52px, 5vw, 68px) minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(0.6rem, 1.1vw, 0.9rem);
	padding: 0.4rem 0.5rem;
	border-radius: var(--radius-medium);
	transition: background var(--transition-fast);
}
.drs-episode:hover { background: rgba(8, 12, 9, 0.35); }
/* The newest episode sits on its own panel. */
.drs-episode--lead { background: rgba(8, 12, 9, 0.65); }
.drs-episode--lead .drs-episode__title a { text-decoration: underline; text-underline-offset: 4px; }

/* Fixed square: whatever lands inside — artwork, the show's cover, or the
   striped placeholder — every row keeps the same rhythm. */
.drs-episode__media {
	aspect-ratio: 1;
	border-radius: var(--radius-small);
	overflow: hidden;
	background: rgba(8, 12, 9, 0.5);
}
.drs-episode__media .drs-image { height: 100%; }
/* contain, not cover: podcast artwork is square or portrait and cropping it
   cuts the title off the cover. */
.drs-episode__media img,
.drs-episode__media .drs-image__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	object-fit: contain;
	border-radius: 0;
}
.drs-episode__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 0.15em;
	font-size: 0.68rem;
	color: rgba(241, 233, 214, 0.7);
}
.drs-episode__outlet { color: var(--color-cream); }
.drs-episode__title {
	font-size: clamp(0.86rem, 0.8rem + 0.2vw, 1rem);
	line-height: 1.3;
	margin: 0;
	color: var(--color-cream);
}
.drs-episode__title a { color: inherit; text-decoration: none; }
.drs-episode__title a:hover { text-decoration: underline; text-underline-offset: 4px; }

.drs-episode__play {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	border: 0;
	border-radius: 50%;
	background: var(--color-white);
	cursor: pointer;
	transition: transform var(--transition-fast), background var(--transition-fast);
}
.drs-episode__play:hover { transform: scale(1.08); background: var(--color-accent); }
.drs-episode__play-icon {
	width: 0;
	height: 0;
	margin-left: 3px;
	border-style: solid;
	border-width: 6px 0 6px 10px;
	border-color: transparent transparent transparent var(--color-ink);
}
.drs-episode__play:hover .drs-episode__play-icon { border-left-color: var(--color-white); }

.drs-podcast__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
}
.drs-podcast__actions[hidden] { display: none; }

/* Pager controls: two arrows and the page count, sized to sit under a
   compact list without competing with it. */
.drs-pagebtn {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(241, 233, 214, 0.45);
	border-radius: 50%;
	background: none;
	color: var(--color-cream);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.drs-pagebtn:hover:not(:disabled),
.drs-pagebtn:focus-visible:not(:disabled) {
	background: var(--color-cream);
	border-color: var(--color-cream);
	color: var(--color-green-dark);
}
.drs-pagebtn:disabled {
	opacity: 0.35;
	cursor: default;
}
.drs-pagecount {
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	color: rgba(241, 233, 214, 0.75);
	min-width: 3.5em;
	text-align: center;
}

/* Speaking / events — copy on the left, photograph on the right. The markup
   keeps the photograph first, so the order is swapped here and swapped back
   once the grid collapses. */
.drs-speaking__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: clamp(2rem, 5vw, 5rem);
	/* La fotografía es bastante más alta que el texto: centrar evita el hueco al pie. */
	align-items: center;
}
.drs-speaking__content { order: 1; }
.drs-speaking__media {
	position: relative;
	order: 2;
}
/* Same offset outline as the "Meet Dr. Suzanne" portrait; the photograph
   sits on the right of the grid, so the frame falls to the bottom-right. */
.drs-speaking__media::after {
	content: "";
	position: absolute;
	inset: 1.25rem -1.25rem -1.25rem 1.25rem;
	z-index: 0;
	border: 1px solid var(--color-green);
	pointer-events: none;
}
.drs-speaking__photo { position: relative; z-index: 1; }
.drs-speaking__heading { font-size: var(--text-h2); max-width: 18ch; }
.drs-speaking__text,
.drs-speaking__fallback { font-size: var(--text-body-lg); max-width: 48ch; }
.drs-speaking__events { margin-block: var(--space-md); display: grid; gap: var(--space-sm); }
.drs-speaking__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.drs-speaking .drs-event-card {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	padding: 0;
	overflow: hidden;
	background: var(--color-cream-light);
}
.drs-speaking .drs-event-card__body { padding: 1.25rem 1.5rem; }
.drs-speaking .drs-event-card__title a { color: var(--color-green-dark); text-decoration: none; }
.drs-speaking .drs-event-card__title a:hover { text-decoration: underline; }
.drs-speaking .drs-event-meta { color: var(--color-green); font-size: 0.9rem; }

/* Book */
.drs-book__grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.drs-book__cover { max-width: 420px; }
.drs-book__cover img { box-shadow: 0 24px 48px rgba(23, 23, 19, 0.16); }
.drs-book__heading { font-size: var(--text-h2); }
.drs-book__text { font-size: var(--text-body-lg); max-width: 52ch; }
.drs-book__formats {
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-book__quote {
	border-left: 2px solid var(--color-green);
	margin: var(--space-md) 0;
	padding-left: var(--space-sm);
	font-family: var(--font-display);
	font-size: var(--text-h3);
	line-height: 1.25;
	color: var(--color-green-dark);
}
.drs-book__quote cite {
	display: block;
	font-family: var(--font-body);
	font-size: 0.95rem;
	font-style: normal;
	margin-top: 0.8em;
	color: var(--color-ink);
}
.drs-book__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }

/* Collaborate */
.drs-collaborate__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--color-border);
}
.drs-collaborate__item { border-bottom: 1px solid var(--color-border); }
.drs-collaborate__item a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-sm);
	font-family: var(--font-display);
	font-size: var(--text-h3);
	color: var(--color-green-dark);
	text-decoration: none;
	padding: 1.1em 0;
	transition: padding-left var(--transition-standard);
}
.drs-collaborate__item a:hover { padding-left: 0.75rem; }
.drs-collaborate__arrow { color: var(--color-accent); font-size: 1.3rem; }

/* Newsletter */
.drs-newsletter { position: relative; overflow: hidden; }
.drs-newsletter__watermark {
	position: absolute;
	right: -70px;
	bottom: -70px;
	opacity: 0.08;
	pointer-events: none;
}
.drs-newsletter__heading { font-size: var(--text-h2); max-width: 20ch; }
.drs-newsletter__text { font-size: var(--text-body-lg); max-width: 46ch; }

/*
 * Slim variant: a single band — copy left, form right — rather than a full
 * section. The consent line is folded away to keep it to one line.
 */
.drs-newsletter--slim {
	padding-block: clamp(1.25rem, 2.2vw, 2rem);
	/* Alto único para inputs y botón: fijarlo en ambos es la única forma de
	   garantizar que coincidan, porque el line-height por defecto del <button>
	   varía entre navegadores. */
	--drs-nl-control: 56px;
	/* Alto de la etiqueta más su gap. El título se baja esta distancia para
	   centrarse contra los campos y no contra el formulario entero. */
	--drs-nl-label-offset: calc(0.72rem * 1.65 + 0.4 * 0.72rem);
}
.drs-newsletter__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm) var(--space-md);
}
.drs-newsletter--slim .drs-newsletter__heading {
	font-size: clamp(1.15rem, 0.95rem + 0.7vw, 1.7rem);
	max-width: 26ch;
	margin: var(--drs-nl-label-offset) 0 0;
}
.drs-newsletter--slim .drs-newsletter-form { flex: 1 1 min(520px, 100%); }
.drs-newsletter--slim .drs-newsletter-form__fields { margin-block: 0; }
.drs-newsletter--slim .drs-newsletter-form__consent { display: none; }
.drs-newsletter--slim .drs-form-field label { font-size: 0.72rem; }
.drs-newsletter--slim .drs-form-field input[type="text"],
.drs-newsletter--slim .drs-form-field input[type="email"],
.drs-newsletter--slim .drs-newsletter-form__submit .drs-button {
	height: var(--drs-nl-control);
	min-height: var(--drs-nl-control);
	padding-block: 0;
}
.drs-newsletter--slim .drs-newsletter-form__submit .drs-button { justify-content: center; }

/* Gallery */
/* El título entra en dos líneas. El ancho se mide en ch del propio h2 —no del
   contenedor, que usa la tipografía de cuerpo— para que la proporción aguante
   toda la escala fluida de --text-h2. */
.drs-gallery .drs-section-header { max-width: none; }
.drs-gallery .drs-section-header__title {
	max-width: 28ch;
	text-wrap: balance;
}
.drs-gallery__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	columns: 4 260px;
	column-gap: clamp(1rem, 2vw, 1.75rem);
}
.drs-gallery__item {
	break-inside: avoid;
	margin-bottom: clamp(1rem, 2vw, 1.75rem);
}
.drs-gallery__item figure { margin: 0; }
.drs-gallery__item img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--radius-small);
	transition: transform var(--transition-standard);
}
.drs-gallery__item a:hover img { transform: scale(1.02); }

/* ================= 9. Archives, cards & singles ===================== */
.drs-archive-header { padding-block: var(--space-lg) var(--space-md); }
.drs-archive-header__title { font-size: var(--text-h1); letter-spacing: -0.015em; max-width: 18ch; }
.drs-archive-header__intro { font-size: var(--text-body-lg); color: var(--color-green-dark); max-width: 50ch; }

/* Media video hero */
.drs-videohero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--space-md);
	min-height: min(78vh, 780px);
	padding-block: clamp(4rem, 3rem + 5vw, 7rem);
	overflow: hidden;
	background: var(--color-green-dark);
	color: var(--color-cream);
}
.drs-videohero__stage {
	position: absolute;
	inset: 0;
	z-index: -1;
}
.drs-videohero__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity var(--transition-standard);
}
.drs-videohero.is-playing .drs-videohero__poster { opacity: 0; }
.drs-videohero__frame {
	position: absolute;
	top: 50%;
	left: 50%;
	/* Cover the stage with a 16:9 player without letterboxing. */
	width: max(100vw, 177.78vh);
	height: max(56.25vw, 100vh);
	transform: translate(-50%, -50%);
	pointer-events: none;
}
.drs-videohero__layer {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 600ms ease;
	/* Nothing in the background player is interactive: no hover controls. */
	pointer-events: none;
}
.drs-videohero__layer.is-visible { opacity: 1; }
.drs-videohero__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	pointer-events: none;
}
/* Transparent shield: swallows any pointer or touch that reaches the stage. */
.drs-videohero__shade::after {
	content: "";
	position: absolute;
	inset: 0;
}
.drs-videohero__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		0deg,
		rgba(8, 16, 14, 0.92) 0%,
		rgba(8, 16, 14, 0.62) 55%,
		rgba(8, 16, 14, 0.45) 100%
	);
}
.drs-videohero__content { text-align: center; }
.drs-videohero__title {
	font-size: var(--text-h1);
	letter-spacing: -0.02em;
	color: var(--color-cream);
	max-width: 14ch;
	margin: 0 auto;
}
.drs-videohero__intro {
	font-size: var(--text-body-lg);
	max-width: 46ch;
	opacity: 0.92;
	margin-bottom: var(--space-sm);
}
.drs-videohero .drs-eyebrow { color: var(--color-cream); }
.drs-videohero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	margin: 0;
}

.drs-videohero__reel {
	display: flex;
	gap: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0 0 0.5rem;
	overflow-x: auto;
	scrollbar-width: thin;
}
.drs-videohero__chip {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	width: 15rem;
	padding: 0.5rem 0.9rem 0.5rem 0.5rem;
	border: 1px solid rgba(241, 233, 214, 0.28);
	border-radius: 999px;
	background: rgba(8, 16, 14, 0.45);
	color: var(--color-cream);
	text-align: left;
	cursor: pointer;
	transition: background var(--transition-fast), border-color var(--transition-fast);
}
.drs-videohero__chip:hover { background: rgba(8, 16, 14, 0.75); }
.drs-videohero__chip.is-active {
	border-color: var(--color-orange);
	background: rgba(8, 16, 14, 0.85);
}
.drs-videohero__chip img {
	flex: 0 0 auto;
	width: 46px;
	height: 32px;
	object-fit: cover;
	border-radius: 999px;
}
.drs-videohero__chip-title {
	font-size: 0.8rem;
	line-height: 1.25;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

@media (prefers-reduced-motion: reduce) {
	.drs-videohero__frame { display: none; }
	.drs-videohero.is-playing .drs-videohero__poster { opacity: 1; }
}

/* Media hero banner (fallback when no video clips exist) */
.drs-media-hero {
	position: relative;
	overflow: hidden;
	padding-block: clamp(4rem, 3rem + 5vw, 8rem);
}
.drs-media-hero__watermark {
	position: absolute;
	right: -110px;
	top: -110px;
	opacity: 0.08;
	pointer-events: none;
}
.drs-media-hero__inner { position: relative; text-align: center; }
.drs-media-hero__title {
	font-size: var(--text-h1);
	letter-spacing: -0.02em;
	max-width: 14ch;
	margin: 0 auto 0.3em;
}
.drs-media-hero__intro {
	font-size: var(--text-body-lg);
	max-width: 52ch;
	opacity: 0.92;
	margin: 0 auto var(--space-md);
}
.drs-media-hero__stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	list-style: none;
	margin: 0;
	padding-top: var(--space-sm);
	border-top: 1px solid rgba(241, 233, 214, 0.25);
}
.drs-media-hero__stat a {
	display: block;
	text-decoration: none;
	transition: opacity var(--transition-fast);
}
.drs-media-hero__stat a:hover { opacity: 0.7; }
.drs-media-hero__stat-number {
	display: block;
	font-family: var(--font-display);
	font-size: clamp(2rem, 1.4rem + 1.6vw, 3.2rem);
	line-height: 1;
	color: var(--color-cream);
}
.drs-media-hero__stat-label {
	display: block;
	margin-top: 0.4em;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--color-green-soft);
}

.drs-media-filters { padding-block: var(--space-md) var(--space-sm); }
.drs-media-filters__count {
	margin-left: 0.6em;
	font-size: 0.75em;
	opacity: 0.65;
}
.drs-media-archive__results { padding-bottom: var(--space-lg); }

/* ---- Media hero: portrait banner ---- */
.drs-mediabanner {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: center;
	min-height: min(90vh, 860px);
	padding-block: var(--space-lg);
	overflow: hidden;
	background: #6f755f; /* the wall's own tone, so it never flashes white */
	color: var(--color-cream);
}
.drs-mediabanner__stage {
	position: absolute;
	inset: 0;
	z-index: -1;
}
.drs-mediabanner__stage img {
	width: 100%;
	height: 100%;
	/* Held to the right so the subject stays in frame as the crop narrows,
	   leaving the wall on the left free for the copy. */
	object-fit: cover;
	object-position: 68% 12%;
}
/*
 * No scrim over the photograph — the wall is dark enough on its own for
 * cream type. Only a slight veil at the very top, so the transparent
 * header's logo does not sit on bare picture.
 */
.drs-mediabanner__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(28, 34, 22, 0.42) 0%,
		rgba(28, 34, 22, 0.12) 10%,
		rgba(28, 34, 22, 0) 20%
	);
}
.drs-mediabanner__inner { position: relative; }
.drs-mediabanner__copy { position: relative; max-width: 30ch; }
.drs-mediabanner__title {
	font-size: clamp(3rem, 1.8rem + 5vw, 6.6rem);
	line-height: 0.96;
	letter-spacing: -0.025em;
	color: var(--color-cream);
	margin: 0;
	text-shadow: 0 2px 30px rgba(8, 12, 9, 0.35);
}
.drs-mediabanner__line { display: block; }
/* A drawn dot instead of a typed full stop: the typeface's is square. */
.drs-mediabanner__line i {
	display: inline-block;
	width: 0.13em;
	height: 0.13em;
	margin-left: 0.06em;
	vertical-align: baseline;
	border-radius: 50%;
	background: var(--color-accent);
}
.drs-mediabanner__line--accent { color: var(--color-accent); }

/* Each line rises into place in turn. */
.drs-mediabanner__line {
	opacity: 0;
	animation: drs-banner-rise 900ms cubic-bezier(0.2, 0.7, 0.2, 1) forwards;
}
.drs-mediabanner__line:nth-child(1) { animation-delay: 120ms; }
.drs-mediabanner__line:nth-child(2) { animation-delay: 260ms; }
.drs-mediabanner__line:nth-child(3) { animation-delay: 400ms; }
@keyframes drs-banner-rise {
	from { opacity: 0; transform: translateY(0.35em); }
	to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
	.drs-mediabanner__line { opacity: 1; animation: none; }
}

/* ---- Television: a horizontal reel of clips ---- */
.drs-tv {
	background: var(--color-cream);
	padding-block: var(--space-lg);
	overflow: hidden;
}
.drs-tv__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
}
.drs-tv__heading {
	font-size: var(--text-h2);
	margin: 0;
}
.drs-tv__controls {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.drs-tv__count {
	margin-right: 0.4rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-railbtn {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--color-border);
	border-radius: 50%;
	background: none;
	color: var(--color-green-dark);
	font-size: 1.05rem;
	line-height: 1;
	cursor: pointer;
	transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.drs-railbtn:hover:not(:disabled),
.drs-railbtn:focus-visible:not(:disabled) {
	background: var(--color-green-dark);
	border-color: var(--color-green-dark);
	color: var(--color-cream);
}
.drs-railbtn:disabled { opacity: 0.3; cursor: default; }
/* One card is enough to fill the row: nothing to scroll, nothing to steer. */
.drs-tv:not(.is-scrollable) .drs-tv__controls { visibility: hidden; }

/*
 * The reel starts flush with the container's text and runs off the right
 * edge, so it reads as continuing past the screen. Scrolling is native;
 * snapping keeps cards from stopping half out of view.
 */
.drs-tv__rail {
	display: flex;
	gap: clamp(1rem, 1.6vw, 1.5rem);
	list-style: none;
	margin: 0;
	padding: 0 clamp(1.25rem, 4vw, 3rem);
	max-width: var(--container-large);
	margin-inline: auto;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-left: clamp(1.25rem, 4vw, 3rem);
	scrollbar-width: none;
}
.drs-tv__rail::-webkit-scrollbar { display: none; }

.drs-tvcard {
	flex: 0 0 auto;
	/* Capped at 320px: the stills are archive SD, and beyond this width the
	   upscaling starts to show. */
	width: clamp(230px, 24vw, 320px);
	scroll-snap-align: start;
}
.drs-tvcard__hit {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}
.drs-tvcard__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: var(--radius-medium);
	background: var(--color-green-dark);
}
.drs-tvcard__media img,
.drs-tvcard__media .drs-image__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
	transition: transform 500ms cubic-bezier(0.2, 0.7, 0.2, 1), opacity var(--transition-fast);
}
.drs-tvcard__hit:hover .drs-tvcard__media img { transform: scale(1.05); opacity: 0.85; }

.drs-tvcard__play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
}
.drs-tvcard__play::after {
	content: "";
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: 1px solid rgba(241, 233, 214, 0.75);
	background: rgba(23, 32, 20, 0.4) no-repeat center;
	/* Play triangle, drawn so the badge stays a single element. */
	background-image: linear-gradient(transparent, transparent);
	box-shadow: inset 0 0 0 0 transparent;
	transition: background-color var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast);
}
.drs-tvcard__play::before {
	content: "";
	position: absolute;
	z-index: 1;
	width: 0;
	height: 0;
	margin-left: 3px;
	border-style: solid;
	border-width: 6px 0 6px 11px;
	border-color: transparent transparent transparent var(--color-cream);
	transition: border-color var(--transition-fast);
}
.drs-tvcard__hit:hover .drs-tvcard__play::after,
.drs-tvcard__hit:focus-visible .drs-tvcard__play::after {
	background-color: var(--color-accent);
	border-color: var(--color-accent);
	transform: scale(1.1);
}

.drs-tvcard__body { display: block; padding-top: 0.75rem; }
.drs-tvcard__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 0.3em;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-tvcard__outlet { color: var(--color-green-dark); }
.drs-tvcard__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-family: var(--font-display);
	font-size: 1.02rem;
	line-height: 1.3;
	color: var(--color-green-dark);
}
.drs-tvcard__hit:hover .drs-tvcard__title { text-decoration: underline; text-underline-offset: 3px; }

/* ---- Media collections (one section per type) ---- */
.drs-collection { padding-block: var(--space-lg); }
.drs-collection--alt { background: var(--color-cream-light); }
.drs-collection__header {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
}
.drs-collection__heading {
	font-size: var(--text-h3);
	margin: 0;
	max-width: 24ch;
}
.drs-collection__all { white-space: nowrap; }
.drs-collection__footer { margin: var(--space-md) 0 0; }

.drs-collection__items {
	display: grid;
	gap: clamp(1.25rem, 2.5vw, 2.25rem);
}
.drs-collection--feature .drs-collection__items,
.drs-collection--cards .drs-collection__items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.drs-collection--compact .drs-collection__items { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.drs-collection--list .drs-collection__items { gap: 0; }

/* Tile */
.drs-tile { display: flex; flex-direction: column; }
.drs-tile__media {
	position: relative;
	border-radius: var(--radius-medium);
	overflow: hidden;
	background: var(--color-sand);
}
.drs-tile__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform var(--transition-standard);
}
.drs-tile:hover .drs-tile__media img { transform: scale(1.04); }
.drs-tile__play {
	position: absolute;
	inset: auto auto 1rem 1rem;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 0;
	border-radius: 50%;
	background: var(--color-orange);
	cursor: pointer;
	transition: transform var(--transition-fast);
}
.drs-tile__play:hover { transform: scale(1.08); }
.drs-tile__play-icon {
	width: 0;
	height: 0;
	margin-left: 3px;
	border-style: solid;
	border-width: 7px 0 7px 12px;
	border-color: transparent transparent transparent var(--color-white);
}
.drs-tile__body { padding-top: 0.9rem; }
.drs-tile__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 0.4em;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-tile__title { font-size: 1.25rem; line-height: 1.25; margin: 0; }
.drs-tile__title a { text-decoration: none; }
.drs-tile__title a:hover { text-decoration: underline; }
.drs-tile__excerpt { margin: 0.6em 0 0; color: var(--color-green-dark); }

/* Feature layout: the first tile spans the full row */
.drs-collection--feature .drs-tile--big { grid-column: 1 / -1; display: grid; }
@media (min-width: 901px) {
	.drs-collection--feature .drs-tile--big {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
		gap: clamp(1.5rem, 3vw, 3rem);
		align-items: center;
	}
	.drs-collection--feature .drs-tile--big .drs-tile__media img { aspect-ratio: 16 / 9; }
	.drs-collection--feature .drs-tile--big .drs-tile__title { font-size: var(--text-h3); }
}

/* Poster layout: dark grid of covers with the title over the image */
.drs-collection--poster {
	background: var(--color-cream-light);
	color: var(--color-ink);
}
.drs-collection--poster .drs-collection__heading {
	font-size: var(--text-h2);
	max-width: none;
}
.drs-collection--poster .drs-collection__items { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.drs-collection__pill {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.4em 1.6em;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	background: none;
	color: var(--color-green-dark);
	cursor: pointer;
	text-decoration: none;
	font-family: var(--font-body);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}
.drs-collection__pill:hover {
	background: var(--color-green);
	border-color: var(--color-green);
	color: var(--color-cream);
}
/* Same pill inverted, so it keeps its weight on the dark podcast panel. */
.drs-podcast .drs-collection__pill {
	background: var(--color-cream);
	border-color: var(--color-cream);
	color: var(--color-green-dark);
}
.drs-podcast .drs-collection__pill:hover {
	background: var(--color-accent);
	border-color: var(--color-accent);
	color: var(--color-white);
}

.drs-poster {
	position: relative;
	display: block;
	border-radius: var(--radius-medium);
	overflow: hidden;
	background: #0f1610;
	aspect-ratio: 3 / 4;
}
.drs-poster__media,
.drs-poster__media img {
	width: 100%;
	height: 100%;
}
.drs-poster__media img {
	object-fit: cover;
	display: block;
	transition: transform var(--transition-standard);
}
.drs-poster:hover .drs-poster__media img { transform: scale(1.05); }
.drs-poster__body {
	position: absolute;
	inset: auto 0 0 0;
	padding: clamp(1rem, 2vw, 1.5rem);
	background: linear-gradient(to top, rgba(8, 12, 9, 0.94) 22%, rgba(8, 12, 9, 0.55) 62%, rgba(8, 12, 9, 0) 100%);
}
.drs-poster__meta {
	margin: 0 0 0.5em;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	color: rgba(241, 233, 214, 0.72);
}
.drs-poster__title {
	font-size: clamp(1.05rem, 0.9rem + 0.35vw, 1.35rem);
	line-height: 1.25;
	margin: 0;
	color: var(--color-cream);
}
.drs-poster__title a {
	color: inherit;
	text-decoration: none;
}
.drs-poster:hover .drs-poster__title a { text-decoration: underline; }

/* Compact layout: newsletters */
/* Covers layout: articles led by the outlet's cover image */
.drs-collection--covers { background: var(--color-cream-light); }
.drs-collection--covers .drs-collection__heading {
	font-size: var(--text-h2);
	max-width: none;
}
.drs-collection--covers .drs-collection__items { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.drs-artcard { display: flex; }
.drs-artcard__link {
	display: flex;
	flex-direction: column;
	width: 100%;
	text-decoration: none;
	color: inherit;
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-medium);
	overflow: hidden;
	transition: transform var(--transition-standard), box-shadow var(--transition-standard);
}
.drs-artcard__link:hover,
.drs-artcard__link:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(23, 23, 19, 0.12);
}
.drs-artcard__media {
	display: block;
	background: var(--color-sand);
	overflow: hidden;
}
.drs-artcard__media img,
.drs-artcard__media .drs-image__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform var(--transition-standard);
}
.drs-artcard__link:hover .drs-artcard__media img { transform: scale(1.05); }
.drs-artcard__body {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
	flex: 1;
	padding: clamp(0.9rem, 1.4vw, 1.3rem);
}
.drs-artcard__outlet {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-artcard__title {
	font-family: var(--font-display);
	font-size: 1.1rem;
	line-height: 1.25;
	color: var(--color-green-dark);
}
.drs-artcard__link:hover .drs-artcard__title { text-decoration: underline; text-underline-offset: 3px; }
.drs-artcard__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: auto;
	padding-top: 0.4em;
	font-size: 0.8rem;
	color: var(--color-green);
}
.drs-artcard__foot .drs-textlink__arrow { color: var(--color-accent); }

.drs-collection--compact .drs-tile__media img { aspect-ratio: 1; }
.drs-collection--compact .drs-tile__title { font-size: 1.05rem; }

/* List layout: articles */
.drs-mediarow {
	display: grid;
	grid-template-columns: minmax(0, 14rem) minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(1rem, 3vw, 2.5rem);
	padding-block: clamp(1rem, 2vw, 1.5rem);
	border-bottom: 1px solid var(--color-border);
}
.drs-mediarow:first-child { border-top: 1px solid var(--color-border); }
.drs-mediarow__outlet {
	margin: 0;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-mediarow__title {
	font-size: clamp(1.15rem, 0.95rem + 0.5vw, 1.5rem);
	line-height: 1.25;
	margin: 0;
}
.drs-mediarow__title a { text-decoration: none; }
.drs-mediarow__title a:hover { text-decoration: underline; }
.drs-mediarow__meta {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	margin: 0;
	font-size: 0.85rem;
	color: var(--color-green-dark);
	white-space: nowrap;
}
.drs-mediarow__meta .drs-textlink__arrow { color: var(--color-accent); }

.drs-media-filters__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	padding: 0 0 var(--space-sm);
	border-bottom: 1px solid var(--color-border);
}
.drs-media-filters__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0.4em 1.2em;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--color-green-dark);
	transition: background var(--transition-fast), color var(--transition-fast);
}
.drs-media-filters__link:hover { background: var(--color-cream-light); }
.drs-media-filters__link.is-active {
	background: var(--color-green);
	border-color: var(--color-green);
	color: var(--color-cream);
}

.drs-media-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
	padding-block: var(--space-md);
}

.drs-media-card__media img { width: 100%; border-radius: var(--radius-small); }
.drs-media-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9em;
	align-items: center;
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-green);
	margin: 0.9em 0 0.4em;
}
.drs-media-card__type { display: inline-flex; align-items: center; gap: 0.5em; }
.drs-media-card__outlet { color: var(--color-ink); }
.drs-media-card__title { font-size: 1.45rem; margin-bottom: 0.4em; }
.drs-media-card--large .drs-media-card__title { font-size: var(--text-h3); }
.drs-media-card__title a { text-decoration: none; }
.drs-media-card__title a:hover { text-decoration: underline; }

/* Events landing */
.drs-events-archive {
	background: var(--color-cream-light);
}
.drs-events-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: clamp(22rem, 40vw, 38rem);
	overflow: hidden;
	background: var(--color-green-dark);
}
.drs-events-hero__image {
	position: absolute;
	inset: 0;
	z-index: -2;
	background-image: url('https://suzanne.riodigital.com.ar/wp-content/uploads/2026/07/photos/Suzanne%2006-2048x1537.jpg');
	background-position: center 38%;
	background-size: cover;
}
.drs-events-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(25, 39, 29, 0.05) 35%, rgba(25, 39, 29, 0.72) 100%);
}
.drs-events-hero__content {
	width: 100%;
	padding-block: clamp(2.25rem, 5vw, 5rem);
}
.drs-events-hero__title {
	margin: 0;
	color: var(--color-cream-light);
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(3.5rem, 8.5vw, 8.75rem);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: -0.055em;
}
.drs-events-upcoming {
	min-height: clamp(15rem, 22vw, 20rem);
	padding-block: clamp(3.5rem, 7vw, 7rem);
}
.drs-events-upcoming__title {
	margin: 0;
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(2.4rem, 4.25vw, 4.75rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.04em;
}
.drs-events-upcoming__empty {
	max-width: 48ch;
	margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
	font-size: clamp(1.1rem, 1.7vw, 1.4rem);
	line-height: 1.55;
	color: var(--color-green-dark);
}

.drs-events-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
	padding-block: var(--space-md);
}
.drs-event-card {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
	background: var(--color-cream-light);
}
.drs-event-card--past { background: transparent; }
.drs-event-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--color-green-dark);
	text-decoration: none;
}
.drs-event-card__cover {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 420ms ease;
}
.drs-event-card__media--contain {
	background: #cf18b8;
}
.drs-event-card__media--contain .drs-event-card__cover {
	object-fit: contain;
}
.drs-event-card:hover .drs-event-card__cover { transform: scale(1.025); }
.drs-event-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 38%, rgba(18, 32, 21, 0.56) 100%);
	pointer-events: none;
}
.drs-event-card__logo {
	position: absolute;
	left: clamp(0.8rem, 2vw, 1.15rem);
	bottom: clamp(0.8rem, 2vw, 1.15rem);
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(48%, 12rem);
	height: clamp(3rem, 5.5vw, 4.25rem);
	padding: 0.65rem 0.85rem;
	background: rgba(57, 75, 45, 0.94);
	border: 1px solid rgba(246, 239, 224, 0.45);
}
.drs-event-card__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
}
.drs-event-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(1.25rem, 2.5vw, 2rem);
}
.drs-event-card__excerpt { flex: 1; }
.drs-event-card__actions { margin-top: auto; padding-top: 0.8rem; }
.drs-event-meta {
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-green);
	margin-bottom: 0.5em;
}
.drs-event-card__title { font-size: 1.5rem; margin-bottom: 0.3em; }
.drs-event-card__title a { text-decoration: none; }
.drs-event-card__title a:hover { text-decoration: underline; }
.drs-event-card__venue { color: var(--color-green-dark); font-size: 0.95rem; }
.drs-event-card__soldout {
	display: inline-block;
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-accent);
	border: 1px solid currentColor;
	border-radius: 999px;
	padding: 0.3em 1em;
}
.drs-events-past { margin-top: var(--space-lg); border-top: 1px solid var(--color-border); }
.drs-events-past__heading { padding-top: var(--space-md); font-size: var(--text-h3); }

.drs-single-media__embed {
	position: relative;
	aspect-ratio: 16 / 9;
	margin-bottom: var(--space-md);
}
.drs-single-media__embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: var(--radius-small);
}
.drs-single-media__title,
.drs-single-event__title,
.drs-single-post__title { font-size: var(--text-h1); letter-spacing: -0.015em; }
.drs-single-media__header,
.drs-single-event__header,
.drs-single-post__header,
.drs-page__header { padding-block: var(--space-lg) var(--space-md); }
.drs-single-media__audio { margin-bottom: var(--space-md); }
.drs-single-media__audio audio { width: 100%; }

.drs-single-event__details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--space-sm);
	border-block: 1px solid var(--color-border);
	padding-block: var(--space-sm);
	margin: 0 0 var(--space-md);
}
.drs-single-event__details dt {
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-single-event__details dd { margin: 0.2em 0 0; }
.drs-single-event__logo {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: fit-content;
	min-width: 8rem;
	max-width: min(18rem, 70vw);
	height: clamp(4rem, 8vw, 6rem);
	margin: 0 0 var(--space-sm);
	padding: 0.8rem 1rem;
	background: var(--color-green-dark);
	border: 1px solid rgba(246, 239, 224, 0.45);
}
.drs-single-event__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
}
.drs-single-event__image img,
.drs-single-post__image img { width: 100%; border-radius: var(--radius-small); }
.drs-single-event__register { margin-block: var(--space-md); }

.drs-back-link { padding-block: var(--space-md); }

/* Blog listing */
.drs-listing { padding-block: var(--space-md) var(--space-lg); }
.drs-entry-summary {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: var(--space-md);
	padding-block: var(--space-md);
	border-bottom: 1px solid var(--color-border);
}
.drs-entry-summary:first-child { padding-top: 0; }
.drs-entry-summary__media img { border-radius: var(--radius-small); }
.drs-entry-summary__meta {
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-green);
}
.drs-entry-summary__title { font-size: var(--text-h3); }
.drs-entry-summary__title a { text-decoration: none; }
.drs-entry-summary__title a:hover { text-decoration: underline; }
@media (max-width: 700px) {
	.drs-entry-summary { grid-template-columns: 1fr; gap: var(--space-sm); }
}

/* Pagination */
.pagination { padding-block: var(--space-md); }
.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
}
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0.4em 0.9em;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	text-decoration: none;
	font-weight: 600;
}
.pagination .page-numbers.current {
	background: var(--color-green);
	border-color: var(--color-green);
	color: var(--color-cream);
	position: relative;
}
.pagination .page-numbers.current::after {
	content: "";
	position: absolute;
	bottom: 4px;
	left: 50%;
	transform: translateX(-50%);
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--color-accent);
}

/* About page — full-bleed editorial sequence */
.drs-about-v2__hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	overflow: hidden;
	background: var(--color-cream);
	color: var(--color-green-dark);
}
.drs-about-v2__editorial-name {
	margin: 0;
	color: #EC7830;
	font-family: var(--font-display);
	font-size: clamp(8rem, 18vw, 20rem);
	font-weight: 300;
	line-height: 0.82;
	letter-spacing: -0.045em;
	text-align: center;
	text-transform: uppercase;
}
.drs-about-v2__editorial-name span {
	position: absolute;
	left: 50%;
	display: block;
	width: 100%;
	white-space: nowrap;
	will-change: transform;
}
.drs-about-v2__name-back {
	top: 34%;
	z-index: 1;
	transform: translate3d(-50%, calc(-50% + var(--drs-parallax-back, 0px)), 0);
}
.drs-about-v2__name-front {
	top: 61%;
	z-index: 3;
	color: inherit;
	transform: translate3d(-50%, calc(-50% + var(--drs-parallax-front, 0px)), 0);
	-webkit-text-stroke: 0;
}
.drs-about-v2__name-front::after {
	content: ".";
	display: inline-block;
	margin-left: 0.100em;
	color: var(--color-accent);
	-webkit-text-stroke: 0;
}
.drs-about-v2__hero-figure {
	position: absolute;
	bottom: 0.5rem;
	left: 50%;
	z-index: 2;
	width: min(54vw, 70rem);
	height: min(88svh, 58rem);
	margin: 0;
	transform: translate3d(-50%, var(--drs-parallax-figure, 0px), 0);
	will-change: transform;
}
@media (min-width: 901px) and (min-height: 850px) {
	.drs-about-v2__hero-figure { bottom: 5rem; }
}
.drs-about-v2__hero-image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center bottom;
	filter: drop-shadow(0 1.5rem 1.8rem rgba(69, 84, 56, 0.15));
}
.drs-about-v2__hero-content {
	position: absolute;
	left: clamp(1.25rem, 4vw, 4.5rem);
	bottom: clamp(2rem, 6vh, 4.5rem);
	z-index: 4;
	width: min(35ch, calc(100% - 2.5rem));
	padding: clamp(1rem, 1.8vw, 1.4rem);
	background: rgba(241, 233, 214, 0.88);
	backdrop-filter: blur(10px);
}
.drs-about-v2__hero .drs-eyebrow {
	margin-bottom: 0.65rem;
	color: var(--color-green-dark);
}
.drs-about-v2__hero-typing {
	max-width: 35ch;
	min-height: 6.3em;
	margin: 0;
	color: var(--color-green-dark);
	font-size: clamp(1.1rem, 1.45vw, 1.4rem);
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: -0.012em;
}
.drs-about-v2__hero-typing [data-drs-typewriter].is-typing::after {
	content: "";
	display: inline-block;
	width: 0.08em;
	height: 0.9em;
	margin-left: 0.12em;
	background: currentColor;
	vertical-align: -0.06em;
	animation: drs-typewriter-cursor 760ms steps(1, end) infinite;
}
.drs-about-v2__intro {
	position: relative;
	padding-block: clamp(2.8rem, 5vw, 4.5rem);
	background: var(--color-cream);
	border-top: 0;
	overflow: hidden;
}
.drs-about-v2__intro-inner {
	position: relative;
	z-index: 1;
	display: flex;
	justify-content: center;
	align-items: center;
}
.drs-about-v2__intro .drs-eyebrow {
	margin: 0;
	color: var(--color-cream);
}
.drs-about-v2__intro .drs-about-v2__hero-typing {
	box-sizing: border-box;
	width: 100vw;
	max-width: 100vw;
	padding-inline: 1.25rem;
	min-height: 3.2em;
	margin: 0 auto;
	color: var(--color-green-dark);
	font-size: clamp(2.2rem, 1.65vw, 2.65rem);
	line-height: 1.42;
	letter-spacing: -0.04em;
	text-align: center;
}
@media (min-width: 901px) {
	.drs-about-v2__intro .drs-about-v2__hero-typing [data-drs-typewriter] {
		white-space: nowrap;
	}
}
@keyframes drs-typewriter-cursor {
	0%, 48% { opacity: 1; }
	49%, 100% { opacity: 0; }
}
.drs-about-v2__scroll {
	position: absolute;
	right: clamp(1.25rem, 4vw, 3rem);
	bottom: clamp(1.5rem, 4vw, 3rem);
	z-index: 4;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(69, 84, 56, 0.62);
	border-radius: 50%;
}
.drs-about-v2__scroll span:last-child {
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--color-green-dark);
	border-bottom: 2px solid var(--color-green-dark);
	transform: translateY(-2px) rotate(45deg);
}
.drs-about-v2__philosophy {
	padding-block: clamp(6rem, 12vw, 11rem);
	background: #fff;
	color: var(--color-green-dark);
}
.drs-about-v2__philosophy-grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(3rem, 7vw, 8rem);
	align-items: center;
}
.drs-about-v2__philosophy-media {
	position: relative;
	margin: 0;
}
.drs-about-v2__philosophy-media::before {
	content: "";
	position: absolute;
	inset: 1.25rem 1.25rem -1.25rem -1.25rem;
	z-index: 0;
	border: 1px solid var(--color-green-dark);
	border-radius: 0;
}
.drs-about-v2__philosophy-media img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 30%;
	border: 1px solid rgba(69, 84, 56, 0.2);
	border-radius: 0;
	box-shadow: 0 1.5rem 3.5rem rgba(38, 48, 31, 0.16);
	transform: scale(var(--drs-image-scale, 1));
	transform-origin: center;
}
.drs-about-v2__philosophy-copy {
	display: grid;
	gap: clamp(2.5rem, 6vw, 5rem);
}
.drs-about-v2__section-index {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: center;
	padding-top: 0.65rem;
	border-top: 1px solid rgba(241, 233, 214, 0.35);
}
.drs-about-v2__philosophy .drs-about-v2__section-index {
	border-top-color: rgba(69, 84, 56, 0.3);
}
.drs-about-v2__section-index span,
.drs-about-v2__section-index h2 {
	font-family: var(--font-body);
	font-size: var(--text-label);
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
}
.drs-about-v2__section-index span { color: var(--color-accent); }
.drs-about-v2__section-index .drs-about-v2__section-dot {
	display: block;
	width: 0.5rem;
	height: 0.5rem;
	background: var(--color-accent);
	border-radius: 50%;
}
.drs-about-v2__section-index h2 { margin: 0; }
.drs-about-v2__quote {
	position: relative;
	margin: 0;
	padding: 0;
	border: 0;
}
.drs-about-v2__quote::before {
	content: "“";
	position: absolute;
	top: -0.38em;
	left: -0.42em;
	color: var(--color-accent);
	font-family: var(--font-heading);
	font-size: clamp(5rem, 10vw, 10rem);
	line-height: 1;
	opacity: 0.9;
}
.drs-about-v2__quote p {
	position: relative;
	margin: 0;
	max-width: 21ch;
	font-family: var(--font-heading);
	font-size: clamp(2rem, 3.1vw, 3.6rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -0.035em;
}
.drs-about-v2__training {
	min-height: clamp(44rem, 92svh, 58rem);
	padding: 0;
	background: #1d221a;
}
.drs-about-v2__training-scene {
	position: relative;
	min-height: inherit;
	overflow: hidden;
}
.drs-about-v2__training-backdrop {
	position: absolute;
	inset: -10vh 0;
	z-index: 0;
	margin: 0;
}
.drs-about-v2__training-backdrop::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 14, 9, 0.7) 0%, rgba(11, 14, 9, 0.3) 46%, rgba(11, 14, 9, 0.04) 76%);
}
.drs-about-v2__training-backdrop img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 72% center;
	transform: scale(var(--drs-image-scale, 1));
	transform-origin: center;
}
.drs-about-v2__training-content {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	min-height: inherit;
	padding-block: clamp(5rem, 10vh, 8rem);
}
.drs-about-v2__training-card {
	position: relative;
	box-sizing: border-box;
	width: min(40rem, 52vw);
	padding: clamp(1.75rem, 2.4vw, 2.4rem);
	background: var(--color-cream);
	border: 1px solid rgba(65, 82, 54, 0.18);
	border-radius: var(--radius-medium);
	box-shadow: 0 2rem 5rem rgba(8, 12, 7, 0.32);
}
.drs-about-v2__training-card h2 {
	margin-bottom: 1.1rem;
	font-size: clamp(1.45rem, 1.65vw, 1.9rem);
	line-height: 1.08;
}
.drs-about-v2__training-card p {
	font-size: clamp(0.88rem, 0.92vw, 1rem);
	line-height: 1.58;
}
.drs-about-v2__training-card .drs-eyebrow {
	margin-bottom: 0.8rem;
	font-size: 0.65rem;
	letter-spacing: 0.16em;
}
.drs-about-v2__training-number {
	position: absolute;
	right: -0.75rem;
	top: -0.75rem;
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	background: var(--color-accent);
	color: var(--color-green-dark);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: 0.14em;
}
.drs-about-v2__training-copy .drs-eyebrow,
.drs-about-v2__platforms-copy .drs-eyebrow { margin-bottom: clamp(1.25rem, 3vw, 2.5rem); }
.drs-about-v2__training-copy h2,
.drs-about-v2__platforms-copy h2 {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	font-size: clamp(2.15rem, 3.2vw, 3.65rem);
	line-height: 1;
	letter-spacing: -0.035em;
}
.drs-about-v2__training-copy p,
.drs-about-v2__platforms-copy p {
	max-width: 61ch;
	margin: 0;
	font-size: clamp(1.05rem, 1.25vw, 1.28rem);
	line-height: 1.75;
}
.drs-about-v2__platforms {
	padding-block: clamp(5rem, 10vw, 10rem);
	border-top: 1px solid rgba(241, 233, 214, 0.14);
}
.drs-about-v2__platforms-grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(340px, 5fr);
	gap: clamp(3rem, 7vw, 8rem);
	align-items: center;
}
.drs-about-v2__platforms-copy p { color: rgba(241, 233, 214, 0.88); }
.drs-about-v2__platforms-media {
	position: relative;
	margin-bottom: 2rem;
}
.drs-about-v2__platforms-media img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center top;
	border: 1px solid rgba(241, 233, 214, 0.3);
	border-radius: var(--radius-medium);
	box-shadow: 0 1.5rem 3.5rem rgba(10, 16, 8, 0.22);
	transform: scale(var(--drs-image-scale, 1));
	transform-origin: center;
}
.drs-about-v2__platforms-caption {
	position: absolute;
	right: -1rem;
	bottom: -2rem;
	padding: 1rem 1.25rem;
	background: var(--color-accent);
	color: var(--color-green-dark);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}
.drs-about__cta {
	padding-block: clamp(4rem, 7vw, 7rem);
	border-top: 1px solid rgba(241, 233, 214, 0.14);
	text-align: center;
}
.drs-about__cta-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: center;
	margin-top: var(--space-md);
}

/* Editorial scroll layers: each section travels at its own pace. */
.drs-about-v2__intro,
.drs-about-v2__philosophy,
.drs-about-v2__training,
.drs-about-v2__platforms,
.drs-about__cta {
	position: relative;
	overflow: clip;
}
html.js [data-drs-about-layer] {
	opacity: var(--drs-layer-opacity, 1);
	transform: translate3d(0, var(--drs-layer-y, 0), 0);
	will-change: transform, opacity;
}

@media (min-width: 901px) {
	.drs-about-v2__intro {
		min-height: 0;
		display: flex;
		align-items: center;
	}
	.drs-about-v2__philosophy {
		min-height: 90svh;
		display: flex;
		align-items: center;
	}
	.drs-about-v2__platforms-grid {
		min-height: 110svh;
		align-items: start;
	}
	.drs-about-v2__platforms-media {
		position: sticky;
		top: clamp(7rem, 12vh, 9rem);
		align-self: start;
	}
	.drs-about-v2__platforms-copy {
		padding-block: clamp(5rem, 14vh, 10rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	html.js [data-drs-about-layer] {
		opacity: 1;
		transform: none;
		will-change: auto;
	}
	[data-drs-about-media] img { transform: none; }
}
@media (max-width: 900px) {
	.drs-about-v2__editorial-name { font-size: clamp(7rem, 19vw, 12rem); }
	.drs-about-v2__name-back { top: 31%; }
	.drs-about-v2__name-front { top: 55%; }
	.drs-about-v2__hero-figure { width: min(72vw, 41rem); height: min(90svh, 53rem); }
	.drs-about-v2__hero-content { width: min(32ch, calc(100% - 2.5rem)); }
	.drs-about-v2__philosophy-grid,
	.drs-about-v2__platforms-grid { grid-template-columns: 1fr; }
	.drs-about-v2__section-index { max-width: 18rem; }
	.drs-about-v2__philosophy-media { max-width: 560px; }
	.drs-about-v2__quote { margin-left: clamp(1rem, 6vw, 4rem); }
	.drs-about-v2__platforms-media { max-width: 560px; }
	.drs-about-v2__platforms-media { order: -1; }
}
@media (max-width: 600px) {
	.drs-about-v2__hero { min-height: 48rem; }
	.drs-about-v2__editorial-name { font-size: clamp(4.5rem, 21vw, 7rem); }
	.drs-about-v2__name-back { top: 23%; }
	.drs-about-v2__name-front { top: 42%; }
	.drs-about-v2__hero-figure { bottom: 1rem; width: min(98vw, 34rem); height: 79svh; }
	.drs-about-v2__hero-content {
		left: 1rem;
		bottom: 1rem;
		width: calc(100% - 2rem);
		padding: 0.9rem 3.6rem 0.9rem 1rem;
		background: rgba(241, 233, 214, 0.94);
	}
	.drs-about-v2__hero-typing {
		max-width: 34ch;
		min-height: 7.9em;
		font-size: clamp(1rem, 4.2vw, 1.2rem);
	}
	.drs-about-v2__intro { padding-block: 2.75rem; }
	.drs-about-v2__intro .drs-about-v2__hero-typing {
		min-height: 5.8em;
		font-size: clamp(1.1rem, 4.5vw, 1.35rem);
		text-align: center;
	}
	.drs-about-v2__scroll { width: 42px; height: 42px; }
	.drs-about-v2__philosophy,
	.drs-about-v2__platforms { padding-block: 4.5rem; }
	.drs-about-v2__training { min-height: 54rem; }
	.drs-about-v2__training-backdrop { inset: -5vh -18vw; }
	.drs-about-v2__training-backdrop img { object-position: 62% center; }
	.drs-about-v2__training-backdrop::after {
		background: linear-gradient(180deg, rgba(11, 14, 9, 0.08) 15%, rgba(11, 14, 9, 0.78) 68%, rgba(11, 14, 9, 0.9) 100%);
	}
	.drs-about-v2__training-content {
		align-items: flex-end;
		padding: 16rem 1rem 3rem;
	}
	.drs-about-v2__training-card {
		width: 100%;
		padding: 1.75rem 1.4rem;
	}
	.drs-about-v2__training-copy h2 { font-size: clamp(1.55rem, 6vw, 1.9rem); }
	.drs-about-v2__training-copy p { font-size: 0.95rem; line-height: 1.55; }
	.drs-about-v2__quote { margin-left: 0.8rem; }
	.drs-about-v2__quote p { font-size: clamp(1.9rem, 8vw, 2.7rem); }
	.drs-about-v2__training-copy h2,
	.drs-about-v2__platforms-copy h2 { font-size: clamp(2rem, 8vw, 2.85rem); }
	.drs-about-v2__platforms-caption {
		right: -0.5rem;
		white-space: normal;
	}
}

/* Work With Me — editorial landing */
.drs-wwm-v2 {
	background: var(--color-cream-light);
}
.drs-wwm-v2__hero {
	position: relative;
	isolation: isolate;
	display: flex;
	align-items: flex-end;
	min-height: clamp(22rem, 40vw, 38rem);
	overflow: hidden;
	background: var(--color-green-dark);
}
.drs-wwm-v2__hero-media,
.drs-wwm-v2__hero-media img,
.drs-wwm-v2__hero-shade {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.drs-wwm-v2__hero-media { z-index: -2; }
.drs-wwm-v2__hero-media img {
	object-fit: cover;
	object-position: center 42%;
}
.drs-wwm-v2__hero-shade {
	z-index: -1;
	background: linear-gradient(90deg, rgba(17, 28, 21, 0.84) 0%, rgba(17, 28, 21, 0.52) 43%, rgba(17, 28, 21, 0.08) 72%);
}
.drs-wwm-v2__hero-content {
	width: 100%;
	padding-block: clamp(2.25rem, 5vw, 5rem);
}
.drs-wwm-v2__title {
	margin: 0;
	color: var(--color-cream-light);
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(3.5rem, 8.5vw, 8.75rem);
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: -0.055em;
}
.drs-wwm-v2__intro {
	max-width: 43ch;
	margin: 0 0 1.75rem;
	color: var(--color-cream-light);
	font-size: clamp(1.05rem, 1.45vw, 1.3rem);
	line-height: 1.5;
}
.drs-wwm-v2__hero-link {
	color: var(--color-cream-light);
	border-color: rgba(247, 240, 223, 0.65);
}
.drs-wwm-v2__ways {
	padding-block: clamp(4.5rem, 8vw, 8rem);
}
.drs-wwm-v2__section-head {
	display: grid;
	grid-template-columns: minmax(11rem, 0.7fr) minmax(0, 2fr);
	align-items: end;
	gap: 2rem;
	margin-bottom: clamp(2.5rem, 5vw, 4.75rem);
}
.drs-wwm-v2__section-head h2,
.drs-wwm-v2__process-head h2,
.drs-wwm-v2__contact-copy h2 {
	margin: 0;
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-weight: 400;
	line-height: 0.98;
	letter-spacing: -0.045em;
}
.drs-wwm-v2__section-head h2 { font-size: clamp(3rem, 6vw, 6.5rem); }
.drs-wwm-v2__ways-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid var(--color-border);
	border-left: 1px solid var(--color-border);
}
.drs-wwm-v2__ways-grid li {
	min-height: clamp(18rem, 28vw, 25rem);
	padding: clamp(1.5rem, 3.5vw, 3.5rem);
	border-right: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}
.drs-wwm-v2__ways-grid li:nth-child(3n + 2) { background: rgba(216, 224, 203, 0.34); }
.drs-wwm-v2__number {
	display: block;
	margin-bottom: clamp(4rem, 9vw, 8rem);
	color: var(--color-accent);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
}
.drs-wwm-v2__ways-grid h3 {
	margin: 0 0 0.6rem;
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(1.75rem, 3vw, 3rem);
	font-weight: 400;
	line-height: 1.05;
	letter-spacing: -0.035em;
}
.drs-wwm-v2__ways-grid p {
	max-width: 43ch;
	margin: 0;
	font-size: clamp(1rem, 1.25vw, 1.15rem);
	line-height: 1.55;
}
.drs-wwm-v2__process {
	padding-block: clamp(4.5rem, 8vw, 7.5rem);
	color: var(--color-cream-light);
	background: var(--color-green-dark);
}
.drs-wwm-v2__process .drs-eyebrow { color: inherit; }
.drs-wwm-v2__process-head {
	display: grid;
	grid-template-columns: minmax(11rem, 0.7fr) minmax(0, 2fr);
	align-items: end;
	gap: 2rem;
	margin-bottom: clamp(2.75rem, 5vw, 5rem);
}
.drs-wwm-v2__process-head h2 { font-size: clamp(3rem, 5.5vw, 5.75rem); }
.drs-wwm-v2__process-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid rgba(247, 240, 223, 0.3);
}
.drs-wwm-v2__process-list li {
	padding: 1.5rem clamp(1rem, 2.5vw, 2.5rem) 0 0;
}
.drs-wwm-v2__process-list span {
	color: var(--color-accent);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
}
.drs-wwm-v2__process-list p {
	max-width: 24ch;
	margin: 1.5rem 0 0;
	font-size: clamp(1.2rem, 2vw, 1.75rem);
	line-height: 1.3;
}
.drs-wwm-v2__contact {
	scroll-margin-top: 6rem;
	padding-block: clamp(5rem, 10vw, 10rem);
	background: #ede6d7;
}
.drs-wwm-v2__contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(3rem, 8vw, 8rem);
	align-items: start;
}
.drs-wwm-v2__contact-copy {
	position: sticky;
	top: 8rem;
}
.drs-wwm-v2__contact-copy h2 {
	max-width: none;
	margin-top: 0.4em;
	font-size: clamp(3.2rem, 5vw, 5.25rem);
}
.drs-wwm-v2__contact-copy h2 span { display: block; }
.drs-wwm-v2__contact-copy > p {
	max-width: 34ch;
	font-size: clamp(1rem, 1.4vw, 1.2rem);
	line-height: 1.55;
}
.drs-wwm-v2__contact-methods { margin-top: clamp(2.5rem, 5vw, 4rem); }
.drs-wwm-v2__contact-methods h3,
.drs-wwm-v2__socials h3 {
	margin: 0 0 1rem;
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}
.drs-wwm-v2__contact-methods ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--color-border);
}
.drs-wwm-v2__contact-methods li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	padding-block: 0.9rem;
	border-bottom: 1px solid var(--color-border);
	font-size: 0.94rem;
}
.drs-wwm-v2__contact-methods a {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	color: var(--color-green-dark);
	font-size: 0.84rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
.drs-wwm-v2__contact-methods a > span { color: var(--color-accent); }
.drs-wwm-v2__contact-methods a:hover { text-decoration: underline; text-underline-offset: 3px; }
.drs-wwm-v2__socials { margin-top: 2.5rem; }
.drs-wwm-v2__socials .drs-social-icons { justify-content: flex-start; }
.drs-wwm-v2__socials .drs-social-icons__link {
	width: 38px;
	height: 38px;
	border: 1px solid var(--color-green-dark);
	background: transparent;
	color: var(--color-green-dark);
}
.drs-wwm-v2__socials .drs-social-icons__link svg {
	width: 18px;
	height: 18px;
}
.drs-contact-form {
	padding: clamp(1.5rem, 3vw, 3rem);
	border: 1px solid var(--color-border);
	background: var(--color-cream-light);
}
.drs-contact-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.4rem 1.5rem;
}
.drs-contact-form .drs-form-field label {
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.drs-contact-form .drs-form-field input,
.drs-contact-form .drs-form-field textarea {
	border: 0;
	border-bottom: 1px solid var(--color-green-dark);
	border-radius: 0;
	background: transparent;
	padding-inline: 0;
}
.drs-contact-form .drs-form-field textarea {
	min-height: 12rem;
	margin-top: 0.35rem;
	padding: 1rem;
	border: 1px solid var(--color-border);
	background: rgba(255, 255, 255, 0.42);
}
.drs-contact-form__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	margin-top: 2rem;
}
.drs-contact-form__note {
	max-width: 38ch;
	margin: 0;
	color: var(--color-green-dark);
	font-size: 0.8rem;
	line-height: 1.45;
}

@media (max-width: 900px) {
	.drs-wwm-v2__hero { min-height: 26rem; }
	.drs-wwm-v2__hero-media img { object-position: 62% center; }
	.drs-wwm-v2__hero-shade { background: linear-gradient(0deg, rgba(17, 28, 21, 0.87) 0%, rgba(17, 28, 21, 0.48) 62%, rgba(17, 28, 21, 0.08) 100%); }
	.drs-wwm-v2__section-head,
	.drs-wwm-v2__process-head,
	.drs-wwm-v2__contact-grid { grid-template-columns: 1fr; }
	.drs-wwm-v2__section-head,
	.drs-wwm-v2__process-head { align-items: start; }
	.drs-wwm-v2__contact-copy { position: static; }
	.drs-wwm-v2__contact-copy h2 { max-width: 12ch; }
}

@media (max-width: 640px) {
	.drs-wwm-v2__hero { min-height: 26rem; }
	.drs-wwm-v2__hero-content { padding-bottom: 2.75rem; }
	.drs-wwm-v2__title { font-size: clamp(3.5rem, 17vw, 5rem); }
	.drs-wwm-v2__ways-grid,
	.drs-wwm-v2__process-list,
	.drs-contact-form__grid { grid-template-columns: 1fr; }
	.drs-wwm-v2__ways-grid li { min-height: 18rem; }
	.drs-wwm-v2__number { margin-bottom: 4rem; }
	.drs-wwm-v2__process-list { gap: 2.5rem; }
	.drs-contact-form__footer { align-items: stretch; flex-direction: column; }
	.drs-contact-form__footer .drs-button { justify-content: center; width: 100%; }
}

/* Bootcamp page */
.drs-bootcamp-page__hero { padding-block: var(--space-md) var(--space-lg); }
.drs-bootcamp-page__hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}
.drs-bootcamp-page__title { font-size: var(--text-h1); letter-spacing: -0.015em; }
.drs-bootcamp-page__intro { font-size: var(--text-body-lg); color: var(--color-green-dark); max-width: 44ch; margin-bottom: var(--space-md); }
.drs-bootcamp-page__actions { display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.drs-bootcamp-page__hero-media img { border-radius: var(--radius-small); box-shadow: 0 24px 48px rgba(23, 23, 19, 0.16); }
.drs-bootcamp-page__retailer-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-md);
	font-size: var(--text-body-lg);
}

/* 404 */
.drs-404 { text-align: center; padding-block: var(--space-xl); }
.drs-404__title { font-size: var(--text-h1); }
.drs-404__text { font-size: var(--text-body-lg); max-width: 44ch; margin-inline: auto; }
.drs-404__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
	justify-content: center;
	margin-block: var(--space-md);
}
.drs-404 .drs-search-form { max-width: 480px; margin-inline: auto; }

/* Video modal */
.drs-modal {
	position: fixed;
	inset: 0;
	z-index: 1100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 4vw, 3rem);
	background: rgba(23, 23, 19, 0.88);
}
.drs-modal[hidden] { display: none; }
.drs-modal__dialog {
	position: relative;
	width: min(1080px, 100%);
	background: var(--color-ink);
	border-radius: var(--radius-small);
}
.drs-modal__frame {
	aspect-ratio: 16 / 9;
	width: 100%;
}
.drs-modal__frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
}
.drs-modal__close {
	position: absolute;
	top: -52px;
	right: 0;
	background: none;
	border: 1px solid rgba(241, 233, 214, 0.5);
	border-radius: var(--radius-small);
	color: var(--color-cream);
	font-size: 1.5rem;
	line-height: 1;
	width: 44px;
	height: 44px;
	cursor: pointer;
}

/* ============================ 10. Forms ============================= */
.drs-form-field { display: flex; flex-direction: column; gap: 0.4em; margin: 0; }
.drs-form-field label {
	font-size: 0.95rem;
	font-weight: 600;
	color: inherit;
}
.drs-required { color: var(--color-accent); }
.drs-form-field input[type="text"],
.drs-form-field input[type="email"],
.drs-form-field input[type="tel"],
.drs-form-field input[type="search"],
.drs-form-field select,
.drs-form-field textarea,
.drs-search-form input[type="search"] {
	font: inherit;
	color: var(--color-ink);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	padding: 0.75em 1em;
	min-height: 48px;
	width: 100%;
}
.drs-form-field textarea { min-height: auto; resize: vertical; }
.drs-form-field input:focus-visible,
.drs-form-field select:focus-visible,
.drs-form-field textarea:focus-visible,
.drs-search-form input:focus-visible {
	outline: 2px solid var(--color-green);
	outline-offset: 1px;
	border-color: var(--color-green);
}
.drs-form-field [aria-invalid="true"] { border-color: #b3401a; }
.drs-field-error {
	color: #8a3213;
	font-size: 0.9rem;
	font-weight: 600;
}
.drs-section--green .drs-field-error,
.drs-section--green-dark .drs-field-error,

.drs-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.drs-form-status__message {
	border: 1px solid var(--color-border);
	border-radius: var(--radius-small);
	padding: 0.9em 1.2em;
	font-weight: 600;
	margin-block: var(--space-sm);
	display: flex;
	align-items: center;
	gap: 0.6em;
}
.drs-form-status__message.is-success { border-color: var(--color-green); }
.drs-form-status__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--color-accent);
	flex: none;
}

.drs-newsletter-form__fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) auto;
	gap: var(--space-sm);
	align-items: end;
	margin-block: var(--space-sm);
}
.drs-newsletter-form__submit { margin: 0; }
.drs-newsletter-form__consent { font-size: 0.85rem; opacity: 0.85; max-width: 60ch; }
.drs-newsletter-form--footer .drs-newsletter-form__fields { grid-template-columns: 1fr; align-items: stretch; }
@media (max-width: 760px) {
	.drs-newsletter-form__fields { grid-template-columns: 1fr; }
	/* Apilado ya no hay fila contra la que centrar: el título vuelve a su sitio. */
	.drs-newsletter--slim .drs-newsletter__heading { margin-top: 0; }
}

.drs-inquiry__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-sm) var(--space-md);
}
.drs-form-field--full { grid-column: 1 / -1; }
.drs-form-field--consent {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.7em;
	align-items: start;
}
.drs-form-field--consent input {
	width: 22px;
	height: 22px;
	min-height: 0;
	margin-top: 0.2em;
	accent-color: var(--color-green);
}
.drs-form-field--consent label { font-weight: 400; }
.drs-form-field--consent .drs-field-error { grid-column: 1 / -1; }
.drs-inquiry__submit { margin-top: var(--space-md); }
.drs-inquiry__notice {
	margin-top: var(--space-lg);
	border-top: 1px solid var(--color-border);
	padding-top: var(--space-sm);
	font-size: 0.95rem;
	color: var(--color-green-dark);
}

.drs-search-form label { display: block; font-weight: 600; margin-bottom: 0.4em; }
.drs-search-form__row { display: flex; gap: 0.6rem; }
.drs-search-form__row input { flex: 1; }

/* ============================ 11. Footer ============================ */
/* A white card floating on a photographic (or plain green) band. */
.site-footer {
	position: relative;
	isolation: isolate;
	background: var(--color-green-dark);
	padding-block: clamp(2.5rem, 5vw, 6rem);
}
/* The still stands in until the clip plays, and stays for reduced motion. */
.site-footer--photo {
	background-image: var(--drs-footer-image);
	background-size: cover;
	background-position: center;
}
.site-footer__stage {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
	pointer-events: none;
}
.site-footer__stage video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 900ms ease;
}
.site-footer__stage.is-ready video { opacity: 1; }
.site-footer__card {
	background: var(--color-cream);
	color: var(--color-green-dark);
	border-radius: var(--radius-large);
	padding: clamp(1.75rem, 2.8vw, 3rem) clamp(1.75rem, 4vw, 5rem);
}
.site-footer a { color: var(--color-green-dark); }

.site-footer__top { padding-bottom: clamp(1.75rem, 3vw, 3rem); }
.site-footer__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.1em;
	justify-items: start;
}
.site-footer__menu a {
	font-family: var(--font-display);
	font-size: clamp(1.15rem, 1rem + 0.5vw, 1.6rem);
	line-height: 1.25;
	text-decoration: underline;
	text-underline-offset: 5px;
	text-decoration-thickness: 1px;
}
.site-footer__menu a:hover { color: var(--color-accent); }

.site-footer__heading {
	font-family: var(--font-display);
	font-size: clamp(1.15rem, 1rem + 0.5vw, 1.6rem);
	margin: 0 0 0.55em;
}
.site-footer__heading a {
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-thickness: 1px;
}
/* Empujado al borde derecho de la tarjeta, en línea con los iconos sociales
   de la fila de abajo. Se resetea a la izquierda cuando el footer colapsa. */
.site-footer__inquiries {
	justify-self: end;
	text-align: right;
}
.site-footer__inquiries-text {
	margin: 0;
	max-width: 36ch;
	font-size: 0.9rem;
	line-height: 1.55;
}

/*
 * Both rows run on the same two-column track, so the social badges line up
 * under "Media Inquiries" instead of drifting out to the card's edge.
 */
.site-footer__top,
.site-footer__bottom {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 24rem);
	gap: var(--space-md);
}
.site-footer__bottom {
	align-items: center;
}
/* Wordmark, copyright and the two legal links share one line; only very
   narrow screens are allowed to break it. */
.site-footer__bottom-left {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.75rem clamp(1.5rem, 3vw, 3.5rem);
}
.site-footer__legal { flex-wrap: nowrap; white-space: nowrap; }
.site-footer__wordmark {
	display: inline-flex;
	align-items: center;
	flex: none;
	text-decoration: none;
}
.site-footer__signature {
	display: block;
	width: clamp(8.5rem, 12vw, 11.5rem);
	height: auto;
	filter: brightness(0) saturate(100%) invert(30%) sepia(11%) saturate(1400%) hue-rotate(43deg) brightness(75%) contrast(95%);
}
.site-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.875rem;
}
/* The separator lives in CSS so the legal menu stays a plain menu. */
.site-footer__legal-links::before {
	content: "|";
	margin-right: 0.5rem;
	opacity: 0.5;
}
.site-footer__legal-menu {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.site-footer__legal-menu li + li::before {
	content: "|";
	margin-right: 0.5rem;
	opacity: 0.5;
}
.site-footer__legal-links,
.site-footer__legal-menu,
.site-footer__legal-menu a { font-size: inherit; }
.site-footer__legal-menu a { text-decoration: underline; text-underline-offset: 3px; }

.drs-social-icons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* `.site-footer a` would otherwise win on specificity and paint the glyph
   the same green as the badge behind it. */
.site-footer .drs-social-icons__link,
.drs-social-icons__link {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--color-green-dark);
	color: var(--color-cream);
	text-decoration: none;
	transition: background var(--transition-fast), transform var(--transition-fast);
}
.drs-social-icons__link svg {
	width: 21px;
	height: 21px;
	fill: currentColor;
}
.site-footer .drs-social-icons__link:hover,
.site-footer .drs-social-icons__link:focus-visible,
.drs-social-icons__link:hover,
.drs-social-icons__link:focus-visible {
	background: var(--color-accent);
	color: var(--color-white);
	transform: translateY(-2px);
}

/* ================= 12. Entry (block editor) content ================= */
.drs-entry {
	max-width: var(--container-small);
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 4vw, 3rem);
	padding-block: var(--space-md) var(--space-lg);
	font-size: var(--text-body);
}
.drs-entry > * { margin-block: 0 1.2em; }
.drs-entry h2 { font-size: var(--text-h3); margin-top: 1.6em; }
.drs-entry h3 { font-size: 1.4rem; margin-top: 1.4em; }
.drs-entry .alignwide {
	max-width: var(--container-large);
	width: calc(100vw - 2 * clamp(1.25rem, 4vw, 3rem));
	margin-inline: calc(50% - 50vw + clamp(1.25rem, 4vw, 3rem));
}
.drs-entry .alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
}
.drs-entry img { border-radius: var(--radius-small); }
.drs-entry blockquote,
.drs-pullquote {
	border-left: 2px solid var(--color-green);
	margin: 2em 0;
	padding-left: 1.2em;
	font-family: var(--font-display);
	font-size: var(--text-h3);
	line-height: 1.25;
	color: var(--color-green-dark);
}
.drs-entry blockquote p { margin-bottom: 0.4em; }
.drs-entry blockquote cite {
	font-family: var(--font-body);
	font-size: 0.95rem;
	font-style: normal;
	color: var(--color-ink);
}
.drs-timeline-item {
	border-left: 1px solid var(--color-border);
	padding-left: var(--space-sm);
	position: relative;
}
.drs-timeline-item::before {
	content: "";
	position: absolute;
	left: -4px;
	top: 0.4em;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--color-accent);
}
.drs-entry .wp-block-table { overflow-x: auto; }
.drs-entry table { border-collapse: collapse; width: 100%; }
.drs-entry td, .drs-entry th {
	border: 1px solid var(--color-border);
	padding: 0.6em 0.9em;
	text-align: left;
}

/* Post navigation */
.post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-sm);
	border-top: 1px solid var(--color-border);
	padding-block: var(--space-md);
}
.post-navigation a { text-decoration: none; display: grid; gap: 0.3em; }
.post-navigation .nav-next { text-align: right; }

/* Comments (kept minimal) */
.comment-list { list-style: none; padding: 0; }
.comment-list .comment { border-top: 1px solid var(--color-border); padding-block: var(--space-sm); }

/* ==================== 13. Motion & reduced motion =================== */
/* Reveal styles only apply when JS is confirmed (html.js), so content
   is always visible without JavaScript. */
html.js [data-drs-reveal] {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.7, 0.2, 1);
	/* Sections that stagger their children set --drs-delay per item. */
	transition-delay: var(--drs-delay, 0ms);
}
html.js [data-drs-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
	html.js [data-drs-reveal] { opacity: 1; transform: none; }
	.drs-logo-carousel__track { animation: none; }
	html.js .drs-work__media { opacity: 1; transform: none; }
	/* Keep the tilt, drop the drift. */
	.drs-work__mockup { animation: none; transform: rotate(-5deg); }
}

/* ================= 14. Cross-document view transitions ============== */
/*
 * Same-origin navigations cross-fade instead of blanking between pages.
 * Both documents have to opt in, and every front-end page loads this
 * stylesheet — wp-admin does not, so leaving the site still navigates
 * the ordinary way. Browsers without support simply ignore the rule.
 */
@view-transition {
	navigation: auto;
}

/*
 * The header is the one piece of chrome that sits in the same place on
 * every page, so it is captured on its own and stays put while the body
 * travels. The footer is deliberately left in the root snapshot: it is
 * usually off-screen and at a different document offset on each page,
 * which would drag a ghost of it across the viewport.
 */
.site-header { view-transition-name: drs-header; }
#wpadminbar { view-transition-name: drs-adminbar; }

/*
 * The root carries `scroll-behavior: smooth` (section 2), which turns the
 * scroll the browser performs on arrival into an animation: restoring a
 * Back position, or jumping to a fragment like /#drs-newsletter. That
 * animated scroll runs while the transition still holds the root
 * scroller, so the wheel does nothing for a beat and the page reads as
 * stuck — the further away the anchor, the longer it lasts. Arrival
 * scrolls are instant; same-page anchor clicks keep their smooth scroll.
 */
html:active-view-transition {
	scroll-behavior: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
	animation-duration: 320ms;
	animation-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
	animation-fill-mode: both;
}
::view-transition-old(root) { animation-name: drs-vt-leave; }
::view-transition-new(root) { animation-name: drs-vt-enter; }

/*
 * The outgoing page only fades: sliding it would uncover a strip of bare
 * canvas along the bottom edge, which reads as a flash over the green
 * footer. The incoming page rises the same way the reveal-on-scroll
 * animation does, half the distance, and the strip it leaves along the
 * top edge is hidden behind the header.
 */
@keyframes drs-vt-leave {
	to { opacity: 0; }
}
@keyframes drs-vt-enter {
	from { opacity: 0; transform: translateY(9px); }
}

/* The header only cross-fades — no slide — so the bar never shifts. */
::view-transition-old(drs-header),
::view-transition-new(drs-header) {
	animation-duration: 320ms;
	animation-timing-function: ease;
}

@media (prefers-reduced-motion: reduce) {
	@view-transition {
		navigation: none;
	}
}

/* ===================== Responsive breakpoints ====================== */
@media (max-width: 1100px) {
	.drs-about__hero-grid,
	.drs-wwm__hero-grid,
	.drs-bootcamp-page__hero-grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
	.drs-media-feature { width: 100%; }
	.drs-media-mini--two { margin-right: 0; }
	.site-footer__top { grid-template-columns: 1fr; }
	.site-footer__inquiries { justify-self: start; text-align: left; }
}

@media (max-width: 900px) {
	/* No room for portrait and copy side by side: drop the copy under a
	   vertical scrim instead. */
	.drs-mediabanner { align-items: flex-end; min-height: min(72vh, 620px); }
	.drs-mediabanner__stage img { object-position: 60% top; }
	.drs-mediabanner__scrim {
		background: linear-gradient(0deg, rgba(38, 45, 30, 0.72) 0%, rgba(38, 45, 30, 0.3) 40%, rgba(38, 45, 30, 0) 70%);
	}
	.drs-mediabanner__copy { max-width: none; }
	.drs-hero {
		height: 100vh;
		height: 100svh;
	}
	.drs-hero__shade {
		background: linear-gradient(0deg, rgba(8, 16, 14, 0.88) 0%, rgba(8, 16, 14, 0.52) 72%, rgba(8, 16, 14, 0.3) 100%);
	}
	.drs-hero__content { align-self: flex-end; padding-bottom: 8rem; }
	.drs-hero__headline { font-size: clamp(3.2rem, 13vw, 6rem); }
	.drs-intro__grid,
	.drs-speaking__grid,
	.drs-monarch__grid,
	.drs-book__grid,
	.drs-about__hero-grid,
	.drs-wwm__hero-grid,
	.drs-bootcamp-page__hero-grid {
		grid-template-columns: 1fr;
	}
	.drs-about__line { display: none; }
	.drs-intro__media { margin-top: 0; max-width: 420px; }
	/* One column: the photograph leads again. */
	.drs-speaking__media { max-width: 420px; order: 1; }
	.drs-speaking__content { order: 2; }
	/* One column: the clip leads again, as it does in the other splits. */
	.drs-monarch__media { max-width: 560px; order: 1; }
	.drs-monarch__content { order: 2; }
	.drs-media-card--large { grid-template-columns: 1fr; }
	.drs-featured-media__grid { grid-template-columns: 1fr; }
	.drs-featured-media__heading { max-width: none; }
	.drs-collection--feature .drs-collection__items,
	.drs-collection--cards .drs-collection__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.drs-collection--compact .drs-collection__items,
	.drs-collection--covers .drs-collection__items,
	.drs-collection--poster .drs-collection__items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.drs-podcast { min-height: 0; overflow: visible; }
	.drs-podcast__grid { grid-template-columns: 1fr; }
	.drs-podcast__list { grid-column: 1; }
	.drs-podcast__portrait { position: static; height: auto; width: min(320px, 70%); margin: 0 auto var(--space-md); }
	.drs-events-grid { grid-template-columns: 1fr; }
	.drs-wwm__ways-list { grid-template-columns: 1fr; }
	.drs-work__grid { grid-template-columns: 1fr; }
	/* One column: the copy leads, as it did before the columns were flipped. */
	.drs-work__content { order: 1; }
	.drs-work__media { max-width: 340px; order: 2; }
}

@media screen and (max-width: 782px) {
	.admin-bar .drs-hero {
		height: calc(100vh - 46px);
		height: calc(100svh - 46px);
	}
}

@media (max-width: 700px) {
	.drs-events-hero {
		min-height: 26rem;
	}
	.drs-events-hero__image {
		background-position: 58% center;
	}
	.drs-events-hero__content {
		padding-bottom: 2.75rem;
	}
	.drs-media-grid { grid-template-columns: 1fr; }
	.drs-collection--feature .drs-collection__items,
	.drs-collection--cards .drs-collection__items { grid-template-columns: 1fr; }
	.drs-collection--compact .drs-collection__items,
	.drs-collection--covers .drs-collection__items,
	.drs-collection--poster .drs-collection__items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.drs-mediarow { grid-template-columns: minmax(0, 1fr) auto; }
	.drs-mediarow__outlet { grid-column: 1 / -1; }
	.drs-featured-media__collage { grid-template-columns: 1fr; row-gap: 1.25rem; }
	.drs-media-mini--one,
	.drs-media-mini--two { margin-top: 0; }
	.drs-inquiry__grid { grid-template-columns: 1fr; }
	.site-footer__bottom { grid-template-columns: 1fr; }
	.site-footer__bottom-left { flex-wrap: wrap; }
	.site-footer__legal { flex-wrap: wrap; white-space: normal; }
	.drs-social-icons { justify-content: flex-start; }
	.post-navigation .nav-links { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
	.drs-hero__actions .drs-button,
	.drs-404__actions .drs-button { width: 100%; justify-content: center; }
	.drs-search-form__row { flex-direction: column; }
}

/* Platforms: a three-chapter, scroll-led editorial story. */
.drs-about-v2__platforms[data-drs-platform-story] {
	min-height: 320svh;
	padding: 0;
}
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-grid {
	position: sticky;
	top: 0;
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(340px, 5fr);
	align-items: center;
	height: 100svh;
	min-height: 0;
	padding-block: clamp(4rem, 7vh, 5.5rem);
}
.drs-about-v2__platforms-steps {
	position: relative;
	min-height: 22rem;
}
.drs-about-v2__platform-step {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	opacity: 0;
	transform: translate3d(0, 2.5rem, 0);
	transition: opacity 420ms ease, transform 560ms cubic-bezier(0.2, 0.8, 0.2, 1);
	pointer-events: none;
}
.drs-about-v2__platform-step.is-active {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	pointer-events: auto;
}
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-copy {
	align-self: center;
	padding-block: 0;
}
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-copy h2 {
	max-width: 15ch;
}
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-copy p {
	max-width: 50ch;
}
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platform-step p {
	max-width: 27ch;
	margin: 0;
	color: var(--color-cream);
	font-family: var(--font-heading);
	font-size: clamp(1.65rem, 2.15vw, 2.5rem);
	font-weight: 400;
	line-height: 1.16;
	letter-spacing: -0.025em;
}
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-media {
	position: relative;
	top: auto;
	align-self: center;
	height: min(70vh, 44rem);
	margin: 0;
	overflow: visible;
}
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-media::before {
	content: "";
	position: absolute;
	inset: 1.25rem 1.25rem -1.25rem -1.25rem;
	z-index: 0;
	border: 1px solid var(--color-cream);
	border-radius: 0;
	pointer-events: none;
}
.drs-about-v2__platform-visual {
	position: absolute;
	inset: 0;
	z-index: 1;
	margin: 0;
	opacity: 0;
	transform: translate3d(0, calc(2rem + var(--drs-platform-parallax, 0px)), 0) scale(0.97);
	transition: opacity 520ms ease, transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1);
	pointer-events: none;
}
.drs-about-v2__platform-visual.is-active {
	opacity: 1;
	transform: translate3d(0, var(--drs-platform-parallax, 0px), 0) scale(1);
	pointer-events: auto;
}
.drs-about-v2__platform-visual img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	border: 1px solid rgba(241, 233, 214, 0.3);
	border-radius: 0;
	box-shadow: 0 1.5rem 3.5rem rgba(10, 16, 8, 0.22);
}

.drs-about-v2__platform-visual--book img {
	object-fit: contain;
	padding: clamp(1.5rem, 4vw, 3.5rem);
	background: var(--color-cream);
}
.drs-about-v2__platform-visual figcaption {
	position: absolute;
	right: 0;
	bottom: -1rem;
	padding: 1rem 1.25rem;
	background: var(--color-accent);
	color: var(--color-green-dark);
	font-size: var(--text-label);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	white-space: nowrap;
}

@media (max-width: 900px) {
	.drs-about-v2__platforms[data-drs-platform-story] { min-height: 300svh; }
	.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-grid {
		grid-template-columns: 1fr;
		grid-template-rows: minmax(16rem, 43vh) minmax(0, 1fr);
		gap: 2rem;
		padding: 5.5rem 1rem 2rem;
	}
	.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-media {
		order: -1;
		width: min(100%, 34rem);
		height: 100%;
	}
	.drs-about-v2__platforms-steps { min-height: 18rem; }
	.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-copy h2 {
		font-size: clamp(2rem, 8vw, 3rem);
	}
	.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platform-step p {
		max-width: 31ch;
		font-size: clamp(1.35rem, 5.8vw, 1.8rem);
		line-height: 1.2;
	}
	.drs-about-v2__platforms[data-drs-platform-story] .drs-eyebrow { margin-bottom: 1rem; }
	.drs-about-v2__platform-visual figcaption {
		right: 0;
		bottom: -0.75rem;
		font-size: 0.65rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.drs-about-v2__platform-step,
	.drs-about-v2__platform-visual { transition: none; }
}

/* Cream editorial press divider, powered by the homepage logo source. */
.drs-about-v2__press-divider {
	padding-top: clamp(3.5rem, 7vw, 6.5rem);
	background: var(--color-cream);
	color: var(--color-green-dark);
	border-block: 1px solid rgba(69, 84, 56, 0.18);
	overflow: hidden;
}
.drs-about-v2__press-divider > .drs-container {
	text-align: center;
}
.drs-about-v2__press-divider h2 {
	margin: 0;
	color: var(--color-green-dark);
	font-family: var(--font-heading);
	font-size: clamp(1.65rem, 2.6vw, 2.85rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.035em;
}
.drs-about-v2__press-divider .drs-logo-carousel {
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
	background: transparent;
	border: 0;
}
.drs-about-v2__press-divider .drs-logo-carousel__group img {
	filter: brightness(0) saturate(100%) invert(30%) sepia(11%) saturate(1400%) hue-rotate(43deg) brightness(75%) contrast(95%);
	opacity: 0.96;
}
.drs-about-v2__press-divider .drs-logo-carousel__group li {
	width: clamp(110px, 11vw, 165px);
}

@media (max-width: 600px) {
	.drs-about-v2__press-divider { padding-top: 3rem; }
	.drs-about-v2__press-divider h2 {
		max-width: 10ch;
		margin-inline: auto;
		font-size: clamp(1.8rem, 8vw, 2.5rem);
	}
}

/* About: one consistent typographic rhythm across the editorial chapters. */
.drs-about-v2__philosophy .drs-about-v2__section-index h2,
.drs-about-v2__training-card .drs-eyebrow,
.drs-about-v2__platforms-copy .drs-eyebrow {
	font-size: clamp(0.72rem, 0.68rem + 0.12vw, 0.82rem);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.16em;
}

.drs-about-v2__philosophy-copy {
	gap: clamp(1.75rem, 3vw, 2.5rem);
}

.drs-about-v2__training-card .drs-eyebrow,
.drs-about-v2__platforms-copy .drs-eyebrow,
.drs-about-v2__platforms[data-drs-platform-story] .drs-eyebrow {
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.drs-about-v2__platforms[data-drs-platform-story] .drs-eyebrow {
	margin-bottom: 0;
}

.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platforms-steps {
	margin-top: clamp(2rem, 3vw, 2.75rem);
}

.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platform-step {
	justify-content: flex-start;
}

.drs-about-v2__signature {
	display: block;
	align-self: flex-end;
	width: min(48%, 17rem);
	height: auto;
	margin-top: clamp(1.25rem, 2.5vw, 2rem);
	opacity: 0;
	transform: translate3d(0, 0.75rem, 0);
	transition: opacity 420ms ease 180ms, transform 520ms cubic-bezier(0.2, 0.8, 0.2, 1) 180ms;
}

.drs-about-v2__platform-step.is-active .drs-about-v2__signature {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

@media (max-width: 600px) {
	.drs-about-v2__signature {
		align-self: flex-start;
		width: min(56%, 14rem);
	}
}

.drs-about-v2__philosophy .drs-about-v2__quote p,
.drs-about-v2__training-card h2,
.drs-about-v2__platforms[data-drs-platform-story] .drs-about-v2__platform-step p {
	font-size: clamp(1.15rem, 2.5vw, 2.55rem);
	line-height: 1.08;
	letter-spacing: -0.012em;
}

.drs-about-v2__training-card h2 {
	margin-bottom: 1.25rem;
	font-size: clamp(1.15rem, 2.5vw, 2.55rem);
	font-weight: 400;
	line-height: 1.08;
}

.drs-about-v2__training-card p {
	font-size: var(--text-body-lg);
	line-height: 1.65;
	letter-spacing: 0;
}

.drs-about-v2__training-card .drs-about-v2__training-paragraph {
	margin: 0;
	padding: 0;
	max-width: 36ch;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.drs-about-v2__training-stack {
	position: relative;
	display: grid;
	width: min(46rem, 60vw);
	padding-bottom: 0;
}

.drs-about-v2__training-stack .drs-about-v2__training-card {
	width: min(40rem, 100%);
	padding: clamp(2rem, 3.5vw, 3.5rem);
	padding-bottom: clamp(5rem, 8vw, 7rem);
	background: var(--color-cream-light);
	border-radius: var(--radius-large);
}

.drs-about-v2__training-stack .drs-about-v2__training-card h2::after {
	content: "";
	display: block;
	width: 4rem;
	height: 2px;
	margin-top: clamp(1.25rem, 2vw, 1.75rem);
	background: var(--color-accent);
}

.drs-about-v2__training-note {
	position: relative;
	z-index: 3;
	justify-self: end;
	width: min(32rem, 74%);
	margin-top: clamp(-5rem, -6vw, -3.75rem);
	padding: clamp(3.6rem, 5vw, 4.75rem) clamp(1.5rem, 3vw, 2.75rem) clamp(2rem, 3vw, 2.75rem);
	background: var(--color-green-soft);
	color: var(--color-cream);
	border: 1px solid rgba(241, 233, 214, 0.92);
	border-radius: var(--radius-large);
	box-shadow: 0 1.5rem 3rem rgba(8, 12, 7, 0.22);
}

.drs-about-v2__training-note::before {
	content: "“";
	position: absolute;
	top: 0.55rem;
	left: clamp(1.5rem, 3vw, 2.75rem);
	color: var(--color-cream);
	font-family: var(--font-display);
	font-size: clamp(3.75rem, 6vw, 5.5rem);
	line-height: 1;
}

.drs-about-v2__training-note p {
	margin: 0;
	color: inherit;
	font-family: var(--font-display);
	font-size: clamp(1.1rem, 1.35vw, 1.4rem);
	line-height: 1.42;
}

@media (max-width: 700px) {
	.drs-about-v2__training-stack {
		width: 100%;
	}
	.drs-about-v2__training-note {
		width: calc(100% - 1.5rem);
		margin-top: -2.5rem;
	}
}

.drs-about-v2__philosophy .drs-about-v2__quote p {
	max-width: 30ch;
}

.drs-about-v2__philosophy .drs-about-v2__quote {
	padding-top: 2.75rem;
}

.drs-about-v2__philosophy .drs-about-v2__quote::before {
	top: -0.15rem;
	left: 0;
	font-size: clamp(4rem, 5vw, 5.5rem);
	line-height: 0.8;
}

.drs-about-v2__intro .drs-about-v2__hero-typing {
	width: 100%;
	max-width: none;
	min-height: 0;
	padding-inline: 0;
	font-size: clamp(1.35rem, 2.2vw, 2.25rem);
	line-height: 1.08;
	letter-spacing: -0.012em;
	text-align: center;
	margin-inline: auto;
}

.drs-about-v2__intro-inner {
	display: block;
}

.drs-about-v2__intro-line {
	display: inline;
	width: auto;
	text-align: inherit;
}

@media (min-width: 901px) {
	.drs-about-v2__intro-line {
		white-space: nowrap;
	}
}

/* About opening chapters: taller, more editorial, and tied to the homepage grid. */
.drs-about-v2__intro {
	display: flex;
	align-items: center;
	min-height: clamp(42rem, 88svh, 62rem);
	padding-block: clamp(5rem, 10vh, 8rem);
}

.drs-about-v2__intro-inner {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(22rem, 0.72fr);
	align-items: center;
	gap: clamp(4rem, 8vw, 9rem);
	width: 100%;
}

.drs-about-v2__intro-copy::before {
	content: "";
	display: block;
	width: clamp(5rem, 8vw, 7.5rem);
	height: 2px;
	margin-bottom: clamp(2rem, 3vw, 3rem);
	background: var(--color-accent);
}

.drs-about-v2__intro .drs-about-v2__hero-typing {
	max-width: 22ch;
	margin: 0;
	font-size: clamp(2.15rem, 3.65vw, 4.35rem);
	font-weight: 300;
	line-height: 1.04;
	letter-spacing: -0.02em;
	text-align: left;
}

.drs-about-v2__intro-notes {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: clamp(1rem, 2.5vw, 2.5rem);
	margin: clamp(2.25rem, 4vw, 3.5rem) 0 0;
	color: var(--color-green-dark);
	font-family: var(--font-body);
	font-size: clamp(0.68rem, 0.75vw, 0.8rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.drs-about-v2__intro-media {
	position: relative;
	margin: 0;
}

.drs-about-v2__intro-media::before {
	content: "";
	position: absolute;
	inset: 1.25rem 1.25rem -1.25rem -1.25rem;
	border: 1px solid var(--color-green-dark);
}

.drs-about-v2__intro-media img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 32%;
	border-radius: 0;
	box-shadow: 0 1.5rem 3.5rem rgba(38, 48, 31, 0.14);
}

.drs-about-v2__intro-notes span + span::before {
	content: "";
	display: inline-block;
	width: 0.38rem;
	height: 0.38rem;
	margin-right: clamp(1rem, 2.5vw, 2.5rem);
	background: var(--color-accent);
	border-radius: 50%;
	vertical-align: 0.08em;
}

.drs-about-v2__philosophy {
	display: flex;
	align-items: center;
	min-height: 100svh;
	padding-block: clamp(5.5rem, 10vh, 8.5rem);
}

.drs-about-v2__philosophy-grid {
	width: 100%;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
	gap: clamp(4rem, 7vw, 8rem);
}

.drs-about-v2__philosophy-media img {
	height: min(72svh, 52rem);
	aspect-ratio: auto;
}

.drs-about-v2__philosophy-copy {
	align-content: center;
}

@media (max-width: 900px) {
	.drs-about-v2__intro {
		min-height: auto;
		padding-block: clamp(4.5rem, 9vh, 6.5rem);
	}
	.drs-about-v2__intro-inner {
		grid-template-columns: 1fr;
		gap: clamp(4rem, 10vw, 6rem);
	}
	.drs-about-v2__intro .drs-about-v2__hero-typing {
		max-width: 24ch;
		font-size: clamp(2rem, 7vw, 3.25rem);
	}
	.drs-about-v2__intro-media {
		width: min(100%, 34rem);
		margin-left: 1.25rem;
	}
	.drs-about-v2__philosophy {
		min-height: auto;
		padding-block: clamp(5rem, 10vw, 7rem);
	}
	.drs-about-v2__philosophy-grid {
		grid-template-columns: 1fr;
		gap: clamp(4rem, 10vw, 6rem);
	}
	.drs-about-v2__philosophy-media img {
		height: auto;
		aspect-ratio: 4 / 5;
	}
}

@media (max-width: 600px) {
	.drs-about-v2__intro {
		min-height: auto;
	}
	.drs-about-v2__intro-notes {
		gap: 0.75rem;
		letter-spacing: 0.12em;
	}
	.drs-about-v2__intro-notes span + span::before {
		margin-right: 0.75rem;
	}
}

/* ======================= About v3 — continuous editorial profile ======================= */
.drs-about-v3 {
	--about-grid-edge: max(clamp(1.5rem, 5vw, 5.5rem), calc((100vw - var(--container-large)) / 2 + clamp(1.5rem, 3vw, 3rem)));
	background: var(--color-cream);
	color: var(--color-green-dark);
}

.drs-about-v3 figure,
.drs-about-v3 blockquote,
.drs-about-v3 p { margin: 0; }

.drs-about-v3__eyebrow {
	font-family: var(--font-body);
	font-size: clamp(0.7rem, 0.72vw, 0.82rem);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.28em;
	text-transform: uppercase;
}

.drs-about-v3__hero {
	position: relative;
	display: block;
	height: 100svh;
	min-height: 42rem;
	overflow: hidden;
	background: var(--color-cream);
}

.drs-about-v3__hero-copy {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
	width: min(50%, 50rem);
	height: 100%;
	padding: clamp(6.5rem, 13vh, 8rem) clamp(2.5rem, 4.25vw, 4.75rem) clamp(3rem, 6vh, 5rem);
}

.drs-about-v3__hero-copy > .drs-about-v3__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.drs-about-v3__hero-copy > .drs-about-v3__eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 0.45rem;
	height: 0.45rem;
	background: var(--color-accent);
	border-radius: 50%;
}

.drs-about-v3__hero-copy h1 {
	margin: clamp(1.5rem, 3vh, 2.5rem) 0 clamp(2rem, 4vh, 3.5rem);
	color: var(--color-green-dark);
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(4.25rem, 5.7vw, 7.25rem);
	font-weight: 400;
	line-height: 0.88;
	letter-spacing: -0.055em;
	text-transform: none;
	overflow-wrap: normal;
	word-break: normal;
	white-space: nowrap;
}
.drs-about-v3__title-dot {
	display: inline-block;
	width: 0.12em;
	height: 0.12em;
	margin-left: 0.035em;
	border-radius: 50%;
	background: var(--color-accent);
	color: transparent;
	line-height: 0;
	vertical-align: baseline;
	position: relative;
	top: 0.25em;
}

.drs-about-v3__press {
	padding-block: clamp(4rem, 7vw, 7rem) clamp(2.5rem, 5vw, 4.5rem);
	background: #ede6d7;
	color: var(--color-green-dark);
	overflow: hidden;
	border-block: 1px solid rgba(69, 84, 56, 0.18);
}
.drs-about-v3__press-heading { text-align: center; }
.drs-about-v3__press-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.7rem;
	margin: 0 0 1.5rem;
}
.drs-about-v3__press-eyebrow::before {
	content: "";
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: var(--color-accent);
}
.drs-about-v3__press-heading h2 {
	margin: 0;
	font-family: "Galeria Sans", "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(2.75rem, 5.4vw, 6rem);
	font-weight: 400;
	line-height: 0.98;
	letter-spacing: -0.05em;
}
.drs-about-v3__press .drs-logo-carousel {
	margin-top: clamp(2.5rem, 5vw, 4.5rem);
	padding-block: clamp(1.25rem, 2.5vw, 2rem);
	border: 0;
	background: transparent;
}
.drs-about-v3__press .drs-logo-carousel__group li {
	width: clamp(115px, 11vw, 165px);
	height: 52px;
}
.drs-about-v3__press .drs-logo-carousel__group img {
	max-height: 46px;
	opacity: 0.92;
}

.drs-about-v3__hero-intro {
	max-width: 39ch;
	font-size: clamp(1.5rem, 1.12vw, 1.18rem);
	line-height: 1.45;
}

.drs-about-v3__hero-media,
.drs-about-v3__philosophy-media,
.drs-about-v3__training-media,
.drs-about-v3__platforms-media {
	position: relative;
	min-height: 0;
	overflow: hidden;
}

.drs-about-v3__hero-media img,
.drs-about-v3__philosophy-media img,
.drs-about-v3__training-media img,
.drs-about-v3__platforms-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0;
}

@media (min-width: 901px) {
	.drs-about-v3__hero-media img,
	.drs-about-v3__philosophy-media img,
	.drs-about-v3__training-media img,
	.drs-about-v3__platforms-media img {
		position: absolute;
		inset: 0;
	}
}

.drs-about-v3__hero-media {
	position: absolute;
	inset: 0;
}

.drs-about-v3__hero-media img { object-position: center top; }

.drs-about-v3__philosophy {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: 88svh;
	padding-block: 0;
	background: #fbf8f1;
}

.drs-about-v3__philosophy-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(5rem, 10vh, 8rem) clamp(2.5rem, 4.25vw, 4.75rem);
}

.drs-about-v3__philosophy-copy > .drs-about-v3__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.drs-about-v3__philosophy-copy > .drs-about-v3__eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 0.45rem;
	height: 0.45rem;
	background: var(--color-accent);
	border-radius: 50%;
}

.drs-about-v3__philosophy blockquote {
	margin-top: clamp(2rem, 4vh, 3.5rem);
}

.drs-about-v3__philosophy blockquote h3 {
	max-width: none;
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(1.9rem, 3vw, 3.65rem);
	font-weight: 300;
	line-height: 1.04;
	letter-spacing: -0.025em;
}

.drs-about-v3__philosophy blockquote p {
	max-width: 37ch;
	margin-top: clamp(1.75rem, 3.5vh, 3rem);
	font-family: var(--font-body);
	font-size: clamp(1.5rem, 1.12vw, 1.18rem);
	line-height: 1.55;
}

.drs-about-v3__rule {
	display: block;
	width: 3.5rem;
	height: 2px;
	margin-top: clamp(2rem, 5vh, 4rem);
	background: var(--color-accent);
}

.drs-about-v3__philosophy-media img { object-position: center 28%; }

.drs-about-v3__training {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: 100svh;
	padding-block: 0;
	background: var(--color-green-dark);
	color: var(--color-cream);
}

.drs-about-v3__training-media img { object-position: center 42%; }

.drs-about-v3__training-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(5rem, 9vh, 8rem) clamp(2.5rem, 4.25vw, 4.75rem);
}

.drs-about-v3__training .drs-about-v3__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	color: var(--color-cream);
}

.drs-about-v3__training .drs-about-v3__eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 0.45rem;
	height: 0.45rem;
	background: var(--color-accent);
	border-radius: 50%;
}

.drs-about-v3__training-lead {
	max-width: 22ch;
	margin-top: clamp(1.75rem, 3vh, 2.75rem) !important;
	font-family: var(--font-display);
	font-size: clamp(1.9rem, 3vw, 3.65rem);
	font-weight: 300;
	line-height: 1.03;
	letter-spacing: -0.02em;
}

.drs-about-v3__training-body {
	display: grid;
	gap: 1.1rem;
	max-width: none;
	margin-top: clamp(2rem, 4vh, 3.25rem);
	font-size: clamp(1.08rem, 1.35vw, 1.3rem);
	line-height: 1.55;
}

.drs-about-v3__platforms {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-height: 105svh;
	padding-block: 0;
	background: #fbf8f1;
}

.drs-about-v3__platforms-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(5rem, 9vh, 8rem) clamp(2.5rem, 4.25vw, 4.75rem);
}

.drs-about-v3__platforms-copy > .drs-about-v3__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.drs-about-v3__platforms-copy > .drs-about-v3__eyebrow::before {
	content: "";
	flex: 0 0 auto;
	width: 0.45rem;
	height: 0.45rem;
	background: var(--color-accent);
	border-radius: 50%;
}

.drs-about-v3__platform-list {
	list-style: none;
	margin: clamp(2rem, 4vh, 3.25rem) 0 0;
	padding: 0;
}

.drs-about-v3__platform-list li {
	display: grid;
	grid-template-columns: 5.75rem minmax(0, 1fr);
	gap: clamp(1rem, 2vw, 1.75rem);
	align-items: center;
	padding-block: clamp(1rem, 2vh, 1.5rem);
	border-bottom: 1px solid rgba(69, 84, 56, 0.28);
}

.drs-about-v3__platform-list li:first-child { border-top: 1px solid rgba(69, 84, 56, 0.28); }

.drs-about-v3__platform-icon {
	display: grid;
	place-items: center;
	justify-self: center;
	width: 5.5rem;
	height: 5.5rem;
	color: var(--color-green-dark);
}

.drs-about-v3__platform-list li > div {
	min-width: 0;
}

.drs-about-v3__platform-icon img {
	display: block;
	width: 5.5rem;
	height: 5.5rem;
	object-fit: contain;
}

.drs-about-v3__platform-list h3 {
	margin: 0 0 0.35rem;
	color: var(--color-green-dark);
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 1.45vw, 1.55rem);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: -0.015em;
}

.drs-about-v3__platform-list p {
	max-width: none;
	font-size: clamp(0.95rem, 1.08vw, 1.12rem);
	line-height: 1.45;
}

.drs-about-v3__platforms-media img { object-position: center 25%; }

.drs-about-v3__closing {
	display: grid;
	justify-items: center;
	padding: clamp(5rem, 10vh, 8rem) clamp(2.5rem, 4.25vw, 4.75rem);
	background: var(--color-green-dark);
	color: var(--color-cream);
	text-align: center;
}

.drs-about-v3__closing blockquote { position: relative; }

.drs-about-v3__closing blockquote::before,
.drs-about-v3__closing blockquote::after {
	position: absolute;
	color: rgba(241, 233, 214, 0.72);
	font-family: var(--font-display);
	font-size: clamp(3.5rem, 6vw, 6rem);
	line-height: 1;
}

.drs-about-v3__closing blockquote::before { content: "“"; top: -0.25em; left: -0.7em; }
.drs-about-v3__closing blockquote::after { content: "”"; right: -0.7em; bottom: -0.45em; }

.drs-about-v3__closing p {
	font-family: var(--font-display);
	font-size: clamp(2.2rem, 4vw, 4.8rem);
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.025em;
}

.drs-about-v3__closing img {
	width: min(13rem, 38vw);
	height: auto;
	margin-top: clamp(2rem, 4vh, 3rem);
}

@media (max-width: 900px) {
	.drs-about-v3__hero,
	.drs-about-v3__philosophy,
	.drs-about-v3__training,
	.drs-about-v3__platforms {
		grid-template-columns: 1fr;
		min-height: auto;
	}
	.drs-about-v3__hero { height: auto; }
	.drs-about-v3__hero-copy,
	.drs-about-v3__philosophy-copy,
	.drs-about-v3__training-copy,
	.drs-about-v3__platforms-copy {
		padding: clamp(4.5rem, 10vw, 6.5rem) clamp(1.25rem, 5vw, 2rem);
	}
	.drs-about-v3__hero-copy {
		width: 100%;
		height: auto;
	}
	.drs-about-v3__hero-copy h1 { font-size: clamp(3rem, 12.5vw, 5.25rem); }
	.drs-about-v3__hero-intro { max-width: 34ch; }
	.drs-about-v3__hero-media { position: relative; inset: auto; height: 76svh; }
	.drs-about-v3__philosophy-media,
	.drs-about-v3__training-media,
	.drs-about-v3__platforms-media { height: 72svh; }
	.drs-about-v3__philosophy-media { order: -1; }
	.drs-about-v3__training-copy { order: -1; }
	.drs-about-v3__philosophy blockquote h3 { max-width: 20ch; }
	.drs-about-v3__platforms-media { min-height: 42rem; }
}

@media (max-width: 520px) {
	.drs-about-v3__hero-copy h1 { line-height: 0.82; }
	.drs-about-v3__hero-media { height: 66svh; }
	.drs-about-v3__philosophy-media,
	.drs-about-v3__training-media { height: 62svh; }
	.drs-about-v3__philosophy blockquote h3,
	.drs-about-v3__training-lead { font-size: clamp(1.85rem, 8.5vw, 2.65rem); }
	.drs-about-v3__platform-list li { grid-template-columns: 2.25rem 1fr; }
	.drs-about-v3__platforms-media { min-height: 36rem; height: 70svh; }
	.drs-about-v3__closing blockquote::before { left: -0.25em; }
	.drs-about-v3__closing blockquote::after { right: -0.25em; }
	.drs-about-v3__press-heading h2 { font-size: clamp(2.65rem, 12vw, 3.75rem); }
}
