/* ==========================================================================
   Add-On Space Interiors & Decor L.L.C. — custom layer on top of the Antra theme
   Loaded after main.css. Uses the theme's variables (--tl-color-theme-primary etc.)
   so the gold/charcoal palette stays consistent. Change the brand colour here.
   ========================================================================== */
:root {
    /* Brand accent — adjust to the Add-On Space logo colour if different */
    --tl-color-theme-primary: #CAA05C;
    --aos-dark: #1C1C1D;
    --aos-error: #D64545;
}

/* ---------- 1. Header top bar (official contacts) ---------- */
.aos-topbar {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 14px;
    position: relative;
    z-index: 10;
}
.aos-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 0;
}
.aos-topbar-note,
.aos-topbar a { color: rgba(255, 255, 255, 0.85); }
.aos-topbar a:hover { color: var(--tl-color-theme-primary); }
.aos-topbar-note i,
.aos-topbar-list i { color: var(--tl-color-theme-primary); margin-right: 6px; }
.aos-topbar-list { display: flex; flex-wrap: wrap; gap: 24px; list-style: none; }
.aos-topbar-list .sep { color: rgba(255, 255, 255, 0.4); margin: 0 6px; }
/* the top bar scrolls away naturally; only .primary-header becomes fixed (see main.js menuSticky) */
@media (max-width: 1399px) { .aos-topbar-note { display: none; } .aos-topbar-inner { justify-content: center; } }

.aos-mobile-cta { margin-top: 20px; width: 100%; justify-content: center; }

/* ---------- 2. Services grid (6 cards) ---------- */
.aos-service-grid .service-item { height: 100%; }

/* ---------- 3. Sector tabs (home) + portfolio filter ---------- */
.aos-sector-tabs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 6px;
    margin-bottom: 30px;
    border-radius: 100px;
    background: rgba(202, 160, 92, 0.1);
    border: 1px solid rgba(202, 160, 92, 0.3);
}
.aos-sector-tabs .nav-link {
    border: 0;
    border-radius: 100px;
    padding: 10px 26px;
    font-weight: 500;
    color: var(--tl-color-heading-primary);
    background: transparent;
    transition: all .3s ease;
}
.aos-sector-tabs .nav-link i { margin-right: 6px; }
.aos-sector-tabs .nav-link.active,
.aos-sector-tabs .nav-link:hover {
    background: var(--tl-color-theme-primary);
    color: #fff;
}
.aos-filter-wrap { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 50px; }
.aos-filter-note { font-size: 14px; margin: 0; }
.aos-project-col.is-hidden { display: none; }
/* Sector / type tags on project cards are labels, not links — give them the
   theme's pill look (main.css only styles `li a`) plus a soft backing so they
   stay readable on bright photos. */
.project-item .project-img ul { flex-wrap: wrap; gap: 8px; right: 30px; }
.project-item .project-img ul li:not(:last-of-type) { margin-right: 0; }
.project-item .project-img ul li span {
    font-family: var(--tl-ff-heading);
    color: var(--tl-color-common-white);
    font-size: 13px;
    line-height: 1.4;
    padding: 5px 15px;
    text-transform: uppercase;
    border: 1px solid rgba(255, 255, 255, .85);
    border-radius: 100px;
    background: rgba(17, 17, 17, .35);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    display: inline-flex;
    align-items: center;
}
.aos-empty-state { display: none; }
.aos-empty-state.is-visible { display: block; }
.aos-empty-inner {
    text-align: center;
    padding: 60px 30px;
    border: 1px dashed var(--tl-color-border-1);
    border-radius: 18px;
    background: #fff;
}
.aos-empty-inner h3 { font-size: 30px; margin-bottom: 12px; }

/* ---------- 4. Counters: AED prefix ---------- */
.aos-counter-prefix { font-size: 0.45em; margin-right: 6px; vertical-align: middle; }
/* the theme hides odometer formatting marks (thousands commas); keep the decimal point so 2.5 doesn't read as 25 */
.counter-item .title .odometer-formatting-mark.odometer-radix-mark { display: inline; }

/* ---------- 5. Five-stage process grid ---------- */
.aos-stage-sub {
    font-family: var(--tl-ff-body);
    font-size: 13px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--tl-color-theme-primary);
    margin-bottom: 10px;
}
.aos-process-5 .process-item { height: 100%; }
@media (min-width: 1200px) {
    /* theme staggers cards 2-4; extend the stagger to card 5 and tighten padding for 5 columns */
    .aos-process-5 > div:nth-child(5) { margin-top: 200px; }
    .aos-process-5 .process-item .process-content { padding: 26px 18px 70px; }
    .aos-process-5 .process-item .process-content .title { font-size: 22px; }
    .aos-process-5 .process-item .number { font-size: 64px; }
}
.aos-bp-sub { display: block; font-size: 15px; font-family: var(--tl-ff-body); opacity: .75; margin-top: 4px; }

/* ---------- 6. Authority band / lists ---------- */
.aos-authority-band {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    list-style: none;
    margin-top: 40px;
}
.aos-authority-band li {
    padding: 14px 26px;
    border: 1px solid var(--tl-color-border-1);
    border-radius: 100px;
    background: #fff;
    font-family: var(--tl-ff-heading);
    font-size: 18px;
    color: var(--tl-color-heading-primary);
}
.aos-authority-list { list-style: none; margin-top: 30px; }
.aos-authority-list li { display: flex; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--tl-color-border-1); }
.aos-authority-list li i { color: var(--tl-color-theme-primary); margin-top: 4px; }
.aos-authority-list strong { display: block; color: var(--tl-color-heading-primary); }
.aos-authority-list span { font-size: 15px; }
.aos-authority-title { font-size: 26px; }

/* ---------- 7. Quote CTA buttons ---------- */
.aos-cta-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 30px; }
.aos-btn-outline {
    background: transparent !important;
    color: var(--tl-color-heading-primary) !important;
    border: 1px solid var(--tl-color-heading-primary);
}
.aos-btn-outline:hover { background: var(--tl-color-theme-primary) !important; color: #fff !important; border-color: var(--tl-color-theme-primary); }

/* ---------- 8. Quote form ---------- */
.aos-quote-form label.form-title { display: block; }
.aos-form-step {
    font-family: var(--tl-ff-body);
    font-size: 16px;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 10px 0 20px;
}
.aos-form-step span { color: var(--tl-color-theme-primary); margin-right: 8px; }
.aos-form-step:not(:first-of-type) { margin-top: 30px; }
.aos-quote-form .nice-select { width: 100%; float: none; line-height: 1.5; }
.aos-quote-form .nice-select .list { width: 100%; max-height: 260px; overflow-y: auto; }
.aos-quote-form .nice-select .option.disabled { font-weight: 600; opacity: .6; cursor: default; }
.aos-area-group { display: flex; gap: 10px; }
.aos-area-group input { flex: 1 1 auto; }
.aos-area-group .nice-select,
.aos-area-group select { flex: 0 0 110px; width: 110px; }
.aos-error { display: none; color: var(--aos-error); font-size: 13px; margin-top: 6px; }
.aos-invalid .aos-error,
.aos-consent.aos-invalid .aos-error { display: block; }
.aos-invalid .form-control,
.aos-invalid .nice-select { border-color: var(--aos-error) !important; }
.aos-consent { margin: 10px 0 25px; padding-left: 1.8em; }
.aos-consent .form-check-input:checked { background-color: var(--tl-color-theme-primary); border-color: var(--tl-color-theme-primary); }
.aos-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
#submit[disabled] { opacity: .6; pointer-events: none; }

/* ---------- 9. Floating WhatsApp ---------- */
.aos-whatsapp-float {
    position: fixed;
    left: 24px;
    bottom: 24px;
    z-index: 999;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #25D366;
    color: #fff;
    font-size: 28px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}
.aos-whatsapp-float:hover { color: #fff; transform: translateY(-3px); }

/* ---------- 10. Footer second phone ---------- */
.footer-address .aos-footer-number-2 { margin-top: -6px; }
.footer-address .mail { display: block; }

/* Offset in-page anchors so the sticky header doesn't cover them */
.aos-anchor, #process, #sectors, #quote, #authority-approvals { scroll-margin-top: 120px; }

/* ---------- 11. Layout fixes found in QA ---------- */
/* logo sizing for the SVG wordmark */
.header-logo img, .footer-logo img, .side-menu-logo img, .side-menu-head img { height: 46px; width: auto; max-width: 230px; }
/* contact page: three contact blocks wrap instead of squeezing */
.contact-page-area .request-item-wrap { flex-wrap: wrap; column-gap: 40px; row-gap: 30px; }
.contact-page-area .request-item { flex: 1 1 40%; min-width: 180px; }
.contact-page-area .request-item a { white-space: nowrap; }
/* nice-select dropdowns match the theme's pill inputs */
.aos-quote-form .nice-select {
    height: 58px;
    line-height: 58px;
    padding-left: 20px;
    border: none;
    border-radius: 24px;
    background: #fff;
    color: #9f9fa4;
    font-size: 16px;
    margin-bottom: 30px;
}
.aos-quote-form .nice-select .current { color: var(--tl-color-heading-primary); }
.aos-quote-form .nice-select:after { right: 22px; }
.aos-invalid .form-control, .aos-invalid .nice-select { margin-bottom: 6px !important; border: 1px solid var(--aos-error) !important; }
.aos-invalid .aos-error { margin-bottom: 20px; }
/* footer: emails a little smaller so long addresses fit */
.footer-address .mail { font-size: 18px; margin-top: 8px; }
.aos-quote-form .nice-select { display: flex; align-items: center; padding-top: 0; padding-bottom: 0; }
.aos-quote-form .nice-select .current { line-height: 1.2; }

/* ==========================================================================
   12. Step 5 — pages fed by the admin
   ========================================================================== */
/* WhatsApp button on the right (Admin › Contact & WhatsApp › Button position) — sits above the scroll-to-top circle */
.aos-whatsapp-float.is-right { left: auto; right: 24px; bottom: 100px; }
.footer-address .aos-footer-hours { color: #9f9fa4; }

/* Services page — "Full description" cards */
.aos-detail-card { border: 1px solid #e6e6e7; border-radius: 24px; padding: 40px; background: #fff; }
.aos-detail-card .title { font-size: 30px; font-weight: 400; margin: 10px 0 16px; }
.aos-detail-kicker { font-size: 13px; letter-spacing: 2px; text-transform: uppercase; color: var(--tl-color-theme-primary); }
.aos-detail-text { margin-bottom: 20px; }
.aos-detail-link { font-weight: 500; color: var(--tl-color-heading-primary); }
.aos-detail-link:hover { color: var(--tl-color-theme-primary); }

/* Project pages */
.aos-preview-note { background: #fdf1e7; border-left: 4px solid #d9822b; padding: 14px 18px; border-radius: 8px; margin-bottom: 30px; }
.project-details-wrap .aos-project-meta { flex-wrap: wrap; gap: 24px 40px; justify-content: flex-start; }
.project-details-wrap .aos-project-cover { width: 100%; height: clamp(280px, 50vw, 680px); }
.project-details-wrap .aos-project-cover a { display: block; height: 100%; }
.aos-project-brief { font-size: 18px; line-height: 1.7; }
.aos-project-cta { background: var(--aos-dark); color: #d6d6d8; border-radius: 24px; padding: 36px; }
.aos-project-cta h3 { color: #fff; font-size: 28px; font-weight: 400; margin-bottom: 12px; }
.aos-project-cta p { color: #bdbdc1; margin-bottom: 24px; }
.aos-project-cta .tl-primary-btn { background: #fff; color: var(--aos-dark); }
.aos-project-cta .tl-primary-btn:hover { color: var(--aos-dark); }
.aos-project-gallery .aos-gallery-item { display: block; aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden; }
.aos-project-gallery .aos-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.aos-project-gallery .aos-gallery-item:hover img { transform: scale(1.04); }
.aos-project-nav { display: flex; justify-content: space-between; gap: 20px; margin-top: 60px; padding-top: 30px; border-top: 1px solid #e1e1e2; }
.aos-project-nav a { font-size: 22px; color: var(--tl-color-heading-primary); max-width: 48%; }
.aos-project-nav a span { display: block; font-size: 14px; color: #9f9fa4; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; }
.aos-project-nav a.next { text-align: right; margin-left: auto; }
.aos-project-nav a:hover { color: var(--tl-color-theme-primary); }
@media (max-width: 767px) {
    .aos-project-nav a { font-size: 18px; }
    .aos-project-cta { padding: 28px; }
}

/* About page — team */
.aos-team-section .team-item-7 .team-thumb { background: #efe7da; }
.aos-team-initial { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-family: var(--tl-ff-heading); font-size: 120px; color: var(--tl-color-theme-primary); }
.aos-team-section .team-item-7 .team-thumb .team-social li a { border-radius: 50%; }
.aos-team-bio { margin: 14px 0 0; font-size: 15px; line-height: 1.6; }

/* Careers page */
.aos-jobs { margin-top: 60px; }
.aos-jobs .faq-accordion .accordion-item { border-top: 1px solid rgba(159, 159, 164, .24); padding-top: 30px; }
.aos-jobs .faq-accordion .accordion-item .accordion-button { flex-wrap: wrap; row-gap: 8px; text-align: left; }
.aos-jobs .aos-job-title { display: block; width: 100%; font-size: 30px; line-height: 1.2; }
.aos-jobs .aos-job-meta { display: block; width: 100%; font-size: 15px; color: #9f9fa4; letter-spacing: .3px; }
.aos-jobs .accordion-button:not(.collapsed) .aos-job-meta { color: var(--tl-color-heading-primary); }
.aos-jobs .faq-accordion .accordion-item .accordion-body { max-width: 860px; }
.aos-job-text { margin-bottom: 20px; }
.aos-job-sub { font-size: 20px; font-weight: 500; margin: 10px 0 14px; }
.aos-job-list { margin: 0 0 28px; padding: 0; }
.aos-job-list li { list-style: none; margin-bottom: 8px; }
.aos-job-list li i { color: var(--tl-color-theme-primary); margin-right: 8px; }
.aos-job-hint { font-size: 14px; color: #9f9fa4; margin: 14px 0 0; }
.aos-jobs-empty { margin-top: 60px; }
@media (max-width: 767px) { .aos-jobs .aos-job-title { font-size: 24px; } }

/* ==========================================================================
   13. Step 6 — "Page not found" (404)
   ========================================================================== */
.aos-error-inner { max-width: 760px; margin: 0 auto; text-align: center; }
.aos-error-code {
    display: block;
    font-family: var(--tl-ff-heading);
    font-size: clamp(90px, 20vw, 180px);
    line-height: 1;
    letter-spacing: -3px;
    color: var(--tl-color-theme-primary);
}
.aos-error-title { font-size: clamp(26px, 4vw, 40px); margin: 22px 0 14px; }
.aos-error-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 32px 0 10px; }
.aos-error-links { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--tl-color-border-1); }
.aos-error-links h3 { font-size: 22px; margin-bottom: 18px; }
.aos-error-links ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.aos-error-links a {
    display: inline-block;
    padding: 8px 18px;
    border: 1px solid var(--tl-color-border-1);
    border-radius: 100px;
    font-size: 15px;
    transition: all .3s ease;
}
.aos-error-links a:hover { border-color: var(--tl-color-theme-primary); color: var(--tl-color-theme-primary); }
.aos-error-call { margin: 34px 0 0; }
.aos-error-call a { color: var(--tl-color-theme-primary); font-weight: 600; }

/* ==========================================================================
   14. Contact page — intro, "talk to us" card, enquiry form card, map
   ========================================================================== */
.aos-contact-head { display: block; max-width: 760px; margin: 0 auto 60px; text-align: center; }
.aos-contact-head .sub-heading { margin-bottom: 18px; }
.aos-contact-head .section-title { display: block; margin-bottom: 18px; }
.aos-contact-head p { max-width: 560px; margin: 0 auto; font-size: 18px; }

.aos-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 30px;
    align-items: stretch;
}

/* dark card */
.aos-contact-card {
    background: var(--tl-color-bg-1, #1C1C1D);
    color: #c9c7c3;
    border-radius: 24px;
    padding: 48px 44px;
}
.aos-contact-card h3 { color: #fff; font-size: 32px; margin-bottom: 10px; }
.aos-contact-lead { color: #a8a6a1; margin-bottom: 26px; }
.aos-contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 34px; }
.aos-pill {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 50px; padding: 0 24px; border-radius: 100px;
    font-family: var(--tl-ff-heading); font-size: 16px; line-height: 1;
    transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
.aos-pill i { font-size: 18px; }
.aos-pill:hover { transform: translateY(-2px); }
.aos-pill-whatsapp { background: #25D366; color: #fff; }
.aos-pill-whatsapp:hover { color: #fff; background: #1ebe5a; }
.aos-pill-call { background: var(--tl-color-theme-primary); color: #fff; }
.aos-pill-call:hover { color: #1C1C1D; background: #fff; }

.aos-contact-list { list-style: none; padding: 0; margin: 0; }
.aos-contact-list li {
    display: flex; gap: 18px; align-items: flex-start;
    padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, .1);
}
.aos-contact-list li:last-child { border-bottom: 1px solid rgba(255, 255, 255, .1); }
.aos-contact-icon {
    flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(202, 160, 92, .14); color: var(--tl-color-theme-primary); font-size: 18px;
}
.aos-contact-label {
    display: block; margin-bottom: 6px;
    font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #8d8b86;
}
.aos-contact-list a, .aos-contact-list p { display: block; color: #fff; font-size: 17px; line-height: 1.6; margin: 0; word-break: break-word; }
.aos-contact-list a:hover { color: var(--tl-color-theme-primary); }
.aos-contact-list .aos-contact-muted { color: #a8a6a1; font-size: 15px; margin-top: 4px; }
.aos-contact-list .aos-contact-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--tl-color-theme-primary); font-size: 15px; }
.aos-contact-list .aos-contact-link:hover { color: #fff; }

.aos-contact-next { margin-top: 30px; }
.aos-contact-next h4 { color: #fff; font-size: 18px; letter-spacing: .01em; margin-bottom: 16px; }
.aos-contact-next ol { list-style: none; counter-reset: step; padding: 0; margin: 0; }
.aos-contact-next li { counter-increment: step; position: relative; padding-left: 42px; margin-bottom: 14px; color: #c9c7c3; }
.aos-contact-next li::before {
    content: counter(step);
    position: absolute; left: 0; top: 0;
    width: 28px; height: 28px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid rgba(202, 160, 92, .6); color: var(--tl-color-theme-primary);
    font-size: 13px; font-family: var(--tl-ff-heading);
}

/* white form card */
.aos-form-card {
    background: #fff;
    border-radius: 24px;
    padding: 48px 48px 40px;
    box-shadow: 0 20px 60px rgba(25, 25, 25, .06);
}
.aos-form-card h3 { font-size: 32px; margin-bottom: 8px; }
.aos-form-note { color: #7d7c80; font-size: 15px; margin-bottom: 30px; }
.aos-field-row { display: contents; }
.aos-form-card .form-item { margin-bottom: 22px; }
.aos-form-card .form-title { display: block; color: var(--tl-color-heading-primary); font-size: 15px; font-weight: 500; margin-bottom: 8px; }
.aos-optional { color: #9f9fa4; font-weight: 400; }
.aos-form-card .form-control,
.aos-form-card .aos-quote-form .nice-select {
    width: 100%;
    min-height: 54px;
    margin-bottom: 0;
    padding: 14px 18px;
    font-size: 16px;
    color: var(--tl-color-heading-primary);
    background: #f7f6f3;
    border: 1px solid #e3e1dc;
    border-radius: 14px;
    box-shadow: none;
    transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.aos-form-card textarea.form-control { min-height: 130px; resize: vertical; }
.aos-form-card .form-control::placeholder { color: #9f9fa4; }
.aos-form-card .form-control:focus,
.aos-form-card .aos-quote-form .nice-select:focus,
.aos-form-card .aos-quote-form .nice-select.open {
    outline: none;
    background: #fff;
    border-color: var(--tl-color-theme-primary);
    box-shadow: 0 0 0 4px rgba(202, 160, 92, .16);
}
.aos-form-card .aos-quote-form .nice-select { display: flex; align-items: center; height: 54px; line-height: 1.2; padding-top: 0; padding-bottom: 0; }
.aos-form-card .aos-quote-form .nice-select .current { color: var(--tl-color-heading-primary); }
.aos-form-card .aos-quote-form .nice-select .list { border-radius: 14px; margin-top: 6px; box-shadow: 0 16px 40px rgba(25, 25, 25, .12); }
.aos-form-card .aos-invalid .form-control,
.aos-form-card .aos-invalid .nice-select { margin-bottom: 0 !important; border-color: var(--aos-error) !important; background: #fff; }
.aos-form-card .aos-invalid .aos-error { margin-bottom: 0; }
.aos-form-card .aos-consent { margin: 6px 0 28px; }
.aos-form-card .aos-consent .form-check-input { width: 1.15em; height: 1.15em; margin-top: .2em; border-color: #c9c6bf; }
.aos-form-card .aos-consent .form-check-label { font-size: 15px; }
.aos-form-submit .tl-primary-btn { border: 1px solid rgba(159, 159, 164, .64); }
.aos-form-submit .tl-primary-btn:hover { border-color: var(--tl-color-theme-primary); }

/* map */
.aos-map-frame { border-radius: 24px; overflow: hidden; line-height: 0; background: #e9e8e4; }
.aos-map-frame iframe { display: block; filter: grayscale(.35); }

@media (max-width: 1199px) {
    .aos-contact-card, .aos-form-card { padding: 40px 32px; }
}
@media (max-width: 991px) {
    .aos-contact-grid { grid-template-columns: 1fr; }
    .aos-form-card { order: -1; }            /* form first on tablets and phones */
    .aos-contact-head { margin-bottom: 40px; }
}
@media (max-width: 575px) {
    .aos-contact-card, .aos-form-card { padding: 30px 20px; border-radius: 20px; }
    .aos-contact-card h3, .aos-form-card h3 { font-size: 26px; }
    .aos-contact-actions .aos-pill { flex: 1 1 100%; }
    .aos-map-frame iframe { height: 320px; }
}

/* map placeholder until "Show map" / Functional cookies (assets/js/addon.js § 7) */
.aos-map-frame[data-aos-map]:not(.is-loaded) {
    display: flex; align-items: center; justify-content: center;
    min-height: 420px; line-height: normal;
    background-color: #ecebe7;
    background-image:
        linear-gradient(rgba(28, 28, 29, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(28, 28, 29, .045) 1px, transparent 1px);
    background-size: 44px 44px;
}
.aos-map-placeholder { max-width: 480px; padding: 48px 24px; text-align: center; }
.aos-map-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 64px; height: 64px; border-radius: 50%;
    background: #fff; color: var(--tl-color-theme-primary); font-size: 24px;
    box-shadow: 0 10px 30px rgba(25, 25, 25, .08);
}
.aos-map-placeholder h3 { font-size: 26px; margin: 20px 0 8px; }
.aos-map-placeholder p { margin-bottom: 24px; }
.aos-map-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 24px; }
.aos-map-actions .aos-pill { border: 0; }
.aos-map-link { display: inline-flex; align-items: center; gap: 8px; color: var(--tl-color-heading-primary); font-family: var(--tl-ff-heading); text-decoration: underline; text-underline-offset: 4px; }
.aos-map-link:hover { color: var(--tl-color-theme-primary); }
@media (max-width: 575px) {
    .aos-map-frame[data-aos-map]:not(.is-loaded) { min-height: 320px; }
}

/* ==========================================================================
   15. Website policies — /privacy-policy, /terms-and-conditions, /cookie-policy
       (text from Admin › Legal & privacy; site/legal.blade.php)
   ========================================================================== */
.aos-legal-title { overflow-wrap: anywhere; }
.aos-legal-article {
    max-width: 920px; margin: 0 auto;
    background: #fff; border-radius: 24px;
    padding: 64px 72px;
    box-shadow: 0 20px 60px rgba(25, 25, 25, .06);
}
.aos-legal-preview {
    display: flex; gap: 14px; align-items: flex-start;
    margin-bottom: 36px; padding: 16px 20px;
    background: rgba(202, 160, 92, .12); border: 1px solid rgba(202, 160, 92, .45); border-radius: 14px;
    color: #6d5226;
}
.aos-legal-preview i { margin-top: 5px; color: #9c7536; }
.aos-legal-preview p { margin: 0; color: inherit; }
.aos-legal-meta {
    display: flex; flex-wrap: wrap; gap: 10px;
    margin-bottom: 40px; padding-bottom: 28px; border-bottom: 1px solid #ebe9e4;
}
.aos-legal-meta span {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 14px; border-radius: 100px; background: #f5f4f0;
    font-size: 14px; color: #5d5c60;
}
.aos-legal-meta i { color: var(--tl-color-theme-primary); }

/* the policy text (only what the editor can produce: headings, lists, links, tables, quotes, rules) */
.aos-legal-body { font-size: 17px; line-height: 1.75; color: var(--tl-color-text-body); overflow-wrap: break-word; }
.aos-legal-body > :first-child { margin-top: 0; }
.aos-legal-body p { font-size: inherit; line-height: inherit; margin: 0 0 18px; }
.aos-legal-body h1, .aos-legal-body h2, .aos-legal-body h3,
.aos-legal-body h4, .aos-legal-body h5, .aos-legal-body h6 {
    color: var(--tl-color-heading-primary); font-weight: 500; line-height: 1.25;
    margin: 44px 0 16px; scroll-margin-top: 120px;
}
.aos-legal-body h1 { font-size: 40px; }
.aos-legal-body h2 { font-size: 30px; }
.aos-legal-body h3 { font-size: 22px; margin-top: 32px; }
.aos-legal-body h4 { font-size: 19px; margin-top: 28px; }
.aos-legal-body h5 { font-size: 17px; margin-top: 24px; }
.aos-legal-body h6 { font-size: 14px; margin-top: 24px; letter-spacing: .08em; text-transform: uppercase; }
.aos-legal-body ul, .aos-legal-body ol { margin: 0 0 22px; padding-left: 26px; }
.aos-legal-body ul { list-style: disc; }
.aos-legal-body ol { list-style: decimal; }
.aos-legal-body ul ul { list-style: circle; }
.aos-legal-body li { margin-bottom: 8px; padding-left: 4px; }
.aos-legal-body li::marker { color: var(--tl-color-theme-primary); }
.aos-legal-body ul ul, .aos-legal-body ol ol, .aos-legal-body ul ol, .aos-legal-body ol ul { margin: 8px 0 0; }
.aos-legal-body a { color: #9c7536; text-decoration: underline; text-underline-offset: 3px; }
.aos-legal-body a:hover { color: var(--tl-color-heading-primary); }
.aos-legal-body strong, .aos-legal-body b { color: var(--tl-color-heading-primary); font-weight: 600; }
.aos-legal-body blockquote {
    margin: 0 0 22px; padding: 18px 24px;
    border-left: 3px solid var(--tl-color-theme-primary); border-radius: 0 14px 14px 0;
    background: #faf8f4; font-style: italic;
}
.aos-legal-body blockquote p:last-child { margin-bottom: 0; }
.aos-legal-body hr { margin: 36px 0; border: 0; border-top: 1px solid #e3e1dc; opacity: 1; }
.aos-table-wrap { margin: 0 0 24px; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e3e1dc; border-radius: 14px; }
.aos-legal-body table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: 15px; line-height: 1.55; }
.aos-legal-body th, .aos-legal-body td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid #ebe9e4; }
.aos-legal-body th + th, .aos-legal-body td + td { border-left: 1px solid #ebe9e4; }
.aos-legal-body thead th, .aos-legal-body tr:first-child th { background: #f7f6f3; color: var(--tl-color-heading-primary); font-weight: 600; }
.aos-legal-body tbody tr:last-child td { border-bottom: 0; }

.aos-legal-cta {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px;
    margin-top: 44px; padding: 24px 28px; border-radius: 18px; background: #f7f6f3;
}
.aos-legal-cta p { margin: 0; color: var(--tl-color-heading-primary); }
.aos-legal-cta .tl-primary-btn { border: 1px solid rgba(159, 159, 164, .64); }

.aos-legal-empty { padding: 30px 0 10px; text-align: center; }
.aos-legal-empty-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 72px; height: 72px; border-radius: 50%;
    background: rgba(202, 160, 92, .14); color: var(--tl-color-theme-primary); font-size: 28px;
}
.aos-legal-empty h2 { font-size: 34px; margin: 22px 0 12px; }
.aos-legal-empty p { max-width: 520px; margin: 0 auto 30px; font-size: 17px; }
.aos-legal-empty-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 28px; }
.aos-legal-empty .tl-primary-btn { border: 1px solid rgba(159, 159, 164, .64); }
.aos-legal-link { color: var(--tl-color-heading-primary); font-family: var(--tl-ff-heading); text-decoration: underline; text-underline-offset: 4px; }
.aos-legal-link:hover { color: var(--tl-color-theme-primary); }

@media (max-width: 991px) {
    .aos-legal-article { padding: 48px 40px; }
}
@media (max-width: 575px) {
    .aos-legal-article { padding: 32px 20px; border-radius: 20px; }
    .aos-legal-body { font-size: 16px; }
    .aos-legal-body h1 { font-size: 30px; }
    .aos-legal-body h2 { font-size: 24px; margin-top: 36px; }
    .aos-legal-body h3 { font-size: 20px; }
    .aos-legal-meta { margin-bottom: 28px; padding-bottom: 20px; }
    .aos-legal-empty h2 { font-size: 26px; }
}

/* footer: copyright + policy links + "Cookie Settings" */
.aos-copyright { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 30px; }
.aos-copyright .aos-legal-links { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 24px; margin: 0; padding: 0; list-style: none; }
.aos-copyright .aos-legal-links a,
.aos-cookie-settings-link {
    font-family: var(--tl-ff-body); font-size: 15px; font-weight: 400; color: #d0d0d0;
}
.aos-cookie-settings-link { padding: 0; border: 0; background: none; cursor: pointer; transition: color .3s ease; }
.aos-copyright .aos-legal-links a:hover,
.aos-cookie-settings-link:hover { color: var(--tl-color-theme-primary); }
@media (max-width: 991px) {
    .aos-copyright { flex-direction: column; justify-content: center; }
    .aos-copyright .aos-legal-links { justify-content: center; }
}

/* ==========================================================================
   16. Cookie consent — banner, preferences window, switches
       (site/partials/cookie-consent.blade.php + assets/js/addon-consent.js)
   ========================================================================== */
.aos-cookie-banner {
    position: fixed; left: 24px; right: 24px; bottom: 24px; z-index: 1000;   /* above the WhatsApp button */
    max-width: 1120px; margin: 0 auto;
    padding: 26px 30px;
    background: var(--aos-dark); color: #c9c7c3;
    border: 1px solid rgba(255, 255, 255, .08); border-radius: 22px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
    opacity: 0; transform: translateY(24px);
    transition: opacity .35s ease, transform .35s ease;
}
.aos-cookie-banner.is-visible { opacity: 1; transform: none; }
.aos-cookie-banner[hidden] { display: none; }
.aos-cookie-inner { display: flex; align-items: center; gap: 32px; }
.aos-cookie-text { flex: 1 1 auto; min-width: 0; }
.aos-cookie-title { display: flex; align-items: center; gap: 12px; margin: 0 0 8px; color: #fff; font-size: 22px; font-weight: 500; }
.aos-cookie-icon {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 38px;
    width: 38px; height: 38px; border-radius: 50%;
    background: rgba(202, 160, 92, .16); color: var(--tl-color-theme-primary); font-size: 17px;
}
.aos-cookie-text p { margin: 0; color: #c9c7c3; font-size: 15px; line-height: 1.6; }
.aos-cookie-text a { color: var(--tl-color-theme-primary); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.aos-cookie-text a:hover { color: #fff; }
.aos-cookie-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; flex: 0 0 auto; max-width: 480px; }

.aos-cookie-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 48px; padding: 0 22px;
    border: 1px solid transparent; border-radius: 100px;
    font-family: var(--tl-ff-heading); font-size: 15px; line-height: 1.1; letter-spacing: .01em;
    cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.aos-cookie-btn:focus-visible, .aos-cookie-close:focus-visible, .aos-cookie-settings-link:focus-visible,
.aos-switch:focus-visible { outline: 2px solid var(--tl-color-theme-primary); outline-offset: 3px; }
.aos-cookie-btn-primary { background: var(--tl-color-theme-primary); border-color: var(--tl-color-theme-primary); color: var(--aos-dark); }
.aos-cookie-btn-primary:hover { background: #fff; border-color: #fff; color: var(--aos-dark); }
.aos-cookie-btn-outline { background: transparent; border-color: rgba(255, 255, 255, .45); color: #fff; }
.aos-cookie-btn-outline:hover { background: #fff; border-color: #fff; color: var(--aos-dark); }
.aos-cookie-btn-link { padding: 0 10px; background: none; color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.aos-cookie-btn-link:hover { color: var(--tl-color-theme-primary); }

/* preferences window (<dialog>) */
.aos-cookie-modal {
    width: min(640px, calc(100vw - 32px)); max-height: min(88vh, 780px);
    margin: auto; padding: 0;
    border: 0; border-radius: 24px;
    background: #fff; color: var(--tl-color-text-body);
    box-shadow: 0 30px 90px rgba(0, 0, 0, .35);
    overflow: hidden;
}
.aos-cookie-modal[open] { display: flex; }
.aos-cookie-modal::backdrop { background: rgba(16, 12, 6, .55); }
html.aos-cookie-modal-open { overflow: hidden; }
.aos-cookie-modal-inner { display: flex; flex-direction: column; width: 100%; max-height: inherit; }
.aos-cookie-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 26px 30px 18px; border-bottom: 1px solid #efede8; }
.aos-cookie-modal-head h2 { margin: 0; font-size: 26px; font-weight: 500; }
.aos-cookie-close {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 42px;
    width: 42px; height: 42px; border: 0; border-radius: 50%;
    background: #f4f3ef; color: var(--tl-color-heading-primary); font-size: 18px; cursor: pointer;
}
.aos-cookie-close:hover { background: var(--aos-dark); color: #fff; }
.aos-cookie-modal-body { padding: 22px 30px 10px; overflow-y: auto; overscroll-behavior: contain; }
.aos-cookie-intro { margin-bottom: 18px; font-size: 15px; line-height: 1.6; }
.aos-cookie-intro a { color: #9c7536; text-decoration: underline; text-underline-offset: 3px; }
.aos-cookie-cats { margin: 0; padding: 0; list-style: none; }
.aos-cookie-cat { margin-bottom: 12px; padding: 18px 20px; border: 1px solid #ebe9e4; border-radius: 16px; background: #fbfaf8; }
.aos-cookie-cat-head { display: flex; align-items: center; gap: 12px; }
.aos-cookie-cat-title { margin-right: auto; color: var(--tl-color-heading-primary); font-family: var(--tl-ff-heading); font-size: 18px; cursor: pointer; }
.aos-cookie-always { padding: 4px 10px; border-radius: 100px; background: #e5f2ea; color: #276b44; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
.aos-cookie-cat p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; }
.aos-cookie-modal-foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 18px 30px 26px; border-top: 1px solid #efede8; }
.aos-cookie-modal .aos-cookie-btn-outline { border-color: #d6d3cc; color: var(--tl-color-heading-primary); }
.aos-cookie-modal .aos-cookie-btn-outline:hover { background: var(--aos-dark); border-color: var(--aos-dark); color: #fff; }
.aos-cookie-modal .aos-cookie-btn-primary:hover { background: var(--aos-dark); border-color: var(--aos-dark); color: #fff; }

/* on/off switch (checkbox role="switch") */
.aos-switch {
    -webkit-appearance: none; appearance: none;
    position: relative; flex: 0 0 50px; width: 50px; height: 28px; margin: 0;
    border: 0; border-radius: 100px; background: #c9c6bf; cursor: pointer;
    transition: background-color .2s ease;
}
.aos-switch::before {
    content: ""; position: absolute; top: 3px; left: 3px;
    width: 22px; height: 22px; border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25);
    transition: transform .2s ease;
}
.aos-switch:checked { background: #9c7536; }
.aos-switch:checked::before { transform: translateX(22px); }
.aos-switch:disabled { cursor: not-allowed; opacity: .6; }

/* admin preview feedback */
.aos-cookie-toast {
    position: fixed; top: 24px; left: 50%; z-index: 1001; transform: translateX(-50%);
    max-width: calc(100vw - 32px); padding: 12px 22px; border-radius: 100px;
    background: var(--aos-dark); color: #fff; font-size: 15px; box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
}
.aos-cookie-toast[hidden] { display: none; }

@media (max-width: 991px) {
    .aos-cookie-inner { flex-direction: column; align-items: stretch; gap: 18px; }
    .aos-cookie-actions { justify-content: flex-start; max-width: none; }
}
@media (max-width: 575px) {
    .aos-cookie-banner { left: 12px; right: 12px; bottom: 12px; padding: 20px 18px; border-radius: 18px; }
    .aos-cookie-title { font-size: 19px; }
    .aos-cookie-text p { font-size: 14px; }
    .aos-cookie-actions .aos-cookie-btn-primary,
    .aos-cookie-actions .aos-cookie-btn-outline { flex: 1 1 calc(50% - 5px); padding: 0 12px; }
    .aos-cookie-actions .aos-cookie-btn-link { flex: 1 1 100%; min-height: 40px; }
    .aos-cookie-modal { width: calc(100vw - 20px); max-height: 92vh; border-radius: 20px; }
    .aos-cookie-modal-head, .aos-cookie-modal-body, .aos-cookie-modal-foot { padding-left: 20px; padding-right: 20px; }
    .aos-cookie-modal-foot { padding-top: 14px; padding-bottom: 18px; gap: 8px; }
    .aos-cookie-modal-foot .aos-cookie-btn { flex: 1 1 calc(50% - 4px); min-height: 44px; padding: 0 10px; font-size: 14px; }
    .aos-cookie-modal-foot .aos-cookie-btn-primary { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .aos-cookie-banner, .aos-switch, .aos-switch::before { transition: none; }
}
