/*
 * Helotes Discount Carpets: site design.
 * Loaded on the front end (plugin layout) and inside the block editor.
 * Fonts: Zilla Slab and Public Sans, SIL Open Font License (see assets/fonts).
 */

@font-face { font-family: "Zilla Slab"; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/zilla-slab-latin-600-normal.woff2) format("woff2"); }
@font-face { font-family: "Zilla Slab"; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/zilla-slab-latin-700-normal.woff2) format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(../fonts/public-sans-latin-wght-normal.woff2) format("woff2"); }
@font-face { font-family: "Public Sans"; font-style: italic; font-weight: 100 900; font-display: swap; src: url(../fonts/public-sans-latin-wght-italic.woff2) format("woff2"); }

/*
 * Colors, taken from the business card: blue #44309C and red #E31E30.
 * --hdc-main (blue) and --hdc-accent (red) come from Helotes Site > Settings > Main color and Button
 * color, which are printed after this file along with --hdc-on-accent (white or dark text, whichever
 * reads better on the button color) and --hdc-name (the color of the business name in the header).
 */
:root {
	--hdc-main: #44309C;
	--hdc-main-deep: #2A1E61;
	--hdc-accent: #E31E30;
	--hdc-accent-hover: #BF1928;
	--hdc-on-accent: #fff;
	--hdc-name: var(--hdc-accent);
	--hdc-tint: #F3F3F9;
	--hdc-ink: #1B1A2E;
	--hdc-muted: #4F5068;
	--hdc-line: #DCDBE8;
	--hdc-light: #C3BCEB;
	--hdc-on-dark: #E2DFF5;
	--hdc-error: #B42318;
	--hdc-ok: #237A57;
	--hdc-font-head: "Zilla Slab", Rockwell, "Roboto Slab", Georgia, serif;
	--hdc-font-body: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--hdc-wrap: 1200px;
	--hdc-gutter: clamp(16px, 4vw, 32px);
	--hdc-sec-pad: clamp(56px, 7.5vw, 96px);
	--hdc-logo-h: 52px;
}
@supports (color: color-mix(in srgb, red, blue)) {
	:root { --hdc-main-deep: color-mix(in srgb, var(--hdc-main) 62%, #000); --hdc-accent-hover: color-mix(in srgb, var(--hdc-accent) 84%, #000); }
	.hdc-q__input:focus { outline-color: color-mix(in srgb, var(--hdc-main) 30%, transparent); }
}

/* ------------------------------------------------------------ base */

body.hdc-site {
	margin: 0;
	background: #fff;
	color: var(--hdc-ink);
	font: 400 17px/1.6 var(--hdc-font-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
.hdc-site *, .hdc-site *::before, .hdc-site *::after,
.editor-styles-wrapper [class*="hdc-"], .editor-styles-wrapper [class*="hdc-"] *, .editor-styles-wrapper [class*="hdc-"]::before, .editor-styles-wrapper [class*="hdc-"]::after { box-sizing: border-box; }
.hdc-site img { max-width: 100%; height: auto; }
.hdc-site ::selection { background: var(--hdc-light); color: var(--hdc-ink); }

.editor-styles-wrapper {
	color: var(--hdc-ink);
	font: 400 17px/1.6 var(--hdc-font-body);
}

.hdc-content h1, .hdc-content h2, .hdc-content h3, .hdc-content h4,
.editor-styles-wrapper h1, .editor-styles-wrapper h2, .editor-styles-wrapper h3, .editor-styles-wrapper h4 {
	font-family: var(--hdc-font-head);
	color: var(--hdc-ink);
	text-wrap: balance;
	margin: 0 0 .5em;
}
.hdc-content h1, .editor-styles-wrapper h1 { font-weight: 700; font-size: clamp(36px, 5vw, 56px); line-height: 1.06; letter-spacing: -.015em; }
.hdc-content h2, .editor-styles-wrapper h2 { font-weight: 700; font-size: clamp(28px, 3.2vw, 40px); line-height: 1.14; letter-spacing: -.01em; }
.hdc-content h3, .editor-styles-wrapper h3 { font-weight: 600; font-size: 22px; line-height: 1.3; }
.hdc-content h4, .editor-styles-wrapper h4 { font-weight: 600; font-size: 19px; line-height: 1.35; }
.hdc-content p, .editor-styles-wrapper p { margin: 0 0 1em; }
.hdc-content :where(a), .editor-styles-wrapper :where(a) { color: var(--hdc-main); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.hdc-content :where(a):hover, .editor-styles-wrapper :where(a):hover { color: var(--hdc-ink); text-decoration-color: var(--hdc-accent); }
.hdc-content ul, .hdc-content ol { margin: 0 0 1em; padding-left: 1.25em; }
.hdc-content li { margin: 0 0 .35em; }
.hdc-content strong { font-weight: 700; }
.hdc-content a[href^="tel:"], .hdc-footer a[href^="tel:"] { white-space: nowrap; }

.hdc-site :focus-visible { outline: 3px solid var(--hdc-main-deep); outline-offset: 2px; border-radius: 4px; }
.hdc-hero :focus-visible, .hdc-pagehead :focus-visible, .hdc-footer :focus-visible, .hdc-mbar :focus-visible, .hdc-cta :focus-visible { outline-color: #fff; }

.hdc-sr, .hdc-skip:not(:focus) {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.hdc-skip:focus {
	position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 12px 18px;
	background: var(--hdc-accent); color: var(--hdc-on-accent); font-weight: 700; border-radius: 8px; text-decoration: none;
}
#hdc-main:focus { outline: none; }

/* ------------------------------------------------------------ layout */

.hdc-wrap, .editor-styles-wrapper .hdc-wrap {
	width: 100%;
	max-width: calc(var(--hdc-wrap) + 2 * var(--hdc-gutter));
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--hdc-gutter);
	padding-right: var(--hdc-gutter);
}
.hdc-content > *, .hdc-content .hdc-sec, .hdc-content .hdc-hero, .hdc-content .hdc-cta { margin-top: 0; margin-bottom: 0; }
.editor-styles-wrapper .is-root-container > .hdc-sec,
.editor-styles-wrapper .is-root-container > .hdc-hero,
.editor-styles-wrapper .is-root-container > .hdc-cta { max-width: none; margin-top: 0; margin-bottom: 0; }

.hdc-sec { padding-block: var(--hdc-sec-pad); background: #fff; }
.hdc-sec--stone { background: var(--hdc-tint); }
.hdc-sec .wp-block-group, .hdc-hero .wp-block-group, .hdc-cta .wp-block-group { margin-top: 0; margin-bottom: 0; }

.hdc-head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px) !important; }
.hdc-head > :last-child { margin-bottom: 0; }
.hdc-head:last-child { margin-bottom: 0 !important; }
.hdc-head > p { color: var(--hdc-muted); font-size: 18.5px; max-width: 62ch; }

.hdc-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.hdc-split__main > :last-child, .hdc-split__aside > :last-child { margin-bottom: 0; }
.hdc-split__main > p { max-width: 64ch; }
.hdc-split--areas { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.hdc-split--form { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.hdc-split--visit { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: stretch; }
.hdc-narrow { max-width: 760px; }
.hdc-narrow > :last-child { margin-bottom: 0; }

.hdc-grid { --cols: 3; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 32px); }
.hdc-grid--2 { --cols: 2; }
.hdc-grid--3 { --cols: 3; }
.hdc-grid--4 { --cols: 4; }

/* ------------------------------------------------------------ buttons */

.hdc-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }
.hdc-sec .hdc-actions:first-child { margin-top: 0; }
.hdc-btn, .hdc-content .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	min-height: 52px; padding: 12px 22px;
	border: 2px solid transparent; border-radius: 10px;
	font: 700 16.5px/1.2 var(--hdc-font-body); letter-spacing: .005em;
	text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.hdc-btn--accent, .hdc-content .wp-block-button__link { background: var(--hdc-accent); color: var(--hdc-on-accent); }
.hdc-btn--accent:hover, .hdc-content .wp-block-button__link:hover { background: var(--hdc-accent-hover); color: var(--hdc-on-accent); }
.hdc-btn--outline { border-color: var(--hdc-main); color: var(--hdc-main); background: transparent; }
.hdc-btn--outline:hover { background: var(--hdc-main); color: #fff; }
.hdc-btn--outline-light { border-color: rgba(255, 255, 255, .55); color: #fff; background: transparent; }
.hdc-btn--outline-light:hover { background: #fff; color: var(--hdc-main-deep); border-color: #fff; }
.hdc-btn--dark { background: var(--hdc-main-deep); color: #fff; }
.hdc-btn--dark:hover { background: var(--hdc-ink); color: #fff; }
/* Second button on the button-color band (call to action). */
.hdc-btn--outline-dark { border-color: var(--hdc-on-accent); color: var(--hdc-on-accent); background: transparent; }
.hdc-btn--outline-dark:hover { background: var(--hdc-on-accent); color: var(--hdc-accent); border-color: var(--hdc-on-accent); }
.hdc-content .is-style-outline .wp-block-button__link { background: transparent; border-color: var(--hdc-main); color: var(--hdc-main); }
.hdc-content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 20px; }
.hdc-ico { width: 1.15em; height: 1.15em; flex: none; }

.hdc-more { margin-top: auto !important; margin-bottom: 0 !important; padding-top: 6px; }
.hdc-more a, .hdc-link, .hdc-linklist a {
	font-weight: 700; color: var(--hdc-main);
	text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px;
	text-decoration-color: var(--hdc-accent);
}
.hdc-more a:hover, .hdc-link:hover, .hdc-linklist a:hover { color: var(--hdc-ink); text-decoration-color: var(--hdc-main); }

/* ------------------------------------------------------------ header */

.hdc-header { position: relative; z-index: 50; background: #fff; border-bottom: 1px solid var(--hdc-line); }
.hdc-header__bar { display: flex; align-items: center; gap: 18px; min-height: 86px; }
.hdc-brand { display: inline-flex; align-items: center; gap: .45em; flex: none; color: var(--hdc-main); font-size: 30px; text-decoration: none; }
/* The logo mark and the business name grow and shrink together with the font size of .hdc-brand. */
.hdc-mark { width: 2.1em; height: 2.1em; flex: none; }
/* The business name: every word in the same font, size, and color. */
.hdc-wordmark { display: flex; flex-direction: column; font: 700 1em/1.04 var(--hdc-font-head); letter-spacing: -.005em; color: var(--hdc-name); }
.hdc-wordmark__top, .hdc-wordmark__bottom { white-space: nowrap; }
.hdc-mark { --hdc-mark-1: var(--hdc-light); --hdc-mark-2: var(--hdc-accent); --hdc-mark-3: #fff; --hdc-mark-stroke: var(--hdc-main); --hdc-mark-pin: var(--hdc-main); }
.hdc-logo { display: block; width: auto; height: var(--hdc-logo-h); }

.hdc-nav { margin-left: auto; }
.hdc-menu { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.hdc-menu li { position: relative; margin: 0; }
.hdc-menu a { display: block; padding: 10px; border-radius: 8px; color: var(--hdc-ink); font-weight: 600; font-size: 16px; text-decoration: none; }
.hdc-menu > li > a { white-space: nowrap; }
.hdc-menu a:hover { background: var(--hdc-tint); color: var(--hdc-main); }
.hdc-menu > .current-menu-item > a, .hdc-menu > .current-menu-ancestor > a, .hdc-menu > .current-menu-parent > a { box-shadow: inset 0 -3px 0 var(--hdc-accent); border-radius: 8px 8px 0 0; }
.hdc-menu .menu-item-has-children { display: flex; align-items: center; }
.hdc-menu .menu-item-has-children > a { padding-right: 4px; }
.hdc-subtoggle { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 36px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: var(--hdc-muted); cursor: pointer; }
.hdc-subtoggle:hover { background: var(--hdc-tint); color: var(--hdc-main); }
.hdc-subtoggle .hdc-ico { transition: transform .15s ease; }
.hdc-subtoggle[aria-expanded="true"] .hdc-ico { transform: rotate(180deg); }
.hdc-menu .sub-menu {
	position: absolute; top: calc(100% + 6px); left: 0; min-width: 270px; z-index: 60;
	display: none; margin: 0; padding: 8px; list-style: none;
	background: #fff; border: 1px solid var(--hdc-line); border-radius: 12px;
	box-shadow: 0 22px 40px -24px rgba(34, 24, 80, .45);
}
.hdc-menu .sub-menu a { padding: 9px 12px; font-weight: 500; }
.hdc-menu .sub-menu .current-menu-item > a { color: var(--hdc-main); font-weight: 700; }
.hdc-menu li.is-open > .sub-menu { display: block; }
@media (hover: hover) and (min-width: 1081px) {
	.hdc-menu li:hover > .sub-menu { display: block; }
	.hdc-menu .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
}
.hdc-nav__extra { display: none; }

.hdc-header__contact { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.hdc-header__phone { display: inline-flex; align-items: center; gap: 8px; color: var(--hdc-main); font: 700 23px/1.1 var(--hdc-font-head); font-variant-numeric: lining-nums; text-decoration: none; white-space: nowrap; }
.hdc-header__phone:hover { color: var(--hdc-ink); }
.hdc-header__status { min-height: 1.35em; font-size: 14px; line-height: 1.35; color: var(--hdc-muted); white-space: nowrap; }
.hdc-header__status:empty::before { display: none; }
.hdc-header__cta { flex: none; }
.hdc-header__call, .hdc-menu-toggle { display: none; }

/* Computers: two rows. The logo, phone, and quote button on top, and the menu on its own row below. */
@media (min-width: 1081px) {
	.hdc-header__bar { flex-wrap: wrap; column-gap: 24px; row-gap: 0; min-height: 0; padding-top: 16px; }
	.hdc-brand { order: 1; }
	.hdc-header__contact { order: 2; margin-left: auto; }
	.hdc-header__cta { order: 3; }
	.hdc-nav { order: 4; flex: 1 0 100%; margin: 16px 0 0; border-top: 1px solid var(--hdc-line); }
	.hdc-menu { margin-left: -10px; }
	.hdc-menu > li > a { padding-block: 14px; }
	/* Set by site.js when a long menu runs out of room: the spacing tightens first, then the menu wraps. */
	.hdc-header.is-tight .hdc-menu { margin-left: -7px; }
	.hdc-header.is-tight .hdc-menu > li > a { padding-left: 7px; }
	.hdc-header.is-tight .hdc-menu > li:not(.menu-item-has-children) > a { padding-right: 7px; }
	.hdc-header.is-wrap .hdc-menu { flex-wrap: wrap; }
}
@media (max-width: 1080px) {
	.hdc-header__bar { min-height: 72px; gap: 10px; }
	.hdc-header .hdc-brand { font-size: clamp(22px, 2.4vw + 10px, 26px); }
	.hdc-header__contact, .hdc-header__cta { display: none; }
	.hdc-header__call {
		display: inline-flex; align-items: center; gap: 6px; margin-left: auto;
		min-height: 44px; padding: 8px 14px; border-radius: 10px;
		background: var(--hdc-accent); color: var(--hdc-on-accent); font-weight: 700; text-decoration: none;
	}
	.hdc-menu-toggle {
		display: inline-flex; align-items: center; gap: 6px;
		min-height: 44px; padding: 8px 12px; border: 1.5px solid var(--hdc-line); border-radius: 10px;
		background: #fff; color: var(--hdc-ink); font: 700 15px/1 var(--hdc-font-body); cursor: pointer;
	}
	.hdc-menu-toggle__close { display: none; }
	.hdc-header.is-open .hdc-menu-toggle__open { display: none; }
	.hdc-header.is-open .hdc-menu-toggle__close { display: inline-flex; }
	.hdc-nav {
		position: absolute; top: 100%; left: 0; right: 0; display: none;
		max-height: calc(100vh - 72px); overflow-y: auto; overscroll-behavior: contain;
		padding: 10px var(--hdc-gutter) 28px; margin: 0;
		background: #fff; border-bottom: 1px solid var(--hdc-line);
		box-shadow: 0 24px 40px -28px rgba(34, 24, 80, .5);
	}
	.hdc-header.is-open .hdc-nav { display: block; }
	.hdc-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.hdc-menu > li { border-bottom: 1px solid var(--hdc-tint); }
	.hdc-menu a { padding: 14px 6px; font-size: 18px; border-radius: 0; }
	.hdc-menu > .current-menu-item > a, .hdc-menu > .current-menu-ancestor > a, .hdc-menu > .current-menu-parent > a { box-shadow: inset 4px 0 0 var(--hdc-accent); padding-left: 14px; border-radius: 0; }
	.hdc-menu .menu-item-has-children { flex-wrap: wrap; }
	.hdc-menu .menu-item-has-children > a { flex: 1; }
	.hdc-subtoggle { width: 48px; height: 48px; }
	.hdc-menu .sub-menu { position: static; flex-basis: 100%; min-width: 0; padding: 0 0 10px 10px; border: 0; border-radius: 0; box-shadow: none; }
	.hdc-menu .sub-menu a { padding: 10px 6px; font-size: 16.5px; }
	.hdc-nav__extra { display: grid; gap: 10px; margin-top: 20px; }
	.hdc-nav__extra .hdc-btn { width: 100%; }
	.hdc-nav__status { margin: 4px 0 0; color: var(--hdc-muted); font-size: 15px; text-align: center; }
}
@media (max-width: 480px) {
	.hdc-header .hdc-brand { font-size: clamp(17px, 5.2vw, 24px); gap: .4em; }
	.hdc-header__call span { display: none; }
	.hdc-menu-toggle__label { display: none; }
}

/* ------------------------------------------------------------ status, crumbs */

.hdc-status { display: inline-flex; align-items: center; gap: 8px; }
.hdc-status::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; opacity: .55; flex: none; }
.hdc-status.is-open::before { background: #2FA36B; opacity: 1; box-shadow: 0 0 0 3px rgba(47, 163, 107, .2); }
.hdc-status.is-closed::before { background: #C2410C; opacity: 1; }
.hdc-live { margin: 0 0 14px; font-weight: 600; }

.hdc-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 0; list-style: none; font-size: 15px; }
.hdc-crumbs li { margin: 0; }
.hdc-crumbs li + li::before { content: "/"; margin-right: 8px; opacity: .55; }
.hdc-crumbs a { color: inherit; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.hdc-crumbs a:hover { text-decoration-color: #fff; }
.hdc-crumbs [aria-current] { opacity: .85; }

/* ------------------------------------------------------------ dark bands: hero, page head, cta */

.hdc-hero, .hdc-pagehead {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--hdc-main); color: #fff;
	border-bottom: 6px solid var(--hdc-accent);
}
.hdc-hero::before, .hdc-pagehead::before, .hdc-cta::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: url(../img/pile.svg) 0 0 / 180px 180px; opacity: .085;
}
.hdc-hero--home { background: var(--hdc-main); }
.hdc-hero .hdc-crumbs, .hdc-pagehead .hdc-crumbs { color: var(--hdc-light); margin-bottom: 14px; }
.hdc-hero__in { padding-block: clamp(40px, 6vw, 76px) clamp(44px, 6.5vw, 84px); }
.hdc-hero__in > :last-child, .hdc-hero__copy > :last-child { margin-bottom: 0; }
.hdc-hero__in--split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hdc-hero h1.hdc-hero__title, .hdc-pagehead h1 { color: #fff; max-width: 19ch; margin: 0; }
.hdc-hero--home h1.hdc-hero__title { font-size: clamp(38px, 5.6vw, 62px); max-width: 15ch; }
.hdc-hero .hdc-lead, .hdc-pagehead .hdc-lead { margin: 18px 0 0; max-width: 60ch; color: var(--hdc-on-dark); font-size: clamp(18px, 1.55vw, 20.5px); line-height: 1.55; }
.hdc-hero .hdc-lead a { color: #fff; text-decoration-color: var(--hdc-light); }
.hdc-hero .hdc-svcchips { margin-top: 28px; }
.hdc-hero__media { display: flex; justify-content: center; }

.hdc-hero__facts { padding-bottom: 6px; }
.hdc-facts { --n: 3; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); margin: 0 !important; padding: 0 !important; list-style: none; border-top: 1px solid rgba(255, 255, 255, .16); }
.hdc-facts--4 { --n: 4; }
.hdc-facts li { margin: 0; padding: 20px 22px 24px; color: var(--hdc-on-dark); font-size: 15.5px; line-height: 1.45; border-left: 1px solid rgba(255, 255, 255, .16); }
.hdc-facts li:first-child { padding-left: 0; border-left: 0; }
.hdc-facts strong { display: block; margin-bottom: 3px; color: #fff; font: 600 21px/1.2 var(--hdc-font-head); }

.hdc-pagehead .hdc-wrap { padding-block: clamp(36px, 5vw, 64px); }
.hdc-pagehead__meta { margin: 12px 0 0; color: var(--hdc-light); }
.hdc-pagehead .hdc-actions { margin-top: 28px; }

.hdc-cta { position: relative; isolation: isolate; overflow: hidden; background: var(--hdc-accent); color: var(--hdc-on-accent); }
.hdc-cta::before { opacity: .12; }
.hdc-cta__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; padding-block: clamp(44px, 6vw, 72px); }
.hdc-cta__copy { flex: 1 1 520px; }
.hdc-cta h2 { margin: 0; color: var(--hdc-on-accent); font-size: clamp(28px, 3.4vw, 42px); }
.hdc-cta p { margin: 10px 0 0; max-width: 58ch; color: var(--hdc-on-accent); font-size: 18.5px; }
.hdc-cta .hdc-actions { margin: 0; }

/* ------------------------------------------------------------ swatches and textures */

.hdc-swatch { position: relative; display: block; min-height: 64px; border-radius: 8px; background: var(--hdc-tx, #C9C2B6); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08); }
.hdc-swatch__label { position: absolute; left: 10px; bottom: 10px; padding: 5px 8px; border-radius: 5px; background: #fff; color: var(--hdc-ink); font: 600 13px/1.1 var(--hdc-font-body); box-shadow: 0 2px 6px rgba(0, 0, 0, .18); }
.hdc-dot { display: inline-block; width: 18px; height: 18px; flex: none; border-radius: 5px; background: var(--hdc-tx, #C9C2B6); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .14); }

.hdc-tx-carpet { --hdc-tx: #B7A58C url(../img/tx/carpet.svg) 0 0 / 120px 120px; }
.hdc-tx-carpet-gray { --hdc-tx: #9A9894 url(../img/tx/carpet-gray.svg) 0 0 / 120px 120px; }
.hdc-tx-carpet-taupe { --hdc-tx: #8B7E6F url(../img/tx/carpet-taupe.svg) 0 0 / 120px 120px; }
.hdc-tx-carpet-ripple { --hdc-tx: #B7A58C url(../img/tx/carpet-ripple.svg) 0 0 / 160px 160px; }
.hdc-tx-hardwood { --hdc-tx: #A06E44 url(../img/tx/hardwood.svg) 0 0 / 160px 240px; }
.hdc-tx-hardwood-light { --hdc-tx: #D3B286 url(../img/tx/hardwood-light.svg) 0 0 / 160px 240px; }
.hdc-tx-hardwood-dark { --hdc-tx: #5B3B26 url(../img/tx/hardwood-dark.svg) 0 0 / 160px 240px; }
.hdc-tx-luxury-vinyl { --hdc-tx: #B39476 url(../img/tx/luxury-vinyl.svg) 0 0 / 160px 240px; }
.hdc-tx-vinyl-gray { --hdc-tx: #A8A39A url(../img/tx/vinyl-gray.svg) 0 0 / 160px 240px; }
.hdc-tx-vinyl-stone { --hdc-tx: #C9C4B9 url(../img/tx/vinyl-stone.svg) 0 0 / 240px 120px; }
.hdc-tx-laminate { --hdc-tx: #C49A6C url(../img/tx/laminate.svg) 0 0 / 160px 240px; }
.hdc-tx-laminate-honey { --hdc-tx: #D6A458 url(../img/tx/laminate-honey.svg) 0 0 / 160px 240px; }
.hdc-tx-laminate-gray { --hdc-tx: #9E9890 url(../img/tx/laminate-gray.svg) 0 0 / 160px 240px; }
.hdc-tx-tile { --hdc-tx: #D9D5CB url(../img/tx/tile.svg) 0 0 / 120px 120px; }
.hdc-tx-tile-ceramic { --hdc-tx: #EEE7DB url(../img/tx/tile-ceramic.svg) 0 0 / 120px 120px; }
.hdc-tx-tile-woodlook { --hdc-tx: #B48F69 url(../img/tx/tile-woodlook.svg) 0 0 / 160px 240px; }
.hdc-tx-tile-backsplash { --hdc-tx: #F3F4F1 url(../img/tx/tile-backsplash.svg) 0 0 / 128px 64px; }
.hdc-tx-tile-wall { --hdc-tx: #DCE6E3 url(../img/tx/tile-wall.svg) 0 0 / 96px 96px; }
.hdc-tx-tile-repair { --hdc-tx: #D9D5CB url(../img/tx/tile-repair.svg) 0 0 / 120px 120px; }
.hdc-tx-commercial { --hdc-tx: #58616B url(../img/tx/commercial.svg) 0 0 / 120px 120px; }
.hdc-tx-repair { --hdc-tx: #A06E44 url(../img/tx/repair.svg) 0 0 / 160px 240px; }
.hdc-tx-stairs { --hdc-tx: #A06E44 url(../img/tx/stairs.svg) 0 0 / 160px 80px; }
.hdc-tx-stairs-carpet { --hdc-tx: #9A9894 url(../img/tx/stairs-carpet.svg) 0 0 / 160px 80px; }
.hdc-tx-baseboard { --hdc-tx: #E7E3DA url(../img/tx/baseboard.svg) 50% 100% / cover no-repeat; }

/* Service hero: fanned trio of samples */
.hdc-samples { position: relative; display: flex; justify-content: center; align-items: flex-end; min-height: 300px; padding: 0 20px 6px; }
.hdc-samples .hdc-swatch { width: 152px; height: 262px; margin: 0 -16px; border-radius: 12px; transform-origin: 50% 100%; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 22px 34px -18px rgba(0, 0, 0, .75); }
.hdc-samples .hdc-swatch:nth-child(1) { transform: rotate(-9deg); }
.hdc-samples .hdc-swatch:nth-child(2) { z-index: 2; transform: translateY(-16px); }
.hdc-samples .hdc-swatch:nth-child(3) { z-index: 3; transform: rotate(9deg); }
.hdc-samples--5 .hdc-swatch { width: 116px; height: 236px; margin: 0 -18px; }
.hdc-samples--5 .hdc-swatch:nth-child(1) { transform: rotate(-16deg); }
.hdc-samples--5 .hdc-swatch:nth-child(2) { z-index: 2; transform: rotate(-8deg) translateY(-8px); }
.hdc-samples--5 .hdc-swatch:nth-child(3) { z-index: 3; transform: translateY(-14px); }
.hdc-samples--5 .hdc-swatch:nth-child(4) { z-index: 4; transform: rotate(8deg) translateY(-8px); }
.hdc-samples--5 .hdc-swatch:nth-child(5) { z-index: 5; transform: rotate(16deg); }
.hdc-samples .hdc-swatch__label { left: 50%; bottom: auto; top: 12px; transform: translateX(-50%); white-space: nowrap; }

/* Home hero: the sample fan */
.hdc-fan { position: relative; width: min(100%, 560px); height: 400px; margin-inline: auto; }
.hdc-fan__deck { position: absolute; inset: 0; margin: 0 !important; padding: 0 !important; list-style: none; }
.hdc-fan .hdc-fan__item { --rot: calc(var(--i) * 14deg); position: absolute; left: 50%; bottom: 34px; width: 152px; height: 304px; margin: 0 0 0 -76px; transform-origin: 50% 90%; transform: rotate(var(--rot)); }
.hdc-fan__card {
	position: relative; display: block; width: 100%; height: 100%; border-radius: 12px;
	background: var(--hdc-tx, #C9C2B6); text-decoration: none;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 24px 36px -20px rgba(0, 0, 0, .8);
	transition: transform .2s ease;
}
.hdc-fan__card::after { content: ""; position: absolute; left: 50%; bottom: 23px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: rgba(0, 0, 0, .35); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .5); }
.hdc-fan__label { position: absolute; top: 12px; left: 10px; padding: 9px 6px; border-radius: 5px; background: #fff; color: var(--hdc-ink); font: 700 14px/1 var(--hdc-font-body); writing-mode: vertical-rl; white-space: nowrap; box-shadow: 0 2px 6px rgba(0, 0, 0, .2); }
.hdc-fan__card:hover, .hdc-fan__card:focus-visible { transform: translateY(-14px); }
.hdc-fan__card:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.hdc-fan__card:hover .hdc-fan__label, .hdc-fan__card:focus-visible .hdc-fan__label { background: var(--hdc-accent); color: var(--hdc-on-accent); }
.hdc-fan__rivet { position: absolute; left: 50%; bottom: 58px; z-index: 10; width: 22px; height: 22px; margin-left: -11px; border-radius: 50%; background: var(--hdc-accent); box-shadow: 0 0 0 4px var(--hdc-main-deep), 0 0 0 6px rgba(255, 255, 255, .22); pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
	.hdc-fan .hdc-fan__item { animation: hdc-fan-open .95s cubic-bezier(.2, .75, .25, 1) both; animation-delay: calc(var(--d, 0) * 70ms + 120ms); }
	@keyframes hdc-fan-open { from { transform: rotate(0deg); } }
}

/* ------------------------------------------------------------ spec card */

.hdc-spec { overflow: hidden; background: #fff; border: 1px solid var(--hdc-line); border-radius: 14px; }
.hdc-spec__strip { display: flex; height: 78px; }
.hdc-spec__strip .hdc-swatch, .hdc-spec__strip > * { flex: 1 1 0; min-height: 0; margin: 0 !important; border-radius: 0; box-shadow: inset -1px 0 0 rgba(0, 0, 0, .12); }
.hdc-spec .hdc-spec__title { margin: 22px 24px 2px; font-size: 22px; }
.hdc-spec__list { margin: 10px 24px 18px !important; padding: 0 !important; list-style: none; }
.hdc-spec__list li { display: grid; grid-template-columns: minmax(7.5em, 34%) 1fr; gap: 14px; margin: 0; padding: 12px 0; border-top: 1px solid var(--hdc-line); line-height: 1.45; }
.hdc-spec__list li:first-child { border-top: 0; }
.hdc-spec__list strong { color: var(--hdc-main); font-size: 15px; font-weight: 700; }

/* ------------------------------------------------------------ cards */

.hdc-card { display: flex; flex-direction: column; min-width: 0; }
.hdc-card > * { margin-top: 0; }
.hdc-card h3 { margin-bottom: 8px; }
.hdc-card > p { color: var(--hdc-muted); }
.hdc-card > p:last-child { margin-bottom: 0; }

.hdc-cards--plain .hdc-card, .hdc-cards--cities .hdc-card { padding-top: 18px; border-top: 2px solid var(--hdc-ink); }
.hdc-cards--cities .hdc-card h3 { font-size: 21px; }
.hdc-cards--rules .hdc-card { padding: 2px 0 2px 20px; border-left: 3px solid var(--hdc-accent); }

.hdc-cards--options .hdc-card, .hdc-cards--popular .hdc-card, .hdc-cards--samples .hdc-card, .hdc-cards--contact .hdc-card {
	background: #fff; border: 1px solid var(--hdc-line); border-radius: 14px;
}
.hdc-cards--options .hdc-card { padding: 26px; }
.hdc-cards--options .hdc-card.has-tx::before { content: ""; display: block; width: 58px; height: 58px; margin-bottom: 18px; border-radius: 10px; background: var(--hdc-tx); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .1); }
.hdc-best { margin-top: auto !important; padding-top: 14px; border-top: 1px dashed var(--hdc-line); color: var(--hdc-ink) !important; font-size: 15.5px; }
.hdc-best strong { color: var(--hdc-main); }

.hdc-cards--popular .hdc-card, .hdc-cards--samples .hdc-card { overflow: hidden; padding: 0 24px 24px; }
.hdc-cards--popular .hdc-card.has-tx::before, .hdc-cards--samples .hdc-card.has-tx::before { content: ""; display: block; height: 96px; margin: 0 -24px 22px; background: var(--hdc-tx); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .1); }
.hdc-cards--samples.hdc-grid--4 .hdc-card.has-tx::before { height: 84px; }
.hdc-cards--contact .hdc-card { padding: 28px; }
.hdc-cards--contact .hdc-card h2 { font-size: 24px; margin-bottom: 14px; }
.hdc-cards--contact .hdc-actions { margin-top: 8px; }

/* ------------------------------------------------------------ steps */

.hdc-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; counter-reset: hdc-step; }
.hdc-step { position: relative; padding-top: 66px; counter-increment: hdc-step; }
.hdc-step::before { content: counter(hdc-step); position: absolute; top: 0; left: 0; width: 48px; height: 48px; border-radius: 50%; background: var(--hdc-accent); color: var(--hdc-on-accent); font: 700 23px/48px var(--hdc-font-head); text-align: center; }
.hdc-step::after { content: ""; position: absolute; top: 23px; left: 62px; right: -16px; height: 2px; background: repeating-linear-gradient(90deg, var(--hdc-main) 0 7px, transparent 7px 14px); opacity: .35; }
.hdc-step:last-child::after { display: none; }
.hdc-step h3 { margin-bottom: 8px; }
.hdc-step p { margin: 0; color: var(--hdc-muted); }

/* ------------------------------------------------------------ faq */

.hdc-faqwrap { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.hdc-faqwrap > .hdc-head { position: sticky; top: 24px; margin-bottom: 0 !important; }
.hdc-faq { border-top: 1px solid var(--hdc-line); }
.hdc-faq__item { margin: 0 !important; border-bottom: 1px solid var(--hdc-line); }
.hdc-faq__item > summary { position: relative; display: block; padding: 20px 52px 20px 0; list-style: none; cursor: pointer; font: 600 20px/1.35 var(--hdc-font-head); color: var(--hdc-ink); }
.hdc-faq__item > summary::-webkit-details-marker { display: none; }
.hdc-faq__item > summary::before, .hdc-faq__item > summary::after { content: ""; position: absolute; top: 50%; right: 12px; width: 16px; height: 2.5px; margin-top: -1px; border-radius: 2px; background: var(--hdc-main); transition: transform .2s ease; }
.hdc-faq__item > summary::after { transform: rotate(90deg); }
.hdc-faq__item[open] > summary::after { transform: rotate(0deg); }
.hdc-faq__item > summary:hover { color: var(--hdc-main); }
.hdc-faq__item[open] > summary { color: var(--hdc-main); }
.hdc-faq__item > :not(summary) { max-width: 68ch; margin: 0 0 20px; color: var(--hdc-muted); }
.hdc-faq__item > :not(summary) a { font-weight: 600; }

/* ------------------------------------------------------------ compare table */

.hdc-tablewrap { overflow-x: auto; background: #fff; border: 1px solid var(--hdc-line); border-radius: 14px; -webkit-overflow-scrolling: touch; }
.hdc-content .hdc-compare { margin: 0; }
.hdc-content .hdc-compare table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: 16px; }
.hdc-content .hdc-compare th, .hdc-content .hdc-compare td { padding: 15px 18px; border: 0; border-top: 1px solid var(--hdc-line); text-align: left; vertical-align: top; }
.hdc-content .hdc-compare thead th { border-top: 0; background: var(--hdc-main); color: #fff; font-weight: 700; font-size: 15px; }
.hdc-content .hdc-compare tbody th { font-weight: 700; color: var(--hdc-ink); }
.hdc-content .hdc-compare tbody th::before { content: ""; display: inline-block; width: 14px; height: 14px; margin-right: 10px; border-radius: 4px; vertical-align: -2px; background: var(--hdc-tx, #ccc); }
.hdc-compare tbody tr:nth-child(1) { --hdc-tx: #A06E44 url(../img/tx/hardwood.svg) 0 0 / 160px 240px; }
.hdc-compare tbody tr:nth-child(2) { --hdc-tx: #B39476 url(../img/tx/luxury-vinyl.svg) 0 0 / 160px 240px; }
.hdc-compare tbody tr:nth-child(3) { --hdc-tx: #C49A6C url(../img/tx/laminate.svg) 0 0 / 160px 240px; }
.hdc-compare tbody tr:nth-child(4) { --hdc-tx: #D9D5CB url(../img/tx/tile.svg) 0 0 / 120px 120px; }
.hdc-compare tbody tr:nth-child(5) { --hdc-tx: #B7A58C url(../img/tx/carpet.svg) 0 0 / 120px 120px; }
.hdc-content .hdc-compare tbody tr:nth-child(even) > * { background: #FAFBF8; }
.hdc-tablewrap + .hdc-note, .hdc-tablesec .hdc-note { margin-top: 18px; }
.hdc-note { color: var(--hdc-muted); font-size: 16px; }

/* ------------------------------------------------------------ services page */

.hdc-svc { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.hdc-sec--stone .hdc-svc { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.hdc-sec--stone .hdc-svc__media { order: 2; }
.hdc-svc__media .hdc-swatch { aspect-ratio: 5 / 4; border-radius: 14px; }
.hdc-svc__media .hdc-swatch__label { left: 16px; bottom: 16px; padding: 7px 11px; font-size: 15px; }
.hdc-fit { margin: 18px 0 0 !important; padding: 14px 18px; border-left: 3px solid var(--hdc-accent); background: #fff; border-radius: 0 10px 10px 0; color: var(--hdc-ink); font-size: 16px; }
.hdc-sec:not(.hdc-sec--stone) .hdc-fit { background: var(--hdc-tint); }
.hdc-svc__body > :last-child { margin-bottom: 0; }
.hdc-svc__body h3 { margin-top: 26px; font-size: 20px; }

.hdc-ticks { margin: 0 0 20px !important; padding: 0 !important; list-style: none; }
.hdc-ticks li { position: relative; margin: 0 0 9px; padding-left: 30px; }
.hdc-ticks li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%;
	background: var(--hdc-main) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6 11-11-1.4-1.4z'/%3E%3C/svg%3E") center / 14px no-repeat;
}
.hdc-linklist { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 20px 0 0 !important; padding: 0 !important; list-style: none; }
.hdc-linklist li { margin: 0; }

/* ------------------------------------------------------------ service chips, areas */

.hdc-svcchips ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.hdc-svcchips li { margin: 0; }
.hdc-svcchips a { display: inline-flex; align-items: center; gap: 10px; padding: 9px 15px 9px 9px; border: 1px solid var(--hdc-line); border-radius: 10px; background: #fff; color: var(--hdc-ink); font-weight: 600; font-size: 15.5px; text-decoration: none; }
.hdc-svcchips a:hover { border-color: var(--hdc-main); color: var(--hdc-main); }
.hdc-hero .hdc-svcchips a { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .22); color: #fff; }
.hdc-hero .hdc-svcchips a:hover { background: #fff; color: var(--hdc-main-deep); }

.hdc-areas__h { margin: 0 0 10px !important; color: var(--hdc-muted); font-weight: 700; font-size: 15px; }
.hdc-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px !important; padding: 0 !important; list-style: none; }
.hdc-chips li { margin: 0; padding: 8px 15px; border: 1px solid var(--hdc-line); border-radius: 999px; background: var(--hdc-tint); font-weight: 600; font-size: 15.5px; line-height: 1.3; }
.hdc-sec--stone .hdc-chips li { background: #fff; }
.hdc-chips li:has(a) { padding: 0; border-color: rgba(23, 68, 63, .35); background: #fff; }
.hdc-chips a { display: block; padding: 8px 15px; border-radius: 999px; color: var(--hdc-main); text-decoration: none; }
.hdc-chips a:hover { background: var(--hdc-main); color: #fff; }
.hdc-areas__more { margin: 0 !important; }
.hdc-areas > :last-child { margin-bottom: 0 !important; }

/* ------------------------------------------------------------ visit, contact, map, hours */

.hdc-address { margin: 22px 0 12px; font-style: normal; line-height: 1.55; }
.hdc-hours { width: 100%; max-width: 440px; margin: 6px 0 6px; border-collapse: collapse; font-size: 16px; }
.hdc-hours th, .hdc-hours td { padding: 8px 0; border-bottom: 1px solid var(--hdc-line); }
.hdc-hours th { text-align: left; font-weight: 600; }
.hdc-hours td { text-align: right; color: var(--hdc-muted); }
.hdc-hours tr.is-today th, .hdc-hours tr.is-today td { color: var(--hdc-main); font-weight: 700; }
.hdc-hours tr.is-today th { box-shadow: inset 4px 0 0 var(--hdc-accent); padding-left: 12px; }
.hdc-split--visit .hdc-split__aside { display: flex; }
.hdc-map { position: relative; width: 100%; overflow: hidden; aspect-ratio: 4 / 3; border: 1px solid var(--hdc-line); border-radius: 14px; background: var(--hdc-tint); }
.hdc-split--visit .hdc-map { aspect-ratio: auto; min-height: 380px; }
.hdc-map--wide { aspect-ratio: 21 / 9; }
.hdc-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.hdc-bigphone { margin: 0 0 6px !important; }
.hdc-bigphone a { color: var(--hdc-main); font: 700 30px/1.15 var(--hdc-font-head); text-decoration: none; }
.hdc-bigphone a:hover { color: var(--hdc-ink); }
.hdc-mail { margin: 0 0 12px !important; }
.hdc-mail a { font-weight: 600; word-break: break-word; }

/* ------------------------------------------------------------ gallery */

.hdc-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.hdc-filter { min-height: 42px; padding: 8px 16px; border: 1.5px solid var(--hdc-line); border-radius: 999px; background: #fff; color: var(--hdc-ink); font: 600 15px/1 var(--hdc-font-body); cursor: pointer; }
.hdc-filter:hover { border-color: var(--hdc-main); }
.hdc-filter[aria-pressed="true"] { background: var(--hdc-main); border-color: var(--hdc-main); color: #fff; }
.hdc-content .wp-block-gallery.hdc-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px !important; margin: 0 0 28px; }
.hdc-content .wp-block-gallery.hdc-gallery figure.wp-block-image { width: auto !important; margin: 0 !important; display: block !important; }
.hdc-content .wp-block-gallery.hdc-gallery figure.wp-block-image[hidden] { display: none !important; }
.hdc-content .wp-block-gallery.hdc-gallery figure.wp-block-image img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; cursor: zoom-in; }
.hdc-content .wp-block-gallery.hdc-gallery figure.wp-block-image figcaption {
	position: static !important; max-height: none !important; overflow: visible !important; margin: 0 !important; padding: 10px 2px 0 !important;
	background: none !important; color: var(--hdc-muted) !important; font-size: 15px !important; text-align: left !important; text-shadow: none !important;
}
.hdc-content .wp-block-gallery.hdc-gallery figure.wp-block-image::before { display: none !important; }
.hdc-lb { width: min(1100px, 94vw); max-height: 92vh; padding: 0; border: 0; border-radius: 14px; background: #0B1A18; color: #fff; overflow: hidden; }
.hdc-lb::backdrop { background: rgba(6, 18, 16, .82); }
.hdc-lb img { display: block; width: 100%; max-height: calc(92vh - 64px); object-fit: contain; background: #000; }
.hdc-lb__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 14px; }
.hdc-lb__cap { margin: 0; font-size: 15px; color: var(--hdc-on-dark); }
.hdc-lb__close { min-height: 40px; padding: 6px 14px; border: 1.5px solid rgba(255, 255, 255, .4); border-radius: 8px; background: transparent; color: #fff; font: 700 15px/1 var(--hdc-font-body); cursor: pointer; }

/* ------------------------------------------------------------ quote form */

.hdc-quote { position: relative; }
.hdc-q__note { margin: 0 0 20px !important; color: var(--hdc-muted); font-size: 15.5px; }
.hdc-q__part { margin: 0 0 20px; padding: clamp(20px, 3vw, 32px); background: #fff; border: 1px solid var(--hdc-line); border-radius: 16px; }
.hdc-q__part > h2 { margin: 0 0 20px; font-size: 27px; }
.hdc-q__group { min-width: 0; margin: 0 0 24px; padding: 0; border: 0; }
.hdc-q__group legend, .hdc-q__label { display: block; margin: 0 0 10px; padding: 0; color: var(--hdc-ink); font-weight: 700; font-size: 17px; }
.hdc-q__hint { color: var(--hdc-muted); font-weight: 400; }
.hdc-q__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.hdc-q__opt { position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 9px 16px; border: 1.5px solid #BEC7C1; border-radius: 999px; background: #fff; color: var(--hdc-ink); font-weight: 600; font-size: 15.5px; line-height: 1.2; cursor: pointer; user-select: none; }
.hdc-q__opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.hdc-q__opt:hover { border-color: var(--hdc-main); }
.hdc-q__opt:has(input:checked), .hdc-q__opt.is-checked { background: var(--hdc-main); border-color: var(--hdc-main); color: #fff; }
.hdc-q__opt:has(input:focus-visible) { outline: 3px solid var(--hdc-main-deep); outline-offset: 2px; }
.hdc-q__opt .hdc-dot { width: 16px; height: 16px; }
.hdc-q__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.hdc-q__field { margin: 0 0 20px; }
.hdc-q__input { display: block; width: 100%; min-height: 50px; padding: 12px 14px; border: 1.5px solid #B4BEB8; border-radius: 10px; background: #fff; color: var(--hdc-ink); font: inherit; font-size: 16.5px; }
textarea.hdc-q__input { min-height: 130px; resize: vertical; line-height: 1.5; }
select.hdc-q__input { appearance: none; padding-right: 44px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2344309C' d='M7.4 8.6 12 13.2l4.6-4.6L18 10l-6 6-6-6z'/%3E%3C/svg%3E") right 12px center / 22px no-repeat; }
.hdc-q__input:focus { border-color: var(--hdc-main); outline: 3px solid rgba(68, 48, 156, .3); outline-offset: 1px; }
.hdc-q__field.is-invalid .hdc-q__input, .hdc-q__group.is-invalid .hdc-q__opt { border-color: var(--hdc-error); }
.hdc-q__err { margin: 7px 0 0 !important; color: var(--hdc-error); font-weight: 600; font-size: 14.5px; }
.hdc-q__err[hidden] { display: none; }
.hdc-q__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.hdc-q__submit { width: 100%; min-height: 58px; font-size: 18px; }
.hdc-q__status { min-height: 1.5em; margin: 12px 0 0 !important; color: var(--hdc-error); font-weight: 600; }
.hdc-q__privacy { margin: 6px 0 0 !important; color: var(--hdc-muted); font-size: 14.5px; }
.hdc-q__done { padding: clamp(24px, 4vw, 40px); background: #fff; border: 1px solid var(--hdc-line); border-top: 6px solid var(--hdc-main); border-radius: 16px; }
.hdc-q__done:focus { outline: none; }
.hdc-q__done h2 { font-size: clamp(26px, 3vw, 34px); }
.hdc-q__done[hidden], .hdc-q[hidden] { display: none; }
.hdc-q.is-busy .hdc-q__submit { opacity: .7; pointer-events: none; }

.hdc-split--form .hdc-split__aside { display: flex; flex-direction: column; gap: 20px; }
.hdc-box { margin: 0; padding: 26px; background: var(--hdc-tint); border-radius: 16px; }
.hdc-sec--stone .hdc-box { background: #fff; }
.hdc-box > :last-child { margin-bottom: 0; }
.hdc-box h2 { font-size: 24px; margin-bottom: 16px; }
.hdc-numbered { margin: 0 !important; padding: 0 !important; list-style: none; counter-reset: hdc-n; }
.hdc-numbered li { position: relative; margin: 0 0 14px; padding-left: 42px; counter-increment: hdc-n; }
.hdc-numbered li::before { content: counter(hdc-n); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--hdc-main); color: #fff; font: 700 15px/28px var(--hdc-font-head); text-align: center; }
.hdc-box .hdc-ticks { margin-top: 18px !important; }

/* ------------------------------------------------------------ reviews, notes */

.hdc-reviews__link { margin-top: 18px; }
.hdc-editor-note { padding: 18px 20px; border: 1.5px dashed var(--hdc-line); border-radius: 12px; color: var(--hdc-muted); background: #fff; }

/* ------------------------------------------------------------ prose (regular pages and posts) */

.hdc-prose { max-width: calc(760px + 2 * var(--hdc-gutter)); margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--hdc-gutter); }
.hdc-prose > :first-child { margin-top: 0; }
.hdc-prose h2 { margin-top: 1.4em; }
.hdc-prose img { border-radius: 10px; }
.hdc-postlist__item { padding: 0 0 28px; margin: 0 0 28px; border-bottom: 1px solid var(--hdc-line); }
.hdc-postlist__meta { color: var(--hdc-muted); font-size: 15px; }

/* ------------------------------------------------------------ footer and mobile bar */

.hdc-footer { padding-top: clamp(48px, 6vw, 72px); background: var(--hdc-main-deep); color: var(--hdc-on-dark); font-size: 16px; line-height: 1.6; }
.hdc-footer__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; padding-bottom: 48px; }
.hdc-footer a { color: #fff; text-decoration: none; }
.hdc-footer a:hover { text-decoration: underline; text-decoration-color: var(--hdc-light); text-underline-offset: 4px; }
.hdc-footer__brand p { max-width: 38ch; margin: 18px 0 0; }
.hdc-footer address { margin: 18px 0 0; font-style: normal; }
.hdc-footer__h { margin: 0 0 14px; color: #fff; font: 600 19px/1.3 var(--hdc-font-head); }
.hdc-footer__list { margin: 0; padding: 0; list-style: none; }
.hdc-footer__list li { margin: 0 0 8px; }
.hdc-brand--footer { font-size: 24px; }
.hdc-brand--footer .hdc-wordmark { color: #fff; }
.hdc-brand--footer .hdc-mark { --hdc-mark-1: #7B6AD0; --hdc-mark-3: #F1EFFA; --hdc-mark-stroke: transparent; --hdc-mark-pin: #fff; }
.hdc-footer__bottom { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; padding-block: 20px; color: var(--hdc-light); font-size: 14.5px; }
.hdc-footer__bottom::before { content: ""; position: absolute; top: 0; left: var(--hdc-gutter); right: var(--hdc-gutter); height: 1px; background: rgba(255, 255, 255, .14); }
.hdc-footer__bottom p { margin: 0; }

.hdc-mbar { display: none; }
@media (max-width: 800px) {
	.hdc-mbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
		display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 8px;
		padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
		background: var(--hdc-main-deep); box-shadow: 0 -10px 24px rgba(0, 0, 0, .2);
	}
	.hdc-mbar a { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 50px; border-radius: 10px; background: rgba(255, 255, 255, .09); color: #fff; font-weight: 700; font-size: 15px; text-decoration: none; }
	.hdc-mbar .hdc-mbar__call { background: var(--hdc-accent); color: var(--hdc-on-accent); }
	body.hdc-site { padding-bottom: calc(66px + env(safe-area-inset-bottom)); }
}

/* ------------------------------------------------------------ responsive */

@media (max-width: 1080px) {
	.hdc-grid--4 { --cols: 2; }
	.hdc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
	.hdc-step:nth-child(2n)::after { display: none; }
	.hdc-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.hdc-hero__in--split, .hdc-split, .hdc-split--areas, .hdc-split--form, .hdc-split--visit, .hdc-svc, .hdc-sec--stone .hdc-svc, .hdc-faqwrap { grid-template-columns: minmax(0, 1fr); }
	.hdc-sec--stone .hdc-svc__media { order: 0; }
	.hdc-faqwrap > .hdc-head { position: static; }
	.hdc-grid--3 { --cols: 2; }
	.hdc-hero__media { margin-top: 4px; }
	.hdc-svc__media .hdc-swatch { aspect-ratio: 16 / 7; }
	.hdc-split--visit .hdc-map { min-height: 300px; }
	.hdc-map--wide { aspect-ratio: 4 / 3; }
	.hdc-content .wp-block-gallery.hdc-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
	.hdc-grid, .hdc-grid--2, .hdc-grid--3, .hdc-grid--4 { --cols: 1; }
	.hdc-facts, .hdc-facts--4 { grid-template-columns: minmax(0, 1fr); }
	.hdc-facts li, .hdc-facts li:first-child { padding: 14px 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .12); }
	.hdc-facts li:first-child { border-top: 0; }
	.hdc-steps { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
	.hdc-step { padding: 0 0 30px 66px; }
	.hdc-step::after, .hdc-step:nth-child(2n)::after { display: block; top: 56px; bottom: 6px; left: 23px; right: auto; width: 2px; height: auto; background: repeating-linear-gradient(180deg, var(--hdc-main) 0 7px, transparent 7px 14px); }
	.hdc-step:last-child { padding-bottom: 0; }
	.hdc-step:last-child::after { display: none; }
	.hdc-q__row { grid-template-columns: minmax(0, 1fr); }
	.hdc-samples { min-height: 250px; }
	.hdc-samples .hdc-swatch { width: 118px; height: 210px; margin: 0 -12px; }
	.hdc-samples--5 .hdc-swatch { width: 84px; height: 180px; margin: 0 -14px; }
	.hdc-samples--5 .hdc-swatch__label { font-size: 11.5px; padding: 4px 6px; }
	.hdc-fan { height: 310px; }
	.hdc-fan .hdc-fan__item { width: 114px; height: 230px; margin-left: -57px; bottom: 26px; --rot: calc(var(--i) * 13deg); }
	.hdc-fan__label { top: 9px; left: 7px; font-size: 12.5px; padding: 7px 4px; }
	.hdc-fan__card::after { bottom: 17px; }
	.hdc-fan__rivet { bottom: 44px; width: 18px; height: 18px; margin-left: -9px; }
	.hdc-content .wp-block-gallery.hdc-gallery { grid-template-columns: minmax(0, 1fr); }
	.hdc-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.hdc-cta__in .hdc-actions, .hdc-cta__in .hdc-actions .hdc-btn { width: 100%; }
	.hdc-hero .hdc-actions .hdc-btn { flex: 1 1 100%; }
	.hdc-spec__list li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ------------------------------------------------------------ editor */

.editor-styles-wrapper .hdc-hero, .editor-styles-wrapper .hdc-cta, .editor-styles-wrapper .hdc-sec { margin-block: 0 !important; }
.editor-styles-wrapper .hdc-hero h1.hdc-hero__title { color: #fff; }
.editor-styles-wrapper .hdc-cta h2 { color: var(--hdc-on-accent); }
.editor-styles-wrapper .hdc-fan .hdc-fan__item { animation: none; }
.editor-styles-wrapper .wp-block-hdc-sample-fan, .editor-styles-wrapper .hdc-hero__media > * { width: 100%; }

@media (prefers-reduced-motion: reduce) {
	.hdc-site *, .hdc-site *::before, .hdc-site *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
	.hdc-header__bar .hdc-nav, .hdc-menu-toggle, .hdc-header__call, .hdc-mbar, .hdc-cta .hdc-actions, .hdc-map { display: none !important; }
	.hdc-hero, .hdc-pagehead, .hdc-footer, .hdc-cta { background: #fff !important; color: #000 !important; }
	.hdc-hero h1.hdc-hero__title, .hdc-hero .hdc-lead { color: #000 !important; }
	body.hdc-site { padding-bottom: 0; }
}
