/*
Theme Name: drchetweld
Theme URI:    https://chet.wildcatsites.com
Description:  Divi 5 child theme for Dr. Chet Weld. All custom CSS, functions, and template overrides live here so the Divi parent theme can be updated safely.
Author:       Wildcat SEO
Author URI:   https://wildcatseo.com
Template:     Divi
Version:      1.1.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  drchetweld
WPVibe:       yes
*/

/* ==========================================================================
   DR. CHET WELD — DESIGN SYSTEM
   --------------------------------------------------------------------------
   Everything visual lives here. Divi pages only supply structure
   (sections / rows / columns) and copy, plus a `dcw-*` class on each module.
   To restyle the site, edit this file — not the pages.

   CONTENTS
     1.  Tokens
     2.  Base typography
     3.  Divi resets + layout helpers
     4.  Shared elements (eyebrow, buttons, links, rules)
     5.  Hero
     6.  Intro strip
     7.  Service cards
     8.  Split image panel
     9.  Meet Dr. Weld
     10. Steps
     11. Article / resource cards
     12. Long-form editorial (the text-only treatment)
     13. Inner page hero
     14. Contact
     15. CTA band
     16. Header / footer (Theme Builder)
     17. Responsive
   ========================================================================== */


/* 1. TOKENS
   ========================================================================== */
:root {
	--dcw-green:  #26372a;
	--dcw-green-d:#1e2b21;
	--dcw-olive:  #59644b;
	--dcw-gold:   #b99569;
	--dcw-gold-l: #d8bc94;
	--dcw-cream:  #f6f0e6;
	--dcw-paper:  #e9ddca;
	--dcw-char:   #3d3933;
	--dcw-line:   #ddd0bd;
	--dcw-white:  #ffffff;

	--dcw-serif:  Georgia, "Times New Roman", Times, serif;
	--dcw-sans:   Arial, "Helvetica Neue", Helvetica, sans-serif;

	--dcw-gutter: 8vw;
	--dcw-block:  7rem;
}


/* 2. BASE TYPOGRAPHY
   ========================================================================== */
/* NOTE ON SPECIFICITY
   These base rules are wrapped in :where() so the #page-container ID adds no
   weight. That leaves them at element-level specificity, which is enough to
   beat Divi's defaults (this stylesheet loads after Divi's) while still losing
   to every .dcw-* component rule below. Without :where(), the ID would
   outrank the components and section headings would ignore their own colors
   and sizes. Do not remove it. */

body,
:where(#page-container) {
	background: var(--dcw-cream);
	color: var(--dcw-char);
	font-family: var(--dcw-sans);
	font-size: 16px;
	line-height: 1.65;
}

:where(#page-container) h1,
:where(#page-container) h2,
:where(#page-container) h3,
:where(#page-container) h4 {
	color: var(--dcw-green);
	font-family: var(--dcw-serif);
	font-weight: 500;
	line-height: 1.08;
	padding-bottom: 0;
}

:where(#page-container) h1 {
	font-size: clamp(3rem, 6vw, 6.3rem);
	letter-spacing: -0.045em;
}

:where(#page-container) h2 {
	font-size: clamp(2.2rem, 4vw, 4.2rem);
	letter-spacing: -0.035em;
}

:where(#page-container) h3 { font-size: 1.8rem; }
:where(#page-container) h4 { font-size: 1.25rem; }

:where(#page-container) p {
	margin: 0 0 1.2rem;
	padding-bottom: 0;
	line-height: 1.65;
}

:where(#page-container) p:last-child { margin-bottom: 0; }

:where(#page-container) a { color: inherit; text-decoration: none; }


/* 3. DIVI RESETS + LAYOUT HELPERS
   ========================================================================== */

/* Every Dr. Weld section is edge to edge; padding comes from the class. */
.dcw-sec.et_pb_section {
	padding: var(--dcw-block) var(--dcw-gutter);
	background-color: transparent;
}

.dcw-sec.et_pb_section > .et_pb_row,
.dcw-sec .et_pb_row {
	width: 100%;
	max-width: 1680px;
	margin: 0 auto;
	padding: 0;
}

.dcw-sec .et_pb_row + .et_pb_row { margin-top: 3.2rem; }
.dcw-sec .et_pb_column { margin-bottom: 0; }
.dcw-sec .et_pb_module { margin-bottom: 0; }

/* A flush section paints to the browser edge with no padding of its own. */
.dcw-flush.et_pb_section { padding: 0; }
.dcw-flush.et_pb_section > .et_pb_row { max-width: none; }

/* Vertical rhythm inside a column. */
.dcw-stack > .et_pb_module + .et_pb_module { margin-top: 1.1rem; }

/* COLUMN GRIDS
   Divi lays columns out with percentage widths plus a right margin, which
   can't express "a 70px rail next to a fluid column". Every multi-column row
   in this design is therefore switched to flexbox: the column widths are
   neutralised once here, then each row states its own proportions. */
.dcw-grid-row.et_pb_row {
	display: flex;
	align-items: stretch;
}

.dcw-grid-row.et_pb_row > .et_pb_column {
	width: auto;
	margin-right: 0;
	margin-bottom: 0;
	flex: 1 1 0;
	min-width: 0;
}

/* Intro strip: number rail | heading | note */
.dcw-intro .et_pb_row { display: flex; gap: 3rem; align-items: flex-start; }
.dcw-intro .et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; min-width: 0; }
.dcw-intro .et_pb_row > .et_pb_column:nth-child(1) { flex: 0 0 50px; }
.dcw-intro .et_pb_row > .et_pb_column:nth-child(2) { flex: 1.1 1 0; }
.dcw-intro .et_pb_row > .et_pb_column:nth-child(3) { flex: 0.8 1 0; padding-top: 2rem; }

/* Service cards: two equal, one narrower, 1rem gap */
.dcw-services .dcw-card-row.et_pb_row { display: flex; gap: 1rem; align-items: stretch; }
.dcw-services .dcw-card-row.et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; flex: 1 1 0; min-width: 0; }
.dcw-services .dcw-card-row.et_pb_row > .et_pb_column:last-child { flex: 0.8 1 0; }

/* Article cards */
.dcw-resources .dcw-card-row.et_pb_row { display: flex; gap: 1.1rem; align-items: stretch; }
.dcw-resources .dcw-card-row.et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; flex: 1 1 0; min-width: 0; }

/* Steps: three equal cells divided by hairlines, no gap */
.dcw-steps .dcw-step-row.et_pb_row { display: flex; gap: 0; align-items: stretch; }
.dcw-steps .dcw-step-row.et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; flex: 1 1 0; min-width: 0; }

/* Meet: portrait | copy */
.dcw-meet .et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; min-width: 0; }
.dcw-meet .et_pb_row > .et_pb_column:first-child { flex: 0 0 34%; }
.dcw-meet .et_pb_row > .et_pb_column:last-child { flex: 1 1 0; }

/* Split panel: two halves, edge to edge */
.dcw-split .et_pb_row { display: flex; align-items: stretch; }
.dcw-split .et_pb_row > .et_pb_column { width: 50%; margin: 0; flex: 0 0 50%; min-width: 0; }

/* Editorial: numbered rail | copy */
.dcw-editorial .dcw-block-row.et_pb_row { display: flex; gap: 2rem; align-items: flex-start; }
.dcw-editorial .dcw-block-row.et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; min-width: 0; }
.dcw-editorial .dcw-block-row.et_pb_row > .et_pb_column:first-child { flex: 0 0 70px; }
.dcw-editorial .dcw-block-row.et_pb_row > .et_pb_column:last-child { flex: 1 1 0; }

.dcw-editorial .dcw-aside.et_pb_row { display: flex; gap: 3rem; align-items: flex-start; }
.dcw-editorial .dcw-aside.et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; flex: 1 1 0; min-width: 0; }

/* Section headings sit on a comfortable measure rather than the full bleed. */
.dcw-services > .et_pb_row h2,
.dcw-steps > .et_pb_row h2,
.dcw-resources > .et_pb_row h2 { max-width: 880px; }

/* Background helpers */
.dcw-bg-white  { background: var(--dcw-white); }
.dcw-bg-cream  { background: var(--dcw-cream); }
.dcw-bg-paper  { background: var(--dcw-paper); }
.dcw-bg-green  { background: var(--dcw-green); }
.dcw-bg-gold   { background: var(--dcw-gold); }
.dcw-bg-sand   { background: #f7f1e7; }


/* 4. SHARED ELEMENTS
   ========================================================================== */

/* Eyebrow — the small gold uppercase label above a heading. */
.dcw-eyebrow,
.dcw-eyebrow p {
	color: var(--dcw-gold);
	font-family: var(--dcw-sans);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.17em;
	text-transform: uppercase;
	line-height: 1.5;
	margin-bottom: 1rem;
}

.dcw-bg-gold .dcw-eyebrow,
.dcw-bg-gold .dcw-eyebrow p,
.dcw-cta .dcw-eyebrow,
.dcw-cta .dcw-eyebrow p { color: var(--dcw-green); }

/* Lede paragraph under a hero or heading. */
.dcw-lede p {
	font-size: 1.17rem;
	max-width: 640px;
}

/* Buttons — flat, uppercase, letterspaced. Divi's own chrome is removed. */
#page-container .dcw-btn.et_pb_button,
#page-container .dcw-btn-outline.et_pb_button,
#page-container .dcw-btn-cream.et_pb_button,
#page-container .dcw-btn-gold.et_pb_button,
#page-container .dcw-svc-btn.et_pb_button,
#page-container .dcw-btn-light.et_pb_button,
#page-container .dcw-btn-ghost.et_pb_button {
	font-family: var(--dcw-sans);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	line-height: 1.2;
	padding: 0.95rem 1.3rem;
	border: 1px solid var(--dcw-green);
	border-radius: 0;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

#page-container .dcw-btn.et_pb_button::after,
#page-container .dcw-btn-outline.et_pb_button::after,
#page-container .dcw-btn-cream.et_pb_button::after,
#page-container .dcw-btn-gold.et_pb_button::after,
#page-container .dcw-svc-btn.et_pb_button::after,
#page-container .dcw-btn-light.et_pb_button::after,
#page-container .dcw-btn-ghost.et_pb_button::after { display: none; }

#page-container .dcw-btn.et_pb_button {
	background: var(--dcw-green);
	color: var(--dcw-white);
}

#page-container .dcw-btn.et_pb_button:hover {
	background: var(--dcw-olive);
	border-color: var(--dcw-olive);
	color: var(--dcw-white);
}

#page-container .dcw-btn-outline.et_pb_button {
	background: transparent;
	color: var(--dcw-green);
}

#page-container .dcw-btn-outline.et_pb_button:hover {
	background: var(--dcw-green);
	color: var(--dcw-white);
}

#page-container .dcw-btn-cream.et_pb_button {
	background: var(--dcw-cream);
	color: var(--dcw-green);
	border-color: var(--dcw-cream);
}

#page-container .dcw-btn-cream.et_pb_button:hover {
	background: var(--dcw-white);
	border-color: var(--dcw-white);
	color: var(--dcw-green);
}

/* Button pairs sit side by side and wrap gracefully on phones.
   Divi puts module_class on the <a>, not on its wrapper, so the layout has to
   be driven from .et_pb_button_module_wrapper itself. */
.dcw-sec .et_pb_button_module_wrapper,
.dcw-header .et_pb_button_module_wrapper {
	display: inline-block;
	vertical-align: top;
	margin: 0 0.8rem 0 0;
}

.dcw-hero .et_pb_button_module_wrapper,
.dcw-innerhero .et_pb_button_module_wrapper { margin-top: 2rem; }
.dcw-meet .et_pb_button_module_wrapper { margin-top: 1.6rem; }
.dcw-cta .et_pb_button_module_wrapper { margin: 2rem 0 0; }
.dcw-header .et_pb_button_module_wrapper { margin: 0; }

/* Text link with the gold underline. */
.dcw-link a,
.dcw-link p a {
	color: var(--dcw-green);
	font-weight: 700;
	border-bottom: 1px solid var(--dcw-gold);
	padding-bottom: 2px;
}

.dcw-link a:hover { color: var(--dcw-gold); }

/* Hairline rule used between editorial blocks. */
.dcw-rule.et_pb_divider::before { border-top-color: var(--dcw-line); }


/* 5. HERO
   ========================================================================== */
.dcw-hero.et_pb_section {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 540px;
	padding: 5rem var(--dcw-gutter);
	overflow: hidden;
	background-color: var(--dcw-cream);
	background-image:
		linear-gradient(90deg, rgba(246,240,230,0.98) 0%, rgba(246,240,230,0.94) 35%, rgba(246,240,230,0.60) 52%, rgba(246,240,230,0.04) 72%),
		url(/wp-content/uploads/2026/09/christian-counseling-tucson-dr-chet-weld.jpg);
	background-position: 50% 50%, 50% 50%;
	background-repeat: no-repeat;
	background-size: cover, cover;
}

/* Gold rule that runs off the bottom-right corner. */
.dcw-hero.et_pb_section::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 53%;
	height: 9px;
	background: linear-gradient(90deg, transparent, var(--dcw-gold));
}

.dcw-hero .et_pb_row { position: relative; z-index: 3; }
.dcw-hero .et_pb_column { max-width: 790px; }
.dcw-hero h1 { font-size: clamp(2.6rem, 4.3vw, 4.5rem); }
.dcw-hero .dcw-lede p { margin-top: 1.1rem; }
.dcw-hero .dcw-actions { margin-top: 1.4rem; }


/* 6. INTRO STRIP
   ========================================================================== */
.dcw-intro.et_pb_section { background: var(--dcw-white); }

.dcw-intro .dcw-num,
.dcw-intro .dcw-num p {
	color: var(--dcw-gold);
	font: italic 1rem/1 var(--dcw-serif);
	border-top: 1px solid var(--dcw-gold);
	padding-top: 0.7rem;
	margin: 0;
}

.dcw-intro .dcw-note { padding-top: 2rem; }


/* 7. SERVICE CARDS
   ========================================================================== */
.dcw-services .dcw-card-row .et_pb_column {
	display: flex;
	flex-direction: column;
	min-height: 410px;
	padding: 2.6rem;
	background: var(--dcw-green);
	color: #efe7db;
}

.dcw-services .dcw-card-label,
.dcw-services .dcw-card-label p {
	color: var(--dcw-gold-l);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	margin-bottom: 0;
}

.dcw-services h3 {
	color: var(--dcw-white);
	font-size: 2.35rem;
	margin: 1rem 0;
}

.dcw-services .dcw-card-body p { color: inherit; }
.dcw-services .dcw-card-link { margin-top: auto; padding-top: 1.8rem; }

/* Whole card is the link. The visible "Explore this service" anchor stretches an
   invisible ::after over the entire column, so a click anywhere in the card
   follows it. The anchor itself stays static — only an unpositioned element lets
   inset:0 resolve against the column rather than against the link's own box. */
.dcw-services .dcw-card-row .et_pb_column {
	position: relative;
	cursor: pointer;
}

/* Divi sets position:relative on both the text module and its inner wrapper, which
   would make inset:0 resolve to the small link box. Both are forced static so the
   column is the nearest positioned ancestor and the overlay covers the whole card. */
.dcw-services .dcw-card-row .et_pb_column .dcw-card-link,
.dcw-services .dcw-card-row .et_pb_column .dcw-card-link .et_pb_text_inner,
.dcw-services .dcw-card-link a { position: static; }

.dcw-services .dcw-card-link a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

/* Keyboard users get the ring around the card, not just the words. */
.dcw-services .dcw-card-link a:focus-visible { outline: none; }

.dcw-services .dcw-card-link a:focus-visible::after {
	outline: 2px solid var(--dcw-gold);
	outline-offset: -5px;
}

.dcw-services .dcw-card-link a {
	color: #e0c49b;
	font-weight: 700;
	border: 0;
}

.dcw-services .dcw-card-link a:hover { color: var(--dcw-white); }

/* Light card — the .et_pb_column in the selector is needed to outrank the
   shared card rule above, which is also column-scoped. */
.dcw-services .dcw-card-row .et_pb_column.dcw-card-light { background: var(--dcw-white); color: var(--dcw-char); }
.dcw-services .dcw-card-light { background: var(--dcw-white); color: var(--dcw-char); }
.dcw-services .dcw-card-light h3 { color: var(--dcw-green); }
.dcw-services .dcw-card-light .dcw-card-label,
.dcw-services .dcw-card-light .dcw-card-label p { color: var(--dcw-gold); }
.dcw-services .dcw-card-light .dcw-card-link a { color: var(--dcw-gold); }
.dcw-services .dcw-card-light .dcw-card-link a:hover { color: var(--dcw-green); }

/* Sand card */
.dcw-services .dcw-card-row .et_pb_column.dcw-card-gold { background: var(--dcw-paper); color: var(--dcw-char); }
.dcw-services .dcw-card-gold { background: var(--dcw-paper); color: var(--dcw-char); }
.dcw-services .dcw-card-gold h3 { color: var(--dcw-green); }
.dcw-services .dcw-card-gold .dcw-card-label,
.dcw-services .dcw-card-gold .dcw-card-label p { color: var(--dcw-olive); }
.dcw-services .dcw-card-gold .dcw-card-link a { color: var(--dcw-gold); }
.dcw-services .dcw-card-gold .dcw-card-link a:hover { color: var(--dcw-green); }

/* --- Heading row: a gold rule draws itself in under the statement --- */
.dcw-services .dcw-svc-head .et_pb_column {
	position: relative;
	padding-bottom: 1.5rem;
}

.dcw-services .dcw-svc-head .et_pb_column::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, var(--dcw-gold), var(--dcw-gold-l));
	transition: width 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.dcw-services .dcw-svc-head:hover .et_pb_column::after { width: min(460px, 62%); }

.dcw-services .dcw-svc-head h2,
.dcw-services .dcw-svc-head .dcw-eyebrow p {
	transition: color 0.45s ease, letter-spacing 0.45s ease;
}

.dcw-services .dcw-svc-head:hover h2 { color: var(--dcw-olive); }

.dcw-services .dcw-svc-head:hover .dcw-eyebrow p {
	color: var(--dcw-gold);
	letter-spacing: 0.2em;
}

/* --- Cards invert on hover: the dark one lightens, the two light ones darken.
   Each hover selector carries .et_pb_column plus the variant class so it
   outranks the base card rules, which are column-scoped for the same reason. --- */
.dcw-services .dcw-card-row .et_pb_column,
.dcw-services .dcw-card-row .et_pb_column h3,
.dcw-services .dcw-card-row .et_pb_column .dcw-card-label,
.dcw-services .dcw-card-row .et_pb_column .dcw-card-label p,
.dcw-services .dcw-card-row .et_pb_column .dcw-card-link a {
	transition: background-color 0.45s ease, color 0.45s ease,
		transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.45s ease;
}

.dcw-services .dcw-card-row .et_pb_column:hover {
	transform: translateY(-6px);
	box-shadow: 0 14px 34px rgba(38, 55, 42, 0.16);
}

/* Dark card → light */
.dcw-services .dcw-card-row .et_pb_column.dcw-card-dark:hover {
	background: var(--dcw-cream);
	color: var(--dcw-char);
}

.dcw-services .dcw-card-row .et_pb_column.dcw-card-dark:hover h3 { color: var(--dcw-green); }

.dcw-services .dcw-card-row .et_pb_column.dcw-card-dark:hover .dcw-card-label,
.dcw-services .dcw-card-row .et_pb_column.dcw-card-dark:hover .dcw-card-label p { color: var(--dcw-gold); }

.dcw-services .dcw-card-row .et_pb_column.dcw-card-dark:hover .dcw-card-link a { color: var(--dcw-gold); }
.dcw-services .dcw-card-row .et_pb_column.dcw-card-dark:hover .dcw-card-link a:hover { color: var(--dcw-green); }

/* Light card → dark green */
.dcw-services .dcw-card-row .et_pb_column.dcw-card-light:hover {
	background: var(--dcw-green);
	color: #efe7db;
}

.dcw-services .dcw-card-row .et_pb_column.dcw-card-light:hover h3 { color: var(--dcw-white); }

.dcw-services .dcw-card-row .et_pb_column.dcw-card-light:hover .dcw-card-label,
.dcw-services .dcw-card-row .et_pb_column.dcw-card-light:hover .dcw-card-label p { color: var(--dcw-gold-l); }

.dcw-services .dcw-card-row .et_pb_column.dcw-card-light:hover .dcw-card-link a { color: #e0c49b; }
.dcw-services .dcw-card-row .et_pb_column.dcw-card-light:hover .dcw-card-link a:hover { color: var(--dcw-white); }

/* Sand card → deep olive, so its inversion stays distinct from the light card's */
.dcw-services .dcw-card-row .et_pb_column.dcw-card-gold:hover {
	background: var(--dcw-olive);
	color: #eee7d9;
}

.dcw-services .dcw-card-row .et_pb_column.dcw-card-gold:hover h3 { color: var(--dcw-white); }

.dcw-services .dcw-card-row .et_pb_column.dcw-card-gold:hover .dcw-card-label,
.dcw-services .dcw-card-row .et_pb_column.dcw-card-gold:hover .dcw-card-label p { color: var(--dcw-gold-l); }

.dcw-services .dcw-card-row .et_pb_column.dcw-card-gold:hover .dcw-card-link a { color: var(--dcw-gold-l); }
.dcw-services .dcw-card-row .et_pb_column.dcw-card-gold:hover .dcw-card-link a:hover { color: var(--dcw-white); }

@media (prefers-reduced-motion: reduce) {
	.dcw-services .dcw-card-row .et_pb_column,
	.dcw-services .dcw-card-row .et_pb_column h3,
	.dcw-services .dcw-card-row .et_pb_column .dcw-card-label,
	.dcw-services .dcw-card-row .et_pb_column .dcw-card-label p,
	.dcw-services .dcw-card-row .et_pb_column .dcw-card-link a,
	.dcw-services .dcw-svc-head .et_pb_column::after,
	.dcw-services .dcw-svc-head h2,
	.dcw-services .dcw-svc-head .dcw-eyebrow p { transition: none; }

	.dcw-services .dcw-card-row .et_pb_column:hover { transform: none; }
}


/* 8. SPLIT IMAGE PANEL
   ========================================================================== */
.dcw-split.et_pb_section { background: var(--dcw-white); padding: 0; }
.dcw-split .et_pb_row { max-width: none; width: 100%; padding: 0; }
.dcw-split .et_pb_column { margin: 0; }

.dcw-panel-img {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 580px;
	background:
		linear-gradient(rgba(0,0,0,0) 45%, rgba(20,34,24,0.58) 100%),
		url(/wp-content/uploads/2026/09/sonoran-desert-trail-sunset-tucson-arizona.jpg) 50% / cover no-repeat;
}

.dcw-quote,
.dcw-quote p {
	color: var(--dcw-white);
	font: italic 1.6rem/1.35 var(--dcw-serif);
	margin: 0;
}

.dcw-panel-img .dcw-quote { padding: 0 3rem 3rem; width: 100%; }

.dcw-panel-copy { padding: var(--dcw-block) var(--dcw-gutter) var(--dcw-block) 6vw; }


/* 9. MEET DR. WELD
   ========================================================================== */
.dcw-meet.et_pb_section {
	background: var(--dcw-paper);
	padding: var(--dcw-block) 10vw;
}

.dcw-meet .et_pb_row { display: flex; align-items: center; gap: 6vw; }

.dcw-portrait {
	position: relative;
	height: 480px;
	background:
		url(/wp-content/uploads/2026/09/dr-chet-weld-lpc-tucson-counselor-portrait.jpg) 50% 22% / cover no-repeat;
	box-shadow: 0 24px 55px rgba(38,55,42,0.18);
}

/* Divi gives .et_pb_code (and its inner div) position:relative, which would
   otherwise become the badge's containing block — a zero-height box at the top
   of the column. Neutralise it so the badge anchors to the portrait itself. */
.dcw-portrait .et_pb_code,
.dcw-portrait .et_pb_code_inner { position: static; }

.dcw-portrait::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba(255,255,255,0.45);
	pointer-events: none;
}

/* The 40+ badge that overlaps the portrait. */
.dcw-badge {
	position: absolute;
	right: -1.5rem;
	bottom: 2rem;
	background: var(--dcw-white);
	color: var(--dcw-green);
	padding: 1rem 1.3rem;
	z-index: 2;
}

.dcw-badge .dcw-badge-num {
	display: block;
	font: 2.8rem/1 var(--dcw-serif);
	color: var(--dcw-green);
}

.dcw-badge .dcw-badge-label {
	display: block;
	max-width: 130px;
	margin-top: 0.35rem;
	font: 700 0.62rem/1.3 var(--dcw-sans);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--dcw-char);
}

.dcw-meet .dcw-actions { margin-top: 1.6rem; }


/* 10. STEPS
   ========================================================================== */
.dcw-steps.et_pb_section { background: var(--dcw-green); }
.dcw-steps h2 { color: var(--dcw-white); }
.dcw-steps .dcw-eyebrow p { color: var(--dcw-gold); }

.dcw-steps .dcw-step-row {
	border-top: 1px solid rgba(255,255,255,0.21);
	margin-top: 3.2rem;
}

.dcw-steps .dcw-step-row .et_pb_column {
	padding: 2.4rem;
	border-right: 1px solid rgba(255,255,255,0.21);
	color: #ddd5c9;
}

.dcw-steps .dcw-step-row .et_pb_column:last-child { border-right: 0; }

.dcw-steps .dcw-num,
.dcw-steps .dcw-num p {
	color: var(--dcw-gold);
	font: italic 1rem/1 var(--dcw-serif);
	margin: 0;
}

.dcw-steps h3 { color: var(--dcw-white); margin: 1rem 0; }
.dcw-steps .dcw-step-body p { color: #ddd5c9; }


/* 11. ARTICLE / RESOURCE CARDS
   ========================================================================== */
.dcw-resources.et_pb_section { background: #f7f1e7; }

.dcw-resources .dcw-card-row { margin-top: 3.2rem; }
.dcw-resources .dcw-card-row + .dcw-card-row { margin-top: 1.1rem; }

.dcw-resources .dcw-card-row .et_pb_column {
	background: var(--dcw-white);
	padding-bottom: 1.8rem;
	display: flex;
	flex-direction: column;
}

.dcw-resources .dcw-card-img.et_pb_image {
	display: block;
	width: 100%;
	max-width: 100%;
	align-self: stretch;
	overflow: hidden;
	margin: 0;
}

.dcw-resources .dcw-card-img .et_pb_image_wrap {
	display: block;
	width: 100%;
	overflow: hidden;
}

.dcw-resources .dcw-card-img img {
	width: 100%;
	max-width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
	transition: transform 0.35s ease;
}

.dcw-resources .et_pb_column:hover .dcw-card-img img { transform: scale(1.035); }

.dcw-resources .dcw-card-cat,
.dcw-resources .dcw-card-cat p {
	color: var(--dcw-gold);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0;
}

.dcw-resources .dcw-card-cat { margin: 1.2rem 1.4rem 0; }
.dcw-resources h3 { font-size: 1.5rem; }
.dcw-resources .dcw-card-title { margin: 0.6rem 1.4rem 0; }
.dcw-resources .dcw-card-body { margin: 0.6rem 1.4rem 0; }
.dcw-resources .dcw-card-body p { font-size: 0.86rem; }
.dcw-resources .dcw-card-link { margin: 1.2rem 1.4rem 0; padding-top: 0; }

.dcw-resources .dcw-card-link a {
	color: var(--dcw-green);
	font-size: 0.78rem;
	font-weight: 700;
	border: 0;
}

.dcw-resources .dcw-card-link a:hover { color: var(--dcw-gold); }


/* 12. LONG-FORM EDITORIAL — the treatment for text-only sections
   --------------------------------------------------------------------------
   Instead of a wall of paragraphs, each block gets a numbered gold rail on
   the left, a serif lead paragraph, and a hairline between blocks. The
   closing block is promoted to a sand-coloured aside.
   ========================================================================== */
.dcw-editorial.et_pb_section {
	background: var(--dcw-white);
	padding: 6rem var(--dcw-gutter);
}

/* The .et_pb_section in the selector is needed to outrank the global
   .dcw-sec.et_pb_section > .et_pb_row max-width. */
.dcw-editorial.et_pb_section > .et_pb_row,
.dcw-editorial .et_pb_row { max-width: 1040px; }

/* Serif opening paragraph. */
.dcw-editorial .dcw-lead p:first-child {
	color: var(--dcw-green);
	font-family: var(--dcw-serif);
	font-size: clamp(1.35rem, 2.2vw, 1.8rem);
	line-height: 1.45;
	margin-bottom: 1.5rem;
}

.dcw-editorial .dcw-lead p { font-size: 1.02rem; }

/* Plain body block: a full-measure h2 section divided by a hairline.
   Used for the long-form sections on the inner pages. */
.dcw-editorial .dcw-body-row.et_pb_row {
	border-top: 1px solid var(--dcw-line);
	padding-top: 2.7rem;
	margin-top: 2.7rem;
}

.dcw-editorial .dcw-body-row h2 {
	font-size: clamp(1.9rem, 3vw, 2.5rem);
	margin-bottom: 1.35rem;
}

.dcw-editorial .dcw-body-row p { font-size: 1.02rem; }

/* Numbered block: rail column + copy column. */
.dcw-editorial .dcw-block-row {
	border-top: 1px solid var(--dcw-line);
	padding-top: 2.7rem;
	margin-top: 2.7rem;
}

.dcw-editorial .dcw-rail,
.dcw-editorial .dcw-rail p {
	color: var(--dcw-gold);
	font: italic 1rem/1 var(--dcw-serif);
	margin: 0;
}

.dcw-editorial .dcw-block-row h2 {
	font-size: clamp(1.9rem, 3vw, 2.5rem);
	margin-bottom: 1.35rem;
}

.dcw-editorial .dcw-block-row h3 {
	font-size: 1.65rem;
	margin-bottom: 0.8rem;
}

.dcw-editorial .dcw-block-row p { font-size: 1.02rem; }

/* Promoted closing block. */
.dcw-editorial .dcw-aside.et_pb_row {
	background: var(--dcw-paper);
	padding: 3rem;
	margin-top: 4rem;
	border-top: 0;
}

.dcw-editorial .dcw-aside h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); }
.dcw-editorial .dcw-aside .et_pb_button_module_wrapper { margin-top: 1.5rem; }
.dcw-editorial .dcw-aside p { font-size: 1rem; }

/* Pull quote used to break up a long run of copy. */
.dcw-pullquote,
.dcw-pullquote p {
	color: var(--dcw-green);
	font: italic clamp(1.4rem, 2.4vw, 1.9rem)/1.4 var(--dcw-serif);
	margin: 0;
}

.dcw-pullquote {
	border-left: 3px solid var(--dcw-gold);
	padding: 0.2rem 0 0.2rem 1.6rem;
}

/* FAQ accordion — the Fees & FAQ page turns its Q&A into a Divi accordion so
   the page scans as a list of questions instead of a wall of prose. */
.dcw-faq.et_pb_accordion .et_pb_toggle {
	background: transparent;
	border: 0;
	border-top: 1px solid var(--dcw-line);
	border-radius: 0;
	padding: 1.5rem 3rem 1.5rem 0;
	margin: 0;
	box-shadow: none;
}

.dcw-faq.et_pb_accordion .et_pb_toggle:last-child { border-bottom: 1px solid var(--dcw-line); }

.dcw-faq.et_pb_accordion .et_pb_toggle_title {
	color: var(--dcw-green);
	font-family: var(--dcw-serif);
	font-size: clamp(1.15rem, 1.8vw, 1.45rem);
	font-weight: 500;
	line-height: 1.3;
	padding: 0;
	cursor: pointer;
}

.dcw-faq.et_pb_accordion .et_pb_toggle_title::before {
	color: var(--dcw-gold);
	right: 0;
	left: auto;
	top: 0;
	font-size: 1.1rem;
}

.dcw-faq .et_pb_toggle_content { padding: 1rem 0 0.2rem; }
.dcw-faq .et_pb_toggle_content p { font-size: 1.02rem; }
.dcw-faq .et_pb_toggle_content p:last-child { margin-bottom: 0; }
.dcw-faq .et_pb_toggle_open { background: transparent; }

/* Two-up fact list for text-only pages. */
.dcw-facts .et_pb_column {
	border-top: 1px solid var(--dcw-line);
	padding-top: 1.4rem;
}

.dcw-facts h4 { margin-bottom: 0.4rem; }
.dcw-facts p { font-size: 0.95rem; }


/* 12b. BLOG INDEX
   --------------------------------------------------------------------------
   Dark hero band, an intro card that lifts over the band below it, a
   two-column body (article list + sticky sidebar), and a closing CTA band.
   ========================================================================== */

/* Dark hero band */
.dcw-blog-hero.et_pb_section {
	background: var(--dcw-green);
	padding: 4.5rem var(--dcw-gutter) 7rem;
	text-align: center;
}

.dcw-blog-hero .et_pb_module,
.dcw-blog-hero .et_pb_text,
.dcw-blog-hero .et_pb_text_align_left { text-align: center; }

.dcw-blog-hero h1 {
	color: var(--dcw-white);
	font-size: clamp(2.4rem, 4vw, 3.6rem);
	letter-spacing: -0.025em;
}

.dcw-blog-hero .dcw-eyebrow,
.dcw-blog-hero .dcw-eyebrow p { color: var(--dcw-gold); margin-bottom: 0.6rem; }

.dcw-blog-hero .dcw-hero-kicker p {
	color: var(--dcw-gold-l);
	font-family: var(--dcw-serif);
	font-style: italic;
	font-size: 0.95rem;
	margin-bottom: 1.4rem;
}

.dcw-blog-hero .dcw-hero-kicker em { font-style: normal; color: #cfd6cd; }

.dcw-blog-hero .dcw-hero-sub p {
	color: #cfd6cd;
	font-size: 0.95rem;
	max-width: 680px;
	margin: 1rem auto 0;
}

/* Intro card, pulled up over the hero band */
.dcw-intro-wrap.et_pb_section {
	background: var(--dcw-cream);
	padding: 0 var(--dcw-gutter) 3.5rem;
}

.dcw-intro-wrap .et_pb_row { max-width: 1180px; }

.dcw-intro-card {
	background: var(--dcw-white);
	padding: 2.8rem 3rem;
	margin-top: -3.5rem;
	box-shadow: 0 18px 45px rgba(38, 55, 42, 0.09);
	position: relative;
	z-index: 3;
}

.dcw-intro-card h2 {
	font-size: clamp(1.5rem, 2.2vw, 1.9rem);
	margin-bottom: 1rem;
}

.dcw-intro-card p { font-size: 1.02rem; }

/* Two-column body */
.dcw-blog-layout.et_pb_section {
	background: var(--dcw-cream);
	padding: 0 var(--dcw-gutter) var(--dcw-block);
}

.dcw-blog-layout .et_pb_row { max-width: 1180px; }

.dcw-blog-layout .dcw-blog-row.et_pb_row {
	display: flex;
	gap: 2rem;
	align-items: flex-start;
}

.dcw-blog-layout .dcw-blog-row.et_pb_row > .et_pb_column {
	width: auto;
	margin: 0;
	min-width: 0;
}

.dcw-blog-layout .dcw-blog-row.et_pb_row > .et_pb_column:first-child { flex: 1 1 0; }
.dcw-blog-layout .dcw-blog-row.et_pb_row > .et_pb_column:last-child { flex: 0 0 300px; }

/* The gap between cards lives on the column, not on each module — Divi's
   per-page CSS loads after this file and would win a margin fight. */
.dcw-blog-layout .dcw-blog-main,
.dcw-blog-layout .dcw-blog-side {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* Article row — a Divi blurb with the image on the left */
.dcw-post.et_pb_blurb {
	background: var(--dcw-white);
	box-shadow: 0 2px 10px rgba(38, 55, 42, 0.05);
	transition: box-shadow 0.25s ease;
}

.dcw-post.et_pb_blurb:hover { box-shadow: 0 10px 26px rgba(38, 55, 42, 0.11); }

.dcw-post .et_pb_blurb_content {
	display: flex;
	align-items: stretch;
	max-width: none;
	text-align: left;
	padding: 0;
}

/* Divi's per-page stylesheet loads after this file and gives the blurb image
   a 30px bottom margin, which leaves a white strip under the thumbnail.
   !important is the only thing that reaches it from here. */
.dcw-post .et_pb_main_blurb_image {
	flex: 0 0 38%;
	width: auto;
	margin: 0 !important;
	display: block;
	overflow: hidden;
}

.dcw-post .et_pb_main_blurb_image a,
.dcw-post .et_pb_main_blurb_image .et_pb_image_wrap { display: block; height: 100%; }

/* Divi ships blurb images at opacity:0 and fades them in with a scroll
   observer. These sit in a flex row that the observer does not always fire
   for, so the images can stay invisible — pin them visible. */
.dcw-post .et_pb_main_blurb_image img {
	width: 100%;
	height: 100%;
	min-height: 175px;
	object-fit: cover;
	display: block;
	opacity: 1 !important;
	animation: none !important;
}

.dcw-post .et_pb_blurb_container {
	flex: 1 1 auto;
	min-width: 0;
	padding: 1.5rem 1.8rem;
}

.dcw-post .et_pb_module_header,
.dcw-post .et_pb_module_header a {
	color: var(--dcw-green);
	font-family: var(--dcw-serif);
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1.25;
	padding-bottom: 0;
}

.dcw-post .et_pb_module_header a:hover { color: var(--dcw-gold); }

.dcw-post .dcw-post-meta {
	display: block;
	color: #8d867b;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	margin: 0.5rem 0 0.6rem;
}

.dcw-post .et_pb_blurb_description p { font-size: 0.9rem; margin-bottom: 0.9rem; }

.dcw-post .dcw-post-link {
	color: var(--dcw-gold);
	font-family: var(--dcw-sans);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.dcw-post .dcw-post-link:hover { color: var(--dcw-green); }

/* Real post list (Divi blog module).
   Divi renders the thumbnail, title, meta and excerpt as flat siblings, so
   CSS grid is what turns each article into an image-left card: the image is
   pinned to column 1 across every row, everything else lands in column 2. */
.dcw-real-blog .et_pb_post {
	display: grid;
	grid-template-columns: 38% 1fr;
	/* title and meta stay auto and sit together; the excerpt row absorbs any
	   slack left over when the photo is taller than the copy. */
	grid-template-rows: auto auto 1fr;
	background: var(--dcw-white);
	border: 0;
	padding: 0;
	margin-bottom: 1rem;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(38, 55, 42, 0.05);
	transition: box-shadow 0.25s ease;
}

.dcw-real-blog .et_pb_post:hover { box-shadow: 0 10px 26px rgba(38, 55, 42, 0.11); }

/* Posts with no featured image fall back to a single column. */
.dcw-real-blog .et_pb_post:not(:has(.entry-featured-image-url)) { grid-template-columns: 1fr; }

.dcw-real-blog .et_pb_post .entry-featured-image-url {
	grid-column: 1;
	grid-row: 1 / -1;
	position: relative;
	display: block;
	align-self: stretch;
	min-height: 200px;
	margin: 0;
	overflow: hidden;
}

/* Divi ships blog thumbnails at opacity:0 and fades them in with a scroll
   observer that does not fire reliably inside these grid cards — pin visible. */
.dcw-real-blog .entry-featured-image-url img,
.dcw-mini-blog .entry-featured-image-url img {
	opacity: 1 !important;
	animation: none !important;
}

.dcw-real-blog .et_pb_post .entry-featured-image-url img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Only push content into column 2 when there IS a column 1 image — otherwise
   grid-column:2 invents an implicit second column and shoves the text right. */
.dcw-real-blog .et_pb_post:has(.entry-featured-image-url) > *:not(.entry-featured-image-url) { grid-column: 2; }

.dcw-real-blog .et_pb_post .entry-title {
	margin: 1.5rem 1.8rem 0;
	padding: 0;
	font-family: var(--dcw-serif);
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1.25;
}

.dcw-real-blog .et_pb_post .entry-title a { color: var(--dcw-green); }
.dcw-real-blog .et_pb_post .entry-title a:hover { color: var(--dcw-gold); }

.dcw-real-blog .et_pb_post .post-meta {
	margin: 0.5rem 1.8rem 0;
	padding: 0;
	color: #8d867b;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
}

.dcw-real-blog .et_pb_post .post-meta a { color: var(--dcw-gold); }

.dcw-real-blog .et_pb_post .post-content {
	margin: 0.6rem 1.8rem 1.5rem;
	font-size: 0.9rem;
}

.dcw-real-blog .et_pb_post .post-content p { font-size: 0.9rem; }

.dcw-real-blog .et_pb_post .more-link {
	display: inline-block;
	margin-top: 0.6rem;
	color: var(--dcw-gold);
	font-family: var(--dcw-sans);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.dcw-real-blog .et_pb_post .more-link:hover { color: var(--dcw-green); }

/* Pagination */
.dcw-real-blog .pagination {
	display: flex;
	justify-content: space-between;
	padding: 1rem 0 0;
	font-size: 0.8rem;
	font-weight: 700;
}

.dcw-real-blog .pagination a { color: var(--dcw-green); }
.dcw-real-blog .pagination a:hover { color: var(--dcw-gold); }

/* Sidebar "Latest Articles" — a second, compact blog module */
.dcw-mini-blog .et_pb_post {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 0.7rem;
	align-items: center;
	background: transparent;
	border: 0;
	border-bottom: 1px solid #efe8dc;
	padding: 0 0 0.6rem;
	margin: 0 0 0.6rem;
	box-shadow: none;
}

.dcw-mini-blog .et_pb_post:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.dcw-mini-blog .et_pb_post:not(:has(.entry-featured-image-url)) { grid-template-columns: 1fr; }

.dcw-mini-blog .et_pb_post .entry-featured-image-url {
	grid-column: 1;
	grid-row: 1 / -1;
	margin: 0;
	display: block;
}

.dcw-mini-blog .et_pb_post .entry-featured-image-url img {
	width: 52px;
	height: 44px;
	object-fit: cover;
	display: block;
}

.dcw-mini-blog .et_pb_post:has(.entry-featured-image-url) > *:not(.entry-featured-image-url) { grid-column: 2; }

/* Heading drawn in CSS so the card stays one module, like the search box. */
.dcw-side-latest.dcw-mini-blog::before {
	content: "Latest Articles";
	display: block;
	color: var(--dcw-green);
	font-family: var(--dcw-serif);
	font-size: 1.05rem;
	margin-bottom: 0.9rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid var(--dcw-line);
}

.dcw-mini-blog .et_pb_post .entry-title {
	margin: 0;
	padding: 0;
	font-family: var(--dcw-sans);
	font-size: 0.78rem;
	font-weight: 400;
	line-height: 1.35;
}

.dcw-mini-blog .et_pb_post .entry-title a { color: var(--dcw-char); }
.dcw-mini-blog .et_pb_post .entry-title a:hover { color: var(--dcw-gold); }
.dcw-mini-blog .et_pb_post .post-meta,
.dcw-mini-blog .et_pb_post .post-content { display: none; }

@media (max-width: 767px) {
	.dcw-real-blog .et_pb_post { grid-template-columns: 1fr; }
	.dcw-real-blog .et_pb_post .entry-featured-image-url { grid-row: auto; }
	.dcw-real-blog .et_pb_post .entry-featured-image-url img { height: 190px; min-height: 0; }
}

/* Sidebar cards */
.dcw-side-box,
.dcw-side-search.et_pb_search {
	background: var(--dcw-white);
	padding: 1.4rem 1.5rem;
	box-shadow: 0 2px 10px rgba(38, 55, 42, 0.05);
}

.dcw-side-box h4 {
	font-size: 1.05rem;
	margin-bottom: 0.9rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid var(--dcw-line);
}

/* Search — the heading is drawn by CSS so the card stays a single module. */
.dcw-side-search.et_pb_search::before {
	content: "Search";
	display: block;
	color: var(--dcw-green);
	font-family: var(--dcw-serif);
	font-size: 1.05rem;
	margin-bottom: 0.9rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid var(--dcw-line);
}

.dcw-side-search .et_pb_searchform { display: flex; }

.dcw-side-search input.et_pb_s {
	flex: 1 1 auto;
	min-width: 0;
	background: var(--dcw-cream);
	border: 1px solid #ddd2c2;
	border-right: 0;
	border-radius: 0;
	padding: 0.6rem 0.7rem;
	font: 0.85rem var(--dcw-sans);
	color: var(--dcw-char);
}

.dcw-side-search input.et_pb_searchsubmit {
	flex: 0 0 auto;
	background: var(--dcw-gold);
	border: 1px solid var(--dcw-gold);
	border-radius: 0;
	color: var(--dcw-white);
	font: 700 0.72rem var(--dcw-sans);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 0.6rem 0.9rem;
	cursor: pointer;
}

.dcw-side-search input.et_pb_searchsubmit:hover { background: var(--dcw-green); border-color: var(--dcw-green); }

/* Categories */
.dcw-side-cats ul { list-style: none; margin: 0; padding: 0; }

.dcw-side-cats li {
	display: flex;
	justify-content: space-between;
	gap: 0.6rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid #efe8dc;
	font-size: 0.87rem;
}

.dcw-side-cats li:last-child { border-bottom: 0; }
.dcw-side-cats li a { color: var(--dcw-char); }
.dcw-side-cats li a:hover { color: var(--dcw-gold); }
.dcw-side-cats .dcw-count { color: #a49a8b; font-size: 0.8rem; }

/* Latest articles */
.dcw-side-latest .dcw-mini {
	display: flex;
	gap: 0.7rem;
	align-items: center;
	padding: 0.6rem 0;
	border-bottom: 1px solid #efe8dc;
}

.dcw-side-latest .dcw-mini:last-child { border-bottom: 0; }

.dcw-side-latest .dcw-mini img {
	flex: 0 0 52px;
	width: 52px;
	height: 44px;
	object-fit: cover;
	display: block;
}

.dcw-side-latest .dcw-mini span {
	font-size: 0.78rem;
	line-height: 1.35;
	color: var(--dcw-char);
}

.dcw-side-latest .dcw-mini:hover span { color: var(--dcw-gold); }

/* Tags */
.dcw-side-tags .dcw-tag-cloud { display: flex; flex-wrap: wrap; gap: 0.4rem; }

.dcw-side-tags .dcw-tag {
	display: inline-block;
	background: var(--dcw-cream);
	border: 1px solid #e4dacb;
	color: var(--dcw-char);
	font-size: 0.7rem;
	letter-spacing: 0.02em;
	padding: 0.35rem 0.6rem;
}

.dcw-side-tags .dcw-tag:hover { background: var(--dcw-paper); color: var(--dcw-green); }

/* Dark CTA band */
.dcw-band.et_pb_section {
	background: var(--dcw-green);
	padding: 3.5rem var(--dcw-gutter);
	text-align: center;
}

.dcw-band .et_pb_module,
.dcw-band .et_pb_text,
.dcw-band .et_pb_text_align_left { text-align: center; }

.dcw-band h2 { color: var(--dcw-white); font-size: clamp(1.7rem, 2.8vw, 2.4rem); }
.dcw-band p { color: #cfd6cd; max-width: 720px; margin: 1rem auto 0; font-size: 0.95rem; }
.dcw-band .et_pb_button_module_wrapper { margin: 1.6rem 0 0; }

#page-container .dcw-band .dcw-btn-gold.et_pb_button {
	background: var(--dcw-gold);
	border-color: var(--dcw-gold);
	color: var(--dcw-green);
}

#page-container .dcw-band .dcw-btn-gold.et_pb_button:hover {
	background: var(--dcw-white);
	border-color: var(--dcw-white);
}

/* Other services card row */
.dcw-service-cards.et_pb_section { background: var(--dcw-cream); padding: var(--dcw-block) var(--dcw-gutter); }
.dcw-service-cards .et_pb_row { max-width: 1180px; }

.dcw-service-cards .dcw-svc-row.et_pb_row {
	display: flex;
	gap: 1.1rem;
	align-items: stretch;
	margin-top: 2.5rem;
}

.dcw-service-cards .dcw-svc-row.et_pb_row > .et_pb_column {
	width: auto;
	margin: 0;
	flex: 1 1 0;
	min-width: 0;
	background: var(--dcw-white);
	padding: 2.2rem 1.6rem;
	text-align: center;
	display: flex;
	flex-direction: column;
	box-shadow: 0 2px 10px rgba(38, 55, 42, 0.05);
}

.dcw-service-cards .dcw-svc-row .et_pb_module,
.dcw-service-cards .dcw-svc-row .et_pb_text_align_left { text-align: center; }

.dcw-service-cards .dcw-card-icon svg {
	width: 32px;
	height: 32px;
	stroke: var(--dcw-gold);
	fill: none;
	stroke-width: 1.5;
	margin: 0 auto 1rem;
	display: block;
}

.dcw-service-cards h3 { font-size: 1.15rem; line-height: 1.3; margin-bottom: 0.6rem; }
.dcw-service-cards .dcw-svc-body p { font-size: 0.85rem; }
.dcw-service-cards .dcw-svc-row .et_pb_button_module_wrapper { margin: auto 0 0; padding-top: 1.4rem; }

#page-container .dcw-svc-btn.et_pb_button {
	background: transparent;
	border: 1px solid var(--dcw-line);
	color: var(--dcw-green);
	font-size: 0.68rem;
	padding: 0.7rem 1rem;
}

#page-container .dcw-svc-btn.et_pb_button:hover {
	background: var(--dcw-green);
	border-color: var(--dcw-green);
	color: var(--dcw-white);
}

@media (max-width: 1100px) {
	.dcw-blog-layout .dcw-blog-row.et_pb_row { display: block; }
	.dcw-blog-layout .dcw-blog-row.et_pb_row > .et_pb_column:last-child { margin-top: 2.5rem; }
	.dcw-service-cards .dcw-svc-row.et_pb_row { flex-wrap: wrap; }
	.dcw-service-cards .dcw-svc-row.et_pb_row > .et_pb_column { flex: 1 1 45%; }
}

@media (max-width: 767px) {
	.dcw-intro-card { padding: 1.8rem 1.6rem; }
	.dcw-post .et_pb_blurb_content { display: block; }
	.dcw-post .et_pb_main_blurb_image img { min-height: 0; height: 190px; }
	.dcw-post .et_pb_blurb_container { padding: 1.3rem 1.4rem; }
	.dcw-service-cards .dcw-svc-row.et_pb_row { display: block; }
	.dcw-service-cards .dcw-svc-row.et_pb_row > .et_pb_column { margin-bottom: 1.1rem; }
}


/* 12c. PHOTO HERO + ALTERNATING SPLIT SECTIONS
   --------------------------------------------------------------------------
   The 2026 inner-page system. A full-bleed photographic hero with a dark
   scrim, followed by numbered half-image / half-copy bands that alternate
   sides. The background image is set per page in Divi (section settings for
   the hero, column settings for each band) so the photography stays with the
   content; everything else is here.
   ========================================================================== */

.dcw-photo-hero.et_pb_section {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 560px;
	padding: 6rem var(--dcw-gutter);
	background-size: cover;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	overflow: hidden;
}

/* Scrim — keeps the copy legible over any photograph. */
.dcw-photo-hero.et_pb_section::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(26, 38, 29, 0.92) 0%, rgba(26, 38, 29, 0.78) 42%, rgba(26, 38, 29, 0.30) 78%, rgba(26, 38, 29, 0.12) 100%);
	z-index: 1;
}

.dcw-photo-hero .et_pb_row {
	position: relative;
	z-index: 2;
	max-width: 1180px;
}

.dcw-photo-hero .et_pb_column { max-width: 640px; }

.dcw-photo-hero h1 {
	color: var(--dcw-white);
	font-size: clamp(2.4rem, 4.4vw, 3.9rem);
	letter-spacing: -0.03em;
}

.dcw-photo-hero .dcw-eyebrow,
.dcw-photo-hero .dcw-eyebrow p { color: var(--dcw-gold-l); }

.dcw-photo-hero .dcw-lede p {
	color: #ded9cd;
	font-size: 1rem;
	max-width: 520px;
	margin-top: 1.3rem;
}

.dcw-photo-hero .et_pb_button_module_wrapper { margin-top: 2rem; }

/* The blog index reuses this hero but needs extra bottom room for the intro
   card that overlaps it, plus its own kicker/sub lines. */
.dcw-blog-photo-hero.et_pb_section { padding-bottom: 7.5rem; }

.dcw-photo-hero .dcw-hero-kicker p {
	color: var(--dcw-gold-l);
	font-family: var(--dcw-serif);
	font-style: italic;
	font-size: 0.95rem;
	margin-bottom: 1.2rem;
}

.dcw-photo-hero .dcw-hero-kicker em { font-style: normal; color: #ded9cd; }

.dcw-photo-hero .dcw-hero-sub p {
	color: #ded9cd;
	font-size: 0.95rem;
	max-width: 560px;
	margin-top: 1rem;
}

/* Ghost button for use on photography */
#page-container .dcw-btn-ghost.et_pb_button {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.55);
	color: var(--dcw-white);
}

#page-container .dcw-btn-ghost.et_pb_button:hover {
	background: var(--dcw-white);
	border-color: var(--dcw-white);
	color: var(--dcw-green);
}

/* Two-column intro: a large serif statement on the left, body copy right. */
.dcw-twocol.et_pb_section { background: var(--dcw-paper); }

.dcw-twocol .dcw-twocol-row.et_pb_row {
	display: flex;
	gap: 5vw;
	align-items: flex-start;
	max-width: 1280px;
}

.dcw-twocol .dcw-twocol-row.et_pb_row > .et_pb_column {
	width: auto;
	margin: 0;
	flex: 1 1 0;
	min-width: 0;
}

.dcw-twocol h2 {
	font-size: clamp(1.9rem, 3.2vw, 2.9rem);
	max-width: 14ch;
}

.dcw-twocol .dcw-twocol-body p { font-size: 0.96rem; }

@media (max-width: 980px) {
	.dcw-twocol .dcw-twocol-row.et_pb_row { display: block; }
	.dcw-twocol h2 { max-width: none; margin-bottom: 1.5rem; }
}

/* --- Alternating split bands --- */
.dcw-split-sec.et_pb_section { padding: 0; }

.dcw-split-sec .et_pb_row {
	display: flex;
	align-items: stretch;
	width: 100%;
	max-width: none;
	padding: 0;
	margin: 0;
}

.dcw-split-sec .et_pb_row > .et_pb_column {
	width: 50%;
	flex: 0 0 50%;
	margin: 0;
	min-width: 0;
}

/* Media half — background image set per page in the column settings. */
.dcw-split-sec .dcw-media {
	position: relative;
	min-height: 520px;
	background-size: cover;
	background-position: 50% 50%;
	background-repeat: no-repeat;
}

/* The oversized italic number sitting in the bottom corner of the photo. */
.dcw-split-sec .dcw-num-badge {
	position: absolute;
	right: 2.2rem;
	bottom: 1.4rem;
	margin: 0;
	z-index: 2;
}

.dcw-split-sec .dcw-num-badge,
.dcw-split-sec .dcw-num-badge p {
	color: var(--dcw-white);
	font: italic 3.4rem/1 var(--dcw-serif);
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
	margin: 0;
}

/* Copy half */
.dcw-split-sec .dcw-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--dcw-white);
	padding: 4.5rem 4vw;
}

.dcw-split-sec .dcw-copy-sand { background: var(--dcw-cream); }
.dcw-split-sec .dcw-copy-paper { background: var(--dcw-paper); }

.dcw-split-sec .dcw-copy .dcw-eyebrow p { margin-bottom: 0.9rem; }

.dcw-split-sec .dcw-copy h2 {
	font-size: clamp(1.8rem, 2.8vw, 2.5rem);
	margin-bottom: 1.3rem;
	max-width: 15ch;
}

.dcw-split-sec .dcw-copy p { font-size: 0.94rem; }

/* Gold check list */
.dcw-checks {
	border-top: 1px solid var(--dcw-line);
	margin-top: 1.6rem;
	padding-top: 1.3rem;
}

.dcw-checks ul { list-style: none; margin: 0; padding: 0; }

.dcw-checks li {
	position: relative;
	padding-left: 1.6rem;
	margin-bottom: 0.65rem;
	font-size: 0.87rem;
	font-weight: 700;
	color: var(--dcw-green);
}

.dcw-checks li:last-child { margin-bottom: 0; }

.dcw-checks li::before {
	content: "\2713";
	position: absolute;
	left: 0;
	top: -0.05em;
	color: var(--dcw-gold);
	font-weight: 400;
	font-size: 0.95rem;
}

/* Action pair at the end of the last band */
.dcw-split-sec .dcw-copy .et_pb_button_module_wrapper { margin: 1.8rem 0.9rem 0 0; }

/* Action pair (button + plain link) on one line inside a band.
   NOTE: .dcw-copy is a column flex container, and flex items are blockified —
   an inline-block Divi button module and a separate link module can never share
   a line there, whatever their display value says. So both actions live in ONE
   text module, where they are ordinary inline anchors and simply flow together. */
.dcw-split-sec .dcw-copy .dcw-actions-inline { margin-top: 1.9rem; }
.dcw-split-sec .dcw-copy .dcw-actions-inline p { margin: 0; }

.dcw-copy .dcw-actions-inline .dcw-a-btn {
	display: inline-block;
	background: var(--dcw-green);
	color: var(--dcw-white);
	border: 1px solid var(--dcw-green);
	font: 800 0.75rem/1.2 var(--dcw-sans);
	letter-spacing: 0.09em;
	text-transform: uppercase;
	padding: 0.95rem 1.3rem;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.dcw-copy .dcw-actions-inline .dcw-a-btn:hover {
	background: var(--dcw-olive);
	border-color: var(--dcw-olive);
	color: var(--dcw-white);
}

.dcw-copy .dcw-actions-inline .dcw-a-link {
	display: inline-block;
	margin-left: 1rem;
	color: var(--dcw-green);
	font-size: 0.82rem;
	font-weight: 700;
	border-bottom: 1px solid var(--dcw-gold);
	padding-bottom: 3px;
}

.dcw-copy .dcw-actions-inline .dcw-a-link:hover { color: var(--dcw-gold); }

@media (max-width: 560px) {
	.dcw-copy .dcw-actions-inline .dcw-a-link { display: block; margin: 1.2rem 0 0; width: fit-content; }
}

.dcw-inline-link p a {
	color: var(--dcw-green);
	font-size: 0.82rem;
	font-weight: 700;
	border-bottom: 1px solid var(--dcw-gold);
	padding-bottom: 3px;
}

.dcw-inline-link p a:hover { color: var(--dcw-gold); }
.dcw-split-sec .dcw-inline-link { margin-top: 2.4rem; }

/* The three service cards link down to their matching band rather than straight
   off the page. Divi animates same-page anchor jumps itself with jQuery, and a
   CSS `scroll-behavior: smooth` on <html> silently cancels that animation, so
   the page must NOT declare one. scroll-margin is kept for keyboard/native jumps. */
.dcw-split-sec[id] { scroll-margin-top: 24px; }

/* --- Numbered band on the dark ground: eyebrow left, heading right --- */
.dcw-steps-alt .dcw-band-head.et_pb_row {
	display: flex;
	align-items: baseline;
	gap: 3vw;
}

.dcw-steps-alt .dcw-band-head.et_pb_row > .et_pb_column {
	width: auto;
	margin: 0;
	min-width: 0;
}

.dcw-steps-alt .dcw-band-head.et_pb_row > .et_pb_column:first-child { flex: 0 0 26%; }
.dcw-steps-alt .dcw-band-head.et_pb_row > .et_pb_column:last-child { flex: 1 1 0; }
.dcw-steps-alt .dcw-band-head h2 { max-width: 20ch; }

/* These cells carry body copy only — no sub-heading — so the number needs air under it. */
.dcw-steps-alt .dcw-step-row .dcw-num { margin-bottom: 1.1rem; }
.dcw-steps-alt .dcw-step-body p { font-size: 0.9rem; }

/* --- Faith band: a warm sand wash rather than the flat paper of the intro twocol --- */
.dcw-faith.et_pb_section {
	background: linear-gradient(105deg, #cdab84 0%, #ddc7a8 38%, #eee2d0 72%, #f6efe3 100%);
}

.dcw-faith .dcw-eyebrow p { color: #8a6b45; }

/* Closing CTA sits under the body copy in the right-hand column: the solid
   green button and the outlined call button share one line. The pale end of the
   gradient sits behind them, so both carry their contrast from the green. */
.dcw-faith .et_pb_button_module_wrapper {
	display: inline-block;
	/* vertical-align:middle would centre each button's MARGIN box, and Divi's
	   per-page CSS gives the first wrapper a bottom margin the last one doesn't
	   have — which dropped the second button 16px. Aligning tops instead is
	   immune to that, since both wrappers share a top margin and a height. */
	vertical-align: top;
	margin: 1.9rem 0.7rem 0 0;
	/* Divi's per-page stylesheet loads after this file and re-adds the bottom
	   margin, so it needs overriding outright to close the gap it leaves. */
	margin-bottom: 0 !important;
}

@media (max-width: 560px) {
	.dcw-faith .et_pb_button_module_wrapper {
		display: block;
		margin: 1rem 0 0;
	}
}

/* --- Full-width photo band, dark wash, centred copy (Take the Next Step) --- */
.dcw-photo-band.et_pb_section {
	position: relative;
	background-size: cover;
	background-position: 50% 28%;
	background-repeat: no-repeat;
	padding: 6rem var(--dcw-gutter);
	overflow: hidden;
}

.dcw-photo-band.et_pb_section::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(26, 38, 29, 0.94) 0%, rgba(26, 38, 29, 0.90) 55%, rgba(26, 38, 29, 0.60) 100%);
	z-index: 1;
}

.dcw-photo-band .et_pb_row {
	position: relative;
	z-index: 2;
	max-width: 900px;
}

/* Divi stamps .et_pb_text_align_left on every text module, so centring has to be
   re-asserted at module level rather than once on the section. */
.dcw-photo-band .et_pb_column,
.dcw-photo-band .et_pb_module,
.dcw-photo-band .dcw-eyebrow,
.dcw-photo-band .dcw-band-body { text-align: center; }

.dcw-photo-band h2 {
	color: var(--dcw-white);
	font-size: clamp(2rem, 4vw, 3rem);
	margin-bottom: 1.4rem;
}

.dcw-photo-band .dcw-eyebrow p { color: var(--dcw-gold-l); }

.dcw-photo-band .dcw-band-body p {
	color: #ded9cd;
	font-size: 0.9rem;
	max-width: 720px;
	margin: 0 auto 1rem;
}

/* Button and phone link share one centred line. */
.dcw-photo-band .et_pb_button_module_wrapper,
.dcw-photo-band .dcw-callnum {
	display: inline-block;
	vertical-align: middle;
	margin: 1.8rem 0.5rem 0;
}

#page-container .dcw-btn-light.et_pb_button {
	background: var(--dcw-cream);
	border: 1px solid var(--dcw-cream);
	color: var(--dcw-green);
}

#page-container .dcw-btn-light.et_pb_button:hover {
	background: var(--dcw-white);
	border-color: var(--dcw-white);
	color: var(--dcw-green);
}

.dcw-photo-band .dcw-callnum p { margin: 0; }

.dcw-photo-band .dcw-callnum a {
	color: var(--dcw-white);
	font: 800 0.75rem/1 var(--dcw-sans);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--dcw-gold-l);
	padding-bottom: 4px;
}

.dcw-photo-band .dcw-callnum a:hover { color: var(--dcw-gold-l); }

/* Gold variant of the closing band: same centred layout, flat gold ground
   instead of the photograph, so the photo wash and its overlay are dropped. */
.dcw-photo-band.dcw-band-gold.et_pb_section {
	background: var(--dcw-gold);
	background-image: none;
}

.dcw-photo-band.dcw-band-gold.et_pb_section::before { display: none; }
.dcw-band-gold .dcw-eyebrow p { color: var(--dcw-green-d); }
.dcw-band-gold .dcw-band-body p { color: #fbf6ee; }

#page-container .dcw-band-gold .dcw-btn-light.et_pb_button {
	background: var(--dcw-cream);
	border-color: var(--dcw-cream);
	color: var(--dcw-green);
}

#page-container .dcw-band-gold .dcw-btn-light.et_pb_button:hover {
	background: var(--dcw-green);
	border-color: var(--dcw-green);
	color: var(--dcw-cream);
}

.dcw-band-gold .dcw-callnum a { border-bottom-color: var(--dcw-cream); }
.dcw-band-gold .dcw-callnum a:hover { color: var(--dcw-green-d); }

@media (max-width: 980px) {
	.dcw-steps-alt .dcw-band-head.et_pb_row { display: block; }
	.dcw-steps-alt .dcw-band-head h2 { max-width: none; margin-top: 0.6rem; }

	.dcw-faith.et_pb_section {
		background: linear-gradient(160deg, #cdab84 0%, #eee2d0 60%, #f6efe3 100%);
	}

	.dcw-photo-band.et_pb_section::before { background: rgba(26, 38, 29, 0.90); }
	.dcw-photo-band.et_pb_section { padding: 4.5rem var(--dcw-gutter); }
}

@media (max-width: 980px) {
	.dcw-photo-hero.et_pb_section {
		min-height: 460px;
		padding: 5rem var(--dcw-gutter);
	}

	.dcw-photo-hero.et_pb_section::before {
		background: linear-gradient(90deg, rgba(26, 38, 29, 0.92) 0%, rgba(26, 38, 29, 0.80) 60%, rgba(26, 38, 29, 0.55) 100%);
	}

	.dcw-split-sec .et_pb_row { display: block; }
	.dcw-split-sec .et_pb_row > .et_pb_column { width: 100%; flex: none; }
	.dcw-split-sec .dcw-media { min-height: 320px; }
	.dcw-split-sec .dcw-copy { padding: 3.5rem 7vw; }

	/* On phones the photo always leads, whichever side it sits on desktop. */
	.dcw-split-sec .et_pb_row { display: flex; flex-direction: column; }
	.dcw-split-sec .et_pb_row > .dcw-media { order: 1; }
	.dcw-split-sec .et_pb_row > .dcw-copy { order: 2; }
}

@media (max-width: 767px) {
	.dcw-photo-hero h1 { font-size: 2.2rem; }
	.dcw-split-sec .dcw-num-badge,
	.dcw-split-sec .dcw-num-badge p { font-size: 2.6rem; }
	.dcw-split-sec .dcw-copy h2 { max-width: none; }
}


/* 13. INNER PAGE HERO
   ========================================================================== */
.dcw-innerhero.et_pb_section {
	background: linear-gradient(#fff9f0, #eadcc8);
	padding: var(--dcw-block) 18vw;
	text-align: center;
}

.dcw-innerhero .dcw-lede p {
	max-width: 760px;
	margin: 1.5rem auto 0;
	font-size: 1.12rem;
}

.dcw-innerhero .dcw-actions { margin-top: 2rem; }


/* 14. CONTACT
   ========================================================================== */
.dcw-contact.et_pb_section { background: var(--dcw-white); padding: 6rem 9vw; }

.dcw-contact .dcw-aside-box {
	background: var(--dcw-paper);
	padding: 1.5rem;
	margin-top: 3rem;
}

.dcw-form-wrap { background: var(--dcw-cream); padding: 2.5rem; }

.dcw-form-wrap .et_pb_contact_field { padding: 0 0 1rem 0 !important; }

.dcw-form-wrap .et_pb_contact_form_label,
.dcw-form-wrap label {
	display: block;
	color: var(--dcw-green);
	font-size: 0.74rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 0.4rem;
}

.dcw-form-wrap input[type="text"],
.dcw-form-wrap input[type="email"],
.dcw-form-wrap select,
.dcw-form-wrap textarea,
.dcw-form-wrap .et_pb_contact_field .input {
	width: 100%;
	background: var(--dcw-white);
	border: 1px solid #bdb2a3;
	border-radius: 0;
	padding: 0.8rem;
	font: 1rem var(--dcw-sans);
	color: var(--dcw-char);
}

.dcw-form-wrap .et_pb_contact_submit.et_pb_button {
	background: var(--dcw-green);
	border: 0;
	border-radius: 0;
	color: var(--dcw-white);
	font: 700 0.78rem var(--dcw-sans);
	letter-spacing: 0.09em;
	text-transform: uppercase;
	padding: 1rem 1.3rem;
}

.dcw-form-wrap .et_pb_contact_submit.et_pb_button::after { display: none; }

.dcw-fineprint p { font-size: 0.78rem; }


/* 15. CTA BAND
   ========================================================================== */
.dcw-cta.et_pb_section {
	background: var(--dcw-gold);
	padding: 4rem 15vw;
	text-align: center;
}

/* Divi stamps every text module with .et_pb_text_align_left, so centring has
   to be re-asserted at module level in the centred sections. */
.dcw-cta .et_pb_module,
.dcw-cta .et_pb_text,
.dcw-cta .et_pb_text_align_left,
.dcw-innerhero .et_pb_module,
.dcw-innerhero .et_pb_text,
.dcw-innerhero .et_pb_text_align_left { text-align: center; }

.dcw-cta h2 { color: var(--dcw-white); }

.dcw-cta .dcw-lede p {
	max-width: 700px;
	margin: 1.4rem auto 0;
	color: var(--dcw-white);
}

.dcw-cta .dcw-actions { margin-top: 2rem; }


/* 16. HEADER / FOOTER (Divi Theme Builder)
   ========================================================================== */

/* Theme Builder areas use the same edge-to-edge row treatment as .dcw-sec. */
.dcw-topline .et_pb_row,
.dcw-header .et_pb_row,
.dcw-footer .et_pb_row {
	width: 100%;
	padding: 0;
	margin-left: auto;
	margin-right: auto;
}

.dcw-topline .et_pb_column,
.dcw-header .et_pb_column,
.dcw-footer .et_pb_column { margin-bottom: 0; }

.dcw-topline .et_pb_module,
.dcw-header .et_pb_module { margin-bottom: 0; }

.dcw-footer .et_pb_row + .et_pb_row { margin-top: 0; }

/* Announcement bar */
.dcw-topline.et_pb_section {
	background: var(--dcw-green);
	padding: 0.45rem 4vw;
	text-align: center;
}

.dcw-topline .et_pb_row { max-width: none; }

.dcw-topline,
.dcw-topline p {
	color: #eee5d8;
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0;
	line-height: 1.6;
}

.dcw-topline a { color: inherit; text-decoration: underline; text-underline-offset: 0.18rem; }
.dcw-topline a:hover { color: var(--dcw-white); }

/* Header bar */
.dcw-header.et_pb_section {
	background: #fbf7f0;
	border-bottom: 1px solid #d9cdbb;
	padding: 0 4vw;
}

.dcw-header .et_pb_row {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	min-height: 112px;
	max-width: none;
	width: 100%;
	padding: 0;
}

.dcw-header .et_pb_row > .et_pb_column { width: auto; margin-right: 0; margin-bottom: 0; min-width: 0; }
.dcw-header .et_pb_row > .et_pb_column:nth-child(1) { flex: 0 0 260px; }
.dcw-header .et_pb_row > .et_pb_column:nth-child(2) { flex: 1 1 auto; }
.dcw-header .et_pb_row > .et_pb_column:nth-child(3) { flex: 0 0 auto; }

.dcw-header .dcw-logo img { max-width: 260px; width: 100%; display: block; }

/* Right-align the nav.
   Divi 5 moved the flex container: .et_pb_menu__wrap is now shrink-to-fit and
   .et_pb_menu_inner_container is the element that spans the column, so the old
   rule on __wrap had nothing left to push against. Align on the container, and
   keep the __wrap rule for any template still using the older markup. */
.dcw-header .dcw-nav .et_pb_menu_inner_container,
.dcw-header .et_pb_menu .et_pb_menu_inner_container { justify-content: flex-end; }
.dcw-header .et_pb_menu__wrap { justify-content: flex-end; }

.dcw-header .et_pb_menu__menu > nav > ul > li > a {
	color: var(--dcw-green);
	font: 700 0.73rem var(--dcw-sans);
	white-space: nowrap;
	padding-bottom: 0;
}

.dcw-header .et_pb_menu__menu > nav > ul > li > a:hover { color: var(--dcw-gold); opacity: 1; }
.dcw-header .et_pb_menu .nav li ul { border-color: var(--dcw-gold); }

/* Footer */
.dcw-footer.et_pb_section {
	background: var(--dcw-green-d);
	color: #d9d3c7;
	padding: 5rem var(--dcw-gutter) 2rem;
}

.dcw-footer .et_pb_row { max-width: 1680px; }
.dcw-footer h3 { color: var(--dcw-white); font-size: 1.25rem; margin-bottom: 1rem; }
.dcw-footer p,
.dcw-footer a { color: #d9d3c7; }
.dcw-footer a:hover { color: var(--dcw-white); }
.dcw-footer .dcw-footer-links a { display: block; margin: 0.4rem 0; }
.dcw-footer .dcw-footer-logo img { max-width: 350px; width: 100%; }

/* Bottom bar: crisis notice on the left, design credit on the right, both
   sitting under one hairline that spans the row rather than a single column. */
.dcw-footer .dcw-footer-bottom.et_pb_row {
	display: flex;
	align-items: baseline;
	gap: 2rem;
	border-top: 1px solid rgba(255,255,255,0.13);
	margin-top: 2rem;
	padding-top: 1.3rem;
}

.dcw-footer .dcw-footer-bottom.et_pb_row > .et_pb_column {
	width: auto;
	margin: 0;
	flex: 1 1 0;
	min-width: 0;
}

.dcw-footer .dcw-crisis { font-size: 0.76rem; }
.dcw-footer .dcw-crisis p { margin: 0; }

.dcw-footer .dcw-credit {
	font-size: 0.76rem;
	text-align: right;
}

.dcw-footer .dcw-credit p { margin: 0; }

.dcw-footer .dcw-credit a {
	border-bottom: 1px solid rgba(185, 149, 105, 0.55);
	padding-bottom: 2px;
}

.dcw-footer .dcw-credit a:hover {
	color: var(--dcw-gold-l);
	border-bottom-color: var(--dcw-gold);
}

@media (max-width: 780px) {
	.dcw-footer .dcw-footer-bottom.et_pb_row { display: block; }

	.dcw-footer .dcw-credit {
		text-align: left;
		margin-top: 0.9rem;
	}
}


/* 16b. SINGLE POST (Theme Builder body layout)
   ==========================================================================
   The body layout is shared by every page, post and archive, so the post hero
   and the closing CTA are switched off everywhere except a single post. Pages
   bring their own heroes; showing this one too would double them up. */
body:not(.single-post) .dcw-post-hero,
body:not(.single-post) .dcw-post-cta { display: none; }

/* --- Hero: the featured image sits behind the title as a module background --- */
.dcw-post-hero.et_pb_section {
	padding: 0;
	background: var(--dcw-green);
}

.dcw-post-hero .et_pb_row {
	width: 100%;
	max-width: none;
	padding: 0;
	margin: 0;
}

.dcw-post-hero .et_pb_column { margin: 0; }

.dcw-post-hero .dcw-post-titleblock {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 460px;
	padding: 5rem var(--dcw-gutter) 3.4rem;
	background-size: cover;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	overflow: hidden;
}

/* Same wash as the inner-page photo heroes, so posts sit in the same family. */
.dcw-post-hero .dcw-post-titleblock::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(rgba(26, 38, 29, 0.30) 0%, rgba(26, 38, 29, 0.72) 55%, rgba(26, 38, 29, 0.93) 100%);
	z-index: 1;
}

.dcw-post-hero .dcw-post-titleblock > * { position: relative; z-index: 2; }

.dcw-post-hero .entry-title {
	color: var(--dcw-white);
	font-family: var(--dcw-serif);
	font-weight: 500;
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.08;
	max-width: 20ch;
	margin: 0 0 1rem;
	padding: 0;
}

/* Divi prints the meta line as .et_pb_title_meta_container */
.dcw-post-hero .et_pb_title_meta_container {
	order: -1;
	margin: 0 0 1.1rem;
	color: var(--dcw-gold-l);
	font: 700 0.72rem/1.4 var(--dcw-sans);
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.dcw-post-hero .et_pb_title_meta_container a { color: var(--dcw-gold-l); }
.dcw-post-hero .et_pb_title_meta_container a:hover { color: var(--dcw-white); }
.dcw-post-hero .et_pb_title_meta_container .published { color: #cfc7b8; }

/* --- Body: a readable measure, editorial typography --- */
/* Padding is in rem, not vw: a vw gutter inside an already-capped column eats
   the measure on wide screens and leaves the text far narrower than intended. */
.single-post .et_pb_post_content {
	max-width: 760px;
	margin: 0 auto;
	padding: 4.5rem 2rem 4rem;
}

.single-post .et_pb_post_content p {
	font-size: 1.02rem;
	line-height: 1.78;
	margin-bottom: 1.5rem;
}

.single-post .et_pb_post_content p:first-of-type {
	font-family: var(--dcw-serif);
	font-size: 1.28rem;
	line-height: 1.6;
	color: var(--dcw-green);
}

.single-post .et_pb_post_content h2,
.single-post .et_pb_post_content h3 { margin: 2.6rem 0 1rem; }

.single-post .et_pb_post_content h2 { font-size: 1.9rem; }
.single-post .et_pb_post_content h3 { font-size: 1.35rem; }

.single-post .et_pb_post_content a {
	color: var(--dcw-green);
	border-bottom: 1px solid var(--dcw-gold);
	padding-bottom: 1px;
}

.single-post .et_pb_post_content a:hover { color: var(--dcw-gold); }

.single-post .et_pb_post_content blockquote {
	margin: 2.2rem 0;
	padding: 0 0 0 1.6rem;
	border-left: 2px solid var(--dcw-gold);
	font-family: var(--dcw-serif);
	font-style: italic;
	font-size: 1.2rem;
	color: var(--dcw-green);
}

.single-post .et_pb_post_content img {
	display: block;
	height: auto;
	margin: 2.2rem 0;
}

/* The closing paragraph on these posts is a source credit set in italics. */
.single-post .et_pb_post_content p:last-child {
	margin-top: 2.6rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--dcw-line);
	font-size: 0.86rem;
	color: #6d675e;
}

/* --- Closing CTA --- */
.dcw-post-cta.et_pb_section {
	background: var(--dcw-paper);
	padding: 4.5rem var(--dcw-gutter);
	text-align: center;
}

.dcw-post-cta .et_pb_module,
.dcw-post-cta .et_pb_text_align_left { text-align: center; }

.dcw-post-cta h2 {
	font-size: clamp(1.6rem, 3vw, 2.3rem);
	max-width: 22ch;
	margin: 0 auto 1.1rem;
}

.dcw-post-cta .dcw-post-cta-body p {
	max-width: 620px;
	margin: 0 auto;
	font-size: 0.95rem;
}

.dcw-post-cta .dcw-actions-inline { margin-top: 1.9rem; }
.dcw-post-cta .dcw-actions-inline p { margin: 0; }

.dcw-post-cta .dcw-a-btn {
	display: inline-block;
	background: var(--dcw-green);
	color: var(--dcw-white);
	border: 1px solid var(--dcw-green);
	font: 800 0.75rem/1.2 var(--dcw-sans);
	letter-spacing: 0.09em;
	text-transform: uppercase;
	padding: 0.95rem 1.3rem;
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.dcw-post-cta .dcw-a-btn:hover {
	background: var(--dcw-olive);
	border-color: var(--dcw-olive);
	color: var(--dcw-white);
}

.dcw-post-cta .dcw-a-link {
	display: inline-block;
	margin-left: 1rem;
	color: var(--dcw-green);
	font-size: 0.82rem;
	font-weight: 700;
	border-bottom: 1px solid var(--dcw-gold);
	padding-bottom: 3px;
}

.dcw-post-cta .dcw-a-link:hover { color: var(--dcw-gold); }

@media (max-width: 767px) {
	.dcw-post-hero .dcw-post-titleblock {
		min-height: 340px;
		padding: 4rem 7vw 2.4rem;
	}

	.single-post .et_pb_post_content { padding: 3rem 7vw 2.5rem; }
	.single-post .et_pb_post_content p:first-of-type { font-size: 1.12rem; }
	.dcw-post-cta .dcw-a-link { display: block; margin: 1.2rem auto 0; width: fit-content; }
}


/* 17. RESPONSIVE
   ========================================================================== */
@media (max-width: 1100px) {
	:root { --dcw-block: 5.5rem; }

	.dcw-services .dcw-card-row .et_pb_column { min-height: 360px; }
	.dcw-services .dcw-card-row.et_pb_row { flex-wrap: wrap; }
	.dcw-services .dcw-card-row.et_pb_row > .et_pb_column { flex: 1 1 45%; }
	.dcw-services .dcw-card-row.et_pb_row > .et_pb_column:last-child { flex: 1 1 100%; }

	.dcw-resources .dcw-card-row.et_pb_row { flex-wrap: wrap; }
	.dcw-resources .dcw-card-row.et_pb_row > .et_pb_column { flex: 1 1 45%; }

	.dcw-meet .et_pb_row { display: block; }
	.dcw-meet .et_pb_row > .et_pb_column:first-child { flex: none; }
	.dcw-portrait { margin-bottom: 3rem; }

	.dcw-header .et_pb_row > .et_pb_column:nth-child(1) { flex: 0 0 200px; }
}

@media (max-width: 980px) {
	.dcw-hero.et_pb_section {
		align-items: flex-end;
		min-height: 570px;
		background-image:
			linear-gradient(rgba(246,240,230,0.08) 30%, rgba(246,240,230,0.97) 53%, rgba(246,240,230,1) 100%),
			url(/wp-content/uploads/2026/09/christian-counseling-tucson-dr-chet-weld.jpg);
	}

	.dcw-hero.et_pb_section::after { width: 100%; }
	.dcw-hero .et_pb_column { max-width: none; }

	.dcw-split .et_pb_row { display: block; }
	.dcw-split .et_pb_row > .et_pb_column { width: 100%; flex: none; }
	.dcw-panel-img { min-height: 420px; }
	.dcw-panel-copy { padding: var(--dcw-block) var(--dcw-gutter); }

	.dcw-steps .dcw-step-row .et_pb_column {
		border-right: 0;
		border-bottom: 1px solid rgba(255,255,255,0.21);
	}

	.dcw-steps .dcw-step-row .et_pb_column:last-child { border-bottom: 0; }

	.dcw-innerhero.et_pb_section { padding: var(--dcw-block) 8vw; }
	.dcw-cta.et_pb_section { padding: 6rem 8vw; }
}

@media (max-width: 767px) {
	:root { --dcw-gutter: 7vw; --dcw-block: 4.5rem; }

	#page-container h1 { font-size: 2.75rem; }
	#page-container h2 { font-size: 2.05rem; }
	#page-container h3 { font-size: 1.55rem; }

	.dcw-hero.et_pb_section { min-height: 585px; padding-top: 12rem; }
	.dcw-hero .dcw-lede p { font-size: 1rem; }

	.dcw-sec .et_pb_button_module_wrapper { display: block; margin-right: 0; }
	.dcw-sec .et_pb_button_module_wrapper + .et_pb_button_module_wrapper { margin-top: 0.8rem; }
	.dcw-sec .dcw-btn.et_pb_button,
	.dcw-sec .dcw-btn-outline.et_pb_button,
	.dcw-sec .dcw-btn-cream.et_pb_button { display: inline-flex; }

	.dcw-intro .et_pb_row { display: block; }
	.dcw-intro .et_pb_row > .et_pb_column:nth-child(3) { padding-top: 1rem; }

	.dcw-services .dcw-card-row.et_pb_row,
	.dcw-resources .dcw-card-row.et_pb_row,
	.dcw-steps .dcw-step-row.et_pb_row { display: block; }

	.dcw-services .dcw-card-row.et_pb_row > .et_pb_column,
	.dcw-resources .dcw-card-row.et_pb_row > .et_pb_column { margin-bottom: 1.1rem; }

	.dcw-editorial .dcw-block-row.et_pb_row,
	.dcw-editorial .dcw-aside.et_pb_row { display: block; }
	.dcw-editorial .dcw-aside.et_pb_row > .et_pb_column + .et_pb_column { margin-top: 1.5rem; }

	.dcw-header .et_pb_row > .et_pb_column:nth-child(1) { flex: 0 0 190px; }

	.dcw-services h3 { font-size: 2rem; }
	.dcw-services .dcw-card-row .et_pb_column { min-height: 0; padding: 2rem; }

	.dcw-quote, .dcw-quote p { font-size: 1.25rem; }
	.dcw-panel-img .dcw-quote { padding: 0 1.6rem 2rem; }

	.dcw-portrait { height: 390px; }
	.dcw-badge { right: 1rem; }

	.dcw-editorial.et_pb_section { padding: 4rem var(--dcw-gutter); }
	.dcw-editorial .dcw-block-row { padding-top: 2.1rem; margin-top: 2.1rem; }
	.dcw-editorial .dcw-aside.et_pb_row { padding: 1.8rem; }

	.dcw-contact.et_pb_section { padding: 4rem var(--dcw-gutter); }
	.dcw-form-wrap { padding: 1.4rem; }

	.dcw-topline, .dcw-topline p { font-size: 0.56rem; }
	.dcw-header .et_pb_row { min-height: 88px; }
	.dcw-header .dcw-logo img { max-width: 190px; }
}
