/************************************************************************************************/
/* PLACE DETAILS: BRAND TOKENS (ported 1:1 from the approved design export)                      */
/************************************************************************************************/

:root {
	--tbbia-pink: #E6007E;
	--tbbia-blue: #00ADEF;
	--tbbia-purple: #6C2D91;
	--tbbia-orange: #F47920;
	--tbbia-yellow: #FFF200;
	--tbbia-green: #00A651;
	--tbbia-navy: #0E1B29;
	--tbbia-dark: #111827;

	--tbbia-font-display: "Fredoka", sans-serif;
	--tbbia-font-outfit: "Outfit", sans-serif;
	--tbbia-font-sans: "Inter", sans-serif;

	--tbbia-radius-lg: 24px;
	--tbbia-radius-md: 16px;
	--tbbia-radius-sm: 12px;

	--tbbia-card-border: 2px solid var(--tbbia-dark);
	--tbbia-shadow: 4px 4px 0 0 var(--tbbia-dark);
	--tbbia-shadow-hover: 6px 6px 0 0 var(--tbbia-dark);
	--tbbia-shadow-sm: 2px 2px 0 0 var(--tbbia-dark);
	--tbbia-shadow-sm-hover: 3px 3px 0 0 var(--tbbia-dark);
}

/************************************************************************************************/
/* PLACE HERO                                                                                     */
/************************************************************************************************/

.tbbia-place-hero {
	position: relative;
	font-family: var(--tbbia-font-sans);
}

.tbbia-hero-media {
	position: relative;
	border-radius: var(--tbbia-radius-lg);
	overflow: hidden;
	height: 256px;
	background: var(--tbbia-navy);
	border: var(--tbbia-card-border);
	box-shadow: var(--tbbia-shadow);
}

/*  !important here is deliberate -- the theme's global image reset (max-width/height:auto
    style rules applied to every <img>) was winning over this and forcing the photo back to
    its intrinsic size instead of filling/containing inside the fixed hero box  */
.tbbia-hero-image {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	max-height: 100% !important;
	/*  contain (not cover) so the full uploaded photo is always visible -- letterbox bars
	    fall back to the navy brand background instead of cropping any of the image  */
	object-fit: contain !important;
	object-position: center !important;
	margin: 0 !important;
}

.tbbia-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(14, 27, 41, 0.85), rgba(14, 27, 41, 0.3) 60%, transparent);
}

/*  badges + content are pinned to the top/bottom of the fixed-height media box independently,
    so the photo always covers the exact same box no matter how much title/tagline text there is  */
.tbbia-hero-badges-top {
	position: absolute;
	top: 16px;
	left: 16px;
	right: 16px;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	flex-wrap: wrap;
}

.tbbia-hero-categories {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.tbbia-hero-content {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 24px;
	z-index: 2;
}

.tbbia-hero-title {
	color: #ffffff;
	font-family: var(--tbbia-font-display);
	font-size: clamp(28px, 4vw, 48px);
	font-weight: 800;
	letter-spacing: -0.01em;
	margin: 0 0 8px;
	line-height: 1.1;
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
}

/************************************************************************************************/
/* SHARED: TICKET TAG, PILLS, BADGES, CHIPS, BUTTONS                                              */
/************************************************************************************************/

.tbbia-tag {
	display: inline-block;
	background: var(--tbbia-pink);
	color: #fff;
	font-family: var(--tbbia-font-outfit);
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 4px 12px;
	transform: rotate(-3deg);
	border: 1px dashed #fff;
	box-shadow: var(--tbbia-shadow-sm);
}

.tbbia-tag--panel {
	position: absolute;
	top: -20px;
	left: 32px;
	z-index: 3;
	margin-bottom: 0;
}

.tbbia-heading-dot {
	display: inline-block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--tbbia-pink);
	animation: tbbia-pulse 2s ease-in-out infinite;
}

.tbbia-pill {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	font-family: var(--tbbia-font-outfit);
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #fff;
	border: 1px solid rgba(17, 24, 39, 0.2);
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.tbbia-hero-categories .tbbia-pill:nth-child(4n+1),
.tbbia-amenities-categories .tbbia-pill:nth-child(4n+1) { background: var(--tbbia-pink); }
.tbbia-hero-categories .tbbia-pill:nth-child(4n+2),
.tbbia-amenities-categories .tbbia-pill:nth-child(4n+2) { background: var(--tbbia-blue); }
.tbbia-hero-categories .tbbia-pill:nth-child(4n+3),
.tbbia-amenities-categories .tbbia-pill:nth-child(4n+3) { background: var(--tbbia-purple); }
.tbbia-hero-categories .tbbia-pill:nth-child(4n+4),
.tbbia-amenities-categories .tbbia-pill:nth-child(4n+4) { background: var(--tbbia-orange); }

/**/
/* CLICKABLE CATEGORY PILL (links to filtered directory) */
/**/
.tbbia-pill--link {
	text-decoration: none;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.tbbia-pill--link:hover {
	transform: translateY(-1px) rotate(-1deg);
	box-shadow: 0 6px 10px -2px rgba(0, 0, 0, 0.25);
	filter: brightness(1.05);
}

.tbbia-pill--link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.tbbia-badge {
	display: inline-block;
	background: var(--tbbia-yellow);
	color: var(--tbbia-dark);
	font-family: var(--tbbia-font-outfit);
	font-weight: 800;
	font-size: 11px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 6px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
	margin-bottom: 10px;
}

.tbbia-chip-row,
.tbbia-tags-block {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.tbbia-chip {
	display: inline-block;
	text-decoration: none;
	transition: transform 0.15s ease;
}

.tbbia-chip--feature {
	font-family: var(--tbbia-font-outfit);
	font-size: 12px;
	font-weight: 800;
	padding: 8px 14px;
	border-radius: var(--tbbia-radius-sm);
	border: 1px solid;
}

.tbbia-chip--feature:hover {
	transform: translateY(-2px);
}

/**/
/* CLICKABLE AMENITY CHIP (links to filtered directory) */
/**/
.tbbia-chip--link {
	cursor: pointer;
}

.tbbia-chip--link:focus-visible {
	outline: 2px solid var(--tbbia-purple);
	outline-offset: 2px;
}

.tbbia-chip-row .tbbia-chip--feature:nth-child(4n+1) { background: rgba(230, 0, 126, 0.1); color: var(--tbbia-pink); border-color: rgba(230, 0, 126, 0.3); }
.tbbia-chip-row .tbbia-chip--feature:nth-child(4n+2) { background: rgba(0, 173, 239, 0.1); color: var(--tbbia-blue); border-color: rgba(0, 173, 239, 0.3); }
.tbbia-chip-row .tbbia-chip--feature:nth-child(4n+3) { background: rgba(108, 45, 145, 0.1); color: var(--tbbia-purple); border-color: rgba(108, 45, 145, 0.3); }
.tbbia-chip-row .tbbia-chip--feature:nth-child(4n+4) { background: rgba(244, 121, 32, 0.1); color: var(--tbbia-orange); border-color: rgba(244, 121, 32, 0.3); }

.tbbia-chip--tag {
	background: #f3f4f6;
	color: #4b5563;
	font-family: var(--tbbia-font-sans);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 6px;
}

.tbbia-chip--tag:hover {
	background: #e5e7eb;
}

/* generic pill button base -- specific variants below match PrimaryCTA / outline styles exactly */
.tbbia-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 999px;
	font-family: var(--tbbia-font-outfit);
	font-weight: 800;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	text-decoration: none;
	border: 2px solid var(--tbbia-dark);
	box-shadow: var(--tbbia-shadow);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tbbia-btn:hover {
	transform: translate(-2px, -2px);
	box-shadow: var(--tbbia-shadow-hover);
}

.tbbia-btn:active {
	transform: translate(0, 0);
	box-shadow: var(--tbbia-shadow);
}

.tbbia-btn--primary {
	background: var(--tbbia-accent, var(--tbbia-pink));
	color: #fff;
	width: 100%;
}

.tbbia-btn-arrow {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	color: var(--tbbia-accent, var(--tbbia-pink));
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 800;
}

.tbbia-btn--outline {
	background: #fff;
	color: var(--tbbia-dark);
}

/************************************************************************************************/
/* INFO PANEL CARD                                                                                */
/************************************************************************************************/

.tbbia-info-panel {
	--tbbia-accent: var(--tbbia-pink);
	position: relative;
	background: #fff;
	border: var(--tbbia-card-border);
	border-radius: var(--tbbia-radius-lg);
	box-shadow: var(--tbbia-shadow);
	padding: 32px 24px 24px;
	font-family: var(--tbbia-font-sans);
}

.tbbia-info-row {
	padding: 14px 0;
	border-top: 1px solid #e5e7eb;
}

.tbbia-info-row:first-of-type {
	border-top: none;
	padding-top: 0;
}

.tbbia-eyebrow {
	display: block;
	font-family: var(--tbbia-font-outfit);
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #9ca3af;
	margin-bottom: 8px;
}

.tbbia-info-status {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
}

.tbbia-info-status .tbbia-eyebrow {
	margin-bottom: 0;
}

.tbbia-status-pill {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	font-family: var(--tbbia-font-outfit);
	font-weight: 800;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	border: 1px solid;
	animation: tbbia-pulse 2s ease-in-out infinite;
}

.tbbia-status-pill--open {
	background: rgba(0, 166, 81, 0.1);
	color: var(--tbbia-green);
	border-color: rgba(0, 166, 81, 0.3);
}

.tbbia-status-pill--closed {
	background: rgba(230, 0, 126, 0.1);
	color: var(--tbbia-pink);
	border-color: rgba(230, 0, 126, 0.3);
}

@keyframes tbbia-pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.6; }
}

.tbbia-address {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--tbbia-navy);
}

.tbbia-contact-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--tbbia-font-outfit);
	font-weight: 800;
	font-size: 14px;
	text-decoration: none;
	color: var(--tbbia-orange);
}

.tbbia-contact-link:hover {
	color: var(--tbbia-pink);
}

.tbbia-contact-link--website {
	color: var(--tbbia-blue);
}

.tbbia-contact-link--website:hover {
	color: var(--tbbia-purple);
}

.tbbia-external-icon {
	font-size: 10px;
	opacity: 0.6;
}

/************************************************************************************************/
/* HOURS ACCORDION (native <details>, no JS)                                                     */
/************************************************************************************************/

.tbbia-hours-accordion summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 12px;
	text-align: left;
	padding: 10px 12px;
	background: #fff;
	border: 2px solid var(--tbbia-dark);
	border-radius: var(--tbbia-radius-sm);
	box-shadow: var(--tbbia-shadow-sm);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tbbia-hours-accordion summary:hover {
	transform: translate(-1px, -1px);
	box-shadow: var(--tbbia-shadow-sm-hover);
}

.tbbia-hours-accordion summary::-webkit-details-marker {
	display: none;
}

/**/
/* SUMMARY: CLOCK BADGE, LABELS, CHEVRON */
/**/
.tbbia-hours-summary-icon {
	flex-shrink: 0;
	width: 34px;
	height: 34px;
	margin: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	border: 2px solid var(--tbbia-dark);
	background: var(--tbbia-purple);
	color: #fff;
	font-size: 14px;
	box-shadow: var(--tbbia-shadow-sm);
}

.tbbia-hours-summary-text {
	display: block;
	text-align: left;
}

.tbbia-hours-summary-label {
	display: block;
	font-family: var(--tbbia-font-outfit);
	font-weight: 800;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--tbbia-dark);
	text-align: left;
}

.tbbia-hours-summary-today {
	display: block;
	font-family: var(--tbbia-font-outfit);
	font-size: 12px;
	font-weight: 600;
	color: var(--tbbia-navy);
	margin-top: 3px;
	text-align: left;
}

.tbbia-hours-accordion summary::after {
	content: '\25BE';
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--tbbia-dark);
	color: var(--tbbia-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	transition: transform 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.tbbia-hours-accordion summary:hover::after {
	background: var(--tbbia-pink);
	color: #fff;
}

.tbbia-hours-accordion[open] summary::after {
	transform: rotate(180deg);
}

/**/
/* EXPANDED DAY LIST */
/**/
.tbbia-hours-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 10px;
	padding: 6px 10px;
	background: #fff;
	border: 2px solid var(--tbbia-dark);
	border-radius: var(--tbbia-radius-md);
	box-shadow: var(--tbbia-shadow-sm);
	font-family: var(--tbbia-font-outfit);
	font-size: 13px;
	display: block;
}

.tbbia-hours-table tbody {
	display: block;
}

.tbbia-hours-table tr {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 10px 8px;
	background: transparent;
	border-bottom: 2px dotted rgba(17, 24, 39, 0.12);
}

.tbbia-hours-table tr:last-child {
	border-bottom: 0;
}

.tbbia-hours-table th,
.tbbia-hours-table td {
	font-family: var(--tbbia-font-outfit);
	font-weight: 600;
	color: var(--tbbia-navy);
	text-transform: capitalize;
	padding: 0;
	border: 0;
	background: transparent;
}

.tbbia-hours-table th {
	text-align: left;
}

.tbbia-hours-table td {
	text-align: right;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/**/
/* NO ZEBRA STRIPING (override inherited theme/plugin table row backgrounds) */
/**/
.tbbia-hours-table tr:not(.tbbia-hours-today),
.tbbia-hours-table tr:not(.tbbia-hours-today) th,
.tbbia-hours-table tr:not(.tbbia-hours-today) td {
	background: transparent;
}

/**/
/* TODAY: HIGHLIGHTER ROW */
/**/
.tbbia-hours-table tr.tbbia-hours-today {
	margin: 6px 0;
	padding: 10px 12px;
	background: var(--tbbia-yellow);
	border: 2px solid var(--tbbia-dark);
	border-radius: var(--tbbia-radius-sm);
	box-shadow: var(--tbbia-shadow-sm);
}

.tbbia-hours-table tr.tbbia-hours-today th,
.tbbia-hours-table tr.tbbia-hours-today td {
	font-weight: 800;
	color: var(--tbbia-dark);
	background: transparent;
}

.tbbia-hours-table tr.tbbia-hours-today th::after {
	content: 'Today';
	display: inline-block;
	margin-left: 8px;
	padding: 2px 8px;
	border-radius: 999px;
	border: 1.5px solid var(--tbbia-dark);
	background: var(--tbbia-pink);
	color: #fff;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	vertical-align: middle;
}

/**/
/* CLOSED CHIP */
/**/
.tbbia-hours-closed {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	background: rgba(230, 0, 126, 0.1);
	color: var(--tbbia-pink);
	font-weight: 800;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/*  shown when a place has no hours on record -- neutral, not "closed"  */
.tbbia-hours-none {
	margin: 6px 0 0;
	font-family: var(--tbbia-font-outfit);
	font-size: 13px;
	font-weight: 600;
	color: var(--tbbia-navy);
	opacity: 0.7;
}

/************************************************************************************************/
/* SOCIAL CHANNELS                                                                                */
/************************************************************************************************/

.tbbia-social-row {
	display: flex;
	gap: 10px;
}

.tbbia-social-icon {
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	border: 2px solid var(--tbbia-dark);
	box-shadow: var(--tbbia-shadow-sm);
	color: #fff;
	font-size: 14px;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tbbia-social-icon:hover {
	transform: translateY(-2px);
	box-shadow: var(--tbbia-shadow-sm-hover);
}

.tbbia-social-svg {
	width: 16px;
	height: 16px;
	display: block;
	fill: currentColor;
}

.tbbia-social-icon--facebook { background: #1877F2; }
.tbbia-social-icon--instagram { background: linear-gradient(45deg, #F09433, #E10050, #BC1888); }
.tbbia-social-icon--twitter { background: #000; }
.tbbia-social-icon--tripadvisor { background: #34E0A1; color: var(--tbbia-dark); }

/************************************************************************************************/
/* ORDER ONLINE                                                                                   */
/************************************************************************************************/

.tbbia-delivery-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.tbbia-patron-badge {
	font-family: var(--tbbia-font-outfit);
	font-weight: 800;
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	background: var(--tbbia-pink);
	color: #fff;
	padding: 2px 8px;
	border-radius: 4px;
}

.tbbia-delivery-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.tbbia-jubzi-btn {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: var(--tbbia-yellow);
	color: var(--tbbia-dark);
	font-family: var(--tbbia-font-outfit);
	font-weight: 800;
	font-size: 12px;
	text-transform: uppercase;
	padding: 12px;
	border-radius: var(--tbbia-radius-sm);
	border: 2px solid var(--tbbia-dark);
	box-shadow: var(--tbbia-shadow-sm);
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tbbia-jubzi-btn:hover {
	transform: translateY(-1px);
	box-shadow: var(--tbbia-shadow-sm-hover);
}

.tbbia-jubzi-btn strong {
	color: var(--tbbia-pink);
	font-weight: 900;
}

.tbbia-lowfees-badge {
	background: var(--tbbia-pink);
	color: #fff;
	font-weight: 800;
	font-size: 8px;
	text-transform: uppercase;
	padding: 2px 6px;
	border-radius: 4px;
	animation: tbbia-pulse 2s ease-in-out infinite;
}

.tbbia-delivery-btn {
	display: block;
	text-align: center;
	background: #fff;
	font-family: var(--tbbia-font-outfit);
	font-weight: 900;
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	padding: 10px;
	border-radius: var(--tbbia-radius-sm);
	border: 2px solid var(--tbbia-dark);
	box-shadow: var(--tbbia-shadow-sm);
	text-decoration: none;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tbbia-delivery-btn:hover {
	transform: translateY(-1px);
	box-shadow: var(--tbbia-shadow-sm-hover);
}

.tbbia-delivery-btn--skip { color: #FF8200; }
.tbbia-delivery-btn--doordash { color: #FF3008; }
.tbbia-delivery-btn--ubereats { color: #06C167; grid-column: 1 / -1; }

/************************************************************************************************/
/* AMENITIES / MAP / VIDEO CONTENT BLOCKS                                                        */
/************************************************************************************************/

/*  !important below is deliberate: Hello Elementor / Elementor's global heading typography
    targets every h2/h3 tag site-wide and otherwise wins the cascade over this stylesheet,
    which is what was blowing these small labels up into giant page headings  */
.tbbia-block-heading {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	font-family: var(--tbbia-font-outfit) !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
	line-height: 1.3 !important;
	color: var(--tbbia-dark) !important;
	margin: 0 0 16px !important;
}

.tbbia-block-heading i {
	color: var(--tbbia-purple);
}

.tbbia-amenities-block,
.tbbia-about-block,
.tbbia-video-block {
	background: #fff;
	border: var(--tbbia-card-border);
	border-radius: var(--tbbia-radius-lg);
	box-shadow: var(--tbbia-shadow);
	padding: 24px;
	margin-bottom: 24px;
	font-family: var(--tbbia-font-sans);
}

.tbbia-tags-block {
	margin-top: 16px;
}

/**/
/* CATEGORY PILLS RELOCATED FROM THE HERO (mobile/tablet only -- see RESPONSIVE) */
/**/
.tbbia-amenities-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}

.tbbia-amenities-categories:last-child {
	margin-bottom: 0;
}

.tbbia-block-heading--about {
	padding-bottom: 12px !important;
	border-bottom: 2px dashed #f3f4f6 !important;
	margin-bottom: 16px !important;
}

.tbbia-about-content {
	color: var(--tbbia-navy);
	font-size: 15px;
	line-height: 1.7;
}

.tbbia-about-content p {
	margin: 0 0 16px;
}

.tbbia-about-content p:last-child {
	margin-bottom: 0;
}

/*  the map card uses full-bleed header/footer bands instead of the padded layout above,
    so it gets its own rules rather than sharing .tbbia-amenities-block  */
.tbbia-map-block {
	background: #fff;
	border: var(--tbbia-card-border);
	border-radius: var(--tbbia-radius-lg);
	box-shadow: var(--tbbia-shadow);
	overflow: hidden;
	margin-bottom: 24px;
	font-family: var(--tbbia-font-sans);
}

.tbbia-map-header-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	background: var(--tbbia-dark);
	color: #fff;
	padding: 14px 20px;
	font-family: var(--tbbia-font-outfit);
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.tbbia-map-latlng {
	color: var(--tbbia-blue);
	font-family: monospace;
	font-size: 10px;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
}

.tbbia-map-frame {
	height: 320px;
}

.tbbia-map-frame iframe {
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.tbbia-map-footer-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	background: #f9fafb;
	border-top: 2px dashed #e5e7eb;
	padding: 14px 20px;
}

.tbbia-map-address-line {
	font-size: 12px;
	font-weight: 500;
	color: #6b7280;
}

.tbbia-btn--blue {
	background: var(--tbbia-blue);
	color: #fff;
	padding: 10px 18px;
	font-size: 11px;
	box-shadow: var(--tbbia-shadow-sm);
}

.tbbia-btn--blue:hover {
	box-shadow: var(--tbbia-shadow-sm-hover);
}

.tbbia-btn--blue:active {
	box-shadow: var(--tbbia-shadow-sm);
}

.tbbia-video-frame {
	position: relative;
	padding-top: 56.25%;
	border-radius: var(--tbbia-radius-md);
	overflow: hidden;
	border: var(--tbbia-card-border);
}

.tbbia-video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.tbbia-map-empty-notice {
	background: #fff8e6;
	border: 1px dashed #e0b400;
	border-radius: 10px;
	padding: 12px 16px;
	font-size: 13px;
	color: #6b5900;
}

/************************************************************************************************/
/* RESPONSIVE                                                                                     */
/************************************************************************************************/

/*  hero image height steps up with viewport width, same as the approved design (256 / 320 / 420px)  */
@media (min-width: 640px) {
	.tbbia-hero-media {
		height: 320px;
	}
}

@media (min-width: 768px) {
	.tbbia-hero-media {
		height: 420px;
	}
}

@media (max-width: 480px) {
	.tbbia-delivery-grid {
		grid-template-columns: 1fr;
	}

	.tbbia-delivery-btn--ubereats {
		grid-column: auto;
	}
}

/**/
/* CATEGORY PILLS: in the hero on desktop, relocated into the amenities card on mobile + tablet
   (Elementor breakpoints: tablet <= 1024px, desktop >= 1025px) so they stop covering the image */
/**/
@media (max-width: 1024px) {
	.tbbia-hero-categories {
		display: none;
	}
}

@media (min-width: 1025px) {
	.tbbia-amenities-categories,
	.tbbia-amenities-block--mobile-only {
		display: none;
	}
}
