/* ==========================================================================
   Daphne Maierna – Page layouts (shared by all pages)
   Sections use .dm-sec + .dm-wrap from components.css.
   ========================================================================== */

/* Vertical stacks and text flow ---------------------------------------- */
.dm-stack { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.dm-stack > * { margin: 0 !important; }
.dm-stack--center { align-items: center; text-align: center; }
.dm-flow > * { margin: 0; }
.dm-flow > * + * { margin-top: 1.1em; }
.dm-flow > .dm-statement { margin-top: 1.5em; margin-bottom: .2em; }
.dm-flow > .dm-statement + * { margin-top: 1.4em; }
.dm-flow > h2 + * { margin-top: 1.2em; }
.dm-flow strong { font-weight: 400; color: inherit; background: linear-gradient(transparent 62%, rgba(254, 130, 6, .22) 0); }
.dm-flow .dm-flow__em { font-family: var(--dm-serif); font-weight: 700; font-size: 1.3em; line-height: 1.3; }
.dm-btns { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; }

/* Hero ---------------------------------------------------------------- */
.dm-hero { padding-top: clamp(48px, 6vw, 112px); padding-bottom: clamp(72px, 7vw, 136px); }
.dm-hero__title { font-size: var(--dm-fs-h1); line-height: 1.04; max-width: 15ch; }
.dm-hero .dm-lead { max-width: 30em; }
.dm-hero__photo { width: 100%; max-width: 500px; justify-self: end; }
.dm-hero__photo img { aspect-ratio: 4 / 5; }
.dm-hero--text .dm-hero__title { max-width: 18ch; }
@media (max-width: 900px) {
	.dm-hero__photo { justify-self: start; max-width: 520px; }
}

/* Section heads -------------------------------------------------------- */
.dm-head { max-width: 780px; margin-bottom: clamp(40px, 4vw, 72px); }
.dm-head > * { margin: 0; }
.dm-head > * + * { margin-top: 1.25rem; }
.dm-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.dm-head--center .dm-kicker { justify-content: center; }

/* Text + aside photo ---------------------------------------------------- */
.dm-aside {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
	gap: clamp(40px, 7vw, 120px);
	align-items: start;
}
.dm-aside--left { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); }
.dm-aside__photo { position: sticky; top: 132px; }
.dm-aside__photo--low { margin-top: clamp(0px, 12vw, 200px); }
.dm-aside .dm-flow { max-width: var(--dm-text); }
@media (max-width: 900px) {
	.dm-aside, .dm-aside--left { grid-template-columns: 1fr; }
	.dm-aside__photo { position: static; max-width: 420px; }
	.dm-aside__photo--low { margin-top: 0; }
	.dm-aside--left .dm-aside__photo { order: 2; }
}

/* Centred bridge statement ---------------------------------------------- */
.dm-bridge .dm-statement { margin: 0 auto; text-align: center; max-width: 22ch; font-size: clamp(2rem, 1.4rem + 2.2vw, 3.25rem); }

/* Making It Real band ------------------------------------------------------ */
.dm-mir .dm-head { max-width: 820px; }
.dm-mir__close { margin-top: clamp(48px, 5vw, 80px); }
.dm-mir__close p { margin: 0; }
.dm-mir__close .dm-statement { margin: .4rem 0 2rem; }

/* Testimonials ------------------------------------------------------------ */
.dm-quote-sec .dm-quote blockquote { font-size: clamp(1.375rem, 1.1rem + 1vw, 2rem); }
.dm-quote-inline { padding: clamp(56px, 6vw, 96px) var(--dm-gutter); }
.dm-quote-inline .dm-quote { margin-left: auto; margin-right: auto; }

/* Steps (sales page) ------------------------------------------------------- */
.dm-step .dm-card__text { display: flex; flex-direction: column; gap: .8em; }
.dm-step .dm-card__text p { margin: 0; }
.dm-step .dm-card__q { font-family: var(--dm-serif); font-weight: 700; font-size: 1.125rem; line-height: 1.35; }
.dm-after-steps { margin-top: clamp(40px, 4vw, 64px); max-width: 760px; }

/* Practical items ---------------------------------------------------------- */
.dm-card__text ul { margin: 0; padding-left: 1.1em; }

/* Price ---------------------------------------------------------------- */
.dm-invest { text-align: center; }
.dm-invest .dm-stack { align-items: center; }

/* Final CTA band ------------------------------------------------------------ */
.dm-cta .dm-head { margin-bottom: 2.25rem; }
.dm-cta .dm-lead { margin-left: auto; margin-right: auto; }

/* Workshops: editorial list -------------------------------------------------- */
.dm-wlist { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--dm-line); }
.dm-witem {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) minmax(0, 300px);
	gap: clamp(24px, 4vw, 64px);
	align-items: start;
	padding: clamp(36px, 4vw, 56px) 0;
	border-top: 1px solid var(--dm-line);
}
.dm-witem__num { font-size: .875rem; letter-spacing: .2em; color: var(--dm-ink-soft); padding-top: .6rem; }
.dm-witem__title { margin: 0 0 .75rem; font-size: var(--dm-fs-h3); }
.dm-witem__text { margin: 0; max-width: 34em; }
.dm-witem__photo img { aspect-ratio: 3 / 2; width: 100%; height: auto; object-fit: cover; display: block; }
@media (max-width: 900px) {
	.dm-witem { grid-template-columns: 1fr; gap: 1.25rem; }
	.dm-witem__num { padding-top: 0; }
	.dm-witem__photo { max-width: 420px; }
}

/* About: small photo pair ----------------------------------------------------- */
.dm-photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: end; }
.dm-photo-pair .dm-photo:nth-child(2) { margin-bottom: 48px; }
.dm-photo-pair img { aspect-ratio: 4 / 5; }

/* Newsletter / forms --------------------------------------------------------- */
.dm-signup { max-width: 640px; }
.dm-signup--center { margin-left: auto; margin-right: auto; text-align: center; }
.dm-signup [id^="cbox-"] { min-height: 60px; }
.dm-form .gform_wrapper.gravity-theme .gfield_label,
.dm-form .gform_wrapper .gfield_label {
	font-family: var(--dm-sans) !important;
	font-size: .8125rem !important;
	font-weight: 400 !important;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--dm-navy) !important;
}
.dm-form .gform_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.dm-form .gform_wrapper select,
.dm-form .gform_wrapper textarea {
	background: rgba(255, 255, 255, .6) !important;
	border: 1px solid var(--dm-line) !important;
	border-radius: 2px !important;
	color: var(--dm-navy) !important;
	font-family: var(--dm-sans) !important;
	font-size: 1rem !important;
	padding: 12px 14px !important;
	min-height: 48px;
}
.dm-form .gform_wrapper input:focus, .dm-form .gform_wrapper select:focus, .dm-form .gform_wrapper textarea:focus {
	outline: 2px solid var(--dm-orange) !important;
	outline-offset: 1px;
}
.dm-form .gform_wrapper .gform_button,
.dm-form .gform_wrapper .gform-button {
	background: var(--dm-navy) !important;
	color: var(--dm-cream) !important;
	border: 1px solid var(--dm-navy) !important;
	border-radius: 2px !important;
	min-height: 48px;
	padding: .9em 1.75em !important;
	font-family: var(--dm-sans) !important;
	font-size: .875rem !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
}
.dm-form .gform_wrapper .gform_button:hover { background: var(--dm-orange) !important; border-color: var(--dm-orange) !important; color: var(--dm-navy) !important; }
.dm-form .gform_confirmation_message { font-family: var(--dm-serif); font-weight: 700; font-size: 1.5rem; line-height: 1.3; }
.dm-form .gform_required_legend { display: none; }
.dm-contact-list { list-style: none; margin: 0; padding: 0; }
.dm-contact-list li + li { margin-top: .4rem; }
.dm-contact-list a { text-decoration: underline; text-decoration-color: var(--dm-orange); text-underline-offset: .3em; }

/* Promo / freebie block (hidden until there is a freebie: remove .is-hidden) */
.dm-promo.is-hidden { display: none !important; }

/* Legal pages (plain WordPress content) ----------------------------------------- */
.dm-legal .entry-content,
body.page-id-118 .entry-content,
body.page-id-3 .entry-content { max-width: calc(var(--dm-text) + 2 * var(--dm-gutter)); margin: 0 auto; padding: clamp(48px, 6vw, 96px) var(--dm-gutter) var(--dm-space-section); }
body.page-id-118 .entry-content h1,
body.page-id-3 .entry-content h1 { font-size: var(--dm-fs-h2); margin-bottom: .8em; }
body.page-id-118 .entry-content p,
body.page-id-3 .entry-content p,
body.page-id-118 .entry-content li,
body.page-id-3 .entry-content li { margin-bottom: 1em; }
body.page-id-118 .entry-title,
body.page-id-3 .entry-title { max-width: var(--dm-text); margin: clamp(48px, 6vw, 96px) auto 2rem; padding: 0 var(--dm-gutter); font-size: var(--dm-fs-h2); }
body.page-id-118 .entry-content h2,
body.page-id-3 .entry-content h2 { font-size: var(--dm-fs-h4); margin: 2.2em 0 .6em; }
/* Kicker used as the page H1 (sales page) and empty kickers */
body h1.dm-kicker,
.fl-ds-page h1.dm-kicker {
	font-family: var(--dm-sans);
	font-weight: 400;
	font-size: var(--dm-fs-label);
	letter-spacing: .2em;
	line-height: 1.4;
	text-transform: uppercase;
	margin: 0 0 1.25rem;
}
.dm-kicker:empty { display: none !important; }
/* Contact form row (native BB row under the Say Hello hero) */
.fl-builder-content .dm-contact-row > .fl-row-content-wrap {
	padding: 0 var(--dm-gutter) var(--dm-space-section);
}
.dm-contact-row .fl-row-content { max-width: var(--dm-content); }
.dm-contact-row .fl-module, .dm-contact-row .fl-module-content { margin: 0 !important; }
.dm-contact-row .dm-form { max-width: var(--dm-text); padding-top: clamp(40px, 4vw, 64px); border-top: 1px solid var(--dm-line); }
.dm-form p:empty { display: none; }
.dm-form > p, .dm-form .fl-rich-text > p { margin: 0; }
/* Articles grid (BB Posts module on /artikelen/) */
.fl-builder-content .dm-posts-row > .fl-row-content-wrap { padding: 0 var(--dm-gutter) var(--dm-space-section); }
.dm-posts-row .fl-row-content { max-width: var(--dm-content); }
.dm-posts-row .fl-module, .dm-posts-row .fl-module-content { margin: 0 !important; }
.dm-posts .fl-post-grid-post {
	background: transparent !important;
	border: 0 !important;
	border-top: 1px solid var(--dm-line) !important;
	padding-top: 20px !important;
	box-shadow: none !important;
}
.dm-posts .fl-post-grid-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.dm-posts .fl-post-grid-text { padding: 20px 0 0 !important; }
.dm-posts .fl-post-grid-title, .dm-posts .fl-post-grid-title a {
	font-family: var(--dm-serif) !important;
	font-weight: 700 !important;
	font-size: 1.5rem !important;
	line-height: 1.2 !important;
	color: var(--dm-navy) !important;
	text-decoration: none !important;
}
.dm-posts .fl-post-grid-meta { font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--dm-ink-soft); margin: .6rem 0; }
.dm-posts .fl-post-grid-content p { font-size: 1rem; }
.dm-posts .fl-post-grid-more {
	font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--dm-navy) !important;
	text-decoration: underline !important; text-decoration-color: var(--dm-orange) !important; text-underline-offset: .45em;
}

/* Single articles and archive (Astra templates) */
.single-post .site-content > .ast-container,
.blog .site-content > .ast-container,
.archive .site-content > .ast-container { max-width: calc(var(--dm-text) + 2 * var(--dm-gutter)); padding: 0 var(--dm-gutter); }
.single-post .ast-article-single,
.single-post .ast-separate-container .ast-article-single { background: transparent !important; padding: clamp(48px, 6vw, 96px) 0 var(--dm-space-section) !important; }
.single-post .entry-header { margin-bottom: 2.5rem; }
.single-post .entry-title { font-size: var(--dm-fs-h2); line-height: 1.1; color: var(--dm-navy); }
.single-post .entry-meta, .single-post .entry-meta * { font-size: .8125rem !important; letter-spacing: .14em; text-transform: uppercase; color: var(--dm-ink-soft) !important; }
.single-post .post-thumb-img-content img { width: 100%; height: auto; margin-bottom: 2rem; }
.single-post .entry-content { font-size: var(--dm-fs-body); }
.single-post .entry-content > * + * { margin-top: 1.1em; }
.single-post .entry-content h2, .single-post .entry-content h3 { font-size: var(--dm-fs-h4); margin-top: 2em; }
.single-post .entry-content a { text-decoration: underline; text-decoration-color: var(--dm-orange); text-underline-offset: .25em; }
.single-post .entry-content blockquote { border-left: 2px solid var(--dm-orange); margin: 2em 0; padding: 0 0 0 1.5em; font-family: var(--dm-serif); font-weight: 700; font-size: 1.375rem; line-height: 1.35; }
.single-post .post-navigation, .single-post .ast-single-related-posts-container { border-top: 1px solid var(--dm-line); }
.blog .ast-article-post, .archive .ast-article-post { background: transparent !important; border-top: 1px solid var(--dm-line); padding: 2rem 0 !important; }
.blog .entry-title, .archive .entry-title { font-size: 1.75rem; }
/* Articles: columns layout on the content line (markup: .fl-post-grid > ul > li.fl-post-column) */
.dm-posts .fl-post-grid { margin: 0 !important; }
.dm-posts .fl-post-grid > ul {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 56px 32px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.dm-posts .fl-post-grid > ul::before, .dm-posts .fl-post-grid > ul::after { display: none !important; }
.dm-posts .fl-post-column { width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; }
.dm-posts .fl-post-column .fl-post-grid-post { height: 100%; margin: 0 !important; }
@media (max-width: 1024px) { .dm-posts .fl-post-grid > ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .dm-posts .fl-post-grid > ul { grid-template-columns: 1fr; } }
/* Round 2: hero headline breaks into 3-4 lines, not 5 */
.dm-hero .dm-split { grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); }
.dm-hero__title { max-width: 21ch; font-size: clamp(2.5rem, 1.6rem + 3vw, 4.25rem); }
.dm-hero__photo { max-width: 440px; }
@media (max-width: 900px) {
	.dm-hero .dm-split { grid-template-columns: 1fr; }
	.dm-hero__photo { max-width: 520px; }
}
/* Round 3: paragraph rhythm inside nested flows (beats ds-block reset) */
body .dm-flow > p + p { margin-top: 1.1em; }
body ul.dm-contact-list { padding-left: 0; margin-left: 0; list-style: none; }
@media (max-width: 480px) { body .dm-hero .dm-hero__title { font-size: 2.25rem; } }

/* Round 4 (client feedback 14 Oct) ------------------------------------- */
/* Double headings (statements inside text): smaller, tighter, easier to read */
:root { --dm-fs-statement: clamp(1.5rem, 1.2rem + 1vw, 2.125rem); }
.dm-statement { max-width: 30ch; line-height: 1.2; }
.dm-flow > .dm-statement { margin-top: 1.2em; margin-bottom: 0; }
.dm-flow > .dm-statement + .dm-statement { margin-top: .5em; }
.dm-flow > .dm-statement + * { margin-top: 1em; }

/* Bigger photos on desktop */
@media (min-width: 901px) {
	.dm-hero .dm-split { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(40px, 5vw, 88px); }
	.dm-hero__photo { max-width: 560px; }
	.dm-aside { grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: clamp(40px, 6vw, 104px); }
	.dm-aside--left { grid-template-columns: minmax(0, 480px) minmax(0, 1fr); }
	.dm-witem { grid-template-columns: 72px minmax(0, 1fr) minmax(0, 440px); }
}
