/*
Theme Name: Tandem (Drs. David & Debbie McFadden)
Theme URI: https://davidanddebbiemcfadden.com/
Author: Dependent Media
Author URI: https://dependentmedia.com/
Description: Block theme for Drs. David & Debbie McFadden, relationship and life coaches. Built 2026-11 to the Sierra direction (clean, photo-led, restrained), carried into their own world: a married couple who counsel couples. Their logo is two figures, one navy and one green, making a heart, with a bicycle in the wordmark; their own photos include the shadow of the two of them on a tandem. So the site's one recurring mark is the "two tracks": a navy line beside a green line (before labels, along the foot of the header, under photos of the two of them), David's things carry his navy, Debbie's her green. EB Garamond headings (close to the logo's roman wordmark) + Alegreya Sans text (a humanist sans like the logo's spaced tagline). Light pages, one dark band (the evergreen footer).
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.1
License: GPLv2 or later
Text Domain: ddm-tandem
*/

/* ---------- fonts (self-hosted, latin; SIL Open Font License) ---------- */
@font-face { font-family: "EB Garamond"; src: url("assets/fonts/eb-garamond-latin-normal-400-700.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("assets/fonts/alegreya-sans-latin-normal-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("assets/fonts/alegreya-sans-latin-normal-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("assets/fonts/alegreya-sans-latin-normal-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya Sans"; src: url("assets/fonts/alegreya-sans-latin-italic-400.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

/* ---------- tokens (from their logo: navy #002A5C and green #6BBA44) ---------- */
:root {
	--navy: #002A5C;      /* David's figure: headings, his marks (14:1 on white) */
	--leaf: #6BBA44;      /* Debbie's figure: marks only, never text on white (2.4:1) */
	--grove: #2E6B1F;     /* text-safe green: buttons, links (6.5:1 on white) */
	--grove-dk: #22521A;
	--ink: #2B3138;       /* text (13:1) */
	--muted: #56606A;     /* secondary text (6.4:1) */
	--meadow: #F2F6EC;    /* pale bands */
	--line: #DCE5D4;      /* hairlines */
	--field: #6F7A6A;     /* form borders (4.5:1) */
	--dot: #7A8475;       /* banner bar buttons (3.9:1) */
	--error: #A12A1F;
	--evergreen: #163420; /* the one dark band: footer */
	--serif: "EB Garamond", Garamond, "Iowan Old Style", Georgia, serif;
	--sans: "Alegreya Sans", "Gill Sans", Candara, system-ui, -apple-system, "Segoe UI", sans-serif;
	--wrap: 1200px;
	--gut: clamp(16px, 4vw, 40px);
	--r: 10px;
	--tracks: linear-gradient(var(--navy) 0 3px, transparent 3px 5px, var(--leaf) 5px 8px);
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 110px; }
body { margin: 0; background: #fff; color: var(--ink); font: 400 1.1875rem/1.62 var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; color: var(--navy); line-height: 1.14; margin: 0 0 .5em; letter-spacing: -0.005em; text-wrap: balance; }
h1 { font-size: clamp(2.35rem, 1.45rem + 3.1vw, 3.55rem); }
h2 { font-size: clamp(1.85rem, 1.4rem + 1.55vw, 2.55rem); }
h3 { font-size: 1.5rem; font-weight: 600; line-height: 1.2; }
h4 { font-size: 1.25rem; font-weight: 600; }
p, ul, ol { margin: 0 0 1em; }
a { color: var(--grove); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--navy); }
:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; border-radius: 2px; }
strong { font-weight: 700; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ddm-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--navy); color: #fff; font-weight: 500; }
.ddm-skip:focus { top: 12px; color: #fff; }
.ddm-ico { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* the two tracks: a navy line beside a green line */
.ddm-label { display: flex; align-items: center; gap: .65em; margin: 0 0 .9em; font: 500 .84rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--grove); }
.ddm-label::before { content: ""; width: 26px; height: 8px; background: var(--tracks); flex: none; }
.ddm-tracks { height: 4px; background: linear-gradient(var(--navy) 0 2px, var(--leaf) 2px 4px); }
.ddm-lead { font-size: clamp(1.22rem, 1.1rem + .35vw, 1.36rem); line-height: 1.55; color: var(--muted); max-width: 62ch; }

/* ---------- buttons: grove green with a navy base line (the logo's two colours) ---------- */
.ddm-btn, .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 50px; padding: .62em 1.35em .5em;
	background: var(--grove); color: #fff; border: 0; border-bottom: 3px solid var(--navy); border-radius: 6px;
	font: 500 1.08rem/1.2 var(--sans); letter-spacing: .01em; text-decoration: none; cursor: pointer; transition: background-color .2s;
}
.ddm-btn:hover, .wp-block-button__link:hover { background: var(--grove-dk); color: #fff; text-decoration: underline; text-underline-offset: .18em; }
.ddm-btn--line, .is-style-outline .wp-block-button__link, .ddm-line .wp-block-button__link { background: #fff; color: var(--grove); box-shadow: inset 0 0 0 1.5px var(--grove); }
.ddm-btn--line:hover, .is-style-outline .wp-block-button__link:hover, .ddm-line .wp-block-button__link:hover { background: var(--meadow); color: var(--grove-dk); }
.ddm-btn .ddm-ico { width: 1.1em; height: 1.1em; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.6em 0 0; }
.wp-block-button { margin: 0; }

/* ---------- header (sticky): logo, menu, phone as text, Free consultation; two tracks along its foot ---------- */
.ddm-header { position: sticky; top: 0; z-index: 50; background: #fff; }
.ddm-header.is-scrolled { box-shadow: 0 6px 18px -14px rgba(0, 20, 40, .45); }
.ddm-bar { position: relative; }
.ddm-bar__in { max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 14px var(--gut); display: flex; align-items: center; gap: 28px; }
.ddm-brand { display: block; flex: none; line-height: 0; }
.ddm-logo { width: auto; height: 60px; }
.ddm-nav { margin-left: auto; }
.ddm-menu { list-style: none; margin: 0; padding: 0; }
.ddm-menu--bar { display: flex; gap: 4px; }
.ddm-menu--bar > li { position: relative; }
.ddm-menu__link, .ddm-menu__toggle { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 8px 12px; background: none; border: 0; color: var(--ink); font: 500 1.08rem var(--sans); text-decoration: none; cursor: pointer; }
.ddm-menu__toggle .ddm-ico { width: 18px; height: 18px; transition: transform .2s; }
.ddm-menu__item.is-open > .ddm-menu__toggle .ddm-ico { transform: rotate(180deg); }
.ddm-menu--bar .ddm-menu__link, .ddm-menu--bar .ddm-menu__toggle { position: relative; }
.ddm-menu--bar .ddm-menu__link::after, .ddm-menu--bar .ddm-menu__toggle::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 3px; background: transparent; }
.ddm-menu--bar .is-in > .ddm-menu__link::after, .ddm-menu--bar .is-in > .ddm-menu__toggle::after { background: var(--leaf); }
.ddm-menu__link:hover, .ddm-menu__toggle:hover { color: var(--grove); }
/* small dropdown: its text lines up under the parent's text, opens to the right, with a hover bridge */
.ddm-menu--bar .ddm-sub { display: none; position: absolute; left: 0; top: 100%; min-width: 236px; margin: 0; padding: 8px 0; list-style: none; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--navy); border-radius: 0 0 6px 6px; box-shadow: 0 16px 30px -18px rgba(0, 20, 40, .45); }
.ddm-menu--bar .ddm-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.ddm-menu--bar .has-sub:hover > .ddm-sub, .ddm-menu--bar .is-open > .ddm-sub { display: block; }
.ddm-sub a { display: block; padding: 9px 12px; color: var(--ink); text-decoration: none; font-weight: 500; }
.ddm-sub a:hover, .ddm-sub a[aria-current] { color: var(--grove); text-decoration: underline; }
.ddm-bar__cta { display: flex; align-items: center; gap: 18px; flex: none; }
.ddm-bar__tel { display: inline-flex; align-items: center; gap: 7px; color: var(--navy); font: 500 1.14rem var(--sans); text-decoration: none; white-space: nowrap; }
.ddm-bar__tel .ddm-ico { color: var(--grove); }
.ddm-bar__tel:hover { text-decoration: underline; }
.ddm-bar__book { min-height: 46px; }
.ddm-bar__menu { display: none; align-items: center; gap: 6px; min-height: 46px; padding: 8px 14px; background: #fff; color: var(--navy); border: 1.5px solid var(--navy); border-radius: 6px; font: 500 1.05rem var(--sans); cursor: pointer; }
.ddm-bar__menu .ddm-ico--close, .ddm-bar__menu[aria-expanded="true"] .ddm-ico--menu { display: none; }
.ddm-bar__menu[aria-expanded="true"] .ddm-ico--close { display: block; }
.ddm-panel { border-top: 1px solid var(--line); background: #fff; max-height: calc(100vh - 90px); overflow: auto; }
.ddm-panel nav, .ddm-panel__contact { max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 8px var(--gut); }
.ddm-menu--panel > li { border-bottom: 1px solid var(--line); }
.ddm-menu--panel .ddm-menu__link, .ddm-menu--panel .ddm-menu__toggle { width: 100%; justify-content: space-between; padding: 12px 0; font-size: 1.2rem; }
.ddm-menu--panel .ddm-sub { display: none; list-style: none; margin: 0 0 10px; padding: 0 0 0 14px; border-left: 3px solid var(--leaf); }
.ddm-menu--panel .is-open > .ddm-sub { display: block; }
.ddm-panel__contact { display: flex; flex-wrap: wrap; gap: 10px 24px; padding-top: 14px; padding-bottom: 22px; }
.ddm-panel__contact a { display: inline-flex; align-items: center; gap: 8px; color: var(--navy); font-weight: 500; }

@media (max-width: 1179px) {
	.ddm-nav { display: none; }
	.ddm-bar__cta { margin-left: auto; }
	.ddm-bar__menu { display: inline-flex; }
}
@media (min-width: 1180px) { .ddm-panel { display: none !important; } }
@media (max-width: 767px) {
	.ddm-bar__in { gap: 12px; padding-top: 10px; padding-bottom: 10px; }
	.ddm-logo { height: 46px; }
	.ddm-bar__tel, .ddm-bar__book { display: none; }
	html { scroll-padding-top: 86px; }
}
@media (max-width: 359px) { .ddm-logo { height: 40px; } .ddm-bar__menu span { display: none; } }

/* ---------- page sections ---------- */
.ddm-main { display: block; }
.ddm-sec { max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: clamp(56px, 7vw, 100px) var(--gut); }
.ddm-sec--flush { padding-top: 0; }
.ddm-sec--cta { padding-top: clamp(24px, 3vw, 40px); }
.ddm-band { background: var(--meadow); }
.ddm-band + .ddm-band { border-top: 1px solid var(--line); }
.ddm-intro-h { max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px); }
.ddm-intro-h > p:last-child { color: var(--muted); }
.ddm-center { text-align: center; }
.ddm-center .ddm-label, .ddm-center.ddm-intro-h .ddm-label { justify-content: center; }
.ddm-center.ddm-intro-h { margin-left: auto; margin-right: auto; }
.ddm-more { margin-top: 1.6em; font-weight: 500; }
.ddm-more a { display: inline-flex; align-items: center; gap: .4em; }
.ddm-rise { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
.ddm-rise.is-in { opacity: 1; transform: none; }

/* ---------- home: headline, then David's words | the banner | Debbie's words ---------- */
.ddm-hero { padding-top: clamp(28px, 3.4vw, 48px); padding-bottom: clamp(48px, 6vw, 84px); }
.ddm-hero .wp-block-buttons { margin-top: 1.3em; }
.ddm-hero__head { max-width: 900px; margin: 0 auto; text-align: center; }
.ddm-hero__head .ddm-label { justify-content: center; }
.ddm-hero__head h1 { margin-bottom: .35em; }
.ddm-hero__head .ddm-lead { margin: 0 auto; }
.ddm-hero__head .wp-block-buttons { justify-content: center; }
.ddm-hero__row { display: grid; gap: 32px 56px; margin-top: clamp(32px, 3.6vw, 44px); grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "photo photo" "david debbie"; }
.ddm-hero__row > .ddm-voice--navy { grid-area: david; }
.ddm-hero__row > .ddm-banner { grid-area: photo; max-width: 680px; width: 100%; margin: 0 auto; }
.ddm-hero__row > .ddm-voice--leaf { grid-area: debbie; }
@media (min-width: 1100px) {
	.ddm-hero__row { grid-template-columns: minmax(0, 1fr) minmax(0, 600px) minmax(0, 1fr); grid-template-areas: "david photo debbie"; align-items: center; }
	.ddm-hero__row > .ddm-voice--navy { text-align: right; }
	.ddm-hero__row > .ddm-voice--navy::before { margin-left: auto; }
	.ddm-hero__row > .ddm-voice--navy figcaption { align-items: flex-end; }
}
@media (max-width: 767px) {
	.ddm-hero__head { text-align: left; }
	.ddm-hero__head .ddm-label { justify-content: flex-start; }
	.ddm-hero__head .wp-block-buttons { justify-content: flex-start; }
	.ddm-hero__row { grid-template-columns: minmax(0, 1fr); grid-template-areas: "photo" "david" "debbie"; gap: 28px; }
}

.ddm-voice { margin: 0; }
.ddm-voice::before { content: ""; display: block; width: 48px; height: 3px; margin-bottom: 18px; background: var(--navy); }
.ddm-voice--leaf::before { background: var(--leaf); }
.ddm-voice blockquote { margin: 0; }
.ddm-voice blockquote p { margin: 0 0 14px; font: 500 clamp(1.4rem, 1.2rem + .6vw, 1.7rem)/1.28 var(--serif); color: var(--navy); }
.ddm-voice figcaption { display: flex; flex-direction: column; gap: 2px; font-size: 1rem; }
.ddm-voice__name { font-weight: 500; color: var(--muted); letter-spacing: .04em; }
.ddm-voice figcaption a { display: inline-flex; align-items: center; gap: .35em; font-weight: 500; }
.ddm-voice figcaption a .ddm-ico { width: 1em; height: 1em; }

/* the banner: a 3:2 frame, three of their own photos crossfading, the two tracks along its foot */
.ddm-banner { position: relative; }
.ddm-banner__stage { position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-radius: var(--r); background: var(--meadow); }
.ddm-banner__stage::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; z-index: 2; background: linear-gradient(90deg, var(--navy) 50%, var(--leaf) 50%); }
.ddm-banner__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.6s ease; }
.ddm-banner__slide.is-on { opacity: 1; z-index: 1; }
.ddm-banner__slide img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.ddm-banner__slide--couple-2017 img { object-position: 50% 30%; }
.ddm-banner__slide--tandem img { object-position: 50% 45%; }
.ddm-banner__slide--superstition img { object-position: 50% 60%; }
.ddm-banner__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.ddm-banner__cap { margin: 0; font-size: 1rem; font-style: italic; color: var(--muted); }
.ddm-banner__ctl { display: flex; align-items: center; gap: 2px; flex: none; }
.ddm-banner__dot { width: 36px; height: 36px; padding: 0; display: grid; place-items: center; background: none; border: 0; cursor: pointer; }
.ddm-banner__dot span { display: block; width: 18px; height: 4px; border-radius: 2px; background: var(--dot); transition: width .3s, background-color .3s; }
.ddm-banner__dot[aria-current] span { width: 28px; background: var(--navy); }
.ddm-banner__pause { width: 40px; height: 40px; margin-left: 6px; display: grid; place-items: center; padding: 0; background: #fff; color: var(--navy); border: 1.5px solid var(--field); border-radius: 6px; cursor: pointer; }
.ddm-banner__pause:hover { border-color: var(--navy); }
.ddm-banner__pause .ddm-ico { width: 20px; height: 20px; stroke-width: 2.2; }
.ddm-banner__pause .ddm-ico--play, .ddm-banner__pause.is-paused .ddm-ico--pause { display: none; }
.ddm-banner__pause.is-paused .ddm-ico--play { display: block; fill: var(--navy); }

/* ---------- photos: soft corners; the two tracks along the foot (navy = David, green = Debbie, both = both) ---------- */
.ddm-photo { position: relative; margin: 0; overflow: hidden; border-radius: var(--r); background: var(--meadow); }
.ddm-photo img { width: 100%; height: 100%; object-fit: cover; }
.ddm-photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: linear-gradient(90deg, var(--navy) 50%, var(--leaf) 50%); }
.ddm-photo--navy::after { background: var(--navy); }
.ddm-photo--leaf::after { background: var(--leaf); }
/* Image blocks in page text: the photo keeps soft corners and the bar sits along ITS foot, above any caption
   (an overlay box the photo's size, its background clipped by the same radius). */
.wp-block-image.ddm-fig { position: relative; margin: 0; --fig-ar: 4 / 3; --fig-bar: linear-gradient(90deg, var(--navy) 50%, var(--leaf) 50%); }
.wp-block-image.ddm-fig--tall { --fig-ar: 4 / 5; }
.wp-block-image.ddm-fig--navy { --fig-bar: linear-gradient(var(--navy), var(--navy)); }
.wp-block-image.ddm-fig--leaf { --fig-bar: linear-gradient(var(--leaf), var(--leaf)); }
.wp-block-image.ddm-fig img { width: 100%; height: auto; aspect-ratio: var(--fig-ar); object-fit: cover; border-radius: var(--r); background: var(--meadow); }
.wp-block-image.ddm-fig::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; aspect-ratio: var(--fig-ar); border-radius: var(--r); background: var(--fig-bar) left bottom / 100% 5px no-repeat; pointer-events: none; }
.wp-block-image.ddm-fig figcaption { margin: 0; padding: 10px 2px 0; font-size: .98rem; font-style: italic; color: var(--muted); }
.ddm-fig--david img { object-position: 50% 30%; }
.ddm-fig--debbie img { object-position: 58% 35%; }
.ddm-fig--superstition img { object-position: 50% 60%; }
.ddm-fig--july4 img { object-position: 50% 30%; }

/* ---------- cards: the ways to work with them ---------- */
.ddm-cards { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .ddm-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; } .ddm-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 880px; } }
.ddm-card .ddm-photo { aspect-ratio: 4 / 3; margin-bottom: 18px; }
.ddm-photo--david img { object-position: 50% 25%; }
.ddm-photo--debbie img { object-position: 57% 30%; }
.ddm-photo--couple-studio img { object-position: 50% 30%; }
.ddm-card__h { font-size: 1.6rem; margin-bottom: .35em; }
.ddm-card__h a { color: var(--navy); text-decoration: none; }
.ddm-card__h a:hover { text-decoration: underline; text-decoration-color: var(--leaf); text-decoration-thickness: 2px; }
.ddm-card p { color: var(--muted); margin: 0; }

/* ---------- how it works: five steps ---------- */
.ddm-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px 32px; grid-template-columns: minmax(0, 1fr); counter-reset: step; }
@media (min-width: 700px) { .ddm-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ddm-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.ddm-steps li { counter-increment: step; padding-top: 16px; border-top: 1px solid var(--line); }
.ddm-steps li::before { content: counter(step); display: block; margin-bottom: 6px; font: 500 2.6rem/1 var(--serif); color: var(--navy); }
.ddm-steps h3 { font-size: 1.32rem; margin-bottom: .35em; }
.ddm-steps p { margin: 0; color: var(--muted); font-size: 1.08rem; }

/* ---------- who we work with ---------- */
.ddm-who { display: grid; gap: 28px 48px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .ddm-who { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ddm-who__item { padding-top: 18px; border-top: 3px solid var(--navy); }
.ddm-who__item:nth-child(4n+2), .ddm-who__item:nth-child(4n+3) { border-top-color: var(--leaf); }
@media (max-width: 767px) { .ddm-who__item:nth-child(n) { border-top-color: var(--navy); } .ddm-who__item:nth-child(even) { border-top-color: var(--leaf); } }
.ddm-who__item h3 { font-size: 1.45rem; margin-bottom: .3em; }
.ddm-who__item p { margin: 0; }

/* ---------- training and experience: David | Debbie ---------- */
.ddm-creds { display: grid; gap: 32px 48px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .ddm-creds { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ddm-creds__col { padding: 24px 26px 18px; background: #fff; border-radius: var(--r); border-left: 4px solid var(--navy); }
.ddm-creds__col--leaf { border-left-color: var(--leaf); }
.ddm-creds h3 { margin-bottom: .1em; }
.ddm-creds h3 a { color: var(--navy); text-decoration: none; }
.ddm-creds h3 a:hover { text-decoration: underline; }
.ddm-creds__role { color: var(--muted); font-style: italic; margin-bottom: .7em; }
.ddm-creds ul, .ddm-prose ul, .ddm-list { list-style: none; padding: 0; }
.ddm-creds li, .ddm-prose ul li, .ddm-list li { position: relative; padding-left: 26px; margin: 0 0 .45em; }
.ddm-creds li::before, .ddm-prose ul li::before, .ddm-list li::before { content: ""; position: absolute; left: 0; top: .72em; width: 14px; height: 3px; background: var(--navy); }
.ddm-creds__col--leaf li::before, .ddm-list--leaf li::before { background: var(--leaf); }
.ddm-list--cols { columns: 2 280px; column-gap: 40px; }
.ddm-list--cols li { break-inside: avoid; }

/* ---------- a favourite quote ---------- */
.ddm-quote { margin: 0 auto; max-width: 900px; text-align: center; }
.ddm-quote::before { content: ""; display: block; width: 64px; height: 8px; margin: 0 auto 26px; background: var(--tracks); }
.ddm-quote blockquote { margin: 0; }
.ddm-quote blockquote p { margin: 0 0 16px; font: 500 clamp(1.75rem, 1.25rem + 1.9vw, 2.6rem)/1.22 var(--serif); color: var(--navy); text-wrap: balance; }
.ddm-quote figcaption { font-size: 1rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* ---------- articles: text cards ---------- */
.ddm-posts { display: grid; gap: 34px 36px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .ddm-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ddm-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ddm-post { padding-top: 18px; border-top: 1px solid var(--line); }
.ddm-post__topic { margin: 0 0 .5em; font-size: .84rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--grove); }
.ddm-post__h { font-size: 1.5rem; line-height: 1.2; margin-bottom: .35em; }
.ddm-post__h a { color: var(--navy); text-decoration: none; }
.ddm-post__h a:hover { text-decoration: underline; text-decoration-color: var(--leaf); text-decoration-thickness: 2px; }
.ddm-post__by { margin: 0 0 .6em; font-size: 1rem; color: var(--muted); }
.ddm-post__ex { margin: 0; font-size: 1.08rem; }
.ddm-topics ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 26px 0 0; padding: 0; }
.ddm-topics a { display: inline-block; padding: 6px 0; color: var(--ink); font-weight: 500; text-decoration: none; border-bottom: 3px solid transparent; }
.ddm-topics a:hover { color: var(--grove); border-bottom-color: var(--line); }
.ddm-topics a[aria-current] { color: var(--navy); border-bottom-color: var(--leaf); }
.ddm-pages { margin-top: 48px; }
.ddm-pages ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; }
.ddm-pages a, .ddm-pages span { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 6px; text-decoration: none; }
.ddm-pages .current { background: var(--navy); color: #fff; border-color: var(--navy); }

/* ---------- where you can meet ---------- */
.ddm-meet { display: grid; gap: 24px 40px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .ddm-meet { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ddm-meet__item h3 { display: flex; align-items: center; gap: 10px; font-size: 1.4rem; margin-bottom: .4em; }
.ddm-meet__item h3 .ddm-ico { color: var(--grove); width: 26px; height: 26px; }
.ddm-meet__item p { margin: 0; }

/* ---------- inner pages: heading area, prose, splits ---------- */
.ddm-head { padding-top: clamp(28px, 4vw, 52px); padding-bottom: clamp(32px, 4vw, 56px); }
.ddm-head h1 { max-width: 20ch; }
.ddm-head .ddm-lead { margin-bottom: 0; }
.ddm-head--photo { display: grid; gap: 32px 56px; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 900px) { .ddm-head--photo { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); } }
.ddm-head--article h1 { max-width: 26ch; font-size: clamp(2.1rem, 1.4rem + 2.4vw, 3.1rem); }
.ddm-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0 0 22px; padding: 0; font-size: .98rem; color: var(--muted); }
.ddm-crumbs li + li::before { content: "/"; margin: 0 .55em; color: var(--dot); }
.ddm-crumbs a { color: var(--muted); }
.ddm-crumbs a:hover { color: var(--grove); }
.ddm-prose { max-width: calc(760px + 2 * var(--gut)); padding-top: 0; }
.ddm-prose h2 { font-size: clamp(1.7rem, 1.35rem + 1.1vw, 2.2rem); margin-top: 1.4em; }
.ddm-prose h3, .ddm-prose h4, .ddm-prose h5, .ddm-prose h6 { margin-top: 1.3em; }
.ddm-prose h5, .ddm-prose h6 { font: 600 1.2rem/1.3 var(--serif); color: var(--navy); }
.ddm-prose ol { padding-left: 1.3em; }
.ddm-prose ol li { margin-bottom: .45em; }
.ddm-prose li::marker { color: var(--navy); font-weight: 700; }
.ddm-prose blockquote { margin: 1.4em 0; padding: 4px 0 4px 22px; border-left: 3px solid var(--leaf); font: 500 1.4rem/1.35 var(--serif); color: var(--navy); }
.ddm-prose blockquote p:last-child { margin-bottom: 0; }
.ddm-prose img { border-radius: 6px; }
.ddm-prose figure { margin: 1.6em 0; }
.ddm-prose figcaption { font-size: .98rem; color: var(--muted); }
.ddm-post-meta { margin: 0; color: var(--muted); font-size: 1.05rem; }
.ddm-post-hero { margin: 0 0 32px; }
.ddm-post-hero img { width: 100%; max-height: 460px; object-fit: cover; border-radius: var(--r); }
.ddm-author { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 22px; align-items: start; margin-top: 48px; padding: 24px; background: var(--meadow); border-radius: var(--r); }
.ddm-author .ddm-photo { aspect-ratio: 1; }
.ddm-author .ddm-photo img { object-position: 50% 30%; }
.ddm-author p { margin: 0 0 .5em; font-size: 1.08rem; }
.ddm-author__name { font: 600 1.3rem var(--serif) !important; color: var(--navy); }
.ddm-author__links { display: flex; flex-wrap: wrap; gap: 6px 20px; font-weight: 500; }
@media (max-width: 559px) { .ddm-author { grid-template-columns: minmax(0, 1fr); } .ddm-author .ddm-photo { width: 120px; } }

.ddm-split { display: grid; gap: 32px 64px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 900px) { .ddm-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .ddm-split--media { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } .ddm-split--mid { align-items: center; } }
.ddm-split > .wp-block-group > :last-child { margin-bottom: 0; }
.ddm-trio { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .ddm-trio { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ddm-pair { display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .ddm-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- their video ---------- */
.ddm-video { margin: 0; }
.ddm-video__frame { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--r); background: #0d1a10; }
.ddm-video__frame img { width: 100%; height: 100%; object-fit: cover; opacity: .82; }
.ddm-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ddm-video__play { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 10px 20px; background: var(--grove); color: #fff; border: 0; border-bottom: 3px solid var(--navy); border-radius: 6px; font: 500 1.05rem var(--sans); cursor: pointer; }
.ddm-video__play:hover { background: var(--grove-dk); }
.ddm-video__play .ddm-ico { fill: #fff; stroke: none; }
.ddm-video figcaption { padding-top: 10px; font-size: .98rem; color: var(--muted); }

/* ---------- closing call to action ---------- */
.ddm-cta { display: grid; gap: 24px 48px; grid-template-columns: minmax(0, 1fr); align-items: center; padding: clamp(28px, 5vw, 56px); background: var(--meadow); border-radius: var(--r); }
@media (min-width: 900px) { .ddm-cta { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); } }
.ddm-cta h2 { margin-bottom: .3em; }
.ddm-cta__text p:last-child { margin: 0; }
.ddm-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 900px) { .ddm-cta__btns { justify-content: flex-end; } }
.ddm-band .ddm-cta { background: #fff; }

/* ---------- contact: form | card ---------- */
.ddm-contact { display: grid; gap: 40px 64px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 960px) { .ddm-contact { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }
.ddm-ccard { padding: 28px 28px 22px; background: var(--meadow); border-radius: var(--r); }
.ddm-ccard__big { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font: 500 1.8rem var(--serif); }
.ddm-ccard__big a { color: var(--navy); text-decoration: none; }
.ddm-ccard__big a:hover { text-decoration: underline; }
.ddm-ccard__list { list-style: none; margin: 0; padding: 0; }
.ddm-ccard__list li { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 10px; overflow-wrap: anywhere; }
.ddm-ccard__list .ddm-ico, .ddm-ccard__big .ddm-ico { color: var(--grove); margin-top: .2em; }
.ddm-ccard__note { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 1.02rem; }

/* Ninja Forms (opinionated styles off; the theme styles the fields) */
.ddm-nf .nf-form-fields-required { margin: 0 0 18px; font-size: 1rem; color: var(--muted); }
.ddm-nf .nf-field-container { margin: 0 0 20px; }
.ddm-nf .nf-field-label label, .ddm-nf .nf-field-label .nf-label-span, .ddm-nf legend { display: block; margin: 0 0 6px; font-weight: 500; font-size: 1.08rem; color: var(--navy); }
.ddm-nf .ninja-forms-req-symbol { color: var(--error); margin-left: 2px; }
.ddm-nf .nf-field-description { margin: -2px 0 8px; font-size: 1rem; color: var(--muted); }
.ddm-nf .desc-after_field .nf-field-description { order: 20; margin: 6px 0 0; }
.ddm-nf .nf-field-description p { margin: 0; }
.ddm-nf input[type="text"], .ddm-nf input[type="email"], .ddm-nf input[type="tel"], .ddm-nf select, .ddm-nf textarea {
	width: 100%; min-height: 50px; padding: 11px 14px; font: 400 1.1rem/1.4 var(--sans); color: var(--ink); background: #fff;
	border: 1.5px solid var(--field); border-radius: 6px; appearance: none;
}
.ddm-nf select { background-image: linear-gradient(45deg, transparent 50%, var(--navy) 50%), linear-gradient(135deg, var(--navy) 50%, transparent 50%); background-position: calc(100% - 20px) 52%, calc(100% - 14px) 52%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 40px; }
.ddm-nf textarea { min-height: 140px; resize: vertical; }
.ddm-nf input:focus-visible, .ddm-nf select:focus-visible, .ddm-nf textarea:focus-visible { outline: 3px solid var(--navy); outline-offset: 1px; border-color: var(--navy); }
.ddm-nf .listradio-wrap ul, .ddm-nf .listcheckbox-wrap ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.ddm-nf .listradio-wrap li, .ddm-nf .listcheckbox-wrap li { position: relative; margin: 0; }
.ddm-nf .listradio-wrap li label, .ddm-nf .listcheckbox-wrap li label { margin: 0 !important; }
.ddm-nf .listradio-wrap input, .ddm-nf .listcheckbox-wrap input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ddm-nf .listradio-wrap li label { display: inline-flex; align-items: center; gap: 9px; min-height: 46px; padding: 8px 16px; border: 1.5px solid var(--field); border-radius: 6px; background: #fff; font-weight: 500; color: var(--ink); cursor: pointer; }
.ddm-nf .listradio-wrap li label::before { content: ""; width: 15px; height: 15px; border: 1.5px solid var(--navy); border-radius: 50%; flex: none; }
.ddm-nf .listradio-wrap input:checked + label, .ddm-nf .listradio-wrap li label.nf-checked-label { border-color: var(--navy); background: var(--meadow); box-shadow: inset 0 -3px 0 var(--leaf); }
.ddm-nf .listradio-wrap input:checked + label::before, .ddm-nf .listradio-wrap li label.nf-checked-label::before { background: var(--navy); box-shadow: inset 0 0 0 2.5px #fff; }
.ddm-nf .listradio-wrap input:focus-visible + label { outline: 3px solid var(--navy); outline-offset: 2px; }
.ddm-nf .nf-error .ninja-forms-field, .ddm-nf .nf-error input, .ddm-nf .nf-error textarea { border-color: var(--error); border-width: 2px; }
.ddm-nf .nf-error-msg, .ddm-nf .nf-error-required { color: var(--error); font-weight: 500; font-size: 1rem; margin-top: 6px; }
.ddm-nf .nf-form-errors .nf-error-msg { padding: 12px 14px; background: #FBEDEB; border-left: 3px solid var(--error); margin: 0 0 16px; }
.ddm-nf .submit-wrap input[type="submit"], .ddm-nf input[type="button"] { min-height: 52px; padding: .55em 1.8em .45em; background: var(--grove); color: #fff; border: 0; border-bottom: 3px solid var(--navy); border-radius: 6px; font: 500 1.1rem var(--sans); cursor: pointer; }
.ddm-nf .submit-wrap input[type="submit"]:hover { background: var(--grove-dk); text-decoration: underline; }
.ddm-nf .nf-field-element { position: relative; }
@media (min-width: 640px) {
	.ddm-nf nf-fields-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px; }
	.ddm-nf nf-field { grid-column: 1 / -1; }
	.ddm-nf nf-field:has(.ddm-half) { grid-column: auto; }
}
.ddm-thanks { padding: clamp(24px, 3vw, 36px); background: var(--meadow); border-radius: var(--r); }
.ddm-thanks:focus { outline: none; }
.ddm-thanks__check { width: 56px; height: 56px; display: grid; place-items: center; margin-bottom: 16px; background: var(--grove); border-bottom: 3px solid var(--navy); border-radius: 8px; color: #fff; }
.ddm-thanks__check .ddm-ico { width: 30px; height: 30px; stroke-width: 2.2; }
.ddm-thanks ol { padding-left: 1.3em; }
.ddm-confetti { position: fixed; inset: 0; z-index: 90; pointer-events: none; }

.ddm-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; max-width: 520px; }
.ddm-links a { display: flex; align-items: center; min-height: 48px; padding: 8px 0; border-bottom: 1px solid var(--line); font: 500 1.4rem var(--serif); color: var(--navy); text-decoration: none; }
.ddm-links a:hover { color: var(--grove); }

/* ---------- footer: the one dark band ---------- */
.ddm-foot { background: var(--evergreen); color: #E3ECDD; font-size: 1.06rem; }
.ddm-foot a { color: #fff; text-decoration: none; }
.ddm-foot a:hover { text-decoration: underline; }
.ddm-foot :focus-visible { outline-color: #fff; }
.ddm-foot__in { max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: clamp(48px, 6vw, 72px) var(--gut) 28px; display: grid; gap: 36px 48px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .ddm-foot__in { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); } }
.ddm-foot__name { display: flex; flex-direction: column; gap: 4px; margin: 0 0 20px; font: 500 1.75rem/1.15 var(--serif); color: #fff; }
.ddm-foot__name span { font: 500 .86rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--leaf); }
.ddm-foot__name::after { content: ""; display: block; width: 46px; height: 8px; margin-top: 12px; background: linear-gradient(#fff 0 3px, transparent 3px 5px, var(--leaf) 5px 8px); }
.ddm-foot__facts { list-style: none; margin: 0; padding: 0; }
.ddm-foot__facts li { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 10px; overflow-wrap: anywhere; }
.ddm-foot__facts .ddm-ico { color: var(--leaf); margin-top: .22em; }
.ddm-foot__h { margin: 0 0 14px; font: 500 .86rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--leaf); }
.ddm-foot__col ul { list-style: none; margin: 0; padding: 0; }
.ddm-foot__col li { margin: 0 0 4px; }
.ddm-foot__col a { display: inline-block; padding: 5px 0; }
.ddm-foot__crisis, .ddm-foot__base { max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 0 var(--gut); }
.ddm-foot__crisis p { margin: 0; padding: 18px 0; border-top: 1px solid rgba(255, 255, 255, .16); font-size: 1rem; }
.ddm-foot__crisis a { text-decoration: underline; text-underline-offset: .18em; }
.ddm-foot__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; padding-top: 16px; padding-bottom: 26px; background: linear-gradient(rgba(255, 255, 255, .16), rgba(255, 255, 255, .16)) var(--gut) 0 / calc(100% - 2 * var(--gut)) 1px no-repeat; font-size: .98rem; color: #C9D6C1; }
.ddm-foot__base p { margin: 0; }
.ddm-foot__base a.ddm-credit, .ddm-foot__base .ddm-credit a { color: #fff; text-decoration: underline; text-underline-offset: .18em; text-decoration-color: rgba(255, 255, 255, .6); }

/* ---------- phones: the bottom bar with exactly Call and Free consultation ---------- */
.ddm-callbar { display: none; }
@media (max-width: 767px) {
	body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
	.ddm-callbar { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -8px 20px -16px rgba(0, 20, 40, .5); }
	.ddm-callbar a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; border-radius: 6px; font: 500 1.1rem var(--sans); text-decoration: none; }
	.ddm-foot .ddm-callbar__call { background: #fff; color: var(--grove); box-shadow: inset 0 0 0 1.5px var(--grove); }
	.ddm-foot .ddm-callbar__book { background: var(--grove); color: #fff; border-bottom: 3px solid var(--navy); }
	.ddm-foot .ddm-callbar a:focus-visible { outline-color: var(--navy); }
}

/* ---------- reduced motion: nothing moves ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
	.ddm-rise { opacity: 1; transform: none; }
}
