@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&display=swap');

/* ============================================================
   Ponca Clinic Locations — frontend styles
   ============================================================ */

.ponca-lc {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	background: var(--plc-section-bg, #FFFFFF);
	padding: var(--plc-section-pad-y, 0px) var(--plc-section-pad-x, 160px);
	margin: var(--plc-section-margin-top, 0px) 0 var(--plc-section-margin-bottom, 0px);
}
.ponca-lc *,
.ponca-lc *::before,
.ponca-lc *::after {
	box-sizing: border-box;
}

/* ---- Container ---- */
.ponca-lc__container {
	width: 100%;
	max-width: var(--plc-container-max-width, 1600px);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--plc-container-gap, 60px);
}

/* ---- Header ---- */
.ponca-lc__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
	gap: var(--plc-header-gap, 14px);
}

.ponca-lc__eyebrow {
	margin: 0;
	color: var(--plc-eyebrow-color, #DEB209);
	font-family: var(--plc-eyebrow-font-family);
	font-size: var(--plc-eyebrow-font-size);
	line-height: var(--plc-eyebrow-line-height);
	font-weight: var(--plc-eyebrow-font-weight);
	font-style: var(--plc-eyebrow-font-style);
	letter-spacing: var(--plc-eyebrow-letter-spacing);
	text-transform: var(--plc-eyebrow-text-transform);
}

.ponca-lc__heading {
	margin: 0;
	width: 100%;
	font-family: var(--plc-heading-font-family);
	font-size: var(--plc-heading-font-size);
	line-height: var(--plc-heading-line-height);
	font-weight: var(--plc-heading-font-weight);
	font-style: var(--plc-heading-font-style);
	letter-spacing: var(--plc-heading-letter-spacing);
	text-transform: var(--plc-heading-text-transform);
}

.ponca-lc__heading-part-1 {
	color: var(--plc-heading-p1-color, #0D0F0E);
	font-style: var(--plc-heading-p1-font-style, normal);
}
.ponca-lc__heading-part-2 {
	color: var(--plc-heading-p2-color, #DEB209);
	font-style: var(--plc-heading-p2-font-style, italic);
}

/* ---- Grid ---- */
.ponca-lc__grid {
	display: grid;
	width: 100%;
	align-items: start;
	grid-template-columns: var(--plc-grid-columns, repeat(3, minmax(0, 1fr)));
	gap: var(--plc-grid-gap, 30px);
}

/* ---- Card ---- */
.ponca-lc__card {
	box-sizing: border-box;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	isolation: isolate;
	width: 100%;
	padding: var(--plc-card-pad-top, 260px) var(--plc-card-pad-x, 40px) var(--plc-card-pad-bottom, 40px);
	background: var(--plc-card-bg, #FFFDF6);
	border: var(--plc-card-border-width, 1px) solid var(--plc-card-border-color, #F5E7B3)!important;
	border-radius: var(--plc-card-radius, 8px);
	gap: var(--plc-card-gap, 30px);
}

/* ---- Card image ---- */
.ponca-lc__card-image {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	display: block;
	height: var(--plc-card-image-height, 230px);
	border-radius: var(--plc-card-image-radius, 8px 8px 0 0);
	object-fit: cover;
	z-index: 2;
}
.ponca-lc__card-image--placeholder {
	background: linear-gradient(135deg, #E8DCC4 0%, #C9B98F 100%);
}

/* ---- Card content ---- */
.ponca-lc__card-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
	gap: var(--plc-content-gap, 20px);
	z-index: 0;
}

.ponca-lc__card-title {
	margin: 0;
	width: 100%;
	color: var(--plc-card-title-color, #0D0F0E);
	font-family: var(--plc-card-title-font-family);
	font-size: var(--plc-card-title-font-size);
	line-height: var(--plc-card-title-line-height);
	font-weight: var(--plc-card-title-font-weight);
	font-style: var(--plc-card-title-font-style);
	letter-spacing: var(--plc-card-title-letter-spacing);
	text-transform: var(--plc-card-title-text-transform);
}

.ponca-lc__card-address {
	margin: 0;
	width: 100%;
	color: var(--plc-card-address-color, #474747);
	font-family: var(--plc-card-address-font-family);
	font-size: var(--plc-card-address-font-size);
	line-height: var(--plc-card-address-line-height);
	font-weight: var(--plc-card-address-font-weight);
	font-style: var(--plc-card-address-font-style);
	letter-spacing: var(--plc-card-address-letter-spacing);
	text-transform: var(--plc-card-address-text-transform);
}

/* ---- Card phone ---- */
.ponca-lc__card-phone {
	display: flex;
	flex-direction: row;
	align-items: center;
	text-decoration: none;
	gap: var(--plc-phone-gap, 10px);
	color: var(--plc-phone-color, #474747);
	font-family: var(--plc-phone-font-family);
	font-size: var(--plc-phone-font-size);
	line-height: var(--plc-phone-line-height);
	font-weight: var(--plc-phone-font-weight);
	font-style: var(--plc-phone-font-style);
	letter-spacing: var(--plc-phone-letter-spacing);
	text-transform: var(--plc-phone-text-transform);
}
.ponca-lc__card-phone-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--plc-phone-icon-color, #B28E07);
	width: var(--plc-phone-icon-size, 16px);
	height: var(--plc-phone-icon-size, 16px);
}

/* ---- Card email ---- */
.ponca-lc__card-email {
	display: flex;
	flex-direction: row;
	align-items: center;
	text-decoration: none;
	gap: var(--plc-email-gap, 10px);
	color: var(--plc-email-color, #474747);
	font-family: var(--plc-email-font-family);
	font-size: var(--plc-email-font-size);
	line-height: var(--plc-email-line-height);
	font-weight: var(--plc-email-font-weight);
	font-style: var(--plc-email-font-style);
	letter-spacing: var(--plc-email-letter-spacing);
	text-transform: var(--plc-email-text-transform);
}
.ponca-lc__card-email-icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--plc-email-icon-color, #B28E07);
	width: var(--plc-email-icon-size, 16px);
	height: var(--plc-email-icon-size, 16px);
}

/* ---- Card link button ---- */
.ponca-lc__card-link {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: auto;
	text-decoration: none;
	gap: var(--plc-link-gap, 11px);
	color: var(--plc-link-color, #B28E07);
	font-family: var(--plc-link-font-family);
	font-size: var(--plc-link-font-size);
	line-height: var(--plc-link-line-height);
	font-weight: var(--plc-link-font-weight);
	font-style: var(--plc-link-font-style);
	letter-spacing: var(--plc-link-letter-spacing);
	text-transform: var(--plc-link-text-transform);
}
.ponca-lc__card-link-row {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--plc-link-row-gap, 10px);
}
.ponca-lc__card-link-underline {
	display: block;
	width: var(--plc-link-underline-width, 145px);
	height: var(--plc-link-underline-height, 1px);
	background: var(--plc-link-underline-bg, #B28E07);
}

/* ---- Footer note ---- */
.ponca-lc__footer-note {
	margin: 0;
	width: 100%;
	color: var(--plc-footer-note-color, #848484);
	font-family: var(--plc-footer-note-font-family);
	font-size: var(--plc-footer-note-font-size);
	line-height: var(--plc-footer-note-line-height);
	font-weight: var(--plc-footer-note-font-weight);
	font-style: var(--plc-footer-note-font-style);
	letter-spacing: var(--plc-footer-note-letter-spacing);
	text-transform: var(--plc-footer-note-text-transform);
}

/* ---- Card hover lift ---- */
.ponca-lc__card {
	transition: transform .2s ease, box-shadow .2s ease;
}
.ponca-lc__card:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 32px -16px rgba(178, 142, 7, 0.18);
}

/* ---- Phone link hover (CSS var set per-section) ---- */
a.ponca-lc__card-phone {
	transition: color .15s ease;
}
a.ponca-lc__card-phone:hover,
a.ponca-lc__card-phone:focus-visible {
	color: var(--plc-phone-hover, #B28E07) !important;
}
a.ponca-lc__card-phone:hover .ponca-lc__card-phone-icon,
a.ponca-lc__card-phone:focus-visible .ponca-lc__card-phone-icon {
	color: var(--plc-phone-hover, #B28E07) !important;
}
a.ponca-lc__card-phone:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---- Email link hover (CSS var set per-section) ---- */
a.ponca-lc__card-email {
	transition: color .15s ease;
}
a.ponca-lc__card-email:hover,
a.ponca-lc__card-email:focus-visible {
	color: var(--plc-email-hover, #B28E07) !important;
}
a.ponca-lc__card-email:hover .ponca-lc__card-email-icon,
a.ponca-lc__card-email:focus-visible .ponca-lc__card-email-icon {
	color: var(--plc-email-hover, #B28E07) !important;
}
a.ponca-lc__card-email:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---- Link button hover (CSS var set per-section) ---- */
a.ponca-lc__card-link {
	transition: color .15s ease, transform .15s ease;
}
a.ponca-lc__card-link:hover,
a.ponca-lc__card-link:focus-visible {
	color: var(--plc-link-hover, #8B6E05) !important;
}
a.ponca-lc__card-link:hover .ponca-lc__card-link-underline,
a.ponca-lc__card-link:focus-visible .ponca-lc__card-link-underline {
	background: var(--plc-link-hover, #8B6E05) !important;
}
a.ponca-lc__card-link:hover .ponca-lc__card-link-arrow {
	transform: translateX(2px);
	display: inline-block;
	transition: transform .2s ease;
}
a.ponca-lc__card-link:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 4px;
	border-radius: 2px;
}

/* ---- Image rendering quality ---- */
.ponca-lc__card-image {
	transition: transform .4s ease;
}

/* ============================================================
   Full-viewport-width footer pattern, flush bottom
   ============================================================ */

.ponca-lc.has-footer-pattern {
	overflow-x: clip;
}

.ponca-lc__footer-pattern {
	display: block;
	width: 100%;
	pointer-events: none;
	user-select: none;
	height: var(--plc-foot-height, 83px);
	margin: var(--plc-foot-margin-top, 0px) 0 0;
	padding: 0 var(--plc-foot-pad-x, 0px);
	background-color: var(--plc-foot-bg, transparent);
	background-image: var(--plc-foot-image, none);
	background-repeat: var(--plc-foot-bg-repeat, repeat-x);
	background-size: var(--plc-foot-bg-size, auto 100%);
	background-position: var(--plc-foot-bg-position, center bottom);
	opacity: var(--plc-foot-opacity, 1);
	position: var(--plc-foot-position, absolute);
	bottom: var(--plc-foot-bottom, 0);
	left: var(--plc-foot-left, 0);
}

.ponca-lc__footer-pattern.is-full-width {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 1280px) {
	.ponca-lc__card-image {
		height: 200px !important;
	}
}

@media (max-width: 1024px) {
	.ponca-lc__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 900px) {
	.ponca-lc__heading {
		font-size: clamp(36px, 6vw, 56px) !important;
		line-height: 1.1 !important;
	}
	.ponca-lc__card-title {
		font-size: 26px !important;
		line-height: 32px !important;
	}
}

@media (max-width: 700px) {
	.ponca-lc__grid {
		grid-template-columns: 1fr !important;
	}
	.ponca-lc__card-image {
		height: 220px !important;
	}
	.ponca-lc__heading br{
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ponca-lc *,
	.ponca-lc *::before,
	.ponca-lc *::after {
		transition: none !important;
		transform: none !important;
	}
}

/* ============================================================
   Clinic cards variant — opt-in, legacy layout remains unchanged
   ============================================================ */
.ponca-lc--clinic-cards {
	--plc-modern-container-max: 1504px;
}
.ponca-lc--clinic-cards .ponca-lc__container {
	max-width: var(--plc-modern-container-max, 1504px);
	padding: 0;
}
.ponca-lc--clinic-cards .ponca-lc__header {
	max-width: 1079px;
	gap: 24px;
}
.ponca-lc--clinic-cards .ponca-lc__eyebrow {
	color: #002F58;
}
.ponca-lc--clinic-cards .ponca-lc__description {
	margin: 0;
	width: 100%;
	max-width: var(--plc-description-max, 1079px);
	color: var(--plc-description-color, #474747);
	font-family: var(--plc-description-font-family, 'DM Sans', 'Helvetica Neue', sans-serif);
	font-size: var(--plc-description-font-size, 18px);
	line-height: var(--plc-description-line-height, 30px);
	font-weight: var(--plc-description-font-weight, 400);
	font-style: var(--plc-description-font-style, normal);
	letter-spacing: var(--plc-description-letter-spacing, normal);
	text-transform: var(--plc-description-text-transform, none);
}
.ponca-lc__modern-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	width: 100%;
}
.ponca-lc__modern-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	background: var(--plc-modern-card-bg, #FFFFFF);
	border: 1px solid var(--plc-modern-card-border, #D9E0E6);
	border-radius: var(--plc-modern-card-radius, 20px);
}
.ponca-lc__modern-image {
	display: block;
	width: 100%;
	height: var(--plc-modern-card-image-height, 230px);
	object-fit: cover;
	flex: 0 0 auto;
}
.ponca-lc__modern-image--placeholder {
	background: linear-gradient(135deg, #E8EDF1 0%, #CAD4DD 100%);
}
.ponca-lc__modern-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	padding: 30px var(--plc-modern-card-content-pad, 40px) 40px;
	width: 100%;
	min-height: 241px;
}
.ponca-lc__modern-title {
	margin: 0;
	color: var(--plc-card-title-color, #0D0F0E);
	font-family: var(--plc-card-title-font-family, 'Cormorant Garamond', Georgia, serif);
	font-size: var(--plc-card-title-font-size, 32px);
	line-height: var(--plc-card-title-line-height, 37px);
	font-weight: var(--plc-card-title-font-weight, 400);
	letter-spacing: var(--plc-card-title-letter-spacing, 0.576px);
}
.ponca-lc__modern-address {
	margin: 0;
	color: var(--plc-card-address-color, #474747);
	font-family: var(--plc-card-address-font-family, 'DM Sans', 'Helvetica Neue', sans-serif);
	font-size: var(--plc-card-address-font-size, 16px);
	line-height: var(--plc-card-address-line-height, 25px);
	font-weight: var(--plc-card-address-font-weight, 400);
}
.ponca-lc__modern-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: auto;
}
.ponca-lc__button {
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 14px 20px;
	border-radius: var(--plc-button-radius, 4px);
	font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
	font-size: 16px;
	line-height: 22px;
	font-weight: 600;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: opacity .2s ease, transform .2s ease;
}
.ponca-lc__button:hover,
.ponca-lc__button:focus-visible { opacity: .9; }
.ponca-lc__button--primary {
	background: var(--plc-primary-bg, #002F58);
	border: 1px solid var(--plc-primary-bg, #002F58);
	color: var(--plc-primary-color, #FFFFFF);
}
.ponca-lc__button--map {
	background: transparent;
	border: 1px solid var(--plc-secondary-color, #002F58);
	color: var(--plc-secondary-color, #002F58);
}
.ponca-lc__location-icon {
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	display: block;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* map popup */
.ponca-lc__map-modal {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.ponca-lc__map-modal.is-open { display: flex; }
.ponca-lc__map-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(13, 15, 14, .62);
}
.ponca-lc__map-modal-dialog {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: min(var(--plc-modal-width, 1100px), calc(100vw - 48px));
	height: min(var(--plc-modal-height, 680px), calc(100vh - 48px));
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 24px 70px rgba(0,0,0,.28);
}
.ponca-lc__map-modal-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 18px 22px;
	border-bottom: 1px solid #D9E0E6;
}
.ponca-lc__map-modal-heading {
	margin: 0;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 28px;
	line-height: 34px;
	font-weight: 500;
	color: #0D0F0E;
}
.ponca-lc__map-modal-close {
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: #F3F5F7;
	color: #0D0F0E;
	font-size: 30px;
	line-height: 1;
	cursor: pointer;
}
.ponca-lc__map-frame {
	display: block;
	width: 100%;
	flex: 1 1 auto;
	min-height: 0;
	border: 0;
}
body.ponca-lc-map-open { overflow: hidden; }

@media (max-width: 1100px) {
	.ponca-lc__modern-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.ponca-lc__modern-grid { grid-template-columns: 1fr; gap: 20px; }
	.ponca-lc__modern-content { padding: 24px; min-height: 0; }
	.ponca-lc__modern-image { height: 220px; }
	.ponca-lc__button { width: 100%; }
	.ponca-lc__map-modal { padding: 12px; }
	.ponca-lc__map-modal-dialog { width: calc(100vw - 24px); height: calc(100vh - 24px); border-radius: 14px; }
}
