/* Hero Section */
.container-hero.container {
	max-width: 100%;
	padding: 0;
	background-color: #edf2f9;
	width: 100% !important;
}

#banner-hero {
	background: radial-gradient(33.82% 94.16% at 74.24% 51.01%, #16B3C9 0%, #1A8290 100%);
	clip-path: ellipse(80% 65% at 50% 30%);
	color: #fff;
	position: relative;
	min-height: 500px;
	padding: 0;
	overflow: hidden;
}

#banner-hero .wrapper {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
}

#banner-hero .container {
	max-width: 1446px;
	margin: 0 auto;
	padding: 0 0 0 168px;
	height: 100%;
}

#banner-hero .hero-elipse {
	margin: 40px 0;
}

/* Hero Layout */
.hero-layout {
	display: flex;
	align-items: flex-start;
	height: 100%;
	gap: 40px;
}

.hero-text-column {
	flex: 0 0 58%;
	max-width: 58%;
	padding-top: 60px;
}

.hero-image-column {
	flex: 0 0 50%;
	max-width: 50%;
}

/* Hero Content */
.hero-content {
	text-align: left;
	margin-bottom: 30px;
}

#banner-hero .hero-title {
	font-weight: 700;
	font-style: 700;
	font-size: 55px;
	line-height: 67px;
	letter-spacing: 0%;
	color: #ffffff;
	margin-bottom: 0 !important;
}
	
#banner-hero .hero-title.error-notice {
	font-size: 32px;
	font-weight: 700;
	line-height: 48px;
	text-transform: uppercase;
}

/* Hero Image */

/* Search Form */
.hero-search-form {
	display: flex;
	gap: 22px;
	margin: 0;
}
	.lang-es-us .hero-search-form {
		margin-bottom: 70px;
	}

.search-buttons-row {
	margin-bottom: 20px;
}

.search-divider {
	text-align: center;
	margin: 10px 0 15px 0;
	text-transform: uppercase;
}

.search-form-row {}

.results-page-search .hero-search-form {
	max-width: 700px;
	margin: 30px auto;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: 20px;
}

.results-page-search .search-buttons-row,
.results-page-search .search-divider,
.results-page-search .search-form-row {
	margin: 0;
}

.btn-location {
	font-size: 16px;
	font-weight: 700;
	line-height: 18px;
	letter-spacing: 0.3px;
	text-align: left;
	text-underline-position: from-font;
	text-decoration-skip-ink: none;

	background-color: #FFD900;
	color: #1F4388;
	border: 1px solid #ffffff;

	width: auto;
	height: 48px;
	padding: 15px 21px;
	gap: 10px;
	border-radius: 5px;
	display: flex;
	align-items: center;
}

.btn-location.use-current-location {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
	border-width: 1px;
	padding: 15px 21px;
	gap: 10px;

	cursor: pointer;

	/* text styles */
	font-weight: 600;
	font-size: 18px;
	line-height: 120%;
	letter-spacing: 0%;
}

.btn-search {
	background-color: #FFD900;
	color: #1f4388;
	border-left: none;
	border-right: 1px solid #1f4388;
	border-top: 1px solid #1f4388;
	border-bottom: 1px solid #1f4388;
	border-radius: 0 5px 5px 0;
	padding: 0 30px;
	font-size: 18px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.3s;
	height: 50px;
}

.btn-location:hover,
.btn-search:hover {
	background-color: #efb52e;
}

.icon {
	margin-right: 10px;
	font-size: 1.2rem;
}

#zip-code-form {
	margin-bottom: 0;
	z-index: 9999;
	position: absolute;
}

#zip-code-form .input-group {
	background-color: #fff;
	border-radius: 5px;
	position: relative;
}

#zip-code-form .input-group::before {
	content: '';
	position: absolute;
	left: 15px;
	top: 50%;
	transform: translateY(-50%);
	height: 24px;
	width: 24px;
	background-image: url('data:image/svg+xml,<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M19.7833 19.3249L16.7973 16.3698C19.0634 13.5478 18.8501 9.39476 16.264 6.81241C14.9044 5.45469 13.1181 4.70923 11.1985 4.70923C9.27888 4.70923 7.46594 5.45469 6.10623 6.81241C4.74653 8.17012 4 9.95383 4 11.8973C4 13.8407 4.74655 15.6244 6.10623 16.9821C7.46592 18.3132 9.25222 19.0853 11.1985 19.0853C12.8248 19.0853 14.4244 18.5262 15.6775 17.5145L18.6369 20.4696C18.7968 20.6293 18.9835 20.7092 19.1967 20.7092C19.41 20.7092 19.6233 20.6293 19.7566 20.4696C20.0766 20.1502 20.0766 19.6443 19.7832 19.3249L19.7833 19.3249ZM16.7973 11.8973C16.7973 13.3881 16.2108 14.7991 15.1443 15.8373C14.0779 16.8755 12.6915 17.4879 11.1985 17.4879C9.7055 17.4879 8.29247 16.9022 7.2527 15.8373C6.21299 14.7724 5.59977 13.3881 5.59977 11.8973C5.59977 10.4064 6.18626 8.99543 7.2527 7.95716C8.31914 6.91896 9.67884 6.30663 11.1985 6.30663C12.6915 6.30663 14.1046 6.89227 15.1443 7.95716C16.184 9.02205 16.7973 10.3798 16.7973 11.8973Z" fill="%231F4388"/><path d="M19.7833 19.3249L16.7973 16.3698C19.0634 13.5478 18.8501 9.39476 16.264 6.81241C14.9044 5.45469 13.1181 4.70923 11.1985 4.70923C9.27888 4.70923 7.46594 5.45469 6.10623 6.81241C4.74653 8.17012 4 9.95383 4 11.8973C4 13.8407 4.74655 15.6244 6.10623 16.9821C7.46592 18.3132 9.25222 19.0853 11.1985 19.0853C12.8248 19.0853 14.4244 18.5262 15.6775 17.5145L18.6369 20.4696C18.7968 20.6293 18.9835 20.7092 19.1967 20.7092C19.41 20.7092 19.6233 20.6293 19.7566 20.4696C20.0766 20.1502 20.0766 19.6443 19.7832 19.3249L19.7833 19.3249ZM16.7973 11.8973C16.7973 13.3881 16.2108 14.7991 15.1443 15.8373C14.0779 16.8755 12.6915 17.4879 11.1985 17.4879C9.7055 17.4879 8.29247 16.9022 7.2527 15.8373C6.21299 14.7724 5.59977 13.3881 5.59977 11.8973C5.59977 10.4064 6.18626 8.99543 7.2527 7.95716C8.31914 6.91896 9.67884 6.30663 11.1985 6.30663C12.6915 6.30663 14.1046 6.89227 15.1443 7.95716C16.184 9.02205 16.7973 10.3798 16.7973 11.8973Z" fill="black" fill-opacity="0.2"/></svg>');
	background-color: #ffffff;
}

#zip-code-form .input-group:has(.zip-code-input.loading)::before {
	background-image: none;
}

.search-container {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
}

.zip-code-input {
	flex: 1;
	border: none;
	outline: none;
	border: 1px solid #1f4388;
	border-radius: 5px 0 0 5px;
	padding: 0 20px;
	font-size: 14px;
	font-weight: 400;
	line-height: 16px;
	letter-spacing: 0.3px;
	text-align: left;
	color: #4c3017;
	height: 48px;
	width: 243px;
	background: #fff;
}

.zip-code-input::placeholder {
	font-size: 14px;
	font-weight: 400;
	line-height: 14px;
	letter-spacing: 0.3px;
	text-align: left;
	color: #1f4388;
}

.zip-code-input:focus {
	/* border: none; */
}

.zip-code-input.error {
	border-color: #FF4C4C;
}

.error-message {
	color: #FF4C4C !important;
	font-size: 0.875rem;
	margin-top: 0.25rem;
}

#search-field-error {
	color: #ffffff !important;
}

.error-message.message-text {
	display: none;
}

.divider-text {
	position: relative;
	top: -8px;
	font-size: 14px;
	font-weight: 400;
	color: #ffffff;
	margin-bottom: 0;

}

.invalid-input-message {
	display: none;
	color: #dc3545 !important;
	font-size: 0.875rem;
	transition: all 0.3s ease;
}

.invalid-input-message.show {
	display: block;
}

.error-message {
	display: block;
	font-size: 0.9rem;
	color: #f8d7da;
	margin-top: 10px;
	opacity: 0;
	display: none;
}

.error-message.search-field {
	font-size: 14px;
	font-weight: 600;
	line-height: 16px;
	color: #ffffff;
	text-align: left;
}

.results-page-search .error-message.search-field {
	color: #4c3017;
}

.input-group {
	display: flex;
	width: 100%;
}

.helper-text {
	color: #fff;
	font-size: 0.9rem;
	margin-top: 8px;
	text-align: center;
}

/* Responsive Design */
@media (min-width: 1000px) and (max-width: 1300px) {
	.header .nav-menu {
		margin-left: 0;
		margin-right: 0;
		width: 100%;
	}

	.header .nav-menu ul {
		margin-right: 30px;
		justify-content: space-between;
		width: 100%;
	}

	.header .nav-menu li {
		margin: 0;
	}
}

@media (max-width: 768px) {
	.container-hero.container {
		padding: 0;
	}

	#banner-hero {
		padding: 40px 0;
		min-height: 600px;
		clip-path: ellipse(100% 70% at 50% 35%);
	}

	.hero-layout {
		flex-direction: column;
		text-align: center;
		gap: 20px;
	}

	.hero-text-column,
	.hero-image-column {
		flex: none;
		max-width: 100%;
	}

	#banner-hero .hero-title {
		font-size: 34px;
		line-height: 38px;
		text-align: center;
		margin-bottom: 30px;
	}

	#banner-hero .hero-title.error-notice {
		font-size: 28px;
		line-height: 32px;
	}

	.hero-content {
		margin-bottom: 30px;
	}

	.hero-search-form {
		max-width: 100%;
		margin: 0 auto 40px;
	}

	.search-buttons-row {
		margin-bottom: 15px;
	}

	.search-divider {
		margin: 10px 0;
	}

	.btn-location,
	.btn-search {
		font-size: 1rem;
		padding: 12px 20px;
	}

	.zip-code-input {
		font-size: 16px;
		margin-bottom: 0;
		width: 185px;
	}

	.zip-code-input::placeholder {
		font-size: 14px;
	}

	.btn-search {
		width: 100%;
	}

	.lang-fr .btn-location {
		width: 347px;
	}

	.lang-fr .zip-code-input {
		width: 190px;
	}

	.error-message {
		display: none;
	}

	.hero-image-column {
		order: 2;
		margin-top: 20px;
	}


	.divider-text {
		margin-top: 0;
		margin-bottom: 0;
	}

	.search-divider.mobile .divider-text {
		position: initial;
	}

	.post-type-archive-dac_location .hero-content {
		margin-left: 0;
	}

	.post-type-archive-dac_location .hero-elipse img {
		max-width: 200px;
	}

	.post-type-archive-dac_location .standard-text__underline svg {
		width: 272px;
	}

	.post-type-archive-dac_location .hero-text-column {
		width: 100%;
	}
}

@media (max-width: 480px) {
	#banner-hero {
		padding: 30px 0;
		min-height: 505px;
	}

	#banner-hero .hero-title {
		font-size: 28px;
		line-height: 32px;
		margin-bottom: 25px;
	}

	.hero-content {
		margin-bottom: 25px;
	}

	.hero-search-form {
		margin-bottom: 30px;
	}

	.btn-location {
		min-width: 200px;
		width: 100%;
		justify-content: center;
	}


	.search-buttons-row {
		margin-bottom: 12px;
	}

	.search-divider {
		margin: 8px 0;
	}
}

/** List of locations styles **/
/* Section Styles */
.location-list {
	margin: 0 auto;
	background-color: #edf2f9;
	/* padding-bottom: 40px; */
}

.location-list.no-background .states-list {
	background: none;
}

.location-list .states-overview {
	background: none;
}

.location-list .state-link {
	color: #1f4388;
	background: none;
	box-shadow: none;
	font-weight: 700;
	font-size: 18px;
	line-height: 150%;
	letter-spacing: 0%;
	text-decoration: underline;
	text-decoration-style: solid;
}

.location-list .state-link:hover {
	background: none;
	box-shadow: none;
	color: #0e347c;
}

.section-title {
	font-weight: 700;
	font-style: 700;
	font-size: 28px;
	line-height: 120%;
	letter-spacing: 0%;
	text-align: center;
	color: #1f4388;
	padding: 40px 0 24px 0;
	margin: 0;
}

.section-elipse {
	text-align: center;
	margin-bottom: 24px;
}

/* Province Sections */
.province-section {
	margin-top: 45px;
	margin-bottom: 0;
}

.province-section:last-child {
	margin-bottom: 45px;
}

.province-header {
	cursor: pointer;
	display: flex;
	padding-top: 0;
	padding-bottom: 24px;
	justify-content: space-between;
	align-items: center;
	transition: all 0.3s ease;
	border-bottom: 2px solid #e2e2e2;
}

.province-name {
	font-size: 28px;
	font-weight: 700;
	line-height: 32px;
	text-align: left;
	text-transform: none;
	margin: 0;
	color: #4c3017;
	font-weight: 700;
}

.toggle-icon {
	width: 24px;
	height: 24px;
	background-image: url('../images/collapse-caret.svg');
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	transition: transform 0.3s ease;
	transform: rotate(180deg);
}

.province-header[aria-expanded='true'] .toggle-icon {
	transform: rotate(0deg);
}

/* Letter Groups Layout */
.province-content .row {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 85px;
	padding: 0;
}

.letter-group {
	padding: 0;
	max-width: 151px;
}

/* Letter Heading */
.city-letter {
	font-size: 20px;
	font-weight: 700;
	line-height: 20px;
	text-align: left;
	color: #4c3017;
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 2px solid #000000;
}

/* City List */
.city-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.city-item {
	font-size: 18px !important;
	font-weight: 400;
	line-height: 27px;
	text-align: left;
	color: #4c3017;

	text-decoration: none;
	transition: color 0.3s ease;
	display: block;
	font-size: 16px;
	line-height: 1.4;
}

.city-item:hover {
	color: #e65c36;
}

.location-count {
	color: #666666;
}

/* Collapse Animation */
.province-content {
	display: none;
}

.province-content.show {
	display: block;
	animation: fadeIn 0.3s ease-in-out;
}

@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(-10px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Responsive Design */
@media (max-width: 1200px) {
	.province-content .row {
		grid-template-columns: repeat(4, 1fr);
	}
}

@media (max-width: 992px) {
	.province-content .row {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 768px) {
	.section-title {
		font-size: 36px;
	}

	.province-content .row {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.province-name {
		font-size: 20px;
	}
}

@media (max-width: 576px) {
	/*.location-list {
		padding-left: 15px;
		padding-right: 15px;
	}*/

	.section-title {
		font-size: 26px;
		margin-top: 30px;
		margin-bottom: 42px;
		padding: 0;
	}

	.province-name {
		font-size: 22px;
		line-height: 32px;
	}

	.city-letter {
		font-size: 20px;
		line-height: 20px;
	}

	.city-item {
		font-size: 18px;
		line-height: 27px;
	}
}

/* Geo Location */
.btn-location.loading {
	position: relative;
	color: transparent;
}

.btn-location.loading::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: 20px;
	height: 20px;
	margin: -10px 0 0 -10px;
	border: 2px solid #fff;
	border-top-color: transparent;
	border-radius: 50%;
	animation: button-loading 0.8s linear infinite;
}

@keyframes button-loading {
	to {
		transform: rotate(360deg);
	}
}

/* MAPBOX CSS */
.location-suggestions {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: white;
	border: 1px solid #ddd;
	border-top: none;
	border-radius: 0 0 4px 4px;
	max-height: 300px;
	overflow-y: auto;
	z-index: 1000;
	display: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.suggestion-item {
	padding: 12px 15px;
	cursor: pointer;
	transition: background-color 0.2s ease;
	font-size: 14px;
	color: #333;
	text-align: left;
}

.suggestion-item:hover {
	background-color: #f5f5f5;
}

.suggestion-item.error {
	color: #dc3545;
	cursor: default;
}

.suggestion-item.no-results {
	color: #666;
	cursor: default;
	font-style: italic;
}

.input-group {
	position: relative;
}

/* Add loading indicator */
.zip-code-input.loading {
	background-image: url('../images/loading.gif');
	background-repeat: no-repeat;
	background-position: right 10px center;
	background-size: 20px;
}

.zip-code-input {
	text-indent: 24px;
}

.mobile-location-search,
.btn-search .go-text {
	display: none;
}

.location-list .standard-text__underline {
	margin-top: 0;
	margin-bottom: 0;
}

@media (min-width: 1400px) {}


@media (max-width: 1200px) {
	.hero-search-form {
		display: flex;
		flex-direction: column-reverse;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 10px;
	}

	#banner-hero {
		min-height: 700px;
		clip-path: ellipse(100% 65% at 50% 30%);
	}

	.hero-text-column {
		padding-top: 84px;
	}

	.search-divider.desktop {
		margin: 0px !important;
	}

	.divider-text {
		margin-bottom: 0px !important;
	}

	.search-buttons-row {
		margin-bottom: 0px !important;
	}

	#banner-hero .container {
		padding-left: 84px;
	}

	.hero-image-column {
		align-self: flex-end;
	}

}

@media(min-width: 1201px) {

	.search-divider.desktop {
		display: flex;
		align-items: center;
		justify-content: center;
	}
}

@media (max-width: 992px) {}


@media (min-width: 769px) {}

@media (min-width: 576px) and (max-width: 768px) {}

@media (max-width: 575px) {}

@media (min-width: 769px) {}

@media (max-width: 768px) {
	#zip-code-form .input-group::before {
		display: none;
	}

	.zip-code-input {
		text-indent: 0px;
		padding: 0px 10px 0px 20px;
	}

	.btn-search .search-text {
		display: none;
	}

	.btn-search .go-text {
		display: inline-block;
		font-size: 18px;
	}

	#banner-hero {
		min-height: 455px;
	}

	#banner-hero .container {
		padding: 0 !important;
		width: calc(100% - 42px);
	}

	.hero-text-column {
		padding-top: 0;
		display: flex;
		flex-direction: column;
	}

	.hero-content {
		padding: 0px !important;
	}

	#banner-hero {
		clip-path: ellipse(160% 64% at 50% 35%);
	}

	#banner-hero .hero-title {
		text-align: left;
	}

	#banner-hero .hero-elipse {
		display: flex;
		margin: 10px 0px 30px;
	}

	.hero-search-form {
		display: flex;
		flex-direction: column-reverse;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 10px;
		margin-left: 0px !important;
		margin-right: 0px !important;
	}

	.btn-search {
		width: fit-content;
	}

	.search-form-row {
		width: 100%;
	}

	.btn-location.use-current-location {
		width: fit-content;
		height: fit-content;
		padding: 0px !important;
		background: transparent;
		text-decoration: underline;
		border: none;
		outline: none;
		font-weight: 600;
		font-size: 16px !important;
		line-height: 120%;
		color: #ffffff;
	}

	.search-buttons-row.desktop,
	.search-divider.desktop {
		display: none;
	}

	.mobile-location-search {
		display: flex;
		align-items: center;
		gap: 9px;
		z-index: 9999;
	}

	.search-buttons-row {
		margin-bottom: 0px !important;
		height: fit-content;
		width: fit-content;
	}

	.hero-image-column {
		width: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		margin-top: 0;
	}

	.states-overview,
	.section-title {
		margin-top: 0px !important;
		margin-bottom: 0px !important;
	}

	.states-overview.desktop {
		margin-top: 0px !important;
		padding-top: 0px !important;
	}

	.location-list {
		padding-bottom: 40px;
	}

	.location-list .section-elipse {
		margin-bottom: 0px;
	}

	.location-list>.container {
		display: flex;
		flex-direction: column;
		gap: 24px;
		padding-top: 40px;
	}

	.location-list .states-overview {
		padding-top: 0px !important;
		padding-bottom: 0px !important;
	}

	.location-list .state-link {
		padding: 3px 20px;
		width: fit-content;
		height: fit-content;
	}

	.states-list {
		gap: 40px !important;
	}

	.section-title {
		font-size: 28px;
		line-height: 120%;
		text-align: center;
		max-width: 270px;
		justify-self: center;
		align-self: center;
	}
}

/* --------------------------------------------
	Consolidated Hero Image rules (container + image)
	All hero image styles live here for clarity and control
--------------------------------------------- */

/* Base (all viewports) */
.hero-image-container {
	position: relative;
	text-align: center;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.hero-image {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: 10px;
	position: static;
	transform: none;
}

/* Small phones */
@media (max-width: 575px) {
	.hero-image-container {
		width: 60%;
		position: absolute;
		left: 39%;
		bottom: -100%;
		transform: translateX(-13%);
		scale: 2.1;
	}
	.lang-es-us .hero-image-container {
		scale: 1.3;
		bottom: -84%;
	}
}
@media (max-width: 395px) {
	.lang-es-us .hero-image-container {
		bottom: -68%;
	}
}
/* Phones/Tablets narrow */
@media (min-width: 576px) and (max-width: 768px) {
	.hero-image-container {
		width: 40%;
		position: absolute;
		left: 45%;
		bottom: -90%;
		transform: translateX(-13%);
		scale: 2.1;
	}
}

/* Tablets and up */
@media (min-width: 769px) {
	.hero-image-container {
		width: 40%;
		position: absolute;
		left: 70%;
		bottom: -30%;
		transform: translateX(-13%);
		scale: 1.2;
	}
}

/* Mid-range tablets/desktops: ensure coverage 769px–1200px */
@media (min-width: 769px) and (max-width: 1200px) {
	.hero-image-container {
		width: 50%;
		position: absolute;
		left: 70%;
		bottom: -50%;
		transform: translateX(-30%);
		scale: 1.2;
	}
}