/* =========================================================
   Meridian Services — frontend design system.
   Aligned with the active Divi-child theme palette + typography
   (DM Sans body, Montserrat headings, navy/gold accents).
   ========================================================= */

:root {
	/* Brand palette mirrors the Divi-child theme (navy + warm gold). */
	--ms-accent:        #020a35;
	--ms-accent-dark:   #000729;
	--ms-accent-light:  #293c8e;
	--ms-gold:          #c8b037;
	--ms-gold-dark:     #a3902a;

	--ms-ink:           #160d06;
	--ms-ink-soft:      #555555;

	--ms-bg:            #ffffff;
	--ms-bg-soft:       #f3f3f3;
	--ms-bg-muted:      #ebe9e4;
	--ms-border:        #e0e0e0;

	--ms-radius:        10px;
	--ms-radius-sm:     6px;
	--ms-shadow:        0 14px 30px -18px rgba( 2, 10, 53, .25 );
	--ms-shadow-sm:     0 4px 10px -4px rgba( 2, 10, 53, .15 );

	--ms-wrap:          1080px;
	--ms-gap:           clamp( 1rem, 2vw, 2rem );
	--ms-divider-h:     clamp( 28px, 3.6vw, 56px );

	--ms-font-body:     'DM Sans', 'Helvetica Neue', Arial, sans-serif;
	--ms-font-head:     'Montserrat', 'Helvetica Neue', Arial, sans-serif;
}

.ms-single-service {
	color: var( --ms-ink );
	font-family: var( --ms-font-body );
	line-height: 1.7;
	font-size: 16px;
	overflow-wrap: anywhere;
}
.ms-single-service h1,
.ms-single-service h2,
.ms-single-service h3,
.ms-single-service h4 {
	font-family: var( --ms-font-head );
	color: var( --ms-ink );
	font-weight: 600;
	letter-spacing: -.005em;
}
.ms-wrap {
	max-width: var( --ms-wrap );
	margin: 0 auto;
	padding: 0 clamp( 1rem, 4vw, 2.5rem );
}
.ms-section {
	padding: clamp( 3rem, 6vw, 5.5rem ) 0;
}
.ms-section--soft { background: var( --ms-bg-soft ); }
.ms-section__header {
	max-width: 760px;
	margin: 0 0 clamp( 2rem, 4vw, 3rem );
}
.ms-section__header--center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.ms-section__title {
	font-size: clamp( 1.75rem, 3.4vw, 2.4rem );
	line-height: 1.2;
	margin: 0 0 .75rem;
	font-weight: 600;
	color: var( --ms-accent );
}
.ms-section__lead {
	font-size: 1rem;
	color: var( --ms-ink-soft );
	margin: 0;
}
.ms-section__lead--center {
	margin-left: auto;
	margin-right: auto;
	max-width: 720px;
	text-align: center;
}
.ms-eyebrow {
	text-transform: uppercase;
	letter-spacing: .18em;
	font-size: .75rem;
	color: var( --ms-gold-dark );
	margin: 0 0 .6rem;
	font-weight: 700;
}

/* ---------------------------------------------------------------
 * Subtle Art Deco header decoration.
 *
 * - Title gets a thin gold rule + small diamond ornament beneath it.
 * - Decoration is pure CSS (no extra HTTP, no images), uses
 *   currentColor-friendly variables, and is `aria-hidden` server-side
 *   so screen readers ignore it.
 * - "Centered" header variants stretch the rule symmetrically; left
 *   aligned variants anchor the rule to the start.
 * - Subheading is a short contextual sentence under the title, using
 *   serif typography for editorial contrast against the bold heading.
 * ------------------------------------------------------------- */
.ms-section__header--art-deco .ms-section__title {
	position: relative;
	display: inline-block;
	padding-bottom: 1.1rem;
}
.ms-section__title-text {
	display: inline;
}
.ms-section__ornament {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 12px;
	pointer-events: none;
}
.ms-section__ornament::before,
.ms-section__ornament::after {
	content: "";
	position: absolute;
	top: 50%;
	height: 1px;
	background: linear-gradient( 90deg,
		transparent 0%,
		var( --ms-gold-dark, #b88a3e ) 35%,
		var( --ms-gold-dark, #b88a3e ) 65%,
		transparent 100% );
	transform: translateY( -50% );
	width: calc( 50% - 14px );
}
.ms-section__ornament::before { left: 0; }
.ms-section__ornament::after  { right: 0; }
/* Center diamond — built with a single rotated square. */
.ms-section__ornament > i,
.ms-section__ornament {
	--ornament-size: 8px;
}
.ms-section__ornament {
	display: block;
}
.ms-section__header--art-deco .ms-section__title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 4px;
	width: var( --ornament-size, 8px );
	height: var( --ornament-size, 8px );
	transform: translateX( -50% ) rotate( 45deg );
	background: var( --ms-gold-dark, #b88a3e );
	border-radius: 1px;
}

/* Left-aligned headers anchor the rule to the start (no right-side line). */
.ms-section__header--art-deco:not( .ms-section__header--center ) .ms-section__ornament::after {
	display: none;
}
.ms-section__header--art-deco:not( .ms-section__header--center ) .ms-section__ornament::before {
	left: 0;
	width: 90px;
	background: linear-gradient( 90deg,
		var( --ms-gold-dark, #b88a3e ) 0%,
		var( --ms-gold-dark, #b88a3e ) 100% );
}
.ms-section__header--art-deco:not( .ms-section__header--center ) .ms-section__title::after {
	left: 96px;
}

.ms-section__subheading {
	margin: .25rem 0 0;
	font-family: var( --ms-font-head, Georgia, "Times New Roman", serif );
	font-style: italic;
	font-size: clamp( .95rem, 1.4vw, 1.05rem );
	line-height: 1.55;
	color: var( --ms-ink-soft, #4a4a4a );
	max-width: 60ch;
}
.ms-section__header--center .ms-section__subheading {
	margin-left: auto;
	margin-right: auto;
}

/* ---------------------------------------------------------------
 * Responsive YouTube video block (Opening section "demo video").
 *
 * 16:9 aspect ratio is preserved on every viewport using the modern
 * `aspect-ratio` property (with a padding-bottom fallback for older
 * browsers). The block is centered and capped to a comfortable
 * reading width so it doesn't overpower the editorial copy above.
 * ------------------------------------------------------------- */
.ms-two-col__video {
	margin: clamp( 2rem, 4vw, 3rem ) auto 0;
	max-width: 880px;
}
.ms-video {
	width: 100%;
}
.ms-video__frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 6px;
	overflow: hidden;
	box-shadow: 0 18px 48px -22px rgba( 0, 0, 0, .35 );
}
@supports not ( aspect-ratio: 16 / 9 ) {
	.ms-video__frame {
		padding-bottom: 56.25%;
		height: 0;
	}
}
.ms-video__frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

/* Buttons mirror Divi's pill button look. */
.ms-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .85rem 1.8rem;
	border-radius: 3px;
	font-family: var( --ms-font-head );
	font-weight: 600;
	font-size: .9rem;
	text-transform: uppercase;
	letter-spacing: .08em;
	text-decoration: none;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease;
	border: 2px solid transparent;
	cursor: pointer;
	line-height: 1.2;
}
.ms-btn--primary {
	background: var( --ms-gold );
	color: var( --ms-accent );
	border-color: var( --ms-gold );
}
.ms-btn--primary:hover {
	background: var( --ms-gold-dark );
	border-color: var( --ms-gold-dark );
	color: var( --ms-accent );
}
.ms-btn:focus-visible { outline: 3px solid #9c7320; outline-offset: 4px; }
.ms-btn--ghost {
	background: transparent;
	color: var( --ms-accent );
	border-color: var( --ms-accent );
}
.ms-btn--ghost:hover { background: var( --ms-accent ); color: #fff; }

/* Breadcrumbs */
.meridian-breadcrumbs {
	padding: 1.25rem 0 .5rem;
	font-size: .85rem;
	color: var( --ms-ink-soft );
}
.meridian-breadcrumbs a {
	color: var( --ms-ink-soft );
	text-decoration: none;
}
.meridian-breadcrumbs a:hover { color: var( --ms-accent ); }
.meridian-breadcrumbs span[aria-hidden] { margin: 0 .4rem; opacity: .6; }

/* =========================================================
   Hero (centered, full-width bg)
   ========================================================= */
.ms-hero-full {
	position: relative;
	min-height: clamp( 380px, 60vh, 560px );
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: #fff;
	background-image: var( --ms-hero-bg, none );
	background-size: cover;
	background-position: center;
	isolation: isolate;
	overflow: hidden;
	/* Bottom triangle divider (Divi-style) */
	padding-bottom: clamp( 4rem, 8vw, 6rem );
	clip-path: polygon( 0 0, 100% 0, 100% calc( 100% - 60px ), 50% 100%, 0 calc( 100% - 60px ) );
}
.ms-hero-full__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient( 180deg, rgba( 2, 10, 53, .35 ) 0%, rgba( 2, 10, 53, .65 ) 100% );
	z-index: 1;
}
.ms-hero-full.is-blurred {
	background-image: none;
}
.ms-hero-full.is-blurred::before {
	content: "";
	position: absolute;
	inset: -20px;
	background-image: var( --ms-hero-bg, none );
	background-size: cover;
	background-position: center;
	filter: blur( 5px );
	transform: scale( 1.08 );
	z-index: 0;
}
.ms-hero-full__inner {
	position: relative;
	z-index: 2;
	max-width: 780px;
	padding: 4rem 1.5rem;
}
.ms-single-service .ms-hero-full__title,
.ms-hero-full .ms-hero-full__title {
	color: #ffffff;
	font-size: clamp( 2rem, 4.5vw, 3rem );
	font-weight: 600;
	line-height: 1.15;
	margin: 0 0 1rem;
}
.ms-hero-full__subtitle {
	font-size: clamp( 1rem, 1.5vw, 1.15rem );
	color: rgba( 255, 255, 255, .92 );
	margin: 0 0 2rem;
}

/* =========================================================
   Two Column
   ========================================================= */
.ms-two-col__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var( --ms-gap );
	align-items: center;
}
@media ( min-width: 820px ) {
	.ms-two-col__grid { grid-template-columns: 1fr 1fr; gap: clamp( 2rem, 5vw, 4rem ); }
	.ms-two-col--image-text .ms-two-col__image { order: -1; }
}
.ms-two-col__title {
	font-size: clamp( 1.6rem, 3vw, 2.25rem );
	font-weight: 500;
	margin: 0 0 1rem;
	line-height: 1.2;
}
.ms-two-col__intro { font-size: 1.05rem; margin: 0 0 1rem; color: var( --ms-ink ); }
.ms-two-col__secondary { color: var( --ms-ink-soft ); margin: 0; }
.ms-two-col__image {
	margin: 0;
	border-radius: var( --ms-radius );
	overflow: hidden;
	box-shadow: var( --ms-shadow );
}
.ms-two-col__image img { display: block; width: 100%; height: auto; object-fit: cover; }
.ms-two-col__center { text-align: center; max-width: 780px; margin: 0 auto 2rem; }
.ms-two-col__image--below { max-width: 960px; margin: 2rem auto 0; }
.ms-two-col__text-only { max-width: 780px; margin: 0 auto; text-align: center; }

/* =========================================================
   List Cards
   ========================================================= */
.ms-list__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 260px, 1fr ) );
	gap: clamp( 1rem, 2.5vw, 2rem );
}
.ms-list__card {
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius );
	padding: clamp( 1.25rem, 2.5vw, 2rem );
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ms-list__card:hover {
	transform: translateY( -3px );
	box-shadow: var( --ms-shadow-sm );
	border-color: var( --ms-gold );
}
.ms-list__icon,
.ms-list__number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 1rem;
	color: var( --ms-gold );
}
.ms-list__icon {
	width: 56px;
	height: 56px;
	background: rgba( 200, 176, 55, .12 );
	border-radius: 50%;
}
.ms-list__icon svg,
.ms-list__icon img { width: 28px; height: 28px; }
.ms-list__number {
	font-size: 2.25rem;
	font-weight: 300;
	color: var( --ms-accent-light );
	letter-spacing: -.02em;
	line-height: 1;
}
.ms-list--none .ms-list__icon,
.ms-list--none .ms-list__number { display: none; }
.ms-list__card-title {
	font-size: 1.2rem;
	font-weight: 600;
	margin: 0 0 .5rem;
	color: var( --ms-ink );
}
.ms-list__card-desc { margin: 0; color: var( --ms-ink-soft ); }
.ms-list__card-desc p { margin: 0 0 .5rem; }
.ms-list__card-desc p:last-child { margin-bottom: 0; }
.ms-list__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	min-height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-weight: inherit;
	text-align: left;
	cursor: pointer;
}
.ms-list__trigger:focus-visible {
	outline: 3px solid var( --ms-gold );
	outline-offset: 5px;
}
.ms-list__toggle {
	position: relative;
	width: 22px;
	height: 22px;
	border: 1px solid currentColor;
	border-radius: 50%;
	flex: 0 0 22px;
	opacity: .8;
}
.ms-list__toggle::before,
.ms-list__toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 1px;
	background: currentColor;
	transform: translate( -50%, -50% );
	transition: transform .25s ease;
}
.ms-list__toggle::after { transform: translate( -50%, -50% ) rotate( 90deg ); }
.ms-list__trigger[aria-expanded="true"] .ms-list__toggle::after { transform: translate( -50%, -50% ) rotate( 0deg ); }
.ms-has-js .ms-list--interactive .ms-list__card {
	border-left: 3px solid transparent;
}
.ms-has-js .ms-list--interactive .ms-list__card.is-active {
	border-left-color: var( --ms-gold );
	box-shadow: var( --ms-shadow );
	transform: translateY( -3px );
}
.ms-has-js .ms-list--interactive .ms-list__card-desc[hidden] { display: none; }
@media ( min-width: 820px ) {
	.ms-has-js .ms-list--interactive .ms-list__grid {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
		align-items: start;
	}
}
.ms-expanded__card-desc { margin: 0; color: var( --ms-ink-soft ); }
.ms-expanded__card-desc p { margin: 0 0 .5rem; }
.ms-expanded__card-desc p:last-child { margin-bottom: 0; }
.ms-area-card__text p { margin: 0 0 .35rem; }
.ms-area-card__text p:last-child { margin-bottom: 0; }
.ms-final-cta__desc p { margin: 0 0 .75rem; }
.ms-final-cta__desc p:last-child { margin-bottom: 0; }

/* =========================================================
   FAQ — card accordion; question buttons sit inside headings.
   ========================================================= */
.ms-faq__list {
	max-width: 860px;
	margin: 0 auto;
	display: grid;
	gap: .75rem;
}
.ms-faq__item {
	position: relative;
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius-sm );
	transition: border-color .25s ease, box-shadow .25s ease;
}
.ms-faq__item::before {
	content: "";
	position: absolute;
	inset: -1px auto -1px -1px;
	width: 3px;
	border-radius: var( --ms-radius-sm ) 0 0 var( --ms-radius-sm );
	background: var( --ms-gold );
	transform: scaleY( 0 );
	transition: transform .3s ease;
}
.ms-has-js .ms-faq__item.is-open { border-color: rgba( 200, 176, 55, .55 ); box-shadow: var( --ms-shadow ); }
.ms-has-js .ms-faq__item.is-open::before { transform: scaleY( 1 ); }
.ms-faq__heading {
	margin: 0;
	font-size: inherit;
	line-height: inherit;
}
.ms-single-service .ms-faq__heading { font-family: var( --ms-font-body ); }
.ms-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.25rem;
	width: 100%;
	min-height: 56px;
	padding: 1.1rem 1.25rem 1.1rem 1.5rem;
	background: none;
	border: 0;
	font: inherit;
	font-family: var( --ms-font-head );
	font-size: 1.02rem;
	font-weight: 600;
	line-height: 1.45;
	color: var( --ms-accent );
	text-align: left;
	cursor: pointer;
}
.ms-faq__q:focus-visible {
	outline: 3px solid #9c7320;
	outline-offset: 2px;
	border-radius: var( --ms-radius-sm );
}
/* Diamond toggle with a plus that collapses into a minus. */
.ms-faq__toggle {
	--ms-toggle-ink: var( --ms-accent );
	position: relative;
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
}
.ms-faq__toggle::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px solid var( --ms-gold-dark );
	transform: rotate( 45deg );
	transition: background .25s ease, border-color .25s ease;
}
.ms-faq__toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	transform: translate( -50%, -50% );
	background:
		linear-gradient( var( --ms-toggle-ink ), var( --ms-toggle-ink ) ) center / 10px 1.5px no-repeat,
		linear-gradient( var( --ms-toggle-ink ), var( --ms-toggle-ink ) ) center / 1.5px 10px no-repeat;
	transition: background-size .25s ease;
}
.ms-faq__item.is-open .ms-faq__toggle { --ms-toggle-ink: var( --ms-accent ); }
.ms-faq__item.is-open .ms-faq__toggle::before { background: var( --ms-gold ); border-color: var( --ms-gold ); }
.ms-faq__item.is-open .ms-faq__toggle::after {
	background:
		linear-gradient( var( --ms-toggle-ink ), var( --ms-toggle-ink ) ) center / 10px 1.5px no-repeat,
		linear-gradient( var( --ms-toggle-ink ), var( --ms-toggle-ink ) ) center / 1.5px 0 no-repeat;
}
.ms-faq__a {
	padding: 0 1.5rem 1.35rem;
	color: var( --ms-ink-soft );
}
.ms-faq__a[hidden] { display: none; }
.ms-faq__a-inner { max-width: 70ch; }
.ms-faq__a-inner p:first-child { margin-top: 0; }
.ms-faq__a-inner p:last-child { margin-bottom: 0; }

/* =========================================================
   Local Areas
   ========================================================= */
.ms-areas__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 200px, 1fr ) );
	gap: 1rem;
}
.ms-area-card {
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius );
	padding: 1.5rem 1.25rem;
	text-align: center;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.ms-area-card:hover { border-color: var( --ms-gold ); box-shadow: var( --ms-shadow-sm ); }
.ms-area-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba( 200, 176, 55, .12 );
	color: var( --ms-gold );
	margin-bottom: .75rem;
}
.ms-area-card__name {
	font-size: 1rem;
	font-weight: 600;
	margin: 0 0 .25rem;
	color: var( --ms-ink );
}
.ms-area-card__text { margin: 0; color: var( --ms-ink-soft ); font-size: .9rem; }

/* =========================================================
   Science / Quote
   ========================================================= */
.ms-science__inner {
	max-width: 820px;
	margin: 0 auto;
}
.ms-science__text { font-size: 1.05rem; color: var( --ms-ink ); }
.ms-science__quote {
	margin: 2.5rem 0 0;
	padding: 1.5rem 2rem;
	border-left: 4px solid var( --ms-gold );
	background: var( --ms-bg-soft );
	border-radius: 0 var( --ms-radius-sm ) var( --ms-radius-sm ) 0;
	font-style: italic;
	font-size: 1.15rem;
	color: var( --ms-ink );
}
.ms-science__quote cite {
	display: block;
	margin-top: .75rem;
	font-style: normal;
	font-size: .9rem;
	color: var( --ms-ink-soft );
}

/* =========================================================
   Expanded
   ========================================================= */
.ms-expanded__body,
.ms-expanded__conclusion {
	max-width: 820px;
	font-size: 1.02rem;
	color: var( --ms-ink );
}
.ms-expanded__conclusion { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var( --ms-border ); }

/* =========================================================
   Pricing
   ========================================================= */
.ms-pricing__list {
	max-width: 720px;
	margin: 0 auto;
	border-top: 1px solid var( --ms-border );
}
.ms-pricing__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var( --ms-border );
}
.ms-pricing__duration {
	font-weight: 500;
	color: var( --ms-ink );
	display: flex;
	align-items: center;
	gap: .75rem;
	flex-wrap: wrap;
}
.ms-pricing__badge {
	display: inline-block;
	background: var( --ms-gold );
	color: #fff;
	font-size: .7rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .25rem .6rem;
	border-radius: 999px;
	font-weight: 600;
}
.ms-pricing__price {
	font-family: var( --ms-font-head );
	font-size: 1.3rem;
	color: var( --ms-accent );
	font-weight: 600;
}

/* =========================================================
   Reviews
   ========================================================= */
.ms-reviews__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 280px, 1fr ) );
	gap: 1.5rem;
}
.ms-reviews__card {
	margin: 0;
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius );
	padding: 2rem;
	box-shadow: var( --ms-shadow-sm );
}
.ms-reviews__stars { color: var( --ms-gold ); margin-bottom: 1rem; display: flex; gap: .15rem; }
.ms-reviews__text {
	margin: 0 0 1rem;
	border: 0;
	padding: 0;
	font-style: italic;
	color: var( --ms-ink );
	font-size: 1.02rem;
	line-height: 1.6;
}
.ms-reviews__name {
	font-size: .9rem;
	color: var( --ms-ink-soft );
	font-weight: 600;
}

/* =========================================================
   Final CTA
   ========================================================= */
.ms-final-cta {
	text-align: center;
	position: relative;
	isolation: isolate;
}
.ms-final-cta--bg_image {
	color: #fff;
	background-image: var( --ms-cta-bg, none );
	background-size: cover;
	background-position: center;
	padding: clamp( 4rem, 9vw, 6.5rem ) 0;
	overflow: hidden;
}
.ms-final-cta--bg_image .ms-final-cta__overlay {
	position: absolute;
	inset: 0;
	background: rgba( 2, 10, 53, .55 );
	z-index: 1;
}
.ms-final-cta--bg_image.is-blurred {
	background-image: none;
}
.ms-final-cta--bg_image.is-blurred::before {
	content: "";
	position: absolute;
	inset: -20px;
	background-image: var( --ms-cta-bg, none );
	background-size: cover;
	background-position: center;
	filter: blur( 5px );
	transform: scale( 1.08 );
	z-index: 0;
}
.ms-final-cta--bg_image .ms-final-cta__title,
.ms-final-cta--bg_image .ms-final-cta__desc { color: #fff; }
.ms-final-cta--solid {
	background: var( --ms-accent );
	color: #fff;
}
.ms-final-cta--solid .ms-final-cta__title,
.ms-final-cta--solid .ms-final-cta__desc { color: #fff; }
.ms-final-cta--card .ms-final-cta__inner {
	background: #fff;
	border: 1px solid var( --ms-border );
	box-shadow: var( --ms-shadow );
	border-radius: var( --ms-radius );
	padding: clamp( 2rem, 5vw, 3.5rem );
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: center;
	text-align: left;
}
@media ( min-width: 760px ) {
	.ms-final-cta--card .ms-final-cta__inner { grid-template-columns: 1fr 1.2fr; }
}
.ms-final-cta__inner { position: relative; z-index: 2; max-width: var( --ms-wrap ); }
.ms-final-cta__image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var( --ms-radius-sm );
}
.ms-final-cta__title {
	font-size: clamp( 1.75rem, 4vw, 2.5rem );
	font-weight: 600;
	margin: 0 0 1rem;
	line-height: 1.2;
}
.ms-final-cta__desc {
	margin: 0 0 2rem;
	font-size: 1.02rem;
	opacity: .92;
}
.ms-final-cta--solid .ms-btn--primary,
.ms-final-cta--bg_image .ms-btn--primary {
	background: var( --ms-gold );
	border-color: var( --ms-gold );
	color: #fff;
}
.ms-final-cta--solid .ms-btn--primary:hover,
.ms-final-cta--bg_image .ms-btn--primary:hover {
	background: #fff;
	border-color: #fff;
	color: var( --ms-accent );
}

/* =========================================================
   Related
   ========================================================= */
.ms-related__grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 260px, 1fr ) );
	gap: 1.5rem;
}
.ms-related__card {
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius );
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease;
}
.ms-related__card:hover { transform: translateY( -4px ); box-shadow: var( --ms-shadow ); }
.ms-related__link {
	display: block;
	text-decoration: none;
	color: inherit;
}
.ms-related__image {
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
}
.ms-related__body { padding: 1.25rem 1.5rem 1.5rem; }
.ms-related__title {
	font-size: 1.15rem;
	font-weight: 600;
	margin: 0 0 .35rem;
	color: var( --ms-ink );
}
.ms-related__sub { margin: 0 0 .75rem; color: var( --ms-ink-soft ); font-size: .92rem; }
.ms-related__arrow { color: var( --ms-gold ); font-size: 1.2rem; }

/* =========================================================
   Reduced motion
   ========================================================= */
@media ( prefers-reduced-motion: reduce ) {
	*, *::before, *::after {
		transition: none !important;
		animation: none !important;
	}
}

/* =========================================================
   Section alternation (Divi-style white/navy zig-zag)
   ========================================================= */
.ms-section--white {
	background: #ffffff;
}

.ms-booking-options { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
@media (max-width: 767px) {
	.ms-booking-options a { width: 100%; text-align: center; }
}
.ms-section--navy {
	background: var( --ms-accent );
	color: #ffffff;
}

/* Chevron divider: the navy section ends in a shallow point and the next
   section tucks underneath it, so its own background (white, navy or image)
   fills the sides instead of a bare page-colour gap. */
.ms-section--has-divider {
	position: relative;
	z-index: 2;
	padding-bottom: calc( clamp( 3rem, 6vw, 5.5rem ) + var( --ms-divider-h ) );
	clip-path: polygon( 0 0, 100% 0, 100% calc( 100% - var( --ms-divider-h ) ), 50% 100%, 0 calc( 100% - var( --ms-divider-h ) ) );
}
/* Gold hairline tracing the chevron just inside its edge. */
.ms-section--has-divider::after {
	content: "";
	position: absolute;
	z-index: 1;
	left: 0;
	right: 0;
	bottom: 12px;
	height: var( --ms-divider-h );
	pointer-events: none;
	background: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g'%3E%3Cstop offset='0' stop-color='%23c8b037' stop-opacity='0'/%3E%3Cstop offset='.5' stop-color='%23c8b037' stop-opacity='.9'/%3E%3Cstop offset='1' stop-color='%23c8b037' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 1 50 99 100 1' fill='none' stroke='url(%23g)' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E" ) no-repeat center / 100% 100%;
}
/* Deco diamond at the chevron point, haloed in navy to break the line. */
.ms-section--has-divider::before {
	content: "";
	position: absolute;
	z-index: 1;
	left: 50%;
	bottom: 13px;
	width: 10px;
	height: 10px;
	border: 1px solid var( --ms-gold );
	background: var( --ms-accent );
	box-shadow: 0 0 0 5px var( --ms-accent );
	transform: translate( -50%, 50% ) rotate( 45deg );
	pointer-events: none;
}
.ms-section--has-divider + .ms-section {
	margin-top: calc( -1 * var( --ms-divider-h ) );
	padding-top: calc( clamp( 3rem, 6vw, 5.5rem ) + var( --ms-divider-h ) );
}
.ms-section--has-divider + .ms-final-cta--bg_image {
	padding-top: calc( clamp( 4rem, 9vw, 6.5rem ) + var( --ms-divider-h ) );
}

/* Navy section recoloring: titles in gold, body in white. */
.ms-section--navy h1,
.ms-section--navy h2,
.ms-section--navy h3,
.ms-section--navy h4 { color: var( --ms-gold ); }
.ms-section--navy .ms-section__title,
.ms-section--navy .ms-two-col__title,
.ms-section--navy .ms-list__card-title,
.ms-section--navy .ms-area-card__name,
.ms-section--navy .ms-expanded__card h3,
.ms-section--navy .ms-science__title { color: var( --ms-gold ); }
.ms-section--navy .ms-eyebrow { color: var( --ms-gold ); }
.ms-section--navy p,
.ms-section--navy .ms-section__lead,
.ms-section--navy .ms-two-col__intro,
.ms-section--navy .ms-two-col__secondary,
.ms-section--navy .ms-list__card-desc,
.ms-section--navy .ms-area-card__text,
.ms-section--navy .ms-expanded__body,
.ms-section--navy .ms-expanded__conclusion,
.ms-section--navy .ms-expanded__card p,
.ms-section--navy .ms-science__text,
.ms-section--navy .ms-reviews__text,
.ms-section--navy .ms-reviews__name { color: rgba( 255, 255, 255, .92 ); }
.ms-section--navy .ms-faq__q { color: #ffffff; }
.ms-section--navy .ms-faq__a { color: rgba( 255, 255, 255, .85 ); }
.ms-section--navy .ms-pricing__duration { color: #ffffff; }
.ms-section--navy .ms-pricing__price { color: var( --ms-gold ); }

/* Cards / borders on navy backgrounds. */
.ms-section--navy .ms-list__card,
.ms-section--navy .ms-area-card,
.ms-section--navy .ms-reviews__card,
.ms-section--navy .ms-expanded__card {
	background: rgba( 255, 255, 255, .06 );
	border-color: rgba( 255, 255, 255, .14 );
	box-shadow: none;
}
.ms-section--navy .ms-list__card:hover,
.ms-section--navy .ms-area-card:hover {
	border-color: var( --ms-gold );
	box-shadow: 0 10px 24px -14px rgba( 0, 0, 0, .55 );
}
.ms-section--navy .ms-list__icon,
.ms-section--navy .ms-area-card__icon {
	background: rgba( 200, 176, 55, .2 );
}
.ms-section--navy .ms-faq__item,
.ms-section--navy .ms-faq__item:first-child,
.ms-section--navy .ms-pricing__list,
.ms-section--navy .ms-pricing__row,
.ms-section--navy .ms-expanded__conclusion {
	border-color: rgba( 255, 255, 255, .15 );
}
.ms-section--navy .ms-science__quote {
	background: rgba( 255, 255, 255, .06 );
	color: #ffffff;
	border-left-color: var( --ms-gold );
}
.ms-section--navy .ms-science__quote cite { color: rgba( 255, 255, 255, .7 ); }
.ms-section--navy .ms-two-col__image { box-shadow: 0 16px 36px -18px rgba( 0, 0, 0, .65 ); }

/* Soft sections (areas/reviews/related) keep their light tone unless overridden. */
.ms-section--navy.ms-section--soft { background: var( --ms-accent ); }

/* Subtle conic-gradient texture on white sections to echo Divi backgrounds. */
.ms-section--white-textured {
	background: conic-gradient( from 306deg at center, #ffffff 65%, var( --ms-bg-soft ) 65% );
}

/* Keep hero/CTA wedge content above the clip. */
.ms-hero-full__inner,
.ms-final-cta__inner { padding-bottom: 0; }

/* =========================================================
   Meridian deco service layout (v1.12)
   Triangular facets echo the home page dividers; gold is used
   decoratively on white and for text only on navy (AA contrast).
   ========================================================= */
.ms-single-service {
	--ms-warm:        #f7f4ec;
	--ms-gold-ink:    #75661a;
	--ms-line:        rgba( 200, 176, 55, .55 );
	--ms-navy-2:      #0b1650;
	--ms-tri-fill:    #f3efe3;
	--ms-tri-line:    rgba( 163, 144, 42, .45 );
}
.ms-single-service .ms-section,
.ms-options__head { position: relative; overflow: hidden; overflow: clip; }
.ms-single-service .ms-section > .ms-wrap,
.ms-options__head > .ms-wrap { position: relative; z-index: 1; }
.ms-single-service .ms-section--soft { background: var( --ms-warm ); }

/* Corner facets: a soft solid plane plus an offset gold outline. */
.ms-deco-tri {
	position: absolute;
	z-index: 0;
	/* Fit the facet inside the gutter beside the content column. */
	width: clamp( 80px, calc( ( 100vw - var( --ms-wrap, 1080px ) ) / 2 + 1.5rem ), 280px );
	aspect-ratio: 1;
	pointer-events: none;
}
.ms-deco-tri::before,
.ms-deco-tri::after {
	content: "";
	position: absolute;
	inset: 0;
	clip-path: polygon( 0 0, 100% 0, 0 100% );
}
.ms-deco-tri::before { background: var( --ms-tri-fill ); }
.ms-deco-tri::after {
	inset: 14% auto auto 14%;
	width: 62%;
	height: 62%;
	clip-path: none;
	background: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M.5.5h99L.5 99.5Z' fill='none' stroke='%23a3902a' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E" ) no-repeat center / 100% 100%;
	opacity: .7;
}
.ms-deco-tri--tl { top: 0; left: 0; }
.ms-deco-tri--tr { top: 0; right: 0; transform: scaleX( -1 ); }
.ms-deco-tri--bl { bottom: 0; left: 0; transform: scaleY( -1 ); }
.ms-deco-tri--br { bottom: 0; right: 0; transform: scale( -1, -1 ); }
.ms-section--navy .ms-deco-tri::before { background: rgba( 255, 255, 255, .035 ); }
.ms-section--navy .ms-deco-tri::after { opacity: .35; filter: brightness( 1.6 ); }
.ms-section--has-divider .ms-deco-tri--bl,
.ms-section--has-divider .ms-deco-tri--br { bottom: var( --ms-divider-h ); }
.ms-section--has-divider + .ms-section .ms-deco-tri--tl,
.ms-section--has-divider + .ms-section .ms-deco-tri--tr { top: var( --ms-divider-h ); }

/* Hero: category eyebrow and outlined triangle facets. */
.ms-hero-full__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	margin: 0 0 1.1rem;
	padding: .45rem 1rem;
	border: 1px solid rgba( 200, 176, 55, .45 );
	border-radius: 999px;
	background: rgba( 2, 10, 53, .62 );
	font-family: var( --ms-font-head );
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var( --ms-gold );
}
.ms-hero-full__eyebrow::before,
.ms-hero-full__eyebrow::after {
	content: "";
	width: 9px;
	height: 8px;
	background: currentColor;
	clip-path: polygon( 0 0, 100% 50%, 0 100% );
}
.ms-hero-full__eyebrow::after { transform: scaleX( -1 ); }
.ms-hero-full__facet {
	position: absolute;
	z-index: 1;
	width: clamp( 160px, 24vw, 360px );
	aspect-ratio: 100 / 87;
	pointer-events: none;
	opacity: .5;
	background: url( "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 87' fill='none' stroke='%23c8b037'%3E%3Cpath d='M50 1.5 98.7 85.5H1.3Z' stroke-width='.6'/%3E%3Cpath d='M50 22 81 76H19Z' stroke-width='.4' opacity='.65'/%3E%3C/svg%3E" ) no-repeat center / contain;
}
.ms-hero-full__facet--left { left: -4%; bottom: 70px; }
.ms-hero-full__facet--right { right: -3%; top: 6%; transform: rotate( 180deg ); }

/* Overview with booking card. */
@media ( min-width: 820px ) {
	.ms-two-col__grid--booking {
		grid-template-columns: minmax( 0, 1.35fr ) minmax( 300px, .75fr );
		align-items: start;
	}
	.ms-two-col__grid--image { grid-template-columns: minmax( 0, 1fr ) minmax( 0, 1fr ); }
	.ms-two-col--image-text .ms-two-col__aside { order: -1; }
}
.ms-two-col__aside { position: relative; }
.ms-two-col__image img { aspect-ratio: 4 / 3; }
.ms-two-col--has-booking .ms-section__header { margin-bottom: 1.5rem; }

.ms-booking {
	position: relative;
	overflow: hidden;
	padding: 2rem 1.75rem 1.75rem;
	border-top: 3px solid var( --ms-gold );
	border-radius: var( --ms-radius );
	background: linear-gradient( 160deg, var( --ms-navy-2, #0b1650 ) 0%, var( --ms-accent ) 70% );
	color: #fff;
	box-shadow: 0 26px 48px -26px rgba( 2, 10, 53, .6 );
	text-align: left;
}
.ms-booking__facet {
	position: absolute;
	top: 0;
	right: 0;
	width: 64px;
	height: 64px;
	background: linear-gradient( 135deg, var( --ms-gold ), var( --ms-gold-dark ) );
	clip-path: polygon( 0 0, 100% 0, 100% 100% );
}
.ms-booking__facet::after {
	content: "";
	position: absolute;
	top: 12px;
	right: 12px;
	width: 22px;
	height: 22px;
	background: var( --ms-accent );
	clip-path: polygon( 0 0, 100% 0, 100% 100% );
	opacity: .35;
}
.ms-booking .ms-booking__title {
	margin: 0 0 1rem;
	padding-right: 3rem;
	font-family: var( --ms-font-head );
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var( --ms-gold );
}
.ms-booking__rows { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.ms-booking__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4rem 1rem;
	padding: .85rem 0;
	border-bottom: 1px solid rgba( 255, 255, 255, .14 );
}
.ms-booking__row:first-child { border-top: 1px solid rgba( 255, 255, 255, .14 ); }
.ms-booking__duration {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-weight: 500;
	color: #fff;
}
.ms-booking__duration .ms-svg { width: 18px; height: 18px; color: var( --ms-gold ); }
.ms-booking__badge {
	padding: .2rem .6rem;
	border-radius: 999px;
	background: rgba( 200, 176, 55, .2 );
	color: var( --ms-gold );
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ms-booking__price {
	margin-left: auto;
	font-family: var( --ms-font-head );
	font-size: 1.45rem;
	font-weight: 600;
	color: var( --ms-gold );
}
.ms-booking__actions { display: grid; gap: .6rem; }
.ms-btn--block { width: 100%; min-height: 48px; justify-content: center; text-align: center; }
.ms-booking .ms-btn--primary:hover,
.ms-booking .ms-btn--primary:focus-visible { background: #fff; border-color: #fff; color: var( --ms-accent ); }
.ms-booking .ms-btn:focus-visible { outline-color: #fff; }
.ms-booking--inline { max-width: 420px; margin: 2rem auto 0; }
.ms-booking--overlap { position: relative; z-index: 2; width: calc( 100% - 2rem ); margin: -3.5rem 0 0 auto; }
@media ( min-width: 820px ) {
	.ms-booking--overlap { width: min( 380px, 90% ); margin: -5rem auto 0 -2rem; }
	.ms-two-col--image-text .ms-booking--overlap { margin: -5rem -2rem 0 auto; }
}
.ms-section--navy .ms-booking { background: rgba( 255, 255, 255, .05 ); box-shadow: none; outline: 1px solid rgba( 255, 255, 255, .14 ); }

/* Shared diamond badge used by icons and numbers. */
.ms-mark {
	position: relative;
	flex: 0 0 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	color: var( --ms-gold-dark );
}
.ms-mark::before {
	content: "";
	position: absolute;
	inset: 7px;
	border: 1px solid currentColor;
	background: rgba( 200, 176, 55, .1 );
	transform: rotate( 45deg );
}
.ms-mark .ms-svg { position: relative; width: 20px; height: 20px; }
.ms-mark--image img { position: relative; width: 26px; height: 26px; object-fit: contain; }
.ms-mark--number {
	font-family: var( --ms-font-head );
	font-size: .82rem;
	font-weight: 600;
	color: var( --ms-accent );
}
.ms-mark--number::before { border-color: var( --ms-gold-dark ); }
.ms-section--navy .ms-mark { color: var( --ms-gold ); }
.ms-section--navy .ms-mark--number { color: #fff; }
.ms-section--navy .ms-mark--number::before { border-color: var( --ms-gold ); }

/* Benefits checklist. */
.ms-benefits {
	list-style: none;
	display: grid;
	gap: 1rem;
	max-width: 1040px;
	margin: 0 auto;
	padding: 0;
}
@media ( min-width: 700px ) {
	.ms-benefits { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
@media ( min-width: 1024px ) {
	.ms-benefits--many { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
}
.ms-benefits__item {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin: 0;
	padding: 1.1rem 1.4rem 1.1rem 1.1rem;
	overflow: hidden;
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius-sm );
	transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.ms-benefits__item::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 18px;
	height: 18px;
	background: var( --ms-gold );
	clip-path: polygon( 0 0, 100% 0, 100% 100% );
}
.ms-benefits__item:hover { border-color: var( --ms-line ); transform: translateY( -2px ); box-shadow: var( --ms-shadow-sm ); }
.ms-benefits__text { min-width: 0; }
.ms-single-service .ms-benefits__title {
	margin: .6rem 0 0;
	font-weight: 500;
	line-height: 1.55;
	color: var( --ms-accent );
}
.ms-benefits__desc { margin-top: .35rem; color: var( --ms-ink-soft ); font-size: .95rem; }
.ms-benefits__desc p { margin: 0 0 .4rem; }
.ms-benefits__desc p:last-child { margin-bottom: 0; }
.ms-section--navy .ms-benefits__item { background: rgba( 255, 255, 255, .05 ); border-color: rgba( 255, 255, 255, .14 ); }
.ms-section--navy .ms-benefits__item:hover { border-color: var( --ms-line ); box-shadow: none; }
.ms-single-service .ms-section--navy .ms-benefits__title { color: #fff; }

/* Feature cards (Why You'll Love It). */
.ms-features { display: grid; gap: clamp( 1rem, 2.5vw, 1.75rem ); }
@media ( min-width: 760px ) {
	.ms-features--2,
	.ms-features--3,
	.ms-features--4 { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
@media ( min-width: 980px ) {
	.ms-features--3 { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
}
.ms-feature {
	position: relative;
	overflow: hidden;
	padding: 2rem 1.75rem 1.85rem;
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius );
	box-shadow: var( --ms-shadow-sm );
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.ms-feature:hover { transform: translateY( -4px ); border-color: var( --ms-line ); box-shadow: var( --ms-shadow ); }
.ms-feature__corner {
	position: absolute;
	top: 0;
	right: 0;
	width: 52px;
	height: 52px;
	background: linear-gradient( 135deg, var( --ms-gold ), var( --ms-gold-dark ) );
	clip-path: polygon( 0 0, 100% 0, 100% 100% );
}
.ms-feature .ms-mark { margin: 0 0 1.1rem -4px; }
.ms-single-service .ms-feature__title {
	margin: 0 0 .6rem;
	padding-right: 1.5rem;
	font-size: 1.15rem;
	line-height: 1.35;
	color: var( --ms-accent );
}
.ms-feature__desc { color: var( --ms-ink-soft ); font-size: .98rem; }
.ms-feature__desc p { margin: 0 0 .5rem; }
.ms-feature__desc p:last-child { margin-bottom: 0; }
.ms-section--navy .ms-feature {
	background: linear-gradient( 160deg, rgba( 255, 255, 255, .07 ), rgba( 255, 255, 255, .02 ) );
	border-color: rgba( 255, 255, 255, .14 );
	box-shadow: none;
}
.ms-section--navy .ms-feature:hover { border-color: var( --ms-line ); box-shadow: 0 18px 36px -22px rgba( 0, 0, 0, .7 ); }
.ms-single-service .ms-section--navy .ms-feature__title { color: var( --ms-gold ); }

/* What to Expect timeline: triangle markers on a gold rule. */
.ms-expanded__body { margin-left: auto; margin-right: auto; text-align: center; color: var( --ms-ink-soft ); }
.ms-steps {
	position: relative;
	list-style: none;
	display: grid;
	gap: 1.25rem;
	max-width: 980px;
	margin: 2.5rem auto 0;
	padding: 0;
}
.ms-steps::before {
	content: "";
	position: absolute;
	top: 10px;
	bottom: 10px;
	left: 27px;
	width: 1px;
	background: linear-gradient( 180deg, transparent, var( --ms-line ) 8%, var( --ms-line ) 92%, transparent );
}
.ms-steps__item {
	position: relative;
	display: grid;
	grid-template-columns: 56px minmax( 0, 1fr );
	gap: 1.25rem;
	align-items: start;
	margin: 0;
}
.ms-steps__marker {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	width: 56px;
	height: 50px;
	padding-top: .5rem;
	background: var( --ms-accent );
	clip-path: polygon( 0 0, 100% 0, 50% 100% );
}
.ms-steps__num {
	font-family: var( --ms-font-head );
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .04em;
	color: var( --ms-gold );
}
.ms-steps__marker .ms-mark { transform: scale( .7 ) translateY( -10px ); color: var( --ms-gold ); }
.ms-steps__body {
	position: relative;
	padding: 1.15rem 1.4rem 1.25rem;
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius-sm );
	box-shadow: var( --ms-shadow-sm );
}
.ms-steps__body::before {
	content: "";
	position: absolute;
	top: 16px;
	left: -7px;
	width: 12px;
	height: 12px;
	background: inherit;
	border-left: 1px solid var( --ms-border );
	border-bottom: 1px solid var( --ms-border );
	transform: rotate( 45deg );
}
.ms-single-service .ms-steps__title {
	margin: 0 0 .35rem;
	font-size: 1.08rem;
	line-height: 1.35;
	color: var( --ms-accent );
}
.ms-steps--compact .ms-single-service .ms-steps__title,
.ms-steps--compact .ms-steps__title { margin: 0; }
.ms-steps__desc { color: var( --ms-ink-soft ); font-size: .97rem; }
.ms-steps__desc p { margin: 0 0 .4rem; }
.ms-steps__desc p:last-child { margin-bottom: 0; }
@media ( min-width: 900px ) {
	.ms-steps:not( .ms-steps--compact )::before { left: 50%; }
	.ms-steps:not( .ms-steps--compact ) .ms-steps__item {
		grid-template-columns: minmax( 0, 1fr ) 56px minmax( 0, 1fr );
		gap: 0 1.75rem;
	}
	/* Alternate sides and interleave rows so the zig-zag stays compact. */
	.ms-steps:not( .ms-steps--compact ) .ms-steps__item + .ms-steps__item { margin-top: -2rem; }
	.ms-steps:not( .ms-steps--compact ) .ms-steps__marker { grid-column: 2; grid-row: 1; }
	.ms-steps:not( .ms-steps--compact ) .ms-steps__item:nth-child( odd ) .ms-steps__body { grid-column: 1; grid-row: 1; }
	.ms-steps:not( .ms-steps--compact ) .ms-steps__item:nth-child( even ) .ms-steps__body { grid-column: 3; grid-row: 1; }
	.ms-steps:not( .ms-steps--compact ) .ms-steps__item:nth-child( odd ) .ms-steps__body::before {
		left: auto;
		right: -7px;
		border: 0;
		border-top: 1px solid var( --ms-border );
		border-right: 1px solid var( --ms-border );
	}
}
.ms-steps--compact { max-width: 1040px; }
.ms-steps--compact::before { display: none; }
@media ( min-width: 700px ) {
	.ms-steps--compact { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
}
.ms-steps--compact .ms-steps__item { align-items: center; }
.ms-steps--compact .ms-steps__body { padding: .9rem 1.2rem; }
.ms-section--navy .ms-steps__marker { background: var( --ms-gold ); }
.ms-section--navy .ms-steps__num { color: var( --ms-accent ); }
.ms-section--navy .ms-steps__body {
	background: rgba( 255, 255, 255, .05 );
	border-color: rgba( 255, 255, 255, .14 );
	box-shadow: none;
}
.ms-section--navy .ms-steps__body::before { background: var( --ms-accent ); border-color: rgba( 255, 255, 255, .14 ); }
.ms-single-service .ms-section--navy .ms-steps__title { color: var( --ms-gold ); }

/* FAQ on navy sections. */
.ms-section--navy .ms-faq__item { background: rgba( 255, 255, 255, .04 ); }
.ms-section--navy .ms-faq__toggle { --ms-toggle-ink: #fff; }
.ms-section--navy .ms-faq__toggle::before { border-color: var( --ms-gold ); }
.ms-has-js .ms-section--navy .ms-faq__item.is-open { border-color: var( --ms-line ); box-shadow: none; }
.ms-section--navy .ms-faq__q:focus-visible { outline-color: var( --ms-gold ); }

/* =========================================================
   Combined pages: treatment selector + panels
   ========================================================= */
.ms-options__head,
.ms-option,
.ms-option__band { scroll-margin-top: 120px; }
.ms-options__head {
	padding: clamp( 3rem, 6vw, 5rem ) 0 clamp( 2.5rem, 5vw, 3.5rem );
	background: linear-gradient( 180deg, #fff 0%, var( --ms-warm ) 100% );
}
.ms-options__intro {
	max-width: 720px;
	margin: -1rem auto 0;
	text-align: center;
	color: var( --ms-ink-soft );
}
.ms-options__intro p { margin: 0; }
.ms-options__tabs {
	list-style: none;
	display: grid;
	gap: 1rem;
	max-width: 1040px;
	margin: 2.5rem auto 0;
	padding: 0;
}
@media ( min-width: 760px ) {
	.ms-options__tabs--2,
	.ms-options__tabs--4 { grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); }
	.ms-options__tabs--3 { grid-template-columns: repeat( 3, minmax( 0, 1fr ) ); }
}
@media ( min-width: 1100px ) {
	.ms-options__tabs--4 { grid-template-columns: repeat( 4, minmax( 0, 1fr ) ); }
}
.ms-options__tab-item { display: flex; margin: 0; }
.ms-options__tab {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .45rem;
	width: 100%;
	min-height: 44px;
	padding: 1.4rem 1.5rem 1.5rem;
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: 8px;
	box-shadow: var( --ms-shadow-sm );
	color: var( --ms-ink );
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.ms-options__tab::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	height: 3px;
	border-radius: 8px 8px 0 0;
	background: var( --ms-gold );
	transform: scaleX( 0 );
	transform-origin: left;
	transition: transform .3s ease;
}
.ms-options__tab:hover { transform: translateY( -3px ); border-color: var( --ms-line ); box-shadow: var( --ms-shadow ); }
.ms-options__tab:hover::before { transform: scaleX( 1 ); }
.ms-options__tab:focus-visible { outline: 3px solid #9c7320; outline-offset: 3px; }
.ms-options__num {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-family: var( --ms-font-head );
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .18em;
	color: var( --ms-gold-ink, #75661a );
}
.ms-options__num::before {
	content: "";
	width: 10px;
	height: 9px;
	background: currentColor;
	clip-path: polygon( 0 0, 100% 0, 50% 100% );
}
.ms-options__name {
	font-family: var( --ms-font-head );
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1.3;
	color: var( --ms-accent );
}
.ms-options__tagline { font-size: .92rem; line-height: 1.5; color: var( --ms-ink-soft ); }
.ms-options__meta {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin-top: auto;
	padding-top: .5rem;
	font-size: .88rem;
	font-weight: 600;
	color: var( --ms-accent );
}
.ms-options__meta .ms-svg { width: 16px; height: 16px; color: var( --ms-gold-dark ); }
.ms-options__pointer { display: none; }
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"] {
	background: var( --ms-accent );
	border-color: var( --ms-accent );
	box-shadow: 0 22px 40px -24px rgba( 2, 10, 53, .65 );
	transform: none;
}
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"]::before { transform: scaleX( 1 ); }
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"] .ms-options__name,
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"] .ms-options__num { color: var( --ms-gold ); }
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"] .ms-options__tagline { color: rgba( 255, 255, 255, .82 ); }
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"] .ms-options__meta { color: #fff; }
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"] .ms-options__meta .ms-svg { color: var( --ms-gold ); }
.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"]:focus-visible { outline-color: var( --ms-gold-dark ); }
@media ( min-width: 760px ) {
	.ms-options__tabs.is-enhanced .ms-options__tab[aria-selected="true"] .ms-options__pointer {
		display: block;
		position: absolute;
		left: 50%;
		bottom: -14px;
		width: 28px;
		height: 15px;
		background: var( --ms-accent );
		clip-path: polygon( 0 0, 100% 0, 50% 100% );
		transform: translateX( -50% );
	}
}

.ms-option[hidden] { display: none; }
.ms-option__band--intro { padding-top: clamp( 2.75rem, 5vw, 4rem ); }
.ms-option + .ms-option { border-top: 1px solid var( --ms-border ); }
.ms-option__intro { display: grid; gap: clamp( 2rem, 4vw, 3.5rem ); }
@media ( min-width: 900px ) {
	.ms-option__intro {
		grid-template-columns: minmax( 0, 1.25fr ) minmax( 300px, .75fr );
		align-items: start;
	}
	.ms-option__intro.has-image { grid-template-columns: minmax( 0, 1.1fr ) minmax( 320px, .9fr ); }
}
.ms-option__count {
	display: flex;
	align-items: baseline;
	gap: .4rem;
	margin: 0 0 .75rem;
	font-family: var( --ms-font-head );
}
.ms-option__count-num { font-size: 2.6rem; font-weight: 300; line-height: 1; color: var( --ms-gold-dark ); }
.ms-option__count-total { font-size: .85rem; letter-spacing: .12em; color: var( --ms-ink-soft ); }
.ms-single-service .ms-option__title {
	margin: 0 0 .5rem;
	font-size: clamp( 1.75rem, 3.2vw, 2.4rem );
	line-height: 1.2;
	color: var( --ms-accent );
}
.ms-option__tagline {
	margin: 0 0 1.25rem;
	font-family: var( --ms-font-head );
	font-size: 1.05rem;
	font-style: italic;
	color: var( --ms-gold-ink, #75661a );
}
.ms-option__text { font-size: 1.04rem; color: var( --ms-ink ); }
.ms-option__text p { margin: 0 0 1rem; }
.ms-option__text--secondary { color: var( --ms-ink-soft ); }
.ms-option__jump ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 1.75rem 0 0;
	padding: 0;
}
.ms-option__jump a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	padding: .5rem 1.05rem;
	border: 1px solid var( --ms-border );
	border-radius: 999px;
	background: #fff;
	color: var( --ms-accent );
	font-size: .86rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color .2s ease, background .2s ease;
}
.ms-option__jump a::before {
	content: "";
	width: 8px;
	height: 7px;
	background: var( --ms-gold-dark );
	clip-path: polygon( 0 0, 100% 0, 50% 100% );
}
.ms-option__jump a:hover { border-color: var( --ms-line ); background: var( --ms-warm ); }
.ms-option__jump a:focus-visible { outline: 3px solid #9c7320; outline-offset: 2px; }
.ms-option__aside { position: relative; }
.ms-option__image { margin: 0; border-radius: var( --ms-radius ); overflow: hidden; box-shadow: var( --ms-shadow ); }
.ms-option__image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
@media ( min-width: 900px ) {
	.ms-option__aside .ms-booking--overlap { width: min( 360px, 92% ); margin: -4.5rem auto 0 -2rem; }
}
.ms-option__band-lead {
	max-width: 760px;
	margin: -1rem auto 2.25rem;
	text-align: center;
	color: var( --ms-ink-soft );
}
.ms-option__band-lead p { margin: 0; }
.ms-option__band .ms-section__header { margin-bottom: 2rem; }
.ms-option__band--close {
	padding: 2rem 0;
	background: var( --ms-warm );
	border-top: 1px solid rgba( 200, 176, 55, .3 );
}
.ms-option__close {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 2rem;
}
.ms-option__close-name {
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	margin: 0;
	font-family: var( --ms-font-head );
	font-size: 1.15rem;
	font-weight: 600;
	color: var( --ms-accent );
}
.ms-option__close-name::before {
	content: "";
	width: 12px;
	height: 11px;
	background: var( --ms-gold-dark );
	clip-path: polygon( 0 0, 100% 50%, 0 100% );
}
.ms-option__close-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.ms-option__back .ms-svg { width: 16px; height: 16px; }

/* 44px breadcrumb hit areas without changing the visual rhythm. */
.ms-single-service .meridian-breadcrumbs { padding: .5rem 0 0; }
.ms-single-service .meridian-breadcrumbs a {
	display: inline-flex;
	align-items: center;
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
}
.ms-single-service .meridian-breadcrumbs a:focus-visible { outline: 3px solid #9c7320; outline-offset: -2px; border-radius: 2px; }

/* Interactive benefit cards (massage pages) share the diamond badge. */
.ms-list__icon {
	position: relative;
	width: 48px;
	height: 48px;
	border-radius: 0;
	background: none;
	color: var( --ms-gold-dark );
}
.ms-list__icon::before {
	content: "";
	position: absolute;
	inset: 8px;
	border: 1px solid currentColor;
	background: rgba( 200, 176, 55, .1 );
	transform: rotate( 45deg );
}
.ms-list__icon svg,
.ms-list__icon img { position: relative; width: 26px; height: 26px; object-fit: contain; }
.ms-section--navy .ms-list__icon { background: none; color: var( --ms-gold ); }

/* Final CTA subheading legibility on navy, and compact related cards. */
.ms-final-cta .ms-final-cta__subheading { margin-left: auto; margin-right: auto; }
.ms-final-cta--solid .ms-final-cta__subheading,
.ms-final-cta--bg_image .ms-final-cta__subheading { color: rgba( 255, 255, 255, .78 ); }
.ms-single-service .ms-related__grid {
	grid-template-columns: repeat( auto-fit, minmax( 260px, 340px ) );
	justify-content: center;
}
@media ( max-width: 599px ) {
	.ms-option__close-actions,
	.ms-option__close-actions .ms-btn { width: 100%; justify-content: center; }
	.ms-deco-tri { width: 64px; }
	.ms-hero-full__facet { opacity: .3; }
}

/* =========================================================
   Archive / taxonomy helpers (kept from prior design)
   ========================================================= */
.ms-archive-grid {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 280px, 1fr ) );
	gap: 1.5rem;
	padding: 2rem 0;
}
.ms-archive-card {
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius );
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease;
}
.ms-archive-card:hover { transform: translateY( -4px ); box-shadow: var( --ms-shadow ); }
.ms-archive-card a { text-decoration: none; color: inherit; display: block; }
.ms-archive-card__thumb {
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
	background-color: var( --ms-bg-muted );
}
.ms-archive-card__body { padding: 1.25rem 1.5rem 1.5rem; }
.ms-archive-card__title { margin: 0 0 .35rem; font-size: 1.15rem; font-weight: 600; }
.ms-archive-card__sub { margin: 0; color: var( --ms-ink-soft ); font-size: .92rem; }

/* =========================================================
   Category landing (taxonomy, services archive, category grid page)
   ========================================================= */
.ms-cat .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect( 0, 0, 0, 0 );
	white-space: nowrap;
	border: 0;
}
.ms-cat .ms-icon { flex: 0 0 auto; }

.ms-btn--light {
	background: transparent;
	color: #fff;
	border-color: rgba( 255, 255, 255, .75 );
}
.ms-btn--light:hover,
.ms-btn--light:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var( --ms-accent );
}
.ms-btn--sm {
	min-height: 44px;
	padding: .6rem 1.15rem;
	font-size: .78rem;
}
.ms-cat .ms-btn { min-height: 44px; justify-content: center; }

/* Hero */
.ms-cat-hero {
	min-height: clamp( 440px, 64vh, 620px );
	background-color: var( --ms-accent );
}
.ms-cat-hero--plain {
	background-image:
		radial-gradient( circle at 20% 15%, rgba( 41, 60, 142, .65 ) 0%, transparent 55% ),
		radial-gradient( circle at 85% 80%, rgba( 200, 176, 55, .18 ) 0%, transparent 50% );
}
.ms-cat-hero__media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	z-index: 0;
}
.ms-cat-hero .ms-hero-full__overlay {
	background:
		linear-gradient( 180deg, rgba( 2, 10, 53, .55 ) 0%, rgba( 2, 10, 53, .78 ) 60%, rgba( 2, 10, 53, .9 ) 100% );
}
.ms-cat-hero__facet {
	position: absolute;
	z-index: 1;
	width: 240px;
	height: 240px;
	border: 1px solid rgba( 200, 176, 55, .45 );
	transform: rotate( 45deg );
	pointer-events: none;
}
.ms-cat-hero__facet::after {
	content: "";
	position: absolute;
	inset: 22px;
	border: 1px solid rgba( 200, 176, 55, .25 );
}
.ms-cat-hero__facet--left { top: 14%; left: -150px; }
.ms-cat-hero__facet--right { bottom: 22%; right: -150px; }
.ms-cat-hero__inner {
	max-width: 860px;
	padding-top: clamp( 3rem, 6vw, 4.5rem );
}
.ms-cat-hero__eyebrow { color: var( --ms-gold ); margin-bottom: 1rem; }
.ms-cat .ms-cat-hero__title {
	font-size: clamp( 2.1rem, 5vw, 3.4rem );
	margin-bottom: 1.1rem;
	text-wrap: balance;
}
.ms-cat-rule {
	position: relative;
	display: block;
	width: 168px;
	height: 12px;
	margin: 0 auto 1.4rem;
}
.ms-cat-rule::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	height: 1px;
	background: linear-gradient( 90deg, transparent, var( --ms-gold ) 30%, var( --ms-gold ) 70%, transparent );
}
.ms-cat-rule::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	background: var( --ms-gold );
	transform: translate( -50%, -50% ) rotate( 45deg );
	box-shadow: 0 0 0 5px var( --ms-accent );
}
.ms-cat-hero__lead {
	max-width: 660px;
	margin: 0 auto;
	color: rgba( 255, 255, 255, .9 );
	font-size: clamp( 1rem, 1.5vw, 1.12rem );
}
.ms-cat-hero__lead p { margin: 0 0 .75rem; color: inherit; }
.ms-cat-hero__lead p:last-child { margin-bottom: 0; }
.ms-cat-hero__lead a { color: #fff; text-decoration: underline; }
.ms-cat-stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .65rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}
.ms-cat-stats__item {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .5rem 1rem;
	border: 1px solid rgba( 255, 255, 255, .24 );
	border-radius: 999px;
	background: rgba( 2, 10, 53, .35 );
	-webkit-backdrop-filter: blur( 4px );
	backdrop-filter: blur( 4px );
	color: rgba( 255, 255, 255, .92 );
	font-size: .88rem;
	line-height: 1.3;
}
.ms-cat-stats__item .ms-icon { color: var( --ms-gold ); width: 18px; height: 18px; }
.ms-cat-stats__item strong { color: #fff; font-weight: 700; }
.ms-cat-hero__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .85rem;
	margin-top: 2rem;
}

/* Shared centered grid: full width -> 2 -> 3 columns, orphans stay centered. */
.ms-cat-collections__grid,
.ms-cat-services__grid {
	--ms-cat-gap: clamp( 1.25rem, 2.4vw, 1.75rem );
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: calc( var( --ms-cat-gap ) + .75rem ) var( --ms-cat-gap );
	margin: 0;
	padding: 0;
	list-style: none;
}
.ms-cat-collections__grid > li,
.ms-cat-services__grid > li {
	flex: 0 0 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
}
@media ( min-width: 640px ) {
	.ms-cat-collections__grid > li,
	.ms-cat-services__grid > li { flex-basis: calc( ( 100% - var( --ms-cat-gap ) ) / 2 ); }
}
@media ( min-width: 980px ) {
	.ms-cat-collections__grid > li,
	.ms-cat-services__grid > li { flex-basis: calc( ( 100% - 2 * var( --ms-cat-gap ) ) / 3 ); }
}

/* Category cards */
.ms-cat-col__card,
.ms-cat-card__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var( --ms-border );
	border-radius: var( --ms-radius );
	overflow: hidden;
	box-shadow: var( --ms-shadow );
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.ms-cat-col__card:hover,
.ms-cat-col__card:focus-within,
.ms-cat-card__inner:hover,
.ms-cat-card__inner:focus-within {
	transform: translateY( -4px );
	border-color: rgba( 200, 176, 55, .7 );
	box-shadow: 0 22px 44px -24px rgba( 2, 10, 53, .45 );
}
.ms-cat-col__media,
.ms-cat-card__media {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: linear-gradient( 135deg, var( --ms-accent ) 0%, var( --ms-accent-light ) 100% );
	/* Downward wedge echoes the Divi triangle dividers used across the site. */
	clip-path: polygon( 0 0, 100% 0, 100% 84%, 50% 100%, 0 84% );
}
.ms-cat-col__media img,
.ms-cat-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}
.ms-cat-col__card:hover .ms-cat-col__media img,
.ms-cat-card__inner:hover .ms-cat-card__media img { transform: scale( 1.05 ); }
.ms-cat-col__count {
	position: absolute;
	top: 1rem;
	left: 1rem;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .35rem .8rem;
	border-radius: 999px;
	background: rgba( 2, 10, 53, .85 );
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.ms-cat-col__count .ms-icon { width: 15px; height: 15px; color: var( --ms-gold ); }
.ms-cat-col__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	padding: 0 1.6rem 1.6rem;
	text-align: center;
}
.ms-cat-col__mark {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	margin-top: -25px;
	border: 1px solid var( --ms-gold );
	border-radius: 50%;
	background: #fff;
	color: var( --ms-gold-dark );
	box-shadow: var( --ms-shadow-sm );
}
.ms-cat-col__mark .ms-icon { width: 18px; height: 18px; }
.ms-cat .ms-cat-col__title {
	margin: .9rem 0 .5rem;
	font-size: clamp( 1.2rem, 2vw, 1.35rem );
	line-height: 1.25;
	color: var( --ms-accent );
}
.ms-cat-col__link {
	color: inherit;
	text-decoration: none;
}
.ms-cat-col__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	border-radius: var( --ms-radius );
}
.ms-cat-col__link:focus-visible { outline: none; }
.ms-cat-col__link:focus-visible::after { outline: 3px solid #9c7320; outline-offset: -3px; }
.ms-cat-col__desc {
	margin: 0 0 .75rem;
	color: var( --ms-ink-soft );
	font-size: .94rem;
	line-height: 1.6;
}
.ms-cat-col__list {
	width: 100%;
	margin: .25rem 0 1.25rem;
	padding: 0;
	list-style: none;
}
.ms-cat-col__list li {
	margin: 0;
	padding: .55rem 0;
	border-top: 1px solid var( --ms-border );
	color: var( --ms-ink );
	font-size: .92rem;
	line-height: 1.4;
	text-align: center;
	text-wrap: balance;
}
.ms-cat-col__list li::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin: 0 .55rem 0 0;
	vertical-align: .12em;
	background: var( --ms-gold );
	transform: rotate( 45deg );
}
.ms-cat-col__list li.ms-cat-col__more { color: var( --ms-gold-dark ); font-weight: 600; }
.ms-cat-col__list li.ms-cat-col__more::before { display: none; }
.ms-cat-col__cta,
.ms-cat-card__more {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	font-family: var( --ms-font-head );
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var( --ms-accent );
}
.ms-cat-col__cta { margin-top: auto; }
.ms-cat-col__cta .ms-icon,
.ms-cat-card__more .ms-icon {
	width: 16px;
	height: 16px;
	color: var( --ms-gold-dark );
	transition: transform .25s ease;
}
.ms-cat-col__card:hover .ms-cat-col__cta .ms-icon,
.ms-cat-card__more:hover .ms-icon,
.ms-cat-card__more:focus-visible .ms-icon { transform: translateX( 4px ); }

/* Treatment cards */
.ms-cat-card__index {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	align-self: center;
	width: 56px;
	height: 56px;
	margin-top: -30px;
}
.ms-cat-card__index::before {
	content: "";
	position: absolute;
	inset: 9px;
	background: var( --ms-accent );
	border: 1px solid var( --ms-gold );
	transform: rotate( 45deg );
	box-shadow: 0 0 0 4px #fff, var( --ms-shadow-sm );
}
.ms-cat-card__index span {
	position: relative;
	color: var( --ms-gold );
	font-family: var( --ms-font-head );
	font-size: .82rem;
	font-weight: 700;
	letter-spacing: .04em;
}
.ms-cat-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: .75rem 1.5rem 1.4rem;
	text-align: center;
}
.ms-cat .ms-cat-card__title {
	margin: 0 0 .55rem;
	font-size: clamp( 1.15rem, 1.8vw, 1.3rem );
	line-height: 1.3;
}
.ms-cat-card__title a {
	color: var( --ms-accent );
	text-decoration: none;
	transition: color .2s ease;
}
.ms-cat-card__title a:hover { color: var( --ms-gold-dark ); }
.ms-cat-card__title a:focus-visible,
.ms-cat-card__more:focus-visible,
.ms-cat-chip:focus-visible {
	outline: 3px solid #9c7320;
	outline-offset: 3px;
	border-radius: 2px;
}
.ms-cat-card__summary {
	margin: 0 0 1rem;
	color: var( --ms-ink-soft );
	font-size: .95rem;
	line-height: 1.6;
}
.ms-cat-card__facts {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin: 0 0 1.1rem;
	padding: 0;
	list-style: none;
}
.ms-cat-card__facts li {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: 0;
	padding: .35rem .85rem;
	border: 1px solid #e8e0c4;
	border-radius: 999px;
	background: #fbf9f1;
	color: var( --ms-ink );
	font-size: .84rem;
	font-weight: 500;
	line-height: 1.3;
}
.ms-cat-card__facts .ms-icon { width: 16px; height: 16px; color: var( --ms-gold-dark ); }
.ms-cat-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1rem;
	margin-top: auto;
	padding-top: 1rem;
	border-top: 1px solid var( --ms-border );
}
.ms-cat-card__more {
	min-height: 44px;
	text-decoration: none;
}
.ms-cat-card__more:hover { color: var( --ms-gold-dark ); }

/* Related categories on navy */
.ms-cat-related__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ms-cat-related__list > li {
	flex: 1 1 260px;
	max-width: 340px;
	margin: 0;
}
.ms-cat-chip {
	display: flex;
	align-items: center;
	gap: .9rem;
	height: 100%;
	min-height: 64px;
	padding: .85rem 1.15rem;
	border: 1px solid rgba( 255, 255, 255, .18 );
	border-radius: var( --ms-radius );
	background: rgba( 255, 255, 255, .05 );
	color: #fff;
	text-decoration: none;
	transition: border-color .25s ease, background .25s ease, transform .25s ease;
}
.ms-cat-chip:hover {
	border-color: var( --ms-gold );
	background: rgba( 255, 255, 255, .1 );
	transform: translateY( -2px );
}
.ms-cat-chip__icon {
	display: grid;
	place-items: center;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	border: 1px solid rgba( 200, 176, 55, .6 );
	border-radius: 50%;
	color: var( --ms-gold );
}
.ms-cat-chip__icon .ms-icon { width: 16px; height: 16px; }
.ms-cat-chip__text { display: flex; flex-direction: column; min-width: 0; text-align: left; }
.ms-cat-chip__name {
	font-family: var( --ms-font-head );
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
	color: #fff;
}
.ms-cat-chip__meta { font-size: .8rem; color: rgba( 255, 255, 255, .72 ); }
.ms-cat-chip > .ms-icon { margin-left: auto; color: var( --ms-gold ); transition: transform .25s ease; }
.ms-cat-chip:hover > .ms-icon { transform: translateX( 4px ); }

.ms-cat-empty { margin: 0; text-align: center; color: var( --ms-ink-soft ); }

/* AA contrast for small gold text on light backgrounds. */
.ms-cat .ms-section--white .ms-eyebrow,
.ms-cat .ms-section--white-textured .ms-eyebrow,
.ms-cat-col__list li.ms-cat-col__more { color: #75661a; }
.ms-cat .meridian-breadcrumbs a:focus-visible {
	outline: 3px solid #9c7320;
	outline-offset: 2px;
	border-radius: 2px;
}

@media ( max-width: 767px ) {
	.ms-cat-hero__facet { display: none; }
	.ms-cat-hero { min-height: 0; }
	.ms-cat-hero__actions .ms-btn { flex: 1 1 100%; }
}