/* =========================================================================
 * Service page modules (2026-10)
 * service_hero, intro_list, icon_cards, numbered_list, process_steps,
 * feature_grid, photo_gallery, faqs, quote_form
 * Uses the brand variables declared in theme.css.
 * ====================================================================== */

/* ---------- Shared ---------- */
.dw-module {--dw-line:#dde2e6;--dw-muted:#46535f;--dw-tint:#f5faf6;}
.dw-module h2 {font-family:var(--font-condensed);font-weight:900;text-transform:uppercase;color:var(--brand-navy);font-size:clamp(2.2rem,4vw,3.5rem);line-height:1;margin:0 0 1.25rem;text-wrap:balance;}
.dw-module h2 strong {color:var(--brand-blue);}
.dw-module p {text-wrap:pretty;}
.dw-module p:last-child {margin-bottom:0;}
.dw-dark h2, .dw-dark h3 {color:#fff !important;}
.dw-dark {color:#dce5ee;}
.dw-dark strong {color:#fff;}

.dw-eyebrow {display:flex;align-items:center;gap:0.75rem;margin:0 0 0.9rem;font-family:var(--font-condensed);font-weight:700;font-size:1.05rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--brand-navy-2);}
.dw-eyebrow::before {content:'';width:2rem;height:4px;background:var(--brand-blue);flex:none;}
.dw-dark .dw-eyebrow {color:#fff;}

.dw-head {margin-bottom:2rem;}
.dw-head-split {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:1rem 4rem;align-items:end;margin-bottom:2.5rem;}
.dw-head-split .dw-eyebrow {grid-column:1 / -1;margin-bottom:-0.5rem;}
.dw-head-split h2 {margin:0;}
.dw-head-split p {color:var(--dw-muted);margin:0;}
.dw-dark .dw-head-split p {color:#dce5ee;}
.dw-head-narrow {max-width:52rem;}

/* ---------- Service hero ---------- */
.dw-hero {position:relative;overflow:hidden;background-image:repeating-linear-gradient(-8deg,rgba(255,255,255,0.035) 0,rgba(255,255,255,0.035) 2px,transparent 2px,transparent 46px);}
.dw-hero h1 {color:#fff;font-weight:900;font-size:clamp(3rem,6vw,5.5rem);line-height:0.95;margin:0 0 1.5rem;text-wrap:balance;}
.dw-hero h1 strong {color:var(--brand-blue);}
.dw-hero-content p {font-size:1.35rem;line-height:1.5;color:#dce5ee;max-width:34em;}
.dw-hero .btn-phone {gap:0.25rem;}
.dw-ticks {gap:0.75rem 2rem;border-top:1px solid rgba(255,255,255,0.18);font-family:var(--font-condensed);font-weight:600;font-size:1.25rem;color:#fff;}
.dw-ticks li {display:flex;align-items:center;gap:0.5rem;}
.dw-ticks svg {color:var(--brand-blue);flex:none;}
.dw-hero-media {padding:0 0 1.5rem 1.5rem;}
.dw-hero-img {display:block;aspect-ratio:4 / 3;object-fit:cover;}
.dw-stat-badge {position:absolute;left:0;bottom:0;background:var(--brand-blue);color:var(--brand-navy);padding:1rem 1.4rem;display:flex;flex-direction:column;box-shadow:0 12px 30px rgba(0,0,0,0.25);}
.dw-stat-value {font-family:var(--font-condensed);font-weight:900;font-size:2.8rem;line-height:1;text-transform:uppercase;}
.dw-stat-label {font-weight:700;font-size:1rem;}

/* ---------- Text + list panel ---------- */
.dw-panel {background:#fff;border:1px solid var(--dw-line);padding:2.25rem;}
.bg-white .dw-panel {background:var(--dw-tint);border-color:transparent;}
.dw-panel-title {font-family:var(--font-body);font-size:1.2rem !important;font-weight:700;color:var(--brand-navy) !important;margin:0 0 0.5rem;}
.dw-ring-list li {position:relative;padding:0.9rem 0 0.9rem 1.75rem;border-bottom:1px solid var(--dw-line);}
.dw-ring-list li:last-child {border-bottom:0;padding-bottom:0;}
.dw-ring-list li::before {content:'';position:absolute;left:0;top:1.45rem;width:12px;height:12px;border-radius:50%;border:3px solid var(--brand-blue);}

/* ---------- Icon cards ---------- */
.dw-card {background:var(--dw-tint);padding:2rem;display:flex;flex-direction:column;gap:0.9rem;}
.bg-light-custom .dw-card {background:#fff;}
.dw-card-icon {width:56px;height:56px;background:var(--brand-navy);color:var(--brand-blue);display:flex;align-items:center;justify-content:center;flex:none;}
.dw-card-title {font-family:var(--font-condensed);font-size:1.8rem !important;font-weight:700 !important;text-transform:uppercase;color:var(--brand-navy) !important;margin:0;line-height:1.05;}
.dw-card-text {font-size:1.1rem;color:#39444f;}
.dw-card-text p:last-child {margin:0;}
.dw-card-link {margin-top:auto;padding-top:0.4rem;display:inline-flex;align-items:center;gap:0.5rem;min-height:44px;font-family:var(--font-condensed);font-weight:700;font-size:1.25rem;text-transform:uppercase;text-decoration:none;color:var(--brand-navy);}
.dw-card-link:hover, .dw-card-link:focus {color:var(--brand-blue-hover);}
.dw-card-dark {background:var(--brand-navy) !important;color:#dce5ee;}
.dw-card-dark .dw-card-icon {background:var(--brand-blue);color:var(--brand-navy);}
.dw-card-dark .dw-card-title {color:#fff !important;}
.dw-card-dark .dw-card-text {color:#dce5ee;}
.dw-card-dark .dw-card-link {color:var(--brand-blue);}
.dw-card-dark .dw-card-link:hover, .dw-card-dark .dw-card-link:focus {color:#fff;}
.dw-dark .dw-card {background:var(--brand-navy-2);}
.dw-dark .dw-card-title {color:#fff !important;}
.dw-dark .dw-card-text {color:#dce5ee;}

/* ---------- Numbered list + callouts ---------- */
.dw-num-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:1px;padding:1px;}
.dw-num-grid li {background:#fff;box-shadow:0 0 0 1px var(--dw-line);padding:1.6rem;display:flex;flex-direction:column;gap:0.35rem;}
.bg-white .dw-num-grid li {background:var(--dw-tint);}
.dw-num {font-family:var(--font-condensed);font-weight:900;font-size:1.3rem;color:var(--brand-blue-hover);}
.dw-num-title {font-size:1.2rem;color:var(--brand-navy);}
.dw-num-text {font-size:1.05rem;color:var(--dw-muted);}
.dw-callout {background:#fff;border:1px solid var(--dw-line);padding:1.4rem 1.5rem;}
.bg-white .dw-callout {background:var(--dw-tint);border-color:transparent;}
.dw-callout-title {font-family:var(--font-condensed);font-weight:900;font-size:2rem;line-height:1.05;text-transform:uppercase;color:var(--brand-navy);margin:0 0 0.25rem;}
.dw-callout-text {font-size:1.05rem;color:var(--dw-muted);margin:0;}
.dw-callout-dark {background:var(--brand-navy) !important;border-color:var(--brand-navy) !important;}
.dw-callout-dark .dw-callout-title {color:#fff;}
.dw-callout-dark .dw-callout-text {color:#dce5ee;}

/* ---------- Process steps ---------- */
.dw-steps {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:2rem 1.25rem;}
.dw-step {display:flex;flex-direction:column;gap:0.8rem;}
.dw-step-marker {display:flex;align-items:center;}
.dw-step-marker::after {content:'';flex-grow:1;height:6px;margin-left:0.5rem;background:rgba(0,173,241,0.35);border-radius:3px;}
.dw-step-last .dw-step-marker::after {display:none;}
.dw-step-num {flex:none;width:52px;height:52px;border-radius:50%;background:var(--brand-blue);color:var(--brand-navy);font-family:var(--font-condensed);font-weight:900;font-size:1.6rem;display:flex;align-items:center;justify-content:center;}
.dw-step-last .dw-step-num {background:#fff;}
.dw-step-title {font-size:1.25rem;color:var(--brand-navy);}
.dw-step-text {font-size:1.05rem;color:var(--dw-muted);}
.dw-dark .dw-step-title {color:#fff;}
.dw-dark .dw-step-text {color:#c9d5e1;}
.dw-process-footer {border-top:1px solid var(--dw-line);align-items:start;}
.dw-dark .dw-process-footer {border-top-color:rgba(255,255,255,0.18);}
.dw-process-footer h2, .dw-process-footer h3 {font-family:var(--font-condensed);font-weight:900;text-transform:uppercase;font-size:2rem !important;margin:0;}

/* ---------- Feature grid ---------- */
.dw-feature {display:flex;flex-direction:column;gap:0.5rem;}
.dw-feature-title {font-size:1.25rem;color:var(--brand-navy);}
.dw-feature-text {font-size:1.05rem;color:#39444f;}
.dw-features-rule .dw-feature {border-top:4px solid var(--brand-navy);padding-top:1.25rem;}
.dw-features-rule .row > div:last-child .dw-feature {border-top-color:var(--brand-blue);}
.dw-features-card .dw-feature {background:var(--dw-tint);padding:1.5rem;}
.bg-light-custom.dw-features-card .dw-feature {background:#fff;}
.dw-dark .dw-feature-title {color:#fff;}
.dw-dark .dw-feature-text {color:#dce5ee;}
.dw-dark.dw-features-rule .dw-feature {border-top-color:var(--brand-blue);}
.dw-dark.dw-features-card .dw-feature {background:var(--brand-navy-2);}
.dw-note {display:flex;gap:0.9rem;background:#e6f7fe;border:1px solid #9fdcf5;padding:1.3rem 1.4rem;font-size:1.05rem;color:var(--brand-navy);}
.dw-note svg {flex:none;margin-top:0.15rem;color:var(--brand-blue-hover);}
.dw-note a {color:var(--brand-navy);font-weight:700;}

/* ---------- Photo gallery ---------- */
.dw-photo img {aspect-ratio:4 / 3;object-fit:cover;display:block;}
.dw-photo figcaption {margin-top:0.6rem;font-size:1rem;color:var(--dw-muted);}
.dw-dark .dw-photo figcaption {color:#c9d5e1;}

/* ---------- FAQs (extends .box-accordion in theme.css) ---------- */
.dw-faqs .accordion {border-top:3px solid var(--brand-navy) !important;}
.dw-faqs .accordion-item {margin-top:0;border:0 !important;border-bottom:1px solid var(--dw-line) !important;background:transparent;}
.dw-faqs .accordion-header {font-size:inherit;}
.dw-faqs button.accordion-button {background:transparent;padding:1.4rem 0;font-family:var(--font-body);font-size:1.25rem;gap:1.25rem;}
.dw-faqs button.accordion-button::after {color:var(--brand-blue-hover);flex:none;}
.dw-faqs .accordion-button:focus-visible {outline:3px solid var(--brand-blue) !important;outline-offset:2px;}
.dw-faqs .accordion-body {padding:0 3rem 1.5rem 0;color:#39444f;}
.bg-light-custom.dw-faqs button.accordion-button {background:transparent;}

/* ---------- Quote form ---------- */
.dw-quote h2 {font-size:clamp(2.5rem,4.5vw,4rem);}
.dw-response {display:flex;align-items:center;gap:0.6rem;font-weight:600;color:#fff;margin-top:1rem;}
.dw-response svg {color:var(--brand-blue);flex:none;}
.dw-quote-contact {border-top:1px solid rgba(255,255,255,0.18);display:flex;flex-direction:column;gap:0.3rem;}
.dw-quote-label {font-size:1rem;color:#b9c7d6;}
.dw-quote-phone {font-family:var(--font-condensed);font-weight:900;font-size:3rem;line-height:1.05;color:var(--brand-blue);text-decoration:none;}
.dw-quote-phone:hover, .dw-quote-phone:focus {color:#fff;}
.dw-quote-email {color:#dce5ee;font-size:1.1rem;}
.dw-quote-email:hover, .dw-quote-email:focus {color:var(--brand-blue);}
.dw-form-card {background:#fff;color:var(--brand-navy);padding:2.25rem;}
.dw-form-card label, .dw-form-card legend {font-weight:600;font-size:1.05rem;color:var(--brand-navy);}
.dw-form-card input[type=text], .dw-form-card input[type=tel], .dw-form-card input[type=email], .dw-form-card select, .dw-form-card textarea {width:100%;min-height:50px;padding:0.6rem 0.9rem;border:1px solid #a9b4be;border-radius:0;font:inherit;font-size:1.1rem;color:var(--brand-navy);background:#fff;}
.dw-form-card input[type=file] {width:100%;padding:1rem;border:2px dashed #a9b4be;background:var(--dw-tint);font-size:1rem;}
.dw-form-card input:focus, .dw-form-card select:focus, .dw-form-card textarea:focus {outline:3px solid var(--brand-blue) !important;outline-offset:1px;}
.dw-form-card input[type=submit], .dw-form-card button[type=submit] {background:var(--brand-green);border:2px solid var(--brand-green);color:#fff;font-family:var(--font-condensed);font-weight:700;font-size:1.3rem;text-transform:uppercase;padding:0.6rem 2.5rem;min-height:50px;}
.dw-form-card input[type=submit]:hover, .dw-form-card button[type=submit]:hover {background:var(--brand-green-hover);border-color:var(--brand-green-hover);}

/* ---------- Rich text ---------- */
.dw-rich-single {max-width:56rem;}
.dw-rich-body {font-size:1.15rem;}
.dw-rich-body > *:last-child {margin-bottom:0;}
.dw-rich h3 {font-family:var(--font-condensed);font-weight:700;text-transform:uppercase;color:var(--brand-navy);font-size:1.6rem;margin:1.8rem 0 0.6rem;}
.dw-rich-body p strong:first-child {color:var(--brand-navy);}
.dw-dark .dw-rich-body p strong:first-child {color:#fff;}
.dw-rich-body ul, .dw-rich-body ol {padding-left:1.4rem;margin:0 0 1.25rem;}
.dw-rich-body li {margin-bottom:0.5rem;}
.dw-rich-body ul li::marker {color:var(--brand-blue-hover);}
.dw-rich-body a {color:var(--brand-navy);font-weight:700;text-decoration-color:var(--brand-blue);text-underline-offset:3px;}
.dw-rich-body a:hover, .dw-rich-body a:focus {color:var(--brand-blue-hover);}
.dw-dark .dw-rich-body a {color:#fff;}
.dw-more {display:inline-flex;align-items:center;gap:0.4rem;}
.dw-table-wrap {overflow-x:auto;margin:0 0 1.5rem;border:1px solid var(--dw-line);}
.dw-rich-body table {width:100%;border-collapse:collapse;font-size:1.05rem;background:#fff;min-width:560px;}
.dw-rich-body th, .dw-rich-body td {padding:0.85rem 1rem;border-bottom:1px solid var(--dw-line);text-align:left;vertical-align:top;}
.dw-rich-body thead th {background:var(--brand-navy);color:#fff;font-family:var(--font-condensed);font-weight:700;text-transform:uppercase;font-size:1.1rem;}
.dw-rich-body tbody th {color:var(--brand-navy);font-weight:700;}
.dw-rich-body tbody tr:last-child td, .dw-rich-body tbody tr:last-child th {border-bottom:0;}

/* ---------- Related links ---------- */
.dw-link-card {display:flex;flex-direction:column;gap:0.4rem;padding:1.4rem 1.5rem;background:#fff;border:1px solid var(--dw-line);text-decoration:none;color:var(--brand-navy);transition:border-color .2s, box-shadow .2s;}
.bg-white .dw-link-card {background:var(--dw-tint);border-color:transparent;}
.dw-link-card:hover, .dw-link-card:focus {border-color:var(--brand-blue);box-shadow:0 4px 15px rgba(0,3,34,0.08);color:var(--brand-navy);}
.dw-link-title {display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:var(--font-condensed);font-weight:700;font-size:1.5rem;text-transform:uppercase;line-height:1.1;}
.dw-link-title svg {color:var(--brand-blue-hover);flex:none;transition:transform .2s;}
.dw-link-card:hover .dw-link-title svg {transform:translateX(4px);}
.dw-link-text {font-size:1.05rem;color:var(--dw-muted);}
.dw-dark .dw-link-card {background:var(--brand-navy-2);border-color:var(--brand-navy-2);color:#fff;}
.dw-dark .dw-link-text {color:#c9d5e1;}

/* ---------- Strong note (urgent callout) ---------- */
.dw-note-strong {background:var(--brand-navy);border-color:var(--brand-navy);color:#fff;}
.dw-note-strong svg {color:var(--brand-blue);}
.dw-note-strong a, .dw-note-strong strong {color:#fff;}
.dw-dark .dw-note {background:var(--brand-navy-2);border-color:var(--brand-blue);color:#fff;}
.dw-dark .dw-note a {color:#fff;}

/* ---------- Ninja Forms in the quote card ---------- */
.dw-form-card .nf-form-content {padding:0;max-width:none;}
.dw-form-card .nf-field-container {margin-bottom:1.1rem;}
.dw-form-card .nf-form-content .ninja-forms-field, .dw-form-card .nf-form-content input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]), .dw-form-card .nf-form-content select, .dw-form-card .nf-form-content textarea {background:#fff;border:1px solid #a9b4be;border-radius:0;color:var(--brand-navy);font-size:1.1rem;}
.dw-form-card .nf-form-content input[type=button], .dw-form-card .nf-form-content input[type=submit], .dw-form-card .nf-form-content button {background:var(--brand-green) !important;border:2px solid var(--brand-green) !important;color:#fff !important;font-family:var(--font-condensed);font-weight:700;font-size:1.3rem;text-transform:uppercase;padding:0.6rem 2.5rem;height:auto;min-height:50px;border-radius:0;}
.dw-form-card .nf-form-content input[type=button]:hover, .dw-form-card .nf-form-content input[type=submit]:hover {background:var(--brand-green-hover) !important;border-color:var(--brand-green-hover) !important;}
.dw-form-card .nf-form-fields-required {font-size:0.95rem;color:var(--dw-muted);margin-bottom:1rem;}

/* ---------- Large screens (theme scales up at 1925px+) ---------- */
@media (min-width: 1925px) {
	.dw-module h2 {font-size:4.5rem;}
	.dw-hero h1 {font-size:7rem;}
	.dw-hero-content p {font-size:1.7rem;}
	.dw-card-title {font-size:2.2rem !important;}
	.dw-card-text, .dw-num-text, .dw-step-text, .dw-feature-text {font-size:1.3rem;}
	.dw-quote-phone {font-size:4rem;}
}

/* ---------- Mobile ---------- */
@media (max-width: 767.98px) {
	.dw-hero-media {padding:0 0 1.25rem 1rem;}
	.dw-stat-value {font-size:2.2rem;}
	.dw-panel, .dw-card, .dw-form-card {padding:1.5rem;}
	.dw-faqs .accordion-body {padding-right:0;}
	.dw-faqs button.accordion-button {padding:1.2rem 0;}
	.dw-quote-phone {font-size:2.5rem;}
}
