/**
 * Branch page styles.
 *
 * @package Irritech
 */

/* Hero slider. */
.branch-hero {
	--branch-primary: #214b00;
	--branch-sand: #e2bd89;
	padding: 24px var(--container-padding) 18px;
	/* background: var(--branch-sand); */
}

.branch-hero__frame {
	position: relative;
	/* width: min(100%, 1376px);
	margin: 0 auto; */
	overflow: hidden;
	border-radius: 42px;
	background: #1a231d;
}

.branch-hero__slide {
	position: relative;
	display: flex !important;
	align-items: center;
	min-height: clamp(540px, 43vw, 620px);
	overflow: hidden;
}

.branch-hero__image,
.branch-hero__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.branch-hero__image {
	object-fit: cover;
	object-position: center;
}

.branch-hero__overlay {
	background: linear-gradient(90deg, rgba(8, 18, 15, .9) 0%, rgba(16, 24, 21, .75) 36%, rgba(18, 21, 17, .31) 67%, rgba(10, 28, 27, .18) 100%);
}

.branch-hero__content {
	position: relative;
	z-index: 1;
	width: min(100%, 100%);
	padding: 64px clamp(48px, 4.1vw, 68px) 120px;
}

.branch-hero__title {
	margin: 0;
	font-family: var(--font-family-heading);
	font-size: clamp(2.6rem, 4.6vw, 4rem);
	font-weight: 700;
	line-height: 1.17;
	letter-spacing: -.035em;
	text-transform: uppercase;
}

.branch-hero__title-top,
.branch-hero__title-bottom {
	display: block;
}

.branch-hero__title-top {
	color: #fff;
}

.branch-hero__title-bottom {
	/* color: var(--color-footer-bg); */
	color: #fff;
}

.branch-hero__description {
	max-width: 670px;
	margin: 22px 0 0;
	font-family: var(--font-family-base);
	font-size: 1rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, .92);
}

.branch-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 32px;
}

.branch-hero__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 10px 24px;
	font-family: var(--font-family-base);
	font-size: .9375rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: 999px;
	transition: background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base);
}

.branch-hero__button--primary {
	color: #fff;
	background: var(--color-footer-bg);
}

.branch-hero__button--primary:hover,
.branch-hero__button--primary:focus-visible {
	color: #fff;
	background: var(--branch-primary);
}

.branch-hero__button--secondary {
	color: #fff;
	border-color: rgba(255, 255, 255, .9);
	background: rgba(255, 255, 255, .06);
}

.branch-hero__button--secondary:hover,
.branch-hero__button--secondary:focus-visible {
	color: var(--branch-primary);
	background: #fff;
}

.branch-hero__dots {
	position: absolute;
	bottom: 38px;
	left: clamp(48px, 4.1vw, 68px);
	z-index: 2;
}

.branch-hero__dots .slick-dots {
	display: flex !important;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}


.branch-hero__dots .slick-dots li button {
	width: 10px;
	height: 10px;
	padding: 0;
	margin: 0;
}

.branch-hero__dots .slick-dots li button {
	display: block;
	font-size: 0;
	background: rgba(255, 255, 255, .46);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
}

.branch-hero__dots .slick-dots li button::before {
	display: none;
}

.branch-hero__dots .slick-dots li.slick-active button {
	width: 22px;
	background: var(--color-footer-bg);
}

.branch-hero__navigation {
	position: absolute;
	right: clamp(32px, 3.5vw, 48px);
	bottom: 36px;
	z-index: 2;
	display: flex;
	gap: 12px;
}

.branch-hero__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	padding: 0;
	font-size: 1.4rem;
	line-height: 1;
	color: #fff;
	background: rgba(22, 28, 21, .35);
	border: 1px solid rgba(255, 255, 255, .64);
	border-radius: 50%;
	cursor: pointer;
	transition: color var(--transition-base), background-color var(--transition-base);
}

.branch-hero__nav:hover,
.branch-hero__nav:focus-visible {
	/* color: var(--branch-primary); */
	background: var(--branch-primary);
}

.branch-hero__frame--single-slide .branch-hero__dots,
.branch-hero__frame--single-slide .branch-hero__navigation {
	display: none;
}

.branch-introduction {
	padding-block: 96px;
	background: #022103;
}

.branch-introduction__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	align-items: stretch;
	gap: 18px;
}

.branch-introduction__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(32px, 4vw, 32px);
	border: 1px solid rgb(255 255 255 / 20%);
	border-radius: 24px;
}

.branch-introduction__title {
	max-width: 700px;
	margin: 0 0 24px;
	font-family: var(--font-family-heading);
	font-size: clamp(1.8rem, 3.3vw, 2.2rem);
	font-weight: 700;
	letter-spacing: -0.04em;
	color: #fff;
	line-height: normal;
}

.branch-introduction__description {
	max-width: 660px;
	font-family: var(--font-family-heading);
	font-size: .99rem;
	line-height: 24px;
	color: #fff;
	text-align: justify;
}

.branch-introduction__description > :first-child {
	margin-top: 0;
}

.branch-introduction__description > :last-child {
	margin-bottom: 0;
}

.branch-introduction__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	margin-top: 24px;
	padding: 10px 22px;
	font-family: var(--font-family-heading);
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	border: 1px solid #fff;
	border-radius: 999px;
	transition: color var(--transition-base), background-color var(--transition-base);
}

.branch-introduction__button:hover,
.branch-introduction__button:focus-visible {
	color: #222;
	background: var(--color-accent);
	border: 1px solid var(--color-accent);
}

.branch-introduction__gallery {
	display: grid;
	grid-template-rows: minmax(0, 288px) minmax(0, 208px);
	gap: 14px;
	min-height: 510px;
	overflow: hidden;
}

.branch-introduction__gallery-bottom {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	min-height: 0;
	height: 208px;
	overflow: hidden;
	border-radius: 24px;
}

.branch-introduction__gallery-bottom-left, .branch-introduction__gallery-bottom-right {
	overflow: hidden;
	border-radius: 24px;
} 

.branch-introduction__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 24px;
}

.branch-locations {
	padding-block: 96px;
	background: #022103;
}

.branch-locations__header {
	margin-bottom: 32px;
}

.branch-locations__filters {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
	max-width: calc(66.666% + 10px);
	margin: 0 auto 32px;
}

.branch-locations .contact-network__filter {
	display: flex;
	gap: 16px;
	align-items: center;
	min-height: 56px;
	padding: 16px 24px;
	background-color: #f5f5f5;
	border: 1px solid rgba(0, 0, 0, .06);
	border-radius: 12px;
}

.branch-locations .contact-network__filter--toggle { justify-content: space-between; }
.branch-locations .contact-network__filter-icon { flex-shrink: 0; width: 24px; height: 24px; }
.branch-locations .contact-network__filter-label, .branch-locations .contact-network__select-toggle-prefix, .branch-locations .contact-network__select-toggle-value { font-family: var(--font-family-heading); font-size: 1rem; line-height: 1.5; color: #222a2e; }
.branch-locations .contact-network__filter-label { font-weight: 700; }
.branch-locations .contact-network__toggle { position: relative; display: inline-flex; flex-shrink: 0; cursor: pointer; }
.branch-locations .contact-network__toggle-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.branch-locations .contact-network__toggle-track { position: relative; display: block; width: 40px; height: 24px; background: #e7e7e7; border-radius: 1000px; transition: background-color var(--transition-base); }
.branch-locations .contact-network__toggle-track::after { content: ''; position: absolute; top: 4px; left: 4px; width: 16px; height: 16px; background: #fff; border-radius: 50%; box-shadow: 6px 0 12px rgba(0, 0, 0, .25); transition: transform var(--transition-base); }
.branch-locations .contact-network__toggle-input:checked + .contact-network__toggle-track { background: #022103; }
.branch-locations .contact-network__toggle-input:checked + .contact-network__toggle-track::after { transform: translateX(16px); }
.branch-locations .contact-network__select { position: relative; }
.branch-locations .contact-network__select-toggle { display: flex; flex: 1 1 auto; gap: 4px; align-items: center; width: 100%; min-width: 0; padding: 0; margin: 0; color: inherit; text-align: left; cursor: pointer; background: transparent; border: 0; }
.branch-locations .contact-network__select-toggle-prefix { flex-shrink: 0; font-weight: 400; }
.branch-locations .contact-network__select-toggle-value { flex: 1 1 auto; overflow: hidden; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.branch-locations .contact-network__filter-caret { display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 20px; height: 20px; pointer-events: none; }
.branch-locations .contact-network__filter-caret img { display: block; width: 20px; height: 20px; }
.branch-locations .contact-network__select-panel { position: absolute; top: calc(100% + 8px); left: 0; z-index: 9999; width: 100%; padding: 12px; background: #fff; border: 1px solid rgba(0, 0, 0, .08); border-radius: 12px; box-shadow: 0 12px 32px rgba(0, 0, 0, .14); }
.branch-locations .contact-network__select-panel[hidden], .branch-locations .contact-network__select-option[hidden], .branch-locations__card[hidden] { display: none !important; }
.branch-locations .contact-network__select-search { width: 100%; padding: 10px 14px !important; margin: 0 0 8px; font-family: var(--font-family-heading); font-size: .875rem; color: #222a2e; background: #fff; border: 1px solid rgba(0, 0, 0, .12) !important; border-radius: 8px; }
.branch-locations .contact-network__select-options { max-height: 220px; margin: 0; padding: 0; overflow-y: auto; list-style: none; }
.branch-locations .contact-network__select-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 8px; font-family: var(--font-family-heading); font-size: .9375rem; color: #222a2e; cursor: pointer; border-radius: 8px; }
.branch-locations .contact-network__select-option:hover, .branch-locations .contact-network__select-option:focus-visible { background: #f5f5f5; }
.branch-locations .contact-network__select-option.is-selected { color: #022103; font-weight: 700; }
.branch-locations .contact-network__select-option-check { display: none; flex-shrink: 0; width: 18px; height: 18px; background: #022103; border-radius: 50%; }
.branch-locations .contact-network__select-option-check::after { content: ''; position: relative; top: 3px; left: 6px; display: block; width: 5px; height: 9px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); }
.branch-locations .contact-network__select-option.is-selected .contact-network__select-option-check { display: block; }
.branch-locations .contact-network__select-empty { margin: 8px 0 0; font-family: var(--font-family-heading); font-size: .875rem; color: #5d6366; text-align: center; }
.branch-locations .contact-network__select-empty[hidden] { display: none !important; }

.branch-locations__eyebrow {
	margin: 0 0 8px;
	font-family: var(--font-family-heading);
	font-size: .875rem;
	font-weight: 700;
	color: #396b37;
}

.branch-locations__title {
	margin: 0;
	font-family: var(--font-family-heading);
	font-size: clamp(1.2rem, 4vw, 2rem);
	color: #fff;
	text-align: center;
}

.branch-locations__featured-layout {
	display: grid;
	grid-template-columns: minmax(280px, .44fr) minmax(0, 1fr);
	gap: 14px;
	margin-bottom: 14px;
}

.branch-locations__map {
	min-height: 364px;
	overflow: hidden;
	border-radius: 12px;
}

/* Temporary map kill switch (see irritechBranchLocations.mapDisabled) */
.branch-locations__map--disabled { display: none; }
.branch-locations__featured-layout:has(.branch-locations__map--disabled) { grid-template-columns: 1fr; }

.branch-locations__card {
	display: grid;
	grid-template-columns: 126px minmax(0, 1fr);
	gap: 14px;
	padding: 10px;
	background: #fff;
	border: 1px solid rgba(38, 91, 47, .14);
	border-radius: 10px;
	cursor: pointer;
	transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.branch-locations__card:hover,
.branch-locations__card:focus-visible,
.branch-locations__card.is-active {
	border-color: #396b37;
	box-shadow: 0 8px 18px rgba(29, 69, 31, .12);
	outline: 0;
}

.branch-locations__card--featured {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 10px;
}

.branch-locations__image {
	width: 126px;
	height: 82px;
	object-fit: cover;
	border-radius: 7px;
}

.branch-locations__card--featured .branch-locations__image {
	width: 100%;
	height: 220px;
	margin-bottom: 14px;
	border-radius: 8px;
}

.branch-locations__card-content { min-width: 0; }
.branch-locations__card-heading { display: flex; justify-content: space-between; gap: 10px; }
.branch-locations__card-title { margin: 0 0 8px; font-family: var(--font-family-heading); font-size: 1rem; font-weight: 700; color: #173e20; }
.branch-locations__card--featured .branch-locations__card-title { font-size: 1.25rem; text-transform: uppercase; }
.branch-locations__directions { flex: 0 0 auto; font-size: .75rem; font-weight: 700; color: #396b37; }
.branch-locations__meta { display: grid; gap: 5px; margin: 0; padding: 0; font-size: .82rem; line-height: 1.35; color: #526052; list-style: none; }
.branch-locations__card--featured .branch-locations__meta { font-size: .9rem; }
.branch-locations__meta li { display: flex; gap: 8px; align-items: flex-start; }
.branch-locations__meta img { flex: 0 0 24px; width: 24px; height: 16px; object-fit: contain; object-position: center; }
.branch-locations__meta a { color: inherit; text-decoration: none; }
.branch-locations__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.branch-locations__marker { position: relative; width: 42px; height: 64px; }
.branch-locations__marker-pin { display: block; width: 42px; height: 64px; }
.branch-locations__marker-logo { position: absolute; top: 10px; left: 9px; width: 24px; height: 24px; object-fit: contain; }
.branch-locations__popup { display: flex; flex-direction: column; gap: 6px; min-width: 200px; font-family: var(--font-family-heading); }
.branch-locations__popup-title { margin: 0; font-size: 1rem; font-weight: 700; color: #022103; }
.branch-locations__popup-address, .branch-locations__popup-phone { margin: 0; font-size: .875rem; line-height: 1.4; color: #222a2e; }
.branch-locations__popup-phone a { color: inherit; text-decoration: none; }
.branch-locations__popup-directions { display: inline-flex; align-self: flex-start; margin-top: 4px; padding: 6px 14px; border-radius: 100px; background: #022103; color: #fff !important; font-size: .8125rem; font-weight: 600; text-decoration: none; }
.branch-locations__popup-directions:hover, .branch-locations__popup-directions:focus-visible { background: #00341c; }
.branch-locations__map .leaflet-control-layers { font-family: var(--font-family-heading); border-radius: 8px !important; }
.branch-locations__map .leaflet-control-layers-toggle { width: 36px !important; height: 36px !important; }
.branch-locations__map .leaflet-control-layers-list label { font-size: .875rem; color: #222a2e; }
.branch-locations__zoom-hint { position: absolute; top: 50%; left: 50%; z-index: 1000; padding: 12px 20px; border-radius: 4px; transform: translate(-50%, -50%); background: rgba(0, 0, 0, .75); color: #fff; font-size: 14px; line-height: 1.4; white-space: nowrap; opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; pointer-events: none; }
.branch-locations__zoom-hint.is-visible { opacity: 1; visibility: visible; }
.map-disputed-label span { display: inline-block; padding: 2px 6px; border-radius: 3px; background: rgba(255, 255, 255, .85); color: #1a1a1a; font-size: 11px; font-weight: 600; line-height: 1.3; white-space: nowrap; pointer-events: none; transform: translate(-50%, -50%); }
.map-style-switcher { position: absolute; top: 12px; right: 12px; z-index: 2; display: flex; overflow: hidden; border-radius: 8px; box-shadow: 0 2px 8px rgba(0, 0, 0, .2); font-family: var(--font-family-heading); }
.map-style-switcher__btn { padding: 8px 14px; border: none; background: #ffffff; color: #222a2e; font-size: .8125rem; font-weight: 600; cursor: pointer; }
.map-style-switcher__btn.is-active { background: #022103; color: #ffffff; }
.map-user-location-dot { width: 16px; height: 16px; border-radius: 50%; background: #1a73e8; border: 2px solid #ffffff; box-shadow: 0 0 0 2px #1a73e8; }

.branch-featured-projects {
	
}

/* Full-width CTA banner beneath featured projects. */
.branch-cta-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(280px, 22vw, 350px);
	overflow: hidden;
	background: var(--color-footer-bg);
}

.branch-cta-banner__image,
.branch-cta-banner__overlay {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.branch-cta-banner__image {
	object-fit: cover;
	object-position: center;
}

.branch-cta-banner__overlay {
	background: linear-gradient(90deg, color-mix(in srgb, var(--color-footer-bg) 85%, transparent), color-mix(in srgb, var(--color-footer-bg) 60%, transparent));
}

.branch-cta-banner__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-block: 48px;
	text-align: center;
}

.branch-cta-banner__title {
	max-width: 820px;
	margin: 0;
	font-family: var(--font-family-heading);
	font-size: clamp(1.9rem, 3.1vw, 3rem);
	font-weight: 700;
	line-height: 1.18;
	letter-spacing: -.025em;
	color: #fff;
}

.branch-cta-banner__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-top: 28px;
}

.branch-cta-banner__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 10px 28px;
	font-family: var(--font-family-base);
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: 999px;
	transition: background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);
}

.branch-cta-banner__button--primary {
	color: var(--color-footer-bg);
	background: #fff;
}

.branch-cta-banner__button--primary:hover,
.branch-cta-banner__button--primary:focus-visible {
	color: #fff;
	background: transparent;
	border-color: #fff;
}

.branch-cta-banner__button--secondary {
	color: #fff;
	background: var(--color-footer-bg);
	border-color: var(--color-footer-bg);
}

.branch-cta-banner__button--secondary:hover,
.branch-cta-banner__button--secondary:focus-visible {
	color: var(--color-footer-bg);
	background: #fff;
	border-color: #fff;
}

.is_mb {
	display: none;
}

@media (max-width: 767px) {
	.is_mb {
		display: block;
	}

	.is_pc {
		display: none;
	}

	.branch-hero {
		padding: 14px 12px;
	}

	.branch-hero__frame {
		border-radius: 24px;
	}

	.branch-hero__slide {
		min-height: 590px;
	}

	.branch-hero__image {
		object-position: 63% center;
	}

	.branch-hero__overlay {
		background: linear-gradient(90deg, rgba(8, 18, 15, .88) 0%, rgba(15, 23, 18, .72) 72%, rgba(16, 20, 16, .3) 100%);
	}

	.branch-hero__content {
		width: 100%;
		padding: 48px 28px 92px;
	}

	.branch-hero__title {
		font-size: clamp(2.2rem, 10vw, 3rem);
		line-height: 1.1;
	}

	.branch-hero__description {
		font-size: .9375rem;
		line-height: 1.6;
	}

	.branch-hero__actions {
		margin-top: 24px;
	}

	.branch-hero__button {
		min-height: 44px;
		padding-inline: 20px;
	}

	.branch-hero__dots {
		bottom: 28px;
		left: 28px;
	}

	.branch-hero__navigation {
		right: 24px;
		bottom: 22px;
		gap: 8px;
	}

	.branch-hero__nav {
		width: 42px;
		height: 42px;
	}

	.branch-cta-banner {
		min-height: 310px;
	}

	.branch-cta-banner__content {
		padding-block: 40px;
	}

	.branch-cta-banner__actions {
		margin-top: 24px;
	}

	.branch-locations { padding-block: 64px; }
	.branch-locations__filters { grid-template-columns: 1fr; max-width: none; margin-bottom: 24px; }
	.branch-locations__featured-layout,
	.branch-locations__list { grid-template-columns: 1fr; }
	.branch-locations__map { min-height: 340px; }
}

@media (max-width: 900px) {
	.branch-introduction {
		padding-block: 64px;
	}

	.branch-introduction__inner {
		grid-template-columns: 1fr;
	}

	.branch-introduction__gallery {
		grid-template-rows: minmax(0, 288px) minmax(0, 208px);
		min-height: 510px;
	}
}

@media (max-width: 575px) {
	.branch-introduction__content {
		border-radius: 18px;
	}

	.branch-introduction__gallery {
		grid-template-rows: 1.2fr 0.8fr;
		min-height: 360px;
	}

	.branch-introduction__image {
		border-radius: 16px;
	}
}
