/*
Theme Name:   Golden Tail Doxies (Divi Child)
Theme URI:    https://goldentaildoxies.com
Description:  Child theme for Divi with the Golden Tail Doxies brand styles, fonts and puppy filter. Pair it with the included Divi layouts.
Author:       Golden Tail Doxies
Template:     Divi
Version:      1.0.1
Text Domain:  golden-tail-divi-child
*/

/* ==========================================================================
   Brand tokens — change a color here and it updates across the site.
   The same values are used as defaults inside the Divi modules, where each
   one can also be changed individually from the Divi Builder.
   ========================================================================== */
:root {
	--gtd-ink: #1F1A17;
	--gtd-ground: #F7F3EE;
	--gtd-surface: #FFFFFF;
	--gtd-sand: #EFE6D9;
	--gtd-line: #E4DACB;
	--gtd-muted: #5E554D;
	--gtd-gold: #D19A3B;
	--gtd-gold-text: #8A5A12;
	--gtd-gold-soft: #F3E3C3;
	--gtd-gold-on-dark: #E2AC4A;
	--gtd-dark-muted: #CFC5BA;
	--gtd-green: #3F7D4E;
	--gtd-boy: #DCE7F2;
	--gtd-girl: #F6DDE2;
	--gtd-display: 'Bricolage Grotesque', 'DM Sans', system-ui, sans-serif;
	--gtd-body: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ---------- Base ---------- */
body,
#page-container,
#et-main-area,
#main-content {
	background-color: var(--gtd-ground);
}
body {
	font-family: var(--gtd-body);
	color: var(--gtd-ink);
	font-size: 16px;
	-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--gtd-display);
	color: var(--gtd-ink);
	padding-bottom: 0;
	letter-spacing: -0.02em;
}
h1 { font-weight: 700; line-height: 1.02; }
h2 { font-weight: 700; line-height: 1.06; }
h3 { font-weight: 600; line-height: 1.2; }
.et_pb_text p:last-of-type { padding-bottom: 0; }
a { color: var(--gtd-gold-text); }
a:hover { color: #5E3B0A; }

/* ---------- Small text elements used inside Text modules ---------- */
.gtd-eyebrow {
	display: block;
	font-family: var(--gtd-body);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gtd-gold-text);
	margin-bottom: 12px;
}
.gtd-dark .gtd-eyebrow { color: var(--gtd-gold-on-dark); }
.gtd-accent { color: var(--gtd-gold-text); }

.gtd-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--gtd-surface);
	border: 1px solid var(--gtd-line);
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	color: var(--gtd-muted);
	line-height: 1.3;
}
.gtd-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gtd-green);
	display: inline-block;
	flex: none;
}

.gtd-pill {
	display: inline-block;
	font-family: var(--gtd-body);
	font-size: 13px;
	font-weight: 600;
	padding: 6px 13px;
	border-radius: 999px;
	color: var(--gtd-ink);
	background: var(--gtd-gold-soft);
	line-height: 1.2;
	letter-spacing: 0;
}
.gtd-pill.boy { background: var(--gtd-boy); }
.gtd-pill.girl { background: var(--gtd-girl); }
.gtd-pill.available {
	background: #E4F0E6;
	color: #2E6B3E;
}

.gtd-trust {
	list-style: none !important;
	padding: 0 !important;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	font-size: 15px;
	font-weight: 500;
	color: #3A332E;
}
.gtd-trust li { display: inline-flex; align-items: center; gap: 8px; padding: 0; }
.gtd-trust li::before {
	content: "";
	width: 20px; height: 20px; flex: none;
	background: url("images/icons/check-gold.svg") center / contain no-repeat;
}

.gtd-checklist {
	list-style: none !important;
	padding: 0 !important;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.gtd-checklist li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 0;
}
.gtd-checklist li::before {
	content: "";
	width: 22px; height: 22px; flex: none; margin-top: 2px;
	background: url("images/icons/check-green.svg") center / contain no-repeat;
}
.gtd-dark .gtd-checklist li::before { background-image: url("images/icons/check-gold.svg"); }

/* Two-column tile list used on "What comes home with your puppy" */
.gtd-tiles {
	list-style: none !important;
	padding: 0 !important;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}
.gtd-tiles li {
	background: #2B2420;
	border-radius: 18px;
	padding: 18px;
	font-size: 16px;
	line-height: 1.45;
	color: var(--gtd-ground);
}
@media (max-width: 480px) {
	.gtd-tiles { grid-template-columns: minmax(0, 1fr); }
}

/* Numbered process step (Our Process page) */
.gtd-step {
	display: flex;
	flex-wrap: wrap;
	gap: 18px 28px;
	align-items: flex-start;
}
.gtd-step-num {
	flex: none;
	width: 64px; height: 64px;
	border-radius: 20px;
	background: var(--gtd-ink);
	color: var(--gtd-ground);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--gtd-display);
	font-weight: 700;
	font-size: 24px;
}
.gtd-step-num.gold { background: var(--gtd-gold); color: var(--gtd-ink); }
.gtd-step-body { flex: 1 1 300px; min-width: 0; }
.gtd-step-body h3 { font-size: 24px; margin: 4px 0 8px; }
.gtd-step-body p { color: var(--gtd-muted); font-size: 16px; line-height: 1.65; }
.gtd-step .gtd-pill { margin-top: 6px; color: var(--gtd-gold-text); }

/* Large number used on the Home "process" preview */
.gtd-bignum {
	display: block;
	font-family: var(--gtd-display);
	font-size: 40px;
	font-weight: 700;
	line-height: 1;
	color: var(--gtd-gold-on-dark);
	margin-bottom: 12px;
}

/* Contact "info cards" built in Text modules */
.gtd-infocard {
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--gtd-surface);
	border: 1px solid var(--gtd-line);
	border-radius: 18px;
	padding: 18px 20px;
	text-decoration: none;
	color: var(--gtd-ink);
	margin-bottom: 12px;
}
.gtd-infocard:hover { color: var(--gtd-ink); border-color: var(--gtd-gold); }
.gtd-infocard img { width: 44px; height: 44px; flex: none; }
.gtd-infocard small { display: block; font-size: 13px; color: var(--gtd-muted); }
.gtd-infocard strong { font-size: 17px; }

/* Hours list */
.gtd-hours { margin: 0; padding: 0; }
.gtd-hours div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; }
.gtd-hours dt { color: var(--gtd-muted); font-weight: 400; }
.gtd-hours dd { margin: 0; font-weight: 600; }

/* Puppy card details */
.gtd-pup-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}
.gtd-pup-head h2, .gtd-pup-head h3 { margin: 0; font-size: 28px; }
.gtd-specs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 16px;
	font-size: 14px;
	margin: 0;
}
.gtd-specs dt { color: var(--gtd-muted); font-weight: 400; }
.gtd-specs dd { margin: 2px 0 0; font-weight: 600; color: var(--gtd-ink); }
.gtd-pup-foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	border-top: 1px solid var(--gtd-sand);
	padding-top: 16px;
}
.gtd-price {
	font-family: var(--gtd-display);
	font-size: 22px;
	font-weight: 700;
	color: var(--gtd-ink);
}
.gtd-pup-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Link buttons used inside Text modules (card actions) */
.gtd-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	box-sizing: border-box;
	padding: 0 18px;
	border-radius: 999px;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none !important;
	background: var(--gtd-gold);
	color: var(--gtd-ink) !important;
	border: 1.5px solid var(--gtd-gold);
	transition: filter .2s;
}
.gtd-btn:hover { filter: brightness(0.94); }
.gtd-btn.outline { background: transparent; border-color: var(--gtd-ink); }
.gtd-btn.dark { background: var(--gtd-ink); border-color: var(--gtd-ink); color: var(--gtd-ground) !important; }

/* Place Divi Button modules side by side: give the Button module the CSS class "gtd-inline" */
.et_pb_button_module_wrapper:has(> .gtd-inline) {
	display: inline-block;
	margin: 0 12px 12px 0 !important;
	vertical-align: middle;
}

/* Hover lift for cards (add class "gtd-lift" to a Column or Module) */
.gtd-lift { transition: transform .2s ease, box-shadow .2s ease; }
.gtd-lift:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(31, 26, 23, 0.10); }

/* Dark sections: text defaults */
.gtd-dark, .gtd-dark p { color: var(--gtd-dark-muted); }
.gtd-dark h1, .gtd-dark h2, .gtd-dark h3, .gtd-dark h4 { color: var(--gtd-ground); }

/* ==========================================================================
   HEADER (Theme Builder global header)
   ========================================================================== */
.gtd-header {
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.gtd-header-row {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	flex-wrap: nowrap;
}
.gtd-header-row::after { display: none !important; }
.gtd-header-row > .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}
.gtd-header-row > .et_pb_column:last-child { flex: 1 1 auto; }

/* Wordmark logo (Text module) */
.gtd-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none !important;
	color: var(--gtd-ink) !important;
}
.gtd-logo img { width: 40px; height: 40px; display: block; }
.gtd-logo-text { display: flex; flex-direction: column; line-height: 1; }
.gtd-logo-name {
	font-family: var(--gtd-display);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: -0.01em;
	color: var(--gtd-ink);
}
.gtd-logo-sub {
	font-family: var(--gtd-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	color: var(--gtd-gold-text);
	margin-top: 3px;
}

/* Menu module */
.gtd-menu .et_pb_menu__wrap { justify-content: flex-end; }
.gtd-menu .et-menu > li { padding-left: 11px; padding-right: 11px; }
.gtd-menu .et-menu > li > a {
	padding-top: 6px !important;
	padding-bottom: 6px !important;
	border-bottom: 2px solid transparent;
	transition: color .2s, border-color .2s;
}
.gtd-menu .et-menu > li > a:hover { opacity: 1 !important; color: var(--gtd-ink) !important; }
.gtd-menu .et-menu > li.current-menu-item > a,
.gtd-menu .et-menu > li.current_page_item > a {
	border-bottom-color: var(--gtd-gold);
	color: var(--gtd-ink) !important;
}
.gtd-menu .et_pb_menu__menu > nav > ul { align-items: center; }

/* "Join Waitlist" pill: add the CSS class "gtd-cta" to that menu item
   (Appearance › Menus › Screen Options › CSS Classes). */
.gtd-menu .et-menu > li.gtd-cta { padding-left: 14px; padding-right: 0; }
.gtd-menu .et-menu > li.gtd-cta > a {
	background: var(--gtd-ink);
	color: var(--gtd-ground) !important;
	border-radius: 999px;
	border-bottom: 0 !important;
	padding: 12px 20px !important;
	font-weight: 600;
	line-height: 20px;
}
.gtd-menu .et-menu > li.gtd-cta > a:hover { filter: brightness(1.15); color: var(--gtd-ground) !important; }
.gtd-menu .et-menu > li.gtd-cta.current-menu-item > a { background: var(--gtd-gold); color: var(--gtd-ink) !important; }

/* Mobile menu */
.gtd-menu .et_mobile_menu {
	border-top: 2px solid var(--gtd-gold) !important;
	border-radius: 0 0 20px 20px;
	box-shadow: 0 20px 40px rgba(31, 26, 23, 0.12);
	padding: 12px 8px !important;
}
.gtd-menu .et_mobile_menu li a {
	font-size: 16px !important;
	font-weight: 500;
	padding: 13px 18px !important;
	border-bottom: 1px solid var(--gtd-sand) !important;
}
.gtd-menu .et_mobile_menu li.gtd-cta a {
	margin: 12px 10px 4px;
	text-align: center;
	background: var(--gtd-ink);
	color: var(--gtd-ground) !important;
	border-radius: 999px;
	border-bottom: 0 !important;
	font-weight: 600;
}
.gtd-menu .et_mobile_menu li.current-menu-item > a { color: var(--gtd-gold-text) !important; }
.gtd-menu .mobile_menu_bar::before { color: var(--gtd-ink); }

/* ==========================================================================
   FOOTER links
   ========================================================================== */
.gtd-footer a { text-decoration: none; transition: color .2s; }
.gtd-footer a:hover { color: var(--gtd-gold-on-dark) !important; }
.gtd-footer-head {
	display: block;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	color: var(--gtd-gold-on-dark);
	margin-bottom: 12px;
}
.gtd-footer-links {
	list-style: none !important;
	padding: 0 !important;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	line-height: 1.4;
}
.gtd-footer-links li { padding: 0; }
.gtd-footer-inline {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 28px;
	justify-content: flex-end;
}
@media (max-width: 980px) {
	.gtd-footer-inline { justify-content: flex-start; }
}

/* ==========================================================================
   PUPPY GRID + FILTER (Available Puppies page)
   Give the Section the CSS class "gtd-puppy-grid" and each puppy Column the
   class "gtd-puppy boy" or "gtd-puppy girl". Add or remove rows freely.
   ========================================================================== */
.gtd-puppy-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
.gtd-puppy-grid > .et_pb_row { display: contents; }
.gtd-puppy-grid > .et_pb_row::after { display: none !important; }
.gtd-puppy-grid .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
}
.gtd-puppy-grid .et_pb_column_empty { display: none !important; }
.gtd-puppy.is-hidden { display: none !important; }
.gtd-puppy .et_pb_module { margin-bottom: 0 !important; }
.gtd-puppy .et_pb_module + .et_pb_module { margin-top: 16px !important; }
.gtd-puppy .et_pb_image_wrap { display: block; }
.gtd-puppy .et_pb_image img { width: 100%; aspect-ratio: 4 / 3.6; object-fit: cover; }
@media (max-width: 980px) {
	.gtd-puppy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.gtd-puppy-grid { grid-template-columns: minmax(0, 1fr); }
}
/* In the Visual Builder show everything as normal stacked columns for easy editing */
.et-fb .gtd-puppy-grid { display: block !important; }
.et-fb .gtd-puppy-grid > .et_pb_row { display: block; }

.gtd-filter {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
	background: var(--gtd-surface);
	border: 1px solid var(--gtd-line);
	padding: 6px;
	border-radius: 999px;
}
.gtd-filter button {
	border: 0;
	min-height: 44px;
	padding: 10px 20px;
	border-radius: 999px;
	font-family: var(--gtd-body);
	font-size: 15px;
	font-weight: 600;
	background: transparent;
	color: #3A332E;
	cursor: pointer;
	transition: background .2s, color .2s;
}
.gtd-filter button:hover { background: var(--gtd-ground); }
.gtd-filter button[aria-pressed="true"] { background: var(--gtd-ink); color: var(--gtd-ground); }
.gtd-filter-count { margin-top: 20px; font-size: 15px; color: var(--gtd-muted); }
.gtd-filter-count strong { color: var(--gtd-ink); }

/* Featured puppy cards on Home */
.gtd-feature .et_pb_image img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; }
.gtd-feature .et_pb_module { margin-bottom: 0 !important; }
.gtd-feature .et_pb_module + .et_pb_module { margin-top: 12px !important; }

/* ==========================================================================
   Divi Contact Form (Waitlist + Contact) — give the form module the class "gtd-form"
   Self-contained flex layout so it does not depend on Divi's float/negative-margin grid.
   ========================================================================== */
.gtd-form.et_pb_contact_form_container,
.gtd-form .et_pb_contact { width: 100%; max-width: 100%; }
.gtd-form .et_pb_contact_form {
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-wrap: wrap;
	gap: 18px 16px;
	width: 100%;
}
.gtd-form .et_pb_contact_form::before,
.gtd-form .et_pb_contact_form::after { display: none !important; content: none !important; }

/* Every field: full width by default, half fields share a row */
.gtd-form .et_pb_contact_form > .et_pb_contact_field {
	float: none !important;
	clear: none !important;
	position: relative;
	width: auto !important;
	flex: 1 1 100%;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box;
}
.gtd-form .et_pb_contact_form > .et_pb_contact_field.et_pb_contact_field_half {
	flex: 1 1 calc(50% - 8px);
	max-width: calc(50% - 8px);
}

/* Labels above fields (placeholders hidden so text isn't shown twice) */
.gtd-form .et_pb_contact_form_label,
.gtd-form .et_pb_contact_field_options_title {
	display: block !important;
	position: static !important;
	width: auto !important;
	height: auto !important;
	clip: auto !important;
	overflow: visible !important;
	font-family: var(--gtd-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--gtd-ink);
	margin: 0 0 8px !important;
	padding: 0 !important;
}
.gtd-form .input::placeholder { color: transparent; }

/* Text, email, select and textarea boxes (not radios/checkboxes) */
.gtd-form .et_pb_contact_field input.input:not([type="radio"]):not([type="checkbox"]),
.gtd-form .et_pb_contact_field textarea.input,
.gtd-form .et_pb_contact_field select {
	display: block;
	width: 100% !important;
	box-sizing: border-box;
	min-height: 52px;
	margin: 0 !important;
	padding: 14px 16px !important;
	border: 1.5px solid #DCCFBD !important;
	border-radius: 14px !important;
	background-color: #FBF8F3 !important;
	color: var(--gtd-ink) !important;
	font-family: var(--gtd-body) !important;
	font-size: 16px !important;
	line-height: 1.4 !important;
	box-shadow: none !important;
	transition: border-color .2s, background-color .2s;
}
.gtd-form .et_pb_contact_field textarea.input { min-height: 132px; resize: vertical; }
.gtd-form .et_pb_contact_field select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding-right: 44px !important;
	cursor: pointer;
}
.gtd-form .et_pb_contact_field input.input:focus,
.gtd-form .et_pb_contact_field textarea.input:focus,
.gtd-form .et_pb_contact_field select:focus {
	border-color: var(--gtd-gold) !important;
	background-color: #FFFFFF !important;
	outline: 3px solid rgba(209, 154, 59, 0.28);
	outline-offset: 0;
}
.gtd-form .et_pb_contact_field .input.et_contact_error,
.gtd-form .et_pb_contact_field select.et_contact_error { border-color: #B3412E !important; }

/* Select arrow: pin it to the box, not the middle of label + box */
.gtd-form .et_pb_contact_field[data-type="select"]::after {
	content: "" !important;
	position: absolute !important;
	right: 18px !important;
	left: auto !important;
	top: auto !important;
	bottom: 23px !important;
	margin: 0 !important;
	width: 0;
	height: 0;
	border: 6px solid transparent !important;
	border-top-color: var(--gtd-ink) !important;
	border-bottom-width: 0 !important;
	pointer-events: none;
}

/* Radio buttons as pill choices (Boy / Girl / No preference) */
.gtd-form .et_pb_contact_field_options_wrapper { display: block; }
.gtd-form [data-type="radio"] .et_pb_contact_field_options_list {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
}
.gtd-form .et_pb_contact_field_radio {
	display: inline-block !important;
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
}
.gtd-form .et_pb_contact_field_radio input,
.gtd-form .et_pb_contact_field_checkbox input {
	position: absolute !important;
	opacity: 0 !important;
	width: 1px !important;
	height: 1px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
.gtd-form .et_pb_contact_field_radio label {
	display: inline-flex !important;
	align-items: center;
	min-height: 46px;
	padding: 0 20px !important;
	border: 1.5px solid #DCCFBD;
	border-radius: 999px;
	background: #FFFFFF;
	font-family: var(--gtd-body);
	font-size: 15px !important;
	font-weight: 600;
	color: var(--gtd-ink) !important;
	cursor: pointer;
	transition: background .2s, border-color .2s;
	margin: 0 !important;
}
.gtd-form .et_pb_contact_field_radio label i { display: none !important; }
.gtd-form .et_pb_contact_field_radio label:hover { border-color: var(--gtd-gold); }
.gtd-form .et_pb_contact_field_radio input:checked + label {
	background: var(--gtd-gold-soft);
	border-color: var(--gtd-gold);
}
.gtd-form .et_pb_contact_field_radio input:focus-visible + label { outline: 3px solid rgba(209, 154, 59, 0.35); }

/* Consent checkbox */
.gtd-form [data-type="checkbox"] .et_pb_contact_field_options_title {
	position: absolute !important;
	width: 1px !important; height: 1px !important;
	overflow: hidden !important; clip: rect(0 0 0 0) !important;
	margin: 0 !important;
}
.gtd-form .et_pb_contact_field_checkbox {
	display: block !important;
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
}
.gtd-form .et_pb_contact_field_checkbox label {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	font-family: var(--gtd-body);
	font-size: 14px !important;
	line-height: 1.5;
	color: var(--gtd-muted) !important;
	cursor: pointer;
	margin: 0 !important;
	padding: 0 !important;
}
.gtd-form .et_pb_contact_field_checkbox label i {
	flex: none;
	position: relative !important;
	top: 0 !important;
	left: 0 !important;
	display: inline-block !important;
	width: 20px !important;
	height: 20px !important;
	margin: 1px 0 0 !important;
	border: 1.5px solid #BFAF98 !important;
	border-radius: 6px !important;
	background: #FFFFFF !important;
}
.gtd-form .et_pb_contact_field_checkbox input:checked + label i {
	background: var(--gtd-ink) url("images/icons/check-white.svg") center / 14px no-repeat !important;
	border-color: var(--gtd-ink) !important;
}
.gtd-form .et_pb_contact_field_checkbox input:checked + label i::before { display: none !important; content: none !important; }

/* Submit area */
.gtd-form .et_contact_bottom_container {
	flex: 1 1 100%;
	float: none !important;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin: 6px 0 0 !important;
	padding: 0 !important;
	text-align: left !important;
}
.gtd-form .et_pb_contact_right { float: none !important; margin: 0 !important; }
.gtd-form .et_pb_contact_right:empty { display: none; }
.gtd-form .et_pb_contact_right p { margin: 0 !important; padding: 0 !important; }
.gtd-form .et_pb_contact_captcha {
	width: 64px !important;
	min-height: 46px;
	border: 1.5px solid #DCCFBD !important;
	border-radius: 12px !important;
	background: #FBF8F3 !important;
	text-align: center;
}
.gtd-form .et_pb_contact_submit {
	flex: 1 1 100%;
	width: 100% !important;
	min-height: 56px;
	margin: 0 !important;
	padding: 14px 28px !important;
	border: 0 !important;
	font-family: var(--gtd-body) !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	cursor: pointer;
}
.gtd-form .et_pb_contact_submit:hover { padding: 14px 28px !important; filter: brightness(1.12); }
.gtd-form .et_pb_contact_submit::after { display: none !important; }

/* Messages (errors / thank-you) */
.gtd-form .et-pb-contact-message { font-family: var(--gtd-body); font-size: 16px; line-height: 1.6; color: var(--gtd-ink); }
.gtd-form .et-pb-contact-message:not(:empty) { margin-bottom: 18px; }
.gtd-form .et-pb-contact-message ul { padding-left: 18px !important; margin-top: 6px; color: #B3412E; }
.gtd-form .et-pb-contact-message p { padding-bottom: 0; }

@media (max-width: 640px) {
	.gtd-form .et_pb_contact_form > .et_pb_contact_field.et_pb_contact_field_half {
		flex-basis: 100%;
		max-width: 100%;
	}
}

/* Accordion (FAQ) icon */
.gtd-faq .et_pb_toggle_title::before { color: var(--gtd-ink); }
.gtd-faq .et_pb_toggle { margin-bottom: 12px !important; }

/* Blurb images keep crisp edges */
.et_pb_blurb .et_pb_main_blurb_image img { border-radius: 0; }

/* Floating hero card */
.gtd-floatcard {
	display: flex;
	align-items: center;
	gap: 14px;
}
.gtd-floatcard-num {
	width: 48px; height: 48px;
	border-radius: 14px;
	background: var(--gtd-gold-soft);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--gtd-display);
	font-weight: 700;
	font-size: 22px;
	color: var(--gtd-ink);
	flex: none;
}
.gtd-floatcard strong { display: block; font-size: 16px; color: var(--gtd-ink); }
.gtd-floatcard span.sub { font-size: 14px; color: var(--gtd-muted); }

/* Warning blurb on Health & Trust */
.gtd-warning .et_pb_module_header { color: var(--gtd-ink); }

/* ==========================================================================
   Layout helpers referenced by the Divi layouts
   ========================================================================== */
/* Row class "gtd-vcenter": vertically centre columns on desktop */
@media (min-width: 981px) {
	.gtd-vcenter { display: flex !important; align-items: center; }
	.gtd-vcenter::after { display: none !important; }
	.gtd-vend { display: flex !important; align-items: flex-end; }
	.gtd-vend::after { display: none !important; }
	.gtd-vend > .et_pb_column:last-child { text-align: right; }
}

/* Puppy grid keeps the 1240px content width */
.gtd-puppy-grid {
	max-width: 1288px;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 24px !important;
	padding-right: 24px !important;
	box-sizing: border-box;
}
@media (max-width: 767px) {
	.gtd-puppy-grid { padding-left: 18px !important; padding-right: 18px !important; }
}

/* Waitlist "how it works" */
.gtd-mini-steps {
	list-style: none !important;
	padding: 0 !important;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.gtd-mini-steps li { display: flex; gap: 16px; padding: 0; }
.gtd-mini-steps li > span {
	flex: none;
	width: 40px; height: 40px;
	border-radius: 12px;
	background: var(--gtd-ink);
	color: var(--gtd-ground);
	display: flex; align-items: center; justify-content: center;
	font-weight: 700;
}
.gtd-mini-steps strong { font-size: 17px; color: var(--gtd-ink); }
.gtd-mini-steps p { margin: 4px 0 0; font-size: 15px; line-height: 1.55; color: var(--gtd-muted); }

/* Divi Button modules */
.et_pb_button.gtd-btnmod { transition: filter .2s ease !important; line-height: 1.4em !important; }
.et_pb_button.gtd-btnmod:hover { filter: brightness(0.94); }

/* Long email address in a blurb title */
.gtd-break .et_pb_module_header { overflow-wrap: anywhere; }

/* Footer copyright line */
.gtd-copyright .et_pb_text_inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 24px;
}
.gtd-copyright p { padding-bottom: 0 !important; }

/* Text module inside Divi text: tidy heading spacing */
.et_pb_text h1 + p, .et_pb_text h2 + p { margin-top: 0; }
