thead /* ============================================================
   Alsaree3 — Inner public pages styles (Batch F3)
   Shared by Quote, Service, Contact, Coverage, Blog, About.
   Built on tokens.css + public-shell.css.
   ============================================================ */

/* ---------- Page header (replaces breadcrumb_bg) ---------- */
.as-pageheader {
    position: relative;
    isolation: isolate;
    background: linear-gradient(180deg, var(--as-brand-50) 0%, #fff 100%);
    border-bottom: 1px solid var(--as-border);
    padding-block: var(--as-space-12) var(--as-space-10);
    overflow: hidden;
}
.as-pageheader::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background:
        radial-gradient(50% 60% at 90% 0%, rgba(var(--as-brand-600-rgb),.10), transparent 70%),
        radial-gradient(40% 50% at 5% 100%, rgba(var(--as-brand-500-rgb),.08), transparent 70%);
}
.as-pageheader__inner { max-width: 760px; }
.as-pageheader.as-pageheader--center .as-pageheader__inner { margin: 0 auto; text-align: center; }
.as-pageheader__title {
    font-size: clamp(1.7rem, 1.8vw + 1rem, var(--as-fs-2xl));
    font-weight: var(--as-fw-black);
    color: var(--as-ink-900);
    margin: .35rem 0 .5rem;
    line-height: 1.2;
}
.as-pageheader__lead { color: var(--as-ink-600); font-size: var(--as-fs-md); margin: 0; }

.as-breadcrumb {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: .35rem;
    list-style: none; padding: 0; margin: 0 0 .25rem;
    font-size: var(--as-fs-sm);
    color: var(--as-ink-500);
}
.as-breadcrumb li { display: inline-flex; align-items: center; gap: .35rem; }
.as-breadcrumb li + li::before {
    content: "›";
    color: var(--as-ink-400);
    margin-inline: .15rem;
}
.as-breadcrumb a { color: var(--as-ink-600); }
.as-breadcrumb a:hover { color: var(--as-brand-700); }
.as-breadcrumb li[aria-current="page"] { color: var(--as-ink-800); font-weight: var(--as-fw-semibold); }

@media (max-width: 767.98px) {
    .as-pageheader { padding-block: var(--as-space-8) var(--as-space-6); }
}

/* ---------- Quote page ---------- */
/* ── Quote page layout ─────────────────────────────────────────────── */
.as-quote-section {
    background: var(--as-bg);
    padding-block: var(--as-space-12);
}
.as-quote-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    gap: var(--as-space-8);
    align-items: start;
}
@media (max-width: 991.98px) {
    .as-quote-grid { grid-template-columns: 1fr; gap: var(--as-space-5); }
}
.as-quote-grid > * { min-width: 0; }

/* Bootstrap row inside card — neutralize negative gutter margins that cause horizontal bleed.
   Bootstrap uses margin-left/right: calc(-.5 * var(--bs-gutter-x)) on .row.
   We override gutter-x to 1rem and clamp the row itself so it never overflows its card. */
.as-quote-grid .row {
    --bs-gutter-x: 1rem;
    margin-inline: 0;              /* kill the negative side margins */
}
.as-quote-grid .row > * {
    min-width: 0;
    padding-inline: calc(var(--bs-gutter-x) * .5);   /* restore per-column gutters */
}

/* ── Card ───────────────────────────────────────────────────────────── */
.as-card {
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    box-shadow: var(--as-shadow-sm);
    overflow: hidden;
}
.as-card__body { padding: clamp(1.25rem, 2vw + .5rem, 2rem); }
.as-card__head {
    padding: var(--as-space-5) clamp(1.25rem, 2vw + .5rem, 2rem) var(--as-space-4);
    border-bottom: 1px solid var(--as-border);
    background: linear-gradient(135deg, var(--as-brand-50) 0%, #fff 60%);
    position: relative;
}
.as-card__head::before {
    content: "";
    position: absolute; inset-inline: 0; top: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--as-brand-700), var(--as-brand-500));
}
.as-card__title { font-size: var(--as-fs-lg); font-weight: var(--as-fw-bold); color: var(--as-ink-900); margin: 0 0 .25rem; }
.as-card__sub   { color: var(--as-ink-600); margin: 0; font-size: var(--as-fs-sm); }

/* ── Form controls inside quote grid ────────────────────────────────── */
.as-quote-grid .form-control,
.as-quote-grid .form-select {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    border-color: var(--as-border-strong);
    border-radius: var(--as-radius-md);
    font-size: var(--as-fs-sm);
    transition: border-color var(--as-dur-base) var(--as-ease), box-shadow var(--as-dur-base) var(--as-ease);
}
.as-quote-grid .form-control:focus,
.as-quote-grid .form-select:focus {
    border-color: var(--as-brand-600);
    box-shadow: 0 0 0 3px rgba(var(--as-brand-600-rgb), .12);
}
.as-quote-grid .form-floating > label { color: var(--as-ink-500); font-size: var(--as-fs-sm); }
.as-quote-grid textarea.form-control { resize: vertical; min-height: 110px; }

/* ── Trust panel / aside ─────────────────────────────────────────────── */
.as-quote-aside {
    display: grid;
    gap: var(--as-space-4);
    position: sticky;
    top: calc(var(--as-header-height) + 1rem);
}
@media (max-width: 991.98px) { .as-quote-aside { position: static; } }

.as-quote-aside .as-card__body h3 {
    font-size: var(--as-fs-md);
    font-weight: var(--as-fw-bold);
    color: var(--as-ink-900);
    margin: 0 0 var(--as-space-3);
    display: flex;
    align-items: center;
    gap: .5rem;
}
.as-quote-aside .as-card__body h3 .bi { color: var(--as-brand-600); }

/* Checklist */
.as-checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.as-checklist li { display: flex; gap: .6rem; color: var(--as-ink-700); font-size: var(--as-fs-sm); line-height: 1.55; }
.as-checklist .bi { color: var(--as-success); flex: 0 0 auto; margin-top: .2rem; }

/* Aside contact links */
.as-aside-contact { display: grid; gap: .5rem; }
.as-aside-contact a {
    display: flex; align-items: center; gap: .6rem;
    padding: .7rem .9rem;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-md);
    color: var(--as-ink-800);
    font-weight: var(--as-fw-semibold);
    font-size: var(--as-fs-sm);
    background: #fff;
    transition: border-color var(--as-dur-base) var(--as-ease),
                background   var(--as-dur-base) var(--as-ease),
                color        var(--as-dur-base) var(--as-ease);
    overflow: hidden;
    min-width: 0;
}
.as-aside-contact a:hover { border-color: var(--as-brand-500); background: var(--as-brand-50); color: var(--as-brand-700); }
.as-aside-contact a .bi { font-size: 1.15em; color: var(--as-brand-700); flex: 0 0 auto; }
.as-aside-contact a.is-whatsapp .bi { color: #25d366; }
.as-aside-contact a.is-whatsapp:hover { border-color: #25d366; background: #f0fdf4; color: #1a7c3e; }
.as-aside-contact a span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── Quote trust strip (mini row of icon chips) ─────────────────────── */
.as-quote-trust {
    display: flex;
    flex-wrap: wrap;
    gap: var(--as-space-3) var(--as-space-4);
    padding: var(--as-space-4);
    background: var(--as-brand-50);
    border: 1px solid rgba(var(--as-brand-600-rgb), .1);
    border-radius: var(--as-radius-lg);
    margin-top: var(--as-space-4);
}
.as-quote-trust__item {
    display: flex; align-items: center; gap: .4rem;
    font-size: var(--as-fs-xs, .78rem);
    color: var(--as-ink-700);
    font-weight: var(--as-fw-medium);
}
.as-quote-trust__item .bi { color: var(--as-brand-600); font-size: .95em; }

/* Validation summary */
.as-validation-summary {
    background: #fdecea;
    color: var(--as-danger);
    border: 1px solid #f5c2bc;
    border-radius: var(--as-radius-md);
    padding: .75rem 1rem;
    margin-bottom: var(--as-space-4);
    font-size: var(--as-fs-sm);
}
.as-validation-summary ul { margin: 0; padding-inline-start: 1.25rem; }

/* ---------- Contact page ---------- */
.as-contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--as-space-5); }
@media (max-width: 767.98px) { .as-contact-grid { grid-template-columns: 1fr; } }

.as-contact-card {
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-6);
    text-align: center;
    transition: transform var(--as-dur-base) var(--as-ease), box-shadow var(--as-dur-base) var(--as-ease), border-color var(--as-dur-base) var(--as-ease);
}
.as-contact-card:hover { transform: translateY(-3px); box-shadow: var(--as-shadow-md); border-color: var(--as-brand-400); }
.as-contact-card__icon {
    width: 60px; height: 60px;
    border-radius: 50%;
    background: var(--as-brand-100);
    color: var(--as-brand-700);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.6rem;
    margin-bottom: var(--as-space-4);
}
.as-contact-card.is-whatsapp .as-contact-card__icon { background: #d1f7df; color: #1fb358; }
.as-contact-card__title { font-size: var(--as-fs-md); font-weight: var(--as-fw-bold); color: var(--as-ink-900); margin: 0 0 .25rem; }
.as-contact-card__sub   { color: var(--as-ink-500); font-size: var(--as-fs-sm); margin: 0 0 var(--as-space-4); }
.as-contact-card__value { font-weight: var(--as-fw-bold); color: var(--as-brand-700); font-size: var(--as-fs-md); }

.as-locations { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--as-space-4); }
@media (max-width: 767.98px) { .as-locations { grid-template-columns: repeat(2, 1fr); } }
.as-location {
    text-align: center;
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-md);
    padding: var(--as-space-5) var(--as-space-4);
}
.as-location .bi { color: var(--as-brand-600); font-size: 1.5rem; }
.as-location strong { display: block; margin-top: .5rem; color: var(--as-ink-900); }

/* ---------- Two-column inner layout (article + sidebar) ---------- */
.as-doc-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: var(--as-space-8);
    align-items: start;
}
@media (max-width: 991.98px) { .as-doc-grid { grid-template-columns: 1fr; } }

.as-doc__main { min-width: 0; }
.as-doc__hero {
    border-radius: var(--as-radius-xl);
    overflow: hidden;
    box-shadow: var(--as-shadow-md);
    margin-bottom: var(--as-space-6);
    aspect-ratio: 16/9;
    background: var(--as-ink-100);
}
.as-doc__hero img { width: 100%; height: 100%; object-fit: cover; display: block; }

.as-prose { color: var(--as-ink-800); line-height: var(--as-lh-base); font-size: var(--as-fs-base); }
.as-prose h2 { font-size: var(--as-fs-xl); margin: var(--as-space-8) 0 var(--as-space-3); }
.as-prose h3 { font-size: var(--as-fs-lg); margin: var(--as-space-6) 0 var(--as-space-3); }
.as-prose p  { margin-bottom: var(--as-space-4); }
.as-prose ul, .as-prose ol { padding-inline-start: 1.5rem; margin-bottom: var(--as-space-4); }
.as-prose li { margin-bottom: .35rem; }
.as-prose a  { color: var(--as-brand-700); text-decoration: underline; text-underline-offset: 3px; }
.as-prose img { max-width: 100%; height: auto; border-radius: var(--as-radius-md); }
.as-prose blockquote {
    border-inline-start: 4px solid var(--as-brand-500);
    background: var(--as-bg-soft);
    padding: var(--as-space-4) var(--as-space-5);
    border-radius: var(--as-radius-md);
    color: var(--as-ink-700);
    margin: var(--as-space-5) 0;
}

/* Sidebar (sticky on desktop) */
.as-aside { display: grid; gap: var(--as-space-4); position: sticky; top: calc(var(--as-header-height) + 1rem); }
@media (max-width: 991.98px) { .as-aside { position: static; } }
.as-widget {
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-5);
}
.as-widget__title {
    font-size: var(--as-fs-md);
    font-weight: var(--as-fw-bold);
    color: var(--as-ink-900);
    margin: 0 0 var(--as-space-4);
    padding-bottom: var(--as-space-3);
    border-bottom: 1px solid var(--as-border);
    display: flex; align-items: center; gap: .5rem;
}
.as-widget__title .bi { color: var(--as-brand-600); }
.as-widget ul.as-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .15rem; }
.as-widget ul.as-list li a {
    display: flex; align-items: center; gap: .45rem;
    padding: .55rem .65rem;
    border-radius: var(--as-radius-md);
    color: var(--as-ink-700);
    font-size: var(--as-fs-sm);
    transition: background var(--as-dur-base) var(--as-ease), color var(--as-dur-base) var(--as-ease);
}
.as-widget ul.as-list li a:hover { background: var(--as-brand-50); color: var(--as-brand-800); }
.as-widget ul.as-list .bi { color: var(--as-brand-600); }

.as-widget__cta {
    display: grid; gap: .5rem;
}

/* Tags cloud */
.as-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.as-tag {
    display: inline-flex;
    padding: .3rem .65rem;
    background: var(--as-bg-soft);
    color: var(--as-ink-700);
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-pill);
    font-size: var(--as-fs-xs);
    font-weight: var(--as-fw-semibold);
    text-decoration: none;
    transition: background var(--as-dur-base) var(--as-ease), color var(--as-dur-base) var(--as-ease), border-color var(--as-dur-base) var(--as-ease);
}
.as-tag:hover { background: var(--as-brand-50); border-color: var(--as-brand-400); color: var(--as-brand-800); }

/* Recent post list (sidebar) */
.as-recent { display: grid; gap: var(--as-space-3); }
.as-recent__item { display: grid; grid-template-columns: 72px 1fr; gap: .75rem; align-items: center; }
.as-recent__item img { width: 72px; height: 72px; border-radius: var(--as-radius-md); object-fit: cover; }
.as-recent__item h4 { font-size: var(--as-fs-sm); font-weight: var(--as-fw-semibold); margin: 0; line-height: 1.35; }
.as-recent__item a { color: var(--as-ink-800); }
.as-recent__item a:hover { color: var(--as-brand-700); }

/* ---------- Blog listing item (large) ---------- */
.as-post-list { display: grid; gap: var(--as-space-6); }
.as-post-item {
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    overflow: hidden;
    transition: box-shadow var(--as-dur-base) var(--as-ease), transform var(--as-dur-base) var(--as-ease);
}
.as-post-item:hover { box-shadow: var(--as-shadow-md); transform: translateY(-2px); }
.as-post-item__media { position: relative; aspect-ratio: 16/8; background: var(--as-ink-100); overflow: hidden; }
.as-post-item__media img { width: 100%; height: 100%; object-fit: cover; }
.as-post-item__date {
    position: absolute; top: 1rem; inset-inline-start: 1rem;
    background: rgba(255,255,255,.95); color: var(--as-ink-900);
    padding: .35rem .65rem; border-radius: var(--as-radius-md);
    font-size: var(--as-fs-xs); font-weight: var(--as-fw-bold);
    text-align: center; line-height: 1.1;
    box-shadow: var(--as-shadow-sm);
}
.as-post-item__date strong { display: block; font-size: var(--as-fs-sm); color: var(--as-brand-700); }
.as-post-item__body { padding: var(--as-space-6); }
.as-post-item__title { font-size: var(--as-fs-xl); font-weight: var(--as-fw-bold); color: var(--as-ink-900); margin: 0 0 .5rem; }
.as-post-item__title a { color: inherit; }
.as-post-item__title a:hover { color: var(--as-brand-700); }
.as-post-item__excerpt { color: var(--as-ink-600); margin: 0 0 var(--as-space-4); }

/* ---------- Service detail / Area detail feature mini-cards ---------- */
.as-mini-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--as-space-4); }
@media (max-width: 575.98px) { .as-mini-grid { grid-template-columns: 1fr; } }
.as-mini {
    display: flex; align-items: flex-start; gap: .85rem;
    padding: var(--as-space-4) var(--as-space-5);
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-md);
}
.as-mini__icon {
    width: 40px; height: 40px; flex: 0 0 auto;
    border-radius: var(--as-radius-md);
    background: var(--as-brand-100);
    color: var(--as-brand-700);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.1rem;
}
.as-mini h5 { margin: 0 0 .15rem; font-size: var(--as-fs-base); font-weight: var(--as-fw-bold); color: var(--as-ink-900); }
.as-mini p  { margin: 0; color: var(--as-ink-600); font-size: var(--as-fs-sm); line-height: 1.5; }

/* ---------- Inline article CTA (used in service single, area single) ---------- */
.as-article-cta {
    background: var(--as-brand-gradient-rich);
    color: #fff;
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-6);
    margin-block: var(--as-space-6);
}
.as-article-cta h3 { color: #fff; margin: 0 0 .35rem; font-size: var(--as-fs-lg); }
.as-article-cta p { color: rgba(255,255,255,.85); margin: 0 0 var(--as-space-4); }
.as-article-cta__actions { display: flex; flex-wrap: wrap; gap: .5rem; }

/* ---------- Shared inner-page CTA band (used by _CtaBand partial) ---------- */
.as-cta-band {
    position: relative;
    overflow: hidden;
    background: var(--as-brand-gradient-rich);
    color: #fff;
    border-radius: var(--as-radius-xl);
    padding: var(--as-space-12) var(--as-space-10);
    margin-block: var(--as-space-16);
}
@media (max-width: 767.98px) { .as-cta-band { padding: var(--as-space-8) var(--as-space-5); margin-block: var(--as-space-10); } }
.as-cta-band::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(40% 60% at 90% 10%, rgba(255,255,255,.18), transparent 70%),
                radial-gradient(35% 50% at 5% 90%, rgba(var(--as-brand-500-rgb),.20), transparent 70%);
}
.as-cta-band__inner { position: relative; display: grid; grid-template-columns: 1.4fr .9fr; gap: var(--as-space-6); align-items: center; }
@media (max-width: 991.98px) { .as-cta-band__inner { grid-template-columns: 1fr; text-align: center; } }
.as-cta-band h2 { color: #fff; font-size: clamp(1.5rem, 2vw + 1rem, var(--as-fs-2xl)); margin-bottom: .5rem; }
.as-cta-band p  { color: rgba(255,255,255,.85); margin-bottom: 0; }
.as-cta-band__actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; }
@media (max-width: 991.98px) { .as-cta-band__actions { justify-content: center; } }

.as-btn--white    { --_bg: #fff; --_bg-hover: var(--as-accent-100); --_fg: var(--as-brand-800); --_border: transparent; }
.as-btn--whatsapp { --_bg: #25d366; --_bg-hover: #1fb358; --_fg: #fff; --_border: transparent; }

/* ---------- Section heading (shared) ---------- */
.as-sec-head { text-align: center; max-width: 720px; margin: 0 auto var(--as-space-10); }
.as-sec-head__title { margin: .25rem 0 .75rem; }
.as-sec-head__lead { color: var(--as-ink-600); }

/* ---------- Service catalog cards (shared with home) ---------- */
.as-service-grid {
    display: grid; gap: var(--as-space-5);
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 991.98px) { .as-service-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479.98px) { .as-service-grid { grid-template-columns: 1fr; } }
.as-service {
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    overflow: hidden;
    transition: transform var(--as-dur-base) var(--as-ease), box-shadow var(--as-dur-base) var(--as-ease), border-color var(--as-dur-base) var(--as-ease);
    height: 100%;
}
.as-service:hover { transform: translateY(-4px); box-shadow: var(--as-shadow-md); border-color: var(--as-brand-400); }
.as-service__media { aspect-ratio: 16/10; background: var(--as-ink-100); overflow: hidden; }
.as-service__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--as-dur-slow) var(--as-ease); }
.as-service:hover .as-service__media img { transform: scale(1.04); }
.as-service__body { padding: var(--as-space-5); display: flex; flex-direction: column; flex: 1; }
.as-service__title { font-size: var(--as-fs-md); font-weight: var(--as-fw-bold); color: var(--as-ink-900); margin: 0 0 .5rem; }
.as-service__title a { color: inherit; }
.as-service__title a:hover { color: var(--as-brand-700); }
.as-service__desc { color: var(--as-ink-600); font-size: var(--as-fs-sm); flex: 1; margin-bottom: var(--as-space-4); }
.as-service__cta {
    align-self: flex-start;
    color: var(--as-brand-700);
    font-weight: var(--as-fw-semibold);
    font-size: var(--as-fs-sm);
    display: inline-flex; align-items: center; gap: .25rem;
}
.as-service__cta:hover { color: var(--as-brand-900); gap: .5rem; }

/* ---------- Coverage area chips (shared with home) ---------- */
.as-areas { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--as-space-3); }
@media (max-width: 1199.98px) { .as-areas { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 767.98px)  { .as-areas { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 479.98px)  { .as-areas { grid-template-columns: repeat(2, 1fr); } }
.as-area {
    display: flex; align-items: center; gap: .5rem;
    padding: .85rem 1rem;
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-md);
    color: var(--as-ink-800);
    font-weight: var(--as-fw-semibold);
    font-size: var(--as-fs-sm);
    text-decoration: none;
    transition: border-color var(--as-dur-base) var(--as-ease), background var(--as-dur-base) var(--as-ease), color var(--as-dur-base) var(--as-ease);
}
.as-area .bi { color: var(--as-brand-600); }
.as-area:hover { border-color: var(--as-brand-500); background: var(--as-brand-50); color: var(--as-brand-900); }

/* ---------- Area parent card (richer) ---------- */
.as-area-card {
    display: flex; flex-direction: column; align-items: flex-start;
    gap: .75rem;
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-6);
    height: 100%;
    transition: transform var(--as-dur-base) var(--as-ease), box-shadow var(--as-dur-base) var(--as-ease), border-color var(--as-dur-base) var(--as-ease);
}
.as-area-card:hover { transform: translateY(-3px); box-shadow: var(--as-shadow-md); border-color: var(--as-brand-400); }
.as-area-card__icon {
    width: 48px; height: 48px; border-radius: var(--as-radius-md);
    background: var(--as-brand-100); color: var(--as-brand-700);
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.4rem;
}
.as-area-card__title { font-size: var(--as-fs-md); font-weight: var(--as-fw-bold); color: var(--as-ink-900); margin: 0; }
.as-area-card__title a { color: inherit; }
.as-area-card__title a:hover { color: var(--as-brand-700); }
.as-area-card__desc { color: var(--as-ink-600); font-size: var(--as-fs-sm); margin: 0; }
.as-area-card__meta { display: inline-flex; align-items: center; gap: .35rem; font-size: var(--as-fs-xs); color: var(--as-brand-700); font-weight: var(--as-fw-semibold); }

/* ---------- Shared FAQ accordion (inner pages) ---------- */
.as-faq .accordion-item {
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-md) !important;
    background: #fff;
    margin-bottom: .6rem;
    overflow: hidden;
}
.as-faq .accordion-button {
    background: #fff;
    color: var(--as-ink-900);
    font-weight: var(--as-fw-semibold);
    box-shadow: none;
}
.as-faq .accordion-button:not(.collapsed) {
    background: var(--as-brand-50);
    color: var(--as-brand-900);
}
.as-faq .accordion-button:focus { box-shadow: var(--as-shadow-ring); }

/* ---------- Contact page — primary action cards (v2) ---------- */
.as-contact-primary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--as-space-4);
    margin-bottom: var(--as-space-5);
}
@media (max-width: 767.98px) { .as-contact-primary { grid-template-columns: 1fr; } }

.as-contact-primary__card {
    display: flex; align-items: center; gap: var(--as-space-4);
    padding: var(--as-space-5) var(--as-space-6);
    border-radius: var(--as-radius-lg);
    border: 2px solid transparent;
    text-decoration: none;
    transition: transform var(--as-dur-base) var(--as-ease), box-shadow var(--as-dur-base) var(--as-ease);
    position: relative;
    overflow: hidden;
}
.as-contact-primary__card:hover { transform: translateY(-3px); box-shadow: var(--as-shadow-lg); text-decoration: none; }

.as-contact-primary__card--phone {
    background: linear-gradient(135deg, var(--as-brand-700) 0%, var(--as-brand-600) 100%);
    color: #fff;
}
.as-contact-primary__card--wa {
    background: linear-gradient(135deg, #1a9e4d 0%, #25d366 100%);
    color: #fff;
}
.as-contact-primary__icon {
    flex: 0 0 56px; width: 56px; height: 56px;
    background: rgba(255,255,255,.2);
    border-radius: var(--as-radius-md);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.75rem;
    color: #fff;
}
.as-contact-primary__body {
    flex: 1; display: flex; flex-direction: column; gap: .15rem;
}
.as-contact-primary__action {
    font-size: var(--as-fs-lg); font-weight: var(--as-fw-black);
    color: #fff; line-height: 1.15;
}
.as-contact-primary__value {
    font-size: var(--as-fs-md); font-weight: var(--as-fw-bold);
    color: rgba(255,255,255,.95);
}
.as-contact-primary__note {
    font-size: var(--as-fs-sm); color: rgba(255,255,255,.75);
}
.as-contact-primary__arrow {
    font-size: 1.5rem; color: rgba(255,255,255,.6);
    flex: 0 0 auto;
}
@media (max-width: 479.98px) { .as-contact-primary__arrow { display: none; } }

/* Secondary contact grid (2 cards: email + quote CTA) */
.as-contact-secondary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--as-space-4);
}
@media (max-width: 767.98px) { .as-contact-secondary { grid-template-columns: 1fr; } }

/* Quote-CTA contact card variant */
.as-contact-card--cta {
    background: var(--as-brand-50);
    border-color: var(--as-brand-200) !important;
}
.as-contact-card--cta:hover { border-color: var(--as-brand-500) !important; background: var(--as-brand-100); }
.as-contact-card--cta .as-contact-card__icon { background: var(--as-brand-100); color: var(--as-brand-700); }
.as-contact-card__value--action {
    color: var(--as-brand-700) !important; font-weight: var(--as-fw-bold) !important;
    display: inline-flex; align-items: center; gap: .2rem;
}

/* Trust strip */
.as-contact-trust-strip {
    background: var(--as-ink-900);
    padding: var(--as-space-5) 0;
}
.as-contact-trust {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-4);
    text-align: center;
}
@media (max-width: 991.98px) { .as-contact-trust { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 479.98px) { .as-contact-trust { grid-template-columns: 1fr 1fr; gap: var(--as-space-3); } }

.as-contact-trust__item {
    display: flex; flex-direction: column; align-items: center; gap: .4rem;
    color: rgba(255,255,255,.75); font-size: var(--as-fs-sm);
}
.as-contact-trust__item .bi { font-size: 1.4rem; color: var(--as-brand-400); }
.as-contact-trust__item strong { color: #fff; }

/* ---------- Quote success page ---------- */
.as-success-card { border-top: 4px solid var(--as-success) !important; }
.as-success-icon {
    font-size: 4.5rem; color: var(--as-success);
    line-height: 1; margin-bottom: var(--as-space-4);
    animation: as-pop .5s cubic-bezier(.18,.89,.32,1.28) both;
}
@keyframes as-pop {
    0%   { transform: scale(0); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}
.as-success-title { font-size: var(--as-fs-xl) !important; }
.as-success-hint {
    color: var(--as-brand-700); font-weight: var(--as-fw-semibold);
    font-size: var(--as-fs-sm); margin: var(--as-space-4) 0 var(--as-space-3);
}
.as-success-hint .bi { color: var(--as-accent-500); }

.as-success-steps {
    display: flex; align-items: center; justify-content: center;
    gap: 0; flex-wrap: nowrap;
    margin-block: var(--as-space-5) var(--as-space-4);
    font-size: var(--as-fs-sm);
}
.as-success-step {
    display: flex; flex-direction: column; align-items: center; gap: .3rem;
    color: var(--as-ink-700); flex: 0 1 auto; text-align: center;
    max-width: 90px;
}
.as-success-step__num {
    width: 28px; height: 28px;
    background: var(--as-brand-600); color: #fff;
    border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: var(--as-fw-bold); font-size: var(--as-fs-sm);
}
.as-success-step--connector {
    flex: 1; min-width: 24px; max-width: 48px; height: 2px;
    background: var(--as-border); align-self: flex-start; margin-top: 14px;
    flex-direction: row;
}
@media (max-width: 479.98px) { .as-success-steps { font-size: var(--as-fs-xs); } }

/* ---------- Submit button loading state ---------- */
@keyframes as-spin {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.as-spin { display: inline-block; animation: as-spin .7s linear infinite; }
.as-about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--as-space-10);
    align-items: center;
}
@media (max-width: 991.98px) { .as-about-grid { grid-template-columns: 1fr; gap: var(--as-space-6); } }
.as-about__media {
    border-radius: var(--as-radius-xl);
    overflow: hidden;
    box-shadow: var(--as-shadow-md);
    aspect-ratio: 4/3;
    background: var(--as-ink-100);
}
.as-about__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.as-about__list {
    list-style: none; padding: 0; margin: var(--as-space-4) 0 var(--as-space-6);
    display: grid; gap: .65rem;
}
.as-about__list li { display: flex; gap: .6rem; color: var(--as-ink-700); }
.as-about__list .bi { color: var(--as-success); flex: 0 0 auto; margin-top: .25rem; }

/* ── About page — body lead ─────────────────────────────────────────── */
.as-body-lead {
    font-size: var(--as-fs-base);
    line-height: 1.75;
    color: var(--as-ink-600);
    margin-block: var(--as-space-3) var(--as-space-4);
}

/* ── About page — h2 ────────────────────────────────────────────────── */
.as-about__h2 {
    font-size: clamp(1.35rem, 2vw + .8rem, 2rem);
    font-weight: var(--as-fw-bold);
    color: var(--as-ink-900);
    line-height: 1.25;
    margin-bottom: var(--as-space-3);
}

/* ── About page — media with badge ─────────────────────────────────── */
.as-about__media--layered {
    position: relative;
}
.as-about__media-badge {
    position: absolute;
    bottom: var(--as-space-4);
    inset-inline-start: var(--as-space-4);
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: var(--as-brand-700);
    color: #fff;
    padding: .45rem .9rem;
    border-radius: var(--as-radius-pill);
    font-size: var(--as-fs-sm);
    font-weight: var(--as-fw-semibold);
    box-shadow: 0 4px 14px rgba(0,0,0,.22);
    pointer-events: none;
}
.as-about__media-badge .bi { font-size: 1rem; }

/* ── Mini-grid 3-column variant ─────────────────────────────────────── */
.as-mini-grid--3 {
    grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767.98px) { .as-mini-grid--3 { grid-template-columns: 1fr; } }
@media (min-width: 576px) and (max-width: 991.98px) { .as-mini-grid--3 { grid-template-columns: repeat(2, 1fr); } }

/* ── About stats — premium tiles ────────────────────────────────────── */
.as-about-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-4);
}
@media (max-width: 767.98px) { .as-about-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 399.98px) { .as-about-stats { grid-template-columns: 1fr 1fr; gap: var(--as-space-3); } }

.as-about-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--as-space-2);
    background: #fff;
    border: 1px solid rgba(var(--as-brand-600-rgb), .12);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-6) var(--as-space-4) var(--as-space-5);
    position: relative;
    overflow: hidden;
    transition: box-shadow .25s ease, border-color .25s ease;
}
.as-about-stat::before {
    content: "";
    position: absolute; inset-inline: 0; top: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--as-brand-700), var(--as-brand-500));
    border-radius: var(--as-radius-lg) var(--as-radius-lg) 0 0;
}
.as-about-stat:hover {
    box-shadow: 0 8px 24px -6px rgba(var(--as-brand-600-rgb),.18);
    border-color: rgba(var(--as-brand-600-rgb),.28);
}
.as-about-stat__icon {
    width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--as-radius-md);
    background: linear-gradient(135deg, var(--as-brand-50) 0%, var(--as-brand-100) 100%);
    color: var(--as-brand-600);
    font-size: 1.1rem;
    flex: 0 0 auto;
}
.as-about-stat__num {
    display: block;
    font-size: clamp(1.75rem, 1.8vw + 1rem, 2.25rem);
    font-weight: var(--as-fw-black);
    color: var(--as-brand-700);
    line-height: 1.05;
    letter-spacing: -.02em;
}
.as-about-stat__label {
    font-size: var(--as-fs-sm);
    color: var(--as-ink-600);
    font-weight: var(--as-fw-medium);
}

/* ── About reviews ──────────────────────────────────────────────────── */
.as-about-reviews {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--as-space-4);
    margin-top: var(--as-space-8);
}
@media (max-width: 767.98px) { .as-about-reviews { grid-template-columns: 1fr; } }
@media (min-width: 576px) and (max-width: 991.98px) { .as-about-reviews { grid-template-columns: repeat(2, 1fr); } }

.as-about-review {
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-5);
    display: flex;
    flex-direction: column;
    gap: var(--as-space-3);
    position: relative;
    transition: box-shadow .25s ease, border-color .25s ease;
}
.as-about-review:hover {
    box-shadow: 0 8px 24px -6px rgba(var(--as-brand-600-rgb),.12);
    border-color: rgba(var(--as-brand-600-rgb),.22);
}
.as-about-review__stars { color: #f59e0b; font-size: .9rem; letter-spacing: .1rem; }
.as-about-review__text {
    font-size: var(--as-fs-sm);
    color: var(--as-ink-700);
    line-height: 1.7;
    flex: 1;
    margin: 0;
}
.as-about-review__text::before { content: open-quote; color: var(--as-brand-300); }
.as-about-review__text::after  { content: close-quote; color: var(--as-brand-300); }
.as-about-review__author {
    font-size: .78rem;
    color: var(--as-ink-500);
    font-weight: var(--as-fw-medium);
}

/* ── Legacy stat strip (kept for other potential uses) ──────────────── */
.as-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--as-space-4);
}
@media (max-width: 767.98px) { .as-stats { grid-template-columns: repeat(2, 1fr); } }
.as-stat {
    background: #fff;
    border: 1px solid var(--as-border);
    border-radius: var(--as-radius-lg);
    padding: var(--as-space-6) var(--as-space-4);
    text-align: center;
}
.as-stat__num {
    display: block;
    font-size: clamp(1.6rem, 1.5vw + 1rem, var(--as-fs-2xl));
    font-weight: var(--as-fw-black);
    color: var(--as-brand-700);
    line-height: 1.1;
    margin-bottom: .35rem;
}
.as-stat__label { color: var(--as-ink-600); font-size: var(--as-fs-sm); }
