/*
Theme Name:   Daybook OT for Divi
Theme URI:    https://orbitwebdesign.com.au/
Description:  Divi child theme for Daybook Occupational Therapy. Self-hosted fonts, component styles for the Divi layouts, Settings > Practice details and the enquiry form.
Author:       Orbit Web Design
Author URI:   https://orbitwebdesign.com.au/
Template:     Divi
Version:      1.0.0
Requires PHP: 8.0
License:      GNU General Public License v2 or later
Text Domain:  daybook-divi
*/

/* ==========================================================================
   How this stylesheet works with Divi
   - Colours come from Divi's global colours (Divi > Theme Options > Global
     Colours, or the colour picker in any module). The --dbk-* tokens below
     read them, with the original hex as a fallback.
   - Sizes for sections, rows and gaps set Divi 5's own layout variables.
   - Component styles hook onto CSS classes set in each module's
     Advanced > Attributes, or onto classes inside Text module HTML.
   - Selectors are kept low enough that any setting made in a Divi module
     still wins.

   Contents
   1. Fonts            7. Hero and daybook        13. Contact
   2. Tokens           8. Index and lists         14. Enquiry form
   3. Base             9. Steps and principles    15. Images and profiles
   4. Header          10. Call to action band     16. Notes and tags
   5. Footer          11. Inner page header       17. Motion
   6. Buttons, links  12. Services and approach
   ========================================================================== */

/* ---------- 1. Fonts (self-hosted, so no Google Fonts requests) ---------- */
@font-face { font-family: "Petrona"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/petrona-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Petrona"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/petrona-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Petrona"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/petrona-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Petrona"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/petrona-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/atkinson-hyperlegible-next-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/atkinson-hyperlegible-next-latin-400-italic.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/atkinson-hyperlegible-next-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Atkinson Hyperlegible Next"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/atkinson-hyperlegible-next-latin-700-normal.woff2") format("woff2"); }

/* ---------- 2. Tokens ---------- */
:root {
	/* Colour: Divi global colours with fallbacks */
	--dbk-paper: var(--gcid-dbk-paper, #F7F6F1);
	--dbk-surface: var(--gcid-dbk-surface, #FFFEFA);
	--dbk-beige: var(--gcid-dbk-beige, #EDE6DA);
	--dbk-sage-wash: var(--gcid-dbk-sage-wash, #E4EBE4);
	--dbk-ink: var(--gcid-heading-color, #1C2723);
	--dbk-ink-soft: var(--gcid-dbk-ink-soft, #4A5651);
	--dbk-sage: var(--gcid-dbk-sage, #8AA693);
	--dbk-accent: var(--gcid-primary-color, #2F5442);
	--dbk-accent-dark: var(--gcid-dbk-accent-dark, #233F32);
	--dbk-blue: var(--gcid-link-color, #34607F);
	--dbk-blue-soft: var(--gcid-dbk-blue-soft, #C3D3DE);
	--dbk-margin-line: var(--gcid-dbk-margin-line, #D9A99D);
	--dbk-pine: var(--gcid-dbk-pine, #22362D);
	--dbk-pine-fg: var(--gcid-dbk-pine-fg, #F1F3EE);
	--dbk-pine-muted: var(--gcid-dbk-pine-muted, #C3CEC7);
	--dbk-error: var(--gcid-dbk-error, #9C3524);
	--dbk-rule: rgba(28, 39, 35, 0.14);
	--dbk-rule-strong: rgba(28, 39, 35, 0.3);
	--dbk-pine-rule: rgba(241, 243, 238, 0.32);
	--dbk-focus: #245A80;
	--dbk-focus-on-dark: #E8D59A;
	--dbk-error-wash: #F8EAE5;
	--dbk-notice-wash: #E7EEF3;
	--dbk-success-wash: #E4EDE5;
	--dbk-shadow: 0 1px 2px rgba(28, 39, 35, 0.06), 0 26px 48px -30px rgba(28, 39, 35, 0.4);

	/* Type */
	--dbk-heading: "Petrona", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--dbk-body: "Atkinson Hyperlegible Next", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--dbk-h1: clamp(2.15rem, 1.65rem + 2.1vw, 3.3rem);
	--dbk-h2: clamp(1.6rem, 1.38rem + 0.95vw, 2.1rem);
	--dbk-h3: clamp(1.3rem, 1.2rem + 0.45vw, 1.55rem);
	--dbk-lead: clamp(1.4rem, 1.2rem + 0.9vw, 1.9rem);
	--dbk-large: 1.1875rem;
	--dbk-small: 0.9375rem;
	--dbk-radius: 4px;

	/* Divi 5 layout variables */
	--dbk-gutter: clamp(1.25rem, 0.8rem + 2.4vw, 3rem);
	--content-width: calc(100% - 2 * var(--dbk-gutter));
	--content-max-width: 1184px;
	--section-padding: clamp(3.5rem, 2.4rem + 4.2vw, 6.5rem);
	--row-gutter-horizontal: 4.5%;
	--row-gutter-vertical: 2rem;
	--module-gutter: 1.5rem;
}

/* ---------- 3. Base ---------- */
html {
	scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + 6rem);
}

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

body,
#page-container,
#main-content,
.et-l--body,
.et_pb_section {
	background-color: var(--dbk-paper);
}

body {
	color: var(--dbk-ink);
	font-family: var(--dbk-body);
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}

body,
body .et_pb_text,
body .et_pb_text_inner {
	line-height: 1.62;
}

body h1,
body h2,
body h3,
body h4 {
	font-family: var(--dbk-heading);
	font-weight: 500;
	line-height: 1.14;
	letter-spacing: -0.012em;
	color: var(--dbk-ink);
	padding-bottom: 0;
	text-wrap: balance;
}

body h1 { font-size: var(--dbk-h1); }
body h2 { font-size: var(--dbk-h2); }
body h3 { font-size: var(--dbk-h3); }
body h4 { font-size: var(--dbk-large); }

body p {
	text-wrap: pretty;
}

/* Spacing inside Text modules: headings sit close to the copy they introduce. */
.et_pb_text_inner > h1 + *,
.et_pb_text_inner > h2 + *,
.et_pb_text_inner > h3 + * {
	margin-top: 0.85rem;
}

.et_pb_text_inner > * + h2,
.et_pb_text_inner > * + h3 {
	margin-top: 1.25rem;
}

/* Links inside running text are underlined so they are easy to spot. */
.et_pb_text_inner p a,
.et_pb_text_inner li a,
.et_pb_text_inner td a,
.dbk-form a {
	color: var(--dbk-blue);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.et_pb_text_inner p a:hover,
.et_pb_text_inner li a:hover {
	text-decoration-thickness: 2px;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--dbk-focus);
	outline-offset: 3px;
	border-radius: 2px;
}

::selection {
	background: var(--dbk-sage-wash);
	color: var(--dbk-ink);
}

.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;
}

/* Icons are SVG masks, so they take the text colour. */
.dbk-icon--pencil { --dbk-icon: url("assets/icons/pencil.svg"); }
.dbk-icon--key { --dbk-icon: url("assets/icons/key.svg"); }
.dbk-icon--chair { --dbk-icon: url("assets/icons/chair.svg"); }
.dbk-icon--cups { --dbk-icon: url("assets/icons/cups.svg"); }
.dbk-icon--document { --dbk-icon: url("assets/icons/document.svg"); }
.dbk-icon--clinic { --dbk-icon: url("assets/icons/clinic.svg"); }
.dbk-icon--home { --dbk-icon: url("assets/icons/home.svg"); }
.dbk-icon--book { --dbk-icon: url("assets/icons/book.svg"); }
.dbk-icon--screen { --dbk-icon: url("assets/icons/screen.svg"); }
.dbk-icon--phone { --dbk-icon: url("assets/icons/phone.svg"); }
.dbk-icon--mail { --dbk-icon: url("assets/icons/mail.svg"); }
.dbk-icon--pin { --dbk-icon: url("assets/icons/pin.svg"); }

/* Lists styled by these components drop Divi's default bullets and padding. */
.et-l ul.dbk-index,
.et-l ul.dbk-principles,
.et-l ul.dbk-beliefs,
.et-l ul.dbk-principle-grid,
.et-l ul.dbk-dash,
.et-l ul.dbk-checklist,
.et-l ol.dbk-numbered,
.et-l ol.dbk-timeline,
.et-l ul.dbk-details,
.et-l ul.dbk-jump,
.et-l ul.dbk-footer-list,
.et-l ol.dbk-daybook__entries,
.et-l dl.dbk-facts,
.et-l dl.dbk-credentials {
	list-style: none;
	margin: 0;
	padding: 0;
	line-height: inherit;
}

.et-l ul.dbk-index > li,
.et-l ul.dbk-principles > li,
.et-l ul.dbk-beliefs > li,
.et-l ul.dbk-principle-grid > li,
.et-l ul.dbk-dash > li,
.et-l ul.dbk-checklist > li,
.et-l ol.dbk-numbered > li,
.et-l ol.dbk-timeline > li,
.et-l ul.dbk-details > li,
.et-l ul.dbk-jump > li,
.et-l ul.dbk-footer-list > li {
	margin: 0;
	padding-bottom: 0;
}

/* ---------- 4. Header (Theme Builder header layout) ---------- */
.et-l--header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 99;
}

@media (max-width: 600px) {
	.et-l--header {
		top: 0;
	}
}

.et-l--header .dbk-header.et_pb_section {
	padding-block: 0.85rem;
	background-color: var(--dbk-paper);
	border-bottom: 1px solid var(--dbk-rule);
}

.dbk-header .et_pb_row {
	align-items: center;
}

.dbk-header .dbk-header__nav.et_flex_column {
	--flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	column-gap: 1.75rem;
}

/* Brand lockup: mark, practice name and the word "Occupational Therapy". */
.dbk-brand .et_pb_text_inner {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 2.5rem;
	padding-left: 2.9rem;
}

.dbk-brand .et_pb_text_inner::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 2.25rem;
	height: 2.25rem;
	transform: translateY(-50%);
	background: url("assets/icons/daybook-mark.svg") center / contain no-repeat;
}

.dbk-brand p {
	padding-bottom: 0;
	line-height: 1.05;
}

.dbk-brand .dbk-brand__name {
	font-family: var(--dbk-heading);
	font-size: 1.4rem;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.dbk-brand .dbk-brand__name a {
	color: var(--dbk-ink);
	text-decoration: none;
}

/* The whole lockup is the home link. */
.dbk-brand .dbk-brand__name a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.dbk-brand .dbk-brand__sub {
	margin-top: 0.2rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--dbk-ink-soft);
	white-space: nowrap;
}

/* Divi Menu module in the header */
.dbk-header .et_pb_menu .et_pb_menu_inner_container,
.dbk-header .et_pb_menu .et_pb_menu__wrap {
	justify-content: flex-end;
}

.dbk-header .et_pb_menu .et-menu > li {
	padding-left: 0.85rem;
	padding-right: 0.85rem;
}

.dbk-header .et_pb_menu .et-menu > li > a {
	padding-block: 0.6rem;
	font-family: var(--dbk-body);
	font-size: 1rem;
	font-weight: 600;
	color: var(--dbk-ink);
	text-decoration: none;
}

.dbk-header .et_pb_menu .et-menu > li > a:hover {
	opacity: 1;
	color: var(--dbk-accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.45em;
}

.dbk-header .et_pb_menu .et-menu > li.current-menu-item > a,
.dbk-header .et_pb_menu .et-menu > li.current_page_item > a {
	color: var(--dbk-ink);
	text-decoration: underline;
	text-decoration-color: var(--dbk-sage);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.45em;
}

/* Mobile menu */
.dbk-header .et_mobile_nav_menu .mobile_nav .mobile_menu_bar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	border: 1.5px solid var(--dbk-rule-strong);
	border-radius: var(--dbk-radius);
}

.dbk-header .et_mobile_nav_menu .mobile_menu_bar::before {
	position: static;
	color: var(--dbk-ink);
	font-size: 26px;
}

.dbk-header .et_mobile_menu {
	padding: 0.5rem var(--dbk-gutter) 1.25rem;
	border-top: 0;
	background-color: var(--dbk-paper);
	box-shadow: 0 18px 24px -18px rgba(28, 39, 35, 0.35);
}

.dbk-header .et_mobile_menu li a {
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--dbk-rule);
	font-family: var(--dbk-heading);
	font-size: 1.375rem;
	font-weight: 500;
	color: var(--dbk-ink);
}

.dbk-header .et_mobile_menu li a:hover {
	background: transparent;
	opacity: 1;
	color: var(--dbk-accent);
}

/* The header button returns when there is room beside the full menu. */
@media (max-width: 1100px) {
	.dbk-header .dbk-header__cta {
		display: none !important;
	}
}

#page-container .dbk-header .et_pb_button {
	min-height: 2.625rem;
	padding: 0.55rem 1rem;
	font-size: var(--dbk-small);
}

/* ---------- 5. Footer (Theme Builder footer layout) ---------- */
.dbk-footer.et_pb_section {
	padding-block: 4rem 2rem;
	font-size: var(--dbk-small);
}

.dbk-footer h2 {
	padding-bottom: 0.75rem;
	font-family: var(--dbk-body);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--dbk-ink-soft);
}

.dbk-footer .et_pb_text_inner p {
	padding-bottom: 0.5rem;
}

.dbk-footer .et_pb_text_inner a {
	color: var(--dbk-ink);
	text-decoration: none;
}

.dbk-footer .et_pb_text_inner a:hover {
	text-decoration: underline;
}

.dbk-footer .dbk-footer__intro {
	max-width: 22rem;
	margin-top: 1rem;
	color: var(--dbk-ink-soft);
}

.et-l ul.dbk-footer-list {
	display: grid;
	gap: 0.5rem;
}

.dbk-footer .dbk-footer__base.et_pb_row {
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--dbk-rule-strong);
	font-size: 0.875rem;
	color: var(--dbk-ink-soft);
}

.dbk-footer .dbk-footer__base p {
	max-width: 60rem;
}

.dbk-footer .dbk-footer__base a {
	color: var(--dbk-ink-soft);
	text-decoration: underline;
}

.dbk-footer__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
}

.dbk-footer .dbk-footer__meta span {
	white-space: nowrap;
}

/* ---------- 6. Buttons and links ---------- */
/* Default look comes from Divi > Theme Customizer > Buttons. These rules
   refine the shape; a module's own button settings still take priority. */
#page-container .et_pb_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.8rem 1.375rem;
	font-family: var(--dbk-body);
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

#page-container .et_pb_button::after {
	display: none;
}

#page-container .et_pb_section .et_pb_button.dbk-btn-light {
	background-color: var(--dbk-pine-fg);
	border-color: var(--dbk-pine-fg);
	color: var(--dbk-pine);
}

#page-container .et_pb_section .et_pb_button.dbk-btn-light:hover {
	background-color: #FFFFFF;
	border-color: #FFFFFF;
	color: var(--dbk-pine);
}

#page-container .et_pb_section .et_pb_button.dbk-btn-outline-light {
	background-color: transparent;
	border: 1.5px solid var(--dbk-pine-rule);
	color: var(--dbk-pine-fg);
}

#page-container .et_pb_section .et_pb_button.dbk-btn-outline-light:hover {
	background-color: transparent;
	border-color: var(--dbk-pine-fg);
	color: var(--dbk-pine-fg);
}

.et_pb_text_inner a.dbk-link-arrow,
.dbk-link-arrow a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-weight: 700;
	color: var(--dbk-ink);
	text-decoration: underline;
	text-decoration-color: var(--dbk-rule-strong);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

.et_pb_text_inner a.dbk-link-arrow::after,
.dbk-link-arrow a::after {
	content: "";
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	background: currentColor;
	-webkit-mask: url("assets/icons/arrow.svg") center / contain no-repeat;
	mask: url("assets/icons/arrow.svg") center / contain no-repeat;
	transition: transform 0.15s ease;
}

.et_pb_text_inner a.dbk-link-arrow:hover,
.dbk-link-arrow a:hover {
	text-decoration-color: currentColor;
	text-decoration-thickness: 1px;
}

.et_pb_text_inner a.dbk-link-arrow:hover::after,
.dbk-link-arrow a:hover::after {
	transform: translateX(3px);
}

/* Text helpers, usable on a Text module or on a paragraph inside one */
.dbk-eyebrow,
.et_pb_text_inner .dbk-eyebrow {
	font-family: var(--dbk-body);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--dbk-accent);
}

.et_pb_text_inner .dbk-eyebrow + h1 {
	margin-top: 1rem;
}

.dbk-label,
.et_pb_text_inner .dbk-label {
	font-family: var(--dbk-body);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--dbk-ink-soft);
}

.et_pb_text_inner h2.dbk-label,
.et_pb_text_inner h3.dbk-label {
	padding-bottom: 0.75rem;
}

.dbk-lead,
.et_pb_text_inner .dbk-lead {
	max-width: 36rem;
	font-size: var(--dbk-large);
	color: var(--dbk-ink-soft);
}

.et_pb_text_inner h1 + .dbk-lead {
	margin-top: 1.5rem;
}

.dbk-lead-text,
.et_pb_text_inner .dbk-lead-text {
	max-width: 32em;
	font-family: var(--dbk-heading);
	font-size: var(--dbk-lead);
	font-weight: 400;
	line-height: 1.32;
	letter-spacing: -0.01em;
	color: var(--dbk-ink);
}

.dbk-muted,
.dbk-muted .et_pb_text_inner,
.et_pb_text_inner .dbk-muted {
	color: var(--dbk-ink-soft);
}

.dbk-prose .et_pb_text_inner,
.et_pb_text_inner .dbk-measure {
	max-width: 38rem;
}

.dbk-statement,
.et_pb_text_inner .dbk-statement {
	max-width: 20ch;
	font-family: var(--dbk-heading);
	font-size: var(--dbk-h2);
	font-weight: 400;
	line-height: 1.25;
	color: var(--dbk-ink);
}

.et_pb_text_inner .dbk-eyebrow + .dbk-statement {
	margin-top: 1.25rem;
}

.dbk-call,
.et_pb_text_inner .dbk-call {
	font-size: var(--dbk-small);
	color: var(--dbk-ink-soft);
}

.et_pb_text_inner .dbk-call a {
	color: var(--dbk-ink);
	font-weight: 700;
	white-space: nowrap;
}

/* ---------- 7. Hero and daybook ---------- */
.dbk-hero.et_pb_section {
	padding-top: clamp(2.25rem, 1.25rem + 4vw, 5rem);
}

.dbk-hero h1 {
	max-width: 13ch;
}

.dbk-actions.et_flex_group {
	--flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 1.5rem;
	row-gap: 0.75rem;
}

/* The daybook page: the one raised surface on the site. */
.et_pb_text.dbk-daybook {
	position: relative;
	width: 100%;
	max-width: 32rem;
	margin-inline: auto;
	padding: 2rem 2rem 1rem;
	background: var(--dbk-surface);
	border: 1px solid var(--dbk-rule);
	border-radius: 3px;
	box-shadow: var(--dbk-shadow);
}

.et_pb_text.dbk-daybook::before {
	content: "";
	position: absolute;
	top: -1px;
	right: 2.25rem;
	width: 1rem;
	height: 4.25rem;
	background: var(--dbk-sage);
	clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 84%, 0 100%);
}

.dbk-daybook .dbk-daybook__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 1rem;
	padding: 0 2.5rem 1rem 0;
	border-bottom: 1.5px solid var(--dbk-ink);
}

.dbk-daybook .dbk-daybook__head p {
	padding-bottom: 0;
}

.dbk-daybook .dbk-daybook__day {
	font-family: var(--dbk-heading);
	font-size: var(--dbk-h2);
	font-weight: 500;
	line-height: 1;
}

.dbk-daybook .dbk-daybook__note {
	font-size: 0.875rem;
	color: var(--dbk-ink-soft);
}

.et-l ol.dbk-daybook__entries {
	position: relative;
}

.dbk-daybook__entries::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 4.75rem;
	width: 1px;
	background: var(--dbk-margin-line);
}

.et-l .dbk-daybook__entries > li {
	display: grid;
	grid-template-columns: 4rem minmax(0, 1fr) 1.5rem;
	grid-template-areas:
		"time task tick"
		"time detail tick";
	column-gap: 1.5rem;
	margin: 0;
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--dbk-blue-soft);
}

.et-l .dbk-daybook__entries > li:last-child {
	border-bottom: 0;
}

.dbk-entry__time {
	grid-area: time;
	padding-top: 0.2rem;
	font-size: 0.875rem;
	font-variant-numeric: tabular-nums;
	color: var(--dbk-ink-soft);
	white-space: nowrap;
}

.dbk-entry__task {
	grid-area: task;
	font-family: var(--dbk-heading);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.3;
}

.dbk-entry__detail {
	grid-area: detail;
	margin-top: 0.15rem;
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--dbk-ink-soft);
}

.dbk-daybook__entries > li.is-done::after {
	content: "";
	content: "" / "Done";
	grid-area: tick;
	align-self: center;
	width: 1.5rem;
	height: 1.5rem;
	background: var(--dbk-blue);
	-webkit-mask: url("assets/icons/tick.svg") center / contain no-repeat;
	mask: url("assets/icons/tick.svg") center / contain no-repeat;
}

.dbk-caption .et_pb_text_inner {
	max-width: 32rem;
	margin-inline: auto;
	font-size: 0.875rem;
	color: var(--dbk-ink-soft);
	text-align: center;
}

@media (max-width: 26rem) {
	.et_pb_text.dbk-daybook {
		padding-inline: 1rem;
	}

	.et-l .dbk-daybook__entries > li {
		grid-template-columns: 3.6rem minmax(0, 1fr) 1.25rem;
		column-gap: 1.1rem;
	}

	.dbk-entry__time {
		font-size: 0.8125rem;
	}

	.dbk-daybook__entries::before {
		left: 4.15rem;
	}
}

/* ---------- 8. Margin grid, index and lists ---------- */
.dbk-ruled.et_pb_section {
	border-top: 1px solid var(--dbk-rule);
}

.dbk-margin__note,
.et_pb_text_inner .dbk-margin__note {
	max-width: 22rem;
	color: var(--dbk-ink-soft);
}

.et_pb_text_inner h2 + .dbk-margin__note {
	margin-top: 1rem;
}

@media (min-width: 981px) {
	.dbk-sticky.et_pb_column {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 7rem);
		align-self: flex-start;
	}
}

/* The wide column of a margin grid is a size container, so lists inside it
   lay out by the space they actually have. */
.dbk-margin > .et_pb_column:last-child {
	container-type: inline-size;
}

/* Services index on the home page */
.et-l ul.dbk-index {
	border-top: 1.5px solid var(--dbk-ink);
}

.et-l ul.dbk-index > li {
	position: relative;
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr) 1.25rem;
	column-gap: 1.5rem;
	row-gap: 0.25rem;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--dbk-rule-strong);
}

.et-l ul.dbk-index > li::before {
	content: "";
	grid-column: 1;
	grid-row: 1 / span 2;
	width: 2.25rem;
	height: 2.25rem;
	background: var(--dbk-accent);
	-webkit-mask: var(--dbk-icon) center / contain no-repeat;
	mask: var(--dbk-icon) center / contain no-repeat;
}

.et-l ul.dbk-index > li::after {
	content: "";
	grid-column: 3;
	grid-row: 1;
	width: 1.25rem;
	height: 1.25rem;
	margin-top: 0.35rem;
	background: var(--dbk-ink-soft);
	-webkit-mask: url("assets/icons/arrow.svg") center / contain no-repeat;
	mask: url("assets/icons/arrow.svg") center / contain no-repeat;
	transition: transform 0.15s ease, background-color 0.15s ease;
}

.dbk-index > li > * {
	grid-column: 2;
	margin: 0;
	padding-bottom: 0;
}

.et_pb_text_inner .dbk-index h3 {
	margin: 0;
	font-size: var(--dbk-h3);
	line-height: 1.2;
}

.et_pb_text_inner .dbk-index h3 a {
	color: var(--dbk-ink);
	text-decoration: none;
	transition: color 0.15s ease;
}

.et_pb_text_inner .dbk-index h3 a::before {
	content: "";
	position: absolute;
	inset: 0;
}

.et_pb_text_inner .dbk-index h3 a:focus-visible {
	outline: none;
}

.et-l ul.dbk-index > li:has(a:focus-visible) {
	outline: 3px solid var(--dbk-focus);
	outline-offset: 2px;
}

.et_pb_text_inner .dbk-index p {
	margin: 0;
	color: var(--dbk-ink-soft);
}

.et-l ul.dbk-index > li:hover h3 a {
	color: var(--dbk-accent);
}

.et-l ul.dbk-index > li:hover::after {
	transform: translateX(4px);
	background: var(--dbk-accent);
}

@container (min-width: 38rem) {
	.et-l ul.dbk-index > li {
		grid-template-columns: 2.5rem minmax(0, 15rem) minmax(0, 1fr) 1.25rem;
		align-items: baseline;
	}

	.et-l ul.dbk-index > li::before {
		grid-row: 1;
		align-self: start;
	}

	.et-l ul.dbk-index > li::after {
		grid-column: 4;
	}

	.dbk-index > li > h3 {
		grid-column: 2;
		grid-row: 1;
	}

	.dbk-index > li > p {
		grid-column: 3;
		grid-row: 1;
	}
}

/* Dash list, checklist and numbered list */
.et-l ul.dbk-dash {
	display: grid;
	gap: 0.5rem 2rem;
}

.et-l ul.dbk-dash > li {
	position: relative;
	padding-left: 1.5rem;
}

.et-l ul.dbk-dash > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.82em;
	width: 0.8rem;
	height: 1.5px;
	background: var(--dbk-accent);
}

@container (min-width: 34rem) {
	.et-l ul.dbk-dash.dbk-cols-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.et-l ul.dbk-checklist {
	display: grid;
	gap: 1rem 3rem;
}

.et-l ul.dbk-checklist > li {
	position: relative;
	padding-left: 2.25rem;
}

.et-l ul.dbk-checklist > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2rem;
	width: 1.25rem;
	height: 1.25rem;
	border: 1.5px solid var(--dbk-ink);
	border-radius: 2px;
	box-sizing: border-box;
}

@container (min-width: 34rem) {
	.et-l ul.dbk-checklist {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.et-l ol.dbk-numbered {
	display: grid;
	gap: 1rem;
	counter-reset: dbk-step;
}

.et-l ol.dbk-numbered > li {
	position: relative;
	padding-left: 2.25rem;
	counter-increment: dbk-step;
}

.et-l ol.dbk-numbered > li::before {
	content: counter(dbk-step);
	position: absolute;
	left: 0;
	top: -0.1rem;
	font-family: var(--dbk-heading);
	font-size: 1.25rem;
	color: var(--dbk-accent);
}

/* ---------- 9. Principles, beliefs and steps ---------- */
.et-l ul.dbk-principles > li,
.et-l ul.dbk-principle-grid > li {
	padding: 1.5rem 0;
	border-top: 1px solid var(--dbk-rule-strong);
}

.et-l ul.dbk-principles > li:last-child {
	border-bottom: 1px solid var(--dbk-rule-strong);
}

.et_pb_text_inner .dbk-principles p,
.et_pb_text_inner .dbk-principle-grid p,
.et_pb_text_inner .dbk-beliefs p {
	margin-top: 0.5rem;
	padding-bottom: 0;
	color: var(--dbk-ink-soft);
}

.et-l ul.dbk-principle-grid {
	display: grid;
	gap: 0 3rem;
}

@container (min-width: 36rem) {
	.et-l ul.dbk-principle-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.et-l ul.dbk-beliefs {
	border-top: 1.5px solid var(--dbk-ink);
}

.et-l ul.dbk-beliefs > li {
	display: grid;
	gap: 0.5rem 2rem;
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--dbk-rule-strong);
}

.et_pb_text_inner .dbk-beliefs p {
	margin-top: 0;
}

@container (min-width: 36rem) {
	.et-l ul.dbk-beliefs > li {
		grid-template-columns: minmax(0, 17rem) minmax(0, 1fr);
		align-items: baseline;
	}
}

/* How it works: one Text module per step */
.et_pb_text.dbk-step {
	padding-top: 1rem;
	border-top: 1.5px solid var(--dbk-ink);
}

.dbk-step .dbk-step__num {
	padding-bottom: 0;
	font-family: var(--dbk-heading);
	font-size: var(--dbk-h2);
	line-height: 1;
	color: var(--dbk-accent);
}

.et_pb_text_inner .dbk-step__num + h3 {
	margin-top: 1rem;
}

.dbk-step h3 + p {
	color: var(--dbk-ink-soft);
}

/* ---------- 10. Call to action band ---------- */
.dbk-cta.et_pb_section {
	--dbk-focus: var(--dbk-focus-on-dark);
	background-color: var(--dbk-pine);
	color: var(--dbk-pine-muted);
}

.dbk-cta h2 {
	max-width: 16ch;
	font-size: var(--dbk-h1);
	color: var(--dbk-pine-fg);
}

.dbk-cta .et_pb_text_inner {
	color: var(--dbk-pine-muted);
}

.dbk-cta .dbk-cta__text {
	max-width: 34rem;
	font-size: var(--dbk-large);
}

.dbk-cta .et_pb_text_inner h2 + .dbk-cta__text {
	margin-top: 1.5rem;
}

.dbk-cta .dbk-cta__contact.et_pb_column {
	padding-top: 1.5rem;
	border-top: 1px solid var(--dbk-pine-rule);
}

.dbk-cta .dbk-label {
	color: var(--dbk-pine-muted);
}

.dbk-cta .dbk-cta__phone {
	margin-top: 0.75rem;
	padding-bottom: 0;
	font-family: var(--dbk-heading);
	font-size: var(--dbk-h2);
	font-weight: 500;
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

.dbk-cta .et_pb_text_inner .dbk-cta__phone a {
	color: var(--dbk-pine-fg);
	text-decoration: none;
}

.dbk-cta .et_pb_text_inner .dbk-cta__phone a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.dbk-cta .dbk-cta__hours {
	margin-top: 0.75rem;
	font-size: var(--dbk-small);
}

.dbk-cta .dbk-actions.et_flex_group {
	column-gap: 0.75rem;
}

/* ---------- 11. Inner page header ---------- */
.dbk-page-head.et_pb_section {
	padding-block: clamp(2.25rem, 1.25rem + 3.5vw, 4.5rem);
	border-bottom: 1px solid var(--dbk-rule);
}

.dbk-page-head .et_pb_row {
	align-items: flex-end;
}

.dbk-page-head h1 {
	max-width: 17ch;
}

.dbk-page-head .dbk-page-head__aside .et_pb_text_inner {
	font-size: var(--dbk-small);
}

@media (min-width: 981px) {
	.dbk-page-head .dbk-page-head__aside.et_pb_column {
		padding-left: 1.5rem;
		border-left: 1px solid var(--dbk-rule-strong);
	}
}

@media (max-width: 980px) {
	.dbk-page-head .dbk-page-head__aside.et_pb_column {
		padding-top: 1.5rem;
		border-top: 1px solid var(--dbk-rule-strong);
	}
}

.et-l dl.dbk-facts {
	display: grid;
	gap: 1rem;
}

.dbk-facts dt {
	font-weight: 700;
	color: var(--dbk-ink);
}

.dbk-facts dd {
	margin: 0;
	color: var(--dbk-ink-soft);
}

.et-l ul.dbk-jump {
	display: grid;
	gap: 0.25rem;
}

.et_pb_text_inner .dbk-jump a {
	color: var(--dbk-ink);
	text-decoration-color: var(--dbk-rule-strong);
}

.et_pb_text_inner .dbk-jump a:hover {
	text-decoration-color: currentColor;
}

.dbk-quick-phone,
.et_pb_text_inner .dbk-quick-phone {
	padding-bottom: 0;
	font-family: var(--dbk-heading);
	font-size: var(--dbk-h2);
	font-weight: 500;
	line-height: 1.15;
	font-variant-numeric: tabular-nums;
}

.et_pb_text_inner .dbk-quick-phone a {
	color: var(--dbk-ink);
	text-decoration: none;
}

.et_pb_text_inner .dbk-quick-phone a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

/* ---------- 12. Services and approach ---------- */
/* One section per service: icon and heading in the margin, detail beside it. */
.dbk-service-head .et_pb_text_inner::before {
	content: "";
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 1rem;
	background: var(--dbk-accent);
	-webkit-mask: var(--dbk-icon) center / contain no-repeat;
	mask: var(--dbk-icon) center / contain no-repeat;
}

.dbk-service.et_pb_row + .dbk-service.et_pb_row {
	padding-top: 3rem;
	border-top: 1px solid var(--dbk-rule-strong);
}

.dbk-service.et_pb_row {
	padding-bottom: 3rem;
}

.dbk-service.et_pb_row:last-child {
	padding-bottom: 0;
}

.et_pb_text_inner .dbk-service__intro {
	max-width: 38rem;
	font-size: var(--dbk-large);
}

.et_pb_text_inner .dbk-service__intro + h3 {
	margin-top: 1.5rem;
}

/* Where we see you: icon above each setting */
.et_pb_text.dbk-setting {
	padding-top: 1rem;
	border-top: 1px solid var(--dbk-rule-strong);
}

.dbk-setting .et_pb_text_inner::before {
	content: "";
	display: block;
	width: 2rem;
	height: 2rem;
	margin-bottom: 0.75rem;
	background: var(--dbk-accent);
	-webkit-mask: var(--dbk-icon) center / contain no-repeat;
	mask: var(--dbk-icon) center / contain no-repeat;
}

.dbk-setting h3 + p {
	color: var(--dbk-ink-soft);
}

/* Timeline (Our approach) */
.et-l ol.dbk-timeline > li {
	position: relative;
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: 1.5rem;
	padding-bottom: 3rem;
}

.et-l ol.dbk-timeline > li:last-child {
	padding-bottom: 0;
}

.et-l ol.dbk-timeline > li::before {
	content: "";
	position: absolute;
	left: 1.5rem;
	top: 3.25rem;
	bottom: 0.5rem;
	width: 1px;
	background: var(--dbk-rule-strong);
}

.et-l ol.dbk-timeline > li:last-child::before {
	display: none;
}

.dbk-timeline .dbk-timeline__num {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	border: 1.5px solid var(--dbk-accent);
	border-radius: 50%;
	background: var(--dbk-paper);
	font-family: var(--dbk-heading);
	font-size: 1.375rem;
	font-weight: 500;
	line-height: 1;
	color: var(--dbk-accent);
}

.dbk-timeline .dbk-timeline__content {
	max-width: 44rem;
	padding-top: 0.55rem;
}

.dbk-timeline .dbk-timeline__content > * + * {
	margin-top: 0.75rem;
}

.et_pb_text_inner .dbk-timeline p {
	padding-bottom: 0;
	color: var(--dbk-ink-soft);
}

.dbk-takeaway {
	margin: 0;
	padding-top: 0.75rem;
	border-top: 1px dashed var(--dbk-rule-strong);
}

.dbk-takeaway dt {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--dbk-accent);
}

.dbk-takeaway dd {
	margin: 0.15rem 0 0;
	color: var(--dbk-ink);
}

/* ---------- 13. Contact ---------- */
.et_pb_text_inner h2.dbk-contact-label {
	padding-bottom: 1rem;
}

.et-l ul.dbk-details {
	display: grid;
	gap: 1rem;
	padding-top: 1rem;
	border-top: 1.5px solid var(--dbk-ink);
}

.et-l ul.dbk-details > li {
	display: grid;
	grid-template-columns: 1.5rem minmax(0, 1fr);
	column-gap: 0.75rem;
}

.et-l ul.dbk-details > li::before {
	content: "";
	grid-row: 1 / span 2;
	width: 1.5rem;
	height: 1.5rem;
	margin-top: 0.1rem;
	background: var(--dbk-accent);
	-webkit-mask: var(--dbk-icon) center / contain no-repeat;
	mask: var(--dbk-icon) center / contain no-repeat;
}

.dbk-details .dbk-detail__label {
	grid-column: 2;
	font-size: 0.875rem;
	color: var(--dbk-ink-soft);
}

.dbk-details .dbk-detail__value {
	grid-column: 2;
	font-weight: 700;
}

.et_pb_text_inner .dbk-details .dbk-detail__value a {
	color: var(--dbk-ink);
}

.et_pb_text_inner table.dbk-hours {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
}

.et_pb_text_inner table.dbk-hours th,
.et_pb_text_inner table.dbk-hours td {
	padding: 0.55rem 0;
	border: 0;
	border-bottom: 1px solid var(--dbk-rule);
	text-align: left;
	font-weight: 400;
	vertical-align: top;
}

.et_pb_text_inner table.dbk-hours th {
	padding-right: 1rem;
	color: var(--dbk-ink-soft);
}

.et_pb_text_inner table.dbk-hours td {
	text-align: right;
	white-space: nowrap;
}

.et_pb_text.dbk-note {
	padding: 1rem 1.25rem;
	border: 1.5px solid var(--dbk-rule-strong);
	border-radius: var(--dbk-radius);
	font-size: var(--dbk-small);
}

.dbk-note .et_pb_text_inner p {
	padding-bottom: 0.25rem;
}

/* ---------- 14. Enquiry form ([daybook_enquiry_form] in a Code module) ---------- */
.dbk-form {
	display: grid;
	gap: 1.5rem;
}

.dbk-form .dbk-form__row {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 40rem) {
	.dbk-form .dbk-form__row--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.dbk-form .dbk-field {
	display: grid;
	gap: 0.5rem;
	min-width: 0;
	align-content: start;
}

.dbk-form .dbk-field__label,
.dbk-form legend {
	font-weight: 700;
	color: var(--dbk-ink);
}

.dbk-form .dbk-field__optional {
	font-weight: 400;
	color: var(--dbk-ink-soft);
}

.dbk-form .dbk-field__hint {
	margin: 0;
	padding: 0;
	font-size: var(--dbk-small);
	line-height: 1.45;
	color: var(--dbk-ink-soft);
}

.dbk-form .dbk-field__error {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	margin: 0;
	padding: 0;
	font-size: var(--dbk-small);
	font-weight: 700;
	line-height: 1.45;
	color: var(--dbk-error);
}

.dbk-form .dbk-field__error[hidden] {
	display: none;
}

.dbk-form .dbk-field__error::before {
	content: "";
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin-top: 0.12rem;
	background: currentColor;
	-webkit-mask: url("assets/icons/alert.svg") center / contain no-repeat;
	mask: url("assets/icons/alert.svg") center / contain no-repeat;
}

.dbk-form .dbk-input,
.dbk-form .dbk-textarea,
.dbk-form .dbk-select {
	width: 100%;
	min-height: 3rem;
	margin: 0;
	padding: 0.7rem 0.875rem;
	border: 1.5px solid var(--dbk-rule-strong);
	border-radius: var(--dbk-radius);
	background: var(--dbk-surface);
	color: var(--dbk-ink);
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	box-sizing: border-box;
	transition: border-color 0.15s ease;
}

.dbk-form .dbk-input:hover,
.dbk-form .dbk-textarea:hover,
.dbk-form .dbk-select:hover {
	border-color: var(--dbk-ink-soft);
}

.dbk-form .dbk-input:focus-visible,
.dbk-form .dbk-textarea:focus-visible,
.dbk-form .dbk-select:focus-visible {
	outline: 3px solid var(--dbk-focus);
	outline-offset: 1px;
	border-color: var(--dbk-ink);
}

.dbk-form .dbk-textarea {
	min-height: 9rem;
	resize: vertical;
}

.dbk-form [aria-invalid="true"] {
	border-color: var(--dbk-error);
	border-width: 2px;
}

.dbk-form .dbk-select-wrap {
	position: relative;
}

.dbk-form .dbk-select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.75rem;
	cursor: pointer;
}

.dbk-form .dbk-select-wrap::after {
	content: "";
	position: absolute;
	right: 1.1rem;
	top: 50%;
	width: 0.55rem;
	height: 0.55rem;
	border-right: 2px solid var(--dbk-ink);
	border-bottom: 2px solid var(--dbk-ink);
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}

.dbk-form fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.dbk-form legend {
	padding: 0;
	margin-bottom: 0.5rem;
}

.dbk-form .dbk-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
}

.dbk-form .dbk-choice {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 2.75rem;
	cursor: pointer;
}

.dbk-form .dbk-choice input {
	width: 1.25rem;
	height: 1.25rem;
	margin: 0;
	flex: none;
	accent-color: var(--dbk-accent);
	cursor: pointer;
}

.dbk-form input[type="radio"] {
	-webkit-appearance: radio;
	appearance: auto;
}

.dbk-form input[type="checkbox"] {
	-webkit-appearance: checkbox;
	appearance: auto;
}

.dbk-form .dbk-choice--top {
	align-items: flex-start;
}

.dbk-form .dbk-choice--top input {
	margin-top: 0.2rem;
}

.dbk-form .dbk-honeypot {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.dbk-form .dbk-form__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.5rem;
	padding-top: 0.5rem;
}

.dbk-form .dbk-form__actions p {
	margin: 0;
	padding: 0;
	font-size: var(--dbk-small);
	color: var(--dbk-ink-soft);
}

.dbk-form .dbk-submit {
	min-height: 3rem;
	padding: 0.8rem 1.375rem;
	border: 0;
	border-radius: var(--dbk-radius);
	background: var(--dbk-accent);
	color: #FFFFFF;
	font: inherit;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.dbk-form .dbk-submit:hover {
	background: var(--dbk-accent-dark);
}

.dbk-form .dbk-submit[disabled] {
	cursor: progress;
	opacity: 0.75;
}

.dbk-enquiry .dbk-error-summary,
.dbk-enquiry .dbk-status {
	margin-bottom: 1.5rem;
	padding: 1.5rem;
	border-radius: var(--dbk-radius);
}

.dbk-enquiry .dbk-error-summary {
	border: 2px solid var(--dbk-error);
	background: var(--dbk-error-wash);
}

.dbk-enquiry .dbk-error-summary h2,
.dbk-enquiry .dbk-status h2 {
	margin: 0;
	padding: 0;
	font-family: var(--dbk-body);
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--dbk-ink);
}

.dbk-enquiry .dbk-error-summary h2 {
	color: var(--dbk-error);
}

.dbk-enquiry .dbk-error-summary ul {
	display: grid;
	gap: 0.25rem;
	margin: 0.75rem 0 0;
	padding: 0 0 0 1.25rem;
	list-style: disc;
}

.dbk-enquiry .dbk-error-summary a {
	color: var(--dbk-error);
	font-weight: 700;
	text-decoration: underline;
}

.dbk-enquiry .dbk-status {
	border: 1.5px solid var(--dbk-rule-strong);
}

.dbk-enquiry .dbk-status p {
	margin: 0.5rem 0 0;
	padding: 0;
}

.dbk-enquiry .dbk-status--success {
	background: var(--dbk-success-wash);
	border-color: var(--dbk-accent);
}

.dbk-enquiry .dbk-status--error {
	background: var(--dbk-error-wash);
	border-color: var(--dbk-error);
}

.dbk-enquiry :where(.dbk-error-summary, .dbk-status):focus {
	outline: none;
}

.dbk-enquiry :where(.dbk-error-summary, .dbk-status):focus-visible {
	outline: 3px solid var(--dbk-focus);
	outline-offset: 3px;
}

/* ---------- 15. Images and profiles ---------- */
.et_pb_image.dbk-photo img,
.et_pb_image.dbk-photo .et_pb_image_wrap {
	display: block;
	width: 100%;
	border-radius: 3px;
}

/* Team Member modules: photo beside the details */
.et_pb_team_member.dbk-profile {
	display: grid;
	grid-template-columns: minmax(6.5rem, 9rem) minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

.dbk-profile .et_pb_team_member_image {
	width: 100%;
	max-width: none;
	margin: 0;
}

.dbk-profile .et_pb_team_member_image img {
	display: block;
	width: 100%;
	border-radius: 3px;
}

.dbk-profile .et_pb_team_member_description {
	display: block;
	padding: 0;
	text-align: left;
}

.dbk-profile .et_pb_module_header {
	padding-bottom: 0;
	font-size: var(--dbk-h3);
}

.dbk-profile .et_pb_member_position {
	padding: 0.25rem 0 0;
	color: var(--dbk-ink-soft);
}

.dbk-profile .et_pb_team_member_description_content {
	margin-top: 1rem;
}

.et-l dl.dbk-credentials {
	display: grid;
	gap: 0.75rem;
	margin: 0 0 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--dbk-rule);
	font-size: var(--dbk-small);
}

.dbk-credentials dt {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--dbk-ink-soft);
}

.dbk-credentials dd {
	margin: 0.1rem 0 0;
}

@media (max-width: 30rem) {
	.et_pb_team_member.dbk-profile {
		grid-template-columns: 1fr;
	}

	.dbk-profile .et_pb_team_member_image {
		max-width: 10rem;
	}
}

/* ---------- 16. Notes and placeholder tags ---------- */
.dbk-tag,
.et_pb_text_inner .dbk-tag {
	display: inline-block;
	width: fit-content;
	margin: 0 0.5rem 0 0;
	padding: 0.1rem 0.5rem;
	border-radius: 2px;
	background: var(--dbk-notice-wash);
	color: var(--dbk-blue);
	font-family: var(--dbk-body);
	font-size: 0.75rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.6;
	text-transform: uppercase;
	vertical-align: 0.1em;
}

.dbk-placeholder,
.et_pb_text_inner .dbk-placeholder {
	color: var(--dbk-ink-soft);
	font-style: italic;
}

.et_pb_text.dbk-notice,
.et_pb_text_inner .dbk-notice {
	padding: 1rem 1.25rem;
	border: 1.5px solid var(--dbk-blue);
	border-radius: var(--dbk-radius);
	background: var(--dbk-notice-wash);
	font-size: var(--dbk-small);
}

.dbk-small,
.et_pb_text_inner .dbk-small {
	font-size: var(--dbk-small);
}

.dbk-registration .et_pb_text_inner {
	max-width: 44rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--dbk-rule-strong);
	color: var(--dbk-ink-soft);
}

/* ---------- 17. Motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* ---------- 18. Module-level text classes ---------- */
/* When a helper class is set on the Text module itself, its text inherits the right leading. */
.dbk-lead-text .et_pb_text_inner,
.dbk-lead-text .et_pb_text_inner p {
	line-height: 1.32;
}

.dbk-statement .et_pb_text_inner,
.dbk-statement .et_pb_text_inner p {
	line-height: 1.25;
}

.dbk-lead-text .et_pb_text_inner p {
	padding-bottom: 0;
}

/* ---------- 19. Spacing between stacked Text modules ---------- */
/* A Text module that opens with a small label heading gets extra room above it. */
.et_pb_column > .et_pb_text + .et_pb_text:has(> .et_pb_text_inner > .dbk-label:first-child) {
	margin-top: 1rem;
}

/* ---------- 20. Mobile menu panel ---------- */
/* Anchor the dropdown to the whole header, not the narrow menu column. */
@media (max-width: 980px) {
	.dbk-header .et_pb_row,
	.dbk-header .dbk-header__nav.et_pb_column,
	.dbk-header .et_pb_menu,
	.dbk-header .et_pb_menu .et_pb_menu_inner_container {
		position: static;
	}

	.dbk-header .et_pb_menu .et_mobile_menu {
		top: 100%;
		left: 0;
		right: 0;
		width: 100%;
	}
}

.dbk-header .et_mobile_menu li.current-menu-item > a,
.dbk-header .et_mobile_menu li.current_page_item > a {
	color: var(--dbk-accent);
}
