/**
 * Public output.
 *
 * Inherits the theme's typography deliberately — this appends to the_content,
 * so it should read as part of the page rather than a widget dropped into it.
 * Only structure and the open/closed signal are styled here.
 */

.sct-public {
	--sct-accent: #2f5d50;
	--sct-line: #e2e5e1;
	--sct-soft: #666d68;
	--sct-sunken: #f5f6f4;
	--sct-open: #1f6b45;
	--sct-open-bg: #e8f3ec;
	--sct-shut: #92352c;
	--sct-shut-bg: #fbeae7;
	--sct-radius: 6px;
}

.sct-public,
.sct-public *,
.sct-public *::before,
.sct-public *::after {
	box-sizing: border-box;
}

/* ---- Tenant header ---- */

.sct-tenant__top {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	align-items: flex-start;
	margin-bottom: 1.5rem;
}

.sct-tenant__logo {
	flex: 0 0 150px;
}

.sct-tenant__logo img {
	width: 100%;
	height: auto;
	border: 1px solid var(--sct-line);
	border-radius: var(--sct-radius);
	background: #fff;
	padding: 0.5rem;
}

.sct-tenant__intro {
	flex: 1 1 18rem;
}

.sct-tenant__tagline {
	margin: 0 0 0.6rem;
	line-height: 1.35;
}

.sct-tenant__facts {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	align-items: center;
	margin: 0;
	color: var(--sct-soft);
}

.sct-tenant__about {
	margin-bottom: 2rem;
}

/* ---- Open / closed signal ---- */

.sct-open {
	display: inline-block;
	padding: 0.2rem 0.6rem;
	border-radius: 100px;
	font-weight: 600;
}

.sct-open--yes {
	background: var(--sct-open-bg);
	color: var(--sct-open);
}

.sct-open--no {
	background: var(--sct-shut-bg);
	color: var(--sct-shut);
}

/* ---- Blocks ---- */

.sct-tenant__cols {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1.5rem;
	margin-bottom: 2rem;
}

.sct-block__title {
	margin: 0 0 0.75rem;
}

.sct-block--wide {
	margin-top: 1rem;
}

/* ---- Hours ---- */

.sct-hours-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 0.75rem;
}

.sct-hours-table th,
.sct-hours-table td {
	padding: 0.45rem 0.5rem;
	text-align: left;
	border-bottom: 1px solid var(--sct-line);
	font-weight: 400;
}

.sct-hours-table td {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

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

.sct-hours-table tr.is-today {
	background: var(--sct-sunken);
}

.sct-hours-table tr.is-today th,
.sct-hours-table tr.is-today td {
	font-weight: 700;
}

.sct-hours-note {
	margin: 0 0 0.75rem;
	color: var(--sct-soft);
}

.sct-hours-special__title {
	margin: 1rem 0 0.4rem;
}

.sct-hours-special {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sct-hours-special li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.35rem 0;
	border-bottom: 1px solid var(--sct-line);
}

.sct-hours-special li:last-child {
	border-bottom: 0;
}

/* ---- Contact ---- */

.sct-contact,
.sct-social-links {
	margin: 0 0 0.75rem;
	padding: 0;
	list-style: none;
}

.sct-contact li {
	padding: 0.3rem 0;
}

.sct-social-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

/* ---- Facts list ---- */

.sct-facts {
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--sct-sunken);
	border-radius: var(--sct-radius);
}

.sct-facts__row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	padding: 0.4rem 0;
	border-bottom: 1px solid var(--sct-line);
}

.sct-facts__row:last-child {
	border-bottom: 0;
}

.sct-facts dt {
	flex: 0 0 5rem;
	color: var(--sct-soft);
}

.sct-facts dd {
	margin: 0;
	flex: 1 1 12rem;
}

/* ---- Promotions ---- */

.sct-promos {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 1rem;
}

.sct-promos--wide {
	grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));
}

.sct-promo__link {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 0.85rem;
	border: 1px solid var(--sct-line);
	border-radius: var(--sct-radius);
	text-decoration: none;
	color: inherit;
	height: 100%;
}

.sct-promo__link:hover,
.sct-promo__link:focus-visible {
	border-color: var(--sct-accent);
}

.sct-promo__image {
	width: 84px;
	height: 84px;
	flex: none;
	object-fit: cover;
	border-radius: var(--sct-radius);
}

.sct-promo__body {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.sct-promo__title {
	font-weight: 700;
}

.sct-promo__dates {
	font-size: 0.875rem;
	color: var(--sct-soft);
}

.sct-promo__summary {
	font-size: 0.9375rem;
}

.sct-promotion__image img {
	width: 100%;
	height: auto;
	border-radius: var(--sct-radius);
	margin-bottom: 1.25rem;
}

.sct-promotion__summary {
	font-size: 1.1875rem;
	line-height: 1.45;
	margin: 0 0 1.25rem;
}

.sct-cta {
	display: inline-block;
	padding: 0.65rem 1.25rem;
	background: var(--sct-accent);
	color: #fff;
	border-radius: var(--sct-radius);
	text-decoration: none;
	font-weight: 600;
}

.sct-muted {
	color: var(--sct-soft);
}

@media (max-width: 30rem) {.sct-tenant__logo {
		flex-basis: 110px;
	}
}

/* ---- Featured businesses ---- */

.sct-featured__heading {
	margin: 0 0 1.5rem;
	text-align: center;
}

.sct-featured__grid {
	--sct-cols: 5;
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(var(--sct-cols), minmax(0, 1fr));
	gap: 1.25rem;
}

.sct-feature__link {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	height: 100%;
	padding: 1.75rem 1.25rem;
	background: #fff;
	border: 1px solid var(--sct-line);
	border-radius: var(--sct-radius);
	text-align: center;
	text-decoration: none;
	color: inherit;
}

.sct-feature__link:hover,
.sct-feature__link:focus-visible {
	border-color: var(--sct-accent);
}

.sct-feature__mark {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 110px;
	height: 110px;
	margin-bottom: 0.5rem;
	border-radius: 50%;
	background: var(--sct-sunken);
	overflow: hidden;
}

.sct-feature__mark img {
	max-width: 78%;
	max-height: 78%;
	object-fit: contain;
}

.sct-feature__initials {
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--sct-accent);
}

.sct-feature__name {
	font-size: 1.25rem;
	line-height: 1.25;
	font-weight: 600;
}

.sct-feature__meta {
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sct-accent);
}

.sct-feature__tagline {
	font-size: 0.9375rem;
	color: var(--sct-soft);
	line-height: 1.45;
}

.sct-featured__more {
	margin: 1.75rem 0 0;
	text-align: center;
}

@media (max-width: 62rem) {.sct-featured__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 40rem) {.sct-featured__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sct-feature__mark {
		width: 78px;
		height: 78px;
	}
}

/* =====================================================================
 * Directory
 *
 * The directory sits on whatever background the theme provides, so it
 * builds its own white sheet and declares its own text colours rather
 * than inheriting them — otherwise link and heading colours bleed in and
 * the cards lose contrast.
 *
 * The logos are the visual interest here. Everything around them stays
 * deliberately quiet so a shopper scanning for a shop name isn't
 * competing with the furniture.
 * ================================================================== */

.sct-directory-wrap {
	--d-ink: #16222e;
	--d-muted: #5d6b7a;
	--d-soft: #44525f;
	--d-line: #e4e9ee;
	--d-inset: #f5f8fa;
	--d-open: #1a7a4a;
	--d-shut: #9a3b30;
	--d-hold: #8a5a12;
	--d-radius: 12px;

	/* No surface of its own: the cards are the only white. That means the
	   bar and the count sit on whatever the theme provides, so neither may
	   assume a light background — see the notes on each. */
	width: 100%;
	background: none;
	padding: 0;
}

/* Breaks out of the theme's content column to span the viewport. The
   scrollbar gutter is why this uses the padding trick rather than 100vw,
   which overflows by the scrollbar's width on Windows. */
.sct-directory-wrap--bleed {
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-left: clamp(1rem, 4vw, 3rem);
	padding-right: clamp(1rem, 4vw, 3rem);
	max-width: 100vw;
}

/* ---- Filter bar ---- */

.sct-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.9rem;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.25rem;
}

.sct-filters__search {
	display: flex;
	gap: 0.5rem;
	flex: 1 1 15rem;
	max-width: 24rem;
}

.sct-filters__search input[type="search"] {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--d-line);
	border-radius: 8px;
	background: #fff;
	color: var(--d-ink);
	font: inherit;
	font-size: 0.9375rem;
	-webkit-appearance: none;
	appearance: none;
}

.sct-filters__search input[type="search"]::placeholder {
	color: var(--d-muted);
}

.sct-filters__cats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.sct-chip {
	display: inline-block;
	padding: 0.42rem 0.85rem;
	border: 1px solid var(--d-line);
	border-radius: 999px;
	background: #fff;
	color: var(--d-soft);
	font-size: 0.875rem;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.sct-chip:hover,
.sct-chip:focus-visible {
	border-color: var(--d-ink);
	color: var(--d-ink);
}

/* Ink rather than the accent: the accent may be close to the section
   background behind it, and a blue pill on a blue band disappears. */
.sct-chip.is-active {
	background: var(--d-ink);
	border-color: var(--d-ink);
	color: #fff;
}

/* ---- Grid ---- */

.sct-directory {
	--sct-cols: 3;
	display: grid;
	grid-template-columns: repeat(var(--sct-cols), minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sct-directory-results {
	position: relative;
}

.is-loading .sct-directory-results {
	opacity: 0.5;
}

/* ---- Card ---- */

.sct-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--d-line);
	border-radius: var(--d-radius);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sct-card__link:hover,
.sct-card__link:focus-visible {
	border-color: #c6d0d9;
	box-shadow: 0 6px 18px -10px rgba(22, 34, 46, 0.4);
}

.sct-card__media {
	display: grid;
	place-items: center;
	/* The ratio keeps the tile proportionate on narrow cards; the cap stops
	   it becoming a billboard when the grid is only two or three across. */
	aspect-ratio: 3 / 2;
	max-height: 190px;
	background: var(--d-inset);
	border-bottom: 1px solid var(--d-line);
}

.sct-card__media img {
	max-width: 72%;
	max-height: 72%;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* No logo on file: the tile takes the tenant's own tint and the initials
   fill it, so the card reads as a designed brand plate rather than a
   picture that failed to load. */
.sct-card__media--plate {
	border-bottom-color: rgba(22, 34, 46, 0.08);
}

.sct-card__initial {
	font-size: clamp(1.75rem, 5vw, 2.25rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
}

.sct-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	flex: 1 1 auto;
	padding: 0.9rem 1rem 1rem;
}

.sct-card__title {
	font-weight: 650;
	line-height: 1.3;
	color: var(--d-ink);
}

/* Sentence case, not an eyebrow: this answers "what kind of shop is it",
   which is secondary to the name, not a label above it. */
.sct-card__cat {
	color: var(--d-muted);
}

.sct-card__tagline {
	margin-top: 0.15rem;
	line-height: 1.45;
	color: var(--d-soft);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}

.sct-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 0.7rem;
	border-top: 1px solid var(--d-line);
}

.sct-card__suite {
	color: var(--d-muted);
}

/* Trading state reads as a small live signal rather than a loud badge. */
.sct-card .sct-open {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0;
	background: none;
	border-radius: 0;
	font-weight: 600;
}

.sct-card .sct-open::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 999px;
	background: currentColor;
}

.sct-card .sct-open--yes {
	color: var(--d-open);
}

.sct-card .sct-open--no {
	color: var(--d-shut);
}

.sct-card__status {
	display: inline-block;
	padding: 0.2rem 0.5rem;
	border-radius: 999px;
	background: #fbf1de;
	color: var(--d-hold);
	font-weight: 600;
}

/* ---- Load more ---- */

.sct-more {
	margin-top: 1.75rem;
	text-align: center;
}

.sct-btn {
	display: inline-block;
	padding: 0.6rem 1.4rem;
	border-radius: 8px;
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.sct-btn--outline {
	background: #fff;
	border: 1px solid var(--d-line);
	color: var(--d-ink);
}

.sct-btn--outline:hover,
.sct-btn--outline:focus-visible {
	background: var(--d-ink);
	border-color: var(--d-ink);
	color: #fff;
}

.sct-btn[disabled] {
	opacity: 0.55;
	cursor: default;
}

.sct-directory-empty {
	padding: 3rem 1rem;
	text-align: center;
	color: inherit;
	opacity: 0.8;
}

.sct-directory-wrap :focus-visible {
	outline: 2px solid var(--sct-accent, #16222e);
	outline-offset: 2px;
}

@media (max-width: 62rem) {
	.sct-directory {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 34rem) {
	.sct-directory {
		grid-template-columns: 1fr;
	}

	/* A wrapping column container sizes its flex line to the items'
	   max-content, which overflows the sheet. Stacked, there is nothing
	   left to wrap. */
	.sct-filters {
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: stretch;
	}

	/* The flex basis above is horizontal intent; once the bar stacks, the
	   same rule would stretch the search box vertically instead. */
	.sct-filters__search {
		flex: 0 0 auto;
		max-width: none;
	}

	.sct-filters__cats {
		min-width: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sct-card__link {
		transition: none;
	}
}

/* Inherits the theme's text colour, since the backdrop is now the theme's
   and could be light or dark. */
.sct-result-count {
	margin: 0 0 1rem;
	color: inherit;
	opacity: 0.75;
}

/* Search controls: sized independently of the theme's SVG and form defaults. */
.sct-directory-wrap .sct-sr-only {
 position: absolute;
 width: 1px;
 height: 1px;
 padding: 0;
 margin: -1px;
 overflow: hidden;
 clip: rect(0, 0, 0, 0);
 clip-path: inset(50%);
 white-space: nowrap;
 border: 0;
}
.sct-directory-wrap .sct-filters {
 display: flex;
 flex-direction: column;
 align-items: stretch;
 gap: 1rem;
 margin: 0 0 1.5rem;
}
.sct-directory-wrap .sct-filters__search {
 display: flex;
 align-items: stretch;
 flex: 0 0 auto;
 gap: 0.625rem;
 width: 100%;
 max-width: 38rem;
 margin: 0;
}
.sct-directory-wrap .sct-search-field {
 position: relative;
 display: flex;
 align-items: center;
 flex: 1 1 auto;
 min-width: 0;
}
.sct-directory-wrap .sct-search-icon {
 position: absolute;
 left: 1rem;
 top: 50%;
 transform: translateY(-50%);
 display: block;
 width: 20px;
 height: 20px;
 max-width: 20px;
 color: #07326e;
 pointer-events: none;
}
.sct-directory-wrap .sct-search-field input[type="search"] {
 display: block;
 width: 100%;
 min-width: 0;
 height: 52px;
 margin: 0;
 padding: 0.75rem 1rem 0.75rem 2.875rem;
 border: 1px solid #cbd5e4;
 border-radius: 10px;
 background: #fff;
 color: #07326e;
 font: inherit;
 line-height: 1.4;
 box-shadow: none;
}
.sct-directory-wrap .sct-search-field input::placeholder {
 color: #596b83;
 opacity: 1;
}
.sct-directory-wrap .sct-search-field input:focus {
 border-color: #144ca2;
 outline: 2px solid #144ca2;
 outline-offset: 2px;
}
.sct-directory-wrap .sct-filters__search .sct-btn--solid {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 flex: 0 0 auto;
 min-height: 52px;
 margin: 0;
 padding: 0.75rem 1.5rem;
 border: 1px solid #07326e;
 border-radius: 10px;
 background: #07326e;
 color: #fff;
 font: inherit;
 font-weight: 600;
 line-height: 1.4;
 cursor: pointer;
}
.sct-directory-wrap .sct-filters__search .sct-btn--solid:hover {
 background: #144ca2;
 border-color: #144ca2;
}
.sct-directory-wrap .sct-filters__cats {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 min-width: 0;
}
.sct-directory-wrap .sct-chip {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-height: 40px;
 padding: 0.5rem 1rem;
 border: 1px solid #cbd5e4;
 border-radius: 999px;
 background: #fff;
 color: #07326e;
 font: inherit;
 font-weight: 500;
 line-height: 1.3;
 text-decoration: none;
}
.sct-directory-wrap .sct-chip:hover {
 border-color: #144ca2;
 background: #edf2fa;
}
.sct-directory-wrap .sct-chip.is-active {
 background: #07326e;
 border-color: #07326e;
 color: #fff;
}
.sct-directory-wrap :focus-visible {
 outline-color: #144ca2;
}
@media (max-width: 34rem) {
 .sct-directory-wrap .sct-filters__search .sct-btn--solid {
  padding-inline: 1rem;
 }
}

/* Optional directory introduction and coordinated search row. */
.sct-directory-wrap .sct-directory-header {
 display: grid;
 gap: 1.5rem;
 align-items: end;
 margin-bottom: 1.75rem;
}
.sct-directory-wrap .sct-directory-header--split {
 grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
 gap: clamp(1.5rem, 4vw, 3rem);
}
.sct-directory-intro { min-width: 0; }
.sct-directory-wrap .sct-directory-eyebrow {
    margin: 0 0 0.5rem;
    color: #c1613b;
    font-weight: 700;
    letter-spacing: 0.075em;
    line-height: 1.4;
    text-transform: uppercase;
    font-family: 'Sklow';
}
.sct-directory-wrap .sct-directory-heading {
    margin: 0;
    font-size: 60px;
    line-height: 1.08;
}
.sct-directory-wrap .sct-directory-text {
 margin: 0.75rem 0 0;
 color: #07326e;
 font-size: 18px;
 line-height: 1.5;
}
.sct-directory-wrap .sct-directory-header .sct-filters__search {
 max-width: none;
 min-width: 0;
}
.sct-directory-wrap .sct-card__link { position: relative; }
.sct-directory-wrap .sct-card__media { background: #fff; }
.sct-directory-wrap .sct-card__title { color: #07326e; }
.sct-directory-wrap .sct-card__cat { color: #144ca2; }
.sct-directory-wrap .sct-card__body { padding-bottom: 4.75rem; }
.sct-directory-wrap .sct-card__arrow {
 position: absolute;
 right: 1rem;
 bottom: 1rem;
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 36px;
 height: 36px;
 border-radius: 50%;
 background: #f9c623;
 color: #07326e;
 font-size: 1.25rem;
 line-height: 1;
}
.sct-directory-wrap .sct-card__link:hover .sct-card__arrow {
 background: #07326e;
 color: #f9c623;
}
@media (max-width: 48rem) {
 .sct-directory-wrap .sct-directory-header--split { grid-template-columns: 1fr; }
}

/* Optional decorative brand logo above the search controls. */
.sct-directory-wrap .sct-directory-tools {
 display: flex;
 flex-direction: column;
 align-items: stretch;
 gap: 1rem;
 min-width: 0;
}
.sct-directory-wrap .sct-directory-logo {
 display: block;
 align-self: flex-end;
 width: clamp(80px, 8vw, 112px);
 max-width: 100%;
 height: auto;
 object-fit: contain;
 margin: 0;
}
@media (max-width: 48rem) {
 .sct-directory-wrap .sct-directory-tools { gap: 0.75rem; }
 .sct-directory-wrap .sct-directory-logo { width: 80px; }
}

.header-button {
	border-width: 2px;
    border-top-left-radius: 50px;
    border-top-right-radius: 50px;
    border-bottom-left-radius: 50px;
    border-bottom-right-radius: 50px;
    padding-top: 16px;
    padding-right: 16px;
    padding-bottom: 16px;
    padding-left: 16px;
    font-style: normal;
    font-weight: 600;
background-color: #09326e !important;
color: white !important;
}


/* =====================================================================
 * Single tenant / promotion page
 *
 * Matches the centre's site: navy hero band, orange script eyebrows,
 * heavy navy headings, cream panels, yellow pill buttons and arrow tiles.
 * Headings inherit the Bricks heading font; colours are set explicitly so
 * theme link/heading colours can't bleed in.
 * ================================================================== */

.sct-single {
	font-size: 20px;
	--s-navy: #07326e;
	--s-blue: #144ca2;
	--s-yellow: #f9c623;
	--s-orange: #c1613b;
	--s-cream: #f7f0e3;
	--s-ink: #07326e;
	--s-text: #2b3f5c;
	--s-muted: #5a6b84;
	--s-line: #e3e8f0;
	--s-open: #1a7a4a;
	--s-shut: #b4412f;
	--s-wrap: 1200px;
	--s-gutter: clamp(16px, 4vw, 40px);
	color: var(--s-text);
	line-height: 1.6;
}

.sct-single a { text-decoration: none; }

.sct-single .sct-wrap {
	width: 100%;
	max-width: calc(var(--s-wrap) + var(--s-gutter) * 2);
	margin: 0 auto;
	padding-left: var(--s-gutter);
	padding-right: var(--s-gutter);
}

/* ---- Hero ---- */

.sct-single .sct-hero {
	position: relative;
	overflow: hidden;
	background: var(--s-navy);
	color: #fff;
	padding: clamp(40px, 6vw, 80px) 0;
}


/* Inside a Bricks container (shortcode use) the hero becomes a card;
   on the plugin's own page template it runs edge to edge. */
.sct-single .sct-hero { border-radius: 24px; }
.sct-page .sct-single .sct-hero { border-radius: 0; }

/* Bricks doesn't ship this utility, so the hours caption would show. */
.sct-public .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.sct-single .sct-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}

.sct-single .sct-hero__inner--solo { grid-template-columns: minmax(0, 1fr); }
.sct-single .sct-hero__inner--solo .sct-hero__text { max-width: 736px; }

.sct-single .sct-back {
	display: inline-flex;
	align-items: center;
	gap: 6.4px;
	margin-bottom: 24px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 16px;
	font-weight: 600;
}

.sct-single .sct-back:hover,
.sct-single .sct-back:focus-visible { color: var(--s-yellow); }

.sct-single .sct-hero__eyebrow {
	margin: 0 0 12px;
	color: var(--s-yellow);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.sct-single .sct-hero__title {
	margin: 0;
	color: #fff;
	font-size: clamp(40px, 6vw, 68px);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.01em;
}

.sct-single .sct-hero__tagline {
	margin: 16px 0 0;
	max-width: 544px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 22px;
	line-height: 1.5;
}

/* ---- Status pill ---- */

.sct-single .sct-status {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 20px 0 0;
	padding: 5.6px 13.6px;
	border-radius: 999px;
	background: #fff;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
}

.sct-single .sct-status::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

.sct-single .sct-status--open { color: var(--s-open); }
.sct-single .sct-status--closed { color: var(--s-shut); }
.sct-single .sct-status--soon { background: var(--s-yellow); color: var(--s-navy); }
.sct-single .sct-status--soon::before { display: none; }

/* ---- Pill buttons (match "Explore The Commons") ---- */

.sct-single .sct-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

.sct-single .sct-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	padding: 10.4px 22.4px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.2;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.sct-single .sct-pill--yellow {
	background: var(--s-yellow);
	border-color: var(--s-yellow);
	color: var(--s-navy);
}

.sct-single .sct-pill--yellow:hover,
.sct-single .sct-pill--yellow:focus-visible {
	background: #fff;
	border-color: #fff;
	color: var(--s-navy);
}

.sct-single .sct-pill--light {
	background: #fff;
	border-color: #fff;
	color: var(--s-navy);
}

.sct-single .sct-pill--light:hover,
.sct-single .sct-pill--light:focus-visible {
	background: transparent;
	color: #fff;
}

/* ---- Logo / photo card ---- */

.sct-single .sct-hero__mark {
	display: flex;
	justify-content: center;
}

.sct-single .sct-logo-card {
	display: grid;
	place-items: center;
	width: 100%;
	max-width: 380px;
	aspect-ratio: 1;
	padding: 40px;
	background: #fff;
	border-radius: 32px;
	box-shadow: 0 24px 50px -24px rgba(0, 0, 0, 0.55);
	transform: rotate(-2deg);
}

.sct-single .sct-logo-card img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.sct-single .sct-logo-card__initials {
	font-size: clamp(56px, 9vw, 96px);
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1;
}

.sct-single .sct-photo-card {
	width: 100%;
	max-width: 460px;
	overflow: hidden;
	border-radius: 28px;
	box-shadow: 0 24px 50px -24px rgba(0, 0, 0, 0.55);
}

.sct-single .sct-photo-card img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* ---- Body ---- */

.sct-single .sct-body { padding: clamp(48px, 7vw, 88px) 0; }

.sct-single .sct-body__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}

.sct-single .sct-section + .sct-section { margin-top: clamp(48px, 6vw, 72px); }

.sct-single .sct-eyebrow {
	margin: 0 0 6.4px;
	color: var(--s-orange);
	font-family: 'Sklow', inherit;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.075em;
	text-transform: uppercase;
}

.sct-single .sct-heading {
	margin: 0;
	color: var(--s-navy);
	font-size: clamp(32px, 4vw, 44px);
	font-weight: 800;
	line-height: 1.1;
}

/* Short yellow underline, as under "A Day Worth Sharing." */
.sct-single .sct-rule {
	display: block;
	width: 64px;
	height: 4px;
	margin: 17.6px 0 24px;
	border-radius: 2px;
	background: var(--s-yellow);
}

.sct-single .sct-prose {
	color: var(--s-text);
	font-size: 20px;
	line-height: 1.7;
}

.sct-single .sct-prose p { margin: 0 0 1em; }
.sct-single .sct-prose p:last-child { margin-bottom: 0; }
.sct-single .sct-prose a { color: var(--s-blue); text-decoration: underline; }
.sct-single .sct-muted { color: var(--s-muted); }

/* ---- Offers (sales & events) ---- */

.sct-single .sct-offers {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sct-single .sct-offer__link {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--s-line);
	border-radius: 16px;
	color: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.sct-single .sct-offer__link:hover,
.sct-single .sct-offer__link:focus-visible {
	border-color: #c6d0de;
	box-shadow: 0 10px 24px -14px rgba(7, 50, 110, 0.45);
}

.sct-single .sct-offer__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
}

.sct-single .sct-offer__body {
	display: flex;
	flex-direction: column;
	gap: 4.8px;
	padding: 17.6px 18.4px 64px;
}

.sct-single .sct-offer__dates {
	color: var(--s-orange);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.sct-single .sct-offer__title {
	color: var(--s-navy);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
}

.sct-single .sct-offer__summary {
	color: var(--s-muted);
	font-size: 20px;
	line-height: 1.5;
}

/* Yellow arrow tile, same as the directory cards. */
.sct-single .sct-arrow {
	position: absolute;
	right: 16px;
	bottom: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--s-yellow);
	color: var(--s-navy);
	transition: background-color 0.15s ease, color 0.15s ease;
}

.sct-single .sct-offer__link:hover .sct-arrow {
	background: var(--s-navy);
	color: var(--s-yellow);
}

/* ---- Sidebar panels ---- */

.sct-single .sct-aside {
	display: flex;
	flex-direction: column;
	gap: 20px;
	position: sticky;
	top: 24px;
}

.sct-single .sct-panel {
	padding: clamp(24px, 3vw, 32px);
	background: var(--s-cream);
	border-radius: 24px;
}

.sct-single .sct-panel--white {
	background: #fff;
	border: 1px solid var(--s-line);
}

.sct-single .sct-panel__title {
	margin: 0 0 16px;
	color: var(--s-navy);
	font-size: 28px;
	font-weight: 800;
	line-height: 1.2;
}

/* Hours table inside the panel */
.sct-single .sct-hours-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: none;
}

.sct-single .sct-hours-table th,
.sct-single .sct-hours-table td {
	padding: 8.8px 12px;
	border: 0;
	border-bottom: 1px solid rgba(7, 50, 110, 0.1);
	background: none;
	color: var(--s-text);
	font-size: 20px;
	font-weight: 500;
	text-align: left;
}

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

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

.sct-single .sct-hours-table tr.is-today th,
.sct-single .sct-hours-table tr.is-today td {
	background: var(--s-navy);
	border-bottom-color: transparent;
	color: #fff;
	font-weight: 700;
}

.sct-single .sct-hours-table tr.is-today th { border-radius: 10px 0 0 10px; }
.sct-single .sct-hours-table tr.is-today td { border-radius: 0 10px 10px 0; }

.sct-single .sct-hours-table .sct-muted { color: var(--s-muted); }

.sct-single .sct-hours-note {
	margin: 16px 0 0;
	color: var(--s-muted);
	font-size: 16px;
}

.sct-single .sct-hours-special__title {
	margin: 24px 0 8px;
	color: var(--s-orange);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sct-single .sct-hours-special li {
	border-bottom-color: rgba(7, 50, 110, 0.1);
	font-size: 18px;
}

/* Contact list */
.sct-single .sct-contact {
	display: flex;
	flex-direction: column;
	gap: 13.6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sct-single .sct-contact li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 0;
	min-width: 0;
	color: var(--s-text);
}

.sct-single .sct-contact a {
	color: var(--s-navy);
	font-weight: 600;
	overflow-wrap: anywhere;
}

.sct-single .sct-contact a:hover,
.sct-single .sct-contact a:focus-visible { color: var(--s-blue); text-decoration: underline; }

.sct-single .sct-contact__icon {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #edf2fa;
	color: var(--s-blue);
}

.sct-single .sct-follow {
	margin: 24px 0 9.6px;
	color: var(--s-navy);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sct-single .sct-social {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sct-single .sct-social a {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 6.4px 14.4px;
	border-radius: 999px;
	background: var(--s-navy);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
}

.sct-single .sct-social a:hover,
.sct-single .sct-social a:focus-visible { background: var(--s-blue); }

/* Promotion facts inside the cream panel */
.sct-single .sct-facts {
	margin: 0;
	padding: 0;
	background: none;
	border-radius: 0;
}

.sct-single .sct-facts__row {
	padding: 12px 0;
	border-bottom-color: rgba(7, 50, 110, 0.1);
}

.sct-single .sct-facts__row:first-child { padding-top: 0; }

.sct-single .sct-facts dt {
	color: var(--s-orange);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sct-single .sct-facts dd { color: var(--s-navy); font-weight: 600; }
.sct-single .sct-facts a { color: var(--s-blue); text-decoration: underline; }

/* ---- Closing band (matches "On The Horizon") ---- */

.sct-single .sct-band {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 16px 32px;
	align-items: center;
	margin-bottom: clamp(48px, 7vw, 80px);
	padding: clamp(24px, 4vw, 36px) clamp(24px, 4vw, 44px);
	background: var(--s-cream);
	border-radius: 24px;
}

.sct-single .sct-band__title {
	margin: 0;
	color: var(--s-navy);
	font-size: clamp(24px, 3vw, 32px);
	font-weight: 800;
	line-height: 1.15;
}

.sct-single .sct-band__text {
	margin: 0;
	padding-left: 32px;
	border-left: 2px solid rgba(7, 50, 110, 0.2);
	color: var(--s-text);
}

.sct-single .sct-band .sct-pill--yellow:hover,
.sct-single .sct-band .sct-pill--yellow:focus-visible {
	background: var(--s-navy);
	border-color: var(--s-navy);
	color: #fff;
}

.sct-single :focus-visible {
	outline: 2px solid var(--s-yellow);
	outline-offset: 3px;
}

.sct-single .sct-body :focus-visible,
.sct-single .sct-band :focus-visible { outline-color: var(--s-blue); }

/* ---- Responsive ---- */

@media (max-width: 992px) {
	.sct-single .sct-body__grid { grid-template-columns: minmax(0, 1fr); }
	.sct-single .sct-aside { position: static; }
	.sct-single .sct-band { grid-template-columns: minmax(0, 1fr); }
	.sct-single .sct-band__text { padding-left: 0; border-left: 0; }
	.sct-single .sct-band .sct-pill { justify-self: start; }
}

@media (max-width: 768px) {
	.sct-single .sct-hero__inner { grid-template-columns: minmax(0, 1fr); }
	.sct-single .sct-hero__mark { order: -1; justify-content: flex-start; }
	.sct-single .sct-logo-card { max-width: 160px; padding: 20px; border-radius: 22px; }
	.sct-single .sct-logo-card__initials { font-size: 44px; }
	.sct-single .sct-photo-card { max-width: none; }
	.sct-single .sct-hero::after { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.sct-single .sct-pill,
	.sct-single .sct-offer__link,
	.sct-single .sct-arrow { transition: none; }
}

@media (max-width: 480px) {
	.sct-single .sct-hours-table th,
	.sct-single .sct-hours-table td { padding: 8px 6px; font-size: 17px; }
}
