/* TownSites Core front end. Scoped under .tsc; inherits the theme's fonts and text colour.
 *
 * Contrast approach (WCAG AA on any theme):
 *  - Text that sits on the page background simply inherits the theme's colour.
 *  - Anything with its own background (cards, buttons, chips, ribbons, notices) sets BOTH
 *    background and text colour explicitly, so it passes regardless of the theme behind it.
 */
.tsc {
	/* Brand (overridden inline from Settings → Brand colour; every ink colour is computed for contrast). */
	--tsc-brand: #5ba3e6;
	--tsc-brand-ink: #111827;
	--tsc-brand-hover: #4a86bd;
	--tsc-brand-hover-ink: #111827;
	--tsc-brand-tint: #e7f1fb;
	--tsc-brand-tint-2: #cfe3f7;
	--tsc-brand-tint-ink: #1d5f96;
	--tsc-brand-deep: #32597e;
	--tsc-ph-ink: #ffffff;
	--tsc-link: #1d6aa5;
	--tsc-focus: var(--tsc-link);
	/* Neutral surfaces: self-contained colours, so cards read on any theme (light or dark). */
	--tsc-surface: #ffffff;
	--tsc-surface-ink: #1f2937;
	--tsc-surface-muted: #4b5563;
	--tsc-surface-line: #d1d5db;
	--tsc-surface-alt: #f3f4f6;
	--tsc-danger: #b91c1c;
	--tsc-danger-hover: #991b1b;
	--tsc-danger-ink: #ffffff;
	--tsc-accent: #32597e;
	--tsc-accent-ink: #ffffff;
	--tsc-gold: #fbbf24;
	--tsc-gold-ink: #1c1300;
	/* Type: one scale, relative to the plugin's own base size (not the theme's html font-size). */
	--tsc-fs-base: 16px;
	--tsc-font-body: inherit;
	--tsc-font-heading: inherit;
	--tsc-fs-h1: clamp(1.75em, 1em + 2.6vw, 2.5em);   /* 28px phones → 40px desktop */
	--tsc-fs-h2: clamp(1.375em, 1em + 1vw, 1.75em);   /* 22 → 28 */
	--tsc-fs-h3: 1.25em;                              /* 20 */
	--tsc-fs-sm: .875em;                              /* 14 */
	/* Rhythm: 8px grid. */
	--tsc-s1: 8px; --tsc-s2: 16px; --tsc-s3: 24px; --tsc-s4: 32px; --tsc-s5: 48px; --tsc-s6: 64px;
	--tsc-max: 1200px;
	/* Shape. */
	--tsc-radius: 14px;
	--tsc-btn-radius: 10px;
	--tsc-shadow: 0 1px 2px rgba(16,24,40,.06), 0 4px 14px rgba(16,24,40,.08);
	--tsc-shadow-lg: 0 2px 4px rgba(16,24,40,.06), 0 12px 32px rgba(16,24,40,.12);
	--tsc-line: color-mix(in srgb, currentColor 25%, transparent);
	--tsc-muted: color-mix(in srgb, currentColor 75%, transparent);
}
.tsc { font-size: var(--tsc-fs-base); line-height: 1.6; font-family: var(--tsc-font-body); -webkit-font-smoothing: antialiased; }
.tsc *, .tsc *::before, .tsc *::after { box-sizing: border-box; }
.tsc :is(h1, h2, h3, h4, .tsc-h1, .tsc-h2, .tsc-h3, .tsc-hero__title, .tsc-lhero__title, .tsc-lcard__title, .tsc-tile__name) { font-family: var(--tsc-font-heading); letter-spacing: -.01em; }
.tsc :is(p, ul, ol, dl, blockquote, figure) { font-size: inherit; }
.tsc-wrap { box-sizing: content-box; max-width: var(--tsc-max); margin: 0 auto; padding: var(--tsc-s4) 16px var(--tsc-s6); }
.tsc img { max-width: 100%; height: auto; }
.tsc a:not(.tsc-btn) { color: inherit; text-underline-offset: 3px; }
.tsc .tsc-h1, .tsc .tsc-listing__title, .tsc .tsc-hero__title, .tsc .tsc-lhero__title { font-size: var(--tsc-fs-h1); line-height: 1.15; font-weight: 700; margin: 0 0 var(--tsc-s2); }
.tsc .tsc-h2 { font-size: var(--tsc-fs-h2); font-weight: 650; line-height: 1.25; margin: 0 0 var(--tsc-s2); }
.tsc .tsc-h3 { font-size: var(--tsc-fs-h3); font-weight: 650; line-height: 1.3; margin: 0 0 var(--tsc-s1); }
.tsc-muted { color: var(--tsc-muted); }
.tsc-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.tsc-icon { flex: none; display: inline-block; vertical-align: middle; }

/* ---------- Surfaces (self-contained colours) ---------- */
.tsc-card { background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); padding: 16px; margin-bottom: 16px; }
.tsc-card .tsc-muted, .tsc-card .tsc-facts__k { color: var(--tsc-surface-muted); }
.tsc-card :is(.tsc-h1, .tsc-h2, .tsc-h3) { color: var(--tsc-surface-ink); }

/* ---------- Buttons: ONE system for the whole front end ----------
 * primary   solid brand, auto-contrast text, darker shade on hover
 * secondary white, brand border + text-safe brand text, tint on hover
 * ghost     neutral outline (tertiary actions: Website, Share …)
 * link      text-only
 * danger    destructive actions only (never decoration)
 * sizes     --sm / (md) / --lg ; --block = full width ; icons: <svg class="tsc-icon"> inside.
 * Colours carry !important so Elementor kit / theme global button + link styles can't repaint them. */
.tsc .tsc-btn, .tsc a.tsc-btn, .tsc button.tsc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 20px; margin: 0;
	border: 2px solid transparent; border-radius: var(--tsc-btn-radius); font-family: inherit; font-size: 1em; font-weight: 600; line-height: 1.2;
	letter-spacing: normal; text-transform: none; text-decoration: none !important; text-align: center; cursor: pointer; box-shadow: none; text-shadow: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; -webkit-appearance: none; appearance: none;
}
.tsc .tsc-btn--sm { min-height: 36px; padding: 8px 16px; font-size: .875em; gap: 8px; }
.tsc .tsc-btn--lg { min-height: 52px; padding: 16px 28px; font-size: 1.0625em; }
.tsc .tsc-btn--block { display: flex; width: 100%; }
.tsc .tsc-btn[disabled], .tsc .tsc-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.tsc .tsc-btn:focus-visible { outline: 3px solid var(--tsc-focus) !important; outline-offset: 2px; }
.tsc .tsc-btn.tsc-btn--primary, .tsc .tsc-btn.tsc-btn--primary:visited { background: var(--tsc-brand) !important; border-color: var(--tsc-brand) !important; color: var(--tsc-brand-ink) !important; }
.tsc .tsc-btn.tsc-btn--primary:is(:hover, :active) { background: var(--tsc-brand-hover) !important; border-color: var(--tsc-brand-hover) !important; color: var(--tsc-brand-hover-ink) !important; }
.tsc .tsc-btn.tsc-btn--secondary, .tsc .tsc-btn.tsc-btn--secondary:visited { background: var(--tsc-surface) !important; border-color: var(--tsc-link) !important; color: var(--tsc-link) !important; }
.tsc .tsc-btn.tsc-btn--secondary:is(:hover, :active) { background: var(--tsc-brand-tint) !important; border-color: var(--tsc-brand-tint-ink) !important; color: var(--tsc-brand-tint-ink) !important; }
.tsc .tsc-btn.tsc-btn--ghost, .tsc .tsc-btn.tsc-btn--ghost:visited { background: var(--tsc-surface) !important; border-color: var(--tsc-surface-line) !important; color: var(--tsc-surface-ink) !important; }
.tsc .tsc-btn.tsc-btn--ghost:is(:hover, :active) { background: var(--tsc-surface-alt) !important; border-color: var(--tsc-link) !important; color: var(--tsc-surface-ink) !important; }
.tsc .tsc-btn.tsc-btn--link, .tsc .tsc-btn.tsc-btn--link:visited { background: transparent !important; border-color: transparent !important; color: inherit !important; min-height: 0; padding: 2px 0; text-decoration: underline !important; text-underline-offset: 3px; }
.tsc .tsc-btn.tsc-btn--link:is(:hover, :active) { color: inherit !important; text-decoration-thickness: 2px !important; }
.tsc :is(.tsc-card, .tsc-pay__card, .tsc-empty, .tsc-lcard, .tsc-cathead) .tsc-btn.tsc-btn--link { color: var(--tsc-link) !important; }
.tsc .tsc-btn.tsc-btn--danger, .tsc .tsc-btn.tsc-btn--danger:visited { background: var(--tsc-danger) !important; border-color: var(--tsc-danger) !important; color: var(--tsc-danger-ink) !important; }
.tsc .tsc-btn.tsc-btn--danger:is(:hover, :active) { background: var(--tsc-danger-hover) !important; border-color: var(--tsc-danger-hover) !important; color: var(--tsc-danger-ink) !important; }
.tsc .tsc-btn--icon { padding: 0; width: 44px; }
.tsc .tsc-btn--icon.tsc-btn--sm { width: 36px; }
.tsc-btnrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* ---------- Badges (category, tier) ---------- */
.tsc .tsc-catlabel, .tsc .tsc-badge { display: inline-flex; align-items: center; gap: 8px; padding: 4px 8px; border-radius: 999px; font-size: .8125em; font-weight: 600; line-height: 1.3; background: var(--tsc-brand-tint) !important; color: var(--tsc-brand-tint-ink) !important; text-decoration: none !important; border: 0; }
.tsc a.tsc-catlabel:is(:hover, :focus-visible) { background: var(--tsc-brand-tint-2) !important; }
.tsc-pill { display: inline-block; padding: .1em .7em; border-radius: 999px; font-size: .75em; vertical-align: middle; font-weight: 600; background: #e5e7eb; color: #1f2937; }
.tsc-pill--premium { background: #fef3c7; color: #78350f; }
.tsc-pill--standard { background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink); }
.tsc-pill--lock { background: #fef3c7; color: #78350f; margin-left: .4em; }
.tsc-tierbadge, .tsc-ribbon { display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 999px; font-size: .75em; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; line-height: 1.3; background: #e5e7eb; color: #1f2937; }
:is(.tsc-tierbadge, .tsc-ribbon):is(.tsc-tierbadge--premium, .tsc-ribbon--premium) { background: var(--tsc-gold); color: var(--tsc-gold-ink); }
:is(.tsc-tierbadge, .tsc-ribbon):is(.tsc-tierbadge--standard, .tsc-ribbon--standard) { background: var(--tsc-brand); color: var(--tsc-brand-ink); }
:is(.tsc-tierbadge, .tsc-ribbon):is(.tsc-tierbadge--featured, .tsc-ribbon--featured) { background: #111827; color: #ffffff; }
.tsc-ribbon { position: absolute; top: 12px; left: 12px; box-shadow: 0 2px 6px rgba(0,0,0,.2); }

/* ---------- Notices ---------- */
.tsc-notice { padding: 12px 16px; border-radius: 10px; margin: 0 0 16px; border: 1px solid transparent; }
.tsc-notice ul { margin: 0; padding-left: 1.2em; }
.tsc-notice--success { background: #ecfdf5; color: #065f46; border-color: #a7f3d0; }
.tsc-notice--error { background: #fef2f2; color: #991b1b; border-color: #fecaca; }
.tsc-notice--info { background: #eff6ff; color: #1e3a8a; border-color: #bfdbfe; }
.tsc-preview-bar { background: #fef3c7; color: #78350f; padding: 8px 12px; border-radius: 8px; margin-bottom: 16px; font-weight: 600; }
.tsc-dormant { background: #fff; color: #1f2937; }

/* ---------- Cover photo + placeholder ---------- */
.tsc-cover { display: block; position: relative; margin: 0; }
.tsc-cover__img, .tsc-cover__ph { display: block; width: 100%; aspect-ratio: 16 / 10; border-radius: var(--tsc-radius); }
.tsc-cover__img { object-fit: cover; height: auto; background: #e5e7eb; }
/* No photo: a subtle brand-tinted pattern with the category icon and the business name (never a giant letter). */
.tsc-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 16px 20px; text-align: center; color: var(--tsc-surface-ink); background-color: var(--tsc-brand-tint); background-image: radial-gradient(var(--tsc-brand-tint-2) 1.2px, transparent 1.4px), linear-gradient(135deg, transparent 0 60%, color-mix(in srgb, var(--tsc-brand-tint-2) 55%, transparent) 100%); background-size: 16px 16px, 100% 100%; overflow: hidden; }
.tsc-ph--plain { background-image: none; }
.tsc-ph__icon { display: grid; place-items: center; width: 64px; height: 64px; flex: none; border-radius: 50%; background: var(--tsc-surface); color: var(--tsc-brand-tint-ink); box-shadow: 0 2px 10px rgba(16,24,40,.10); }
.tsc-ph__icon .tsc-icon { width: 30px; height: 30px; }
.tsc-ph__name { max-width: 90%; font-family: var(--tsc-font-heading); font-weight: 700; font-size: 1.0625em; line-height: 1.25; color: var(--tsc-surface-ink); overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tsc-cover__img--default { filter: saturate(.9); }
.tsc-caption { margin: .6em 0 0; font-weight: 600; font-size: .95em; color: var(--tsc-muted); }

/* ---------- Listing pages: shared ---------- */
.tsc .tsc-listing__title { margin: 0; }
.tsc-section { margin: 32px 0 0; }
.tsc-prose p { margin: 0 0 1em; }
.tsc-actions { display: grid; gap: 8px; }
.tsc-claim summary { cursor: pointer; font-weight: 600; }
.tsc-claim[open] summary { margin-bottom: 12px; }
/* Kept for theme overrides of the 1.4 listing template. */
.tsc-listing__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 32px; align-items: start; }
.tsc-logo { width: 64px; height: 64px; flex: none; object-fit: contain; border-radius: 12px; background: #ffffff; border: 1px solid var(--tsc-surface-line); padding: 4px; }
.tsc-facts { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.tsc-facts__k { font-size: .75em; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.tsc-socials { list-style: none; padding: 0; margin: 16px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.tsc-social { display: inline-block; padding: .3em .9em; border: 1px solid var(--tsc-surface-line); border-radius: 999px; text-decoration: none; font-size: .9em; }

/* ---------- Free listing page ---------- */
.tsc-free { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); gap: 32px; align-items: start; margin: 0 0 32px; }
.tsc-free__head { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin: 0 0 16px; }
.tsc-free__photo { margin: 0; }
.tsc-free__photo .tsc-cover__img, .tsc-free__photo .tsc-cover__ph { box-shadow: var(--tsc-shadow); }
.tsc-free__caption { margin: 12px 0 0; font-size: .95em; color: var(--tsc-muted); text-align: center; }
.tsc-free__caption strong { color: inherit; }
.tsc-free__aside { display: grid; gap: 16px; position: sticky; top: var(--tsc-sticky-top, 24px); }
.tsc-contactcard { margin: 0; padding: 24px; box-shadow: var(--tsc-shadow); }
.tsc-contactcard__facts { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 8px; }
.tsc-contactcard__facts li { display: flex; gap: 8px; align-items: flex-start; margin: 0; overflow-wrap: anywhere; }
.tsc-contactcard__facts .tsc-icon { margin-top: 2px; color: var(--tsc-brand-tint-ink); }
.tsc .tsc-contactcard__facts a { font-weight: 600; font-size: 1.125em; text-decoration: none; }
.tsc-free__map { min-height: 260px; }
.tsc-free__map iframe { min-height: 260px; }
.tsc-claimbanner { margin: 0 0 32px; border-radius: var(--tsc-radius); background: var(--tsc-brand-tint); color: var(--tsc-surface-ink); border: 2px dashed var(--tsc-brand); }
.tsc-claimbanner > summary { list-style: none; display: flex; align-items: center; gap: 16px; padding: 20px 24px; cursor: pointer; }
.tsc-claimbanner > summary::-webkit-details-marker { display: none; }
.tsc-claimbanner > summary:focus-visible { outline: 3px solid var(--tsc-focus); outline-offset: 2px; border-radius: var(--tsc-radius); }
.tsc-claimbanner__icon { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--tsc-accent); color: var(--tsc-accent-ink); }
.tsc-claimbanner__text { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.tsc-claimbanner__text strong { font-size: 1.125em; }
.tsc-claimbanner[open] .tsc-claimbanner__btn { display: none; }
.tsc-claimbanner__form { padding: 0 24px 24px; }
.tsc-claimbanner__form .tsc-form { background: var(--tsc-surface); color: var(--tsc-surface-ink); border-radius: 12px; padding: 20px; }
.tsc-upsell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 32px; align-items: center; margin: 48px 0 0; padding: 32px; border-radius: var(--tsc-radius); background: var(--tsc-accent); color: var(--tsc-accent-ink); }
.tsc .tsc-upsell .tsc-h2 { color: var(--tsc-accent-ink); margin: 0 0 8px; }
.tsc-upsell__intro p { margin: 0 0 20px; }
.tsc-upsell__eyebrow { font-size: .8125em !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 4px !important; opacity: .85; }
.tsc-upsell__plans { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tsc-upsell__plan { margin: 0; padding: 20px; border-radius: 12px; background: var(--tsc-surface); color: var(--tsc-surface-ink); }
.tsc-upsell__plan--premium { box-shadow: 0 0 0 3px var(--tsc-gold); }
.tsc-upsell__name { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.tsc-upsell__price { font-weight: 700; }
.tsc-upsell__plan ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tsc-upsell__plan li { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: .95em; }
.tsc-upsell__plan .tsc-icon { margin-top: 3px; color: #15803d; }
@media (max-width: 900px) {
	.tsc-free, .tsc-upsell { grid-template-columns: minmax(0, 1fr); }
	.tsc-free__aside { position: static; }
}
@media (max-width: 640px) {
	.tsc-claimbanner > summary { flex-wrap: wrap; padding: 16px; }
	.tsc-claimbanner__btn { width: 100%; }
	.tsc-claimbanner__form { padding: 0 12px 12px; }
	.tsc-upsell { padding: 24px 16px; }
	.tsc-upsell__plans { grid-template-columns: minmax(0, 1fr); }
}

/* Reviews slider (scroll-snap: works by swipe/scroll without JS) */
.tsc-reviews__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.tsc-reviews__nav { display: flex; gap: 8px; }
.tsc-reviews__track { list-style: none; margin: 0; padding: 4px 2px 12px; display: grid; grid-auto-flow: column; grid-auto-columns: 85%; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; }
.tsc-review { scroll-snap-align: start; display: flex; flex-direction: column; margin: 0; background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); padding: 24px; box-shadow: var(--tsc-shadow); }
.tsc-review__stars { margin: 0 0 12px; display: flex; gap: 2px; }
.tsc-review__stars .is-on { color: #f59e0b; }
.tsc-review__stars .is-off { color: #d1d5db; }
.tsc-review__text { margin: 0 0 16px; padding: 0; border: 0; font-style: normal; font-size: 1em; line-height: 1.6; flex: 1; quotes: none; }
.tsc-review__text::before, .tsc-review__text::after { content: none; }
.tsc-review__by { margin: 0; color: var(--tsc-surface-muted); font-size: .95em; }
/* Imported customer quotes (1.8.1): every tier, plain text. */
.tsc .tsc-quotes__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: 16px; }
.tsc .tsc-quote { margin: 0; display: flex; flex-direction: column; background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-left: 4px solid var(--tsc-brand); border-radius: var(--tsc-radius); padding: 20px 22px; box-shadow: var(--tsc-shadow); }
.tsc .tsc-quote__text { margin: 0; padding: 0; border: 0; quotes: none; font-style: normal; font-size: 1em; line-height: 1.6; flex: 1; background: none; color: inherit; }
.tsc .tsc-quote__text::before, .tsc .tsc-quote__text::after { content: none; }
.tsc .tsc-quote__text p { margin: 0; overflow-wrap: anywhere; }
.tsc .tsc-quote__text p::before { content: "\201C"; color: var(--tsc-brand); font-family: var(--tsc-font-heading, inherit); font-size: 1.6em; line-height: 0; vertical-align: -.35em; margin-right: 2px; }
.tsc .tsc-quote__by { margin: 12px 0 0; color: var(--tsc-surface-muted); font-size: var(--tsc-fs-sm, .95em); }
/* 1.9.2: author and source ("Google") are plain text, never chips, whatever the theme does to spans and strongs. */
.tsc .tsc-quote__by strong, .tsc .tsc-quote__source, .tsc .tsc-review__by strong { display: inline; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: inherit; font-size: inherit; line-height: inherit; text-transform: none; letter-spacing: normal; }
.tsc .tsc-quote__by strong, .tsc .tsc-review__by strong { font-weight: 700; color: var(--tsc-surface-ink); }
.tsc .tsc-quote__source { font-weight: 400; }

/* Sticky bottom action bar (mobile only) */
.tsc-mbar { display: none; }

/* ---------- Paid listing page (Standard / Premium / trial) ---------- */
.tsc-lhero { position: relative; margin: 0 0 24px; border-radius: var(--tsc-radius); overflow: hidden; background: #111827; color: #ffffff; isolation: isolate; }
.tsc-lhero__media .tsc-cover__img, .tsc-lhero__media .tsc-cover__ph { width: 100%; aspect-ratio: 16 / 10; max-height: 560px; min-height: 320px; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.tsc-lhero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.35) 55%, rgba(0,0,0,.82) 100%); pointer-events: none; }
.tsc-lhero__tier { position: absolute; top: 16px; right: 16px; z-index: 2; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.tsc-lhero__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; align-items: flex-end; gap: 16px; padding: 32px; }
.tsc-lhero__logo { flex: none; width: 72px; height: 72px; object-fit: contain; border-radius: 14px; background: #ffffff; padding: 8px; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.tsc-lhero__text { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.tsc .tsc-lhero__title { margin: 0; color: #ffffff; text-shadow: 0 2px 12px rgba(0,0,0,.45); overflow-wrap: anywhere; }
.tsc-lhero__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: 1em; text-shadow: 0 1px 6px rgba(0,0,0,.5); }
.tsc-lhero__facts li { display: flex; align-items: center; gap: 8px; margin: 0; }
.tsc .tsc-lhero__facts a { color: #ffffff !important; text-decoration: none; font-weight: 600; }
.tsc .tsc-lhero__facts a:hover { text-decoration: underline; }
.tsc-lintro { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin: 0 0 32px; }
.tsc-lintro__tagline { margin: 0; flex: 1 1 360px; font-size: 1.1875em; line-height: 1.5; font-weight: 500; }
.tsc-lintro__actions { flex: 0 1 auto; }
.tsc-lcontact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 24px; margin: 0 0 48px; align-items: stretch; }
.tsc-lcontact--nomap { grid-template-columns: minmax(0, 1fr); }
.tsc-ccards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-content: start; }
.tsc-lcontact--nomap .tsc-ccards { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.tsc-ccards li { margin: 0; min-width: 0; }
.tsc .tsc-ccard { display: flex; align-items: center; gap: 12px; height: 100%; padding: 16px; background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink) !important; border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); box-shadow: var(--tsc-shadow); text-decoration: none !important; transition: border-color .15s ease, box-shadow .15s ease; }
.tsc .tsc-ccard:hover { border-color: var(--tsc-link); box-shadow: var(--tsc-shadow-lg); }
.tsc-ccard__icon { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink); }
.tsc-ccard__text { min-width: 0; display: flex; flex-direction: column; }
.tsc-ccard__label { font-size: .75em; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--tsc-surface-muted); }
.tsc-ccard__value { font-weight: 600; overflow-wrap: anywhere; color: var(--tsc-link); }
.tsc-mapcard { min-height: 300px; border-radius: var(--tsc-radius); overflow: hidden; border: 1px solid var(--tsc-surface-line); box-shadow: var(--tsc-shadow); background: #e5e7eb; }
.tsc-mapcard iframe { display: block; width: 100%; height: 100%; min-height: 300px; border: 0; }
.tsc-lcols { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 32px; align-items: start; margin: 0 0 48px; }
.tsc-lcols--one { grid-template-columns: minmax(0, 1fr); }
.tsc-lcols .tsc-section { margin: 0; }
.tsc-about .tsc-prose { font-size: 1.0625em; line-height: 1.7; max-width: 44em; }
.tsc-hourscard { margin: 0; padding: 24px; box-shadow: var(--tsc-shadow); }
.tsc-hourscard .tsc-h3 { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.tsc-hourslist { margin: 0; display: grid; gap: 4px; }
.tsc-hourslist__row { display: flex; justify-content: space-between; gap: 16px; padding: 8px 12px; margin: 0 -12px; border-radius: 8px; }
.tsc-hourslist__row dt { font-weight: 600; margin: 0; }
.tsc-hourslist__row dd { margin: 0; text-align: right; }
.tsc-hourslist__row.is-today { background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink); font-weight: 700; }
.tsc .tsc-hourstable { width: 100%; border-collapse: separate; border-spacing: 0 2px; margin: 0; font-size: 1em; border: 0; background: none; }
.tsc .tsc-hourstable th, .tsc .tsc-hourstable td { padding: 7px 12px; border: 0; background: none; color: inherit; vertical-align: top; text-align: left; font-size: 1em; line-height: 1.4; }
.tsc .tsc-hourstable th { font-weight: 600; white-space: nowrap; }
.tsc .tsc-hourstable td { text-align: right; }
.tsc .tsc-hourstable tr.is-today > * { background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink); font-weight: 700; }
.tsc .tsc-hourstable tr.is-today > :first-child { border-radius: 8px 0 0 8px; }
.tsc .tsc-hourstable tr.is-today > :last-child { border-radius: 0 8px 8px 0; }
.tsc .tsc-hours__note, .tsc .tsc-hours__appt { margin: 12px 0 0; }
.tsc .tsc-hours__appt { font-weight: 600; }
.tsc .tsc-hours__note { font-size: var(--tsc-fs-sm); color: var(--tsc-surface-muted); }
.tsc-today { display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px; font-size: .6875em; letter-spacing: .05em; text-transform: uppercase; background: var(--tsc-brand); color: var(--tsc-brand-ink); vertical-align: 1px; }
.tsc-listing--paid .tsc-section { margin: 0 0 48px; }
.tsc-enquiry--card { padding: 32px; box-shadow: var(--tsc-shadow); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px; }
.tsc-enquiry__intro .tsc-h2 { margin-bottom: 8px; }
.tsc-gallery { list-style: none; margin: 0; padding: 0; columns: 3 240px; column-gap: 16px; }
.tsc-gallery__item { break-inside: avoid; margin: 0 0 16px; }
.tsc .tsc-gallery__item a { display: block; border-radius: 12px; overflow: hidden; cursor: zoom-in; }
.tsc-gallery__item img { display: block; width: 100%; height: auto; transition: transform .25s ease; }
.tsc-gallery__item a:hover img { transform: scale(1.03); }
.tsc-claim summary { display: flex; align-items: center; gap: 8px; }
.tsc-lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.tsc-lightbox::backdrop { background: rgba(0,0,0,.88); }
.tsc-lightbox__inner { position: relative; width: 100%; height: 100%; display: grid; place-items: center; padding: 56px 64px; }
.tsc-lightbox img { max-width: 100%; max-height: calc(100vh - 112px); object-fit: contain; border-radius: 8px; }
.tsc-lightbox__btn { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: #111827; cursor: pointer; }
.tsc-lightbox__btn:focus-visible { outline: 3px solid #ffffff; outline-offset: 2px; }
.tsc-lightbox__close { top: 16px; right: 16px; }
.tsc-lightbox__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.tsc-lightbox__next { right: 12px; top: 50%; transform: translateY(-50%); }
.tsc-lightbox__count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: #ffffff; font-size: .875em; }
@media (max-width: 900px) {
	.tsc-lcontact, .tsc-lcols, .tsc-enquiry--card { grid-template-columns: minmax(0, 1fr); }
	.tsc-enquiry--card { gap: 8px; padding: 24px 20px; }
}
@media (max-width: 640px) {
	.tsc-lhero { margin-left: -16px; margin-right: -16px; border-radius: 0; }
	.tsc-lhero__media .tsc-cover__img, .tsc-lhero__media .tsc-cover__ph { min-height: 380px; aspect-ratio: auto; }
	.tsc-lhero__body { padding: 20px 16px; }
	.tsc-lhero__logo { width: 56px; height: 56px; }
	.tsc-ccards, .tsc-lcontact--nomap .tsc-ccards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.tsc .tsc-ccard { flex-direction: column; align-items: flex-start; gap: 8px; padding: 12px; }
	.tsc-ccard__icon { width: 36px; height: 36px; border-radius: 10px; }
	.tsc-ccard__value { font-size: .875em; }
	.tsc-lintro__actions .tsc-btn { flex: 1 1 calc(50% - 8px); }
	.tsc-lintro__tagline { flex-basis: 100%; }
	.tsc-gallery { columns: 2; column-gap: 8px; }
	.tsc-gallery__item { margin-bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) { .tsc-gallery__item img { transition: none; } .tsc-gallery__item a:hover img { transform: none; } }

/* ---------- Listing cards (finder, category pages, search, related) ---------- */
.tsc-cardlist { list-style: none; padding: 0; margin: 0 0 32px; display: grid; gap: 24px; }
.tsc-cardlist--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tsc-cardlist--featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tsc-cardlist__item { margin: 0; padding: 0; min-width: 0; }
.tsc-cardlist__item::before, .tsc-cardlist__item::marker { content: none; }
.tsc-lcard { position: relative; height: 100%; display: flex; flex-direction: column; overflow: hidden; background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); box-shadow: var(--tsc-shadow); transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.tsc-lcard.is-linked:hover { box-shadow: var(--tsc-shadow-lg); transform: translateY(-2px); border-color: var(--tsc-brand-tint-2); }
.tsc-lcard.is-linked:focus-within { outline: 3px solid var(--tsc-focus); outline-offset: 2px; }
.tsc-lcard__media { position: relative; }
.tsc-lcard__media .tsc-cover__img, .tsc-lcard__media .tsc-cover__ph { border-radius: 0; }
.tsc-lcard__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 16px 20px; flex: 1; }
.tsc .tsc-lcard__title { margin: 0; font-size: 1.125em; font-weight: 650; line-height: 1.3; color: var(--tsc-surface-ink); }
.tsc .tsc-lcard__title a { color: var(--tsc-surface-ink) !important; text-decoration: none !important; }
.tsc .tsc-lcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tsc .tsc-lcard__title a:focus-visible { outline: 0; }
.tsc-lcard__cat, .tsc-lcard__meta, .tsc-lcard__lead { margin: 0; }
.tsc-lcard__meta { display: flex; gap: 8px; align-items: flex-start; color: var(--tsc-surface-muted); font-size: .9em; line-height: 1.45; }
.tsc-lcard__meta .tsc-icon { margin-top: 2px; color: var(--tsc-surface-muted); }
.tsc-lcard__lead { color: var(--tsc-surface-muted); font-size: .95em; }
.tsc-lcard .tsc-ribbon { z-index: 2; }
.tsc-lcard--big { border-color: var(--tsc-gold); box-shadow: 0 0 0 1px var(--tsc-gold), var(--tsc-shadow); }
.tsc-lcard--big .tsc-lcard__body { padding: 20px 24px 24px; }
.tsc .tsc-lcard--big .tsc-lcard__title { font-size: 1.375em; }
.tsc-related { margin-top: var(--tsc-s5); }

/* ---------- Business Finder ---------- */
.tsc-hero { background: var(--tsc-brand); color: var(--tsc-brand-ink); border-radius: var(--tsc-radius); padding: 48px 40px 40px; margin: 0 0 40px; position: relative; overflow: hidden; }
.tsc-hero::after { content: ""; position: absolute; right: -80px; top: -80px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.18), rgba(255,255,255,0) 70%); pointer-events: none; }
.tsc .tsc-hero__title { color: var(--tsc-brand-ink); margin: 0 0 8px; max-width: 22em; }
.tsc-hero__sub { margin: 0 0 24px; font-size: 1.0625em; opacity: .92; }
.tsc-search { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.tsc-search__q { position: relative; flex: 1 1 280px; min-width: 0; }
.tsc-search__q input[type="search"] { width: 100%; padding-left: 48px !important; }
.tsc-search__icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #4b5563; pointer-events: none; z-index: 1; }
.tsc-search select { flex: 0 1 240px; min-width: 0; }
.tsc-search input[type="search"], .tsc-search select { min-height: 48px; padding: 8px 16px; border: 1px solid #6b7280; border-radius: var(--tsc-btn-radius); font: inherit; font-size: 1em; background: #fff; color: #111827; margin: 0; }
.tsc-search .tsc-btn { min-height: 48px; }
.tsc-search--hero { background: var(--tsc-surface); padding: 8px; border-radius: calc(var(--tsc-btn-radius) + 6px); box-shadow: var(--tsc-shadow-lg); margin: 0; max-width: 920px; }
.tsc .tsc-search.tsc-search--hero :is(input[type="search"], select), .tsc .tsc-search.tsc-search--hero :is(input[type="search"], select):hover { border-color: transparent !important; background: var(--tsc-surface-alt) !important; min-height: 52px; }
.tsc-search--hero .tsc-btn { min-height: 52px; }
.tsc-tiles { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tsc-tiles > li { margin: 0; padding: 0; min-width: 0; }
.tsc .tsc-tile { display: flex; flex-direction: column; height: 100%; overflow: hidden; background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink) !important; border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); box-shadow: var(--tsc-shadow); text-decoration: none !important; transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease; }
.tsc .tsc-tile:hover { box-shadow: var(--tsc-shadow-lg); transform: translateY(-2px); border-color: var(--tsc-brand-tint-2); }
.tsc-tile__media { display: block; aspect-ratio: 16 / 10; background: var(--tsc-brand-tint); overflow: hidden; }
.tsc-tile__img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.tsc-tile__ph { display: grid; place-items: center; width: 100%; height: 100%; color: var(--tsc-brand-tint-ink); background: linear-gradient(135deg, var(--tsc-brand-tint), var(--tsc-brand-tint-2)); }
.tsc-tile__body { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 12px 16px 16px; }
.tsc-tile__name { font-weight: 650; font-size: 1.0625em; line-height: 1.3; }
.tsc-tile__count { color: var(--tsc-surface-muted); font-size: .875em; white-space: nowrap; }
.tsc-results__head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 16px; }
.tsc .tsc-results__head .tsc-h2 { margin: 0; }
.tsc-results__meta { margin: 0; }
.tsc-empty { text-align: center; padding: 40px 24px; border: 2px dashed var(--tsc-surface-line); border-radius: var(--tsc-radius); background: var(--tsc-surface); color: var(--tsc-surface-ink); }
.tsc-empty .tsc-h3 { color: var(--tsc-surface-ink); font-size: 1.25em; }
.tsc-empty p { max-width: 36em; margin: 0 auto 16px; }
.tsc-empty__icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink); margin-bottom: 12px; }
.tsc-empty__actions { justify-content: center; }

/* ---------- Category page header ---------- */
.tsc-cathead { margin: 0 0 32px; padding: 24px 32px 8px; background: var(--tsc-brand-tint); color: var(--tsc-surface-ink); border-radius: var(--tsc-radius); }
/* Breadcrumbs: on the page background they inherit the theme's text colour; inside the tinted category header they use the tint ink. */
.tsc-crumbs { font-size: .875em; margin: 0 0 16px; }
.tsc .tsc-crumbs__list { display: flex; align-items: center; gap: 4px 8px; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.tsc-crumbs__item { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.tsc-crumbs__item > span { overflow-wrap: anywhere; }
.tsc .tsc-crumbs a { color: inherit !important; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; }
.tsc .tsc-crumbs a:hover { text-decoration-thickness: 2px; }
.tsc-crumbs .tsc-icon { opacity: .7; flex: none; }
.tsc-cathead .tsc-crumbs { color: var(--tsc-surface-muted); }
.tsc .tsc-cathead .tsc-crumbs a { color: var(--tsc-brand-tint-ink) !important; text-decoration: none; }
.tsc .tsc-cathead .tsc-crumbs a:hover { text-decoration: underline; }
.tsc-cathead__row { display: flex; align-items: center; gap: 16px; margin: 0 0 12px; }
.tsc-cathead__icon { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; background: var(--tsc-accent); color: var(--tsc-accent-ink); }
.tsc .tsc-cathead__title { margin: 0; color: var(--tsc-surface-ink); }
.tsc-cathead__count { margin: 4px 0 0; color: var(--tsc-surface-muted); font-weight: 600; }
.tsc-cathead__intro { margin: 0 0 20px; max-width: 46em; font-size: 1.0625em; color: var(--tsc-surface-ink); }
.tsc-cathead .tsc-search { margin-bottom: 24px; }
@media (max-width: 640px) { .tsc-cathead { padding: 16px 16px 4px; } .tsc-cathead__icon { width: 44px; height: 44px; } }

/* ---------- Pager ---------- */
.tsc-pager { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; justify-content: center; margin: 8px 0 0; }
.tsc .tsc-pager__link { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--tsc-surface-line); border-radius: var(--tsc-btn-radius); background: var(--tsc-surface); color: var(--tsc-surface-ink) !important; text-decoration: none !important; font-weight: 600; }
.tsc-pager__gap { padding: 0 4px; }

/* Legacy category list (kept for theme overrides of older templates). */
.tsc-catgrid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.tsc-catgrid__item { display: flex; justify-content: space-between; padding: 16px 16px; border: 1px solid var(--tsc-surface-line); border-radius: var(--tsc-radius); text-decoration: none; background: var(--tsc-surface); color: var(--tsc-surface-ink) !important; font-weight: 600; }
.tsc-catgrid__count { color: var(--tsc-surface-muted); font-weight: 400; }

@media (max-width: 1024px) {
	.tsc-cardlist--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tsc-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.tsc-cardlist--grid, .tsc-cardlist--featured { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.tsc-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.tsc-tile__body { flex-direction: column; gap: 2px; padding: 8px 12px 12px; }
	.tsc-hero { padding: 28px 16px 16px; margin-bottom: 32px; }
	.tsc-search > *, .tsc-search select { flex: 1 1 100%; }
	.tsc-search .tsc-btn { width: 100%; }
	.tsc-pager__step span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
}
@media (prefers-reduced-motion: reduce) { .tsc-lcard, .tsc-tile { transition: none; } .tsc-lcard.is-linked:hover, .tsc .tsc-tile:hover { transform: none; } }

/* ---------- Forms ---------- */
.tsc-form { display: flex; flex-direction: column; gap: 16px; }
/* Spacing comes from the gap: theme margins on paragraphs/fieldsets inside plugin forms would add empty bands. */
.tsc .tsc-form > :not(.tsc-hpx) { margin-top: 0; }
.tsc .tsc-form > :is(p, fieldset, div) { margin-bottom: 0; }
.tsc-field { display: flex; flex-direction: column; gap: 8px; border: 0; padding: 0; margin: 0; min-width: 0; }
.tsc-field label, .tsc-field legend { font-weight: 600; }
.tsc-field input[type="text"], .tsc-field input[type="email"], .tsc-field input[type="tel"], .tsc-field input[type="url"], .tsc-field input[type="password"], .tsc-field select, .tsc-field textarea {
	width: 100%; padding: .65em .8em; border: 1px solid #6b7280; border-radius: 8px; font: inherit; background: #fff; color: #111827;
}
.tsc-field input::placeholder, .tsc-field textarea::placeholder, .tsc-search input::placeholder { color: #4b5563; opacity: 1; }
.tsc-field--check label { font-weight: 400; display: flex; gap: .5em; align-items: flex-start; }
.tsc-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tsc-field.is-locked > label, .tsc-field.is-locked > legend { color: var(--tsc-surface-muted); }
.tsc-field.is-locked input, .tsc-field.is-locked textarea { background: #f3f4f6; color: #374151; }
/* Honeypot: off-screen (NOT display:none, which some bots and autofill tools treat differently). Takes no layout
   space whatever a theme does to divs or inputs (also inline-styled in the markup). */
.tsc .tsc-hpx, .tsc-hpx { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; min-height: 0 !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; clip-path: inset(50%) !important; }
/* Never let a theme un-hide or pad out empty plugin containers. */
.tsc [hidden] { display: none !important; }
.tsc :is(.tsc-notice, .tsc-challenge, .cf-turnstile, .tsc-form > div):empty { display: none !important; }
.tsc .tsc-btn:empty { display: none !important; }
/* Checkbox + label + privacy note: the box in its own column, the text and the note aligned in the second. */
.tsc .tsc-consent { display: grid; grid-template-columns: 20px minmax(0, 1fr); column-gap: 10px; row-gap: 4px; align-items: start; }
.tsc .tsc-consent > .tsc-consent__box { grid-column: 1; width: 20px !important; height: 20px !important; min-height: 0 !important; margin: 2px 0 0 !important; padding: 0 !important; accent-color: var(--tsc-brand-deep); }
.tsc .tsc-consent > .tsc-consent__label { grid-column: 2; font-weight: 400; margin: 0; padding: 0; }
.tsc .tsc-consent > .tsc-privacy-note { grid-column: 2; margin: 0; padding: 0; }

/* ---------- Auth / dashboard ---------- */
.tsc-auth { max-width: 440px; margin: 0 auto; }
.tsc-standalone .tsc-card { max-width: 640px; margin: 0 auto; }
.tsc-dash__header { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.tsc-dash__header p { margin: 0; }
.tsc-dash__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.tsc-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--tsc-line); margin-bottom: 20px; overflow-x: auto; }
.tsc-tabs__tab { padding: .7em 1em; text-decoration: none; border-bottom: 3px solid transparent; white-space: nowrap; }
.tsc-tabs__tab.is-active { border-bottom-color: var(--tsc-brand); font-weight: 700; }
.tsc-thumbs { display: flex; gap: 8px; flex-wrap: wrap; }
.tsc-thumb { display: flex; flex-direction: column; gap: 4px; font-size: .85em; }
.tsc-thumb img { width: 96px; height: 96px; object-fit: cover; border-radius: 8px; }
.tsc-leads { list-style: none; padding: 0; margin: 0 0 16px; }
.tsc-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin-bottom: 12px; }
.tsc-plan { background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); padding: 20px; }
.tsc-plan--premium { border: 2px solid var(--tsc-brand); }
.tsc-plan__features { padding-left: 1.2em; }
.tsc .tsc-plan__price { margin: 0 0 var(--tsc-s2); line-height: 1.3; }
.tsc .tsc-plan__amount { font-size: 1.75em; font-weight: 700; font-family: var(--tsc-font-heading); }
.tsc .tsc-plan__per { font-weight: 600; }
.tsc .tsc-plan__alt { display: block; color: var(--tsc-surface-muted); font-size: var(--tsc-fs-sm); }
.tsc-plan__form { display: flex; gap: 8px; flex-wrap: wrap; }
.tsc-dl { display: grid; grid-template-columns: 160px 1fr; gap: 8px 12px; }
.tsc-dl dt { font-weight: 600; }
.tsc-dl dd { margin: 0; }

/* Checklist */
.tsc-check { background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); padding: 16px 20px; margin-bottom: 20px; }
.tsc-check__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.tsc-check__head h2 { margin: 0; font-size: 1.15em; color: var(--tsc-surface-ink); }
.tsc-check__pct { font-weight: 700; color: var(--tsc-surface-ink); }
.tsc-progress { height: 10px; border-radius: 999px; background: #e5e7eb; overflow: hidden; margin: 8px 0 16px; }
.tsc-progress > span { display: block; height: 100%; background: #15803d; border-radius: 999px; }
.tsc-check__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tsc-check__item { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tsc-check__mark { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .8em; font-weight: 700; background: #e5e7eb; color: #374151; }
.tsc-check__item.is-done .tsc-check__mark { background: #15803d; color: #ffffff; }
.tsc-check__item.is-done .tsc-check__label { color: var(--tsc-surface-muted); text-decoration: line-through; }
.tsc-check__item a { color: var(--tsc-link); }
.tsc-check__head h2 { flex: 1 1 auto; }
.tsc-check__toggle { margin: 0; }
.tsc-check__btn { margin: 0; padding: 4px 12px; border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: 6px; background: transparent; color: var(--tsc-link); font: inherit; font-size: .9em; font-weight: 600; cursor: pointer; }
.tsc-check__btn:focus-visible { outline: 2px solid var(--tsc-link); outline-offset: 2px; }
.tsc-check.is-collapsed .tsc-check__head { margin: 0; }
.tsc-check__body[hidden] { display: none; }
.tsc-check__unlock { display: block; margin: 14px 0 0; padding: 10px 14px; border: 1px dashed var(--tsc-card-line, var(--tsc-surface-line)); border-radius: 8px; color: var(--tsc-link); font-weight: 700; text-decoration: none; }
.tsc-check__unlock:hover, .tsc-check__unlock:focus { text-decoration: underline; }

@media (min-width: 901px) { .tsc-reviews__track { grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-columns: auto; overflow: visible; } .tsc-reviews__nav { display: none; } }
@media (max-width: 900px) {
	.tsc-listing__grid { grid-template-columns: 1fr; gap: 20px; }
	.tsc-wrap:has(.tsc-mbar) { padding-bottom: calc(var(--tsc-s6) + 72px); }
	.tsc-mbar { display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 8px 16px calc(8px + env(safe-area-inset-bottom)); background: #ffffff; border-top: 1px solid #d1d5db; box-shadow: 0 -4px 16px rgba(0,0,0,.12); }
	.tsc-mbar .tsc-btn { flex: 1; }
}
@media (max-width: 640px) {
	.tsc-field-row { grid-template-columns: 1fr; }
	.tsc-dl { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .tsc-reviews__track { scroll-behavior: auto; } }

/* ---------- Links inside our surfaces: win over theme / Elementor kit link colours ---------- */
.tsc .tsc-card a:not(.tsc-btn):not(.tsc-catlabel), .tsc .tsc-card a:not(.tsc-btn):not(.tsc-catlabel):visited { color: var(--tsc-link); }
.tsc .tsc-card a:not(.tsc-btn):not(.tsc-catlabel):is(:hover, :focus) { color: var(--tsc-link); text-decoration: underline; }
.tsc .tsc-lcard__title a:hover, .tsc .tsc-lcard__title a:focus { color: var(--tsc-surface-ink) !important; }
.tsc a:not(.tsc-btn):not(.tsc-catlabel):hover, .tsc a:not(.tsc-btn):not(.tsc-catlabel):focus { color: inherit; opacity: 1; }
.tsc a:focus-visible, .tsc summary:focus-visible { outline: 3px solid var(--tsc-focus); outline-offset: 2px; }
.tsc .tsc-check__item a, .tsc .tsc-check__item a:hover { color: var(--tsc-link); }
.tsc .tsc-pager__link:hover { background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink) !important; border-color: var(--tsc-brand-tint-ink); }
.tsc .tsc-pager__link:focus-visible { outline: 3px solid var(--tsc-focus); outline-offset: 2px; }
.tsc .tsc-pager__link.is-current, .tsc .tsc-pager__link.is-current:hover { background: var(--tsc-brand); color: var(--tsc-brand-ink) !important; border-color: var(--tsc-brand); }
.tsc .tsc-social:hover, .tsc .tsc-catgrid__item:hover { border-color: var(--tsc-link); }

/* ---------- Form fields: never dark on hover / focus (beats theme + Elementor kit field styles) ---------- */
.tsc :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="file"], [type="hidden"], [type="color"], [type="range"]), textarea, select),
.tsc :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="file"], [type="hidden"], [type="color"], [type="range"]), textarea, select):is(:hover, :active, :focus, :focus-visible, :focus-within) {
	background-color: #ffffff !important; color: #111827 !important; -webkit-text-fill-color: #111827; border: 1px solid #6b7280 !important; box-shadow: none !important; outline: 0; opacity: 1;
}
.tsc :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="file"], [type="hidden"], [type="color"], [type="range"]), textarea, select):hover { border-color: var(--tsc-link) !important; }
.tsc :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"], [type="file"], [type="hidden"], [type="color"], [type="range"]), textarea, select):is(:focus, :focus-visible) {
	border-color: var(--tsc-link) !important; box-shadow: 0 0 0 3px var(--tsc-brand) !important; outline: 2px solid transparent;
}
.tsc :is(input, textarea):-webkit-autofill, .tsc :is(input, textarea):-webkit-autofill:hover, .tsc :is(input, textarea):-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important; -webkit-text-fill-color: #111827 !important; }
.tsc .tsc-field.is-locked :is(input, textarea):is(:hover, :focus) { background-color: #f3f4f6 !important; color: #374151 !important; -webkit-text-fill-color: #374151; }
.tsc option { background: #ffffff; color: #111827; }

/* ---------- Inline form outcomes ---------- */
.tsc-form .tsc-notice { margin: 0; }
.tsc-success { background: #ecfdf5; color: #064e3b; border: 1px solid #a7f3d0; border-radius: var(--tsc-radius); padding: 24px 20px; text-align: center; }
.tsc-success:focus { outline: 3px solid var(--tsc-link); outline-offset: 2px; }
.tsc-success .tsc-h3 { color: #064e3b; font-size: 1.25em; margin: .5em 0 .3em; }
.tsc-success__text { margin: 0 0 .8em; }
.tsc-success__next { text-align: left; margin: 0 auto; padding-left: 1.2em; max-width: 34em; }
.tsc-notice[data-tsc-focus]:focus { outline: 3px solid var(--tsc-link); outline-offset: 2px; }

/* ---------- Payment complete (thank-you page) ---------- */
.tsc-pay { max-width: 720px; margin: 0 auto; }
.tsc-pay__card { background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); padding: 40px 32px; text-align: center; box-shadow: 0 1px 2px rgba(16,24,40,.06), 0 8px 24px rgba(16,24,40,.08); }
.tsc-pay__card :is(.tsc-h1, .tsc-h2, .tsc-h3) { color: var(--tsc-surface-ink); }
.tsc-pay__card .tsc-muted { color: var(--tsc-surface-muted); }
.tsc-pay__tick { display: block; margin: 0 auto 16px; }
.tsc-pay__tick-bg { fill: var(--tsc-brand); }
.tsc-pay__tick-mark { stroke: var(--tsc-brand-ink); }
.tsc-pay__lead { font-size: 1.1em; margin: 0 auto 24px; max-width: 34em; }
.tsc-pay__summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 24px; padding: 16px; border-radius: 10px; background: var(--tsc-brand-tint); color: var(--tsc-surface-ink); text-align: left; }
.tsc-pay__summary div { min-width: 0; }
.tsc-pay__summary dt { font-size: .75em; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--tsc-surface-muted); }
.tsc-pay__summary dd { margin: 4px 0 0; font-weight: 600; overflow-wrap: anywhere; }
.tsc-pay__next { text-align: left; max-width: 34em; margin: 0 auto 24px; padding-left: 1.4em; }
.tsc-pay__next li { margin-bottom: 8px; }
.tsc-pay__email { text-align: left; border: 2px solid var(--tsc-brand); border-radius: 10px; padding: 16px 20px; margin: 0 0 24px; }
.tsc-pay__resend { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 8px 0 0; }
.tsc-pay__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0 0 16px; }
.tsc-pay__fine { font-size: .9em; margin: 0; }
.tsc-pay__poll { margin: 0 0 16px; }
.tsc-pay__late { font-weight: 600; }
.tsc-pay__spinner { width: 56px; height: 56px; margin: 0 auto 16px; border-radius: 50%; border: 5px solid var(--tsc-brand-tint); border-top-color: var(--tsc-brand); animation: tsc-spin 1s linear infinite; }
@keyframes tsc-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .tsc-pay__spinner { animation: none; } }
@media (max-width: 640px) { .tsc-pay__card { padding: 28px 16px; } .tsc-pay__summary { grid-template-columns: 1fr; } .tsc-pay__actions .tsc-btn { width: 100%; } }

/* ---------- Owner stats card (dashboard) ---------- */
.tsc-stats { margin: 0 0 24px; }
.tsc-stats__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 0 0 16px; }
.tsc .tsc-stats__head .tsc-h3, .tsc .tsc-stats__head p { margin: 0; }
.tsc .tsc-stats__kpis { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.tsc-stats__kpi { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: var(--tsc-brand-tint); color: var(--tsc-surface-ink); }
.tsc-stats__icon { color: var(--tsc-brand-tint-ink); line-height: 0; }
.tsc-stats__num { font-family: var(--tsc-font-heading); font-size: 1.75em; font-weight: 700; line-height: 1.15; color: var(--tsc-surface-ink); }
.tsc-stats__label { font-size: var(--tsc-fs-sm); color: var(--tsc-surface-muted); font-weight: 600; }
.tsc-stats__trend { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin: 0 0 12px; }
.tsc-spark { width: 240px; max-width: 100%; height: 48px; flex: none; }
.tsc-spark__line { stroke: var(--tsc-link); stroke-width: 2; vector-effect: non-scaling-stroke; }
.tsc-spark__area { fill: var(--tsc-brand-tint-2); stroke: none; }
.tsc .tsc-stats__trendtext { margin: 0; font-weight: 600; color: var(--tsc-surface-ink); }
.tsc .tsc-stats__upsell { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; padding: 12px 16px; border-radius: 12px; background: var(--tsc-accent); color: var(--tsc-accent-ink); font-weight: 600; }
.tsc .tsc-stats__upsell span { flex: 1 1 220px; }
.tsc .tsc-stats__note { margin: 0; font-size: var(--tsc-fs-sm); }
@media (max-width: 760px) { .tsc .tsc-stats__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tsc-stats__kpi:first-child { grid-column: 1 / -1; } }

/* ---------- Open now / Closed badge (self-contained colours: readable on any card, photo or theme) ---------- */
.tsc .tsc-lcard__cat { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.tsc-open { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: var(--tsc-fs-sm); line-height: 1.4; font-weight: 500; background: #f3f4f6; color: #374151; white-space: normal; }
.tsc-open__label { font-weight: 700; }
.tsc-open__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: #6b7280; }
.tsc-open.is-open { background: #dcfce7; color: #14532d; }
.tsc-open.is-open .tsc-open__dot { background: #15803d; box-shadow: 0 0 0 3px rgba(21,128,61,.18); }
.tsc-open--hero { font-size: .9375em; padding: 5px 12px; box-shadow: 0 1px 6px rgba(0,0,0,.25); text-shadow: none; }
.tsc .tsc-lhero__open { margin: 0 0 8px; }
.tsc-hourscard .tsc-open--inline { margin: -8px 0 16px; }

/* ---------- Add your business ---------- */
.tsc-addbiz { max-width: 760px; margin: 0 auto; }
.tsc-addbiz__intro { margin: 0 0 24px; }
.tsc .tsc-addbiz__intro .tsc-h2 { margin: 0 0 8px; }
.tsc .tsc-addbiz__steps { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 16px 0 0; padding: 0; list-style: none; counter-reset: tsc-step; font-weight: 600; }
.tsc-addbiz__steps li { counter-increment: tsc-step; display: inline-flex; align-items: center; gap: 8px; }
.tsc-addbiz__steps li::before { content: counter(tsc-step); display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--tsc-brand); color: var(--tsc-brand-ink); font-size: .875em; }
.tsc .tsc-addbiz__form { background: var(--tsc-card-bg, var(--tsc-surface)); color: var(--tsc-surface-ink); border: 1px solid var(--tsc-card-line, var(--tsc-surface-line)); border-radius: var(--tsc-radius); padding: 24px; box-shadow: var(--tsc-shadow); max-width: none; }
.tsc .tsc-form > .tsc-addbiz__group { border: 0; margin: 0 0 8px; padding: 0; min-width: 0; display: grid; gap: 16px; }
.tsc .tsc-addbiz__form > .tsc-btn { align-self: flex-start; }
.tsc .tsc-addbiz__form input[type="file"] { width: 100%; padding: 12px; border: 1px dashed var(--tsc-surface-line); border-radius: 10px; background: var(--tsc-surface-alt); color: var(--tsc-surface-ink); font: inherit; font-size: var(--tsc-fs-sm); }
.tsc .tsc-addbiz__group > legend { padding: 0; margin: 0 0 12px; color: var(--tsc-surface-ink); }
.tsc .tsc-addbiz__form .tsc-help, .tsc .tsc-addbiz__fine { display: block; margin-top: 4px; font-size: var(--tsc-fs-sm); color: var(--tsc-surface-muted); }
.tsc .tsc-form > .tsc-addbiz__fine { margin: 0; }
.tsc .tsc-field-row--addr { grid-template-columns: minmax(0, 1fr) 180px; }
@media (max-width: 640px) { .tsc .tsc-field-row--addr { grid-template-columns: minmax(0, 1fr); } }
.tsc-dupes, .tsc-bizcheck { margin: 0 0 20px; padding: 16px 20px; border-radius: 12px; background: #fff7e6; color: #5b3a00; border: 1px solid #f0c36d; }
.tsc .tsc-dupes .tsc-h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; color: #5b3a00; }
.tsc .tsc-dupes__list, .tsc .tsc-bizcheck__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.tsc .tsc-dupes__list > li, .tsc .tsc-bizcheck__list > li { display: block; margin: 0; padding: 12px 0 0; border-top: 1px solid #f0c36d; }
.tsc .tsc-dupes__list > li:first-child, .tsc .tsc-bizcheck__list > li:first-child { border-top: 0; padding-top: 0; }
.tsc .tsc-dupes > :last-child, .tsc .tsc-bizcheck > :last-child, .tsc .tsc-match > :last-child { margin-bottom: 0; }
.tsc .tsc-dupes, .tsc .tsc-bizcheck { min-height: 0; height: auto; }
.tsc .tsc-match__name { margin: 0 0 8px; color: #3f2900; font-weight: 600; }
.tsc .tsc-match__note { margin: 6px 0 0; font-size: var(--tsc-fs-sm); color: #5b3a00; }
.tsc .tsc-dupes__carry { margin: 12px 0 0; font-weight: 600; color: #5b3a00; }
.tsc .tsc-match__actions { display: flex; flex-wrap: wrap; gap: 8px; }
/* Real links styled as the Appearance button: explicit size/padding/text so theme button rules cannot collapse them. */
.tsc .tsc-match__actions a.tsc-btn.tsc-match__btn { display: inline-flex !important; align-items: center; justify-content: center; width: auto; min-width: 0; min-height: 44px !important; height: auto !important; padding: 10px 18px !important; font-size: 1em !important; line-height: 1.2 !important; text-indent: 0 !important; white-space: normal; text-align: center; text-decoration: none !important; border-radius: var(--tsc-btn-radius) !important; border-width: 2px !important; border-style: solid !important; overflow: visible; }
.tsc .tsc-match__actions a.tsc-btn.tsc-match__btn:focus-visible { outline: 3px solid #1f2937 !important; outline-offset: 2px; box-shadow: 0 0 0 5px #ffffff !important; }
@media (max-width: 600px) {
	.tsc .tsc-match__actions { flex-direction: column; }
	.tsc .tsc-match__actions a.tsc-btn.tsc-match__btn { width: 100% !important; }
}
.tsc .tsc-dupes .tsc-muted { color: #5b3a00; }
.tsc .tsc-bizcheck__title { margin: 0 0 8px; }
.tsc .tsc-bizcheck a:not(.tsc-btn) { color: #5b3a00 !important; font-weight: 600; }
.tsc-addbiz__upgrade { margin: 32px 0 0; }
.tsc .tsc-addbiz__upgrade > .tsc-h2 { margin: 0 0 8px; }
.tsc-addbiz--done .tsc-success { margin: 0 0 24px; }

/* ---------- Footer call to action ---------- */
.tsc-footcta { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin: 48px 0 0; padding: 24px 28px; border-radius: var(--tsc-radius); background: var(--tsc-brand-tint); color: var(--tsc-surface-ink); }
.tsc-footcta__icon { flex: none; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; background: var(--tsc-accent); color: var(--tsc-accent-ink); }
.tsc-footcta__text { flex: 1 1 280px; }
.tsc .tsc-footcta .tsc-h3 { margin: 0 0 4px; color: var(--tsc-surface-ink); }
.tsc .tsc-footcta p { margin: 0; color: var(--tsc-surface-ink); }
.tsc .tsc-upsell__alt { margin: 16px 0 0; font-size: var(--tsc-fs-sm); }
.tsc .tsc-upsell__alt a { color: var(--tsc-accent-ink) !important; font-weight: 700; }

/* ---------- Privacy note under consent checkboxes ---------- */
.tsc .tsc-privacy-note { margin: 6px 0 0; padding-left: 0; font-size: var(--tsc-fs-sm); color: inherit; opacity: .85; }
.tsc .tsc-privacy-note a { font-weight: 600; text-decoration: underline; }

/* ---------- No-photo paid / trial hero: a shorter tinted band (about 40% of the photo hero) ---------- */
.tsc .tsc-lhero--nophoto { display: flex; align-items: center; gap: 24px; min-height: 0; padding: 40px 32px; color: var(--tsc-surface-ink); background-color: var(--tsc-brand-tint); background-image: radial-gradient(var(--tsc-brand-tint-2) 1.2px, transparent 1.4px), linear-gradient(120deg, transparent 0 55%, color-mix(in srgb, var(--tsc-brand-tint-2) 60%, transparent) 100%); background-size: 18px 18px, 100% 100%; }
.tsc .tsc-lhero--nophoto.tsc-lhero--plain { background-image: none; }
.tsc-lhero__caticon { flex: none; display: grid; place-items: center; width: 88px; height: 88px; border-radius: 22px; background: var(--tsc-accent); color: var(--tsc-accent-ink); box-shadow: 0 4px 16px rgba(16,24,40,.12); }
.tsc .tsc-lhero--nophoto .tsc-lhero__body { position: static; padding: 0; flex: 1 1 auto; min-width: 0; }
.tsc .tsc-lhero--nophoto .tsc-lhero__title { color: var(--tsc-surface-ink); text-shadow: none; }
.tsc .tsc-lhero--nophoto .tsc-lhero__facts { text-shadow: none; color: var(--tsc-surface-ink); }
.tsc .tsc-lhero--nophoto .tsc-lhero__facts a { color: var(--tsc-surface-ink) !important; }
.tsc .tsc-lhero--nophoto .tsc-lhero__facts .tsc-icon { color: var(--tsc-brand-tint-ink); }
.tsc .tsc-lhero--nophoto .tsc-lhero__tier { top: 16px; right: 16px; }
.tsc .tsc-lhero--nophoto .tsc-lhero__logo { box-shadow: 0 2px 8px rgba(16,24,40,.15); }
.tsc .tsc-lhero--nophoto .tsc-lhero__logo ~ .tsc-lhero__text { min-width: 0; }
@media (max-width: 640px) {
	.tsc .tsc-lhero--nophoto { flex-direction: column; align-items: flex-start; gap: 16px; padding: 56px 16px 24px; }
	.tsc-lhero__caticon { width: 64px; height: 64px; border-radius: 16px; }
}
/* Free listing without a photo: a shorter panel. */
.tsc .tsc-free__photo--none .tsc-cover__ph { aspect-ratio: 16 / 7; }
.tsc .tsc-free__photo--none .tsc-ph__icon { width: 80px; height: 80px; }
.tsc .tsc-free__photo--none .tsc-ph__name { font-size: 1.5em; }

/* ---------- Owner-only "Add a cover photo" prompt ---------- */
.tsc-coverprompt { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 16px; padding: 12px 16px; border-radius: 12px; border: 1px dashed var(--tsc-link); background: var(--tsc-surface); color: var(--tsc-surface-ink); }
.tsc-coverprompt__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink); flex: none; }
.tsc .tsc-coverprompt__text { margin: 0; flex: 1 1 260px; }
.tsc .tsc-coverprompt .tsc-muted { color: var(--tsc-surface-muted); }

/* ---------- Listing no longer listed (404) ---------- */
.tsc-gone__head { margin: 0 0 32px; padding: 32px; border-radius: var(--tsc-radius); background: var(--tsc-brand-tint); color: var(--tsc-surface-ink); text-align: center; }
.tsc-gone__icon { display: inline-grid; place-items: center; width: 64px; height: 64px; margin: 0 0 12px; border-radius: 16px; background: var(--tsc-accent); color: var(--tsc-accent-ink); }
.tsc .tsc-gone__head .tsc-h1 { margin: 0 0 8px; color: var(--tsc-surface-ink); }
.tsc .tsc-gone__lead { max-width: 40em; margin: 0 auto 24px; font-size: 1.0625em; color: var(--tsc-surface-ink); }
.tsc-gone__head .tsc-search { text-align: left; max-width: 880px; margin: 0 auto; }
.tsc .tsc-gone__actions { justify-content: center; margin-top: 32px; }
@media (max-width: 640px) { .tsc-gone__head { padding: 24px 16px; } }

/* ---------- Opening hours picker (parts/hours-editor.php, 1.7.1) ---------- */
.tsc .tsc-hours-ed { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 14px; }
.tsc .tsc-hours-ed [hidden] { display: none !important; }
.tsc .tsc-hours-ed__legend { font-weight: 600; padding: 0; margin: 0 0 6px; }
.tsc .tsc-hours-ed__modes { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.tsc .tsc-hours-ed__mode { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; margin: 0; cursor: pointer; }
.tsc .tsc-hours-ed__mode input { width: 20px; height: 20px; margin: 0; }
.tsc .tsc-hours-ed__check { margin: 0; padding: 10px 12px; border-radius: 8px; background: #fff7e6; color: #5b3a00; border: 1px solid #f0c36d; }
.tsc .tsc-hours-ed__start { margin: 0 0 4px; padding: 12px 14px; border-radius: 10px; background: var(--tsc-brand-tint); color: var(--tsc-brand-tint-ink); border-left: 4px solid var(--tsc-brand); }
.tsc .tsc-hours-ed__days { display: grid; }
.tsc .tsc-hours-ed__day { padding: 12px 0; border-top: 1px solid var(--tsc-surface-line); }
.tsc .tsc-hours-ed__day:first-of-type { border-top: 0; }
.tsc .tsc-hours-ed__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.tsc .tsc-hours-ed__name { flex: 0 0 7.5em; font-weight: 700; }
.tsc .tsc-hours-ed__status { color: var(--tsc-surface-muted); font-size: .875em; font-weight: 600; }
.tsc .tsc-seg { display: inline-flex; border: 1px solid #6b7280; border-radius: var(--tsc-btn-radius); overflow: hidden; background: var(--tsc-surface); }
.tsc .tsc-seg__opt { position: relative; display: flex; margin: 0; }
.tsc .tsc-seg__opt + .tsc-seg__opt { border-left: 1px solid #6b7280; }
.tsc .tsc-seg__input { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; margin: 0 !important; opacity: 0; cursor: pointer; z-index: 1; }
.tsc .tsc-seg__text { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 5.5em; padding: 0 16px; font-weight: 600; color: var(--tsc-surface-ink); background: var(--tsc-surface); }
.tsc .tsc-seg__input:checked + .tsc-seg__text { background: var(--tsc-brand); color: var(--tsc-brand-ink); }
.tsc .tsc-seg__input[value="closed"]:checked + .tsc-seg__text { background: #374151; color: #ffffff; }
.tsc .tsc-seg__input:focus-visible + .tsc-seg__text { outline: 3px solid var(--tsc-focus); outline-offset: -3px; }
.tsc .tsc-hours-ed__copy { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; padding-left: calc(7.5em + 16px); }
.tsc .tsc-hours-ed__btn { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--tsc-link); border-radius: var(--tsc-btn-radius); background: var(--tsc-surface); color: var(--tsc-link); font: inherit; font-weight: 600; cursor: pointer; }
.tsc .tsc-hours-ed__btn:disabled { opacity: .5; cursor: not-allowed; }
.tsc .tsc-hours-ed__btn:focus-visible, .tsc .tsc-hours-ed__remove:focus-visible { outline: 3px solid var(--tsc-focus); outline-offset: 2px; }
.tsc .tsc-hours-ed__add { border-style: dashed; justify-self: start; }
.tsc .tsc-hours-ed__slots { display: grid; gap: 10px; margin-top: 10px; padding-left: calc(7.5em + 16px); }
.tsc .tsc-hours-ed.is-js .tsc-hours-ed__day:not([data-state="open"]) .tsc-hours-ed__slots { display: none; }
.tsc .tsc-hours-ed__slot { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 12px; }
.tsc .tsc-hours-ed__time { display: grid; gap: 2px; margin: 0; font-weight: 400; }
.tsc .tsc-hours-ed__lbl { font-size: .8125em; color: var(--tsc-surface-muted); font-weight: 600; }
.tsc .tsc-hours-ed__time select { min-height: 44px; min-width: 9.5em; width: auto; margin: 0; }
.tsc .tsc-hours-ed__remove { appearance: none; width: 44px; height: 44px; border: 1px solid #6b7280; border-radius: var(--tsc-btn-radius); background: var(--tsc-surface); color: var(--tsc-surface-ink); font-size: 1.25em; line-height: 1; cursor: pointer; }
.tsc .tsc-hours-ed__late { flex-basis: 100%; font-size: .875em; font-weight: 600; color: #92400e; }
.tsc .tsc-hours-ed__notefield { display: grid; gap: 6px; }
.tsc .tsc-hours-ed__notefield label { font-weight: 600; }
.tsc .tsc-hours-ed__notefield textarea { width: 100%; }
@media (max-width: 600px) {
	.tsc .tsc-hours-ed__name { flex-basis: 100%; }
	.tsc .tsc-seg { flex: 1 1 auto; }
	.tsc .tsc-seg__opt { flex: 1 1 0; }
	.tsc .tsc-seg__text { width: 100%; }
	.tsc .tsc-hours-ed__copy { padding-left: 0; }
	.tsc .tsc-hours-ed__copy .tsc-hours-ed__btn { flex: 1 1 12em; }
	.tsc .tsc-hours-ed__slots { padding-left: 0; }
	.tsc .tsc-hours-ed__time { flex: 1 1 0; min-width: 0; }
	.tsc .tsc-hours-ed__time select { width: 100%; min-width: 0; }
	.tsc .tsc-hours-ed__add { justify-self: stretch; }
}

/* ---------- Claim form: what is being claimed (plain text, not an input) ---------- */
.tsc .tsc-claimfor { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: inherit; }
.tsc .tsc-claimfor__label { margin: 0 0 2px; padding: 0; border: 0; border-radius: 0; background: none; font-size: var(--tsc-fs-sm); color: var(--tsc-surface-muted); font-weight: 600; }
.tsc .tsc-claimfor__biz { margin: 0; font-weight: 700; line-height: 1.4; }

/* ---------- Owner dashboard: business switcher (one account, several businesses) ---------- */
.tsc .tsc-switcher { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 20px; padding: 10px 14px; border-radius: var(--tsc-radius); background: var(--tsc-surface-alt); color: var(--tsc-surface-ink); }
.tsc .tsc-switcher__label { font-weight: 700; }
.tsc .tsc-switcher__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tsc .tsc-switcher__item { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: var(--tsc-btn-radius); border: 1px solid var(--tsc-surface-line); background: var(--tsc-surface); color: var(--tsc-surface-ink) !important; text-decoration: none !important; font-weight: 600; }
.tsc .tsc-switcher__item:hover { border-color: var(--tsc-link); }
.tsc .tsc-switcher__item.is-current { background: var(--tsc-brand); border-color: var(--tsc-brand); color: var(--tsc-brand-ink) !important; }
.tsc .tsc-switcher__item:focus-visible { outline: 3px solid var(--tsc-focus); outline-offset: 2px; }
/* v1.9.0: AdSense units (free listing pages, Business Finder in-feed). */
.tsc .tsc-ad { min-width: 0; margin: 0 0 24px; text-align: center; }
.tsc .tsc-ad__label { display: block; margin: 0 0 4px; font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--tsc-muted, #595959); }
.tsc .tsc-free__aside .tsc-ad, .tsc .tsc-free__main .tsc-ad { margin: 16px 0 0; }
.tsc .tsc-cardlist__item--ad { grid-column: 1 / -1; list-style: none; }
.tsc .tsc-cardlist__item--ad .tsc-ad { margin: 0; }

/* 1.9.2: plugin pages (My account, Login, Add your business and its "check your email" step, Claim). The theme's or
   Elementor's page title is hidden (the plugin prints its own heading) and the content gets padding and a readable
   width, also inside full-width Elementor / Hello layouts. */
.tsc.tsc-page { box-sizing: border-box; width: 100%; max-width: var(--tsc-max, 1140px); margin: 0 auto; padding: var(--tsc-s4, 32px) 16px var(--tsc-s5, 48px); }
.tsc.tsc-page--narrow { max-width: 720px; }
.tsc.tsc-page > :first-child, .tsc.tsc-page > :first-child > :first-child { margin-top: 0; }
body.tsc-plugin-page :is(.page-header, .entry-header, .page-title-wrap, .ast-archive-description, .wp-block-post-title, .elementor-widget-theme-post-title, .elementor-widget-theme-page-title, .elementor-page-title):not(.tsc *),
body.tsc-plugin-page :is(h1.entry-title, h1.page-title, .entry-header > .entry-title):not(.tsc *) { display: none !important; }
@media (max-width: 600px) { .tsc.tsc-page { padding: var(--tsc-s3, 24px) 16px var(--tsc-s4, 32px); } }
