/*
Theme Name: Adriana Blaj (Child Theme)
Template: manifold-theme
Description: This is a custom theme developed for your business by manifold.ro.
Requires Manifold: 1.0
Version: 1.0.1
Text Domain: adriana-blaj
*/

/* Design tokens live in theme.json. Add project CSS only if a token can't express it. */

/* ==========================================================================
   Header — glass floating pill (desktop) / solid bar + hamburger (mobile)
   Design "Salvie & in". Styling that theme.json can't express, pinned to
   classes so Gutenberg re-saves can't strip it.
   ========================================================================== */

/* The template-part wrapper must not create a 72px-tall containing block, or
   position:sticky can't travel the page — dissolve it into the body flow. */
header.wp-block-template-part { display: contents; }

/* Kill WP's root block-gap on <main> so the header/hero overlap is exact math
   (bar height = negative margin), not luck. */
main.wp-block-group { margin-block-start: 0; }

/* Floating wrapper: sticky pill, 1200px, offset 16px from top.
   Shrinks to 1020px past 40px of scroll (.is-scrolled via header-scroll.js).
   margin-bottom -88px slides every page's hero underneath the pill.
   NOTE: the entrance animation lives on the BAR, never on this wrapper — a
   fill-mode:both animation keeps a resolved transform (identity matrix) on the
   element forever, and any transform on an ANCESTOR disables the bar's
   backdrop-filter in Chromium. Self-transform on the bar is safe. */
.ab-header {
	position: sticky;
	top: 16px;
	z-index: 20;
	width: min(1200px, calc(100% - 2 * var(--wp--preset--spacing--40)));
	margin-inline: auto;
	margin-bottom: -72px; /* = bar height; hero lands at exactly y0 under the pill */
	transition: width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.ab-header.is-scrolled {
	width: min(1020px, calc(100% - 2 * var(--wp--preset--spacing--40)));
}

/* The pill bar itself: glass background + blur + shadow. */
.ab-header__bar {
	min-height: 72px;
	padding: 0 14px 0 30px;
	background: rgba(247, 244, 236, 0.6);
	-webkit-backdrop-filter: blur(22px) saturate(1.4);
	backdrop-filter: blur(22px) saturate(1.4);
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: var(--wp--custom--radius--pill);
	box-shadow: 0 8px 32px rgba(43, 46, 35, 0.18);
	animation: ab-fade-down 0.7s ease-out both;
}

/* Wordmark (site title). */
.ab-header .wp-block-site-title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	font-size: 20px;
	line-height: 1;
}
.ab-header .wp-block-site-title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

/* Desktop nav links (native wp:navigation). Positioned by the bar's
   space-between layout — matches the design handoff (no forced centering). */
.ab-header .ab-nav .wp-block-navigation__container {
	gap: 30px;
	font-size: 15px;
	font-weight: 600;
	flex-wrap: nowrap;
}
.ab-header .ab-nav .wp-block-navigation-item__content {
	color: #494e41;
	text-decoration: none;
	transition: color 0.2s;
}
.ab-header .ab-nav .wp-block-navigation-item__content:hover,
.ab-header .ab-nav .wp-block-navigation-item__content:focus {
	color: var(--wp--preset--color--primary);
}
.ab-header .ab-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
}
/* The CTA menu item exists for the mobile overlay only — hidden on desktop. */
.ab-header .ab-nav .wp-block-navigation-item.ab-nav__cta { display: none; }

/* Desktop CTA pill (native wp:button, far right). */
.ab-header__cta-wrap { flex: none; margin: 0; }
.ab-header .ab-header__cta .wp-block-button__link {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 600;
	font-size: 14px;
	line-height: 1;
	text-decoration: none;
	border: 0;
	border-radius: var(--wp--custom--radius--pill);
	padding: 13px 24px;
	transition: background 0.2s;
}
.ab-header .ab-header__cta .wp-block-button__link:hover,
.ab-header .ab-header__cta .wp-block-button__link:focus {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Hamburger toggle: styled here, shown only at the mobile breakpoint below. */
.ab-header .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--contrast);
}

/* Reduced motion. */
@media (prefers-reduced-motion: reduce) {
	.ab-header { animation: none; transition: none; }
}

/* ------- Mobile: same glass floating pill, hamburger accordion ------- */
@media (max-width: 781px) {
	.ab-header {
		top: 12px;
		width: calc(100% - 24px);
		margin-bottom: -60px; /* = mobile bar height; hero lands at exactly y0 */
	}
	.ab-header.is-scrolled { width: calc(100% - 48px); }
	.ab-header__bar {
		position: relative;
		min-height: 60px;
		padding: 0 8px 0 20px;
	}
	.ab-header .wp-block-site-title { font-size: 17px; }
}

/* ---- Mobile nav: switch at 781px to match the pill's own breakpoint.
   WP's Navigation overlay defaults to 600px, so we force the hamburger on
   (and hide the inline list) between 600–781px too. ---- */
@media (max-width: 781px) {
	.ab-header .wp-block-navigation__responsive-container-open { display: flex; }
	.ab-header .ab-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }

	/* No CTA anywhere on mobile (bar or menu). Extra specificity: WP's generated
	   layout rules (.wp-block-buttons-is-layout-flex) print later and win ties. */
	.ab-header .ab-header__bar .ab-header__cta-wrap { display: none; }

	/* The pill bar is the positioning context so the card spans its full width. */
	.ab-header .ab-header__bar { position: relative; }
	.ab-header .ab-nav { position: static; }
	.ab-header .ab-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { position: static; }

	/* Hamburger drawn like local's (three 22×2 bars, 5px gaps). */
	.ab-header .wp-block-navigation__responsive-container-open {
		padding: 0;
		width: 44px;
		height: 44px;
		align-items: center;
		justify-content: center;
	}
	.ab-header .wp-block-navigation__responsive-container-open svg { display: none; }
	.ab-header .wp-block-navigation__responsive-container-open::before {
		content: "";
		width: 22px;
		height: 2px;
		background: var(--wp--preset--color--contrast);
		box-shadow: 0 7px 0 var(--wp--preset--color--contrast), 0 14px 0 var(--wp--preset--color--contrast);
		transform: translateY(-7px);
	}
	/* While the menu is open the X takes the hamburger's place. */
	.ab-header .ab-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open { visibility: hidden; }

	/* Floating glass card below the pill — same as local. */
	.ab-header .wp-block-navigation__responsive-container.is-menu-open {
		position: absolute;
		top: calc(100% + 8px);
		right: 0;
		left: 0;
		bottom: auto;
		width: auto;
		height: auto;
		min-height: 0;
		padding: 8px 20px 16px;
		background: rgba(247, 244, 236, 0.92) !important;
		-webkit-backdrop-filter: blur(22px) saturate(1.4);
		backdrop-filter: blur(22px) saturate(1.4);
		border: 1px solid rgba(255, 255, 255, 0.45);
		border-radius: var(--wp--custom--radius--lg);
		box-shadow: 0 8px 32px rgba(43, 46, 35, 0.18);
		overflow: visible;
	}
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding: 0 !important;
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
	}
	/* WP's overlay rules carry .is-menu-open chains + a generated blockGap rule —
	   match their specificity and force the contested properties. */
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		flex-direction: column;
		align-items: stretch !important;
		justify-content: flex-start;
		gap: 0 !important;
		font-size: 16px;
		width: 100%;
	}
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		width: 100%;
		border-bottom: 1px solid #eeeae0;
	}
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:last-child { border-bottom: 0; }
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block;
		width: 100%;
		box-sizing: border-box;
		color: var(--wp--preset--color--contrast);
		font-weight: 600;
		padding: 12px 4px !important;
		text-align: left;
	}

	/* CTA pill at the foot of the overlay — same as local. */
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.ab-nav__cta {
		display: block;
		margin-top: 12px;
		border-bottom: 0;
	}
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .ab-nav__cta .wp-block-navigation-item__content {
		background: var(--wp--preset--color--primary);
		color: var(--wp--preset--color--base) !important;
		border-radius: var(--wp--custom--radius--pill);
		padding: 14px !important;
		text-align: center;
	}

	/* Close (X) sits where the hamburger was, inside the bar. WP makes the inner
	   dialog position:relative — flatten it so the X anchors to the card. */
	.ab-header .is-menu-open .wp-block-navigation__responsive-dialog {
		position: static;
		margin: 0 !important; /* WP adds a 46px admin-bar offset when logged in */
	}
	.ab-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position: absolute !important;
		top: -60px !important;
		right: 8px !important;
		left: auto !important;
		width: 44px;
		height: 44px;
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--wp--preset--color--contrast);
	}
}

/* ==========================================================================
   Shared entrance keyframes (used by header + hero).
   ========================================================================== */
@keyframes ab-fade-down {
	from { opacity: 0; transform: translateY(-16px); }
	to   { opacity: 1; transform: none; }
}
@keyframes ab-fade-up {
	from { opacity: 0; transform: translateY(24px); }
	to   { opacity: 1; transform: none; }
}
@keyframes ab-hero-settle {
	from { transform: scale(1.06); }
	to   { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	[class*="ab-"] { animation: none !important; }
}

/* ==========================================================================
   Shared helpers (used across homepage sections).
   ========================================================================== */
.ab-eyebrow {
	margin: 0;
	font-size: var(--wp--preset--font-size--sm);
	letter-spacing: 2.5px;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}
.ab-btn {
	display: inline-block;
	text-decoration: none;
	font-weight: 600;
	line-height: 1;
	border-radius: var(--wp--custom--radius--pill);
	transition: background 0.2s, color 0.2s;
}
.ab-btn--primary {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	padding: 13px 26px;
	font-size: 15px;
}
.ab-btn--primary:hover,
.ab-btn--primary:focus {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* ==========================================================================
   Hero — full-bleed photo + ivory overlay card + glass chips (desktop);
   photo then stacked content (mobile).
   ========================================================================== */
/* Full-bleed via WP's native .alignfull (root-padding-aware, scrollbar-safe);
   the section carries the alignfull class in the pattern markup. */
.ab-hero {
	position: relative;
	height: 720px;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}
/* Photo (wp:image) — absolute cover with a slow settle-zoom. */
.ab-hero > .wp-block-image {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 0;
	height: 100%;
	animation: ab-hero-settle 2.4s ease-out both;
}
.ab-hero > .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* The subject sits in the right third of the hero photo (clear of the card on
   desktop) — when the cover crop narrows (tablet/mobile), keep them centered
   in frame by biasing the crop focus to that third. The credential chips only
   have clear room on wide desktop; below 1200 they collide with the card. */
@media (max-width: 1200px) {
	.ab-hero > .wp-block-image img { object-position: 88% center; }
	.ab-hero .ab-hero__chips { display: none; }
}
/* Scrim overlay (pseudo-element — no extra block needed). */
.ab-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		to bottom,
		rgba(43, 46, 35, 0.28) 0%,
		rgba(43, 46, 35, 0) 32%,
		rgba(43, 46, 35, 0) 55%,
		rgba(43, 46, 35, 0.22) 100%
	);
}
/* Glass content card (block group), floating bottom-left.
   Self-transform from the entrance animation is safe for its own backdrop-filter. */
.ab-hero__card {
	position: absolute;
	left: 120px;
	bottom: 44px;
	z-index: 2;
	max-width: 600px;
	background: rgba(247, 244, 236, 0.6);
	-webkit-backdrop-filter: blur(22px) saturate(1.4);
	backdrop-filter: blur(22px) saturate(1.4);
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: var(--wp--custom--radius--lg);
	padding: 44px 48px 48px;
	box-shadow: 0 8px 32px rgba(43, 46, 35, 0.18);
	animation: ab-fade-up 0.9s ease-out 0.25s both;
}
.ab-hero__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--4-xl); /* WP kebabs digit-leading slugs: 4xl -> 4-xl */
	line-height: 1.08;
	color: var(--wp--preset--color--contrast);
}
.ab-hero__lead {
	margin: 0;
	font-size: var(--wp--preset--font-size--lg);
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}
.ab-hero__actions { margin-top: 6px; }
/* Hero CTA sizing (slightly tighter than the global button default). */
.ab-hero__actions .wp-block-button__link {
	padding: 13px 26px;
	font-size: 15px;
}
.ab-hero__link { margin: 0; font-weight: 600; font-size: 15px; }
.ab-hero__link a {
	color: var(--wp--preset--color--contrast);
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: color 0.2s;
}
.ab-hero__link a:hover,
.ab-hero__link a:focus { color: var(--wp--preset--color--primary); }
/* Glass credential chips, bottom-right. */
.ab-hero__chips {
	position: absolute;
	right: 48px;
	bottom: 44px;
	z-index: 2;
	align-items: flex-end;
	pointer-events: none;
}
.ab-chip {
	margin: 0;
	background: rgba(43, 46, 35, 0.45);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: var(--wp--custom--radius--pill);
	padding: 11px 20px;
	color: var(--wp--preset--color--base);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
}
.ab-hero__chip-row .ab-chip:nth-child(1) { animation: ab-fade-up 0.7s ease-out 0.6s both; }
.ab-hero__chip-row .ab-chip:nth-child(2) { animation: ab-fade-up 0.7s ease-out 0.75s both; }
.ab-chip--wide { animation: ab-fade-up 0.7s ease-out 0.9s both; }

/* Hero mobile: photo on top, content stacked below, no overlay/chips. */
@media (max-width: 781px) {
	.ab-hero {
		height: auto;
		margin-top: 0;
	}
	.ab-hero > .wp-block-image { position: static; aspect-ratio: 3 / 4; height: auto; animation: none; }
	.ab-hero::before { display: none; }
	.ab-hero { background: var(--wp--preset--color--base); }
	.ab-hero__card {
		position: static;
		margin: 0; /* kill WP's flow-gap margin — no strip between photo and card */
		max-width: none;
		padding: 28px 20px 36px;
		background: var(--wp--preset--color--base);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		border-bottom: 1px solid var(--wp--preset--color--surface);
		animation: none;
	}
	.ab-hero__actions { flex-direction: column; align-items: stretch; }
	.ab-hero__actions .wp-block-buttons,
	.ab-hero__actions .wp-block-button,
	.ab-hero__actions .wp-block-button__link { width: 100%; text-align: center; }
	.ab-hero__link { text-align: center; padding: 10px; }
	/* Extra specificity: WP's generated flex-layout rule (display:flex) prints
	   after the child stylesheet and would beat a single-class display:none. */
	.ab-hero .ab-hero__chips { display: none; }
}

/* ==========================================================================
   Homepage sections. Shared: .ab-link underlined links, section paddings.
   ========================================================================== */
.ab-link { margin: 0; font-weight: 600; font-size: 15px; }
.ab-link a {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: color 0.2s;
}
.ab-link a:hover,
.ab-link a:focus { color: var(--wp--preset--color--contrast); }

/* --- Bio teaser ------------------------------------------------------- */
.ab-bio {
	border-top: 1px solid var(--wp--preset--color--surface);
	padding-block: var(--wp--preset--spacing--80);
}
.ab-bio > * + * { margin-top: 18px; }
.ab-bio__lead {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--2-xl);
	line-height: 1.55;
	max-width: 760px;
	margin-inline: auto;
	color: var(--wp--preset--color--contrast);
	text-wrap: pretty;
}

/* --- Specialty cards --------------------------------------------------- */
.ab-specialties { padding-block: var(--wp--preset--spacing--80); }
.ab-specialties .ab-eyebrow { margin-bottom: 28px; }
.ab-card {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--lg);
	padding: 40px;
	height: 100%;
	transition: box-shadow 0.2s;
}
.ab-card:hover { box-shadow: 0 6px 24px rgba(51, 55, 43, 0.12); }
.ab-card__badge {
	margin: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
}
.ab-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--2-xl);
	font-weight: 400;
}
.ab-card__text {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}

/* --- Josephine Clinique row ------------------------------------------- */
.ab-clinique { padding-block: 72px; }
/* Clinic logo: the inline SVG has no width/height attrs, so in the flex row
   the figure collapses to 0 — pin a fixed basis and size the img to it. */
.ab-clinique__row > .wp-block-image {
	flex: 0 0 220px;
	margin: 0;
}
.ab-clinique__row > .wp-block-image img {
	width: 100%;
	height: auto;
	display: block;
}
.ab-clinique__title { margin: 0; font-size: 22px; font-weight: 400; }
.ab-clinique__text {
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
	max-width: 680px;
}

/* --- Testimonials ------------------------------------------------------ */
.ab-testimonials {
	border-top: 1px solid var(--wp--preset--color--surface);
	padding-block: var(--wp--preset--spacing--80);
}
.ab-testimonials .ab-eyebrow { margin-bottom: 28px; }
.ab-quote-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--lg);
	padding: 32px;
	height: 100%;
}
.ab-quote-card__glyph {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 40px;
	line-height: 0.4;
	color: var(--wp--preset--color--accent);
}
.ab-quote-card__quote {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
	font-style: italic;
}
.ab-quote-card__author {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

/* --- Articles (Query Loop cards) --------------------------------------- */
.ab-articles { padding-block: var(--wp--preset--spacing--80); }
.ab-articles__head { margin-bottom: 28px; }
.ab-articles__grid { gap: 28px; }
.ab-post-card {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--lg);
	overflow: hidden;
	height: 100%;
	transition: box-shadow 0.2s;
}
.ab-post-card:hover { box-shadow: 0 6px 24px rgba(51, 55, 43, 0.12); }
.ab-post-card__media { margin: 0; }
.ab-post-card__media img { width: 100%; height: 190px; object-fit: cover; display: block; }
.ab-post-card__body { padding: 26px 28px 28px; }
.ab-post-card__cat,
.ab-post-card__cat a {
	font-size: 12px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}
.ab-post-card__title { margin: 0; font-size: 20px; line-height: 1.35; font-weight: 400; }
.ab-post-card__title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ab-post-card__title a:hover { color: var(--wp--preset--color--primary); }
.ab-post-card__excerpt { margin: 0; font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--muted); }
.ab-post-card__excerpt .wp-block-post-excerpt__more-text { display: none; }
.ab-post-card__foot { margin-top: 4px; width: 100%; }
.ab-post-card__date { font-size: 13px; color: var(--wp--custom--color--faint); }
.ab-post-card__more {
	font-weight: 600;
	font-size: 14px;
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.ab-post-card__more:hover { color: var(--wp--preset--color--contrast); }
.ab-articles__empty {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--lg);
	color: var(--wp--preset--color--muted);
	padding-block: var(--wp--preset--spacing--60);
}

/* --- Contact / final CTA ----------------------------------------------- */
.ab-contact { padding-block: var(--wp--preset--spacing--80); }
.ab-contact__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--3-xl);
	font-weight: 400;
	line-height: 1.2;
	color: var(--wp--preset--color--base);
}
.ab-eyebrow--accent { color: var(--wp--preset--color--accent); }
.ab-contact__lead { margin: 0; font-size: 17px; line-height: 1.6; color: #d8dbc9; }
.ab-contact__list { margin-top: 8px; }
.ab-contact__list p { margin: 0; font-size: 15px; color: var(--wp--preset--color--base); }
.ab-contact__list strong { color: var(--wp--preset--color--accent); font-weight: 700; margin-right: 12px; }
.ab-contact__list a {
	color: var(--wp--preset--color--base);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ab-contact__list a:hover { color: var(--wp--preset--color--accent); }

/* Form card — Fluent Forms ([fluentform id="3"]) styled to the design. */
.ab-contact__form-col .fluentform,
.ab-prog__form .fluentform {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--lg);
	padding: 40px;
}
.fluentform .ff-el-group { margin-bottom: 16px; }
.fluentform .ff-el-input--label label {
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	margin-bottom: 6px;
}
.fluentform .ff-el-form-control {
	width: 100%;
	border: 1.5px solid var(--wp--custom--color--border);
	border-radius: var(--wp--custom--radius--md);
	background: #fff;
	padding: 13px 16px;
	font-size: 15px;
	font-family: var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--contrast);
	outline: none;
	box-shadow: none;
}
.fluentform .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--primary);
	box-shadow: none;
}
.fluentform textarea.ff-el-form-control { resize: none; min-height: 110px; }
/* GDPR checkbox row. */
.fluentform .ff-el-tc {
	font-size: 13px;
	color: var(--wp--preset--color--muted);
}
.fluentform .ff-el-tc input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--wp--preset--color--primary);
}
.fluentform .ff-el-tc a { color: var(--wp--preset--color--primary); }
/* Submit: full-width primary pill. */
.fluentform .ff-btn-submit {
	width: 100%;
	background: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
	font-weight: 600;
	font-size: 16px;
	border: none;
	border-radius: var(--wp--custom--radius--pill);
	padding: 15px;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--body);
	transition: background 0.2s;
}
.fluentform .ff-btn-submit:hover,
.fluentform .ff-btn-submit:focus { background: var(--wp--preset--color--contrast) !important; }
/* Validation + confirmation messages. */
.fluentform .ff-el-is-error .ff-el-form-control { border-color: #a4442c; }
.fluentform .error.text-danger,
.fluentform .ff-el-error-message { color: #a4442c; font-size: 13px; }
.ff-message-success {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--lg);
	padding: 40px;
	font-weight: 600;
	font-size: 17px;
	color: var(--wp--preset--color--primary);
	box-shadow: none;
	border: 0;
}

/* --- Homepage sections: mobile ----------------------------------------- */
@media (max-width: 781px) {
	.ab-bio,
	.ab-specialties,
	.ab-testimonials,
	.ab-articles,
	.ab-contact { padding-block: 52px; }
	.ab-clinique { padding-block: 40px; }
	.ab-clinique__row { flex-wrap: wrap; }
	.ab-card { padding: 28px; }
	/* Testimonials: swipeable snap row. */
	.ab-testimonials__grid {
		display: flex;
		flex-wrap: nowrap !important;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 16px !important;
	}
	.ab-testimonials__grid > .wp-block-column {
		flex: 0 0 85%;
		scroll-snap-align: center;
	}
	.ab-contact__form-col .fluentform,
	.ab-prog__form .fluentform { padding: 24px 20px; }
}

/* ==========================================================================
   Interior pages — page hero (520px), prose, values, timeline, specialties,
   integrative, blog index, article detail, noutăți, programare, CTA band.
   ========================================================================== */

/* Active nav/chip state (set by header-scroll.js; WP also marks current-menu-item). */
.ab-header .ab-nav a.is-active,
.ab-header .ab-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.ab-footer__nav a.is-active { color: var(--wp--preset--color--base); }

/* --- Page hero (all interior pages) ------------------------------------ */
.ab-phero {
	position: relative;
	height: 520px;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}
.ab-phero > .wp-block-image,
.ab-phero > .wp-block-post-featured-image {
	position: absolute;
	inset: 0;
	margin: 0;
	z-index: 0;
	height: 100%;
	animation: ab-hero-settle 2.4s ease-out both;
}
.ab-phero > .wp-block-image img,
.ab-phero > .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ab-phero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		to bottom,
		rgba(43, 46, 35, 0.3) 0%,
		rgba(43, 46, 35, 0) 40%,
		rgba(43, 46, 35, 0) 60%,
		rgba(43, 46, 35, 0.18) 100%
	);
}
.ab-phero__card {
	position: absolute;
	left: 120px;
	bottom: 40px;
	z-index: 2;
	max-width: 620px;
	background: rgba(247, 244, 236, 0.6);
	-webkit-backdrop-filter: blur(22px) saturate(1.4);
	backdrop-filter: blur(22px) saturate(1.4);
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: var(--wp--custom--radius--lg);
	padding: 40px 48px 44px;
	box-shadow: 0 8px 32px rgba(43, 46, 35, 0.18);
	animation: ab-fade-up 0.9s ease-out 0.25s both;
}
.ab-phero__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	font-size: clamp(2rem, 1.65rem + 1.5vw, 3rem);
	line-height: 1.08;
	color: var(--wp--preset--color--contrast);
}
.ab-phero__lead {
	margin: 0;
	font-size: 17px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}
.ab-phero__actions { margin-top: 6px; }
.ab-phero__actions .wp-block-button__link { padding: 13px 26px; font-size: 15px; }

/* --- Prose columns (Parcursul meu / essay) ------------------------------ */
.ab-prose { padding-block: var(--wp--preset--spacing--80); }
.ab-prose__open {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 24px;
	line-height: 1.55;
	color: var(--wp--preset--color--contrast);
	text-wrap: pretty;
}
.ab-prose__p {
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--muted);
}
.ab-essay__h {
	margin: 48px 0 0;
	font-size: var(--wp--preset--font-size--2-xl);
	font-weight: 400;
	color: var(--wp--preset--color--primary);
}

/* --- Values grid (Cine sunt eu) ---------------------------------------- */
.ab-values { padding-block: var(--wp--preset--spacing--80); }
.ab-values .ab-eyebrow { margin-bottom: 28px; }
.ab-value-card {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--lg);
	padding: 32px;
	height: 100%;
}
.ab-value-card .ab-card__badge { width: 44px; height: 44px; }
.ab-value-card__title { margin: 0; font-size: 20px; font-weight: 400; }
.ab-value-card__text { margin: 0; font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--muted); }

/* --- Credentials timeline ----------------------------------------------- */
.ab-cred { padding-block: var(--wp--preset--spacing--80); }
.ab-cred .ab-eyebrow { margin-bottom: 40px; }
.ab-timeline { max-width: 860px; margin-inline: auto; }
.ab-timeline__row {
	display: grid;
	grid-template-columns: 180px 32px 1fr;
	gap: 24px;
	padding-bottom: 40px;
}
.ab-timeline__year {
	text-align: right;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 20px;
	color: var(--wp--preset--color--primary);
	line-height: 1.2;
}
.ab-timeline__rail { position: relative; display: flex; justify-content: center; }
.ab-timeline__dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	flex: none;
	margin-top: 5px;
	z-index: 1;
}
.ab-timeline__dot--accent { background: var(--wp--preset--color--accent); }
.ab-timeline__row:not(.ab-timeline__row--last) .ab-timeline__rail::after {
	content: "";
	position: absolute;
	top: 19px;
	bottom: -40px;
	width: 2px;
	background: var(--wp--custom--color--border);
}
.ab-timeline__body strong { display: block; font-size: 17px; color: var(--wp--preset--color--contrast); }
.ab-timeline__body span { display: block; font-size: 15px; color: var(--wp--preset--color--muted); margin-top: 2px; }

/* --- Specialty photo cards ---------------------------------------------- */
.ab-spec { padding-block: 72px var(--wp--preset--spacing--80); }
.ab-spec-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--lg);
	overflow: hidden;
	display: grid !important;
	grid-template-columns: 460px 1fr;
}
.ab-spec-card + .ab-spec-card { margin-top: 32px; }
.ab-spec-card--flip { grid-template-columns: 1fr 460px; }
.ab-spec-card--flip .ab-spec-card__img { order: 2; }
.ab-spec-card__img { margin: 0; height: 100%; min-height: 380px; }
.ab-spec-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ab-spec-card__body { padding: 48px 52px; }
.ab-spec-card__title { margin: 0; font-size: 32px; font-weight: 400; }
.ab-spec-card__p { margin: 0; font-size: 16px; line-height: 1.65; color: var(--wp--preset--color--muted); }
.ab-spec-card__p strong { color: var(--wp--preset--color--contrast); }

/* --- Integrative ecosystem ---------------------------------------------- */
.ab-integr { padding-block: var(--wp--preset--spacing--80); }
.ab-integr__title { margin: 0; font-size: 32px; font-weight: 400; }
.ab-integr__text { margin: 0; font-size: 16px; line-height: 1.65; color: var(--wp--preset--color--muted); }
.ab-pill {
	margin: 0;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--custom--color--border);
	border-radius: var(--wp--custom--radius--pill);
	padding: 11px 20px;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

/* --- Blog index (Articole) ---------------------------------------------- */
.ab-blog { padding-block: 56px var(--wp--preset--spacing--80); }
.ab-chips { margin-bottom: 36px; }
.ab-chip-link { margin: 0; }
.ab-chip-link a {
	display: inline-block;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--custom--color--border);
	border-radius: var(--wp--custom--radius--pill);
	padding: 10px 20px;
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}
.ab-chip-link a:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); }
.ab-chip-link a.is-active {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: #fff;
}
.ab-blog .ab-post-card { background: #fff; }
.ab-blog__empty {
	border: 1.5px dashed var(--wp--custom--color--border);
	border-radius: var(--wp--custom--radius--lg);
	padding: 88px 24px;
	text-align: center;
}
.ab-blog__empty-title { margin: 0; font-size: var(--wp--preset--font-size--2-xl); font-weight: 400; }
.ab-blog__empty-line { margin: 0; font-size: 16px; color: var(--wp--preset--color--muted); }
.wp-block-query-pagination { margin-top: 48px; font-weight: 600; }

/* --- Article detail ------------------------------------------------------ */
.ab-phero--article .ab-phero__card { max-width: 720px; }
.ab-article__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.625rem);
	line-height: 1.15;
}
.ab-article { padding-block: 72px var(--wp--preset--spacing--80); }
.ab-article .wp-block-post-content > p:first-child {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 23px;
	line-height: 1.55;
	color: var(--wp--preset--color--contrast);
}
.ab-article .wp-block-post-content p {
	font-size: 17px;
	line-height: 1.75;
	color: var(--wp--preset--color--muted);
}
.ab-article .wp-block-post-content h2 {
	font-size: 28px;
	font-weight: 400;
	margin-top: 40px;
}
.ab-article .wp-block-post-content blockquote {
	border-left: 3px solid var(--wp--preset--color--accent);
	padding-left: 28px;
	margin: 32px 0;
}
.ab-article .wp-block-post-content blockquote p {
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: 21px;
	line-height: 1.5;
	color: var(--wp--preset--color--contrast);
}
.ab-author {
	margin-top: 56px;
	background: #fff;
	border-radius: var(--wp--custom--radius--lg);
	padding: 28px 32px;
}
.ab-author__photo { margin: 0; width: 72px; height: 72px; border-radius: 50%; overflow: hidden; flex: none; }
.ab-author__photo img { width: 100%; height: 100%; object-fit: cover; }
.ab-author__name { margin: 0; font-size: 20px; font-weight: 400; }
.ab-author__line { margin: 0; font-size: 14px; color: var(--wp--preset--color--muted); }
.ab-related { padding-block: var(--wp--preset--spacing--70); }
.ab-related .ab-eyebrow { margin-bottom: 24px; }
.ab-related__grid { gap: 28px; }
.ab-related-card {
	background: var(--wp--preset--color--base);
	border-radius: var(--wp--custom--radius--lg);
	overflow: hidden;
	display: grid !important;
	grid-template-columns: 200px 1fr;
	transition: box-shadow 0.2s;
}
.ab-related-card:hover { box-shadow: 0 6px 24px rgba(51, 55, 43, 0.12); }
.ab-related-card__media { margin: 0; height: 100%; }
.ab-related-card__media img { width: 100%; height: 100%; min-height: 140px; object-fit: cover; display: block; }
.ab-related-card__body { padding: 22px 24px; }
.ab-related-card__title { margin: 0; font-size: 19px; line-height: 1.35; font-weight: 400; }
.ab-related-card__title a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.ab-related-card__title a:hover { color: var(--wp--preset--color--primary); }

/* --- Noutăți (newsletter capture removed per client decision) ------------ */
.ab-news { padding-block: var(--wp--preset--spacing--80); }
.ab-news__line { font-size: 18px; color: var(--wp--preset--color--muted); }

/* --- Programare ---------------------------------------------------------- */
.ab-prog { padding-block: 72px var(--wp--preset--spacing--80); }
.ab-prog__info { position: sticky; top: 140px; align-self: flex-start; }
.ab-prog__lead { margin: 0 0 24px; font-size: 19px; line-height: 1.6; color: var(--wp--preset--color--muted); }
.ab-prog__list p { margin: 0; font-size: 15px; }
.ab-prog__list strong { display: inline-block; min-width: 70px; color: var(--wp--preset--color--accent); font-weight: 700; }
.ab-prog__list a {
	color: var(--wp--preset--color--contrast);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ab-prog__list a:hover { color: var(--wp--preset--color--primary); }
.ab-prog__quote {
	margin: 28px 0 0;
	border-left: 3px solid var(--wp--preset--color--accent);
	padding-left: 24px;
	font-family: var(--wp--preset--font-family--heading);
	font-style: italic;
	font-size: 18px;
	line-height: 1.5;
	color: var(--wp--preset--color--contrast);
}
.ab-prog__form .fluentform {
	border: 1px solid var(--wp--preset--color--surface);
	padding: 44px;
	box-shadow: 0 6px 24px rgba(51, 55, 43, 0.08);
}

/* --- 404 ------------------------------------------------------------------ */
.ab-404 {
	padding: 200px 0 140px;
	text-align: center;
}
.ab-404 > * + * { margin-block-start: 20px; }
.ab-404__watermark {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(80px, 6vw + 60px, 120px);
	line-height: 1;
	color: var(--wp--preset--color--surface);
	font-weight: 700;
	letter-spacing: 8px;
}
.ab-404__title {
	margin: 0;
	font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.75rem);
	font-weight: 400;
	line-height: 1.15;
}
.ab-404__lead {
	margin-inline: auto;
	font-size: 18px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
	max-width: 520px;
	text-wrap: pretty;
}
.ab-404__actions { margin-top: 8px; }
.ab-404__links { margin-top: 20px; }
.ab-404__links .ab-chip-link a { padding: 9px 18px; }
@media (max-width: 781px) {
	.ab-404 { padding: 140px 20px 80px; }
	.ab-404__actions { flex-wrap: wrap; }
}

/* --- CTA band (pre-footer, gradient) ------------------------------------- */
.ab-cta { padding-block: var(--wp--preset--spacing--80); }
.ab-cta__title {
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--3-xl);
	font-weight: 400;
	line-height: 1.2;
	color: var(--wp--preset--color--base);
}
.ab-cta__line { margin: 0 0 24px; font-size: 17px; color: #d8dbc9; }
.ab-cta .wp-block-buttons { margin-top: 24px; }
.ab-cta__btn .wp-block-button__link {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--secondary);
	font-weight: 700;
}
.ab-cta__btn .wp-block-button__link:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--secondary);
}

/* --- Interior mobile ----------------------------------------------------- */
@media (max-width: 781px) {
	.ab-phero { height: auto; margin-top: 0; display: flex; flex-direction: column; }
	.ab-phero > .wp-block-image,
	.ab-phero > .wp-block-post-featured-image { position: static; aspect-ratio: 3 / 4; height: auto; animation: none; }
	.ab-phero::before { display: none; }
	.ab-phero { background: var(--wp--preset--color--base); }
	.ab-phero__card {
		position: static;
		margin: 0; /* kill WP's flow-gap margin — no strip between photo and card */
		max-width: none;
		padding: 28px 20px 32px;
		background: var(--wp--preset--color--base);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		border-bottom: 1px solid var(--wp--preset--color--surface);
		animation: none;
	}
	.ab-prose, .ab-values, .ab-cred, .ab-spec, .ab-integr, .ab-blog,
	.ab-article, .ab-related, .ab-news, .ab-prog, .ab-cta { padding-block: 52px; }
	.ab-timeline__row { grid-template-columns: 80px 24px 1fr; gap: 12px; padding-bottom: 28px; }
	.ab-timeline__year { font-size: 15px; }
	.ab-timeline__row:not(.ab-timeline__row--last) .ab-timeline__rail::after { bottom: -28px; }
	.ab-spec-card, .ab-spec-card--flip { grid-template-columns: 1fr; }
	.ab-spec-card--flip .ab-spec-card__img { order: 0; }
	.ab-spec-card__img { min-height: 220px; }
	.ab-spec-card__body { padding: 28px 24px; }
	.ab-related-card { grid-template-columns: 1fr; }
	.ab-related-card__media img { min-height: 160px; }
	.ab-prog__info { position: static; }
}

/* ==========================================================================
   Legal hub (page-legal template) — intro, sticky pill sidebar, content card.
   ========================================================================== */
/* Top padding = header overlap (72px) + the design's 64px intro gap. */
.ab-legal { padding-block: 136px var(--wp--preset--spacing--80); }
.ab-legal__intro { margin-bottom: 48px; animation: ab-fade-up 0.9s ease-out 0.15s both; }
.ab-legal__title {
	margin: 0;
	font-size: clamp(2rem, 1.65rem + 1.5vw, 2.75rem);
	font-weight: 400;
	line-height: 1.08;
}
.ab-legal__lead { margin: 0; font-size: 17px; color: var(--wp--preset--color--muted); max-width: 640px; }
.ab-legal__grid {
	display: grid !important;
	grid-template-columns: 280px 1fr;
	gap: 60px;
	align-items: start;
}
.ab-legal__sidebar { position: sticky; top: 120px; }
.ab-legal__tabs { display: flex; flex-direction: column; gap: 8px; }
.ab-legal__tabs a {
	text-align: left;
	font-size: 15px;
	font-weight: 600;
	padding: 13px 22px;
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}
.ab-legal__tabs a:hover { background: var(--wp--preset--color--surface); }
.ab-legal__tabs a.is-active {
	background: var(--wp--preset--color--primary);
	color: #fff;
}
.ab-legal__help {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--surface);
}
.ab-legal__help p { margin: 0 0 4px; font-size: 13px; color: var(--wp--custom--color--faint); }
.ab-legal__help a {
	font-size: 14px;
	font-weight: 600;
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.ab-legal__card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--lg);
	padding: 52px 56px;
	min-height: 600px;
}
.ab-legal__card-head {
	border-bottom: 1px solid var(--wp--preset--color--surface);
	padding-bottom: 22px;
	margin-bottom: 24px;
}
.ab-legal__card-title { margin: 0; font-size: 30px; font-weight: 400; }
.ab-legal__updated,
.ab-legal__updated p,
.ab-legal__updated time { font-size: 13px; color: var(--wp--custom--color--faint); margin: 0; }
.ab-legal__card .wp-block-post-content h3 {
	font-size: 20px;
	font-weight: 400;
	margin: 28px 0 8px;
}
.ab-legal__card .wp-block-post-content p {
	font-size: 16px;
	line-height: 1.7;
	color: var(--wp--preset--color--muted);
	margin: 0 0 20px;
}
/* Cookie table. */
.ab-legal__card table {
	border-collapse: collapse;
	width: 100%;
	border: 1px solid var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--md);
	overflow: hidden;
	font-size: 14px;
}
.ab-legal__card table th {
	background: var(--wp--preset--color--surface);
	font-size: 13px;
	font-weight: 700;
	text-align: left;
	padding: 12px 16px;
}
.ab-legal__card table td {
	border-top: 1px solid var(--wp--preset--color--surface);
	padding: 12px 16px;
	color: var(--wp--preset--color--muted);
	vertical-align: top;
}
.ab-legal__card table td:first-child { font-weight: 600; color: var(--wp--preset--color--contrast); width: 200px; }
.ab-legal__card table td:last-child { width: 140px; }

@media (max-width: 900px) {
	.ab-legal { padding-block: 112px 52px; } /* mobile pill overlap 60px + gap */
	.ab-legal__grid { grid-template-columns: 1fr; gap: 28px; }
	.ab-legal__sidebar { position: static; }
	.ab-legal__tabs { flex-direction: row; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.ab-legal__tabs a { white-space: nowrap; padding: 11px 18px; font-size: 14px; }
	.ab-legal__help { display: none; }
	.ab-legal__card { padding: 24px 20px; min-height: 0; }
	.ab-legal__card table, .ab-legal__card thead, .ab-legal__card tbody,
	.ab-legal__card tr, .ab-legal__card td { display: block; width: 100% !important; }
	.ab-legal__card thead { display: none; }
	.ab-legal__card tr { border-top: 1px solid var(--wp--preset--color--surface); padding: 8px 0; }
	.ab-legal__card td { border: 0; padding: 4px 16px; }
}

/* ==========================================================================
   Cookie banner (Complianz) — restyled to the Salvie & in tokens.
   Its stylesheet loads after ours, hence the !important on colors.
   ========================================================================== */
.cmplz-cookiebanner {
	background-color: var(--wp--preset--color--base) !important;
	border: 1px solid var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--lg) !important;
	box-shadow: 0 8px 32px rgba(43, 46, 35, 0.18) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	color: var(--wp--preset--color--contrast);
}
.cmplz-cookiebanner .cmplz-title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	color: var(--wp--preset--color--contrast) !important;
}
.cmplz-cookiebanner .cmplz-message {
	color: var(--wp--preset--color--muted) !important;
}
.cmplz-cookiebanner .cmplz-message a,
.cmplz-cookiebanner .cmplz-links a {
	color: var(--wp--preset--color--primary) !important;
}
.cmplz-cookiebanner .cmplz-btn {
	border-radius: var(--wp--custom--radius--pill) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-weight: 600;
	transition: background 0.2s, color 0.2s;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept {
	background-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
	border: 0 !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover {
	background-color: var(--wp--preset--color--contrast) !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	border: 1px solid var(--wp--custom--color--border) !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-deny:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences:hover {
	border-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--primary) !important;
}
/* Category toggles in the preferences view. */
.cmplz-cookiebanner .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked + .cmplz-label {
	background-color: var(--wp--preset--color--primary) !important;
}

/* ==========================================================================
   Footer — secondary bg, three columns.
   ========================================================================== */
/* Kill the root block-gap margin so the footer sits flush against the last section. */
footer.wp-block-template-part { margin-block-start: 0; }
.ab-footer {
	background: var(--wp--preset--color--secondary);
	color: var(--wp--custom--color--footer-text);
}
.ab-footer__inner {
	max-width: 1200px;
	margin-inline: auto;
	padding: 52px var(--wp--preset--spacing--40) 44px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--60);
	font-size: 14px;
}
.ab-footer__brand,
.ab-footer__contact {
	max-width: 320px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ab-footer__wordmark {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 18px;
	color: var(--wp--preset--color--base);
}
.ab-footer__tagline,
.ab-footer__address { line-height: 1.6; }
.ab-footer__copy {
	margin-top: 10px;
	font-size: 13px;
	color: #8c907c;
}
.ab-footer__nav {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ab-footer__nav p { margin: 0; }
.ab-footer__nav a {
	color: var(--wp--custom--color--footer-text);
	text-decoration: none;
	transition: color 0.2s;
}
.ab-footer__contact p { margin: 0; }
.ab-footer__contact-title {
	color: var(--wp--preset--color--base);
	font-weight: 600;
}
.ab-footer__contact a { color: var(--wp--custom--color--footer-text); }
.ab-footer__privacy { text-decoration: underline; }
.ab-footer__nav a:hover,
.ab-footer__nav a:focus,
.ab-footer__contact a:hover,
.ab-footer__contact a:focus { color: var(--wp--preset--color--base); }

/* Footer mobile: stack columns, nav rows get dividers. */
@media (max-width: 781px) {
	.ab-footer__inner {
		flex-direction: column;
		gap: var(--wp--preset--spacing--50);
		padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
	}
	.ab-footer__brand,
	.ab-footer__contact { max-width: none; }
	.ab-footer__nav { gap: 0 !important; }
	.ab-footer__nav p {
		padding: 10px 0;
		border-bottom: 1px solid #3a3e30;
	}
	.ab-footer__nav p:last-child { border-bottom: 0; }
}
