/* ==========================================================================
   YOUnique Wellness — design system
   Authored as plain CSS (no build step). Order: tokens → base → components
   → sections → responsive → motion preferences.
   ========================================================================== */

/* --------------------------------------------------------------- 1. Fonts */
/* Self-hosted so there is no third-party connection on the critical path.
   font-display:swap keeps first paint instant; the metric-adjust keeps the
   fallback close enough that the swap is barely visible. */
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('../fonts/quicksand-300.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/quicksand-400.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/quicksand-500.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/quicksand-600.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}
@font-face {
	font-family: 'Quicksand';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/quicksand-700.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215;
}

/* -------------------------------------------------------------- 2. Tokens */
:root {
	/* Brand */
	--uw-primary: #21C7BB;
	--uw-primary-600: #14A79C;
	--uw-primary-700: #0E877E;
	--uw-primary-050: #E8FAF8;
	--uw-primary-100: #CFF3EF;

	--uw-blue: #1D5FA8;
	--uw-blue-600: #164B87;
	--uw-blue-050: #EAF2FB;

	--uw-red: #E2504F;
	--uw-red-600: #C93F3E;
	--uw-red-050: #FDEEED;

	--uw-green: #2E9E6B;
	--uw-green-600: #248156;
	--uw-green-050: #EAF7F1;

	/* Neutrals — deliberately warm slate, never pure black */
	--uw-ink: #22323A;
	--uw-ink-2: #3E525C;
	--uw-ink-3: #5F7480;
	--uw-muted: #8095A0;
	--uw-line: #E1ECEF;
	--uw-line-2: #EEF5F6;
	--uw-bg: #FFFFFF;
	--uw-bg-soft: #F5FBFA;
	--uw-bg-tint: #EFF8F7;

	/* Type */
	--uw-font: 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	--uw-fs-h1: clamp(2rem, 1.15rem + 3.7vw, 4rem);
	--uw-fs-h2: clamp(1.65rem, 1.1rem + 2.2vw, 2.75rem);
	--uw-fs-h3: clamp(1.2rem, 1rem + 0.8vw, 1.6rem);
	--uw-fs-lead: clamp(1rem, 0.94rem + 0.3vw, 1.175rem);
	--uw-fs-body: clamp(0.975rem, 0.94rem + 0.16vw, 1.0625rem);
	--uw-fs-small: 0.875rem;

	/* Space & shape */
	--uw-wrap: 1240px;
	--uw-gutter: clamp(1.1rem, 4vw, 3rem);
	--uw-section: clamp(3.5rem, 7vw, 7rem);
	--uw-r-sm: 10px;
	--uw-r-md: 18px;
	--uw-r-lg: 26px;
	--uw-r-xl: 34px;
	--uw-r-pill: 999px;

	/* Elevation */
	--uw-sh-1: 0 2px 8px rgba(34, 50, 58, .05);
	--uw-sh-2: 0 10px 30px rgba(34, 50, 58, .08);
	--uw-sh-3: 0 22px 60px rgba(34, 50, 58, .12);
	--uw-sh-brand: 0 14px 34px rgba(33, 199, 187, .32);

	/* Motion */
	--uw-e-out: cubic-bezier(.22, .78, .3, 1);
	--uw-e-soft: cubic-bezier(.4, 0, .2, 1);
	--uw-t-fast: .18s;
	--uw-t: .32s;
	--uw-t-slow: .6s;

	--uw-header-h: 88px;
	color-scheme: light;
}

/* ---------------------------------------------------------------- 3. Base */
*, *::before, *::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--uw-header-h) + 18px);
}

body {
	margin: 0;
	background: var(--uw-bg);
	color: var(--uw-ink);
	font-family: var(--uw-font);
	font-size: var(--uw-fs-body);
	font-weight: 500;
	line-height: 1.72;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

body.uw-locked { overflow: hidden; }

/* Scroll-reveal tweens start elements 46px off their final x, which would
   widen the page until they play. `clip` (not `hidden`) trims that without
   creating a scroll container, so sticky positioning still works inside. */
.uw-main { overflow-x: clip; }

/* Suppress transitions until JS has booted, so nothing animates from its
   unstyled position on first paint. */
body.uw-preload *, body.uw-preload *::before, body.uw-preload *::after {
	transition: none !important;
	animation-play-state: paused !important;
}

img, svg, video, picture { max-width: 100%; display: block; }

/* Several components set display on themselves; without this the attribute
   loses and "hidden" elements render anyway. */
[hidden] { display: none !important; }
img, video { height: auto; }

a { color: var(--uw-blue); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--uw-primary-700); }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .5em;
	font-weight: 700;
	line-height: 1.18;
	letter-spacing: -.015em;
	color: var(--uw-ink);
	text-wrap: balance;
}

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

ul, ol { margin: 0 0 1.1em; padding-left: 1.15em; }

button { font: inherit; color: inherit; }

:focus-visible {
	outline: 3px solid var(--uw-primary);
	outline-offset: 3px;
	border-radius: 6px;
}

::selection { background: var(--uw-primary-100); color: var(--uw-ink); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.uw-skip {
	position: fixed;
	top: 10px; left: 10px;
	z-index: 999;
	padding: 12px 20px;
	background: var(--uw-primary);
	color: #fff;
	font-weight: 700;
	border-radius: var(--uw-r-pill);
	transform: translateY(-160%);
	transition: transform var(--uw-t) var(--uw-e-out);
	text-decoration: none;
}
.uw-skip:focus { transform: translateY(0); color: #fff; }

/* Shared layout rails */
.uw-header__inner, .uw-hero__inner, .uw-infobar__inner, .uw-doctor__inner,
.uw-gut__inner, .uw-gallery__inner, .uw-reviews__inner, .uw-cta__inner,
.uw-footer__inner, .uw-footer__bar, .uw-page__inner, .uw-single__inner,
.uw-archive__inner, .uw-pagehero__inner, .uw-404__inner {
	width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap));
	margin-inline: auto;
}

/* ------------------------------------------------------- 4. Type helpers */
.uw-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 .85rem;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--uw-primary-700);
}
.uw-eyebrow::before {
	content: '';
	width: 26px; height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--uw-primary), var(--uw-blue));
}
.uw-eyebrow--center { display: flex; justify-content: center; }
.uw-eyebrow--light { color: rgba(255, 255, 255, .92); }
.uw-eyebrow--light::before { background: rgba(255, 255, 255, .7); }

.uw-h2 { font-size: var(--uw-fs-h2); margin-bottom: .55em; }
.uw-h2--center { text-align: center; }

.uw-lead {
	font-size: var(--uw-fs-lead);
	color: var(--uw-ink-2);
	font-weight: 500;
	max-width: 68ch;
}
.uw-lead--center { margin-inline: auto; text-align: center; }

.uw-underline {
	position: relative;
	display: inline-block;
	color: var(--uw-primary-700);
	white-space: nowrap;
}
.uw-underline::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: .06em;
	height: .34em;
	border-radius: var(--uw-r-pill);
	background: linear-gradient(90deg, rgba(33, 199, 187, .32), rgba(29, 95, 168, .22));
	z-index: -1;
	transform: scaleX(var(--uw-ul, 1));
	transform-origin: left center;
	transition: transform .8s var(--uw-e-out);
}

/* ------------------------------------------------------------ 5. Buttons */
/* One component, six variants. The sweep is a pseudo-layer that scales from
   the left so hover reads as a fill rather than a colour flip. */
.uw-btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	padding: .95rem 1.6rem;
	border: 0;
	border-radius: var(--uw-r-pill);
	font-family: var(--uw-font);
	font-size: .975rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: .01em;
	text-decoration: none;
	cursor: pointer;
	overflow: hidden;
	isolation: isolate;
	white-space: nowrap;
	transition: transform var(--uw-t) var(--uw-e-out),
	            box-shadow var(--uw-t) var(--uw-e-out),
	            color var(--uw-t-fast) linear,
	            border-color var(--uw-t-fast) linear;
	-webkit-tap-highlight-color: transparent;
}
.uw-btn__label, .uw-btn__icon { position: relative; z-index: 2; display: inline-flex; }
.uw-btn__icon { transition: transform var(--uw-t) var(--uw-e-out); }
.uw-btn__fill {
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--uw-t-slow) var(--uw-e-out);
}
.uw-btn:hover, .uw-btn:focus-visible { transform: translateY(-2px); }
.uw-btn:hover .uw-btn__fill, .uw-btn:focus-visible .uw-btn__fill { transform: scaleX(1); }
.uw-btn:hover .uw-btn__icon { transform: translateX(4px); }
.uw-btn:active { transform: translateY(0) scale(.985); }
.uw-btn[disabled] { opacity: .45; pointer-events: none; }

/* Icons that point down or left should not slide right on hover. */
.uw-btn .uw-icon--arrow-down { transition: transform var(--uw-t) var(--uw-e-out); }
.uw-btn:hover .uw-btn__icon:has(.uw-icon--arrow-down) { transform: translateY(3px); }
.uw-btn:hover .uw-btn__icon:has(.uw-icon--calendar),
.uw-btn:hover .uw-btn__icon:has(.uw-icon--check),
.uw-btn:hover .uw-btn__icon:has(.uw-icon--phone) { transform: scale(1.12) rotate(-4deg); }

.uw-btn--sm { padding: .68rem 1.15rem; font-size: .875rem; }
.uw-btn--lg { padding: 1.12rem 2rem; font-size: 1.03rem; }

.uw-btn--primary {
	background: var(--uw-primary);
	color: #fff;
	box-shadow: var(--uw-sh-brand);
}
.uw-btn--primary .uw-btn__fill { background: linear-gradient(120deg, var(--uw-primary-600), var(--uw-blue)); }
.uw-btn--primary:hover, .uw-btn--primary:focus-visible { color: #fff; box-shadow: 0 18px 40px rgba(29, 95, 168, .3); }

.uw-btn--blue { background: var(--uw-blue); color: #fff; box-shadow: 0 12px 30px rgba(29, 95, 168, .26); }
.uw-btn--blue .uw-btn__fill { background: linear-gradient(120deg, var(--uw-blue-600), var(--uw-primary)); }
.uw-btn--blue:hover, .uw-btn--blue:focus-visible { color: #fff; }

.uw-btn--red { background: var(--uw-red); color: #fff; box-shadow: 0 12px 30px rgba(226, 80, 79, .26); }
.uw-btn--red .uw-btn__fill { background: linear-gradient(120deg, var(--uw-red-600), #B23130); }
.uw-btn--red:hover, .uw-btn--red:focus-visible { color: #fff; }

.uw-btn--outline {
	background: transparent;
	color: var(--uw-ink);
	box-shadow: inset 0 0 0 2px var(--uw-line);
}
.uw-btn--outline .uw-btn__fill { background: var(--uw-primary-050); }
.uw-btn--outline:hover, .uw-btn--outline:focus-visible {
	color: var(--uw-primary-700);
	box-shadow: inset 0 0 0 2px var(--uw-primary);
}

.uw-btn--white {
	background: #fff;
	color: var(--uw-ink);
	box-shadow: var(--uw-sh-2);
}
.uw-btn--white .uw-btn__fill { background: linear-gradient(120deg, var(--uw-primary-050), #fff); }
.uw-btn--white:hover, .uw-btn--white:focus-visible { color: var(--uw-primary-700); }

.uw-btn--ghost {
	background: rgba(255, 255, 255, .1);
	color: #fff;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .55);
}
.uw-btn--ghost .uw-btn__fill { background: rgba(255, 255, 255, .18); }
.uw-btn--ghost:hover, .uw-btn--ghost:focus-visible { color: #fff; box-shadow: inset 0 0 0 2px #fff; }

/* ------------------------------------------------------------- 6. Header */
.uw-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 200;
	background: rgba(255, 255, 255, .82);
	backdrop-filter: saturate(180%) blur(14px);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
	border-bottom: 1px solid transparent;
	transition: background var(--uw-t) var(--uw-e-soft),
	            box-shadow var(--uw-t) var(--uw-e-soft),
	            border-color var(--uw-t) var(--uw-e-soft),
	            transform var(--uw-t-slow) var(--uw-e-out);
}
.uw-header.is-stuck {
	background: rgba(255, 255, 255, .96);
	border-bottom-color: var(--uw-line);
	box-shadow: 0 6px 26px rgba(34, 50, 58, .07);
}
/* Hide on scroll-down, reveal on scroll-up — gives phones back ~84px. */
.uw-header.is-hidden { transform: translateY(-105%); }

.uw-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	min-height: var(--uw-header-h);
	padding-block: .45rem;
}

.uw-header__progress {
	position: absolute;
	left: 0; bottom: -1px;
	height: 3px;
	width: 100%;
	transform: scaleX(0);
	transform-origin: left center;
	background: linear-gradient(90deg, var(--uw-primary), var(--uw-blue), var(--uw-green));
	border-radius: 0 3px 3px 0;
}

/* Brand lockup */
.uw-brand {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	min-width: 0;
	text-decoration: none;
	color: inherit;
	flex: 0 1 auto;
}
.uw-brand__mark {
	display: block;
	flex-shrink: 0;
	height: 72px;
	line-height: 0;
	transition: transform var(--uw-t) var(--uw-e-out);
}
.uw-brand:hover .uw-brand__mark { transform: scale(1.04); }
/* The supplied logo is landscape (roughly 3:2) and sits on its own white
   ground, so it needs no card on the white header — height drives the size and
   width follows the artwork. */
.uw-brand__pic, .uw-brand__gif {
	display: block;
	height: 72px;
	width: auto;
	max-width: 84px;
	object-fit: contain;
}

.uw-brand__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
.uw-brand__name {
	font-size: clamp(1.16rem, 1.04rem + .42vw, 1.5rem);
	font-weight: 700;
	letter-spacing: -.02em;
	color: var(--uw-ink);
}
.uw-brand__tag {
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .17em;
	text-transform: uppercase;
	color: var(--uw-primary-700);
}

/* Nav — desktop bar only. The mobile drawer is a separate element at body
   level (see section 6b), which keeps it out of reach of any transform or
   filter the header happens to be carrying. */
.uw-nav { margin-left: auto; }
.uw-nav__list {
	display: flex;
	align-items: center;
	gap: .15rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.uw-nav__item { position: relative; }
.uw-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: .62rem .8rem;
	border-radius: var(--uw-r-pill);
	font-size: .94rem;
	font-weight: 600;
	color: var(--uw-ink-2);
	text-decoration: none;
	transition: color var(--uw-t-fast) linear, background var(--uw-t-fast) linear;
}
.uw-nav__link::after {
	content: '';
	position: absolute;
	left: 50%; bottom: .3rem;
	width: 0; height: 2px;
	border-radius: 2px;
	background: var(--uw-primary);
	transform: translateX(-50%);
	transition: width var(--uw-t) var(--uw-e-out);
}
.uw-nav__link:hover, .uw-nav__link:focus-visible { color: var(--uw-primary-700); }
.uw-nav__link:hover::after { width: 22px; }
.uw-nav__item.current-menu-item > .uw-nav__link,
.uw-nav__item.current-menu-ancestor > .uw-nav__link,
.uw-nav__item.current_page_item > .uw-nav__link {
	color: var(--uw-primary-700);
	background: var(--uw-primary-050);
}
.uw-nav__item.current-menu-item > .uw-nav__link::after { width: 22px; }

.uw-nav__toggle {
	display: inline-grid;
	place-items: center;
	width: 24px; height: 24px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--uw-muted);
	cursor: pointer;
	border-radius: 50%;
	transition: transform var(--uw-t) var(--uw-e-out), color var(--uw-t-fast) linear;
}
/* The disclosure chevron is a flex sibling of the link, not an absolutely
   positioned overlay. Absolute positioning made the item's own box narrower
   than its painted content, so the chevron leaked over the next item and the
   row read as misaligned. As a sibling the item measures itself correctly. */
.uw-nav__item--parent { display: flex; align-items: center; }
.uw-nav__item--parent > .uw-nav__link { padding-right: .34rem; }
.uw-nav__item--parent > .uw-nav__toggle {
	flex: 0 0 auto;
	width: 18px; height: 18px;
	margin-right: .5rem;
}
.uw-nav__item--parent > .uw-nav__toggle svg { width: 16px; height: 16px; }
.uw-nav__item--parent.is-open > .uw-nav__toggle { transform: rotate(180deg); color: var(--uw-primary); }

.uw-submenu {
	position: absolute;
	top: calc(100% + 12px);
	left: 50%;
	min-width: 244px;
	margin: 0;
	padding: .5rem;
	list-style: none;
	background: #fff;
	border-radius: var(--uw-r-md);
	box-shadow: var(--uw-sh-3);
	border: 1px solid var(--uw-line-2);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 10px);
	transition: opacity var(--uw-t) var(--uw-e-out),
	            transform var(--uw-t) var(--uw-e-out),
	            visibility 0s linear var(--uw-t);
}
.uw-submenu::before {
	content: '';
	position: absolute;
	top: -7px; left: 50%;
	width: 14px; height: 14px;
	background: #fff;
	border-left: 1px solid var(--uw-line-2);
	border-top: 1px solid var(--uw-line-2);
	transform: translateX(-50%) rotate(45deg);
	border-radius: 3px 0 0 0;
}
.uw-nav__item--parent:hover > .uw-submenu,
.uw-nav__item--parent:focus-within > .uw-submenu,
.uw-nav__item--parent.is-open > .uw-submenu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
	transition-delay: 0s;
}
.uw-submenu .uw-nav__link {
	display: flex;
	width: 100%;
	padding: .68rem .85rem;
	border-radius: var(--uw-r-sm);
	font-weight: 600;
	color: var(--uw-ink-2);
}
.uw-submenu .uw-nav__link::after { display: none; }
.uw-submenu .uw-nav__link:hover { background: var(--uw-primary-050); color: var(--uw-primary-700); }

.uw-header__actions { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; }

/* Hamburger */
.uw-burger {
	display: none;
	place-items: center;
	width: 48px; height: 48px;
	padding: 0;
	border: 0;
	border-radius: 15px;
	background: var(--uw-primary-050);
	box-shadow: inset 0 0 0 1px var(--uw-primary-100);
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-burger:active { transform: scale(.94); }
.uw-burger__box { position: relative; display: block; width: 22px; height: 16px; }
.uw-burger__line {
	position: absolute;
	left: 0;
	width: 100%; height: 2.5px;
	border-radius: 3px;
	background: var(--uw-primary-700);
	transition: transform .4s var(--uw-e-out), opacity .2s linear, width .4s var(--uw-e-out);
}
.uw-burger__line:nth-child(1) { top: 0; }
.uw-burger__line:nth-child(2) { top: 6.75px; width: 70%; }
.uw-burger__line:nth-child(3) { top: 13.5px; }
.uw-burger[aria-expanded="true"] { background: var(--uw-primary); box-shadow: var(--uw-sh-brand); }
.uw-burger[aria-expanded="true"] .uw-burger__line { background: #fff; }
.uw-burger[aria-expanded="true"] .uw-burger__line:nth-child(1) { transform: translateY(6.75px) rotate(45deg); }
.uw-burger[aria-expanded="true"] .uw-burger__line:nth-child(2) { opacity: 0; transform: translateX(-12px); }
.uw-burger[aria-expanded="true"] .uw-burger__line:nth-child(3) { transform: translateY(-6.75px) rotate(-45deg); }

/* Keep the header put while a panel is open, so it cannot slide away behind
   the scrim mid-interaction. */
body.uw-navopen .uw-header,
body.uw-modalopen .uw-header { transform: none !important; }

/* ------------------------------------------------------- 6b. Drawer */
/* Lives at body level. Nothing above it in the tree can create a containing
   block, so it is always positioned against the viewport. */
.uw-drawer {
	position: fixed;
	inset: 0;
	z-index: 300;
}
.uw-drawer[hidden] { display: none; }

.uw-drawer__scrim {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgba(20, 40, 48, .48);
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
	opacity: 0;
	transition: opacity var(--uw-t) var(--uw-e-soft);
}
.uw-drawer.is-open .uw-drawer__scrim { opacity: 1; }

.uw-drawer__panel {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(86vw, 380px);
	background: #fff;
	box-shadow: -22px 0 60px rgba(16, 40, 48, .2);
	transform: translateX(100%);
	transition: transform .42s var(--uw-e-out);
	overflow: hidden;
}
.uw-drawer.is-open .uw-drawer__panel { transform: translateX(0); }

.uw-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .8rem 1rem .8rem 1.15rem;
	border-bottom: 1px solid var(--uw-line-2);
}
.uw-drawer__brand { display: block; line-height: 0; text-decoration: none; }
.uw-drawer__mark { display: block; line-height: 0; }
.uw-drawer__mark .uw-brand__pic, .uw-drawer__mark .uw-brand__gif { height: 58px; width: auto; max-width: 68px; }
.uw-drawer__close {
	display: grid;
	place-items: center;
	width: 42px; height: 42px;
	flex: 0 0 42px;
	border: 0;
	border-radius: 50%;
	background: var(--uw-bg-soft);
	color: var(--uw-ink);
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-drawer__close:hover { background: var(--uw-red-050); color: var(--uw-red); }

.uw-drawer__body {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	padding: .5rem .8rem;
}

.uw-drawer__list { display: flex; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 0; list-style: none; }
.uw-drawer__list > .uw-nav__item {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	border-bottom: 1px solid var(--uw-line-2);
}
.uw-drawer__list > .uw-nav__item:last-child { border-bottom: 0; }
.uw-drawer__list .uw-submenu .uw-nav__item { border-bottom: 0; }
.uw-drawer__list .uw-nav__link {
	display: flex;
	justify-content: flex-start;
	padding: .95rem .6rem;
	border-radius: var(--uw-r-sm);
	font-size: 1.02rem;
	font-weight: 600;
	color: var(--uw-ink-2);
	text-decoration: none;
	transition: color var(--uw-t-fast) linear, background var(--uw-t-fast) linear;
}
.uw-drawer__list .uw-nav__link::after { display: none; }
.uw-drawer__list .uw-nav__link:hover { color: var(--uw-primary-700); background: var(--uw-primary-050); }
.uw-drawer__list > .uw-nav__item > .uw-nav__link { flex: 1 1 auto; min-width: 0; }
.uw-drawer__list .uw-nav__item--parent > .uw-nav__link { padding-right: .6rem; }
.uw-drawer__list .uw-nav__toggle {
	position: static;
	flex: 0 0 auto;
	margin-right: .2rem;
	display: grid;
	place-items: center;
	width: 34px; height: 34px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--uw-bg-soft);
	color: var(--uw-ink-3);
	cursor: pointer;
	transition: transform var(--uw-t) var(--uw-e-out), background var(--uw-t-fast) linear;
}
.uw-drawer__list .uw-nav__item--parent.is-open > .uw-nav__toggle {
	transform: rotate(180deg);
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
}
/* Inside the drawer the submenu is an inline, indented list — not the floating
   card the desktop bar uses. Every desktop dropdown property has to be undone
   explicitly, and at a specificity that also beats the shared `.is-open`
   reveal rule, or the panel floats over the menu rows. */
.uw-drawer__list .uw-nav__item--parent > .uw-submenu {
	display: none;
	position: static;
	flex: 1 1 100%;
	min-width: 0;
	top: auto; left: auto;
	margin: 0 0 .5rem .6rem;
	padding: 0 0 0 .8rem;
	list-style: none;
	background: none;
	border: 0;
	border-left: 2px solid var(--uw-primary-100);
	border-radius: 0;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: none;
}
.uw-drawer__list .uw-submenu::before { display: none; }
/* Hover/focus must not spring the drawer submenu open on touch. */
.uw-drawer__list .uw-nav__item--parent:hover > .uw-submenu,
.uw-drawer__list .uw-nav__item--parent:focus-within > .uw-submenu { display: none; }
.uw-drawer__list .uw-nav__item--parent.is-open > .uw-submenu { display: block; }
.uw-drawer__list .uw-submenu .uw-nav__link { padding: .6rem; font-size: .94rem; }

.uw-drawer__foot {
	display: grid;
	gap: .7rem;
	padding: 1rem 1.15rem max(1rem, env(safe-area-inset-bottom));
	border-top: 1px solid var(--uw-line-2);
}
.uw-drawer__cta { width: 100%; }
.uw-drawer__call {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .72rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-bg-soft);
	color: var(--uw-ink);
	font-weight: 700;
	font-size: .94rem;
	text-decoration: none;
}
.uw-drawer__call:hover { background: var(--uw-primary-050); color: var(--uw-primary-700); }

/* Above the drawer breakpoint the drawer is inert and the bar nav shows. */
@media (min-width: 1121px) {
	.uw-drawer { display: none !important; }
}

/* ------------------------------------------------------- 7. Contact rail */
/* Held back until the visitor starts reading, so it never lands on top of the
   hero call to action on a phone. */
.uw-social {
	position: fixed;
	top: 50%;
	left: 14px;
	z-index: 150;
	transform: translateY(-50%);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--uw-t) linear, visibility 0s linear var(--uw-t);
}
.uw-social.is-ready { opacity: 1; visibility: visible; transition-delay: 0s; }
.uw-social__list {
	display: flex;
	flex-direction: column;
	gap: .55rem;
	margin: 0;
	padding: .6rem .5rem;
	list-style: none;
	background: #fff;
	border-radius: var(--uw-r-pill);
	box-shadow: var(--uw-sh-2);
	border: 1px solid var(--uw-line-2);
}
.uw-social__item { display: flex; justify-content: center; }
/* The visible chip is 20px; ::after widens the pointer target to 30px so it
   still clears the WCAG 2.5.8 minimum without fattening the rail. */
.uw-social__link {
	position: relative;
	display: grid;
	place-items: center;
	width: 20px; height: 20px;
	border-radius: 50%;
	color: #1A2429;
	text-decoration: none;
	transition: transform var(--uw-t) var(--uw-e-out), color var(--uw-t-fast) linear;
}
.uw-social__link::after {
	content: '';
	position: absolute;
	inset: -5px;
	border-radius: 50%;
}
.uw-social__link:hover, .uw-social__link:focus-visible {
	transform: scale(1.18);
	color: var(--uw-primary-700);
}
.uw-social__link--phone { color: var(--uw-primary-700); }
.uw-social__link--phone:hover { color: var(--uw-blue); }
.uw-social__label {
	position: absolute;
	left: calc(100% + 14px);
	padding: .35rem .7rem;
	background: var(--uw-ink);
	color: #fff;
	font-size: .74rem;
	font-weight: 700;
	border-radius: var(--uw-r-sm);
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transform: translateX(-6px);
	transition: opacity var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-social__link:hover .uw-social__label { opacity: 1; transform: translateX(0); }

/* Back to top */
.uw-top {
	position: fixed;
	right: 18px; bottom: 22px;
	z-index: 150;
	display: grid;
	place-items: center;
	width: 46px; height: 46px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--uw-ink);
	box-shadow: var(--uw-sh-2);
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
	transform: translateY(14px);
	transition: opacity var(--uw-t) linear, transform var(--uw-t) var(--uw-e-out), background var(--uw-t-fast) linear;
}
.uw-top .uw-icon { transform: rotate(180deg); }
.uw-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.uw-top:hover { background: var(--uw-primary); color: #fff; }

/* --------------------------------------------------------------- 8. Hero */
.uw-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: clamp(560px, 90svh, 920px);
	padding: calc(var(--uw-header-h) + clamp(2rem, 5vw, 3.6rem)) 0 clamp(4.5rem, 9vw, 7.5rem);
	overflow: hidden;
	isolation: isolate;
}
.uw-hero__media { position: absolute; inset: 0; z-index: -2; background: var(--uw-ink); }
.uw-hero__video {
	width: 100%; height: 100%;
	object-fit: cover;
	transform: scale(1.06);
}
/* Two stacked washes: a teal→blue brand tint, then a bottom-weighted scrim so
   the white type always clears WCAG AA regardless of the frame behind it. */
.uw-hero__veil {
	position: absolute;
	inset: 0;
	/* Lighter through the middle so the footage reads, heavier top and bottom
	   where the type sits — the headline still clears AA either way. */
	background:
		linear-gradient(180deg, rgba(11, 33, 43, .78) 0%, rgba(12, 38, 50, .38) 46%, rgba(10, 30, 40, .86) 100%),
		linear-gradient(115deg, rgba(12, 78, 104, .34), rgba(18, 52, 104, .3));
}
.uw-hero__grain {
	position: absolute;
	inset: 0;
	opacity: .35;
	background-image: radial-gradient(rgba(255, 255, 255, .16) 1px, transparent 1px);
	background-size: 3px 3px;
	mix-blend-mode: overlay;
}

.uw-hero__inner { position: relative; text-align: center; }

/* The practice's own animation, sitting straight on the video — the artwork's
   white ground is cut out, so it needs a soft halo behind it to stay legible
   over the lighter frames of the footage. */
.uw-hero__logo {
	position: relative;
	display: block;
	width: clamp(200px, 26vw, 320px);
	margin: 0 auto clamp(.6rem, 2vw, 1.1rem);
	line-height: 0;
}
.uw-hero__logoGlow {
	position: absolute;
	inset: -18% -12%;
	border-radius: 50%;
	background: radial-gradient(60% 60% at 50% 50%, rgba(8, 30, 38, .42), transparent 72%);
	filter: blur(6px);
	pointer-events: none;
}
.uw-hero__logo picture { position: relative; display: block; }
.uw-hero__logoImg {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
}

.uw-hero__title {
	max-width: 20ch;
	margin: 0 auto .5em;
	font-size: var(--uw-fs-h1);
	font-weight: 700;
	line-height: 1.1;
	color: #fff;
	text-shadow: 0 2px 30px rgba(0, 0, 0, .28);
}
.uw-hero__title .uw-word { display: inline-block; }

/* Question shuffle */
.uw-shuffle {
	max-width: 780px;
	margin: 0 auto 1.9rem;
	padding: 1.1rem 1.25rem 1rem;
	border-radius: var(--uw-r-lg);
	background: rgba(255, 255, 255, .93);
	box-shadow: 0 18px 50px rgba(6, 26, 34, .32);
	border: 1px solid rgba(255, 255, 255, .8);
}
.uw-shuffle__viewport {
	position: relative;
	min-height: 4.4em;
	display: grid;
	align-items: center;
	/* Horizontal drags belong to the carousel, vertical ones to the page. */
	touch-action: pan-y;
	cursor: grab;
	-webkit-user-select: none;
	user-select: none;
	border-radius: var(--uw-r-md);
}
.uw-shuffle__viewport:focus-visible { outline-offset: 6px; }
.uw-shuffle__viewport.is-dragging { cursor: grabbing; }
/* While a finger is down the item follows it, so the transition must not fight
   the pointer. */
.uw-shuffle__viewport.is-dragging .uw-shuffle__item { transition: none; }
.uw-shuffle__list { display: grid; margin: 0; padding: 0; list-style: none; }
.uw-shuffle__item {
	grid-area: 1 / 1;
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: clamp(1rem, .93rem + .4vw, 1.2rem);
	font-weight: 600;
	line-height: 1.5;
	color: var(--uw-ink);
	text-align: left;
	opacity: 0;
	visibility: hidden;
	transform: translateY(14px);
	transition: opacity .5s var(--uw-e-soft), transform .5s var(--uw-e-out), visibility 0s linear .5s;
}
.uw-shuffle__item.is-active { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
/* Direction-aware entry: swiping left brings the next question in from the
   right, and vice versa, so the gesture and the motion agree. */
.uw-shuffle__item.from-right { transform: translateX(38px); }
.uw-shuffle__item.from-left { transform: translateX(-38px); }
.uw-shuffle__item.from-right.is-active,
.uw-shuffle__item.from-left.is-active { transform: translateX(0); }
.uw-shuffle__item .uw-icon { flex-shrink: 0; margin-top: .22em; color: var(--uw-primary); }

.uw-shuffle__hint {
	display: block;
	margin-top: .6rem;
	font-size: .72rem;
	font-weight: 600;
	color: var(--uw-muted);
	text-align: center;
}
.uw-shuffle__dots { display: flex; justify-content: center; gap: .4rem; margin-top: .6rem; }
.uw-shuffle__dot {
	width: 26px; height: 5px;
	padding: 0;
	border: 0;
	border-radius: var(--uw-r-pill);
	background: var(--uw-line);
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, width var(--uw-t) var(--uw-e-out);
}
.uw-shuffle__dot.is-active { width: 40px; background: var(--uw-primary); }
.uw-shuffle__dot:hover { background: var(--uw-primary-600); }

.uw-hero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .85rem; }

.uw-hero__sound {
	position: absolute;
	z-index: 3;
	top: calc(var(--uw-header-h) + 14px);
	right: clamp(.7rem, 3vw, 2.2rem);
	white-space: nowrap;
	padding: .48rem 1rem;
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: var(--uw-r-pill);
	background: rgba(12, 32, 40, .35);
	backdrop-filter: blur(6px);
	color: rgba(255, 255, 255, .88);
	font-size: .74rem;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-hero__sound:hover { background: rgba(255, 255, 255, .22); color: #fff; }


/* ------------------------------------------------------------ 9. Infobar */
/* Equal-height cells that stretch and centre their own content. Nothing here
   depends on the four cells having matching text lengths, so a wrapping phone
   number or a two-line opening-hours string can't drag one cell out of line. */
.uw-infobar { position: relative; z-index: 5; margin-top: clamp(-3.5rem, -5vw, -2rem); }
.uw-infobar__inner {
	display: grid;
	grid-template-columns: 1.15fr .92fr 1.12fr 1.16fr;
	align-items: stretch;
	padding: clamp(.5rem, 1.4vw, .9rem);
	background: #fff;
	border-radius: var(--uw-r-xl);
	box-shadow: var(--uw-sh-3);
	border: 1px solid var(--uw-line-2);
}

/* Top-aligned, not centred: when one cell wraps to two lines (the opening
   hours usually do), centring pushes its label up and its value down relative
   to its neighbours. Aligning to the top keeps every label on one line and
   every value on the next, and only the wrapping cell grows downwards. */
.uw-infobar__cell {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	min-width: 0;
	padding: clamp(.7rem, 1.4vw, 1rem) clamp(.7rem, 1.3vw, 1.15rem);
	border-radius: var(--uw-r-md);
	color: inherit;
	text-decoration: none;
	transition: background var(--uw-t-fast) linear;
}
/* Hairline separators drawn as borders on the cell, so they always land on the
   grid line no matter how tall the row grows. */
.uw-infobar__cell + .uw-infobar__cell { box-shadow: inset 1px 0 0 var(--uw-line-2); }
a.uw-infobar__cell:hover { background: var(--uw-bg-soft); }

.uw-infobar__badge {
	display: grid;
	place-items: center;
	width: 46px; height: 46px;
	flex: 0 0 46px;
	border-radius: 15px;
	margin-top: -1px;
	background: linear-gradient(140deg, var(--uw-primary), var(--uw-blue));
	color: #fff;
	box-shadow: var(--uw-sh-brand);
}
.uw-infobar__icon {
	display: grid;
	place-items: center;
	width: 40px; height: 40px;
	flex: 0 0 40px;
	border-radius: 13px;
}
.uw-infobar__icon--blue { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-infobar__icon--red { background: var(--uw-red-050); color: var(--uw-red); }
.uw-infobar__icon--green { background: var(--uw-green-050); color: var(--uw-green); }

.uw-infobar__text {
	display: flex;
	flex-direction: column;
	gap: .12rem;
	min-width: 0;
	padding-top: 1px;
}
.uw-infobar__text em {
	font-style: normal;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--uw-muted);
	line-height: 1.4;
}
.uw-infobar__text strong {
	font-size: .93rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--uw-ink);
	overflow-wrap: anywhere;
}
.uw-infobar__title { font-size: 1rem; line-height: 1.3; }
.uw-infobar__sub { font-size: .83rem; color: var(--uw-ink-3); line-height: 1.4; }

/* ------------------------------------------------------------- 10. Doctor */
.uw-doctor { padding-block: var(--uw-section); }
.uw-doctor__inner {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	align-items: center;
}
.uw-doctor__media { position: relative; }
.uw-doctor__frame {
	position: relative;
	/* A fixed square, so the homepage portrait and the About Us portrait — and
	   whatever the client uploads later — all sit in the same box. Without it
	   the section's height changes with whatever aspect ratio the photo
	   happens to have. */
	aspect-ratio: 1 / 1;
	border-radius: var(--uw-r-xl);
	overflow: hidden;
	box-shadow: var(--uw-sh-3);
	isolation: isolate;
}
.uw-doctor__frame picture { display: block; width: 100%; height: 100%; }
.uw-doctor__photo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 28%;
}
.uw-doctor__blob {
	position: absolute;
	inset: auto -18% -24% -18%;
	height: 55%;
	background: radial-gradient(60% 100% at 50% 100%, rgba(33, 199, 187, .35), transparent 70%);
	z-index: 1;
	pointer-events: none;
}
.uw-doctor__ring {
	position: absolute;
	inset: -22px;
	border-radius: calc(var(--uw-r-xl) + 22px);
	border: 2px dashed var(--uw-primary-100);
	z-index: -1;
}
.uw-doctor__card {
	position: absolute;
	right: clamp(-.5rem, -1vw, 0rem);
	bottom: -22px;
	display: flex;
	align-items: center;
	gap: .7rem;
	max-width: 280px;
	padding: .85rem 1.1rem;
	background: #fff;
	border-radius: var(--uw-r-md);
	box-shadow: var(--uw-sh-3);
	border: 1px solid var(--uw-line-2);
}
.uw-doctor__cardIcon {
	display: grid;
	place-items: center;
	width: 40px; height: 40px;
	flex-shrink: 0;
	border-radius: 12px;
	background: var(--uw-red-050);
	color: var(--uw-red);
}
.uw-doctor__card strong { display: block; font-size: .92rem; line-height: 1.3; }
.uw-doctor__card em { font-style: normal; font-size: .74rem; color: var(--uw-ink-3); line-height: 1.4; display: block; }

.uw-doctor__aka { display: block; font-size: .62em; font-weight: 600; color: var(--uw-primary-700); margin-top: .2em; }

.uw-doctor__stats {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}
.uw-stat {
	display: flex;
	align-items: center;
	gap: .55rem;
	padding: .6rem .95rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-bg-soft);
	border: 1px solid var(--uw-line-2);
}
.uw-stat__icon { display: grid; place-items: center; }
.uw-stat--teal .uw-stat__icon, .uw-stat--teal .uw-stat__value { color: var(--uw-primary-700); }
.uw-stat--blue .uw-stat__icon, .uw-stat--blue .uw-stat__value { color: var(--uw-blue); }
.uw-stat--green .uw-stat__icon, .uw-stat--green .uw-stat__value { color: var(--uw-green-600); }
.uw-stat__value { font-size: 1.02rem; font-weight: 700; }
.uw-stat__label { font-size: .8rem; color: var(--uw-ink-3); font-weight: 600; }

/* Read more */
.uw-doctor__more {
	overflow: hidden;
	height: 0;
	opacity: 0;
	transition: height .5s var(--uw-e-out), opacity .35s linear;
}
.uw-doctor__bio.is-open .uw-doctor__more { opacity: 1; }
.uw-doctor__intro { position: relative; }
.uw-doctor__bio:not(.is-open) .uw-doctor__intro::after {
	content: '';
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 3.5em;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 88%);
	pointer-events: none;
}
.uw-readmore {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-top: .9rem;
	padding: .55rem 1.1rem .55rem 1.2rem;
	border: 0;
	border-radius: var(--uw-r-pill);
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
	font-size: .9rem;
	font-weight: 700;
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, gap var(--uw-t) var(--uw-e-out);
}
.uw-readmore:hover { background: var(--uw-primary-100); gap: .7rem; }
.uw-readmore__icon { display: inline-flex; transition: transform var(--uw-t) var(--uw-e-out); }
.uw-doctor__bio.is-open .uw-readmore__icon { transform: rotate(180deg); }

.uw-doctor__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.9rem; }

/* ---------------------------------------------------------------- 11. Gut */
.uw-gut { position: relative; padding-block: var(--uw-section); background: var(--uw-bg-soft); overflow: hidden; }
.uw-gut__wash {
	position: absolute;
	inset: auto -10% -30% -10%;
	height: 60%;
	background: radial-gradient(50% 60% at 50% 100%, rgba(33, 199, 187, .14), transparent 70%);
	pointer-events: none;
}
.uw-gut__inner { position: relative; }
.uw-gut__head { max-width: 820px; margin: 0 auto clamp(2.2rem, 5vw, 3.6rem); text-align: center; }

.uw-gut__grid {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

/* The photograph carries the section; the animated diagram sits on a white
   card overlapping its lower corner, so the illustration reads as a caption to
   the image rather than as a second, competing hero. */
.uw-gut__visual { position: relative; }

.uw-gut__photo {
	margin: 0;
	border-radius: var(--uw-r-xl);
	overflow: hidden;
	box-shadow: var(--uw-sh-3);
	background: #0B2531;
}
.uw-gut__photo img { width: 100%; height: auto; display: block; }

.uw-gutfig {
	position: absolute;
	right: clamp(-.5rem, -1vw, 0rem);
	bottom: 0;
	width: clamp(112px, 26%, 138px);
	margin: 0;
	padding: .8rem .7rem;
	background: #fff;
	border-radius: var(--uw-r-lg);
	box-shadow: var(--uw-sh-3);
	border: 1px solid var(--uw-line-2);
}
.uw-gutfig__svg { width: 100%; height: auto; display: block; }
.uw-gutfig__draw { stroke-linejoin: round; }

.uw-gut__caption {
	display: inline-flex;
	align-items: flex-start;
	gap: .5rem;
	max-width: 58%;
	margin: 1rem 0 0;
	padding: .6rem .9rem;
	border-radius: var(--uw-r-md);
	background: #fff;
	box-shadow: var(--uw-sh-1);
	font-size: .84rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--uw-ink-2);
	text-align: left;
}
.uw-gut__caption .uw-icon { color: var(--uw-red); flex-shrink: 0; margin-top: .15em; }

/* Flora and node pulses are pure CSS so they keep breathing after the one-shot
   GSAP draw finishes. */
.uw-gutfig__flora circle { transform-box: fill-box; transform-origin: center; animation: uwFloat 6s var(--uw-e-soft) infinite; }
.uw-gutfig__flora circle:nth-child(2) { animation-duration: 7.5s; animation-delay: -1.2s; }
.uw-gutfig__flora circle:nth-child(3) { animation-duration: 8.5s; animation-delay: -2.4s; }
.uw-gutfig__flora circle:nth-child(4) { animation-duration: 6.8s; animation-delay: -3.1s; }
.uw-gutfig__flora circle:nth-child(5) { animation-duration: 9s; animation-delay: -4s; }
.uw-gutfig__flora circle:nth-child(6) { animation-duration: 7s; animation-delay: -1.8s; }
@keyframes uwFloat {
	0%, 100% { transform: translate(0, 0) scale(1); }
	33% { transform: translate(5px, -8px) scale(1.14); }
	66% { transform: translate(-6px, 5px) scale(.9); }
}
.uw-gutfig__node { transform-box: fill-box; transform-origin: center; animation: uwNode 3s var(--uw-e-soft) infinite; }
.uw-gutfig__node:nth-child(2) { animation-delay: -1s; }
.uw-gutfig__node:nth-child(3) { animation-delay: -2s; }
@keyframes uwNode { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.45); opacity: .55; } }
.uw-gutfig__signal { animation: uwDash 3.5s linear infinite; }
@keyframes uwDash { to { stroke-dashoffset: -32; } }

.uw-pillars { margin: 1.8rem 0; padding: 0; list-style: none; display: grid; gap: .75rem; }
.uw-pillar {
	display: flex;
	gap: .9rem;
	padding: 1rem 1.15rem;
	background: #fff;
	border-radius: var(--uw-r-md);
	border: 1px solid var(--uw-line-2);
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-pillar:hover { transform: translateX(5px); box-shadow: var(--uw-sh-2); }
.uw-pillar__icon {
	display: grid;
	place-items: center;
	width: 42px; height: 42px;
	flex-shrink: 0;
	border-radius: 13px;
}
.uw-pillar--teal .uw-pillar__icon { background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-pillar--green .uw-pillar__icon { background: var(--uw-green-050); color: var(--uw-green-600); }
.uw-pillar--blue .uw-pillar__icon { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-pillar__body strong { display: block; font-size: .98rem; margin-bottom: .15rem; }
.uw-pillar__body em { font-style: normal; font-size: .88rem; color: var(--uw-ink-3); line-height: 1.6; }

/* ------------------------------------------------------------ 12. Gallery */
.uw-gallery { padding-block: var(--uw-section); }
.uw-gallery__head { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.uw-gallery__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: clamp(.9rem, 2vw, 1.4rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.uw-gallery__item { position: relative; }
.uw-gallery__item figure {
	position: relative;
	margin: 0;
	border-radius: var(--uw-r-lg);
	overflow: hidden;
	box-shadow: var(--uw-sh-2);
	aspect-ratio: 4 / 3;
	transition: transform var(--uw-t-slow) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--uw-e-out); }
.uw-gallery__item:hover figure { transform: translateY(-6px); box-shadow: var(--uw-sh-3); }
.uw-gallery__item:hover img { transform: scale(1.07); }
.uw-gallery__item figcaption {
	position: absolute;
	inset: auto 0 0 0;
	padding: 2.4rem 1.1rem 1.05rem;
	background: linear-gradient(180deg, transparent, rgba(12, 34, 42, .82));
	color: #fff;
	font-size: .92rem;
	font-weight: 700;
}
.uw-gallery__item figcaption span { display: inline-flex; transform: translateY(4px); opacity: .92; transition: transform var(--uw-t) var(--uw-e-out), opacity var(--uw-t) linear; }
.uw-gallery__item:hover figcaption span { transform: translateY(0); opacity: 1; }

/* ------------------------------------------------------------ 13. Reviews */
.uw-reviews { padding-block: var(--uw-section); background: var(--uw-bg-soft); }
.uw-reviews__head { max-width: 720px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.uw-reviews__widget { min-height: 60px; }
.uw-reviews__notice {
	display: flex;
	gap: 1rem;
	max-width: 720px;
	margin-inline: auto;
	padding: 1.4rem 1.6rem;
	background: #fff;
	border: 1px dashed var(--uw-primary);
	border-radius: var(--uw-r-lg);
	color: var(--uw-ink-2);
}
.uw-reviews__notice .uw-icon { color: var(--uw-primary); flex-shrink: 0; }
.uw-reviews__notice code { background: var(--uw-primary-050); padding: .1em .45em; border-radius: 6px; font-size: .88em; }

/* ----------------------------------------------------------------- 14. CTA */
.uw-cta { padding-block: clamp(2rem, 4vw, 3.5rem) var(--uw-section); }
.uw-cta__inner {
	position: relative;
	padding: clamp(2.4rem, 6vw, 4.5rem) clamp(1.4rem, 5vw, 4rem);
	border-radius: var(--uw-r-xl);
	background: linear-gradient(125deg, var(--uw-primary) 0%, #16A4B4 45%, var(--uw-blue) 100%);
	color: #fff;
	text-align: center;
	overflow: hidden;
	isolation: isolate;
	box-shadow: 0 28px 70px rgba(29, 95, 168, .28);
}
.uw-cta__orb { position: absolute; border-radius: 50%; filter: blur(8px); pointer-events: none; z-index: -1; }
.uw-cta__orb--a { width: 320px; height: 320px; top: -140px; left: -80px; background: radial-gradient(circle, rgba(255,255,255,.28), transparent 68%); }
.uw-cta__orb--b { width: 380px; height: 380px; bottom: -190px; right: -100px; background: radial-gradient(circle, rgba(46,158,107,.35), transparent 68%); }
.uw-cta__title {
	max-width: 22ch;
	margin: 0 auto .6em;
	font-size: var(--uw-fs-h2);
	color: #fff;
}
.uw-cta__text { max-width: 60ch; margin: 0 auto 1.9rem; color: rgba(255, 255, 255, .92); font-size: var(--uw-fs-lead); }
.uw-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .85rem; }

/* -------------------------------------------------------------- 15. Footer */
.uw-footer {
	position: relative;
	padding-top: clamp(2.6rem, 5vw, 4rem);
	background: linear-gradient(180deg, #FFFFFF 0%, #F3FAFA 30%, #EAF5F6 100%);
	color: var(--uw-ink-2);
	overflow: hidden;
}
/* A single brand hairline instead of a glow blob — quieter, and it reads as a
   deliberate edge rather than as decoration. */
.uw-footer__rule {
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--uw-primary), var(--uw-blue) 45%, var(--uw-green) 80%, var(--uw-primary));
}

.uw-footer__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.6fr .9fr 1.5fr 1.2fr;
	gap: clamp(1.6rem, 3.5vw, 3rem);
	padding-bottom: clamp(2rem, 4vw, 3rem);
}

.uw-footer__brand {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	margin-bottom: 1.1rem;
	text-decoration: none;
	color: inherit;
}
.uw-footer__mark {
	display: grid;
	place-items: center;
	padding: 6px 8px;
	border-radius: 14px;
	background: #fff;
	box-shadow: var(--uw-sh-1);
	line-height: 0;
}
.uw-footer__mark .uw-brand__pic, .uw-footer__mark .uw-brand__gif { height: 72px; width: auto; max-width: 84px; }
.uw-footer__id strong { display: block; font-size: 1.1rem; font-weight: 700; color: var(--uw-ink); line-height: 1.2; }
.uw-footer__id em {
	font-style: normal;
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .17em;
	text-transform: uppercase;
	color: var(--uw-primary-700);
}
.uw-footer__blurb { font-size: .92rem; line-height: 1.75; margin-bottom: 1.2rem; max-width: 40ch; }

.uw-footer__social { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.uw-footer__social a {
	display: grid;
	place-items: center;
	width: 38px; height: 38px;
	border-radius: 50%;
	background: #fff;
	color: #1A2429;
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-footer__social a:hover { transform: translateY(-3px); background: var(--uw-primary); color: #fff; }

.uw-footer__title {
	margin: 0 0 1rem;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--uw-ink);
}

.uw-footer__menu { margin: 0; padding: 0; list-style: none; display: grid; gap: .58rem; }
.uw-footer__menu a {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font-size: .93rem;
	font-weight: 600;
	color: var(--uw-ink-2);
	text-decoration: none;
	transition: color var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-footer__menu a::before {
	content: '';
	width: 0; height: 2px;
	border-radius: 2px;
	background: var(--uw-primary);
	transition: width var(--uw-t) var(--uw-e-out);
}
.uw-footer__menu a:hover { color: var(--uw-primary-700); transform: translateX(3px); }
.uw-footer__menu a:hover::before { width: 12px; }
.uw-footer__menu .sub-menu { display: none; }

.uw-footer__contact { margin: 0; padding: 0; list-style: none; display: grid; gap: .9rem; }
.uw-footer__contact li { display: flex; gap: .7rem; align-items: flex-start; }
.uw-footer__ico {
	display: grid;
	place-items: center;
	width: 32px; height: 32px;
	flex: 0 0 32px;
	border-radius: 10px;
	background: #fff;
	color: var(--uw-primary-700);
	box-shadow: var(--uw-sh-1);
}
.uw-footer__contact em {
	display: block;
	font-style: normal;
	font-size: .66rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--uw-muted);
	margin-bottom: .1rem;
}
.uw-footer__contact a, .uw-footer__plain {
	font-size: .92rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--uw-ink);
	text-decoration: none;
}
.uw-footer__contact a:hover { color: var(--uw-primary-700); }

/* Conversion card — the footer's only strong colour, so the CTA is the thing
   the eye lands on last. */
.uw-footer__card {
	padding: 1.4rem 1.4rem 1.5rem;
	border-radius: var(--uw-r-lg);
	background: linear-gradient(150deg, #fff, var(--uw-primary-050));
	border: 1px solid var(--uw-primary-100);
	box-shadow: var(--uw-sh-1);
}
.uw-footer__cardIcon {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	margin-bottom: .9rem;
	border-radius: 14px;
	background: var(--uw-primary);
	color: #fff;
	box-shadow: var(--uw-sh-brand);
}
.uw-footer__cardTitle { font-size: 1.02rem; line-height: 1.35; margin-bottom: .4rem; }
.uw-footer__cardText { font-size: .87rem; color: var(--uw-ink-3); margin-bottom: 1.1rem; }
.uw-footer__card .uw-btn { width: 100%; }

.uw-footer__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .7rem 1.4rem;
	padding-block: 1.2rem;
	border-top: 1px solid var(--uw-line);
}
.uw-footer__copy { margin: 0; font-size: .8rem; color: var(--uw-ink-3); }
.uw-footer__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.2rem; }
.uw-footer__legalMenu { display: flex; gap: .9rem; margin: 0; padding: 0; list-style: none; }
.uw-footer__legalMenu a { font-size: .8rem; color: var(--uw-ink-3); text-decoration: none; }
.uw-footer__legalMenu a:hover { color: var(--uw-primary-700); }
.uw-footer__disclaimer { margin: 0; max-width: 52ch; font-size: .76rem; color: var(--uw-muted); }

/* --------------------------------------------------------- 16. Forms */
.uw-field { display: block; margin: 0 0 1rem; }
.uw-field label,
.uw-radios legend {
	display: block;
	margin-bottom: .38rem;
	font-size: .84rem;
	font-weight: 700;
	color: var(--uw-ink);
}
.uw-req { color: var(--uw-red); }

.uw-field input[type="text"],
.uw-field input[type="email"],
.uw-field input[type="tel"],
.uw-field input[type="url"],
.uw-field input[type="search"],
.uw-field textarea,
.uw-select select,
.uw-commentform input[type="text"],
.uw-commentform input[type="email"],
.uw-commentform input[type="url"],
.uw-commentform textarea {
	width: 100%;
	padding: .82rem 1rem;
	font-family: var(--uw-font);
	font-size: .96rem;
	font-weight: 500;
	color: var(--uw-ink);
	background: #fff;
	border: 1.5px solid var(--uw-line);
	border-radius: var(--uw-r-sm);
	transition: border-color var(--uw-t-fast) linear, box-shadow var(--uw-t-fast) linear;
	-webkit-appearance: none;
	appearance: none;
}
.uw-field textarea { resize: vertical; min-height: 96px; line-height: 1.6; }
.uw-field input:focus,
.uw-field textarea:focus,
.uw-select select:focus {
	outline: none;
	border-color: var(--uw-primary);
	box-shadow: 0 0 0 4px rgba(33, 199, 187, .16);
}
.uw-field.has-error input,
.uw-field.has-error textarea { border-color: var(--uw-red); }
.uw-field__error {
	display: none;
	margin-top: .3rem;
	font-size: .8rem;
	font-weight: 600;
	color: var(--uw-red);
}
.uw-field__error.is-shown, .uw-field.has-error .uw-field__error { display: block; }

.uw-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }

.uw-select { position: relative; display: block; }
.uw-select select { padding-right: 2.6rem; cursor: pointer; }
.uw-select .uw-icon {
	position: absolute;
	right: .9rem; top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: var(--uw-muted);
}

.uw-radios { margin: 0 0 1rem; padding: 0; border: 0; }
.uw-radios__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; }
.uw-radio { position: relative; display: block; cursor: pointer; }
.uw-radio input { position: absolute; opacity: 0; width: 0; height: 0; }
.uw-radio__box {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .78rem .9rem;
	border: 1.5px solid var(--uw-line);
	border-radius: var(--uw-r-sm);
	font-size: .88rem;
	font-weight: 600;
	color: var(--uw-ink-2);
	background: #fff;
	transition: border-color var(--uw-t-fast) linear, background var(--uw-t-fast) linear,
	            color var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-radio__box .uw-icon { color: var(--uw-muted); flex-shrink: 0; transition: color var(--uw-t-fast) linear; }
.uw-radio:hover .uw-radio__box { border-color: var(--uw-primary-100); transform: translateY(-1px); }
.uw-radio input:checked + .uw-radio__box {
	border-color: var(--uw-primary);
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
}
.uw-radio input:checked + .uw-radio__box .uw-icon { color: var(--uw-primary); }
.uw-radio input:focus-visible + .uw-radio__box { box-shadow: 0 0 0 4px rgba(33, 199, 187, .18); }

.uw-check { display: flex; align-items: flex-start; gap: .65rem; margin: .3rem 0 .4rem; cursor: pointer; }
.uw-check input { position: absolute; opacity: 0; width: 0; height: 0; }
.uw-check__box {
	display: grid;
	place-items: center;
	width: 22px; height: 22px;
	flex-shrink: 0;
	margin-top: .12rem;
	border: 1.5px solid var(--uw-line);
	border-radius: 7px;
	background: #fff;
	color: transparent;
	transition: background var(--uw-t-fast) linear, border-color var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-check input:checked + .uw-check__box { background: var(--uw-primary); border-color: var(--uw-primary); color: #fff; }
.uw-check input:focus-visible + .uw-check__box { box-shadow: 0 0 0 4px rgba(33, 199, 187, .18); }
.uw-check__text { font-size: .84rem; line-height: 1.6; color: var(--uw-ink-3); }

/* Honeypot — off-screen rather than display:none so bots that skip hidden
   fields still fill it. */
.uw-hp { position: absolute !important; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

.uw-formError {
	margin: .8rem 0 0;
	padding: .8rem 1rem;
	border-radius: var(--uw-r-sm);
	background: var(--uw-red-050);
	color: var(--uw-red-600);
	font-size: .88rem;
	font-weight: 600;
}
.uw-formSuccess {
	display: flex;
	gap: .7rem;
	margin: .9rem 0 0;
	padding: 1rem 1.15rem;
	border-radius: var(--uw-r-md);
	background: var(--uw-green-050);
	color: var(--uw-green-600);
	font-weight: 600;
}
.uw-formSuccess .uw-icon { flex-shrink: 0; }
.uw-formSuccess p { margin: 0; }

.uw-search { position: relative; display: flex; max-width: 460px; }
.uw-search input {
	flex: 1;
	padding: .85rem 3.2rem .85rem 1.1rem;
	font-family: var(--uw-font);
	font-size: .95rem;
	border: 1.5px solid var(--uw-line);
	border-radius: var(--uw-r-pill);
	background: #fff;
}
.uw-search input:focus { outline: none; border-color: var(--uw-primary); box-shadow: 0 0 0 4px rgba(33, 199, 187, .16); }
.uw-search button {
	position: absolute;
	right: 5px; top: 50%;
	transform: translateY(-50%);
	display: grid;
	place-items: center;
	width: 40px; height: 40px;
	border: 0;
	border-radius: 50%;
	background: var(--uw-primary);
	color: #fff;
	cursor: pointer;
	transition: background var(--uw-t-fast) linear;
}
.uw-search button:hover { background: var(--uw-primary-700); }

/* --------------------------------------------------------- 17. Modal */
.uw-modal {
	position: fixed;
	inset: 0;
	z-index: 400;
	display: grid;
	place-items: center;
	padding: clamp(.6rem, 3vw, 2rem);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.uw-modal[hidden] { display: none; }
.uw-modal__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(14, 36, 44, .55);
	backdrop-filter: blur(5px);
	-webkit-backdrop-filter: blur(5px);
	opacity: 0;
	transition: opacity var(--uw-t) var(--uw-e-soft);
	border: 0;
}
.uw-modal.is-open .uw-modal__backdrop { opacity: 1; }

.uw-modal__dialog {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 330px minmax(0, 1fr);
	/* The row must be bounded by the dialog, not by its content — otherwise it
	   grows to max-content and `overflow: hidden` simply clips the bottom of
	   the form off the screen. */
	grid-template-rows: minmax(0, 1fr);
	width: min(100%, 1020px);
	max-height: min(94svh, 900px);
	background: #fff;
	border-radius: var(--uw-r-xl);
	box-shadow: 0 40px 100px rgba(10, 32, 40, .35);
	overflow: hidden;
	opacity: 0;
	transform: translateY(26px) scale(.97);
	transition: opacity var(--uw-t) var(--uw-e-soft), transform .45s var(--uw-e-out);
}
.uw-modal.is-open .uw-modal__dialog { opacity: 1; transform: translateY(0) scale(1); }

.uw-modal__scroll { display: contents; }

/* Grid children default to `min-height: auto`, so a tall step made the body row
   grow past the dialog's own max-height instead of scrolling inside it — the
   dialog then clipped it and Back/Confirm sat below the window with nothing to
   scroll. Both columns have to be allowed to shrink for the body's
   `overflow-y: auto` to mean anything. */
.uw-modal__aside, .uw-modal__body { min-height: 0; }
.uw-modal__aside { overflow-y: auto; overscroll-behavior: contain; }

.uw-modal__close {
	position: absolute;
	top: 14px; right: 14px;
	z-index: 6;
	display: grid;
	place-items: center;
	width: 42px; height: 42px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--uw-ink);
	box-shadow: var(--uw-sh-2);
	cursor: pointer;
	transition: transform var(--uw-t) var(--uw-e-out), background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-modal__close:hover { background: var(--uw-red); color: #fff; transform: rotate(90deg); }

.uw-modal__aside {
	position: relative;
	padding: clamp(1.5rem, 3vw, 2.1rem);
	background: linear-gradient(160deg, var(--uw-primary) 0%, #178FAF 55%, var(--uw-blue) 100%);
	color: #fff;
	overflow-y: auto;
}
.uw-modal__brand { display: flex; align-items: center; gap: .6rem; margin-bottom: 1.6rem; }
.uw-modal__mark {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	border-radius: 14px;
	background: rgba(255, 255, 255, .95);
	overflow: hidden;
}
.uw-modal__mark svg, .uw-modal__mark img { width: 34px; height: 34px; object-fit: contain; }
.uw-modal__brand strong { display: block; font-size: .98rem; line-height: 1.2; }
.uw-modal__brand em { font-style: normal; font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .85; }

.uw-modal__eyebrow {
	margin: 0 0 .4rem;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
}
.uw-modal__asideTitle { font-size: 1.32rem; line-height: 1.28; color: #fff; margin-bottom: 1.3rem; }

.uw-modal__points { margin: 0 0 1.4rem; padding: 0; list-style: none; display: grid; gap: .7rem; }
.uw-modal__points li { display: flex; gap: .6rem; font-size: .88rem; line-height: 1.5; }
.uw-modal__points .uw-icon { flex-shrink: 0; margin-top: .12rem; opacity: .9; }

.uw-modal__note {
	display: flex;
	gap: .6rem;
	padding: .85rem 1rem;
	border-radius: var(--uw-r-md);
	background: rgba(255, 255, 255, .15);
	border: 1px solid rgba(255, 255, 255, .28);
	font-size: .84rem;
	line-height: 1.55;
}
.uw-modal__note .uw-icon { flex-shrink: 0; margin-top: .1rem; }
.uw-modal__note p { margin: 0; }

.uw-modal__call {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-top: 1.2rem;
	font-size: .95rem;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	border-bottom: 2px solid rgba(255, 255, 255, .4);
	padding-bottom: .15rem;
}
.uw-modal__call:hover { color: #fff; border-bottom-color: #fff; }

.uw-modal__body { padding: clamp(1.5rem, 3vw, 2.2rem); overflow-y: auto; overscroll-behavior: contain; }
.uw-modal__head { margin-bottom: 1.4rem; padding-right: 2.6rem; }
.uw-modal__title { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.65rem); margin-bottom: .4em; }
.uw-modal__intro { font-size: .92rem; color: var(--uw-ink-3); margin-bottom: 1.2rem; }

.uw-steps { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.uw-steps__item {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .42rem .85rem .42rem .45rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-bg-soft);
	font-size: .8rem;
	font-weight: 700;
	color: var(--uw-muted);
	transition: background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-steps__item span {
	display: grid;
	place-items: center;
	width: 22px; height: 22px;
	border-radius: 50%;
	background: #fff;
	color: var(--uw-muted);
	font-size: .74rem;
	box-shadow: inset 0 0 0 1.5px var(--uw-line);
}
.uw-steps__item.is-active { background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-steps__item.is-active span { background: var(--uw-primary); color: #fff; box-shadow: none; }
.uw-steps__item.is-done { color: var(--uw-green-600); background: var(--uw-green-050); }
.uw-steps__item.is-done span { background: var(--uw-green); color: #fff; box-shadow: none; }

.uw-step[hidden] { display: none; }
.uw-step__actions {
	/* Pinned to the foot of the scrolling body, so Back and Confirm are on
	   screen however long the form gets or however short the window is. */
	position: sticky;
	bottom: calc(clamp(1.5rem, 3vw, 2.2rem) * -1);
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .8rem;
	margin-top: 1.4rem;
	padding-top: 1.2rem;
	padding-bottom: clamp(1.5rem, 3vw, 2.2rem);
	margin-bottom: calc(clamp(1.5rem, 3vw, 2.2rem) * -1);
	background: #fff;
	border-top: 1px solid var(--uw-line-2);
}
.uw-step__hint { margin: 0; font-size: .84rem; color: var(--uw-muted); font-weight: 600; }
.uw-back {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .6rem .9rem;
	border: 0;
	border-radius: var(--uw-r-pill);
	background: transparent;
	color: var(--uw-ink-3);
	font-weight: 700;
	font-size: .9rem;
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-back .uw-icon { transform: rotate(180deg); }
.uw-back:hover { background: var(--uw-bg-soft); color: var(--uw-ink); }

/* Calendar + slots */
.uw-picker { display: grid; grid-template-columns: minmax(0, 1fr) 214px; gap: 1.4rem; }
.uw-cal__head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .8rem; }
.uw-cal__month { margin: 0; font-size: 1rem; font-weight: 700; }
.uw-cal__nav {
	display: grid;
	place-items: center;
	width: 34px; height: 34px;
	border: 1.5px solid var(--uw-line);
	border-radius: 50%;
	background: #fff;
	color: var(--uw-ink-2);
	cursor: pointer;
	transition: border-color var(--uw-t-fast) linear, background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-cal__nav:hover:not([disabled]) { border-color: var(--uw-primary); background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-cal__nav[disabled] { opacity: .35; cursor: not-allowed; }
[data-uw-cal-prev] .uw-icon { transform: rotate(180deg); }

.uw-cal__dow, .uw-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.uw-cal__dow {
	margin-bottom: 5px;
	font-size: .68rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--uw-muted);
	text-align: center;
}
.uw-cal__day {
	position: relative;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	border: 0;
	border-radius: 12px;
	background: transparent;
	font-family: var(--uw-font);
	font-size: .9rem;
	font-weight: 600;
	color: var(--uw-ink-2);
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, color var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-cal__day--pad { pointer-events: none; }
.uw-cal__day:hover:not([disabled]) { background: var(--uw-primary-050); transform: scale(1.06); }
.uw-cal__day[disabled] { color: var(--uw-line); cursor: not-allowed; }
.uw-cal__day.is-open::after {
	content: '';
	position: absolute;
	bottom: 5px; left: 50%;
	width: 4px; height: 4px;
	border-radius: 50%;
	background: var(--uw-green);
	transform: translateX(-50%);
}
.uw-cal__day.is-today { box-shadow: inset 0 0 0 1.5px var(--uw-line); }
.uw-cal__day.is-selected { background: var(--uw-primary); color: #fff; box-shadow: var(--uw-sh-brand); }
.uw-cal__day.is-selected::after { background: #fff; }
.uw-cal__tz {
	display: flex;
	align-items: center;
	gap: .4rem;
	margin: .9rem 0 0;
	font-size: .76rem;
	font-weight: 600;
	color: var(--uw-muted);
}

.uw-slots { display: flex; flex-direction: column; min-height: 240px; }
.uw-slots__title { margin: 0 0 .6rem; font-size: .82rem; font-weight: 700; color: var(--uw-ink); }
.uw-slots__list {
	display: grid;
	gap: .4rem;
	max-height: 268px;
	overflow-y: auto;
	padding-right: 4px;
	scrollbar-width: thin;
}
.uw-slot {
	padding: .62rem .7rem;
	border: 1.5px solid var(--uw-line);
	border-radius: var(--uw-r-sm);
	background: #fff;
	font-family: var(--uw-font);
	font-size: .88rem;
	font-weight: 700;
	color: var(--uw-ink-2);
	cursor: pointer;
	transition: border-color var(--uw-t-fast) linear, background var(--uw-t-fast) linear,
	            color var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-slot:hover { border-color: var(--uw-primary); transform: translateY(-1px); }
.uw-slot.is-selected { background: var(--uw-primary); border-color: var(--uw-primary); color: #fff; }
.uw-slots__msg { margin: 0; padding: .9rem; font-size: .84rem; color: var(--uw-muted); text-align: center; background: var(--uw-bg-soft); border-radius: var(--uw-r-sm); }
.uw-slots__spinner {
	width: 26px; height: 26px;
	margin: 1.4rem auto;
	border: 3px solid var(--uw-line);
	border-top-color: var(--uw-primary);
	border-radius: 50%;
	animation: uwSpin .8s linear infinite;
}

.uw-chosen {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0 0 1.2rem;
	padding: .8rem 1rem;
	border-radius: var(--uw-r-md);
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
	font-weight: 700;
	font-size: .92rem;
}

.uw-success { text-align: center; padding: 1rem 0; }
.uw-success__badge { display: flex; justify-content: center; margin-bottom: 1rem; }
.uw-success__ring { stroke-dasharray: 145; stroke-dashoffset: 145; animation: uwRing .7s var(--uw-e-out) forwards; }
.uw-success__tick { stroke-dasharray: 44; stroke-dashoffset: 44; animation: uwTick .45s var(--uw-e-out) .5s forwards; }
@keyframes uwRing { to { stroke-dashoffset: 0; } }
@keyframes uwTick { to { stroke-dashoffset: 0; } }
.uw-success__title { font-size: 1.45rem; margin-bottom: .5em; }
.uw-success__text { max-width: 46ch; margin: 0 auto 1rem; color: var(--uw-ink-3); }
.uw-success__ref {
	display: inline-block;
	margin: 0 0 1.5rem;
	padding: .45rem 1rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-bg-soft);
	font-size: .84rem;
	font-weight: 700;
	color: var(--uw-ink-2);
	letter-spacing: .06em;
}
.uw-success__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }

.uw-btn.is-loading { pointer-events: none; }
.uw-btn.is-loading .uw-btn__icon { animation: uwSpin .8s linear infinite; }

/* ------------------------------------------------- 18. Pages & blog */
.uw-pagehero {
	position: relative;
	padding: calc(var(--uw-header-h) + clamp(2.5rem, 6vw, 4.5rem)) 0 clamp(2.2rem, 5vw, 3.6rem);
	background: linear-gradient(160deg, var(--uw-primary-050) 0%, #F4FAFD 60%, #fff 100%);
	overflow: hidden;
}
.uw-pagehero__wash {
	position: absolute;
	top: -180px; right: -120px;
	width: 480px; height: 480px;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(33, 199, 187, .2), transparent);
	pointer-events: none;
}
.uw-pagehero__inner { position: relative; }
.uw-pagehero__title { font-size: var(--uw-fs-h1); margin-bottom: .3em; max-width: 22ch; }
.uw-pagehero__sub { font-size: var(--uw-fs-lead); color: var(--uw-ink-2); max-width: 62ch; margin: 0; }

.uw-crumbs { margin-bottom: 1rem; }
.uw-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.uw-crumbs li { display: inline-flex; align-items: center; gap: .35rem; font-size: .82rem; font-weight: 600; }
.uw-crumbs a { color: var(--uw-ink-3); text-decoration: none; }
.uw-crumbs a:hover { color: var(--uw-primary-700); }
.uw-crumbs .uw-icon { color: var(--uw-line); }
.uw-crumbs [aria-current] { color: var(--uw-primary-700); }

.uw-page, .uw-single { padding-block: clamp(2.5rem, 5vw, 4rem); }
.uw-page__inner, .uw-single__inner { max-width: 860px; }
.uw-page__thumb, .uw-single__thumb { margin: 0 0 2rem; border-radius: var(--uw-r-lg); overflow: hidden; box-shadow: var(--uw-sh-2); }

.uw-single__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1.1rem;
	margin-bottom: 1.6rem;
	font-size: .84rem;
	font-weight: 600;
	color: var(--uw-ink-3);
}
.uw-single__meta span { display: inline-flex; align-items: center; gap: .35rem; }
.uw-single__meta .uw-icon { color: var(--uw-primary); }

/* Long-form content */
.uw-prose { font-size: var(--uw-fs-lead); line-height: 1.85; color: var(--uw-ink-2); }
.uw-prose > * + * { margin-top: 1.1em; }
.uw-prose h2 { font-size: var(--uw-fs-h2); margin-top: 1.8em; }
.uw-prose h3 { font-size: var(--uw-fs-h3); margin-top: 1.6em; }
.uw-prose h2, .uw-prose h3, .uw-prose h4 { color: var(--uw-ink); }
.uw-prose a { color: var(--uw-blue); font-weight: 600; }
.uw-prose ul, .uw-prose ol { padding-left: 1.35em; }
.uw-prose li { margin-bottom: .45em; }
.uw-prose ul li::marker { color: var(--uw-primary); }
.uw-prose blockquote {
	margin: 1.8em 0;
	padding: 1.2rem 1.5rem;
	border-left: 4px solid var(--uw-primary);
	border-radius: 0 var(--uw-r-md) var(--uw-r-md) 0;
	background: var(--uw-bg-soft);
	font-style: normal;
	font-weight: 600;
	color: var(--uw-ink);
}
.uw-prose blockquote p:last-child { margin-bottom: 0; }
.uw-prose img { border-radius: var(--uw-r-md); }
.uw-prose figure { margin: 1.8em 0; }
.uw-prose figcaption { margin-top: .6rem; font-size: .84rem; color: var(--uw-muted); text-align: center; }
.uw-prose code {
	padding: .12em .45em;
	background: var(--uw-bg-tint);
	border-radius: 6px;
	font-size: .9em;
}
.uw-prose pre { padding: 1.2rem; background: var(--uw-ink); color: #E6F4F3; border-radius: var(--uw-r-md); overflow-x: auto; }
.uw-prose pre code { background: none; padding: 0; }
.uw-prose table { width: 100%; border-collapse: collapse; font-size: .94rem; }
.uw-prose th, .uw-prose td { padding: .7rem .9rem; border-bottom: 1px solid var(--uw-line); text-align: left; }
.uw-prose th { background: var(--uw-bg-soft); font-weight: 700; color: var(--uw-ink); }
.uw-prose hr { border: 0; border-top: 1px solid var(--uw-line); margin: 2.4em 0; }

.uw-subpages { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin: 2.6rem 0 0; padding: 0; list-style: none; }
.uw-subpages a {
	display: block;
	height: 100%;
	padding: 1.3rem 1.4rem;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	background: #fff;
	box-shadow: var(--uw-sh-1);
	text-decoration: none;
	color: inherit;
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out), border-color var(--uw-t-fast) linear;
}
.uw-subpages a:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-2); border-color: var(--uw-primary-100); }
.uw-subpages__icon {
	display: grid;
	place-items: center;
	width: 40px; height: 40px;
	margin-bottom: .8rem;
	border-radius: 12px;
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
}
.uw-subpages strong { display: block; font-size: 1.05rem; margin-bottom: .3rem; color: var(--uw-ink); }
.uw-subpages em { font-style: normal; font-size: .88rem; color: var(--uw-ink-3); line-height: 1.6; }

.uw-archive { padding-block: clamp(2.5rem, 5vw, 4rem); }
.uw-archive__inner { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(2rem, 4vw, 3.4rem); align-items: start; }
body.uw-no-sidebar .uw-archive__inner { grid-template-columns: minmax(0, 1fr); }
.uw-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: clamp(1.1rem, 2.4vw, 1.8rem); }

.uw-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	overflow: hidden;
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-card:hover { transform: translateY(-5px); box-shadow: var(--uw-sh-2); }
.uw-card__link { position: absolute; inset: 0; z-index: 3; }
.uw-card__media { position: relative; margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--uw-bg-tint); }
.uw-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--uw-e-out); }
.uw-card:hover .uw-card__media img { transform: scale(1.06); }
.uw-card__placeholder { display: grid; place-items: center; height: 100%; color: var(--uw-primary); opacity: .5; }
.uw-card__body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.uw-card__meta { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 .5rem; font-size: .76rem; font-weight: 700; color: var(--uw-muted); text-transform: uppercase; letter-spacing: .08em; }
.uw-card__cat { color: var(--uw-primary-700); }
.uw-card__title { font-size: 1.1rem; line-height: 1.35; margin-bottom: .5rem; }
.uw-card__excerpt { font-size: .9rem; color: var(--uw-ink-3); margin-bottom: 1rem; flex: 1; }
.uw-card__more { display: inline-flex; align-items: center; gap: .4rem; font-size: .86rem; font-weight: 700; color: var(--uw-primary-700); }
.uw-card__more .uw-icon { transition: transform var(--uw-t) var(--uw-e-out); }
.uw-card:hover .uw-card__more .uw-icon { transform: translateX(4px); }

.uw-widget { margin-bottom: 1.6rem; padding: 1.3rem 1.4rem; background: var(--uw-bg-soft); border-radius: var(--uw-r-lg); }
.uw-widget__title { font-size: .84rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; margin-bottom: .9rem; }
.uw-widget ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .5rem; }
.uw-widget a { color: var(--uw-ink-2); text-decoration: none; font-weight: 600; font-size: .92rem; }
.uw-widget a:hover { color: var(--uw-primary-700); }

.uw-pagination { margin-top: 2.6rem; }
.uw-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; }
.uw-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 42px; height: 42px;
	padding: 0 .7rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-bg-soft);
	color: var(--uw-ink-2);
	font-weight: 700;
	font-size: .9rem;
	text-decoration: none;
	transition: background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-pagination .page-numbers:hover { background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-pagination .page-numbers.current { background: var(--uw-primary); color: #fff; }

.uw-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 3rem; }
.uw-postnav__link {
	padding: 1.1rem 1.3rem;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-md);
	text-decoration: none;
	color: inherit;
	background: #fff;
	transition: border-color var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-postnav__link:hover { border-color: var(--uw-primary); transform: translateY(-3px); }
.uw-postnav__link--next { text-align: right; }
.uw-postnav__link em { display: block; font-style: normal; font-size: .74rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--uw-muted); margin-bottom: .3rem; }
.uw-postnav__link strong { font-size: .96rem; line-height: 1.4; color: var(--uw-ink); }

.uw-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 2rem; }
.uw-tags a { padding: .35rem .85rem; border-radius: var(--uw-r-pill); background: var(--uw-bg-soft); font-size: .8rem; font-weight: 600; color: var(--uw-ink-2); text-decoration: none; }
.uw-tags a:hover { background: var(--uw-primary-050); color: var(--uw-primary-700); }

.uw-empty { text-align: center; padding: clamp(2.5rem, 6vw, 5rem) 1rem; background: var(--uw-bg-soft); border-radius: var(--uw-r-xl); }
.uw-empty .uw-icon { color: var(--uw-primary); margin-bottom: 1rem; display: inline-block; }
.uw-empty p { max-width: 46ch; margin-inline: auto; margin-bottom: 1.6rem; color: var(--uw-ink-3); }

.uw-404 { padding-block: clamp(3rem, 7vw, 6rem); text-align: center; }
.uw-404__code { font-size: clamp(4.5rem, 14vw, 9rem); font-weight: 700; line-height: 1; margin: 0; background: linear-gradient(120deg, var(--uw-primary), var(--uw-blue)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.uw-404 .uw-search { margin: 1.8rem auto; }
.uw-404__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }

.uw-comments { margin-top: 3.4rem; padding-top: 2.4rem; border-top: 1px solid var(--uw-line); }
.uw-comments__list { list-style: none; padding: 0; margin: 0 0 2rem; }
.uw-comments__list .comment-body { padding: 1.2rem 0; border-bottom: 1px solid var(--uw-line-2); }
.uw-comments__list .children { list-style: none; padding-left: clamp(1rem, 4vw, 2.4rem); }

/* Contact block used by [yw_contact_form] */
.uw-contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.6rem, 4vw, 3rem); align-items: start; }
.uw-contact__aside { padding: clamp(1.5rem, 3vw, 2.2rem); background: var(--uw-bg-soft); border-radius: var(--uw-r-xl); }
.uw-contact__title { font-size: var(--uw-fs-h3); }
.uw-contact__intro { font-size: .95rem; color: var(--uw-ink-3); }
.uw-contact__details { margin: 1.4rem 0 1.6rem; padding: 0; list-style: none; display: grid; gap: .9rem; font-size: .93rem; }
.uw-contact__details li { display: flex; gap: .7rem; align-items: flex-start; }
.uw-contact__details span { display: grid; place-items: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 11px; background: #fff; color: var(--uw-primary-700); box-shadow: var(--uw-sh-1); }
.uw-contact__details a { color: var(--uw-ink); font-weight: 600; text-decoration: none; }
.uw-contact__details a:hover { color: var(--uw-primary-700); }
.uw-contact__form { padding: clamp(1.5rem, 3vw, 2.2rem); background: #fff; border: 1px solid var(--uw-line-2); border-radius: var(--uw-r-xl); box-shadow: var(--uw-sh-2); }
.uw-contact__formTitle { font-size: var(--uw-fs-h3); margin-bottom: .3em; }
.uw-contact__formIntro { font-size: .92rem; color: var(--uw-ink-3); margin-bottom: 1.4rem; }

/* ------------------------------------------------------- 19. Responsive */

@media (max-width: 1180px) {
	.uw-footer__inner { grid-template-columns: 1.5fr 1fr 1.5fr; }
	.uw-footer__col--cta { grid-column: 1 / -1; }
	.uw-footer__card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 0 1.2rem; }
	.uw-footer__cardIcon { grid-row: 1 / 3; margin-bottom: 0; }
	.uw-footer__cardTitle, .uw-footer__cardText { margin-bottom: 0; }
	.uw-footer__card .uw-btn { grid-row: 1 / 3; grid-column: 3; width: auto; }
}

@media (max-width: 1120px) {
	/* Below this width the header bar shows only brand + burger; the menu
	   lives in the body-level drawer. */
	.uw-header__inner { padding-block: .3rem; }
	.uw-brand__mark { height: 66px; }
	.uw-brand__pic, .uw-brand__gif { height: 66px; max-width: 78px; }
	.uw-burger { display: grid; }
	.uw-nav { display: none; }
	.uw-header__cta { display: none; }

	/* The blur is dropped here purely for compositing cost on phones — the
	   drawer no longer depends on it, since it is not inside the header. */
	.uw-header {
		background: rgba(255, 255, 255, .97);
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}
	.uw-header.is-stuck { background: #fff; }
}

@media (max-width: 1000px) {
	.uw-doctor__inner, .uw-gut__grid { grid-template-columns: minmax(0, 1fr); }
	.uw-doctor__media { max-width: 520px; margin-inline: auto; }
	.uw-gut__visual { order: -1; max-width: 620px; margin-inline: auto; }
	.uw-archive__inner { grid-template-columns: minmax(0, 1fr); }
	.uw-contact { grid-template-columns: minmax(0, 1fr); }
	.uw-modal__dialog { grid-template-columns: minmax(0, 1fr); }
	.uw-modal__aside { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.6rem; align-items: start; }
	.uw-modal__brand { grid-column: 1 / -1; margin-bottom: .4rem; }
	.uw-modal__eyebrow, .uw-modal__asideTitle { grid-column: 1 / -1; margin-bottom: .5rem; }
	.uw-modal__asideTitle { font-size: 1.15rem; }
	.uw-modal__points { margin-bottom: 0; }
	.uw-modal__call { grid-column: 1 / -1; margin-top: .4rem; }
}

@media (max-width: 900px) {
	:root { --uw-header-h: 78px; }

	.uw-infobar__inner { grid-template-columns: 1fr 1fr; }
	.uw-infobar__cell--lead { grid-column: 1 / -1; }
	/* Vertical rules only make sense in the single-row desktop layout. */
	.uw-infobar__cell + .uw-infobar__cell { box-shadow: none; }

	.uw-footer__inner { grid-template-columns: 1fr 1fr; }
	.uw-footer__brandCol { grid-column: 1 / -1; }

	/* Social rail docks to the bottom edge, out of the way of content but
	   still inside thumb reach. */
	.uw-social {
		top: auto; left: 50%;
		bottom: 14px;
		transform: translateX(-50%);
	}
	.uw-social__list { flex-direction: row; padding: .5rem .6rem; gap: .95rem; }
	.uw-social__link::after { inset: -8px; }
	.uw-social__label { display: none; }

	/* The dock tucks away once the footer (which has its own social row) is
	   on screen, so the last of the page is never sitting under it. */
	.uw-social { transition: transform var(--uw-t) var(--uw-e-out), opacity var(--uw-t) linear; }
	.uw-social.is-tucked { transform: translate(-50%, 140%); opacity: 0; pointer-events: none; }
	.uw-social.is-ready { transform: translateX(-50%); }

	.uw-top { bottom: 74px; right: 14px; }
	.uw-footer { padding-bottom: 64px; }

	.uw-postnav { grid-template-columns: 1fr; }
	.uw-postnav__link--next { text-align: left; }
}

@media (max-width: 760px) {
	.uw-picker { grid-template-columns: minmax(0, 1fr); }
	.uw-slots { min-height: 0; }
	.uw-slots__list { grid-template-columns: repeat(auto-fill, minmax(94px, 1fr)); max-height: 200px; }
	.uw-modal__aside { grid-template-columns: 1fr; }
	.uw-modal__points li:nth-child(n+3) { display: none; }
	.uw-field-grid { grid-template-columns: 1fr; }
	.uw-step__actions { flex-direction: column-reverse; align-items: stretch; }
	.uw-step__actions .uw-btn { width: 100%; }
	.uw-step__hint { text-align: center; }
	.uw-back { align-self: center; }
}

@media (max-width: 620px) {
	/* No width or square here: the logo is landscape artwork, so height drives
	   the size and the width follows the picture. Pinning it to a 44px box was
	   squashing the mark into a sliver on phones. */
	.uw-brand__name { font-size: 1.12rem; }
	.uw-brand__tag { font-size: .64rem; letter-spacing: .13em; }

	.uw-hero { min-height: 84svh; }
	/* Name on one line, tagline underneath — no mid-pill wrapping. */

	/* Stays pinned under the header — the hero is a flex row, so taking it out
	   of absolute positioning here would make it a sibling column and push the
	   headline off-centre. */
	.uw-hero__sound {
		top: calc(var(--uw-header-h) + 8px);
		font-size: .66rem;
		padding: .34rem .7rem;
	}
	.uw-hero__title { max-width: none; }
	.uw-shuffle { padding: 1rem; margin-bottom: 1.4rem; }
	.uw-shuffle__viewport { min-height: 5.4em; }
	.uw-hero__actions .uw-btn { width: 100%; }

	.uw-infobar { margin-top: -1.8rem; }
	.uw-infobar__inner { grid-template-columns: 1fr; }
	.uw-infobar__cell + .uw-infobar__cell { box-shadow: inset 0 1px 0 var(--uw-line-2) !important; }

	.uw-doctor__card { position: static; margin-top: 1.5rem; max-width: none; }

	/* Below this width the overlap gets cramped, so the diagram sits under the
	   photograph instead of on top of it. */
	.uw-gut__visual { padding-bottom: 0; }
	.uw-gutfig {
		position: static;
		width: 132px;
		margin: -2.2rem 0 0 auto;
		transform: translateX(-.6rem);
	}
	.uw-gut__caption { max-width: none; margin-top: .8rem; }
	.uw-doctor__actions .uw-btn { width: 100%; }

	.uw-footer__inner { grid-template-columns: 1fr; gap: 2rem; }
	.uw-footer__bar { flex-direction: column; align-items: flex-start; }
	.uw-footer__card { grid-template-columns: 1fr; gap: .5rem; }
	.uw-footer__cardIcon { grid-row: auto; margin-bottom: .6rem; }
	.uw-footer__card .uw-btn { grid-row: auto; grid-column: auto; width: 100%; margin-top: .6rem; }

	.uw-cta__actions .uw-btn, .uw-success__actions .uw-btn { width: 100%; }

	.uw-top { display: none; }
	.uw-modal { padding: 0; align-items: end; }
	.uw-modal__dialog {
		display: flex;
		flex-direction: column;
		width: 100%;
		max-height: 92svh;
		border-radius: var(--uw-r-xl) var(--uw-r-xl) 0 0;
		transform: translateY(100%);
	}
	/* One scroll area for the whole sheet. Two nested scrollers (aside + body)
	   meant a drag that began on the coloured panel had nothing to scroll,
	   which read as "the popup won't move". The close button stays outside it
	   and therefore stays put. */
	.uw-modal__scroll {
		display: block;
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}
	.uw-modal__aside, .uw-modal__body { overflow: visible; }
	.uw-modal__body { padding-bottom: max(1.6rem, env(safe-area-inset-bottom)); }
	/* The sheet itself is the scroller here, so the action bar pins flush to
	   its bottom edge — no negative offset, or the lower button is clipped. */
	.uw-step__actions {
		bottom: 0;
		margin-bottom: 0;
		padding-bottom: max(.9rem, env(safe-area-inset-bottom));
		box-shadow: 0 -14px 22px -14px rgba(14, 36, 44, .28);
	}
	.uw-modal.is-open .uw-modal__dialog { transform: translateY(0); }
	.uw-modal__close { top: 10px; right: 10px; width: 38px; height: 38px; }

	/* On a phone the value proposition must not push the calendar below the
	   fold — keep the brand, the headline and the Zoom/Meet note, drop the
	   rest (all of it repeats elsewhere on the page). */
	.uw-modal__aside { padding: 1.05rem 1.15rem 1.15rem; }
	.uw-modal__brand { margin-bottom: .75rem; }
	.uw-modal__mark { width: 38px; height: 38px; border-radius: 12px; }
	.uw-modal__mark svg, .uw-modal__mark img { width: 28px; height: 28px; }
	.uw-modal__eyebrow { display: none; }
	.uw-modal__asideTitle { font-size: 1.02rem; line-height: 1.3; margin-bottom: .75rem; }
	.uw-modal__points { display: none; }
	.uw-modal__note { padding: .6rem .8rem; font-size: .78rem; }
	.uw-modal__call { display: none; }

	.uw-modal__head { padding-right: 3.1rem; margin-bottom: 1.1rem; }
	.uw-modal__title { font-size: 1.14rem; }
	.uw-modal__intro { font-size: .86rem; margin-bottom: .9rem; }

	.uw-steps { gap: .3rem; }
	.uw-steps__item { font-size: .68rem; padding: .32rem .55rem .32rem .32rem; gap: .35rem; }
	.uw-steps__item span { width: 18px; height: 18px; font-size: .64rem; }
}

/* Wide screens: give the hero copy a little more room to breathe. */
@media (min-width: 1400px) {
	:root { --uw-wrap: 1300px; }
}

/* Devices without hover (touch) should not rely on :hover to reveal anything. */
@media (hover: none) {
	.uw-gallery__item figcaption span { transform: none; opacity: 1; }
	.uw-social__label { display: none; }
}

/* ------------------------------------------------- 20. Motion preferences */
/* Reduce, don't remove.
 *
 * Blanking every animation and transition is the usual reading of this query,
 * but it also strips hover feedback, progress spinners and the hero video —
 * and a great many people leave "Reduce motion" switched on permanently for
 * reasons unrelated to any one site. So: everything that travels, loops,
 * parallaxes or auto-plays a decorative movement stops; cross-fades, colour
 * changes and genuine progress indicators stay. main.js applies the matching
 * rules to the GSAP layer, and Customizer → Motion & Animation offers a
 * stricter grade that also swaps the video for its poster.
 */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	/* Looping decoration — pure ornament, nothing is lost by stopping it. */
	.uw-gutfig__flora circle,
	.uw-gutfig__node,
	.uw-gutfig__signal,
	.uw-infobar__badge .uw-icon,
	.uw-hero__grain {
		animation: none !important;
	}

	/* Movement on interaction becomes colour and elevation only. */
	.uw-btn:hover, .uw-btn:focus-visible,
	.uw-pillar:hover,
	.uw-card:hover,
	.uw-gallery__item:hover figure,
	.uw-subpages a:hover,
	.uw-postnav__link:hover,
	.uw-footer__social a:hover,
	.uw-social__link:hover,
	.uw-infobar__cell:hover,
	.uw-slot:hover,
	.uw-radio:hover .uw-radio__box {
		transform: none;
	}
	.uw-btn:hover .uw-btn__icon,
	.uw-btn:focus-visible .uw-btn__icon,
	.uw-card:hover .uw-card__media img,
	.uw-gallery__item:hover img,
	.uw-footer__menu a:hover {
		transform: none;
	}
	.uw-btn__fill { transition-duration: .01ms; }
	.uw-modal__close:hover { transform: none; }

	/* Panels and sheets arrive by fading, not sliding. */
	.uw-modal__dialog { transform: none !important; }
	.uw-nav { transition: opacity .2s linear, visibility 0s linear .2s; transform: none !important; opacity: 0; }
	.uw-nav.is-open { opacity: 1; transition-delay: 0s; }
	.uw-burger__line { transition-duration: .01ms; }

	/* Cross-fade the question carousel in place. */
	.uw-shuffle__item,
	.uw-shuffle__item.from-left,
	.uw-shuffle__item.from-right { transform: none !important; }

	/* Drawn diagrams and progress feedback are information, so they stay. */
	.uw-success__ring, .uw-success__tick { animation-duration: .4s; }
}

/* --------------------------------------------------- 21. Print & no-JS */
.no-js [data-uw-reveal],
.no-js [data-uw-fade],
.no-js [data-uw-stagger] > * { opacity: 1 !important; transform: none !important; }

@media print {
	.uw-header, .uw-social, .uw-top, .uw-modal, .uw-cta, .uw-hero__media { display: none !important; }
	body { color: #000; background: #fff; }
	.uw-hero { min-height: 0; padding-top: 1rem; }
	.uw-hero__title { color: #000; text-shadow: none; }
}

@media (max-width: 430px) {
	.uw-brand { gap: .55rem; }
	.uw-brand__name { font-size: 1.02rem; }
	.uw-brand__tag { font-size: .58rem; letter-spacing: .11em; }
	/* The logo carries the brand on a phone, so it grows while the bar around
	   it shrinks — the mark ends up taller than the bar's own padding allows,
	   which is the point. */
	.uw-brand__mark { height: 60px; }
	.uw-brand__pic, .uw-brand__gif { height: 60px; max-width: 70px; }
	.uw-brand__name { font-size: .98rem; }
	.uw-brand__tag { font-size: .55rem; letter-spacing: .1em; }
	.uw-brand { gap: .45rem; }
	.uw-burger { width: 42px; height: 42px; }
}

/* ------------------------------------------------- 22. Testimonial carousel */
.uw-reviews { position: relative; overflow: hidden; }
.uw-reviews__wash {
	position: absolute;
	inset: -20% -10% auto -10%;
	height: 60%;
	background: radial-gradient(50% 60% at 50% 0%, rgba(33, 199, 187, .13), transparent 70%);
	pointer-events: none;
}
.uw-reviews__inner { position: relative; }

.uw-reviews__adminwarn {
	display: flex;
	gap: .7rem;
	max-width: 760px;
	margin: 0 auto 1.6rem;
	padding: .9rem 1.1rem;
	border-radius: var(--uw-r-md);
	background: var(--uw-red-050);
	border: 1px dashed var(--uw-red);
	color: var(--uw-red-600);
	font-size: .86rem;
	line-height: 1.6;
}
.uw-reviews__adminwarn .uw-icon { flex-shrink: 0; margin-top: .1em; }
.uw-reviews__adminwarn a { color: var(--uw-red-600); font-weight: 700; }

.uw-carousel { position: relative; }
.uw-carousel__viewport {
	overflow: hidden;
	border-radius: var(--uw-r-lg);
	/* Horizontal drags move the carousel, vertical ones scroll the page. */
	touch-action: pan-y;
	cursor: grab;
	-webkit-user-select: none;
	user-select: none;
	padding: 4px;
	margin: -4px;
}
.uw-carousel__viewport:focus-visible { outline: 3px solid var(--uw-primary); outline-offset: 4px; }
.uw-carousel__viewport.is-dragging { cursor: grabbing; }
.uw-carousel__viewport.is-dragging .uw-carousel__track { transition: none; }

.uw-carousel__track {
	display: flex;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
	transition: transform .55s var(--uw-e-out);
	will-change: transform;
}
.uw-carousel__slide {
	flex: 0 0 var(--uw-slide, 100%);
	max-width: var(--uw-slide, 100%);
	padding: 0 clamp(.4rem, 1vw, .7rem);
	box-sizing: border-box;
}

.uw-quote {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	padding: clamp(1.4rem, 3vw, 2rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	box-shadow: var(--uw-sh-1);
	transition: box-shadow var(--uw-t) var(--uw-e-out), transform var(--uw-t) var(--uw-e-out);
}
.uw-quote:hover { box-shadow: var(--uw-sh-2); transform: translateY(-3px); }
.uw-quote__mark {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	margin-bottom: .9rem;
	border-radius: 14px;
	background: var(--uw-primary-050);
	color: var(--uw-primary);
}
.uw-quote__text { margin: .7rem 0 1.3rem; flex: 1; }
.uw-quote__text p {
	margin: 0;
	font-size: clamp(.98rem, .94rem + .2vw, 1.06rem);
	line-height: 1.75;
	color: var(--uw-ink-2);
}
.uw-quote__by { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.uw-quote__avatar {
	display: grid;
	place-items: center;
	width: 42px; height: 42px;
	flex: 0 0 42px;
	border-radius: 50%;
	background: linear-gradient(140deg, var(--uw-primary), var(--uw-blue));
	color: #fff;
	font-weight: 700;
	font-size: 1.02rem;
}
.uw-quote__by strong { display: block; font-size: .94rem; color: var(--uw-ink); line-height: 1.3; }
.uw-quote__by em { font-style: normal; font-size: .82rem; color: var(--uw-ink-3); }
.uw-quote__src {
	margin-left: auto;
	padding: .28rem .7rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-bg-soft);
	font-size: .72rem;
	font-weight: 700;
	color: var(--uw-muted);
}

.uw-stars { display: inline-flex; gap: 2px; }
.uw-stars__s { color: var(--uw-line); display: inline-flex; }
.uw-stars__s.is-on { color: #F5A623; }

.uw-carousel__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	margin-top: clamp(1.4rem, 3vw, 2rem);
}
.uw-carousel__nav {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	flex: 0 0 44px;
	border: 1.5px solid var(--uw-line);
	border-radius: 50%;
	background: #fff;
	color: var(--uw-ink-2);
	cursor: pointer;
	transition: border-color var(--uw-t-fast) linear, background var(--uw-t-fast) linear,
	            color var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-carousel__nav:hover:not([disabled]) {
	border-color: var(--uw-primary);
	background: var(--uw-primary);
	color: #fff;
	transform: scale(1.06);
}
.uw-carousel__nav[disabled] { opacity: .35; cursor: not-allowed; }
[data-uw-carousel-prev] .uw-icon { transform: rotate(180deg); }

.uw-carousel__dots { display: flex; gap: .4rem; }
.uw-carousel__dot {
	width: 26px; height: 5px;
	padding: 0;
	border: 0;
	border-radius: var(--uw-r-pill);
	background: var(--uw-line);
	cursor: pointer;
	transition: background var(--uw-t-fast) linear, width var(--uw-t) var(--uw-e-out);
}
.uw-carousel__dot.is-active { width: 40px; background: var(--uw-primary); }
.uw-carousel__dot:hover { background: var(--uw-primary-600); }

/* ---------------------------------------------------- 23. Audio control */
.uw-audio {
	position: fixed;
	left: 14px; bottom: 16px;
	z-index: 150;
}
.uw-audio[hidden] { display: none; }
.uw-audio__btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .42rem .85rem .42rem .5rem;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-pill);
	background: #fff;
	color: var(--uw-ink-2);
	font-family: var(--uw-font);
	font-size: .76rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: var(--uw-sh-2);
	transition: color var(--uw-t-fast) linear, border-color var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-audio__btn:hover { transform: translateY(-2px); border-color: var(--uw-primary-100); color: var(--uw-primary-700); }
.uw-audio__icon {
	display: grid;
	place-items: center;
	width: 26px; height: 26px;
	border-radius: 50%;
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
}
.uw-audio__bars { display: flex; align-items: flex-end; gap: 2px; height: 13px; }
.uw-audio__bars i {
	display: block;
	width: 2.5px;
	height: 4px;
	border-radius: 2px;
	background: currentColor;
	transition: height var(--uw-t) var(--uw-e-out);
}
/* Bars only dance while sound is actually playing; muted shows a flat line. */
.uw-audio.is-playing .uw-audio__bars i { animation: uwEq .9s ease-in-out infinite; }
.uw-audio.is-playing .uw-audio__bars i:nth-child(2) { animation-delay: -.25s; }
.uw-audio.is-playing .uw-audio__bars i:nth-child(3) { animation-delay: -.5s; }
.uw-audio.is-playing .uw-audio__bars i:nth-child(4) { animation-delay: -.75s; }
@keyframes uwEq { 0%, 100% { height: 4px; } 50% { height: 13px; } }
.uw-audio:not(.is-playing) .uw-audio__icon { background: var(--uw-line-2); color: var(--uw-muted); }

@media (max-width: 620px) {
	.uw-audio { left: 10px; bottom: 12px; }
	.uw-audio__label { display: none; }
	.uw-audio__btn { padding: .42rem; }
}

/* ============================================== 25. About page */

/* --- The premise ------------------------------------------------------- */
.uw-premise { padding-block: var(--uw-section); }
.uw-premise__inner {
	width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap));
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}
.uw-premise__pull {
	display: flex;
	gap: .9rem;
	margin-top: 1.6rem;
	padding: 1.3rem 1.5rem;
	border-radius: var(--uw-r-lg);
	background: linear-gradient(150deg, var(--uw-primary-050), #fff);
	border-left: 4px solid var(--uw-primary);
	box-shadow: var(--uw-sh-1);
}
.uw-premise__pull .uw-icon { color: var(--uw-primary); flex-shrink: 0; }
.uw-premise__pull p {
	margin: 0;
	font-size: clamp(1.02rem, .96rem + .3vw, 1.18rem);
	font-weight: 700;
	line-height: 1.55;
	color: var(--uw-ink);
}
.uw-premise__body p {
	font-size: var(--uw-fs-lead);
	line-height: 1.85;
	color: var(--uw-ink-2);
}
.uw-premise__actions { margin-top: 1.8rem; }

/* --- Conditions -------------------------------------------------------- */
.uw-conditions { position: relative; padding-block: var(--uw-section); background: var(--uw-bg-soft); overflow: hidden; }
.uw-conditions__wash {
	position: absolute;
	inset: -30% -10% auto -10%;
	height: 70%;
	background: radial-gradient(50% 60% at 50% 0%, rgba(29, 95, 168, .1), transparent 70%);
	pointer-events: none;
}
.uw-conditions__inner {
	position: relative;
	width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap));
	margin-inline: auto;
}
.uw-conditions__head { max-width: 720px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.uw-conditions__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
	gap: .7rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.uw-condition {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .95rem 1.1rem;
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-md);
	font-size: .94rem;
	font-weight: 600;
	color: var(--uw-ink-2);
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out), border-color var(--uw-t-fast) linear;
}
.uw-condition:hover { transform: translateY(-3px); box-shadow: var(--uw-sh-2); border-color: var(--uw-primary-100); }
.uw-condition__icon {
	display: grid;
	place-items: center;
	width: 36px; height: 36px;
	flex: 0 0 36px;
	border-radius: 11px;
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
}
.uw-conditions__note {
	max-width: 62ch;
	margin: clamp(1.6rem, 3vw, 2.2rem) auto 0;
	text-align: center;
	font-size: .95rem;
	color: var(--uw-ink-3);
}

/* --- Mission & packages ------------------------------------------------ */
.uw-mission { padding-block: var(--uw-section); }
.uw-mission__inner { width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-mission__head { max-width: 800px; margin: 0 auto clamp(2.2rem, 4vw, 3.2rem); }
.uw-mission__sub {
	font-size: var(--uw-fs-h3);
	text-align: center;
	margin-bottom: clamp(1.4rem, 3vw, 2rem);
}
.uw-mission__sub--left { text-align: left; }

.uw-packages {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: clamp(1rem, 2.5vw, 1.6rem);
}
.uw-package {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2.1rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-xl);
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-package:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-2); }
/* A hairline of brand colour along the top edge distinguishes the two tiers
   without resorting to two different card backgrounds. */
.uw-package::before {
	content: '';
	position: absolute;
	top: 0; left: clamp(1.5rem, 3vw, 2.1rem); right: clamp(1.5rem, 3vw, 2.1rem);
	height: 3px;
	border-radius: 0 0 3px 3px;
}
.uw-package--teal::before { background: linear-gradient(90deg, var(--uw-primary), var(--uw-green)); }
.uw-package--blue::before { background: linear-gradient(90deg, var(--uw-blue), var(--uw-primary)); }
.uw-package__icon {
	display: grid;
	place-items: center;
	width: 48px; height: 48px;
	margin-bottom: 1rem;
	border-radius: 15px;
}
.uw-package--teal .uw-package__icon { background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-package--blue .uw-package__icon { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-package__badge {
	margin: 0 0 .4rem;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--uw-muted);
}
.uw-package__title { font-size: 1.22rem; margin-bottom: .5rem; }
.uw-package__text { font-size: .95rem; line-height: 1.75; color: var(--uw-ink-3); margin-bottom: 1.1rem; }
.uw-package__points { margin: 0 0 1.5rem; padding: 0; list-style: none; display: grid; gap: .5rem; flex: 1; }
.uw-package__points li { display: flex; gap: .55rem; align-items: flex-start; font-size: .9rem; font-weight: 600; color: var(--uw-ink-2); }
.uw-package__points .uw-icon { flex-shrink: 0; margin-top: .18em; color: var(--uw-green); }
.uw-package .uw-btn { align-self: flex-start; }

/* --- The four-step flow ------------------------------------------------ */
.uw-steps-flow { margin-top: clamp(2.6rem, 5vw, 4rem); }
.uw-flow {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: clamp(1rem, 2.4vw, 1.6rem);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}
.uw-flow__step {
	position: relative;
	padding: 1.5rem 1.4rem 1.4rem;
	background: var(--uw-bg-soft);
	border-radius: var(--uw-r-lg);
	border: 1px solid var(--uw-line-2);
}
.uw-flow__num {
	position: absolute;
	top: .9rem; right: 1.1rem;
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1;
	color: var(--uw-primary-100);
}
.uw-flow__icon {
	display: grid;
	place-items: center;
	width: 42px; height: 42px;
	margin-bottom: .9rem;
	border-radius: 13px;
	background: #fff;
	color: var(--uw-primary-700);
	box-shadow: var(--uw-sh-1);
}
.uw-flow__body strong { display: block; font-size: 1.02rem; margin-bottom: .35rem; color: var(--uw-ink); }
.uw-flow__body em { font-style: normal; font-size: .89rem; line-height: 1.7; color: var(--uw-ink-3); }

/* --- Talks ------------------------------------------------------------- */
.uw-talks { padding-block: var(--uw-section); background: var(--uw-bg-soft); }
.uw-talks__inner { width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-talks__head { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3rem); }

.uw-talkgrid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
	gap: clamp(1rem, 2.4vw, 1.6rem);
}
.uw-talk {
	display: flex;
	flex-direction: column;
	padding: clamp(1.3rem, 2.6vw, 1.7rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-talk:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-2); }
.uw-talk__top { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: 1rem; }
.uw-talk__play {
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	border-radius: 14px;
	background: var(--uw-red-050);
	color: var(--uw-red);
}
.uw-talk__part {
	padding: .3rem .75rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-primary-050);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--uw-primary-700);
}
.uw-talk__title { font-size: 1.06rem; line-height: 1.4; margin-bottom: .55rem; }
.uw-talk__title a { color: var(--uw-ink); text-decoration: none; }
.uw-talk__title a:hover { color: var(--uw-primary-700); }
.uw-talk__text { font-size: .9rem; line-height: 1.7; color: var(--uw-ink-3); margin-bottom: 1.2rem; flex: 1; }
.uw-talk__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	margin: 0;
	padding-top: .9rem;
	border-top: 1px solid var(--uw-line-2);
	font-size: .82rem;
	color: var(--uw-muted);
}
.uw-talk__meta > span { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; }
.uw-talk__link {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-weight: 700;
	color: var(--uw-primary-700);
	text-decoration: none;
}
.uw-talk__link .uw-icon { transition: transform var(--uw-t) var(--uw-e-out); }
.uw-talk__link:hover .uw-icon { transform: translateX(3px); }

/* --- Photo strip ------------------------------------------------------- */
.uw-gallerystrip { margin-top: clamp(2.6rem, 5vw, 4rem); }
.uw-gallerystrip__title { font-size: var(--uw-fs-h3); text-align: center; margin-bottom: .35rem; }
.uw-gallerystrip__note { text-align: center; font-size: .9rem; color: var(--uw-ink-3); margin-bottom: clamp(1.2rem, 2.5vw, 1.8rem); }
.uw-gallerystrip__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: clamp(.7rem, 1.6vw, 1.1rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.uw-shot {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	border-radius: var(--uw-r-lg);
	overflow: hidden;
	background: var(--uw-bg-tint);
	cursor: zoom-in;
	aspect-ratio: 1;
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-shot img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--uw-e-out); }
.uw-shot:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-2); }
.uw-shot:hover img { transform: scale(1.07); }
.uw-shot__zoom {
	position: absolute;
	right: .6rem; bottom: .6rem;
	display: grid;
	place-items: center;
	width: 34px; height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--uw-primary-700);
	opacity: 0;
	transform: scale(.8);
	transition: opacity var(--uw-t) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-shot:hover .uw-shot__zoom, .uw-shot:focus-visible .uw-shot__zoom { opacity: 1; transform: scale(1); }

/* --- Closing method ---------------------------------------------------- */
.uw-method { padding-block: clamp(2rem, 4vw, 3.2rem); }
.uw-method__inner {
	width: min(100% - (var(--uw-gutter) * 2), 940px);
	margin-inline: auto;
	display: flex;
	gap: 1.1rem;
	padding: clamp(1.5rem, 3vw, 2.2rem);
	background: linear-gradient(150deg, var(--uw-blue-050), #fff);
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-xl);
	box-shadow: var(--uw-sh-1);
}
.uw-method__icon {
	display: grid;
	place-items: center;
	width: 52px; height: 52px;
	flex: 0 0 52px;
	border-radius: 16px;
	background: #fff;
	color: var(--uw-blue);
	box-shadow: var(--uw-sh-1);
}
.uw-method__inner p { margin: 0; font-size: .98rem; line-height: 1.8; color: var(--uw-ink-2); }

/* ============================================== 26. Lightbox */
.uw-lightbox {
	position: fixed;
	inset: 0;
	z-index: 500;
	display: grid;
	place-items: center;
	padding: clamp(.8rem, 3vw, 2.5rem);
}
.uw-lightbox[hidden] { display: none; }
.uw-lightbox__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	background: rgba(10, 26, 33, .88);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity var(--uw-t) var(--uw-e-soft);
}
.uw-lightbox.is-open .uw-lightbox__backdrop { opacity: 1; }

.uw-lightbox__figure {
	position: relative;
	z-index: 2;
	max-width: min(100%, 1100px);
	margin: 0;
	opacity: 0;
	transform: scale(.96);
	transition: opacity var(--uw-t) var(--uw-e-soft), transform .4s var(--uw-e-out);
}
.uw-lightbox.is-open .uw-lightbox__figure { opacity: 1; transform: scale(1); }
.uw-lightbox__figure img {
	display: block;
	max-width: 100%;
	max-height: 76svh;
	width: auto;
	margin-inline: auto;
	border-radius: var(--uw-r-lg);
	box-shadow: 0 30px 80px rgba(0, 0, 0, .5);
	background: var(--uw-ink);
}
.uw-lightbox__caption {
	max-width: 70ch;
	margin: 1rem auto 0;
	text-align: center;
	font-size: .9rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, .88);
}
.uw-lightbox__close {
	position: absolute;
	top: -14px; right: -14px;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px; height: 44px;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--uw-ink);
	box-shadow: var(--uw-sh-2);
	cursor: pointer;
	transition: transform var(--uw-t) var(--uw-e-out), background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-lightbox__close:hover { background: var(--uw-red); color: #fff; transform: rotate(90deg); }

.uw-lightbox__nav {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 46px; height: 46px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--uw-ink);
	cursor: pointer;
	transform: translateY(-50%);
	transition: background var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-lightbox__nav:hover { background: var(--uw-primary); color: #fff; }
.uw-lightbox__nav--prev { left: clamp(-58px, -4vw, -10px); }
.uw-lightbox__nav--next { right: clamp(-58px, -4vw, -10px); }
.uw-lightbox__nav--prev .uw-icon { transform: rotate(180deg); }

@media (max-width: 760px) {
	.uw-lightbox__close { top: -10px; right: -6px; width: 40px; height: 40px; }
	.uw-lightbox__nav { top: auto; bottom: -58px; transform: none; }
	.uw-lightbox__nav--prev { left: calc(50% - 56px); }
	.uw-lightbox__nav--next { right: calc(50% - 56px); }
	.uw-lightbox__figure img { max-height: 62svh; }
	.uw-lightbox__caption { margin-bottom: 3.6rem; }
}

@media (max-width: 1000px) {
	.uw-premise__inner { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 620px) {
	.uw-method__inner { flex-direction: column; }
	.uw-package .uw-btn { align-self: stretch; }
	.uw-gallerystrip__list { grid-template-columns: 1fr 1fr; }
}

/* ============================================== 27. Service pages */

/* --- Shared bits ------------------------------------------------------- */
.uw-ticks { margin: 0; padding: 0; list-style: none; display: grid; gap: .7rem; }
.uw-ticks li { display: flex; gap: .65rem; align-items: flex-start; font-size: .98rem; line-height: 1.7; color: var(--uw-ink-2); }
.uw-ticks .uw-icon { flex-shrink: 0; margin-top: .18em; color: var(--uw-primary); }

.uw-optional { font-weight: 500; color: var(--uw-muted); font-size: .82em; }
.uw-field__hint { display: block; margin-top: .3rem; font-size: .78rem; color: var(--uw-muted); }
.uw-field__count { display: block; margin-top: .3rem; font-size: .78rem; color: var(--uw-muted); font-weight: 600; }
.uw-field.has-error .uw-field__count { color: var(--uw-red); }

/* --- Alternating feature rows ------------------------------------------ */
.uw-feature { padding-block: clamp(2.6rem, 5vw, 4.5rem); }
.uw-feature__inner {
	width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap));
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, .55fr) minmax(0, 1.45fr);
	gap: clamp(1.6rem, 4vw, 3.4rem);
	align-items: center;
}
.uw-feature--flip .uw-feature__inner { grid-template-columns: minmax(0, 1.45fr) minmax(0, .55fr); }
.uw-feature__badge {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	max-width: 220px;
	margin-inline: auto;
	border-radius: var(--uw-r-xl);
	background: linear-gradient(150deg, var(--uw-primary-050), #fff);
	border: 1px solid var(--uw-primary-100);
	box-shadow: var(--uw-sh-1);
}
.uw-feature__badge--blue { background: linear-gradient(150deg, var(--uw-blue-050), #fff); border-color: #D6E5F5; }
.uw-feature__num {
	position: absolute;
	top: 1rem; right: 1.2rem;
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--uw-primary-100);
}
.uw-feature__badge--blue .uw-feature__num { color: #C3DAF0; }
.uw-feature__icon {
	display: grid;
	place-items: center;
	width: 76px; height: 76px;
	border-radius: 24px;
	background: #fff;
	color: var(--uw-primary-700);
	box-shadow: var(--uw-sh-2);
}
.uw-feature__badge--blue .uw-feature__icon { color: var(--uw-blue); }

/* --- Foundational labs ------------------------------------------------- */
.uw-foundation { position: relative; padding-block: var(--uw-section); background: var(--uw-bg-soft); overflow: hidden; }
.uw-foundation__wash {
	position: absolute; inset: -30% -10% auto -10%; height: 70%;
	background: radial-gradient(50% 60% at 50% 0%, rgba(33, 199, 187, .14), transparent 70%);
	pointer-events: none;
}
.uw-foundation__inner { position: relative; width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-foundation__head { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.uw-areas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: clamp(.8rem, 2vw, 1.2rem);
	margin: 0; padding: 0; list-style: none;
}
.uw-area {
	position: relative;
	display: flex;
	align-items: center;
	gap: .85rem;
	padding: 1.2rem 1.3rem;
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-area:hover { transform: translateY(-3px); box-shadow: var(--uw-sh-2); }
.uw-area__ring {
	position: absolute;
	top: .7rem; right: .95rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--uw-primary-100);
}
.uw-area__icon {
	display: grid; place-items: center;
	width: 46px; height: 46px; flex: 0 0 46px;
	border-radius: 15px;
	background: var(--uw-primary-050);
	color: var(--uw-primary-700);
}
.uw-area__label { font-size: .98rem; font-weight: 700; color: var(--uw-ink); line-height: 1.35; }

/* --- Programs ----------------------------------------------------------- */
.uw-programs { padding-block: var(--uw-section); }
.uw-programs__inner { width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-programs__head { max-width: 720px; margin: 0 auto clamp(1.8rem, 3.5vw, 2.6rem); }
.uw-programs__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(1rem, 2.4vw, 1.6rem); }
.uw-program {
	position: relative;
	padding: clamp(1.5rem, 3vw, 2rem);
	border-radius: var(--uw-r-xl);
	border: 1px solid var(--uw-line-2);
	background: #fff;
	box-shadow: var(--uw-sh-1);
	overflow: hidden;
}
.uw-program::after {
	content: '';
	position: absolute; inset: auto -30% -60% auto;
	width: 260px; height: 260px; border-radius: 50%;
	pointer-events: none;
}
.uw-program--teal::after { background: radial-gradient(circle, rgba(33,199,187,.14), transparent 70%); }
.uw-program--blue::after { background: radial-gradient(circle, rgba(29,95,168,.12), transparent 70%); }
.uw-program__len {
	display: inline-block;
	margin-bottom: .8rem;
	padding: .35rem .9rem;
	border-radius: var(--uw-r-pill);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.uw-program--teal .uw-program__len { background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-program--blue .uw-program__len { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-program h3 { font-size: 1.2rem; margin-bottom: .5rem; }
.uw-program p { margin: 0; font-size: .95rem; line-height: 1.75; color: var(--uw-ink-3); }

.uw-programs__for {
	margin-top: clamp(1.6rem, 3vw, 2.4rem);
	padding: clamp(1.4rem, 3vw, 2rem);
	border-radius: var(--uw-r-xl);
	background: var(--uw-bg-soft);
	border: 1px solid var(--uw-line-2);
}
.uw-programs__forTitle { font-size: 1.05rem; margin-bottom: .9rem; }
.uw-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.uw-chips li {
	padding: .45rem 1rem;
	border-radius: var(--uw-r-pill);
	background: #fff;
	border: 1px solid var(--uw-primary-100);
	font-size: .88rem;
	font-weight: 700;
	color: var(--uw-primary-700);
}
.uw-programs__for p { margin: 0; font-size: .96rem; line-height: 1.75; color: var(--uw-ink-2); }

/* --- Laboratory wall ---------------------------------------------------- */
.uw-labs { padding-block: var(--uw-section); background: var(--uw-bg-soft); }
.uw-labs__inner { width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-labs__head { max-width: 720px; margin: 0 auto clamp(1.8rem, 3.5vw, 2.6rem); }
.uw-logos {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: clamp(.7rem, 1.6vw, 1.1rem);
	margin: 0; padding: 0; list-style: none;
}
.uw-logo {
	display: grid;
	place-items: center;
	padding: 1.1rem 1.2rem;
	min-height: 110px;
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-md);
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-logo:hover { transform: translateY(-3px); box-shadow: var(--uw-sh-2); }
.uw-logo a { display: grid; place-items: center; width: 100%; }
/* Logos arrive at wildly different aspect ratios; capping both dimensions is
   what keeps the wall looking like a grid rather than a scrapbook. */
.uw-logo__img, .uw-logo picture, .uw-logo img {
	max-width: 100%;
	max-height: 62px;
	width: auto;
	height: auto;
	object-fit: contain;
}
.uw-logo__text { font-size: .95rem; font-weight: 700; color: var(--uw-ink-2); text-align: center; }
.uw-labs__note {
	max-width: 70ch;
	margin: clamp(1.4rem, 3vw, 2rem) auto 0;
	text-align: center;
	font-size: .78rem;
	color: var(--uw-muted);
}

/* --- Supplements -------------------------------------------------------- */
.uw-suppintro { padding-block: var(--uw-section); }
.uw-suppintro__inner { width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-suppintro__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(1rem, 2.4vw, 1.6rem); }
.uw-suppcard {
	display: flex;
	flex-direction: column;
	padding: clamp(1.5rem, 3vw, 2rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-xl);
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-suppcard:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-2); }
.uw-suppcard__icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 1rem; border-radius: 15px; }
.uw-suppcard__icon--teal { background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-suppcard__icon--red { background: var(--uw-red-050); color: var(--uw-red); }
.uw-suppcard__icon--blue { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-suppcard__title { font-size: 1.14rem; margin-bottom: 1rem; }
.uw-suppcard .uw-btn { align-self: flex-start; margin-top: 1.2rem; }

.uw-stores { position: relative; padding-block: var(--uw-section); background: var(--uw-bg-soft); overflow: hidden; }
.uw-stores__wash {
	position: absolute; inset: -30% -10% auto -10%; height: 70%;
	background: radial-gradient(50% 60% at 50% 0%, rgba(29,95,168,.1), transparent 70%);
	pointer-events: none;
}
.uw-stores__inner { position: relative; width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-stores__head { max-width: 680px; margin: 0 auto clamp(1.8rem, 3.5vw, 2.6rem); }
.uw-stores__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(1rem, 2.4vw, 1.6rem); }
.uw-store {
	display: flex;
	flex-direction: column;
	padding: clamp(1.4rem, 3vw, 1.9rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	box-shadow: var(--uw-sh-1);
	border-top: 3px solid var(--uw-primary);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-store--blue { border-top-color: var(--uw-blue); }
.uw-store--green { border-top-color: var(--uw-green); }
.uw-store:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-2); }
.uw-store__icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: .9rem; border-radius: 14px; background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-store--blue .uw-store__icon { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-store--green .uw-store__icon { background: var(--uw-green-050); color: var(--uw-green-600); }
.uw-store__title { font-size: 1.06rem; margin-bottom: .45rem; }
.uw-store__text { font-size: .92rem; line-height: 1.7; color: var(--uw-ink-3); margin-bottom: 1.2rem; flex: 1; }
.uw-store__soon { margin: 0; font-size: .84rem; font-style: italic; color: var(--uw-muted); }
.uw-store .uw-btn { align-self: flex-start; }
.uw-stores__note {
	display: flex;
	gap: .6rem;
	max-width: 74ch;
	margin: clamp(1.6rem, 3vw, 2.2rem) auto 0;
	padding: .9rem 1.1rem;
	border-radius: var(--uw-r-md);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	font-size: .84rem;
	line-height: 1.65;
	color: var(--uw-ink-3);
}
.uw-stores__note .uw-icon { flex-shrink: 0; margin-top: .15em; color: var(--uw-blue); }

/* --- Coming soon -------------------------------------------------------- */
.uw-soon { padding-block: var(--uw-section); }
.uw-soon__inner {
	width: min(100% - (var(--uw-gutter) * 2), 900px);
	margin-inline: auto;
	text-align: center;
}
.uw-soon__mark {
	position: relative;
	display: grid; place-items: center;
	width: 92px; height: 92px;
	margin: 0 auto 1.4rem;
	border-radius: 28px;
	background: linear-gradient(150deg, var(--uw-primary), var(--uw-blue));
	color: #fff;
	box-shadow: var(--uw-sh-brand);
}
.uw-soon__pulse {
	position: absolute; inset: 0;
	border-radius: 28px;
	border: 2px solid var(--uw-primary);
	animation: uwSoon 2.6s var(--uw-e-soft) infinite;
}
@keyframes uwSoon {
	0% { transform: scale(1); opacity: .8; }
	70% { transform: scale(1.35); opacity: 0; }
	100% { transform: scale(1.35); opacity: 0; }
}
.uw-soon__title { font-size: var(--uw-fs-h2); margin-bottom: .5em; }
.uw-soon__text { max-width: 62ch; margin: 0 auto clamp(2rem, 4vw, 3rem); font-size: var(--uw-fs-lead); color: var(--uw-ink-2); }
.uw-soon__routes { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(1rem, 2.4vw, 1.6rem); text-align: left; }
.uw-soon__route {
	padding: clamp(1.4rem, 3vw, 1.9rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	box-shadow: var(--uw-sh-1);
}
.uw-soon__routeIcon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: .9rem; border-radius: 14px; background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-soon__routeIcon--blue { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-soon__route h3 { font-size: 1.06rem; margin-bottom: .45rem; }
.uw-soon__route p { font-size: .92rem; line-height: 1.7; color: var(--uw-ink-3); margin-bottom: 1.1rem; }
.uw-soon__ping {
	display: inline-flex; align-items: center; gap: .5rem;
	margin: clamp(1.6rem, 3vw, 2.2rem) 0 0;
	padding: .7rem 1.1rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-bg-soft);
	font-size: .88rem;
	color: var(--uw-ink-2);
}
.uw-soon__ping .uw-icon { color: var(--uw-primary-700); }

/* --- Featured partner --------------------------------------------------- */
.uw-partner { padding-block: var(--uw-section); }
.uw-partner--alt { background: var(--uw-bg-soft); }
.uw-partner__inner {
	width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap));
	margin-inline: auto;
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	gap: clamp(1.8rem, 4vw, 3.4rem);
	align-items: center;
}
.uw-partner__plate {
	display: grid; place-items: center;
	padding: clamp(1.8rem, 4vw, 3rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-xl);
	box-shadow: var(--uw-sh-2);
}
.uw-partner__plate img { max-width: 100%; height: auto; }
.uw-partner__tag {
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--uw-primary-700);
	margin-bottom: 1rem;
}
.uw-partner__text { font-size: var(--uw-fs-lead); line-height: 1.8; color: var(--uw-ink-2); margin-bottom: 1.4rem; }
.uw-partner__points { margin: 0 0 1.6rem; padding: 0; list-style: none; display: grid; gap: .65rem; }
.uw-partner__points li { display: flex; gap: .65rem; align-items: flex-start; font-size: .95rem; font-weight: 600; color: var(--uw-ink-2); }
.uw-partner__points .uw-icon { flex-shrink: 0; margin-top: .1em; color: var(--uw-primary-700); }
.uw-partner__actions { display: flex; flex-wrap: wrap; gap: .7rem; }

/* --- FAQs --------------------------------------------------------------- */
.uw-faqs { padding-block: var(--uw-section); }
.uw-faqs__inner { width: min(100% - (var(--uw-gutter) * 2), 900px); margin-inline: auto; }
.uw-faqs__tools {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem;
	margin-bottom: 1.2rem;
}
.uw-faqs__count { margin: 0; font-size: .84rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--uw-muted); }
.uw-faqs__toggleAll {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .5rem 1rem;
	border: 1px solid var(--uw-line);
	border-radius: var(--uw-r-pill);
	background: #fff;
	font-size: .84rem; font-weight: 700;
	color: var(--uw-ink-2);
	cursor: pointer;
	transition: border-color var(--uw-t-fast) linear, color var(--uw-t-fast) linear;
}
.uw-faqs__toggleAll:hover { border-color: var(--uw-primary); color: var(--uw-primary-700); }
.uw-faqs__toggleAll .uw-icon { transition: transform var(--uw-t) var(--uw-e-out); }
.uw-faqs__toggleAll[aria-expanded="true"] .uw-icon { transform: rotate(180deg); }

.uw-accordion { display: grid; gap: .7rem; }
.uw-acc {
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-md);
	box-shadow: var(--uw-sh-1);
	overflow: hidden;
	transition: border-color var(--uw-t-fast) linear, box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-acc[open] { border-color: var(--uw-primary-100); box-shadow: var(--uw-sh-2); }
.uw-acc__q {
	display: flex;
	align-items: center;
	gap: .9rem;
	padding: 1.1rem 1.3rem;
	cursor: pointer;
	list-style: none;
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--uw-ink);
	transition: background var(--uw-t-fast) linear;
}
.uw-acc__q::-webkit-details-marker { display: none; }
.uw-acc__q:hover { background: var(--uw-bg-soft); }
.uw-acc__q:focus-visible { outline: 3px solid var(--uw-primary); outline-offset: -3px; }
.uw-acc__num { font-size: .82rem; font-weight: 700; color: var(--uw-primary); flex-shrink: 0; }
.uw-acc__text { flex: 1; line-height: 1.45; }
/* A plus that becomes a minus — cheaper than an icon swap and it animates. */
.uw-acc__sign {
	position: relative;
	display: block;
	width: 30px; height: 30px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--uw-primary-050);
	transition: background var(--uw-t-fast) linear, transform var(--uw-t) var(--uw-e-out);
}
.uw-acc__sign i {
	position: absolute;
	top: 50%; left: 50%;
	width: 13px; height: 2.5px;
	margin: -1.25px 0 0 -6.5px;
	border-radius: 2px;
	background: var(--uw-primary-700);
	transition: transform var(--uw-t) var(--uw-e-out), opacity var(--uw-t-fast) linear;
}
.uw-acc__sign i:last-child { transform: rotate(90deg); }
.uw-acc[open] .uw-acc__sign { background: var(--uw-primary); transform: rotate(180deg); }
.uw-acc[open] .uw-acc__sign i { background: #fff; }
.uw-acc[open] .uw-acc__sign i:last-child { transform: rotate(0deg); opacity: 0; }

.uw-acc__panel { height: 0; overflow: hidden; transition: height .34s var(--uw-e-out); }
.uw-acc__body { padding: 0 1.3rem 1.3rem calc(1.3rem + .82rem + .9rem); }
.uw-acc__body p { margin: 0 0 .9em; font-size: .96rem; line-height: 1.8; color: var(--uw-ink-2); }
.uw-acc__body p:last-child { margin-bottom: 0; }

.uw-faqs__aside {
	display: flex;
	gap: 1.1rem;
	margin-top: clamp(2rem, 4vw, 3rem);
	padding: clamp(1.5rem, 3vw, 2.1rem);
	border-radius: var(--uw-r-xl);
	background: linear-gradient(150deg, var(--uw-primary-050), #fff);
	border: 1px solid var(--uw-primary-100);
}
.uw-faqs__asideIcon { display: grid; place-items: center; width: 52px; height: 52px; flex: 0 0 52px; border-radius: 16px; background: #fff; color: var(--uw-primary-700); box-shadow: var(--uw-sh-1); }
.uw-faqs__asideTitle { font-size: 1.16rem; margin-bottom: .4rem; }
.uw-faqs__aside p { font-size: .95rem; line-height: 1.7; color: var(--uw-ink-2); margin-bottom: 1.1rem; }
.uw-faqs__asideActions { display: flex; flex-wrap: wrap; gap: .6rem; }

/* --- Contact page ------------------------------------------------------- */
.uw-contactpage { padding-block: var(--uw-section); }
.uw-contactpage__inner { width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }
.uw-contactcards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: clamp(.8rem, 2vw, 1.2rem);
	margin: 0 0 clamp(2rem, 4vw, 3rem);
	padding: 0;
	list-style: none;
}
.uw-contactcard {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .2rem;
	width: 100%;
	height: 100%;
	padding: 1.3rem 1.4rem;
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-lg);
	box-shadow: var(--uw-sh-1);
	text-align: left;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	font-family: var(--uw-font);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out), border-color var(--uw-t-fast) linear;
}
.uw-contactcard:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-2); border-color: var(--uw-primary-100); }
.uw-contactcard__icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: .8rem; border-radius: 15px; }
.uw-contactcard__icon--teal { background: var(--uw-primary-050); color: var(--uw-primary-700); }
.uw-contactcard__icon--red { background: var(--uw-red-050); color: var(--uw-red); }
.uw-contactcard__icon--blue { background: var(--uw-blue-050); color: var(--uw-blue); }
.uw-contactcard em { font-style: normal; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--uw-muted); }
.uw-contactcard strong { font-size: 1.04rem; color: var(--uw-ink); line-height: 1.35; overflow-wrap: anywhere; }
.uw-contactcard__sub { font-size: .84rem; color: var(--uw-ink-3); margin-top: .2rem; }



/* --- Captcha ------------------------------------------------------------ */
.uw-field--captcha { max-width: 340px; }
.uw-captcha { position: relative; display: block; }
.uw-captcha__icon {
	position: absolute;
	left: .85rem; top: 50%;
	transform: translateY(-50%);
	display: grid; place-items: center;
	color: var(--uw-primary-700);
	pointer-events: none;
}
.uw-captcha input { padding-left: 2.7rem !important; }

@media (max-width: 1000px) {
	.uw-feature__inner,
	.uw-feature--flip .uw-feature__inner,
	.uw-partner__inner { grid-template-columns: minmax(0, 1fr); }
	.uw-feature__media { order: -1; }
	.uw-feature--flip .uw-feature__media { order: -1; }
	.uw-feature__badge { max-width: 160px; }
}
@media (max-width: 620px) {
	.uw-logos { grid-template-columns: 1fr 1fr; }
	.uw-logo { min-height: 92px; padding: .9rem; }
	.uw-logo__img, .uw-logo img { max-height: 48px; }
	.uw-acc__body { padding-left: 1.3rem; }
	.uw-faqs__aside { flex-direction: column; }
	.uw-suppcard .uw-btn, .uw-store .uw-btn, .uw-soon__route .uw-btn { width: 100%; }
	.uw-field--captcha { max-width: none; }
}

/* ============================================== 28. Blog index */
.uw-blog { padding-block: clamp(2.5rem, 5vw, 4rem); }
.uw-blog__inner { width: min(100% - (var(--uw-gutter) * 2), var(--uw-wrap)); margin-inline: auto; }

.uw-featured {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 0;
	margin-bottom: clamp(1.6rem, 3.5vw, 2.6rem);
	background: #fff;
	border: 1px solid var(--uw-line-2);
	border-radius: var(--uw-r-xl);
	overflow: hidden;
	box-shadow: var(--uw-sh-1);
	transition: transform var(--uw-t) var(--uw-e-out), box-shadow var(--uw-t) var(--uw-e-out);
}
.uw-featured:hover { transform: translateY(-4px); box-shadow: var(--uw-sh-3); }
.uw-featured__link { position: absolute; inset: 0; z-index: 3; }
.uw-featured__media { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--uw-bg-tint); }
.uw-featured__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--uw-e-out); }
.uw-featured:hover .uw-featured__media img { transform: scale(1.05); }
.uw-featured__body { display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 3.5vw, 2.6rem); }
.uw-featured__meta {
	display: flex; flex-wrap: wrap; align-items: center; gap: .7rem;
	margin: 0 0 .9rem;
	font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	color: var(--uw-muted);
}
.uw-featured__badge {
	padding: .28rem .7rem;
	border-radius: var(--uw-r-pill);
	background: var(--uw-primary);
	color: #fff;
	letter-spacing: .1em;
}
.uw-featured__title { font-size: clamp(1.3rem, 1.1rem + 1vw, 1.9rem); line-height: 1.28; margin-bottom: .6rem; }
.uw-featured__excerpt { font-size: 1rem; line-height: 1.75; color: var(--uw-ink-3); margin-bottom: 1.2rem; }

@media (max-width: 860px) {
	.uw-featured { grid-template-columns: minmax(0, 1fr); }
	.uw-featured__media { aspect-ratio: 16 / 9; }
}
