/*
Theme Name: Dupuy 2027
Theme URI: https://dupuyinsurance.com/
Author: Dupuy Insurance
Description: Lightweight, accessible block theme for Dupuy Insurance. Built around clear insurance information and quote requests, with no page builder and no front-end framework.
Version: 0.5.2
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dupuy-2027
*/

/* Most styling lives in theme.json. This file holds the few rules core blocks cannot express. */

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.skip-link:focus {
	position: fixed;
	top: 0.5rem;
	left: 0.5rem;
	z-index: 1000;
	padding: 0.75rem 1rem;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

/* Sticky call / quote bar on small screens */
.dupuy-mobile-cta {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 900;
	/* the block's inline padding (0.5rem) would otherwise drop the iPhone home-indicator safe area */
	padding-bottom: calc(0.5rem + env(safe-area-inset-bottom, 0px)) !important;
	box-shadow: 0 -2px 12px rgb(0 0 0 / 12%);
}

body:has(.dupuy-mobile-cta) {
	padding-bottom: 4.5rem;
}

@media (min-width: 782px) {
	/* !important: the core flex-layout rule (.wp-block-group.is-layout-flex) is more specific and showed the bar on desktop */
	.dupuy-mobile-cta {
		display: none !important;
	}

	body:has(.dupuy-mobile-cta) {
		padding-bottom: 0;
	}
}

/* Embedded quote form container keeps its height stable while the form loads (avoids layout shift) */
.dupuy-quote-embed {
	min-height: 720px;
}

/* Hero card: insurance-line shortcuts with large tap targets */
.dupuy-line-links {
	padding-left: 0;
	list-style: none;
}

.dupuy-line-links a {
	display: block;
	padding: 0.65rem 0;
	border-bottom: 1px solid var(--wp--preset--color--border);
	font-weight: 600;
	text-decoration: none;
}

.dupuy-line-links li:last-child a {
	border-bottom: 0;
}

/* Hub pages: child-page links in responsive columns with comfortable tap targets */
.dupuy-area-list {
	columns: 16rem auto;
	column-gap: var(--wp--preset--spacing--30);
	padding-left: 0;
	list-style: none;
}

.dupuy-area-list li {
	break-inside: avoid;
}

.dupuy-area-list a {
	display: block;
	padding: 0.6rem 0;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Header logo: horizontal wordmark; smaller on narrow phones so the menu button fits */
.custom-logo {
	height: auto;
}

@media (max-width: 480px) {
	.custom-logo {
		width: 200px;
	}

	/* the phone call bar already offers "Get a quote"; the header copy would crowd logo + menu on 360-390px screens */
	.dupuy-header-cta {
		display: none;
	}
}

/* Button rows written as plain HTML (templates, patterns) get the same spacing as block-rendered rows */
.wp-block-buttons:not(.is-layout-flex) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

/* Outline button style (secondary action, e.g. "Call"): the global button style is a filled accent button */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 2px solid var(--wp--preset--color--contrast);
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Legacy page content: headings inside boxes that set light text (e.g. dark gradient heroes on the city pages)
   take the box's colour instead of the theme's dark heading colour, which made them nearly invisible */
:where([style*="color:#ffffff"], [style*="color: #ffffff"], [style*="color:#fff;"], [style*="color: #fff;"]) :is(h1, h2, h3, h4) {
	color: inherit;
}

/* Legacy inline-styled buttons: WordPress auto-paragraphs turn the line breaks inside their HTML into <br>,
   which pushed each label to the bottom edge of its button */
a[style*="inline-block"] br {
	display: none;
}

/* Page audit 2026-10-21 (legacy page content) */
/* WordPress wraps the old pages' HTML comments in paragraphs, which only added stray vertical gaps */
.wp-block-post-content p:empty {
	display: none;
}
/* Content images now carry width/height (no layout shift while loading); they still scale with the column */
.wp-block-post-content img {
	max-width: 100%;
	height: auto;
}
/* Legacy call-to-action buttons came in nine unrelated colours (blue, orange, red, green, black); they now share the
   brand button colours. Inline styles set them, hence !important. */
.wp-block-post-content a:is([style*="background:#2563eb"], [style*="background: #2563eb"], [style*="background-color:#2563eb"], [style*="background-color: #2563eb"], [style*="background:#f97316"], [style*="background: #f97316"], [style*="background-color:#f97316"], [style*="background-color: #f97316"], [style*="background:#0073e6"], [style*="background: #0073e6"], [style*="background-color:#0073e6"], [style*="background-color: #0073e6"], [style*="background:#1a6aff"], [style*="background: #1a6aff"], [style*="background-color:#1a6aff"], [style*="background-color: #1a6aff"], [style*="background:#0c63e7"], [style*="background: #0c63e7"], [style*="background-color:#0c63e7"], [style*="background-color: #0c63e7"], [style*="background:#10b981"], [style*="background: #10b981"], [style*="background-color:#10b981"], [style*="background-color: #10b981"], [style*="background:#28a745"], [style*="background: #28a745"], [style*="background-color:#28a745"], [style*="background-color: #28a745"], [style*="background:#e11d48"], [style*="background: #e11d48"], [style*="background-color:#e11d48"], [style*="background-color: #e11d48"], [style*="background:#222222"], [style*="background: #222222"], [style*="background-color:#222222"], [style*="background-color: #222222"]) {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--contrast) !important;
	border-color: var(--wp--preset--color--accent) !important;
	box-shadow: none !important;
}
.wp-block-post-content a:is([style*="background:#2563eb"], [style*="background: #2563eb"], [style*="background-color:#2563eb"], [style*="background-color: #2563eb"], [style*="background:#f97316"], [style*="background: #f97316"], [style*="background-color:#f97316"], [style*="background-color: #f97316"], [style*="background:#0073e6"], [style*="background: #0073e6"], [style*="background-color:#0073e6"], [style*="background-color: #0073e6"], [style*="background:#1a6aff"], [style*="background: #1a6aff"], [style*="background-color:#1a6aff"], [style*="background-color: #1a6aff"], [style*="background:#0c63e7"], [style*="background: #0c63e7"], [style*="background-color:#0c63e7"], [style*="background-color: #0c63e7"], [style*="background:#10b981"], [style*="background: #10b981"], [style*="background-color:#10b981"], [style*="background-color: #10b981"], [style*="background:#28a745"], [style*="background: #28a745"], [style*="background-color:#28a745"], [style*="background-color: #28a745"], [style*="background:#e11d48"], [style*="background: #e11d48"], [style*="background-color:#e11d48"], [style*="background-color: #e11d48"], [style*="background:#222222"], [style*="background: #222222"], [style*="background-color:#222222"], [style*="background-color: #222222"]):is(:hover, :focus-visible) {
	background: #e09400 !important;
}
/* Legacy "Jump to a section" links: brand surface and navy instead of bright blue */
.wp-block-post-content a:is([style*="background:#dbeafe"], [style*="background: #dbeafe"], [style*="background-color:#dbeafe"], [style*="background-color: #dbeafe"]) {
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--primary) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
}

/* ---------------------------------------------------------------- Homepage redesign (owner 2026-10-31) */
.screen-reader-text:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Hero: navy band, white text, the slideshow on the right (below the text on phones) */
.dupuy-hero {
	background: radial-gradient(120% 140% at 85% 10%, #134f86 0%, var(--wp--preset--color--primary) 45%, var(--wp--preset--color--primary-dark) 100%);
	color: var(--wp--preset--color--base);
	padding: clamp(2.5rem, 6vw, 4.5rem) 16px;
}

.dupuy-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
}

.dupuy-hero__eyebrow {
	display: inline-block;
	margin: 0 0 1rem;
	padding: 0.35rem 0.85rem;
	border: 1px solid rgb(255 255 255 / 35%);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.01em;
	color: #ffd88f;
}

.dupuy-hero .dupuy-hero__title {
	margin: 0 0 1rem;
	color: var(--wp--preset--color--base);
	font-size: clamp(2rem, 4.2vw, 3.1rem);
	line-height: 1.12;
	letter-spacing: -0.015em;
}

.dupuy-hero__lead {
	margin: 0 0 1.75rem;
	max-width: 36rem;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.55;
	color: rgb(255 255 255 / 86%);
}

.dupuy-hero__actions .wp-block-button__link {
	padding: 0.95rem 1.6rem;
	font-size: 1.0625rem;
	font-weight: 700;
	border-radius: 10px;
}

/* the outline "Call" button is dark-on-light elsewhere; on the navy band it is white */
.dupuy-hero .dupuy-hero__call > .wp-block-button__link {
	color: var(--wp--preset--color--base);
	border-color: rgb(255 255 255 / 80%);
}

.dupuy-hero .dupuy-hero__call > .wp-block-button__link:is(:hover, :focus-visible) {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary-dark);
}

.dupuy-hero__facts {
	display: grid;
	gap: 0.55rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	font-size: var(--wp--preset--font-size--small);
	color: rgb(255 255 255 / 90%);
}

.dupuy-hero__facts li {
	position: relative;
	padding-left: 1.75rem;
}

.dupuy-hero__facts li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23072746' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 80% no-repeat;
}

/* Slideshow */
.dupuy-slider {
	position: relative;
}

.dupuy-slider__viewport {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: 18px;
	background: #e6f0fa;
	box-shadow: 0 24px 60px rgb(0 0 0 / 35%);
}

.dupuy-slide {
	margin: 0;
}

/* without JavaScript only the first slide shows; with it, slides cross-fade */
.dupuy-slider:not(.is-ready) .dupuy-slide:not(:first-child) {
	display: none;
}

.dupuy-slider.is-ready .dupuy-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.7s ease, visibility 0.7s;
}

.dupuy-slider.is-ready .dupuy-slide.is-active {
	opacity: 1;
	visibility: visible;
}

.dupuy-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dupuy-slide__caption {
	position: absolute;
	inset: auto 0 0 0;
	display: grid;
	gap: 0.2rem;
	padding: 2.5rem 1.25rem 1rem;
	background: linear-gradient(to top, rgb(7 39 70 / 92%) 0%, rgb(7 39 70 / 70%) 55%, rgb(7 39 70 / 0%) 100%);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}

.dupuy-slide__caption strong {
	font-size: 1.15rem;
}

.dupuy-slide__caption a {
	justify-self: start;
	margin-top: 0.25rem;
	color: #ffd88f;
	font-weight: 700;
	text-decoration: none;
}

.dupuy-slide__caption a:is(:hover, :focus-visible) {
	text-decoration: underline;
}

.dupuy-slider__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	margin-top: 1rem;
}

.dupuy-slider:not(.is-ready) .dupuy-slider__controls {
	display: none;
}

.dupuy-slider__btn {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 45%);
	border-radius: 50%;
	background: rgb(255 255 255 / 10%);
	color: var(--wp--preset--color--base);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
}

.dupuy-slider__toggle {
	font-size: 0.7rem;
}

.dupuy-slider__btn:is(:hover, :focus-visible) {
	background: rgb(255 255 255 / 22%);
}

.dupuy-slider__dots {
	display: flex;
	gap: 0.15rem;
}

/* 24px tap target around a 10px dot */
.dupuy-slider__dot {
	position: relative;
	width: 1.5rem;
	height: 1.5rem;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.dupuy-slider__dot::before {
	content: "";
	position: absolute;
	inset: 50% auto auto 50%;
	width: 0.65rem;
	height: 0.65rem;
	border-radius: 999px;
	background: rgb(255 255 255 / 45%);
	transform: translate(-50%, -50%);
	transition: width 0.3s, background 0.3s;
}

.dupuy-slider__dot[aria-current="true"]::before {
	width: 1.4rem;
	background: var(--wp--preset--color--accent);
}

/* Quick links under the hero */
.dupuy-quick {
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--base);
	padding: 1rem 16px;
}

.dupuy-quick__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	max-width: 1200px;
	margin: 0 auto;
}

.dupuy-quick__label {
	margin-right: 0.25rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--muted);
}

.dupuy-quick__chip {
	padding: 0.45rem 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	text-decoration: none;
	transition: background 0.2s, border-color 0.2s;
}

.dupuy-quick__chip:is(:hover, :focus-visible) {
	border-color: var(--wp--preset--color--primary);
	background: #e6eef7;
}

/* "What we insure" cards: whole card clickable, accent top edge, gentle lift on hover */
.dupuy-line-card {
	position: relative;
	background: var(--wp--preset--color--base);
	border-top: 4px solid var(--wp--preset--color--accent) !important;
	box-shadow: 0 1px 2px rgb(16 24 40 / 6%);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.dupuy-line-card:hover,
.dupuy-line-card:focus-within {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgb(16 24 40 / 12%);
}

.dupuy-line-card h3 {
	margin-top: 0;
}

.dupuy-line-card h3 a {
	text-decoration: none;
}

.dupuy-line-card h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.dupuy-line-card h3 a:is(:hover, :focus-visible) {
	text-decoration: underline;
}

.dupuy-line-card p:last-child::after {
	content: " \2192";
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

/* How it works: numbered steps as cards */
.dupuy-steps .wp-block-column {
	padding: var(--wp--preset--spacing--30);
	border-radius: 12px;
	background: var(--wp--preset--color--surface);
}

/* Why us: each point marked with a shield-check */
.dupuy-trust .wp-block-column {
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	background: var(--wp--preset--color--base);
}

.dupuy-trust h3::before {
	content: "";
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 0.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-30 -32 60 64'%3E%3Cpath d='M0-25 L21-17 V2 C21 16 11 25 0 29 C-11 25-21 16-21 2 V-17 Z' fill='%230b3a66'/%3E%3Cpath d='M-9 1 L-2 8 L10-6' fill='none' stroke='%23f5a623' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 60% no-repeat;
}

@media (max-width: 900px) {
	.dupuy-hero__inner {
		grid-template-columns: minmax(0, 1fr);
	}

	.dupuy-hero__lead {
		font-size: var(--wp--preset--font-size--medium);
	}
}

@media (max-width: 480px) {
	.dupuy-hero__actions .wp-block-button,
	.dupuy-hero__actions .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* ---------------------------------------------------------------- Message bar and coverage buttons (owner 2026-10-31) */
.dupuy-ticker {
	position: relative;
	display: flex;
	align-items: center;
	background: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1;
}

.dupuy-ticker__viewport {
	display: flex;
	flex: 1;
	width: max-content;
	min-width: 0;
	overflow: hidden;
	mask-image: linear-gradient(to right, transparent 0, #000 3%, #000 97%, transparent 100%);
}

.dupuy-ticker__track {
	display: flex;
	flex-shrink: 0;
	gap: 0;
	margin: 0;
	padding: 0.7rem 0;
	list-style: none;
	animation: dupuy-ticker 55s linear infinite;
}

.dupuy-ticker__track li {
	padding: 0 1.25rem;
	white-space: nowrap;
}

.dupuy-ticker__track li::before {
	content: "\2022";
	margin-right: 1.25rem;
	color: var(--wp--preset--color--accent);
}

.dupuy-ticker a {
	color: var(--wp--preset--color--base);
	text-decoration: none;
}

.dupuy-ticker a:is(:hover, :focus-visible) {
	color: #ffd88f;
	text-decoration: underline;
}

.dupuy-ticker:is(:hover, :focus-within, .is-paused) .dupuy-ticker__track {
	animation-play-state: paused;
}

.dupuy-ticker__toggle {
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	margin: 0 0.5rem;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 35%);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--base);
	font-size: 0.65rem;
	cursor: pointer;
}

@keyframes dupuy-ticker {
	from { transform: translateX(0); }
	to { transform: translateX(-100%); }
}

/* reduced motion: the messages stand still and can be scrolled sideways instead */
@media (prefers-reduced-motion: reduce) {
	.dupuy-ticker__viewport {
		overflow-x: auto;
		mask-image: none;
	}

	.dupuy-ticker__track {
		animation: none;
	}

	.dupuy-ticker__track[aria-hidden="true"],
	.dupuy-ticker__toggle {
		display: none;
	}
}

/* Coverage buttons: large, round, yellow; a sideways-scrolling row on phones */
.dupuy-pills {
	border-bottom: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	padding: 0.85rem 16px;
}

.dupuy-pills__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	max-width: 1200px;
	margin: 0 auto;
}

.dupuy-pill {
	display: inline-flex;
	align-items: center;
	min-height: 2.9rem;
	padding: 0.65rem 1.5rem;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-size: 1.05rem;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 2px 6px rgb(16 24 40 / 15%);
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.dupuy-pill:is(:hover, :focus-visible) {
	background: #e09400;
	color: var(--wp--preset--color--contrast);
	transform: translateY(-2px);
	box-shadow: 0 8px 18px rgb(16 24 40 / 22%);
}

.dupuy-pill:active {
	transform: translateY(0);
}

.dupuy-pill[aria-current="page"] {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

@media (max-width: 700px) {
	.dupuy-pills__inner {
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		padding-bottom: 0.25rem;
	}

	.dupuy-pill {
		flex: 0 0 auto;
		scroll-snap-align: start;
		font-size: 0.98rem;
		padding: 0.6rem 1.15rem;
	}
}

/* ---------------------------------------------------------------- Get a Quote and Contact pages (owner 2026-10-31) */
.dupuy-pill {
	line-height: 1.2;
}

.dupuy-lead {
	max-width: 46rem;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
}

/* Quote page: three steps and a call box */
.dupuy-quote-intro {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 1rem;
	margin: 1.5rem 0 2rem;
}

.dupuy-quote-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: dq-step;
}

.dupuy-quote-steps li {
	position: relative;
	padding: 1rem 1rem 1rem 3.4rem;
	border-radius: 12px;
	background: var(--wp--preset--color--surface);
	counter-increment: dq-step;
}

.dupuy-quote-steps li::before {
	content: counter(dq-step);
	position: absolute;
	left: 1rem;
	top: 1rem;
	display: grid;
	place-items: center;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

.dupuy-quote-steps strong,
.dupuy-quote-steps span {
	display: block;
}

.dupuy-quote-steps span {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.dupuy-quote-call {
	display: grid;
	align-content: center;
	gap: 0.2rem;
	padding: 1rem 1.25rem;
	border-radius: 12px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.dupuy-quote-call__number {
	color: #ffd88f;
	font-size: 1.5rem;
	font-weight: 800;
	text-decoration: none;
}

.dupuy-quote-call span {
	font-size: var(--wp--preset--font-size--small);
}

/* Quote page: product cards with an icon each */
.dupuy-quote-cards {
	gap: 1rem !important;
	margin-bottom: 1rem;
}

.dupuy-quote-cards > .wp-block-column {
	padding: 1.25rem;
	border: 1px solid var(--wp--preset--color--border);
	border-top: 4px solid var(--wp--preset--color--accent);
	border-radius: 12px;
	background: var(--wp--preset--color--base);
	box-shadow: 0 1px 2px rgb(16 24 40 / 6%);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.dupuy-quote-cards > .wp-block-column:empty {
	border: 0;
	background: none;
	box-shadow: none;
}

.dupuy-quote-cards > .wp-block-column:not(:empty):hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 28px rgb(16 24 40 / 12%);
}

.dupuy-quote-cards h3 {
	margin-top: 0;
}

.dupuy-quote-cards h3[id]::before {
	content: "";
	display: block;
	width: 3rem;
	height: 3rem;
	margin-bottom: 0.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--surface) center / 55% no-repeat;
}

#auto::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 16v-3l2-5h14l2 5v3zM7 16v2M17 16v2M3 12h18'/%3E%3C/svg%3E"); }
#home::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7v9h-6v-6H9v6H3z'/%3E%3C/svg%3E"); }
#renters::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='12' r='4'/%3E%3Cpath d='M12 12h9M18 12v3M21 12v3'/%3E%3C/svg%3E"); }
#flood::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 15c3 0 3-2 6-2s3 2 6 2 3-2 6-2M2 20c3 0 3-2 6-2s3 2 6 2 3-2 6-2M12 3l3 5a3 3 0 1 1-6 0z'/%3E%3C/svg%3E"); }
#life::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-8-5-8-10.5A4.5 4.5 0 0 1 12 7a4.5 4.5 0 0 1 8 2.5C20 15 12 20 12 20z'/%3E%3C/svg%3E"); }
#health::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6v6h6v6h-6v6H9v-6H3V9h6z'/%3E%3C/svg%3E"); }
#motorcycle::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='5' cy='16' r='3'/%3E%3Ccircle cx='19' cy='16' r='3'/%3E%3Cpath d='M5 16l4-6h5l5 6M13 10l2-4h3'/%3E%3C/svg%3E"); }
#rv::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 6h14l5 5v6H2zM6 10h3M16 6v5h5'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E"); }
#boat::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v11M12 4l6 9h-6M3 15h18l-2 4H5zM2 21c3 0 3-1 5-1s3 1 5 1 3-1 5-1 3 1 5 1'/%3E%3C/svg%3E"); }
#commercial-auto::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 5h12v11H2zM14 9h4l4 4v3h-8'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3C/svg%3E"); }
#commercial-business-property::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h18v12H3zM8 8V5h8v3M3 13h18'/%3E%3C/svg%3E"); }
#commercial-property::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V4h10v17M14 9h6v12M2 21h20M7 8h3M7 12h3M7 16h3'/%3E%3C/svg%3E"); }

/* Contact page: four cards and the hours table */
.dupuy-contact-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1rem;
	margin: 1.5rem 0 2.5rem;
}

.dupuy-contact-card {
	padding: 1.25rem 1.25rem 0.5rem;
	border: 1px solid var(--wp--preset--color--border);
	border-top: 4px solid var(--wp--preset--color--accent);
	border-radius: 12px;
	background: var(--wp--preset--color--base);
	box-shadow: 0 1px 2px rgb(16 24 40 / 6%);
}

.dupuy-contact-card h2 {
	margin: 0 0 0.5rem;
	font-size: var(--wp--preset--font-size--x-large);
}

.dupuy-contact-card h2::before {
	content: "";
	display: block;
	width: 3rem;
	height: 3rem;
	margin-bottom: 0.75rem;
	border-radius: 50%;
	background: var(--wp--preset--color--surface) center / 55% no-repeat;
}

.dupuy-contact-card--call h2::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3h4l2 5-3 2a11 11 0 0 0 6 6l2-3 5 2v4a2 2 0 0 1-2 2A17 17 0 0 1 3 5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); }
.dupuy-contact-card--email h2::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5h18v14H3zM3 6l9 7 9-7'/%3E%3C/svg%3E"); }
.dupuy-contact-card--visit h2::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6-7-11a7 7 0 0 1 14 0c0 5-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.dupuy-contact-card--mail h2::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b3a66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10h16v10H4zM4 10l3-6h10l3 6M10 14h4'/%3E%3C/svg%3E"); }

.dupuy-contact-card__big {
	font-size: 1.3rem;
	font-weight: 800;
	text-decoration: none;
	word-break: break-word;
}

.dupuy-hours {
	width: 100%;
	max-width: 40rem;
	margin-bottom: 2.5rem;
	border-collapse: collapse;
}

.dupuy-hours th,
.dupuy-hours td {
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--wp--preset--color--border);
	text-align: left;
	vertical-align: top;
}

.dupuy-hours th {
	width: 35%;
	color: var(--wp--preset--color--primary);
}

@media (max-width: 900px) {
	.dupuy-quote-intro {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 600px) {
	.dupuy-quote-steps {
		grid-template-columns: minmax(0, 1fr);
	}
}
