/* =========================================================
   HOME — HIDE ASTRA PAGE TITLE
   Premium homepage begins directly with the hero slider.
   ========================================================= */

.home .entry-header {
	display: none;
}


/* =========================================================
   MERIDIAN PREMIUM HERO / SLIDER — PHASE A
   Layout foundation only
   ========================================================= */

.meridian-premium-hero {
    position: relative;

	width: 100vw;
	max-width: none;

	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);

	padding: 0 !important;

	overflow: hidden;
}

/* =========================================================
   MERIDIAN PREMIUM SLIDER
   ========================================================= */

.meridian-slider {
	position: relative;
	isolation: isolate;

	display: grid;
	grid-template-columns: minmax(0, 1fr);

	width: 100%;
	margin: 0;

	overflow: hidden;
}


/* =========================================================
   SLIDE STATES
   All slides occupy the same grid cell.
   ========================================================= */

.meridian-slide {
	position: relative;
	grid-column: 1;
	grid-row: 1;

	width: 100%;
	min-height: clamp(520px, 56vw, 760px);
	margin: 0;

	overflow: hidden;

	opacity: 0;
	visibility: hidden;
	pointer-events: none;

	transition:
		opacity 650ms cubic-bezier(0.22, 1, 0.36, 1),
		visibility 650ms linear;
}


/*
 * Graceful fallback before JavaScript initializes.
 * Show Slide 1 only.
 */
.meridian-slider:not(.is-ready) > .meridian-slide:first-child {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}


/*
 * JavaScript-controlled active slide.
 */
.meridian-slider.is-ready > .meridian-slide.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}


/* =========================================================
   SLIDER NAVIGATION
   ========================================================= */

.meridian-slider__arrow {
	position: absolute;
	z-index: 3;
	top: 50%;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 48px;
	height: 48px;
	padding: 0;

	border: 1px solid rgb(255 255 255 / 60%);
	border-radius: 50%;

	background: rgb(7 35 58 / 38%);
	color: #ffffff;

	font-family: inherit;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1;

	cursor: pointer;

	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);

	transform: translateY(-50%);

	box-shadow:
		0 8px 24px rgb(7 35 58 / 18%);

	transition:
		background-color 220ms ease,
		border-color 220ms ease,
		transform 220ms ease,
		box-shadow 220ms ease;
}

.meridian-slider__arrow--prev {
	left: clamp(16px, 3vw, 48px);
}

.meridian-slider__arrow--next {
	right: clamp(16px, 3vw, 48px);
}


/* =========================================================
   SLIDER DOTS
   ========================================================= */

.meridian-slider__dots {
	position: absolute;
	z-index: 3;

	left: 50%;
	bottom: 24px;

	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;

	transform: translateX(-50%);
}

.meridian-slider__dot {
	width: 10px;
	height: 10px;
	padding: 0;

	border: 1px solid rgb(255 255 255 / 85%);
	border-radius: 50%;

	background: rgb(255 255 255 / 28%);

	cursor: pointer;

	transition:
		width 220ms ease,
		background-color 220ms ease,
		border-color 220ms ease,
		transform 220ms ease;
}

.meridian-slider__dot.is-active {
	width: 28px;
	border-radius: 999px;

	background: #ffffff;
	border-color: #ffffff;
}


/* =========================================================
   DESKTOP INTERACTIONS
   ========================================================= */

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {

	.meridian-slider__arrow:hover {
		background: rgb(7 35 58 / 68%);
		border-color: #ffffff;

		transform:
			translateY(-50%)
			scale(1.06);

		box-shadow:
			0 12px 30px rgb(7 35 58 / 26%);
	}

	.meridian-slider__dot:hover {
		background: rgb(255 255 255 / 70%);
		transform: scale(1.15);
	}
}


/* =========================================================
   KEYBOARD ACCESSIBILITY
   ========================================================= */

.meridian-slider__arrow:focus-visible,
.meridian-slider__dot:focus-visible {
	outline: 3px solid #ffffff;
	outline-offset: 3px;
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.meridian-slide,
	.meridian-slider__arrow,
	.meridian-slider__dot {
		transition: none;
	}
}

/* Premium hero typography */
.meridian-slide__content h1,
.meridian-slide__content h2 {
	color: #ffffff;
	font-weight: 700;
}

.meridian-slide__content p {
	color: rgb(255 255 255 / 95%);
}

.meridian-slide__content .meridian-eyebrow {
	color: rgb(255 255 255 / 88%);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Premium hero readability overlay */
.meridian-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;

	background:
		linear-gradient(
			90deg,
			rgb(7 35 58 / 68%) 0%,
			rgb(7 35 58 / 50%) 38%,
			rgb(7 35 58 / 18%) 68%,
			rgb(7 35 58 / 0%) 100%
		);
}

.meridian-slide > .wp-block-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0 !important;
}

.meridian-slide > .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.meridian-slide__content {
	position: absolute;
	z-index: 2;
	top: 50%;
	left: 50%;
	width: min(calc(100% - 48px), 1200px);
	margin: 0;
	transform: translate(-50%, -50%);
}

/* =========================================================
   MERIDIAN PREMIUM HERO — CTA BUTTONS
   ========================================================= */

/* Shared Premium slider button treatment */
.meridian-slide__content .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	min-height: 52px;
	padding: 13px 26px;

	border: 2px solid transparent;
	border-radius: 12px;

	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;

	transition:
		background-color 250ms ease,
		border-color 250ms ease,
		color 250ms ease,
		transform 250ms ease,
		box-shadow 250ms ease;
}


/* PRIMARY — Book an Appointment */
.meridian-slider__cta-primary .wp-block-button__link {
	background: #16835f;
	border-color: #16835f;
	color: #ffffff;

	box-shadow:
		0 10px 24px rgb(22 131 95 / 24%);
}


/* SECONDARY — Explore Meridian */
.meridian-slider__cta-secondary .wp-block-button__link {
	background: rgb(255 255 255 / 10%);
	border-color: rgb(255 255 255 / 82%);
	color: #ffffff;

	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}


/* Desktop hover interactions */
@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {

	.meridian-slider__cta-primary .wp-block-button__link:hover {
		background: #106b4d;
		border-color: #106b4d;
		color: #ffffff;

		transform: translateY(-2px);

		box-shadow:
			0 14px 30px rgb(22 131 95 / 30%);
	}

	.meridian-slider__cta-secondary .wp-block-button__link:hover {
		background: #ffffff;
		border-color: #ffffff;
		color: var(--meridian-deep);

		transform: translateY(-2px);

		box-shadow:
			0 12px 28px rgb(11 46 79 / 16%);
	}
}


/* Keyboard accessibility */
.meridian-slide__content .wp-block-button__link:focus-visible {
	outline: 3px solid rgb(255 255 255 / 90%);
	outline-offset: 3px;
}


/* =========================================================
   MERIDIAN EMERGENCY BAND v3.1
   ========================================================= */

.meridian-emergency {
	position: relative;
	z-index: 4;
	width: min(calc(100% - 48px), 980px);
	margin: 24px auto -34px;
	padding: 16px 24px;

	border: 1px solid var(--meridian-border);
	border-left: 4px solid #d92d20;
	border-radius: 16px;

	background: var(--meridian-white);

	box-shadow:
		0 18px 40px rgb(11 46 79 / 10%),
		0 6px 16px rgb(11 46 79 / 5%);
}

.meridian-emergency .meridian-emergency__grid {
	display: grid !important;

	grid-template-columns:
		72px
		minmax(0, 1fr)
		220px;

	align-items: center;
	gap: 24px;

	width: 100%;
	margin: 0;
}

.meridian-emergency__grid > .wp-block-column {
	flex-basis: auto !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
}


/* LEFT — shield */

.meridian-emergency__media {
	display: flex;
	align-items: center;
	justify-content: center;
}

.meridian-emergency__media img {
	display: block;
	width: 60px;
	height: 60px;
	object-fit: contain;
}


/* CENTER — message */

.meridian-emergency__content {
	min-width: 0;
}

.meridian-emergency__content h2,
.meridian-emergency__content h3 {
	margin: 0 0 6px;

	color: var(--meridian-deep);

	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.25;
}

.meridian-emergency__content p {
	max-width: 56ch;
	margin: 0;

	color: var(--meridian-secondary);

	font-size: 0.9rem;
	line-height: 1.55;

	overflow-wrap: normal;
	word-break: normal;
}


/* RIGHT — emergency call */

.meridian-emergency__actions {
	display: grid;

	grid-template-columns:
		44px
		minmax(0, 1fr);

	grid-template-rows:
		auto
		auto;

	align-items: center;
	column-gap: 12px;
	row-gap: 4px;

	min-width: 0;
}

.meridian-emergency__actions img {
	grid-column: 1;
	grid-row: 1 / 3;

	display: block;

	width: 42px;
	height: 42px;

	object-fit: contain;
}

.meridian-emergency__actions h3 {
	grid-column: 2;
	grid-row: 1;

	margin: 0;

	color: var(--meridian-deep);

	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;

	white-space: nowrap;
}

.meridian-emergency__actions p {
	grid-column: 2;
	grid-row: 2;

	margin: 0;

	color: var(--meridian-secondary);

	font-size: 0.9rem;
	line-height: 1.5;

	overflow-wrap: normal;
	word-break: normal;
}


/* =========================================================
   SERVICES MOTION
   ========================================================= */

.motion-ready .services-heading {
	transition-delay: 0ms;
}

.motion-ready .services-intro {
	transition-delay: 90ms;
}

.motion-ready .service-card-1 {
	transition-delay: 180ms;
}

.motion-ready .service-card-2 {
	transition-delay: 290ms;
}

.motion-ready .service-card-3 {
	transition-delay: 400ms;
}

/* Slightly stronger Services entrance */
.motion-ready .service-card {
	transform: translateY(24px);
}

/* Gentle image settle during card reveal */
.motion-ready .service-card img {
	transform: scale(0.97);
	transition: transform 650ms ease;
}

.motion-ready .service-card.is-visible img {
	transform: scale(1);
}


@media (prefers-reduced-motion: reduce) {
	.motion-ready .service-card img {
		transform: none;
		transition: none;
	}
}


/* =========================================================
   SERVICES CARD VISUALS + HOVER
   ========================================================= */

.service-card {
	position: relative;
	overflow: hidden;

	padding: 0 0 24px;

	border: 1px solid var(--meridian-border);
	border-radius: 16px;

	background: var(--meridian-white);

	box-shadow:
		0 8px 20px rgb(11 46 79 / 6%),
		0 2px 6px rgb(11 46 79 / 4%);
}

.service-card img {
	display: block;
	width: 100%;
	border-radius: 16px 16px 0 0;
}

.service-card h3,
.service-card p {
	padding-inline: 22px;
}

.service-card h3 {
	margin-top: 20px;
}

.service-card p {
	margin-bottom: 0;
}

/* =========================================================
   SERVICES — HOVER INTERACTION
   ========================================================= */

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {

	.service-card {
		transition:
			transform 300ms ease,
			box-shadow 300ms ease,
			border-color 300ms ease;
	}

	.service-card img {
		transition:
			transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
	}

	/* Hover after scroll reveal has completed */
	.motion-ready .service-card.reveal-up.is-visible:hover {
		transform: translateY(-8px) scale(1);

		border-color: rgb(0 94 168 / 24%);

		box-shadow:
			0 20px 44px rgb(11 46 79 / 13%),
			0 8px 20px rgb(11 46 79 / 7%);
	}

	.motion-ready .service-card.reveal-up.is-visible:hover img {
		transform:
			scale(1.04)
			translateY(-3px);
	}
}


/* =========================================================
   DOCTORS / SPECIALISTS
   ========================================================= */

.doctor-card {
	position: relative;
	isolation: isolate;
	overflow: hidden;

	padding: 0 0 24px;

	border: 1px solid var(--meridian-border);
	border-radius: 16px;

	background: var(--meridian-white);

	box-shadow:
		0 8px 20px rgb(11 46 79 / 6%),
		0 2px 6px rgb(11 46 79 / 4%);
}

.doctor-card img {
	display: block;
	width: 100%;
	border-radius: 16px 16px 0 0;
}

.doctor-card h3,
.doctor-card h4,
.doctor-card p {
	padding-inline: 22px;
}

.doctor-card h3 {
	margin: 20px 0 4px;

	color: var(--meridian-deep);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.3;
}

.doctor-card h4 {
	margin: 0 0 14px;

	color: var(--meridian-primary);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.4;
}

.doctor-card p {
	margin: 0;

	color: var(--meridian-secondary);
	font-size: 0.95rem;
	line-height: 1.65;
}

/* =========================================================
   DOCTOR CARD — INFORMATION REVEAL
   ========================================================= */

.doctor-card__reveal {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 5;

	min-height: 52%;
	padding: 24px;

	background:
		linear-gradient(
			180deg,
			rgb(16 69 110 / 94%),
			rgb(11 46 79 / 99%)
		);

	color: var(--meridian-white);

	transform: translateY(101%);
	opacity: 0;

	transition:
		transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
		opacity 280ms ease;
}

.doctor-card__reveal p {
	margin: 0 0 8px;
	padding: 0;

	color: rgb(255 255 255 / 88%);
	font-size: 0.9rem;
	line-height: 1.5;
}

.doctor-card__reveal p:last-child {
	margin-bottom: 0;
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {

	.doctor-card:hover .doctor-card__reveal,
	.doctor-card:focus-within .doctor-card__reveal {
		transform: translateY(0);
		opacity: 1;
	}
}

/* =========================================================
   DOCTOR CARD — FLOWING BORDER / SHADOW
   ========================================================= */

/* Animated border glow */
.doctor-card::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;

	border-radius: inherit;

	background:
		linear-gradient(
			120deg,
			transparent 10%,
			rgb(0 94 168 / 10%) 30%,
			rgb(0 94 168 / 30%) 50%,
			rgb(0 94 168 / 10%) 70%,
			transparent 90%
		);

	background-size: 220% 220%;
	background-position: 100% 100%;

	opacity: 0;

	filter: blur(5px);

	transition:
		opacity 260ms ease;
}

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {

	.doctor-card:hover::before {
		opacity: 1;

		animation:
			doctor-card-border-flow 1.2s ease forwards;
	}

	.motion-ready .doctor-card.reveal-up.is-visible:hover {
		transform: translateY(-6px);

		border-color: rgb(0 94 168 / 26%);

		box-shadow:
			0 22px 48px rgb(11 46 79 / 14%),
			0 8px 22px rgb(0 94 168 / 9%);
	}
}

@keyframes doctor-card-border-flow {

	0% {
		background-position: 100% 100%;
	}

	100% {
		background-position: 0% 0%;
	}
}

/* Doctor reveal — text contrast fix */
.doctor-card .doctor-card__reveal h3 {
	color: var(--meridian-white) !important;
}

.doctor-card .doctor-card__reveal h4 {
	color: rgb(255 255 255 / 82%) !important;
}


/* =========================================================
   HOSPITAL UPDATES & STORIES — V2
   Horizontal Editorial Stories
   Desktop / Laptop Base
   ========================================================= */

.meridian-updates {
    padding-inline: 24px;
}



/* =========================================================
   STORY RAIL
   ========================================================= */

.meridian-updates__rail {
	width: 100%;
	overflow: hidden;
}


/*
 * Primary Gutenberg Columns block.
 * This becomes the future moving carousel track.
 */
.meridian-updates__track {
	display: flex;
	align-items: stretch;

	gap: 24px;

	margin: 0;
}


/* =========================================================
   STORY
   ========================================================= */

.meridian-update-story {
	flex: 1 1 0;
	min-width: 0;

	margin: 0;

	overflow: hidden;

	background: #ffffff;

	border: 1px solid rgb(11 46 79 / 9%);
	border-radius: 16px;

	box-shadow:
		0 12px 30px rgb(11 46 79 / 6%),
		0 2px 8px rgb(11 46 79 / 4%);
}


/* =========================================================
   STORY — INTERNAL 40 / 60 LAYOUT
   ========================================================= */

.meridian-update-story__layout {
	display: grid;
	grid-template-columns: minmax(0, 40%) minmax(0, 60%);

	width: 100%;
	height: 100%;
	min-height: 230px;

	gap: 0;
	margin: 0;
}


/* =========================================================
   STORY MEDIA
   ========================================================= */

.meridian-update-story__media {
	position: relative;

	min-width: 0;
	min-height: 230px;

	margin: 0;

	overflow: hidden;
}


.meridian-update-story__image {
	width: 100%;
	height: 100%;
	margin: 0;
}


.meridian-update-story__image img {
	display: block;

	width: 100%;
	height: 100%;

	min-height: 230px;

	object-fit: cover;
	object-position: center;

	border-radius: 0;
}


/* =========================================================
   STORY CONTENT
   ========================================================= */

.meridian-update-story__content {
	display: flex;
	flex-direction: column;

	min-width: 0;
	min-height: 230px;

	padding: 22px 22px 20px;

	margin: 0;
}


/* Category / editorial label. */
.meridian-update-story__category {
	margin: 0 0 10px;

	font-size: 12px;
	line-height: 1.3;
	font-weight: 700;

	letter-spacing: 0.07em;
	text-transform: uppercase;

	color: var(--meridian-teal);
}


/* Story headline. */
.meridian-update-story__title {
	margin: 0 0 10px;

	font-size: clamp(18px, 1.35vw, 21px);
	line-height: 1.25;
	font-weight: 600;

	color: var(--meridian-navy);
}


/* Short homepage teaser only. */
.meridian-update-story__excerpt {
	margin: 0 0 18px;

	font-size: 14px;
	line-height: 1.55;

	color: var(--meridian-muted);
}


/* Push Read More to the bottom of every story. */
.meridian-update-story__link {
    display: inline-flex;
    align-items: center;

    width: fit-content;
    margin: auto 0 0;

    font-size: 14px;
    line-height: 1.4;
    font-weight: 600;

    cursor: pointer;

    transition:
        color 240ms ease,
        transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}


.meridian-update-story__link a,
.meridian-updates a.meridian-update-story__link {
    color: var(--meridian-navy);
    text-decoration: none !important;
    box-shadow: none;
}

/* =========================================================
   HOSPITAL UPDATES & STORIES — V2
   PHASE 2A — PREMIUM INTERACTION
   Desktop / Laptop
   ========================================================= */

/*
 * Prepare the story card for subtle elevation.
 */
.meridian-update-story {
	transition:
		transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
		border-color 320ms ease,
		box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
}


/*
 * Prepare image for controlled zoom.
 */
.meridian-update-story__image img {
	transition:
		transform 650ms cubic-bezier(0.22, 1, 0.36, 1),
		filter 450ms ease;
}


/*
 * Soft editorial gradient overlay.
 * Kept intentionally subtle so the image remains natural.
 */
.meridian-update-story__media::after {
	content: "";

	position: absolute;
	inset: 0;

	z-index: 1;

	pointer-events: none;

	background:
		linear-gradient(
			135deg,
			rgb(11 46 79 / 0%) 45%,
			rgb(0 137 123 / 12%) 100%
		);

	opacity: 0;

	transition:
		opacity 420ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* =========================================================
   READ MORE INTERACTION
   ========================================================= */

.meridian-update-story__link {
	display: inline-flex;
	align-items: center;

	width: fit-content;

	cursor: pointer;

	transition:
		color 240ms ease,
		transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* =========================================================
   DESKTOP / POINTER HOVER
   ========================================================= */

@media (hover: hover) and (pointer: fine) {

	/*
	 * Gentle card elevation.
	 */
	.meridian-update-story:hover {
		transform: translateY(-4px);

		border-color: rgb(0 137 123 / 20%);

		box-shadow:
			0 20px 42px rgb(11 46 79 / 10%),
			0 6px 16px rgb(11 46 79 / 5%);
	}


	/*
	 * Slow cinematic image movement.
	 */
	.meridian-update-story:hover
	.meridian-update-story__image img {
		transform: scale(1.035);
	}


	/*
	 * Reveal the subtle Meridian gradient.
	 */
	.meridian-update-story:hover
	.meridian-update-story__media::after {
		opacity: 1;
	}


	/*
	 * Read More:
	 * teal color + slight directional movement.
	 */
	.meridian-update-story__link a:hover {
		color: var(--meridian-teal);
		transform: translateX(4px);
	}
	
	.meridian-update-story:hover
	.meridian-update-story__content::before {
		opacity: 1;
		background-position: 100% 50%;
	}
}


/* =========================================================
   KEYBOARD FOCUS
   ========================================================= */

.meridian-update-story__link a:focus-visible {
	color: var(--meridian-teal);

	outline: 2px solid var(--meridian-teal);
	outline-offset: 4px;

	border-radius: 3px;
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.meridian-update-story,
	.meridian-update-story__image img,
	.meridian-update-story__media::after,
	.meridian-update-story__link a {
		transition: none;
	}

	.meridian-update-story:hover,
	.meridian-update-story:hover
	.meridian-update-story__image img,
	.meridian-update-story__link a:hover {
		transform: none;
	}

}

/* =========================================================
   CONTENT — EDITORIAL GRADIENT WASH
   ========================================================= */

.meridian-update-story__content {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}


/*
 * Soft animated gradient layer over the content column.
 */
.meridian-update-story__content::before {
	content: "";

	position: absolute;
	inset: 0;

	z-index: -1;

	background:
		linear-gradient(
            110deg,
    		#ffffff 0%,
    		#f2fbfd 45%,
    		#DBF3FA 100%
		);

	background-size: 200% 100%;
	background-position: 0% 50%;

	opacity: 0;

	transition:
		opacity 420ms ease,
		background-position 650ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* =========================================================
   HOSPITAL UPDATES & STORIES — V2
   PHASE 2C — EDITORIAL RAIL
   Desktop / Laptop
   ========================================================= */

/*
 * Rail = visible carousel viewport.
 *
 * The right edge intentionally clips the next story,
 * giving visitors a visual cue that more content exists.
 */
.meridian-updates__rail {
	width: 100%;
	overflow: hidden;
}


/*
 * Gutenberg primary Columns block becomes the carousel track.
 *
 * Important:
 * prevent Gutenberg from wrapping the story columns.
 */
.meridian-updates__track {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;

	gap: 24px;

	width: 100%;
	margin: 0;

	transition:
		transform 550ms cubic-bezier(0.22, 1, 0.36, 1);

	will-change: transform;
}


/*
 * Each direct Gutenberg Column is one editorial story.
 *
 * 44% gives us:
 * - Story 1 = full
 * - Story 2 = full
 * - Story 3 = partial preview
 */
.meridian-updates__track > .meridian-update-story {
	flex-grow: 0;
	flex-shrink: 0;

	flex-basis: 44% !important;

	width: 44%;
	max-width: 44%;
	min-width: 44%;
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.meridian-updates__track {
		transition: none;
	}
}

/* =========================================================
   HOSPITAL UPDATES — RAIL NAVIGATION
   ========================================================= */

.meridian-updates__rail {
	position: relative;

	/*
	 * Gives the navigation controls their own space
	 * without covering the stories.
	 */
	padding-top: 52px;
}


.meridian-updates__navigation {
	position: absolute;

	top: 0;
	right: 0;

	z-index: 5;

	display: flex;
	align-items: center;

	gap: 8px;
}


.meridian-updates__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 38px;
	height: 38px;

	padding: 0;

	border: 1px solid rgb(11 46 79 / 14%);
	border-radius: 50%;

	background: #ffffff;

	color: var(--meridian-navy);

	font: inherit;
	font-size: 25px;
	line-height: 1;

	cursor: pointer;

	box-shadow:
		0 4px 12px rgb(11 46 79 / 6%);

	transition:
		background-color 220ms ease,
		color 220ms ease,
		border-color 220ms ease,
		transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 220ms ease;
}


@media (hover: hover) and (pointer: fine) {

	.meridian-updates__arrow:not(:disabled):hover {
		background: var(--meridian-teal);
		color: #ffffff;

		border-color: var(--meridian-teal);

		transform: translateY(-2px);

		box-shadow:
			0 8px 18px rgb(11 46 79 / 12%);
	}
}


/*
 * Clearly communicate the end of the rail.
 */
.meridian-updates__arrow:disabled {
	opacity: 0.35;
	cursor: default;

	box-shadow: none;
}


.meridian-updates__arrow:focus-visible {
	outline: 2px solid var(--meridian-teal);
	outline-offset: 3px;
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	.meridian-updates__arrow {
		transition: none;
	}

	.meridian-updates__arrow:not(:disabled):hover {
		transform: none;
	}
}



/* =========================================================
   HOME — BOOK AN APPOINTMENT
   Phase 1: Static styling
   ========================================================= */

.meridian-appointment {
    box-sizing: border-box;
    width: 100%;
    padding-inline: 24px;
}

/* Section heading */
.meridian-appointment__title {
    margin: 0 0 12px;
    color: var(--meridian-deep);
    font-weight: 700;
    line-height: 1.2;
}

/* Supporting introduction */
.meridian-appointment__intro {
    max-width: 760px;
    margin: 0 0 36px;
    color: var(--meridian-secondary);
    font-size: 1rem;
    line-height: 1.7;
}

/* Three-column appointment layout */
.meridian-appointment .meridian-appointment__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 24px;
    width: 100%;
    margin: 0;
}

/* Individual appointment card */
.meridian-appointment .meridian-appointment__card {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    margin: 0;
    padding: 0 0 26px;

    overflow: hidden;

    border: 1px solid var(--meridian-border);
    border-radius: 16px;
    background: var(--meridian-white);

    box-shadow:
        0 8px 20px rgb(11 46 79 / 6%),
        0 2px 6px rgb(11 46 79 / 4%);
}

/* Image container */
.meridian-appointment__image {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    margin: 0;
    overflow: hidden;
}

/* Uniform image presentation */
.meridian-appointment__image img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
}

/* Card heading */
.meridian-appointment__card-title {
    margin: 0 0 10px;
    padding-inline: 22px;

    color: var(--meridian-deep);
    font-size: clamp(1.1rem, 1.4vw, 1.3rem);
    font-weight: 700;
    line-height: 1.35;
}

/* Card description */
.meridian-appointment__description {
    margin: 0;
    padding-inline: 22px;

    color: var(--meridian-secondary);
    font-size: 0.95rem;
    line-height: 1.65;
}



/* =========================================================
   HOME — APPOINTMENT STEP BADGES
   Gutenberg: Step 1 / Step 2 / Step 3
   ========================================================= */

.meridian-appointment .meridian-appointment__step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;

    width: fit-content;
    min-height: 54px;

    margin: 22px 22px 14px;
    padding: 10px 20px;

    border-radius: 10px;

    background-color: #E7F1EA;
    color: #0B6B3A;

    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;

    transition:
        background-color 1000ms ease,
        color 1000ms ease;
}

/* Active step: prominent green badge */
.meridian-appointment.is-spotlight-ready
.meridian-appointment__card.is-spotlight-active
.meridian-appointment__step {
    background-color: #0B6B3A;
    color: #FFFFFF;
}

/* Inactive step: subtle badge on dark card */
.meridian-appointment.is-spotlight-ready
.meridian-appointment__card:not(.is-spotlight-active)
.meridian-appointment__step {
    background-color: rgb(255 255 255 / 10%);
    color: #D5E4DB;
}



/* =========================================================
   HOME — APPOINTMENT SEQUENTIAL SOFT REVEAL
   Full-card veil / 1-second transition
   ========================================================= */

/* Card foundation for reveal */
.meridian-appointment .meridian-appointment__card {
    position: relative;
    isolation: isolate;

    transition:
        border-color 1000ms ease,
        box-shadow 1000ms ease;
}

/* Light-gray veil covering the entire card */
.meridian-appointment .meridian-appointment__card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;

    border-radius: inherit;
    pointer-events: none;

    background-color: rgb(235 239 237 / 88%);

    opacity: 0;
    transition: opacity 1000ms ease;
}

/* Inactive cards remain softly concealed */
.meridian-appointment.is-spotlight-ready
.meridian-appointment__card:not(.is-spotlight-active)::after {
    opacity: 1;
}

/* Active card is fully revealed */
.meridian-appointment.is-spotlight-ready
.meridian-appointment__card.is-spotlight-active::after {
    opacity: 0;
}

/* Active card border and shadow */
.meridian-appointment.is-spotlight-ready
.meridian-appointment__card.is-spotlight-active {
    border-color: #0B6B3A;

    box-shadow:
        0 14px 34px rgb(11 107 58 / 16%),
        0 4px 12px rgb(11 46 79 / 8%);
}

/* Inactive cards retain subtle borders */
.meridian-appointment.is-spotlight-ready
.meridian-appointment__card:not(.is-spotlight-active) {
    border-color: #DCE5E0;
    box-shadow: none;
}

/* =========================================================
   ACCESSIBILITY — REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
    .meridian-appointment .meridian-appointment__card,
    .meridian-appointment .meridian-appointment__card::after,
    .meridian-appointment .meridian-appointment__step {
        transition: none;
    }

    .meridian-appointment
    .meridian-appointment__card::after {
        opacity: 0 !important;
    }
}





/* =========================================================
   CONTACT — LEFT INFORMATION CARD
   ========================================================= */

.contact-details {
	padding: 32px;

	border: 1px solid var(--meridian-border);
	border-radius: 18px;

	background: var(--meridian-white);

	box-shadow:
		0 12px 30px rgb(11 46 79 / 8%),
		0 4px 12px rgb(11 46 79 / 4%);
}

.contact-details > h3 {
	margin: 0 0 26px;

	color: var(--meridian-deep);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.3;
}

.contact-item {
	display: grid !important;
	grid-template-columns: 48px minmax(0, 1fr);
	align-items: center;
	gap: 16px;

	margin: 0 0 22px;
}

.contact-item:last-child {
	margin-bottom: 0;
}

.contact-item > .wp-block-column {
	flex-basis: auto !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
}

.contact-item__icon {
	display: flex;
	align-items: center;
	justify-content: center;
}

.contact-item__icon img {
	display: block;
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.contact-item__content p {
	margin: 0;

	color: var(--meridian-secondary);
	font-size: 0.95rem;
	line-height: 1.55;
}


/* =========================================================
   CONTACT — FORM CARD
   ========================================================= */

.contact-form-card {
	padding: 32px;

	border: 1px solid var(--meridian-border);
	border-radius: 18px;

	background: var(--meridian-white);

	box-shadow:
		0 12px 30px rgb(11 46 79 / 8%),
		0 4px 12px rgb(11 46 79 / 4%);
}

.contact-form-card h3 {
	margin: 0 0 10px;

	color: var(--meridian-deep);
	font-size: 1.5rem;
	font-weight: 700;
}

.contact-form-card > p {
	margin: 0 0 24px;

	color: var(--meridian-secondary);
	line-height: 1.6;
}

.contact-form-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.contact-field {
	margin-bottom: 16px;
}

.contact-field label {
	display: block;

	margin-bottom: 6px;

	color: var(--meridian-deep);
	font-size: 0.875rem;
	font-weight: 600;
}

.contact-field input,
.contact-field textarea {
	width: 100%;
	box-sizing: border-box;

	padding: 12px 14px;

	border: 1px solid var(--meridian-border);
	border-radius: 10px;

	background: var(--meridian-white);
	color: var(--meridian-deep);

	font: inherit;

	transition:
		border-color 200ms ease,
		box-shadow 200ms ease;
}

.contact-field input:focus,
.contact-field textarea:focus {
	outline: none;

	border-color: var(--meridian-primary);

	box-shadow:
		0 0 0 3px rgb(0 94 168 / 12%);
}

.contact-field textarea {
	min-height: 150px;
	resize: vertical;
}



/* =========================================================
   CONTACT SECTION — PREMIUM PRIMARY CTA
   ========================================================= */

.contact-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 48px;
    padding: 13px 24px;

    border: 1px solid #0B6B3A;
    border-radius: 12px;

    background: #0B6B3A;
    color: #ffffff;

    font: inherit;
    font-weight: 500;
    line-height: 1.4;
    text-shadow: none;

    cursor: pointer;

    box-shadow:
        0 10px 24px rgb(8 127 104 / 18%);

    transition:
        transform 250ms ease,
        box-shadow 250ms ease,
        background-color 250ms ease;
}

.contact-submit:hover {
    background: #084d2b;
    border-color: #084d2b;
    color: #ffffff;

    transform: translateY(-2px);

    box-shadow:
        0 14px 30px rgb(8 127 104 / 22%);
}

.contact-submit:focus-visible {
    outline: 3px solid #0b2e4f;
    outline-offset: 3px;
}



/* =========================================================
   CONTACT CARDS — HOVER
   ========================================================= */

@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine) {

	.contact-details,
	.contact-form-card {
		transition:
			transform 280ms ease,
			box-shadow 280ms ease,
			border-color 280ms ease;
	}

	.contact-details:hover,
	.contact-form-card:hover {
		transform: translateY(-4px);

		border-color: rgb(0 94 168 / 20%);

		box-shadow:
			0 18px 40px rgb(11 46 79 / 12%),
			0 6px 18px rgb(11 46 79 / 6%);
	}
}


/* =========================================================
   HOME — REMOVE ASTRA CONTENT BOTTOM GAP
   ========================================================= */

.home #primary {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.home .site-content {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.home .site-content > .ast-container {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}


/* =========================================================
   CONTACT — STATIC MAP
   ========================================================= */

.contact-map-static {
	margin: 0;
	overflow: visible !important;
}

.contact-map-static img {
	display: block;
	width: 100%;
	height: auto;

	border: 1px solid rgb(11 46 79 / 8%);
	border-radius: 16px;

	box-shadow:
		0 18px 40px rgb(11 46 79 / 16%),
		0 6px 16px rgb(11 46 79 / 10%) !important;
}

.contact-field input::placeholder,
.contact-field textarea::placeholder {
	font-size: 0.82rem;
	color: rgb(11 46 79 / 42%);
}



/* =========================================================
   16. RESPONSIVE LAYOUT — MATERIAL WINDOW SIZE CLASSES

   Compact       < 600px
   Medium        600px — 839.98px
   Expanded      840px — 1199.98px
   Large         1200px — 1599.98px
   Extra-large   >= 1600px

   Contract:
   - One width media-query entry per size class.
   - Capability queries (hover/pointer/reduced motion) remain
     beside the components they control.
   - Component changes are introduced only where the layout
     materially benefits from them.
   ========================================================= */


/* =========================================================
   COMPACT
   < 600px
   ========================================================= */

@media (max-width: 599.98px) {
    
    /* ============================================
       PREMIUM HERO — COMPACT MOBILE
       0–599.98px
       ============================================ */
    
    /* 1. Hero dimensions */
    .meridian-premium-hero .meridian-slide {
        min-height: 540px;
    }
    
    /* 2. Remove mobile navigation arrows */
    .meridian-premium-hero .meridian-slider__arrow {
        display: none;
    }
    
    /* 3. Improve background readability */
    .meridian-premium-hero .meridian-slide::after {
        background: linear-gradient(
            180deg,
            rgb(7 35 58 / 10%) 0%,
            rgb(7 35 58 / 30%) 30%,
            rgb(7 35 58 / 76%) 100%
        );
    }
    
    /* 4. Keep important image subjects visible */
    .meridian-premium-hero
    .meridian-slide > .wp-block-image img {
        object-fit: cover;
        object-position: center;
    }
    
    /* 5. Anchor content toward pagination */
    .meridian-premium-hero .meridian-slide__content {
        top: auto;
        bottom: 88px;
        left: 16px;
    
        width: calc(100% - 32px);
        max-width: none;
    
        transform: none;
    }
    
    /* 6. Mobile heading */
    .meridian-premium-hero
    .meridian-slide__content h1,
    .meridian-premium-hero
    .meridian-slide__content h2 {
        font-size: clamp(1.45rem, 6vw, 1.85rem);
        line-height: 1.2;
        margin-bottom: 12px;
    }
    
    /* 7. Mobile paragraph */
    .meridian-premium-hero
    .meridian-slide__content p {
        font-size: 0.9rem;
        line-height: 1.5;
    }
    
    /* 8. CTA layout */
    .meridian-premium-hero
    .meridian-slide__content .wp-block-buttons {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 10px;
    
        margin-top: 20px;
    }
    
    .meridian-premium-hero
    .meridian-slide__content .wp-block-button {
        flex: 1 1 0;
        min-width: 0;
    }
    
    .meridian-premium-hero
    .meridian-slide__content .wp-block-button__link {
        display: flex;
        width: 100%;
        min-height: 48px;
    
        padding: 10px 8px;
        font-size: 0.78rem;
        line-height: 1.3;
        text-align: center;
    }
    
    /* 9. Pagination position */
    .meridian-premium-hero .meridian-slider__dots {
        bottom: 28px;
        gap: 9px;
    }
    
    /* 10. Comfortable pagination tap targets */
    .meridian-premium-hero .meridian-slider__dot {
        position: relative;
        flex-shrink: 0;
    }
    
    .meridian-premium-hero
    .meridian-slider__dot::before {
        content: "";
        position: absolute;
        inset: -14px;
    }

    

	/* ---------- Home shell / Astra ---------- */

	.home .site-content > .ast-container {
		width: 100%;
		max-width: none;
		padding-left: 0;
		padding-right: 0;
	}

	.home .entry-header {
		padding-top: 18px;
		padding-left: 16px;
		padding-right: 16px;
	}

	.home .entry-title {
		position: relative;
		display: inline-block;
		margin-bottom: 0;
		padding-bottom: 10px;
	}

	.home .entry-title::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 52px;
		height: 3px;
		border-radius: 999px;
		background: var(--meridian-primary);
	}
	
	
	
	/* ---------- Emergency band ---------- */

	.meridian-emergency.meridian-container {
		width: calc(100% - 72px) !important;
		max-width: none;
		margin-top: 24px;
		margin-inline: auto !important;
		margin-bottom: 30px !important;
		padding: 18px;
	}

	.meridian-emergency .meridian-emergency__grid {
		grid-template-columns: 52px minmax(0, 1fr);
		gap: 14px;
		align-items: start;
	}

	.meridian-emergency__media img {
		width: 48px;
		height: 48px;
	}

	.meridian-emergency__actions {
		grid-column: 1 / -1;
		margin-top: 10px;
		padding-top: 14px;
		border-top: 1px solid var(--meridian-border);
	}


	/* ---------- Services ---------- */

	.home .services-intro + .wp-block-columns.has-background {
		padding: 1.25em 16px;
	}

	.home .services-heading,
	.home .services-intro,
	.home .service-card {
		box-sizing: border-box;
	}

	.home .services-heading,
	.home .services-intro,
	.home .service-card {
		width: 100%;
		max-width: none;
	}

	.home .service-card p,
	.home .service-card h3 {
		padding-left: 18px !important;
		padding-right: 18px !important;
	}

	.motion-ready .services-intro {
		transition-delay: 60ms;
	}

	.motion-ready .service-card-1 {
		transition-delay: 100ms;
	}

	.motion-ready .service-card-2 {
		transition-delay: 160ms;
	}

	.motion-ready .service-card-3 {
		transition-delay: 220ms;
	}


	/* ---------- Why Choose ---------- */

	.home .wp-block-columns:has(> .trust-card) {
		box-sizing: border-box;
		padding-inline: 16px;
	}

	.trust-card img {
		display: block;
		width: min(52%, 150px);
		height: auto;
		margin-inline: auto;
		margin-bottom: 16px;
	}


	/* ---------- Doctors ---------- */

	.doctor-card {
		padding-bottom: 0;
	}

	.doctor-card img {
		width: 100%;
		height: 280px;
		object-fit: cover;
		object-position: center top;
	}

	.doctor-card h3 {
		margin-top: 16px;
		font-size: 1.1rem;
	}

	.doctor-card h4 {
		margin-bottom: 10px;
		font-size: 0.9rem;
	}

	.doctor-card > p {
		font-size: 0.88rem;
		line-height: 1.55;
	}

	.doctor-card__reveal {
		position: static !important;
		min-height: 0 !important;
		padding: 16px 20px 18px;
		background: var(--meridian-soft);
		transform: none !important;
		opacity: 1 !important;
		border-top: 1px solid var(--meridian-border);
	}

	.doctor-card__reveal h3,
	.doctor-card__reveal h4 {
		display: none;
	}

	.doctor-card__reveal p {
		margin-bottom: 6px;
		font-size: 0.82rem;
		line-height: 1.45;
		color: var(--meridian-secondary) !important;
	}

	.doctor-card__reveal .wp-block-button__link,
	.doctor-card__reveal a {
		font-size: 0.82rem;
	}


	/* ---------- Contact ---------- */

	.contact-form-row {
		grid-template-columns: 1fr;
	}

	.meridian-contact {
		width: 100%;
		max-width: none !important;
		padding-inline: 10px !important;
		margin-inline: 0 !important;
	}

	.contact-grid {
		display: block !important;
		width: 100%;
		max-width: none !important;
		margin: 0 !important;
	}

	.contact-grid > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		margin-inline: 0 !important;
	}

	.contact-details,
	.contact-form-card {
		box-sizing: border-box;
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 22px 18px;
	}

	.contact-form-card {
		margin-top: 50px !important;
	}
	

    /* =========================================================
       HOSPITAL UPDATES & STORIES — COMPACT MOBILE
       One full-width card per carousel position
       ========================================================= */
    
    /* Section spacing */
    .meridian-updates {
        padding-inline: 16px;
    }
    
    /* Carousel viewport and navigation */
    .meridian-updates .meridian-updates__rail {
        min-width: 0;
        padding-top: 52px;
        overflow: hidden;
    }
    
    .meridian-updates .meridian-updates__navigation {
        top: 0;
        right: 0;
    }
    
    /* Single-card carousel */
    .meridian-updates .meridian-updates__track {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 16px;
        width: 100%;
        min-width: 0;
    }
    
    /* Override desktop 44% card width */
    .meridian-updates
    .meridian-updates__track > .meridian-update-story {
        box-sizing: border-box;
        flex: 0 0 100% !important;
        width: 100%;
        min-width: 100%;
        max-width: 100%;
        min-height: 0;
        margin: 0;
    }
    
    /* Change 40/60 layout to vertical */
    .meridian-updates .meridian-update-story__layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto minmax(0, 1fr);
        width: 100%;
        height: 100%;
        min-height: 0;
    }
    
    /* Featured image */
    .meridian-updates .meridian-update-story__media {
        width: 100%;
        min-width: 0;
        min-height: 0;
        aspect-ratio: 16 / 9;
        overflow: hidden;
    }
    
    .meridian-updates .meridian-update-story__image {
        width: 100%;
        height: 100%;
        margin: 0;
    }
    
    .meridian-updates .meridian-update-story__image img {
        display: block;
        width: 100%;
        height: 100%;
        min-height: 0;
        object-fit: cover;
        object-position: center;
    }
    
    /* Article content */
    .meridian-updates .meridian-update-story__content {
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 0;
        padding: 20px 18px 22px;
    }
    
    /* Category */
    .meridian-updates .meridian-update-story__category {
        margin: 0 0 10px;
        font-size: 11px;
        line-height: 1.4;
        letter-spacing: 0.06em;
        overflow-wrap: normal;
        word-break: normal;
    }
    
    /* Headline */
    .meridian-updates .meridian-update-story__title {
        margin: 0 0 12px;
        font-size: clamp(1.15rem, 4.8vw, 1.35rem);
        line-height: 1.35;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }
    
    /* Teaser */
    .meridian-updates .meridian-update-story__excerpt {
        margin: 0 0 20px;
        font-size: 0.9rem;
        line-height: 1.65;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }
    
    /* Read More remains bottom-aligned */
    .meridian-updates .meridian-update-story__link {
        margin-top: auto;
        font-size: 0.9rem;
        line-height: 1.5;
    }

}


/* =========================================================
   MEDIUM
   600px — 839.98px
   ========================================================= */

@media (min-width: 600px) and (max-width: 839.98px) {

	.home .entry-header {
		padding-top: 28px;
		padding-left: 24px;
		padding-right: 24px;
	}
	
	/* Remove carousel arrows */
    .meridian-premium-hero .meridian-slider__arrow {
        display: none;
    }
	
    .meridian-premium-hero .meridian-slide__content {
        top: auto;
        bottom: 100px;
    
        left: 50%;
        right: auto;
    
        width: calc(100% - 48px);
        max-width: 680px;
    
        transform: translateX(-50%);
    
        text-align: left;
    }
    
    /* Remove unwanted CTA text shadows */
    .meridian-premium-hero
    .meridian-slide__content .wp-block-button__link {
        text-shadow: none !important;
    }

    /* Keep pagination near the bottom */
    .meridian-premium-hero .meridian-slider__dots {
        bottom: 28px;
    }

	
	/* Emergency keeps the readable stacked call row. */
	.meridian-emergency.meridian-container {
		width: calc(100% - 64px) !important;
		max-width: 720px;
		margin: 28px auto 36px !important;
		padding: 20px 22px;
	}

	.meridian-emergency .meridian-emergency__grid {
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 18px;
		align-items: start;
	}

	.meridian-emergency__media img {
		width: 52px;
		height: 52px;
	}

	.meridian-emergency__actions {
		grid-column: 1 / -1;
		margin-top: 8px;
		padding-top: 16px;
		border-top: 1px solid var(--meridian-border);
	}


	/* Services and trust cards retain a portrait-friendly rhythm. */
	.home .services-intro + .wp-block-columns.has-background,
	.home .wp-block-columns:has(> .trust-card) {
		box-sizing: border-box;
		padding-inline: 20px;
	}

	.trust-card img {
		display: block;
		width: min(56%, 190px);
		height: auto;
		margin-inline: auto;
		margin-bottom: 18px;
	}
	
	
    /* ---------- Why Choose ---------- */

    .home .wp-block-columns:has(> .trust-card) {
    	box-sizing: border-box;
    	padding-inline: 16px;
    	gap: 12px;
    }
    
    .trust-card {
    	box-sizing: border-box;
    	padding: 16px 12px 18px;
    }
    
    .trust-card img {
    	display: block;
    	width: 82px;
    	height: 82px;
    
    	margin-inline: auto;
    	margin-bottom: 12px;
    
    	object-fit: contain;
    }
    
    .trust-card h3 {
    	margin: 0 0 8px;
    
    	padding-left: 0 !important;
    	padding-right: 0 !important;
    
    	font-size: 0.95rem;
    	font-weight: 700;
    	line-height: 1.25;
    
    	text-align: center;
    
    	overflow-wrap: normal;
    	word-break: normal;
    	hyphens: none;
    }
    
    .trust-card p {
    	margin: 0;
    
    	font-size: 0.8rem;
    	line-height: 1.45;
    }
        
        
    
    /* =========================================================
       OUR SERVICES — MEDIUM TABLET
       Two cards per row
       ========================================================= */
    
    /* Convert the existing Gutenberg Columns layout to a grid */
    .meridian-services .wp-block-columns {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
        align-items: stretch;
    }
    
    /* Reset Gutenberg column widths */
    .meridian-services .wp-block-columns > .wp-block-column {
        box-sizing: border-box;
        flex: none;
        width: auto;
        min-width: 0;
        max-width: none;
        margin: 0;
    }
    
    /* Keep each service card at equal height */
    .meridian-services .wp-block-columns > .wp-block-column {
        display: flex;
        flex-direction: column;
    }
    
    /* Prevent images from exceeding their card width */
    .meridian-services .wp-block-column img {
        display: block;
        max-width: 100%;
    }
    
    /* Prevent long content from stretching the grid */
    .meridian-services .wp-block-column h3,
    .meridian-services .wp-block-column p {
        overflow-wrap: break-word;
    }
    
    

    /* =========================================================
       MEET OUR DOCTORS — MEDIUM TABLET
       600px–839.98px
       Two-column layout, touch-friendly information
       ========================================================= */
    
    /* Doctor cards: two per row */
    .meridian-doctors .wp-block-columns {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
        align-items: stretch;
    }
    
    /* Reset Gutenberg column sizing */
    .meridian-doctors .wp-block-columns > .wp-block-column {
        display: flex;
        flex-direction: column;
        flex: none;
        width: auto;
        min-width: 0;
        max-width: none;
        margin: 0;
    }
    
    /* Card fills available column height */
    .meridian-doctors .doctor-card {
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100%;
        min-width: 0;
        overflow: hidden;
    }
    
    /* Consistent portrait dimensions */
    .meridian-doctors .doctor-card img {
        display: block;
        width: 100%;
        height: 320px;
        object-fit: cover;
        object-position: center 25%;
    }
    
    /* Show doctor information without hover */
    .meridian-doctors .doctor-card__reveal {
        position: static;
        inset: auto;
        transform: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        height: auto;
        min-height: 0;
    }
    
    /* Disable hover-dependent transitions */
    .meridian-doctors .doctor-card:hover .doctor-card__reveal,
    .meridian-doctors .doctor-card:focus-within .doctor-card__reveal {
        transform: none;
        opacity: 1;
        visibility: visible;
    }
    
    /* Keep text readable */
    .meridian-doctors .doctor-card h3,
    .meridian-doctors .doctor-card p {
        overflow-wrap: break-word;
    }



    /* =========================================================
       HOSPITAL UPDATES & STORIES — MEDIUM TABLET
       600px–839.98px
       One horizontal article card per slide
       ========================================================= */
    
    /* Carousel viewport */
    .meridian-updates .meridian-updates__rail {
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        overflow: hidden;
    }
    
    /* Keep all articles on one horizontal track */
    .meridian-updates .meridian-updates__track {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 20px;
        width: 100%;
        min-width: 0;
    }
    
    /* Override the desktop 44% card sizing */
    .meridian-updates
    .meridian-updates__track > .meridian-update-story {
        box-sizing: border-box;
        flex: 0 0 100% !important;
        width: 100%;
        min-width: 100%;
        max-width: 100%;
        margin: 0;
    }
    
    /* Horizontal image/content layout */
    .meridian-updates .meridian-update-story__layout {
        display: grid;
        grid-template-columns: minmax(0, 40%) minmax(0, 60%);
        width: 100%;
        height: 100%;
        min-height: 360px;
    }
    
    /* Featured image */
    .meridian-updates .meridian-update-story__media {
        width: 100%;
        min-width: 0;
        min-height: 360px;
        overflow: hidden;
    }
    
    .meridian-updates .meridian-update-story__image {
        width: 100%;
        height: 100%;
        margin: 0;
    }
    
    .meridian-updates .meridian-update-story__image img {
        display: block;
        width: 100%;
        height: 100%;
        min-height: 360px;
        object-fit: cover;
        object-position: center;
    }
    
    /* Article content */
    .meridian-updates .meridian-update-story__content {
        display: flex;
        flex-direction: column;
        min-width: 0;
        min-height: 360px;
        padding: 28px 30px;
    }
    
    /* Category */
    .meridian-updates .meridian-update-story__category {
        margin: 0 0 12px;
        font-size: 12px;
        line-height: 1.4;
    }
    
    /* Article headline */
    .meridian-updates .meridian-update-story__title {
        margin: 0 0 16px;
        font-size: clamp(1.25rem, 2.8vw, 1.55rem);
        line-height: 1.35;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }
    
    /* Article summary */
    .meridian-updates .meridian-update-story__excerpt {
        margin: 0 0 20px;
        font-size: 14px;
        line-height: 1.7;
        overflow-wrap: normal;
        word-break: normal;
    }
    
    /* Keep Read More at the bottom */
    .meridian-updates .meridian-update-story__link {
        margin-top: auto;
        font-size: 14px;
        line-height: 1.5;
    }


    

	/* Contact stays stacked in Medium windows. */
	.contact-form-row {
		grid-template-columns: 1fr;
	}

	.contact-grid {
		flex-wrap: wrap !important;
	}

	.contact-grid > .wp-block-column {
		flex-basis: 100% !important;
	}
}


/* =========================================================
   EXPANDED
   840px — 1199.98px
   ========================================================= */

@media (min-width: 840px) and (max-width: 1199.98px) {
    

    /* Hide previous/next arrows */
    .meridian-premium-hero .meridian-slider__arrow {
        display: none;
    }

    /* Improve CTA label readability */
    .meridian-premium-hero .meridian-slide__content a {
        text-shadow: none;
        filter: none;
    }

	/* Emergency returns to the three-part horizontal layout. */
	.meridian-emergency {
		width: min(calc(100% - 48px), 980px);
		margin-top: -12px;
		margin-bottom: 44px;
		padding: 18px 24px;
	}

	.meridian-emergency .meridian-emergency__grid {
		grid-template-columns:
			64px
			minmax(0, 1fr)
			200px;
		gap: 18px;
		align-items: center;
	}

	.meridian-emergency__media img {
		width: 54px;
		height: 54px;
	}

	.meridian-emergency__actions {
		grid-column: auto;
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}


	/* Why Choose */
	.home .wp-block-columns:has(> .trust-card) {
		box-sizing: border-box;
		padding-inline: 16px;
	}

	.trust-card img {
		display: block;
		width: min(58%, 220px);
		height: auto;
		margin-inline: auto;
		margin-bottom: 18px;
	}


	/* Doctors */
	/* Preserve consistent portrait dimensions */
    .meridian-doctors .doctor-card img {
        display: block;
        width: 100%;
        height: clamp(300px, 35vw, 400px);
        object-fit: cover;
        object-position: center 25%;
    }
    
    /* Allow the information panel to extend the card */
    .meridian-doctors .doctor-card {
        display: flex;
        flex-direction: column;
        height: 100%;
        overflow: hidden;
    }
    
    /* Show doctor details without hover */
    .meridian-doctors .doctor-card__reveal {
        position: static;
        inset: auto;
        width: 100%;
        height: auto;
        min-height: 0;
        padding: 20px 22px;
    
        transform: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    
        transition: none;
    }
    
    /* Prevent hover/focus from repositioning the panel */
    .meridian-doctors .doctor-card:hover .doctor-card__reveal,
    .meridian-doctors .doctor-card:focus-within .doctor-card__reveal {
        transform: none;
        opacity: 1;
        visibility: visible;
    }
    
    /* Maintain readable information hierarchy */
    .meridian-doctors .doctor-card__reveal h3 {
        margin-bottom: 4px;
        font-size: 1.05rem;
        line-height: 1.3;
    }
    
    .meridian-doctors .doctor-card__reveal h4 {
        margin-bottom: 10px;
        font-size: 0.88rem;
    }
    
    .meridian-doctors .doctor-card__reveal p {
        margin-bottom: 6px;
        font-size: 0.8rem;
        line-height: 1.45;
    }
    
    /* Keep the CTA accessible */
    .meridian-doctors .doctor-card__reveal a {
        pointer-events: auto;
    }
	
	

    /* =========================================================
       HOSPITAL UPDATES & STORIES — EXPANDED
       840px–1199.98px
       Two complete cards per carousel view
       ========================================================= */
    
    /* Carousel viewport */
    .meridian-updates .meridian-updates__rail {
        box-sizing: border-box;
        width: 100%;
        min-width: 0;
        overflow: hidden;
    }
    
    /* Horizontal carousel track */
    .meridian-updates .meridian-updates__track {
        display: flex;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: 20px;
        width: 100%;
        min-width: 0;
    }
    
    /* Exactly two cards, accounting for the gap */
    .meridian-updates
    .meridian-updates__track > .meridian-update-story {
        box-sizing: border-box;
        flex: 0 0 calc((100% - 20px) / 2) !important;
        width: calc((100% - 20px) / 2);
        min-width: 0;
        max-width: calc((100% - 20px) / 2);
        margin: 0;
    }
    
    /* Preserve horizontal image-and-content composition */
    .meridian-updates .meridian-update-story__layout {
        display: grid;
        grid-template-columns: minmax(0, 40%) minmax(0, 60%);
        width: 100%;
        height: 100%;
    }
    
    /* Prevent text overflow */
    .meridian-updates .meridian-update-story__content {
        min-width: 0;
    }
    
    /* Keep article headlines readable */
    .meridian-updates .meridian-update-story__title {
        overflow-wrap: break-word;
        word-break: normal;
    }

}


/* =========================================================
   LARGE
   1200px — 1599.98px
   ========================================================= */

@media (min-width: 1200px) and (max-width: 1599.98px) {

	.meridian-emergency {
		margin-top: -18px;
		margin-bottom: 48px;
		padding-block: 14px;
	}

	.meridian-emergency .meridian-emergency__grid {
		grid-template-columns:
			72px
			minmax(0, 1fr)
			220px;
		gap: 22px;
	}
}


/* =========================================================
   EXTRA-LARGE
   >= 1600px

   Meridian remains intentionally constrained at very wide
   viewport sizes. The large composition is retained while
   preventing uncontrolled component stretching.
   ========================================================= */

@media (min-width: 1600px) {

	.meridian-emergency {
		margin-top: -18px;
		margin-bottom: 48px;
		padding-block: 14px;
	}

	.meridian-emergency .meridian-emergency__grid {
		grid-template-columns:
			72px
			minmax(0, 1fr)
			220px;
		gap: 22px;
	}
}



/* =========================================================
   MEET OUR DOCTORS — DESKTOP IMAGE HEIGHT TEST
   Temporary: 300px
   ========================================================= */

@media (min-width: 1200px) {

    .meridian-doctors .doctor-card img {
        height: 400px;
        width: 100%;
        object-fit: cover;
        object-position: center 25%;
    }
}


/* =========================================================
   HOSPITAL UPDATES — DESKTOP CARD HEIGHT TEST
   Target: 370px
   ========================================================= */

@media (min-width: 1200px) {

    .meridian-updates .meridian-update-story {
        min-height: 370px;
    }

    .meridian-updates .meridian-update-story__layout {
        min-height: 370px;
        height: 100%;
    }

    .meridian-updates .meridian-update-story__media,
    .meridian-updates .meridian-update-story__content {
        min-height: 370px;
    }

}



