/*
Theme Name: ACC
Theme URI:    https://alden.wildcatsites.com/
Description:  Divi 5 child theme for Alden Carroll Counseling. Page content is built with Divi 5 modules; this theme holds the design system, custom CSS and any PHP overrides so the parent theme stays update-safe.
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:  acc
Tags:         divi, child-theme
*/

/* ==========================================================================
   ACC DESIGN SYSTEM
   --------------------------------------------------------------------------
   Page structure is built with Divi 5 modules. Modules carry an `acc-*`
   class and this file supplies the look, so the design stays in one
   version-controlled place instead of spread across hundreds of module
   settings.

   Contents
     1. Tokens
     2. Base typography
     3. Layout / containers
     4. Buttons
     5. Eyebrows & section headers
     6. Cards
     7. Pills & chips
     8. Bands (navy / cream / blue)
     9. Hero
    10. Header
    11. Footer
    12. Page components (FAQ, forms, lists, legal)
    13. Responsive
   ========================================================================== */

/* 1. TOKENS ================================================================ */

:root {
	--acc-navy: #134b70;
	--acc-navy-deep: #0c364f;
	--acc-navy-mid: #16577d;
	--acc-teal: #2d7d91;
	--acc-teal-light: #7fc4d8;
	--acc-cream: #f5f2eb;
	--acc-blue-pale: #ddecf1;
	--acc-ink: #18313d;
	--acc-ink-soft: #55636d;
	--acc-line: #e4ded3;
	--acc-line-cool: #dbe4ea;
	--acc-white: #ffffff;

	--acc-radius-sm: 8px;
	--acc-radius: 14px;
	--acc-radius-lg: 24px;
	--acc-radius-pill: 999px;

	--acc-shadow-sm: 0 1px 2px rgba(12, 54, 79, 0.05);
	--acc-shadow: 0 10px 30px rgba(12, 54, 79, 0.08);
	--acc-shadow-lg: 0 24px 60px rgba(12, 54, 79, 0.14);

	--acc-serif: Georgia, "Times New Roman", serif;
	--acc-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

	/* Fluid type and space scale, measured off the source site. The source
	   drives these from the viewport (4vw headings, 1.5vw body, 8vw section
	   padding) with floors for phones and caps for wide screens, so the same
	   clamp() expressions are used here rather than fixed breakpoint steps. */
	--acc-fs-h1: clamp(2rem, 4vw, 3.4rem);
	--acc-fs-h2: clamp(2.15rem, 4vw, 4rem);
	--acc-fs-h3: clamp(1.35rem, 2vw, 1.75rem);
	--acc-fs-h4: clamp(1.15rem, 1.55vw, 1.35rem);
	--acc-fs-body: 1rem;
	--acc-lh-body: 1.7;
	--acc-fs-lead: clamp(1.05rem, 1.5vw, 1.3rem);
	--acc-lh-lead: 1.65;

	--acc-space-section: clamp(4rem, 8vw, 8rem);
	--acc-space-band: clamp(3.5rem, 6vw, 6rem);
	--acc-container: 1180px;

	--acc-card-pad: 35px;
	--acc-card-radius: 26px;
	--acc-card-border: 1px solid rgba(24, 49, 61, 0.14);
	--acc-card-shadow: 0 10px 30px rgba(18, 74, 112, 0.06);

	--acc-ease: cubic-bezier(0.2, 0.7, 0.3, 1);
}

/* 2. BASE TYPOGRAPHY ======================================================= */

body,
.et_pb_module,
.et_pb_text,
p {
	font-family: var(--acc-sans);
	color: var(--acc-ink);
}

body {
	font-size: var(--acc-fs-body);
	line-height: var(--acc-lh-body);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.et_pb_module h1,
.et_pb_module h2,
.et_pb_module h3,
.et_pb_module h4 {
	font-family: var(--acc-serif);
	color: var(--acc-navy);
	font-weight: 500;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

h1, .et_pb_module h1 { font-size: var(--acc-fs-h1); line-height: 1.12; letter-spacing: -0.045em; }
h2, .et_pb_module h2 { font-size: var(--acc-fs-h2); line-height: 1.08; letter-spacing: -0.035em; }
h3, .et_pb_module h3 { font-size: var(--acc-fs-h3); line-height: 1.08; letter-spacing: -0.02em; }
h4, .et_pb_module h4 { font-size: var(--acc-fs-h4); line-height: 1.15; letter-spacing: -0.015em; }

p { margin-bottom: 1.15em; }
p:last-child { margin-bottom: 0; }

a { transition: color 0.2s var(--acc-ease); }

/* Lead paragraph beside a section heading */
.acc-lead p,
.acc-lead {
	font-size: 1.12rem;
	line-height: 1.7;
	color: var(--acc-ink-soft);
}

/* 3. LAYOUT / CONTAINERS =================================================== */

/* Divi's default row is capped at 1080px with higher specificity than a plain
   class, so the container width is forced here to match the source's 1180px. */
.et_pb_row {
	max-width: var(--acc-container) !important;
	width: min(var(--acc-container), 100% - 40px) !important;
}

.acc-header > .et_pb_row {
	max-width: 1280px !important;
	width: min(1280px, 100% - 40px) !important;
}

.et_pb_section {
	padding: 0;
}

/* Vertical rhythm for content sections.
   Every section carries custom_padding="0px||0px" from the page builder, and
   Divi emits that as per-module CSS that outranks this file — hence the
   !important here. Divi's own 2vw row padding is zeroed so the section owns
   the rhythm, except in the hero and header where the row sets it. */
.acc-section {
	padding-top: var(--acc-space-section) !important;
	padding-bottom: var(--acc-space-section) !important;
}

.acc-ctaband {
	padding-top: var(--acc-space-band) !important;
	padding-bottom: var(--acc-space-band) !important;
}

/* Rows that are themselves a panel keep their own padding — zeroing it here
   would push their content flush against the panel edge. */
.acc-section > .et_pb_row:not(.acc-promo),
.acc-ctaband > .et_pb_row:not(.acc-promo) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.acc-section--tight { padding-top: var(--acc-space-band) !important; padding-bottom: var(--acc-space-band) !important; }
.acc-section--loose { padding-top: clamp(5rem, 10vw, 10rem) !important; padding-bottom: clamp(5rem, 10vw, 10rem) !important; }

/* Divi adds bottom margin to the last module in a column; remove for cards */
.acc-card .et_pb_module:last-child,
.acc-flush .et_pb_module { margin-bottom: 0 !important; }

/* 4. BUTTONS =============================================================== */

.acc-btn .et_pb_button,
a.acc-btn,
.et_pb_button.acc-btn {
	display: inline-block;
	font-family: var(--acc-sans);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;
	padding: 15px 30px !important;
	border-radius: var(--acc-radius-pill) !important;
	border: 1px solid transparent !important;
	transition: all 0.25s var(--acc-ease) !important;
}

/* Divi appends an arrow glyph on hover — suppress it site-wide */
.et_pb_button:after,
.et_pb_button:before {
	display: none !important;
}

/* Primary — solid navy */
.acc-btn-primary.et_pb_button,
.acc-btn-primary .et_pb_button {
	background-color: var(--acc-navy) !important;
	color: var(--acc-white) !important;
	border-color: var(--acc-navy) !important;
}

.acc-btn-primary.et_pb_button:hover,
.acc-btn-primary .et_pb_button:hover {
	background-color: var(--acc-navy-deep) !important;
	border-color: var(--acc-navy-deep) !important;
	transform: translateY(-1px);
	box-shadow: var(--acc-shadow);
}

/* Outline — navy rule, transparent fill */
.acc-btn-outline.et_pb_button,
.acc-btn-outline .et_pb_button {
	background-color: transparent !important;
	color: var(--acc-navy) !important;
	border-color: var(--acc-navy) !important;
}

.acc-btn-outline.et_pb_button:hover,
.acc-btn-outline .et_pb_button:hover {
	background-color: var(--acc-navy) !important;
	color: var(--acc-white) !important;
}

/* Outline on dark backgrounds */
.acc-btn-ghost.et_pb_button,
.acc-btn-ghost .et_pb_button {
	background-color: transparent !important;
	color: var(--acc-white) !important;
	border-color: rgba(255, 255, 255, 0.75) !important;
}

.acc-btn-ghost.et_pb_button:hover,
.acc-btn-ghost .et_pb_button:hover {
	background-color: rgba(255, 255, 255, 0.14) !important;
	border-color: var(--acc-white) !important;
}

/* White pill on dark backgrounds */
.acc-btn-white.et_pb_button,
.acc-btn-white .et_pb_button {
	background-color: var(--acc-white) !important;
	color: var(--acc-navy) !important;
	border-color: var(--acc-white) !important;
}

.acc-btn-white.et_pb_button:hover,
.acc-btn-white .et_pb_button:hover {
	background-color: var(--acc-blue-pale) !important;
	border-color: var(--acc-blue-pale) !important;
	transform: translateY(-1px);
}

/* Text link with trailing arrow */
.acc-linkarrow a,
a.acc-linkarrow {
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--acc-navy);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 3px;
}

.acc-linkarrow a:after,
a.acc-linkarrow:after {
	content: " \2192";
	transition: transform 0.2s var(--acc-ease);
	display: inline-block;
}

.acc-linkarrow a:hover:after,
a.acc-linkarrow:hover:after { transform: translateX(3px); }

/* 5. EYEBROWS & SECTION HEADERS =========================================== */

.acc-eyebrow,
.acc-eyebrow p {
	font-family: var(--acc-sans);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--acc-teal);
	margin-bottom: 10px;
}

.acc-eyebrow--light,
.acc-eyebrow--light p { color: var(--acc-teal-light); }

.acc-eyebrow--rule p:before {
	content: "";
	display: inline-block;
	width: 26px;
	height: 2px;
	background: currentColor;
	vertical-align: middle;
	margin-right: 12px;
}

/* Heading + supporting paragraph sitting side by side */
.acc-sectionhead h2 { margin-bottom: 0; }

/* 6. CARDS ================================================================= */

.acc-card {
	background: var(--acc-white);
	border: var(--acc-card-border);
	border-radius: var(--acc-card-radius);
	padding: var(--acc-card-pad);
	height: 100%;
	box-shadow: var(--acc-card-shadow);
	transition: box-shadow 0.25s var(--acc-ease), transform 0.25s var(--acc-ease);
}

.acc-card:hover {
	box-shadow: var(--acc-shadow);
	transform: translateY(-2px);
}

.acc-card h3 {
	font-size: 1.32rem;
	margin-bottom: 12px;
}

.acc-card p {
	font-size: 0.98rem;
	color: var(--acc-ink-soft);
	line-height: 1.65;
}

/* Equalise card heights across a row */
.acc-cardrow .et_pb_column {
	display: flex;
	flex-direction: column;
}

.acc-cardrow .et_pb_column > .et_pb_module { flex: 1; }

/* Service card — image on top, body below */
.acc-servicecard {
	background: var(--acc-white);
	border: 1px solid var(--acc-line-cool);
	border-radius: var(--acc-radius);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	box-shadow: var(--acc-shadow-sm);
	transition: box-shadow 0.25s var(--acc-ease), transform 0.25s var(--acc-ease);
}

.acc-servicecard:hover {
	box-shadow: var(--acc-shadow);
	transform: translateY(-3px);
}

.acc-servicecard .et_pb_image,
.acc-servicecard .et_pb_image_wrap { margin: 0 !important; width: 100%; }

.acc-servicecard img {
	width: 100%;
	height: 210px;
	object-fit: cover;
	display: block;
	border-top: 4px solid var(--acc-teal-light);
}

.acc-servicecard .acc-servicecard__body {
	padding: 26px 26px 30px;
	display: flex;
	flex-direction: column;
	flex: 1;
}

.acc-servicecard__num {
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--acc-teal);
	margin-bottom: 8px;
}

/* Numbered step card on the navy band */
.acc-numcard {
	background: var(--acc-white);
	border-radius: var(--acc-radius);
	padding: 22px 18px;
	text-align: center;
	height: 100%;
}

.acc-numcard .et_pb_text_inner { text-align: center; }

.acc-numcard .acc-numcard__num {
	display: block;
	font-family: var(--acc-sans);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--acc-teal);
	margin-bottom: 6px;
}

.acc-numcard .acc-numcard__label {
	display: block;
	font-family: var(--acc-serif);
	font-size: 1.28rem;
	color: var(--acc-navy);
	line-height: 1.2;
}

/* Post / article card */
.acc-postcard {
	background: var(--acc-white);
	border-radius: var(--acc-radius);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	box-shadow: var(--acc-shadow);
}

.acc-postcard img {
	width: 100%;
	height: 230px;
	object-fit: cover;
	display: block;
}

.acc-postcard .acc-postcard__body { padding: 26px 28px 30px; }

.acc-postcard__cat {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--acc-teal);
	margin-bottom: 10px;
}

.acc-postcard h3 {
	font-size: 1.4rem;
	margin-bottom: 12px;
}

/* Soft image treatments */
.acc-img-round img { border-radius: var(--acc-radius); }
.acc-img-soft img { border-radius: var(--acc-radius-lg); box-shadow: var(--acc-shadow); }

/* Arched image (free-class panel).
   The source draws a true semicircular arch — 50% on the top corners, not a
   fixed pixel radius — crops with object-fit rather than stretching, and sets
   the pale surround with a 12px white spread shadow instead of a wrapper. */
.acc-img-arch img {
	display: block;
	width: 100%;
	height: 300px;
	object-fit: cover;
	object-position: 50% 50%;
	border-radius: 50% 50% 22px 22px;
	box-shadow: 0 0 0 12px rgba(255, 255, 255, 0.1);
}

/* 7. PILLS & CHIPS ========================================================= */

.acc-pills p { margin: 0; }

.acc-pill {
	display: inline-block;
	background: var(--acc-blue-pale);
	color: var(--acc-navy);
	font-size: 0.88rem;
	font-weight: 600;
	padding: 9px 18px;
	border-radius: var(--acc-radius-pill);
	margin: 0 8px 10px 0;
	white-space: nowrap;
}

/* Value strip directly under the hero */
.acc-valuestrip {
	background: var(--acc-navy);
	color: var(--acc-white);
}

.acc-valuestrip .et_pb_text,
.acc-valuestrip p {
	color: var(--acc-white);
	font-weight: 700;
	font-size: 0.98rem;
	letter-spacing: 0.02em;
	text-align: center;
	margin: 0;
}

/* 8. BANDS ================================================================= */

.acc-band-navy {
	background: var(--acc-navy);
}

.acc-band-navy h1,
.acc-band-navy h2,
.acc-band-navy h3,
.acc-band-navy h4,
.acc-band-navy p,
.acc-band-navy .et_pb_text,
.acc-band-navy li {
	color: var(--acc-white);
}

.acc-band-navy .acc-numcard h3,
.acc-band-navy .acc-numcard .acc-numcard__label { color: var(--acc-navy); }

.acc-band-cream { background: var(--acc-cream); }
.acc-band-blue { background: var(--acc-blue-pale); }
.acc-band-white { background: var(--acc-white); }

/* Rounded gradient promo panel. Padding and radius are the source's values;
   !important because Divi writes this row's padding as per-module CSS. */
.acc-promo {
	background: linear-gradient(135deg, #124a70 0%, #1a678b 100%);
	border-radius: 34px;
	padding: 80px !important;
}

.acc-promo h2,
.acc-promo p { color: var(--acc-white); }

/* Quote band */
.acc-quote blockquote,
.acc-quote {
	border: 0;
	padding: 0;
	margin: 0;
}

.acc-quote p {
	font-family: var(--acc-serif);
	font-size: clamp(1.45rem, 2.4vw, 1.95rem);
	line-height: 1.5;
	color: var(--acc-navy-deep);
}

.acc-quote__attr p {
	font-family: var(--acc-sans);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--acc-navy-deep);
}

/* 9. HERO ================================================================== */

/* Home hero. The source seats the glass card 67px below the header with no
   padding beneath it, so the card's own height sets the band height. */
.acc-hero {
	position: relative;
	background-size: cover;
	background-position: center;
	min-height: 590px;
	display: flex;
	align-items: center;
}

.acc-hero:not(.acc-hero--inner) > .et_pb_row { padding: 67px 0 0; position: relative; z-index: 2; }
.acc-hero.acc-hero--inner > .et_pb_row { padding: 90px 0; }

/* Home hero: a left-to-right scrim over the landscape, matching the source's
   90deg gradient, so the glass card stays legible over the water. */
.acc-hero:not(.acc-hero--inner):before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(90deg, rgba(5, 39, 59, 0.58), rgba(12, 61, 82, 0.16) 62%, rgba(12, 61, 82, 0.05));
	pointer-events: none;
}

/* Home hero: the cut-out portrait sits bottom-right, its right edge flush with
   the content container. It is decorative — the landscape is the background. */
.acc-hero:not(.acc-hero--inner):after {
	content: "";
	position: absolute;
	right: calc(50% - 590px);
	bottom: 0;
	z-index: 1;
	width: 512px;
	height: 560px;
	background: url("https://alden.wildcatsites.com/wp-content/uploads/2026/09/alden-editorial-hero.webp") no-repeat center bottom;
	background-size: contain;
	pointer-events: none;
}

@media (max-width: 1100px) {
	.acc-hero:not(.acc-hero--inner):after { display: none; }
}

.acc-herocard {
	background: rgba(14, 48, 68, 0.55);
	-webkit-backdrop-filter: blur(22px) saturate(1.5);
	backdrop-filter: blur(22px) saturate(1.5);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 30px;
	padding: 41.6px;
	max-width: 690px;
}

.acc-herocard h1 {
	color: var(--acc-white);
	margin-bottom: 20px;
	line-height: 1.12;
}

.acc-herocard p { color: rgba(255, 255, 255, 0.92); }

.acc-herocard .acc-eyebrow p { color: var(--acc-white); }

/* Inner page hero — shallower, navy */
.acc-pagehero {
	background: var(--acc-navy);
	padding: 96px 0 84px;
}

.acc-pagehero h1 { color: var(--acc-white); }

.acc-pagehero p {
	color: rgba(255, 255, 255, 0.9);
	font-size: 1.12rem;
	max-width: 720px;
}

.acc-pagehero .acc-eyebrow p { color: var(--acc-teal-light); }

/* 10. HEADER =============================================================== */

.acc-header {
	background: var(--acc-white);
	box-shadow: 0 1px 0 rgba(12, 54, 79, 0.08);
}

.acc-header {
	min-height: 87px;
	display: flex;
	align-items: center;
}

.acc-header > .et_pb_row { padding: 4px 0 !important; width: 100%; }

.acc-header .et_pb_menu__logo img { max-height: 82px; width: auto; }

.acc-header .et_pb_menu__menu > nav > ul > li > a {
	font-family: var(--acc-sans);
	font-size: 0.92rem !important;
	font-weight: 750;
	color: var(--acc-ink);
	padding-bottom: 0;
	line-height: 1.4 !important;
}

.acc-header .et_pb_menu__menu > nav > ul > li > a:hover { color: var(--acc-teal); opacity: 1; }

.acc-header .et_pb_menu__menu > nav > ul > li.current-menu-item > a { color: var(--acc-teal); }

/* Contact pill in the header */
.acc-header .acc-btn-primary .et_pb_button { padding: 12px 26px !important; }

/* Mobile menu */
.acc-header .et_mobile_menu {
	border-top: 3px solid var(--acc-navy);
	box-shadow: var(--acc-shadow);
}

.acc-header .et_mobile_menu li a {
	font-family: var(--acc-sans);
	font-weight: 600;
	color: var(--acc-navy);
}

.acc-header .mobile_menu_bar:before { color: var(--acc-navy); }

/* 11. FOOTER =============================================================== */

.acc-footer {
	background: var(--acc-navy-deep);
	padding-top: 64px !important;
	padding-bottom: 24px !important;
}

.acc-footer h4,
.acc-footer h3 {
	font-family: var(--acc-serif);
	font-size: 1.45rem;
	color: var(--acc-white);
	margin-bottom: 18px;
	font-weight: 400;
}

.acc-footer,
.acc-footer p,
.acc-footer li,
.acc-footer a {
	color: rgba(255, 255, 255, 0.86);
}

.acc-footer a { text-decoration: none; }
.acc-footer a:hover { color: var(--acc-white); }

.acc-footer img { max-width: 290px; }

.acc-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.acc-footer ul li { margin-bottom: 10px; line-height: 1.5; }

.acc-footerbar {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	margin-top: 46px;
	padding: 22px 0 28px;
}

.acc-footerbar p {
	font-size: 0.86rem;
	color: rgba(255, 255, 255, 0.7);
	margin: 0;
}

/* Closing CTA band with photographic background */
.acc-ctaband {
	background-size: cover;
	background-position: center;
	position: relative;
	padding: 92px 0;
}

.acc-ctaband:before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(12, 54, 79, 0.88) 0%, rgba(20, 80, 110, 0.7) 60%, rgba(30, 110, 140, 0.55) 100%);
}

.acc-ctaband .et_pb_row { position: relative; z-index: 1; }

.acc-ctaband h2,
.acc-ctaband p { color: var(--acc-white); }

/* 12. PAGE COMPONENTS ====================================================== */

/* Checklist */
.acc-list ul {
	list-style: none;
	padding: 0;
	margin: 0 0 1.2em;
}

.acc-list ul li {
	position: relative;
	padding-left: 32px;
	margin-bottom: 12px;
	line-height: 1.6;
}

.acc-list ul li:before {
	content: "";
	position: absolute;
	left: 0;
	top: 9px;
	width: 16px;
	height: 9px;
	border-left: 2px solid var(--acc-teal);
	border-bottom: 2px solid var(--acc-teal);
	transform: rotate(-45deg);
}

.acc-band-navy .acc-list ul li:before {
	border-color: var(--acc-teal-light);
}

/* FAQ list — works whether the class sits on an accordion wrapper or on each
   standalone toggle module */
.acc-faq .et_pb_toggle,
.acc-faq.et_pb_toggle {
	background: var(--acc-white);
	border: 1px solid var(--acc-line);
	border-radius: var(--acc-radius);
	margin-bottom: 14px;
	padding: 22px 26px;
}

.acc-faq .et_pb_toggle_title,
.acc-faq.et_pb_toggle .et_pb_toggle_title {
	font-family: var(--acc-serif);
	font-size: 1.2rem;
	color: var(--acc-navy);
	padding: 0 40px 0 0;
	cursor: pointer;
}

.acc-faq .et_pb_toggle_content,
.acc-faq.et_pb_toggle .et_pb_toggle_content {
	padding-top: 14px;
	color: var(--acc-ink-soft);
}

.acc-faq .et_pb_toggle_open,
.acc-faq.et_pb_toggle.et_pb_toggle_open { box-shadow: var(--acc-shadow); }

/* Contact / info panel */
.acc-infopanel {
	background: var(--acc-cream);
	border-radius: var(--acc-radius);
	padding: 34px 32px;
}

.acc-infopanel h3 { font-size: 1.3rem; margin-bottom: 14px; }

/* Divi contact form */
.acc-form .et_pb_contact_field_options_wrapper,
.acc-form .et_pb_contact_field { padding: 0 0 16px !important; }

.acc-form .et_pb_contact_form_label { display: none; }

.acc-form input[type="text"],
.acc-form input[type="email"],
.acc-form textarea,
.acc-form select {
	background: var(--acc-white) !important;
	border: 1px solid var(--acc-line-cool) !important;
	border-radius: var(--acc-radius-sm) !important;
	padding: 14px 16px !important;
	font-family: var(--acc-sans);
	font-size: 1rem;
	color: var(--acc-ink);
	width: 100%;
}

.acc-form input:focus,
.acc-form textarea:focus {
	border-color: var(--acc-navy) !important;
	outline: 2px solid rgba(19, 75, 112, 0.15);
}

.acc-form .et_pb_contact_submit {
	background: var(--acc-navy) !important;
	color: var(--acc-white) !important;
	border: 1px solid var(--acc-navy) !important;
	border-radius: var(--acc-radius-pill) !important;
	padding: 15px 34px !important;
	font-family: var(--acc-sans);
	font-size: 1rem;
}

.acc-form .et_pb_contact_submit:hover {
	background: var(--acc-navy-deep) !important;
	border-color: var(--acc-navy-deep) !important;
}

/* Long-form legal pages */
.acc-legal h2 {
	font-size: 1.7rem;
	margin: 38px 0 14px;
}

.acc-legal h3 {
	font-size: 1.25rem;
	margin: 26px 0 10px;
}

.acc-legal p,
.acc-legal li {
	color: var(--acc-ink-soft);
	font-size: 1rem;
}

.acc-legal ul { margin: 0 0 1.2em 1.2em; }
.acc-legal li { margin-bottom: 8px; }

/* Blog index cards (et_pb_blog) */
.acc-bloggrid .et_pb_post {
	background: var(--acc-white);
	border: 1px solid var(--acc-line);
	border-radius: var(--acc-radius);
	overflow: hidden;
	padding: 0 0 26px;
	margin-bottom: 30px;
	box-shadow: var(--acc-shadow-sm);
}

.acc-bloggrid .et_pb_image_container { margin: 0 0 20px; }

.acc-bloggrid .entry-title {
	font-size: 1.35rem;
	padding: 0 26px;
	margin-bottom: 10px;
}

.acc-bloggrid .post-content,
.acc-bloggrid .post-meta { padding: 0 26px; }

.acc-bloggrid .post-meta {
	font-size: 0.85rem;
	color: var(--acc-teal);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 8px;
}

/* Accessibility — keep a visible focus ring on light and dark sections */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.et_pb_button:focus-visible {
	outline: 2px solid var(--acc-teal);
	outline-offset: 3px;
}

.acc-band-navy a:focus-visible,
.acc-footer a:focus-visible,
.acc-ctaband a:focus-visible { outline-color: var(--acc-white); }

/* 13. RESPONSIVE =========================================================== */

/* Laptop — trim the largest paddings so sections don't feel cavernous */
@media (max-width: 1280px) {
	.acc-section { padding: 80px 0; }
	.acc-section--loose { padding: 96px 0; }
	.acc-promo { padding: 56px !important; }
	.acc-hero { min-height: 580px; }
}

/* Tablet */
@media (max-width: 980px) {
	body { font-size: 16.5px; }

	.acc-section { padding: 64px 0; }
	.acc-section--tight { padding: 48px 0; }
	.acc-section--loose { padding: 72px 0; }

	.acc-hero { min-height: 0; }
	.acc-hero .et_pb_row { padding: 64px 0; }
	.acc-herocard { padding: 36px 32px 40px; }

	.acc-pagehero { padding: 72px 0 60px; }

	.acc-promo { padding: 44px 36px !important; }

	.acc-servicecard img { height: 190px; }
	.acc-postcard img { height: 200px; }

	/* Divi stacks columns at 980px — restore spacing between stacked cards */
	.acc-cardrow .et_pb_column { margin-bottom: 24px !important; }
	.acc-cardrow .et_pb_column:last-child { margin-bottom: 0 !important; }

	.acc-footer { padding-top: 56px; }
	.acc-footer .et_pb_column { margin-bottom: 34px; }
	.acc-footer .et_pb_column:last-child { margin-bottom: 0; }

	/* Value strip reads as a 2x2 grid rather than four stacked lines */
	.acc-valuestrip .et_pb_column {
		width: 50% !important;
		float: left;
		margin-bottom: 10px !important;
	}
}

/* Phone landscape */
@media (max-width: 767px) {
	body { font-size: 16px; line-height: 1.65; }

	.acc-section { padding: 52px 0; }
	.acc-section--tight { padding: 40px 0; }
	.acc-section--loose { padding: 60px 0; }

	.et_pb_row { width: 90%; }

	.acc-herocard {
		padding: 30px 24px 34px;
		border-radius: var(--acc-radius);
	}

	.acc-hero .et_pb_row { padding: 48px 0; }

	.acc-pagehero { padding: 56px 0 48px; }

	.acc-promo {
		padding: 36px 26px !important;
		border-radius: 22px;
	}

	.acc-card { padding: 24px 22px; }

	.acc-servicecard .acc-servicecard__body { padding: 22px 22px 26px; }
	.acc-servicecard img { height: 200px; }

	.acc-postcard .acc-postcard__body { padding: 22px 22px 26px; }

	.acc-img-arch img { border-radius: 50% 50% 18px 18px; }

	.acc-ctaband { padding: 64px 0; }

	.acc-faq .et_pb_toggle { padding: 18px 20px; }
	.acc-faq .et_pb_toggle_title { font-size: 1.1rem; }

	.acc-pill { font-size: 0.83rem; padding: 8px 15px; }

	.acc-footerbar { text-align: center; }
	.acc-footerbar .et_pb_column { margin-bottom: 8px; }
}

/* Small phone */
@media (max-width: 479px) {
	.acc-herocard { padding: 26px 20px 30px; }
	.acc-promo { padding: 30px 22px !important; }
	.acc-card { padding: 22px 20px; }

	.acc-valuestrip .et_pb_column {
		width: 100% !important;
		float: none;
	}

	.acc-pill { white-space: normal; }

	.acc-footer img { max-width: 230px; }
}

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

	.acc-card:hover,
	.acc-servicecard:hover,
	.acc-btn-primary .et_pb_button:hover { transform: none; }
}

/* 14. DIVI INTEGRATION ===================================================== */

/* Divi ships images with a scroll-animation class that sets opacity:0 until
   its waypoint script fires. Under Divi 5's backwards-compatibility layer that
   script does not run for these modules, so every image stays invisible.
   The site uses no entrance animations, so opt out entirely. */
.et-waypoint:not(.et_pb_counters),
.et_pb_animation_top,
.et_pb_animation_left,
.et_pb_animation_right,
.et_pb_animation_bottom,
.et_pb_animation_fade_in {
	opacity: 1 !important;
	animation: none !important;
}

/* --- Blurb-based cards ---------------------------------------------------
   Cards are built from et_pb_blurb so they stay editable in the builder.
   These rules reshape Divi's blurb markup into the card design. */

.acc-card .et_pb_blurb_content,
.acc-servicecard .et_pb_blurb_content,
.acc-postcard .et_pb_blurb_content {
	max-width: 100%;
}

.acc-card .et_pb_module_header,
.acc-servicecard .et_pb_module_header,
.acc-postcard .et_pb_module_header {
	font-family: var(--acc-serif);
	font-weight: 500;
	line-height: 1.22;
	padding-bottom: 12px;
}

.acc-card .et_pb_module_header a,
.acc-servicecard .et_pb_module_header a,
.acc-postcard .et_pb_module_header a {
	color: var(--acc-navy);
	text-decoration: none;
}

.acc-card .et_pb_module_header a:hover,
.acc-servicecard .et_pb_module_header a:hover,
.acc-postcard .et_pb_module_header a:hover {
	color: var(--acc-teal);
}

.acc-card .et_pb_blurb_description,
.acc-servicecard .et_pb_blurb_description,
.acc-postcard .et_pb_blurb_description {
	color: var(--acc-ink-soft);
	font-size: 0.98rem;
	line-height: 1.65;
}

.acc-card .et_pb_module_header { font-size: 1.32rem; }

/* Service card — full-bleed image on top, padded body below */
.acc-servicecard .et_pb_main_blurb_image,
.acc-postcard .et_pb_main_blurb_image {
	margin-bottom: 0;
	width: 100%;
	max-width: 100%;
}

.acc-servicecard .et_pb_image_wrap,
.acc-postcard .et_pb_image_wrap {
	display: block;
	width: 100%;
}

.acc-servicecard .et_pb_blurb_container { padding: 24px 26px 28px; }
.acc-postcard .et_pb_blurb_container { padding: 24px 28px 30px; }

.acc-servicecard .et_pb_module_header { font-size: 1.32rem; }
.acc-postcard .et_pb_module_header { font-size: 1.4rem; }

.acc-postcard .acc-postcard__cat { margin-bottom: 8px; }

/* Auto-numbering for card rows marked .acc-numbered */
.acc-numbered { counter-reset: acc-n; }

.acc-numbered .acc-servicecard .et_pb_blurb_container:before {
	counter-increment: acc-n;
	content: "0" counter(acc-n);
	display: block;
	font-family: var(--acc-sans);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--acc-teal);
	margin-bottom: 8px;
}

/* Link-with-arrow sitting at the end of a card body */
.acc-servicecard .acc-linkarrow,
.acc-postcard .acc-linkarrow { margin-top: 18px; }

/* Right-aligned section links */
.acc-linkright { text-align: right; }
.acc-linkright p { margin: 0; }

/* Divi gives the last module in a column a bottom margin — unwanted in cards */
.acc-card .et_pb_blurb_description p:last-child,
.acc-servicecard .et_pb_blurb_description p:last-child,
.acc-postcard .et_pb_blurb_description p:last-child { margin-bottom: 0; }

/* Divi's default 30px module gap is too loose inside the hero card */
.acc-herocard .et_pb_module { margin-bottom: 18px; }
.acc-herocard .et_pb_button_module_wrapper { margin-bottom: 12px; }
.acc-herocard .et_pb_button_module_wrapper:last-child { margin-bottom: 0; }

.acc-herocard h1 { font-size: clamp(2rem, 3.05vw, 3rem); }

/* Section heading rows: keep the heading and its lead paragraph aligned */
.acc-lead { padding-top: 18px; }

/* Image modules */
.acc-img-round .et_pb_image_wrap,
.acc-img-soft .et_pb_image_wrap,
.acc-img-arch .et_pb_image_wrap { display: block; }

.acc-img-round img,
.acc-img-soft img { width: 100%; height: auto; }

/* 15. THEME BUILDER HEADER & FOOTER ======================================= */

/* --- Header --- */

.acc-header .et_pb_row {
	max-width: 1340px;
	width: 94%;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}

.acc-header .et_pb_column {
	display: flex;
	align-items: center;
	margin-bottom: 0 !important;
}

.acc-header .et_pb_module { margin-bottom: 0 !important; }

.acc-logo { width: 100%; }
.acc-logo .et_pb_image_wrap { display: block; }

.acc-logo img {
	max-width: 240px;
	width: 100%;
	height: auto;
}

/* Navigation */
.acc-nav { width: 100%; }

.acc-nav .et_pb_menu__menu { justify-content: flex-end; }

.acc-nav .et_pb_menu__menu > nav > ul > li {
	padding-right: 22px;
}

.acc-nav .et_pb_menu__menu > nav > ul > li:last-child { padding-right: 0; }

.acc-nav .et_pb_menu__menu > nav > ul > li > a {
	font-family: var(--acc-sans);
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--acc-navy);
	white-space: nowrap;
	padding-bottom: 0;
}

.acc-nav .et_pb_menu__menu > nav > ul > li > a:hover { color: var(--acc-teal); opacity: 1; }

.acc-nav .et_pb_menu__menu > nav > ul > li.current-menu-item > a,
.acc-nav .et_pb_menu__menu > nav > ul > li.current-menu-ancestor > a { color: var(--acc-teal); }

/* Dropdown */
.acc-nav .et_pb_menu__menu > nav > ul > li ul.sub-menu {
	border-top: 3px solid var(--acc-teal);
	box-shadow: var(--acc-shadow);
	padding: 10px 0;
	width: 268px;
}

.acc-nav .et_pb_menu__menu > nav > ul > li ul.sub-menu li a {
	font-size: 0.92rem;
	font-weight: 500;
	padding: 9px 22px;
	width: 100%;
	white-space: normal;
	line-height: 1.4;
}

/* The header's search icon adds clutter next to the CTA */
.acc-nav .et_pb_menu__search-button,
.acc-nav .et_pb_menu__icon.et_pb_menu__search-button { display: none; }

.acc-headerbtn { width: 100%; text-align: right; }

.acc-headerbtn .et_pb_button { padding: 13px 28px !important; white-space: nowrap; }

/* Mobile menu */
.acc-nav .et_mobile_nav_menu { margin: 0 0 0 auto; }

.acc-nav .mobile_menu_bar:before { color: var(--acc-navy); font-size: 32px; }

.acc-nav .et_mobile_menu {
	border-top: 3px solid var(--acc-teal);
	box-shadow: var(--acc-shadow);
	padding: 8px 0;
}

.acc-nav .et_mobile_menu li a {
	font-family: var(--acc-sans);
	font-weight: 600;
	font-size: 0.98rem;
	color: var(--acc-navy);
	padding: 12px 20px;
	border-bottom: 1px solid var(--acc-line-cool);
}

.acc-nav .et_mobile_menu li li a { font-weight: 400; padding-left: 34px; }

/* --- Footer --- */

.acc-footer .et_pb_row { padding: 0; }

.acc-footer .acc-footertop { padding-bottom: 0; }

/* The logo artwork is navy — knock it back to white for the dark footer */
.acc-logo--light img {
	filter: brightness(0) invert(1);
	max-width: 280px;
}

.acc-footercontact p { line-height: 1.9; }

.acc-footer .et_pb_text { margin-bottom: 20px; }

.acc-footer .acc-credit { text-align: right; }

.acc-footerbar .et_pb_column { margin-bottom: 0 !important; }
.acc-footerbar .et_pb_text { margin-bottom: 0; }

/* 16. LAYOUT FIXES ========================================================= */

/* Divi columns are floated, so cards in a row do not share a height.
   Make the card rows real flex rows so every card matches the tallest. */
.acc-cardrow.et_pb_row {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
}

.acc-cardrow.et_pb_row .et_pb_column {
	float: none;
	display: flex;
	flex-direction: column;
}

.acc-cardrow.et_pb_row .et_pb_column > .et_pb_module { flex: 1 1 auto; }

/* Promo panel: the source splits it 568 / 420 with a 32px gutter, and the
   arch photo is 420x300 flush to the panel's right padding. */
.acc-promo {
	display: grid !important;
	grid-template-columns: 568fr 420fr;
	column-gap: 32px;
	align-items: start;
}

.acc-promo:before,
.acc-promo:after { display: none !important; }

.acc-promo > .et_pb_column {
	margin: 0 !important;
	width: auto !important;
	min-width: 0;
}

.acc-promo .acc-img-arch { padding-left: 0; }

@media (max-width: 980px) {
	.acc-promo {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 32px;
	}

	.acc-img-arch img { height: 260px; }
}

.acc-promo p { font-size: 1.05rem; }

/* 17. INNER PAGE PATTERNS ================================================= */

/* Inner-page hero: shallower than the homepage hero, same glass card */
.acc-hero--inner { min-height: 0; }

.acc-hero--inner .et_pb_row { padding: 110px 0 120px; }

.acc-hero--inner .acc-herocard { padding: 38px 40px 42px; }

.acc-hero--inner .acc-herocard h1 {
	font-size: clamp(2.1rem, 3.4vw, 3.1rem);
	margin-bottom: 16px;
}

.acc-hero--inner .acc-herocard p { font-size: 1.1rem; }

.acc-breadcrumb p {
	font-size: 0.88rem;
	color: rgba(255, 255, 255, 0.85);
	margin-bottom: 4px;
}

.acc-breadcrumb a {
	color: var(--acc-white);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Padded content card (lists, availability panels) */
.acc-card--pad { padding: 34px 34px 32px; }

.acc-card--pad h3 {
	font-size: 1.45rem;
	margin-bottom: 14px;
}

.acc-card--pad .acc-eyebrow { margin-bottom: 8px; }

.acc-card--pad ul {
	list-style: none;
	padding: 0;
	margin: 6px 0 0;
}

.acc-card--pad ul li {
	position: relative;
	padding-left: 24px;
	margin-bottom: 12px;
	color: var(--acc-ink-soft);
	line-height: 1.6;
}

.acc-card--pad ul li:before {
	content: "";
	position: absolute;
	left: 2px;
	top: 11px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--acc-teal-light);
}

.acc-card--pad ul li:last-child { margin-bottom: 0; }

/* A button that belongs to the card directly above it */
.acc-card-btn { margin-top: -10px; }

/* Glass card on a photographic band */
.acc-landband { position: relative; }

.acc-landband:before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(9, 34, 51, 0.72) 0%, rgba(9, 34, 51, 0.82) 100%);
}

.acc-landband .et_pb_row { position: relative; z-index: 1; }

/* Text sitting directly on the photographic band (not inside a glass card)
   must be light, or it reads as dark-on-dark. */
.acc-landband h1,
.acc-landband h2,
.acc-landband h3,
.acc-landband h4,
.acc-landband p,
.acc-landband li,
.acc-landband .et_pb_text { color: var(--acc-white); }

.acc-landband .acc-lead p { color: rgba(255, 255, 255, 0.94); }

.acc-glasscard {
	background: rgba(13, 49, 71, 0.45);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--acc-radius-lg);
	padding: 40px 38px 42px;
}

.acc-glasscard h2 {
	color: var(--acc-white);
	font-size: clamp(1.7rem, 2.4vw, 2.3rem);
	margin-bottom: 14px;
}

.acc-glasscard p { color: rgba(255, 255, 255, 0.9); }

.acc-glasscard .et_pb_module:last-child { margin-bottom: 0; }

/* Blue band cards need a touch more contrast against the pale blue */
.acc-band-blue .acc-card { border-color: rgba(19, 75, 112, 0.1); }

@media (max-width: 980px) {
	.acc-hero--inner .et_pb_row { padding: 80px 0 84px; }
	.acc-hero--inner .acc-herocard { padding: 32px 28px 34px; }
	.acc-card--pad { padding: 28px 26px; }
	.acc-glasscard { padding: 32px 28px 34px; }
	.acc-glasscard + .acc-glasscard { margin-top: 20px; }
}

@media (max-width: 767px) {
	.acc-hero--inner .et_pb_row { padding: 60px 0 64px; }
	.acc-card--pad { padding: 24px 22px; }
	.acc-glasscard { padding: 26px 22px 28px; border-radius: var(--acc-radius); }
}

/* 18. ARTICLES & LONG-FORM ================================================ */

/* Measure: long-form text reads best at ~68 characters */
.acc-articlerow.et_pb_row { max-width: 860px; }

.acc-articlemeta p {
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--acc-teal);
	letter-spacing: 0.02em;
	margin-bottom: 0;
}

.acc-prose p,
.acc-prose li {
	font-size: 1.06rem;
	line-height: 1.75;
	color: var(--acc-ink);
}

.acc-prose h2 {
	font-size: clamp(1.6rem, 2.3vw, 2.05rem);
	margin: 42px 0 14px;
}

.acc-prose h3 {
	font-size: 1.3rem;
	margin: 28px 0 10px;
}

.acc-prose > :first-child { margin-top: 0; }

.acc-prose ul {
	list-style: disc outside;
	margin: 0 0 1.3em;
	padding-left: 1.4em;
}

.acc-prose ul li::marker { color: var(--acc-teal); }

.acc-prose li { margin-bottom: 10px; }

.acc-prose a {
	color: var(--acc-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

.acc-prose a:hover { color: var(--acc-teal); }

/* Legal pages run long — slightly tighter type, softer body colour */
.acc-legal p,
.acc-legal li {
	font-size: 1rem;
	color: var(--acc-ink-soft);
}

.acc-legal h2 {
	font-size: 1.5rem;
	margin: 36px 0 12px;
}

/* FAQ block at the end of an article */
.acc-faqcard {
	background: var(--acc-blue-pale);
	border-radius: var(--acc-radius-lg);
	padding: 40px 44px 44px;
	margin-top: 46px;
}

.acc-faqcard h2 {
	font-size: 1.75rem;
	margin: 0 0 22px;
}

.acc-faqcard h3 {
	font-size: 1.22rem;
	margin: 26px 0 8px;
	color: var(--acc-navy);
}

.acc-faqcard h3:first-of-type { margin-top: 0; }

.acc-faqcard p {
	font-size: 1rem;
	color: var(--acc-ink-soft);
	margin-bottom: 0;
}

/* 19. CONTACT, FEES & BLOG ================================================ */

/* Contact details block */
.acc-contactdetails p { margin-bottom: 14px; }

.acc-contactdetails strong {
	display: block;
	color: var(--acc-navy);
	font-size: 0.95rem;
	margin-bottom: 2px;
}

.acc-contactdetails a {
	color: var(--acc-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.acc-contactdetails a:hover { color: var(--acc-teal); }

/* Form card */
.acc-formcard {
	background: var(--acc-white);
	border: 1px solid var(--acc-line-cool);
	border-radius: var(--acc-radius);
	padding: 36px 34px 32px;
	box-shadow: var(--acc-shadow);
}

/* Divi hides form labels by default; this design shows them */
.acc-form .et_pb_contact_form_label {
	display: block !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	font-family: var(--acc-sans);
	font-size: 0.93rem;
	font-weight: 700;
	color: var(--acc-navy);
	margin-bottom: 7px;
}

.acc-form .et_pb_contact_field { padding: 0 0 18px !important; }

.acc-form .et_pb_contact_field_last { padding-bottom: 6px !important; }

.acc-form p.et_pb_contact_field { margin: 0; }

.acc-formnote p {
	font-size: 0.85rem;
	color: var(--acc-ink-soft);
	margin-top: 14px;
	margin-bottom: 0;
}

/* Fee cards */
.acc-feecard { text-align: left; }

.acc-feecard h3 {
	font-size: 1.28rem;
	margin-bottom: 10px;
}

.acc-feecard .acc-fee {
	font-size: 1.35rem;
	color: var(--acc-ink);
	margin-bottom: 0;
}

/* Phone link under a card CTA */
.acc-phonelink p { margin: 14px 0 0; }

/* Lead paragraph on dark bands */
.acc-lead--light p { color: rgba(255, 255, 255, 0.92); }

/* Blog listing (et_pb_blog) ------------------------------------------------
   The source lays the archive out as a 806 / 320 grid with a 53.92px gutter,
   and each article as a card of image (273px, full bleed) + content (36.8px
   padding) holding: date and author, the title, a teal category tag, the
   excerpt, then Read More.

   Divi emits those pieces as flat siblings — image, title, meta, content —
   with the date, author and category all inside one .post-meta paragraph and
   literal "by" / "|" text between them. So .post-meta is dropped to
   display:contents, which promotes its children to grid items that can be
   placed individually; font-size:0 on the parent collapses the stray literals
   it leaves behind, and grid-auto-rows:0 keeps them from opening a real row. */

.acc-blogrow {
	display: grid !important;
	grid-template-columns: 806fr 320fr;
	column-gap: 53.92px;
	align-items: start;
}

.acc-blogrow:before,
.acc-blogrow:after { display: none !important; }

.acc-blogrow > .et_pb_column {
	margin: 0 !important;
	width: auto !important;
	min-width: 0;
}

.acc-bloglist .et_pb_post {
	display: grid;
	grid-template-columns: 273px auto minmax(0, 1fr);
	grid-template-rows: auto auto auto 1fr;
	grid-auto-rows: 0;
	align-items: start;
	min-height: 300px;
	background: var(--acc-white);
	border: 1px solid rgba(24, 49, 61, 0.14);
	border-radius: 24px;
	overflow: hidden;
	margin-bottom: 28px;
	padding: 0;
	box-shadow: 0 16px 42px rgba(18, 74, 112, 0.09);
	transition: box-shadow 0.25s var(--acc-ease);
}

.acc-bloglist .et_pb_post:hover { box-shadow: 0 20px 50px rgba(18, 74, 112, 0.16); }

.acc-bloglist .et_pb_post .entry-featured-image-url,
.acc-bloglist .et_pb_image_container {
	grid-area: 1 / 1 / 5 / 2;
	display: block;
	margin: 0 !important;
	width: 100%;
	height: 100%;
	align-self: stretch;
}

.acc-bloglist .et_pb_post .entry-featured-image-url img,
.acc-bloglist .et_pb_image_container img {
	width: 100%;
	height: 100%;
	min-height: 300px;
	object-fit: cover;
	display: block;
}

/* Promote the meta's children so each can take its own cell */
.acc-bloglist .post-meta {
	display: contents;
	font-size: 0;
}

.acc-bloglist .post-meta .published {
	grid-area: 1 / 2 / 2 / 3;
	padding: 36.8px 0 0 36.8px;
	white-space: nowrap;
}

.acc-bloglist .post-meta .author {
	grid-area: 1 / 3 / 2 / 4;
	padding: 36.8px 36.8px 0 22.4px;
	justify-self: start;
	position: relative;
}

/* The dot the source sets between date and author */
.acc-bloglist .post-meta .author:before {
	content: "";
	position: absolute;
	left: 8px;
	top: calc(36.8px + 0.62em);
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--acc-teal);
}

.acc-bloglist .post-meta .published,
.acc-bloglist .post-meta .author,
.acc-bloglist .post-meta .author a {
	font-family: var(--acc-sans);
	font-size: 0.88rem !important;
	font-weight: 750;
	line-height: 1.7;
	letter-spacing: normal;
	text-transform: none;
	color: rgb(92, 116, 126);
	text-decoration: none;
}

/* Category tag — its own line under the title, teal with a leading dot */
.acc-bloglist .post-meta a[rel~="tag"] {
	grid-area: 3 / 2 / 4 / 4;
	display: flex;
	align-items: center;
	gap: 7.2px;
	padding: 0 36.8px 0 36.8px;
	margin-bottom: 12px;
	font-family: var(--acc-sans);
	font-size: 1rem !important;
	font-weight: 800;
	line-height: 1.7;
	text-transform: none;
	letter-spacing: normal;
	color: rgb(35, 125, 162);
	text-decoration: none;
}

.acc-bloglist .post-meta a[rel~="tag"]:before {
	content: "";
	flex: 0 0 auto;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
}

.acc-bloglist .entry-title {
	grid-area: 2 / 2 / 3 / 4;
	padding: 0 36.8px;
	margin: 12px 0 16px;
	font-family: var(--acc-serif);
	font-size: 2.19rem !important;
	font-weight: 500;
	line-height: 1.08 !important;
	letter-spacing: -0.035em;
	color: var(--acc-navy);
}

.acc-bloglist .entry-title a { color: var(--acc-navy); text-decoration: none; }
.acc-bloglist .entry-title a:hover { color: var(--acc-teal); }

.acc-bloglist .post-content {
	grid-area: 4 / 2 / 5 / 4;
	padding: 0 36.8px 36.8px;
}

.acc-bloglist .post-content p {
	color: rgb(66, 95, 107);
	margin: 0 0 20px;
}

.acc-bloglist .more-link {
	display: inline-block;
	margin-top: 0;
	font-weight: 900;
	font-size: 1rem;
	line-height: 1.7;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--acc-navy);
	text-decoration: none;
	border-bottom: 0;
	padding-bottom: 0;
}

.acc-bloglist .more-link:after { content: " \2192"; }

.acc-bloglist .more-link:hover { color: var(--acc-teal); }

/* Article cards stack below the tablet breakpoint */
@media (max-width: 980px) {
	.acc-blogrow {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 40px;
	}

	.acc-bloglist .et_pb_post {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto auto auto 1fr;
		min-height: 0;
	}

	.acc-bloglist .et_pb_post .entry-featured-image-url,
	.acc-bloglist .et_pb_image_container { grid-area: 1 / 1 / 2 / 2; height: auto; }

	.acc-bloglist .et_pb_post .entry-featured-image-url img,
	.acc-bloglist .et_pb_image_container img { height: 230px; min-height: 0; }

	.acc-bloglist .post-meta .published { grid-area: 2 / 1 / 3 / 2; padding: 28px 0 0 28px; }
	.acc-bloglist .post-meta .author    { grid-area: 2 / 1 / 3 / 2; padding: 28px 28px 0 0; justify-self: end; }
	.acc-bloglist .post-meta .author:before { display: none; }
	.acc-bloglist .entry-title  { grid-area: 3 / 1 / 4 / 2; padding: 0 28px; }
	.acc-bloglist .post-meta a[rel~="tag"] { grid-area: 4 / 1 / 5 / 2; padding: 0 28px; }
	.acc-bloglist .post-content { grid-area: 5 / 1 / 6 / 2; padding: 0 28px 28px; }
}

.acc-bloglist .pagination { padding-top: 10px; }

/* Blog sidebar ------------------------------------------------------------
   The source uses square-cornered white panels with a hairline and a soft
   drop shadow, each headed by a Georgia title with a teal rule down its left
   edge. The search field lives inside the first panel; Divi renders it as its
   own module, so the heading panel drops its bottom edge and the search
   module picks the panel up again to read as one box. */

.acc-sidecard {
	background: var(--acc-white);
	border: 1px solid rgba(24, 49, 61, 0.14);
	border-radius: 0;
	box-shadow: 0 12px 34px rgba(18, 74, 112, 0.06);
	padding: 27.2px !important;
	margin-bottom: 24px !important;
}

.acc-sidecard h3 {
	font-family: var(--acc-serif);
	font-size: 1.8rem !important;
	font-weight: 500;
	line-height: 1.08 !important;
	letter-spacing: -0.02em;
	color: var(--acc-navy);
	margin: 0 0 21.6px;
	padding: 0 0 0 16px;
	border-left: 3px solid #36b5c9;
}

/* Heading half of the search panel */
.acc-sidecard--top {
	border-bottom: 0;
	box-shadow: none;
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

.acc-sidecard--top h3 { margin-bottom: 0; }

/* Field half of the search panel */
.acc-search {
	background: var(--acc-white);
	border: 1px solid rgba(24, 49, 61, 0.14);
	border-top: 0;
	box-shadow: 0 12px 34px rgba(18, 74, 112, 0.06);
	padding: 21.6px 27.2px 27.2px !important;
	margin-bottom: 24px !important;
}

/* Divi sets the field's width with an ID-level !important rule, so in a flex
   row it refuses to shrink and shoves the button past the panel edge. A grid
   with a minmax(0,1fr) track sidesteps that: the field's 100% then resolves
   against the track, which is sized to whatever the button leaves. */
.acc-search .et_pb_searchform {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	width: 100%;
	position: static !important;
}

.acc-search input.et_pb_s {
	min-width: 0;
	padding: 13.6px !important;
	border: 1px solid rgba(24, 49, 61, 0.14) !important;
	border-right: 0 !important;
	border-radius: 10px 0 0 10px !important;
	font-family: var(--acc-sans);
	font-size: 1rem !important;
	background: var(--acc-white) !important;
}

.acc-search input.et_pb_searchsubmit {
	position: static !important;
	right: auto !important;
	width: auto !important;
	padding: 13.6px 20px !important;
	border: 1px solid var(--acc-navy) !important;
	border-radius: 0 10px 10px 0 !important;
	background: var(--acc-navy) !important;
	color: var(--acc-white) !important;
	font-family: var(--acc-sans);
	font-size: 1rem !important;
	font-weight: 700;
}

/* Category rows — label left, post count right, hairline box */
.acc-catlist {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.acc-catlist li {
	list-style: none !important;
	margin: 0;
	padding: 0;
}

.acc-catlist li:before { content: none !important; }

.acc-catlist a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 16px;
	border: 1px solid rgba(24, 49, 61, 0.14);
	font-family: var(--acc-sans);
	font-size: 1rem !important;
	font-weight: 750;
	line-height: 1.4;
	color: rgb(24, 49, 61);
	text-decoration: none;
	transition: background 0.2s var(--acc-ease);
}

.acc-catlist a span { color: rgb(35, 125, 162); }

.acc-catlist a:hover { background: var(--acc-blue-pale); }

@media (max-width: 980px) {
	.acc-sidecard,
	.acc-search { margin-bottom: 20px !important; }
}

/* Blog sidebar */
.acc-sidecard { margin-bottom: 18px !important; }

.acc-sidecard h3 {
	font-size: 1.4rem;
	margin: 0;
	padding-left: 14px;
	border-left: 3px solid var(--acc-teal);
}

.acc-catlist {
	list-style: none;
	padding: 0;
	margin: 16px 0 0;
}

.acc-catlist li { border-top: 1px solid var(--acc-line); padding: 12px 0 0; margin-top: 12px; }
.acc-catlist li:first-child { border-top: 0; margin-top: 0; padding-top: 0; }

.acc-catlist a { color: var(--acc-navy); font-weight: 600; text-decoration: none; }
.acc-catlist a:hover { color: var(--acc-teal); }

.acc-search { margin-bottom: 26px !important; }

.acc-search input.et_pb_s {
	background: var(--acc-white) !important;
	border: 1px solid var(--acc-line-cool) !important;
	border-radius: var(--acc-radius-sm) 0 0 var(--acc-radius-sm) !important;
	padding: 13px 15px !important;
	font-family: var(--acc-sans);
}

.acc-search input.et_pb_searchsubmit {
	background: var(--acc-navy) !important;
	color: var(--acc-white) !important;
	border: 1px solid var(--acc-navy) !important;
	border-radius: 0 var(--acc-radius-sm) var(--acc-radius-sm) 0 !important;
	padding: 13px 22px !important;
	font-family: var(--acc-sans);
}

@media (max-width: 980px) {
	.acc-faqcard { padding: 30px 26px 32px; }
	.acc-formcard { padding: 28px 24px 26px; }

}

@media (max-width: 767px) {
	.acc-prose p, .acc-prose li { font-size: 1rem; }
	.acc-faqcard { padding: 24px 20px 26px; border-radius: var(--acc-radius); }
	.acc-formcard { padding: 24px 20px; }
	.acc-articlerow.et_pb_row { width: 90%; }
}

/* 20. FINAL ALIGNMENT PASS ================================================ */

/* Closing CTA: centre the button against the heading block */
.acc-ctaband .et_pb_row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}

.acc-ctaband .et_pb_column { margin-bottom: 0 !important; }

.acc-ctaband .et_pb_column:last-child { text-align: right; }

.acc-ctaband .et_pb_button_module_wrapper { margin-bottom: 0; }

.acc-ctaband h2 { margin-bottom: 12px; }

.acc-ctaband .et_pb_text:last-child { margin-bottom: 0; }

/* Footer: give the bottom bar room to breathe */
.acc-footer .acc-footertop { padding-bottom: 12px !important; }

/* Footer rule + copyright line. Matches the source: 40px clear of the columns
   above, a hairline, then 19px before the text. */
.acc-footer .acc-footerbar.et_pb_row {
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	margin-top: 40px !important;
	padding-top: 19.2px !important;
	padding-bottom: 0 !important;
}

.acc-footer .acc-footerbar p {
	font-size: 0.82rem !important;
	line-height: 1.6 !important;
}

/* The .acc-footerbar rule in section 11 targets a wrapper that Divi does not
   emit on rows, so the border lives on the row itself — reset the old one. */
.acc-footer .acc-footerbar { border-top-width: 1px; }

.acc-faq .et_pb_toggle_open,
.acc-faq.et_pb_toggle.et_pb_toggle_open {
	background: var(--acc-white);
	box-shadow: var(--acc-shadow-sm);
}

.acc-faq .et_pb_toggle_title:before,
.acc-faq.et_pb_toggle .et_pb_toggle_title:before {
	color: var(--acc-teal);
	font-size: 20px;
	right: 20px;
	top: 50%;
	margin-top: -10px;
}

/* Section heads: the lead paragraph sits beside a heading, so only pad it
   when the two are actually side by side */
@media (max-width: 980px) {
	.acc-lead { padding-top: 0; }

	.acc-ctaband .et_pb_row { display: block; }
	.acc-ctaband .et_pb_column:last-child { text-align: left; margin-top: 24px; }
}

/* 21. CARD ICONS ========================================================== */

/* Line-art icons for the "Couples therapy may help with" cards. Delivered as
   inline SVG through CSS so the markup stays plain Divi blurbs — to change an
   icon, swap the data URI here rather than editing the module. */

.acc-icon .et_pb_blurb_container:before {
	content: "";
	display: block;
	width: 38px;
	height: 38px;
	margin-bottom: 18px;
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
}

.acc-icon--communication .et_pb_blurb_container:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d7d91' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5A3.5 3.5 0 0 1 6.5 5h6A3.5 3.5 0 0 1 16 8.5v1A3.5 3.5 0 0 1 12.5 13H7l-4 3v-3.5z'/%3E%3Cpath d='M17.5 9.5A3.5 3.5 0 0 1 21 13v2.5A3.5 3.5 0 0 1 17.5 19H16l-3 2.5V19'/%3E%3C/svg%3E");
}

.acc-icon--connection .et_pb_blurb_container:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d7d91' stroke-width='1.4'%3E%3Ccircle cx='9' cy='12' r='5.4'/%3E%3Ccircle cx='15' cy='12' r='5.4'/%3E%3C/svg%3E");
}

.acc-icon--trust .et_pb_blurb_container:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d7d91' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 17.5s-4.8-3.2-4.8-6.3A2.5 2.5 0 0 1 12 9.4a2.5 2.5 0 0 1 4.8 1.8c0 3.1-4.8 6.3-4.8 6.3z'/%3E%3Cpath d='M4.2 12.4C3.3 15.2 4.4 18.3 7 20'/%3E%3Cpath d='M19.8 12.4c.9 2.8-.2 5.9-2.8 7.6'/%3E%3C/svg%3E");
}

.acc-icon--transitions .et_pb_blurb_container:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d7d91' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17.5h10a4.5 4.5 0 0 0 0-9H7'/%3E%3Cpath d='M10 5.5L7 8.5l3 3'/%3E%3C/svg%3E");
}

.acc-icon--intimacy .et_pb_blurb_container:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d7d91' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8.4' cy='8' r='2.6'/%3E%3Ccircle cx='15.6' cy='8' r='2.6'/%3E%3Cpath d='M3.6 19c0-3 2.1-4.8 4.8-4.8S13.2 16 13.2 19'/%3E%3Cpath d='M10.8 19c0-3 2.1-4.8 4.8-4.8S20.4 16 20.4 19'/%3E%3C/svg%3E");
}

.acc-icon--patterns .et_pb_blurb_container:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232d7d91' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12.5a8 8 0 0 1-13.6 5.4'/%3E%3Cpath d='M4 11.5A8 8 0 0 1 17.6 6.1'/%3E%3Cpath d='M4 7.5v4h4'/%3E%3Cpath d='M20 16.5v-4h-4'/%3E%3C/svg%3E");
}

/* 22. SOURCE ICON ART ====================================================== */

/* The six "Couples therapy may help with" icons now use the counselling
   practice's own icon artwork instead of the stand-in line art in section 21.
   150x150 renditions are used because the cards draw them at 40px. */

.acc-icon .et_pb_blurb_container:before {
	width: 40px;
	height: 40px;
	margin-bottom: 16px;
}

.acc-icon--communication .et_pb_blurb_container:before {
	background-image: url("https://alden.wildcatsites.com/wp-content/uploads/2026/09/communication-150x150.png");
}

.acc-icon--connection .et_pb_blurb_container:before {
	background-image: url("https://alden.wildcatsites.com/wp-content/uploads/2026/09/connection-150x150.png");
}

.acc-icon--trust .et_pb_blurb_container:before {
	background-image: url("https://alden.wildcatsites.com/wp-content/uploads/2026/09/trust-150x150.png");
}

.acc-icon--transitions .et_pb_blurb_container:before {
	background-image: url("https://alden.wildcatsites.com/wp-content/uploads/2026/09/life-transitions-150x150.png");
}

.acc-icon--intimacy .et_pb_blurb_container:before {
	background-image: url("https://alden.wildcatsites.com/wp-content/uploads/2026/09/intimacy-150x150.png");
}

.acc-icon--patterns .et_pb_blurb_container:before {
	background-image: url("https://alden.wildcatsites.com/wp-content/uploads/2026/09/recurring-patterns-150x150.png");
}

/* 23. SOURCE-MATCHED COMPONENTS ============================================ */

/* Values below are the source site's own computed styles, measured at a
   1348px viewport — the width the reference screenshots were captured at.
   They sit last in the file so they win over the earlier approximations. */

/* Eyebrow / kicker — 0.78rem, 0.14em tracking, weight 800 */
.acc-eyebrow,
.acc-eyebrow p {
	font-family: var(--acc-sans);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.4;
}

/* Buttons — 16px label, pill, 14.4/19.2 padding */
.acc-btn .et_pb_button,
a.acc-btn,
.et_pb_button.acc-btn {
	font-size: 1rem !important;
	padding: 14.4px 19.2px !important;
	line-height: 1.3 !important;
}

/* FAQ — the source renders these as bare disclosure rows separated by a
   hairline, not as cards. Divi's toggle markup is restyled to match. */
.acc-faq.et_pb_toggle,
.et_pb_toggle.acc-faq {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(24, 49, 61, 0.14) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 16px 0 !important;
	margin: 0 !important;
}

.acc-faq .et_pb_toggle_title {
	font-family: var(--acc-sans) !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	color: var(--acc-navy) !important;
	padding: 0 0 0 20px !important;
	line-height: 1.5 !important;
}

/* Replace Divi's circular +/- control with a disclosure triangle on the left */
.acc-faq .et_pb_toggle_title:before {
	content: "" !important;
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 0;
	height: 0;
	border-left: 6px solid var(--acc-navy);
	border-top: 4.5px solid transparent;
	border-bottom: 4.5px solid transparent;
	background: none !important;
	border-radius: 0 !important;
	transform: none;
	transition: transform 0.2s var(--acc-ease);
}

.acc-faq.et_pb_toggle_open .et_pb_toggle_title:before {
	transform: rotate(90deg);
}

.acc-faq .et_pb_toggle_content {
	padding: 10px 0 0 20px !important;
	font-size: 1rem;
	line-height: 1.7;
}

/* Type scale — Divi emits per-module font sizes that outrank the base rules in
   section 2, so the measured values are restated here with !important. */
body,
.et_pb_text,
.et_pb_text p,
.et_pb_module p,
.et_pb_blurb_description p,
.et_pb_toggle_content,
.et_pb_toggle_content p,
.acc-prose p,
.acc-prose li,
.et_pb_module li {
	font-size: var(--acc-fs-body) !important;
	line-height: var(--acc-lh-body) !important;
}

h1, .et_pb_module h1, .et_pb_heading h1, .et_pb_title_container h1 {
	font-size: var(--acc-fs-h1) !important;
	line-height: 1.12 !important;
}

h2, .et_pb_module h2, .et_pb_heading h2 {
	font-size: var(--acc-fs-h2) !important;
	line-height: 1.08 !important;
}

h3, .et_pb_module h3, .et_pb_blurb h3, .acc-card h3 {
	font-size: var(--acc-fs-h3) !important;
	line-height: 1.08 !important;
}

h4, .et_pb_module h4, .et_pb_blurb h4 {
	font-size: var(--acc-fs-h4) !important;
	line-height: 1.15 !important;
}

/* The lead paragraph under a hero or section heading is the one place the
   source scales body copy with the viewport. */
.acc-lead p,
.acc-lead,
.acc-hero .et_pb_text:not(.acc-breadcrumb):not(.acc-eyebrow) p {
	font-size: var(--acc-fs-lead) !important;
	line-height: var(--acc-lh-lead) !important;
}

/* The eyebrow keeps its own small size regardless of the body rule above */
.acc-eyebrow,
.acc-eyebrow p {
	font-size: 0.78rem !important;
	line-height: 1.4 !important;
}

/* 24. ROW RHYTHM & CARD GUTTERS ============================================ */

/* Stacked blocks inside a band. The source separates a section head from the
   content under it by 40px; Divi leaves stacked rows flush, which is why bands
   like "Change involves the whole system" read as one solid slab. */
.acc-section > .et_pb_row + .et_pb_row,
.acc-ctaband > .et_pb_row + .et_pb_row {
	margin-top: 40px !important;
}

/* Card grids. Divi's default gutter is ~65px between columns; the source uses
   a 20px grid gap (16px for the numbered pathway on the navy band), which is
   what makes the cards read as a set rather than as separated blocks. The row
   becomes a flex track so the gap is real spacing instead of column margin. */
.acc-cardrow {
	display: flex !important;
	flex-wrap: wrap;
	gap: 20px;
	align-items: stretch;
}

.acc-cardrow:before,
.acc-cardrow:after {
	display: none !important;
}

.acc-cardrow > .et_pb_column {
	margin: 0 !important;
	width: auto !important;
	flex: 1 1 0;
	min-width: 0;
}

/* The navy "whole system" pathway sits on a tighter 16px grid */
.acc-band-navy .acc-cardrow {
	gap: 16px;
}

/* Where the source wraps one grid onto several lines, Divi needs a row per
   line — so consecutive card rows take the grid's 20px row gap, not the 40px
   that separates distinct blocks. */
.acc-section > .acc-cardrow + .acc-cardrow,
.acc-ctaband > .acc-cardrow + .acc-cardrow {
	margin-top: 20px !important;
}

@media (max-width: 980px) {
	.acc-cardrow > .et_pb_column { flex: 1 1 calc(50% - 10px); }
}

@media (max-width: 767px) {
	.acc-cardrow { gap: 16px; }
	.acc-cardrow > .et_pb_column { flex: 1 1 100%; }
	.acc-section > .et_pb_row + .et_pb_row,
	.acc-ctaband > .et_pb_row + .et_pb_row { margin-top: 32px !important; }
}

/* 24b. MOBILE HEADER ======================================================= */

/* The header row is flex-nowrap at every width, so on a phone the logo, the
   hamburger and the Contact pill all compete for one line. Below the tablet
   breakpoint the pill is dropped, the logo keeps its natural width and the
   nav column absorbs the rest so the hamburger lands hard right. */

/* "Contact" and the call link exist only for the mobile dropdown —
   keep them out of the desktop nav at every width. */
.acc-nav .et_pb_menu__menu li.acc-menu-mobile { display: none !important; }

@media (max-width: 980px) {
	.acc-header .et_pb_row {
		position: relative;
		width: 92%;
	}

	/* Column 3 holds the Contact button */
	.acc-header .et_pb_column:nth-child(3),
	.acc-headerbtn { display: none !important; }

	.acc-header .et_pb_column:nth-child(1) {
		flex: 0 0 auto;
		width: auto !important;
		max-width: 62% !important;
		margin-right: 0 !important;
	}

	.acc-header .et_pb_column:nth-child(2) {
		flex: 1 1 auto;
		width: auto !important;
		justify-content: flex-end;
		margin-right: 0 !important;
	}

	.acc-logo img { max-width: 210px; }

	.acc-nav,
	.acc-nav .et_pb_menu__wrap { width: 100%; justify-content: flex-end; }

	.acc-nav .et_mobile_nav_menu {
		margin: 0 0 0 auto;
		float: none;
	}

	/* Anchor the dropdown to the header row so it spans the full width
	   instead of only the nav column. et_pb_menu_inner_container is the
	   element Divi makes the positioning context, so it has to go static too. */
	.acc-header .et_pb_column,
	.acc-header .acc-nav,
	.acc-nav .et_pb_menu_inner_container,
	.acc-nav .et_pb_menu__wrap,
	.acc-nav .et_mobile_nav_menu,
	.acc-nav .mobile_nav { position: static; }

	/* The menu module's own background is transparent by design for the bar,
	   and Divi applies that to the mobile panel too — override it with a
	   selector that outranks the module's generated rule. */
	.acc-header .acc-nav.et_pb_menu .et_mobile_menu,
	.acc-header .acc-nav.et_pb_menu .et_mobile_menu li {
		background-color: var(--acc-white) !important;
	}

	.acc-header .acc-nav.et_pb_menu .et_mobile_menu {
		position: absolute !important;
		top: 100% !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-width: none !important;
		border-radius: 0 0 var(--acc-radius) var(--acc-radius);
		box-shadow: var(--acc-shadow-lg);
		overflow: hidden;
		text-align: left;
	}

	.acc-nav .et_mobile_menu li.acc-menu-mobile { display: block; }

	.acc-nav .et_mobile_menu li a { text-align: left; }

	.acc-nav .et_mobile_menu li:last-child > a { border-bottom: none; }

	/* Sub-menus start collapsed. The parent row becomes a flex row so the
	   link and its chevron sit side by side and the sub-menu wraps onto its
	   own full-width line underneath. The chevron button is added by
	   acc_mobile_submenu_toggle() in functions.php. */
	.acc-nav .et_mobile_menu li.menu-item-has-children {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
	}

	.acc-nav .et_mobile_menu li.menu-item-has-children > a { flex: 1 1 auto; }

	.acc-nav .et_mobile_menu li.menu-item-has-children > ul.sub-menu {
		flex: 1 1 100%;
		display: none !important;
		padding: 0;
	}

	.acc-nav .et_mobile_menu li.menu-item-has-children.acc-open > ul.sub-menu {
		display: block !important;
	}

	.acc-nav .et_mobile_menu .acc-subtoggle {
		flex: 0 0 54px;
		background: none;
		border: 0;
		border-bottom: 1px solid var(--acc-line-cool);
		padding: 0;
		margin: 0;
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
	}

	.acc-nav .et_mobile_menu .acc-subtoggle:before {
		content: "";
		display: block;
		width: 9px;
		height: 9px;
		margin: 0 auto;
		border-right: 2px solid var(--acc-navy);
		border-bottom: 2px solid var(--acc-navy);
		transform: translateY(-3px) rotate(45deg);
		transition: transform 0.2s var(--acc-ease);
	}

	.acc-nav .et_mobile_menu li.acc-open > .acc-subtoggle:before {
		transform: translateY(2px) rotate(-135deg);
	}

	.acc-nav .et_mobile_menu .acc-subtoggle:focus-visible {
		outline: 2px solid var(--acc-teal);
		outline-offset: -2px;
	}

	/* Call button, pinned to the bottom of the dropdown */
	.acc-nav .et_mobile_menu li.acc-menu-call {
		padding: 14px 20px 16px;
		border-bottom: none;
	}

	/* The menu module emits its own !important colour rules for
	   `.et_pb_menu .et_mobile_menu li a`, so this selector carries an extra
	   class and !important on every paint property to land on top of them. */
	.acc-header .acc-nav .et_mobile_menu li.acc-menu-call > a {
		display: block;
		text-align: center;
		font-family: var(--acc-sans);
		font-size: 1rem;
		font-weight: 600;
		letter-spacing: 0.01em;
		color: var(--acc-white) !important;
		background-color: var(--acc-navy) !important;
		border: 1px solid var(--acc-navy) !important;
		border-radius: var(--acc-radius-pill) !important;
		padding: 14px 22px !important;
		transition: background-color 0.25s var(--acc-ease);
	}

	.acc-header .acc-nav .et_mobile_menu li.acc-menu-call > a:hover,
	.acc-header .acc-nav .et_mobile_menu li.acc-menu-call > a:active {
		background-color: var(--acc-navy-deep) !important;
		border-color: var(--acc-navy-deep) !important;
		opacity: 1;
	}
}

@media (max-width: 479px) {
	.acc-logo img { max-width: 178px; }
	.acc-nav .mobile_menu_bar:before { font-size: 30px; }
}

/* 24c. MOBILE FOOTER ======================================================= */

/* On a phone the two link columns ("Explore" and "Practice") stack into a
   long list under the brand block, so they are dropped there. Columns 2 and 3
   of .acc-footertop — the logo/blurb/contact column stays. */
@media (max-width: 767px) {
	.acc-footertop > .et_pb_column:nth-child(2),
	.acc-footertop > .et_pb_column:nth-child(3) { display: none !important; }

	.acc-footertop > .et_pb_column:nth-child(1) { margin-bottom: 0 !important; }

	/* Centre the brand block under the logo, which is centred already. */
	.acc-footertop > .et_pb_column:nth-child(1),
	.acc-footertop > .et_pb_column:nth-child(1) .et_pb_text,
	.acc-footertop > .et_pb_column:nth-child(1) .et_pb_text p {
		text-align: center !important;
	}

	/* The standard row gutter leaves the blurb just too narrow to keep
	   "Tucson, Arizona," on one line, so the footer row runs a little wider
	   here and the blurb a little smaller. Both together move "Arizona," up
	   to the second line instead of stranding it at the start of the third. */
	.acc-footer .acc-footertop {
		width: calc(100% - 20px) !important;
	}

	.acc-footertop > .et_pb_column:nth-child(1) > .et_pb_text:not(.acc-footercontact) p {
		font-size: 14px !important;
		line-height: 1.62 !important;
	}

	/* Copyright bar: centre the copyright and the credit line. The copyright
	   is held to 300px so the line breaks after "LLC ·" and "Arizona LCSW
	   License #13023" stays whole on the second line — at the full column
	   width "Arizona" ends the first line and the licence number is orphaned.
	   Both the width and the type size here are fixed, so the break lands the
	   same way on any phone. */
	.acc-footerbar > .et_pb_column,
	.acc-footerbar > .et_pb_column .et_pb_text,
	.acc-footerbar > .et_pb_column .et_pb_text p {
		text-align: center !important;
	}

	.acc-footerbar > .et_pb_column:nth-child(1) p {
		max-width: 300px;
		margin-left: auto !important;
		margin-right: auto !important;
	}
}

/* 25. PROJECT CSS ========================================================== */
/* Add page-specific rules below this line. */
