/*
Theme Name:   GeneratePress Child
Theme URI:    https://generatepress.com
Description:  Default GeneratePress child theme
Author:       Tom Usborne
Author URI:   https://tomusborne.com
Template:     generatepress
Version:      0.1
*/


/* Theme switcher: Winter version
* Summer version is baked into the Customizer > Colors settings 
*/


div#popmake-698 {
    bottom: 0px !important;
    top: auto !important;
    margin-bottom: 10px;
}


body.season-winter {
	--main: #4f9485;
	--wp--preset--color--main: #4f9485;

	--main-hover: #438376;
	--wp--preset--color--main-hover: #438376;

	--primary-dark: #0b3538;
	--wp--preset--color--primary-dark: #0b3538;

	--primary-dark-hover: #07292b;
	--wp--preset--color--primary-dark-hover: #07292b;

	--secondary: #eb6f31;
	--wp--preset--color--secondary: #eb6f31;

	--secondary-hover: #d96022;
	--wp--preset--color--secondary-hover: #d96022;

	--white: #ffffff;

	--text: #40504f;
	--wp--preset--color--text: #40504f;

	--surface-light: #eef5f3;
	--wp--preset--color--surface-light: #eef5f3;

	--surface: #d6e4e0;
	--wp--preset--color--surface: #d6e4e0;

	--primary-dark-overlay: rgba(11, 53, 56, 0.8);
	--wp--preset--color--primary-dark-overlay: rgba(11, 53, 56, 0.8);

	--surface-light-overlay: rgba(238, 245, 243, 0.8);
	--wp--preset--color--surface-light-overlay: rgba(238, 245, 243, 0.8);

	--white-overlay: rgba(255, 255, 255, 0.8);
}








.yard-calculator {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	gap: 20px;
	align-items: stretch;
	width: 100%;
	max-width: 650px;
}

.yard-calculator h4 {
	grid-column: span 2;
	margin: 0;
}

.yard-calculator-fields {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}

.yard-calculator-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.yard-calculator-field label {
	display: block;
	font-size: 12px;
}

.yard-calculator-input {
	display: flex;
	align-items: stretch;
	width: 100%;
}

.yard-calculator-input input {
	width: 100%;
	min-width: 0;
	border: 2px solid var(--surface);
	border-radius: 8px;
}

.yard-calculator-input span {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	padding: 0 12px;
}

.yard-calculator-result {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 8px;
	padding: 20px;
	min-height: 100%;
	background: var(--surface-light);
	border-radius: 14px;
}

.yard-calculator-result small,
.yard-calculator-result strong,
.yard-calculator-result span {
	display: block;
}

.yard-calculator-total {
	font-size: 1.5rem;
	line-height: 1.1;
	color: var(--primary-dark);
}

.yard-calculator-note {
	font-size: .9rem;
	line-height: 1.4;
}

.yard-calculator-heading {
    grid-column: span 2;
    margin: 0;
}

.yard-calculator-breakdown {
    font-size: 14px;
    background: white;
    padding: 10px;
    border-radius: 6px;
}

@media (max-width: 1200px) {
	.yard-calculator {
		grid-template-columns: 1fr;
	}

	.yard-calculator h4 {
	grid-column: span 1;
	margin: 0;
}

	.yard-calculator-fields {
		grid-template-columns: 1fr;
	}

	.yard-calculator-result {
		min-height: auto;
	}
}






.delivery-calculator input[type="text"] {
	min-height: 52px;
	border-radius: 8px;
	border: 2px solid var(--surface);
}



.delivery-calculator {
	display: flex;
	align-items: stretch;
	gap: 10px;
	flex-wrap: wrap;
}

.delivery-zip {
	flex: 1 1 200px;
	min-width: 0;
	padding: 12px 15px;
}

.delivery-check {
	flex: 0 0 auto;
}

.delivery-fee {
	flex: 0 0 100%;
}

.delivery-result {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 8px;
	padding: 20px;
	min-height: 100%;
	background: var(--surface-light);
	border-radius: 14px;
}

.delivery-result small {
	display: block;
}

.delivery-result strong {
	display: block;
	font-size: 1.75rem;
	line-height: 1.1;
	color: var(--primary-dark);
}

.delivery-result span {
	display: block;
	font-size: .9rem;
}

@media (max-width: 600px) {

	.delivery-calculator {
		flex-direction: column;
	}

	.delivery-zip,
	.delivery-check {
		width: 100%;
		flex: none;
	}

}













/* Radio Card Layout */
#field_2_3 .gfield_radio {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
}

/* Individual Cards */
#field_2_3 .gchoice {
	position: relative;
	min-width: 0;
	display: block;
}

/* Hide Default Radio */
#field_2_3 .gchoice input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

/* Card Labels */
#field_2_3 .gchoice label {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 85px;
	padding: 18px 12px;
	margin: 0;
	background: var(--surface-light);
	border: 2px solid var(--surface);
	border-radius: 10px;
	color: var(--primary-dark);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	cursor: pointer;
	transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

/* Hover */
#field_2_3 .gchoice label:hover {
	background: var(--surface);
	border-color: var(--main);
	transform: translateY(-2px);
}

/* Selected */
#field_2_3 .gchoice input[type="radio"]:checked + label {
	background: var(--main);
	border-color: var(--main);
	color: var(--white);
	box-shadow: 0 4px 12px rgba(2, 45, 16, .15);
}

/* Keyboard Focus */
#field_2_3 .gchoice input[type="radio"]:focus-visible + label {
	outline: 3px solid var(--secondary);
	outline-offset: 3px;
}

/* Tablet */
@media (max-width: 900px) {
	#field_2_3 .gfield_radio {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Mobile */
@media (max-width: 600px) {
	#field_2_3 .gfield_radio {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	#field_2_3 .gchoice label {
		min-height: 70px;
		padding: 14px 10px;
		font-size: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	#field_2_3 .gchoice label {
		transition: none;
	}

	#field_2_3 .gchoice label:hover {
		transform: none;
	}
}



body #gform_wrapper_1[data-form-index="0"].gform-theme,
body #gform_wrapper_2[data-form-index="0"].gform-theme,
body #gform_wrapper_3[data-form-index="0"].gform-theme {
	--gf-color-primary: var(--main);
	--gf-color-primary-rgb: 112, 164, 64;
	--gf-color-primary-contrast: var(--white);
	--gf-color-primary-contrast-rgb: 255, 255, 255;
	--gf-color-primary-darker: var(--main-hover);
	--gf-color-primary-lighter: var(--main);
	--gf-color-secondary: var(--white);
	--gf-color-secondary-rgb: 255, 255, 255;
	--gf-color-secondary-contrast: var(--primary-dark);
	--gf-color-secondary-contrast-rgb: 2, 45, 16;
	--gf-color-secondary-darker: var(--surface);
	--gf-color-secondary-lighter: var(--white);
	--gf-color-out-ctrl-light: rgba(2, 45, 16, 0.1);
	--gf-color-out-ctrl-light-rgb: 2, 45, 16;
	--gf-color-out-ctrl-light-darker: rgba(63, 74, 66, 0.35);
	--gf-color-out-ctrl-light-lighter: var(--surface-light);
	--gf-color-out-ctrl-dark: var(--text);
	--gf-color-out-ctrl-dark-rgb: 63, 74, 66;
	--gf-color-out-ctrl-dark-darker: var(--primary-dark);
	--gf-color-out-ctrl-dark-lighter: rgba(2, 45, 16, 0.65);
	--gf-color-in-ctrl: var(--white);
	--gf-color-in-ctrl-rgb: 255, 255, 255;
	--gf-color-in-ctrl-contrast: var(--primary-dark);
	--gf-color-in-ctrl-contrast-rgb: 2, 45, 16;
	--gf-color-in-ctrl-darker: var(--surface-light);
	--gf-color-in-ctrl-lighter: var(--white);
	--gf-color-in-ctrl-primary: var(--main);
	--gf-color-in-ctrl-primary-rgb: 112, 164, 64;
	--gf-color-in-ctrl-primary-contrast: var(--white);
	--gf-color-in-ctrl-primary-contrast-rgb: 255, 255, 255;
	--gf-color-in-ctrl-primary-darker: var(--main-hover);
	--gf-color-in-ctrl-primary-lighter: var(--main);
	--gf-color-in-ctrl-light: rgba(2, 45, 16, 0.1);
	--gf-color-in-ctrl-light-rgb: 2, 45, 16;
	--gf-color-in-ctrl-light-darker: rgba(63, 74, 66, 0.35);
	--gf-color-in-ctrl-light-lighter: var(--surface-light);
	--gf-color-in-ctrl-dark: var(--text);
	--gf-color-in-ctrl-dark-rgb: 63, 74, 66;
	--gf-color-in-ctrl-dark-darker: var(--primary-dark);
	--gf-color-in-ctrl-dark-lighter: rgba(2, 45, 16, 0.65);
	--gf-ctrl-border-color: var(--text);
	--gf-ctrl-label-color-primary: var(--primary-dark);
	--gf-ctrl-label-color-secondary: var(--text);
	--gf-ctrl-btn-border-color-secondary: var(--text);
	--gf-ctrl-btn-bg-color-hover-tertiary: var(--surface);
	--gf-field-pg-steps-number-color: rgba(2, 45, 16, 0.8);
}

.gform-theme--foundation .gfield textarea.small {
	min-block-size: 5rem;
}

body .gform-theme--api,
body .gform-theme--framework {
	--gf-ctrl-textarea-height: 100px;
	--gf-form-footer-margin-y-start: 16px;
	--gf-radius: 6px !important;
}

.gform-theme--foundation .gform_fields {
	row-gap: 16px;
}

.gform_wrapper {
	display: flex;
	flex-direction: column;
}

.gform_heading {
	order: 3;
}

.gform_heading p:last-child {
	margin-bottom: 0;
}

p.gform_required_legend {
	font-size: 12px;
}

p.gform_description {
	margin-bottom: 16px;
}








.order-review {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.order-review-header small {
	display: block;
	margin-bottom: 4px;
	color: var(--secondary);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
}



.order-review-header p {
	margin: 6px 0 0;
}

.order-review-section {
	padding: 20px;
	background: var(--surface-light-overlay);
	border-radius: 10px;
}

.order-review-section h4 {
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--surface);
}

.order-review-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 20px;
}

.order-review-row {
	min-width: 0;
}

.order-review-row-full {
	grid-column: 1 / -1;
}

.order-review-label {
	display: block;
	margin-bottom: 3px;
	color: var(--primary-dark);
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.order-review-value {
	color: var(--text);
	font-size: 1rem;
	line-height: 1.45;
}

.order-review-map-link {
	display: inline-flex;
	align-items: center;
	margin-top: 2px;
	color: var(--secondary);
	font-weight: 700;
}

.order-review-map-link:hover {
	color: var(--secondary-hover);
}

/* Hide conditional/optional rows with no submitted value */
.order-review-row:has(.order-review-value:empty) {
	display: none;
}

.order-review-quantity:has(.order-review-number:empty) {
	display: none;
}

.order-review-map {
	width: 100%;
	max-width: 640px;
	margin: 5px 0 10px;
	overflow: hidden;
	border-radius: 8px;
}

.order-review-map img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

@media (max-width: 600px) {
	.order-review-section {
		padding: 20px;
	}

	.order-review-grid {
		grid-template-columns: 1fr;
		gap: 15px;
	}

	.order-review-row-full {
		grid-column: auto;
	}
}
