/* =====================================================================
   Phartenaas — utilities.css
   sr-only, drop-cap, text-center, visibility helpers, print
   ===================================================================== */

.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.u-text-center { text-align: center; }
.u-text-right  { text-align: right; }

.u-mt-0  { margin-top: 0 !important; }
.u-mt-16 { margin-top: var(--s-16) !important; }
.u-mt-24 { margin-top: var(--s-24) !important; }
.u-mt-32 { margin-top: var(--s-32) !important; }
.u-mt-48 { margin-top: var(--s-48) !important; }

.u-mb-0  { margin-bottom: 0 !important; }
.u-mb-16 { margin-bottom: var(--s-16) !important; }
.u-mb-24 { margin-bottom: var(--s-24) !important; }
.u-mb-32 { margin-bottom: var(--s-32) !important; }

.u-dim { color: var(--c-text-dim); }
.u-bright { color: var(--c-white); }

.u-italic { font-style: italic; }
.u-serif { font-family: var(--f-heading); }

.u-hide-mobile { }
@media (max-width: 767px) {
	.u-hide-mobile { display: none !important; }
}

.u-hide-desktop { display: none !important; }
@media (max-width: 1023px) {
	.u-hide-desktop { display: initial !important; }
}

/* ---------- Drop cap helper ---------- */
.drop-cap::first-letter {
	font-family: var(--f-heading);
	font-weight: 500;
	font-size: 3rem;
	float: left;
	line-height: 1;
	padding-right: var(--s-8);
	padding-top: var(--s-4);
	color: var(--c-text);
}

/* ---------- Reveal ---------- */
[data-reveal="fade"] {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 600ms var(--ease), transform 600ms var(--ease);
}

[data-reveal="fade"].is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ---------- Print ---------- */
@media print {
	.header, .footer, .ph-age-gate, .mobile-nav, .filter-bar, .tab-list {
		display: none !important;
	}

	body {
		background: #fff !important;
		color: #111 !important;
	}

	h1, h2, h3 {
		color: #111 !important;
	}

	.card, .framed-image {
		break-inside: avoid;
	}
}

/* ---------- Thank-you page checkmark ---------- */
.ty-icon {
	width: 64px;
	height: 64px;
	color: var(--c-accent);
	margin: 0 auto var(--s-24);
	display: flex;
	align-items: center;
	justify-content: center;
}

.ty-icon svg {
	width: 100%;
	height: 100%;
}

/* ---------- Google Maps embed ---------- */
.maps-embed {
	margin-top: var(--s-32);
	border-radius: var(--r-md);
	overflow: hidden;
	background: var(--c-surface);
	border: 1px solid var(--c-border);
}

.maps-embed iframe {
	width: 100%;
	height: 320px;
	border: 0;
	display: block;
}

/* ---------- Location details block ---------- */
.location-details {
	display: flex;
	flex-direction: column;
	gap: var(--s-24);
}

.location-details__item {
	display: flex;
	flex-direction: column;
	gap: var(--s-4);
}

.location-details__label {
	font-family: var(--f-body);
	font-weight: 500;
	font-size: 0.6875rem;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--c-accent-sec);
}

.location-details__value {
	color: var(--c-text);
	font-size: 0.9375rem;
	line-height: 1.7;
}

.location-details__value a {
	color: var(--c-text);
}

.location-details__value a:hover {
	color: var(--c-accent);
}

/* ---------- Hours table ---------- */
.hours-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.hours-table th,
.hours-table td {
	padding: var(--s-8) 0;
	text-align: left;
	border-bottom: 1px solid var(--c-border);
	color: var(--c-text);
	font-weight: 400;
}

.hours-table th {
	color: var(--c-text-dim);
	font-family: var(--f-body);
	font-weight: 500;
	width: 120px;
}

.hours-table tr:last-child th,
.hours-table tr:last-child td {
	border-bottom: 0;
}

/* ---------- Legal links row (under maps) ---------- */
.legal-links {
	text-align: center;
	font-size: 0.8125rem;
	color: var(--c-text-dim);
	margin-top: var(--s-24);
}

.legal-links a {
	color: var(--c-text-dim);
}

.legal-links a:hover {
	color: var(--c-accent);
}

.legal-links > * + *::before {
	content: '·';
	margin: 0 var(--s-8);
	color: var(--c-border);
}
