/* Part 3 — trade & call-out elements. Appended to by the t1 and t2 element sets; scoped under .asu-el. */

/* ==========================================================================
   T1 — urgency, services, pricing, process & guarantees (class prefix asu-t-)
   Mobile-first (360px up). Tokens come from .asu-el in asu-elements.css.
   ========================================================================== */

/* ---- shared bits ---- */
.asu-el .asu-t-sample { display: inline-block; vertical-align: middle; padding: 2px 8px; border: 1px dashed #aab6bb; border-radius: 6px; background: transparent; color: var(--asu-muted); font: 600 11px/1.5 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; }
.asu-el .asu-t-ph { color: var(--asu-muted); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
.asu-el .asu-t-price { font-weight: 700; color: var(--asu-ink); white-space: nowrap; }
.asu-el .asu-t-price.is-sample { display: inline-block; padding: 3px 10px; border: 1px dashed #aab6bb; border-radius: 6px; color: var(--asu-muted); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; font-weight: 600; }
.asu-el .asu-t-ticks { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.asu-el .asu-t-ticks li { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 14px; }
.asu-el .asu-t-ticks .asu-ico { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--asu-green); }
.asu-el .asu-t-go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; color: var(--asu-main); font-weight: 600; font-size: 14px; }
.asu-el .asu-t-go .asu-ico { width: 16px; height: 16px; transition: transform .2s; }
.asu-el .asu-t-demo { margin: 0; font-size: 11px; color: var(--asu-muted); }
.asu-el .asu-t-safety { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 18px; padding: 12px 14px; background: #fff7e6; border: 1px solid #f0c36d; border-left: 4px solid var(--asu-amber, #f5a700); border-radius: 8px; font-size: 14px; color: var(--asu-ink); }
.asu-el .asu-t-safety .asu-ico { flex: none; width: 22px; height: 22px; color: #9a5b00; }
.asu-el .asu-t-safety a { color: var(--asu-ink); font-weight: 700; text-decoration: underline; display: inline-block; min-height: 24px; }
.asu-el.asu-t-strip a:focus-visible, .asu-el.asu-t-band a:focus-visible, .asu-el.asu-t-hero a:focus-visible, .asu-el.asu-t-offer a:focus-visible, .asu-el.asu-t-pp a:focus-visible, .asu-el.asu-t-mbar a:focus-visible { outline: 3px solid #f5b800; outline-offset: 2px; }
.asu-el [class*="asu-t-"] :focus-visible { outline: 3px solid #f5b800; outline-offset: 2px; }

/* pulsing dot */
.asu-el .asu-t-pulse { position: relative; flex: none; width: 10px; height: 10px; border-radius: 50%; background: #ff6a3d; }
.asu-el .asu-t-pulse::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid #ff6a3d; opacity: 0; animation: asu-t-pulse 1.8s ease-out infinite; }
@keyframes asu-t-pulse { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(1.7); opacity: 0; } }

/* ---- T01 emergency call strip ---- */
.asu-el.asu-t-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 14px; margin: 0; padding: 6px 14px; background: var(--asu-ink); color: #fff; font-size: 14px; }
.asu-el.asu-t-strip .asu-t-strip__label { color: #fff; font-weight: 600; }
.asu-el.asu-t-strip .asu-t-strip__tel { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 4px; color: #fff; font-size: 15px; }
.asu-el.asu-t-strip .asu-t-strip__tel b { font-size: 17px; text-decoration: underline; text-underline-offset: 3px; }
.asu-el.asu-t-strip .asu-ico { width: 18px; height: 18px; }
.asu-el.asu-t-strip .asu-t-strip__hrs { color: rgba(255, 255, 255, .8); font-size: 13px; }

/* ---- T02 emergency CTA band ---- */
.asu-el.asu-t-band { position: relative; overflow: hidden; isolation: isolate; background: var(--asu-main); color: #fff; border-radius: var(--asu-radius); }
.asu-el.asu-t-band .asu-t-band__bg { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; opacity: .28; }
.asu-el.asu-t-band .asu-t-band__in { display: grid; gap: 18px; align-items: center; padding: 28px 20px; }
.asu-el.asu-t-band h2 { margin: 0 0 6px; color: #fff; font-size: 26px; }
.asu-el.asu-t-band p { margin: 0; color: rgba(255, 255, 255, .94); }
.asu-el.asu-t-band .asu-t-band__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.asu-el.asu-t-band .asu-t-band__btns .asu-btn { flex: 1 1 180px; }

/* ---- T03 sticky mobile action bar ---- */
.asu-el.asu-t-mbar { margin: 0; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); overflow: hidden; max-width: 480px; }
.asu-el.asu-t-mbar ul { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; margin: 0; padding: 0; list-style: none; }
.asu-el.asu-t-mbar li { margin: 0; border-left: 1px solid var(--asu-line); }
.asu-el.asu-t-mbar li:first-child { border-left: 0; }
.asu-el.asu-t-mbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 56px; padding: 6px 4px; color: var(--asu-main); font-size: 12px; font-weight: 600; }
.asu-el.asu-t-mbar .asu-ico { width: 22px; height: 22px; }
.asu-el.asu-t-mbar a.is-call { background: var(--asu-accent); color: #fff; }
.asu-el.asu-t-mbar a.is-book { background: var(--asu-main); color: #fff; }
.asu-el.asu-t-mbar--fixed { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9991; max-width: none; margin: 0; border-radius: 0; border-width: 1px 0 0; padding-bottom: env(safe-area-inset-bottom, 0); display: none; }
.asu-el .asu-t-mbar__spacer { display: none; }
@media (max-width: 768px) {
	.asu-el.asu-t-mbar--fixed { display: block; }
	.asu-el .asu-t-mbar__spacer { display: block; height: 72px; }
}

/* ---- forms (T04, T05) ---- */
.asu-el .asu-t-form { display: grid; gap: 12px; }
.asu-el .asu-t-form label { display: block; margin: 0 0 4px; font-size: 13px; font-weight: 600; color: var(--asu-ink); }
.asu-el .asu-t-form input, .asu-el .asu-t-form select { width: 100%; height: 46px; padding: 0 12px; border: 1px solid #c9d9cf; border-radius: 6px; background: #fff; font: inherit; font-size: 15px; color: var(--asu-text); }
.asu-el .asu-t-form input:focus, .asu-el .asu-t-form select:focus { outline: 3px solid rgba(8, 122, 62, .3); border-color: var(--asu-main); }
.asu-el .asu-t-form :disabled { opacity: 1; -webkit-text-fill-color: #55646a; }
.asu-el .asu-t-form button:disabled { -webkit-text-fill-color: #fff; color: #fff; }
.asu-el .asu-t-form .asu-btn { width: 100%; }
.asu-el .asu-t-form__two { display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }

/* ---- T04 hero with triage form ---- */
.asu-el.asu-t-hero { display: grid; gap: 24px; margin: 0 0 32px; padding: 28px 18px; background: var(--asu-main); color: #fff; border-radius: var(--asu-radius); }
.asu-el.asu-t-hero h1 { margin: 8px 0 12px; color: #fff; font-size: 32px; }
.asu-el.asu-t-hero p { color: rgba(255, 255, 255, .95); }
.asu-el.asu-t-hero .asu-t-hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; }
.asu-el.asu-t-hero .asu-t-hero__tel { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: #fff; font-size: 16px; }
.asu-el.asu-t-hero .asu-t-hero__tel b { text-decoration: underline; text-underline-offset: 3px; }
.asu-el.asu-t-hero .asu-t-hero__tel .asu-ico { width: 20px; height: 20px; }
.asu-el.asu-t-hero .asu-t-hero__card { padding: 22px 18px; background: #fff; color: var(--asu-text); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); }
.asu-el.asu-t-hero .asu-t-hero__card h2 { margin: 0 0 14px; font-size: 20px; }
.asu-el.asu-t-hero .asu-t-hero__card p { color: var(--asu-muted); }

/* ---- T05 call-back mini-form ---- */
.asu-el.asu-t-callback { display: grid; gap: 14px; grid-template-columns: auto minmax(0, 1fr); align-items: start; padding: 20px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); }
.asu-el.asu-t-callback h3 { margin: 0 0 6px; font-size: 18px; }
.asu-el.asu-t-callback .asu-t-form--row { display: grid; gap: 10px; align-items: end; }
.asu-el .asu-t-callback__promise { display: flex; align-items: center; gap: 8px; margin: 10px 0 0; font-size: 13px; color: var(--asu-muted); }
.asu-el .asu-t-callback__promise .asu-ico { width: 16px; height: 16px; flex: none; }

/* ---- T06 response-time promise ---- */
.asu-el.asu-t-resp { display: inline-block; min-width: 220px; max-width: 100%; padding: 22px 26px; background: var(--asu-tint); border: 1px solid var(--asu-line); border-radius: var(--asu-radius); text-align: center; }
.asu-el.asu-t-resp.is-ph { background: #fff; border: 2px dashed #aab6bb; }
.asu-el .asu-t-resp__label { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); }
.asu-el .asu-t-resp__val { display: flex; align-items: baseline; justify-content: center; gap: 8px; margin: 0; line-height: 1; }
.asu-el .asu-t-resp__val strong { font-size: 56px; font-weight: 700; color: var(--asu-main); font-variant-numeric: tabular-nums; }
.asu-el.asu-t-resp.is-ph .asu-t-resp__val strong { color: var(--asu-muted); font-family: ui-monospace, Menlo, Consolas, monospace; }
.asu-el .asu-t-resp__val span { font-size: 22px; font-weight: 600; color: var(--asu-ink); }
.asu-el .asu-t-resp__cap { margin: 10px 0 0; font-size: 14px; color: var(--asu-muted); }
.asu-el .asu-t-resp__tag { margin: 8px 0 0; }

/* ---- T07 multi-trade service grid ---- */
.asu-el.asu-t-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 0 0 40px; padding: 0; list-style: none; }
.asu-el.asu-t-grid li { margin: 0; display: flex; }
.asu-el.asu-t-grid a { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; width: 100%; min-height: 44px; padding: 22px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); color: var(--asu-text); transition: transform .2s, border-color .2s, box-shadow .2s; }
.asu-el.asu-t-grid a:hover { transform: translateY(-2px); border-color: var(--asu-main); }
.asu-el.asu-t-grid a:hover .asu-t-go .asu-ico { transform: translateX(3px); }
.asu-el.asu-t-grid h3 { margin: 10px 0 0; font-size: 18px; }
.asu-el.asu-t-grid p { margin: 0 0 8px; font-size: 14px; color: var(--asu-muted); }

/* ---- T08 symptom checklists ---- */
.asu-el.asu-t-sym h2 { margin-bottom: 16px; }
.asu-el .asu-t-sym__cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.asu-el .asu-t-sym__col { padding: 20px; background: #fff; border: 1px solid var(--asu-line); border-top: 3px solid var(--asu-main); border-radius: var(--asu-radius); }
.asu-el .asu-t-sym__col h3 { margin: 0 0 12px; font-size: 16px; }
.asu-el .asu-t-sym__col .asu-t-ticks { margin: 0; }

/* ---- T09 fault diagnoser ---- */
.asu-el.asu-t-ff { padding: 22px 18px; background: var(--asu-tint); border: 1px solid var(--asu-line); border-radius: var(--asu-radius); }
.asu-el.asu-t-ff h2 { margin: 0 0 14px; font-size: 22px; }
.asu-el .asu-t-ff__step { min-width: 0; margin: 0 0 18px; padding: 0; border: 0; }
.asu-el .asu-t-ff__step legend { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; padding: 0; font-size: 16px; font-weight: 600; color: var(--asu-ink); }
.asu-el .asu-t-ff__step legend b { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--asu-main); color: #fff; font-size: 14px; }
.asu-el .asu-t-ff__opts { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr); }
.asu-el .asu-t-opt { position: relative; display: block; margin: 0; cursor: pointer; }
.asu-el .asu-t-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.asu-el .asu-t-opt span { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 14px; background: #fff; border: 2px solid var(--asu-line); border-radius: 8px; font-size: 15px; font-weight: 500; color: var(--asu-ink); transition: border-color .15s, background .15s, color .15s; }
.asu-el .asu-t-opt span .asu-ico { width: 20px; height: 20px; flex: none; color: var(--asu-main); }
.asu-el .asu-t-opt:hover span { border-color: var(--asu-main); }
.asu-el .asu-t-opt input:checked + span { background: var(--asu-main); border-color: var(--asu-main); color: #fff; }
.asu-el .asu-t-opt input:checked + span .asu-ico { color: #fff; }
.asu-el .asu-t-opt input:focus-visible + span { outline: 3px solid #f5b800; outline-offset: 2px; }
.asu-el .asu-t-ff__res { padding: 18px; background: #fff; border: 2px solid var(--asu-main); border-radius: var(--asu-radius); }
.asu-el .asu-t-ff__rec { display: flex; gap: 14px; align-items: flex-start; margin: 0 0 12px; }
.asu-el .asu-t-ff__rec + .asu-t-ff__rec { padding-top: 12px; border-top: 1px solid var(--asu-line); }
.asu-el .asu-t-ff__kicker { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); }
.asu-el .asu-t-ff__rec h3 { margin: 2px 0 4px; font-size: 20px; }
.asu-el .asu-t-ff__rec p:last-child { margin: 0; }
.asu-el .asu-t-ff__now, .asu-el .asu-t-ff__later { margin: 0 0 12px; font-size: 14px; }
.asu-el .asu-t-ff__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.asu-el .asu-t-ff__btns .asu-btn { flex: 1 1 200px; }
.asu-el.asu-t-ff.is-js [hidden], .asu-el.asu-t-tabs.is-js [hidden] { display: none !important; }
.asu-el.asu-t-ff[data-urgency="urgent"] .asu-t-ff__later { display: none; }
.asu-el.asu-t-ff[data-urgency="wait"] .asu-t-ff__now { display: none; }

/* ---- T10 audience tabs ---- */
.asu-el.asu-t-tabs { background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); overflow: hidden; }
.asu-el .asu-t-tabs__list { display: flex; gap: 0; overflow-x: auto; background: var(--asu-tint); border-bottom: 1px solid var(--asu-line); }
.asu-el .asu-t-tabs__list[hidden] { display: none; }
.asu-el .asu-t-tabs__list button { flex: 1 0 auto; min-height: 48px; padding: 10px 20px; border: 0; border-bottom: 3px solid transparent; background: transparent; font: inherit; font-size: 15px; font-weight: 600; color: var(--asu-muted); cursor: pointer; }
.asu-el .asu-t-tabs__list button[aria-selected="true"] { background: #fff; color: var(--asu-main); border-bottom-color: var(--asu-main); }
.asu-el .asu-t-tabs__list button:hover { color: var(--asu-main); }
.asu-el .asu-t-tabs__panel { padding: 22px 20px; }
.asu-el .asu-t-tabs__panel + .asu-t-tabs__panel { border-top: 1px solid var(--asu-line); }
.asu-el.asu-t-tabs.is-js .asu-t-tabs__panel + .asu-t-tabs__panel { border-top: 0; }
.asu-el .asu-t-tabs__panel h3 { margin: 0 0 6px; font-size: 20px; }

/* ---- T11 sector tiles ---- */
.asu-el.asu-t-sectors { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 0 0 40px; padding: 0; list-style: none; }
.asu-el.asu-t-sectors li { display: flex; gap: 14px; align-items: flex-start; margin: 0; padding: 16px 18px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); }
.asu-el.asu-t-sectors h3 { margin: 0 0 2px; font-size: 16px; }
.asu-el.asu-t-sectors p { margin: 0; font-size: 14px; color: var(--asu-muted); }

/* ---- T12 prices from ---- */
.asu-el.asu-t-prices h3 { margin: 0 0 12px; font-size: 20px; }
.asu-el.asu-t-prices table, .asu-el.asu-t-prices tbody { display: block; width: 100%; border-collapse: collapse; margin: 0; font-size: 14px; }
.asu-el.asu-t-prices thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.asu-el.asu-t-prices tr { display: block; margin: 0 0 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); }
.asu-el.asu-t-prices th, .asu-el.asu-t-prices td { display: block; padding: 0; border: 0; background: transparent; text-align: left; }
.asu-el.asu-t-prices tbody th { margin: 0 0 8px; font-size: 16px; font-weight: 600; color: var(--asu-ink); }
.asu-el.asu-t-prices td { padding: 4px 0; color: var(--asu-text); }
.asu-el.asu-t-prices td::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); }
.asu-el .asu-t-prices__note { margin: 4px 0 0; font-size: 13px; color: var(--asu-muted); }

/* ---- T13 call-out vs quote ---- */
.asu-el.asu-t-vs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.asu-el .asu-t-vs__card { padding: 24px 22px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); }
.asu-el .asu-t-vs__card--call { border-top: 4px solid var(--asu-accent); }
.asu-el .asu-t-vs__card--plan { border-top: 4px solid var(--asu-main); }
.asu-el .asu-t-vs__card h3 { margin: 12px 0 6px; font-size: 20px; }
.asu-el .asu-t-vs__card > p { color: var(--asu-muted); }

/* ---- T14 plan tiers ---- */
.asu-el.asu-t-plans h2 { margin-bottom: 16px; }
.asu-el.asu-t-plans > ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 0; padding: 0; list-style: none; }
.asu-el .asu-t-plan { position: relative; display: flex; flex-direction: column; margin: 0; padding: 26px 22px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); }
.asu-el .asu-t-plan.is-featured { border: 2px solid var(--asu-main); box-shadow: var(--asu-shadow); }
.asu-el .asu-t-plan__flag { position: absolute; top: -12px; left: 18px; padding: 2px 10px; border-radius: 999px; background: var(--asu-main); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.asu-el .asu-t-plan h3 { margin: 0 0 8px; font-size: 20px; }
.asu-el .asu-t-plan__price { display: flex; align-items: baseline; gap: 8px; margin: 0 0 16px; }
.asu-el .asu-t-plan__price b { font-size: 24px; }
.asu-el .asu-t-plan__price span { font-size: 14px; color: var(--asu-muted); }
.asu-el .asu-t-plan .asu-btn { margin-top: auto; }
.asu-el .asu-t-plans__note { margin: 14px 0 0; font-size: 13px; color: var(--asu-muted); }

/* ---- T15 offer strip ---- */
.asu-el.asu-t-offer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 24px; padding: 12px 18px; background: var(--asu-accent); color: #fff; border-radius: var(--asu-radius); font-size: 15px; }
.asu-el.asu-t-offer p { flex: 1 1 240px; margin: 0; font-weight: 600; }
.asu-el .asu-t-offer__tag { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .2); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.asu-el .asu-t-offer__tag .asu-ico { width: 16px; height: 16px; }
.asu-el .asu-t-offer__code { margin-left: 6px; padding: 1px 8px; border: 1px dashed rgba(255, 255, 255, .8); border-radius: 6px; font-size: 13px; }
.asu-el .asu-t-offer__ends { font-size: 13px; opacity: .95; }
.asu-el.asu-t-offer .asu-btn--light { color: var(--asu-accent); }

/* ---- T16 call-out timeline ---- */
.asu-el.asu-t-tl h2 { margin-bottom: 18px; }
.asu-el.asu-t-tl ol { position: relative; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.asu-el.asu-t-tl ol::before { content: ""; position: absolute; left: 17px; top: 8px; bottom: 8px; width: 2px; background: var(--asu-line); }
.asu-el.asu-t-tl li { position: relative; margin: 0 0 20px; padding: 0 0 0 52px; }
.asu-el.asu-t-tl li:last-child { margin-bottom: 0; }
.asu-el .asu-t-tl__n { position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--asu-main); color: #fff; font-weight: 700; box-shadow: 0 0 0 4px #fff; }
.asu-el.asu-t-tl li:last-child .asu-t-tl__n { background: var(--asu-accent); }
.asu-el.asu-t-tl h3 { margin: 4px 0 4px; font-size: 17px; }
.asu-el.asu-t-tl li p { margin: 0; font-size: 14px; color: var(--asu-muted); }

/* ---- T17 pledge grid ---- */
.asu-el.asu-t-pledges h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 16px; }
.asu-el.asu-t-pledges ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 0; padding: 0; list-style: none; }
.asu-el.asu-t-pledges li { margin: 0; padding: 20px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); }
.asu-el.asu-t-pledges h3 { margin: 12px 0 6px; font-size: 16px; }
.asu-el.asu-t-pledges li p { margin: 0; }

/* ---- T18 workmanship guarantee ---- */
.asu-el.asu-t-guar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: center; padding: 24px 20px; background: var(--asu-tint); border: 1px solid var(--asu-line); border-left: 5px solid var(--asu-main); border-radius: var(--asu-radius); }
.asu-el .asu-t-guar__badge { display: grid; justify-items: center; align-content: center; gap: 2px; width: 150px; min-height: 150px; padding: 14px; background: #fff; border: 3px solid var(--asu-main); border-radius: 50%; text-align: center; color: var(--asu-main); }
.asu-el .asu-t-guar__badge.is-ph { border: 3px dashed #aab6bb; color: var(--asu-muted); }
.asu-el .asu-t-guar__badge .asu-ico { width: 26px; height: 26px; }
.asu-el .asu-t-guar__badge strong { font-size: 30px; line-height: 1.1; }
.asu-el .asu-t-guar__badge span { font-size: 14px; font-weight: 600; }
.asu-el.asu-t-guar h3 { margin: 0 0 8px; font-size: 22px; }
.asu-el .asu-t-guar__lbl { margin: 14px 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); }
.asu-el.asu-t-guar .asu-t-ticks { margin: 0; }

/* ---- T19 engineer ID block ---- */
.asu-el.asu-t-eng { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 20px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); }
.asu-el .asu-t-eng__photo { width: 140px; }
.asu-el .asu-t-eng__photo .asu-ph, .asu-el .asu-t-eng__photo img { width: 140px; height: 168px; min-height: 0; object-fit: cover; border-radius: 8px; }
.asu-el .asu-t-eng__role { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); }
.asu-el.asu-t-eng h3 { margin: 2px 0 12px; font-size: 22px; }
.asu-el .asu-t-eng__lbl { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-weight: 600; color: var(--asu-ink); }
.asu-el .asu-t-eng__lbl .asu-ico { width: 20px; height: 20px; color: var(--asu-main); }
.asu-el.asu-t-eng .asu-t-ticks { margin: 0; }

/* ---- T20 same-price pledge banner ---- */
.asu-el.asu-t-pp { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; padding: 22px 20px; background: var(--asu-main); color: #fff; border-radius: var(--asu-radius); }
.asu-el .asu-t-pp__ico { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: rgba(255, 255, 255, .18); flex: none; }
.asu-el .asu-t-pp__ico .asu-ico { width: 28px; height: 28px; }
.asu-el .asu-t-pp__body { flex: 1 1 240px; }
.asu-el.asu-t-pp h3 { margin: 0 0 4px; color: #fff; font-size: 22px; }
.asu-el.asu-t-pp p { margin: 0; color: rgba(255, 255, 255, .95); }
.asu-el.asu-t-pp .asu-t-sample { border-color: rgba(255, 255, 255, .7); color: #fff; }

/* ---- breakpoints ---- */
@media (min-width: 600px) {
	.asu-el.asu-t-grid, .asu-el .asu-t-sym__cols, .asu-el.asu-t-sectors, .asu-el.asu-t-pledges ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asu-el .asu-t-form__two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asu-el .asu-t-ff__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asu-el.asu-t-vs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asu-el.asu-t-callback .asu-t-form--row { grid-template-columns: minmax(0, 1fr) auto; }
	.asu-el.asu-t-callback .asu-t-form--row .asu-btn { width: auto; }
	.asu-el.asu-t-eng { grid-template-columns: auto minmax(0, 1fr); }
	.asu-el.asu-t-guar { grid-template-columns: auto minmax(0, 1fr); }
	.asu-el.asu-t-band .asu-t-band__in { grid-template-columns: minmax(0, 1fr) auto; padding: 32px 30px; }
	.asu-el.asu-t-band .asu-t-band__btns .asu-btn { flex: 0 0 auto; }
}
@media (min-width: 768px) {
	/* tables return to a real grid */
	.asu-el.asu-t-prices thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
	.asu-el.asu-t-prices table { display: table; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); overflow: hidden; background: #fff; }
	.asu-el.asu-t-prices thead { display: table-header-group; }
	.asu-el.asu-t-prices tbody { display: table-row-group; }
	.asu-el.asu-t-prices tr { display: table-row; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
	.asu-el.asu-t-prices th, .asu-el.asu-t-prices td { display: table-cell; padding: 14px 18px; border-bottom: 1px solid var(--asu-line); vertical-align: middle; }
	.asu-el.asu-t-prices thead th { background: var(--asu-tint); color: var(--asu-ink); font-size: 13px; font-weight: 600; }
	.asu-el.asu-t-prices tbody th { margin: 0; font-size: 14px; }
	.asu-el.asu-t-prices tbody tr:last-child th, .asu-el.asu-t-prices tbody tr:last-child td { border-bottom: 0; }
	.asu-el.asu-t-prices td::before { display: none; }
	.asu-el.asu-t-plans > ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.asu-el.asu-t-plans > ul:has(> li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asu-el.asu-t-hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 36px; align-items: center; padding: 44px 40px; }
	.asu-el.asu-t-hero h1 { font-size: 40px; }
	.asu-el.asu-t-hero .asu-t-hero__card { padding: 26px 24px; }
}
@media (min-width: 900px) {
	.asu-el.asu-t-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.asu-el .asu-t-sym__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.asu-el.asu-t-sectors { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.asu-el.asu-t-pledges ul { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.asu-el .asu-t-ff__opts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	/* timeline turns horizontal */
	.asu-el.asu-t-tl ol { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
	.asu-el.asu-t-tl ol::before { left: 18px; right: 18px; top: 17px; bottom: auto; width: auto; height: 2px; }
	.asu-el.asu-t-tl li { margin: 0; padding: 48px 0 0; }
	.asu-el.asu-t-tl h3 { margin-top: 0; }
}
@media (min-width: 769px) {
	.asu-el.asu-t-strip { padding: 4px 20px; }
}

/* ---- motion ---- */
@media (prefers-reduced-motion: reduce) {
	.asu-el .asu-t-pulse::after { animation: none; opacity: .5; transform: scale(1.4); }
	.asu-el.asu-t-grid a, .asu-el .asu-t-go .asu-ico, .asu-el .asu-t-opt span { transition: none; }
	.asu-el.asu-t-grid a:hover { transform: none; }
}

/* ===== T2 ===== */
.asu-el[class*="asu-u-"] { box-sizing: border-box; }
.asu-el[class*="asu-u-"] *, .asu-el[class*="asu-u-"] *::before, .asu-el[class*="asu-u-"] *::after { box-sizing: border-box; }
.asu-el .asu-u-title { font-size: 24px; margin: 0 0 16px; }
.asu-el .asu-u-note { font-size: 13px; color: var(--asu-muted); margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.asu-el .asu-u-note--editor { padding: 8px 12px; border: 1px dashed var(--asu-accent); border-radius: 6px; color: var(--asu-accent); }
.asu-el .asu-u-flag { display: inline-block; padding: 2px 9px; border: 1px dashed var(--asu-muted); border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); background: #fff; }
.asu-el .asu-u-empty { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 16px; border: 2px dashed var(--asu-line); border-radius: var(--asu-radius); background: var(--asu-tint); color: var(--asu-muted); font-size: 14px; }
.asu-el .asu-u-empty .asu-ico { width: 20px; height: 20px; margin-top: 2px; }
.asu-el .is-empty { color: var(--asu-muted); }
.asu-el .asu-u-ico { display: inline-grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 10px; background: var(--asu-tint); color: var(--asu-main); }
.asu-el .asu-u-tag { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; background: var(--asu-tint); color: var(--asu-main); font-size: 12px; font-weight: 600; line-height: 1.4; }
.asu-el .asu-u-tag .asu-ico { width: 14px; height: 14px; }
.asu-el .asu-u-tag.is-empty { background: #fff; border: 1px dashed var(--asu-line); color: var(--asu-muted); }
.asu-el .asu-u-go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; font-weight: 600; color: var(--asu-main); }
.asu-el .asu-u-go .asu-ico { width: 16px; height: 16px; transition: transform .2s; }
.asu-el a:hover .asu-u-go .asu-ico { transform: translateX(3px); }
.asu-el[class*="asu-u-"] a:focus-visible, .asu-el[class*="asu-u-"] button:focus-visible, .asu-el[class*="asu-u-"] summary:focus-visible, .asu-el[class*="asu-u-"] input:focus-visible, .asu-el[class*="asu-u-"] [tabindex]:focus-visible { outline: 3px solid var(--asu-accent); outline-offset: 2px; }

/* T21 accreditation */
.asu-u-chips { display: grid; gap: 10px; grid-template-columns: 1fr; }
.asu-u-chip { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 12px 14px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; }
.asu-u-chip > .asu-ico { color: var(--asu-main); }
.asu-u-chip__name { font-weight: 700; color: var(--asu-ink); }
.asu-u-chip__reg { font-size: 13px; color: var(--asu-muted); }
.asu-u-chip__reg.is-empty { border-bottom: 1px dashed var(--asu-muted); }
.asu-el .asu-u-chip__verify { display: inline-flex; align-items: center; min-height: 44px; margin-left: auto; padding: 0 8px; font-weight: 600; color: var(--asu-main); text-decoration: underline; }

/* T22 pillars */
.asu-u-pillars__list { display: grid; gap: 14px; grid-template-columns: 1fr; }
.asu-u-pillars__list li { padding: 20px; border: 1px solid var(--asu-line); border-top: 4px solid var(--asu-green); border-radius: var(--asu-radius); background: #fff; box-shadow: var(--asu-shadow); }
.asu-u-pillars__list h3 { margin: 12px 0 6px; }
.asu-u-pillars__list p { margin: 0; color: var(--asu-muted); }

/* shared facts list (T23, T34) */
.asu-u-facts { display: grid; gap: 10px; grid-template-columns: 1fr; margin: 0 0 12px; }
.asu-u-fact { padding: 14px 16px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; }
.asu-u-fact dt { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); }
.asu-u-fact dt .asu-ico { width: 18px; height: 18px; color: var(--asu-main); }
.asu-u-fact dd { margin: 6px 0 0; font-size: 18px; color: var(--asu-ink); }
.asu-u-fact dd .is-empty { padding: 0 8px; border: 1px dashed var(--asu-muted); border-radius: 4px; font-weight: 400; }

/* T24 stats */
.asu-u-stats__list { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--asu-line); border: 1px solid var(--asu-line); border-radius: var(--asu-radius); overflow: hidden; margin-bottom: 12px; }
.asu-u-stats__list li { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 18px 10px; background: #fff; text-align: center; }
.asu-u-stats__list .asu-ico { color: var(--asu-main); }
.asu-u-stats__list b { font-size: 26px; line-height: 1.2; color: var(--asu-ink); font-variant-numeric: tabular-nums; }
.asu-u-stats__list .is-empty b { color: var(--asu-muted); font-weight: 500; }
.asu-u-stats__list span { font-size: 13px; color: var(--asu-muted); }

/* T25 carousel */
.asu-u-carousel { position: relative; }
.asu-u-ctl { display: flex; gap: 8px; justify-content: flex-end; margin-bottom: 10px; }
.asu-u-ctl[hidden] { display: none; }
.asu-el .asu-u-nav { display: inline-grid; place-items: center; width: 44px; height: 44px; border: 2px solid var(--asu-main); border-radius: 50%; background: #fff; color: var(--asu-main); cursor: pointer; }
.asu-el .asu-u-nav:hover:not(:disabled) { background: var(--asu-main); color: #fff; }
.asu-el .asu-u-nav:disabled { opacity: .4; cursor: default; }
.asu-u-track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 14px; -webkit-overflow-scrolling: touch; }
.asu-u-rev { flex: 0 0 86%; scroll-snap-align: start; display: flex; flex-direction: column; gap: 10px; padding: 20px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; box-shadow: var(--asu-shadow); }
.asu-u-rev blockquote { margin: 0; padding: 0; border: 0; font-size: 16px; color: var(--asu-ink); }
.asu-u-rev blockquote p { margin: 0; }
.asu-u-rev__by { margin: 0; }
.asu-u-rev__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: auto 0 0; }

/* T26 badge */
.asu-el.asu-u-badge { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 20px; padding: 10px 16px; min-height: 44px; border: 1px solid var(--asu-line); border-radius: 999px; background: #fff; color: var(--asu-ink); box-shadow: var(--asu-shadow); }
.asu-el.asu-u-badge > .asu-ico { color: var(--asu-amber, #f5a700); }
.asu-el.asu-u-badge.is-empty { border: 2px dashed var(--asu-muted); box-shadow: none; background: var(--asu-tint); }
.asu-el.asu-u-badge.is-empty > .asu-ico { color: var(--asu-muted); }
.asu-u-badge__txt { display: flex; flex-direction: column; line-height: 1.25; }
.asu-u-badge__txt b { font-size: 16px; }
.asu-u-badge__txt span { font-size: 12px; color: var(--asu-muted); }

/* T27 postcode checker */
.asu-el.asu-u-pc { padding: 22px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: var(--asu-tint); }
.asu-u-pc__row { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.asu-u-pc__label { flex: 1 0 100%; font-weight: 600; color: var(--asu-ink); }
.asu-u-pc__in { flex: 1 1 160px; min-height: 48px; padding: 8px 14px; border: 2px solid var(--asu-line); border-radius: 6px; background: #fff; color: var(--asu-ink); font: inherit; font-size: 16px; text-transform: uppercase; }
.asu-u-pc__in[aria-invalid="true"] { border-color: var(--asu-accent); }
.asu-u-pc__out { min-height: 1.6em; margin: 12px 0; font-weight: 600; }
.asu-el.asu-u-pc.is-yes .asu-u-pc__out { color: var(--asu-main); }
.asu-el.asu-u-pc.is-no .asu-u-pc__out { color: var(--asu-accent); }
.asu-u-pc__call { margin: 0; }

/* T28 area cloud */
.asu-u-cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.asu-u-cloud a, .asu-u-cloud span { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 16px; border: 1px solid var(--asu-line); border-radius: 999px; background: #fff; color: var(--asu-ink); font-weight: 600; font-size: 14px; }
.asu-u-cloud .asu-ico { width: 16px; height: 16px; color: var(--asu-main); }
.asu-el .asu-u-cloud a:hover { background: var(--asu-main); border-color: var(--asu-main); color: #fff; }
.asu-el .asu-u-cloud a:hover .asu-ico { color: #fff; }

/* T29 housing stock */
.asu-u-stocks { display: grid; gap: 14px; grid-template-columns: 1fr; }
.asu-u-stock { padding: 20px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; }
.asu-u-stock h3 { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.asu-u-stock h3 .asu-ico { color: var(--asu-main); }
.asu-u-stock__era { font-size: 13px; color: var(--asu-muted); margin-bottom: 10px; }
.asu-u-stock__h { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--asu-ink); }
.asu-u-stock ul li { display: flex; gap: 8px; margin-bottom: 6px; font-size: 14px; }
.asu-u-stock ul .asu-ico { width: 18px; height: 18px; margin-top: 3px; color: var(--asu-green); }

/* T30 job gallery */
.asu-u-jobs__list { display: grid; gap: 16px; grid-template-columns: 1fr; }
.asu-u-job { border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; overflow: hidden; box-shadow: var(--asu-shadow); }
.asu-u-job__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--asu-line); }
.asu-u-job__pair figure { position: relative; margin: 0; background: #fff; }
.asu-u-job__pair figcaption { position: absolute; left: 8px; top: 8px; padding: 2px 9px; border-radius: 999px; background: var(--asu-ink); color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.asu-u-job__pair .asu-u-job__img { width: 100%; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; border-width: 0; }
.asu-u-job__body { padding: 14px 16px 16px; }
.asu-u-job__body h3 { margin-bottom: 8px; }
.asu-u-job__meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }

/* T31 contact card */
.asu-el.asu-u-contact { display: block; }
.asu-u-contact__map .asu-u-map__img, .asu-u-contact__map .asu-ph { width: 100%; min-height: 220px; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--asu-radius); }
.asu-u-map__link { display: block; border-radius: var(--asu-radius); }
.asu-u-contact__body { margin-top: 16px; }
.asu-u-contact__list li { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; }
.asu-u-contact__list .asu-ico { width: 20px; height: 20px; margin-top: 2px; color: var(--asu-main); }
.asu-u-contact__list a { display: inline-flex; align-items: center; min-height: 44px; margin: -10px 0; font-weight: 700; color: var(--asu-main); }
.asu-u-contact__list .is-empty { padding: 0 8px; border: 1px dashed var(--asu-muted); border-radius: 4px; }
.asu-el .asu-u-contact__h { margin: 14px 0 6px; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.asu-u-hours div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--asu-line); }
.asu-u-hours dt { font-weight: 600; color: var(--asu-ink); }
.asu-u-hours dd { margin: 0; }

/* T32 landlord */
.asu-u-ll { display: grid; gap: 12px; }
.asu-u-ll li { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; padding: 16px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; }
.asu-u-ll__body { flex: 1 1 220px; }
.asu-u-ll__body h3 { font-size: 16px; margin-bottom: 4px; }
.asu-u-ll__body p { margin: 0 0 4px; font-size: 14px; color: var(--asu-muted); }
.asu-u-ll__due { display: flex; align-items: center; gap: 6px; color: var(--asu-ink); }
.asu-u-ll__due .asu-ico { width: 16px; height: 16px; color: var(--asu-accent); }
.asu-u-ll__due b { padding: 0 6px; border-bottom: 1px dashed var(--asu-muted); font-weight: 600; }

/* T33 safety advice */
.asu-el.asu-u-safety { padding: 20px; border: 2px solid var(--asu-accent); border-left-width: 8px; border-radius: var(--asu-radius); background: #fff8f3; }
.asu-u-safety__head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 8px; }
.asu-u-safety__head > .asu-ico { width: 32px; height: 32px; color: var(--asu-accent); }
.asu-u-safety__head h3 { margin: 0; font-size: 20px; }
.asu-el ol.asu-u-steps { list-style: decimal; padding-left: 22px; margin: 0 0 12px; }
.asu-el .asu-u-steps li { list-style: decimal; margin-bottom: 6px; padding-left: 4px; }
.asu-el .asu-u-steps li::marker { content: normal; font-weight: 700; color: var(--asu-accent); }
.asu-u-safety__emg { margin: 0 0 14px; padding: 10px 14px; background: #fff; border: 1px dashed var(--asu-accent); border-radius: 6px; }
.asu-u-safety__btns { display: flex; flex-wrap: wrap; gap: 10px; }

/* T34 account panel */
.asu-u-acct__grid { display: grid; gap: 18px; grid-template-columns: 1fr; margin-bottom: 12px; }
.asu-u-acct__list { display: grid; gap: 14px; }
.asu-u-acct__list li { display: flex; gap: 14px; }
.asu-u-acct__list h3 { font-size: 16px; margin-bottom: 4px; }
.asu-u-acct__list p { margin: 0; color: var(--asu-muted); font-size: 14px; }
.asu-u-acct__side { padding: 18px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: var(--asu-tint); }

/* T35 FAQ */
.asu-u-tabs { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 14px; padding-bottom: 4px; }
.asu-u-tabs[hidden] { display: none; }
.asu-el .asu-u-tab { flex: none; min-height: 44px; padding: 8px 18px; border: 2px solid var(--asu-line); border-radius: 999px; background: #fff; color: var(--asu-ink); font: inherit; font-weight: 600; cursor: pointer; }
.asu-el .asu-u-tab.is-on { background: var(--asu-main); border-color: var(--asu-main); color: #fff; }
.asu-u-faqgrp[hidden] { display: none; }
.asu-el .asu-u-faqgrp__h { font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--asu-muted); margin: 16px 0 8px; }
.asu-el.asu-u-faq.is-js .asu-u-faqgrp__h { display: none; }
.asu-u-q { margin-bottom: 8px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; }
.asu-u-q summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 12px 16px; font-weight: 600; color: var(--asu-ink); cursor: pointer; list-style: none; }
.asu-u-q summary::-webkit-details-marker { display: none; }
.asu-u-q summary .asu-ico { width: 20px; height: 20px; color: var(--asu-main); transition: transform .2s; }
.asu-u-q[open] summary .asu-ico { transform: rotate(45deg); }
.asu-u-q__a { padding: 0 16px 14px; color: var(--asu-text); }
.asu-u-q__a p { margin: 0; }

/* T36 customer types */
.asu-u-types__list { display: grid; gap: 12px; grid-template-columns: 1fr; }
.asu-u-types__list a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 18px; border: 2px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; color: inherit; transition: border-color .2s, transform .2s; }
.asu-u-types__list a:hover { border-color: var(--asu-main); transform: translateY(-2px); }
.asu-u-types__list h3 { margin: 6px 0 0; }
.asu-u-types__list p { margin: 0 0 6px; font-size: 14px; color: var(--asu-muted); }

/* T37 trade quote */
.asu-el.asu-u-tq { display: grid; grid-template-columns: 1fr; margin-left: 0; margin-right: 0; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; overflow: hidden; box-shadow: var(--asu-shadow); }
.asu-u-tq__photo .asu-u-tq__img, .asu-u-tq__photo .asu-ph { width: 100%; min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.asu-u-tq__body { padding: 22px; }
.asu-u-tq__mark { width: 32px; height: 32px; color: var(--asu-green); margin-bottom: 8px; }
.asu-u-tq blockquote { margin: 0 0 14px; padding: 0; border: 0; font-size: 18px; line-height: 1.5; color: var(--asu-ink); }
.asu-u-tq blockquote p { margin: 0; }
.asu-u-tq figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.asu-u-tq figcaption span:not(.asu-u-flag) { color: var(--asu-muted); }

/* T38 aftercare */
.asu-u-after__list { display: grid; gap: 18px 12px; grid-template-columns: 1fr; padding-top: 8px; }
.asu-u-after__list li { position: relative; display: flex; gap: 14px; align-items: flex-start; padding: 16px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; }
.asu-u-after__list h3 { font-size: 16px; margin-bottom: 4px; }
.asu-u-after__list p { margin: 0; font-size: 14px; color: var(--asu-muted); }
.asu-u-n { position: absolute; top: -10px; left: 14px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--asu-main); color: #fff; font-size: 12px; font-weight: 700; }

/* T39 seasonal */
.asu-u-seasons__list { display: grid; gap: 12px; grid-template-columns: 1fr; }
.asu-u-season a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 18px; border: 1px solid var(--asu-line); border-top: 5px solid var(--asu-s, var(--asu-main)); border-radius: var(--asu-radius); background: #fff; color: inherit; transition: transform .2s, box-shadow .2s; }
.asu-u-season a:hover { transform: translateY(-2px); box-shadow: var(--asu-shadow); }
.asu-u-season--winter { --asu-s: #0e7490; }
.asu-u-season--summer { --asu-s: #f5a700; }
.asu-u-season--autumn { --asu-s: #d9480f; }
.asu-u-season--spring { --asu-s: #1e9e5e; }
.asu-u-season__tag { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--asu-ink); }
.asu-u-season__tag .asu-ico { width: 18px; height: 18px; }
.asu-u-season h3 { margin: 0; }
.asu-u-season p { margin: 0 0 6px; font-size: 14px; color: var(--asu-muted); }

/* T40 related help */
.asu-u-related__list { display: grid; gap: 12px; grid-template-columns: 1fr; }
.asu-u-related__list li { display: flex; flex-direction: column; gap: 10px; padding: 18px; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); background: #fff; }
.asu-u-related__list li > .asu-u-tag { align-self: flex-start; }
.asu-u-related__list h3 { margin: 0; font-size: 17px; }
.asu-u-related__list h3 a { color: var(--asu-ink); }
.asu-u-related__list h3 a:hover { color: var(--asu-main); text-decoration: underline; }
.asu-el .asu-u-svc { display: flex; align-items: center; gap: 10px; min-height: 44px; margin-top: auto; padding: 8px 12px; border-radius: 8px; background: var(--asu-tint); color: var(--asu-main); }
.asu-u-svc .asu-ico { width: 18px; height: 18px; }
.asu-u-svc span { flex: 1; font-size: 14px; }
.asu-el .asu-u-svc:hover { background: var(--asu-main); color: #fff; }

@media (min-width: 600px) {
  .asu-u-chips { grid-template-columns: repeat(2, 1fr); }
  .asu-u-types__list, .asu-u-seasons__list, .asu-u-related__list, .asu-u-jobs__list { grid-template-columns: repeat(2, 1fr); }
  .asu-u-facts { grid-template-columns: repeat(2, 1fr); }
  .asu-u-stats__list { grid-template-columns: repeat(4, 1fr); }
  .asu-u-rev { flex-basis: 46%; }
  .asu-u-after__list { grid-template-columns: repeat(3, 1fr); }
  .asu-u-after__list li { flex-direction: column; padding-top: 22px; }
  .asu-el.asu-u-tq { grid-template-columns: 240px 1fr; }
  .asu-u-tq__photo .asu-u-tq__img, .asu-u-tq__photo .asu-ph { height: 100%; aspect-ratio: auto; }
}

@media (min-width: 960px) {
  .asu-u-chips, .asu-u-pillars__list, .asu-u-stocks { grid-template-columns: repeat(3, 1fr); }
  .asu-u-types__list, .asu-u-seasons__list { grid-template-columns: repeat(4, 1fr); }
  .asu-u-related__list, .asu-u-jobs__list { grid-template-columns: repeat(3, 1fr); }
  .asu-u-rev { flex-basis: 31%; }
  .asu-u-acct__grid { grid-template-columns: 1.6fr 1fr; }
  .asu-el.asu-u-contact { display: grid; grid-template-columns: 1.1fr 1fr; gap: 0 24px; align-items: start; }
  .asu-el.asu-u-contact > .asu-u-title, .asu-el.asu-u-contact > .asu-eyebrow { grid-column: 1 / -1; }
  .asu-u-contact__body { margin-top: 0; }
}
@media (min-width: 600px) and (max-width: 959px) {
  .asu-u-pillars__list { grid-template-columns: repeat(3, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .asu-el[class*="asu-u-"] *, .asu-el[class*="asu-u-"] *::before, .asu-el[class*="asu-u-"] *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .asu-u-types__list a:hover, .asu-u-season a:hover { transform: none; }
}

/* ===== T4 ===== */
/* Part 3 / set T4 (T46-T50). Class prefix asu-x-. Mobile first (checked at 360px). */
.asu-el .asu-x-title { font-size: 24px; line-height: 1.25; margin: 0 0 20px; color: var(--asu-ink); }
.asu-el .asu-x-flag { display: inline-block; padding: 2px 9px; border: 1px dashed var(--asu-muted); border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); background: #fff; }
.asu-el .asu-x-note { font-size: 13px; color: var(--asu-muted); margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.asu-el .asu-x-note--editor { padding: 8px 12px; border: 1px dashed var(--asu-accent); border-radius: 6px; color: var(--asu-accent); }
.asu-el[class*="asu-x-"] a:focus-visible, .asu-el[class*="asu-x-"] button:focus-visible { outline: 3px solid var(--asu-accent); outline-offset: 2px; }
.asu-el.asu-x-pc--green a:focus-visible, .asu-el.asu-x-pc--ink a:focus-visible { outline-color: #f5b800; }
.asu-el .asu-x-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 600; font-size: 15px; color: var(--asu-main); text-decoration: none; }
.asu-el .asu-x-link:hover { text-decoration: underline; }
.asu-el .asu-x-link__ico { width: 18px; height: 18px; }

/* T46 big-numeral steps */
.asu-el .asu-x-steps__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 24px; }
.asu-el .asu-x-step { position: relative; margin: 0; padding: 0; }
.asu-el .asu-x-step__n { display: block; font-size: 64px; font-weight: 700; line-height: 1; letter-spacing: -.02em; color: #d5ded9; margin: 0 0 6px; }
.asu-el .asu-x-step__t { font-size: 18px; line-height: 1.3; margin: 0 0 6px; color: var(--asu-ink); }
.asu-el .asu-x-step__p { font-size: 15px; line-height: 1.55; margin: 0; color: var(--asu-text); }
.asu-el .asu-x-steps__cta { margin: 28px 0 0; }
.asu-el .asu-x-steps__cta .asu-btn { width: 100%; }

/* T47 service pills */
.asu-el .asu-x-pills__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
.asu-el .asu-x-pills__list li { margin: 0; padding: 0; }
.asu-el .asu-x-pill { position: relative; display: flex; align-items: center; gap: 10px; height: 100%; min-height: 56px; padding: 10px 12px; box-sizing: border-box; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); color: var(--asu-ink); text-decoration: none; font-size: 14px; font-weight: 600; line-height: 1.25; transition: border-color .2s, box-shadow .2s; }
.asu-el .asu-x-pill:hover { border-color: var(--asu-brand); box-shadow: var(--asu-shadow); }
.asu-el .asu-x-pill__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--asu-tint); color: var(--asu-main); }
.asu-el .asu-x-pill__ico .asu-ico { width: 20px; height: 20px; }
.asu-el .asu-x-pill__lbl { min-width: 0; overflow-wrap: break-word; }
.asu-el .asu-x-pill__badge { position: absolute; top: -8px; right: 8px; padding: 2px 7px; border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .06em; line-height: 1.3; text-transform: uppercase; color: #fff; background: var(--asu-accent); }
.asu-el .asu-x-pill__badge--brand { background: var(--asu-main); }
.asu-el .asu-x-pill__badge--ink { background: var(--asu-ink); }
.asu-el .asu-x-pills__all { margin: 14px 0 0; text-align: right; }

/* T48 two-column FAQ */
.asu-el .asu-x-faq__list { display: grid; grid-template-columns: 1fr; gap: 0 40px; }
.asu-el .asu-x-faq__item { padding: 16px 0; border-top: 1px solid var(--asu-line); }
.asu-el .asu-x-faq__q { font-size: 17px; line-height: 1.35; margin: 0 0 6px; color: var(--asu-ink); }
.asu-el .asu-x-faq__a { font-size: 15px; line-height: 1.55; margin: 0; color: var(--asu-text); }
.asu-el.asu-x-faq.is-js.is-collapsed .asu-x-faq__item.is-extra { display: none; }
.asu-el .asu-x-faq__more { margin: 12px 0 0; }
.asu-el .asu-x-faq__toggle[hidden] { display: none; }
.asu-el .asu-x-faq__toggle { width: 100%; font-family: inherit; }
.asu-el .asu-x-faq__help { margin: 16px 0 0; font-size: 15px; color: var(--asu-muted); }
.asu-el .asu-x-faq__help a { display: inline-block; padding: 10px 0; color: var(--asu-main); font-weight: 600; }

/* T49 review cards */
.asu-el .asu-x-revs__grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.asu-el .asu-x-rev { display: flex; flex-direction: column; gap: 10px; padding: 20px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); }
.asu-el .asu-x-rev__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.asu-el .asu-x-rev__av { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; overflow: hidden; border-radius: 50%; background: var(--asu-tint); color: var(--asu-main); font-size: 16px; font-weight: 700; }
.asu-el .asu-x-rev__av img, .asu-el .asu-x-rev__av .asu-ph { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.asu-el .asu-x-stars { display: inline-flex; gap: 3px; }
.asu-el .asu-x-star { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; background: #cfd9d3; color: #fff; }
.asu-el .asu-x-star.is-on { background: var(--asu-brand); }
.asu-el .asu-x-star .asu-ico { width: 14px; height: 14px; fill: #fff; stroke: #fff; }
.asu-el .asu-x-rev__h { font-size: 17px; line-height: 1.35; margin: 0; color: var(--asu-ink); }
.asu-el .asu-x-rev__body { margin: 0; font-size: 15px; line-height: 1.55; color: var(--asu-text); overflow-wrap: break-word; }
.asu-el .asu-x-rev__more { display: none; align-self: flex-start; align-items: center; min-height: 44px; padding: 0 4px; margin: -6px 0 -6px -4px; background: none; border: 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--asu-main); text-decoration: underline; cursor: pointer; }
.asu-el .asu-x-rev__by { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: auto 0 0; font-size: 14px; color: var(--asu-muted); }
.asu-el .asu-x-rev__by strong { color: var(--asu-ink); }
.asu-el .asu-x-rev__by span:not(.asu-x-flag)::before { content: "\00b7"; margin-right: 8px; }
@media (scripting: enabled) {
  .asu-el .asu-x-rev__body { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; min-height: 6.2em; }
  .asu-el .asu-x-rev.is-open .asu-x-rev__body { display: block; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; min-height: 0; }
  .asu-el .asu-x-rev__more { display: inline-flex; }
}

/* T50 price-in-the-button CTA */
.asu-el.asu-x-pc { display: flex; flex-direction: column; gap: 16px; padding: 28px 20px; border-radius: var(--asu-radius); }
.asu-el.asu-x-pc--green { background: var(--asu-main); color: #fff; }
.asu-el.asu-x-pc--ink { background: var(--asu-ink); color: #fff; }
.asu-el .asu-x-pc__title { font-size: 24px; line-height: 1.25; margin: 0; color: inherit; }
.asu-el .asu-x-pc__sub { margin: 6px 0 0; font-size: 15px; line-height: 1.5; color: inherit; opacity: .92; }
.asu-el .asu-x-pc__cta { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
.asu-el .asu-x-pc__btn { text-align: center; }
.asu-el .asu-x-pc__price { font-weight: 800; white-space: nowrap; }
.asu-el .asu-x-tbc { align-self: flex-start; display: inline-block; padding: 2px 9px; border: 1px dashed currentColor; border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: inherit; }
.asu-el.asu-x-pc--inline { gap: 12px; padding: 16px; background: var(--asu-tint); border: 1px solid var(--asu-line); color: var(--asu-ink); }
.asu-el.asu-x-pc--inline .asu-x-pc__title { font-size: 18px; }
.asu-el.asu-x-pc--inline .asu-x-pc__sub { color: var(--asu-muted); opacity: 1; font-size: 14px; }
.asu-el.asu-x-pc--inline .asu-x-tbc { color: var(--asu-muted); }

@media (min-width: 600px) {
  .asu-el .asu-x-steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; }
  .asu-el .asu-x-steps__cta .asu-btn { width: auto; }
  .asu-el .asu-x-pills__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .asu-el .asu-x-faq__toggle { width: auto; }
  .asu-el.asu-x-pc--inline { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; }
  .asu-el.asu-x-pc--inline .asu-x-pc__cta { flex-direction: row; flex-wrap: wrap; align-items: center; }
}
@media (min-width: 700px) {
  .asu-el .asu-x-revs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .asu-el .asu-x-faq__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .asu-el.asu-x-pc--band { flex-direction: row; align-items: center; justify-content: space-between; padding: 32px 36px; }
  .asu-el.asu-x-pc--band .asu-x-pc__text { flex: 1 1 280px; }
  .asu-el.asu-x-pc--band .asu-x-pc__cta { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
}
@media (min-width: 900px) {
  .asu-el.asu-x-steps--3 .asu-x-steps__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .asu-el.asu-x-steps--4 .asu-x-steps__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .asu-el.asu-x-steps--5 .asu-x-steps__list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .asu-el .asu-x-steps__list { column-gap: 40px; }
  .asu-el .asu-x-step__n { font-size: 80px; }
  .asu-el .asu-x-step:not(:last-child)::after { content: ""; position: absolute; top: 38px; right: -27px; width: 14px; height: 14px; border-top: 3px solid #c3d1c9; border-right: 3px solid #c3d1c9; transform: rotate(45deg); }
}
@media (min-width: 960px) {
  .asu-el.asu-x-pills--4 .asu-x-pills__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1000px) {
  .asu-el .asu-x-revs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .asu-el[class*="asu-x-"] *, .asu-el[class*="asu-x-"] *::before, .asu-el[class*="asu-x-"] *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ===== T3 ===== */
.asu-el[class*="asu-w-"] { box-sizing: border-box; }
.asu-el[class*="asu-w-"] *, .asu-el[class*="asu-w-"] *::before, .asu-el[class*="asu-w-"] *::after { box-sizing: border-box; }
.asu-el .asu-w-title { font-size: 24px; margin: 0 0 16px; }
.asu-el .asu-w-flag { display: inline-block; padding: 2px 9px; border: 1px dashed var(--asu-muted); border-radius: 999px; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); background: #fff; white-space: nowrap; }
.asu-el .asu-w-note { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 0 0 14px; font-size: 13px; color: var(--asu-muted); }
.asu-el .asu-w-empty { display: flex; gap: 10px; align-items: flex-start; margin: 0; padding: 16px; border: 2px dashed var(--asu-line); border-radius: var(--asu-radius); background: var(--asu-tint); color: var(--asu-muted); font-size: 14px; }
.asu-el .asu-w-empty .asu-ico { width: 20px; height: 20px; flex: none; margin-top: 2px; }
.asu-el[class*="asu-w-"] a:focus-visible, .asu-el[class*="asu-w-"] button:focus-visible, .asu-el[class*="asu-w-"] [tabindex]:focus-visible { outline: 3px solid var(--asu-accent); outline-offset: 2px; }

/* T41 audience tabs + service tiles */
.asu-el .asu-w-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.asu-el .asu-w-tabs[hidden] { display: none; }
.asu-el .asu-w-tab { min-height: 44px; padding: 8px 16px; border: 2px solid var(--asu-line); border-radius: 999px; background: #fff; font: inherit; font-size: 15px; font-weight: 600; color: var(--asu-ink); cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.asu-el .asu-w-tab:hover { border-color: var(--asu-main); color: var(--asu-main); }
.asu-el .asu-w-tab[aria-selected="true"] { background: var(--asu-main); border-color: var(--asu-main); color: #fff; }
.asu-el .asu-w-pan + .asu-w-pan { margin-top: 24px; }
.asu-el .asu-w-pan__h { margin: 0 0 12px; font-size: 18px; }
.asu-el.asu-w-aud.is-js .asu-w-pan__h { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.asu-el.asu-w-aud.is-js .asu-w-pan + .asu-w-pan { margin-top: 0; }
.asu-el.asu-w-aud.is-js .asu-w-pan[hidden] { display: none; }
.asu-el .asu-w-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.asu-el .asu-w-tiles li { margin: 0; display: flex; }
.asu-el .asu-w-tiles a { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; width: 100%; min-height: 44px; padding: 14px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); color: var(--asu-ink); font-size: 14px; font-weight: 600; line-height: 1.3; text-decoration: none; transition: border-color .2s, transform .2s; }
.asu-el .asu-w-tiles a:hover { border-color: var(--asu-main); transform: translateY(-2px); color: var(--asu-main); }
.asu-el .asu-w-tile__ico { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--asu-tint); color: var(--asu-main); }
.asu-el .asu-w-tile__ico .asu-ico { width: 22px; height: 22px; }
.asu-el .asu-w-tile__lab { overflow-wrap: anywhere; }

/* T42 price table plus */
.asu-el .asu-w-pt__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; margin: 0 0 12px; padding: 12px 16px; background: var(--asu-main); color: #fff; border-radius: var(--asu-radius); }
.asu-el .asu-w-pt__sub { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; font-weight: 600; color: #fff; }
.asu-el .asu-w-pt__sub .asu-ico { width: 20px; height: 20px; flex: none; }
.asu-el .asu-w-pt__bar .asu-w-flag { background: transparent; border-color: rgba(255, 255, 255, .8); color: #fff; }
.asu-el.asu-w-pt table, .asu-el.asu-w-pt tbody { display: block; width: 100%; margin: 0; border-collapse: collapse; font-size: 14px; }
.asu-el.asu-w-pt thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.asu-el.asu-w-pt tr { display: block; margin: 0 0 12px; padding: 14px 16px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); }
.asu-el.asu-w-pt th, .asu-el.asu-w-pt td { display: block; padding: 0; border: 0; background: transparent; text-align: left; }
.asu-el.asu-w-pt tbody th { margin: 0 0 8px; font-size: 16px; font-weight: 600; color: var(--asu-ink); }
.asu-el.asu-w-pt td { padding: 4px 0; color: var(--asu-text); }
.asu-el.asu-w-pt td::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--asu-muted); }
.asu-el .asu-w-q { font-weight: 600; color: var(--asu-ink); }
.asu-el .asu-w-none { color: var(--asu-muted); }
.asu-el .asu-w-pt__foot { display: flex; align-items: flex-start; gap: 8px; margin: 4px 0 0; font-size: 13px; color: var(--asu-muted); }
.asu-el .asu-w-pt__foot .asu-ico { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--asu-main); }

/* T43 hero with tick list, callback and blob photo */
.asu-el.asu-w-hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; margin: 0 0 32px; padding: 22px 16px; background: var(--asu-tint); border: 1px solid var(--asu-line); border-radius: var(--asu-radius); overflow: hidden; }
.asu-el .asu-w-crumb ol { display: flex; flex-wrap: wrap; gap: 2px 0; margin: 0 0 10px; padding: 0; list-style: none; font-size: 13px; color: var(--asu-muted); }
.asu-el .asu-w-crumb li { margin: 0; }
.asu-el .asu-w-crumb li + li::before { content: "/"; margin: 0 8px; color: var(--asu-muted); }
.asu-el .asu-w-crumb a { display: inline-block; padding: 10px 0; color: var(--asu-main); text-decoration: underline; }
.asu-el .asu-w-hero__eyebrow { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--asu-accent); }
.asu-el.asu-w-hero h1 { margin: 0 0 10px; font-size: 28px; line-height: 1.15; }
.asu-el .asu-w-hero__lede { margin: 0 0 16px; font-size: 16px; color: var(--asu-text); }
.asu-el .asu-w-checks { display: grid; gap: 10px; margin: 0 0 16px; padding: 0; list-style: none; }
.asu-el .asu-w-checks li { display: flex; align-items: flex-start; gap: 10px; margin: 0; font-size: 15px; }
.asu-el .asu-w-checks .asu-ico { flex: none; width: 22px; height: 22px; margin-top: 1px; padding: 3px; border-radius: 50%; background: var(--asu-main); color: #fff; stroke-width: 2.4; }
.asu-el .asu-w-checks b { color: var(--asu-ink); }
.asu-el .asu-w-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin: 0 0 20px; }
.asu-el .asu-w-hero__cta .asu-btn { min-height: 48px; }
.asu-el .asu-w-hero__tel { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--asu-ink); }
.asu-el .asu-w-hero__tel .asu-ico { width: 20px; height: 20px; color: var(--asu-main); }
.asu-el .asu-w-hero__tel b { text-decoration: underline; text-underline-offset: 3px; }
.asu-el .asu-w-cb { padding: 16px; background: #fff; border: 1px solid var(--asu-line); border-radius: var(--asu-radius); box-shadow: var(--asu-shadow); }
.asu-el .asu-w-cb h2 { margin: 0 0 10px; font-size: 18px; }
.asu-el .asu-w-demo { margin: 0; font-size: 11px; color: var(--asu-muted); }
.asu-el .asu-w-hero__photo { position: relative; width: 100%; max-width: 440px; margin: 0 auto; padding: 0 16px 16px 0; }
.asu-el .asu-w-hero__photo::before { content: ""; position: absolute; top: 16px; right: 0; bottom: 0; left: 16px; background: var(--asu-brand); opacity: .2; border-radius: 44% 56% 40% 60% / 58% 42% 58% 42%; transform: rotate(-5deg); }
.asu-el .asu-w-blob { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--asu-line); border-radius: 58% 42% 55% 45% / 50% 58% 42% 50%; }
.asu-el .asu-w-blob img, .asu-el .asu-w-blob .asu-ph { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; border: 0; border-radius: 0; }

/* T44 do this first */
.asu-el.asu-w-dtf { margin: 0 0 32px; background: var(--asu-ink); color: #fff; border-radius: var(--asu-radius); overflow: hidden; }
.asu-el.asu-w-dtf.is-full { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); border-radius: 0; }
.asu-el .asu-w-dtf__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 1140px; margin: 0 auto; padding: 28px 18px 0; }
.asu-el.asu-w-dtf h2 { margin: 0 0 8px; color: #fff; font-size: 26px; }
.asu-el .asu-w-dtf__intro { margin: 0 0 18px; color: rgba(255, 255, 255, .88); }
.asu-el .asu-w-steps { display: grid; gap: 12px; margin: 0 0 18px; padding: 0; list-style: none; counter-reset: asu-w-step; }
.asu-el .asu-w-steps li { position: relative; margin: 0; padding: 2px 0 2px 46px; counter-increment: asu-w-step; color: rgba(255, 255, 255, .92); font-size: 15px; }
.asu-el .asu-w-steps li::before { content: counter(asu-w-step); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--asu-accent); color: #fff; font-weight: 700; font-size: 16px; }
.asu-el .asu-w-steps b { color: #fff; }
.asu-el .asu-w-tel { display: inline-block; min-height: 24px; color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.asu-el.asu-w-dtf .asu-w-note { color: rgba(255, 255, 255, .8); }
.asu-el.asu-w-dtf .asu-w-flag { background: transparent; border-color: rgba(255, 255, 255, .7); color: #fff; }
.asu-el .asu-w-dtf__close { margin: 0 0 16px; font-weight: 600; color: #fff; }
.asu-el .asu-w-dtf__btns { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; }
.asu-el .asu-w-dtf__btns .asu-btn { min-height: 48px; }
.asu-el .asu-w-dtf__fig { align-self: end; margin: 0; text-align: center; }
.asu-el .asu-w-dtf__fig img { display: block; width: auto; max-width: 70%; max-height: 340px; margin: 0 auto; object-fit: contain; border: 0; border-radius: 0; background: transparent; }
.asu-el .asu-w-dtf__fig .asu-ph { max-width: 70%; min-height: 160px; margin: 0 auto 24px; background: rgba(255, 255, 255, .06); border: 2px dashed rgba(255, 255, 255, .45); color: rgba(255, 255, 255, .85); }
.asu-el.asu-w-dtf a:focus-visible, .asu-el.asu-w-dtf button:focus-visible { outline: 3px solid #f5b800; outline-offset: 2px; }

/* T45 coverage map */
.asu-el.asu-w-cov { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: center; }
.asu-el .asu-w-cov__intro { margin: 0 0 16px; color: var(--asu-muted); }
.asu-el .asu-w-areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; margin: 0 0 18px; padding: 0; list-style: none; }
.asu-el .asu-w-areas li { margin: 0; border-bottom: 1px solid var(--asu-line); }
.asu-el .asu-w-areas a { display: flex; align-items: center; gap: 8px; min-height: 44px; color: var(--asu-ink); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.asu-el .asu-w-areas a:hover { color: var(--asu-main); }
.asu-el .asu-w-areas .asu-ico { flex: none; width: 18px; height: 18px; color: var(--asu-main); }
.asu-el .asu-w-cov__map { margin: 0; text-align: center; }
.asu-el .asu-w-svg { display: block; width: 100%; max-width: 460px; height: auto; margin: 0 auto; overflow: visible; }
.asu-el .asu-w-outline { fill: var(--asu-tint); stroke: var(--asu-line); stroke-width: 2; stroke-linejoin: round; }
.asu-el .asu-w-zone polygon { fill: #fff; fill-opacity: .6; stroke: var(--asu-line); stroke-width: 2; stroke-linejoin: round; transition: fill-opacity .2s, stroke .2s; }
.asu-el .asu-w-zone.is-on polygon { fill: var(--asu-brand); fill-opacity: .24; stroke: var(--asu-main); }
.asu-el .asu-w-zone text { fill: var(--asu-ink); font: 700 18px/1 "DM Sans", system-ui, sans-serif; pointer-events: none; }
.asu-el .asu-w-zone.is-off text { fill: var(--asu-muted); font-weight: 500; }
.asu-el a.asu-w-zone { cursor: pointer; }
.asu-el a.asu-w-zone:hover polygon { fill-opacity: .5; stroke-width: 3; }
.asu-el a.asu-w-zone:focus-visible { outline: none; }
.asu-el a.asu-w-zone:focus-visible polygon { stroke: var(--asu-accent); stroke-width: 4; fill-opacity: .5; }
.asu-el .asu-w-thames { stroke: var(--asu-teal); stroke-width: 6; stroke-linecap: round; opacity: .75; pointer-events: none; }
.asu-el .asu-w-river { fill: var(--asu-teal); font: 600 11px/1 "DM Sans", system-ui, sans-serif; pointer-events: none; }
.asu-el .asu-w-legend { display: flex; justify-content: center; gap: 16px; margin: 10px 0 0; padding: 0; list-style: none; font-size: 12px; color: var(--asu-muted); }
.asu-el .asu-w-legend li { display: flex; align-items: center; gap: 6px; margin: 0; }
.asu-el .asu-w-legend i { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--asu-line); border-radius: 3px; background: #fff; }
.asu-el .asu-w-legend i.is-on { background: rgba(9, 147, 76, .24); border-color: var(--asu-main); }
.asu-el .asu-w-cov__map figcaption { margin: 4px 0 0; font-size: 12px; color: var(--asu-muted); font-style: italic; }

/* T3 breakpoints */
@media (min-width: 600px) {
	.asu-el .asu-w-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.asu-el .asu-w-pt__bar { margin-bottom: 0; border-radius: var(--asu-radius) var(--asu-radius) 0 0; }
	.asu-el .asu-w-form .asu-t-form__two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asu-el .asu-w-dtf__in { padding: 36px 32px 0; }
}
@media (min-width: 768px) {
	.asu-el.asu-w-pt thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; display: table-header-group; }
	.asu-el.asu-w-pt table { display: table; border: 1px solid var(--asu-line); border-top: 0; border-radius: 0 0 var(--asu-radius) var(--asu-radius); overflow: hidden; background: #fff; }
	.asu-el.asu-w-pt tbody { display: table-row-group; }
	.asu-el.asu-w-pt tr { display: table-row; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
	.asu-el.asu-w-pt th, .asu-el.asu-w-pt td { display: table-cell; padding: 14px 18px; border-bottom: 1px solid var(--asu-line); vertical-align: middle; }
	.asu-el.asu-w-pt thead th { background: var(--asu-tint); color: var(--asu-ink); font-size: 13px; font-weight: 600; }
	.asu-el.asu-w-pt tbody th { margin: 0; font-size: 14px; }
	.asu-el.asu-w-pt tbody tr:last-child th, .asu-el.asu-w-pt tbody tr:last-child td { border-bottom: 0; }
	.asu-el.asu-w-pt td::before { display: none; }
	.asu-el.asu-w-hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 36px; align-items: center; padding: 40px 36px; }
	.asu-el.asu-w-hero h1 { font-size: 38px; }
	.asu-el .asu-w-dtf__in { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 36px; align-items: stretch; }
	.asu-el .asu-w-dtf__fig { order: -1; display: flex; align-items: flex-end; justify-content: center; }
	.asu-el .asu-w-dtf__fig img { max-width: 100%; max-height: 460px; }
	.asu-el .asu-w-dtf__fig .asu-ph { max-width: 100%; width: 100%; min-height: 280px; }
	.asu-el.asu-w-cov { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
}
@media (min-width: 900px) {
	.asu-el .asu-w-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* T3 motion */
@media (prefers-reduced-motion: reduce) {
	.asu-el[class*="asu-w-"] *, .asu-el[class*="asu-w-"] *::before, .asu-el[class*="asu-w-"] *::after { transition: none !important; animation: none !important; }
	.asu-el .asu-w-tiles a:hover { transform: none; }
}

/* ===== THEME FIXES (v0.2.1) ===== */
/* The theme has an inline `.simple_page_template p > a { font-family: br_candormedium }` that turns every link sitting directly in a paragraph serif. */
.asu-el p > a, .simple_page_template .asu-el p > a, .simple_page_template .asu-doc p > a { font-family: inherit; }
/* T43: the placeholder inside the blob needs its own contrast against the tinted hero */
.asu-el .asu-w-blob .asu-ph { background: #cfe6d8; border: 2px dashed var(--asu-main); color: var(--asu-ink); font-weight: 600; }
