/* ==========================================================================
   Dreamweave Hypnosis — brand layer for Divi
   Colours are sampled from the Dreamweave logo.
   ========================================================================== */

:root {
	--dw-night: #010F2A;      /* logo background — main page colour */
	--dw-deep: #0A1A3A;       /* alternate section band */
	--dw-card: #010F2A;       /* cards sitting on the deep band */
	--dw-line: #24345C;       /* hairlines and card borders */
	--dw-line-strong: #3B4B78;/* outline buttons, dashed boxes */
	--dw-cream: #F0E0C8;      /* headings — wordmark cream */
	--dw-text: #CEC7BC;       /* body copy */
	--dw-muted: #A6A0A4;      /* captions, footer */
	--dw-gold: #D9B98A;       /* accent — crescent moon */
	--dw-gold-light: #EBD3A8;
	--dw-lavender: #B6A4CE;   /* secondary — the woven ribbons */
	--dw-serif: 'Cormorant', 'Cormorant Garamond', Georgia, serif;
	--dw-sans: 'Karla', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--dw-radius: 16px;
}

/* ---------- Base ---------- */
html body,
body #page-container,
body #main-content,
body #et-main-area {
	background-color: var(--dw-night);
}

html body {
	color: var(--dw-text);
	font-family: var(--dw-sans);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

body h1, body h2, body h3, body h4, body h5, body h6,
body .et_pb_module h1, body .et_pb_module h2, body .et_pb_module h3, body .et_pb_module h4 {
	font-family: var(--dw-serif);
	color: var(--dw-cream);
	font-weight: 500;
	line-height: 1.12;
	padding-bottom: 0;
}

body p { padding-bottom: 0; }
body .et_pb_text p + p,
body .entry-content p + p { margin-top: 1.05em; }

body a { color: var(--dw-gold); transition: color .2s ease; }
body a:hover { color: var(--dw-gold-light); }
body a:focus-visible,
body button:focus-visible,
body input:focus-visible,
body textarea:focus-visible {
	outline: 2px solid var(--dw-gold);
	outline-offset: 3px;
}

::selection { background: var(--dw-lavender); color: var(--dw-night); }

#main-content .container:before { display: none; } /* Divi sidebar divider */

/* ---------- Header ---------- */
body #main-header,
body #main-header.et-fixed-header {
	background-color: var(--dw-night) !important;
	box-shadow: none !important;
	border-bottom: 1px solid var(--dw-line);
}
body #top-header { display: none; }
/* Wide header: logo near the left edge, every menu link on one line. */
body #main-header .container { width: calc(100% - 48px); max-width: 1600px; }
@media (min-width: 981px) {
	body #top-menu { white-space: nowrap; }
	body #top-menu li { padding-right: 20px; }
	body #top-menu ul.sub-menu { white-space: normal; }
	body #top-menu li li { display: block; width: 100%; white-space: normal; padding: 0 20px; }
	body #top-menu li li a { display: block; width: 200px; padding: 8px 0 !important; }
	body #top-menu li.dw-menu-cta { padding-right: 0; }
}
@media (min-width: 981px) and (max-width: 1280px) {
	body #main-header .container { width: calc(100% - 32px); }
	body #top-menu li { padding-right: 14px; }
	body #top-menu li a, body .et-fixed-header #top-menu li a { font-size: 14px !important; }
	body #top-menu li.dw-menu-cta > a { padding: 8px 14px !important; }
	body #logo { max-height: 52px; }
}
@media (min-width: 981px) and (max-width: 1120px) {
	body #top-menu li { padding-right: 10px; }
	body #top-menu li a, body .et-fixed-header #top-menu li a { font-size: 13px !important; letter-spacing: 0; }
	body #top-menu .menu-item-has-children > a:first-child { padding-right: 16px; }
	body #top-menu .menu-item-has-children > a:first-child:after { right: 0; }
}

body #logo { max-height: 62px; width: auto; }
body .et-fixed-header #logo { max-height: 50px; }

body #top-menu li a,
body .et-fixed-header #top-menu li a {
	color: var(--dw-cream) !important;
	font-family: var(--dw-sans);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: .01em;
	opacity: 1 !important;
}
body #top-menu li a:hover { color: var(--dw-gold) !important; }
body #top-menu li.current-menu-item > a,
body #top-menu li.current_page_item > a,
body .et-fixed-header #top-menu li.current-menu-item > a {
	color: var(--dw-gold) !important;
}
body #top-menu li.dw-menu-cta > a {
	border: 1px solid var(--dw-gold);
	border-radius: 999px;
	padding: 9px 18px !important;
	color: var(--dw-gold) !important;
}
body #top-menu li.dw-menu-cta > a:hover { background: var(--dw-gold); color: var(--dw-night) !important; }
body #top-menu li.dw-menu-cta { padding-right: 0; }

body #top-menu li ul.sub-menu {
	background: var(--dw-deep);
	border-top: 2px solid var(--dw-gold);
	box-shadow: 0 12px 30px rgba(0,0,0,.35);
}

body .mobile_menu_bar:before,
body .mobile_menu_bar:after { color: var(--dw-gold) !important; }
body .et_mobile_menu {
	background: var(--dw-deep) !important;
	border-top: 2px solid var(--dw-gold) !important;
}
body .et_mobile_menu li a {
	color: var(--dw-cream) !important;
	border-bottom: 1px solid var(--dw-line) !important;
	font-size: 16px;
	padding: 12px 5%;
}
body .et_mobile_menu li a:hover { background: rgba(217,185,138,.08) !important; }

body #et_search_icon:hover, body #et_top_search { display: none; }

/* ---------- Footer ---------- */
body #main-footer { background-color: var(--dw-night) !important; border-top: 1px solid var(--dw-line); }
body #footer-bottom { background-color: var(--dw-night) !important; padding: 36px 0 48px; }
body #footer-bottom .container { width: calc(100% - 48px); max-width: 1120px; }
body #footer-info {
	float: none;
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	gap: 16px 32px;
	justify-content: space-between;
	color: var(--dw-muted) !important;
	font-size: 14px;
	line-height: 1.6;
	padding-bottom: 0;
	text-align: left;
}
body #footer-info a { color: var(--dw-text) !important; }
body #footer-info a:hover { color: var(--dw-gold) !important; }
body .dw-foot-note { max-width: 36rem; }
body #footer-bottom .et-social-icons { display: none; }
body #main-footer .footer-widget, body #main-footer .footer-widget * { color: var(--dw-text); }

/* ---------- Sections & rows ---------- */
.et_pb_section.dw-section {
	padding: 88px 0;
	background-color: transparent;
}
.et_pb_section.dw-section--alt { background-color: var(--dw-deep); }
.et_pb_section.dw-section--tight { padding: 64px 0; }
.et_pb_section.dw-hero { padding: 72px 0 96px; }
.et_pb_section.dw-page-hero { padding: 80px 0 48px; }

.et_pb_row.dw-row {
	width: calc(100% - 48px);
	max-width: 1120px;
	padding: 0;
}
.et_pb_row.dw-row + .et_pb_row.dw-row { margin-top: 44px; }
.et_pb_row.dw-row--narrow { max-width: 680px; }
.et_pb_row.dw-row--center, .et_pb_row.dw-row--center .et_pb_text { text-align: center; }
.et_pb_row.dw-row--middle { display: flex; align-items: center; flex-wrap: wrap; }
.et_pb_row.dw-row--middle:after { display: none; }

/* Divi stacks columns under 981px — give stacked columns room */
@media (max-width: 980px) {
	.et_pb_row.dw-row .et_pb_column { margin-bottom: 40px; }
	.et_pb_row.dw-row .et_pb_column:last-child { margin-bottom: 0; }
	.et_pb_row.dw-row--middle { display: block; }
	.et_pb_section.dw-section { padding: 64px 0; }
	.et_pb_section.dw-hero { padding: 48px 0 64px; }
}

/* ---------- Type helpers (use inside Text modules) ---------- */
.dw-eyebrow {
	margin: 0 0 16px;
	text-transform: uppercase;
	letter-spacing: .18em;
	font-size: 13px;
	font-weight: 500;
	color: var(--dw-lavender);
}
body .dw-display {
	font-size: clamp(2.6rem, 5vw, 4.4rem);
	line-height: 1.05;
	margin: 0 0 24px;
}
body .dw-h2 {
	font-size: clamp(2rem, 3.5vw, 2.8rem);
	margin: 0 0 14px;
}
.dw-lead {
	font-size: 1.15rem;
	max-width: 34rem;
	color: var(--dw-text);
}
.dw-intro { max-width: 40rem; }
.dw-row--center .dw-lead, .dw-row--center .dw-intro { margin-left: auto; margin-right: auto; }
.dw-small { font-size: 15px; color: var(--dw-muted); }
.dw-more { margin-top: 32px !important; font-weight: 700; }

/* ---------- Buttons (Divi Button module + .dw-btn class) ---------- */
.et_pb_button_module_wrapper:has(> .dw-btn) {
	display: inline-block;
	margin: 0 12px 12px 0;
}
.dw-row--center .et_pb_button_module_wrapper:has(> .dw-btn) { margin: 0 6px 12px; }

body .et_pb_button.dw-btn,
body .et_pb_button.dw-btn:hover,
body .et_pb_contact_submit.et_pb_button,
body .et_pb_contact_submit.et_pb_button:hover,
body a.dw-btn-link {
	display: inline-block;
	min-height: 48px;
	box-sizing: border-box;
	padding: 13px 26px !important;
	border-radius: 999px !important;
	border: 1px solid transparent !important;
	font-family: var(--dw-sans) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
body .et_pb_button.dw-btn:after,
body .et_pb_button.dw-btn:before,
body .et_pb_contact_submit.et_pb_button:after { display: none !important; }

body .et_pb_button.dw-btn--primary,
body .et_pb_contact_submit.et_pb_button,
body a.dw-btn-link {
	background-color: var(--dw-gold) !important;
	color: var(--dw-night) !important;
}
body .et_pb_button.dw-btn--primary:hover,
body .et_pb_contact_submit.et_pb_button:hover,
body a.dw-btn-link:hover {
	background-color: var(--dw-gold-light) !important;
	color: var(--dw-night) !important;
}
body .et_pb_button.dw-btn--ghost {
	background-color: transparent !important;
	border-color: var(--dw-line-strong) !important;
	color: var(--dw-cream) !important;
}
body .et_pb_button.dw-btn--ghost:hover {
	border-color: var(--dw-gold) !important;
	color: var(--dw-gold) !important;
	background-color: transparent !important;
}

/* ---------- Hero art ---------- */
.dw-hero-art { text-align: center; }
.dw-hero-art img { width: 100%; max-width: 420px; height: auto; }
.dw-hero-art--small img { max-width: 260px; }
@media (max-width: 980px) { .dw-hero-art img { max-width: 300px; } }

/* ---------- Cards (recordings) ---------- */
.dw-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 24px;
}
.dw-card {
	background: var(--dw-card);
	border: 1px solid var(--dw-line);
	border-radius: var(--dw-radius);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	transition: border-color .2s ease, transform .2s ease;
}
.dw-card:hover { border-color: var(--dw-line-strong); }
.dw-section:not(.dw-section--alt) .dw-card { background: var(--dw-deep); }
.dw-card__img { margin: -28px -28px 8px; border-radius: var(--dw-radius) var(--dw-radius) 0 0; overflow: hidden; aspect-ratio: 16 / 10; }
.dw-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
body .dw-card__title { margin: 0; font-size: 1.7rem; font-weight: 600; }
.dw-card__meta { margin: 0; font-size: 14px; color: var(--dw-lavender); letter-spacing: .04em; }
.dw-card__body { margin: 0; flex-grow: 1; }
.dw-card__body p + p { margin-top: .8em; }
.dw-card__link { font-weight: 700; text-decoration: none; }

/* ---------- Stats strip ---------- */
.dw-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
	gap: 20px;
	margin-top: 32px;
}
.dw-stat { border-top: 1px solid var(--dw-gold); padding-top: 14px; }
.dw-stat__big { font-family: var(--dw-serif); font-size: 1.45rem; font-weight: 600; color: var(--dw-cream); line-height: 1.2; }
.dw-stat__small { font-size: 15px; color: var(--dw-text); }

/* ---------- Article list (latest journal posts) ---------- */
.dw-articles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: 24px;
}
.dw-article {
	display: block;
	text-decoration: none;
	color: var(--dw-text) !important;
	border-bottom: 1px solid var(--dw-line);
	padding-bottom: 24px;
}
.dw-article__title {
	display: block;
	font-family: var(--dw-serif);
	font-size: 1.6rem;
	font-weight: 600;
	color: var(--dw-cream);
	line-height: 1.2;
	margin-bottom: 8px;
	transition: color .2s ease;
}
.dw-article:hover .dw-article__title { color: var(--dw-gold); }
.dw-article__date { display: block; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--dw-lavender); margin-bottom: 10px; }

/* ---------- Testimonials ---------- */
.dw-quotes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: 24px;
}
.dw-quote {
	margin: 0;
	border: 1px solid var(--dw-line);
	border-radius: var(--dw-radius);
	padding: 28px;
	background: var(--dw-deep);
}
.dw-quote blockquote {
	margin: 0 0 16px;
	padding: 0;
	border: 0;
	font-family: var(--dw-serif);
	font-size: 1.4rem;
	font-style: italic;
	line-height: 1.4;
	color: var(--dw-cream);
}
.dw-quote figcaption { color: var(--dw-muted); font-size: 15px; }

/* Sections whose dynamic content is empty hide themselves (no testimonials or posts yet) */
.et_pb_section:has(.dw-empty) { display: none; }

/* ---------- Steps ---------- */
.dw-steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 24px;
	counter-reset: dwstep;
	margin: 0;
	padding: 0;
	list-style: none !important;
}
.dw-steps li {
	counter-increment: dwstep;
	border-top: 1px solid var(--dw-line-strong);
	padding-top: 18px;
	list-style: none;
}
.dw-steps li::before {
	content: counter(dwstep, decimal-leading-zero);
	display: block;
	font-family: var(--dw-serif);
	font-size: 2rem;
	color: var(--dw-gold);
	line-height: 1;
	margin-bottom: 10px;
}
.dw-steps strong { display: block; color: var(--dw-cream); font-size: 1.05rem; margin-bottom: 4px; }

/* ---------- Note / callout ---------- */
.dw-note {
	border: 1px solid var(--dw-line-strong);
	border-radius: var(--dw-radius);
	padding: 24px 28px;
	background: rgba(182,164,206,.06);
}
.dw-note strong { color: var(--dw-cream); }

/* ---------- Lists inside text modules ---------- */
.dw-list { padding: 0 0 0 1.1em !important; margin: 0; }
.dw-list li { margin-bottom: 8px; }
.dw-list li::marker { color: var(--dw-gold); }

/* ---------- Toggles (FAQ) ---------- */
body .et_pb_toggle.dw-toggle {
	background: var(--dw-deep);
	border: 1px solid var(--dw-line);
	border-radius: 12px;
	padding: 20px 24px;
	margin-bottom: 12px !important;
}
.dw-section--alt .et_pb_toggle.dw-toggle { background: var(--dw-night); }
body .et_pb_toggle.dw-toggle .et_pb_toggle_title {
	font-family: var(--dw-serif);
	font-size: 1.35rem;
	font-weight: 600;
	color: var(--dw-cream) !important;
	line-height: 1.3;
	padding-right: 40px;
}
body .et_pb_toggle.dw-toggle .et_pb_toggle_title:before { color: var(--dw-gold); right: 0; }
body .et_pb_toggle.dw-toggle .et_pb_toggle_content { color: var(--dw-text); padding-top: 12px; }

/* ---------- Contact form ---------- */
body .dw-form .input,
body .dw-form input[type=text],
body .dw-form input[type=email],
body .dw-form textarea,
body .comment-form input[type=text],
body .comment-form input[type=email],
body .comment-form input[type=url],
body .comment-form textarea {
	background-color: var(--dw-night) !important;
	border: 1px solid var(--dw-line-strong) !important;
	border-radius: 10px !important;
	color: var(--dw-cream) !important;
	font-family: var(--dw-sans);
	font-size: 16px !important;
	padding: 14px 16px !important;
}
body .dw-form .input::placeholder,
body .comment-form textarea::placeholder { color: var(--dw-muted) !important; opacity: 1; }
body .dw-form .input:focus { border-color: var(--dw-gold) !important; }
body .dw-form .et_pb_contact_form_label { color: var(--dw-text); }
body .dw-form .et-pb-contact-message { color: var(--dw-cream); font-size: 17px; }
body .dw-form .et_contact_bottom_container { float: none; text-align: left; }
body .dw-form .et_pb_contact_right p { color: var(--dw-text); }
body .dw-form .et_pb_contact_captcha { background: var(--dw-night) !important; color: var(--dw-cream) !important; border: 1px solid var(--dw-line-strong) !important; }

/* ---------- Divi Blog module (Articles page) ---------- */
body .dw-blog .et_pb_post,
body .dw-blog.et_pb_blog_grid .et_pb_post {
	background-color: var(--dw-deep) !important;
	border: 1px solid var(--dw-line) !important;
	border-radius: var(--dw-radius);
	padding: 28px;
	overflow: hidden;
}
body .dw-blog .et_pb_image_container { margin: -28px -28px 20px; }
body .dw-blog .entry-title,
body .dw-blog .entry-title a {
	font-family: var(--dw-serif) !important;
	font-size: 1.6rem !important;
	font-weight: 600;
	color: var(--dw-cream) !important;
	line-height: 1.2 !important;
}
body .dw-blog .entry-title a:hover { color: var(--dw-gold) !important; }
body .dw-blog .post-meta,
body .dw-blog .post-meta a { color: var(--dw-lavender) !important; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
body .dw-blog .post-content, body .dw-blog .post-content p { color: var(--dw-text); }
body .dw-blog .more-link { color: var(--dw-gold); font-weight: 700; margin-top: 10px; display: inline-block; }
body .dw-blog .pagination a { color: var(--dw-gold); font-weight: 700; }

/* ---------- Single posts, archives, default pages ---------- */
body.single-post #left-area,
body.archive #left-area,
body.blog #left-area,
body.search #left-area { width: 100%; max-width: 760px; margin: 0 auto; float: none; padding: 64px 0 88px !important; }
body.single-post #sidebar,
body.archive #sidebar,
body.blog #sidebar,
body.search #sidebar { display: none; }

body.single-post .entry-title,
body.page-template-default:not(.et_pb_pagebuilder_layout) .entry-title,
body.archive .entry-title,
body.blog .entry-title {
	font-size: clamp(2.2rem, 4.5vw, 3.4rem) !important;
	color: var(--dw-cream);
	margin-bottom: 12px;
}
body.archive .entry-title a, body.blog .entry-title a { color: var(--dw-cream); }
body .post-meta, body .post-meta a { color: var(--dw-lavender) !important; }
body .entry-content,
body .entry-content p,
body .entry-content li { color: var(--dw-text); font-size: 18px; line-height: 1.75; }
body .entry-content h2 { font-size: 2rem; margin: 1.6em 0 .5em; }
body .entry-content h3 { font-size: 1.55rem; margin: 1.4em 0 .4em; }
body .entry-content blockquote { border-left: 2px solid var(--dw-gold); color: var(--dw-cream); font-family: var(--dw-serif); font-size: 1.4rem; font-style: italic; }
body.page-template-default:not(.et_pb_pagebuilder_layout) #left-area { padding: 64px 0 88px; }

body #comment-wrap, body #comment-wrap h1, body #comment-wrap .comment_postinfo, body #comment-wrap .comment-content { color: var(--dw-text); }
body #commentform input[type=submit], body .comment-reply-link {
	background: var(--dw-gold) !important;
	color: var(--dw-night) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 10px 22px !important;
	font-weight: 700;
}
body .comment-body { background: var(--dw-deep); border-radius: 12px; padding: 20px !important; }

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; }
}

/* ---------- Divi module defaults (light/dark text layouts) ---------- */
body .et_pb_module.et_pb_bg_layout_dark,
body .et_pb_module.et_pb_bg_layout_light,
body .et_pb_bg_layout_dark .et_pb_text_inner,
body .et_pb_bg_layout_dark p,
body .et_pb_bg_layout_dark li { color: var(--dw-text); }
body .et_pb_bg_layout_dark h1,
body .et_pb_bg_layout_dark h2,
body .et_pb_bg_layout_dark h3,
body .et_pb_bg_layout_dark h4 { color: var(--dw-cream); }
body .et_pb_bg_layout_dark .dw-eyebrow { color: var(--dw-lavender); }
body .et_pb_text h3 { font-size: 1.5rem; font-weight: 600; margin-bottom: 8px; }

/* ---------- Portrait ---------- */
.dw-portrait img { border-radius: var(--dw-radius); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
body .et_pb_module .dw-small { color: var(--dw-muted); }
body .et_pb_module .dw-card__meta { color: var(--dw-lavender); }
body .et_pb_module .dw-lead { color: var(--dw-text); }

@media (max-width: 980px) {
	body #logo { max-height: 44px; max-width: 70vw; }
	body #main-header .container { width: calc(100% - 32px); }
	.et_pb_row.dw-row { width: calc(100% - 32px); }
}

/* ==========================================================================
   v1.1 additions
   ========================================================================== */

/* ---------- Link buttons (inside Text modules / templates) ---------- */
body a.dw-btn-link--ghost,
body a.dw-btn-link--ghost:hover {
	background-color: transparent !important;
	border-color: var(--dw-line-strong) !important;
	color: var(--dw-cream) !important;
}
body a.dw-btn-link--ghost:hover { border-color: var(--dw-gold) !important; color: var(--dw-gold) !important; }
body a.dw-btn-link { margin: 0 10px 12px 0; vertical-align: middle; }
.dw-row--center a.dw-btn-link { margin: 0 5px 12px; }
.dw-hero-aside { margin-top: 10px !important; font-size: 15px; }
.dw-hero-aside a { color: var(--dw-lavender); text-decoration: none; }
.dw-hero-aside a:hover { color: var(--dw-gold); }
.dw-eyebrow a { color: inherit; text-decoration: none; }
.dw-eyebrow a:hover { color: var(--dw-gold); }

/* ---------- Header dropdowns ---------- */
body #top-menu li .sub-menu { width: 240px; padding: 12px 0; border-radius: 0 0 12px 12px; }
body #top-menu li .sub-menu li { padding: 0 16px; width: 100%; }
body #top-menu li .sub-menu a {
	width: 100%;
	padding: 9px 10px !important;
	font-size: 15px;
	border-radius: 8px;
}
body #top-menu li .sub-menu a:hover { background: rgba(217,185,138,.08); opacity: 1; }
body #top-menu .menu-item-has-children > a:first-child:after { color: var(--dw-gold); }
body .et_mobile_menu .sub-menu { padding-left: 0 !important; }
body .et_mobile_menu .sub-menu li a { padding-left: 10% !important; font-size: 15px; color: var(--dw-text) !important; }

/* ---------- Footer menu ---------- */
body #et-footer-nav { background-color: var(--dw-night) !important; border-bottom: 1px solid var(--dw-line); }
body #et-footer-nav .container { width: calc(100% - 48px); max-width: 1120px; }
body .bottom-nav { padding: 22px 0; display: flex; flex-wrap: wrap; gap: 8px 28px; }
body .bottom-nav li { padding-right: 0 !important; }
body .bottom-nav a { color: var(--dw-text) !important; font-size: 14px; font-weight: 500; opacity: 1 !important; }
body .bottom-nav a:hover { color: var(--dw-gold) !important; }

/* ---------- Card extras ---------- */
.dw-card__title a { color: var(--dw-cream); text-decoration: none; }
.dw-card__title a:hover { color: var(--dw-gold); }
.dw-card__actions { margin: 0 !important; display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
.dw-card__more { color: var(--dw-text) !important; font-size: 15px; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--dw-line-strong); }
.dw-card__more:hover { color: var(--dw-gold) !important; }
body .et_pb_module .dw-card__until { color: var(--dw-muted); font-size: 14px; margin: 0; }
.dw-card--experience .dw-card__meta { text-transform: uppercase; letter-spacing: .12em; font-size: 12px; }
.dw-note--empty { text-align: center; padding: 36px 28px; }

/* ---------- Collections ---------- */
.dw-collection + .dw-collection { margin-top: 72px; padding-top: 56px; border-top: 1px solid var(--dw-line); }
.dw-collection__head { margin-bottom: 28px; }

/* ---------- Session details ---------- */
.dw-details { margin: 0; border-top: 1px solid var(--dw-line); }
.dw-details__row {
	display: grid;
	grid-template-columns: minmax(120px, 34%) 1fr;
	gap: 16px;
	padding: 16px 0;
	border-bottom: 1px solid var(--dw-line);
}
.dw-details dt { color: var(--dw-lavender); font-size: 14px; letter-spacing: .06em; text-transform: uppercase; padding-top: 3px; }
.dw-details dd { margin: 0; color: var(--dw-cream); font-family: var(--dw-serif); font-size: 1.35rem; line-height: 1.35; }

/* ---------- Mailing-list signup ---------- */
.dw-signup { margin-top: 8px; }
/* MailPoet: a "Subscribe" button that opens the form in place */
.dw-signup--mailpoet { max-width: 520px; }
.dw-row--center .dw-signup--mailpoet { margin-left: auto; margin-right: auto; }
.dw-signup--mailpoet > summary { list-style: none; cursor: pointer; display: inline-block; }
.dw-signup--mailpoet > summary::-webkit-details-marker { display: none; }
.dw-signup--mailpoet[open] > summary { display: none; }
.dw-signup__form { text-align: left; background: var(--dw-deep); border: 1px solid var(--dw-line-strong); border-radius: var(--dw-radius); padding: 24px; }
.dw-section--alt .dw-signup__form { background: var(--dw-night); }
.dw-signup__form form.mailpoet_form { padding: 0 !important; background: transparent !important; }
.dw-signup__form .mailpoet_paragraph { margin-bottom: 14px; }
.dw-signup__form label, .dw-signup__form .mailpoet_form_paragraph { color: var(--dw-text) !important; }
.dw-signup__form input[type=email], .dw-signup__form input[type=text] { width: 100% !important; box-sizing: border-box; }
.dw-signup__form .mailpoet_validate_success { color: var(--dw-gold) !important; }
.dw-signup__form .mailpoet_validate_error { color: #F2A2A2 !important; }
.dw-signup--embed { max-width: 520px; }
.dw-row--center .dw-signup--embed { margin-left: auto; margin-right: auto; }
.dw-signup input[type=email], .dw-signup input[type=text] {
	background: var(--dw-night) !important; color: var(--dw-cream) !important;
	border: 1px solid var(--dw-line-strong) !important; border-radius: 10px !important; padding: 12px 14px !important;
}
.dw-signup button, .dw-signup input[type=submit] {
	background: var(--dw-gold) !important; color: var(--dw-night) !important; border: 0 !important;
	border-radius: 999px !important; padding: 12px 24px !important; font-weight: 700 !important; cursor: pointer;
}

/* ---------- Recording & collection templates ---------- */
.dw-template .dw-tpl-section { padding: 88px 0; }
.dw-template .dw-tpl-section--tight { padding: 56px 0 88px; }
.dw-template .dw-tpl-hero { padding: 80px 0 64px; }
.dw-template .dw-section--alt { background: var(--dw-deep); }
.dw-tpl-row { width: calc(100% - 48px); max-width: 1120px; margin: 0 auto; }
.dw-tpl-split { display: flex; flex-wrap: wrap; gap: 48px 64px; align-items: center; }
.dw-tpl-main { flex: 999 1 520px; min-width: 0; }
.dw-tpl-side { flex: 1 1 280px; min-width: 0; }
.dw-tpl-length { margin: 0 0 24px !important; }
.dw-tpl-actions { margin-top: 28px !important; }
.dw-template .entry-content p { font-size: 17px; }
.dw-template h3 { font-size: 1.5rem; font-weight: 600; margin-bottom: 8px; }
@media (max-width: 980px) {
	.dw-template .dw-tpl-section { padding: 64px 0; }
	.dw-tpl-row { width: calc(100% - 32px); }
}

/* ---------- Audio sample player ---------- */
.dw-sample { margin: 8px 0 0; max-width: 480px; }
.dw-sample__label { font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: var(--dw-lavender) !important; margin-bottom: 10px !important; }
.dw-sample .mejs-container, .dw-sample .mejs-container .mejs-controls { background: var(--dw-deep) !important; border-radius: 999px; }
.dw-sample .mejs-container { border: 1px solid var(--dw-line-strong); }
.dw-sample .mejs-time-current { background: var(--dw-gold) !important; }
.dw-sample .mejs-time-total { background: var(--dw-line-strong) !important; }
.dw-sample audio { width: 100%; }

/* Visually hidden text for screen readers (in case the parent theme doesn't define it) */
.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}

/* ==========================================================================
   Quizzes (v1.3)
   ========================================================================== */
.dw-quiz { max-width: 760px; margin: 0 auto; scroll-margin-top: 120px; }
.dw-quiz__card {
	background: var(--dw-deep);
	border: 1px solid var(--dw-line);
	border-radius: 20px;
	padding: clamp(24px, 4vw, 44px);
}
.dw-section--alt .dw-quiz__card { background: var(--dw-night); }
.dw-quiz__progress { display: flex; align-items: center; gap: 16px; margin-bottom: 28px; font-size: 14px; color: var(--dw-lavender); letter-spacing: .04em; }
.dw-quiz__progress span { flex: none; }
.dw-quiz__bar { flex: 1; height: 4px; background: var(--dw-line); border-radius: 4px; overflow: hidden; }
.dw-quiz__bar i { display: block; height: 100%; background: var(--dw-gold); border-radius: 4px; transition: width .3s ease; }
.dw-quiz__fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.dw-quiz__question {
	font-family: var(--dw-serif);
	font-size: clamp(1.6rem, 3vw, 2.1rem);
	line-height: 1.2;
	color: var(--dw-cream);
	margin: 0 0 24px;
	padding: 0;
	outline: none;
}
.dw-quiz__opts { display: grid; gap: 12px; }
.dw-quiz__opts--two { grid-template-columns: 1fr 1fr; }
.dw-quiz__opt {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 56px;
	padding: 14px 18px;
	border: 1px solid var(--dw-line-strong);
	border-radius: 14px;
	cursor: pointer;
	color: var(--dw-cream);
	font-size: 17px;
	line-height: 1.35;
	transition: border-color .15s ease, background-color .15s ease;
}
.dw-quiz__opt:hover { border-color: var(--dw-gold); background: rgba(217,185,138,.06); }
.dw-quiz__opt input {
	appearance: none; -webkit-appearance: none;
	flex: none; width: 20px; height: 20px; margin: 0;
	border: 1.5px solid var(--dw-line-strong); border-radius: 50%;
	display: grid; place-items: center; background: transparent;
}
.dw-quiz__opt input::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--dw-gold); transform: scale(0); transition: transform .15s ease; }
.dw-quiz__opt input:checked { border-color: var(--dw-gold); }
.dw-quiz__opt input:checked::before { transform: scale(1); }
.dw-quiz__opt:has(input:checked) { border-color: var(--dw-gold); background: rgba(217,185,138,.1); }
.dw-quiz__opt:has(input:focus-visible) { outline: 2px solid var(--dw-gold); outline-offset: 3px; }
.dw-quiz__opt:has(input:disabled) { cursor: default; }
.dw-quiz__opt.is-correct { border-color: var(--dw-gold); background: rgba(217,185,138,.14); }
.dw-quiz__opt.is-wrong { border-color: var(--dw-lavender); background: rgba(182,164,206,.08); opacity: .85; }
.dw-quiz__feedback { margin-top: 20px; padding: 18px 20px; border-radius: 14px; border: 1px solid var(--dw-line-strong); background: rgba(182,164,206,.06); outline: none; }
.dw-quiz__feedback strong { color: var(--dw-cream); display: block; margin-bottom: 4px; }
.dw-quiz__feedback.is-correct strong { color: var(--dw-gold); }
.dw-quiz__feedback p { margin: 0 !important; color: var(--dw-text); }
.dw-quiz__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 28px; }
.dw-quiz__nav button, .dw-quiz__again {
	min-height: 48px; padding: 12px 26px; border-radius: 999px; font: 700 16px/1.2 var(--dw-sans); cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease;
}
.dw-quiz__next { background: var(--dw-gold); color: var(--dw-night); border: 1px solid var(--dw-gold); }
.dw-quiz__next:hover:not(:disabled) { background: var(--dw-gold-light); }
.dw-quiz__back, .dw-quiz__again { background: transparent; color: var(--dw-cream); border: 1px solid var(--dw-line-strong); }
.dw-quiz__back:hover:not(:disabled), .dw-quiz__again:hover { border-color: var(--dw-gold); color: var(--dw-gold); }
.dw-quiz__nav button:disabled { opacity: .4; cursor: not-allowed; }
.dw-quiz__note { margin-top: 16px !important; font-size: 14px; color: var(--dw-muted) !important; text-align: center; }

.dw-quiz__result .dw-eyebrow { margin-bottom: 8px; }
.dw-quiz__result-title { outline: none; margin-bottom: 6px !important; }
.dw-quiz__summary { font-family: var(--dw-serif); font-style: italic; font-size: 1.35rem; color: var(--dw-gold) !important; margin-bottom: 18px !important; }
.dw-quiz__score { font-size: 15px; color: var(--dw-lavender) !important; margin-bottom: 6px !important; letter-spacing: .04em; }
.dw-quiz__result h3 { font-size: 1.4rem; margin: 28px 0 12px; }
.dw-quiz__tips { counter-reset: tip; list-style: none !important; padding: 0 !important; margin: 0; display: grid; gap: 12px; }
.dw-quiz__tips li { counter-increment: tip; display: flex; gap: 14px; align-items: baseline; color: var(--dw-text); }
.dw-quiz__tips li::before { content: counter(tip, decimal-leading-zero); font-family: var(--dw-serif); font-size: 1.3rem; color: var(--dw-gold); flex: none; }
.dw-quiz__recs { grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 16px; }
.dw-quiz__recs .dw-card { padding: 20px; background: var(--dw-night); }
.dw-quiz__recs .dw-card__title { font-size: 1.35rem; }
.dw-quiz__download {
	margin-top: 32px; padding: 24px; border-radius: 16px;
	border: 1px solid var(--dw-gold);
	background: rgba(217,185,138,.06);
	display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; justify-content: space-between;
}
.dw-quiz__download h3 { margin: 0 0 4px !important; }
.dw-quiz__download p { margin: 0 !important; font-size: 15px; }
.dw-quiz__actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.dw-quiz__actions a.dw-btn-link { margin: 0 !important; }
.dw-quiz__signup { margin-top: 28px; text-align: center; }
.dw-quiz__signup[hidden] { display: none; }
.dw-quiz__signup-inner { border-top: 1px solid var(--dw-line); padding-top: 28px; }
.dw-quiz__signup h3 { font-size: 1.5rem; margin-bottom: 6px; }
@media (max-width: 600px) {
	.dw-quiz__opts--two { grid-template-columns: 1fr; }
	.dw-quiz__nav button { padding: 12px 20px; }
}

/* ---------- Quiz results: free summary + paid guide (v1.4) ---------- */
.dw-quiz__answer { font-size: 1.1rem; color: var(--dw-cream) !important; max-width: 38rem; }
.dw-quiz__start { margin-top: 22px; display: grid; gap: 8px; }
.dw-quiz__start-label { font-size: 13px; text-transform: uppercase; letter-spacing: .14em; color: var(--dw-lavender); }
.dw-quiz__start-link {
	display: grid; gap: 2px; padding: 16px 20px; border: 1px solid var(--dw-line-strong); border-radius: 14px;
	text-decoration: none; background: var(--dw-night); max-width: 30rem;
}
.dw-quiz__start-link strong { font-family: var(--dw-serif); font-size: 1.4rem; font-weight: 600; color: var(--dw-cream); }
.dw-quiz__start-link span { color: var(--dw-text); font-size: 15px; }
.dw-quiz__start-link:hover { border-color: var(--dw-gold); }
.dw-quiz__start-link:hover strong { color: var(--dw-gold); }
.dw-quiz__upgrade {
	margin-top: 32px; padding: 28px; border-radius: 18px;
	border: 1px solid var(--dw-gold);
	background: linear-gradient(0deg, rgba(217,185,138,.07), rgba(217,185,138,.07)), var(--dw-night);
	display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px 32px; align-items: center;
}
.dw-quiz__upgrade h3 { margin: 0 0 6px !important; font-size: 1.6rem; }
.dw-quiz__upgrade .dw-eyebrow { margin-bottom: 6px; color: var(--dw-gold) !important; }
.dw-quiz__upgrade-copy > p { margin-bottom: 14px !important; }
.dw-quiz__includes { list-style: none !important; padding: 0 !important; margin: 0; display: grid; gap: 8px; }
.dw-quiz__includes li { display: flex; gap: 10px; align-items: flex-start; color: var(--dw-cream); font-size: 15.5px; line-height: 1.4; }
.dw-quiz__includes svg { flex: none; color: var(--dw-gold); margin-top: 1px; }
.dw-quiz__upgrade-buy { text-align: center; }
.dw-quiz__upgrade-buy a.dw-btn-link { margin: 0 0 10px !important; width: 100%; text-align: center; }
.dw-quiz__fine { font-size: 14px; color: var(--dw-muted) !important; margin: 0 0 4px !important; }
.dw-quiz__fine a { color: var(--dw-gold); }
.dw-quiz__again-wrap { margin-top: 20px !important; text-align: center; }
@media (max-width: 700px) { .dw-quiz__upgrade { grid-template-columns: 1fr; padding: 22px; } }

/* ==========================================================================
   Testimonials form (v1.5)
   ========================================================================== */
.dw-tform { display: grid; gap: 22px; max-width: 680px; }
.dw-tform__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dw-tform__field { display: grid; gap: 8px; min-width: 0; }
.dw-tform__field > label, .dw-tform__fieldset legend { font-weight: 500; color: var(--dw-cream); font-size: 16px; padding: 0; }
.dw-tform__fieldset { border: 0; margin: 0; padding: 0; }
.dw-tform__fieldset legend { margin-bottom: 10px; }
.dw-tform__hint { margin: -2px 0 2px !important; font-size: 14px; color: var(--dw-muted) !important; }
.dw-tform__req { color: var(--dw-gold); }
.dw-tform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .dw-tform__row { grid-template-columns: 1fr; } }
body .dw-tform input[type=text], body .dw-tform input[type=email], body .dw-tform textarea, body .dw-tform select {
	width: 100%; box-sizing: border-box;
	background: var(--dw-night); color: var(--dw-cream);
	border: 1px solid var(--dw-line-strong); border-radius: 10px;
	padding: 13px 15px; font: 400 16px/1.5 var(--dw-sans);
}
body .dw-tform select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--dw-gold) 50%), linear-gradient(135deg, var(--dw-gold) 50%, transparent 50%); background-position: calc(100% - 20px) 55%, calc(100% - 14px) 55%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 40px; }
body .dw-tform input:focus, body .dw-tform textarea:focus, body .dw-tform select:focus { border-color: var(--dw-gold); outline: 2px solid var(--dw-gold); outline-offset: 1px; }
.dw-tform__radios { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 640px) { .dw-tform__radios { grid-template-columns: 1fr; } }
.dw-tform__radio, .dw-tform__check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; color: var(--dw-text); font-size: 15.5px; line-height: 1.45; }
.dw-tform__radio { border: 1px solid var(--dw-line-strong); border-radius: 12px; padding: 12px 14px; min-height: 48px; align-items: center; }
.dw-tform__radio:has(input:checked) { border-color: var(--dw-gold); background: rgba(217,185,138,.08); color: var(--dw-cream); }
.dw-tform__radio input, .dw-tform__check input { accent-color: var(--dw-gold); width: 18px; height: 18px; flex: none; margin: 2px 0 0; }
.dw-tform__consent { display: grid; gap: 12px; padding: 18px; border: 1px solid var(--dw-line); border-radius: 12px; background: rgba(182,164,206,.05); }
.dw-tform__privacy { font-size: 14px; color: var(--dw-muted) !important; margin: 0 !important; }
.dw-tform__submit {
	justify-self: start; min-height: 50px; padding: 13px 30px; border-radius: 999px; border: 0; cursor: pointer;
	background: var(--dw-gold); color: var(--dw-night); font: 700 16px/1.2 var(--dw-sans);
}
.dw-tform__submit:hover { background: var(--dw-gold-light); }
.dw-tform__error { border-color: var(--dw-lavender); }
.dw-tform__thanks h2 { margin-bottom: 8px !important; }

/* Booking form (Live Sessions) */
.dw-booking-section { scroll-margin-top: 90px; }
.dw-tform__field { align-content: start; }
.dw-booking, .dw-booking__thanks { scroll-margin-top: 110px; max-width: 760px; }
.dw-booking__note { margin: 6px 0 30px; max-width: 760px; }
.dw-booking__note p { margin: 0 0 .4em !important; }
.dw-booking__note p:last-child { margin-bottom: 0 !important; }
.dw-booking__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .dw-booking__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .dw-booking__grid { grid-template-columns: 1fr; } }
.dw-booking .dw-tform__radio { font-size: 15px; }
.dw-booking .dw-tform__consent .dw-tform__check { font-size: 15px; }
.dw-quote__about, .dw-quote__about a { color: var(--dw-lavender); }
.dw-quote blockquote p { margin: 0 0 .6em !important; color: var(--dw-cream); }
.dw-quote blockquote p:last-child { margin-bottom: 0 !important; }

/* ==========================================================================
   Shop buttons placed by [dw_shop_button], and WooCommerce in the Dreamweave style
   ========================================================================== */
.dw-hero-actions { margin: 0; }
.dw-hero-actions a.dw-btn-link { margin: 0 10px 12px 0; }
.dw-card__actions .dw-card__more + .dw-card__more { margin-left: 14px; }

body.woocommerce-page #main-content,
body.woocommerce #main-content { background-color: var(--dw-night); }
body.woocommerce-page #main-content .container { padding-top: 56px; padding-bottom: 72px; }
body.woocommerce-page,
body.woocommerce-page p,
body.woocommerce-page li,
body.woocommerce-page td,
body.woocommerce-page th,
body.woocommerce-page label { color: var(--dw-text); }
body.woocommerce-page h1, body.woocommerce-page h2, body.woocommerce-page h3,
body.woocommerce-page .product_title,
body.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--dw-serif); color: var(--dw-cream); font-weight: 500; }
body.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.5rem; }
body.woocommerce div.product .product_title { font-size: clamp(2.2rem, 4vw, 3.2rem); }

/* Prices */
body.woocommerce div.product p.price,
body.woocommerce div.product span.price,
body.woocommerce ul.products li.product .price,
body.woocommerce-page .woocommerce-Price-amount { color: var(--dw-gold) !important; font-family: var(--dw-sans); font-weight: 700; }
body.woocommerce ul.products li.product .price del,
body.woocommerce div.product p.price del { color: var(--dw-muted) !important; opacity: .8; }
body.woocommerce span.onsale { background: var(--dw-lavender) !important; color: var(--dw-night) !important; border-radius: 999px; min-height: 0; line-height: 1; padding: 8px 12px; font-weight: 700; }

/* Product cards in the shop */
body.woocommerce ul.products li.product {
	background: var(--dw-deep);
	border: 1px solid var(--dw-line);
	border-radius: var(--dw-radius);
	padding: 18px 18px 22px !important;
	box-sizing: border-box;
}
body.woocommerce ul.products li.product a img { border-radius: 10px; margin-bottom: 14px; }

/* Buttons */
body.woocommerce a.button, body.woocommerce button.button, body.woocommerce input.button,
body.woocommerce #respond input#submit, body.woocommerce-page a.button, body.woocommerce-page button.button,
body.woocommerce .button.alt, body.woocommerce-page .button.alt,
body.woocommerce-page .wc-block-components-button,
body.woocommerce-page .wc-block-cart__submit-button,
body.woocommerce-page .wc-block-components-checkout-place-order-button {
	background: var(--dw-gold) !important;
	color: var(--dw-night) !important;
	border: 1px solid var(--dw-gold) !important;
	border-radius: 999px !important;
	font-family: var(--dw-sans) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	padding: 12px 24px !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
body.woocommerce a.button:hover, body.woocommerce button.button:hover, body.woocommerce-page a.button:hover,
body.woocommerce .button.alt:hover, body.woocommerce-page .wc-block-components-button:hover {
	background: var(--dw-gold-light) !important; border-color: var(--dw-gold-light) !important; color: var(--dw-night) !important;
}
body.woocommerce a.button:after, body.woocommerce button.button:after, body.woocommerce-page a.button:after { display: none !important; }

/* Forms: basket, checkout, account */
body.woocommerce-page input[type=text], body.woocommerce-page input[type=email], body.woocommerce-page input[type=tel],
body.woocommerce-page input[type=password], body.woocommerce-page input[type=number], body.woocommerce-page textarea,
body.woocommerce-page select, body.woocommerce-page .select2-container .select2-selection,
body.woocommerce-page .wc-block-components-text-input input {
	background: var(--dw-deep) !important;
	color: var(--dw-cream) !important;
	border: 1px solid var(--dw-line-strong) !important;
	border-radius: 10px !important;
	padding: 12px 14px !important;
	font-family: var(--dw-sans) !important;
}
body.woocommerce-page .wc-block-components-text-input label { color: var(--dw-muted) !important; }
body.woocommerce-page table.shop_table,
body.woocommerce-page .woocommerce-checkout-review-order-table,
body.woocommerce-page .cart_totals,
body.woocommerce-page .woocommerce-MyAccount-navigation,
body.woocommerce-page #payment,
body.woocommerce-page .wc-block-components-sidebar {
	background: var(--dw-deep) !important;
	border: 1px solid var(--dw-line) !important;
	border-radius: var(--dw-radius) !important;
	color: var(--dw-text);
}
body.woocommerce-page table.shop_table td, body.woocommerce-page table.shop_table th { border-color: var(--dw-line) !important; }
body.woocommerce-page #payment div.payment_box { background: var(--dw-night) !important; color: var(--dw-text) !important; }
body.woocommerce-page #payment div.payment_box:before { border-bottom-color: var(--dw-night) !important; }

/* Notices */
body.woocommerce-page .woocommerce-message, body.woocommerce-page .woocommerce-info, body.woocommerce-page .woocommerce-error,
body.woocommerce-page .wc-block-components-notice-banner {
	background: var(--dw-deep) !important;
	color: var(--dw-cream) !important;
	border: 1px solid var(--dw-line) !important;
	border-left: 3px solid var(--dw-gold) !important;
	border-radius: 10px;
}
body.woocommerce-page .woocommerce-error { border-left-color: #E8798A !important; }

/* Product page tabs and downloads */
body.woocommerce div.product .woocommerce-tabs ul.tabs li { background: var(--dw-deep) !important; border-color: var(--dw-line) !important; }
body.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--dw-night) !important; }
body.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--dw-cream) !important; }
body.woocommerce div.product .woocommerce-tabs .panel { background: var(--dw-night); color: var(--dw-text); }
body.woocommerce-page .woocommerce-MyAccount-navigation ul li a { color: var(--dw-cream); }
body.woocommerce-page .woocommerce-MyAccount-navigation ul li.is-active a { color: var(--dw-gold); }
body.woocommerce-page .quantity input.qty { min-width: 4em; }

.dw-quiz__also { margin: 10px 0 0; font-size: 15px; color: var(--dw-text); }
.dw-quiz__also a { font-weight: 700; }

/* "Your recordings" page (live picks linked from the results guide) */
.dw-picks { scroll-margin-top: 110px; }
.dw-picks__nav ul { list-style: none; margin: 0 0 36px !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 10px; }
.dw-picks__nav li { margin: 0 !important; padding: 0 !important; }
.dw-picks__nav li::before { display: none !important; }
.dw-picks__nav a { display: inline-block; padding: 9px 16px; border: 1px solid var(--dw-line-strong); border-radius: 999px; color: var(--dw-text) !important; font-size: 15px; text-decoration: none !important; line-height: 1.3; }
.dw-picks__nav a:hover { border-color: var(--dw-gold); color: var(--dw-cream) !important; }
.dw-picks__nav a[aria-current] { background: var(--dw-gold); border-color: var(--dw-gold); color: var(--dw-night) !important; font-weight: 600; }
body .dw-picks h3.dw-picks__label { font-family: var(--dw-sans); font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--dw-lavender); margin: 28px 0 14px; }
.dw-picks__best { max-width: 420px; }
.dw-picks__fine { margin-top: 22px !important; }

/* ---------- Imagine free MP3 page ---------- */
.dw-imagine-player { max-width: 560px; margin: 40px auto 0; text-align: center; align-items: center; }
.dw-imagine-player .dw-sample { width: 100%; max-width: 480px; margin: 8px auto 0; }
.dw-imagine-player .dw-more { margin-top: 16px !important; }

/* ---------- Kind words, front and centre (v1.13) ---------- */
.dw-kw-band { background: var(--dw-deep); border-top: 1px solid var(--dw-line); padding: 72px 0; text-align: center; }
.dw-kw-band__inner { width: calc(100% - 48px); max-width: 760px; margin: 0 auto; }
.dw-kw-band .dw-eyebrow { color: var(--dw-lavender); }
.dw-kw-band__quote { margin: 0 0 36px; }
.dw-kw-band__quote blockquote { margin: 0; padding: 0; border: 0; font-family: var(--dw-serif); font-style: italic; font-size: clamp(1.35rem, 2.6vw, 1.75rem); line-height: 1.45; color: var(--dw-cream); }
.dw-kw-band__quote blockquote p { margin: 0 0 .5em; padding: 0; }
.dw-kw-band__quote blockquote p:last-child { margin-bottom: 0; }
.dw-kw-band__quote figcaption { margin-top: 14px; color: var(--dw-muted); font-size: 15px; }
.dw-kw-band .dw-h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 10px; padding: 0; }
.dw-kw-band__lead { color: var(--dw-text); margin: 0 auto 24px; max-width: 560px; }
.dw-kw-band__actions { margin: 0; }
.dw-kw-band__actions a.dw-btn-link { margin: 0 5px 12px; }

.dw-kw-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 32px; padding: 28px; background: var(--dw-deep); border: 1px solid var(--dw-line-strong); border-radius: var(--dw-radius); }
.dw-kw-cta h3 { margin: 0 0 6px; padding: 0; }
.dw-kw-cta p { margin: 0; padding: 0; }
.dw-kw-cta a.dw-btn-link { margin: 0 !important; flex-shrink: 0; }
@media (max-width: 767px) {
	.dw-kw-band { padding: 56px 0; }
	.dw-kw-band__inner { width: calc(100% - 32px); }
	.dw-kw-cta { flex-direction: column; align-items: flex-start; }
}
.dw-imagine-audio { width: 100%; max-width: 480px; margin: 8px auto 0; }
.dw-imagine-audio audio { display: block; width: 100%; height: 48px; border-radius: 999px; color-scheme: dark; }
.dw-imagine-audio .dw-more { margin-top: 16px !important; }

/* ---------- Dark backgrounds everywhere (v1.18) ----------
   Divi gives sections and blog cards a white background by default. On pages
   converted to Divi 5, or sections added by hand, that left the theme's pale
   text on white. These rules put the theme's dark backgrounds back. A colour
   you choose for a section or module in Divi still wins (Divi's own settings
   are more specific than these). */
body .et_pb_section { background-color: var(--dw-night); }
body .et_pb_blog_grid .et_pb_post,
body .et_pb_blog_grid_wrapper .et_pb_post,
body .et_pb_posts .et_pb_post,
body .et_pb_blog_grid article,
body .et_pb_module .et_pb_post {
	background-color: var(--dw-deep);
	border: 1px solid var(--dw-line);
	border-radius: var(--dw-radius);
	padding: 28px;
	overflow: hidden;
}
body .et_pb_post .entry-title,
body .et_pb_post .entry-title a { color: var(--dw-cream); }
body .et_pb_post .entry-title a:hover { color: var(--dw-gold); }
body .et_pb_post .post-meta,
body .et_pb_post .post-meta a { color: var(--dw-lavender); }
body .et_pb_post .post-content,
body .et_pb_post .post-content p,
body .et_pb_post p { color: var(--dw-text); }
body .et_pb_post .more-link { color: var(--dw-gold); font-weight: 700; }
body .et_pb_blog_grid .pagination a,
body .et_pb_posts .pagination a { color: var(--dw-gold); }
/* Single articles and the post list keep the dark page colour too. */
body.single-post #main-content,
body.single-post article,
body.blog #main-content,
body.archive #main-content { background-color: var(--dw-night); }


/* ---------- Homepage "Live sessions" band (v1.19) ---------- */
.dw-live-band { background: var(--dw-night); border-top: 1px solid var(--dw-line); padding: 72px 0; }
.dw-live-band__inner { width: calc(100% - 48px); max-width: 1080px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 40px; background: var(--dw-deep); border: 1px solid var(--dw-line-strong); border-radius: var(--dw-radius); }
.dw-live-band__copy { max-width: 620px; }
.dw-live-band .dw-eyebrow { color: var(--dw-lavender); }
.dw-live-band .dw-h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 10px; padding: 0; }
.dw-live-band p { margin: 0 0 12px; padding: 0; }
.dw-live-band .dw-card__meta { margin: 4px 0 0; }
.dw-live-band__actions { flex-shrink: 0; display: flex; flex-direction: column; align-items: stretch; margin: 0 !important; }
.dw-live-band__actions a.dw-btn-link { margin: 0 0 12px !important; text-align: center; }
@media (max-width: 767px) {
	.dw-live-band { padding: 56px 0; }
	.dw-live-band__inner { width: calc(100% - 32px); flex-direction: column; align-items: flex-start; gap: 20px; padding: 28px 24px; }
	.dw-live-band__actions { width: 100%; }
}

/* Social icons left with no address ("#") are hidden (the footer script also catches pop-ups). */
.et-social-icons li:has(> a[href="#"]),
.et_pb_social_media_follow li:has(a[href="#"]) { display: none !important; }

/* Recording covers (v1.19): square, uncropped, on cards and recording pages. */
.dw-card__img--cover { aspect-ratio: 1 / 1; }
.dw-portrait.dw-cover img { aspect-ratio: 1 / 1; }
