/* =========================================================
   CLASES - HUB - page 338

   Page-scoped exactly like the other internal pages: enqueued
   only for this page id AND every selector is prefixed
   body.page-id-338.

   Nothing here invents a new system. Sections 1-11 are the
   approved Full Day / Home2 system restated for this page id
   (band rhythm, technical eyebrow, display H2, lead, hairline
   indexed items, editorial split, FAQ accordion, Sierra cut,
   contour artwork, light Final CTA). Section 12 is the Home2
   service slider, reused verbatim for the class selector.
   Sections 13+ are the only rules written for this page.

   Breakpoints follow the project rule: <=980 / >=981.
   ========================================================= */


body.page-id-338 {
	--ski-deep:  #214A5E;
	--ski-blue:  #26ADE2;
	--ski-ink:   #0F2430;
	--ski-ice:   #E8F1F5;
	--ski-snow:  #FFFFFF;
	--ski-line:  rgba(33, 74, 94, 0.16);
	--ski-muted: rgba(15, 36, 48, 0.72);

	--ski-tech:  var(--gvid-b5547a12-68b7-4dee-9a11-c6f6c6f0d32b, Orbitron), system-ui, sans-serif;

	/* Aligned to the project's Content Max Width variable (1240px). */
	--ski-edge:        max(48px, calc((100vw - 1240px) / 2));
	--ski-space:       clamp(64px, 6vw, 96px);
	--ski-space-dense: clamp(52px, 4.8vw, 76px);

	overflow-x: clip;
}


/* =========================================================
   1. BAND RHYTHM
   ========================================================= */

body.page-id-338 .ski-band {
	position: relative;
	padding: var(--ski-space) var(--ski-edge) !important;
}

body.page-id-338 .ski-band--dense {
	padding: var(--ski-space-dense) var(--ski-edge) !important;
}

body.page-id-338 .ski-band > .et_pb_row {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.page-id-338 .ski-band > .ski-section-head {
	margin-bottom: clamp(28px, 3vw, 44px) !important;
}

body.page-id-338 .ski-section-head > .et_pb_column {
	width: 100% !important;
	max-width: 720px !important;
	margin: 0 !important;
	background-image: none !important;
}


/* =========================================================
   2. SHARED TYPE — eyebrow, display H2, lead
   ========================================================= */

body.page-id-338 .ski-eyebrow {
	margin: 0 0 14px !important;
}

body.page-id-338 .ski-eyebrow .et_pb_text_inner {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--ski-blue);
}

body.page-id-338 .ski-eyebrow .et_pb_text_inner::before {
	content: "";
	flex: 0 0 auto;
	width: 32px;
	height: 2px;
	background: currentColor;
}

body.page-id-338 .ski-eyebrow p {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--ski-tech);
	font-size: 12.5px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.18em !important;
	text-transform: uppercase;
	color: var(--ski-blue) !important;
}

body.page-id-338 .ski-display-h2,
body.page-id-338 .ski-display-h2 .et_pb_heading_container {
	margin: 0 !important;
	text-align: left !important;
}

body.page-id-338 .ski-display-h2 .et_pb_module_header {
	margin: 0 !important;
	padding: 0 !important;
	max-width: 17ch;
	font-size: clamp(1.9rem, 1.1rem + 2.4vw, 3.25rem) !important;
	font-weight: 800 !important;
	line-height: 1.03 !important;
	letter-spacing: -0.03em !important;
	color: var(--ski-deep) !important;
	text-align: left !important;
	text-wrap: balance;
}

body.page-id-338 .ski-display-h2--sm .et_pb_module_header {
	max-width: 14ch;
	font-size: clamp(1.875rem, 1.1rem + 1.9vw, 2.9rem) !important;
	line-height: 1.06 !important;
}

body.page-id-338 .ski-lead {
	margin: 18px 0 0 !important;
}

body.page-id-338 .ski-lead p {
	margin: 0;
	padding: 0;
	max-width: 58ch;
	font-size: 17.5px;
	line-height: 1.6;
	color: var(--ski-muted);
}


/* =========================================================
   3. HERO — refinement only

   The module, its copy, its dynamic booking link and its
   overlay stay exactly as built. What changes here is the
   composition: a tighter measure for the copy, the approved
   eyebrow rule, and a crop that keeps the ridge visible
   instead of drifting on short viewports.
   ========================================================= */

body.page-id-338 .ski-page-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	background-position: 50% 42% !important;
}

body.page-id-338 .ski-page-hero .et_pb_fullwidth_header_container,
body.page-id-338 .ski-page-hero .header-content-container {
	width: 100%;
	max-width: none;
}

body.page-id-338 .ski-page-hero .header-content {
	max-width: 620px;
	margin: 0 !important;
	padding: 0 !important;
}

/* The subhead is the technical eyebrow: same rule, tracking and
   colour as every other eyebrow on the site. */
body.page-id-338 .ski-page-hero .et_pb_module_header + span,
body.page-id-338 .ski-page-hero .et_pb_fullwidth_header_subhead {
	order: 0; /* eyebrow-above-title fix 2026-09-28, matches esqui/snowboard/ski-kids */
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 18px !important;
}

body.page-id-338 .ski-page-hero .et_pb_fullwidth_header_subhead::before {
	content: "";
	flex: 0 0 auto;
	width: 32px;
	height: 2px;
	background: currentColor;
}

body.page-id-338 .ski-page-hero .et_pb_module_header {
	order: 1;
	margin: 0 0 18px !important;
	padding: 0 !important;
	letter-spacing: -0.03em;
	text-wrap: balance;
}

body.page-id-338 .ski-page-hero .et_pb_header_content_wrapper {
	order: 2;
	margin: 0 0 28px !important;
}

body.page-id-338 .ski-page-hero .et_pb_button_wrapper {
	margin: 0 !important;
}

body.page-id-338 .ski-page-hero .et_pb_header_button_wrapper {
	order: 3;
}

body.page-id-338 .ski-page-hero .et_pb_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 24px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
}

body.page-id-338 .ski-page-hero .et_pb_button::after {
	display: none !important;
}


/* =========================================================
   4. TRUST STRIP
   ========================================================= */

body.page-id-338 .ski-trust-strip {
	/* vertical padding: shared #trust-strip rule in style.css */
	border-bottom: 1px solid var(--ski-line);
}

body.page-id-338 .ski-trust-strip .et_pb_blurb_content {
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: none;
	text-align: left;
}

body.page-id-338 .ski-trust-strip .et_pb_main_blurb_image {
	flex: 0 0 auto;
	margin: 0 !important;
	line-height: 0;
}

body.page-id-338 .ski-trust-strip .et_pb_blurb_container {
	padding: 0 !important;
	text-align: left;
}

body.page-id-338 .ski-trust-strip .et_pb_module_header {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--ski-tech);
	font-size: 11.5px !important;
	font-weight: 700 !important;
	letter-spacing: 0.14em !important;
	line-height: 1.3 !important;
	text-transform: uppercase;
	color: var(--ski-deep) !important;
}


/* =========================================================
   5. BRAND CONTOUR — two appearances, both cropped by their
   section edge, neither of them wallpaper. Inert and out of
   flow, so they cannot create horizontal overflow.
   ========================================================= */

body.page-id-338 .ski-contour {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

body.page-id-338 .ski-contour::after {
	content: "";
	position: absolute;
	z-index: 0;
	background-repeat: no-repeat;
	background-size: contain;
	background-image: url("/wp-content/uploads/2026/09/ski-school-sierra-nevada-bg-logo-contornos.webp");
	mix-blend-mode: multiply;
	pointer-events: none;
}

body.page-id-338 .ski-contour > .et_pb_row {
	position: relative;
	z-index: 1;
}

/* 1. behind the inclusions list — left, very faint */
body.page-id-338 .ski-fd-includes::after {
	left: calc(-1 * var(--ski-edge) - 10vw);
	top: 50%;
	transform: translateY(-50%);
	width: min(820px, 52vw);
	aspect-ratio: 1672 / 941;
	opacity: 0.4;
}

/* 2. the closing CTA — right-anchored, the page's signature */
body.page-id-338 .ski-final::after {
	right: calc(-1 * var(--ski-edge) - 7vw);
	top: 50%;
	transform: translateY(-50%);
	width: min(1100px, 64vw);
	aspect-ratio: 1672 / 941;
	opacity: 0.78;
}


/* =========================================================
   6. QUE INCLUYE — four indexed items on one hairline

   Same technical grammar as the approved personalisation band:
   one continuous rule carrying the items, a short Ski School
   Blue tick where each begins, an Orbitron index, a small icon.
   No cards.
   ========================================================= */

body.page-id-338 .ski-fd-includes {
	background-color: var(--ski-snow) !important;
}

body.page-id-338 .ski-fd-grid {
	position: relative;
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: clamp(24px, 2.6vw, 48px) !important;
	row-gap: 0 !important;
	counter-reset: ski-fd;
}

body.page-id-338 .ski-fd-grid::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1px;
	background: var(--ski-line);
	pointer-events: none;
}

body.page-id-338 .ski-fd-grid > .et_pb_column {
	position: relative;
	counter-increment: ski-fd;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 26px 0 0 !important;
	background-image: none !important;
}

body.page-id-338 .ski-fd-grid > .et_pb_column::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 52px;
	height: 3px;
	background: var(--ski-blue);
}

body.page-id-338 .ski-fd-grid .et_pb_blurb {
	margin: 0 !important;
}

body.page-id-338 .ski-fd-grid .et_pb_blurb_content {
	display: block !important;
	width: 100%;
	max-width: none !important;
	text-align: left !important;
}

body.page-id-338 .ski-fd-grid .et_pb_main_blurb_image {
	display: block !important;
	width: 36px !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
	line-height: 0;
}

body.page-id-338 .ski-fd-grid .et_pb_main_blurb_image img {
	display: block;
	width: 36px !important;
	height: 36px !important;
	object-fit: contain;
	border-radius: 0 !important;
}

body.page-id-338 .ski-fd-grid .et_pb_blurb_container {
	padding: 0 !important;
	text-align: left !important;
}

/* Index above the title, inside the copy column. */
body.page-id-338 .ski-fd-grid .et_pb_blurb_container::before {
	content: counter(ski-fd, decimal-leading-zero);
	display: block;
	margin: 0 0 6px;
	font-family: var(--ski-tech);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.4;
	color: var(--ski-blue);
	font-variant-numeric: tabular-nums;
}

body.page-id-338 .ski-fd-grid .et_pb_module_header {
	margin: 0 0 6px !important;
	padding: 0 !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	letter-spacing: -0.015em !important;
	color: var(--ski-deep) !important;
	text-align: left !important;
}

body.page-id-338 .ski-fd-grid .et_pb_blurb_description p {
	margin: 0;
	padding: 0;
	max-width: 34ch;
	font-size: 16px;
	line-height: 1.6;
	color: var(--ski-muted);
}

/* Closing cross-link — a quiet line, not a second CTA. */
body.page-id-338 .ski-fd-note {
	margin-top: clamp(30px, 3vw, 44px) !important;
	padding-top: 20px !important;
	border-top: 1px solid var(--ski-line);
}

body.page-id-338 .ski-fd-note p {
	margin: 0;
	padding: 0;
	max-width: 62ch;
	font-size: 16px;
	line-height: 1.6;
	color: var(--ski-muted);
}

body.page-id-338 .ski-fd-note a {
	font-weight: 700;
	color: var(--ski-blue);
	text-decoration: none;
}

body.page-id-338 .ski-fd-note a:hover,
body.page-id-338 .ski-fd-note a:focus-visible {
	text-decoration: underline;
}


/* =========================================================
   7. EDITORIAL — the page's photographic moment

   55% image / 45% copy, asymmetric, image left. The three
   benefit points live INSIDE this section rather than in a
   section of their own, because a separate band would repeat
   what "Que incluye" already said and lengthen the page.
   ========================================================= */

body.page-id-338 .ski-fd-editorial {
	background-color: var(--ski-snow) !important;
	padding-top: clamp(44px, 4.2vw, 64px) !important;
	border-top: 1px solid var(--ski-line);
}

body.page-id-338 .ski-fd-editorial__grid {
	display: grid !important;
	grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
	column-gap: clamp(36px, 4vw, 72px) !important;
	align-items: center;
}

body.page-id-338 .ski-fd-editorial__grid > .et_pb_column {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	min-width: 0;
	background-image: none !important;
}

body.page-id-338 .ski-fd-editorial__media {
	position: relative;
}

body.page-id-338 .ski-fd-editorial__img {
	margin: 0 !important;
	overflow: hidden;
	border-radius: var(--gvid-b1ca321e-a7f9-435b-92bf-2d3cb4d123e5, 16px);
	line-height: 0;
}

/* A frame, not a photograph dictating the height. */
body.page-id-338 .ski-fd-editorial__img img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center center;
}

/* Sierra cut — the same registration mark used across the site:
   18px, 1.5px, Ski School Blue. Never animated, never interactive. */
body.page-id-338 .ski-fd-editorial__media::before {
	content: "";
	position: absolute;
	z-index: 2;
	top: -10px;
	left: -10px;
	width: 18px;
	height: 18px;
	border-style: solid;
	border-color: var(--ski-blue);
	border-width: 1.5px 0 0 1.5px;
	pointer-events: none;
}

body.page-id-338 .ski-fd-editorial__body .ski-lead p {
	max-width: 46ch;
}

/* --- Three compact points: number + line + title + copy ---- */

body.page-id-338 .ski-fd-points {
	margin: clamp(28px, 2.8vw, 40px) 0 0 !important;
}

body.page-id-338 .ski-fd-points ol {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: ski-fd-point;
}

body.page-id-338 .ski-fd-points li {
	position: relative;
	margin: 0;
	padding: 18px 0 18px 0;
	border-top: 1px solid var(--ski-line);
	counter-increment: ski-fd-point;
	list-style: none;
}

body.page-id-338 .ski-fd-points li:last-child {
	padding-bottom: 0;
}

body.page-id-338 .ski-fd-points li::before {
	content: counter(ski-fd-point, decimal-leading-zero);
	position: absolute;
	top: 18px;
	left: 0;
	font-family: var(--ski-tech);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
	color: var(--ski-blue);
	font-variant-numeric: tabular-nums;
}

body.page-id-338 .ski-fd-points li > * {
	padding-left: 44px;
}

body.page-id-338 .ski-fd-points h3 {
	margin: 0 0 4px !important;
	padding-top: 0 !important;
	font-size: 17px !important;
	font-weight: 700;
	line-height: 1.35;
	color: var(--ski-deep);
}

body.page-id-338 .ski-fd-points p {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--ski-muted);
}


/* =========================================================
   8. FAQ — approved hairline accordion, title left
   ========================================================= */

body.page-id-338 .ski-faq {
	background-color: var(--ski-ice) !important;
}

body.page-id-338 .ski-faq__split {
	display: grid !important;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	column-gap: clamp(40px, 4.5vw, 88px);
	align-items: start;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	background-image: none !important;
}

body.page-id-338 .ski-faq__split > .et_pb_heading,
body.page-id-338 .ski-faq__split > .et_pb_accordion {
	margin: 0 !important;
}

body.page-id-338 .ski-faq .et_pb_toggle {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--ski-line) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.page-id-338 .ski-faq .et_pb_toggle:first-child {
	border-top: 1px solid var(--ski-line) !important;
}

body.page-id-338 .ski-faq .et_pb_toggle_title {
	position: relative;
	margin: 0 !important;
	padding: 18px 56px 18px 0 !important;
	font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem) !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	color: var(--ski-deep) !important;
	cursor: pointer;
}

/* Plus turning into minus — a shape change, not only colour. */
body.page-id-338 .ski-faq .et_pb_toggle_title::before {
	content: "" !important;
	position: absolute;
	top: 50% !important;
	right: 4px !important;
	left: auto !important;
	width: 16px;
	height: 16px;
	margin-top: -8px !important;
	font-size: 0 !important;
	background:
		linear-gradient(var(--ski-blue), var(--ski-blue)) center / 16px 2px no-repeat,
		linear-gradient(var(--ski-blue), var(--ski-blue)) center / 2px 16px no-repeat;
	transition: background-size 0.25s ease;
}

body.page-id-338 .ski-faq .et_pb_toggle_open .et_pb_toggle_title::before {
	display: block !important;
	background:
		linear-gradient(var(--ski-blue), var(--ski-blue)) center / 16px 2px no-repeat,
		linear-gradient(var(--ski-blue), var(--ski-blue)) center / 2px 0 no-repeat;
}

@media (hover: hover) and (pointer: fine) {
	body.page-id-338 .ski-faq .et_pb_toggle_title:hover {
		color: var(--ski-blue) !important;
	}
}

body.page-id-338 .ski-faq .et_pb_toggle_title:focus-visible {
	outline: 2px solid var(--ski-blue);
	outline-offset: 3px;
}

body.page-id-338 .ski-faq .et_pb_toggle_content {
	padding: 0 56px 22px 0 !important;
	max-width: 68ch;
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--ski-muted);
}

body.page-id-338 .ski-faq .et_pb_toggle_content p {
	margin: 0;
	padding: 0;
}


/* =========================================================
   9. FINAL CTA — LIGHT

   A Snow moment immediately above the deep-blue footer, so the
   two never merge. This replaces the old dark block that read
   as part of the footer.
   ========================================================= */

body.page-id-338 .ski-final {
	background-color: var(--ski-snow) !important;
}

body.page-id-338 .ski-final > .et_pb_row > .et_pb_column {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	width: 100% !important;
	max-width: 58% !important;
	margin: 0 !important;
	background-image: none !important;
}

body.page-id-338 .ski-final .ski-cta-box {
	position: relative;
	max-width: 640px;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	text-align: left !important;
}

/* The page's closing echo of the technical language. */
body.page-id-338 .ski-final .ski-cta-box::before {
	content: "FULL DAY / SIERRA NEVADA";
	display: block;
	margin: 0 0 18px;
	font-family: var(--ski-tech);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.26em;
	line-height: 1;
	color: var(--ski-blue);
	opacity: 0.85;
	font-variant-numeric: tabular-nums;
}

/* Sierra cut, top-right, pointing into the contour. */
body.page-id-338 .ski-final .ski-cta-box::after {
	content: "";
	position: absolute;
	z-index: 2;
	top: 2px;
	right: -34px;
	width: 18px;
	height: 18px;
	border-style: solid;
	border-color: var(--ski-blue);
	border-width: 1.5px 1.5px 0 0;
	pointer-events: none;
}

body.page-id-338 .ski-final .et_pb_promo_description,
body.page-id-338 .ski-final .et_pb_promo_description div,
body.page-id-338 .ski-final .et_pb_promo_content,
body.page-id-338 .ski-final .et_pb_button_wrapper {
	padding: 0 !important;
	text-align: left !important;
}

body.page-id-338 .ski-final .et_pb_promo_description .et_pb_module_header {
	max-width: 15ch;
	margin: 0 !important;
	padding: 0 0 18px !important;
	font-size: clamp(2rem, 1.25rem + 2.7vw, 3.5rem) !important;
	font-weight: 800 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.03em !important;
	color: #FFFFFF !important;
	text-align: left !important;
	text-wrap: balance;
}

body.page-id-338 .ski-final .et_pb_promo_content p {
	margin: 0;
	padding: 0;
	max-width: 46ch;
	font-size: 18px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.82) !important;
}

body.page-id-338 .ski-final .et_pb_button_wrapper {
	margin: 28px 0 0 !important;
}

/* Primary action — the approved filled button. The #page-container
   prefix is what lets these colours win over the CTA preset. */
body.page-id-338 #page-container .ski-final .ski-cta-box.et_pb_promo .et_pb_promo_button.et_pb_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 24px !important;
	background: var(--ski-blue) !important;
	color: var(--ski-ink) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
}

body.page-id-338 #page-container .ski-final .ski-cta-box.et_pb_promo .et_pb_promo_button.et_pb_button:hover,
body.page-id-338 #page-container .ski-final .ski-cta-box.et_pb_promo .et_pb_promo_button.et_pb_button:focus-visible {
	background: var(--ski-deep) !important;
	color: #FFFFFF !important;
}

body.page-id-338 .ski-final .et_pb_promo_button::after {
	display: none !important;
}

body.page-id-338 .ski-final__secondary {
	margin: 14px 0 0 !important;
}

body.page-id-338 .ski-final__secondary .et_pb_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
}


/* =========================================================
   10. <= 980px
   ========================================================= */

@media (max-width: 980px) {
	body.page-id-338 {
		--ski-edge: 40px;
		--ski-space: 64px;
		--ski-space-dense: 56px;
	}

	body.page-id-338 .ski-page-hero .header-content {
		max-width: 100%;
	}

	body.page-id-338 .ski-page-hero .et_pb_button {
		width: 100%;
	}

	/* Four items become a vertical list, and the single horizontal rule
	   becomes a rule per item so the progression still reads. */
	body.page-id-338 .ski-fd-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.page-id-338 .ski-fd-grid::after {
		display: none;
	}

	body.page-id-338 .ski-fd-grid > .et_pb_column {
		padding: 22px 0 !important;
		border-top: 1px solid var(--ski-line) !important;
	}

	body.page-id-338 .ski-fd-grid > .et_pb_column::before {
		width: 44px;
	}

	body.page-id-338 .ski-fd-grid .et_pb_blurb_description p {
		max-width: 60ch;
	}

	body.page-id-338 .ski-fd-editorial__grid {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 28px;
	}

	/* Photograph first, then the copy it sets up. */
	body.page-id-338 .ski-fd-editorial__media {
		order: -1;
	}

	body.page-id-338 .ski-fd-editorial__img img {
		aspect-ratio: 16 / 10;
	}

	body.page-id-338 .ski-fd-editorial__media::before {
		top: -8px;
		left: 0;
	}

	body.page-id-338 .ski-faq__split {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 28px;
	}

	body.page-id-338 .ski-faq .et_pb_toggle_title {
		padding: 20px 44px 20px 0 !important;
	}

	body.page-id-338 .ski-faq .et_pb_toggle_content {
		padding: 0 0 20px !important;
	}

	body.page-id-338 .ski-final > .et_pb_row > .et_pb_column {
		max-width: 100% !important;
	}

	body.page-id-338 .ski-final .ski-cta-box::after {
		right: -6px;
	}

	body.page-id-338 .ski-final::after {
		top: auto;
		bottom: -8%;
		right: -32vw;
		width: 130vw;
		transform: none;
		opacity: 0.48;
	}

	body.page-id-338 .ski-fd-includes::after {
		opacity: 0.26;
		width: 120vw;
		left: -40vw;
	}

	body.page-id-338 #page-container .ski-final .ski-cta-box.et_pb_promo .et_pb_promo_button.et_pb_button,
	body.page-id-338 .ski-final__secondary .et_pb_button {
		width: 100%;
	}
}

@media (max-width: 620px) {
	body.page-id-338 {
		--ski-edge: 24px;
		--ski-space: 56px;
		--ski-space-dense: 48px;
	}

	body.page-id-338 .ski-fd-points li > * {
		padding-left: 38px;
	}
}


/* =========================================================
   11. FAIL-SAFES

   The shared GSAP motion stack drives .ski-reveal /
   .ski-reveal-stagger / .ski-heading-reveal. Nothing on this
   page may depend on it to become visible: if the script never
   runs, everything below still renders and is readable.
   ========================================================= */

body.page-id-338 .ski-reveal,
body.page-id-338 .ski-reveal-stagger,
body.page-id-338 .ski-reveal-stagger > .et_pb_column,
body.page-id-338 .ski-heading-reveal,
body.page-id-338 .ski-fd-editorial__img,
body.page-id-338 .ski-fd-points,
body.page-id-338 .ski-cta-box,
body.page-id-338 .ski-page-hero .header-content {
	opacity: 1;
	visibility: visible;
}

body.page-id-338 .ski-band,
body.page-id-338 .ski-page-hero {
	max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
	body.page-id-338 .ski-faq .et_pb_toggle_title::before {
		transition: none;
	}
}


/* =========================================================
   12. SERVICE SLIDER - reused Home2 component
   ========================================================= */

/* ==========================================================================
   SERVICE SLIDER — reusable component (.ski-service-slider)
   Centred "active card" rail: one selected card in the middle, the previous
   and next cards peeking in on either side. Native horizontal overflow +
   CSS scroll-snap (snap to centre) keep it fully usable with JS off.
   JS (home2-hero.js) adds: lateral arrows flanking the active card, a
   seamless infinite loop (aria-hidden clones either side), the .is-active
   state and a calm one-card autoplay.
   Sizing lives in custom properties so the component can be re-tuned or
   reused elsewhere by overriding --ski-rail-* on the section:
     --ski-rail-card   active card width
     --ski-rail-gap    gap between cards
     --ski-rail-img    image height / width ratio
     --ski-card-pad    inner padding (room for the active border)
   ========================================================================== */
body.page-id-338 .ski-service-slider {
  /* Resting composition: a modest card centred on the page axis, with the
     previous and next cards fully previewed and a further pair cropped by
     the section edges. The rail reads as an editorial row rather than one
     giant card, and the blue border (not sheer size) marks the active one. */
  --ski-rail-card: clamp(300px, 24vw, 360px);
  --ski-rail-gap: clamp(20px, 2vw, 32px);
  /* the rail's side padding centres the active card on the page axis; the
     same value places the arrows on its two edges */
  --ski-rail-edge: calc((100% - var(--ski-rail-card)) / 2);
  --ski-rail-img: 0.75;    /* 4:3 editorial crop on desktop */
  --ski-card-pad: 22px;
  position: relative;
  padding: var(--ski-space) 0 var(--ski-space-dense) !important;
  overflow: hidden;
}
@media (min-width: 768px) and (max-width: 980px) {
  body.page-id-338 .ski-service-slider {
    --ski-rail-card: clamp(280px, 40vw, 340px);
    --ski-rail-gap: 20px;
    --ski-rail-img: 0.8;
    --ski-card-pad: 18px;
  }
}
@media (max-width: 767px) {
  body.page-id-338 .ski-service-slider {
    /* one card + ~32px of each neighbour at 390px; the crop stays vertical
       here because a phone has height to spend and width to save */
    --ski-rail-card: calc(100vw - 88px);
    --ski-rail-gap: 12px;
    --ski-rail-img: 1.1;
    --ski-card-pad: 16px;
  }
}

body.page-id-338 .ski-service-slider__head {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 32px;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 clamp(26px, 2.6vw, 40px) !important;
  padding: 0 var(--ski-edge) !important;
  box-sizing: border-box;
}
body.page-id-338 .ski-service-slider__head > .et_pb_column {
  flex: 1 1 auto !important;
  width: auto !important;
  margin: 0 !important;
}
/* Technical position indicator, injected by home2-hero.js into the header
   row and driven by the slider's own active-card state. Never shows a clone
   position; sits opposite the H2 so it reads as an index, not a control. */
body.page-id-338 .ski-service-slider__count {
  flex: 0 0 auto;
  margin: 0 0 6px !important;
  padding: 0 !important;
  font-family: var(--gvid-b5547a12-68b7-4dee-9a11-c6f6c6f0d32b), system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.22em;
  line-height: 1;
  color: var(--ski-deep);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
body.page-id-338 .ski-service-slider__count-now { color: var(--ski-blue); }
body.page-id-338 .ski-service-slider__count-sep {
  display: inline-block;
  margin: 0 2px 0 4px;
  opacity: 0.45;
}
@media (max-width: 767px) {
  body.page-id-338 .ski-service-slider__count {
    font-size: 12px;
    letter-spacing: 0.18em;
    margin-bottom: 3px !important;
  }
}

body.page-id-338 .ski-service-slider__viewport {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: var(--ski-rail-gap) !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  /* side padding IS the peek + gap: it sets the resting composition and lets
     the first/last card centre even without the loop */
  /* vertical room for the active card's shadow, which would otherwise be
     clipped by the rail's own overflow */
  padding: 22px var(--ski-rail-edge) 44px !important;
  box-sizing: border-box;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--ski-deep) rgba(33, 74, 94, 0.12);
}
body.page-id-338 .ski-service-slider__viewport::-webkit-scrollbar { height: 3px; }
body.page-id-338 .ski-service-slider__viewport::-webkit-scrollbar-track { background: rgba(33, 74, 94, 0.12); }
body.page-id-338 .ski-service-slider__viewport::-webkit-scrollbar-thumb { background: var(--ski-deep); }
/* Looping rail (JS on): the scrollbar no longer maps to real position */
body.page-id-338 .ski-service-slider__viewport.is-looping { scrollbar-width: none; }
body.page-id-338 .ski-service-slider__viewport.is-looping::-webkit-scrollbar { display: none; }
body.page-id-338 .ski-service-slider__viewport.is-jumping { scroll-behavior: auto !important; }
body.page-id-338 .ski-service-slider__viewport.is-jumping .ski-service-card { transition: none !important; }
body.page-id-338 .ski-service-slider__viewport:focus-visible {
  outline: 2px solid var(--ski-blue);
  outline-offset: -2px;
}

/* --- Card ---------------------------------------------------------------- */
body.page-id-338 .ski-service-slider .ski-service-card {
  flex: 0 0 var(--ski-rail-card) !important;
  width: var(--ski-rail-card) !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: var(--ski-card-pad) var(--ski-card-pad) calc(var(--ski-card-pad) + 4px) !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important; /* Divi column flex gap would double the image/text spacing */
  scroll-snap-align: center;
  scroll-snap-stop: always;
  background: transparent !important;
  border: 0 !important;
  border-top: 2px solid rgba(38, 173, 226, 0.32) !important;
  border-radius: 0 0 10px 10px !important;
  box-shadow: none !important;
  overflow: visible !important;
  transform-origin: 50% 50%;
}
body.page-id-338 .ski-service-slider .ski-service-card:hover,
body.page-id-338 .ski-service-slider .ski-service-card:focus-within {
  box-shadow: none !important;
}
/* Active / selected card: a fine Ski School Blue line on a clean snow
   surface. Side cards stay calmer (only once JS has an active card). */
body.page-id-338 .ski-service-slider .ski-service-card.is-active {
  border-top-color: var(--ski-blue) !important;
  background: #fff !important;
  box-shadow: 0 8px 24px rgba(15, 36, 48, 0.05) !important;
}
/* The recede state is gated behind .is-looping (i.e. after boot) so the
   entrance reveal keeps control of opacity until then. */
body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card {
  opacity: 0.84 !important; /* beats the reveal system's inline opacity */
  transform: scale(0.97);
}
body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card.is-active {
  opacity: 1 !important;
  /* the lift is safe now that the arrow anchor is measured from layout
     geometry rather than from the transformed box */
  transform: scale(1) translateY(-5px);
}
@media (prefers-reduced-motion: no-preference) {
  body.page-id-338 .ski-service-slider .ski-service-card {
    transition:
      transform 480ms var(--ski-ease),
      opacity 480ms var(--ski-ease),
      border-color 420ms var(--ski-ease),
      box-shadow 480ms var(--ski-ease) !important;
  }
}
@media (max-width: 767px) {
  /* a smaller delta on a phone, where the card is already near-full-width */
  body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card {
    opacity: 0.86 !important;
    transform: scale(0.985);
  }
  body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card.is-active {
    transform: scale(1) translateY(-3px);
  }
}
/* last, so it also wins over the mobile delta above */
@media (prefers-reduced-motion: reduce) {
  /* hierarchy survives, the movement does not */
  body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card,
  body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card.is-active {
    transform: none;
  }
  body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card {
    opacity: 0.85 !important;
  }
}

body.page-id-338 .ski-service-card .et_pb_image {
  width: 100% !important;
  height: auto !important;
  margin: 0 0 18px !important;
  border-radius: 3px;
  overflow: hidden;
}
body.page-id-338 .ski-service-card .et_pb_image_wrap {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / var(--ski-rail-img);
  border-radius: 8px;
  overflow: hidden;
}
body.page-id-338 .ski-service-card .et_pb_image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: 50% 40%;
  transition: transform 0.8s var(--ski-ease);
}
/* Crop tuning keyed to the image itself (survives card re-ordering) */
body.page-id-338 .ski-service-card img[src*="IMG_0654"] { object-position: 50% 28%; }
body.page-id-338 .ski-service-card img[src*="clase-de-snowboard"] { object-position: 50% 12%; }
body.page-id-338 .ski-service-card img[src*="clases-de-esqui_99"] { object-position: 40% 45%; }
body.page-id-338 .ski-service-card img[src*="full-day-cresta"] { object-position: 50% 45%; }
body.page-id-338 .ski-service-card img[src*="clase-a-medida-familia"] { object-position: 50% 30%; }

body.page-id-338 .ski-service-card .et_pb_group {
  flex: 1 1 auto;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:first-child p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase;
  color: var(--ski-blue) !important;
}
body.page-id-338 .ski-service-card .et_pb_heading { margin: 0 !important; }
body.page-id-338 .ski-service-card .et_pb_heading .et_pb_module_header {
  margin: 0 !important;
  padding: 0 !important;
  /* card tier, sized for a ~350px card rather than a full-width one */
  font-size: clamp(1.25rem, 1.05rem + 0.5vw, 1.4rem) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.022em !important;
  color: var(--ski-deep) !important;
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child {
  flex: 1 1 auto;
  display: flex !important;
  flex-direction: column;
  margin: 2px 0 0 !important;
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child .et_pb_text_inner {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child p {
  margin: 0 0 16px;
  padding: 0;
  max-width: 34ch;
  font-size: 16px;
  line-height: 1.55;
  color: var(--ski-muted);
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child p:has(> strong:only-child) {
  max-width: none;
  margin: auto 0 0;
  padding: 12px 0;
  border-top: 1px solid var(--ski-line);
  border-bottom: 1px solid var(--ski-line);
  font-size: 12px;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ski-deep);
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child p:has(> a) {
  margin: 14px 0 0;
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  font-size: 15px;
  font-weight: 700 !important;
  color: var(--ski-deep) !important;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 5px;
  transition: text-decoration-color 0.2s ease, color 0.2s ease;
}
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child a:hover,
body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child a:focus-visible {
  text-decoration-color: currentColor;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body.page-id-338 .ski-service-card.is-active:hover .et_pb_image img { transform: scale(1.03); }
}
@media (max-width: 767px) {
  body.page-id-338 .ski-service-card .et_pb_image { margin-bottom: 20px !important; }
  body.page-id-338 .ski-service-card .et_pb_group { padding: 0 2px !important; }
  body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child p { font-size: 16px; }
}

/* --- Arrows: flank the ACTIVE card (always centred at rest) --------------
   Injected by JS as a sibling of the scrolling viewport and positioned
   against the section, so they never scroll. Vertically centred on the
   active card's image; --ski-rail-mid (its middle) is measured by JS. */
body.page-id-338 .ski-service-slider__controls {
  --ski-arrow: 44px;
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  /* --ski-rail-mid is measured by home2-hero.js from the active card's own
     image box, so the arrows stay centred on it whatever the crop resolves
     to. The fallback keeps them sane before the script runs. */
  top: var(--ski-rail-mid, 280px);
  height: 0;
  margin: 0;
  pointer-events: none;
}
body.page-id-338 .ski-service-slider__btn {
  position: absolute;
  top: calc(var(--ski-arrow) / -2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--ski-arrow);
  height: var(--ski-arrow);
  margin: 0;
  padding: 0;
  border: 1px solid #DCE6EB;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 1px 4px rgba(15, 36, 48, 0.06);
  color: var(--ski-deep);
  cursor: pointer;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
/* Desktop/tablet: straddling the active card's left and right edges, which
   sit exactly --ski-rail-edge in from each side of the section. */
body.page-id-338 .ski-service-slider__btn:first-child {
  left: calc(var(--ski-rail-edge) - var(--ski-arrow) / 2);
  right: auto;
}
body.page-id-338 .ski-service-slider__btn:last-child {
  right: calc(var(--ski-rail-edge) - var(--ski-arrow) / 2);
  left: auto;
}
body.page-id-338 .ski-service-slider__btn svg {
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: square;
  pointer-events: none;
}
@media (hover: hover) and (pointer: fine) {
  body.page-id-338 .ski-service-slider__btn:hover {
    border-color: var(--ski-blue);
    color: var(--ski-blue);
    background: #fff;
  }
}
body.page-id-338 .ski-service-slider__btn:active {
  border-color: var(--ski-deep);
  background: var(--ski-ice);
}
body.page-id-338 .ski-service-slider__btn:focus-visible {
  outline: 2px solid var(--ski-blue);
  outline-offset: 2px;
}
body.page-id-338 .ski-service-slider__btn:disabled {
  opacity: 0.3;
  cursor: default;
}
@media (max-width: 767px) {
  /* Mobile: hug the inside of the active card's image so both peeking
     neighbours stay fully visible. */
  body.page-id-338 .ski-service-slider__btn:first-child {
    left: calc(var(--ski-rail-edge) + var(--ski-card-pad) + 7px);
    right: auto;
  }
  body.page-id-338 .ski-service-slider__btn:last-child {
    right: calc(var(--ski-rail-edge) + var(--ski-card-pad) + 7px);
    left: auto;
  }
}


/* =========================================================
   13. HUB TOKENS + VERTICAL RHYTHM

   Tighter than the Full Day base: this page is a decision hub,
   so the reader should cross ten bands quickly rather than
   linger in each one. Declared after the base so these win.
   ========================================================= */

body.page-id-338 {
	--ski-ease: cubic-bezier(0.22, 0.61, 0.36, 1);

	--ski-edge:        max(44px, calc((100vw - 1240px) / 2));
	--ski-space:       clamp(56px, 4.8vw, 84px);
	--ski-space-dense: clamp(44px, 3.8vw, 64px);
}

body.page-id-338 .ski-band > .ski-section-head {
	margin-bottom: clamp(24px, 2.4vw, 36px) !important;
}

/* Eyebrow modules on this page hold a bare text node, not a <p>. */
body.page-id-338 .ski-eyebrow .et_pb_text_inner {
	font-family: var(--ski-tech);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--ski-blue) !important;
}


/* =========================================================
   14. SELECTOR - the slider band

   Same component as Home2; only its proportions and the
   active/resting delta are re-tuned here. The card is a touch
   narrower and the crop a touch wider, so four services read
   as a rail rather than four posters.
   ========================================================= */

body.page-id-338 .ski-service-slider {
	background-color: var(--ski-ice) !important;
	--ski-rail-card: clamp(288px, 21vw, 336px);
	--ski-rail-gap: clamp(18px, 1.8vw, 28px);
	--ski-rail-img: 0.72;
	--ski-card-pad: 20px;
	padding: var(--ski-space) 0 var(--ski-space-dense) !important;
}

body.page-id-338 .ski-service-slider__viewport {
	padding-top: 16px !important;
	padding-bottom: 34px !important;
}

body.page-id-338 .ski-service-slider__head .et_pb_heading,
body.page-id-338 .ski-service-slider__head .et_pb_text {
	margin: 0 !important;
}

body.page-id-338 .ski-service-slider__head .ski-display-h2 .et_pb_module_header {
	max-width: 16ch;
	text-align: left !important;
}

body.page-id-338 .ski-service-slider__head .ski-lead {
	margin: 12px 0 0 !important;
}

body.page-id-338 .ski-service-slider__head .ski-lead p {
	max-width: 54ch;
	font-size: 16.5px;
	text-align: left !important;
}

/* Active card: a fine blue line and a shadow you notice only
   because the neighbours do not have one. */
body.page-id-338 .ski-service-slider .ski-service-card.is-active {
	box-shadow: 0 8px 24px rgba(15, 36, 48, 0.05) !important;
}

body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card {
	opacity: 0.85 !important;
}

body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card.is-active {
	opacity: 1 !important;
	transform: scale(1) translateY(-3px);
}

body.page-id-338 .ski-service-card .et_pb_image {
	margin-bottom: 20px !important;
}

body.page-id-338 .ski-service-card .et_pb_group > .et_pb_text:last-child p {
	font-size: 15.5px;
	line-height: 1.5;
}

@media (prefers-reduced-motion: reduce) {
	body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card,
	body.page-id-338 .ski-service-slider__viewport.is-looping .ski-service-card.is-active {
		transform: none;
	}
}


/* =========================================================
   17. EDITORIAL - Ski Kids and Full Day

   Both run the approved .ski-fd-editorial split. Ski Kids is
   reversed and sits on Ice so the two editorial moments do not
   mirror each other and the band rhythm keeps alternating.
   ========================================================= */

body.page-id-338 .ski-fd-editorial {
	background-color: var(--ski-snow) !important;
}

body.page-id-338 .ski-editorial--reverse {
	background-color: var(--ski-ice) !important;
}

body.page-id-338 .ski-editorial--reverse .ski-fd-editorial__grid {
	grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
}

/* Sierra cut reads against the photograph on the reversed side. */
body.page-id-338 .ski-editorial--reverse .ski-fd-editorial__media::before {
	left: auto;
	right: -10px;
	border-width: 1.5px 1.5px 0 0;
}

/* Full Day's photograph is panoramic; a 4:5 frame crops the
   ridge out of it. */
body.page-id-338 .ski-fd-editorial:not(.ski-editorial--reverse) .ski-fd-editorial__img img {
	aspect-ratio: 4 / 3;
}

body.page-id-338 .ski-fd-editorial .ski-lead p {
	max-width: 44ch;
}

body.page-id-338 .ski-fd-editorial .et_pb_button_wrapper {
	margin: 22px 0 0 !important;
	text-align: left !important;
}

body.page-id-338 .ski-fd-editorial .et_pb_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 46px;
}

body.page-id-338 .ski-fd-editorial .et_pb_button::after {
	display: none !important;
}

/* Cursos, folded into the Ski Kids block rather than carrying a
   band of its own. A quiet note, not a second lead. */
body.page-id-338 .ski-note {
	margin: 18px 0 0 !important;
	padding-top: 16px !important;
	border-top: 1px solid var(--ski-line);
}

body.page-id-338 .ski-note p {
	margin: 0;
	padding: 0;
	max-width: 48ch;
	font-size: 15.5px;
	line-height: 1.55;
	color: var(--ski-muted);
}

/* Schedule / level line under the Full Day copy - the page's
   one piece of technical data, treated as such. */
body.page-id-338 .ski-meta {
	margin: 18px 0 0 !important;
}

body.page-id-338 .ski-meta p {
	margin: 0;
	padding: 11px 0;
	border-top: 1px solid var(--ski-line);
	border-bottom: 1px solid var(--ski-line);
	font-size: 13px;
	line-height: 1.55;
	letter-spacing: 0.04em;
	color: var(--ski-deep);
}

body.page-id-338 .ski-meta p strong {
	color: var(--ski-blue);
	font-weight: 700;
}


/* =========================================================
   20. FINAL CTA - the approved light closing moment
   ========================================================= */

body.page-id-338 .ski-final .ski-cta-box::before {
	content: "CLASES / SIERRA NEVADA";
}


/* =========================================================
   21. <= 980px
   ========================================================= */

@media (max-width: 980px) {

	body.page-id-338 {
		--ski-edge: 32px;
		--ski-space: 52px;
		--ski-space-dense: 42px;
	}

	body.page-id-338 .ski-service-slider__head {
		flex-wrap: wrap !important;
		gap: 10px 24px;
	}

	body.page-id-338 .ski-editorial--reverse .ski-fd-editorial__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.page-id-338 .ski-editorial--reverse .ski-fd-editorial__media::before {
		right: 0;
		top: -8px;
	}

	body.page-id-338 .ski-fd-editorial:not(.ski-editorial--reverse) .ski-fd-editorial__img img {
		aspect-ratio: 16 / 10;
	}

	body.page-id-338 .ski-why__grid {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 24px;
	}

	body.page-id-338 .ski-why__media {
		order: -1;
	}

	body.page-id-338 .ski-why__media img {
		aspect-ratio: 16 / 10;
		object-position: 50% 28%;
	}

	body.page-id-338 .ski-why__media::before {
		right: 0;
		top: -8px;
	}

	body.page-id-338 .ski-utility__grid {
		margin-bottom: 36px !important;
	}
}


/* =========================================================
   22. <= 620px - phone

   Not a shrunken desktop: the rail keeps a near-full card with
   both neighbours peeking, Formatos stays a 2x2 so the four
   profiles are comparable at a glance, and Duracion loses a
   third of its height without losing a figure.
   ========================================================= */

@media (max-width: 620px) {

	body.page-id-338 {
		--ski-edge: 22px;
		--ski-space: 44px;
		--ski-space-dense: 36px;
	}

	body.page-id-338 .ski-service-slider {
		--ski-rail-card: calc(100vw - 88px);
		--ski-rail-gap: 12px;
		--ski-rail-img: 0.86;
		--ski-card-pad: 16px;
	}

	body.page-id-338 .ski-service-slider__viewport {
		padding-top: 12px !important;
		padding-bottom: 28px !important;
	}

	body.page-id-338 .ski-service-slider__head .ski-lead p {
		font-size: 16px;
	}

	/* Formatos: 2x2, the four profiles comparable at a glance. */
	body.page-id-338 .ski-formats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 18px !important;
	}

	body.page-id-338 .ski-formats__grid > .et_pb_column {
		padding: 16px 0 !important;
	}

	body.page-id-338 .ski-formats .et_pb_module_header {
		font-size: 15.5px !important;
	}

	body.page-id-338 .ski-formats .et_pb_blurb_description p {
		font-size: 14.5px;
		max-width: none;
	}

	body.page-id-338 .ski-utility__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.page-id-338 .ski-utility__grid .et_pb_blurb_description p {
		max-width: 52ch;
	}

	body.page-id-338 .ski-why__list .et_pb_group {
		grid-template-columns: 22px minmax(0, 1fr);
		column-gap: 12px;
		padding: 11px 0 !important;
	}
}


/* =========================================================
   23. FAIL-SAFES

   Nothing on this page may depend on the GSAP motion stack to
   become visible, and nothing may scroll the page sideways.
   ========================================================= */

body.page-id-338 .ski-image-reveal,
body.page-id-338 .ski-service-card,
body.page-id-338 .ski-number-reveal,
body.page-id-338 .ski-photo-cover,
body.page-id-338 .ski-rounded-photo,
body.page-id-338 .ski-note,
body.page-id-338 .ski-meta {
	opacity: 1;
	visibility: visible;
}

body.page-id-338 .ski-service-slider,
body.page-id-338 .ski-service-slider__viewport,
body.page-id-338 .ski-band,
body.page-id-338 .ski-page-hero {
	max-width: 100%;
}


/* =========================================================
   24. BAND RHYTHM - final pass

   Consolidated tail: Duracion, Formatos, the two editorial
   blocks, Confianza and Utilidad+FAQ all live here, after the
   generic breakpoint rules, so this is the one place those
   sections are tuned. Nothing below repeats what sections 1-14
   already establish.
   ========================================================= */

@media (max-width: 620px) {
	body.page-id-338 {
		--ski-space: 50px;
		--ski-space-dense: 42px;
	}
}

/* The closing CTA sits directly on the deep-blue footer; it needs
   less tail than a band with content after it. */
body.page-id-338 .ski-final {
	min-height: 0 !important;
	padding-bottom: clamp(52px, 4.2vw, 74px) !important;
}

/* Carousel: same component, a slightly crisper transition. */
@media (prefers-reduced-motion: no-preference) {
	body.page-id-338 .ski-service-slider .ski-service-card {
		transition:
			transform 380ms var(--ski-ease),
			opacity 380ms var(--ski-ease),
			border-color 340ms var(--ski-ease),
			box-shadow 380ms var(--ski-ease) !important;
	}
}



/* Phone: three compact rows on hairlines, actions aligned. */



/* =========================================================
   26. FORMATOS - four profiles, Snow, slightly larger
   ========================================================= */

body.page-id-338 .ski-formats {
	background-color: var(--ski-snow) !important;
	border-top: 1px solid var(--ski-line);
	padding: clamp(44px, 3.6vw, 64px) var(--ski-edge) !important;
}

body.page-id-338 .ski-formats__grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: clamp(24px, 2.6vw, 48px) !important;
	align-items: stretch;
}

body.page-id-338 .ski-formats__grid > .et_pb_column {
	display: flex !important;
	flex-direction: column !important;
	padding: 22px 0 0 !important;
}

body.page-id-338 .ski-formats .et_pb_blurb,
body.page-id-338 .ski-utility__grid .et_pb_blurb {
	margin: 0 !important;
	flex: 1 1 auto;
}

body.page-id-338 .ski-formats .et_pb_blurb_content,
body.page-id-338 .ski-utility__grid .et_pb_blurb_content {
	display: flex !important;
	flex-direction: column;
	height: 100%;
	width: 100%;
	max-width: none !important;
	text-align: left !important;
}

body.page-id-338 .ski-formats .et_pb_main_blurb_image,
body.page-id-338 .ski-utility__grid .et_pb_main_blurb_image {
	display: block !important;
	flex: 0 0 auto;
	width: var(--ski-icon-md) !important;
	height: var(--ski-icon-md) !important;
	margin: 0 0 13px !important;
	padding: 0 !important;
	line-height: 0;
	text-align: left !important;
}

body.page-id-338 .ski-formats .et_pb_main_blurb_image img,
body.page-id-338 .ski-utility__grid .et_pb_main_blurb_image img {
	display: block;
	width: var(--ski-icon-md) !important;
	height: var(--ski-icon-md) !important;
	object-fit: contain;
	border-radius: 0 !important;
}

body.page-id-338 .ski-formats .et_pb_main_blurb_image .et-pb-icon,
body.page-id-338 .ski-utility__grid .et_pb_main_blurb_image .et-pb-icon {
	display: block;
	font-size: 30px !important;
	line-height: 1 !important;
	color: var(--ski-blue) !important;
}

body.page-id-338 .ski-formats .et_pb_blurb_container,
body.page-id-338 .ski-utility__grid .et_pb_blurb_container {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 0 !important;
	text-align: left !important;
}

body.page-id-338 .ski-formats .et_pb_module_header,
body.page-id-338 .ski-utility__grid .et_pb_module_header {
	margin: 0 0 6px !important;
	padding: 0 !important;
	font-size: 17.5px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: -0.012em !important;
	color: var(--ski-deep) !important;
	text-align: left !important;
}

body.page-id-338 .ski-formats .et_pb_blurb_description,
body.page-id-338 .ski-utility__grid .et_pb_blurb_description {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}

body.page-id-338 .ski-formats .et_pb_blurb_description p,
body.page-id-338 .ski-utility__grid .et_pb_blurb_description p {
	margin: 0;
	padding: 0;
	max-width: 30ch;
	font-size: 15.5px;
	line-height: 1.55;
	color: rgba(15, 36, 48, 0.78);
}

/* Links align across the row whatever the copy wraps to. */
body.page-id-338 .ski-formats .et_pb_blurb_description p:has(a),
body.page-id-338 .ski-utility__grid .et_pb_blurb_description p:has(a) {
	margin-top: auto;
	padding-top: 8px;
}

body.page-id-338 .ski-formats .et_pb_blurb_description a,
body.page-id-338 .ski-utility__grid .et_pb_blurb_description a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	font-size: 14.5px;
	font-weight: 700 !important;
	color: var(--ski-deep) !important;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 5px;
	transition: text-decoration-color 0.2s ease, color 0.2s ease;
}

body.page-id-338 .ski-formats .et_pb_blurb_description a:hover,
body.page-id-338 .ski-formats .et_pb_blurb_description a:focus-visible,
body.page-id-338 .ski-utility__grid .et_pb_blurb_description a:hover,
body.page-id-338 .ski-utility__grid .et_pb_blurb_description a:focus-visible {
	text-decoration-color: currentColor;
	color: var(--ski-blue) !important;
}

@media (prefers-reduced-motion: reduce) {
	body.page-id-338 .ski-formats .et_pb_blurb_description a,
	body.page-id-338 .ski-utility__grid .et_pb_blurb_description a {
		transition: none;
	}
}

@media (max-width: 980px) {
	body.page-id-338 .ski-formats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 28px !important;
	}

	body.page-id-338 .ski-formats__grid > .et_pb_column {
		padding: 20px 0 22px !important;
		border-top: 1px solid var(--ski-line) !important;
	}

	body.page-id-338 .ski-formats__grid::after {
		display: none;
	}
}

@media (max-width: 700px) {
	body.page-id-338 .ski-formats {
		padding: clamp(34px, 8vw, 46px) var(--ski-edge) !important;
	}

	body.page-id-338 .ski-formats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 18px !important;
	}

	body.page-id-338 .ski-formats__grid > .et_pb_column {
		padding: 16px 0 18px !important;
	}

	body.page-id-338 .ski-formats .et_pb_main_blurb_image,
	body.page-id-338 .ski-formats .et_pb_main_blurb_image img {
		width: var(--ski-icon-md) !important;
		height: var(--ski-icon-md) !important;
		margin-bottom: 10px !important;
	}

	body.page-id-338 .ski-formats .et_pb_main_blurb_image .et-pb-icon {
		font-size: 26px !important;
	}

	body.page-id-338 .ski-formats .et_pb_module_header {
		font-size: 16px !important;
	}

	body.page-id-338 .ski-formats .et_pb_blurb_description p {
		max-width: none;
		font-size: 14.5px;
	}
}


/* =========================================================
   27. SKI KIDS + FULL DAY - matched pair

   Same eyebrow, same title scale, same measure, same action.
   Only the side the photograph sits on differs.
   ========================================================= */

body.page-id-338 .ski-fd-editorial {
	padding: clamp(48px, 4vw, 72px) var(--ski-edge) !important;
}

body.page-id-338 .ski-fd-editorial .ski-display-h2 .et_pb_module_header {
	max-width: 15ch;
	font-size: clamp(1.75rem, 1.15rem + 1.4vw, 2.35rem) !important;
	line-height: 1.06 !important;
}

body.page-id-338 .ski-fd-editorial .ski-eyebrow {
	margin: 0 0 12px !important;
}

body.page-id-338 .ski-fd-editorial .ski-lead {
	margin: 14px 0 0 !important;
}

body.page-id-338 .ski-fd-editorial .ski-lead p {
	max-width: 42ch;
	font-size: 16.5px;
	line-height: 1.6;
}

body.page-id-338 .ski-fd-editorial .et_pb_button_wrapper {
	margin: 20px 0 0 !important;
	text-align: left !important;
}

body.page-id-338 #page-container .ski-fd-editorial .et_pb_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: auto !important;
	min-height: 46px !important;
	padding: 10px 24px !important;
	border-radius: 10px !important;
	font-size: 15px !important;
	line-height: 1 !important;
	white-space: nowrap !important;
}

body.page-id-338 .ski-fd-editorial .et_pb_button::after {
	display: none !important;
}

@media (max-width: 980px) {
	body.page-id-338 .ski-fd-editorial {
		padding: clamp(40px, 6vw, 56px) var(--ski-edge) !important;
	}

	/* Ski Kids' portrait would otherwise own half the phone screen. */
	body.page-id-338 .ski-editorial--reverse .ski-fd-editorial__img img {
		aspect-ratio: 3 / 2 !important;
		object-position: 50% 38%;
	}

	body.page-id-338 .ski-fd-editorial__grid {
		row-gap: 22px !important;
	}

	body.page-id-338 #page-container .ski-fd-editorial .et_pb_button {
		width: 100% !important;
	}
}


/* =========================================================
   28. CONFIANZA - full-bleed photograph, flat Deep Alpine veil

   Concept unchanged; only measure, alignment and spacing are
   tuned here, and the band does not grow taller.
   ========================================================= */

body.page-id-338 .ski-why {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	border-top: 0 !important;
	background-color: var(--ski-deep) !important;
	padding: clamp(48px, 4.2vw, 74px) var(--ski-edge) !important;
}

body.page-id-338 .ski-why > .et_pb_row {
	position: static !important;
}

body.page-id-338 .ski-why__grid {
	position: relative;
	z-index: 1;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	column-gap: 0 !important;
	align-items: start;
}

body.page-id-338 .ski-why__media {
	position: absolute !important;
	inset: 0 !important;
	z-index: 0;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background-image: none !important;
}

body.page-id-338 .ski-why__media .et_pb_image {
	height: 100% !important;
	margin: 0 !important;
	border-radius: 0 !important;
	overflow: hidden;
	line-height: 0;
}

body.page-id-338 .ski-why__media .et_pb_image_wrap {
	display: block;
	width: 100%;
	height: 100%;
}

body.page-id-338 .ski-why__media img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	aspect-ratio: auto !important;
	object-fit: cover;
	object-position: 50% 26%;
}

/* One flat value, never a gradient. */
body.page-id-338 .ski-why__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(20, 47, 61, 0.88);
	pointer-events: none;
}

body.page-id-338 .ski-why__media::before {
	display: none !important;
}

body.page-id-338 .ski-why__list {
	position: relative;
	z-index: 1;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(30px, 3.4vw, 68px);
	align-content: start;
	width: 100% !important;
	max-width: 980px !important;
	margin: 0 !important;
	background-image: none !important;
}

body.page-id-338 .ski-why__list > .et_pb_text,
body.page-id-338 .ski-why__list > .et_pb_heading {
	grid-column: 1 / -1;
}

body.page-id-338 .ski-why .ski-eyebrow .et_pb_text_inner {
	color: var(--ski-blue) !important;
}

body.page-id-338 .ski-why .ski-display-h2 .et_pb_module_header {
	max-width: 18ch;
	font-size: clamp(1.6rem, 1rem + 1.4vw, 2.2rem) !important;
	color: #FFFFFF !important;
}

body.page-id-338 .ski-why__list .ski-lead {
	margin: 12px 0 18px !important;
}

body.page-id-338 .ski-why__list .ski-lead p {
	max-width: 46ch;
	font-size: 16.5px;
	color: rgba(255, 255, 255, 0.82);
}

body.page-id-338 .ski-why__list .et_pb_group {
	display: grid !important;
	grid-template-columns: 22px minmax(0, 1fr);
	column-gap: 14px;
	align-items: start;
	margin: 0 !important;
	padding: 12px 0 !important;
	background: transparent !important;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 0 !important;
}

body.page-id-338 .ski-why__list .et_pb_icon_wrap,
body.page-id-338 .ski-why__list .et_pb_icon {
	margin: 0 !important;
	padding: 0 !important;
	text-align: left !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
}

body.page-id-338 .ski-why__list .et_pb_icon {
	font-size: var(--ski-icon-glyph-sm) !important;
	line-height: 1.3 !important;
	color: var(--ski-blue) !important;
}

body.page-id-338 .ski-why__list .et_pb_group .et_pb_text {
	margin: 0 !important;
}

body.page-id-338 .ski-why__list h4 {
	margin: 0 0 3px !important;
	padding: 0 !important;
	font-size: 15.5px !important;
	font-weight: 700;
	line-height: 1.3;
	color: #FFFFFF;
}

body.page-id-338 .ski-why__list .et_pb_group p {
	margin: 0;
	padding: 0;
	max-width: 42ch;
	font-size: 14.5px;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.82);
}

@media (max-width: 980px) {
	body.page-id-338 .ski-why {
		padding: clamp(44px, 6vw, 60px) var(--ski-edge) !important;
	}

	body.page-id-338 .ski-why__grid {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 0;
	}

	body.page-id-338 .ski-why__media img {
		object-position: 50% 22%;
	}
}

@media (max-width: 700px) {
	body.page-id-338 .ski-why__list {
		grid-template-columns: minmax(0, 1fr);
	}

	body.page-id-338 .ski-why__list .ski-lead p,
	body.page-id-338 .ski-why__list .et_pb_group p {
		max-width: none;
	}

	body.page-id-338 .ski-why__list .et_pb_group {
		padding: 11px 0 !important;
	}

	body.page-id-338 .ski-why__media::after {
		background: rgba(20, 47, 61, 0.90);
	}
}


/* =========================================================
   29. UTILIDAD + FAQ - Snow, tight, FAQ reads as a new start

   The band changes to Snow so it breaks the rhythm after the
   deep Confianza block, the practical index is compressed, and
   the FAQ opens on its own rule with real air above it instead
   of the stacked margins that left a hole on desktop.
   ========================================================= */

body.page-id-338 .ski-utility-band,
body.page-id-338 .ski-faq {
	background-color: var(--ski-snow) !important;
	min-height: 0 !important;
	padding: clamp(42px, 3.6vw, 62px) var(--ski-edge) !important;
}

body.page-id-338 .ski-utility-band > .et_pb_row,
body.page-id-338 .ski-utility__head,
body.page-id-338 .ski-utility__grid,
body.page-id-338 .ski-utility__grid > .et_pb_column {
	background-image: none !important;
}

body.page-id-338 .ski-utility__head {
	margin-bottom: clamp(16px, 1.6vw, 24px) !important;
}

body.page-id-338 .ski-utility__grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: clamp(24px, 2.6vw, 48px) !important;
	margin-bottom: 0 !important;
	align-items: stretch;
}

body.page-id-338 .ski-utility__grid > .et_pb_column {
	display: flex !important;
	flex-direction: column !important;
	padding: 20px 0 0 !important;
}

body.page-id-338 .ski-utility__grid .et_pb_main_blurb_image,
body.page-id-338 .ski-utility__grid .et_pb_main_blurb_image img {
	width: var(--ski-icon-md) !important;
	height: var(--ski-icon-md) !important;
	margin-bottom: 11px !important;
}

body.page-id-338 .ski-utility__grid .et_pb_main_blurb_image .et-pb-icon {
	font-size: 28px !important;
}

body.page-id-338 .ski-utility__grid .et_pb_module_header {
	font-size: 16.5px !important;
}

body.page-id-338 .ski-utility__grid .et_pb_blurb_description p {
	font-size: 15px;
	max-width: 30ch;
}

/* FAQ: the approved Home2 accordion, opened by a rule of its own. */
body.page-id-338 .ski-faq__split {
	margin-top: clamp(34px, 3vw, 50px);
	padding-top: clamp(30px, 2.6vw, 42px);
	border-top: 1px solid var(--ski-line);
}

body.page-id-338 .ski-faq__split .et_pb_heading .et_pb_module_header {
	margin: 0 !important;
	padding: 0 !important;
	max-width: 14ch;
	font-size: clamp(1.7rem, 1.1rem + 1.4vw, 2.3rem) !important;
	font-weight: 800 !important;
	line-height: 1.06 !important;
	letter-spacing: -0.03em !important;
	color: var(--ski-deep) !important;
	text-align: left !important;
}

@media (max-width: 980px) {
	body.page-id-338 .ski-utility-band,
	body.page-id-338 .ski-faq {
		padding: clamp(38px, 5.4vw, 52px) var(--ski-edge) !important;
	}

	body.page-id-338 .ski-utility__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 28px !important;
	}

	body.page-id-338 .ski-utility__grid > .et_pb_column {
		padding: 18px 0 20px !important;
		border-top: 1px solid var(--ski-line) !important;
	}

	body.page-id-338 .ski-utility__grid::after {
		display: none;
	}

	body.page-id-338 .ski-faq__split {
		margin-top: 28px;
		padding-top: 26px;
	}
}

@media (max-width: 700px) {
	body.page-id-338 .ski-utility__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	body.page-id-338 .ski-utility__grid > .et_pb_column {
		padding: 15px 0 16px !important;
	}

	body.page-id-338 .ski-utility__grid .et_pb_blurb_description p {
		max-width: 52ch;
	}

	body.page-id-338 .ski-faq__split {
		margin-top: 24px;
		padding-top: 22px;
	}
}


/* Fail-safes for the elements introduced above. */
body.page-id-338 .ski-why__media,
body.page-id-338 .ski-why__media .et_pb_image,
body.page-id-338 .ski-why__media img {
	opacity: 1;
	visibility: visible;
}

/* Iconography pass: the blurb modules' own width attr (40/32px, 28/24 phone)
   was constraining .et_pb_image_wrap, squeezing the md-tier image. The wrap
   now follows the tier so the icon renders square. Page 338 only (Home's
   .ski-utility__grid keeps its own 52/42 treatment). */
body.page-id-338 .ski-formats .et_pb_main_blurb_image .et_pb_image_wrap,
body.page-id-338 .ski-utility__grid .et_pb_main_blurb_image .et_pb_image_wrap {
	display: block;
	width: var(--ski-icon-md) !important;
	max-width: none !important;
}


/* =========================================================
   HERO FIX (2026-09-28) - restore missing background + full-bleed row

   The row wrapping the hero was rendering at 80% width instead of full
   bleed (Divi renders width:100% on the block, but a higher-specificity
   theme rule for flex-context rows was winning). Separately, the hero's
   own background-image + gradient never made it into Divi's generated
   CSS cache at all (0 occurrences anywhere in the compiled file) - a
   live Divi 5 generator gap for this module structure, same root cause
   already fixed on /sierra-nevada/. Values below are mirrored exactly
   from this module's own saved configuration (post 338), not invented.
   ========================================================= */

body.page-id-338 .et_pb_row:has(.ski-page-hero) {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}

#ski-hero {
  background-image:
    url("https://skischoolsierranevada.es/wp-content/uploads/2026/08/bg_mountain_SN_1.webp") !important;
  background-size: cover, cover !important;
  background-repeat: no-repeat, no-repeat !important;
  min-height: clamp(560px, 62vh, 640px) !important;
}

#ski-hero .et_pb_fullwidth_header_overlay {
  background-color: rgba(15,36,48,0.34) !important;
}

@media (max-width: 767px) {
  #ski-hero {
    background-image:
      url("https://skischoolsierranevada.es/wp-content/uploads/2026/08/bg_mountain_SN_1.webp") !important;
    min-height: 80svh !important;
  }
  #ski-hero .et_pb_fullwidth_header_overlay {
    background-color: rgba(15,36,48,0.42) !important;
  }
}

/* Happy Hour photo: the sun sits right of centre; frame it with the trees instead of cutting it off. */
body.page-id-338 .ski-service-card img[src*="happy-hour_Ski-School"] { object-position: 62% 50%; }

/* Perf 2026-10-06: same decorative shape as WebP (29 KB instead of the 314 KB PNG). */
body.page-id-338 .ski-fd-editorial {
  background-image: url("/wp-content/uploads/2026/08/BG_Shapes_2.webp") !important;
}
