/*
 * Mall typography (this file only):
 * - Copy/UI body text: --sh-font-base steps 13→18px at main breakpoints (explicit px, not em/rem × html).
 * - html:has() mirror keeps rem/em layout (header, spacing); home/about/contact/cards use --sh-font-base.
 * - Do not use main-site menu classes on mall markup.
 */
body.shoppingmall-site {
	--sh-font-display: "Red Hat Display", sans-serif;
	--sh-font-base: 13px;
	--sh-home-section-title: calc(var(--sh-font-base) * 1.25);
	--sh-home-about-title: calc(var(--sh-font-base) * 2);
	--sh-home-body: var(--sh-font-base);
	--sh-home-meta-label: calc(var(--sh-font-base) * 0.75);
	--sh-home-meta-value: var(--sh-font-base);
	--sh-home-card-label: calc(var(--sh-font-base) * 0.7);
	--sh-home-card-title: calc(var(--sh-font-base) * 1.05);
	--sh-home-excerpt: var(--sh-font-base);
	--sh-home-contact-label: var(--sh-font-base);
	--sh-home-contact-body: var(--sh-font-base);
	font-size: 1em;
	--sh-font-body: "IBM Plex Sans", "Noto Sans TC", sans-serif;
	--sh-navy: #262f48;
	--sh-peach: #edba9f;
	/* Floor-plan pin: ~5% of map width (≈40px when map display width ≈800px) */
	--sh-map-pin-w-pct: 5%;
	--sh-header-height: 7.5rem;
	--sh-content-max: 1515px;
	/* List subnav + toolbar: mobile-first type; desktop overrides below */
	--sh-list-ui-font-size: calc(var(--sh-font-base) * 0.875);
	--sh-list-bar-height: 2.375rem;
	--sh-list-tab-gap: 1.25rem;
	--sh-list-tab-letter-spacing: 0.02em;
	--sh-list-pagination-font-size: var(--sh-font-base);
	--sh-list-pagination-arrow-size: calc(var(--sh-font-base) * 0.875);
	--sh-list-pagination-gap: 1.5em;
	/* Match header .general-container-inner left edge (main.css width calc(100% - 8em), max 1515px) */
	--sh-mall-content-width: min(var(--sh-content-max), calc(100vw - 8em));
	--sh-sub-hero-pad-x: max(4em, calc((100vw - var(--sh-mall-content-width)) / 2));
	--sh-sub-hero-pad-right: var(--sh-sub-hero-pad-x);
	/* Shop & Dine grid cols: ALL/A-Z, SHOP/Floor, DINE (tight, aligned) */
	--sh-list-tab-col-1: 3.25rem;
	--sh-list-tab-col-2: 4.5rem;
	--sh-list-tab-col-3: 3.5rem;
	/* main.css sets body color:#fff — reset for mall content on white backgrounds */
	font-family: var(--sh-font-display), "Noto Sans TC", sans-serif;
	color: var(--sh-navy);
	background: #fff;
}

/* Body copy (IBM Plex) — UI labels/titles inherit Red Hat from body. Same idea as main-site .txt-ibm */
body.shoppingmall-site .txt-ibm,
body.shoppingmall-site .sh-home-about__meta-label,
body.shoppingmall-site .sh-home-about__meta-value,
body.shoppingmall-site .sh-home-about__cta .outline-button,
body.shoppingmall-site .sh-home-contact__label,
body.shoppingmall-site .sh-footer-contact.outline-button,
body.shoppingmall-site .sh-card__category,
body.shoppingmall-site .sh-update-card__label,
body.shoppingmall-site .sh-update-card__excerpt,
body.shoppingmall-site .sh-happening-card__category,
body.shoppingmall-site .sh-happening-card__date,
body.shoppingmall-site .sh-tenant-detail__tag,
body.shoppingmall-site .sh-tenant-detail__fact dt,
body.shoppingmall-site .sh-tenant-detail__description,
body.shoppingmall-site .sh-tenant-detail__fact dd,
body.shoppingmall-site .sh-tenant-detail__location,
body.shoppingmall-site .sh-tenant-detail__floor,
body.shoppingmall-site .sh-hp-detail__fact dt,
body.shoppingmall-site .sh-hp-detail__fact dd,
body.shoppingmall-site .sh-hp-detail__share-label,
body.shoppingmall-site .sh-hp-detail__body,
body.shoppingmall-site .sh-hp-detail__body h2,
body.shoppingmall-site .sh-hp-detail__body h3,
body.shoppingmall-site .sh-hp-detail__section-title,
body.shoppingmall-site .sh-parking__richtext,
body.shoppingmall-site .sh-parking__block,
body.shoppingmall-site .sh-search-results__item-excerpt,
body.shoppingmall-site .sh-site-search__result-excerpt,
body.shoppingmall-site .sh-card__location {
	font-family: var(--sh-font-body);
}

/* Mall content columns (Figma 1920 → 1515px). Full-bleed sections keep width:100% on their outer shell. */
body.shoppingmall-site .general-container-inner {
	max-width: var(--sh-content-max);
}

/* Mall text utilities (fixed px; not tied to html root ladder) */
body.shoppingmall-site .txt-categories {
	font-size: 12px;
}

body.shoppingmall-site .txt-breadcrumbs {
	font-size: 14.4px;
}

@media only screen and (min-width: 769px) {
	body.shoppingmall-site .txt-categories {
		font-size: 14px;
	}
}

/* Mall pages: keep html root in sync with main.css breakpoints (do not duplicate elsewhere). */
@media only screen and (min-width: 0px) and (max-width: 479px) {
	html:has(body.shoppingmall-site) {
		font-size: 13px;
	}

	body.shoppingmall-site {
		--sh-font-base: 13px;
	}
}

@media only screen and (min-width: 480px) and (max-width: 639px) {
	html:has(body.shoppingmall-site) {
		font-size: 14px;
	}

	body.shoppingmall-site {
		--sh-font-base: 14px;
	}
}

@media only screen and (min-width: 640px) and (max-width: 1023px) {
	html:has(body.shoppingmall-site) {
		font-size: 15px;
	}

	body.shoppingmall-site {
		--sh-font-base: 15px;
	}
}

@media only screen and (min-width: 1024px) and (max-width: 1279px) {
	html:has(body.shoppingmall-site) {
		font-size: 16px;
	}

	body.shoppingmall-site {
		--sh-font-base: 16px;
	}
}

@media only screen and (min-width: 1280px) and (max-width: 1599px) {
	html:has(body.shoppingmall-site) {
		font-size: 17px;
	}

	body.shoppingmall-site {
		--sh-font-base: 17px;
	}
}

@media only screen and (min-width: 1600px) {
	html:has(body.shoppingmall-site) {
		font-size: 18px;
	}

	body.shoppingmall-site {
		--sh-font-base: 18px;
	}
}

body.shoppingmall-site .sh-site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	background: var(--sh-navy);
	color: #fff;
	z-index: 100;
	transition: background-color 0.25s ease;
}

body.shoppingmall-site.sh-has-hero .sh-site-header {
	background: transparent;
}

body.shoppingmall-site.sh-has-hero .sh-site-header.is-scrolled,
body.shoppingmall-site.sh-mobile-nav-open.sh-has-hero .sh-site-header {
	background: var(--sh-navy);
}

body.shoppingmall-site.sh-mall-inner .sh-tenant-detail__top,
body.shoppingmall-site.sh-mall-inner .sh-hp-detail,
body.shoppingmall-site.sh-mall-inner .sh-hp-detail--simple {
	padding-top: calc(var(--sh-header-height) + 1.25em);
}

body.shoppingmall-site:not(.sh-home):not(.sh-mall-inner) .sh-static-page {
	padding-top: calc(var(--sh-header-height) + 1.25em);
}

body.shoppingmall-site .sh-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5em;
	padding: 1.25em 0 1.1em;
}

body.shoppingmall-site .sh-logo {
	display: flex;
	align-items: center;
	gap: 0.85em;
	text-decoration: none;
	color: #fff;
	flex-shrink: 0;
	position: relative;
	z-index: 2;
}

body.shoppingmall-site .sh-logo__mark {
	width: 1.5em;
	height: 2.4em;
	background: url(/img/logo-white.svg) center / contain no-repeat;
	flex-shrink: 0;
}

body.shoppingmall-site .sh-logo__text {
	display: flex;
	flex-direction: column;
	font-family: "Red Hat Display", sans-serif;
	font-size: 0.55em;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

body.shoppingmall-site .sh-logo--image .sh-logo__img {
	display: block;
	width: 172px;
	height: 72px;
	max-width: none;
	object-fit: contain;
	object-position: left center;
}

body.shoppingmall-site .sh-site-header__right {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.65em;
	flex: 1;
	min-width: 0;
	width: 100%;
}

body.shoppingmall-site .sh-header-util {
	display: flex;
	align-items: center;
	align-self: flex-end;
	flex-wrap: nowrap;
	font-family: "Red Hat Display", sans-serif;
	font-size: 0.611em;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #fff;
}

body.shoppingmall-site .sh-header-util__meta {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}

body.shoppingmall-site .sh-header-util__temp {
	margin-left: 1.35em;
}

body.shoppingmall-site .sh-header-util__sep {
	flex: 0 0 auto;
	padding: 0 1.05em;
	color: #fff;
	opacity: 0.9;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1;
}

body.shoppingmall-site .sh-header-util__icon {
	flex-shrink: 0;
	display: block;
	width: 15px;
	height: 15px;
}

body.shoppingmall-site .sh-header-util__label {
	line-height: 1;
}

body.shoppingmall-site .sh-header-util__search {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	color: #fff;
	text-decoration: none;
	border: none;
	background: transparent;
	padding: 0;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	cursor: pointer;
}

body.shoppingmall-site .sh-header-util__search:hover {
	opacity: 0.82;
}

/* Site search overlay (The Twins–style) */
body.shoppingmall-site .sh-site-search {
	position: fixed;
	inset: 0;
	z-index: 200;
}

body.shoppingmall-site .sh-site-search:not([hidden]) {
	display: block;
}

body.shoppingmall-site .sh-site-search__panel {
	position: absolute;
	inset: 0;
	background: var(--sh-navy);
	color: #fff;
	overflow: hidden;
	display: grid;
	grid-template-rows: auto minmax(0, 1fr);
}

/* Close aligns with search row like thetwins.com.hk (outside content column, slightly above field) */
body.shoppingmall-site .sh-site-search__field-row {
	position: relative;
}

body.shoppingmall-site .sh-site-search__close {
	position: absolute;
	top: -1.5rem;
	right: -3rem;
	z-index: 10;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: none;
	background: transparent;
	color: #fff;
	cursor: pointer;
}

body.shoppingmall-site .sh-site-search__close svg {
	display: block;
	flex-shrink: 0;
}

body.shoppingmall-site .sh-site-search__close:hover {
	opacity: 0.65;
}

body.shoppingmall-site .sh-site-search__head {
	z-index: 2;
	padding: 5.5em 0 0.75em;
	background: var(--sh-navy);
}

@media only screen and (max-width: 900px) {
	body.shoppingmall-site .sh-site-search__close {
		position: fixed;
		top: 1.5rem;
		right: 1.5rem;
	}
}

body.shoppingmall-site .sh-site-search__scroll {
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

body.shoppingmall-site .sh-site-search__body {
	padding: 0 0 3em;
}

body.shoppingmall-site .sh-site-search__field {
	display: flex;
	align-items: center;
	gap: 0.85em;
	border-bottom: 1px solid rgba(255, 255, 255, 0.4);
	padding-bottom: 0.65em;
}

body.shoppingmall-site .sh-site-search__field-icon {
	flex-shrink: 0;
	color: #fff;
	opacity: 0.9;
}

body.shoppingmall-site .sh-site-search__input {
	flex: 1;
	min-width: 0;
	border: none;
	background: transparent;
	font-family: "Red Hat Display", sans-serif;
	font-size: clamp(1.15rem, 2.5vw, 1.65rem);
	font-weight: 400;
	color: #fff;
	outline: none;
}

body.shoppingmall-site .sh-site-search__input::placeholder {
	color: rgba(255, 255, 255, 0.5);
}

body.shoppingmall-site .sh-site-search__quick-label {
	margin: 2.25em 0 1em;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

body.shoppingmall-site .sh-site-search__quick {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25em 2.25em;
}

body.shoppingmall-site .sh-site-search__quick-link {
	font-family: "Red Hat Display", sans-serif;
	font-size: clamp(1.35rem, 3vw, 2rem);
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	line-height: 1.2;
}

body.shoppingmall-site .sh-site-search__quick-link:hover {
	opacity: 0.72;
}

body.shoppingmall-site .sh-site-search__results {
	margin-top: 1.25em;
}

body.shoppingmall-site .sh-site-search__result-group {
	margin-bottom: 1.5em;
}

body.shoppingmall-site .sh-site-search__result-group-title {
	margin: 0 0 0.65em;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

body.shoppingmall-site .sh-site-search__result-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.shoppingmall-site .sh-site-search__result-link {
	display: block;
	padding: 0.65em 0;
	color: #fff;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

body.shoppingmall-site .sh-site-search__result-link:hover {
	opacity: 0.75;
}

body.shoppingmall-site .sh-site-search__result-title {
	display: block;
	font-weight: 600;
	font-size: 1rem;
}

body.shoppingmall-site .sh-site-search__result-meta {
	display: block;
	margin-top: 0.2em;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

body.shoppingmall-site .sh-site-search__result-excerpt {
	display: block;
	margin-top: 0.25em;
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.4;
}

body.shoppingmall-site .sh-site-search__result-empty {
	margin: 0;
	color: rgba(255, 255, 255, 0.75);
}

body.shoppingmall-site .sh-site-search__result-more {
	margin: 1em 0 0;
	font-size: 0.85rem;
}

body.shoppingmall-site .sh-site-search__result-more a {
	color: #fff;
	text-decoration: underline;
}

body.shoppingmall-site .sh-site-search.is-loading .sh-site-search__field {
	opacity: 0.55;
}

body.shoppingmall-site.sh-site-search-open {
	overflow: hidden;
}

body.shoppingmall-site .sh-search-results {
	padding: calc(var(--sh-header-height) + 2em) 0 4em;
	background: #fff;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-search-results__title {
	font-family: "Red Hat Display", sans-serif;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin: 0 0 1em;
}

body.shoppingmall-site .sh-search-results__summary,
body.shoppingmall-site .sh-search-results__hint,
body.shoppingmall-site .sh-search-results__empty {
	margin: 0 0 2em;
	color: rgba(38, 47, 72, 0.75);
}

body.shoppingmall-site .sh-search-results__group {
	margin-bottom: 2.5em;
}

body.shoppingmall-site .sh-search-results__group-title {
	font-family: "Red Hat Display", sans-serif;
	font-size: 1.1rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin: 0 0 1em;
	padding-bottom: 0.5em;
	border-bottom: 1px solid rgba(38, 47, 72, 0.15);
}

body.shoppingmall-site .sh-search-results__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

body.shoppingmall-site .sh-search-results__item {
	border-bottom: 1px solid rgba(38, 47, 72, 0.08);
}

body.shoppingmall-site .sh-search-results__link {
	display: block;
	padding: 1em 0;
	color: var(--sh-navy);
	text-decoration: none;
}

body.shoppingmall-site .sh-search-results__link:hover .sh-search-results__item-title {
	opacity: 0.72;
}

body.shoppingmall-site .sh-search-results__item-title {
	display: block;
	font-weight: 600;
	font-size: 1.05rem;
}

body.shoppingmall-site .sh-search-results__item-meta {
	display: block;
	margin-top: 0.25em;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(38, 47, 72, 0.55);
}

body.shoppingmall-site .sh-search-results__item-excerpt {
	display: block;
	margin-top: 0.35em;
	font-size: 0.9rem;
	color: rgba(38, 47, 72, 0.7);
	line-height: 1.45;
}

body.shoppingmall-site .sh-site-header .sh-header-lang.header-lang-dropdown {
	position: relative;
	display: inline-block;
}

body.shoppingmall-site .sh-site-header .sh-header-lang .lang-dropdown-menu {
	background-color: var(--sh-navy);
	top: calc(100% + 8px);
}

body.shoppingmall-site .sh-site-header .header-lang-dropdown .lang-dropdown-btn {
	color: #fff;
	transform: none;
	position: relative;
	top: auto;
	right: auto;
}

body.shoppingmall-site .sh-site-header .header-lang-dropdown .lang-icon {
	filter: none;
	object-fit: contain;
}

body.shoppingmall-site .sh-site-header .header-lang-dropdown .lang-dropdown-btn .lang-icon[width] {
	width: 15px;
	height: 15px;
}

body.shoppingmall-site .sh-site-header .lang-dropdown-btn {
	background: transparent;
	border: none;
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0;
	font: inherit;
	letter-spacing: inherit;
	text-transform: uppercase;
}

/* .sh-header-util + .txt-small shrinks lang label — same readable size on desktop + mobile */
body.shoppingmall-site .sh-site-header .sh-header-lang.txt-small {
	font-size: 0.722em;
	letter-spacing: 0.1em;
}

body.shoppingmall-site .sh-site-header .sh-header-lang .current-lang-text {
	font-size: 1em;
	letter-spacing: 0.06em;
	line-height: 1.1;
}

body.shoppingmall-site .sh-header-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 1.75em 2em;
}

body.shoppingmall-site .sh-header-nav__link {
	color: #fff;
	text-decoration: none;
	font-size: 0.72em;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	opacity: 0.85;
}

body.shoppingmall-site .sh-header-nav__link:hover,
body.shoppingmall-site .sh-header-nav__link.is-active {
	opacity: 1;
}

/* Desktop header: logo column + nav column; nav type scales with header width (20px when space allows) */
@media only screen and (min-width: 769px) {
	body.shoppingmall-site .sh-site-header__inner {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: clamp(0.75rem, 2vw, 1.5rem);
	}

	body.shoppingmall-site .sh-site-header__inner .sh-logo {
		grid-column: 1;
		justify-self: start;
	}

	body.shoppingmall-site .sh-site-header__inner .sh-site-header__right {
		grid-column: 2;
		min-width: 0;
		width: 100%;
		max-width: 100%;
		align-items: stretch;
		container-type: inline-size;
		container-name: sh-header-right;
	}

	body.shoppingmall-site .sh-header-util {
		flex-shrink: 0;
		font-size: clamp(10px, 0.32vw + 7px, 14px);
	}

	body.shoppingmall-site .sh-header-util__sep {
		padding-left: clamp(0.35em, 0.9vw, 1.05em);
		padding-right: clamp(0.35em, 0.9vw, 1.05em);
	}

	body.shoppingmall-site .sh-site-header .sh-header-lang.txt-small {
		font-size: 1em;
	}

	body.shoppingmall-site .sh-header-nav {
		flex-wrap: nowrap;
		flex-shrink: 1;
		align-self: stretch;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
		justify-content: flex-end;
		column-gap: clamp(0.5rem, 1.35vw, 2rem);
		row-gap: 0;
		overflow-x: clip;
	}

	body.shoppingmall-site .sh-header-nav__link {
		flex-shrink: 0;
		white-space: nowrap;
	}

	body.shoppingmall-site .sh-logo--image .sh-logo__img {
		width: clamp(108px, 12vw + 2.5rem, 172px);
		height: auto;
		max-height: 4rem;
	}
}

body.shoppingmall-site .sh-header-menu-btn {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 2em;
	height: 2em;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
}

body.shoppingmall-site .sh-header-menu-btn__bar {
	display: block;
	height: 2px;
	background: #fff;
	width: 100%;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

body.shoppingmall-site.sh-mobile-nav-open .sh-header-menu-btn__bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

body.shoppingmall-site.sh-mobile-nav-open .sh-header-menu-btn__bar:nth-child(2) {
	opacity: 0;
}

body.shoppingmall-site.sh-mobile-nav-open .sh-header-menu-btn__bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

body.shoppingmall-site .sh-mobile-nav {
	display: none;
}

body.shoppingmall-site.sh-mobile-nav-open {
	overflow: hidden;
}

body.shoppingmall-site.sh-mobile-nav-open .sh-site-header {
	z-index: 200;
}

body.shoppingmall-site .sh-site-footer {
	background: var(--sh-navy);
	color: #fff;
	margin-top: auto;
	padding: 3em 0 0;
}

body.shoppingmall-site .sh-site-footer__main {
	display: flex;
	align-items: flex-start;
	margin: 0 auto;
	padding: 2em 0 2.5em;
}

body.shoppingmall-site .sh-site-footer__col {
	width: 100%;
}

body.shoppingmall-site .sh-site-footer__logo-link {
	display: inline-block;
	text-decoration: none;
	color: inherit;
}

body.shoppingmall-site .sh-site-footer__logo-img {
	display: block;
	width: 318px;
	height: 131px;
	max-width: 100%;
	object-fit: contain;
	object-position: left center;
}

body.shoppingmall-site .sh-site-footer .footer-logo-container {
	width: 318px;
	max-width: 100%;
	margin-bottom: 0;
}

body.shoppingmall-site .sh-site-footer .footer-logo-container > div {
	padding-bottom: 41.195%;
}

body.shoppingmall-site .sh-site-footer__nav {
	display: flex;
	flex-direction: column;
	gap: 0.65em;
}

body.shoppingmall-site .sh-footer-nav__link {
	color: #fff;
	text-decoration: none;
	font-family: var(--sh-font-display);
	letter-spacing: .5em;
	text-transform: uppercase;
}

body.shoppingmall-site .sh-site-footer__cta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.25em;
}

body.shoppingmall-site .sh-site-footer__cta > a {
	display: inline-block;
	line-height: 0;
}

body.shoppingmall-site .sh-footer-contact.outline-button {
	border-color: #fff;
	color: #fff;
	background: transparent;
	letter-spacing: 0.12em;
	padding: 0.75em 1.85em;
	position: static;
	transform: none;
}

body.shoppingmall-site .sh-footer-sns.sns-container {
	justify-content: flex-start;
	width: 100%;
}

/* Copyright row — same 3-column flex as main site footer (empty | menu col | CTA col) */
body.shoppingmall-site .sh-site-footer__legal.copyright-container {
	display: flex;
	margin: 3em auto 0;
	padding: 0 0 5em;
	border-top: none;
}

body.shoppingmall-site .sh-site-footer .copyright-container-inner {
	display: flex;
	width: 100%;
}

body.shoppingmall-site .sh-site-footer .copyright-container .footer-column {
	width: 100%;
}

body.shoppingmall-site .sh-site-footer .copyright-container .footer-column > .txt-mini {
	letter-spacing: 0;
	margin: 0;
}

body.shoppingmall-site .sh-site-footer .copyright-container .footer-column > div + div {
	margin-top: 0.33em;
}

body.shoppingmall-site .sh-site-footer .copyright-container .footer-column a {
	color: inherit;
	text-decoration: none;
}

/* Match main site: stack copyright row below 1024px (avoid side-by-side legal / copyright) */
@media only screen and (max-width: 1023px) {
	body.shoppingmall-site .sh-site-footer .copyright-container-inner {
		display: block;
		margin-top: 1em;
	}

	body.shoppingmall-site .sh-site-footer .copyright-container .footer-column[aria-hidden="true"] {
		display: none;
	}

	body.shoppingmall-site .sh-site-footer .copyright-container .footer-column {
		width: 100%;
		max-width: none;
		margin-bottom: 0.33em;
		text-align: left;
	}
}

body.shoppingmall-site .shoppingmall-home {
	min-height: 50vh;
	padding: 6em 0 4em;
}

body.shoppingmall-site .sh-directory {
	background: #fff;
	color: #262f48;
	padding-bottom: 4em;
}

body.shoppingmall-site .sh-hero {
	position: relative;
	min-height: 42vh;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

body.shoppingmall-site .sh-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}

body.shoppingmall-site .sh-hero__title {
	position: relative;
	z-index: 1;
	font-size: clamp(2rem, 6vw, 3.5rem);
	letter-spacing: 0.12em;
	text-align: center;
	text-transform: uppercase;
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	padding: 0 1.5em;
}

body.shoppingmall-site .sh-subnav {
	display: flex;
	align-items: center;
	justify-content: center;
	background: #262f48;
	padding: 0;
	min-height: var(--sh-list-bar-height);
	box-sizing: border-box;
}

body.shoppingmall-site .sh-subnav__inner {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	min-height: var(--sh-list-bar-height);
	gap: var(--sh-list-tab-gap);
}

body.shoppingmall-site .sh-directory {
	/* 110px @ desktop; mobile scales with mall --sh-font-base (18px design reference) */
	--sh-directory-bar-height: calc(110px * var(--sh-font-base) / 18);
	--sh-directory-filter-tab-width: calc(100px * var(--sh-font-base) / 18);
	--sh-directory-filter-tab-gap: calc(25px * var(--sh-font-base) / 18);
}

body.shoppingmall-site .sh-directory .sh-subnav {
	justify-content: flex-start;
	overflow: visible;
	min-height: var(--sh-directory-bar-height);
	height: var(--sh-directory-bar-height);
}

body.shoppingmall-site .sh-directory .sh-subnav__inner.general-container-inner {
	max-width: var(--sh-content-max);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-directory .sh-subnav__inner {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: flex-start;
	align-items: center;
	gap: var(--sh-directory-filter-tab-gap);
	min-height: var(--sh-directory-bar-height);
	height: 100%;
}

body.shoppingmall-site .sh-directory .sh-subnav__link {
	box-sizing: border-box;
	flex: 0 0 var(--sh-directory-filter-tab-width);
	width: var(--sh-directory-filter-tab-width);
	min-width: var(--sh-directory-filter-tab-width);
	max-width: var(--sh-directory-filter-tab-width);
	min-height: var(--sh-directory-bar-height);
	height: 100%;
	justify-content: center;
	text-align: center;
	overflow: visible;
	padding-inline: 0.15rem;
}

body.shoppingmall-site .sh-subnav__link {
	display: flex;
	align-items: center;
	min-height: var(--sh-list-bar-height);
	color: #fff;
	text-decoration: none;
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	letter-spacing: var(--sh-list-tab-letter-spacing);
	opacity: 1;
	line-height: 1.2;
}

body.shoppingmall-site .sh-subnav__link.is-active {
	color: var(--sh-peach);
}

body.shoppingmall-site .sh-directory .sh-subnav__link {
	text-transform: uppercase;
}

body.shoppingmall-site .sh-toolbar {
	background: #fff;
}

body.shoppingmall-site .sh-toolbar__bar {
	display: flex;
	justify-content: center;
	border-bottom: 1px solid rgba(38, 47, 72, 0.2);
}

body.shoppingmall-site .sh-toolbar__bar-inner {
	padding: 0;
	display: flex;
	align-items: stretch;
	min-height: var(--sh-list-bar-height);
	height: var(--sh-list-bar-height);
	box-sizing: border-box;
}

body.shoppingmall-site .sh-directory .sh-toolbar__bar-inner {
	min-height: var(--sh-directory-bar-height);
	height: var(--sh-directory-bar-height);
}

body.shoppingmall-site .sh-directory .sh-toolbar__row--directory {
	min-height: var(--sh-directory-bar-height);
}

body.shoppingmall-site .sh-toolbar__row {
	display: flex;
	flex: 1;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: space-between;
	gap: 1.5rem 2.5rem;
	width: 100%;
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-toolbar__modes {
	display: flex;
	align-self: stretch;
	align-items: stretch;
	gap: var(--sh-list-tab-gap);
}

body.shoppingmall-site .sh-directory .sh-toolbar__modes--desktop {
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	gap: var(--sh-directory-filter-tab-gap);
}

body.shoppingmall-site .sh-directory .sh-toolbar__modes--desktop .sh-toolbar__mode {
	flex: 0 0 var(--sh-directory-filter-tab-width);
	width: var(--sh-directory-filter-tab-width);
	min-width: var(--sh-directory-filter-tab-width);
	max-width: var(--sh-directory-filter-tab-width);
}

body.shoppingmall-site .sh-directory .sh-toolbar__mode {
	justify-content: center;
	text-align: center;
}

body.shoppingmall-site .sh-directory .sh-toolbar__mode.txt-tab {
	text-transform: none;
}

body.shoppingmall-site .sh-directory .sh-toolbar__mode::after {
	height: 5px;
}

body.shoppingmall-site .sh-directory .sh-toolbar__search-icon {
	opacity: 1;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-directory .sh-toolbar__search-icon svg {
	width: calc(var(--sh-font-base) * 1.25);
	height: calc(var(--sh-font-base) * 1.25);
}

body.shoppingmall-site .sh-directory .sh-toolbar__search input[type="search"].txt-tab {
	text-transform: none;
}

body.shoppingmall-site .sh-directory .sh-toolbar__search input[type="search"].txt-tab::placeholder {
	text-transform: none;
}

body.shoppingmall-site .sh-toolbar__mode {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	align-self: stretch;
	border: none;
	background: transparent;
	cursor: pointer;
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	line-height: 1.2;
	color: var(--sh-navy);
	padding: 0;
	margin: 0;
	letter-spacing: var(--sh-list-tab-letter-spacing);
	opacity: 1;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-toolbar__mode::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 3px;
	background: transparent;
	pointer-events: none;
}

body.shoppingmall-site .sh-directory .sh-toolbar__modes--desktop .sh-toolbar__mode::after {
	right: auto;
	width: 100%;
}

body.shoppingmall-site .sh-toolbar__mode.is-active::after {
	background: var(--sh-navy);
}

body.shoppingmall-site .sh-toolbar__mode:not(.is-active) {
	color: #8d8d8d;
}

body.shoppingmall-site .sh-toolbar__mode.is-active {
	font-weight: 500;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-toolbar__search {
	display: inline-flex;
	align-items: center;
	align-self: center;
	gap: 0.5rem;
	min-width: 11rem;
	max-width: 22rem;
	margin-left: auto;
	margin-bottom: 0;
	border: none;
	border-bottom: 1px solid rgba(38, 47, 72, 0.35);
	padding: 0;
	box-sizing: border-box;
	background: transparent;
}

body.shoppingmall-site .sh-toolbar__search-icon {
	display: flex;
	color: var(--sh-navy);
	opacity: 0.65;
	flex-shrink: 0;
	line-height: 0;
}

body.shoppingmall-site .sh-toolbar__search input[type="search"] {
	border: none;
	padding: 0;
	margin: 0;
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	line-height: 1.2;
	min-width: 8rem;
	flex: 1;
	background: transparent;
	color: var(--sh-navy);
	outline: none;
}

body.shoppingmall-site .sh-toolbar__search input::placeholder {
	color: rgba(38, 47, 72, 0.45);
	font-weight: 500;
}

body.shoppingmall-site .sh-toolbar__search input {
	width: 100%;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-toolbar__panels {
	padding: 1.25em 0 1em;
}

body.shoppingmall-site .sh-toolbar__search-wrap {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	flex: 1;
	min-width: 0;
	margin-left: auto;
}

body.shoppingmall-site .sh-toolbar__filter-btn {
	display: none;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 1px solid rgba(38, 47, 72, 0.2);
	background: #fff;
	color: var(--sh-navy);
	cursor: pointer;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-toolbar__filter-btn-icon {
	display: block;
}

body.shoppingmall-site .sh-toolbar__search-icon-svg--mobile {
	display: none;
}

body.shoppingmall-site .sh-toolbar__modes--mobile {
	display: none;
}

body.shoppingmall-site .sh-directory-filter-drawer__backdrop,
body.shoppingmall-site .sh-directory-filter-drawer__toolbar,
body.shoppingmall-site .sh-directory-filter-drawer__footer,
body.shoppingmall-site .sh-directory-filter-drawer__close {
	display: none;
}

body.shoppingmall-site .sh-directory .sh-directory-filter-drawer {
	display: block;
}

body.shoppingmall-site .sh-directory-filter-drawer__sheet {
	display: block;
}

body.shoppingmall-site .sh-filter-panel {
	margin-bottom: 0.25em;
}

body.shoppingmall-site .sh-alpha,
body.shoppingmall-site .sh-floor-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em 0.5em;
	align-items: center;
}

body.shoppingmall-site .sh-alpha__btn,
body.shoppingmall-site .sh-floor-filter__btn {
	border: none;
	background: transparent;
	cursor: pointer;
	padding: 0;
	color: #262f48;
	line-height: 1.2;
}

body.shoppingmall-site .sh-alpha__btn:not(.txt-tab),
body.shoppingmall-site .sh-floor-filter__btn:not(.txt-tab) {
	font-family: "Red Hat Display", sans-serif;
	font-size: var(--sh-list-ui-font-size);
	font-weight: 500;
	letter-spacing: 0.02em;
}

body.shoppingmall-site .sh-alpha__btn.is-active,
body.shoppingmall-site .sh-floor-filter__btn.is-active {
	color: #edba9f;
	font-weight: 500;
}

body.shoppingmall-site .sh-alpha__btn.is-disabled,
body.shoppingmall-site .sh-floor-filter__btn.is-disabled {
	color: #c4c4c4;
	cursor: default;
	pointer-events: none;
}

body.shoppingmall-site .sh-directory .sh-alpha__btn.txt-tab,
body.shoppingmall-site .sh-directory .sh-floor-filter__btn.txt-tab {
	text-transform: none;
}

body.shoppingmall-site .sh-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 2em 1.25em;
	padding-bottom: 3em;
}

body.shoppingmall-site .sh-card {
	display: block;
	text-decoration: none;
	color: inherit;
}

body.shoppingmall-site .sh-card__logo {
	position: relative;
	overflow: hidden;
	background: #fff;
	border: 1px solid #000;
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25em;
	margin-bottom: 0.85em;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-card--coming-soon {
	cursor: default;
}

body.shoppingmall-site .sh-card__coming-soon {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	background: var(--sh-navy);
	color: #fff;
	text-align: center;
	font-family: var(--sh-font-display);
	padding: 0.35em 0.35em;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-card__logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

body.shoppingmall-site .sh-card__name:not(.txt-sub) {
	font-weight: 700;
	font-size: 0.95em;
	margin-bottom: 0.25em;
}

body.shoppingmall-site .sh-directory .sh-card__name.txt-sub {
	margin-bottom: 0.25em;
	letter-spacing: 0;
	line-height: 1.3;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-card__location:not(.txt-ibm) {
	font-size: 0.8em;
	color: var(--sh-navy);
	margin-bottom: 0.5em;
	line-height: 1.4;
}

body.shoppingmall-site .sh-card__location.txt-ibm {
	color: var(--sh-navy);
	margin-bottom: 0.5em;
	line-height: 1.4;
}

body.shoppingmall-site .sh-card__category {
	display: inline-block;
	background: #edba9f;
	color: #000;
	padding: 0.35em 0.65em;
}

body.shoppingmall-site .sh-card__category:not(.txt-categories) {
	font-size: 0.7em;
	letter-spacing: 0.02em;
}

body.shoppingmall-site .sh-directory .sh-card__category.txt-categories {
	letter-spacing: normal;
}

body.shoppingmall-site .sh-empty {
	text-align: center;
	color: #666;
	padding: 2em 0;
}

@media only screen and (max-width: 1024px) {
	body.shoppingmall-site .sh-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media only screen and (min-width: 769px) and (max-width: 1023px) {
	body.shoppingmall-site .sh-site-footer__main {
		align-items: center;
	}
    body.shoppingmall-site .sh-site-footer__logo-link {
        width: 90%;
    }
	body.shoppingmall-site .sh-footer-sns.sns-container {
		justify-content: center;
	}
}
@media only screen and (max-width: 768px) {
	/* Header bar height: em scale like main .header-container-inner (6em total) */
	body.shoppingmall-site {
		--sh-header-height: 6em;
		/* Header icons: same square tap target + glyph (≈26px @ 18px html); rem — search sits inside .sh-header-util */
		--sh-mobile-header-control: 1.444rem;
		--sh-mobile-header-icon: 1.444rem;
		--sh-mobile-menu-bar-w: 1.222rem;
		/* Mobile overlay nav: 26px / 20px spec → em on mall root */
		--sh-mobile-nav-link-size: 1.444em;
		--sh-mobile-nav-lang-size: 1.111em;
	}

	body.shoppingmall-site .sh-logo--image .sh-logo__img {
		width: auto;
		height: 2.35em;
		max-width: min(42vw, 13.5rem);
	}

	body.shoppingmall-site .sh-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.5em 1em;
	}

	body.shoppingmall-site .sh-subnav {
		gap: 1.5em;
	}

	body.shoppingmall-site .sh-toolbar__bar-inner,
	body.shoppingmall-site .sh-happenings__toolbar-inner {
		height: auto;
	}

	body.shoppingmall-site .sh-toolbar__row,
	body.shoppingmall-site .sh-happenings__toolbar-row {
		flex-wrap: nowrap;
		align-items: stretch;
		height: auto;
		min-height: var(--sh-list-bar-height);
	}

	/* Tab width: scaled via --sh-directory-filter-tab-width (not 100px). Gap: 25px. */
	body.shoppingmall-site .sh-directory {
		--sh-directory-filter-tab-gap: 25px;
	}

	body.shoppingmall-site .sh-happenings {
		--sh-directory-filter-tab-gap: 25px;
		/* Same fixed equal tabs as desktop; narrower width on phone only */
		--sh-happenings-tab-width: calc(140px * var(--sh-font-base) / 18);
	}

	body.shoppingmall-site .sh-directory .sh-subnav {
		justify-content: flex-start;
		align-items: center;
		height: auto;
		min-height: var(--sh-directory-bar-height);
		padding: 0.65rem 0;
		box-sizing: border-box;
		overflow: visible;
	}

	/* Mobile: horizontal row; tabs align left within content column */
	body.shoppingmall-site .sh-directory .sh-subnav__inner {
		justify-content: flex-start;
		height: auto;
		min-height: 0;
		overflow: visible;
	}

	body.shoppingmall-site .sh-directory .sh-subnav__link {
		flex: 0 0 var(--sh-directory-filter-tab-width);
		width: var(--sh-directory-filter-tab-width);
		min-width: var(--sh-directory-filter-tab-width);
		max-width: var(--sh-directory-filter-tab-width);
		min-height: 0;
		height: auto;
		padding: 0.35rem 0.15rem;
	}

	body.shoppingmall-site .sh-alpha,
	body.shoppingmall-site .sh-floor-filter {
		gap: 0.2em 0.35em;
	}

	/* Shop & Dine directory — mobile: search bar + filter (The Twins–style) */
	body.shoppingmall-site .sh-directory .sh-toolbar__bar {
		background: #fff;
		border-bottom: 1px solid rgba(38, 47, 72, 0.12);
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__bar-inner {
		height: auto;
		min-height: 0;
		padding: 1.15rem 0 1.35rem;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__row--directory {
		flex-wrap: nowrap;
		align-items: center;
		gap: 0.65rem;
		height: auto;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__modes--desktop {
		display: none;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search-wrap {
		flex: 1;
		width: 100%;
		margin-left: 0;
		gap: 1rem;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__filter-btn {
		display: inline-flex;
		width: 3rem;
		height: 3rem;
		background: #e9eaed;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search {
		flex: 1;
		min-width: 0;
		max-width: none;
		width: 100%;
		margin-left: 0;
		align-self: stretch;
		gap: 0.75rem;
		min-height: 3rem;
		padding: 0.75rem 1rem;
		border: 1px solid rgba(38, 47, 72, 0.18);
		border-bottom: 1px solid rgba(38, 47, 72, 0.18);
		background: #e9eaed;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-directory .sh-grid {
		padding-top: 1.75rem;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search-icon-svg--desktop {
		display: none;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search-icon-svg--mobile {
		display: block;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search input[type="search"] {
		min-width: 0;
		font-weight: 500;
	}

	body.shoppingmall-site .sh-directory-filter-drawer {
		position: fixed;
		inset: 0;
		z-index: 160;
		pointer-events: none;
		visibility: hidden;
	}

	body.shoppingmall-site .sh-directory-filter-drawer.is-open {
		pointer-events: auto;
		visibility: visible;
	}

	body.shoppingmall-site .sh-directory-filter-drawer__backdrop {
		display: block;
		position: absolute;
		inset: 0;
		border: none;
		padding: 0;
		margin: 0;
		background: transparent;
		cursor: pointer;
	}

	body.shoppingmall-site .sh-directory-filter-drawer__sheet {
		position: absolute;
		inset: 0;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		height: 100%;
		max-height: none;
		display: flex;
		flex-direction: column;
		background: #fff;
		color: var(--sh-navy);
		transform: translateY(100%);
		transition: transform 0.28s ease;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-directory-filter-drawer.is-open .sh-directory-filter-drawer__sheet {
		transform: translateY(0);
	}

	body.shoppingmall-site .sh-directory-filter-drawer__toolbar {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
		gap: 0.5rem;
		padding: 0.85rem 1rem;
		background: #e9eaed;
		border-bottom: 1px solid rgba(38, 47, 72, 0.12);
		flex-shrink: 0;
	}

	body.shoppingmall-site .sh-directory-filter-drawer__clear {
		justify-self: start;
		border: none;
		background: transparent;
		padding: 0.25rem 0;
		font-family: "Red Hat Display", sans-serif;
		font-size: var(--sh-list-ui-font-size);
		font-weight: 500;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: var(--sh-navy);
		cursor: pointer;
	}

	body.shoppingmall-site .sh-directory-filter-drawer__title {
		margin: 0;
		justify-self: center;
		font-family: "Red Hat Display", sans-serif;
		font-size: calc(var(--sh-list-ui-font-size) * 1.1);
		font-weight: 700;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		line-height: 1.2;
	}

	body.shoppingmall-site .sh-directory-filter-drawer__close {
		justify-self: end;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.25rem;
		height: 2.25rem;
		padding: 0;
		border: none;
		background: transparent;
		color: var(--sh-navy);
		cursor: pointer;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__modes--mobile {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: flex-start;
		align-items: stretch;
		column-gap: var(--sh-directory-filter-tab-gap);
		row-gap: 0;
		padding: 0 1rem;
		background: #fff;
		flex-shrink: 0;
		border-bottom: 1px solid rgba(38, 47, 72, 0.12);
		box-sizing: border-box;
		width: 100%;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__modes--mobile .sh-toolbar__mode {
		flex: 0 0 var(--sh-directory-filter-tab-width);
		width: var(--sh-directory-filter-tab-width);
		min-width: var(--sh-directory-filter-tab-width);
		max-width: var(--sh-directory-filter-tab-width);
		flex-shrink: 0;
		padding: 0.85rem 0 0.7rem;
		align-self: stretch;
		align-items: center;
		box-sizing: border-box;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	/* Indicator on divider; text keeps padding above */
	body.shoppingmall-site .sh-directory .sh-toolbar__modes--mobile .sh-toolbar__mode::after {
		bottom: -1px;
		height: 5px;
		background: transparent;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__modes--mobile .sh-toolbar__mode.is-active::after {
		background: var(--sh-peach);
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer.general-container-inner {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer {
		flex: 1;
		min-width: 0;
		min-height: 0;
		width: 100%;
		max-width: 100%;
		overflow-x: hidden;
		overflow-y: auto;
		padding: 0.75rem 1rem 1rem;
		background: #fff;
		-webkit-overflow-scrolling: touch;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-filter-panel {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow: visible;
		padding-bottom: 0.35rem;
	}

	/* Mobile drawer: show full A–Z / floors — wrap rows, no horizontal scroll */
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		gap: 0.5rem 0.85rem;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha__btn,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter__btn {
		flex: 0 0 auto;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha__btn,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter__btn {
		position: relative;
		text-align: center;
		padding: 0.35rem 0.2rem;
		border-bottom: none;
		font-size: var(--sh-list-ui-font-size);
		line-height: 1.3;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha__btn.is-active,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter__btn.is-active {
		color: var(--sh-peach, #edba9f);
		font-weight: 500;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha__btn.is-active::after,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter__btn.is-active::after {
		display: none;
		content: none;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha__btn.is-disabled,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter__btn.is-disabled {
		color: #a3a6ad;
	}

	body.shoppingmall-site .sh-directory-filter-drawer__footer {
		display: block;
		flex-shrink: 0;
		padding: 2.125rem 1rem calc(2rem + env(safe-area-inset-bottom, 0px));
		background: #fff;
		box-sizing: border-box;
	}

	/* Apply — pill outline (thetwins.com.hk/sc/dine), inset from screen bottom */
	body.shoppingmall-site .sh-directory-filter-drawer__apply {
		display: block;
		width: 100%;
		margin: 0;
		padding: 1rem 2rem;
		border: 2px solid rgba(146, 153, 160, 0.5);
		border-radius: 60px;
		background: transparent;
		font-family: "Red Hat Display", sans-serif;
		font-size: var(--sh-font-base);
		font-weight: 400;
		letter-spacing: normal;
		text-transform: none;
		line-height: 1.25;
		color: var(--sh-navy);
		cursor: pointer;
		box-sizing: border-box;
	}

	body.shoppingmall-site.sh-directory-filter-open {
		overflow: hidden;
	}

	body.shoppingmall-site .sh-site-header__inner {
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		height: var(--sh-header-height);
		min-height: var(--sh-header-height);
		margin-top: 0;
		padding: 0;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-site-header__inner .sh-logo,
	body.shoppingmall-site .sh-site-header__inner .sh-site-header__right {
		align-self: center;
	}

	body.shoppingmall-site .sh-logo {
		min-width: 0;
	}

	body.shoppingmall-site .sh-header-nav {
		display: none;
	}

	body.shoppingmall-site .sh-header-menu-btn {
		display: flex;
		flex-shrink: 0;
	}

	body.shoppingmall-site .sh-site-header__right {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: flex-end;
		gap: 0.85rem;
		flex: 0 1 auto;
		min-width: 0;
	}

	body.shoppingmall-site .sh-header-util {
		flex-wrap: nowrap;
		flex-shrink: 0;
		/* Keep desktop util scale off mobile; icon sizes use rem above (search lives inside util). */
		font-size: inherit;
		letter-spacing: 0.12em;
	}

	body.shoppingmall-site .sh-header-util__meta {
		display: none;
	}

	body.shoppingmall-site .sh-header-util__meta + .sh-header-util__sep {
		display: none;
	}

	body.shoppingmall-site .sh-header-util__search .sh-header-util__label {
		display: none;
	}

	body.shoppingmall-site .sh-header-util__search {
		gap: 0;
		width: var(--sh-mobile-header-control);
		height: var(--sh-mobile-header-control);
		padding: 0;
		margin: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-header-util__search + .sh-header-util__sep,
	body.shoppingmall-site .sh-site-header .sh-header-util > .sh-header-lang.header-lang-dropdown {
		display: none !important;
	}

	body.shoppingmall-site .sh-header-util__sep {
		padding: 0 0.35em;
	}

	body.shoppingmall-site .sh-header-util__icon {
		width: var(--sh-mobile-header-icon);
		height: var(--sh-mobile-header-icon);
	}

	body.shoppingmall-site .sh-header-menu-btn {
		width: var(--sh-mobile-header-control);
		height: var(--sh-mobile-header-control);
		margin: 0;
		padding: 0;
		gap: 5px;
		flex-shrink: 0;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-header-menu-btn__bar {
		width: var(--sh-mobile-menu-bar-w);
		height: 2.5px;
		margin: 0 auto;
	}

	body.shoppingmall-site .sh-header-util__search .sh-header-util__icon {
		width: var(--sh-mobile-header-icon);
		height: var(--sh-mobile-header-icon);
		flex-shrink: 0;
	}

	body.shoppingmall-site.sh-mobile-nav-open .sh-header-menu-btn__bar:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	body.shoppingmall-site.sh-mobile-nav-open .sh-header-menu-btn__bar:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* Mobile menu — like main-site menu: items from top, langs directly below */
	body.shoppingmall-site .sh-mobile-nav {
		position: fixed;
		top: var(--sh-header-height);
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 150;
		background: var(--sh-navy);
		color: #fff;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	body.shoppingmall-site .sh-mobile-nav:not([hidden]) {
		display: block;
	}

	body.shoppingmall-site .sh-mobile-nav__inner {
		padding: 2.5em 0 3em;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-mobile-nav__links {
		display: block;
		width: 100%;
		margin: 0;
		padding: 0;
	}

	/* Mall mobile nav links — parallel role to main .text-menu-big, own class + em scale */
	body.shoppingmall-site .sh-mobile-nav__link {
		display: block;
		color: #fff;
		text-decoration: none;
		font-family: var(--sh-font-display);
		font-size: var(--sh-mobile-nav-link-size);
		font-weight: 500;
		line-height: 1.35;
		text-transform: uppercase;
		padding: 0;
		margin: 0 0 1.35em;
		border: none;
		opacity: 1;
	}

	body.shoppingmall-site .sh-mobile-nav__link:last-child {
		margin-bottom: 0;
	}

	body.shoppingmall-site .sh-mobile-nav__link.is-active {
		color: var(--sh-peach);
		pointer-events: none;
	}

	body.shoppingmall-site .sh-mobile-nav__langs {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.35em 1.35em;
		width: 100%;
		margin: 2em 0 0;
		padding: 0;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-mobile-nav__lang {
		color: #fff;
		text-decoration: none;
		font-family: var(--sh-font-display);
		font-size: var(--sh-mobile-nav-lang-size);
		font-weight: 500;
		line-height: 1.35;
		text-transform: uppercase;
		opacity: 0.55;
	}

	body.shoppingmall-site .sh-mobile-nav__lang:hover {
		opacity: 0.85;
	}

	body.shoppingmall-site .sh-mobile-nav__lang.is-active {
		opacity: 1;
		pointer-events: none;
	}

	body.shoppingmall-site .sh-site-footer__main {
		display: block;
		text-align: left;
	}

	body.shoppingmall-site .sh-site-footer__logo-link {
		display: block;
		margin: 0 0 3em;
	}

	body.shoppingmall-site .sh-site-footer__logo-img {
		width: auto;
		height: auto;
		max-width: min(55vw, 20em);
	}

	body.shoppingmall-site .sh-site-footer .footer-logo-container {
		width: 20em;
		max-width: 55%;
	}

	body.shoppingmall-site .sh-site-footer__nav {
		align-items: flex-start;
		margin-bottom: 2em;
		gap: 1.5em;
	}

	body.shoppingmall-site .sh-site-footer__cta {
		align-items: flex-start;
	}

	body.shoppingmall-site .sh-site-footer__cta > a {
		margin-bottom: 0;
	}

	body.shoppingmall-site .sh-site-footer .sh-footer-sns.sns-container {
		margin-top: 3em;
		margin-bottom: 1em;
	}
}

/* Nav font tracks the logo-right column width (not full header) — 20px only when links fit without crossing into the logo column */
@container sh-header-right (max-width: 720px) {
	body.shoppingmall-site .sh-header-nav {
		column-gap: 0.65rem;
	}

	body.shoppingmall-site .sh-header-nav__link {
		font-size: clamp(13px, 1.6cqw + 5px, 16px);
		letter-spacing: clamp(0.04em, 0.03em + 0.1cqw, 0.1em);
	}
}

@container sh-header-right (min-width: 721px) and (max-width: 980px) {
	body.shoppingmall-site .sh-header-nav__link {
		font-size: clamp(14px, 1.15cqw + 7px, 19px);
		letter-spacing: clamp(0.06em, 0.04em + 0.08cqw, 0.14em);
	}
}

@container sh-header-right (min-width: 981px) {
	body.shoppingmall-site .sh-header-nav__link {
		font-size: 20px;
		letter-spacing: 0.14em;
	}
}

/* Fallback when container queries are unsupported: scale on narrow desktop, 20px from ~1600px viewport */
@supports not (container-type: inline-size) {
	@media only screen and (min-width: 769px) and (max-width: 1599px) {
		body.shoppingmall-site .sh-header-nav__link {
			font-size: clamp(14px, 0.85vw + 4px, 20px);
			letter-spacing: clamp(0.06em, 0.02vw + 0.04em, 0.14em);
		}
	}

	@media only screen and (min-width: 1600px) {
		body.shoppingmall-site .sh-header-nav__link {
			font-size: 20px;
			letter-spacing: 0.14em;
		}
	}
}

body.shoppingmall-site.sh-home {
	background: #fff;
}

html:has(body.shoppingmall-site.sh-home) {
	scroll-behavior: smooth;
	scroll-snap-type: y proximity;
	/* Fixed header: snap / anchor land with WHAT'S ON flush under header. */
	scroll-padding-top: var(--sh-header-height);
}

body.shoppingmall-site.sh-home #sh-whats-on {
	scroll-margin-top: var(--sh-header-height);
}

body.shoppingmall-site.sh-home #sh-contact {
	scroll-margin-top: var(--sh-header-height);
}

/* Home page type: main.css .txt-* on markup (same breakpoints as main site via html root). */
body.shoppingmall-site.sh-home .sh-home-hero__title.txt-large {
	max-width: none;
	margin-top: 0;
	width: auto;
}

body.shoppingmall-site .sh-home-hero {
	position: relative;
	box-sizing: border-box;
	min-height: 100vh;
	min-height: 100dvh;
	height: 100vh;
	height: 100dvh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: #fff;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

body.shoppingmall-site .sh-home-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	background-size: cover;
	background-position: center;
}

body.shoppingmall-site .sh-home-hero__bg--mobile {
	display: none;
}

@media (max-width: 768px) {
	body.shoppingmall-site .sh-home-hero__bg {
		background-position: bottom;
	}

	body.shoppingmall-site .sh-home-hero--has-mobile-image .sh-home-hero__bg--desktop {
		display: none;
	}

	body.shoppingmall-site .sh-home-hero--has-mobile-image .sh-home-hero__bg--mobile {
		display: block;
	}
}

body.shoppingmall-site .sh-home-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: transparent;
	pointer-events: none;
}

body.shoppingmall-site .sh-home-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: none;
	margin: 0;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: calc(var(--sh-header-height) + 1em) var(--sh-sub-hero-pad-right) 5.5em var(--sh-sub-hero-pad-x);
	box-sizing: border-box;
}

body.shoppingmall-site .sh-home-hero__title {
	position: relative;
	margin: 0;
	line-height: 1.15;
	display: flex;
	flex-direction: column;
	gap: 0.12em;
}

body.shoppingmall-site .sh-home-hero__line {
	display: block;
}

body.shoppingmall-site .sh-home-hero__line--flip {
	display: block;
	white-space: nowrap;
	/* newone3.mov: ~50 frames @ 24fps ≈ 2.05s; all columns stop together. */
	--hero-reel-duration: 2.05s;
	--hero-reel-hold: 0.45s;
}

/* Slot reel — one column per character */
body.shoppingmall-site .sh-home-hero__reel {
	--hero-reel-h: 1.12em;
	display: inline-block;
	vertical-align: top;
	height: var(--hero-reel-h);
	overflow: hidden;
}

body.shoppingmall-site .sh-home-hero__reel--space {
	width: 0.35em;
}

body.shoppingmall-site .sh-home-hero__reel--has-rush {
	position: relative;
}

/* Second reel on top: slashes in mid-spin, faster 1-step down, then hides. */
body.shoppingmall-site .sh-home-hero__reel-rush {
	position: absolute;
	z-index: 2;
	left: 0;
	top: 0;
	width: 100%;
	height: var(--hero-reel-h);
	overflow: hidden;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
}

body.shoppingmall-site .sh-home-hero__reel-window {
	display: inline-block;
	vertical-align: top;
	height: var(--hero-reel-h);
	overflow: hidden;
	line-height: 0;
}

body.shoppingmall-site .sh-home-hero__reel-strip {
	display: block;
	will-change: transform;
	transform: translate3d(0, 0, 0);
}

/* Idle: show final headline (WELCOME TO). JS adds .is-animating to play reels. */
body.shoppingmall-site .sh-home-hero__line--flip.is-animating .sh-home-hero__reel-strip {
	animation-duration: var(--hero-reel-duration, 2.05s);
	animation-fill-mode: forwards;
	animation-delay: 0s;
}

body.shoppingmall-site .sh-home-hero__line--flip.is-animating .sh-home-hero__reel-strip--up {
	animation-name: sh-home-hero-reel-up;
	animation-timing-function: cubic-bezier(0.28, 0.06, 0.12, 1);
}

body.shoppingmall-site .sh-home-hero__line--flip.is-animating .sh-home-hero__reel-strip--down {
	animation-name: sh-home-hero-reel-down;
	animation-timing-function: cubic-bezier(0.28, 0.06, 0.12, 1);
}

body.shoppingmall-site .sh-home-hero__line--flip.is-animating .sh-home-hero__reel-rush {
	animation: sh-home-hero-reel-rush-layer var(--hero-reel-duration, 2.05s) forwards;
}

body.shoppingmall-site .sh-home-hero__line--flip.is-animating .sh-home-hero__reel-strip--rush-overlay {
	animation-name: sh-home-hero-reel-down;
	animation-duration: calc(var(--hero-reel-duration, 2.05s) * 0.34);
	animation-delay: calc(var(--hero-reel-duration, 2.05s) * 0.28);
	animation-timing-function: cubic-bezier(0.16, 0.02, 0.08, 1);
	animation-fill-mode: both;
}

body.shoppingmall-site .sh-home-hero__reel-cell {
	display: block;
	height: var(--hero-reel-h);
	line-height: var(--hero-reel-h);
	text-align: center;
}

/* Odd positions: reel rises (向上). Fast roll, then lock (newone3). */
@keyframes sh-home-hero-reel-up {
	0% {
		transform: translate3d(0, calc(var(--hero-reel-h) * var(--reel-steps, 2)), 0);
	}
	72% {
		transform: translate3d(0, calc(var(--hero-reel-h) * 0.06), 0);
	}
	100% {
		transform: translate3d(0, 0, 0);
	}
}

/* Even positions: reel falls (向下) — start above, settle on top glyph. */
@keyframes sh-home-hero-reel-down {
	0% {
		transform: translate3d(0, calc(var(--hero-reel-h) * var(--reel-steps, 1) * -1), 0);
	}
	72% {
		transform: translate3d(0, calc(var(--hero-reel-h) * var(--reel-steps, 1) * -0.06), 0);
	}
	100% {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes sh-home-hero-reel-rush-layer {
	0%,
	24% {
		opacity: 0;
		visibility: hidden;
	}
	26%,
	62% {
		opacity: 1;
		visibility: visible;
	}
	68%,
	100% {
		opacity: 0;
		visibility: hidden;
	}
}

body.shoppingmall-site .sh-home-hero__line--static {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	body.shoppingmall-site .sh-home-hero__reel-strip {
		animation: none;
		transform: none;
	}

	body.shoppingmall-site .sh-home-hero__reel-strip--down,
	body.shoppingmall-site .sh-home-hero__reel-strip--rush-overlay {
		transform: none;
		animation: none;
	}

	body.shoppingmall-site .sh-home-hero__reel-rush {
		display: none;
	}

	body.shoppingmall-site .sh-home-hero__line--flip[aria-hidden="true"] {
		display: none;
	}

	body.shoppingmall-site .sh-home-hero__line--flip[aria-hidden="true"] + .screen-reader-text {
		position: static;
		width: auto;
		height: auto;
		margin: 0;
		clip: auto;
		overflow: visible;
	}
}

body.shoppingmall-site .sh-home-hero__scroll-wrap {
	position: absolute;
	z-index: 2;
	right: var(--sh-sub-hero-pad-right);
	bottom: 2.75em;
	left: var(--sh-sub-hero-pad-x);
	display: flex;
	justify-content: flex-end;
	pointer-events: none;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-home-hero__scroll {
	pointer-events: auto;
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 0.85em;
	color: #fff;
	text-decoration: none;
	font-family: "Red Hat Display", sans-serif;
	font-size: 0.7em;
	font-weight: 400;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	transition: opacity 0.2s ease;
}

body.shoppingmall-site .sh-home-hero__scroll:hover {
	opacity: 0.85;
}

body.shoppingmall-site .sh-home-hero__scroll:focus-visible {
	outline: 2px solid var(--sh-peach);
	outline-offset: 4px;
}

body.shoppingmall-site .sh-home-hero__scroll-chevrons {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2em;
	line-height: 0;
	flex-shrink: 0;
}

body.shoppingmall-site .sh-home-hero__scroll-chevron {
	display: block;
	color: #fff;
}

body.shoppingmall-site .sh-home-hero__scroll-chevron--muted {
	color: rgba(255, 255, 255, 0.38);
}

body.shoppingmall-site .sh-home-whats-on {
	background: #fff;
	padding: 3.5em 0 4em;
	color: var(--sh-navy);
	scroll-snap-align: start;
}

body.shoppingmall-site .sh-home-whats-on__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 2em;
}

body.shoppingmall-site .sh-home-section-title {
	margin: 0;
}

body.shoppingmall-site .sh-home-whats-on__nav {
	display: flex;
	align-items: center;
	gap: 0.65em;
}

body.shoppingmall-site .sh-carousel-btn {
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
	transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
	background: var(--sh-navy);
	color: #fff;
}

body.shoppingmall-site .sh-carousel-btn__icon {
	display: block;
}

body.shoppingmall-site .sh-carousel-btn.is-disabled,
body.shoppingmall-site .sh-carousel-btn:disabled {
	background: #e8e8e8;
	color: var(--sh-navy);
	cursor: default;
	opacity: 1;
}

body.shoppingmall-site .sh-carousel-btn:not(:disabled):not(.is-disabled):hover {
	opacity: 0.88;
}

body.shoppingmall-site .sh-carousel-btn:focus-visible {
	outline: 2px solid var(--sh-peach);
	outline-offset: 2px;
}

body.shoppingmall-site .sh-home-whats-on__viewport {
	overflow-x: auto;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	container-type: inline-size;
	container-name: sh-whats-on;
	scroll-snap-type: x proximity;
}

body.shoppingmall-site .sh-home-whats-on__viewport::-webkit-scrollbar {
	display: none;
}

body.shoppingmall-site .sh-home-whats-on__track {
	display: flex;
	gap: 1.5em;
	padding-bottom: 0.5em;
}

body.shoppingmall-site .sh-update-card {
	flex: 0 0 calc((100cqi - 3 * 1.5em) / 4);
	min-width: 0;
	scroll-snap-align: start;
}

body.shoppingmall-site .sh-update-card--empty {
	display: none;
}

body.shoppingmall-site .sh-update-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

body.shoppingmall-site .sh-update-card__media {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center;
	background-color: #eee;
	margin-bottom: 1em;
}

body.shoppingmall-site .sh-home-whats-on .sh-update-card__label {
	color: #888;
	margin-bottom: 0.5em;
}

body.shoppingmall-site .sh-home-whats-on .sh-update-card__title {
	margin: 0 0 0.5em;
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-update-card__excerpt {
	font-size: var(--sh-home-excerpt);
	line-height: 1.5;
	color: #555;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: none;
}

body.shoppingmall-site .sh-home-about__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 28rem;
}

body.shoppingmall-site .sh-home-about__media {
	background-size: cover;
	background-position: center;
	min-height: 20rem;
}

body.shoppingmall-site .sh-home-about__content {
	background: var(--sh-navy);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 0;
}

@media only screen and (min-width: 1025px) {
	body.shoppingmall-site .sh-home-about__grid {
		min-height: 1025px;
		height: 1025px;
	}

	body.shoppingmall-site .sh-home-about__media {
		min-height: 0;
		height: 100%;
	}

	body.shoppingmall-site .sh-home-about__content {
		height: 100%;
		align-items: center;
		justify-content: center;
	}

	body.shoppingmall-site .sh-home-about__content-inner {
		width: 100%;
		max-width: min(36em, 88%);
		margin: 0 auto;
		box-sizing: border-box;
	}
}

body.shoppingmall-site .sh-home-about__content-inner {
	padding: 3.5em clamp(1.75em, 4vw, 3em);
	width: 100%;
	box-sizing: border-box;
}

/* WP block presets use fixed px — do not override mall home fluid type */
body.shoppingmall-site .sh-home-about__text :is(.has-small-font-size, .has-medium-font-size, .has-large-font-size, .has-x-large-font-size),
body.shoppingmall-site .sh-update-card__excerpt:is(.has-small-font-size, .has-medium-font-size, .has-large-font-size),
body.shoppingmall-site .sh-home-contact__text :is(.has-small-font-size, .has-medium-font-size, .has-large-font-size) {
	font-size: inherit !important;
}

body.shoppingmall-site .sh-home-about__title {
	margin: 0 0 1.25em;
}

body.shoppingmall-site .sh-home-about__content .sh-home-about__text {
	line-height: 1.65;
	margin-bottom: 1.75em;
}

body.shoppingmall-site .sh-home-about__content .sh-home-about__text :where(p, li, span, div:not([class])) {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	font-weight: inherit;
	margin: 0 0 1em;
}

body.shoppingmall-site .sh-home-about__content .sh-home-about__text :where(p, li):last-child {
	margin-bottom: 0;
}

body.shoppingmall-site .sh-home-about__meta {
	margin-bottom: 1.25em;
}

body.shoppingmall-site .sh-home-about__content-inner .sh-home-about__meta-label {
	opacity: 0.85;
	margin-bottom: 0.35em;
}

body.shoppingmall-site .sh-home-about__content-inner .sh-home-about__meta-value {
	line-height: 1.5;
}

body.shoppingmall-site .sh-home-about__cta {
	display: inline-block;
	margin-top: 0.5em;
	text-decoration: none;
}

/* Match main site building retail: outline-button.combo-white (peach border, white label) */
body.shoppingmall-site .sh-home-about__cta .outline-button.combo-white {
	position: static;
	transform: none;
	cursor: pointer;
}

body.shoppingmall-site .sh-home-map {
	width: 100%;
	background: #f5f3ef;
}

body.shoppingmall-site .sh-home-map__crop {
	position: relative;
	width: 100%;
	--sh-home-map-viewport-height: 1025px;
	height: var(--sh-home-map-viewport-height);
	max-height: var(--sh-home-map-viewport-height);
	overflow: hidden;
	--sh-map-crop-scale: 1;
	/* 1920×1025 schematic proportions at ref zoom 18 */
	--sh-home-map-building-size: 118px;
	--sh-home-map-pin-w: 6.91rem;
	--sh-home-map-pin-h: 8.92rem;
	/* Brand pin: offset inside compound (same box as 3D PNG), not a separate LatLng */
	--sh-home-map-brand-inset-left: 60%;
	--sh-home-map-brand-offset-bottom: 1.88rem;
	/* shoppingmall-building-3d.png trimmed to content (144×382); anchor = image bottom centre */
	--sh-home-map-building-aspect: 2.653;
	--sh-home-map-mtr-w: 2.7rem;
	--sh-home-map-mtr-h: 3.45rem;
}

body.shoppingmall-site .sh-home-map__scale {
	width: 100%;
	height: var(--sh-home-map-viewport-height, 1025px);
}

/* Magnify without transform:scale — CSS transform on map ancestors breaks cooperative hint. */
body.shoppingmall-site .sh-home-map__scale.is-crop-scaled {
	--sh-map-crop-scale: 1.35;
	width: calc(100% * var(--sh-map-crop-scale));
	height: calc(var(--sh-home-map-viewport-height, 1025px) * var(--sh-map-crop-scale));
	margin-left: calc((1 - var(--sh-map-crop-scale)) * 50%);
	margin-top: calc((1 - var(--sh-map-crop-scale)) * 50%);
}

body.shoppingmall-site .sh-home-map__canvas {
	width: 100%;
	height: 100%;
}

/* Google cooperative scroll hint (THE FOREST location). */
body.shoppingmall-site .sh-home-map__canvas .gm-style-pbc,
body.shoppingmall-site .sh-home-map__canvas .gm-style-mot {
	z-index: 5;
}

/* Fallback when inline map blocks native .gm-style-pbc (FOREST uses iframe). */
body.shoppingmall-site .sh-home-map__coop-hint {
	position: absolute;
	inset: 0;
	z-index: 12;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s ease;
	background: rgba(0, 0, 0, 0.45);
}

body.shoppingmall-site .sh-home-map__coop-hint.is-visible {
	opacity: 1;
}

body.shoppingmall-site .sh-home-map__coop-hint-text {
	margin: 0;
	max-width: 22rem;
	color: #fff;
	font-family: Roboto, Arial, sans-serif;
	font-size: 1rem;
	line-height: 1.45;
	text-align: center;
}

body.shoppingmall-site .sh-home-map__canvas .gm-bundled-control .gmnoprint > div {
	box-shadow: 0 1px 6px rgba(38, 47, 72, 0.12);
	border-radius: 2px;
}

/* Mall home map — isolated from main-site .map-building scroll logic (class sh-map-building). */
body.shoppingmall-site .sh-home-map-overlay {
	pointer-events: none;
}

body.shoppingmall-site .sh-home-map .sh-map-building {
	position: relative;
	font-size: var(--sh-home-map-building-size, 112px);
	width: 1em;
	height: calc(1em * var(--sh-home-map-building-aspect, 2.653));
	min-height: calc(1em * var(--sh-home-map-building-aspect, 2.653));
	flex-shrink: 0;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	pointer-events: none;
}

body.shoppingmall-site .sh-home-map .sh-map-building > div {
	width: 100%;
	height: 100%;
	position: absolute;
	left: 50%;
	background-image: url(/wp-content/themes/twentytwentyone/pages/img/shoppingmall-building-3d.png?v=2);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center bottom;
	transform: translate(-50%, 0);
}

/* Geo anchor = 3D tower base centre only; brand pin follows tower art (compound-relative). */
body.shoppingmall-site .sh-home-map-overlay--building {
	overflow: visible;
}

body.shoppingmall-site .sh-home-map-pin--compound {
	position: relative;
	display: block;
	width: 1em;
	height: calc(1em * var(--sh-home-map-building-aspect, 2.653));
	font-size: var(--sh-home-map-building-size, 118px);
	pointer-events: none;
}

body.shoppingmall-site .sh-home-map-pin--compound .sh-map-building {
	font-size: inherit;
	width: 1em;
	height: calc(1em * var(--sh-home-map-building-aspect, 2.653));
	min-height: calc(1em * var(--sh-home-map-building-aspect, 2.653));
}

body.shoppingmall-site .sh-home-map-pin--compound .sh-home-map-brand {
	position: absolute;
	left: var(--sh-home-map-brand-inset-left, 56%);
	right: auto;
	bottom: var(--sh-home-map-brand-offset-bottom, 1.88rem);
	transform: translateX(-1%);
	width: var(--sh-home-map-pin-w, 6.91rem);
	height: var(--sh-home-map-pin-h, 8.92rem);
	margin: 0;
	z-index: 3;
	pointer-events: none;
	background: url(/wp-content/themes/twentytwentyone/pages/img/shoppingmall-map-pin.png) center / contain no-repeat;
	box-shadow: none;
}

body.shoppingmall-site .sh-home-map-brand::after {
	content: none;
}

body.shoppingmall-site .sh-home-map-overlay--mtr {
	overflow: visible;
}

body.shoppingmall-site .sh-home-map-mtr-exit {
	display: flex;
	flex-direction: row;
	align-items: center;
	width: 100%;
	height: 100%;
	pointer-events: none;
	gap: 0.22rem;
}

body.shoppingmall-site .sh-home-map-mtr-exit__badge {
	position: relative;
	flex: 0 0 var(--sh-home-map-mtr-w, 2.7rem);
	width: var(--sh-home-map-mtr-w, 2.7rem);
	height: var(--sh-home-map-mtr-h, 3.45rem);
	background: url(/wp-content/themes/twentytwentyone/pages/img/shoppingmall-map-mtr.png) center bottom / contain no-repeat;
	filter: drop-shadow(0 2px 8px rgba(38, 47, 72, 0.18));
}

body.shoppingmall-site .sh-home-map-mtr-exit__label {
	position: relative;
	flex: 0 0 auto;
	align-self: center;
	margin: 0;
	padding: 0;
	background: none;
	box-shadow: none;
	border-radius: 0;
	color: var(--sh-navy);
	font-family: "Red Hat Display", sans-serif;
	font-size: 1.9rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1;
	white-space: nowrap;
}

body.shoppingmall-site .sh-home-contact {
	background: var(--sh-peach);
	color: var(--sh-navy);
	display: flex;
	align-items: center;
	min-height: 17.5rem;
	padding: 4.5em 0;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-home-contact__inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 2em;
	align-items: stretch;
	box-sizing: border-box;
	min-height: 0;
	/* Inherits horizontal inset from .general-container-inner (do not set width: 100%). */
}

body.shoppingmall-site .sh-home-contact__title {
	margin: 0;
}

body.shoppingmall-site .sh-home-contact__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2em 3em;
	align-items: start;
}

body.shoppingmall-site .sh-home-contact__label {
	margin-bottom: 0.5em;
}

body.shoppingmall-site .sh-home-contact__inner .sh-home-contact__text {
	line-height: 1.6;
}

body.shoppingmall-site .sh-home-contact__inner .sh-home-contact__text :where(p, li, div:not([class])) {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	margin: 0;
}

@media only screen and (max-width: 1024px) {
	body.shoppingmall-site .sh-home-whats-on__viewport {
		scroll-snap-type: x mandatory;
	}

	body.shoppingmall-site .sh-update-card {
		flex: 0 0 calc((100cqi - 1 * 1.5em) / 2);
	}
}

@media only screen and (max-width: 1024px) and (min-width: 769px) {
	/* Tablet: left image / right copy; top-anchored crop in the image column. */
	body.shoppingmall-site .sh-home-about__media {
		min-height: 0;
		height: 100%;
		background-position: center top;
	}
}

@media only screen and (max-width: 768px) {
	body.shoppingmall-site .sh-home-about__grid {
		grid-template-columns: 1fr;
	}

	body.shoppingmall-site .sh-home-about__media {
		width: 100%;
		height: clamp(20rem, 25vh, 22.5rem);
		min-height: 20rem;
		max-height: 22.5rem;
		background-position: center;
	}

	body.shoppingmall-site .sh-home-map__crop {
		/* Taller than 70vh so the full 3D tower + brand pin fit in the framed view */
		--sh-home-map-viewport-height: min(88vh, 900px);
		height: var(--sh-home-map-viewport-height);
		max-height: var(--sh-home-map-viewport-height);
		--sh-home-map-building-size: 88px;
		--sh-home-map-pin-w: 5rem;
		--sh-home-map-pin-h: 6.45rem;
		--sh-home-map-brand-offset-bottom: 1.35rem;
		--sh-home-map-mtr-w: 2.05rem;
		--sh-home-map-mtr-h: 2.62rem;
		--sh-home-map-mtr-label-space: 1.85rem;
	}

	/* CSS crop magnify breaks mobile projection/resize — keep desktop zoom level via centre+lat only. */
	body.shoppingmall-site .sh-home-map__scale.is-crop-scaled {
		width: 100%;
		height: var(--sh-home-map-viewport-height);
		margin: 0;
	}

	body.shoppingmall-site .sh-home-map-mtr-exit__label {
		font-size: 1.35rem;
	}

	body.shoppingmall-site .sh-update-card {
		flex: 0 0 100cqi;
	}

	body.shoppingmall-site .sh-home-contact {
		min-height: 0;
		padding: 3.25em 0;
	}

	body.shoppingmall-site .sh-home-contact__cols {
		grid-template-columns: 1fr;
		gap: 1.75em;
	}
}

body.shoppingmall-site .sh-tenant-detail {
	/* Figma @ 18px root — scale with html font-size on mobile */
	--sh-tenant-detail-title: clamp(1.75rem, 4vw, 2.75rem);
	--sh-tenant-detail-tag: calc(var(--sh-tenant-detail-title) * 0.255);
	--sh-tenant-detail-text: 1rem;
	--sh-tenant-detail-floor: clamp(2.25rem, 9vw, 3.555555rem);
	/* 1920 viewport → 1515px content column; hero image = 900px (not 1:1 with intro) */
	--sh-tenant-detail-hero-media-width: 900px;
	background: #fff;
	color: var(--sh-navy);
	padding-bottom: 0;
}

body.shoppingmall-site .sh-tenant-detail__top {
	padding-top: 2em;
	padding-bottom: 2.5em;
}

body.shoppingmall-site .sh-tenant-detail__back {
	display: inline-block;
	font-family: var(--sh-font-display);
	font-size: 0.85em;
	color: var(--sh-navy);
	text-decoration: none;
	margin-bottom: 2em;
	opacity: 0.85;
}

body.shoppingmall-site .sh-tenant-detail__hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, var(--sh-tenant-detail-hero-media-width));
	gap: 2.5em;
	align-items: start;
	min-width: 0;
}

body.shoppingmall-site .sh-tenant-detail__title:not(.txt-big) {
	font-family: "Red Hat Display", sans-serif;
	font-size: var(--sh-tenant-detail-title);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0 0 0.75em;
	line-height: 1.15;
}

body.shoppingmall-site .sh-tenant-detail__title.txt-big {
	margin: 0 0 0.75em;
	line-height: 1.15;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-tenant-detail__tag {
	display: inline-block;
	background: var(--sh-peach);
	color: var(--sh-navy);
	padding: 0.35em 0.65em;
	margin-bottom: 0;
}

body.shoppingmall-site .sh-tenant-detail__tag:not(.txt-categories) {
	font-size: var(--sh-tenant-detail-tag);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

body.shoppingmall-site .sh-tenant-detail__tag.txt-categories {
	letter-spacing: normal;
	text-transform: none;
}

body.shoppingmall-site .sh-tenant-detail__body {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: 2.5em 3em;
	align-items: start;
	padding: 0 0 3em;
	border-top: none;
}

body.shoppingmall-site .sh-tenant-detail__facts {
	margin: 0;
	padding-top: 0.25em;
}

body.shoppingmall-site .sh-tenant-detail__fact {
	margin-bottom: 1.35em;
}

body.shoppingmall-site .sh-tenant-detail__fact dt {
	margin-bottom: 0.25em;
}

body.shoppingmall-site .sh-tenant-detail__fact dt:not(.txt-bold) {
	font-weight: 700;
	font-size: var(--sh-tenant-detail-text);
}

body.shoppingmall-site .sh-tenant-detail__fact dd {
	margin: 0;
	line-height: 1.5;
	opacity: 0.9;
}

body.shoppingmall-site .sh-tenant-detail__fact dd:not(.txt-ibm) {
	font-size: var(--sh-tenant-detail-text);
}

body.shoppingmall-site .sh-tenant-detail__contact-link {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

body.shoppingmall-site .sh-tenant-detail__contact-link--tel {
	text-decoration: none;
}

body.shoppingmall-site .sh-tenant-detail__contact-link:hover,
body.shoppingmall-site .sh-tenant-detail__contact-link--tel:hover {
	opacity: 0.75;
	text-decoration: none;
}

body.shoppingmall-site .sh-tenant-detail__hero-media {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 0;
	aspect-ratio: 1860 / 1046;
}

body.shoppingmall-site .sh-tenant-detail__hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

body.shoppingmall-site .sh-tenant-detail__about {
	text-align: left;
}

body.shoppingmall-site .sh-tenant-detail__brand-logo {
	margin-bottom: 1.75em;
	text-align: left;
}

body.shoppingmall-site .sh-tenant-detail__brand-logo img {
	max-width: min(300px, 100%);
	height: auto;
	margin: 0;
	display: block;
}

body.shoppingmall-site .sh-tenant-detail__description {
	text-align: left;
	line-height: 1.7;
	color: #444;
}

body.shoppingmall-site .sh-tenant-detail__description:not(.txt-ibm) {
	font-size: var(--sh-tenant-detail-text);
}

body.shoppingmall-site .sh-tenant-detail__description p,
body.shoppingmall-site .sh-tenant-detail__description li {
	font-size: inherit;
}

body.shoppingmall-site .sh-tenant-detail__map {
	background: #fff;
	border-top: 1px solid var(--sh-navy);
	padding: 2.25em 0 3.5em;
}

body.shoppingmall-site .sh-tenant-detail__map-panel {
	background: #f8f8f8;
	padding: 2.25em 2em 2.5em;
}

body.shoppingmall-site .sh-tenant-detail__map-layout {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 1.25em 2.5em;
	align-items: start;
	max-width: 100%;
}

body.shoppingmall-site .sh-tenant-detail__floor {
	font-size: var(--sh-tenant-detail-floor);
	font-weight: 500;
	letter-spacing: 0.02em;
	margin: 0;
	line-height: 1;
	align-self: start;
	justify-self: start;
	text-align: left;
	padding: 0;
	white-space: nowrap;
	flex-shrink: 0;
}

body.shoppingmall-site .sh-tenant-detail__floor-map {
	max-width: 100%;
	min-width: 0;
	width: 100%;
}

/* Pin % matches admin metabox: coordinates are relative to the image box, not a letterboxed frame. */
body.shoppingmall-site .sh-tenant-detail__floor-map-stage {
	position: relative;
	display: inline-block;
	max-width: 100%;
	line-height: 0;
	vertical-align: top;
}

/* width:auto so the stage shrink-wraps the image (width:100% + inline-block stage = 0×0 layout bug). */
body.shoppingmall-site .sh-tenant-detail__floor-map-stage img {
	width: auto;
	max-width: 100%;
	height: auto;
	display: block;
	max-height: min(558px, 42vw);
	object-fit: contain;
	object-position: left center;
}

@media only screen and (min-width: 901px) {
	body.shoppingmall-site .sh-tenant-detail__hero {
		align-items: center;
	}

	body.shoppingmall-site .sh-tenant-detail__map-layout {
		grid-template-columns: minmax(4.5rem, 10%) minmax(0, 1fr);
		gap: 2em 3.5em;
	}

	body.shoppingmall-site .sh-tenant-detail__floor {
		font-size: 3.555555rem;
	}
}

body.shoppingmall-site .sh-tenant-detail__pin {
	position: absolute;
	width: var(--sh-map-pin-w-pct);
	min-width: 1.125rem;
	max-width: 2.5rem;
	height: auto;
	aspect-ratio: 40 / 48;
	margin: 0;
	transform: translate(-50%, -100%);
	pointer-events: none;
	line-height: 0;
}

body.shoppingmall-site .sh-tenant-detail__pin img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: contain;
	object-position: bottom center;
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

@media only screen and (max-width: 900px) {
	body.shoppingmall-site .sh-tenant-detail__hero {
		grid-template-columns: minmax(0, 1fr);
	}

	body.shoppingmall-site .sh-tenant-detail__hero-media {
		order: -1;
		min-height: 0;
	}

	body.shoppingmall-site .sh-tenant-detail__body {
		grid-template-columns: 1fr;
	}

	body.shoppingmall-site .sh-tenant-detail__map-layout {
		grid-template-columns: 1fr;
		gap: 1em;
	}

	body.shoppingmall-site .sh-tenant-detail__floor {
		white-space: normal;
		justify-self: start;
	}

	body.shoppingmall-site .sh-tenant-detail__floor-map-stage img {
		max-height: none;
	}

	body.shoppingmall-site .sh-tenant-detail__map-panel {
		padding: 1.25rem 0.75rem 1.5rem;
	}

	body.shoppingmall-site .sh-tenant-detail__floor-map-stage {
		cursor: pointer;
	}

	body.shoppingmall-site .sh-tenant-detail__floor-map-stage:focus-visible {
		outline: 2px solid var(--sh-navy);
		outline-offset: 3px;
	}
}

body.shoppingmall-site.sh-tenant-floor-lightbox-open {
	overflow: hidden;
}

body.shoppingmall-site .sh-tenant-floor-lightbox {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 100000;
	width: 100%;
	max-width: none;
	height: 100%;
	height: 100dvh;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: stretch;
	justify-content: center;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-tenant-floor-lightbox[hidden] {
	display: none !important;
}

body.shoppingmall-site .sh-tenant-floor-lightbox.is-open {
	display: flex !important;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__backdrop {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	border: none;
	background: rgba(38, 47, 72, 0.72);
	cursor: pointer;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__panel {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	background: #f8f8f8;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__close {
	position: absolute;
	top: 0.65rem;
	right: 0.65rem;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 0;
	background: var(--sh-navy);
	color: #fff;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__close:hover,
body.shoppingmall-site .sh-tenant-floor-lightbox__close:focus-visible {
	opacity: 0.9;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__scroll {
	flex: 1;
	min-height: 0;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	padding: 3.25rem 0.75rem 1.25rem;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__stage {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	min-width: min-content;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__map-stage {
	position: relative;
	display: inline-block;
	line-height: 0;
	vertical-align: top;
}

body.shoppingmall-site .sh-tenant-floor-lightbox__map-stage img {
	display: block;
	width: auto;
	max-width: none;
	height: auto;
	object-fit: contain;
	object-position: left top;
}

body.shoppingmall-site .sh-sub-hero {
	position: relative;
	min-height: 22vh;
	display: flex;
	align-items: stretch;
	color: var(--sh-navy);
	background: #f0eeea;
}

body.shoppingmall-site .sh-sub-hero--has-image {
	min-height: 42vh;
	color: #fff;
}

@media only screen and (min-width: 1025px) {
	body.shoppingmall-site:not(.sh-home):not(.sh-mall-inner) .sh-sub-hero,
	body.shoppingmall-site:not(.sh-home):not(.sh-mall-inner) .sh-sub-hero--has-image,
	body.shoppingmall-site:not(.sh-home):not(.sh-mall-inner) .sh-hero {
		min-height: 800px;
		height: 800px;
		box-sizing: border-box;
	}
}

body.shoppingmall-site .sh-sub-hero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}

/* Figma c08-Final 2: 1920×484 top fade (#000 → transparent) for header legibility */
body.shoppingmall-site .sh-sub-hero__overlay {
	position: absolute;
	inset: 0;
	background: transparent;
	pointer-events: none;
}

body.shoppingmall-site .sh-sub-hero--has-image .sh-sub-hero__overlay {
	inset: auto;
	top: 0;
	left: 0;
	right: 0;
	height: 60.5%;
	max-height: 484px;
	background: linear-gradient(180deg, #000000 0%, rgba(0, 0, 0, 0) 100%);
}

/* Full-viewport home hero: longer fades than inner sub-hero */
body.shoppingmall-site .sh-home-hero--has-image .sh-home-hero__overlay {
	inset: auto;
	top: 0;
	left: 0;
	right: 0;
	height: 82%;
	max-height: 820px;
	/* Top: softer than solid #000; bottom still fades to transparent */
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.74) 0%,
		rgba(0, 0, 0, 0) 100%
	);
}

@media only screen and (max-width: 768px) {
	body.shoppingmall-site .sh-home-hero--has-image .sh-home-hero__overlay {
		height: 32%;
		max-height: none;
	}
}

body.shoppingmall-site .sh-sub-hero--has-image::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 140px;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.45) 100%);
}

body.shoppingmall-site .sh-home-hero--has-image::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: min(38vh, 320px);
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.45) 100%);
}

body.shoppingmall-site .sh-sub-hero__inner {
	position: relative;
	z-index: 2;
	flex: 1;
	width: 100%;
	max-width: none;
	margin: 0;
	min-height: 100%;
	box-sizing: border-box;
	padding-bottom: 2rem;
}

/* Title: left + vertically centered in hero; breadcrumbs at bottom */
body.shoppingmall-site .sh-sub-hero__body {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	margin: 0;
	padding-left: var(--sh-sub-hero-pad-x);
	padding-right: var(--sh-sub-hero-pad-right);
	box-sizing: border-box;
	pointer-events: none;
}

body.shoppingmall-site .sh-sub-hero__title {
	pointer-events: auto;
	margin: 0;
	padding: 0;
	max-width: none;
	width: auto;
	line-height: 1.1;
	text-align: left;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-sub-hero__title.txt-large {
	margin-top: 0;
	max-width: 502px;
	width: auto;
}

body.shoppingmall-site .sh-sub-hero--has-image .sh-sub-hero__title {
	color: #fff;
}

body.shoppingmall-site .sh-breadcrumbs {
	position: absolute;
	left: var(--sh-sub-hero-pad-x);
	right: var(--sh-sub-hero-pad-right);
	bottom: 2rem;
	z-index: 2;
	flex-shrink: 0;
	margin: 0;
	line-height: 1.4;
	opacity: 0.85;
	color: var(--sh-navy);
}

@media only screen and (max-width: 768px) {
	body.shoppingmall-site {
		--sh-mall-content-width: min(var(--sh-content-max), calc(100vw - 5em));
		--sh-sub-hero-pad-x: max(2.5em, calc((100vw - var(--sh-mall-content-width)) / 2));
		--sh-sub-hero-pad-right: var(--sh-sub-hero-pad-x);
	}
}

@media only screen and (min-width: 769px) {
	body.shoppingmall-site .sh-directory .sh-directory-filter-drawer {
		position: static;
		inset: auto;
		z-index: auto;
		pointer-events: auto;
		visibility: visible;
	}

	body.shoppingmall-site .sh-directory .sh-directory-filter-drawer__sheet {
		position: static;
		max-height: none;
		transform: none;
		background: transparent;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__modes--mobile {
		display: none !important;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer {
		overflow: visible;
		padding: 1.25em 0 1em;
	}

	body.shoppingmall-site .sh-directory .sh-alpha,
	body.shoppingmall-site .sh-directory .sh-floor-filter {
		gap: 0.35em 0.85em;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha__btn.is-active::after,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter__btn.is-active::after {
		display: none;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-alpha__btn.is-active,
	body.shoppingmall-site .sh-directory .sh-toolbar__panels--drawer .sh-floor-filter__btn.is-active {
		color: #edba9f;
		font-weight: 500;
	}
}

body.shoppingmall-site .sh-sub-hero--has-image .sh-breadcrumbs {
	opacity: 1;
	color: #fff;
}

body.shoppingmall-site .sh-breadcrumbs a {
	color: var(--sh-navy);
	text-decoration: none;
}

body.shoppingmall-site .sh-sub-hero--has-image .sh-breadcrumbs a {
	color: #fff;
}

body.shoppingmall-site .sh-breadcrumbs__sep {
	margin: 0 0.35em;
}

body.shoppingmall-site .sh-happenings {
	--sh-directory-bar-height: calc(110px * var(--sh-font-base) / 18);
	--sh-happenings-tab-width: calc(194px * var(--sh-font-base) / 18);
	--sh-directory-filter-tab-gap: calc(25px * var(--sh-font-base) / 18);
}

body.shoppingmall-site .sh-happenings__toolbar {
	display: flex;
	justify-content: center;
	background: #fff;
	border-bottom: 1px solid rgba(38, 47, 72, 0.2);
}

body.shoppingmall-site .sh-happenings__toolbar-inner {
	padding: 0;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: space-between;
	gap: 2rem 2.5rem;
	min-height: var(--sh-directory-bar-height);
	height: var(--sh-directory-bar-height);
	box-sizing: border-box;
}

/* Search is hidden on H&P list — line only wraps tabs; do not grow across the bar */
body.shoppingmall-site .sh-happenings__toolbar-line {
	flex: 0 1 auto;
	min-width: 0;
}

body.shoppingmall-site .sh-happenings__toolbar-row {
	display: flex;
	flex: 1;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: 1.5rem 2.5rem;
	width: 100%;
	height: 100%;
	min-height: 0;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-happenings__filters {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	align-self: center;
	flex: 0 0 auto;
	min-width: 0;
	margin: 0;
}

body.shoppingmall-site .sh-happenings__tabs {
	display: flex;
	flex: 0 0 auto;
	flex-wrap: nowrap;
	align-self: stretch;
	align-items: stretch;
	gap: var(--sh-directory-filter-tab-gap);
}

body.shoppingmall-site .sh-happenings__tab {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	flex: 0 0 var(--sh-happenings-tab-width);
	width: var(--sh-happenings-tab-width);
	min-width: var(--sh-happenings-tab-width);
	max-width: var(--sh-happenings-tab-width);
	text-align: center;
	text-decoration: none;
	color: var(--sh-navy);
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: var(--sh-list-tab-letter-spacing);
	padding: 0;
	margin: 0;
	opacity: 1;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-happenings__tab:not(.txt-tab) {
	font-size: var(--sh-list-ui-font-size);
	text-transform: none;
}

body.shoppingmall-site .sh-happenings__tab.txt-tab {
	text-transform: none;
}

body.shoppingmall-site .sh-happenings__tab::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	width: auto;
	bottom: -1px;
	height: 5px;
	background: transparent;
	pointer-events: none;
}

body.shoppingmall-site .sh-happenings__tab.is-active::after {
	background: var(--sh-navy);
}

body.shoppingmall-site .sh-happenings__tab:not(.is-active) {
	color: #8d8d8d;
}

body.shoppingmall-site .sh-happenings__tab.is-active {
	font-weight: 500;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-happenings__search {
	display: inline-flex;
	align-items: center;
	align-self: center;
	flex: 0 1 auto;
	min-width: 11rem;
	max-width: 22rem;
	margin-left: auto;
	margin-bottom: 0;
	gap: 0.5rem;
	border: none;
	border-bottom: 1px solid rgba(38, 47, 72, 0.35);
	padding: 0;
	box-sizing: border-box;
	background: transparent;
}

body.shoppingmall-site .sh-happenings__search-icon {
	display: flex;
	flex-shrink: 0;
	color: var(--sh-navy);
	opacity: 0.65;
	line-height: 0;
}

body.shoppingmall-site .sh-happenings__search input[type="search"] {
	border: none;
	padding: 0;
	margin: 0;
	min-width: 8rem;
	width: 100%;
	flex: 1;
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	line-height: 1.2;
	color: var(--sh-navy);
	background: transparent;
	outline: none;
}

body.shoppingmall-site .sh-happenings__search input[type="search"]:not(.txt-tab) {
	font-size: var(--sh-list-ui-font-size);
}

body.shoppingmall-site .sh-happenings__search input[type="search"].txt-tab {
	text-transform: none;
}

body.shoppingmall-site .sh-happenings__search input[type="search"].txt-tab::placeholder {
	text-transform: none;
}

body.shoppingmall-site .sh-happenings__search input::placeholder {
	color: rgba(38, 47, 72, 0.45);
	font-weight: 500;
}

/* H&P list: search hidden for now (toolbar markup kept for later) */
body.shoppingmall-site .sh-happenings__toolbar .sh-happenings__search {
	display: none;
}

body.shoppingmall-site .sh-happenings__sort {
	display: inline-flex;
	align-items: center;
	align-self: center;
	flex: 0 1 auto;
	min-width: 12rem;
	border-bottom: 1px solid rgba(38, 47, 72, 0.35);
	padding: 0;
	box-sizing: border-box;
	background: transparent;
}

body.shoppingmall-site .sh-happenings__sort select {
	border: none;
	padding: 0 1.75rem 0 0;
	margin: 0;
	width: 100%;
	font-family: "Red Hat Display", sans-serif;
	font-weight: 500;
	line-height: 1.2;
	color: var(--sh-navy);
	background: transparent;
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23262F48' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0 center;
	outline: none;
}

body.shoppingmall-site .sh-happenings__sort select:not(.txt-tab) {
	font-size: var(--sh-list-ui-font-size);
}

body.shoppingmall-site .sh-happenings__sort select.txt-tab {
	text-transform: none;
}

@media only screen and (min-width: 769px) {
	body.shoppingmall-site {
		--sh-list-ui-font-size: var(--sh-font-base);
		--sh-list-bar-height: 2.75rem;
		--sh-list-tab-gap: 2rem;
		--sh-list-pagination-font-size: calc(var(--sh-font-base) * 1.278);
		--sh-list-pagination-arrow-size: calc(var(--sh-font-base) * 1.056);
		--sh-list-pagination-gap: 2em;
	}

	body.shoppingmall-site .sh-directory {
		--sh-directory-bar-height: 110px;
		--sh-directory-filter-tab-width: 100px;
		--sh-directory-filter-tab-gap: 25px;
	}

	body.shoppingmall-site .sh-happenings {
		--sh-directory-bar-height: 110px;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search-icon-svg--desktop {
		display: none;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search-icon-svg--mobile {
		display: block;
	}

	body.shoppingmall-site .sh-toolbar__search-icon svg,
	body.shoppingmall-site .sh-happenings__search-icon svg {
		width: 17px;
		height: 17px;
	}

	body.shoppingmall-site .sh-directory .sh-toolbar__search-icon svg {
		width: calc(var(--sh-font-base) * 1.25);
		height: calc(var(--sh-font-base) * 1.25);
	}
}

body.shoppingmall-site .sh-happenings__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2em 1.5em;
	padding: 2.5em 0 3em;
}

body.shoppingmall-site .sh-happening-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

body.shoppingmall-site .sh-happening-card__media {
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
	background-color: #eee;
	margin-bottom: 1em;
}

body.shoppingmall-site .sh-happening-card__category {
	margin-bottom: 0.4em;
	color: #888;
}

body.shoppingmall-site .sh-happening-card__category:not(.txt-categories) {
	font-size: 0.75em;
}

body.shoppingmall-site .sh-happenings .sh-happening-card__title.txt-sub {
	margin: 0 0 0.5em;
	line-height: 1.35;
	color: var(--sh-navy);
	letter-spacing: 0;
}

body.shoppingmall-site .sh-happening-card__title:not(.txt-sub) {
	font-family: var(--sh-font-display);
	font-size: 1rem;
	font-weight: 700;
	margin: 0 0 0.5em;
	line-height: 1.35;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-happening-card__date {
	color: #666;
}

body.shoppingmall-site .sh-happening-card__date:not(.txt-ibm) {
	font-size: 0.8em;
}

body.shoppingmall-site .sh-happenings__empty {
	grid-column: 1 / -1;
	text-align: center;
	color: #666;
}

body.shoppingmall-site .sh-pagination {
	padding-bottom: 3em;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
}

body.shoppingmall-site .sh-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--sh-list-pagination-gap);
	list-style: none;
	padding: 0;
	margin: 0;
	width: auto;
}

body.shoppingmall-site .sh-pagination ul.page-numbers > li {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
}

body.shoppingmall-site .sh-pagination a,
body.shoppingmall-site .sh-pagination span {
	font-family: "Red Hat Display", sans-serif;
	font-size: var(--sh-list-pagination-font-size);
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
}

body.shoppingmall-site .sh-pagination a,
body.shoppingmall-site .sh-pagination span:not(.current) {
	color: #c4c4c4;
}

body.shoppingmall-site .sh-pagination .current {
	color: #262f48;
	font-weight: 500;
}

body.shoppingmall-site .sh-pagination a.prev,
body.shoppingmall-site .sh-pagination a.next,
body.shoppingmall-site .sh-pagination span.prev,
body.shoppingmall-site .sh-pagination span.next {
	color: #787878;
	font-size: var(--sh-list-pagination-arrow-size);
}

body.shoppingmall-site .sh-parking__content {
	padding: 3em 0 4em;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-parking__section {
	margin-bottom: 3.5em;
}

body.shoppingmall-site .sh-parking__section-title:not(.txt-big) {
	font-family: "Red Hat Display", sans-serif;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	margin: 0 0 1.5em;
}

body.shoppingmall-site .sh-parking__section-title.txt-big {
	margin: 0 0 1.5em;
	line-height: 1.15;
	color: var(--sh-navy);
	text-transform: none;
}

body.shoppingmall-site .sh-parking__subtitle {
	font-family: "Red Hat Display", sans-serif;
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 0.75em;
	line-height: 1.35;
}

body.shoppingmall-site .sh-parking__fees-hourly {
	max-width: 50%;
	margin-bottom: 2.5rem;
}

body.shoppingmall-site .sh-parking__fees-lower {
	margin-top: 0;
}

body.shoppingmall-site .sh-parking-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5em;
}

body.shoppingmall-site .sh-parking-table th,
body.shoppingmall-site .sh-parking-table td {
	border: 1px solid #000000;
	padding: 0.85em 1em;
	text-align: center;
	vertical-align: middle;
}

body.shoppingmall-site .sh-parking-table th {
	background: #f7f7f7;
}

body.shoppingmall-site .sh-parking-table th:not(.txt-bold) {
	font-weight: 600;
}

body.shoppingmall-site .sh-parking__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2em;
	margin-top: 1em;
}

body.shoppingmall-site .sh-parking__privileges-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2em;
	align-items: start;
}

body.shoppingmall-site .sh-parking__privileges-grid--copy-only {
	grid-template-columns: 1fr;
}

body.shoppingmall-site .sh-parking__privileges-grid--copy-only .sh-parking__privileges-copy {
	grid-column: 1 / -1;
}

body.shoppingmall-site .sh-parking__privileges-media {
	/* Mobile: scale from Figma 20 / 36; desktop (≥769px) fixed below */
	--sh-parking-priv-banner-title-size: calc(20px * var(--sh-font-base) / 18);
	--sh-parking-priv-banner-subtitle-size: calc(36px * var(--sh-font-base) / 18);
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	min-height: 0;
	max-height: min(42vw, 400px);
	background-color: #ececec;
	background-size: cover;
	background-position: 88% center;
	background-repeat: no-repeat;
}

/* Extra sections: full image (natural height) + no grey fill — overrides .sh-parking__privileges-media above */

body.shoppingmall-site .sh-parking__privileges-media.sh-parking__privileges-media--plain {
	display: block;
	height: auto;
	min-height: 0;
	max-height: none;
	aspect-ratio: auto;
	background-color: #fff;
	background-image: none;
	background-size: unset;
	overflow: visible;
}

body.shoppingmall-site .sh-parking__privileges-media.sh-parking__privileges-media--plain .sh-parking__privileges-img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	vertical-align: top;
}

body.shoppingmall-site .sh-parking__privileges-banner {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	/* vw padding shrinks in narrow columns so copy stays top-left; no overlay panel */
	padding: clamp(1.75rem, 3.5vw, 1.75rem) clamp(1.25rem, 2.5vw, 2.5rem);
	text-align: left;
	font-family: "Red Hat Display", sans-serif;
	line-height: 1.35;
}

body.shoppingmall-site .sh-parking__privileges-banner-title {
	margin: 0 0 0.65em;
	font-size: var(--sh-parking-priv-banner-title-size);
	font-weight: 500;
	line-height: 1.35;
	color: #ffffff;
}

body.shoppingmall-site .sh-parking__privileges-banner-subtitle {
	margin: 0;
	font-size: var(--sh-parking-priv-banner-subtitle-size);
	font-weight: 500;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--sh-navy, #262f48);
	line-height: 1.05;
	white-space: pre-line;
}

@media only screen and (min-width: 769px) {
	body.shoppingmall-site .sh-parking__privileges-media:not(.sh-parking__privileges-media--plain) {
		--sh-parking-priv-banner-title-size: 20px;
		--sh-parking-priv-banner-subtitle-size: 36px;
		max-height: 400px;
	}
}

body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext > h3:first-child:not(.txt-sub),
body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext h3:not(.txt-sub) {
	font-family: var(--sh-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0 0 1em;
	line-height: 1.35;
}

body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext h3.txt-sub {
	margin: 0 0 1em;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
}

body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext > p:first-child {
	margin-top: 0;
}

body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext ul {
	margin: 0 0 1em;
	padding: 0;
	list-style: none;
}

body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext ul li {
	margin: 0 0 0.4em;
	padding-left: 1.1em;
	text-indent: -1.1em;
}

body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext ol {
	margin: 0 0 1em;
	padding-left: 1.35em;
}

body.shoppingmall-site .sh-parking__privileges-copy .sh-parking__richtext ol li {
	margin-bottom: 0.65em;
}

body.shoppingmall-site .sh-parking__privileges-intro:not(.txt-ibm) {
	margin-bottom: 1.25em;
	font-family: var(--sh-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.35;
}

body.shoppingmall-site .sh-parking__privileges-intro.txt-ibm {
	margin-bottom: 1.25em;
	line-height: 1.6;
	text-transform: none;
	letter-spacing: normal;
	font-weight: 400;
}

body.shoppingmall-site .sh-parking__privileges-intro p:not(.txt-ibm) {
	font-family: var(--sh-font-body);
	font-size: 0.9375rem;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
	line-height: 1.6;
}

body.shoppingmall-site .sh-parking__footnote {
	font-size: 0.8em;
	color: #555;
	margin-top: 1em;
	line-height: 1.5;
}

body.shoppingmall-site .sh-parking__tc-wrap {
	margin-top: 1.5em;
}

body.shoppingmall-site .sh-parking__tc-cta.outline-button.combo-color {
	display: inline-block;
	text-decoration: none;
	position: static;
	transform: none;
	cursor: pointer;
	font-size: 0.66em;
	font-weight: 500;
	margin: 0;
	padding: 1em 3em;
	background: transparent;
	color: #262f48;
	border-radius: 0.4em;
	border: 1px solid #edba9f;
	letter-spacing: 0.2em;
	box-sizing: border-box;
}

body.shoppingmall-site .sh-parking__richtext,
body.shoppingmall-site .sh-parking__block {
	line-height: 1.6;
}

/* Fees blocks: h3 = txt-sub (letter-spacing 0). h4 = footnotes. */
body.shoppingmall-site .sh-parking__fees-layout .sh-parking__richtext > h3:first-child:not(.txt-sub),
body.shoppingmall-site .sh-parking__fees-layout .sh-parking__richtext h3:not(.txt-sub) {
	font-family: "Red Hat Display", sans-serif;
	font-size: 1.05rem;
	font-weight: 600;
	margin: 0 0 0.75em;
	line-height: 1.35;
}

body.shoppingmall-site .sh-parking__fees-layout .sh-parking__richtext h3.txt-sub {
	margin: 0 0 0.75em;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
}

body.shoppingmall-site .sh-parking__richtext h3:not(.txt-sub) {
	font-size: 1.05rem;
	font-weight: 500;
	margin: 1.25em 0 0.65em;
}

body.shoppingmall-site .sh-parking__richtext h3.txt-sub {
	margin: 0 0 0.75em;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
}

body.shoppingmall-site .sh-parking__richtext h4 {
	font-size: 0.8125rem;
	font-weight: 400;
	color: #555;
	margin: 1em 0 0.5em;
	line-height: 1.5;
}

body.shoppingmall-site .sh-parking__richtext p {
	margin: 0 0 1em;
}

body.shoppingmall-site .sh-parking__richtext p:not(.txt-ibm) {
	font-size: inherit;
}

body.shoppingmall-site .sh-parking__richtext table,
body.shoppingmall-site .sh-parking__richtext .sh-parking-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5em;
}

body.shoppingmall-site .sh-parking__richtext table th,
body.shoppingmall-site .sh-parking__richtext table td,
body.shoppingmall-site .sh-parking__richtext .sh-parking-table th,
body.shoppingmall-site .sh-parking__richtext .sh-parking-table td {
	border: 1px solid #000000;
	padding: 0.85em 1em;
	text-align: center;
	vertical-align: middle;
}

body.shoppingmall-site .sh-parking__richtext table th:not(.txt-bold),
body.shoppingmall-site .sh-parking__richtext .sh-parking-table th:not(.txt-bold),
body.shoppingmall-site .sh-parking__richtext table tr:first-child td:not(.txt-bold),
body.shoppingmall-site .sh-parking__richtext table tr:first-child th:not(.txt-bold) {
	font-weight: 700;
}

body.shoppingmall-site .sh-parking__richtext table th,
body.shoppingmall-site .sh-parking__richtext .sh-parking-table th {
	background: #f7f7f7;
	vertical-align: middle;
}

body.shoppingmall-site .sh-parking__richtext table thead th,
body.shoppingmall-site .sh-parking__richtext table tr:first-child th,
body.shoppingmall-site .sh-parking__richtext table tr:first-child td,
body.shoppingmall-site .sh-parking__richtext .sh-parking-table thead th {
	vertical-align: middle;
}

body.shoppingmall-site .sh-parking__richtext .sh-parking__cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2em;
	margin-top: 1em;
}

body.shoppingmall-site .sh-parking__richtext .sh-parking__footnote,
body.shoppingmall-site .sh-parking__richtext p.sh-parking__footnote {
	font-size: 0.8em;
	color: #555;
	margin-top: 1em;
	line-height: 1.5;
}

body.shoppingmall-site .sh-hp-detail {
	/* Figma @ 18px root — scale with html font-size on mobile */
	--sh-hp-detail-title: clamp(1.75rem, 4vw, 2.5rem);
	--sh-hp-detail-eyebrow: calc(var(--sh-hp-detail-title) * 23 / 45);
	--sh-hp-detail-text: 1rem;
	--sh-hp-detail-back: 0.777777rem;
	padding: 2em 0 4em;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail--simple {
	max-width: 48em;
}

body.shoppingmall-site .sh-hp-detail__back {
	display: inline-block;
	margin-bottom: 0;
	font-family: var(--sh-font-display);
	font-size: var(--sh-hp-detail-back);
	line-height: 1.25;
	color: var(--sh-navy);
	text-decoration: none;
}

body.shoppingmall-site .sh-hp-detail__back:hover {
	text-decoration: underline;
}

body.shoppingmall-site .sh-hp-detail__head,
body.shoppingmall-site .sh-hp-detail__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 2rem 4rem;
	align-items: start;
}

body.shoppingmall-site .sh-hp-detail__head {
	margin-bottom: 3rem;
	align-items: stretch;
}

body.shoppingmall-site .sh-hp-detail__head-col {
	display: grid;
	grid-template-rows: auto 1fr;
	min-width: 0;
	min-height: 100%;
}

body.shoppingmall-site .sh-hp-detail__head-text-align {
	display: flex;
	align-items: center;
	min-height: 0;
}

body.shoppingmall-site .sh-hp-detail__head-text {
	min-width: 0;
	width: 100%;
}

body.shoppingmall-site .sh-hp-detail__meta {
	width: 100%;
	min-width: 0;
}

body.shoppingmall-site .sh-hp-detail__category {
	margin: 0 0 0.75em;
	color: #262f48;
	line-height: 1.25;
}

body.shoppingmall-site .sh-hp-detail__category:not(.txt-sub) {
	font-family: var(--sh-font-display);
	font-size: var(--sh-hp-detail-eyebrow);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 500;
}

body.shoppingmall-site .sh-hp-detail__category.txt-sub {
	letter-spacing: 0;
}

body.shoppingmall-site .sh-hp-detail__title:not(.txt-big) {
	font-family: var(--sh-font-display);
	font-size: var(--sh-hp-detail-title);
	font-weight: 500;
	line-height: 1.15;
	margin: 0;
	text-transform: none;
	letter-spacing: 0.02em;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail__title.txt-big {
	margin: 0;
	line-height: 1.15;
	color: var(--sh-navy);
	/* main.css .txt-big sets uppercase — show post title as entered */
	text-transform: none;
}

body.shoppingmall-site .sh-hp-detail__title-line {
	display: block;
}

body.shoppingmall-site .sh-hp-detail__meta-heading {
	margin: 0 0 1rem;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail__meta-heading:not(.txt-sub) {
	font-family: var(--sh-font-display);
	font-size: var(--sh-hp-detail-eyebrow);
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

body.shoppingmall-site .sh-hp-detail__meta-heading.txt-sub {
	letter-spacing: 0;
}

body.shoppingmall-site .sh-hp-detail__facts {
	margin: 0 0 2rem;
}

body.shoppingmall-site .sh-hp-detail__fact {
	margin-bottom: 1.25rem;
}

body.shoppingmall-site .sh-hp-detail__fact dt {
	margin: 0 0 0.35em;
	letter-spacing: 0;
	text-transform: none;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail__fact dt:not(.txt-bold) {
	font-size: var(--sh-hp-detail-text);
	font-weight: 700;
}

body.shoppingmall-site .sh-hp-detail__fact dd {
	margin: 0;
	font-weight: 400;
	line-height: 1.5;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail__fact dd:not(.txt-ibm) {
	font-size: var(--sh-hp-detail-text);
}

body.shoppingmall-site .sh-hp-detail__share {
	margin-top: 1.75rem;
	width: 100%;
}

body.shoppingmall-site .sh-hp-detail__share-label {
	display: block;
	margin-bottom: 0.9em;
	letter-spacing: 0;
	text-transform: none;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail__share-label:not(.txt-bold) {
	font-size: var(--sh-hp-detail-text);
	font-weight: 700;
}

body.shoppingmall-site .sh-hp-detail__share-links {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 1.75rem;
	justify-content: flex-start;
}

body.shoppingmall-site .sh-hp-detail__share-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	color: var(--sh-navy);
	text-decoration: none;
	line-height: 0;
}

body.shoppingmall-site .sh-hp-detail__share-link:hover {
	opacity: 0.75;
}

body.shoppingmall-site .sh-hp-detail__share-icon {
	display: block;
	width: 24px;
	height: 24px;
	max-width: none;
	object-fit: contain;
}

body.shoppingmall-site .sh-hp-detail__share-copy-state {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
}

body.shoppingmall-site .sh-hp-detail__share-icon--check {
	position: absolute;
	inset: 0;
	opacity: 0;
	transform: scale(0.85);
	transition: opacity 0.2s ease, transform 0.2s ease;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail__share-icon--link {
	transition: opacity 0.2s ease;
}

body.shoppingmall-site .sh-hp-detail__share-copy.is-copied .sh-hp-detail__share-icon--link {
	opacity: 0;
}

body.shoppingmall-site .sh-hp-detail__share-copy.is-copied .sh-hp-detail__share-icon--check {
	opacity: 1;
	transform: scale(1);
}

body.shoppingmall-site .sh-hp-detail__hero {
	overflow: hidden;
	min-width: 0;
}

body.shoppingmall-site .sh-hp-detail__hero img {
	display: block;
	width: 100%;
	height: auto;
}

body.shoppingmall-site .sh-hp-detail__body {
	line-height: 1.7;
	color: var(--sh-navy);
}

body.shoppingmall-site .sh-hp-detail__body:not(.txt-ibm) {
	font-size: var(--sh-hp-detail-text);
}

/* Main-site article share row (sns-container) must not appear in Mall body copy. */
body.shoppingmall-site .sh-hp-detail__body .sns-container {
	display: none !important;
}

body.shoppingmall-site .sh-hp-detail__body h2,
body.shoppingmall-site .sh-hp-detail__body h3,
body.shoppingmall-site .sh-hp-detail__section-title {
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 1.75em 0 0.75em;
	font-size: var(--sh-hp-detail-text);
	font-weight: 700;
}

body.shoppingmall-site .sh-hp-detail__body p,
body.shoppingmall-site .sh-hp-detail__promo-line {
	margin: 0 0 1em;
}

body.shoppingmall-site .sh-hp-detail__lead {
	margin-bottom: 0.25em;
}

body.shoppingmall-site .sh-hp-detail__specs {
	margin: 0 0 1.25em;
}

body.shoppingmall-site .sh-hp-detail__spec {
	margin-bottom: 0.85em;
}

body.shoppingmall-site .sh-hp-detail__spec dt {
	margin: 0 0 0.25em;
	font-weight: 700;
}

body.shoppingmall-site .sh-hp-detail__spec dd {
	margin: 0;
}

body.shoppingmall-site .sh-hp-detail__date-inline {
	color: #666;
	margin-bottom: 1.5em;
}

body.shoppingmall-site .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

@media only screen and (max-width: 1024px) {
	body.shoppingmall-site .sh-happenings__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	body.shoppingmall-site .sh-parking__cols,
	body.shoppingmall-site .sh-parking__privileges-grid,
	body.shoppingmall-site .sh-parking__richtext .sh-parking__cols {
		grid-template-columns: 1fr;
	}

	body.shoppingmall-site .sh-parking__fees-hourly {
		max-width: none;
	}

}

/* Happening & Promotions toolbar — desktop + mobile (keep in sync) */
@media only screen and (min-width: 769px) {
	body.shoppingmall-site .sh-happenings__toolbar-inner {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		justify-content: space-between;
		gap: 2.5rem;
		height: var(--sh-directory-bar-height);
		min-height: var(--sh-directory-bar-height);
		padding-bottom: 0;
	}

	body.shoppingmall-site .sh-happenings__toolbar-line {
		flex: 0 1 auto;
	}

	body.shoppingmall-site .sh-happenings__toolbar-line {
		border-bottom: none;
	}

	body.shoppingmall-site .sh-happenings__toolbar-row {
		align-items: stretch;
	}

	body.shoppingmall-site .sh-happenings__search {
		min-width: 11rem;
		max-width: 22rem;
		align-self: center;
	}

	body.shoppingmall-site .sh-happenings__filters {
		flex: 0 0 auto;
		align-self: center;
	}

	body.shoppingmall-site .sh-happenings__sort {
		max-width: none;
		min-width: 12rem;
	}

	body.shoppingmall-site .sh-happenings__sort select:not(.txt-tab) {
		font-size: var(--sh-list-ui-font-size);
		padding-right: 1.75rem;
	}
}

/* H&P tabs: desktop 194px; tablet smaller + auto-shrink so sort never overlaps (until mobile stack) */
@media only screen and (min-width: 1025px) {
	body.shoppingmall-site .sh-happenings {
		--sh-happenings-tab-width: 194px;
		--sh-directory-filter-tab-gap: 25px;
	}
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
	body.shoppingmall-site .sh-happenings {
		--sh-directory-filter-tab-gap: 20px;
		--sh-happenings-tab-max: 176px;
	}

	/* Tabs | sort — tabs cannot intrude into the sort column */
	body.shoppingmall-site .sh-happenings__toolbar-inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 1rem 1.25rem;
		align-items: stretch;
	}

	body.shoppingmall-site .sh-happenings__toolbar-line {
		flex: none;
		min-width: 0;
		max-width: none;
		width: 100%;
		align-self: stretch;
	}

	body.shoppingmall-site .sh-happenings__toolbar-row {
		width: 100%;
		min-width: 0;
		height: 100%;
		align-self: stretch;
	}

	body.shoppingmall-site .sh-happenings__tabs {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--sh-directory-filter-tab-gap);
		width: 100%;
		max-width: min(100%, calc(var(--sh-happenings-tab-max) * 3 + var(--sh-directory-filter-tab-gap) * 2));
		flex: none;
		align-self: stretch;
		align-items: stretch;
		height: 100%;
	}

	body.shoppingmall-site .sh-happenings__tab {
		flex: none;
		width: auto;
		min-width: 0;
		max-width: none;
		align-self: stretch;
		display: flex;
		align-items: center;
		justify-content: center;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		padding: 0 0.2rem;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-happenings__filters {
		flex-shrink: 0;
		justify-self: end;
		align-self: center;
	}

	body.shoppingmall-site .sh-happenings__sort {
		flex-shrink: 0;
		min-width: 12rem;
	}
}

@media only screen and (max-width: 768px) {
	body.shoppingmall-site .sh-happenings__toolbar {
		border-bottom: none;
	}

	body.shoppingmall-site .sh-happenings__toolbar-inner {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0;
		height: auto;
		min-height: 0;
		padding-bottom: 0.75rem;
	}

	body.shoppingmall-site .sh-happenings__toolbar-line {
		border-bottom: none;
		box-sizing: border-box;
		padding: 0;
	}

	body.shoppingmall-site .sh-happenings__toolbar-row {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0;
		min-height: 0;
		height: auto;
		justify-content: flex-start;
	}

	/* Flex row; explicit 25px gap (match Shop & Dine subnav) */
	body.shoppingmall-site .sh-happenings__tabs {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		justify-content: flex-start;
		align-items: stretch;
		gap: 25px;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
		border-bottom: 1px solid rgba(38, 47, 72, 0.2);
		padding-top: 0.75rem;
		flex-shrink: 0;
	}

	body.shoppingmall-site .sh-happenings__tab {
		flex: 0 0 var(--sh-happenings-tab-width);
		width: var(--sh-happenings-tab-width);
		min-width: var(--sh-happenings-tab-width);
		max-width: var(--sh-happenings-tab-width);
		/* Match Shop & Dine mobile tabs: text above, indicator flush on divider */
		padding: 0.85rem 0.15rem 0.7rem;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		align-self: stretch;
		display: flex;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
	}

	body.shoppingmall-site .sh-happenings__tab::after {
		bottom: -1px;
		height: 5px;
		left: 0;
		right: 0;
		width: auto;
	}

	body.shoppingmall-site .sh-happenings__search {
		flex: 0 1 auto;
		align-self: stretch;
		margin-left: 0;
		max-width: none;
		width: 100%;
		min-width: 0;
	}

	body.shoppingmall-site .sh-happenings__search input[type="search"] {
		min-width: 0;
	}

	body.shoppingmall-site .sh-happenings__filters {
		display: flex;
		align-self: stretch;
		flex: 0 0 auto;
		justify-content: flex-start;
		margin: 0.75rem 0 0;
		padding: 0;
		width: 100%;
	}

	body.shoppingmall-site .sh-happenings__sort {
		flex: 1 1 auto;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	body.shoppingmall-site .sh-happenings__sort select {
		width: 100%;
		min-height: 2.25rem;
		padding-right: 1.75rem;
		box-sizing: border-box;
		text-overflow: ellipsis;
	}
}

@media only screen and (max-width: 768px) {
	body.shoppingmall-site .sh-happenings__grid {
		grid-template-columns: 1fr;
	}

	body.shoppingmall-site .sh-parking-table--privileges {
		display: block;
		overflow-x: auto;
	}

	body.shoppingmall-site .sh-parking__privileges-media {
		background-position: 78% center;
	}

	body.shoppingmall-site .sh-hp-detail__head,
	body.shoppingmall-site .sh-hp-detail__main {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	body.shoppingmall-site .sh-hp-detail__head {
		margin-bottom: 2rem;
	}

	body.shoppingmall-site .sh-hp-detail__head-col {
		grid-template-rows: auto auto;
		min-height: 0;
		gap: 1.75rem;
	}

	body.shoppingmall-site .sh-hp-detail__head-text-align {
		align-items: flex-start;
	}

	/* Simple layout (no head-col): space below Back */
	body.shoppingmall-site .sh-hp-detail--simple > .sh-hp-detail__back {
		margin-bottom: 1.75rem;
	}

	body.shoppingmall-site .sh-hp-detail__head-col .sh-hp-detail__back {
		margin-bottom: 0;
	}
}
