/**
 * Cirrusly Atmospheric — visual layer
 * Mirrors the storefront prototype (Direction A · Refined Classic).
 * Brand tokens come from theme.json; this file styles the BLOCK markup
 * the templates emit, plus a few new components (sky widget, shipbar).
 */

/* ---------- root tokens (mirror ds/colors_and_type.css) ---------- */
:root {
	--cw-primary:        #0945c8;
	--cw-primary-dark:   #12123F;
	--cw-secondary:      #DBE6EE;
	--cw-tertiary:       #F1F4FA;
	--cw-sun:            #F9D13E;
	--cw-sun-deep:       #F5A623;
	--cw-accent:         #d63638;
	--cw-gray-100:       #f8f9fa;
	--cw-gray-200:       #e9ecef;
	--cw-gray-300:       #dee2e6;
	--cw-gray-500:       #6c757d;
	--cw-gray-700:       #495057;
	--cw-gray-900:       #212529;
	--cw-shadow-card:    0 2px 8px rgba(0,0,0,.08);
	--cw-shadow-hover:   0 8px 24px rgba(0,0,0,.12);
	--cw-radius-md:      8px;
	--cw-radius-lg:      12px;
	--cw-radius-pill:    9999px;
	--cw-ease:           all .3s cubic-bezier(.4,0,.2,1);
	--weather-rain-drop-strong: radial-gradient(ellipse 1.1px 7px at 50% 46%, rgba(255,255,255,.95) 0%, rgba(255,255,255,.78) 38%, rgba(255,255,255,.22) 72%, rgba(255,255,255,0) 78%);
	--weather-rain-drop-soft: radial-gradient(ellipse .9px 5px at 50% 50%, rgba(194,214,235,.74) 0%, rgba(194,214,235,.5) 36%, rgba(194,214,235,.1) 70%, rgba(194,214,235,0) 76%);
	--weather-snowflake-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.95)' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M24 8v32M10 16l28 16M10 32l28-16'/%3E%3Cpath d='M18 12l6 6 6-6M18 36l6-6 6 6M13 14l8 1-2 7M35 34l-8-1 2-7M13 34l8-1-2 7M35 14l-8 1 2 7'/%3E%3C/g%3E%3C/svg%3E");
	--weather-fog-veil: linear-gradient(180deg, rgba(247,250,252,.42) 0%, rgba(235,242,247,.64) 48%, rgba(214,225,232,.82) 100%);
}

/* ---------- typography ---------- */
body {
	background: #fff;
	color: var(--cw-gray-900);
	font-family: 'Source Serif 4', Georgia, 'Times New Roman', serif;
	font-optical-sizing: auto;
	font-weight: 400;
}
h1, h2, h3, h4 { font-family: 'Raleway', sans-serif; color: var(--cw-primary-dark); font-weight: 700; }
em, .cirrusly-accent-italic {
	font-family: 'Source Serif 4', Georgia, serif;
	font-style: italic;
	font-weight: 400;
	font-optical-sizing: auto;
}

/* ---------- buttons (mirror cw-btn) ---------- */
.wp-block-button .wp-block-button__link {
	border-radius: var(--cw-radius-md);
	font-weight: 600;
	padding: 12px 22px;
	transition: var(--cw-ease);
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border-width: 2px;
}

/* ---------- PRICE EMPHASIS ---------- */
.wp-block-woocommerce-product-price,
.wc-block-components-product-price,
.price,
.woocommerce ul.products li.product .price,
.woocommerce div.product .price,
.wc-block-grid__product-price,
.cirrusly-product-card .wp-block-woocommerce-product-price,
.cirrusly-product-card .wc-block-components-product-price {
	font-weight: 800;
}

.cirrusly-product-card .wp-block-woocommerce-product-price,
.cirrusly-product-card .wc-block-components-product-price {
	font-size: 1.125rem;
}

.wp-block-woocommerce-product-price ins,
.wc-block-components-product-price ins,
.price ins,
.woocommerce ul.products li.product .price ins,
.woocommerce div.product .price ins,
.wc-block-grid__product-price ins,
.cirrusly-product-card .wp-block-woocommerce-product-price ins,
.cirrusly-product-card .wc-block-components-product-price ins {
	text-decoration: none;
	color: var(--cw-accent);
	font-weight: 800;
}

/* ---------- HERO (mirrors .cwA-hero — solid blue gradient, NOT slate/terracotta) ---------- */
.cirrusly-hero {
	background: linear-gradient(135deg, #12123F 0%, #0945c8 50%, #1e5fd9 100%) !important;
	color: #fff;
	position: relative;
	overflow: hidden;
}
.cirrusly-hero .wp-block-cover__background { display: none; }
.cirrusly-hero h1 {
	color: #fff !important;
	font-size: clamp(2rem, 1.5rem + 3vw, 3.5rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.1;
}
.cirrusly-hero p { color: rgba(255,255,255,.9); }

.cirrusly-page-shell--inner .cirrusly-header {
	position: relative;
}

.cirrusly-page-shell--inner .cirrusly-header::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: clamp(132px, 18vw, 210px);
	z-index: 0;
	background:
		radial-gradient(circle at 50% -18%, rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0) 42%),
		linear-gradient(180deg, rgba(9, 46, 132, 0.96) 0%, rgba(46, 115, 220, 0.88) 52%, rgba(198, 220, 238, 0.5) 82%, rgba(241, 244, 250, 0) 100%);
	pointer-events: none;
}

.cirrusly-page-shell--inner .cirrusly-header > * {
	position: relative;
	z-index: 1;
}

.cirrusly-page-shell--home .cirrusly-hero {
	background: linear-gradient(180deg, rgba(11, 21, 49, 0.98) 0%, rgba(11, 21, 49, 0.92) 100%);
}

.cirrusly-page-shell--home .cirrusly-hero__inner {
	padding-top: clamp(8.75rem, 15vw, 12.5rem);
}

.cirrusly-page-shell--home .cirrusly-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 40;
}

.cirrusly-page-shell--home .cirrusly-header::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: clamp(132px, 18vw, 210px);
	z-index: 0;
	background:
		linear-gradient(180deg, rgba(11, 21, 49, 0.98) 0%, rgba(11, 21, 49, 0.92) 52%, rgba(11, 21, 49, 0) 100%);
	pointer-events: none;
}

.cirrusly-page-shell--home .cirrusly-header > * {
	position: relative;
	z-index: 1;
}

@media (max-width: 900px) {
	.cirrusly-page-shell--home .cirrusly-hero__inner {
		padding-top: clamp(7.25rem, 18vw, 9.75rem);
	}
}

@media (max-width: 600px) {
	.cirrusly-page-shell--home .cirrusly-hero__inner {
		padding-top: clamp(6.5rem, 20vw, 8.25rem);
	}
}

/* ---------- SKY WIDGET (mirrors .cwA-sky) ---------- */
/* Sky widget — instrument-panel layout */
.cirrusly-sky-widget {
	background: rgba(255,255,255,.10);
	border: 1px solid rgba(255,255,255,.2);
	border-radius: var(--cw-radius-lg);
	padding: 1.25rem 1.5rem 1.25rem;
	margin-top: 2rem;
	color: #fff;
	max-width: 480px;
	backdrop-filter: blur(10px);
	transition: opacity .45s ease, transform .55s ease, box-shadow .45s ease;
}

/* Header: title left, location right */
.cirrusly-sky-widget__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: rgba(255,255,255,.6);
	margin-bottom: 1.1rem;
}
.cirrusly-sky-widget__location {
	color: var(--cw-sun);
	font-weight: 600;
}

/* Body: big temp left | stats right */
.cirrusly-sky-widget__body {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0 1.75rem;
	align-items: start;
}

/* Left: temperature + feels-like */
.cirrusly-sky-widget__primary {
	display: flex;
	flex-direction: column;
	padding-right: 1.75rem;
	border-right: 1px solid rgba(255,255,255,.15);
}
.cirrusly-sky-widget__temp-wrap {
	display: flex;
	align-items: baseline;
	line-height: 1;
}
.cirrusly-sky-widget__temp-number {
	font-family: var(--wp--preset--font-family--primary);
	font-size: clamp(3rem, 4.5vw, 4.25rem);
	font-weight: 300;
	font-optical-sizing: auto;
	letter-spacing: -.03em;
	color: #fff;
	line-height: 1;
}
.cirrusly-sky-widget__temp-unit {
	font-size: 1.375rem;
	font-weight: 400;
	color: rgba(255,255,255,.45);
	margin-left: .1em;
	line-height: 1;
}
/* Sky condition label — live NWS (KRDG) condition under the temperature,
   reinforcing the hero background animation. */
.cirrusly-sky-widget__condition {
	margin-top: .5rem;
	font-size: .92rem;
	font-weight: 600;
	letter-spacing: .01em;
	color: var(--cw-sun);
}
.cirrusly-sky-widget__feels {
	margin-top: .4rem;
	font-size: .78rem;
	color: rgba(255,255,255,.5);
	font-style: italic;
}

/* Right: secondary stats stack */
.cirrusly-sky-widget__secondary {
	display: flex;
	flex-direction: column;
	gap: .42rem;
	padding-top: .3rem;
	font-size: .875rem;
	font-weight: 500;
	color: rgba(255,255,255,.88);
}
.cirrusly-sky-widget__trend {
	font-size: .75rem;
	font-weight: 400;
	font-style: italic;
	color: rgba(255,255,255,.48);
}

/* Footer: summary · station · attribution */
.cirrusly-sky-widget__foot {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .75rem;
	border-top: 1px solid rgba(255,255,255,.12);
	margin-top: 1.1rem;
	padding-top: .7rem;
	font-size: .7rem;
}
.cirrusly-sky-widget__summary {
	color: rgba(255,255,255,.45);
	flex-shrink: 0;
}
.cirrusly-sky-widget__station {
	color: rgba(255,255,255,.38);
	font-size: .7rem;
	font-variant-numeric: tabular-nums;
	letter-spacing: .02em;
}
.cirrusly-sky-widget__attribution {
	color: rgba(255,255,255,.62);
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: rgba(255,255,255,.3);
	white-space: nowrap;
	transition: color .2s ease, text-decoration-color .2s ease;
}
.cirrusly-sky-widget__attribution:hover {
	color: #fff;
	text-decoration-color: rgba(255,255,255,.6);
}

/* States */
.cirrusly-sky-widget.is-loading { opacity: .92; }
.cirrusly-sky-widget.is-error {
	border-color: rgba(214,54,56,.45);
}
.cirrusly-sky-widget.is-error .cirrusly-sky-widget__summary {
	color: rgba(255,255,255,.65);
}

/* ---------- TRUST BAND ---------- */
.cirrusly-trust-band {
	background:
		linear-gradient(180deg, rgba(241,244,250,.92) 0%, rgba(255,255,255,.98) 100%);
	border-top: 1px solid rgba(18,18,63,.08);
	border-bottom: 1px solid rgba(18,18,63,.08);
}
.cirrusly-trust-band__row {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}
.cirrusly-trust-band__item {
	min-height: 100%;
	padding: 1.1rem 1.2rem;
	border: 1px solid rgba(18,18,63,.08);
	border-radius: 16px;
	background: rgba(255,255,255,.78);
	box-shadow: 0 10px 24px rgba(18,18,63,.05);
}
.cirrusly-trust-band__eyebrow {
	margin: 0 0 .45rem;
	font-family: 'Raleway', sans-serif;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cw-primary);
}
.cirrusly-trust-band__copy {
	margin: 0;
	font-size: .95rem;
	line-height: 1.55;
	color: var(--cw-gray-900);
}

/* ---------- SECTION HEADS ---------- */
.cirrusly-section__title {
	font-size: clamp(1.5rem, 1.25rem + 1.25vw, 2rem) !important;
	margin: 0;
}
.cirrusly-section__head { gap: 1rem; align-items: flex-end; margin-bottom: 2.5rem; }

.cirrusly-category-feature {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at top right, rgba(9,69,200,.14), transparent 32%),
		linear-gradient(180deg, rgba(241,244,250,.98) 0%, rgba(255,255,255,.98) 100%) !important;
	border: 1px solid rgba(18,18,63,.08);
	box-shadow: 0 22px 46px rgba(18,18,63,.08);
}
.cirrusly-category-feature__eyebrow {
	margin: 0 0 .55rem;
	font-family: 'Raleway', sans-serif;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.cirrusly-category-feature__title {
	max-width: 14ch;
	font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.75rem);
	line-height: 1.02;
	margin: 0;
}
.cirrusly-category-feature__copy,
.cirrusly-category-feature__meta {
	max-width: 36rem;
	color: var(--cw-gray-700);
	line-height: 1.65;
}
.cirrusly-category-feature__copy { margin: 1rem 0 0; font-size: 1rem; }
.cirrusly-category-feature__meta { margin: .85rem 0 0; font-size: .92rem; }
.cirrusly-category-feature__list {
	margin: 0;
	padding-left: 1.25rem;
	color: var(--cw-gray-900);
}
.cirrusly-category-feature__list li + li { margin-top: .8rem; }
.cirrusly-category-feature__browse {
	margin: 1.1rem 0 0;
	font-size: .9rem;
	font-weight: 600;
}
.cirrusly-category-feature__browse a {
	color: var(--cw-primary-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cirrusly-category-grid {
	align-items: stretch;
}

.cirrusly-home-apparel-wrap {
	max-width: 1200px;
}

.cirrusly-home-apparel {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	border: 1px solid rgba(18,18,63,.08);
	box-shadow: var(--cw-shadow-card);
}
.cirrusly-home-apparel__copy {
	display: grid;
	height: auto;
	flex: 1 1 28rem;
	gap: .65rem;
	max-width: 42rem;
	min-width: 0;
}
.cirrusly-home-apparel__eyebrow,
.cirrusly-homeproof__eyebrow,
.cirrusly-homeproof__label {
	margin: 0;
	font-family: 'Raleway', sans-serif;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.cirrusly-home-apparel__eyebrow {
	color: var(--cw-primary);
}
.cirrusly-home-apparel__title {
	margin: 0;
	font-size: clamp(1.1rem, 1rem + .55vw, 1.45rem);
	line-height: 1.2;
	color: var(--cw-primary-dark);
}
.cirrusly-home-apparel__desc {
	margin: 0;
	font-size: .95rem;
	line-height: 1.6;
	color: var(--cw-gray-700);
}
.cirrusly-home-apparel__cta {
	margin: 0;
	flex: 0 0 auto;
	font-size: .92rem;
	font-weight: 600;
	white-space: nowrap;
}
.cirrusly-home-apparel__cta a {
	color: var(--cw-primary-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cirrusly-homeproof {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at top right, rgba(141,185,255,.12), transparent 32%),
		radial-gradient(circle at bottom left, rgba(255,255,255,.08), transparent 28%),
		var(--cw-primary-dark) !important;
}
.cirrusly-homeproof__head {
	display: grid;
	gap: 1rem;
	max-width: 54rem;
	margin: 0 auto;
}
.cirrusly-homeproof__eyebrow,
.cirrusly-homeproof__label {
	color: rgba(255,255,255,.72);
}
.cirrusly-homeproof__headline {
	margin: 0;
	font-size: clamp(1.7rem, 1.35rem + 1.15vw, 2.45rem);
	line-height: 1.12;
}
.cirrusly-homeproof__lede {
	margin: 0;
	font-size: 1rem;
	line-height: 1.65;
	color: rgba(255,255,255,.78) !important;
}
.cirrusly-homeproof__grid {
	align-items: stretch;
}
.cirrusly-homeproof__card,
.cirrusly-homeproof__facts {
	height: 100%;
	padding: 1.6rem;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 18px;
	background: rgba(255,255,255,.06);
	box-shadow: 0 18px 40px rgba(7,16,48,.18);
	backdrop-filter: blur(12px);
}
.cirrusly-homeproof__quote,
.cirrusly-homeproof__source {
	margin: 0;
}
.cirrusly-homeproof__quote {
	font-size: .98rem;
	line-height: 1.7;
	color: rgba(255,255,255,.94);
}
.cirrusly-homeproof__source {
	margin-top: 1rem;
	color: rgba(255,255,255,.68);
}
.cirrusly-homeproof__list {
	margin: .85rem 0 0;
	padding-left: 1.2rem;
	color: rgba(255,255,255,.9);
}
.cirrusly-homeproof__list li + li {
	margin-top: .85rem;
}

.cirrusly-home-curated {
	border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.cirrusly-home-curated .cirrusly-section__title {
	max-width: 24rem;
	margin-left: auto;
	margin-right: auto;
}

.cirrusly-home-curated__note {
	margin: 1.5rem auto 0;
	max-width: 34rem;
	line-height: 1.6;
}

/* ---------- CATEGORY CARDS (mirrors .cwA-cat) ---------- */
.cirrusly-cat-card {
	display: flex !important;
	flex-direction: column;
	height: 100%;
	text-decoration: none !important;
	color: var(--cw-gray-900) !important;
	background: #fff !important;
	border: 1px solid var(--cw-gray-200);
	transition: var(--cw-ease);
}
.cirrusly-cat-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--cw-shadow-hover);
	border-color: var(--cw-primary);
}
.cirrusly-cat-card__img img {
	display: block; max-height: 100px; width: auto; margin: 0 auto 1rem;
}
.cirrusly-cat-card__eyebrow {
	margin: 0 0 .55rem;
	font-family: 'Raleway', sans-serif;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cw-primary);
}
.cirrusly-cat-card__title {
	font-family: 'Raleway', sans-serif;
	font-size: 1.125rem; font-weight: 700;
	color: var(--cw-primary-dark);
	margin: 0 0 .5rem;
}
.cirrusly-cat-card__desc {
	font-size: .875rem; color: var(--cw-gray-700);
	line-height: 1.5; margin: 0 0 1rem;
}
.cirrusly-cat-card__cta {
	font-size: .875rem; font-weight: 600;
	color: var(--cw-primary); margin: 0;
	margin-top: auto;
}

/* ---------- PRODUCT CARDS ---------- */
.cirrusly-product-card {
	border: 1px solid var(--cw-gray-200);
	transition: var(--cw-ease);
	overflow: hidden;
}
.cirrusly-product-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--cw-shadow-hover);
}

.cirrusly-product-card .wp-block-button__link,
.cirrusly-product-card .add_to_cart_button,
.cirrusly-product-card .single_add_to_cart_button,
.cirrusly-product-card .cirrusly-compare-btn {
	font-size: .85rem;
	padding: .6rem .9rem;
	line-height: 1.1;
	white-space: nowrap;
}

.cirrusly-product-card .wp-block-woocommerce-product-button {
	width: auto;
}

.cirrusly-shop-page .cirrusly-product-card .cirrusly-compare-btn {
	width: auto;
	justify-content: center;
}

.cirrusly-shop-page .wp-block-woocommerce-product-collection .wp-block-button__link,
.cirrusly-shop-page .wp-block-woocommerce-product-collection .add_to_cart_button,
.cirrusly-shop-page .wp-block-woocommerce-product-collection .single_add_to_cart_button {
	width: auto;
	display: inline-flex;
}

/* ---------- STORY / POST CARDS ---------- */
.cirrusly-story-card .wp-block-post-featured-image img {
	border-radius: var(--cw-radius-lg);
	aspect-ratio: 4/3;
	object-fit: cover;
}
.cirrusly-story-card__cat a { color: var(--cw-primary) !important; }

/* ---------- BRANDS WALL ---------- */
.cirrusly-brand-grid { gap: 2.5rem; align-items: center; }
.cirrusly-brand-logo img {
	max-height: 40px; width: auto; opacity: .55;
	filter: grayscale(100%);
	transition: var(--cw-ease);
}
.cirrusly-brand-logo:hover img { opacity: 1; filter: grayscale(0); }

/* ---------- DARK CTA ---------- */
.cirrusly-help-cta {
	background: var(--cw-primary-dark) !important;
	color: #fff !important;
}
.cirrusly-help-cta h2 { color: #fff !important; }
.cirrusly-help-cta p { color: rgba(255,255,255,.85); }

/* ---------- CART · free shipping bar ---------- */
.cirrusly-shipbar {
	max-width: 720px; margin: 0 auto 2rem;
	padding: 1rem 1.25rem;
	background: var(--cw-tertiary);
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-lg);
}

@media (max-width: 900px) {
	.cirrusly-trust-band__row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cirrusly-home-apparel {
		align-items: flex-start;
	}

	.cirrusly-home-apparel__cta {
		width: auto;
	}
}

@media (max-width: 640px) {
	.cirrusly-trust-band__row {
		grid-template-columns: 1fr;
	}

	.cirrusly-category-feature {
		padding: 2rem 1.5rem !important;
	}

	.cirrusly-homeproof__card,
	.cirrusly-homeproof__facts {
		padding: 1.25rem;
	}
}
.cirrusly-shipbar__row {
	display: flex; justify-content: space-between; align-items: baseline;
	font-size: .9rem; margin-bottom: .5rem; color: var(--cw-gray-900);
}
.cirrusly-shipbar__pct { font-weight: 700; color: var(--cw-primary); }
.cirrusly-shipbar__track { height: 6px; background: var(--cw-gray-200); border-radius: var(--cw-radius-pill); overflow: hidden; }
.cirrusly-shipbar__fill {
	height: 100%;
	width: 100%;
	background: linear-gradient(90deg, var(--cw-primary), var(--cw-primary-dark));
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .4s ease;
}

/* ---------- PDP ---------- */
.cirrusly-pdp-sticky { position: sticky; top: 120px; }
.cirrusly-pdp-title  { font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important; }

/* ---------- SPLIT CTA cards (Observatory + Rain Journal) ---------- */
.cirrusly-split-card { min-height: 280px; display: flex; flex-direction: column; justify-content: space-between; gap: 1.5rem; }
.cirrusly-split-card--dark h3 { color: #fff !important; }
.cirrusly-split-card--dark em { color: var(--cw-sun); }
.cirrusly-split-card--light h3 { color: var(--cw-primary-dark) !important; }
.cirrusly-split-card--light em { color: var(--cw-primary); }

/* ---------- FOOTER ---------- */
.cirrusly-footer { background: var(--cw-primary-dark) !important; }
.cirrusly-footer * { color: var(--cw-secondary); }
.cirrusly-footer h4 { color: #fff !important; }

/* ---------- WEATHER LAB ---------- */
.cirrusly-weather-lab-intro {
	text-align: center;
}

.cirrusly-weather-lab__title {
	font-size: clamp(2.3rem, 1.7rem + 2.8vw, 4.5rem) !important;
	line-height: 1.02;
	margin-bottom: 1rem;
}

.cirrusly-weather-lab__legend {
	margin-top: 1.5rem;
	color: var(--cw-gray-700);
}

.cirrusly-weather-lab__legend p {
	margin: 0;
	padding: .85rem 1.1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: 999px;
	background: #fff;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-weather-lab-workspace {
	width: 100%;
	margin-top: 2.25rem;
	padding-inline: 1rem;
}

.cirrusly-weather-lab-workspace__head {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	gap: .55rem;
	text-align: left;
}

.cirrusly-weather-lab-workspace__head h2 {
	margin: 0;
	color: var(--cw-primary-dark);
	font-size: clamp(1.7rem, 1.3rem + 2vw, 3rem);
	line-height: 1.08;
	letter-spacing: -0.03em;
}

.cirrusly-weather-lab-workspace__head p {
	max-width: 70ch;
	margin: 0;
	color: var(--cw-gray-700);
	line-height: 1.6;
}

.cirrusly-weather-lab-workspace__controls {
	max-width: 1200px;
	margin: 1.2rem auto 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .55rem;
	padding: .75rem;
	border: 1px solid rgba(18, 18, 63, .08);
	border-radius: 24px;
	background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,248,250,.98) 100%);
	box-shadow: 0 18px 34px rgba(18, 18, 63, .08);
}

.cirrusly-weather-lab-workspace__controls button {
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--cw-gray-700);
	cursor: pointer;
	font-size: .95rem;
	font-weight: 700;
	padding: .78rem 1rem;
	transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.cirrusly-weather-lab-workspace__controls button:hover,
.cirrusly-weather-lab-workspace__controls button:focus-visible {
	background: var(--cw-tertiary);
	color: var(--cw-primary-dark);
	transform: translateY(-1px);
	outline: none;
}

.cirrusly-weather-lab-workspace__controls button.is-active {
	background: var(--cw-primary-dark);
	color: #fff;
	box-shadow: 0 12px 20px rgba(18, 18, 63, .16);
}

.cirrusly-weather-lab-workspace__grid {
	max-width: 1200px;
	margin: 1rem auto 0;
	display: grid;
	grid-template-columns: minmax(0, 1.7fr) minmax(280px, .85fr);
	gap: 1rem;
	align-items: start;
}

.cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #e6edf3;
	--weather-sky-mid: #c7d1da;
	--weather-sky-bottom: #97a4b1;
	--weather-cloud-opacity: .92;
	--weather-cloud-filter: none;
	--weather-sun-opacity: .72;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .84;
	--weather-vignette-opacity: .28;
	--weather-sky-flare-opacity: .22;
	position: relative;
	min-height: 680px;
	overflow: hidden;
	border-radius: 28px;
	background: linear-gradient(180deg, var(--weather-sky-top) 0%, var(--weather-sky-mid) 54%, var(--weather-sky-bottom) 100%);
	box-shadow: 0 28px 56px rgba(18, 18, 63, .14);
	isolation: isolate;
}

.cirrusly-weather-lab-workspace__stage::before,
.cirrusly-weather-lab-workspace__stage::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.cirrusly-weather-lab-workspace__stage::before {
	background:
		radial-gradient(circle at 50% 14%, rgba(255,255,255,.72) 0%, rgba(255,255,255,.26) 14%, rgba(255,255,255,0) 36%),
		linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,0) 30%, rgba(18,18,63,.08) 100%);
	opacity: var(--weather-sky-flare-opacity);
	z-index: 0;
	transition: opacity .35s ease;
}

.cirrusly-weather-lab-workspace__stage::after {
	opacity: var(--weather-vignette-opacity);
	background: linear-gradient(180deg, rgba(8,16,34,0) 0%, rgba(8,16,34,.10) 58%, rgba(8,16,34,.25) 100%);
	z-index: 4;
}

.cirrusly-weather-lab-workspace__sky {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
}

.cirrusly-weather-lab-workspace__badge,
.cirrusly-weather-lab-workspace__caption {
	position: absolute;
	left: 1rem;
	z-index: 5;
	max-width: calc(100% - 2rem);
}

.cirrusly-weather-lab-workspace__badge {
	top: 1rem;
	display: inline-flex;
	flex-direction: column;
	gap: .18rem;
	padding: .7rem .85rem;
	border: 1px solid rgba(18,18,63,.12);
	border-radius: 16px;
	background: rgba(255,255,255,.78);
	box-shadow: 0 10px 22px rgba(18,18,63,.08);
	color: var(--cw-gray-700);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.cirrusly-weather-lab-workspace__badge span {
	font-size: 1rem;
	letter-spacing: 0;
	text-transform: none;
	color: var(--cw-primary-dark);
}

.cirrusly-weather-lab-workspace__caption {
	bottom: 1rem;
	display: inline-flex;
	align-items: center;
	padding: .65rem .85rem;
	border: 1px solid rgba(18,18,63,.10);
	border-radius: 999px;
	background: rgba(255,255,255,.82);
	color: var(--cw-gray-700);
	font-size: .8rem;
	box-shadow: 0 10px 22px rgba(18,18,63,.08);
}

.cirrusly-weather-lab-workspace__sun,
.cirrusly-weather-lab-workspace__moon,
.cirrusly-weather-lab-workspace__clouds,
.cirrusly-weather-lab-workspace__rain,
.cirrusly-weather-lab-workspace__fog,
.cirrusly-weather-lab-workspace__headlights,
.cirrusly-weather-lab-workspace__lightning,
.cirrusly-weather-lab-workspace__wash {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.cirrusly-weather-lab-workspace__sun {
	inset: auto auto auto;
	top: 88px;
	right: 11%;
	inline-size: 180px;
	block-size: 180px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,252,235,1) 0%, rgba(249,209,62,.96) 34%, rgba(249,209,62,.12) 62%, rgba(249,209,62,0) 74%);
	box-shadow: 0 0 86px rgba(249,209,62,.40);
	opacity: var(--weather-sun-opacity);
	transition: opacity .35s ease, transform .35s ease;
}

.cirrusly-weather-lab-workspace__moon {
	inset: auto auto auto;
	top: 92px;
	right: 11%;
	inline-size: 126px;
	block-size: 126px;
	border-radius: 50%;
	overflow: hidden;
	background:
		radial-gradient(circle at 34% 30%, rgba(255,255,255,.96) 0 10%, rgba(244,246,252,.92) 10% 30%, rgba(216,222,234,.94) 48%, rgba(171,180,198,.98) 74%, rgba(129,140,162,1) 100%);
	box-shadow:
		0 0 34px rgba(233,239,255,.16),
		6px -4px 14px rgba(255,255,255,.18),
		inset -16px 14px 24px rgba(255,255,255,.12),
		inset 22px -26px 38px rgba(12,18,36,.72);
	opacity: var(--weather-moon-opacity);
	transition: opacity .35s ease, transform .35s ease;
}

.cirrusly-weather-lab-workspace__moon::before,
.cirrusly-weather-lab-workspace__moon::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
}

.cirrusly-weather-lab-workspace__moon::before {
	background:
		radial-gradient(circle at 28% 24%, rgba(255,255,255,.18) 0 4%, rgba(255,255,255,0) 5%),
		radial-gradient(circle at 62% 28%, rgba(82,91,112,.28) 0 7%, rgba(82,91,112,0) 8%),
		radial-gradient(circle at 44% 44%, rgba(102,112,133,.22) 0 9%, rgba(102,112,133,0) 10%),
		radial-gradient(circle at 72% 48%, rgba(72,83,104,.22) 0 6%, rgba(72,83,104,0) 7%),
		radial-gradient(circle at 32% 58%, rgba(96,106,128,.18) 0 8%, rgba(96,106,128,0) 9%),
		radial-gradient(circle at 60% 68%, rgba(84,94,116,.24) 0 10%, rgba(84,94,116,0) 11%),
		radial-gradient(circle at 40% 78%, rgba(255,255,255,.12) 0 5%, rgba(255,255,255,0) 6%),
		radial-gradient(circle at 78% 76%, rgba(88,98,119,.18) 0 7%, rgba(88,98,119,0) 8%);
	mix-blend-mode: multiply;
	opacity: .9;
}

.cirrusly-weather-lab-workspace__moon::after {
	background:
		radial-gradient(circle at 24% 22%, rgba(255,255,255,.22) 0 14%, rgba(255,255,255,0) 34%),
		radial-gradient(circle at 70% 58%, rgba(8,12,24,.46) 0 34%, rgba(8,12,24,0) 58%),
		linear-gradient(135deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 38%, rgba(8,12,24,.32) 100%);
}

.cirrusly-weather-lab-workspace__clouds {
	z-index: 1;
	opacity: var(--weather-cloud-opacity);
	filter: var(--weather-cloud-filter);
	transition: opacity .35s ease, filter .35s ease;
}

.cirrusly-weather-lab-workspace__clouds > div {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 500px;
	background-repeat: repeat-x;
	will-change: background-position;
}

.cirrusly-weather-lab-workspace__clouds .clouds-1 {
	background-image: url("../images/weather-lab/clouds_2.png");
	animation: cirrusly-weather-lab-clouds-loop-1 28s linear infinite;
	opacity: .92;
}

.cirrusly-weather-lab-workspace__clouds .clouds-2 {
	background-image: url("../images/weather-lab/clouds_1.png");
	animation: cirrusly-weather-lab-clouds-loop-2 22s linear infinite;
	opacity: .84;
}

.cirrusly-weather-lab-workspace__clouds .clouds-3 {
	background-image: url("../images/weather-lab/clouds_3.png");
	animation: cirrusly-weather-lab-clouds-loop-3 24s linear infinite;
	opacity: .76;
}

.cirrusly-weather-lab-workspace__rain {
	z-index: 2;
	opacity: 0;
	inset: -6% -4% -2% -8%;
	--weather-rain-lean: 16deg;
	background-repeat: repeat;
	background-image: var(--weather-rain-drop-strong);
	background-size: 18px 36px;
	background-position: -8px -12px;
	mask-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.42) 14%, rgba(0,0,0,.92) 32%, rgba(0,0,0,1) 78%, rgba(0,0,0,.22) 100%);
	-webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.42) 14%, rgba(0,0,0,.92) 32%, rgba(0,0,0,1) 78%, rgba(0,0,0,.22) 100%);
	mix-blend-mode: screen;
	filter: blur(.18px) saturate(1.02);
	transform: rotate(var(--weather-rain-lean));
	transform-origin: center;
	transition: opacity .35s ease, filter .35s ease;
	will-change: background-position, transform, opacity;
}

.cirrusly-weather-lab-workspace__rain--1 {
	animation: cirrusly-weather-lab-rain-1 1.05s linear infinite;
	opacity: 0;
}

.cirrusly-weather-lab-workspace__rain--2 {
	--weather-rain-lean: 20deg;
	background-image: var(--weather-rain-drop-soft);
	background-size: 28px 54px;
	background-position: 4px 6px;
	animation: cirrusly-weather-lab-rain-2 .86s linear infinite;
	opacity: 0;
}

.cirrusly-weather-lab-workspace__fog {
	z-index: 3;
	opacity: 0;
	inset: -6% -10% -6%;
	background: var(--weather-fog-veil);
	backdrop-filter: blur(12px) saturate(.82);
	-webkit-backdrop-filter: blur(12px) saturate(.82);
	animation: cirrusly-weather-lab-fog 26s ease-in-out infinite;
	transition: opacity .35s ease, backdrop-filter .35s ease;
}

.cirrusly-weather-lab-workspace__headlights {
	z-index: 4;
	opacity: 0;
	inset: auto;
	left: 50%;
	bottom: 16px;
	width: min(78%, 760px);
	height: 168px;
	transform: translateX(-50%);
	background:
		radial-gradient(ellipse 34% 56% at 34% 78%, rgba(255,248,224,.9) 0%, rgba(255,238,196,.58) 18%, rgba(255,238,196,.22) 34%, rgba(255,238,196,0) 62%),
		radial-gradient(ellipse 34% 56% at 66% 78%, rgba(255,248,224,.9) 0%, rgba(255,238,196,.58) 18%, rgba(255,238,196,.22) 34%, rgba(255,238,196,0) 62%),
		radial-gradient(ellipse 70% 24% at 50% 100%, rgba(255,238,196,.28) 0%, rgba(255,238,196,0) 74%);
	filter: blur(16px);
	mix-blend-mode: screen;
	transition: opacity .35s ease;
}

.cirrusly-weather-lab-workspace__lightning {
	z-index: 0;
	opacity: 0;
	inset: auto;
	left: 26%;
	top: 36px;
	width: 56%;
	height: 220px;
	background:
		radial-gradient(ellipse at 48% 40%, rgba(255,255,255,.58) 0 10%, rgba(255,255,255,.26) 20%, rgba(255,248,207,.10) 34%, rgba(255,248,207,0) 56%),
		radial-gradient(ellipse at 30% 28%, rgba(255,255,255,.30) 0 8%, rgba(255,255,255,.12) 17%, rgba(255,255,255,0) 42%),
		radial-gradient(ellipse at 68% 34%, rgba(255,255,255,.26) 0 8%, rgba(255,255,255,.10) 16%, rgba(255,255,255,0) 42%),
		radial-gradient(ellipse at 58% 58%, rgba(255,255,255,.18) 0 7%, rgba(255,255,255,.06) 15%, rgba(255,255,255,0) 44%),
		radial-gradient(ellipse at 24% 52%, rgba(255,255,255,.14) 0 7%, rgba(255,255,255,.04) 14%, rgba(255,255,255,0) 42%),
		radial-gradient(ellipse at 78% 22%, rgba(255,255,255,.22) 0 8%, rgba(255,255,255,.08) 15%, rgba(255,255,255,0) 40%);
	clip-path: ellipse(58% 36% at 50% 46%);
	filter: blur(20px) saturate(1.08);
	backdrop-filter: brightness(1.3) saturate(1.1);
	-webkit-backdrop-filter: brightness(1.3) saturate(1.1);
	box-shadow: 0 0 120px rgba(255,255,255,.14), 0 0 220px rgba(255,248,207,.07);
	mix-blend-mode: screen;
}

.cirrusly-weather-lab-workspace__wash {
	opacity: var(--weather-wash-opacity);
	background: linear-gradient(180deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,0) 42%, rgba(9,14,30,.12) 100%);
	mix-blend-mode: soft-light;
	z-index: 2;
	transition: opacity .35s ease;
}

.cirrusly-weather-lab-workspace__notes {
	align-self: stretch;
	padding: 1.3rem 1.3rem 1.45rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: 24px;
	background: rgba(255,255,255,.92);
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-weather-lab-workspace__notes-kicker {
	margin: 0 0 .45rem;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cw-gray-500);
}

.cirrusly-weather-lab-workspace__notes h3 {
	margin: 0 0 .85rem;
	font-size: clamp(1.25rem, 1rem + 1vw, 1.65rem);
	line-height: 1.18;
	color: var(--cw-primary-dark);
}

.cirrusly-weather-lab-workspace__notes ul {
	margin: 0;
	padding-left: 1.15rem;
	color: var(--cw-gray-700);
	line-height: 1.6;
}

.cirrusly-weather-lab-workspace__notes li + li {
	margin-top: .75rem;
}

.cirrusly-weather-lab-workspace[data-weather-state="sunny"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #0e2a73;
	--weather-sky-mid: #1c63e0;
	--weather-sky-bottom: #4a8ef7;
	--weather-sun-opacity: 1;
	--weather-cloud-opacity: 0;
	--weather-moon-opacity: 0;
}

.cirrusly-weather-lab-workspace[data-weather-state="clear"] .cirrusly-weather-lab-workspace__stage {
	--weather-cloud-opacity: 0;
}

.cirrusly-weather-lab-workspace[data-weather-state="fair"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #143178;
	--weather-sky-mid: #2169e6;
	--weather-sky-bottom: #5aa0fb;
	--weather-sun-opacity: 1;
	--weather-cloud-opacity: .22;
	--weather-moon-opacity: 0;
	--weather-sky-flare-opacity: .32;
}

.cirrusly-weather-lab-workspace[data-weather-state="haze"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #2a3a74;
	--weather-sky-mid: #4f6db0;
	--weather-sky-bottom: #c2b08c;
	--weather-sun-opacity: .9;
	--weather-cloud-opacity: .12;
	--weather-moon-opacity: 0;
	--weather-sky-flare-opacity: .5;
}

.cirrusly-weather-lab-workspace[data-weather-state="haze"] .cirrusly-weather-lab-workspace__sun {
	filter: blur(7px);
	box-shadow: 0 0 120px 44px rgba(255,226,150,.5);
}

.cirrusly-weather-lab-workspace[data-weather-state="haze"] .cirrusly-weather-lab-workspace__wash {
	opacity: 1;
	background: linear-gradient(180deg, rgba(255,228,170,.24) 0%, rgba(255,214,150,.12) 45%, rgba(255,201,135,.18) 100%);
}

.cirrusly-weather-lab-workspace[data-weather-state="partly-cloudy"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #112348;
	--weather-sky-mid: #214fb8;
	--weather-sky-bottom: #3072d8;
	--weather-sun-opacity: .9;
	--weather-cloud-opacity: 1;
}

.cirrusly-weather-lab-workspace[data-weather-state="mostly-clear"] .cirrusly-weather-lab-workspace__stage {
	--weather-cloud-opacity: 1;
}

.cirrusly-weather-lab-workspace[data-weather-state="mostly-clear"] .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	display: none;
}

.cirrusly-weather-lab-workspace:is([data-weather-state="partly-cloudy"], [data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-1,
.cirrusly-weather-lab-workspace:is([data-weather-state="partly-cloudy"], [data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-2,
.cirrusly-weather-lab-workspace:is([data-weather-state="partly-cloudy"], [data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	right: auto;
	left: 100%;
	background-image: url("../images/weather-lab/clouds_3.png");
	background-repeat: no-repeat;
	background-size: 100% 100%;
	animation-name: cirrusly-hero-cloud-cross;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}

.cirrusly-weather-lab-workspace:is([data-weather-state="partly-cloudy"], [data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-1 {
	top: 6%;
	width: 880px;
	height: 190px;
	animation-duration: 97s;
	animation-delay: 0s;
	opacity: .85;
}

.cirrusly-weather-lab-workspace:is([data-weather-state="partly-cloudy"], [data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	top: 32%;
	width: 1000px;
	height: 216px;
	animation-duration: 131s;
	animation-delay: -53s;
	opacity: .7;
}

.cirrusly-weather-lab-workspace:is([data-weather-state="partly-cloudy"], [data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	top: 0;
	width: 760px;
	height: 164px;
	animation-duration: 113s;
	animation-delay: -89s;
	opacity: .8;
}

.cirrusly-weather-lab-workspace[data-weather-state="mostly-cloudy"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #18305f;
	--weather-sky-mid: #2a4d8c;
	--weather-sky-bottom: #4f79b8;
	--weather-sun-opacity: .22;
	--weather-cloud-opacity: .95;
}

.cirrusly-weather-lab-workspace[data-weather-state="mostly-cloudy"] .cirrusly-weather-lab-workspace__clouds > div {
	height: 75%;
}

.cirrusly-weather-lab-workspace[data-weather-state="overcast"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #d3dbe3;
	--weather-sky-mid: #aebac6;
	--weather-sky-bottom: #7c8998;
	--weather-cloud-opacity: .98;
	--weather-cloud-filter: saturate(.66) brightness(.95);
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .94;
	--weather-vignette-opacity: .36;
	--weather-sky-flare-opacity: .02;
}

.cirrusly-weather-lab-workspace[data-weather-state="rain"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #95a4b5;
	--weather-sky-mid: #6e7e91;
	--weather-sky-bottom: #425164;
	--weather-cloud-opacity: .96;
	--weather-cloud-filter: saturate(.64) brightness(.9);
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .68;
	--weather-vignette-opacity: .46;
	--weather-sky-flare-opacity: .04;
}

.cirrusly-weather-lab-workspace[data-weather-state="rain"] .cirrusly-weather-lab-workspace__rain--1 {
	opacity: .88;
	animation-duration: 1.05s;
}

.cirrusly-weather-lab-workspace[data-weather-state="rain"] .cirrusly-weather-lab-workspace__rain--2 {
	opacity: .55;
	animation-duration: .86s;
}

.cirrusly-weather-lab-workspace[data-weather-state="snow"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #dbe4ee;
	--weather-sky-mid: #b7c5d5;
	--weather-sky-bottom: #7b8da3;
	--weather-cloud-opacity: .94;
	--weather-cloud-filter: saturate(.58) brightness(.98);
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .86;
	--weather-vignette-opacity: .28;
	--weather-sky-flare-opacity: .02;
}

.cirrusly-weather-lab-workspace[data-weather-state="snow"] .cirrusly-weather-lab-workspace__clouds .clouds-1 {
	animation-duration: 36s;
}

.cirrusly-weather-lab-workspace[data-weather-state="snow"] .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	animation-duration: 30s;
}

.cirrusly-weather-lab-workspace[data-weather-state="snow"] .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	animation-duration: 32s;
}

.cirrusly-weather-lab-workspace[data-weather-state="snow"] .cirrusly-weather-lab-workspace__rain {
	filter: blur(.12px) saturate(1.02);
	transform: rotate(0deg);
}

.cirrusly-weather-lab-workspace[data-weather-state="snow"] .cirrusly-weather-lab-workspace__rain--1 {
	opacity: .9;
	background-image: var(--weather-snowflake-tile);
	background-size: 76px 76px;
	background-position: 0 -10px;
	animation: cirrusly-weather-lab-snow-1 9.25s linear infinite;
}

.cirrusly-weather-lab-workspace[data-weather-state="snow"] .cirrusly-weather-lab-workspace__rain--2 {
	opacity: .62;
	background-image: var(--weather-snowflake-tile);
	background-size: 52px 52px;
	background-position: 18px 10px;
	animation: cirrusly-weather-lab-snow-2 6.75s linear infinite;
}

.cirrusly-weather-lab-workspace[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #c7d1de;
	--weather-sky-mid: #9eacc0;
	--weather-sky-bottom: #63768b;
	--weather-cloud-opacity: .96;
	--weather-cloud-filter: saturate(.56) brightness(.94);
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .74;
	--weather-vignette-opacity: .4;
	--weather-sky-flare-opacity: .02;
}

.cirrusly-weather-lab-workspace[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__clouds .clouds-1 {
	animation-duration: 32s;
}

.cirrusly-weather-lab-workspace[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	animation-duration: 26s;
}

.cirrusly-weather-lab-workspace[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	animation-duration: 28s;
}

.cirrusly-weather-lab-workspace[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__rain {
	filter: blur(.14px) saturate(1.02);
}

.cirrusly-weather-lab-workspace[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__rain--1 {
	opacity: .78;
	animation-duration: 1.25s;
}

.cirrusly-weather-lab-workspace[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__rain--2 {
	opacity: .6;
	background-image: var(--weather-snowflake-tile);
	background-size: 58px 58px;
	background-position: 16px 18px;
	transform: rotate(0deg);
	animation: cirrusly-weather-lab-snow-2 8.9s linear infinite;
}

.cirrusly-weather-lab-workspace[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #c8d2e0;
	--weather-sky-mid: #9dabbf;
	--weather-sky-bottom: #607184;
	--weather-cloud-opacity: .95;
	--weather-cloud-filter: saturate(.54) brightness(.95);
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .78;
	--weather-vignette-opacity: .34;
	--weather-sky-flare-opacity: .02;
}

.cirrusly-weather-lab-workspace[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__clouds .clouds-1 {
	animation-duration: 34s;
}

.cirrusly-weather-lab-workspace[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	animation-duration: 28s;
}

.cirrusly-weather-lab-workspace[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	animation-duration: 30s;
}

.cirrusly-weather-lab-workspace[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__rain {
	filter: blur(.1px) saturate(1.02);
	transform: rotate(0deg);
}

.cirrusly-weather-lab-workspace[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__rain--1 {
	opacity: .84;
	background-image: var(--weather-snowflake-tile);
	background-size: 66px 66px;
	background-position: -4px -10px;
	animation: cirrusly-weather-lab-sleet-1 5.4s linear infinite;
}

.cirrusly-weather-lab-workspace[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__rain--2 {
	opacity: .58;
	background-image: var(--weather-snowflake-tile);
	background-size: 48px 48px;
	background-position: 18px 8px;
	animation: cirrusly-weather-lab-sleet-2 4.4s linear infinite;
}

.cirrusly-weather-lab-workspace[data-weather-state="fog"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #dce4ea;
	--weather-sky-mid: #bbc6cf;
	--weather-sky-bottom: #90a0ae;
	--weather-cloud-opacity: .88;
	--weather-cloud-filter: saturate(.66) brightness(1);
	--weather-sun-opacity: .03;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: 1;
	--weather-vignette-opacity: .2;
	--weather-sky-flare-opacity: .06;
}

.cirrusly-weather-lab-workspace[data-weather-state="fog"] .cirrusly-weather-lab-workspace__fog {
	opacity: .96;
	animation-duration: 26s;
}

.cirrusly-weather-lab-workspace[data-weather-state="fog"] .cirrusly-weather-lab-workspace__headlights {
	opacity: .92;
}

.cirrusly-weather-lab-workspace[data-weather-state="storm"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #505c6e;
	--weather-sky-mid: #2f3948;
	--weather-sky-bottom: #131923;
	--weather-cloud-opacity: 1;
	--weather-cloud-filter: saturate(.62) brightness(.86);
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .62;
	--weather-vignette-opacity: .62;
	--weather-sky-flare-opacity: .04;
	--weather-rain-drop-strong: radial-gradient(ellipse 1.25px 8px at 50% 42%, rgba(255,255,255,.98) 0%, rgba(255,255,255,.88) 34%, rgba(255,255,255,.34) 72%, rgba(255,255,255,0) 80%);
	--weather-rain-drop-soft: radial-gradient(ellipse 1px 6px at 50% 46%, rgba(208,227,246,.84) 0%, rgba(208,227,246,.58) 34%, rgba(208,227,246,.16) 70%, rgba(208,227,246,0) 78%);
}

.cirrusly-weather-lab-workspace[data-weather-state="storm"] .cirrusly-weather-lab-workspace__clouds .clouds-1 {
	animation-duration: 12s;
}

.cirrusly-weather-lab-workspace[data-weather-state="storm"] .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	animation-duration: 10s;
}

.cirrusly-weather-lab-workspace[data-weather-state="storm"] .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	animation-duration: 14s;
}

.cirrusly-weather-lab-workspace[data-weather-state="storm"] .cirrusly-weather-lab-workspace__rain--1 {
	opacity: .98;
	filter: blur(.08px) saturate(1.08);
	animation-duration: .56s;
}

.cirrusly-weather-lab-workspace[data-weather-state="storm"] .cirrusly-weather-lab-workspace__rain--2 {
	opacity: .82;
	filter: blur(.08px) saturate(1.08);
	animation-duration: .4s;
}

.cirrusly-weather-lab-workspace[data-weather-state="storm"] .cirrusly-weather-lab-workspace__lightning {
	opacity: .78;
	animation: cirrusly-weather-lab-lightning 8.5s ease-in-out infinite;
}

.cirrusly-weather-lab-workspace[data-weather-state="night"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #040812;
	--weather-sky-mid: #081224;
	--weather-sky-bottom: #111c33;
	--weather-cloud-opacity: .68;
	--weather-cloud-filter: saturate(.5) brightness(.72);
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 0;
	--weather-wash-opacity: .34;
	--weather-vignette-opacity: .68;
	--weather-sky-flare-opacity: 0;
}

.cirrusly-weather-lab-workspace[data-weather-state="night"] .cirrusly-weather-lab-workspace__clouds .clouds-1 {
	animation-duration: 56s;
}

.cirrusly-weather-lab-workspace[data-weather-state="night"] .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	animation-duration: 48s;
}

.cirrusly-weather-lab-workspace[data-weather-state="night"] .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	animation-duration: 52s;
}

@keyframes cirrusly-weather-lab-clouds-loop-1 {
	to { background-position: -1000px 0; }
}

@keyframes cirrusly-weather-lab-clouds-loop-2 {
	to { background-position: -1000px 0; }
}

@keyframes cirrusly-weather-lab-clouds-loop-3 {
	to { background-position: -1579px 0; }
}

@keyframes cirrusly-weather-lab-rain-1 {
	0% { background-position: -8px -12px; }
	100% { background-position: -8px 24px; }
}

@keyframes cirrusly-weather-lab-rain-2 {
	0% { background-position: 4px 6px; }
	100% { background-position: 4px 60px; }
}

@keyframes cirrusly-weather-lab-snow-1 {
	0% { background-position: 0 -12px; }
	100% { background-position: 12px 92px; }
}

@keyframes cirrusly-weather-lab-snow-2 {
	0% { background-position: 20px 16px; }
	100% { background-position: -8px 110px; }
}

@keyframes cirrusly-weather-lab-sleet-1 {
	0% { background-position: -4px -10px; }
	100% { background-position: -4px 84px; }
}

@keyframes cirrusly-weather-lab-sleet-2 {
	0% { background-position: 18px 8px; }
	100% { background-position: 18px 96px; }
}

@keyframes cirrusly-weather-lab-fog {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(-14px); }
}

@keyframes cirrusly-weather-lab-lightning {
	0%, 78%, 100% { opacity: 0; }
	80% { opacity: .05; }
	81% { opacity: .12; }
	82% { opacity: .30; }
	83% { opacity: .16; }
	84% { opacity: .48; }
	85% { opacity: .26; }
	86% { opacity: .10; }
	87% { opacity: 0; }
}

.cirrusly-weather-lab-preview {
	--cirrusly-lab-width: min(100vw - 2rem, 100%);
	--cirrusly-lab-height: 680px;
	--cirrusly-lab-overlay: min(420px, calc(100% - 2rem));
	margin-top: 1.5rem;
}

.cirrusly-weather-lab-preview input[type="radio"] {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.cirrusly-weather-lab__toolbar {
	position: sticky;
	top: 1rem;
	z-index: 8;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0 auto 1.5rem;
	padding: .45rem;
	border: 1px solid rgba(18,18,63,.12);
	border-radius: 999px;
	background: rgba(255,255,255,.92);
	backdrop-filter: blur(12px);
	box-shadow: 0 14px 30px rgba(18,18,63,.12);
}

.cirrusly-weather-lab__toolbar-label {
	padding-inline: .85rem .5rem;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cw-gray-700);
}

.cirrusly-weather-lab__toolbar label {
	cursor: pointer;
	padding: .75rem 1.1rem;
	border-radius: 999px;
	font-size: .92rem;
	font-weight: 700;
	color: var(--cw-gray-700);
	transition: background-color .25s ease, color .25s ease, transform .25s ease;
}

#cirrusly-weather-lab-desktop:checked ~ .cirrusly-weather-lab__toolbar label[for="cirrusly-weather-lab-desktop"],
#cirrusly-weather-lab-mobile:checked ~ .cirrusly-weather-lab__toolbar label[for="cirrusly-weather-lab-mobile"] {
	background: var(--cw-primary-dark);
	color: #fff;
}

.cirrusly-weather-lab-stack {
	display: grid;
	gap: 1.5rem;
}

.cirrusly-weather-sim {
	position: relative;
	inline-size: var(--cirrusly-lab-width);
	min-height: var(--cirrusly-lab-height);
	margin: 0 auto;
	overflow: hidden;
	border-radius: 0;
	background: linear-gradient(180deg, #4ea4ff 0%, #1c59bc 58%, #153267 100%);
	box-shadow: 0 26px 50px rgba(18,18,63,.16);
}

.cirrusly-weather-sim__sky,
.cirrusly-weather-sim__sky::before,
.cirrusly-weather-sim__sky::after {
	position: absolute;
	inset: 0;
}

.cirrusly-weather-sim__sky {
	overflow: hidden;
	background:
		radial-gradient(circle at 74% 18%, rgba(255,244,186,.92) 0%, rgba(249,209,62,.46) 10%, rgba(249,209,62,0) 22%),
		linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,0) 28%),
		linear-gradient(180deg, #6ab9ff 0%, #2d6fda 58%, #173566 100%);
}

.cirrusly-weather-sim__sky::before {
	content: "";
	background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(6,16,44,.18) 100%);
}

.cirrusly-weather-sim__sky::after {
	content: "";
	opacity: 0;
	background: linear-gradient(180deg, rgba(15,25,54,.15) 0%, rgba(15,25,54,.35) 100%);
	transition: opacity .3s ease;
}

.cirrusly-weather-sim__body {
	position: absolute;
	left: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	z-index: 6;
	inline-size: var(--cirrusly-lab-overlay);
	padding: 1.3rem 1.45rem 1.55rem;
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 24px;
	background: rgba(8,18,48,.58);
	backdrop-filter: blur(12px);
	color: #fff;
	box-shadow: 0 20px 40px rgba(8,18,48,.22);
}

.cirrusly-weather-sim__body h2 {
	margin: .3rem 0 .55rem;
	color: #fff !important;
	font-size: clamp(1.5rem, 1.15rem + 1.2vw, 2.1rem);
}

.cirrusly-weather-sim__body p {
	margin: 0;
	color: rgba(255,255,255,.84);
	line-height: 1.55;
}

.cirrusly-weather-sim__meta {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255,255,255,.7);
}

.cirrusly-weather-sim__sun,
.cirrusly-weather-sim__moon,
.cirrusly-weather-sim__clouddeck,
.cirrusly-weather-sim__haze,
.cirrusly-weather-sim__fog,
.cirrusly-weather-sim__beam,
.cirrusly-weather-sim__precip,
.cirrusly-weather-sim__lightning {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.cirrusly-weather-sim__sun {
	inset: auto auto auto;
	top: 70px;
	right: 10%;
	inline-size: 170px;
	block-size: 170px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,250,225,1) 0%, rgba(249,209,62,.96) 38%, rgba(249,209,62,.12) 64%, rgba(249,209,62,0) 74%);
	filter: blur(1px);
	box-shadow: 0 0 80px rgba(249,209,62,.46);
	animation: cirrusly-weather-pulse 6.5s ease-in-out infinite;
}

.cirrusly-weather-sim__moon {
	inset: auto auto auto;
	top: 74px;
	right: 10%;
	inline-size: 124px;
	block-size: 124px;
	border-radius: 50%;
	opacity: 0;
	background:
		radial-gradient(circle at 36% 34%, rgba(255,255,255,.98) 0 18%, rgba(241,245,255,.94) 18% 42%, rgba(255,255,255,0) 44%),
		radial-gradient(circle at 56% 44%, rgba(9,17,38,1) 0 34%, rgba(9,17,38,0) 35%);
	box-shadow: 0 0 34px rgba(233,239,255,.2);
}

.cirrusly-weather-sim__clouddeck {
	opacity: 0;
	transform: translate3d(0, 0, 0);
	will-change: transform, opacity;
}

.cirrusly-weather-sim__clouddeck::before,
.cirrusly-weather-sim__clouddeck::after {
	content: "";
	position: absolute;
	border-radius: 999px;
	background:
		radial-gradient(circle at 30% 35%, rgba(255,255,255,.94) 0 24%, rgba(247,250,255,.94) 24% 55%, rgba(255,255,255,0) 57%);
	filter: blur(1px);
}

.cirrusly-weather-sim__clouddeck--1::before {
	top: 18px;
	left: -2%;
	width: 44%;
	height: 140px;
	box-shadow: 100px 18px 0 16px rgba(245,248,255,.96), 205px -6px 0 26px rgba(245,248,255,.92), 312px 26px 0 4px rgba(245,248,255,.88);
}

.cirrusly-weather-sim__clouddeck--2::before {
	top: 42px;
	right: -4%;
	width: 46%;
	height: 160px;
	box-shadow: -112px 22px 0 18px rgba(239,244,255,.95), -238px -10px 0 30px rgba(239,244,255,.92), -344px 26px 0 8px rgba(239,244,255,.88);
}

.cirrusly-weather-sim__clouddeck--3::before {
	top: 102px;
	left: -8%;
	width: 60%;
	height: 190px;
	box-shadow: 140px 24px 0 22px rgba(229,236,250,.94), 284px -12px 0 36px rgba(229,236,250,.9), 448px 34px 0 16px rgba(229,236,250,.86);
}

.cirrusly-weather-sim__clouddeck--4::before {
	top: 152px;
	right: -10%;
	width: 68%;
	height: 220px;
	box-shadow: -150px 18px 0 26px rgba(214,224,242,.94), -320px -14px 0 42px rgba(214,224,242,.9), -480px 36px 0 22px rgba(214,224,242,.86);
}

.cirrusly-weather-sim__clouddeck--5::before {
	top: 222px;
	left: -12%;
	width: 84%;
	height: 240px;
	box-shadow: 220px 10px 0 34px rgba(196,209,232,.92), 450px -16px 0 50px rgba(196,209,232,.88), 650px 44px 0 26px rgba(196,209,232,.84);
}

.cirrusly-weather-sim__clouddeck--1 { animation: cirrusly-weather-cloud-drift 42s linear infinite; }
.cirrusly-weather-sim__clouddeck--2 { animation: cirrusly-weather-cloud-drift-reverse 48s linear infinite; }
.cirrusly-weather-sim__clouddeck--3 { animation: cirrusly-weather-cloud-drift 55s linear infinite; }
.cirrusly-weather-sim__clouddeck--4 { animation: cirrusly-weather-cloud-drift-reverse 60s linear infinite; }
.cirrusly-weather-sim__clouddeck--5 { animation: cirrusly-weather-cloud-drift 70s linear infinite; }

.cirrusly-weather-sim__haze {
	opacity: 0;
	background: linear-gradient(180deg, rgba(255,235,190,.18) 0%, rgba(241,217,167,.1) 48%, rgba(255,255,255,0) 100%);
}

.cirrusly-weather-sim__fog {
	opacity: 0;
	background:
		radial-gradient(circle at 24% 72%, rgba(255,255,255,.26), transparent 22%),
		radial-gradient(circle at 72% 74%, rgba(255,255,255,.24), transparent 24%),
		linear-gradient(180deg, rgba(228,236,246,.12) 0%, rgba(218,228,238,.46) 60%, rgba(208,220,232,.62) 100%);
	animation: cirrusly-weather-fog-shift 16s ease-in-out infinite;
}

.cirrusly-weather-sim__beam {
	opacity: 0;
	inset: auto;
	bottom: 110px;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,248,214,.4) 0%, rgba(255,248,214,.14) 36%, rgba(255,248,214,0) 70%);
	filter: blur(4px);
}

.cirrusly-weather-sim__beam--1 { left: 22%; }
.cirrusly-weather-sim__beam--2 { right: 22%; }

.cirrusly-weather-sim__precip {
	opacity: 0;
	top: -35%;
	bottom: -10%;
	left: -8%;
	right: -8%;
	will-change: transform, opacity;
}

.cirrusly-weather-sim__precip--rain-a,
.cirrusly-weather-sim__precip--rain-b {
	background-image: repeating-linear-gradient(112deg, rgba(255,255,255,0) 0 13px, rgba(200,225,255,.9) 13px 15px, rgba(255,255,255,0) 15px 28px);
}

.cirrusly-weather-sim__precip--rain-a {
	background-size: 360px 280px;
	animation: cirrusly-weather-rain-sheet 1.15s linear infinite;
}

.cirrusly-weather-sim__precip--rain-b {
	background-size: 260px 220px;
	opacity: 0;
	animation: cirrusly-weather-rain-sheet-fast .82s linear infinite;
}

.cirrusly-weather-sim__precip--snow-a,
.cirrusly-weather-sim__precip--snow-b {
	background-repeat: repeat;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.95)' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M24 8v32M10 16l28 16M10 32l28-16'/%3E%3Cpath d='M18 12l6 6 6-6M18 36l6-6 6 6M13 14l8 1-2 7M35 34l-8-1 2-7M13 34l8-1-2-7M35 14l-8 1 2 7'/%3E%3C/g%3E%3C/svg%3E");
}

.cirrusly-weather-sim__precip--snow-a {
	background-size: 76px 76px;
	animation: cirrusly-weather-snowfall 14s linear infinite;
}

.cirrusly-weather-sim__precip--snow-b {
	background-size: 54px 54px;
	opacity: 0;
	animation: cirrusly-weather-snowfall-fast 9.5s linear infinite;
}

.cirrusly-weather-sim__precip--ice {
	background-image: radial-gradient(circle, rgba(225,240,255,.95) 0 18%, rgba(225,240,255,0) 20%);
	background-size: 26px 26px;
	animation: cirrusly-weather-ice-fall 1.5s linear infinite;
}

.cirrusly-weather-sim__lightning {
	opacity: 0;
	left: 58%;
	top: 92px;
	width: 100px;
	height: 220px;
	background: linear-gradient(145deg, rgba(255,255,255,0) 0 34%, rgba(255,247,206,.98) 34% 46%, rgba(255,255,255,0) 46% 100%);
	clip-path: polygon(44% 0%, 66% 0%, 50% 36%, 68% 36%, 34% 100%, 43% 58%, 24% 58%);
	filter: drop-shadow(0 0 18px rgba(255,242,179,.9));
}

.cirrusly-weather-sim.is-night .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-fog .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-rain .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-storm .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-snow .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__sun {
	opacity: 0;
}

.cirrusly-weather-sim.is-night .cirrusly-weather-sim__moon {
	opacity: 1;
}

.cirrusly-weather-sim.is-clear .cirrusly-weather-sim__clouddeck { opacity: 0; }

.cirrusly-weather-sim.is-mostly-clear .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-mostly-clear .cirrusly-weather-sim__clouddeck--2 {
	opacity: .92;
}

.cirrusly-weather-sim.is-partly-cloudy .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-partly-cloudy .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-partly-cloudy .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-fair .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-fair .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-fair .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-haze .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-haze .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-haze .cirrusly-weather-sim__clouddeck--3 {
	opacity: .94;
}

.cirrusly-weather-sim.is-mostly-cloudy .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-mostly-cloudy .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-mostly-cloudy .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-mostly-cloudy .cirrusly-weather-sim__clouddeck--4,
.cirrusly-weather-sim.is-rain .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-rain .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-rain .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-rain .cirrusly-weather-sim__clouddeck--4,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__clouddeck--4,
.cirrusly-weather-sim.is-snow .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-snow .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-snow .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-snow .cirrusly-weather-sim__clouddeck--4,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__clouddeck--4,
.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__clouddeck--1,
.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__clouddeck--2,
.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__clouddeck--3,
.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__clouddeck--4 {
	opacity: .96;
}

.cirrusly-weather-sim.is-cloudy .cirrusly-weather-sim__clouddeck,
.cirrusly-weather-sim.is-storm .cirrusly-weather-sim__clouddeck,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__clouddeck,
.cirrusly-weather-sim.is-fog .cirrusly-weather-sim__clouddeck {
	opacity: .98;
}

.cirrusly-weather-sim.is-mostly-cloudy .cirrusly-weather-sim__sun,
.cirrusly-weather-sim.is-cloudy .cirrusly-weather-sim__sun {
	opacity: .22;
	transform: scale(.82);
}

.cirrusly-weather-sim.is-cloudy .cirrusly-weather-sim__sky::after,
.cirrusly-weather-sim.is-storm .cirrusly-weather-sim__sky::after,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__sky::after {
	opacity: 1;
}

.cirrusly-weather-sim.is-cloudy {
	background: linear-gradient(180deg, #9ba8bc 0%, #64738a 56%, #414d63 100%);
}

.cirrusly-weather-sim.is-mostly-cloudy,
.cirrusly-weather-sim.is-rain,
.cirrusly-weather-sim.is-rain-fog {
	background: linear-gradient(180deg, #8ea1ba 0%, #526885 56%, #2d4160 100%);
}

.cirrusly-weather-sim.is-fair,
.cirrusly-weather-sim.is-night {
	background: linear-gradient(180deg, #081124 0%, #101f44 56%, #192d59 100%);
}

.cirrusly-weather-sim.is-haze { background: linear-gradient(180deg, #84b6ff 0%, #4c7ed5 56%, #29497f 100%); }
.cirrusly-weather-sim.is-fog { background: linear-gradient(180deg, #96a7be 0%, #6d8098 56%, #495c71 100%); }
.cirrusly-weather-sim.is-storm,
.cirrusly-weather-sim.is-storm-fog { background: linear-gradient(180deg, #4c5a76 0%, #232c43 56%, #101521 100%); }
.cirrusly-weather-sim.is-snow,
.cirrusly-weather-sim.is-snow-fog,
.cirrusly-weather-sim.is-wintry-mix { background: linear-gradient(180deg, #a8b9d1 0%, #6f88a8 56%, #39516f 100%); }

.cirrusly-weather-sim.is-haze .cirrusly-weather-sim__haze { opacity: 1; }

.cirrusly-weather-sim.is-fog .cirrusly-weather-sim__fog,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__fog,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__fog,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__fog {
	opacity: .95;
}

.cirrusly-weather-sim.is-fog .cirrusly-weather-sim__beam,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__beam,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__beam,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__beam {
	opacity: .82;
}

.cirrusly-weather-sim.is-rain .cirrusly-weather-sim__precip--rain-a,
.cirrusly-weather-sim.is-rain .cirrusly-weather-sim__precip--rain-b,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__precip--rain-a,
.cirrusly-weather-sim.is-rain-fog .cirrusly-weather-sim__precip--rain-b,
.cirrusly-weather-sim.is-storm .cirrusly-weather-sim__precip--rain-a,
.cirrusly-weather-sim.is-storm .cirrusly-weather-sim__precip--rain-b,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__precip--rain-a,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__precip--rain-b {
	opacity: .8;
}

.cirrusly-weather-sim.is-storm .cirrusly-weather-sim__precip--rain-b,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__precip--rain-b {
	opacity: .98;
}

.cirrusly-weather-sim.is-snow .cirrusly-weather-sim__precip--snow-a,
.cirrusly-weather-sim.is-snow .cirrusly-weather-sim__precip--snow-b,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__precip--snow-a,
.cirrusly-weather-sim.is-snow-fog .cirrusly-weather-sim__precip--snow-b {
	opacity: .95;
}

.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__precip--rain-a,
.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__precip--snow-a,
.cirrusly-weather-sim.is-wintry-mix .cirrusly-weather-sim__precip--ice {
	opacity: .88;
}

.cirrusly-weather-sim.is-storm .cirrusly-weather-sim__lightning,
.cirrusly-weather-sim.is-storm-fog .cirrusly-weather-sim__lightning {
	animation: cirrusly-weather-lightning 4.2s steps(1, end) infinite;
}

@keyframes cirrusly-weather-pulse {
	0%, 100% { transform: scale(1); box-shadow: 0 0 52px rgba(249,209,62,.42); }
	50% { transform: scale(1.04); box-shadow: 0 0 66px rgba(249,209,62,.52); }
}

@keyframes cirrusly-weather-cloud-drift {
	0% { transform: translateX(0); }
	50% { transform: translateX(24px); }
	100% { transform: translateX(0); }
}

@keyframes cirrusly-weather-cloud-drift-reverse {
	0% { transform: translateX(0); }
	50% { transform: translateX(-24px); }
	100% { transform: translateX(0); }
}

@keyframes cirrusly-weather-rain-sheet {
	0% { transform: translate3d(-10px, -6%, 0); }
	100% { transform: translate3d(18px, 22%, 0); }
}

@keyframes cirrusly-weather-rain-sheet-fast {
	0% { transform: translate3d(-18px, -8%, 0); }
	100% { transform: translate3d(24px, 24%, 0); }
}

@keyframes cirrusly-weather-snowfall {
	0% { transform: translate3d(-10px, -8%, 0); }
	100% { transform: translate3d(18px, 18%, 0); }
}

@keyframes cirrusly-weather-snowfall-fast {
	0% { transform: translate3d(12px, -10%, 0); }
	100% { transform: translate3d(-16px, 22%, 0); }
}

@keyframes cirrusly-weather-ice-fall {
	0% { transform: translate3d(0, -8%, 0); }
	100% { transform: translate3d(18px, 24%, 0); }
}

@keyframes cirrusly-weather-fog-shift {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(-12px); }
}

@keyframes cirrusly-weather-lightning {
	0%, 82%, 100% { opacity: 0; }
	83%, 84% { opacity: .95; }
	85%, 86% { opacity: .15; }
	87%, 88% { opacity: .92; }
	89%, 100% { opacity: 0; }
}

/* ---------- responsive ---------- */
@media (max-width: 900px) {
	.cirrusly-pdp-sticky { position: static; }
	.cirrusly-weather-lab-workspace__grid {
		grid-template-columns: 1fr;
	}
	.cirrusly-weather-lab-workspace__stage {
		min-height: 620px;
	}
	.cirrusly-weather-lab-workspace__badge,
	.cirrusly-weather-lab-workspace__caption {
		left: .75rem;
		max-width: calc(100% - 1.5rem);
	}
	.cirrusly-weather-lab-workspace__caption {
		bottom: .75rem;
	}
	.cirrusly-weather-lab__toolbar {
		display: flex;
		inline-size: calc(100% - 2rem);
		justify-content: center;
	}
	.cirrusly-weather-sim {
		--cirrusly-lab-width: calc(100vw - 1rem);
		--cirrusly-lab-height: 620px;
	}
	.cirrusly-weather-sim__body {
		inline-size: calc(100% - 2rem);
	}
}

#cirrusly-weather-lab-mobile:checked ~ .cirrusly-weather-lab-stack .cirrusly-weather-sim {
	--cirrusly-lab-width: min(430px, calc(100vw - 2rem));
	--cirrusly-lab-height: 640px;
	border-radius: 28px;
}

#cirrusly-weather-lab-mobile:checked ~ .cirrusly-weather-lab-stack .cirrusly-weather-sim__body {
	inline-size: calc(100% - 2rem);
}

#cirrusly-weather-lab-mobile:checked ~ .cirrusly-weather-lab-stack .cirrusly-weather-sim__sun,
#cirrusly-weather-lab-mobile:checked ~ .cirrusly-weather-lab-stack .cirrusly-weather-sim__moon {
	right: 8%;
}

#cirrusly-weather-lab-desktop:checked ~ .cirrusly-weather-lab-stack .cirrusly-weather-sim {
	border-radius: 0;
}

/* ---------- LEGACY WOOCOMMERCE STRUCTURE ---------- */
.cirrusly-shop-page,
.cirrusly-product-page,
.cirrusly-cart-page,
.cirrusly-checkout-page,
.cirrusly-comparison-page {
	max-width: 100%;
}

.cirrusly-product-page {
	background: #fff;
	background-image: none !important;
}

.cirrusly-shop-header {
	background: var(--cw-tertiary);
	border-radius: 20px;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-shop-header__title {
	font-size: clamp(1.8rem, 1.2rem + 2vw, 3rem) !important;
	line-height: 1.05;
}

.cirrusly-shop-header__title--subdued {
	font-size: clamp(1.2rem, 1rem + 1vw, 1.75rem) !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--cw-primary-dark) 72%, white);
}

.cirrusly-shop-header__copy {
	margin: .85rem auto 0;
	max-width: 42rem;
	line-height: 1.55;
}

.cirrusly-shop-header--category {
	display: grid;
	gap: 1rem;
}

.cirrusly-shop-header--category .cirrusly-shop-header__description {
	margin: 0 auto;
	max-width: 42rem;
	color: var(--cw-gray-700);
	line-height: 1.65;
}

.cirrusly-shop-assist {
	padding: clamp(1rem, 1.75vw, 1.4rem);
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 18px;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-shop-assist__title {
	font-size: clamp(1.2rem, 1rem + 0.8vw, 1.55rem);
	line-height: 1.2;
	margin: 0;
}

.cirrusly-shop-assist__copy {
	margin: .75rem 0 0;
	max-width: 42rem;
	color: var(--cw-gray-700);
	line-height: 1.65;
}

.cirrusly-shop-feature {
	border: 1px solid rgba(15, 23, 42, 0.08);
}

.cirrusly-shop-feature__title {
	font-size: clamp(1.55rem, 1.15rem + 1.2vw, 2.15rem);
	line-height: 1.08;
	margin: .25rem 0 0;
	max-width: 30rem;
}

.cirrusly-shop-feature__copy {
	font-size: .98rem;
	line-height: 1.6;
	margin: .75rem 0 0;
	max-width: 34rem;
}

.cirrusly-shop-feature__list {
	display: grid;
	gap: .65rem;
	margin: 0;
	padding-left: 1.2rem;
}

.cirrusly-shop-feature__list li {
	color: var(--cw-gray-700);
	line-height: 1.45;
}

.cirrusly-shop-lanes {
	margin-top: .25rem;
}

.cirrusly-shop-lane-card {
	border: 1px solid var(--cw-gray-200);
	box-shadow: var(--cw-shadow-card);
	height: 100%;
}

.cirrusly-shop-lane-card__title {
	font-size: 1.08rem;
	line-height: 1.2;
	margin: .25rem 0 0;
}

.cirrusly-shop-lane-card__copy {
	color: var(--cw-gray-700);
	line-height: 1.5;
	margin: .6rem 0 0;
}

.cirrusly-shop-lane-card__cta {
	margin: .8rem 0 0;
}

.cirrusly-shop-lane-card__cta a {
	color: var(--cw-primary);
	font-weight: 700;
	text-decoration: none;
}

.cirrusly-shop-filters {
	align-self: start;
}

.cirrusly-shop-filters__intro {
	padding: 0 0 1rem;
	border-bottom: 1px solid var(--cw-gray-200);
}

.cirrusly-shop-filters__title {
	font-size: 1.15rem;
	line-height: 1.25;
	margin: .45rem 0 0;
}

.cirrusly-shop-filters__copy {
	line-height: 1.6;
	margin: .75rem 0 0;
}

.cirrusly-filter-section {
	padding: 0 0 1.25rem;
}

.cirrusly-filter-section:last-child {
	padding-bottom: 0;
}

.cirrusly-shop-filters .wp-block-woocommerce-product-filter-active {
	display: grid;
	gap: .75rem;
	padding: 1rem 0 1.1rem;
	border-bottom: 1px solid var(--cw-gray-200);
}

.cirrusly-shop-filter-disclosure {
	padding: .85rem 0;
	border-bottom: 1px solid color-mix(in srgb, var(--cw-primary) 10%, transparent);
}

.cirrusly-shop-filter-disclosure:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.cirrusly-shop-filter-disclosure__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-family: "Raleway", sans-serif;
	font-size: .95rem;
	font-weight: 700;
	color: var(--cw-primary-dark);
	cursor: pointer;
	text-align: left;
}

.cirrusly-shop-filter-disclosure__toggle::after {
	content: "+";
	font-size: 1rem;
	line-height: 1;
	color: color-mix(in srgb, var(--cw-primary-dark) 72%, white);
}

.cirrusly-shop-filter-disclosure.is-open .cirrusly-shop-filter-disclosure__toggle::after {
	content: "−";
}

.cirrusly-shop-filter-disclosure__panel {
	display: none;
	padding-top: .85rem;
}

.cirrusly-shop-filter-disclosure.is-open .cirrusly-shop-filter-disclosure__panel {
	display: block;
}

.cirrusly-shop-filter-disclosure .wp-block-heading {
	margin-top: 0;
	margin-bottom: .625rem;
	font-size: .9rem;
}

.cirrusly-shop-filter-disclosure .wc-block-product-filter-removable-chips,
.cirrusly-shop-filter-disclosure .wc-block-product-filter-checkbox-list,
.cirrusly-shop-filter-disclosure .wc-block-product-filter-price-slider,
.cirrusly-shop-filter-disclosure .wc-block-product-filter-chips {
	margin-top: .35rem;
}

.cirrusly-shop-filter-disclosure .wp-block-woocommerce-product-filter-status,
.cirrusly-shop-filter-disclosure .wp-block-woocommerce-product-filter-taxonomy,
.cirrusly-shop-filter-disclosure .wp-block-woocommerce-product-filter-price,
.cirrusly-shop-filter-disclosure .wp-block-woocommerce-product-filter-attribute {
	padding: 0;
	margin: 0;
}

.cirrusly-shop-filters .wc-block-product-categories,
.cirrusly-shop-filters .wp-block-woocommerce-product-categories,
.cirrusly-shop-filters .wc-block-product-categories-list,
.cirrusly-shop-filters .wp-block-woocommerce-product-categories__list {
	font-size: .92rem;
	line-height: 1.35;
}

.cirrusly-shop-filters .wc-block-product-categories-list__item,
.cirrusly-shop-filters .wp-block-woocommerce-product-categories__list li {
	margin: 0;
}

.cirrusly-shop-filters .wc-block-product-categories-list__item > a,
.cirrusly-shop-filters .wp-block-woocommerce-product-categories__list a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: .5rem;
	padding: .4rem .55rem;
	border-radius: 8px;
	font-weight: 600;
	color: var(--cw-gray-700);
	text-decoration: none;
}

.cirrusly-shop-filters .wc-block-product-categories-list__item > a:hover,
.cirrusly-shop-filters .wp-block-woocommerce-product-categories__list a:hover {
	background: var(--cw-tertiary);
	color: var(--cw-primary);
}

.cirrusly-shop-filters .wc-block-product-categories-list__count,
.cirrusly-shop-filters .wp-block-woocommerce-product-categories__count {
	font-size: .8rem;
	font-weight: 700;
	color: var(--cw-gray-500);
}

.cirrusly-shop-toolbar {
	gap: 1rem;
}

.cirrusly-shop-grid-head {
	align-items: end;
	gap: 1rem;
	margin-top: .35rem;
}

.cirrusly-shop-grid-head__title {
	font-size: clamp(1.35rem, 1rem + 1vw, 1.9rem);
	line-height: 1.15;
	margin: .45rem 0 0;
	max-width: 28rem;
}

.cirrusly-shop-grid-head__tools {
	display: grid;
	justify-items: end;
	gap: .75rem;
}

.cirrusly-shop-no-results {
	display: grid;
	gap: 1rem;
}

.cirrusly-shop-no-results p {
	margin: 0 auto;
	max-width: 34rem;
	line-height: 1.65;
}

.cirrusly-shop-no-results .wp-block-buttons {
	margin-top: .25rem;
}

.cirrusly-product-card {
	background: #fff;
	border: 1px solid var(--cw-gray-200);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: var(--cw-shadow-card);
	transition: var(--cw-ease);
}

.cirrusly-product-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--cw-shadow-hover);
}

.cirrusly-product-card__image-wrapper {
	position: relative;
	overflow: hidden;
	background: var(--cw-gray-100);
}

.cirrusly-product-card__image-wrapper img {
	display: block;
	width: 100%;
	height: auto;
}

.cirrusly-pdp-grid,
.cirrusly-product-page .wp-block-columns {
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: start;
}

.cirrusly-pdp-left,
.cirrusly-pdp-right {
	min-width: 0;
}

.cirrusly-pdp-sticky {
	position: sticky;
	top: 120px;
}

.cirrusly-pdp-header {
	margin-bottom: 1rem;
}

.cirrusly-pdp-title {
	font-size: clamp(1.75rem, 3.5vw, 2.5rem) !important;
	line-height: 1.05;
}

.cirrusly-pdp-header .wp-block-woocommerce-product-price {
	font-size: clamp(1.45rem, 2.75vw, 2rem);
	line-height: 1.1;
	margin-bottom: .4rem !important;
}

.cirrusly-pdp-header .wp-block-woocommerce-product-rating {
	margin-bottom: .85rem !important;
}

.cirrusly-pdp-header .cirrusly-countdown-wrapper {
	margin-bottom: .9rem;
	padding: .8rem 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: 12px;
	background: var(--cw-tertiary);
}

.cirrusly-pdp-header .wp-block-post-excerpt {
	max-width: 46rem;
}

.cirrusly-trust-badges {
	gap: .75rem;
}

.cirrusly-product-actions {
	gap: .75rem;
	margin-top: 1rem;
	align-items: center;
	flex-wrap: wrap;
}

.cirrusly-product-actions {
	gap: .75rem;
	margin-top: 1rem;
	align-items: center;
}

.cirrusly-actions-separator {
	color: var(--cw-gray-500);
	font-weight: 500;
}

.cirrusly-product-specs {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cw-gray-200);
}

.cirrusly-product-support-strip {
	padding: 1rem 1.1rem;
	border: 1px solid rgba(18, 18, 63, 0.08);
	border-radius: 14px;
	background: linear-gradient(180deg, rgba(241, 244, 250, 0.9) 0%, rgba(241, 244, 250, 0.55) 100%);
}

.cirrusly-product-support-strip__inner {
	display: grid;
	gap: .65rem;
}

.cirrusly-product-support-strip__lead {
	margin: 0;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--cw-primary-dark);
}

.cirrusly-product-support-strip__list {
	display: grid;
	gap: .45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cirrusly-product-support-strip__item {
	position: relative;
	padding-left: 1rem;
	font-size: .92rem;
	line-height: 1.45;
	color: var(--cw-gray-700);
}

.cirrusly-product-support-strip__item::before {
	content: "";
	position: absolute;
	top: .55rem;
	left: 0;
	width: .38rem;
	height: .38rem;
	border-radius: 9999px;
	background: color-mix(in srgb, var(--cw-primary) 72%, white 28%);
}

.cirrusly-product-support-strip + .cirrusly-purchase-card {
	margin-top: 0;
}

.cirrusly-purchase-card {
	background: #fff;
	border: 1px solid var(--cw-gray-200);
	border-radius: 16px;
	box-shadow: var(--cw-shadow-card);
	padding: 1.5rem;
}

.cirrusly-purchase-card__confidence {
	margin: 0;
	font-size: .92rem;
	line-height: 1.5;
	color: var(--cw-primary-dark);
}

.cirrusly-purchase-card > * + * {
	margin-top: 1rem;
}

.cirrusly-purchase-card__note {
	margin: -.35rem 0 0;
	font-size: .86rem;
	line-height: 1.5;
	color: var(--cw-gray-700);
}

/* The package tracker already renders the merged stock + delivery widget.
   Hide WooCommerce's redundant stock paragraph inside the purchase card. */
.cirrusly-purchase-card .stock {
	display: none !important;
}

.cirrusly-purchase-card__shipping {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 1rem;
	font-size: .9rem;
	color: var(--cw-gray-700);
}

.cirrusly-purchase-card__dot {
	width: .5rem;
	height: .5rem;
	border-radius: 9999px;
	background: var(--cw-primary);
	box-shadow: 0 0 0 4px rgba(9, 69, 200, .12);
	flex: 0 0 auto;
}

.cirrusly-product-page .woocommerce-tabs,
.cirrusly-product-page .wp-block-woocommerce-product-details {
	margin-top: var(--wp--preset--spacing--80);
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--cw-gray-200);
	border-radius: 18px;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-product-page .woocommerce-tabs .tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	padding: 0;
	margin: 0 0 1.25rem;
	list-style: none;
	border-bottom: 1px solid var(--cw-gray-200);
}

.cirrusly-product-page .woocommerce-tabs .tabs li {
	margin: 0;
}

.cirrusly-product-page .woocommerce-tabs .tabs a {
	display: inline-flex;
	align-items: center;
	padding: .7rem 1rem;
	border-radius: 9999px 9999px 0 0;
	text-decoration: none;
	font-weight: 700;
	color: var(--cw-gray-700);
}

.cirrusly-product-page .woocommerce-tabs .tabs .active a {
	background: var(--cw-tertiary);
	color: var(--cw-primary-dark);
}

.cirrusly-product-page .woocommerce-tabs .panel {
	margin: 0;
	padding: 0.25rem 0 0;
}

.cirrusly-best-for {
	margin-top: 1.25rem;
}

.cirrusly-best-for__title {
	line-height: 1.25;
	margin: 0;
}

.cirrusly-best-for__copy {
	color: var(--cw-gray-700);
	line-height: 1.65;
	margin: .75rem 0 0;
}

.cirrusly-best-for__head {
	margin: 0 0 .75rem;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cw-gray-500);
}

.cirrusly-best-for__chips {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.cirrusly-why-it-stands-out {
	border: 1px solid var(--cw-gray-200);
}

.cirrusly-why-it-stands-out__title {
	line-height: 1.2;
	margin: 0 0 .85rem;
}

.cirrusly-chip {
	display: inline-flex;
	align-items: center;
	padding: .5rem .75rem;
	border-radius: 9999px;
	background: var(--cw-tertiary);
	border: 1px solid var(--cw-gray-200);
	color: var(--cw-gray-900);
	font-size: .875rem;
}

.cirrusly-cart-head,
.cirrusly-checkout-head {
	max-width: 760px;
	margin: 0 auto 2rem;
}

.cirrusly-cart-head {
	display: grid;
	gap: 0.9rem;
	margin: 0 auto var(--wp--preset--spacing--50);
	max-width: 44rem;
	text-align: center;
}

.cirrusly-cart-page > .wp-block-woocommerce-cart.alignwide {
	box-sizing: border-box;
	inline-size: min(100%, var(--wp--style--global--wide-size, 1200px));
	max-inline-size: calc(100vw - clamp(1.5rem, 4vw, 3rem));
	margin-inline: auto;
	min-width: 0;
	overflow-x: clip;
	padding-inline: clamp(1rem, 2.5vw, 1.75rem);
}

.cirrusly-cart-page .wp-block-woocommerce-filled-cart-block {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 26rem);
	gap: clamp(1rem, 2vw, 2rem);
	align-items: start;
	min-width: 0;
}

.cirrusly-cart-page :is(.wp-block-woocommerce-cart-items-block, .wp-block-woocommerce-cart-totals-block) {
	min-width: 0;
	max-width: 100%;
	inline-size: 100%;
}

.cirrusly-cart-page .wp-block-woocommerce-cart-totals-block {
	inline-size: 100%;
}

.cirrusly-cart-page :is(.wc-block-components-product-name, .wc-block-cart-item__wrap, .wc-block-components-sidebar-layout) {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.cirrusly-cart-head__eyebrow,
.cirrusly-cart-empty-state__eyebrow,
.cirrusly-cart-cross-sells__eyebrow {
	color: var(--wp--preset--color--accent);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	margin: 0;
	text-transform: uppercase;
}

.cirrusly-cart-head__title {
	letter-spacing: -0.03em;
	margin: 0;
}

.cirrusly-cart-head__lede {
	font-size: 1.05rem;
	line-height: 1.65;
	margin: 0;
}

.cirrusly-cart-proof {
	align-items: baseline;
	border-top: 1px solid rgba(15, 23, 42, 0.08);
	gap: 0.75rem 1rem;
	margin-top: 1rem;
	padding-top: 1rem;
}

.cirrusly-cart-proof__item {
	align-items: baseline;
	color: var(--wp--preset--color--gray-700);
	display: inline-flex;
	flex: 1 1 180px;
	gap: 0.45rem;
	margin: 0;
}

.cirrusly-cart-proof__label {
	color: var(--wp--preset--color--gray-500);
	font-family: "Raleway", sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0;
	text-transform: uppercase;
}

.cirrusly-cart-proof__value {
	color: var(--cw-navy-900, #12123f);
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.5;
	margin: 0;
}

.cirrusly-cart-empty-state__copy {
	color: var(--wp--preset--color--gray-700);
	line-height: 1.6;
	margin: 0.35rem 0 0;
}

.cirrusly-cart-empty-state {
	display: grid;
	gap: 0.9rem;
	padding: var(--wp--preset--spacing--70) 0;
	text-align: center;
}

.cirrusly-cart-empty-state__title,
.cirrusly-cart-cross-sells__title {
	margin: 0;
}

@media (max-width: 781px) {
	.cirrusly-cart-head__lede {
		font-size: 1rem;
	}

	.cirrusly-cart-page > .wp-block-woocommerce-cart.alignwide {
		max-inline-size: calc(100vw - 1rem);
		padding-inline: 0.75rem;
	}

	.cirrusly-cart-page .wp-block-woocommerce-filled-cart-block {
		grid-template-columns: minmax(0, 1fr);
	}

	.cirrusly-cart-proof {
		padding-top: var(--wp--preset--spacing--30);
	}

	.cirrusly-shop-assist,
	.cirrusly-product-support-strip {
		padding: 1rem;
	}

	.cirrusly-shop-grid-head__tools {
		justify-items: start;
	}
}

.cirrusly-comparison-page {
	max-width: 1200px;
}

/* ---------- COMMERCE BADGES + COUNTDOWNS ---------- */
.cirrusly-badge,
.cirrusly-badge-pill {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .35rem .75rem;
	border-radius: 9999px;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1;
}

.cirrusly-badge,
.cirrusly-badge-pill,
.cirrusly-badge-pill.cirrusly-new {
	background: var(--cw-primary);
	color: #fff;
}

.cirrusly-badge--sale {
	background: var(--cw-accent);
	color: #fff;
}

.cirrusly-badge--new,
.cirrusly-badge-pill.cirrusly-new {
	background: #0f6b1e;
	color: #fff;
}

.cirrusly-badge--featured {
	background: var(--cw-primary-dark);
	color: #fff;
}

.cirrusly-badge--out-of-stock {
	background: var(--cw-gray-500);
	color: #fff;
}

.cirrusly-badge-container {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	align-items: center;
}

.cirrusly-badge-container.cirrusly-single-page,
.cirrusly-badge-container.cirrusly-block-render {
	margin-bottom: 1rem;
}

.cirrusly-badge-img {
	display: block;
	max-width: 100%;
	height: auto;
}

.cirrusly-has-tooltip {
	position: relative;
	cursor: help;
}

.cirrusly-has-tooltip:hover::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 0;
	bottom: 120%;
	z-index: 20;
	white-space: nowrap;
	padding: .4rem .6rem;
	border-radius: .4rem;
	background: var(--cw-primary-dark);
	color: #fff;
	font-size: .7rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-compare-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .7rem 1rem;
	background: #fff;
	border: 2px solid var(--cw-gray-300);
	border-radius: var(--cw-radius-md);
	color: var(--cw-gray-700);
	font: inherit;
	font-weight: 700;
	text-decoration: none;
	transition: var(--cw-ease);
}

.cirrusly-compare-btn:hover {
	border-color: var(--cw-primary);
	color: var(--cw-primary);
	background: var(--cw-tertiary);
}

.cirrusly-compare-btn.is-active {
	background: var(--cw-primary);
	border-color: var(--cw-primary);
	color: #fff;
}

.cirrusly-compare-btn--single {
	padding: .85rem 1.15rem;
}

.cirrusly-msrp-block-wrapper {
	margin-bottom: .5rem;
}

.cirrusly-msrp-container,
.cirrusly-discount-notice {
	margin-bottom: .75rem;
	padding: .8rem 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-md);
	background: var(--cw-tertiary);
	color: var(--cw-gray-700);
}

.cirrusly-countdown-wrapper {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .6rem;
	margin-bottom: 1rem;
	color: var(--cw-gray-900);
}

.cirrusly-timer-label {
	font-weight: 600;
}

.cirrusly-timer-digits {
	display: flex;
	align-items: baseline;
	gap: .35rem;
}

.cirrusly-time-group {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cirrusly-val {
	font-size: 1.35rem;
	font-weight: 800;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.cirrusly-unit {
	font-size: .6rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cw-gray-500);
}

.cirrusly-sep {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--cw-primary-dark);
}

/* ---------- TRACKING PAGE ---------- */
.cirrusly-tracking-wrapper {
	display: grid;
	gap: 1.5rem;
}

.cirrusly-tracking-form {
	padding: 1.5rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-lg);
	background: var(--cw-tertiary);
	box-shadow: var(--cw-shadow-card);
}

.tracking-form-eyebrow {
	margin-bottom: .5rem;
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cw-primary);
}

.cirrusly-tracking-form h2 {
	margin: 0 0 .5rem;
}

.tracking-form-caption {
	margin: 0 0 1rem;
	color: var(--cw-gray-700);
}

.tracking-input-group {
	display: flex;
	gap: .75rem;
	align-items: stretch;
}

.tracking-input-group input[type="text"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: .85rem 1rem;
	border: 1px solid var(--cw-gray-300);
	border-radius: var(--cw-radius-md);
	background: #fff;
	color: var(--cw-gray-900);
}

.tracking-input-group button {
	white-space: nowrap;
}

.tracking-form-message {
	margin-top: .75rem;
	color: var(--cw-accent);
}

.tracking-message {
	padding: 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-md);
	background: #fff;
	box-shadow: var(--cw-shadow-card);
}

.tracking-message--loading {
	background: var(--cw-tertiary);
}

.tracking-message__title {
	font-weight: 700;
	color: var(--cw-primary-dark);
}

.tracking-message__body {
	margin-top: .35rem;
	color: var(--cw-gray-700);
}

.tracking-summary-card {
	padding: .9rem 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-md);
	background: #fff;
}

.tracking-summary-label {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cw-gray-500);
}

.tracking-summary-value {
	margin-top: .25rem;
	font-weight: 600;
	color: var(--cw-gray-900);
}

/* ---------- COUPONS ---------- */
.cirrusly-bogo-messages {
	margin: 1rem 0;
}

.cirrusly-bogo-message {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: .75rem;
	padding: 1rem 1.25rem;
	border-radius: var(--cw-radius-lg);
	background: linear-gradient(135deg, var(--cw-primary) 0%, var(--cw-primary-dark) 100%);
	color: #fff;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-bogo-icon {
	font-size: 1.4rem;
	flex-shrink: 0;
}

.cirrusly-bogo-text {
	font-weight: 600;
}

.cirrusly-bogo-applied,
.cirrusly-store-credit-notice,
.cirrusly-coupon-applied,
.cirrusly-coupon-error {
	padding: .9rem 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-md);
}

.cirrusly-bogo-applied,
.cirrusly-coupon-applied {
	background: #eef8f0;
	border-color: #cae6cf;
	color: #155724;
}

.cirrusly-store-credit-notice,
.cirrusly-coupon-error {
	background: #fff3cd;
	border-color: #ffe69c;
	color: #7a5a00;
}

.cirrusly-gift-card-form {
	margin: 1rem 0;
	padding: 1.25rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-lg);
	background: #fff;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-gift-card-input-wrapper {
	display: flex;
	gap: .75rem;
}

.cirrusly-gift-card-form input[type="text"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: .85rem 1rem;
	border: 1px solid var(--cw-gray-300);
	border-radius: var(--cw-radius-md);
}

.cirrusly-gift-card-form button {
	white-space: nowrap;
}

.cirrusly-url-coupon-banner {
	position: relative;
	padding: 1rem 1.25rem;
	border-radius: var(--cw-radius-lg);
	background: linear-gradient(135deg, var(--cw-primary) 0%, var(--cw-primary-dark) 100%);
	color: #fff;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-url-coupon-banner .close-banner {
	position: absolute;
	top: 50%;
	right: 1rem;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: inherit;
	font-size: 1.25rem;
	cursor: pointer;
}

.cirrusly-vip-tier,
.cirrusly-points-display {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .75rem 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-pill);
	background: var(--cw-tertiary);
}

.cirrusly-vip-tier.bronze {
	background: linear-gradient(135deg, #cd7f32 0%, #e6b17e 100%);
	color: #fff;
}

.cirrusly-vip-tier.silver {
	background: linear-gradient(135deg, #c0c0c0 0%, #e8e8e8 100%);
	color: #333;
}

.cirrusly-vip-tier.gold {
	background: linear-gradient(135deg, #ffd700 0%, #ffed4e 100%);
	color: #333;
}

.cirrusly-vip-tier.platinum {
	background: linear-gradient(135deg, #e5e4e2 0%, #f5f5f5 100%);
	color: #333;
}

.cirrusly-points-display .points-value {
	font-size: 1.4rem;
	font-weight: 800;
	color: var(--cw-primary);
}

/* ---------- ATTACHMENTS ---------- */
.cw-product-files-section {
	margin: 1.5rem 0;
	padding: 1.25rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-lg);
	background: var(--cw-tertiary);
	box-shadow: var(--cw-shadow-card);
}

.cw-files-heading {
	margin: 0 0 1rem;
	padding: 0 0 .75rem;
	border-bottom: 2px solid var(--cw-gray-200);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--cw-primary-dark);
}

.cw-files-list {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cw-files-list li {
	margin: 0;
	flex: 0 1 auto;
}

.cw-file-link {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	width: auto;
	padding: .6rem .85rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-md);
	background: #fff;
	color: var(--cw-gray-700);
	text-decoration: none;
	transition: var(--cw-ease);
}

.cw-file-link:hover {
	background: var(--cw-primary);
	border-color: var(--cw-primary-dark);
	color: #fff;
}

.cw-file-link .dashicons {
	width: 1.2rem;
	height: 1.2rem;
	font-size: 1.2rem;
	color: var(--cw-gray-500);
	flex-shrink: 0;
}

.cw-file-link:hover .dashicons {
	color: #fff;
}

.cw-file-name {
	font-weight: 600;
}

.cw-file-size {
	font-size: .78rem;
	color: var(--cw-gray-500);
}

.cw-file-status {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	margin-left: .5rem;
	padding: .2rem .45rem;
	border: 1px solid transparent;
	border-radius: .35rem;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cw-file-status.status-locked,
.cw-file-status.status-expired {
	background: #fff3cd;
	border-color: #ffe69c;
	color: #7a5a00;
}

.cw-file-status.status-unlocked {
	background: #eef8f0;
	border-color: #cae6cf;
	color: #155724;
}

.cw-variation-files {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--cw-gray-200);
}

.woocommerce-Tabs-panel .cw-product-files-section {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.woocommerce-Tabs-panel .cw-files-heading {
	display: none;
}

.woocommerce-order-details .cw-product-files-section,
.woocommerce-table--order-details + .cw-product-files-section {
	margin-top: 1.5rem;
}

@media (max-width: 900px) {
	.cirrusly-shop-header {
		padding: var(--wp--preset--spacing--40) !important;
	}

	.cirrusly-shop-feature {
		padding: var(--wp--preset--spacing--40) !important;
	}

	.cirrusly-shop-grid-head__tools {
		justify-items: start;
		width: 100%;
	}

	.cirrusly-shop-filters {
		position: static;
	}
}

@media (max-width: 700px) {
	.cirrusly-shop-header__copy,
	.cirrusly-shop-feature__copy {
		font-size: .98rem;
	}

	.tracking-input-group,
	.cirrusly-gift-card-input-wrapper {
		flex-direction: column;
	}

	.cw-files-list {
		flex-direction: column;
	}

	.cw-file-link {
		width: 100%;
	}
}

/* ---------- SHIPPING / INVENTORY ---------- */
.cirrusly-shipping-option {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.cirrusly-shipping-header {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}

.cirrusly-shipping-logos {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	flex-shrink: 0;
}

.cirrusly-carrier-logo {
	height: 18px;
	width: auto;
	max-width: 36px;
	object-fit: contain;
	vertical-align: middle;
}

.cirrusly-shipping-name {
	flex: 1 1 auto;
	font-weight: 600;
}

.cirrusly-shipping-price {
	margin-left: auto;
	font-weight: 700;
}

.cirrusly-shipping-price.cirrusly-free {
	color: #0f6b1e;
}

.cirrusly-shipping-details,
.cirrusly-shipping-description {
	margin-top: .25rem;
	font-size: .85rem;
	line-height: 1.4;
	color: var(--cw-gray-700);
}

.cirrusly-delivery-estimate {
	color: var(--cw-primary);
	font-weight: 600;
}

.cirrusly-carrier-note {
	color: var(--cw-gray-500);
}

.woocommerce-checkout .cirrusly-shipping-option,
.woocommerce-cart .cirrusly-shipping-option {
	padding: .25rem 0;
}

.woocommerce-checkout ul#shipping_method li label {
	display: flex;
	align-items: flex-start;
}

.woocommerce-checkout ul#shipping_method li .cirrusly-shipping-option {
	margin-left: 0;
}

.cirrusly-stock-status {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .35rem .5rem;
	margin: .75rem 0;
	padding: .75rem 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-md);
	background: #fff;
}

.cirrusly-stock-status.in-stock,
.cirrusly-stock-status.in-stock .cirrusly-status-text,
.cirrusly-stock-status.in-stock .cirrusly-indicator {
	color: #0f6b1e;
}

.cirrusly-stock-status.low-stock,
.cirrusly-stock-status.low-stock .cirrusly-status-text,
.cirrusly-stock-status.low-stock .cirrusly-indicator {
	color: #d97706;
}

.cirrusly-stock-status.out-of-stock,
.cirrusly-stock-status.out-of-stock .cirrusly-status-text,
.cirrusly-stock-status.out-of-stock .cirrusly-indicator {
	color: #b91c1c;
}

.cirrusly-stock-status.backorder,
.cirrusly-stock-status.backorder .cirrusly-status-text,
.cirrusly-stock-status.backorder .cirrusly-indicator {
	color: #d97706;
}

.cirrusly-indicator {
	font-size: 1.05rem;
	line-height: 1;
}

.cirrusly-status-text {
	font-weight: 700;
}

.cirrusly-separator {
	color: var(--cw-gray-500);
	margin: 0 .15rem;
}

.cirrusly-warehouses {
	color: var(--cw-gray-700);
	font-weight: 400;
}

.cirrusly-delivery-widget {
	margin-top: 1rem;
	padding: 1rem 1.1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-lg);
	background: linear-gradient(180deg, #ffffff 0%, var(--cw-tertiary) 100%);
	box-shadow: var(--cw-shadow-card);
	display: flex;
	flex-direction: column;
	gap: .8rem;
}

.cirrusly-delivery-widget .cirrusly-stock-status {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.cirrusly-delivery-widget .cirrusly-delivery-estimate {
	display: block;
	margin-top: .35rem;
	font-weight: 600;
	color: var(--cw-primary);
}

.cirrusly-delivery-widget .cirrusly-next-shipment {
	margin: 0;
	padding: .75rem .9rem;
	border-radius: var(--cw-radius-md);
	background: rgba(185, 28, 28, 0.06);
	color: var(--cw-gray-700);
	font-size: .9rem;
	line-height: 1.45;
}

.cirrusly-warehouse-availability {
	margin: .5rem 0 .75rem;
	font-size: .9rem;
	color: var(--cw-gray-700);
}

.cirrusly-warehouse-label {
	margin-right: .35rem;
	font-weight: 600;
	color: var(--cw-gray-900);
}

.cirrusly-zip-lookup {
	margin-top: 1rem;
	padding: 1rem;
	border: 1px solid var(--cw-gray-200);
	border-radius: var(--cw-radius-md);
	background: var(--cw-tertiary);
}

.cirrusly-zip-lookup label {
	display: block;
	margin-bottom: .5rem;
	font-weight: 600;
}

.cirrusly-zip-lookup-form {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}

.cirrusly-zip-label {
	flex: 0 0 100%;
	font-weight: 600;
	color: var(--cw-gray-900);
}

.cirrusly-zip-lookup-form input {
	flex: 1 1 auto;
	min-width: 0;
	padding: .75rem .9rem;
	border: 1px solid var(--cw-gray-300);
	border-radius: var(--cw-radius-md);
}

.cirrusly-zip-input {
	width: min(100%, 220px);
}

.cirrusly-zip-btn {
	padding: .75rem 1rem;
	border: 0;
	border-radius: var(--cw-radius-md);
	background: var(--cw-primary);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: var(--cw-ease);
}

.cirrusly-zip-btn:hover:not(:disabled) {
	background: var(--cw-primary-dark);
}

.cirrusly-zip-btn:disabled {
	opacity: .6;
	cursor: not-allowed;
}

.cirrusly-zip-result {
	padding: .85rem .95rem;
	border: 1px solid rgba(9, 69, 200, 0.12);
	border-radius: var(--cw-radius-md);
	background: #fff;
	color: var(--cw-primary-dark);
	font-weight: 600;
}

.cirrusly-zip-result.error {
	border-color: rgba(214, 54, 56, 0.18);
	background: rgba(214, 54, 56, 0.06);
	color: var(--cw-accent);
}

.cirrusly-estimate-note {
	margin: 0;
	font-size: .78rem;
	line-height: 1.45;
	color: var(--cw-gray-500);
}

/* ---------- COMPARISON BAR ---------- */
#cirrusly-comparison-bar.cirrusly-comparison-bar {
	position: fixed !important;
	right: 80px;
	bottom: 0;
	left: 0;
	z-index: 10000;
	padding: 1rem;
	background: #fff;
	box-shadow: 0 -4px 20px rgba(0, 0, 0, .15);
	transform: translateY(100%);
	visibility: hidden;
	transition: transform .3s ease, visibility .3s ease;
}

#cirrusly-comparison-bar.cirrusly-comparison-bar.is-visible {
	transform: translateY(0);
	visibility: visible;
}

.cirrusly-comparison-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	max-width: 1200px;
	margin: 0 auto;
}

.cirrusly-comparison-bar__products {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.cirrusly-comparison-bar__product {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .5rem;
	border-radius: 6px;
	background: var(--cw-gray-100);
}

.cirrusly-comparison-bar__product-image {
	width: 40px;
	height: 40px;
	border-radius: 4px;
	overflow: hidden;
}

.cirrusly-comparison-bar__product-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cirrusly-comparison-bar__product-name {
	max-width: 120px;
	overflow: hidden;
	font-size: .75rem;
	font-weight: 600;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.cirrusly-comparison-bar__product-remove {
	padding: .25rem;
	border: 0;
	background: transparent;
	color: var(--cw-gray-500);
	cursor: pointer;
	transition: var(--cw-ease);
}

.cirrusly-comparison-bar__product-remove:hover {
	color: var(--cw-accent);
}

.cirrusly-comparison-bar__actions {
	display: flex;
	gap: .5rem;
}

.cirrusly-comparison-bar__compare {
	padding: .75rem 1.5rem;
	border: 0;
	border-radius: 8px;
	background: var(--cw-primary);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	transition: var(--cw-ease);
}

.cirrusly-comparison-bar__compare:hover:not(:disabled) {
	background: var(--cw-primary-dark);
}

.cirrusly-comparison-bar__compare:disabled {
	opacity: .5;
	cursor: not-allowed;
}

.cirrusly-comparison-bar__clear {
	padding: .75rem 1rem;
	border: 1px solid var(--cw-gray-300);
	border-radius: 8px;
	background: var(--cw-gray-100);
	color: var(--cw-gray-700);
	font-weight: 600;
	cursor: pointer;
	transition: var(--cw-ease);
}

.cirrusly-comparison-bar__clear:hover {
	border-color: var(--cw-accent);
	background: var(--cw-accent);
	color: #fff;
}

@media (max-width: 900px) {
	#cirrusly-comparison-bar.cirrusly-comparison-bar {
		right: 0;
	}

	.cirrusly-comparison-bar__inner {
		flex-direction: column;
		align-items: stretch;
	}

	.cirrusly-comparison-bar__actions {
		justify-content: stretch;
	}
}

/* ---------- ACCOUNT PAGE ---------- */
.cirrusly-account-layout {
	align-items: start;
}

.cirrusly-account-page .woocommerce-MyAccount-navigation {
	display: none;
}

.cirrusly-account-page .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	margin: 0;
}

.cirrusly-account-page .woocommerce-MyAccount-content > * + * {
	margin-top: 1.25rem;
}

.cirrusly-account-page .woocommerce-MyAccount-content table,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-Addresses,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-EditAccountForm,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-EditAddressForm,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-Downloads,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-orders-table {
	background: #fff;
	border: 1px solid var(--cw-gray-200);
	border-radius: 16px;
	box-shadow: var(--cw-shadow-card);
	overflow: hidden;
}

.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-EditAccountForm,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-EditAddressForm {
	padding: 1.25rem;
}

.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-orders-table th,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-orders-table td {
	padding: .85rem 1rem;
}

.cirrusly-account-page .woocommerce-MyAccount-content .button,
.cirrusly-account-page .woocommerce-MyAccount-content .woocommerce-Button {
	white-space: nowrap;
}

.cirrusly-account-sidebar-column {
	align-self: start;
	position: sticky;
	top: 120px;
}

.cirrusly-account-nav-list {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	list-style: none;
	margin: 0;
	padding: 1rem;
}

.cirrusly-account-nav-list li {
	margin: 0;
}

.cirrusly-nav-link {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .85rem 1rem;
	border-radius: 10px;
	color: var(--cw-gray-700);
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: var(--cw-ease);
	white-space: nowrap;
}

.cirrusly-nav-link:hover {
	background: #fff;
	color: var(--cw-primary);
}

.cirrusly-account-nav-item.is-active .cirrusly-nav-link {
	background: #fff;
	color: var(--cw-primary);
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-account-nav-icon {
	flex-shrink: 0;
}

.cirrusly-feature-boxes {
	gap: 1rem;
}

/* ---------- SUPPORT PAGE ---------- */
.cirrusly-support-page {
	display: grid;
	gap: 0;
}

.cirrusly-support-page__hero {
	background: linear-gradient(180deg, rgba(241, 244, 250, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
	border: 1px solid rgba(18, 18, 63, 0.06);
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-support-page__eyebrow {
	margin: 0;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cirrusly-support-page__actions {
	margin-left: auto;
	margin-right: auto;
}

.cirrusly-support-page__action-card,
.cirrusly-support-page__path-card,
.cirrusly-support-page__contact-card {
	height: 100%;
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-support-page__action-card {
	display: grid;
	grid-template-rows: auto auto 1fr auto;
}

.cirrusly-support-page__action-label {
	margin: 0;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cirrusly-support-page__action-card--featured {
	position: relative;
	overflow: hidden;
	box-shadow: var(--cw-shadow-card), 0 18px 42px rgba(16, 32, 64, .08);
}

.cirrusly-support-page__action-card--featured::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at top right, rgba(255, 255, 255, .72), transparent 42%),
		linear-gradient(135deg, rgba(255, 255, 255, .24), rgba(255, 255, 255, 0));
	pointer-events: none;
}

.cirrusly-support-page__action-card--featured > * {
	position: relative;
	z-index: 1;
}

.cirrusly-support-page__path-grid {
	align-items: stretch;
}

.cirrusly-support-page__path-card {
	display: grid;
	gap: 1.25rem;
}

.cirrusly-support-page__path-card ul {
	margin: 0;
	padding-left: 1.1rem;
}

.cirrusly-support-page__path-card li + li {
	margin-top: .45rem;
}

.cirrusly-support-page__path-kicker {
	margin-bottom: .55rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cirrusly-support-page__contact-card {
	display: grid;
	align-content: start;
	gap: 1.1rem;
}

.cirrusly-support-page__contact-card .wp-block-buttons {
	margin-top: .4rem;
}

/* ---------- INTERACT PAGE ---------- */
.cirrusly-interact-page {
	display: grid;
	gap: 0;
}

.cirrusly-interact-page__hero {
	background: linear-gradient(180deg, rgba(241, 244, 250, 0.96) 0%, rgba(255, 255, 255, 0.98) 100%);
	border: 1px solid rgba(18, 18, 63, 0.06);
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-interact-page__eyebrow {
	margin: 0;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cirrusly-interact-page__grid {
	margin-left: auto;
	margin-right: auto;
}

.cirrusly-interact-page__grid .cirrusly-feature-boxes {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: stretch;
}

.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column {
	margin: 0;
	min-width: 0;
	flex-basis: auto !important;
}

.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(1) {
	grid-column: span 6;
}

.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(2),
.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(3),
.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(4) {
	grid-column: span 2;
}

.cirrusly-interact-page__card,
.cirrusly-interact-page__story-band {
	box-shadow: var(--cw-shadow-card);
}

.cirrusly-interact-page__card {
	display: grid;
	grid-template-rows: auto 1fr auto;
	height: 100%;
}

.cirrusly-interact-page__card-label {
	margin: 0;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.cirrusly-interact-page__card--featured {
	position: relative;
	overflow: hidden;
	box-shadow: var(--cw-shadow-card), 0 18px 42px rgba(16, 32, 64, .08);
}

.cirrusly-interact-page__card--featured::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at top right, rgba(255, 255, 255, .72), transparent 42%),
		linear-gradient(135deg, rgba(255, 255, 255, .25), rgba(255, 255, 255, 0));
	pointer-events: none;
}

.cirrusly-interact-page__card--featured > * {
	position: relative;
	z-index: 1;
}

.cirrusly-interact-page__story-grid {
	align-items: start;
}

.cirrusly-interact-page__close {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 900px) {
	.cirrusly-account-sidebar-column {
		position: static;
	}

	.cirrusly-support-page__hero {
		padding-left: var(--wp--preset--spacing--40) !important;
		padding-right: var(--wp--preset--spacing--40) !important;
	}

	.cirrusly-interact-page__grid .cirrusly-feature-boxes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(1) {
		grid-column: span 2;
	}

	.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(2),
	.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(3),
	.cirrusly-interact-page__grid .cirrusly-feature-boxes > .wp-block-column:nth-child(4) {
		grid-column: span 1;
	}

	.cirrusly-interact-page__hero,
	.cirrusly-interact-page__story-band {
		padding-left: var(--wp--preset--spacing--40) !important;
		padding-right: var(--wp--preset--spacing--40) !important;
	}
}

@media (max-width: 760px) {
	.cirrusly-support-page .cirrusly-feature-boxes {
		display: block;
	}

	.cirrusly-interact-page__grid .cirrusly-feature-boxes {
		display: block;
	}
}

/* ============================================================
   HERO ATMOSPHERE — decorative layer + live condition states
   ============================================================ */

/* Ensure inner content sits above all atmosphere layers */
.cirrusly-hero .wp-block-cover__inner-container,
.cirrusly-hero__inner {
	position: relative;
	z-index: 10;
}

/* Container for all decorative atmosphere elements */
.cirrusly-hero__atmosphere {
	position: absolute;
	inset: 0;
	pointer-events: none;
	overflow: hidden;
	z-index: 1;
}

/* ------------------------------------------------------------------
   Hero sky engine — reuses the weather-lab workspace state machine
   (drifting PNG cloud decks, sun/moon, dual rain, snow, sleet, fog +
   headlights, storm lightning, sky washes) and matches it to the live
   NWS sky condition. We only override the sky-gradient colors per
   state so the sky stays dark enough for the white hero copy; the lab
   rules continue to drive clouds, precipitation and lightning.
   ------------------------------------------------------------------ */
.cirrusly-hero__sky-engine {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	width: auto;
	opacity: 1;
	transform: scale(1);
	transition: opacity .7s ease, transform .95s ease, filter .95s ease;
}

.cirrusly-hero__sky-engine .cirrusly-weather-lab-workspace__stage {
	position: absolute;
	inset: 0;
	min-height: 0;
	border-radius: 0;
	box-shadow: none;
	/* Branded deep-sky default (partly-cloudy day) */
	--weather-sky-top: #12123F;
	--weather-sky-mid: #0945c8;
	--weather-sky-bottom: #1e5fd9;
	--weather-wash-opacity: .5;
	--weather-vignette-opacity: .42;
	--weather-sky-flare-opacity: .12;
	transition: filter .95s ease, opacity .75s ease, transform 1s ease;
}

.cirrusly-hero__sky-engine.is-pending-weather {
	opacity: .78;
	transform: scale(1.02);
	filter: saturate(.88);
}

.cirrusly-hero__sky-engine.is-pending-weather .cirrusly-weather-lab-workspace__stage {
	filter: blur(10px);
	transform: scale(1.035);
}

.cirrusly-hero__sky-engine.is-weather-ready {
	opacity: 1;
	transform: scale(1);
	filter: none;
}

.cirrusly-hero__sky-engine.is-weather-ready .cirrusly-weather-lab-workspace__stage {
	filter: none;
	transform: scale(1);
}

/* Sunny — clear blue day, sun, no cloud layer at all. */
.cirrusly-hero__sky-engine[data-weather-state="sunny"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #0e2a73;
	--weather-sky-mid: #1c63e0;
	--weather-sky-bottom: #4a8ef7;
	--weather-sun-opacity: 1;
	--weather-cloud-opacity: 0;
	--weather-moon-opacity: 0;
}

/* Clear — night equivalent of sunny: no clouds; the night block below
   supplies the dark starlit sky and moon. */
.cirrusly-hero__sky-engine[data-weather-state="clear"] .cirrusly-weather-lab-workspace__stage {
	--weather-cloud-opacity: 0;
}

/* Fair — bright, faintly warm day; sun prominent, only a thin veil of cloud. */
.cirrusly-hero__sky-engine[data-weather-state="fair"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #143178;
	--weather-sky-mid: #2169e6;
	--weather-sky-bottom: #5aa0fb;
	--weather-sun-opacity: 1;
	--weather-cloud-opacity: .22;
	--weather-moon-opacity: 0;
	--weather-sky-flare-opacity: .32;
}

/* Haze — fair, but hot & humid: warm amber wash and a diffuse, bloomy sun. */
.cirrusly-hero__sky-engine[data-weather-state="haze"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #2a3a74;
	--weather-sky-mid: #4f6db0;
	--weather-sky-bottom: #c2b08c;
	--weather-sun-opacity: .9;
	--weather-cloud-opacity: .12;
	--weather-moon-opacity: 0;
	--weather-sky-flare-opacity: .5;
}
.cirrusly-hero__sky-engine[data-weather-state="haze"] .cirrusly-weather-lab-workspace__sun {
	filter: blur(7px);
	box-shadow: 0 0 120px 44px rgba(255,226,150,.5);
}
.cirrusly-hero__sky-engine[data-weather-state="haze"] .cirrusly-weather-lab-workspace__wash {
	opacity: 1;
	background: linear-gradient(180deg, rgba(255,228,170,.24) 0%, rgba(255,214,150,.12) 45%, rgba(255,201,135,.18) 100%);
}

/* Partly cloudy — a few discrete clouds drifting through at different
   heights and times, leaving the sky mostly open blue with a bright sun. */
.cirrusly-hero__sky-engine[data-weather-state="partly-cloudy"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #112348;
	--weather-sky-mid: #214fb8;
	--weather-sky-bottom: #3072d8;
	--weather-sun-opacity: .9;
	--weather-cloud-opacity: 1;
}

/* Mostly clear — night-only: the partly-cloudy clouds, one fewer. */
.cirrusly-hero__sky-engine[data-weather-state="mostly-clear"] .cirrusly-weather-lab-workspace__stage {
	--weather-cloud-opacity: 1;
}
.cirrusly-hero__sky-engine[data-weather-state="mostly-clear"] .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	display: none;
}

/* Reuse the clouds_3 sprite (a wide soft cloud band) on each layer,
   sized to its natural 4.63:1 aspect and travelled container-relative
   via `left` so it only resets once its right edge is fully off the
   left of the frame — no pop. Staggered timing leaves open blue between
   passes, then each cloud re-enters from the right. */
.cirrusly-hero__sky-engine:is([data-weather-state="partly-cloudy"],[data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-1,
.cirrusly-hero__sky-engine:is([data-weather-state="partly-cloudy"],[data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-2,
.cirrusly-hero__sky-engine:is([data-weather-state="partly-cloudy"],[data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	right: auto;
	left: 100%;
	background-image: url("../images/weather-lab/clouds_3.png");
	background-repeat: no-repeat;
	background-size: 100% 100%;
	animation-name: cirrusly-hero-cloud-cross;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}
.cirrusly-hero__sky-engine:is([data-weather-state="partly-cloudy"],[data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-1 {
	top: 6%;
	width: 880px;
	height: 190px;
	animation-duration: 97s;
	animation-delay: 0s;
	opacity: .85;
}
.cirrusly-hero__sky-engine:is([data-weather-state="partly-cloudy"],[data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-2 {
	top: 32%;
	width: 1000px;
	height: 216px;
	animation-duration: 131s;
	animation-delay: -53s;
	opacity: .7;
}
.cirrusly-hero__sky-engine:is([data-weather-state="partly-cloudy"],[data-weather-state="mostly-clear"]) .cirrusly-weather-lab-workspace__clouds .clouds-3 {
	top: 0;
	width: 760px;
	height: 164px;
	animation-duration: 113s;
	animation-delay: -89s;
	opacity: .8;
}
/* Travel from fully off the right (left edge at the frame's right edge)
   to fully off the left (well past -max-cloud-width), so the reset
   always happens off-screen. */
@keyframes cirrusly-hero-cloud-cross {
	from { left: 110%; }
	to   { left: -1300px; }
}

/* Mostly cloudy / partly sunny — continuous cloud bands covering ~75% of
   the sky from the top, sun barely breaking through. */
.cirrusly-hero__sky-engine[data-weather-state="mostly-cloudy"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #18305f;
	--weather-sky-mid: #2a4d8c;
	--weather-sky-bottom: #4f79b8;
	--weather-sun-opacity: .22;
	--weather-cloud-opacity: .95;
}
.cirrusly-hero__sky-engine[data-weather-state="mostly-cloudy"] .cirrusly-weather-lab-workspace__clouds > div {
	height: 75%;
}

/* Overcast */
.cirrusly-hero__sky-engine[data-weather-state="overcast"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #0f1520;
	--weather-sky-mid: #1c2840;
	--weather-sky-bottom: #293555;
}

/* Rain / freezing rain (lab adds the falling sheets) */
.cirrusly-hero__sky-engine[data-weather-state="rain"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #090d20;
	--weather-sky-mid: #111840;
	--weather-sky-bottom: #192050;
}

/* Wintry mix */
.cirrusly-hero__sky-engine[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #0c1424;
	--weather-sky-mid: #16203c;
	--weather-sky-bottom: #243358;
}

/* Sleet */
.cirrusly-hero__sky-engine[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #0c1322;
	--weather-sky-mid: #161f38;
	--weather-sky-bottom: #223153;
}

/* Snow */
.cirrusly-hero__sky-engine[data-weather-state="snow"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #0c1525;
	--weather-sky-mid: #152035;
	--weather-sky-bottom: #1d2d48;
}

/* Thunderstorm (lab adds heavy rain + lightning) */
.cirrusly-hero__sky-engine[data-weather-state="storm"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #050610;
	--weather-sky-mid: #090d1e;
	--weather-sky-bottom: #0e1330;
}

/* Fog / mist (lab adds the veil + headlights) */
.cirrusly-hero__sky-engine[data-weather-state="fog"] .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #121822;
	--weather-sky-mid: #1b2535;
	--weather-sky-bottom: #222e42;
}

/* ---- Night-time treatment (auto via data-sky-time, plus the inherently
   night states). Dark starlit sky, moon up, sun hidden — applied to the
   clear-sky and partial-cloud family; precipitation keeps its single look. */
.cirrusly-hero__sky-engine[data-weather-state="night"] .cirrusly-weather-lab-workspace__stage,
.cirrusly-hero__sky-engine[data-weather-state="clear"] .cirrusly-weather-lab-workspace__stage,
.cirrusly-hero__sky-engine[data-weather-state="mostly-clear"] .cirrusly-weather-lab-workspace__stage,
.cirrusly-hero__sky-engine[data-sky-time="night"]:is([data-weather-state="fair"],[data-weather-state="haze"],[data-weather-state="partly-cloudy"],[data-weather-state="mostly-cloudy"]) .cirrusly-weather-lab-workspace__stage {
	--weather-sky-top: #03060f;
	--weather-sky-mid: #081226;
	--weather-sky-bottom: #0e1d38;
	--weather-sun-opacity: 0;
	--weather-moon-opacity: 1;
	--weather-sky-flare-opacity: 0;
	--weather-vignette-opacity: .58;
}
/* Base night keeps a couple of soft clouds drifting. */
.cirrusly-hero__sky-engine[data-weather-state="night"] .cirrusly-weather-lab-workspace__stage {
	--weather-cloud-opacity: .4;
}

/* Star field for clear-ish nights, behind the clouds and moon. */
.cirrusly-hero__sky-engine[data-weather-state="night"] .cirrusly-weather-lab-workspace__sky::before,
.cirrusly-hero__sky-engine[data-weather-state="clear"] .cirrusly-weather-lab-workspace__sky::before,
.cirrusly-hero__sky-engine[data-weather-state="mostly-clear"] .cirrusly-weather-lab-workspace__sky::before,
.cirrusly-hero__sky-engine[data-sky-time="night"]:is([data-weather-state="fair"],[data-weather-state="partly-cloudy"]) .cirrusly-weather-lab-workspace__sky::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image:
		radial-gradient(1.6px 1.6px at 12% 18%, rgba(255,255,255,.9) 50%, transparent 52%),
		radial-gradient(1.4px 1.4px at 28% 42%, rgba(255,255,255,.7) 50%, transparent 52%),
		radial-gradient(1.8px 1.8px at 44% 13%, rgba(255,255,255,.95) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 61% 31%, rgba(255,255,255,.65) 50%, transparent 52%),
		radial-gradient(1.5px 1.5px at 78% 20%, rgba(255,255,255,.85) 50%, transparent 52%),
		radial-gradient(1.3px 1.3px at 88% 45%, rgba(255,255,255,.7) 50%, transparent 52%),
		radial-gradient(1.4px 1.4px at 20% 63%, rgba(255,255,255,.6) 50%, transparent 52%),
		radial-gradient(1.6px 1.6px at 52% 57%, rgba(255,255,255,.8) 50%, transparent 52%),
		radial-gradient(1.2px 1.2px at 72% 69%, rgba(255,255,255,.55) 50%, transparent 52%),
		radial-gradient(1.5px 1.5px at 35% 77%, rgba(255,255,255,.7) 50%, transparent 52%);
	animation: cirrusly-hero-twinkle 6.5s ease-in-out infinite;
}
@keyframes cirrusly-hero-twinkle {
	0%, 100% { opacity: .9; }
	50% { opacity: .55; }
}

/* ---- Precipitation coverage: enlarge the rotated rain layers so they fill
   the whole frame (kills the dry bottom-left corner). ---- */
.cirrusly-hero__sky-engine:is([data-weather-state="rain"],[data-weather-state="storm"],[data-weather-state="mixed"],[data-weather-state="sleet"],[data-weather-state="snow"]) .cirrusly-weather-lab-workspace__rain {
	inset: -32% -28%;
	-webkit-mask-image: none;
	mask-image: none;
}

/* ---- Snow & sleet as gentle round particles (no snowflake glyphs),
   falling straight down: snow drifts slowly, sleet falls fast. Tile heights
   all divide 480 so the fall loops seamlessly. ---- */
.cirrusly-hero__sky-engine:is([data-weather-state="snow"],[data-weather-state="sleet"]) .cirrusly-weather-lab-workspace__rain--1,
.cirrusly-hero__sky-engine:is([data-weather-state="snow"],[data-weather-state="sleet"]) .cirrusly-weather-lab-workspace__rain--2 {
	transform: none;
	filter: none;
	background-position: 0 0;
	background-repeat: repeat;
	background-image: radial-gradient(circle, rgba(255,255,255,.95) 0 1.6px, rgba(255,255,255,0) 2.3px);
}
.cirrusly-hero__sky-engine[data-weather-state="snow"] .cirrusly-weather-lab-workspace__rain--1 { opacity: .9; background-size: 60px 48px; animation: cirrusly-hero-particles 7s linear infinite; }
.cirrusly-hero__sky-engine[data-weather-state="snow"] .cirrusly-weather-lab-workspace__rain--2 { opacity: .6; background-size: 88px 60px; background-position-x: 24px; animation: cirrusly-hero-particles 9.5s linear infinite; }
.cirrusly-hero__sky-engine[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__rain--1 { opacity: .9; background-size: 44px 40px; animation: cirrusly-hero-particles 1.4s linear infinite; }
.cirrusly-hero__sky-engine[data-weather-state="sleet"] .cirrusly-weather-lab-workspace__rain--2 { opacity: .6; background-size: 34px 30px; background-position-x: 17px; animation: cirrusly-hero-particles 1.05s linear infinite; }

/* Wintry mix = rain streaks (rain--1) + drifting snow particles (rain--2). */
.cirrusly-hero__sky-engine[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__rain--1 {
	opacity: .7;
	background-image: var(--weather-rain-drop-strong);
	background-repeat: repeat;
	background-size: 18px 36px;
	transform: rotate(12deg);
	animation: cirrusly-weather-lab-rain-1 1.1s linear infinite;
}
.cirrusly-hero__sky-engine[data-weather-state="mixed"] .cirrusly-weather-lab-workspace__rain--2 {
	opacity: .8;
	transform: none;
	filter: none;
	background-position: 12px 0;
	background-repeat: repeat;
	background-image: radial-gradient(circle, rgba(255,255,255,.95) 0 1.6px, rgba(255,255,255,0) 2.3px);
	background-size: 80px 60px;
	animation: cirrusly-hero-particles 8s linear infinite;
}
@keyframes cirrusly-hero-particles {
	from { background-position-y: 0; }
	to   { background-position-y: 480px; }
}

/* ---- Storm lightning: flash ~1.2s after load, then occasionally; localized
   to the upper cloud band so it never washes out the headline. ---- */
.cirrusly-hero__sky-engine[data-weather-state="storm"] .cirrusly-weather-lab-workspace__lightning {
	opacity: 0;
	left: 30%;
	right: 30%;
	width: auto;
	top: 18px;
	height: 210px;
	z-index: 3;
	animation: cirrusly-hero-lightning 9s ease-out infinite;
}
@keyframes cirrusly-hero-lightning {
	0%, 11% { opacity: 0; }
	13% { opacity: .92; }
	15% { opacity: .25; }
	17% { opacity: .8; }
	20% { opacity: 0; }
	55% { opacity: 0; }
	57% { opacity: .85; }
	59% { opacity: .2; }
	61% { opacity: .65; }
	64% { opacity: 0; }
	100% { opacity: 0; }
}

/* ----------------------------------------------------------
   Sky widget loading pulse
   ---------------------------------------------------------- */
@keyframes cw-pulse {
	0%, 100% { opacity: 1;   }
	50%      { opacity: 0.45; }
}
.cirrusly-sky-widget.is-loading [data-sky-temp]         { animation: cw-pulse 1.5s ease-in-out   0ms infinite; }
.cirrusly-sky-widget.is-loading [data-sky-wind]         { animation: cw-pulse 1.5s ease-in-out 100ms infinite; }
.cirrusly-sky-widget.is-loading [data-sky-pressure]     { animation: cw-pulse 1.5s ease-in-out 200ms infinite; }
.cirrusly-sky-widget.is-loading [data-sky-feels]        { animation: cw-pulse 1.5s ease-in-out 300ms infinite; }
.cirrusly-sky-widget.is-loading [data-sky-precip-today] { animation: cw-pulse 1.5s ease-in-out 400ms infinite; }
.cirrusly-sky-widget.is-loading [data-sky-precip-month] { animation: cw-pulse 1.5s ease-in-out 500ms infinite; }

/* ----------------------------------------------------------
   Reduced motion — disable all atmosphere animations
   ---------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	.cirrusly-weather-lab-workspace__clouds > div,
	.cirrusly-weather-lab-workspace__rain,
	.cirrusly-weather-lab-workspace__fog,
	.cirrusly-weather-lab-workspace__lightning,
	.cirrusly-weather-lab-workspace__sun {
		animation: none !important;
		transition: none !important;
	}
	.cirrusly-sky-widget.is-loading [data-sky-temp],
	.cirrusly-sky-widget.is-loading [data-sky-wind],
	.cirrusly-sky-widget.is-loading [data-sky-pressure],
	.cirrusly-sky-widget.is-loading [data-sky-feels],
	.cirrusly-sky-widget.is-loading [data-sky-precip-today],
	.cirrusly-sky-widget.is-loading [data-sky-precip-month] {
		animation: none !important;
		transition: none !important;
	}
}

/* ============================================================
   HERO CONDITION GALLERY — weather-lab demo of every hero sky
   Renders the real sky engine pinned to each NWS state so all
   conditions can be reviewed without waiting on the weather.
   ============================================================ */
.cirrusly-hero-demo-gallery {
	max-width: 1200px;
	margin: 3.5rem auto 0;
	padding-inline: 1rem;
}
.cirrusly-hero-demo-gallery__head {
	max-width: 720px;
	margin: 0 auto 1.75rem;
	text-align: center;
}
.cirrusly-hero-demo-gallery__head h2 {
	margin: .35rem 0 .5rem;
	font-size: clamp(1.4rem, 1rem + 1.6vw, 2rem);
	color: var(--cw-primary-dark);
}
.cirrusly-hero-demo-gallery__head p {
	color: var(--cw-gray-700);
	line-height: 1.6;
}
.cirrusly-hero-demo-gallery__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
.cirrusly-hero-demo { margin: 0; }
.cirrusly-hero-demo__frame {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 300px;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 18px 40px rgba(18,18,63,.14);
}
.cirrusly-hero-demo__content {
	position: relative;
	z-index: 10;
	padding: 1.5rem 1.75rem;
}
.cirrusly-hero-demo__title {
	color: #fff;
	font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem);
	font-weight: 500;
	letter-spacing: -.02em;
	text-shadow: 0 1px 12px rgba(4,8,18,.45);
}
.cirrusly-hero-demo__title em { font-style: italic; }
.cirrusly-hero-demo__caption {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .75rem;
	margin-top: .6rem;
	font-size: .9rem;
	color: var(--cw-gray-700);
}
.cirrusly-hero-demo__caption code {
	font-size: .76rem;
	color: var(--cw-gray-500);
	font-variant-numeric: tabular-nums;
}
@media (max-width: 800px) {
	.cirrusly-hero-demo-gallery__grid { grid-template-columns: 1fr; }
}
