/*
 * Mastologoi — what theme.json cannot express: header/footer chrome,
 * block style variations, and a few component details.
 * Colours, type and spacing always come from theme.json presets.
 */

:root {
	--m-header-h: 84px;
	--m-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	--m-icon-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
	--m-icon-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--m-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--m-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 110px; -webkit-font-smoothing: antialiased; }
body { text-rendering: optimizeLegibility; }
:where(h1, h2, h3) { text-wrap: balance; }
:where(p, li) { text-wrap: pretty; }
img { height: auto; }
:focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
::selection { background: var(--wp--preset--color--pink-200); }

/* Icon helper: a currentColor glyph from a CSS mask. */
.m-icon::before,
.is-style-contact-links a::before,
.footer-links--map a::before,
.is-style-facts li::before {
	content: "";
	flex: none;
	width: 16px;
	height: 16px;
	background: currentColor;
	-webkit-mask: var(--m-icon, var(--m-icon-phone)) center / contain no-repeat;
	mask: var(--m-icon, var(--m-icon-phone)) center / contain no-repeat;
}

/* ───────────── Header ───────────── */

.site-header-part {
	position: sticky;
	top: 12px;
	z-index: 50;
	margin-top: 12px;
	padding: 0 16px;
}
.admin-bar .site-header-part { top: 44px; }
@media (max-width: 782px) { .admin-bar .site-header-part { top: 12px; } }

.site-header { padding: 0 !important; }
.site-header__bar {
	gap: 16px;
	background: color-mix(in srgb, var(--wp--preset--color--cream) 88%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-radius: 999px;
	padding: 10px 10px 10px 22px;
	box-shadow: 0 3px 10px rgba(46, 43, 37, .16);
}
.site-brand { min-width: 0; }
.site-brand .wp-block-site-logo img { width: auto; height: 38px; }
.site-brand__name { line-height: 1.15; font-size: 14px; }
.site-brand__name a { color: var(--wp--preset--color--ink); display: block; text-decoration: none !important; }
.site-brand__name a { color: var(--wp--preset--color--muted); }
.site-brand__name strong { color: var(--wp--preset--color--ink); font-size: 17px; font-weight: 700; }

.site-header__mobile { display: none !important; }
@media (max-width: 999px) {
	.site-header__desktop, .utility-bar-part { display: none !important; }
	.site-header__mobile { display: flex !important; }
}

/* Desktop navigation */
.site-nav .wp-block-navigation-item__content {
	padding: 10px 16px;
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	text-decoration: none !important;
}
.site-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover,
.site-nav .wp-block-navigation-submenu:hover > .wp-block-navigation-item__content,
.site-nav .current-menu-item > .wp-block-navigation-item__content,
.site-nav .current-menu-ancestor > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--cream-2);
}
.site-nav .wp-block-navigation-item__label,
.site-brand__name { white-space: nowrap; }
.site-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__label { white-space: normal; }
@media (max-width: 1199px) {
	.site-nav .wp-block-navigation-item__content { padding: 10px 11px; }
	.site-nav { font-size: 16px !important; }
	.site-header__bar { padding-left: 18px; }
}
.site-nav .has-child > .wp-block-navigation-item__content { padding-right: 4px; }
.site-nav .wp-block-navigation__submenu-icon { margin-left: 0; margin-right: 12px; }
.site-nav .wp-block-navigation__submenu-icon svg { stroke-width: 2.8; }

/* Services dropdown */
.site-nav .wp-block-navigation__submenu-container {
	width: 360px !important;
	min-width: 360px !important;
	padding: 10px !important;
	margin-top: 12px;
	border: 0 !important;
	border-radius: 28px;
	background: var(--wp--preset--color--white) !important;
	box-shadow: var(--wp--preset--shadow--lg);
}
.site-nav .wp-block-navigation__submenu-container::before { /* hover bridge across the gap */
	content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px;
}
.site-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 12px 16px;
	border-radius: 18px;
	font-weight: 700;
}
.site-nav.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--pink-100); }
.site-nav .wp-block-navigation-item__description {
	display: block;
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--subtle);
}
.site-nav .is-all-link { margin-top: 6px; }
.site-nav.wp-block-navigation .is-all-link .wp-block-navigation-item__content {
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--primary-dark);
	font-size: 16px;
}
.site-nav .is-all-link .wp-block-navigation-item__label::after { content: " →"; }

/* Mobile menu: the core overlay, restyled as a floating card under the header bar */
.site-nav-mobile .wp-block-navigation__responsive-container-open {
	width: 48px; height: 48px;
	border-radius: 50%;
	background: var(--wp--preset--color--cream-2);
	color: var(--wp--preset--color--ink);
	display: flex; align-items: center; justify-content: center;
}
/* The bar's backdrop-filter makes it the containing block of this fixed panel. */
.site-nav-mobile .wp-block-navigation__responsive-container.is-menu-open {
	inset: calc(100% + 10px) 0 auto 0;
	height: auto;
	max-height: calc(100vh - 120px);
	border-radius: 32px;
	padding: 12px 24px 24px;
	box-shadow: var(--wp--preset--shadow--lg);
	overflow: auto;
}
.site-nav-mobile .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 48px !important; align-items: stretch !important; }
.site-nav-mobile .is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; width: 100%; }
.site-nav-mobile .is-menu-open .wp-block-navigation-item { width: 100%; }
.site-nav-mobile .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex !important;
	justify-content: space-between;
	width: 100%;
	padding: 16px 4px !important;
	border-bottom: 1.5px solid var(--wp--preset--color--pink-line);
	font-size: 20px;
	font-weight: 700;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.site-nav-mobile .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.has-child) > .wp-block-navigation-item__content::after { content: "→"; color: var(--wp--preset--color--primary-dark); }
.site-nav-mobile .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
	border-bottom: 0 !important;
	font-size: 14px !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary-dark) !important;
}
.site-nav-mobile .is-menu-open .wp-block-navigation__submenu-container {
	display: flex !important;
	flex-direction: column;
	gap: 6px;
	padding: 0 0 12px !important;
	border-bottom: 1.5px solid var(--wp--preset--color--pink-line);
}
.site-nav-mobile .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding: 13px 20px !important;
	border-radius: 999px;
	background: var(--wp--preset--color--sand);
	font-size: 17px;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.site-nav-mobile .is-menu-open .wp-block-navigation-item__description,
.site-nav-mobile .is-menu-open .is-all-link { display: none !important; }

/* Utility bar (desktop only) */
.utility-bar__phones { display: flex; flex-wrap: wrap; align-items: center; gap: 0 22px; }
.utility-bar__phones a { color: var(--wp--preset--color--subtle); display: inline-flex; align-items: center; gap: 4px; }
.utility-bar__phones a + a::before {
	content: ""; width: 4px; height: 4px; margin-right: 18px; border-radius: 50%;
	background: #e0cdd8;
}
.utility-bar__phones strong { color: var(--wp--preset--color--ink); }
.utility-bar__phones a:hover { color: var(--wp--preset--color--primary-dark); text-decoration: none; }
.utility-bar__social .wp-social-link { width: 30px; height: 30px; padding: 0 !important; border-radius: 50%; display: flex !important; align-items: center; justify-content: center; }
.utility-bar__social .wp-social-link svg { width: 16px; height: 16px; }
.utility-bar__social .wp-social-link:hover { background: var(--wp--preset--color--pink-100); transform: none; }

/* ───────────── Breadcrumbs (Rank Math) ───────────── */

.rank-math-breadcrumb { margin-bottom: 24px; font-size: 15px; color: var(--wp--preset--color--subtle); }
.rank-math-breadcrumb p { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.rank-math-breadcrumb a { color: var(--wp--preset--color--subtle); }
.rank-math-breadcrumb a:hover { color: var(--wp--preset--color--primary-dark); }
.rank-math-breadcrumb .last { color: var(--wp--preset--color--ink); font-weight: 600; }

/* ───────────── Footer ───────────── */

.site-footer-part { margin-top: 0; }
.site-footer {
	position: relative;
	overflow: hidden;
	border-radius: 48px 48px 0 0;
}
.site-footer::before,
.site-footer::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.site-footer::before { right: -80px; top: -80px; width: 280px; height: 280px; background: var(--wp--preset--color--pink-200); opacity: .6; }
.site-footer::after { left: -60px; bottom: -60px; width: 180px; height: 180px; background: var(--wp--preset--color--pink-100); }
.site-footer > * { position: relative; z-index: 1; }
.footer-title { font-family: inherit !important; font-size: 17px !important; font-weight: 800 !important; letter-spacing: 0 !important; margin: 0 0 4px !important; line-height: 1.4 !important; }
.footer-avatar { flex: none; margin: 0; width: 64px; }
.footer-avatar img { border: 3px solid #fff; width: 64px !important; height: 64px !important; object-fit: cover; }
/* Fixed-size round photos never shrink inside flex rows (no squashed faces). */
.wp-block-image.is-style-circle { flex-shrink: 0; }
.wp-block-image.is-style-circle img { object-fit: cover; }
.footer-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.footer-links a { color: var(--wp--preset--color--ink); }
.footer-links--map a { --m-icon: var(--m-icon-pin); display: inline-flex; align-items: center; gap: 10px; }
.footer-links--map a::before { color: var(--wp--preset--color--primary); }
.footer-social .wp-social-link { width: 42px; height: 42px; padding: 0 !important; display: flex !important; align-items: center; justify-content: center; }
.footer-social .wp-social-link a,
.utility-bar__social .wp-social-link a { display: flex !important; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 0 !important; line-height: 0; }
.footer-social .wp-social-link svg { width: 18px; height: 18px; }
.footer-social .wp-social-link:hover { background: var(--wp--preset--color--primary) !important; color: #fff !important; transform: none; }
.footer-social .wp-social-link:hover svg { fill: #fff; }
.footer-partners img { max-width: 100%; }
.footer-bottom a { color: var(--wp--preset--color--ink); }

/* Mobile call bar */
.mobile-callbar { display: none !important; }
@media (max-width: 999px) {
	body { padding-bottom: 84px; }
	.mobile-callbar {
		display: flex !important;
		position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 40;
		padding: 6px; border-radius: 999px;
		background: var(--wp--preset--color--cream);
		box-shadow: 0 12px 32px rgba(46, 43, 37, .22);
	}
	.mobile-callbar__buttons { width: 100%; flex-wrap: nowrap; gap: 8px !important; }
	.mobile-callbar__buttons .wp-block-button { flex: 1; width: auto !important; }
	.mobile-callbar__buttons .wp-block-button__link { width: 100%; padding: 14px; }
	.mobile-callbar .is-style-soft .wp-block-button__link { background: var(--wp--preset--color--cream-2); color: var(--wp--preset--color--ink); }
}

/* ───────────── Block style variations ───────────── */

/* Buttons */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 2px solid var(--wp--preset--color--ink);
	padding: 14px 26px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; }
.wp-block-button.is-style-soft > .wp-block-button__link { background: var(--wp--preset--color--pink-100); color: var(--wp--preset--color--primary-deep); }
.wp-block-button.is-style-soft > .wp-block-button__link:hover { background: var(--wp--preset--color--pink-200); color: var(--wp--preset--color--primary-ink); }
.wp-block-button.is-style-white > .wp-block-button__link { background: #fff; color: var(--wp--preset--color--primary-dark); font-weight: 800; }
.wp-block-button.is-style-white > .wp-block-button__link:hover { background: var(--wp--preset--color--pink-100); color: var(--wp--preset--color--primary-deep); }
.wp-block-button.is-style-ghost > .wp-block-button__link { background: transparent; color: #fff; border: 2px solid #fff; padding: 14px 24px; }
.wp-block-button.is-style-ghost > .wp-block-button__link:hover { background: var(--wp--preset--color--primary-dark); }
.wp-block-button__link { text-decoration: none !important; }
.wp-block-button.has-shadow > .wp-block-button__link,
.wp-block-button.is-style-fill > .wp-block-button__link { box-shadow: var(--wp--preset--shadow--button); }

/* Lists */
ul.is-style-dots, ol.is-style-steps, ul.is-style-facts, ul.is-style-contact-links { list-style: none; padding-left: 0; }
ul.is-style-dots { display: flex; flex-direction: column; gap: 12px; }
ul.is-style-dots > li { position: relative; padding-left: 23px; line-height: 1.65; }
ul.is-style-dots > li::before {
	content: ""; position: absolute; left: 0; top: .62em;
	width: 9px; height: 9px; border-radius: 50%; background: var(--wp--preset--color--primary);
}

ul.is-style-facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
ul.is-style-facts > li {
	--m-icon: var(--m-icon-check);
	display: flex; align-items: center; gap: 8px;
	padding: 9px 16px; border-radius: 999px;
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--ink);
	font-size: 16px; font-weight: 600; line-height: 1.4;
}
ul.is-style-facts > li::before { color: var(--wp--preset--color--primary); }

ol.is-style-steps { counter-reset: step; display: flex; flex-direction: column; gap: 12px; }
ol.is-style-steps > li {
	counter-increment: step;
	display: flex; gap: 18px; align-items: flex-start;
	padding: 18px 22px;
	background: #fff;
	border: 1.5px solid var(--wp--preset--color--pink-line);
	border-radius: 24px;
	font-size: clamp(17px, 1.25vw, 18px);
	line-height: 1.65;
}
ol.is-style-steps > li::before {
	content: counter(step);
	flex: none;
	width: 40px; height: 40px; margin-top: -6px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--wp--preset--color--pink-100);
	color: var(--wp--preset--color--primary-dark);
	font-weight: 800; font-size: 18px;
}

ul.is-style-contact-links { display: flex; flex-direction: column; gap: 10px; margin: 0; }
ul.is-style-contact-links a {
	display: flex; align-items: center; gap: 10px;
	padding: 10px 16px; border-radius: 999px;
	background: #fff;
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}
ul.is-style-contact-links a:hover { background: var(--wp--preset--color--pink-100); text-decoration: none; }
ul.is-style-contact-links a::before { color: var(--wp--preset--color--primary); }
ul.is-style-contact-links a[href^="mailto:"] { --m-icon: var(--m-icon-mail); }
ul.is-style-contact-links a[href*="map"] { --m-icon: var(--m-icon-pin); }

/* Paragraphs */
p.is-style-eyebrow {
	font-size: 15px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--wp--preset--color--primary-dark);
}
p.is-style-badge {
	display: inline-flex; width: fit-content;
	padding: 6px 14px; border-radius: 999px;
	background: var(--wp--preset--color--pink-100);
	color: var(--wp--preset--color--primary-deep);
	font-size: 14px; font-weight: 700; line-height: 1.4;
}

/* Images */
.wp-block-image.is-style-washed img { filter: saturate(.6) contrast(.85) brightness(1.1) opacity(.94); }
.wp-block-image.is-style-circle img { border-radius: 50% !important; aspect-ratio: 1; object-fit: cover; }

/* Details — default is the article FAQ look; .is-style-faq is the home-page accordion. */
.wp-block-details { margin-block: 0; }
.wp-block-details + .wp-block-details { margin-top: 12px; }
.wp-block-details > summary {
	padding: 20px 0;
	cursor: pointer;
	font-weight: 700; font-size: 19px; line-height: 1.4;
	color: var(--wp--preset--color--ink);
}
.wp-block-details > :last-child { margin-bottom: 22px; }
.wp-block-details.is-style-faq { background: var(--wp--preset--color--cream); border: 0; border-radius: 28px; padding: 0 28px; }
.wp-block-details.is-style-faq + .wp-block-details.is-style-faq { margin-top: 10px; }
.wp-block-details.is-style-faq > summary {
	list-style: none;
	display: flex; justify-content: space-between; align-items: center; gap: 20px;
	padding: 22px 0;
}
.wp-block-details.is-style-faq > summary::-webkit-details-marker { display: none; }
.wp-block-details.is-style-faq > summary::after {
	content: "+";
	flex: none;
	width: 40px; height: 40px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--wp--preset--color--cream-2);
	font-size: 24px; font-weight: 400;
	transition: transform .2s, background-color .2s;
}
.wp-block-details.is-style-faq[open] > summary::after { transform: rotate(45deg); background: var(--wp--preset--color--primary); color: #fff; }
.wp-block-details.is-style-faq > :not(summary) { color: var(--wp--preset--color--muted); max-width: 760px; }
@media (prefers-reduced-motion: reduce) { .wp-block-details.is-style-faq > summary::after { transition: none; } }

/* Vertical sidebar navigation (service sidebar) */
.wp-block-navigation.is-style-sidebar .wp-block-navigation__container { flex-direction: column; align-items: stretch; gap: 0; width: 100%; }
.wp-block-navigation.is-style-sidebar .wp-block-navigation-item__content {
	display: block; width: 100%;
	padding: 10px 12px; border-radius: 14px;
	font-size: 16px; line-height: 1.35; font-weight: 500;
	color: var(--wp--preset--color--muted);
}
.wp-block-navigation.is-style-sidebar .wp-block-navigation-item__content:hover { background: rgba(255, 255, 255, .6); text-decoration: none; }
.wp-block-navigation.is-style-sidebar .current-menu-item > .wp-block-navigation-item__content {
	background: #fff; color: var(--wp--preset--color--primary-dark); font-weight: 700;
}
.wp-block-navigation.is-style-sidebar .wp-block-navigation-item__description { display: none; }

/* Card group */
.wp-block-group.is-style-card { background: #fff; border-radius: 32px; box-shadow: var(--wp--preset--shadow--sm); }

/* ───────────── Forms & search ───────────── */

.wp-block-search__inside-wrapper {
	border: 1.5px solid #ead9e2 !important;
	border-radius: 999px;
	background: #fff;
	padding: 6px 8px 6px 20px !important;
}
.wp-block-search__input { border: 0 !important; font-size: 18px; background: transparent; outline: 0; }
.wp-block-search__button { border-radius: 999px !important; margin-left: 8px !important; }

.wpcf7-form { display: flex; flex-direction: column; gap: 18px; }
.wpcf7-form p { margin: 0; }
.wpcf7-form label { display: flex; flex-direction: column; gap: 8px; font-weight: 700; font-size: 16px; color: var(--wp--preset--color--ink); }
.wpcf7-form input:is([type="text"], [type="tel"], [type="email"]),
.wpcf7-form textarea,
.wpcf7-form select {
	width: 100%;
	font: inherit; font-size: 18px; font-weight: 400;
	padding: 14px 20px;
	border: 1.5px solid #e3d3dc;
	border-radius: 999px;
	background: #fff;
	color: var(--wp--preset--color--ink);
}
.wpcf7-form textarea { border-radius: 24px; padding: 16px 20px; resize: vertical; min-height: 140px; }
.wpcf7-form :is(input, textarea, select):focus-visible { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 0; border-color: var(--wp--preset--color--primary); }
.wpcf7-form .wpcf7-acceptance label { flex-direction: row; gap: 12px; align-items: flex-start; font-weight: 400; font-size: 15px; color: var(--wp--preset--color--muted); }
.wpcf7-form input[type="checkbox"] { width: 22px; height: 22px; accent-color: var(--wp--preset--color--primary); flex: none; margin: 1px 0 0; }
.wpcf7-form .wpcf7-submit {
	border: 0; cursor: pointer;
	padding: 17px 28px; border-radius: 999px;
	background: var(--wp--preset--color--primary); color: #fff;
	font: inherit; font-weight: 700; font-size: 19px;
	box-shadow: var(--wp--preset--shadow--button);
}
.wpcf7-form .wpcf7-submit:hover { background: var(--wp--preset--color--primary-dark); }
.wpcf7-not-valid-tip { color: #a3123f; font-size: 15px; font-weight: 600; margin-top: 6px; }
.wpcf7-response-output { margin: 0 !important; padding: 14px 20px !important; border-radius: 20px; border: 0 !important; background: var(--wp--preset--color--pink-100); color: var(--wp--preset--color--primary-ink); }
.wpcf7-spinner { display: none; }
.wpcf7 .screen-reader-response { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wpcf7 form.init .wpcf7-response-output, .wpcf7-response-output:empty { display: none; }

/* ───────────── Small screens ───────────── */

.site-header .wp-block-button__link,
.mobile-callbar .wp-block-button__link { white-space: nowrap; }
@media (max-width: 999px) {
	.site-brand { flex-shrink: 1; }
	.site-header__mobile { flex: none; }
}
@media (max-width: 479px) {
	.site-header-part { padding: 0 10px; }
	.site-header__bar { padding-left: 16px; gap: 8px; }
	.site-brand .wp-block-site-logo { display: none; }
	.site-brand__name { white-space: normal; font-size: 13px; }
	.site-brand__name strong { font-size: 15px; }
	.mobile-callbar .wp-block-button__link { font-size: 16px; }
}

/* ───────────── Service page ─────────────
 * One grid: hero across the top, sidebar | content below. The post-content wrapper
 * uses display:contents so each block in the page content becomes a grid item —
 * the hero (first block) spans the full width, everything else sits in the content column.
 */

.service-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px 56px minmax(0, 760px) minmax(0, 1fr);
	max-width: 1280px;
	margin-inline: auto;
	padding: clamp(32px, 5vw, 56px) 24px var(--wp--preset--spacing--70);
	box-sizing: border-box;
}
.service-layout > * { grid-column: 4; margin-block: 0; }
.service-layout > .rank-math-breadcrumb { grid-column: 1 / -1; margin-bottom: 24px; }
.service-layout > .service-content { display: contents; }
.service-content > * { grid-column: 4; margin-block: 0 18px !important; min-width: 0; }
.service-content > .service-hero {
	grid-column: 1 / -1;
	margin-bottom: clamp(48px, 6vw, 88px) !important;
	align-items: center;
}
.service-content > :is(h2, h3) { margin-bottom: 18px !important; }
.service-content > h2:not(:nth-child(2)) { margin-top: 30px !important; }
.service-content > :is(p, ul, ol) { font-size: var(--wp--preset--font-size--prose); line-height: 1.75; color: var(--wp--preset--color--body); }
.service-content > :is(ul.is-style-dots, ol.is-style-steps) { line-height: 1.65; }
.service-content > .wp-block-image:not(.service-hero__image) { max-width: 560px; }
.service-content > .wp-block-image img { border-radius: 28px; aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.service-content > .read-also { margin-top: 30px !important; margin-bottom: 24px !important; }
.service-cta { margin-top: 30px !important; }
.service-disclaimer { margin-top: 24px !important; }

.service-aside {
	grid-column: 2;
	grid-row: 3 / span 200;
	align-self: start;
	position: sticky;
	top: 110px;
}
.service-hero__image img { width: 100%; background: var(--wp--preset--color--sand); }

.other-services { display: none; }

@media (max-width: 999px) {
	.service-layout { grid-template-columns: minmax(0, 1fr); }
	.service-layout > *, .service-content > *, .service-content > .service-hero { grid-column: 1; }
	.service-aside { display: none; }
	.other-services { display: block; max-width: 1280px; margin: 0 auto; padding: 0 24px 56px; }
}

/* Vertical menu as pills (mobile "other services"); the current page is left out */
.wp-block-navigation.is-style-pills .wp-block-navigation__container { flex-direction: column; align-items: stretch; gap: 8px; width: 100%; }
.wp-block-navigation.is-style-pills .wp-block-navigation-item__content {
	display: flex; justify-content: space-between; gap: 12px; width: 100%;
	padding: 16px 22px; border-radius: 999px;
	background: var(--wp--preset--color--sand);
	color: var(--wp--preset--color--ink); font-weight: 700;
}
.wp-block-navigation.is-style-pills .wp-block-navigation-item__content::after { content: "→"; color: var(--wp--preset--color--primary-dark); }
.wp-block-navigation.is-style-pills .wp-block-navigation-item__description,
.wp-block-navigation.is-style-pills .current-menu-item { display: none; }

/* "Read also" card — the title link stretches over the whole card */
.read-also { position: relative; transition: background-color .15s; }
.read-also:hover { background: var(--wp--preset--color--pink-100) !important; }
.read-also > .wp-block-group { flex: 1 1 260px; min-width: 0; }
.read-also__title a { color: var(--wp--preset--color--ink); }
.read-also__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.read-also__title a:hover { text-decoration: none; }
.read-also:focus-within { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.read-also__title a:focus-visible { outline: 0; }
.read-also .wp-block-image { margin: 0; flex: none; }
.footer-partners img { width: auto; }

/* ───────────── Tabs block ───────────── */

.m-tabs__list { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.m-tabs__list[hidden] { display: none; }
.js .m-tabs__list[hidden] { display: flex; }            /* shown before view.js runs → no shift */
.js .m-tabs:not(.is-enhanced) > .m-tabs__panel.is-inactive { display: none; }
.m-tabs__panel[hidden] { display: none !important; }
.m-tabs__panel:focus-visible { outline-offset: 6px; border-radius: 40px; }
.m-tabs:not(.is-enhanced) > .m-tabs__panel + .m-tabs__panel { margin-top: 16px; } /* no-JS: stacked */

.m-tabs__tab {
	cursor: pointer;
	font: inherit; font-size: 17px; font-weight: 600; line-height: 1.2;
	padding: 12px 20.5px;
	border-radius: 999px;
	border: 1.5px solid var(--wp--preset--color--stone);
	background: transparent;
	color: var(--wp--preset--color--ink);
}
.m-tabs__tab:hover { background: var(--wp--preset--color--cream-2); }
.m-tabs__tab[aria-selected="true"] { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #fff; }

.m-tabs.is-style-pills-on-dark .m-tabs__tab { border-color: rgba(255, 255, 255, .55); color: #fff; }
.m-tabs.is-style-pills-on-dark .m-tabs__tab:hover { background: rgba(255, 255, 255, .12); }
.m-tabs.is-style-pills-on-dark .m-tabs__tab[aria-selected="true"] { background: #fff; border-color: #fff; color: var(--wp--preset--color--primary-dark); }

.m-tabs.is-style-segmented .m-tabs__list { gap: 6px; padding: 6px; margin: 0; border-radius: 999px; background: var(--wp--preset--color--cream-2); flex-wrap: nowrap; }
.m-tabs.is-style-segmented .m-tabs__tab { flex: 1; border: 0; padding: 12px 14px; color: var(--wp--preset--color--subtle); }
.m-tabs.is-style-segmented .m-tabs__tab:hover { background: rgba(255, 255, 255, .5); }
.m-tabs.is-style-segmented .m-tabs__tab[aria-selected="true"] { background: var(--wp--preset--color--cream); color: var(--wp--preset--color--ink); box-shadow: 0 1px 2px rgba(46, 43, 37, .14); }

/* Editor view of tabs: every panel stacked with its label */
.m-tabs--editor > .block-editor-inner-blocks > .block-editor-block-list__layout { display: flex; flex-direction: column; gap: 16px; }
.m-tab--editor { border: 1.5px dashed var(--wp--preset--color--stone); border-radius: 24px; padding: 12px 16px; }
.m-tab__label { display: inline-block; margin-bottom: 10px; padding: 6px 14px; border-radius: 999px; background: var(--wp--preset--color--ink); color: #fff; font-weight: 600; font-size: 15px; }

/* ───────────── Map block ───────────── */

.m-map {
	position: relative;
	overflow: hidden;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
	border-radius: 24px;
	background:
		radial-gradient(circle at 78% 30%, var(--wp--preset--color--pink-100) 0 90px, transparent 91px),
		radial-gradient(circle at 18% 80%, var(--wp--preset--color--cream-2) 0 70px, transparent 71px),
		var(--wp--preset--color--sand);
}
.m-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: saturate(.7); }
.m-map__button {
	--m-icon: var(--m-icon-pin);
	display: inline-flex; align-items: center; gap: 10px;
	cursor: pointer;
	border: 0; border-radius: 999px;
	padding: 12px 20px;
	background: #fff; color: var(--wp--preset--color--ink);
	font: inherit; font-weight: 700; font-size: 16px;
	box-shadow: var(--wp--preset--shadow--sm);
}
.m-map__button::before { content: ""; width: 16px; height: 16px; background: var(--wp--preset--color--primary); -webkit-mask: var(--m-icon) center / contain no-repeat; mask: var(--m-icon) center / contain no-repeat; }
.m-map__button:hover { background: var(--wp--preset--color--pink-100); }
.m-map__link { font-size: 15px; color: var(--wp--preset--color--primary-dark); font-weight: 600; }
.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; }

/* ───────────── Shared bits ───────────── */

.home-title { letter-spacing: -0.02em; line-height: 1.05 !important; max-width: 760px; }
.home-intro { max-width: 620px; }
p.link-arrow a { font-weight: 600; }
p.link-arrow a::after { content: " →"; }
.wp-block-button.has-arrow > .wp-block-button__link { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.wp-block-button.has-arrow > .wp-block-button__link::after { content: "→"; }
.wp-block-button:not(.has-custom-width).has-arrow > .wp-block-button__link { display: inline-flex; }
.wp-block-button.is-large > .wp-block-button__link { font-size: 22px; padding: 14px 24px; }
.wp-block-button.is-small > .wp-block-button__link { padding: 14px 24px; font-size: 17px; font-weight: 600; }
.wp-block-button.is-style-outline.is-small > .wp-block-button__link { padding: 12.5px 22px; border-width: 1.5px; }
.wp-block-button.is-style-outline-pink > .wp-block-button__link {
	background: #fff; color: var(--wp--preset--color--primary-dark);
	border: 2px solid var(--wp--preset--color--primary);
	padding: 13px 24px; font-size: 20px;
}
.wp-block-button.is-style-outline-pink > .wp-block-button__link:hover { background: var(--wp--preset--color--pink-100); color: var(--wp--preset--color--primary-deep); }

p.is-style-number {
	width: 84px; height: 84px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 50%;
	font-family: var(--wp--preset--font-family--heading); font-size: 36px; font-weight: 500;
	color: var(--wp--preset--color--ink);
}

/* Badges: symptom urgency levels and clinics */
p.is-style-badge[class*="level-"] { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px; font-size: 16px; }
p.is-style-badge[class*="level-"]::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
p.is-style-badge.level-soon { background: var(--wp--preset--color--pink-100); color: var(--wp--preset--color--primary-dark); }
p.is-style-badge.level-calm { background: var(--wp--preset--color--sand); color: var(--wp--preset--color--subtle); }
p.is-style-badge.level-plan { background: var(--wp--preset--color--cream-2); color: var(--wp--preset--color--ink); }
p.is-style-badge.clinic-card__badge { background: var(--wp--preset--color--primary); color: #fff; }
.clinic-card.is-alt p.is-style-badge.clinic-card__badge { background: var(--wp--preset--color--pink-200); color: var(--wp--preset--color--primary-ink); }

/* Dots list on dark backgrounds */
ul.is-style-dots.is-light { gap: 18px; }
ul.is-style-dots.is-light > li::before { background: var(--wp--preset--color--pink-200); top: .5em; width: 10px; height: 10px; }

/* ───────────── Home sections ───────────── */

.home-hero__text { min-width: 0; }
.home-hero__text p:not(.is-style-eyebrow) { max-width: 560px; }
.home-hero__image { justify-self: center; width: min(100%, 480px); margin: 0; }
.home-hero__image img { width: 100%; background: var(--wp--preset--color--sand); }
@media (min-width: 921px) { .home-hero > .wp-block-group { align-items: center; } }

/* Booking bar: 3 columns once enhanced (label+switch | phone | form) */
.js .home-booking { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 28px; row-gap: 12px; align-items: end; }
.js .home-booking > * { margin: 0 !important; }
.js .home-booking__tabs { display: contents; }
.js .home-booking__label { grid-column: 1; grid-row: 1; }
.js .home-booking__tabs > .m-tabs__list { grid-column: 1; grid-row: 2; }
.js .home-booking__tabs > .m-tabs__panel { grid-column: 2; grid-row: 1 / span 2; }
.js .home-booking__form { grid-column: 3; grid-row: 1 / span 2; }
.home-booking .is-style-eyebrow { margin-bottom: 12px; }
@media (max-width: 899px) {
	.js .home-booking { grid-template-columns: minmax(0, 1fr); }
	.js .home-booking > *, .js .home-booking__tabs > * { grid-column: 1 !important; grid-row: auto !important; }
	.js .home-booking__tabs > .m-tabs__list { margin-bottom: 16px; }
}

.symptom-card { align-items: start; }
.symptom-card .wp-block-buttons { margin-top: 0; }

/* Screening: intro + pills on the left, the selected age on the right */
.js .home-screening { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; align-items: start; }
.js .home-screening > .m-tabs { display: contents; }
.js .home-screening__intro { grid-column: 1; grid-row: 1; }
.js .home-screening > .m-tabs > .m-tabs__list { grid-column: 1; grid-row: 2; gap: 8px; margin: 0; }
.js .home-screening > .m-tabs > .m-tabs__panel { grid-column: 2; grid-row: 1 / span 2; }
.home-screening h2 { color: #fff; }
@media (max-width: 899px) {
	.js .home-screening { grid-template-columns: minmax(0, 1fr); }
	.js .home-screening > *, .js .home-screening > .m-tabs > * { grid-column: 1 !important; grid-row: auto !important; }
	.js .home-screening > .m-tabs > .m-tabs__list { margin-bottom: 24px; }
}

/* Service cards: whole pill is the link */
.service-card {
	position: relative;
	display: grid !important;
	grid-template-columns: 60px minmax(0, 1fr) auto;
	column-gap: 20px; align-items: center;
	padding: 14px 28px 14px 14px;
	border-radius: 999px;
	background: var(--wp--preset--color--cream);
	transition: background-color .15s;
}
.service-card > * { margin: 0 !important; grid-column: 2; }
.service-card::before { content: ""; grid-column: 1; grid-row: 1 / span 2; width: 60px; height: 60px; border-radius: 50%; background: var(--wp--preset--color--pink-200); }
.service-cards > .service-card:nth-child(3n + 2)::before { background: var(--wp--preset--color--sand); }
.service-cards > .service-card:nth-child(3n)::before { background: var(--wp--preset--color--stone); }
.service-card::after { content: "→"; grid-column: 3; grid-row: 1 / span 2; color: var(--wp--preset--color--primary); font-size: 20px; }
.service-card:hover { background: var(--wp--preset--color--pink-100); }
.service-card:focus-within { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.service-card__title { font-weight: 700; font-size: 19px; line-height: 1.3; overflow-wrap: anywhere; hyphens: auto; }
.service-card__title a { color: var(--wp--preset--color--ink); outline: 0; }
.service-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.service-card__title a:hover { text-decoration: none; }
.service-card__text { font-size: 16px; color: var(--wp--preset--color--subtle); }

/* Doctor strip */
.home-doctor__photo { flex: none; margin: 0; }
.home-doctor__photo img { border: 6px solid #fff; box-shadow: 0 10px 30px rgba(90, 30, 60, .10); }
.home-doctor__text { flex: 1 1 300px; min-width: 0; }
.home-doctor__creds { flex: 1.2 1 420px; min-width: 0; }

/* Reviews */
.reviews-placeholder a { font-weight: 700; }

/* Articles: circles */
.home-posts__image { max-width: 240px; margin: 0; }
.home-posts__image img { background: var(--wp--preset--color--sand); }
.home-posts__title a { color: var(--wp--preset--color--ink); }
.home-posts__title a:hover { color: var(--wp--preset--color--primary-dark); text-decoration: none; }

/* Clinics */
.home-clinics { background: linear-gradient(180deg, #fff 0%, var(--wp--preset--color--pink-50) 100%); }
.home-clinics__intro { max-width: 520px; }
.clinic-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 40px; box-shadow: var(--wp--preset--shadow--md); }
.clinic-card > * { margin: 0 !important; }
.clinic-card__photos {
	display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 6px; height: 280px; padding: 6px;
}
.clinic-card__photos > * { margin: 0 !important; min-width: 0; min-height: 0; }
.clinic-card__photos img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; display: block; }
.clinic-card__photos > :first-child { grid-row: span 2; }
.clinic-card__photos > :first-child img { border-radius: 34px 10px 10px 10px; }
.clinic-card__photos > :nth-child(2) img { border-radius: 10px 34px 10px 10px; }
.clinic-card__body { flex: 1; }
.clinic-card__actions { margin-top: auto !important; }
.clinic-card__actions .wp-block-button { flex: 1 1 140px; }
.clinic-card__actions .wp-block-button:last-child { flex-basis: 180px; }
.clinic-card__actions .wp-block-button__link { width: 100%; text-align: center; padding-block: 15px; }
.clinic-card__actions .is-style-outline .wp-block-button__link { padding-block: 13px; }

ul.is-style-contact-rows { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
ul.is-style-contact-rows a {
	display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; align-items: center;
	padding: 12px 0;
	border-bottom: 1.5px solid var(--wp--preset--color--pink-line);
	color: var(--wp--preset--color--subtle); font-size: 14px; line-height: 1.3;
}
ul.is-style-contact-rows a::before {
	content: ""; grid-row: 1 / span 2;
	width: 40px; height: 40px; border-radius: 50%;
	background: var(--wp--preset--color--pink-100) var(--m-row-icon) center / 16px no-repeat;
}
ul.is-style-contact-rows a { --m-row-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c42f8a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
ul.is-style-contact-rows a[href^="mailto:"] { --m-row-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c42f8a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E"); }
ul.is-style-contact-rows a[href*="map"] { --m-row-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c42f8a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
ul.is-style-contact-rows a br { display: none; }
ul.is-style-contact-rows strong { display: block; grid-column: 2; color: var(--wp--preset--color--ink); font-size: 18px; font-weight: 700; }
ul.is-style-contact-rows a:hover { text-decoration: none; }
ul.is-style-contact-rows a:hover strong { color: var(--wp--preset--color--primary-dark); }

.partners-strip { align-items: center; }
.partners-strip img { width: auto; max-width: 100%; }
/* Constrained layouts centre narrower children; the design keeps them flush left — on the
   section's 1232px content edge (not its padding edge), so every section shares one left line. */
.home-title, .home-intro, .home-clinics__intro {
	margin-left: max(0px, calc((100% - 1232px) / 2)) !important;
	margin-right: auto !important;
}
/* Core grid layout uses auto-fill (leaves empty tracks); the design fills the row (auto-fit). */
.symptom-card.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.home-visit__grid.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.service-hero.is-layout-grid,
.home-hero > .is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); }
.clinic-cards.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr)); }
.home-doctor__creds.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
p.is-style-number { flex: none; width: 84px !important; aspect-ratio: 1; padding: 0; }
.clinic-card__body > .is-layout-flex:first-child { flex-wrap: wrap; align-items: flex-end; }
.clinic-card__body > .is-layout-flex:first-child > * { flex: 0 1 auto; margin: 0; }
@media (max-width: 479px) {
	.wp-block-button.is-style-outline-pink > .wp-block-button__link,
	.wp-block-button.is-large > .wp-block-button__link { font-size: 18px; white-space: nowrap; }
}

/* ───────────── Blog: listing ───────────── */

.blog-head__text { max-width: 760px; min-width: 0; flex: 1 1 460px; }
.blog-search { flex: 0 1 380px; min-width: 260px; }
.blog-search .wp-block-search__button { padding: 10px; background: transparent; color: var(--wp--preset--color--primary-dark); }
.blog-search .wp-block-search__button svg { width: 22px; height: 22px; }

.blog-filters { align-items: center; }
.blog-filters__cats { display: contents; list-style: none; }
.blog-filters__cats li { display: inline-flex; margin: 0; }
.blog-filters a {
	display: inline-flex;
	padding: 12px 20.5px; border-radius: 999px;
	border: 1.5px solid #e3d3dc; background: #fff;
	color: var(--wp--preset--color--ink); font-weight: 700; font-size: 17px; line-height: 1.2;
}
.blog-filters a:hover { background: var(--wp--preset--color--pink-100); text-decoration: none; }
.blog-filters .current-cat > a,
.blog:not(.paged) .blog-filters__all a,
body.blog.paged .blog-filters__all a {
	background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: #fff;
}
.blog-filters .current-cat > a { pointer-events: none; }

/* Cards */
.post-grid .wp-block-post-template, .related-posts .wp-block-post-template { margin: 0; }
.post-card {
	position: relative; height: 100%;
	border-radius: 32px; overflow: hidden;
	box-shadow: var(--wp--preset--shadow--sm);
	transition: box-shadow .2s;
}
.post-card:hover { box-shadow: 0 18px 44px rgba(90, 30, 60, .14); }
.post-card:focus-within { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.post-card__image { margin: 0 !important; background: var(--wp--preset--color--sand); }
.post-card__image a { display: block; }
.post-card__body { flex: 1; }
.post-card__cat a, .article-cat a {
	position: relative; z-index: 1;
	display: inline-flex; padding: 6px 14px; border-radius: 999px;
	background: var(--wp--preset--color--sand); color: var(--wp--preset--color--subtle);
	font-size: 14px; font-weight: 700; line-height: 1.4;
}
.post-card__cat a:hover { background: var(--wp--preset--color--pink-100); text-decoration: none; }
.post-card__cat { display: flex; flex-wrap: wrap; gap: 6px; }
.post-card__cat .wp-block-post-terms__separator { display: none; }
.post-card__title { margin: 0; line-height: 1.22 !important; letter-spacing: 0 !important; }
.post-card__title a { color: var(--wp--preset--color--ink); }
.post-card__title a::after { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.post-card__title a:hover { text-decoration: none; }
.post-card__title a:focus-visible { outline: 0; }
.post-card__excerpt p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0; }
.post-card__meta { margin-top: auto !important; padding-top: 8px; }
.post-card__meta > * + *::before { content: "·"; margin-right: 6px; }
.post-card__meta::after { content: "Διαβάστε →"; margin-left: auto; color: var(--wp--preset--color--primary-dark); font-weight: 700; }

/* First post on the first blog page: featured, image beside text */
@media (min-width: 900px) {
	.blog:not(.paged) .post-grid .wp-block-post:first-child { grid-column: 1 / -1; }
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card {
		display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		border-radius: 40px; box-shadow: var(--wp--preset--shadow--md);
	}
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__image,
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__image a,
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__image img { height: 100%; min-height: 340px; aspect-ratio: auto !important; }
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__body { padding: clamp(28px, 4vw, 56px) !important; justify-content: center; gap: 18px; }
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__title { font-size: clamp(30px, 3vw, 44px) !important; line-height: 1.12 !important; }
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__excerpt { font-size: 18px !important; }
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__meta { margin-top: 0 !important; }
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__meta::after { display: none; }
	.blog:not(.paged) .post-grid .wp-block-post:first-child .post-card__cat::before {
		content: "Νέο άρθρο"; display: inline-flex; padding: 6px 14px; border-radius: 999px;
		background: var(--wp--preset--color--primary); color: #fff; font-size: 14px; font-weight: 700; line-height: 1.4;
	}
}

.post-pagination { margin-top: 48px; gap: 8px; }
.post-pagination a, .post-pagination .current {
	display: inline-flex; align-items: center; justify-content: center; min-width: 48px; height: 48px; padding: 0 16px;
	border-radius: 999px; background: #fff; border: 1.5px solid #e3d3dc; color: var(--wp--preset--color--ink); font-weight: 700;
}
.post-pagination .current { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: #fff; }
.post-pagination a:hover { background: var(--wp--preset--color--pink-100); text-decoration: none; }

/* ───────────── Article ───────────── */

.article-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 260px 56px minmax(0, 760px) minmax(0, 1fr);
	max-width: 1280px; margin-inline: auto;
	padding: clamp(32px, 5vw, 56px) 24px clamp(40px, 5vw, 72px);
	box-sizing: border-box;
}
.article-layout > * { grid-column: 4; margin-block: 0; min-width: 0; }
.article-layout > .article-header { grid-column: 1 / -1; margin-bottom: clamp(40px, 5vw, 72px); }
.article-header__text { max-width: 940px; }
.article-cat { display: flex; gap: 6px; }
.article-cat .wp-block-post-terms__separator { display: none; }
.article-cat a { background: var(--wp--preset--color--pink-100); color: var(--wp--preset--color--primary-deep); }
.article-author__photo { margin: 0; flex: none; }
.article-author__photo img { border: 3px solid var(--wp--preset--color--pink-100); }
.article-author a { color: var(--wp--preset--color--ink); }
.article-date.is-published::before { content: "Δημοσίευση: "; }
.article-date.is-modified::before { content: "Ενημέρωση: "; }
.article-date time { color: var(--wp--preset--color--ink); font-weight: 600; }
.article-image { margin: 0; max-height: 560px; background: var(--wp--preset--color--sand); border-radius: 40px; overflow: hidden; }
.article-image img { max-height: 560px; }

.article-aside { grid-column: 2; grid-row: 2 / span 200; align-self: start; position: sticky; top: 110px; }
.article-cta { margin-top: 56px !important; }
.article-author-box { margin-top: 20px !important; }
.article-disclaimer { margin-top: 24px !important; }

/* Body text: works for block content and for older classic/Elementor HTML */
.article-content { color: var(--wp--preset--color--body); font-size: var(--wp--preset--font-size--prose); line-height: 1.75; }
.article-content > * { margin-block: 0 20px; }
.article-content h2 {
	font-size: var(--wp--preset--font-size--xl); line-height: 1.18; letter-spacing: -0.01em;
	margin: 56px 0 18px; scroll-margin-top: 110px;
}
.article-content > h2:first-child { margin-top: 0; }
.article-content h3 { font-family: inherit; font-size: 22px; font-weight: 700; line-height: 1.3; letter-spacing: 0; margin: 36px 0 12px; }
.article-content strong { color: var(--wp--preset--color--ink); font-weight: 700; }
.article-content a { text-decoration: underline; text-underline-offset: 3px; }
.article-content ul:not([class*="is-style-"]) { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.article-content ul:not([class*="is-style-"]) > li { position: relative; padding-left: 23px; line-height: 1.65; }
.article-content ul:not([class*="is-style-"]) > li::before {
	content: ""; position: absolute; left: 0; top: .62em;
	width: 9px; height: 9px; border-radius: 50%; background: var(--wp--preset--color--primary);
}
.article-content ol:not([class*="is-style-"]) { padding-left: 1.3em; }
.article-content ol:not([class*="is-style-"]) > li + li { margin-top: 8px; }
.article-content .wp-block-details > summary { font-size: 19px; }
.article-content .wp-block-details p { font-size: 18px; line-height: 1.7; }
.article-content img { border-radius: 28px; }

/* Table of contents */
.m-toc { background: var(--wp--preset--color--sand); border-radius: 28px; padding: 24px 18px; }
.m-toc__title { list-style: none; padding: 0 10px 10px; font-size: 14px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--wp--preset--color--primary-dark); }
.m-toc__title::-webkit-details-marker { display: none; }
.m-toc__list { list-style: none; margin: 0; padding: 0; }
.m-toc__list a { display: block; padding: 9px 12px; border-radius: 14px; font-size: 16px; line-height: 1.35; font-weight: 500; color: var(--wp--preset--color--muted); }
.m-toc__list a:hover { background: #fff; color: var(--wp--preset--color--primary-dark); text-decoration: none; }
@media (prefers-reduced-motion: no-preference) { html:has(.m-toc) { scroll-behavior: smooth; } }

.related .wp-block-post-title { font-size: 24px !important; }

@media (max-width: 999px) {
	.article-layout { grid-template-columns: minmax(0, 1fr); }
	.article-layout > *, .article-layout > .article-header { grid-column: 1; }
	/* Contents first (collapsible), sidebar CTA dropped: the article CTA follows the text. */
	.article-aside { position: static; grid-row: auto; order: -1; margin-bottom: 32px; }
	.article-layout > .article-header { order: -2; }
	.article-aside .sidebar-cta { display: none; }
	.m-toc { border-radius: 24px; padding: 0 22px; }
	.m-toc__title { cursor: pointer; padding: 18px 0; font-size: 18px; letter-spacing: 0; text-transform: none; color: var(--wp--preset--color--ink); }
	.m-toc__list { padding-bottom: 14px; }
	.article-image { border-radius: 28px; }
}
/* TOC: collapsed <details> on mobile, always expanded on desktop (::details-content where supported). */
@supports selector(::details-content) {
	@media (min-width: 1000px) {
		.m-toc__details::details-content { content-visibility: visible; display: block; block-size: auto; }
		.m-toc__title { pointer-events: none; cursor: default; }
	}
}
.article-read::after { content: " ανάγνωση"; }

/* ───────────── Contact ───────────── */

.contact-intro__grid.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); align-items: start; }
.contact-intro__lead, .contact-intro ul.is-style-contact-cards, .contact-note { max-width: 560px; }

ul.is-style-contact-cards { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
ul.is-style-contact-cards a {
	position: relative;
	display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; column-gap: 16px; align-items: center;
	padding: 14px 20px; border-radius: 24px;
	background: #fff; box-shadow: 0 6px 18px rgba(90, 30, 60, .06);
	color: var(--wp--preset--color--subtle); font-size: 15px; line-height: 1.3;
}
ul.is-style-contact-cards a::before {
	content: ""; grid-row: 1 / span 2; width: 46px; height: 46px; border-radius: 50%;
	background: var(--wp--preset--color--pink-100) var(--m-row-icon) center / 18px no-repeat;
}
ul.is-style-contact-cards a::after { content: "→"; grid-column: 3; grid-row: 1 / span 2; color: var(--wp--preset--color--primary-dark); font-weight: 700; }
ul.is-style-contact-cards a br { display: none; }
ul.is-style-contact-cards strong { grid-column: 2; color: var(--wp--preset--color--ink); font-size: 19px; font-weight: 700; }
ul.is-style-contact-cards a:hover { background: var(--wp--preset--color--pink-100); text-decoration: none; }
.contact-note strong { color: var(--wp--preset--color--ink); }

/* Icon list (clinic cards on the contact page) */
ul.is-style-icon-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; font-size: 18px; }
ul.is-style-icon-list li { display: flex; gap: 12px; align-items: flex-start; }
ul.is-style-icon-list li::before { content: ""; flex: none; width: 18px; height: 18px; margin-top: 5px; background: var(--m-row-icon) center / 18px no-repeat; }
ul.is-style-icon-list li a { color: var(--wp--preset--color--ink); font-weight: 700; }
ul.is-style-icon-list li.is-address::before, ul.is-style-icon-list li:has(a[href*="map"])::before { --m-row-icon: var(--m-pin-pink); }

/* shared magenta icons for list styles */
:root {
	--m-pin-pink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c42f8a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--m-phone-pink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c42f8a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	--m-mail-pink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c42f8a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
}
ul.is-style-contact-cards a, ul.is-style-icon-list li { --m-row-icon: var(--m-phone-pink); }
ul.is-style-contact-cards a[href^="mailto:"], ul.is-style-icon-list li:has(a[href^="mailto:"]) { --m-row-icon: var(--m-mail-pink); }

.clinic-card__map { border-radius: 0; margin: 0 !important; }

/* Contact Form 7 inside the card */
.contact-form-card .wpcf7-form { gap: 18px; }
.cf7-clinic { border: 0; margin: 0; padding: 6px; border-radius: 999px; background: var(--wp--preset--color--sand); }
.cf7-clinic .wpcf7-radio { display: flex; gap: 6px; }
.cf7-clinic .wpcf7-list-item { flex: 1; margin: 0; }
.cf7-clinic label { display: block; cursor: pointer; }
.cf7-clinic input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cf7-clinic .wpcf7-list-item-label {
	display: block; text-align: center;
	padding: 12px 14px; border-radius: 999px;
	font-weight: 700; font-size: 17px; color: var(--wp--preset--color--muted);
}
.cf7-clinic label:hover .wpcf7-list-item-label { background: rgba(255, 255, 255, .6); }
.cf7-clinic input:checked + .wpcf7-list-item-label { background: var(--wp--preset--color--primary); color: #fff; }
.cf7-clinic input:focus-visible + .wpcf7-list-item-label { outline: 2px solid var(--wp--preset--color--primary); outline-offset: 2px; }
.wpcf7-form .cf7-field { display: flex; flex-direction: column; gap: 8px; }
.wpcf7-form .cf7-field .wpcf7-form-control-wrap { display: block; }
.cf7-req { color: var(--wp--preset--color--primary-dark); }
.cf7-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 18px; }
.wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.cf7-note { font-size: 15px; color: var(--wp--preset--color--subtle); }
.wpcf7 form.sent > :not(.wpcf7-response-output) { display: none; }
.wpcf7 form.sent .wpcf7-response-output {
	padding: 24px 24px 24px 84px !important; position: relative;
	font-size: 19px; line-height: 1.5; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--pink-100);
}
.wpcf7 form.sent .wpcf7-response-output::before {
	content: "✓"; position: absolute; left: 20px; top: 50%; transform: translateY(-50%);
	width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: var(--wp--preset--color--primary); color: #fff; font-size: 24px; font-weight: 700;
}

/* ───────────── Biography ───────────── */

.bio-hero { background: linear-gradient(180deg, var(--wp--preset--color--pink-50) 0%, #fff 100%); }
.bio-hero__photo { flex: 1 1 300px; max-width: 420px; margin: 0; }
.bio-hero__photo img { width: 100%; border: 10px solid var(--wp--preset--color--pink-100); background: var(--wp--preset--color--sand); }
.bio-hero__text { flex: 1 1 460px; min-width: 0; }
ul.is-style-tags { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
ul.is-style-tags li { padding: 9px 18px; border-radius: 999px; background: var(--wp--preset--color--pink-200); color: var(--wp--preset--color--primary-ink); font-weight: 700; font-size: 16px; }
ul.is-style-tags li:nth-child(n + 3) { background: var(--wp--preset--color--sand); color: var(--wp--preset--color--ink); }

.timeline { display: flex; flex-direction: column; }
.timeline__item {
	display: grid; grid-template-columns: minmax(110px, 150px) minmax(0, 1fr); column-gap: 20px;
	padding: 22px 0; border-bottom: 1px solid var(--wp--preset--color--sand-line);
	margin: 0 !important;
}
.timeline__item > * { margin: 0 !important; grid-column: 2; }
.timeline__item > .timeline__key { grid-column: 1; grid-row: 1 / span 2; font-weight: 800; color: var(--wp--preset--color--primary-dark); }
.timeline__title { font-weight: 700; font-size: 19px; }
.timeline__text { color: var(--wp--preset--color--muted); font-size: 17px; }
@media (max-width: 599px) {
	.timeline__item { grid-template-columns: minmax(0, 1fr); }
	.timeline__item > .timeline__key { grid-column: 1; grid-row: auto; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
	.timeline__item > * { grid-column: 1; }
}

.bio-story > :not(h2) { max-width: 760px; margin-left: max(0px, calc((100% - 1232px) / 2)) !important; margin-right: auto !important; }
.bio-story__p { font-size: var(--wp--preset--font-size--prose); line-height: 1.75; color: var(--wp--preset--color--body); }
.bio-story > h2 { margin-bottom: 18px; }
.partner-cards.is-layout-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.partner-card .wp-block-image { margin: 0; flex: none; }
.wpcf7 .hidden-fields-container { display: none; }

/* Footer columns wrap (4 → 3 → 2 → 1) instead of squeezing; contact pills never break. */
.footer-cols.wp-block-columns {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 36px !important;
}
.footer-cols > .wp-block-column { flex-basis: auto !important; min-width: 0; }
ul.is-style-contact-links a { white-space: nowrap; }
@media (max-width: 360px) { ul.is-style-contact-links a { white-space: normal; } }

/* "Νέο" badge on a menu item (add the CSS class "is-new" to the link in the Navigation editor). */
.wp-block-navigation-item.is-new .wp-block-navigation-item__label::before {
	content: "Νέο";
	display: inline-flex; align-items: center;
	margin-right: 8px; padding: 3px 8px; border-radius: 999px;
	background: var(--wp--preset--color--primary); color: #fff;
	font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; line-height: 1.2;
	vertical-align: 2px;
}
.wp-block-navigation.is-style-sidebar .is-new .wp-block-navigation-item__label::before { font-size: 10px; padding: 2px 7px; }
.page-404 > * { max-width: 760px; margin-left: max(0px, calc((100% - 1232px) / 2)) !important; margin-right: auto !important; }
