/*
 Theme Name: Alkassab Dental v2
 Description: Child theme for Alkassab Dental Practice
 Template: kadence
 Version: 2.0.0
 Text Domain: alkassab-dental-v2
*/

/* ─── Design Tokens ──────────────────────────────────────────────────────── */

:root {
	/* ── Colour palette ─────────────────────────────────────────── */
	--dp-black:      #111111;  /* charcoal — hero, nav, dark sections          */
	--dp-pink:       #CB52A0;  /* signature pink — all CTAs and accents        */
	--dp-warm-white: #FAF9F7;  /* near-white — lightest section background     */
	--dp-ivory:      #F2EDE8;  /* mid-warm — card backgrounds, tinted sections */
	--dp-sand:       #E8DDD4;  /* deepest warm — highest contrast sections     */
	--dp-dusty-rose: #C4A99C;  /* borders, dividers, subtext on dark           */
	--dp-mocha:      #8A6E64;  /* body text on light, section labels           */

	/* ── Typography ─────────────────────────────────────────────── */
	--dp-heading: "Cormorant Garamond", serif;  /* italic 700 — all headings   */
	--dp-body:    "DM Sans", sans-serif;         /* 300 body · 400 UI · 600 btns */

	/* ── Border Radius — no sharp corners ──────────────────────── */
	--dp-radius-full: 9999px;  /* all buttons, staff avatars  */
	--dp-radius-lg:   24px;    /* cards, panels, modals       */
	--dp-radius-md:   16px;    /* images, inputs, tables      */
	--dp-radius-sm:   8px;     /* tags, badges, code chips    */

	/* ── Spacing ─────────────────────────────────────────────────── */
	--dp-sp-xs:  8px;
	--dp-sp-sm:  16px;
	--dp-sp-md:  24px;
	--dp-sp-lg:  48px;
	--dp-sp-xl:  80px;
	--dp-sp-xxl: 120px;

	/* ── Layout ──────────────────────────────────────────────────── */
	--dp-content: 800px;
	--dp-wide:    1200px;

	/* ── Kadence Global Palette — 9 slots mapped to brand tokens ── */
	/* These override whatever Kadence's parent theme outputs so all  */
	/* Kadence blocks use our colours automatically on the frontend.  */
	--global-palette1: #CB52A0;  /* Signature Pink  */
	--global-palette2: #111111;  /* Charcoal        */
	--global-palette3: #8A6E64;  /* Mocha           */
	--global-palette4: #C4A99C;  /* Dusty Rose      */
	--global-palette5: #E8DDD4;  /* Sand            */
	--global-palette6: #F2EDE8;  /* Ivory           */
	--global-palette7: #FAF9F7;  /* Warm White      */
	--global-palette8: #ffffff;  /* White           */
	--global-palette9: #000000;  /* Black           */
}


/* ─── WordPress Block Editor Utility Classes ─────────────────────────────
   Fallback colour and font utilities for the block editor.
   ────────────────────────────────────────────────────────────────────────── */

/* Background colours */
.has-dp-pink-background-color       { background-color: #CB52A0 !important; }
.has-dp-black-background-color      { background-color: #111111 !important; }
.has-dp-warm-white-background-color { background-color: #FAF9F7 !important; }
.has-dp-ivory-background-color      { background-color: #F2EDE8 !important; }
.has-dp-sand-background-color       { background-color: #E8DDD4 !important; }
.has-dp-dusty-rose-background-color { background-color: #C4A99C !important; }
.has-dp-mocha-background-color      { background-color: #8A6E64 !important; }

/* Text colours */
.has-dp-pink-color       { color: #CB52A0 !important; }
.has-dp-black-color      { color: #111111 !important; }
.has-dp-warm-white-color { color: #FAF9F7 !important; }
.has-dp-ivory-color      { color: #F2EDE8 !important; }
.has-dp-sand-color       { color: #E8DDD4 !important; }
.has-dp-dusty-rose-color { color: #C4A99C !important; }
.has-dp-mocha-color      { color: #8A6E64 !important; }

/* Font families */
.has-dp-heading-font-family { font-family: "Cormorant Garamond", serif !important; }
.has-dp-body-font-family    { font-family: "DM Sans", sans-serif !important; }

/* Font sizes */
.has-dp-h1-font-size      { font-size: clamp(2.75rem, 6vw, 4.5rem) !important; }
.has-dp-h2-font-size      { font-size: clamp(2.25rem, 5vw, 3.5rem) !important; }
.has-dp-h3-font-size      { font-size: clamp(1.75rem, 4vw, 2.5rem) !important; }
.has-dp-body-font-size    { font-size: 1rem                         !important; }
.has-dp-label-font-size   { font-size: 0.6875rem                    !important; }
.has-dp-caption-font-size { font-size: 0.8125rem                    !important; }


/* ─── Base Styles ────────────────────────────────────────────────────────── */

html {
	overflow-x: clip;
}

/* ─── Mobile nav drawer: Call + Book buttons ────────────────────────────── */

/* Full-width drawer */
.popup-drawer.popup-drawer-layout-sidepanel {
	width: 100vw !important;
	max-width: 100vw !important;
}

/* When WP admin bar is visible, shift the drawer below it so nothing is clipped */
.admin-bar .popup-drawer {
	top: var( --wp-admin--admin-bar--height, 32px ) !important;
	height: calc( 100vh - var( --wp-admin--admin-bar--height, 32px ) ) !important;
}

/* Make the drawer a flex column so actions can anchor to the bottom */
.popup-drawer .drawer-inner {
	display: flex !important;
	flex-direction: column !important;
	height: 100% !important;
	overflow: hidden !important;
	width: 100% !important;
	max-width: 100% !important;
	left: 0 !important;
}

.popup-drawer .mobile-drawer-content {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 !important;
	min-height: 0 !important;
	overflow-y: auto !important;
}

.dp-nav-actions {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	gap: 10px;
	padding: 24px 20px calc( 24px + env( safe-area-inset-bottom ) );
	border-top: 1px solid rgba( 196, 169, 156, 0.15 );
	flex-shrink: 0;
	background: var( --dp-black );
}

.dp-nav-actions__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var( --dp-radius-full );
	font-family: var( --dp-body );
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	transition: all 0.2s ease;
}

.dp-nav-actions__btn--call {
	flex-shrink: 0;
	width: 52px;
	height: 52px;
	background: transparent;
	color: var( --dp-dusty-rose );
	border: 1.5px solid rgba( 196, 169, 156, 0.35 );
}

.dp-nav-actions__btn--call:hover {
	border-color: var( --dp-dusty-rose );
	color: var( --dp-warm-white );
}

.dp-nav-actions__btn--book {
	flex: 1;
	padding: 14px 24px;
	background: var( --dp-pink );
	color: #fff !important;
	border: 1.5px solid var( --dp-pink );
}

.dp-nav-actions__btn--book:hover {
	background: #b8449a;
	border-color: #b8449a;
}

body,
html body {
	font-family: var(--dp-body);
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--dp-mocha);
	background-color: var(--dp-warm-white);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 700;
	font-size: 28px;
	color: var(--dp-black);
	line-height: 1.1;
	margin: 0;
}

h3 {
	font-size: 28px;
}

summary {
	font-size: 28px;
}

a {
	color: var(--dp-pink);
}

a:hover {
	color: var(--dp-black);
}


/* ─── Eyebrow & Section Label ────────────────────────────────────────────── */

p.dp-eyebrow,
.dp-eyebrow,
.dp-label {
	font-family: var(--dp-body);
	font-size: 16px;
	font-weight: 300;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--dp-mocha);
	margin-bottom: 16px;
}

.entry-content p.dp-eyebrow,
.entry-content .dp-eyebrow {
	margin-bottom: 16px;
}

.dp-eyebrow--light,
.dp-label--light {
	color: var(--dp-dusty-rose);
}


/* ─── Pink accent bar ────────────────────────────────────────────────────── */

.dp-pink-bar {
	width: 64px;
	height: 3px;
	background: var(--dp-pink);
	border-radius: 2px;
}


/* ─── Buttons ────────────────────────────────────────────────────────────── */

/* Base — applied via WP block Additional CSS Class */
.dp-btn {
	display: inline-block;
	padding: 14px 32px;
	border-radius: var(--dp-radius-full);
	font-family: var(--dp-body);
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.5px;
	text-decoration: none;
	border: 2px solid transparent;
	transition: background 0.22s ease, border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
	cursor: pointer;
}

/* Primary — pink fill */
.dp-btn--primary,
.wp-block-button__link.has-dp-pink-background-color {
	background: var(--dp-pink) !important;
	color: #ffffff !important;
	border-color: var(--dp-pink) !important;
	border-radius: var(--dp-radius-full) !important;
	font-family: var(--dp-body) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	letter-spacing: 0.5px !important;
	padding: 14px 32px !important;
}

.dp-btn--primary:hover,
.wp-block-button__link.has-dp-pink-background-color:hover {
	background: #b8449a !important;
	border-color: #b8449a !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 6px 20px rgba(203, 82, 160, 0.3) !important;
}

/* Secondary — transparent, mocha border */
.dp-btn--secondary,
.wp-block-button__link.is-style-outline {
	background: transparent !important;
	color: var(--dp-black) !important;
	border-color: var(--dp-mocha) !important;
	border-radius: var(--dp-radius-full) !important;
	font-family: var(--dp-body) !important;
	font-weight: 600 !important;
}

.dp-btn--secondary:hover,
.wp-block-button__link.is-style-outline:hover {
	border-color: var(--dp-black) !important;
	transform: translateY(-1px) !important;
}

/* Ghost — for dark backgrounds */
.dp-btn--ghost {
	background: transparent;
	color: var(--dp-ivory);
	border: 2px solid rgba(242, 237, 232, 0.4);
	border-radius: var(--dp-radius-full);
	font-family: var(--dp-body);
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.5px;
	padding: 14px 32px;
	text-decoration: none;
	display: inline-block;
	transition: border-color 0.22s ease, transform 0.22s ease;
	cursor: pointer;
}

.dp-btn--ghost:hover {
	border-color: var(--dp-ivory);
	color: var(--dp-ivory);
	transform: translateY(-1px);
}

.wp-block-button.dp-btn--ghost-mocha .wp-block-button__link {
	background: transparent !important;
	color: var(--dp-black) !important;
	border: none !important;
	border-bottom: 1px solid var(--dp-mocha) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	font-family: var(--dp-body) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	letter-spacing: 0 !important;
	padding: 0 0 2px !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	transition: color 0.2s ease, border-bottom-color 0.2s ease !important;
}

.wp-block-button.dp-btn--ghost-mocha .wp-block-button__link:hover {
	color: var(--dp-mocha) !important;
	border-bottom-color: var(--dp-black) !important;
}


/* ─── Scroll Reveal ──────────────────────────────────────────────────────── */

.dp-reveal {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.dp-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.dp-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}


/* ─── Header: transparent → sticky ──────────────────────────────────────── */

/* Transparent state — white links over hero (top-level only) */
.site-main-header-wrap:not(.item-is-stuck) .main-navigation > div > ul > li > a,
.site-main-header-wrap:not(.item-is-stuck) .site-title,
.site-main-header-wrap:not(.item-is-stuck) .site-title a,
.site-main-header-wrap:not(.item-is-stuck) .brand {
	color: #ffffff !important;
	transition: color 0.3s ease;
}

.site-main-header-wrap:not(.item-is-stuck) .main-navigation > div > ul > li > a:hover {
	color: var(--dp-dusty-rose) !important;
}

/* Stuck state */
.site-main-header-wrap.item-is-stuck {
	background: rgba(17, 17, 17, 0.92) !important;
	backdrop-filter: blur(8px) !important;
	-webkit-backdrop-filter: blur(8px) !important;
	box-shadow: none !important;
	transition: background 0.3s ease;
}

.site-main-header-wrap {
	width: 100% !important;
}

.site-main-header-wrap.item-is-stuck .main-navigation > div > ul > li > a,
.site-main-header-wrap.item-is-stuck .site-title,
.site-main-header-wrap.item-is-stuck .site-title a,
.site-main-header-wrap.item-is-stuck .brand {
	color: #ffffff !important;
}

.site-main-header-wrap.item-is-stuck .main-navigation > div > ul > li > a:hover {
	color: var(--dp-dusty-rose) !important;
}


/* Header CTA button scale-in on load */
@keyframes dp-btn-grow {
	from { transform: scale(0); opacity: 0; }
	to   { transform: scale(1); opacity: 1; }
}

.header-button .button {
	animation: dp-btn-grow 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.3s both;
}

@media (prefers-reduced-motion: reduce) {
	.header-button .button { animation: none; }
}

/* ─── Mobile header social/phone button ─────────────────────────────────── */

.social-button.header-social-item {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: auto !important;
	height: auto !important;
	padding: 10px 14px !important;
	background: transparent !important;
	border: 1.5px solid rgba( 196, 169, 156, 0.4 ) !important;
	border-radius: var( --dp-radius-full ) !important;
	color: var( --dp-warm-white ) !important;
	transition: border-color 0.2s ease, color 0.2s ease !important;
}

.social-button.header-social-item:hover {
	border-color: var( --dp-dusty-rose ) !important;
	color: var( --dp-dusty-rose ) !important;
	background: transparent !important;
}

.social-button.header-social-item svg {
	width: 18px !important;
	height: 18px !important;
	display: block !important;
}


/* ─── Global Image Treatment ────────────────────────────────────────────── */
/* Asymmetric radius (top-right + bottom-left) + offset pink accent frame.  */
/* Excluded below for contexts that have their own treatment or no frame.   */

.wp-block-image {
	position: relative;
	z-index: 0;
}

.wp-block-image img {
	border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg);
	display: block;
}

.wp-block-image::before {
	content: '';
	position: absolute;
	inset: 14px -14px -14px 14px;
	border: 2px solid var(--dp-pink);
	border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg);
	z-index: -1;
	pointer-events: none;
}

/* Reset: contexts that manage their own framing or need no treatment */
.dp-service-card .wp-block-image::before,
.dp-staff-card .wp-block-image::before,
.dp-partner-circle .wp-block-image::before,
.dp-hero-section .wp-block-image::before,
.dp-about-image .wp-block-image::before,
.dp-textimage2-image .wp-block-image::before,
.dp-imagetext2-image .wp-block-image::before,
.dp-teamc-image .wp-block-image::before,
.dp-submenu-card__image.wp-block-image::before,
[class*="dp-footer-logo"].wp-block-image::before { content: none; }

.dp-service-card .wp-block-image img,
.dp-staff-card .wp-block-image img,
.dp-partner-circle .wp-block-image img,
.dp-hero-section .wp-block-image img,
[class*="dp-footer-logo"] img { border-radius: 0; }


/* ─── Service Card ───────────────────────────────────────────────────────── */

.dp-service-card {
	background: #ffffff;
	border-radius: var(--dp-radius-lg);
	padding: 0;
	border: 1px solid var(--dp-dusty-rose);
	box-shadow: 0 1px 3px rgba(17, 17, 17, 0.05), 0 4px 20px rgba(17, 17, 17, 0.04);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.dp-service-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 2px 8px rgba(17, 17, 17, 0.08), 0 16px 48px rgba(17, 17, 17, 0.08);
}

/* Service card image */
.dp-service-card__image {
	width: 100%;
	height: 200px;
	overflow: hidden;
	margin: 0 !important;
	flex-shrink: 0;
}

.dp-service-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.5s ease;
}

.dp-service-card:hover .dp-service-card__image img {
	transform: scale(1.04);
}

/* Service card text — padding lives here, not on the card */
.dp-service-card h3 {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 700;
	font-size: 28px;
	color: var(--dp-black);
	margin: 0 0 10px;
	line-height: 1.2;
	padding: 28px 36px 0;
}

.dp-service-card .dp-service-card__desc {
	font-family: var(--dp-body);
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--dp-mocha);
	line-height: 1.75;
	margin: 0;
	padding: 0 36px;
}

.dp-service-card .dp-service-card__link {
	padding: 12px 36px 32px;
	margin: 0;
}

.dp-service-card a {
	font-family: var(--dp-body);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--dp-pink);
	text-decoration: none;
	border-bottom: 1px solid rgba(203, 82, 160, 0.3);
	padding-bottom: 2px;
	transition: border-color 0.2s;
}

.dp-service-card a:hover {
	border-color: var(--dp-pink);
	color: var(--dp-pink);
}


/* ─── Staff Card ─────────────────────────────────────────────────────────── */

.dp-staff-card {
	background: var(--dp-sand);
	border-radius: var(--dp-radius-lg);
	padding: 36px;
	text-align: center;
	border: 1px solid var(--dp-dusty-rose);
}

/* Circular avatar */
.dp-staff-card__avatar {
	width: 120px;
	height: 120px;
	border-radius: 50%;
	overflow: hidden;
	margin: 0 auto 20px;
	border: 3px solid rgba(196, 169, 156, 0.4);
	background: var(--dp-dusty-rose);
}

.dp-staff-card__avatar figure { width: 100%; height: 100%; margin: 0; }

.dp-staff-card__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.dp-staff-card h3 {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 700;
	font-size: 29px;
	color: var(--dp-black);
	margin-bottom: 6px;
}

/* Role label — doubled selector to beat .dp-staff-card p (class+element) */
.dp-staff-card .dp-staff-card__role {
	font-family: var(--dp-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--dp-pink);
	margin-bottom: 0;
}

/* Divider rendered as pseudo-element — no extra HTML needed */
.dp-staff-card .dp-staff-card__role::after {
	content: '';
	display: block;
	width: 40px;
	height: 1px;
	background: var(--dp-dusty-rose);
	margin: 16px auto 16px;
}

/* Bio */
.dp-staff-card .dp-staff-card__bio {
	font-family: var(--dp-body);
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--dp-mocha);
	line-height: 1.75;
	margin: 0;
}


/* ─── Testimonial ────────────────────────────────────────────────────────── */

.dp-testimonial {
	background: #ffffff;
	border-radius: var(--dp-radius-lg);
	padding: 36px;
	border: 1px solid var(--dp-dusty-rose);
}

/* Star row */
.dp-testimonial__stars {
	color: var(--dp-pink);
	font-size: 18px;
	letter-spacing: 2px;
	margin-bottom: 16px;
}

/* Opening quote mark */
.dp-testimonial__quote-mark {
	font-family: var(--dp-heading);
	font-style: italic;
	font-size: 5rem;
	line-height: 0.6;
	color: var(--dp-pink);
	opacity: 0.3;
	display: block;
	margin-bottom: 8px;
}

.dp-testimonial blockquote,
.dp-testimonial p {
	font-family: var(--dp-heading);
	font-style: italic;
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--dp-black);
	line-height: 1.5;
	margin-bottom: 20px;
}

.dp-testimonial__author {
	font-family: var(--dp-body);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--dp-mocha);
}


/* ─── Stats Bar ──────────────────────────────────────────────────────────── */

.dp-stat-cell {
	padding: var(--dp-sp-lg) var(--dp-sp-md);
	text-align: center;
	border-right: 1px solid var(--dp-sand);
}

.dp-stat-cell:last-child {
	border-right: none;
}

.dp-stat__number {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 700;
	font-size: clamp(2.5rem, 5vw, 4rem);
	color: var(--dp-black);
	line-height: 1;
	margin: 0;
}

.dp-stat__label {
	font-family: var(--dp-body);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--dp-mocha);
	margin-top: 8px;
	margin-bottom: 0;
}


/* ─── FAQ Accordion ──────────────────────────────────────────────────────── */

.wp-block-details {
	border-top: 1px solid var(--dp-dusty-rose);
	padding: 4px 0 !important;
}

.wp-block-details:last-of-type {
	border-bottom: 1px solid var(--dp-dusty-rose);
}

.wp-block-details summary {
	font-family: var(--dp-heading);
	font-style: italic;
	font-size: 28px;
	font-weight: 700;
	color: var(--dp-black);
	cursor: pointer;
	list-style: none;
	padding: 20px 40px 20px 0;
	position: relative;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%) rotate(0deg);
	font-size: 1.75rem;
	font-weight: 300;
	color: var(--dp-pink);
	font-family: var(--dp-body);
	font-style: normal;
	line-height: 1;
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.wp-block-details[open] summary::after {
	transform: translateY(-50%) rotate(45deg);
}

.wp-block-details p {
	padding: 0 0 20px;
	color: var(--dp-mocha);
	font-weight: 300;
	line-height: 1.75;
	margin: 0 !important;
}


/* ─── CTA Banner ─────────────────────────────────────────────────────────── */

.dp-cta-section .dp-eyebrow { margin: 0 0 20px; }

.dp-cta-section .wp-block-heading {
	color: var(--dp-warm-white);
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1.05;
	margin: 0;
}

/* Double pink rule rendered as pseudo — no extra block needed */
.dp-cta-section .wp-block-heading::after {
	content: '';
	display: block;
	width: 128px;
	height: 9px;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) center 0 / 128px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) center 100% / 80px 2px no-repeat;
	margin: 20px auto 28px;
}

.dp-cta-section p { color: var(--dp-dusty-rose); font-size: 1.25rem; font-weight: 300; line-height: 1.75; margin: 0 0 44px; }

.dp-cta-section .wp-block-buttons { justify-content: center; gap: 16px; }

/* Ghost button — strip dp-btn--ghost styles from the outer div wrapper */
.wp-block-button.dp-btn--ghost {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

/* Ghost button on dark background — apply styles to the inner link only */
.dp-cta-section .wp-block-button.dp-btn--ghost .wp-block-button__link {
	background: transparent !important;
	color: var(--dp-ivory) !important;
	border: 2px solid rgba(242, 237, 232, 0.4) !important;
	border-radius: var(--dp-radius-full) !important;
	font-family: var(--dp-body) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	padding: 14px 32px !important;
	text-decoration: none !important;
	transition: border-color 0.22s ease, transform 0.22s ease !important;
}
.dp-cta-section .wp-block-button.dp-btn--ghost .wp-block-button__link:hover {
	border-color: var(--dp-ivory) !important;
	color: var(--dp-ivory) !important;
	transform: translateY(-1px) !important;
}

/* ─── FAQ left column ────────────────────────────────────────────────────── */

.dp-faq-left .wp-block-heading { font-size: clamp(36px, 4vw, 52px); margin: 0; }
.dp-faq-left .wp-block-heading::after {
	content: '';
	display: block;
	width: 128px;
	height: 9px;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) 0 0 / 128px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) 0 100% / 80px 2px no-repeat;
	margin: 24px 0 28px;
}
.dp-faq-left p { font-size: 1.25rem; font-weight: 300; line-height: 1.75; color: var(--dp-mocha); margin: 0 0 32px; }

.dp-faq-actions {
	display: flex !important;
	align-items: center !important;
	gap: 24px !important;
	flex-wrap: wrap !important;
}

.dp-faq-actions .wp-block-buttons { margin: 0 !important; }

.dp-faq-link { margin: 0 !important; }
.dp-faq-link a {
	font-family: var(--dp-body);
	font-weight: 600;
	font-size: 16px;
	color: var(--dp-black);
	border-bottom: 1px solid var(--dp-mocha);
	padding-bottom: 2px;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease, border-bottom-color 0.2s ease;
}
.dp-faq-link a:hover { color: var(--dp-mocha); border-bottom-color: var(--dp-black); }


/* wp:details inside accordion — override global .wp-block-details styles */
.dp-faq-accordion {
	min-width: 0;
	width: 100%;
}

.dp-faq-accordion .wp-block-details {
	width: 100%;
	box-sizing: border-box;
	border-top: none !important;
	border-bottom: 1px solid var(--dp-dusty-rose);
	padding: 0 !important;
}

.dp-faq-accordion .wp-block-details > summary {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.dp-faq-accordion .wp-block-details:first-child { border-top: 1px solid var(--dp-dusty-rose) !important; }


/* ─── Page Header (inner pages) ──────────────────────────────────────────── */

.dp-page-header {
	background: var(--dp-black);
	padding: 96px clamp(24px, 4vw, 56px) 72px;
	position: relative;
	overflow: hidden;
}

/* Atmospheric pink glow — upper right corner */
.dp-page-header::before {
	content: '';
	position: absolute;
	top: -120px; right: -120px;
	width: 640px; height: 640px;
	background: radial-gradient(ellipse at center,
		rgba(203, 82, 160, 0.10) 0%,
		rgba(203, 82, 160, 0.03) 45%,
		transparent 70%);
	pointer-events: none;
}

/* Bottom hairline — fades in from both edges */
.dp-page-header::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(
		to right,
		transparent 0%,
		var(--dp-dusty-rose) 30%,
		var(--dp-dusty-rose) 70%,
		transparent 100%
	);
	opacity: 0.35;
}

/* Breadcrumb trail */
.dp-page-header__breadcrumb {
	font-family: var(--dp-body);
	font-size: clamp(12px, 1.8vw, 16px);
	font-weight: 400;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(196, 169, 156, 0.55);
	margin: 0 0 40px !important;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.dp-page-header__breadcrumb a {
	color: rgba(196, 169, 156, 0.55);
	text-decoration: none;
	transition: color 0.2s;
}

.dp-page-header__breadcrumb a:hover { color: var(--dp-warm-white); }

/* Title group — pink gradient left bar */
.dp-page-header__title {
	position: relative;
	padding-left: 28px;
	margin-bottom: 24px;
}

.dp-page-header__title::before {
	content: '';
	position: absolute;
	left: 0;
	top: 8px; bottom: 8px;
	width: 3px;
	background: linear-gradient(to bottom, var(--dp-pink), rgba(203, 82, 160, 0.25));
	border-radius: 9999px;
}

.dp-page-header__title h1,
.dp-page-header__title .wp-block-heading {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(48px, 6vw, 86px) !important;
	line-height: 1.05 !important;
	color: var(--dp-warm-white) !important;
	margin: 0 !important;
	letter-spacing: -0.5px;
}

/* Short subtitle — optional, editable per page */
.dp-page-header__subtitle {
	font-family: var(--dp-body);
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--dp-dusty-rose);
	line-height: 1.75;
	max-width: 540px;
	margin: 0 !important;
	padding-left: 28px;
}


/* ─── Kill Kadence global block spacing on full-width sections ───────────────
   Kadence injects margin-bottom: var(--global-md-spacing) on all wp:group
   blocks. On alignfull sections this creates a gap that shows the page
   background as a black bar between sections. Zero it out here only for
   full-width groups so inner groups inside patterns are unaffected.        */
.wp-block-group.alignfull { margin-bottom: 0 !important; }

/* ─── Kill Kadence margin-bottom on direct grid children ─────────────────────
   Kadence's .single-content .wp-block-group { margin-bottom: 32px } causes
   the last card in every grid row to be 32px taller than its siblings because
   it has no margin while others do. Zero it for all inner grid items.
   Specificity (0,3,0) beats Kadence's (0,2,0).                             */
.entry-content .dp-stats-grid    > .wp-block-group,
.entry-content .dp-services-grid > .wp-block-group,
.entry-content .dp-team-grid     > .wp-block-group,
.entry-content .dp-gallery-grid  > .wp-block-group,
.entry-content .dp-why-grid      > .wp-block-group,
.entry-content .dp-partners-grid > .wp-block-group {
	margin-bottom: 0;
}


/* ─── Pattern section wrappers ────────────────────────────────────────────── */
/* Each wp:group gets only align:full + className. All visual styles live here. */

.dp-section-inner {
	max-width: var(--dp-wide);
	margin: 0 auto;
}

/* Hero — full-bleed cover block with gradient overlay */
.dp-hero-section { min-height: 100vh; margin-bottom: 0 !important; }

/* Replace the cover block's solid overlay with a left-to-right gradient:
   solid charcoal under the text, fading to near-transparent on the right */
.dp-hero-section .wp-block-cover__background {
	background: linear-gradient(
		105deg,
		rgba(17, 17, 17, 0.95) 0%,
		rgba(17, 17, 17, 0.88) 30%,
		rgba(17, 17, 17, 0.55) 55%,
		rgba(17, 17, 17, 0.18) 80%,
		rgba(17, 17, 17, 0.05) 100%
	) !important;
	opacity: 1 !important;
}

.dp-hero-section .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: var(--dp-wide) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: var(--dp-sp-xxl) clamp(20px, 4vw, 56px) var(--dp-sp-xl) !important;
	box-sizing: border-box !important;
}

.dp-hero-text { max-width: 580px; }

/* Hero block element styles */
.dp-hero-section .dp-eyebrow { margin-bottom: 28px; }

.dp-hero-section .wp-block-heading {
	color: var(--dp-warm-white);
	font-size: clamp(52px, 6.5vw, 88px);
	letter-spacing: -1px;
	line-height: 1.0;
	margin: 0 0 24px;
}

.dp-hero-section .wp-block-heading em { color: var(--dp-pink); font-style: italic; }

.dp-hero-subtext {
	color: var(--dp-dusty-rose);
	font-size: 1.25rem;
	font-weight: 300;
	line-height: 1.75;
	max-width: 460px;
	margin: 0 0 40px !important;
}

.dp-hero-section .wp-block-buttons { gap: 16px; flex-wrap: wrap; margin-bottom: var(--dp-sp-lg); }

/* Ghost button — hero dark background */
.dp-hero-section .wp-block-button.dp-btn--ghost .wp-block-button__link {
	background: transparent !important;
	color: var(--dp-ivory) !important;
	border: 2px solid rgba(242, 237, 232, 0.4) !important;
	border-radius: var(--dp-radius-full) !important;
	font-family: var(--dp-body) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
	padding: 14px 32px !important;
	text-decoration: none !important;
	transition: border-color 0.22s ease, transform 0.22s ease !important;
}
.dp-hero-section .wp-block-button.dp-btn--ghost .wp-block-button__link:hover {
	border-color: var(--dp-ivory) !important;
	transform: translateY(-1px) !important;
}

/* ─── Text Overlay Section ───────────────────────────────────────────────── */

.dp-text-overlay-section { margin-bottom: 0 !important; }

.dp-text-overlay-section .wp-block-cover__background {
	background: radial-gradient(
		ellipse at 50% 40%,
		rgba(17, 17, 17, 0.52) 0%,
		rgba(17, 17, 17, 0.82) 50%,
		rgba(17, 17, 17, 0.97) 100%
	) !important;
	opacity: 1 !important;
}

.dp-text-overlay-section .wp-block-cover__inner-container {
	width: 100% !important;
	max-width: 780px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: var(--dp-sp-xl) clamp(20px, 4vw, 56px) !important;
	box-sizing: border-box !important;
	text-align: center;
}

.dp-text-overlay-inner { display: flex; flex-direction: column; align-items: center; gap: 0; }

.dp-text-overlay-section .wp-block-heading {
	color: var(--dp-warm-white) !important;
	font-size: clamp(38px, 5.5vw, 68px);
	line-height: 1.08;
	margin: 0 0 var(--dp-sp-md);
}

.dp-text-overlay-section .wp-block-heading em {
	color: var(--dp-dusty-rose);
	font-style: italic;
}

.dp-text-overlay-body {
	color: var(--dp-dusty-rose) !important;
	font-size: 1.25rem;
	font-weight: 300;
	line-height: 1.8;
	margin: 0 0 var(--dp-sp-lg) !important;
}

/* ─── Services Strip (5-col icon strip) ───────────────────────────────────── */

.dp-services-strip {
	padding: 0 !important;
	margin: 0 !important;
}

.dp-services-strip .wp-block-columns {
	gap: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;
	padding: 0 !important;
}

/* Each column: icon sits left, text sits right */
.dp-strip-col.wp-block-column {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start !important;
	gap: 18px !important;
	padding: clamp(28px, 3.5vw, 48px) clamp(20px, 2.5vw, 36px) !important;
}

.dp-strip-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: rgba(203, 82, 160, 0.12);
	border-radius: 50%;
	flex-shrink: 0;
	margin-top: 2px;
}

.dp-strip-icon svg {
	width: 20px;
	height: 20px;
}

.dp-strip-text {
	flex: 1;
	min-width: 0;
}

/* Light column text (warm-white, ivory, sand) */
.dp-services-strip .wp-block-heading {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(28px, 2vw, 32px) !important;
	color: var(--dp-black) !important;
	margin: 0 0 8px !important;
	line-height: 1.1 !important;
}

.dp-services-strip p {
	font-family: var(--dp-body) !important;
	font-size: 18px !important;
	font-weight: 300 !important;
	color: var(--dp-mocha) !important;
	line-height: 1.7 !important;
	margin: 0 !important;
}

/* Dusty-rose column — darken body text slightly */
.dp-strip-col[style*="#C4A99C"] p {
	color: var(--dp-black) !important;
	opacity: 0.6;
}

/* Dark (Emergency) column */
.dp-strip-col--dark .wp-block-heading {
	color: var(--dp-warm-white) !important;
}

.dp-strip-col--dark p {
	color: var(--dp-dusty-rose) !important;
	opacity: 1;
}

.dp-strip-col--dark .dp-strip-icon {
	background: rgba(203, 82, 160, 0.18);
}

@media (max-width: 900px) {
	.dp-services-strip .wp-block-columns {
		flex-wrap: wrap !important;
	}
	.dp-strip-col.wp-block-column {
		flex: 0 0 50% !important;
		max-width: 50% !important;
	}
}

@media (max-width: 480px) {
	.dp-strip-col.wp-block-column {
		flex: 0 0 100% !important;
		max-width: 100% !important;
	}
}

.dp-stats-section    { background: var(--dp-warm-white); border-top: 1px solid var(--dp-sand); padding: 0 clamp(20px,4vw,56px); }
.dp-teamc-section    { border-top: 1px solid var(--dp-sand); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-teamc-section.wp-block-cover { padding: 0 !important; background-color: var(--dp-warm-white) !important; margin-bottom: 0 !important; min-height: 0; }
.dp-teamc-section.wp-block-cover .wp-block-cover__inner-container { width: 100%; max-width: 100%; padding: 0; }
.dp-teamc-section.wp-block-cover .dp-section-inner { padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-services-section { background: var(--dp-warm-white); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-about-section    { background: var(--dp-ivory); border-top: 1px solid var(--dp-sand); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-team-section     { background: var(--dp-sand); border-top: 1px solid var(--dp-dusty-rose); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-gallery-section  { background: var(--dp-warm-white); border-top: 1px solid var(--dp-sand); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-ba-section       { background: var(--dp-ivory); border-top: 1px solid var(--dp-sand); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-why-section      { background: var(--dp-warm-white); border-top: 1px solid var(--dp-sand); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-faq-section      { background: var(--dp-ivory); border-top: 1px solid var(--dp-sand); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }
.dp-cta-section      { background: var(--dp-black); padding: 100px clamp(20px,4vw,56px); }

.dp-cta-section .dp-section-inner {
	max-width: var(--dp-content);
	text-align: center;
}


/* ─── Pattern layout helpers ──────────────────────────────────────────────── */

.dp-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.dp-faq-grid   { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: flex-start; }

.dp-section-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: var(--dp-sp-lg);
	flex-wrap: wrap;
	gap: 20px;
}

.dp-section-header > p,
.dp-section-header > .wp-block-group { margin: 0; }

.dp-section-header .wp-block-heading { font-size: clamp(36px, 4vw, 52px); margin: 0; }

.dp-service-card__link { margin-bottom: 0 !important; }

.dp-section-header a {
	font-family: var(--dp-body);
	font-weight: 600;
	font-size: 16px;
	color: var(--dp-black);
	border-bottom: 1px solid var(--dp-mocha);
	padding-bottom: 2px;
	text-decoration: none;
	white-space: nowrap;
}

.dp-hero-stats {
	display: flex;
	margin-top: var(--dp-sp-lg);
	padding-top: 32px;
	border-top: 1px solid rgba(196,169,156,0.2);
	flex-wrap: wrap;
}

.dp-hero-stat {
	padding-right: 36px;
	margin-right: 36px;
	border-right: 1px solid rgba(196,169,156,0.2);
	margin-bottom: 12px;
}

.dp-hero-stat:last-child { padding-right: 0; margin-right: 0; border-right: none; }

.dp-hero-stat__label {
	font-family: var(--dp-body);
	font-weight: 600;
	font-size: 10px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: rgba(196,169,156,0.6);
	margin: 0 0 4px;
}

.dp-hero-stat__value {
	font-family: var(--dp-body);
	font-weight: 400;
	font-size: 16px;
	color: var(--dp-dusty-rose);
	margin: 0;
}

.dp-hero-buttons { display: flex; gap: 16px; flex-wrap: wrap; }

/* Section intro — eyebrow + heading with no right-side link */
.dp-section-intro { margin-bottom: var(--dp-sp-lg); }
.dp-section-intro .wp-block-heading { font-size: clamp(36px, 4vw, 52px); margin: 0; }

/* Why Us item */
.dp-why-item {
	background: #fff;
	border-radius: var(--dp-radius-lg);
	padding: 36px 40px;
	border: 1px solid var(--dp-sand);
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 24px;
	align-items: flex-start;
}

.dp-why-item__icon {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(203,82,160,0.08);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.dp-why-item__icon svg {
	width: 22px;
	height: 22px;
	stroke: var(--dp-pink);
	fill: none;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}


.dp-why-item h3 { font-size: 28px; margin: 0 0 10px; line-height: 1.2; }
.dp-why-item p  { font-weight: 300; font-size: 1.25rem; line-height: 1.75; margin: 0; }

/* About image */
.dp-about-image {
	position: relative;
	z-index: 0;
	height: 480px;
}

.dp-about-image figure { width: 100%; height: 100%; margin: 0; border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg); overflow: hidden; }
.dp-about-image img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dp-about-image::before {
	content: '';
	position: absolute;
	inset: 14px -14px -14px 14px;
	border: 2px solid var(--dp-pink);
	border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg);
	z-index: -1;
	pointer-events: none;
}

.dp-about-image::after { display: none; }

/* About text column */
.dp-about-text .wp-block-heading { font-size: clamp(32px, 3.5vw, 46px); margin: 0; }
.dp-about-text .wp-block-heading::after {
	content: '';
	display: block;
	width: 128px;
	height: 9px;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) 0 0 / 128px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) 0 100% / 80px 2px no-repeat;
	margin: 24px 0 28px;
}
.dp-about-text p { margin: 0 0 16px; }
.dp-about-text p:last-child { margin-bottom: 0; }
.dp-about-text a {
	font-family: var(--dp-body);
	font-weight: 600;
	font-size: 16px;
	color: var(--dp-black);
	border-bottom: 2px solid var(--dp-mocha);
	padding-bottom: 3px;
	text-decoration: none;
}
.dp-about-text a:hover { color: var(--dp-pink); border-bottom-color: var(--dp-pink); }

/* Gallery */
.dp-gallery-grid {
	display: grid;
	grid-template-columns: repeat(3,1fr);
	gap: 16px;
}

.dp-gallery-item {
	border-radius: var(--dp-radius-md);
	overflow: hidden;
	border: 1px solid var(--dp-dusty-rose);
	background: #fff;
	display: flex;
	flex-direction: column;
	padding: 0 !important;
}

.dp-gallery-item .wp-block-image { margin: 0; display: block; line-height: 0; }
.dp-gallery-item figure { width: 100%; height: 180px; margin: 0; flex-shrink: 0; }
.dp-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dp-gallery-item__title {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 700;
	font-size: 18px;
	color: var(--dp-black);
	margin: 0;
	padding: 8px 8px 2px 0;
	line-height: 1.1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dp-gallery-item__sub {
	font-family: var(--dp-body);
	font-size: 16px;
	font-weight: 400;
	color: var(--dp-mocha);
	margin: 0;
	padding: 0 8px 8px 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Before/After header */
.dp-ba-header { text-align: center; max-width: var(--dp-content); margin: 0 auto var(--dp-sp-lg); }
.dp-ba-header .wp-block-heading { font-size: clamp(36px, 4vw, 52px); line-height: 1.1; margin: 0; }
.dp-ba-subtext { font-size: 1.25rem; font-weight: 300; line-height: 1.7; color: var(--dp-mocha); margin: 0 !important; }

/* Constrain the slider to the standard content width — targets the actual rendered elements */
.dp-ba-section .twentytwenty-wrapper,
.dp-ba-section .bafg-slider-info-wraper {
	max-width: var(--dp-wide);
	margin-left: auto;
	margin-right: auto;
}

/* FAQ plain details (inside wp:html blocks) */
.dp-faq-accordion details {
	border-bottom: 1px solid var(--dp-dusty-rose);
}

.dp-faq-accordion details:first-child { border-top: 1px solid var(--dp-dusty-rose); }

.dp-faq-accordion summary {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 700;
	font-size: 28px;
	color: var(--dp-black);
	cursor: pointer;
	list-style: none;
	padding: 22px 40px 22px 0;
	position: relative;
	line-height: 1.3;
}

.dp-faq-accordion summary::-webkit-details-marker { display: none; }

.dp-faq-accordion summary::after {
	content: "+";
	position: absolute;
	right: 0; top: 50%;
	transform: translateY(-50%) rotate(0deg);
	font-size: 1.75rem;
	font-weight: 300;
	color: var(--dp-pink);
	font-family: var(--dp-body);
	font-style: normal;
	line-height: 1;
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.dp-faq-accordion details[open] summary::after { transform: translateY(-50%) rotate(45deg); }

.dp-faq-accordion details p {
	padding: 0 0 20px;
	color: var(--dp-mocha);
	font-weight: 300;
	line-height: 1.75;
	margin: 0;
}

/* ─── Team C — editorial alternating layout ──────────────────────────────── */

.dp-teamc-list { display: flex; flex-direction: column; }

.dp-teamc-row {
	display: grid;
	gap: 72px;
	align-items: center;
	padding: 64px 0;
	border-bottom: 1px solid var(--dp-sand);
}

.dp-teamc-row:last-child { border-bottom: none; }

.dp-teamc-row--even { grid-template-columns: 380px 1fr; }
.dp-teamc-row--odd  { grid-template-columns: 1fr 380px; }

/* Image block */
.dp-teamc-image {
	position: relative;
	z-index: 0;
	aspect-ratio: 1 / 1;
	transition: transform 0.3s ease;
}

.dp-teamc-image:hover { transform: translateY(-3px); }

.dp-teamc-image .wp-block-image { margin: 0; display: block; line-height: 0; }
.dp-teamc-image figure { width: 100%; height: 100%; margin: 0; border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg); overflow: hidden; }
.dp-teamc-image img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dp-teamc-image::before {
	content: '';
	position: absolute;
	inset: 14px -14px -14px 14px;
	border: 2px solid var(--dp-pink);
	border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg);
	z-index: -1;
	pointer-events: none;
}

.dp-teamc-image::after { display: none; }
.dp-teamc-image:hover::after { display: none; }

/* Text block — even rows left-aligned, odd rows right-aligned */
.dp-teamc-row--even .dp-teamc-text { text-align: left; }
.dp-teamc-row--odd  .dp-teamc-text { text-align: right; }

.dp-teamc-text .dp-eyebrow { color: var(--dp-pink); margin-bottom: 10px; }

.dp-teamc-text .wp-block-heading {
	font-size: clamp(32px, 3vw, 44px);
	line-height: 1.05;
	margin: 0;
}

/* Double pink rule under name */
.dp-teamc-text .wp-block-heading::after {
	content: '';
	display: block;
	width: 96px;
	height: 9px;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) 0 0 / 96px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) 0 100% / 60px 2px no-repeat;
	margin: 20px 0 24px;
}

.dp-teamc-row--odd .dp-teamc-text .wp-block-heading::after {
	margin-left: auto;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) 100% 0 / 96px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) 100% 100% / 60px 2px no-repeat;
}

/* Quote */
.dp-teamc-quote {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 400;
	font-size: 28px;
	color: var(--dp-mocha);
	line-height: 1.35;
	margin: 0 0 28px !important;
}

/* Credentials */
.dp-teamc-credentials {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 0;
	margin: 0;
}

.dp-teamc-credential {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--dp-body);
	font-weight: 300;
	font-size: 16px;
	color: var(--dp-dusty-rose);
	letter-spacing: 0.3px;
	margin: 0 !important;
}

.dp-teamc-credential::before {
	content: '';
	display: block;
	min-width: 4px;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--dp-pink);
	flex-shrink: 0;
}

.dp-teamc-row--odd .dp-teamc-credentials               { align-items: flex-end; }
.dp-teamc-row--odd .dp-teamc-credential                { flex-direction: row-reverse; }

/* ─── Pattern grid responsive layouts ────────────────────────────────────── */

.dp-stats-grid    { display: grid; grid-template-columns: repeat(4, 1fr); }
.dp-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dp-team-grid     { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dp-why-grid      { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }

/* ─── Tablet (≤ 960px) ────────────────────────────────────────────────────── */
@media (max-width: 960px) {

	/* Grid collapses */
	.dp-about-grid, .dp-faq-grid { grid-template-columns: 1fr; gap: 40px; }
	.dp-stats-grid    { grid-template-columns: repeat(2, 1fr); }
	.dp-services-grid { grid-template-columns: repeat(2, 1fr); }
	.dp-team-grid     { grid-template-columns: repeat(2, 1fr); }
	.dp-gallery-grid  { grid-template-columns: repeat(2, 1fr); }

	/* Stat cell borders — 2-col layout */
	.dp-stat-cell                { border-right: none; }
	.dp-stat-cell:nth-child(odd) { border-right: 1px solid var(--dp-sand); }

	/* About: show text before image on smaller screens */
	.dp-about-image { order: 2; }
	.dp-about-text  { order: 1; }

	/* Team C: stack to single column */
	.dp-teamc-row--even,
	.dp-teamc-row--odd  { grid-template-columns: 1fr; gap: 40px; padding: 48px 0; }
	.dp-teamc-row--odd .dp-teamc-image { order: -1; }
	.dp-teamc-row--odd .dp-teamc-text  { text-align: left; }
	.dp-teamc-row--odd .dp-teamc-text .wp-block-heading::after { margin-left: 0; }
	.dp-teamc-row--odd .dp-teamc-credentials    { align-items: flex-start; }
	.dp-teamc-row--odd .dp-teamc-credential     { flex-direction: row; }

	/* Hero inner container — tighter padding at tablet */
	.dp-hero-section .wp-block-cover__inner-container { padding-top: 80px !important; padding-bottom: 60px !important; }

	/* Section padding */
	.dp-services-section,
	.dp-about-section,
	.dp-team-section,
	.dp-teamc-section,
	.dp-gallery-section,
	.dp-ba-section,
	.dp-why-section,
	.dp-faq-section,
	.dp-textimage2-section,
	.dp-imagetext2-section,
	.dp-partners-section { padding-top: 60px; padding-bottom: 60px; }
	.dp-cta-section      { padding-top: 80px; padding-bottom: 80px; }
	.dp-page-header      { padding-top: 72px; padding-bottom: 56px; }
}

/* ─── Mobile (≤ 640px) ────────────────────────────────────────────────────── */
@media (max-width: 640px) {

	/* Grid collapses */
	.dp-stats-grid    { grid-template-columns: repeat(2, 1fr); }
	.dp-services-grid { grid-template-columns: 1fr; }
	.dp-team-grid     { grid-template-columns: 1fr; }
	.dp-why-grid      { grid-template-columns: 1fr; }
	.dp-gallery-grid  { grid-template-columns: repeat(2, 1fr); }

	/* Stat cell borders */
	.dp-stat-cell                { border-right: none; }
	.dp-stat-cell:nth-child(odd) { border-right: 1px solid var(--dp-sand); }
	.dp-stat-cell                { padding: 32px 16px; }

	/* Hero inner container — tighter on mobile */
	.dp-hero-section .wp-block-cover__inner-container { padding-top: 60px !important; padding-bottom: 48px !important; }

	/* Section padding */
	.dp-services-section,
	.dp-about-section,
	.dp-team-section,
	.dp-teamc-section,
	.dp-gallery-section,
	.dp-ba-section,
	.dp-why-section,
	.dp-faq-section,
	.dp-textimage2-section,
	.dp-imagetext2-section,
	.dp-partners-section { padding-top: 48px; padding-bottom: 48px; }
	.dp-teamc-row--even,
	.dp-teamc-row--odd   { padding: 40px 0; }
	.dp-cta-section      { padding-top: 60px; padding-bottom: 60px; }
	.dp-page-header      { padding-top: 56px; padding-bottom: 44px; }

	/* Page header — tighter heading and breadcrumb on small screens */
	.dp-page-header__title h1,
	.dp-page-header__title .wp-block-heading { font-size: clamp(36px, 10vw, 52px) !important; }

	.dp-page-header__breadcrumb {
		letter-spacing: 1px;
		margin-bottom: 24px !important;
		gap: 6px;
	}

	/* Partners — tighter circle gap on mobile */
	.dp-partners-grid { gap: 24px; }
	.dp-partner-circle { width: 68px; height: 68px; }

	/* Text+Image / Image+Text — reduce image height on mobile */
	.dp-textimage2-image,
	.dp-imagetext2-image { height: 240px; }

	/* Hero heading — tighter at narrow widths */
	.dp-hero-section .wp-block-heading { font-size: clamp(40px, 10vw, 52px); }

	/* Hero buttons — stack full width for easy tapping */
	.dp-hero-section .wp-block-buttons                                            { flex-direction: column; align-items: stretch; }
	.dp-hero-section .wp-block-button                                             { width: 100%; }
	.dp-hero-section .wp-block-button .wp-block-button__link,
	.dp-hero-section .wp-block-button.dp-btn--ghost .wp-block-button__link        { width: 100%; text-align: center !important; box-sizing: border-box; }

	/* Hero mini-stats — 2×2 grid */
	.dp-hero-stats                    { display: grid; grid-template-columns: 1fr 1fr; margin-top: var(--dp-sp-md); gap: 0; padding-top: 0; border-top: none; }
	.dp-hero-stat                     { padding: 16px; margin: 0; border-right: none; border-bottom: 1px solid rgba(196,169,156,0.2); }
	.dp-hero-stat:nth-child(odd)      { border-right: 1px solid rgba(196,169,156,0.2); }
	.dp-hero-stat:last-child,
	.dp-hero-stat:nth-last-child(2)   { border-bottom: none; }

	/* CTA buttons — wrap and center */
	.dp-cta-section .wp-block-buttons { flex-wrap: wrap; }
}


/* ─── Homepage: remove top gap so hero slides under header ───────────────── */

.home .site-header-upper-inner-wrap {
	height: 0 !important;
}

.home .entry-content,
.home .wp-site-blocks,
.home .page-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}


/* ─── Text + Image 2 (Technology) ────────────────────────────────────────── */

.dp-textimage2-section { background: var(--dp-warm-white); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }

.dp-textimage2-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--dp-sp-xl);
	align-items: center;
}



.dp-textimage2-text .wp-block-heading {
	margin-top: 0;
	margin-bottom: 0;
	font-size: clamp(32px, 3.5vw, 46px);
	line-height: 1.1;
}

.dp-textimage2-text .wp-block-heading::after {
	content: '';
	display: block;
	width: 128px;
	height: 9px;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) 0 0 / 128px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) 0 100% / 80px 2px no-repeat;
	margin-top: 20px;
	margin-bottom: 24px;
}

.dp-textimage2-text p { color: var(--dp-mocha); line-height: 1.75; margin-bottom: var(--dp-sp-md); }
.dp-textimage2-text p:last-child { margin-bottom: 0; }

.dp-textimage2-image {
	position: relative;
	z-index: 0;
	height: 460px;
	min-width: 0;
}

.dp-textimage2-image .wp-block-image { height: 100%; margin: 0; display: block; border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg); overflow: hidden; }
.dp-textimage2-image .wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }

.dp-textimage2-image::before {
	content: '';
	position: absolute;
	inset: 14px -14px -14px 14px;
	border: 2px solid var(--dp-pink);
	border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg);
	z-index: -1;
	pointer-events: none;
}

.dp-textimage2-image::after { display: none; }


/* ─── Image + Text 2 (Hygiene) ───────────────────────────────────────────── */

.dp-imagetext2-section { background: var(--dp-sand); padding: var(--dp-sp-xl) clamp(20px,4vw,56px); }

.dp-imagetext2-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--dp-sp-xl);
	align-items: center;
}

.dp-imagetext2-image {
	position: relative;
	z-index: 0;
	height: 460px;
	min-width: 0;
}

.dp-imagetext2-image .wp-block-image { height: 100%; margin: 0; display: block; border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg); overflow: hidden; }
.dp-imagetext2-image .wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }

.dp-imagetext2-image::before {
	content: '';
	position: absolute;
	inset: 14px -14px -14px 14px;
	border: 2px solid var(--dp-pink);
	border-radius: 0 var(--dp-radius-lg) 0 var(--dp-radius-lg);
	z-index: -1;
	pointer-events: none;
}

.dp-imagetext2-image::after { display: none; }

.dp-imagetext2-text .wp-block-heading {
	margin-top: 0;
	margin-bottom: 0;
	font-size: clamp(32px, 3.5vw, 46px);
	line-height: 1.1;
}

.dp-imagetext2-text .wp-block-heading::after {
	content: '';
	display: block;
	width: 128px;
	height: 9px;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) 0 0 / 128px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) 0 100% / 80px 2px no-repeat;
	margin-top: 20px;
	margin-bottom: 24px;
}

.dp-imagetext2-text p { color: var(--dp-mocha); line-height: 1.75; margin-bottom: var(--dp-sp-md); }
.dp-imagetext2-text p:last-child { margin-bottom: 0; }


/* ─── Partners ────────────────────────────────────────────────────────────── */

.dp-partners-section {
	background: var(--dp-ivory);
	padding: 72px clamp(20px,4vw,56px);
	border-top: 1px solid var(--dp-sand);
}

.dp-partners-header { text-align: center; margin-bottom: 52px; }
.dp-partners-header .wp-block-heading { margin: 0; font-size: clamp(32px, 4vw, 48px); line-height: 1.1; }

.dp-partners-grid {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dp-sp-lg);
	align-items: center;
	justify-content: center;
}

.dp-partner-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 0 !important;
}

.dp-partner-circle {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	border: 1.5px solid var(--dp-dusty-rose);
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--dp-ivory);
	transition: all 0.22s ease;
	padding: 0 !important;
	flex-shrink: 0;
	overflow: hidden;
}

.dp-partner-circle:hover,
.dp-partner-item:hover .dp-partner-circle {
	border-color: var(--dp-pink);
	transform: translateY(-3px) scale(1.06);
	box-shadow: 0 8px 24px rgba(203, 82, 160, 0.15);
}

.dp-partner-logo {
	width: 100%;
	height: 100%;
	margin: 0 !important;
}

.dp-partner-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
	padding: 12px;
	box-sizing: border-box;
	transition: transform 0.22s ease;
}

.dp-partner-circle:hover .dp-partner-logo img,
.dp-partner-item:hover .dp-partner-logo img {
	transform: scale(1.08);
}

.dp-partner-circle a {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}

.dp-partner-name {
	font-size: 16px;
	font-weight: 600;
	color: var(--dp-mocha);
	margin: 0 !important;
	text-align: center;
}

.dp-partner-name a {
	color: var(--dp-mocha);
	text-decoration: none;
	transition: color 0.2s ease;
}

.dp-partner-name a:hover,
.dp-partner-item:hover .dp-partner-name a {
	color: var(--dp-pink);
}

.dp-partner-sub {
	font-size: 16px;
	font-weight: 300;
	color: var(--dp-dusty-rose);
	margin: 0 !important;
	text-align: center;
	letter-spacing: 0.3px;
}

.dp-partners-disclaimer {
	font-size: 16px;
	font-weight: 300;
	color: var(--dp-dusty-rose);
	text-align: center;
	letter-spacing: 0.3px;
	margin-top: var(--dp-sp-lg) !important;
	margin-bottom: 0 !important;
}


/* ─── Text Columns (2-col & 3-col) ──────────────────────────────────────── */

.dp-textcol-section {
	background: var(--dp-warm-white);
	padding: var(--dp-sp-xl) clamp(20px, 4vw, 56px);
}

.dp-textcol-grid {
	gap: var(--dp-sp-lg) !important;
	align-items: flex-start;
}

.dp-textcol-col h3 {
	font-family: var(--dp-heading);
	font-style: italic;
	font-weight: 700;
	color: var(--dp-black);
	margin-bottom: 16px;
	line-height: 1.15;
}

.dp-textcol-section--2 .dp-textcol-col h3 {
	font-size: clamp(28px, 3vw, 32px);
}

.dp-textcol-section--3 .dp-textcol-col h3 {
	font-size: clamp(28px, 2.5vw, 34px);
}

.dp-textcol-col p {
	font-family: var(--dp-body);
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--dp-mocha);
	line-height: 1.75;
	margin: 0;
}


/* ─── FAQ Full Page ──────────────────────────────────────────────────────── */

.dp-faqpage__header {
	background: var(--dp-black);
	padding: var(--dp-sp-xxl) clamp(20px, 4vw, 56px) var(--dp-sp-xl);
}

.dp-faqpage__title {
	font-family: var(--dp-heading) !important;
	font-size: clamp(48px, 7vw, 88px) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	color: var(--dp-warm-white) !important;
	line-height: 1.05 !important;
	margin: 0 0 28px !important;
}

.dp-faqpage__title em {
	color: var(--dp-pink);
	font-style: italic;
}

.dp-faqpage__intro {
	font-family: var(--dp-body);
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--dp-dusty-rose);
	line-height: 1.75;
	max-width: 560px;
	margin: 0 !important;
}

.dp-faqpage__body {
	background: var(--dp-warm-white);
	padding: var(--dp-sp-xl) clamp(20px, 4vw, 56px);
}

/* Auto-number questions with CSS counters */
.dp-faqpage__body {
	counter-reset: faq-item;
}

.dp-faqpage__category {
	padding-bottom: var(--dp-sp-xl);
	margin-bottom: var(--dp-sp-xl);
	border-bottom: 1px solid var(--dp-sand);
}

.dp-faqpage__category:last-of-type {
	border-bottom: none;
	margin-bottom: 0;
}

.dp-faqpage__cat-label {
	font-family: var(--dp-body) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	letter-spacing: 4px !important;
	text-transform: uppercase !important;
	color: var(--dp-pink) !important;
	margin: 0 0 40px !important;
}

/* Override global details styles for the full-page variant */
.dp-faqpage__item {
	border-top: 1px solid var(--dp-sand) !important;
	padding: 0 !important;
	counter-increment: faq-item;
}

.dp-faqpage__item:last-of-type {
	border-bottom: 1px solid var(--dp-sand) !important;
}

.dp-faqpage__item > summary {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(28px, 2.8vw, 32px) !important;
	color: var(--dp-black) !important;
	padding: 28px 56px 28px 0 !important;
	cursor: pointer;
	list-style: none;
	position: relative;
	display: grid;
	grid-template-columns: 48px 1fr;
	align-items: center;
	gap: 0;
}

.dp-faqpage__item > summary::-webkit-details-marker {
	display: none;
}

/* Pink counter number */
.dp-faqpage__item > summary::before {
	content: counter(faq-item, decimal-leading-zero);
	font-family: var(--dp-body) !important;
	font-style: normal !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	color: var(--dp-pink) !important;
	letter-spacing: 1px;
	line-height: 1;
	align-self: center;
}

/* Override global + / rotate indicator */
.dp-faqpage__item > summary::after {
	content: "+" !important;
	position: absolute !important;
	right: 0 !important;
	top: 50% !important;
	transform: translateY(-50%) rotate(0deg) !important;
	font-size: 2rem !important;
	font-weight: 300 !important;
	color: var(--dp-pink) !important;
	font-family: var(--dp-body) !important;
	font-style: normal !important;
	line-height: 1 !important;
	transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.dp-faqpage__item[open] > summary::after {
	transform: translateY(-50%) rotate(45deg) !important;
}

.dp-faqpage__item > p,
.dp-faqpage__item .wp-block-paragraph {
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--dp-mocha);
	line-height: 1.8;
	padding: 0 0 28px 48px !important;
	margin: 0 !important;
	max-width: 720px;
}

/* CTA at bottom */
.dp-faqpage__cta {
	text-align: center;
	padding-top: var(--dp-sp-xl);
	border-top: 1px solid var(--dp-sand);
	margin-top: var(--dp-sp-xl);
}

.dp-faqpage__cta-text {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-size: clamp(28px, 4vw, 44px) !important;
	font-weight: 700 !important;
	color: var(--dp-black) !important;
	margin: 0 0 32px !important;
}

@media (max-width: 960px) {
	.dp-textimage2-grid,
	.dp-imagetext2-grid    { grid-template-columns: 1fr; gap: var(--dp-sp-lg); }
	.dp-textimage2-image,
	.dp-imagetext2-image   { height: 300px; }
}


/* ─── Dual Split — Image & Text (both orientations + background image) ──── */

.dp-dual-section.wp-block-cover {
	min-height: 0; /* replaces the old inline min-height:0px (cover block default is 430px) */
	padding: 0 !important;
	background-color: var(--dp-warm-white) !important;
	margin-bottom: 0 !important;
}

.dp-dual-section .wp-block-cover__inner-container {
	max-width: 100%;
	padding: 0;
	width: 100%;
}

.dp-dual-inner {
	max-width: var(--dp-wide);
	margin: 0 auto;
	padding: var(--dp-sp-xxl) clamp(20px, 4vw, 56px);
	display: flex !important;
	flex-direction: column !important;
	gap: var(--dp-sp-xxl) !important;
}

.dp-dual-row.wp-block-columns {
	display: flex !important;
	align-items: center !important;
	gap: clamp(40px, 6vw, 96px) !important;
	margin: 0 !important;
}


.dp-dual-text.wp-block-column {
	display: flex !important;
	flex-direction: column !important;
	gap: 20px !important;
}

.dp-dual-label {
	font-family: var(--dp-body) !important;
	font-weight: 600 !important;
	font-size: 0.6875rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--dp-pink) !important;
	margin: 0 !important;
}

.dp-dual-text .wp-block-heading {
	font-size: clamp(28px, 3vw, 42px) !important;
	color: var(--dp-black) !important;
	margin: 0 !important;
}

.dp-dual-text .wp-block-heading::after {
	content: '';
	display: block;
	width: 128px;
	height: 9px;
	background:
		linear-gradient(var(--dp-pink), var(--dp-pink)) 0 0 / 128px 2px no-repeat,
		linear-gradient(rgba(203, 82, 160, 0.45), rgba(203, 82, 160, 0.45)) 0 100% / 80px 2px no-repeat;
	margin: 20px 0 4px;
}

.dp-dual-text p {
	color: var(--dp-mocha) !important;
	font-size: 1.25rem !important;
	line-height: 1.65 !important;
	margin: 0 !important;
}

.dp-dual-link a {
	font-family: var(--dp-body);
	font-weight: 600;
	font-size: 16px;
	color: var(--dp-black);
	border-bottom: 1px solid var(--dp-mocha);
	padding-bottom: 2px;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.2s ease, border-bottom-color 0.2s ease;
}

.dp-dual-link a:hover {
	color: var(--dp-mocha);
	border-bottom-color: var(--dp-black);
}

@media (max-width: 768px) {
	.dp-dual-row.wp-block-columns {
		flex-direction: column !important;
	}
	.dp-dual-inner {
		gap: var(--dp-sp-xl) !important;
	}
}


/* ─── Fix: Kadence content.min.css zeroes padding-left/right on .alignfull ──
   Kadence's rule `.alignfull { padding-left: 0; padding-right: 0 }` (0,1,0)
   loads after our stylesheet and overrides all section side padding.
   Using .wp-block-group.dp-xxx (0,2,0) beats it without !important.        */

.entry-content .wp-block-group.dp-about-section,
.entry-content .wp-block-group.dp-stats-section,
.entry-content .wp-block-cover.dp-teamc-section,
.entry-content .wp-block-group.dp-services-section,
.entry-content .wp-block-group.dp-team-section,
.entry-content .wp-block-group.dp-gallery-section,
.entry-content .wp-block-group.dp-ba-section,
.entry-content .wp-block-group.dp-why-section,
.entry-content .wp-block-group.dp-faq-section,
.entry-content .wp-block-group.dp-cta-section,
.entry-content .wp-block-group.dp-textimage2-section,
.entry-content .wp-block-group.dp-imagetext2-section,
.entry-content .wp-block-group.dp-partners-section,
.entry-content .wp-block-cover.dp-dual-section {
	padding-left: clamp(20px, 4vw, 56px);
	padding-right: clamp(20px, 4vw, 56px);
}

.entry-content .wp-block-group.dp-page-header {
	padding-left: clamp(24px, 4vw, 56px);
	padding-right: clamp(24px, 4vw, 56px);
}


/* ─── Dividers ────────────────────────────────────────────────────────────── */

[class^="dp-divider-"],
[class*=" dp-divider-"] {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	overflow: hidden;
	background-repeat: no-repeat;
	background-size: 100% 100%;
	display: block;
	width: 100%;
}

/* Wave — Warm White to Sand */
.dp-divider-wave {
	height: 96px;
	background-color: #FAF9F7;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 96' preserveAspectRatio='none'><defs><linearGradient id='wva' x1='0' y1='0' x2='1' y2='0'><stop offset='0' stop-color='%23E8DDD4'/><stop offset='0.5' stop-color='%23F2EDE8'/><stop offset='1' stop-color='%23E8DDD4'/></linearGradient></defs><rect width='1440' height='96' fill='%23E8DDD4'/><path d='M0,64 C240,16 480,96 720,48 C960,0 1200,80 1440,48 L1440,96 L0,96 Z' fill='url(%23wva)'/><path d='M0,40 C360,0 720,88 1080,40 C1260,16 1380,64 1440,56 L1440,96 L0,96 Z' fill='rgba(203,82,160,0.08)' opacity='0.7'/><path d='M0,48 C240,8 480,88 720,44 C960,0 1200,76 1440,44' fill='none' stroke='%23C4A99C' stroke-width='1' opacity='0.35'/></svg>");
}

/* Wave Flip — Sand to Warm White */
.dp-divider-wave-flip {
	height: 96px;
	background-color: #E8DDD4;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 96' preserveAspectRatio='none'><defs><linearGradient id='wfva' x1='0' y1='0' x2='1' y2='0'><stop offset='0' stop-color='%23E8DDD4'/><stop offset='0.5' stop-color='%23F2EDE8'/><stop offset='1' stop-color='%23E8DDD4'/></linearGradient></defs><rect width='1440' height='96' fill='%23FAF9F7'/><path d='M0,32 C240,80 480,0 720,48 C960,96 1200,16 1440,48 L1440,0 L0,0 Z' fill='url(%23wfva)'/><path d='M0,56 C360,96 720,8 1080,56 C1260,80 1380,32 1440,40 L1440,0 L0,0 Z' fill='rgba(203,82,160,0.08)' opacity='0.7'/><path d='M0,48 C240,88 480,8 720,52 C960,96 1200,20 1440,52' fill='none' stroke='%23C4A99C' stroke-width='1' opacity='0.35'/></svg>");
}

/* Angle — Sand to Ivory */
.dp-divider-angle {
	height: 72px;
	background-color: #E8DDD4;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 72' preserveAspectRatio='none'><rect width='1440' height='72' fill='%23F2EDE8'/><path d='M0,0 L1440,0 L1440,72 Z' fill='%23E8DDD4'/><line x1='0' y1='0' x2='1440' y2='72' stroke='%23CB52A0' stroke-width='1' opacity='0.3'/></svg>");
}

/* Scallop — Warm White to Black */
.dp-divider-scallop {
	height: 64px;
	background-color: #FAF9F7;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 64' preserveAspectRatio='none'><rect width='1440' height='64' fill='%23111111'/><path d='M0,64 A80,80 0 0,0 160,64 A80,80 0 0,0 320,64 A80,80 0 0,0 480,64 A80,80 0 0,0 640,64 A80,80 0 0,0 800,64 A80,80 0 0,0 960,64 A80,80 0 0,0 1120,64 A80,80 0 0,0 1280,64 A80,80 0 0,0 1440,64 L1440,0 L0,0 Z' fill='%23FAF9F7'/></svg>");
}

/* Scallop Flip — Black to Warm White */
.dp-divider-scallop-flip {
	height: 64px;
	background-color: #111111;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 64' preserveAspectRatio='none'><rect width='1440' height='64' fill='%23FAF9F7'/><path d='M0,0 A80,80 0 0,1 160,0 A80,80 0 0,1 320,0 A80,80 0 0,1 480,0 A80,80 0 0,1 640,0 A80,80 0 0,1 800,0 A80,80 0 0,1 960,0 A80,80 0 0,1 1120,0 A80,80 0 0,1 1280,0 A80,80 0 0,1 1440,0 L1440,64 L0,64 Z' fill='%23111111'/></svg>");
}

/* Ink — Warm White to Black */
.dp-divider-ink {
	height: 80px;
	background-color: #FAF9F7;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'><rect width='1440' height='80' fill='%23111111'/><path d='M0,0 L1440,0 L1440,30 C1380,55 1310,15 1230,42 C1150,68 1060,18 970,45 C880,72 780,22 680,48 C580,74 490,25 390,50 C290,75 180,28 90,52 L0,65 Z' fill='%23FAF9F7'/><path d='M0,72 C180,45 360,78 540,55 C720,32 900,68 1080,42 C1260,16 1380,55 1440,38' fill='none' stroke='%23CB52A0' stroke-width='1.5' opacity='0.2'/></svg>");
}

/* Ink Flip — Black to Warm White */
.dp-divider-ink-flip {
	height: 80px;
	background-color: #111111;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'><rect width='1440' height='80' fill='%23FAF9F7'/><path d='M0,80 L1440,80 L1440,50 C1380,25 1310,65 1230,38 C1150,12 1060,62 970,35 C880,8 780,58 680,32 C580,6 490,55 390,30 C290,5 180,52 90,28 L0,15 Z' fill='%23111111'/><path d='M0,8 C180,35 360,2 540,25 C720,48 900,12 1080,38 C1260,64 1380,25 1440,42' fill='none' stroke='%23CB52A0' stroke-width='1.5' opacity='0.2'/></svg>");
}

/* Zigzag — Ivory to Sand */
.dp-divider-zigzag {
	height: 48px;
	background-color: #F2EDE8;
	background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 48' preserveAspectRatio='none'><rect width='1440' height='48' fill='%23E8DDD4'/><path d='M0,0 L1440,0 L1410,48 L1380,0 L1350,48 L1320,0 L1290,48 L1260,0 L1230,48 L1200,0 L1170,48 L1140,0 L1110,48 L1080,0 L1050,48 L1020,0 L990,48 L960,0 L930,48 L900,0 L870,48 L840,0 L810,48 L780,0 L750,48 L720,0 L690,48 L660,0 L630,48 L600,0 L570,48 L540,0 L510,48 L480,0 L450,48 L420,0 L390,48 L360,0 L330,48 L300,0 L270,48 L240,0 L210,48 L180,0 L150,48 L120,0 L90,48 L60,0 L30,48 L0,0 Z' fill='%23F2EDE8'/><polyline points='0,0 30,48 60,0 90,48 120,0 150,48 180,0 210,48 240,0 270,48 300,0 330,48 360,0 390,48 420,0 450,48 480,0 510,48 540,0 570,48 600,0 630,48 660,0 690,48 720,0 750,48 780,0 810,48 840,0 870,48 900,0 930,48 960,0 990,48 1020,0 1050,48 1080,0 1110,48 1140,0 1170,48 1200,0 1230,48 1260,0 1290,48 1320,0 1350,48 1380,0 1410,48 1440,0' fill='none' stroke='%23C4A99C' stroke-width='1' opacity='0.5'/></svg>");
}


/* ─── Image scroll-reveal animations ─────────────────────────────────────── */
/*
 * Three layers per image:
 *   1. clip-path wipe  — figure/image reveals top-to-bottom (spring easing)
 *   2. inner scale     — img settles from 1.07 → 1.0, slightly slower for parallax feel
 *   3. accent frame    — ::before fades in and snaps from a displaced offset, 0.5s delayed
 *
 * All wrapped in prefers-reduced-motion so accessibility is respected.
 */

@media (prefers-reduced-motion: no-preference) {

	/* ── Initial hidden states (only when animations.js is running) ── */

	.js-animations .dp-about-image figure,
	.js-animations .dp-teamc-image figure,
	.js-animations .dp-textimage2-image .wp-block-image,
	.js-animations .dp-imagetext2-image .wp-block-image {
		clip-path: inset(0 0 100% 0 round 0 24px 0 24px);
		transition: clip-path 1.0s cubic-bezier(0.16, 1, 0.3, 1);
		will-change: clip-path;
	}

	.js-animations .dp-about-image img,
	.js-animations .dp-teamc-image img,
	.js-animations .dp-textimage2-image .wp-block-image img,
	.js-animations .dp-imagetext2-image .wp-block-image img {
		transform: scale(1.07);
		transition: transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
	}

	.js-animations .dp-about-image::before,
	.js-animations .dp-teamc-image::before,
	.js-animations .dp-textimage2-image::before,
	.js-animations .dp-imagetext2-image::before {
		opacity: 0;
		transform: translate(6px, 6px);
		transition: opacity 0.55s ease 0.5s,
		            transform 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.45s;
	}

	/* ── Revealed states (class added by IntersectionObserver) ── */

	.dp-about-image.dp-img--visible figure,
	.dp-teamc-image.dp-img--visible figure,
	.dp-textimage2-image.dp-img--visible .wp-block-image,
	.dp-imagetext2-image.dp-img--visible .wp-block-image {
		clip-path: inset(0 0 0% 0 round 0 24px 0 24px);
	}

	.dp-about-image.dp-img--visible img,
	.dp-teamc-image.dp-img--visible img,
	.dp-textimage2-image.dp-img--visible .wp-block-image img,
	.dp-imagetext2-image.dp-img--visible .wp-block-image img {
		transform: scale(1);
	}

	.dp-about-image.dp-img--visible::before,
	.dp-teamc-image.dp-img--visible::before,
	.dp-textimage2-image.dp-img--visible::before,
	.dp-imagetext2-image.dp-img--visible::before {
		opacity: 1;
		transform: translate(0, 0);
	}

	/* ── Grid card stagger ── */

	.js-animations .dp-services-grid .dp-service-card,
	.js-animations .dp-why-grid .dp-why-item {
		opacity: 0;
		transform: translateY(28px);
		transition: opacity 0.5s ease, transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
	}

	/* Services — 6 cards, 80ms apart */
	.js-animations .dp-services-grid .dp-service-card:nth-child(1) { transition-delay:   0ms; }
	.js-animations .dp-services-grid .dp-service-card:nth-child(2) { transition-delay:  80ms; }
	.js-animations .dp-services-grid .dp-service-card:nth-child(3) { transition-delay: 160ms; }
	.js-animations .dp-services-grid .dp-service-card:nth-child(4) { transition-delay: 240ms; }
	.js-animations .dp-services-grid .dp-service-card:nth-child(5) { transition-delay: 320ms; }
	.js-animations .dp-services-grid .dp-service-card:nth-child(6) { transition-delay: 400ms; }

	/* Why Us — 4 items, 90ms apart */
	.js-animations .dp-why-grid .dp-why-item:nth-child(1) { transition-delay:   0ms; }
	.js-animations .dp-why-grid .dp-why-item:nth-child(2) { transition-delay:  90ms; }
	.js-animations .dp-why-grid .dp-why-item:nth-child(3) { transition-delay: 180ms; }
	.js-animations .dp-why-grid .dp-why-item:nth-child(4) { transition-delay: 270ms; }

	.dp-services-grid.dp-grid--visible .dp-service-card,
	.dp-why-grid.dp-grid--visible .dp-why-item {
		opacity: 1;
		transform: translateY(0);
	}

}

/* ─── Sub-page Navigation Cards ─────────────────────────────────────────── */

.dp-submenu-cards {
	padding-left: clamp(24px, 4vw, 56px) !important;
	padding-right: clamp(24px, 4vw, 56px) !important;
}

.dp-submenu-card-list {
}

.dp-submenu-card__image.wp-block-image {
	flex-shrink: 0;
	width: 350px;
	margin: 0 !important;
}

.dp-submenu-card__image img {
	width: 350px;
	height: 230px;
	object-fit: cover;
	border-radius: var(--dp-radius-md);
	display: block;
}

.dp-submenu-card {
	position: relative;
	padding: 36px 0;
	border-top: 1px solid var(--dp-dusty-rose);
	gap: 24px !important;
}

.dp-submenu-card:last-child {
	border-bottom: 1px solid var(--dp-dusty-rose);
}

.dp-submenu-card__body {
	flex: 1;
	min-width: 0;
	gap: 8px !important;
}


.dp-submenu-card__title {
	font-size: clamp(28px, 3.2vw, 44px) !important;
	margin: 0 !important;
	line-height: 1.1 !important;
}

.dp-submenu-card__title a {
	color: var(--dp-black);
	text-decoration: none;
	transition: color 0.2s ease;
}

/* Stretch the link to cover the whole card row */
.dp-submenu-card__title a::after {
	content: '';
	position: absolute;
	inset: 0;
}

.dp-submenu-card__desc {
	color: var(--dp-mocha) !important;
	margin: 0 !important;
	font-size: 16px !important;
	max-width: 600px;
	line-height: 1.6 !important;
}

.dp-submenu-card__arrow {
	width: 52px;
	height: 52px;
	border-radius: var(--dp-radius-full);
	background-color: var(--dp-pink);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.2s ease;
}

/* Arrow inner paragraph reset */
.dp-submenu-card__arrow p {
	margin: 0 !important;
	font-size: 18px;
	line-height: 1;
	color: inherit;
}

/* Hover */
.dp-submenu-card:hover .dp-submenu-card__title a {
	color: var(--dp-pink);
}

.dp-submenu-card:hover .dp-submenu-card__arrow {
	background-color: #b8449a;
	transform: translateX(6px);
}

@media ( max-width: 768px ) {
	.dp-submenu-card {
		flex-wrap: wrap !important;
	}

	.dp-submenu-card__image.wp-block-image {
		width: 100% !important;
	}

	.dp-submenu-card__image img {
		width: 100% !important;
		height: 200px;
	}

	.dp-submenu-card__title {
		font-size: clamp(28px, 5vw, 32px) !important;
	}
}

@media ( max-width: 640px ) {
	.dp-submenu-card {
		padding: 28px 0;
	}

	.dp-submenu-card__arrow {
		width: 40px;
		height: 40px;
	}

	.dp-submenu-card__arrow svg {
		width: 18px;
		height: 18px;
	}
}

/* ─── Section label utility (shared across all patterns) ──────────────────── */

.dp-section-label {
	font-family: var(--dp-body);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--dp-mocha);
	margin: 0 0 16px !important;
}

.dp-section-label--dark {
	color: rgba(196, 169, 156, 0.65);
}


/* ─── Team Member Grid (3-column portrait cards) ─────────────────────────── */

.dp-team-members-title {
	font-size: clamp(28px, 3.5vw, 44px) !important;
	color: var(--dp-black);
	margin: 0 !important;
}

.dp-team-members-grid {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
}

.dp-team-member__photo {
	margin: 0 0 24px !important;
}

.dp-team-member__photo img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	object-position: top;
	display: block;
}

.dp-team-member__info {
	padding: 0 4px;
}

.dp-team-member__role {
	font-family: var(--dp-body) !important;
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--dp-pink) !important;
	margin: 0 0 8px !important;
}

.dp-team-member__name {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(28px, 2.2vw, 30px) !important;
	color: var(--dp-black) !important;
	line-height: 1.1 !important;
	margin: 0 0 14px !important;
}

.dp-team-member__bio {
	font-size: 15px !important;
	line-height: 1.75 !important;
	color: var(--dp-mocha) !important;
	margin: 0 !important;
}

@media ( max-width: 900px ) {
	.dp-team-members-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
}

@media ( max-width: 540px ) {
	.dp-team-members-grid { grid-template-columns: 1fr; }
}

/* ─── Our Dentists ───────────────────────────────────────────────────────── */

.dp-dentist-row {
	display: flex !important;
	align-items: center;
	gap: 72px !important;
	padding: 80px 0;
	border-top: 1px solid var(--dp-sand);
	flex-wrap: nowrap !important;
}

.dp-dentist-row:first-of-type {
	border-top: none;
	padding-top: 0;
}

.dp-dentist-row:last-of-type {
	padding-bottom: 0;
}

.dp-dentist-col--image {
	flex: 0 0 42% !important;
	max-width: 42% !important;
	width: 42%;
}

.dp-dentist-img img {
	width: 100%;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	display: block;
}


.dp-dentist-col--content {
	flex: 1 !important;
	min-width: 0;
}

.dp-dentist-specialty {
	font-family: var(--dp-body) !important;
	font-size: 13px !important;
	font-weight: 600;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--dp-pink) !important;
	margin: 0 0 16px !important;
}

.dp-dentist-name {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(36px, 4vw, 56px) !important;
	line-height: 1.05 !important;
	color: var(--dp-black) !important;
	margin: 0 0 24px !important;
	letter-spacing: -0.5px;
}

.dp-dentist-bio {
	font-size: 1.25rem !important;
	line-height: 1.75 !important;
	color: var(--dp-mocha) !important;
	margin: 0 0 36px !important;
}

.dp-dentist-quote {
	padding: 20px 0 20px 24px !important;
	border-left: 2px solid var(--dp-pink);
	margin: 0 !important;
}

.dp-dentist-quote p {
	font-family: var(--dp-heading);
	font-style: italic;
	font-size: clamp(19px, 2vw, 25px);
	color: var(--dp-black);
	line-height: 1.5;
	margin: 0 !important;
}

@media ( max-width: 900px ) {
	.dp-dentist-row { gap: 40px !important; }
	.dp-dentist-col--image { flex: 0 0 38% !important; max-width: 38% !important; }
}

@media ( max-width: 640px ) {
	.dp-dentist-row {
		flex-direction: column !important;
		padding: 48px 0;
		gap: 32px !important;
	}

	.dp-dentist-row--reverse {
		flex-direction: column !important;
	}

	.dp-dentist-col--image {
		flex: none !important;
		max-width: 100% !important;
		width: 100%;
	}

	.dp-dentist-img img { aspect-ratio: 4 / 3; }
}


/* ─── Our Philosophy ─────────────────────────────────────────────────────── */

.dp-philosophy-quote {
	position: relative;
	text-align: center;
}

/* Large decorative quote mark — purely atmospheric */
.dp-philosophy-quote::before {
	content: '\201C';
	font-family: var(--dp-heading);
	font-style: italic;
	font-size: clamp(160px, 22vw, 300px);
	color: rgba(203, 82, 160, 0.1);
	position: absolute;
	top: -0.45em;
	left: 50%;
	transform: translateX(-50%);
	line-height: 1;
	pointer-events: none;
	user-select: none;
	z-index: 0;
}

.dp-philosophy-quote__text {
	position: relative;
	z-index: 1;
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(26px, 3.8vw, 50px) !important;
	line-height: 1.28 !important;
	color: var(--dp-warm-white) !important;
	letter-spacing: -0.3px;
	margin: 0 !important;
}

.dp-philosophy-quote__attribution {
	font-family: var(--dp-body) !important;
	font-size: 14px !important;
	font-weight: 400;
	letter-spacing: 1px;
	color: var(--dp-dusty-rose) !important;
	margin: 0 !important;
}

.dp-philosophy-body__text {
	font-size: 17px !important;
	line-height: 1.85 !important;
	color: rgba(250, 249, 247, 0.6) !important;
	margin: 0 !important;
}

/* ─── Our Values ─────────────────────────────────────────────────────────── */

.dp-team-values__title {
	font-size: clamp(26px, 3vw, 40px) !important;
	color: var(--dp-black);
	margin: 0 !important;
}

.dp-values-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	counter-reset: value-item;
}

.dp-value-item {
	counter-increment: value-item;
	padding: 48px;
	border-top: 1px solid var(--dp-sand);
	border-right: 1px solid var(--dp-sand);
}

.dp-value-item:nth-child(2n)   { border-right: none; }
.dp-value-item:nth-child(3),
.dp-value-item:nth-child(4)    { border-bottom: 1px solid var(--dp-sand); }

/* Large ghost number — acts as texture, not content */
.dp-value-item::before {
	content: counter(value-item, decimal-leading-zero);
	font-family: var(--dp-heading);
	font-style: italic;
	font-size: clamp(56px, 8vw, 104px);
	color: rgba(203, 82, 160, 0.11);
	line-height: 1;
	display: block;
	margin-bottom: 12px;
}

.dp-value-item__name {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-size: clamp(24px, 2.4vw, 34px) !important;
	color: var(--dp-black);
	margin: 0 0 14px !important;
	line-height: 1.1 !important;
}

.dp-value-item__desc {
	font-size: 15px !important;
	line-height: 1.75 !important;
	color: var(--dp-mocha);
	margin: 0 !important;
}

@media ( max-width: 640px ) {
	.dp-values-grid      { grid-template-columns: 1fr; }
	.dp-value-item       { border-right: none !important; padding: 36px 0; }
	.dp-value-item:nth-child(3),
	.dp-value-item:nth-child(4) { border-bottom: none; }
	.dp-value-item:last-child   { border-bottom: 1px solid var(--dp-sand); }
}

/* ─── Careers ────────────────────────────────────────────────────────────── */

.dp-careers-heading {
	font-family: var(--dp-heading) !important;
	font-style: italic !important;
	font-weight: 700 !important;
	font-size: clamp(40px, 5.5vw, 76px) !important;
	line-height: 1.05 !important;
	color: var(--dp-warm-white) !important;
	margin: 0 !important;
	max-width: 520px;
}

.dp-careers-intro {
	font-size: 17px !important;
	line-height: 1.75 !important;
	color: var(--dp-dusty-rose) !important;
	max-width: 380px;
	margin: 0 !important;
}

.dp-careers-benefits {
	border-top: 1px solid rgba(196, 169, 156, 0.25);
	padding-top: 64px;
}

/* Icon generated by CSS — no markup needed */
.dp-careers-benefit::before {
	content: '';
	display: block;
	width: 44px;
	height: 44px;
	border-radius: var(--dp-radius-full);
	background-color: rgba(203, 82, 160, 0.15);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' viewBox='0 0 24 24'%3E%3Cpath stroke='%23CB52A0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 12l2 2 4-4M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 24px;
	margin-bottom: 20px;
}

.dp-careers-benefit__title {
	font-family: var(--dp-body) !important;
	font-style: normal !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	color: var(--dp-warm-white) !important;
	margin: 0 0 10px !important;
}

.dp-careers-benefit__desc {
	font-size: 15px !important;
	line-height: 1.7 !important;
	color: rgba(250, 249, 247, 0.55) !important;
	margin: 0 !important;
}


/* ============================================================
   FOOTER
   ============================================================ */

/* ─── Outer shell ──────────────────────────────────────────── */

.site-footer {
	background: var(--dp-black) !important;
	color: var(--dp-dusty-rose) !important;
}

/* Match footer container to main content width */
.site-footer .site-container {
	max-width: 1290px !important;
	padding: 0 24px !important;
}

.site-footer .site-footer-row-container-inner {
	padding: 0 !important;
}

/* ─── Full-width map strip ──────────────────────────────────── */
/* #block-21 is the Kadence widget block containing the Google Map */
.site-footer #block-21 {
	width: 100vw;
	position: relative;
	left: 50%;
	margin-left: -50vw;
}

/* ─── 4-column content row: widths + padding ───────────────── */

.site-footer .kt-has-4-columns {
	grid-template-columns: 1.4fr 1fr 1fr 1fr !important;
	padding-top: 60px !important;
	padding-bottom: 0 !important;
	gap: 48px !important;
}

/* ─── Bottom bar: border-top + spacing ─────────────────────── */

.site-footer .widget_block:last-child .kt-row-column-wrap {
	border-top: 1px solid rgba(196, 169, 156, 0.15) !important;
	margin-top: 48px !important;
}

/* Hide the standalone spacer block since the bottom bar has its own border */
.site-footer .wp-block-kadence-spacer {
	display: none !important;
}

/* Force left-align on all footer column content */
.site-footer .kt-inside-inner-col {
	align-items: flex-start !important;
	text-align: left !important;
}

.site-footer .widget_nav_menu .menu-item,
.site-footer .widget_nav_menu .menu-item a {
	text-align: left !important;
}

/* Left-align the button wrapper */
.site-footer .wp-block-kadence-advancedbtn {
	justify-content: flex-start !important;
}

/* Left-align the logo + add gap below it */
.site-footer .wp-block-image {
	text-align: left !important;
	margin-top: 0 !important;
	margin-bottom: 20px !important;
}

/* ─── Brand description ────────────────────────────────────── */

.dp-footer-brand__desc {
	font-family: var(--dp-body) !important;
	font-weight: 300 !important;
	font-size: 14px !important;
	color: var(--dp-dusty-rose) !important;
	line-height: 1.75 !important;
	margin: 0 0 28px !important;
}

/* ─── Book Appointment button ──────────────────────────────── */

.site-footer .kt-button,
.site-footer .kb-button {
	font-family: var(--dp-body) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	color: #fff !important;
	background: var(--dp-pink) !important;
	border-color: var(--dp-pink) !important;
	border-radius: var(--dp-radius-full) !important;
	padding: 12px 24px !important;
	transition: background 0.22s ease !important;
}

.site-footer .kt-button:hover,
.site-footer .kb-button:hover {
	background: #b8449a !important;
	color: #fff !important;
	border-color: #b8449a !important;
}

/* ─── Column headings: widget titles + block headings ──────── */

.site-footer .widgettitle,
.site-footer h2.wp-block-heading {
	font-family: var(--dp-body) !important;
	font-style: normal !important;
	font-weight: 600 !important;
	font-size: 11px !important;
	letter-spacing: 4px !important;
	text-transform: uppercase !important;
	color: var(--dp-dusty-rose) !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
	border: none !important;
	line-height: 1 !important;
}

/* ─── Nav menu links ───────────────────────────────────────── */

.site-footer .widget_nav_menu .menu {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

.site-footer .widget_nav_menu .menu-item {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	border-bottom: none !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
}

.site-footer .widget_nav_menu .menu-item a {
	font-family: var(--dp-body) !important;
	font-weight: 300 !important;
	font-size: 14px !important;
	color: var(--dp-mocha) !important;
	text-decoration: none !important;
	border: none !important;
	padding: 0 !important;
	display: inline !important;
	line-height: 1 !important;
	transition: color 0.2s ease !important;
}

.site-footer .widget_nav_menu .menu-item a:hover {
	color: var(--dp-dusty-rose) !important;
}

/* ─── Opening hours & contact paragraphs ───────────────────── */

.site-footer .kt-inside-inner-col > p:not(.dp-footer-brand__desc) {
	font-family: var(--dp-body) !important;
	font-weight: 300 !important;
	font-size: 13px !important;
	color: var(--dp-mocha) !important;
	line-height: 1.75 !important;
	margin: 0 0 6px !important;
}

.dp-hours {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 4px;
}

.dp-hours__row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

.dp-hours__day {
	font-family: var(--dp-body);
	font-size: 13px;
	font-weight: 400;
	color: var(--dp-mocha);
	line-height: 1.75;
	white-space: nowrap;
}

.dp-hours__time {
	font-family: var(--dp-body);
	font-size: 13px;
	font-weight: 400;
	color: var(--dp-dusty-rose);
	line-height: 1.75;
	white-space: nowrap;
}

.dp-contact-link,
.dp-contact-address {
	font-family: var(--dp-body) !important;
	font-weight: 300 !important;
	font-size: 13px !important;
	color: var(--dp-mocha) !important;
	text-decoration: none !important;
	transition: color 0.2s ease !important;
}

.dp-contact-link:hover {
	color: var(--dp-dusty-rose) !important;
}

/* Space before the CONTACT heading within the hours column */
.site-footer h2.wp-block-heading + h2.wp-block-heading,
.site-footer p + h2.wp-block-heading,
.site-footer .wp-block-columns + h2.wp-block-heading {
	margin-top: 24px !important;
}

/* ─── Opening hours two-column layout ──────────────────────── */

.site-footer .wp-block-columns {
	gap: 12px !important;
	margin: 0 0 4px !important;
	flex-wrap: nowrap !important;
}

/* Day column: shrink to content width */
.site-footer .wp-block-columns .wp-block-column:first-child {
	flex: 0 0 auto !important;
	min-width: 0 !important;
}

/* Time column: take remaining space, right-align */
.site-footer .wp-block-columns .wp-block-column:last-child {
	flex: 1 1 auto !important;
	text-align: right !important;
}

.site-footer .wp-block-columns p {
	font-family: var(--dp-body) !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.75 !important;
	margin: 0 0 6px !important;
	white-space: nowrap !important;
}

/* Day names: mocha */
.site-footer .wp-block-columns .wp-block-column:first-child p {
	color: var(--dp-mocha) !important;
}

/* Times: dusty rose */
.site-footer .wp-block-columns .wp-block-column:last-child p {
	color: var(--dp-dusty-rose) !important;
}

/* ─── Spacer divider ───────────────────────────────────────── */

.site-footer .kt-divider {
	border-color: rgba(196, 169, 156, 0.15) !important;
	margin-top: 48px !important;
	margin-bottom: 0 !important;
}

/* ─── Bottom copyright bar ─────────────────────────────────── */
/* Targets the last widget block in the footer — the copyright row */

.site-footer .widget_block:last-child .kt-row-column-wrap {
	align-items: center !important;
	padding-top: 32px !important;
	padding-bottom: 32px !important;
}

.site-footer .widget_block:last-child .kt-inside-inner-col > p {
	font-family: var(--dp-body) !important;
	font-weight: 300 !important;
	font-size: 12px !important;
	color: rgba(196, 169, 156, 0.5) !important;
	letter-spacing: 0.5px !important;
	margin: 0 !important;
}

.site-footer .widget_block:last-child .widget_nav_menu .menu {
	flex-direction: row !important;
	gap: 24px !important;
	justify-content: flex-end !important;
}

.site-footer .widget_block:last-child .widget_nav_menu .menu-item a {
	font-size: 12px !important;
	color: rgba(196, 169, 156, 0.5) !important;
}

.site-footer .widget_block:last-child .widget_nav_menu .menu-item a:hover {
	color: var(--dp-dusty-rose) !important;
}

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

/* Tablet: 2-column grid */
@media ( max-width: 860px ) {
	.site-footer .kt-has-4-columns {
		grid-template-columns: 1fr 1fr !important;
		gap: 40px 32px !important;
		padding-top: 48px !important;
	}
}

/* Mobile: single column */
@media ( max-width: 640px ) {
	.site-footer .site-container {
		padding: 0 20px !important;
	}

	.site-footer .kt-has-4-columns {
		grid-template-columns: 1fr !important;
		gap: 36px !important;
		padding-top: 40px !important;
		padding-bottom: 40px !important;
	}

	/* Bottom bar: stack copyright above legal links */
	.site-footer .widget_block:last-child .kt-row-column-wrap {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 12px !important;
		padding-top: 24px !important;
		padding-bottom: 24px !important;
	}

	.site-footer .widget_block:last-child .widget_nav_menu .menu {
		justify-content: flex-start !important;
		flex-wrap: wrap !important;
		gap: 12px 20px !important;
	}
}
