/* =========================================================
   xpressmac.online — inner pages (store, product, lists, search,
   checkout shell, orders, receipt). Loaded after xpressmac.css + xm-live.css.
   ========================================================= */

.xm-main { display: block; min-height: 50vh; padding-bottom: 8px; }
.xm-main > .crumbs:first-child { margin-top: 16px; }

/* legacy Bootstrap modals from the old footer: hidden until Bootstrap JS opens them */
body:not(.xm-legacy) .xm-legacy-modals .modal { display: none; position: fixed; inset: 0; z-index: 1050; overflow: auto; background: rgba(11, 31, 58, .5); }
body:not(.xm-legacy) .xm-legacy-modals .modal.show { display: block; }
body:not(.xm-legacy) .xm-legacy-modals .modal-dialog { max-width: 520px; margin: 10vh auto; padding: 0 16px; }
body:not(.xm-legacy) .xm-legacy-modals .modal-content { background: #fff; border-radius: 16px; padding: 18px; box-shadow: var(--shadow-lg); }
body:not(.xm-legacy) .xm-legacy-modals .modal-footer, body:not(.xm-legacy) .xm-legacy-modals .modal-header { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
body:not(.xm-legacy) .xm-legacy-modals .close { border: 0; background: none; font-size: 22px; }
body:not(.xm-legacy) .modal-backdrop { display: none; }
body:not(.xm-legacy) .modal:not(.show) { display: none !important; }
body:not(.xm-legacy) .modal.show { display: block; position: fixed; inset: 0; z-index: 1050; overflow: auto; background: rgba(11, 31, 58, .5); }
body:not(.xm-legacy) .modal.show .modal-dialog { max-width: 520px; margin: 10vh auto; padding: 0 16px; }
body:not(.xm-legacy) .modal.show .modal-content { background: #fff; border-radius: 16px; padding: 18px; }
/* old off-canvas mobile menu built by the legacy footer script — the new header replaces it */
.xm-page .hc-offcanvas-nav, .xm-page .hc-nav-trigger, .xm-page #main-nav { display: none !important; }
#overlay { position: fixed; inset: 0; z-index: 300; background: rgba(255, 255, 255, .55); display: grid; place-items: center; }
#overlay img { width: 56px; height: 56px; }

/* ---------- store header ---------- */
.shophead__avatar { overflow: hidden; }
.shophead__avatar.has-img, .shophead__avatar img { background: #fff; }
.shophead__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.openstat.is-closed { background: #FDECEC; color: var(--hot); }
.shophead__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.shophead__meta span { display: inline-flex; align-items: center; gap: 4px; }
[data-store-fav].is-on { border-color: var(--green); color: var(--green-d); }
.xm-catpills { margin: -4px 0 14px; flex-wrap: wrap; }
.xm-coupon-list { display: flex; flex-wrap: wrap; gap: 10px; }
.xm-coupon { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; border: 1.5px dashed var(--green); background: var(--brand-tint-2); border-radius: 12px; padding: 8px 14px; cursor: pointer; text-align: left; }
.xm-coupon b { font: 700 15px/1.2 'Poppins', sans-serif; color: var(--green-d); letter-spacing: .04em; }
.xm-coupon span { font-size: 12px; color: var(--muted); }
.xm-coupon:hover { background: var(--brand-tint); }
.card.is-soldout .card__img img { filter: grayscale(.8); opacity: .7; }
.card--shop .card__img .rcard__flag { top: 10px; bottom: auto; }

/* ---------- product page ---------- */
.pick__gallery { display: flex; flex-direction: column; gap: 10px; }
.pick__img { position: relative; }
.pick__img img, .pick__img video { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.pick__thumbs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
.pick__thumb { flex: none; width: 64px; height: 64px; border-radius: 10px; overflow: hidden; border: 2px solid transparent; background: #F3F4F6; padding: 0; cursor: pointer; }
.pick__thumb img { width: 100%; height: 100%; object-fit: cover; }
.pick__thumb.is-active { border-color: var(--green); }
.pick__desc { color: #374151; font-size: 14px; line-height: 1.6; margin: 4px 0 12px; white-space: pre-line; }
.pick__meta a, .pick__store a { color: var(--green-d); font-weight: 600; }
.pick__store { font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.pick__stock { font-size: 12.5px; color: var(--muted); }
.pick__stock.is-low { color: var(--hot); font-weight: 600; }
.pick__fav { border: 1.5px solid var(--line); background: #fff; border-radius: 999px; width: 40px; height: 40px; display: inline-grid; place-items: center; font-size: 18px; cursor: pointer; }
.pick__fav.is-on { color: var(--hot); border-color: var(--hot); }
.pick__buy .btn { min-width: 150px; }
.pick__buy .add-to-cart[disabled] { opacity: .5; cursor: not-allowed; }
.xm-addons { margin: 6px 0 14px; }
.xm-addons__title, .xm-attr__title { font-size: 13px; font-weight: 700; margin-bottom: 8px; }
.xm-addon { display: flex; align-items: center; gap: 10px; border: 1.5px solid var(--line); border-radius: 10px; padding: 9px 12px; margin-bottom: 6px; cursor: pointer; font-size: 13.5px; }
.xm-addon input { width: 18px; height: 18px; accent-color: var(--green); }
.xm-addon span { margin-left: auto; color: var(--muted); font-weight: 600; }
.xm-addon:has(input:checked) { border-color: var(--green); background: var(--brand-tint-2); }
/* variant pickers generated by the existing getVariantsHtml() */
.attribute_list { margin: 4px 0 12px; }
.attribute_list .attribute-drp { margin-bottom: 10px; }
.attribute_list .attribute-drp > h3, .attribute_list h3, .attribute_list label.attribute-title { font-size: 13px; font-weight: 700; margin: 0 0 8px; }
.attribute_list ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.attribute_list .attribute-selection, .attribute_list li { list-style: none; }
.attribute_list .attribute-selection label, .attribute_list li label, .attribute_list .custom-control-label { display: inline-flex; align-items: center; border: 1.5px solid var(--line); border-radius: 999px; padding: 6px 14px; font-size: 13px; font-weight: 600; cursor: pointer; background: #fff; }
.attribute_list input[type=radio], .attribute_list input[type=checkbox] { position: absolute; opacity: 0; pointer-events: none; }
.attribute_list input:checked + label, .attribute_list input:checked + .custom-control-label { border-color: var(--green); background: var(--brand-tint); color: var(--green-d); }
.variation_info { display: flex; flex-direction: column; gap: 2px; }
#variant_price { font: 700 28px/1.1 'Poppins', sans-serif; color: var(--ink); }
#variant_qty { font-size: 12.5px; color: var(--muted); }
.xm-specs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.xm-specs dt, .xm-specs dd { margin: 0; padding: 9px 14px; font-size: 13px; border-bottom: 1px solid var(--line); }
.xm-specs dt { background: #F9FAFB; color: var(--muted); font-weight: 600; }
.xm-specs > :nth-last-child(-n+2) { border-bottom: 0; }
.xm-reviews .rev { border-bottom: 1px solid var(--line); padding: 12px 0; }
.xm-reviews .rev:last-child { border-bottom: 0; }
.xm-reviews .rev b { font-size: 13.5px; }
.xm-reviews .rev small { color: var(--muted); margin-left: 6px; }
.xm-reviews .rev p { font-size: 13.5px; color: #374151; margin-top: 4px; }
.xm-reviews .rev .stars { color: #E8A10B; letter-spacing: 1px; }
.xm-reviews .rev .rev__photos { display: flex; gap: 6px; margin-top: 6px; }
.xm-reviews .rev .rev__photos img { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; }
.xm-twocol { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 16px; }
.xm-twocol > .vsec { width: auto; margin-top: 16px; }
@media (max-width: 960px) { .xm-twocol { grid-template-columns: minmax(0, 1fr); } }
.xm-trust { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.xm-trust li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; }
.xm-trust li .ico { width: 22px; height: 22px; }

/* compact product rows (more from this store) */
.xm-mini-list { display: flex; flex-direction: column; gap: 4px; }
.xm-mrow { display: flex; gap: 10px; align-items: center; padding: 6px; border-radius: 10px; }
.xm-mrow:hover { background: var(--brand-tint-2); }
.xm-mrow img { width: 54px; height: 54px; border-radius: 8px; object-fit: cover; background: #F3F4F6; flex: none; }
.xm-mrow span { display: flex; flex-direction: column; min-width: 0; }
.xm-mrow b { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.xm-mrow em { font-style: normal; font-weight: 700; font-size: 13px; }
.xm-mrow s { color: #9CA3AF; font-weight: 400; font-size: 12px; }
.xm-pd-store { padding-top: 14px; padding-bottom: 14px; }
.xm-pd-store .shophead__avatar a, .xm-pd-store .shophead__avatar img { display: block; width: 100% !important; height: 100% !important; border-radius: inherit !important; object-fit: cover; }
.xm-pd-store h1 a { color: inherit; }
.pick__closed { margin-top: 8px; }
.attribute_list .attribute-options { display: flex; flex-wrap: wrap; gap: 8px; }
.attribute_list .attribute-selection { position: relative; padding: 0 !important; border: 0 !important; }
.attribute_list .attribute-label { font-size: 13px; font-weight: 700; margin: 0 0 8px; }

/* ---------- list / search pages ---------- */
.xm-listhead { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; }
.xm-listhead h1 { font: 700 22px/1.2 'Poppins', sans-serif; }
.xm-listhead .shoptools { margin-left: auto; }
.xm-listlayout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 16px; align-items: start; }
.xm-listlayout .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.xm-listlayout .vsec { width: auto; margin-top: 0; }
.xm-listlayout--full, .xm-listlayout:has(> .xm-side[hidden]) { grid-template-columns: minmax(0, 1fr); }
.xm-listlayout--full .grid, .xm-listlayout:has(> .xm-side[hidden]) .grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.xm-listmain { min-width: 0; }
.xm-listhead h1 { margin: 0; }
.xm-tabs .pill b { margin-left: 4px; font-weight: 700; }
.xm-side { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 14px 0; position: sticky; top: 140px; max-height: calc(100vh - 160px); overflow-y: auto; }
.xm-side h3 { font: 600 14px 'Poppins', sans-serif; padding: 0 16px 8px; }
.xm-side a { display: flex; align-items: center; gap: 10px; padding: 7px 16px; font-size: 13px; }
.xm-side a img { width: 22px; height: 22px; border-radius: 6px; object-fit: cover; }
.xm-side a:hover, .xm-side a.is-current { background: var(--brand-tint-2); color: var(--green-d); font-weight: 600; }
@media (max-width: 960px) {
    .xm-listlayout { grid-template-columns: minmax(0, 1fr); }
    .xm-side { position: static; max-height: none; display: flex; overflow-x: auto; padding: 8px; gap: 4px; }
    .xm-side h3 { display: none; }
    .xm-side a { white-space: nowrap; border-radius: 999px; padding: 6px 12px; }
    .xm-listlayout .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1200px) { .xm-listlayout--full .grid, .xm-listlayout:has(> .xm-side[hidden]) .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 960px) { .xm-listlayout--full .grid, .xm-listlayout:has(> .xm-side[hidden]) .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 680px) { .xm-listlayout .grid, .xm-listlayout--full .grid, .xm-listlayout:has(> .xm-side[hidden]) .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .xm-listhead .shoptools { margin-left: 0; width: 100%; } }
.xm-searchbar { display: flex; gap: 8px; margin-bottom: 14px; }
.xm-searchbar input { flex: 1; min-width: 0; height: 46px; border: 2px solid var(--navy); border-radius: 999px; padding: 0 20px; font: inherit; font-size: 15px; outline: 0; }
.xm-tabs { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }

/* ---------- orders ---------- */
.xm-ordertabs { display: flex; gap: 8px; flex-wrap: wrap; margin: 4px 0 14px; }
.orow { cursor: pointer; }
.orow__img { width: 46px; height: 46px; border-radius: 10px; object-fit: cover; background: #F3F4F6; flex: none; }
.ostat--done { background: var(--ok-bg); color: var(--ok); }
.ostat--bad { background: #FDECEC; color: var(--hot); }
.ostat--wait { background: #FFF4DC; color: #A16207; }
.ostat--go { background: #E8F1FD; color: #1D4ED8; }
.xm-orderacts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.xm-empty-state { text-align: center; padding: 34px 16px; color: var(--muted); }
.xm-empty-state b { display: block; color: var(--ink); font: 600 17px 'Poppins', sans-serif; margin-bottom: 6px; }

/* ---------- receipt (thermal / 80 mm style, matches the POS receipt template) ---------- */
.rcpt-bar { position: sticky; top: 0; z-index: 10; background: #243B5A; padding: 14px 16px; display: flex; justify-content: center; align-items: center; gap: 14px; flex-wrap: wrap; }
.rcpt-bar .rcpt-btn { height: 46px; padding: 0 22px; border-radius: 8px; border: 0; font: 600 17px 'Inter', sans-serif; cursor: pointer; }
.rcpt-bar .rcpt-print { background: #4CAF50; color: #fff; }
.rcpt-bar .rcpt-print:hover { background: #43A047; }
.rcpt-bar select { height: 46px; min-width: 280px; border-radius: 8px; border: 0; padding: 0 14px; font: 500 17px 'Inter', sans-serif; background: #fff; }
.rcpt-bar .rcpt-close { background: #EEF0F3; color: #111827; }
.rcpt-page { background: #E9ECEF; min-height: 100vh; margin: 0; }
.rcpt-wrap { display: flex; justify-content: center; padding: 20px 12px 60px; }
.rcpt { width: 100%; max-width: 380px; background: #fff; padding: 18px 16px 24px; font-family: 'Courier New', Courier, 'Liberation Mono', monospace; font-size: 13.5px; line-height: 1.35; color: #111; box-shadow: 0 2px 10px rgba(0, 0, 0, .08); }
.rcpt * { box-sizing: border-box; }
.rcpt__center { text-align: center; }
.rcpt__store { font-size: 17px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.rcpt__logo { width: 64px; height: 64px; object-fit: contain; border-radius: 10px; margin: 0 auto 6px; display: block; background: #fff; }
.rcpt-page[data-paper="58"] .rcpt__logo { width: 52px; height: 52px; }
.rcpt__rule { border: 0; border-top: 1.5px dashed #333; margin: 10px 0; }
.rcpt__rule--thin { border-top: 1px dotted #999; margin: 8px 0; }
.rcpt__row { display: flex; justify-content: space-between; gap: 10px; }
.rcpt__row > :last-child { text-align: right; white-space: nowrap; }
.rcpt b, .rcpt__bold { font-weight: 700; }
.rcpt__head b { font-size: 14.5px; }
.rcpt__item { padding: 6px 0; border-bottom: 1px dotted #aaa; }
.rcpt__item:last-child { border-bottom: 0; }
.rcpt__sub { color: #444; font-size: 12.5px; }
.rcpt__extra { padding-left: 14px; }
.rcpt__total { font-size: 16px; font-weight: 700; }
.rcpt__foot { text-align: center; margin-top: 12px; font-size: 12.5px; }
.rcpt__muted { color: #555; }
.rcpt--gift .rcpt__money { visibility: hidden; }
.rcpt-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px; }
.rcpt-card .rcpt { box-shadow: none; max-width: 100%; padding: 6px 0; }
/* order QR */
.rcpt__qr { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.rcpt__qrimg { display: block; width: 34mm; height: 34mm; max-width: 60%; }
.rcpt__qrcap { font-size: 11.5px; }
.rcpt-card .rcpt__qrimg { width: 120px; height: 120px; }
/* long names wrap instead of pushing the price off the paper */
.rcpt__row > :first-child { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
.rcpt div, .rcpt span { overflow-wrap: anywhere; }
/* paper selector + on-screen preview width (80 mm ≈ 48 chars, 58 mm ≈ 32 chars) */
.rcpt-bar .rcpt-paper { min-width: 0; }
.rcpt-page[data-paper="80"] .rcpt { max-width: 380px; }
.rcpt-page[data-paper="58"] .rcpt { max-width: 270px; font-size: 12px; padding: 14px 10px 20px; }
.rcpt-page[data-paper="58"] .rcpt__store { font-size: 14px; }
.rcpt-page[data-paper="58"] .rcpt__head b { font-size: 12.5px; }
.rcpt-page[data-paper="58"] .rcpt__sub, .rcpt-page[data-paper="58"] .rcpt__foot, .rcpt-page[data-paper="58"] .rcpt__qrcap { font-size: 11px; }
.rcpt-page[data-paper="58"] .rcpt__total { font-size: 13.5px; }
.rcpt-page[data-paper="58"] .rcpt__extra { padding-left: 8px; }
.rcpt-page[data-paper="58"] .rcpt__row { gap: 6px; }
.rcpt-page[data-paper="58"] .rcpt__qrimg { width: 30mm; height: 30mm; max-width: 70%; }
/* print layout: applied while printing (JS adds .is-print on beforeprint so the page height can be measured) */
body.rcpt-page.is-print { background: #fff; margin: 0; }
.is-print .rcpt-bar { display: none !important; }
.is-print .rcpt-wrap { padding: 0; display: block; }
.is-print .rcpt { box-shadow: none; max-width: none; width: 72mm; padding: 0; margin: 0; font-size: 11px; color: #000; }
.is-print .rcpt__sub, .is-print .rcpt__muted { color: #000; }
.is-print .rcpt__store { font-size: 14px; }
.is-print .rcpt__total { font-size: 13.5px; }
.is-print .rcpt__sub, .is-print .rcpt__foot, .is-print .rcpt__qrcap { font-size: 10px; }
.is-print .rcpt__head b { font-size: 12.5px; }
.is-print .rcpt__qrimg { width: 34mm; height: 34mm; }
.is-print[data-paper="58"] .rcpt { width: 48mm; font-size: 9.5px; padding: 0; }
.is-print[data-paper="58"] .rcpt__store { font-size: 12px; }
.is-print[data-paper="58"] .rcpt__head b, .is-print[data-paper="58"] .rcpt__total { font-size: 11.5px; }
.is-print[data-paper="58"] .rcpt__sub, .is-print[data-paper="58"] .rcpt__foot, .is-print[data-paper="58"] .rcpt__qrcap { font-size: 9px; }
.is-print[data-paper="58"] .rcpt__qrimg { width: 28mm; height: 28mm; max-width: 60%; }
@media print {
    /* @page size is written by the paper selector (width) and measured before printing (height) */
    @page { size: 80mm 297mm; margin: 2mm 4mm; }
    html, body.rcpt-page { background: #fff; margin: 0; }
    .rcpt-bar, .no-print, .xm-toast { display: none !important; }
    .rcpt-wrap { padding: 0; display: block; }
    .rcpt { box-shadow: none; }
    .rcpt__item, .rcpt__qr { break-inside: avoid; page-break-inside: avoid; }
}

/* order details side column */
.xm-oside { font-size: 13.5px; color: #374151; background: #F9FAFB; border-radius: 12px; padding: 14px; }
.xm-oside p { margin: 0; }
.xm-oside a { color: var(--green-d); font-weight: 600; }
.track__step.is-bad b { color: var(--hot); }
.olines em { display: block; font-style: normal; font-size: 12px; color: var(--muted); }
.orow { display: flex; align-items: center; gap: 12px; }
.orow .orow__main { flex: 1; min-width: 0; }
.orow .orow__main span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 680px) { .orow { flex-wrap: wrap; } .orow .ostat { order: 3; } }

/* order confirmation */
.xm-success { text-align: center; padding: 26px 16px 8px; }
.xm-success__icon { width: 64px; height: 64px; border-radius: 50%; background: var(--ok-bg); color: var(--ok); display: inline-grid; place-items: center; font-size: 30px; margin-bottom: 10px; }
.xm-success h1 { font: 700 24px 'Poppins', sans-serif; margin-bottom: 6px; }
.xm-success p { color: var(--muted); }
.xm-success .xm-orderacts { justify-content: center; }
.xm-success-receipt { max-width: 420px; margin: 18px auto 0; }

/* product page: all items from the store + similar products from other stores */
.vsec__hint { font-size: 13px; color: var(--muted); }
.xm-count { font: 500 14px 'Inter', sans-serif; color: var(--muted); }
.xm-more-wrap { display: flex; justify-content: center; margin-top: 16px; }
/* store header buttons wrap on small phones */
.shophead__actions { flex-wrap: wrap; min-width: 0; max-width: 100%; }
@media (max-width: 480px) { .shophead__actions .btn { flex: 1 1 auto; } }

/* ===== homepage: services, airport, tickets (xm-extra.js) ===== */
body.no-scroll { overflow: hidden; }
.scard .card__link { border: 0; background: transparent; padding: 0; cursor: pointer; }
.scard.is-closed .scard__img img { filter: grayscale(.4); }
.ecard { text-align: left; background: #fff; padding: 0; cursor: pointer; font: inherit; color: inherit; width: 100%; }
.ecard.is-over { opacity: .6; cursor: default; }
button.mcard__time { font: inherit; cursor: pointer; }
button.apcar { text-align: left; background: #fff; font: inherit; color: inherit; cursor: pointer; width: 100%; }
button.apcar:hover { border-color: var(--green); }
/* booking dialog (reuses the location modal frame) */
.xmbk .locmodal__panel { max-width: 520px; text-align: left; }
.xmbk__head { display: flex; gap: 14px; align-items: center; margin: 0 36px 16px 0; }
.xmbk__img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; background: var(--brand-tint, #FDECEC); flex: none; padding: 4px; }
.xmbk__head small { color: var(--green-d); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.xmbk__head h2 { font: 700 19px/1.25 'Poppins', sans-serif; margin: 2px 0; }
.xmbk__head p { color: var(--muted); font-size: 13px; margin: 0; }
.xmbk__form label { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 600; color: #374151; margin-bottom: 10px; }
.xmbk__form input, .xmbk__form select, .xmbk__form textarea { height: 42px; border: 1.5px solid var(--line); border-radius: 10px; padding: 0 12px; font: 500 14px 'Inter', sans-serif; background: #fff; width: 100%; box-sizing: border-box; }
.xmbk__form textarea { height: auto; padding: 8px 12px; resize: vertical; }
.xmbk__form input:focus, .xmbk__form select:focus, .xmbk__form textarea:focus { outline: 2px solid var(--green); outline-offset: 1px; }
.xmbk__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.xmbk__label { font-size: 12.5px; font-weight: 600; color: #374151; margin: 0 0 6px; }
.xmbk__opts { display: grid; gap: 8px; margin-bottom: 10px; }
.xmbk__form .xmbk__opt { flex-direction: row; align-items: center; gap: 10px; border: 1.5px solid var(--line); border-radius: 10px; padding: 10px 12px; margin: 0; cursor: pointer; }
.xmbk__opt input { width: auto; height: auto; accent-color: var(--green); }
.xmbk__opt span { flex: 1; display: flex; flex-direction: column; }
.xmbk__opt small { font-weight: 500; color: var(--muted); }
.xmbk__opt em { font-style: normal; font-weight: 700; }
.xmbk__opt:has(input:checked) { border-color: var(--green); background: var(--brand-tint-2, #FFF5F5); }
.xmbk__total { display: flex; justify-content: space-between; align-items: center; background: #F9FAFB; border-radius: 10px; padding: 10px 12px; margin: 4px 0 8px; font-size: 14px; }
.xmbk__total b { font-size: 17px; }
.xmbk__done { text-align: center; padding: 10px 0 4px; }
.xmbk__done h2 { font: 700 21px 'Poppins', sans-serif; margin: 8px 0 6px; }
.xmbk__done p { color: var(--muted); margin-bottom: 16px; }
.xmbk__done .locmodal__badge { font-size: 28px; color: var(--green-d); }
@media (max-width: 480px) { .xmbk__row { grid-template-columns: 1fr; gap: 0; } }
.pick__later { background: #FFF8E6; border: 1px solid #F6D58E; color: #7A5200; border-radius: 10px; padding: 10px 12px; font-size: 13px; margin: 10px 0 0; }
/* airport quick form: no horizontal overflow on phones */
.apsec > * { min-width: 0; }
.apquick, .apquick__row > label { min-width: 0; }
.apquick input:not([type=radio]), .apquick select { width: 100%; min-width: 0; box-sizing: border-box; }
@media (max-width: 720px) { .apsec { grid-template-columns: minmax(0, 1fr) !important; } }
@media (max-width: 400px) { .apquick__row { grid-template-columns: minmax(0, 1fr); } }
#services, #airport, #tickets, #parcel, #cars, #food { scroll-margin-top: 130px; }

/* ===== car rental (homepage) ===== */
.rentq { background: linear-gradient(135deg, #0B1F3A, #1E4B8F); color: #fff; border-radius: 16px; padding: 18px; display: grid; gap: 12px; margin-bottom: 14px; }
.rentq__loc { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.rentq__loc > [hidden] { display: none; }
.rentq__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.rentq__field { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 600; opacity: .95; min-width: 0; }
.rentq__field input { height: 42px; border-radius: 10px; border: 0; padding: 0 12px; font: 500 14px 'Inter', sans-serif; color: #111827; background: #fff; width: 100%; min-width: 0; box-sizing: border-box; }
.rentq__in { position: relative; display: flex; align-items: center; background: #fff; border-radius: 10px; }
.rentq__in > .ico { position: absolute; left: 10px; opacity: .6; }
.rentq__in input { padding-left: 30px; padding-right: 40px; }
.rentq__gps { position: absolute; right: 6px; width: 30px; height: 30px; border: 0; border-radius: 8px; background: #EEF2F7; display: grid; place-items: center; cursor: pointer; }
.rentq__opts { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.rentq__check { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; cursor: pointer; }
.rentq__check input { width: 18px; height: 18px; accent-color: #E12E0E; }
.rentq .locmodal__status { color: #FFD7CF; margin: 0; min-height: 0; }
.rentq__sum { font-size: 13px; color: var(--muted); margin: 8px 0 10px; }
[data-rent-types] { flex-wrap: wrap; }
[data-rent-types] .pill small { font-weight: 500; opacity: .75; margin-left: 4px; }
.ccard__total { font-size: 12.5px; color: var(--muted); margin-top: 6px; }
.ccard__total b { color: var(--ink); }
.ccard__busy { font-size: 12px; font-weight: 600; color: #6B7280; }
.ccard.is-booked { opacity: .6; }
.pac-container { z-index: 300 !important; border-radius: 10px; box-shadow: 0 10px 24px rgba(0,0,0,.15); }
@media (max-width: 860px) { .rentq__row { grid-template-columns: 1fr 1fr; } .rentq__loc { grid-template-columns: 1fr; } }

/* ===== searchable airport picker ===== */
.apsel { position: relative; }
.apsel__input { width: 100%; height: 40px; border-radius: 10px; border: 0; padding: 0 12px; font: 500 14px 'Inter', sans-serif; color: #111827; background: #fff; box-sizing: border-box; }
.xmbk .apsel__input { border: 1.5px solid var(--line); height: 42px; }
.apsel__list { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 260; max-height: 300px; overflow-y: auto; margin: 0; padding: 4px; list-style: none; background: #fff; color: #111827; border-radius: 12px; box-shadow: 0 14px 34px rgba(11,31,58,.25); }
.apsel__list li[data-i] { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: 13.5px; font-weight: 500; }
.apsel__list li[data-i] b { flex: none; width: 42px; font: 700 13px 'Inter', sans-serif; color: var(--green-d, #B91C1C); }
.apsel__list li[data-i] span { display: flex; flex-direction: column; min-width: 0; }
.apsel__list li[data-i] small { color: #6B7280; font-weight: 400; font-size: 12px; }
.apsel__list li[data-i]:hover, .apsel__list li.is-cur, .apsel__list li[aria-selected="true"] { background: #FFF1EE; }
.apsel__hd { padding: 8px 10px 6px; font-size: 12px; color: #6B7280; font-weight: 600; }
.apquick__ap { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; min-width: 0; }

/* ===== search: header suggestions + result rows ===== */
.header form.search { position: relative; }
.ssug { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 250; background: #fff; border-radius: 14px; box-shadow: 0 18px 40px rgba(11,31,58,.22); padding: 6px; max-height: min(70vh, 560px); overflow-y: auto; text-align: left; }
.ssug__h { margin: 8px 8px 4px; font: 700 11.5px 'Inter', sans-serif; letter-spacing: .05em; text-transform: uppercase; color: #6B7280; }
.ssug__hint, .ssug__none { margin: 10px; font-size: 13.5px; color: #4B5563; }
.ssug__none small { color: #6B7280; }
.ssug__all { display: block; margin: 6px 4px 2px; padding: 10px; border-radius: 10px; background: #FFF1EE; color: var(--green-d, #B91C1C); font-weight: 600; font-size: 13.5px; text-align: center; }
.srow { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 10px; color: inherit; text-decoration: none; }
.srow:hover, .srow.is-cur { background: #F3F4F6; }
.srow img { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; background: #F3F4F6; flex: none; }
.srow span { display: flex; flex-direction: column; min-width: 0; }
.srow b { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.srow small { color: #6B7280; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.srows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.srow--big { border: 1px solid var(--line); padding: 10px; }
.srow--big img { width: 56px; height: 56px; }
@media (max-width: 700px) { .srows { grid-template-columns: 1fr; } .ssug { position: fixed; left: 8px; right: 8px; top: 120px; } }
.rentq__loc:has(> [hidden]) { grid-template-columns: 1fr; }

/* booking: sign-in gate + airport extras */
.xmbk__auth p { color: #374151; font-size: 14.5px; margin: 0 0 14px; }
.xmbk__authbtns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.xmbk__extras { display: grid; gap: 8px; margin-bottom: 10px; }
.xmbk__extras > label:not(.xmbk__opt) { margin: 2px 0 0; }
.xmbk__form .xmbk__opt--qty input { width: 64px; height: 36px; text-align: center; }
.xmbk__opt em { font-size: 12.5px; white-space: nowrap; }

/* book a ride */
.ridebox { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 14px; align-items: start; margin-bottom: 4px; }
.ride__app { border: 1px solid var(--line); border-radius: 14px; padding: 14px; background: #FFF8F6; }
.ride__app b { display: block; font: 700 15px 'Poppins', sans-serif; margin-bottom: 4px; }
.ride__app p { font-size: 13px; color: #4B5563; margin: 0 0 10px; }
.ride__later input { height: 36px; border-radius: 8px; border: 0; padding: 0 10px; font: 500 13px 'Inter', sans-serif; }
.ride__cars { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.xmbk__app { font-size: 12.5px; color: #6B7280; background: #F9FAFB; border-radius: 10px; padding: 8px 10px; margin: 4px 0 10px; }
@media (max-width: 860px) { .ridebox { grid-template-columns: 1fr; } }

/* store page: location & contact */
.storeloc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 16px; background: #fff; border-radius: var(--radius, 16px); box-shadow: var(--shadow); padding: 16px; margin-top: 14px; }
.storeloc h2 { font: 700 17px 'Poppins', sans-serif; margin: 0 0 8px; }
.storeloc__addr { font-size: 14px; color: #374151; margin: 0 0 8px; }
.storeloc__phone { font-size: 15px; font-weight: 600; margin: 0 0 12px; display: flex; align-items: center; gap: 6px; }
.storeloc__phone a { color: var(--ink); }
.storeloc__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.storeloc__map { width: 100%; min-height: 220px; height: 100%; border: 0; border-radius: 12px; background: #EEF2F7; }
@media (max-width: 760px) { .storeloc { grid-template-columns: 1fr; } }

/* "Stores near you": compact cards with a small logo (logos were shown far too large, esp. in Restaurants) */
#stores .rgrid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
#stores .rcard { display: flex; align-items: center; gap: 12px; padding: 10px; }
#stores .rcard__img { width: 72px; height: 72px; aspect-ratio: auto; flex: none; border-radius: 12px; overflow: hidden; background: #fff; border: 1px solid var(--line); }
#stores .rcard__img img { object-fit: contain; padding: 4px; box-sizing: border-box; }
#stores .rcard__eta { display: none; }
#stores .rcard__body { padding: 0; min-width: 0; flex: 1; }
#stores .rcard__name { font-size: 14.5px; }
#stores .rcard__cuisine, #stores .rcard__meta { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* restaurant cards in the food block: same idea, slightly larger */
[data-restaurants].rgrid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
[data-restaurants] .rcard__img { aspect-ratio: 16 / 9; }

/* horizontal product rows (50 random products per section) */
.hscroll { display: grid; grid-auto-flow: column; grid-auto-columns: 200px; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; padding: 2px 2px 12px; scrollbar-width: thin; }
.hscroll > * { scroll-snap-align: start; min-width: 0; }
.hscroll--dish { grid-auto-columns: 220px; }
@media (max-width: 600px) { .hscroll { grid-auto-columns: 160px; gap: 10px; } .hscroll--dish { grid-auto-columns: 180px; } }

/* All Categories: every section with its categories */
.allcats__menu > li { position: relative; }
.allcats__fly { position: absolute; left: 100%; top: -8px; width: min(560px, 70vw); max-height: 70vh; overflow-y: auto; background: #fff; border-radius: 12px; box-shadow: var(--shadow-lg); padding: 12px; opacity: 0; visibility: hidden; transition: .15s; z-index: 61; }
.allcats__menu > li:hover > .allcats__fly, .allcats__menu > li:focus-within > .allcats__fly { opacity: 1; visibility: visible; }
.allcats__fly p { font: 700 14px 'Poppins', sans-serif; margin: 0 0 8px; }
.allcats__fly > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 10px; }
.allcats__fly a { padding: 7px 8px !important; border-radius: 8px; font-size: 13.5px; gap: 8px !important; }
.allcats__fly img { width: 26px; height: 26px; object-fit: cover; border-radius: 6px; }
[data-hero-cats] { max-height: 340px; overflow-y: auto; scrollbar-width: thin; }
@media (max-width: 900px) { .allcats__fly { position: static; width: auto; max-height: none; opacity: 1; visibility: visible; box-shadow: none; padding: 0 0 6px 16px; display: none; } .allcats__menu > li:hover > .allcats__fly { display: block; } }

/* address book */
.xm-addr { margin-top: 16px; }
.xm-addr__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.xm-addr__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.xm-addr__card { border: 1.5px solid var(--line); border-radius: 14px; padding: 14px; background: #fff; display: flex; flex-direction: column; gap: 6px; }
.xm-addr__card.is-using { border-color: var(--green, #E12E0E); background: #FFF8F6; }
.xm-addr__top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.xm-addr__top b { font: 700 15px 'Poppins', sans-serif; }
.xm-addr__tag { font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #EEF2F7; color: #374151; }
.xm-addr__tag--use { background: #FDE4DE; color: #B42318; }
.xm-addr__who { font-weight: 600; font-size: 14px; margin: 0; }
.xm-addr__miss { color: #B26A00; font-weight: 500; font-size: 13px; }
.xm-addr__line { font-size: 13.5px; color: #4B5563; margin: 0; }
.xm-addr__btns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.xm-addr__del { color: #B42318; }
.xm-addr__mtitle { font: 700 19px 'Poppins', sans-serif; margin: 0 0 14px; }
.xm-addr__loc { position: relative; display: block; }
.xm-addr__loc input { padding-right: 44px !important; }
.xm-addr__loc .rentq__gps { top: 6px; }
.xm-addr__as { display: flex; gap: 16px; margin-bottom: 10px; }
.xm-addr__as label { flex-direction: row !important; align-items: center; gap: 6px !important; margin: 0 !important; font-weight: 500 !important; }
.xm-addr__as input, .xm-addr__def input { width: 18px !important; height: 18px !important; }
.xm-addr__def { color: #374151; margin-bottom: 10px; }
.xm-addr .locmodal__panel { text-align: left; max-width: 540px; }

/* ---- other sections on the homepage (compact, elegant header) ---- */
.vsec__title img.xm-cat-img, .vsec__title > img:not(.ico) { width: 30px !important; height: 30px !important; border-radius: 8px; object-fit: cover; flex: none; }
.secrow { padding-top: 18px; padding-bottom: 8px; }
.secrow__head { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }
.secrow__ico { width: 44px; height: 44px; flex: none; border-radius: 12px; overflow: hidden; display: grid; place-items: center; background: #F3F4F6; box-shadow: 0 0 0 1px rgba(17,24,39,.06); }
.secrow__ico img { width: 100% !important; height: 100% !important; max-width: 44px; max-height: 44px; object-fit: cover; display: block; }
.secrow__ico .ico { width: 22px; height: 22px; }
.secrow__txt { min-width: 0; flex: 1; }
.secrow__title { margin: 0; font: 700 19px/1.2 'Poppins', sans-serif; color: #111827; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.secrow__sub { margin: 3px 0 0; font-size: 13px; color: #6B7280; }
.secrow__all { flex: none; display: inline-flex; align-items: center; gap: 4px; padding: 7px 14px; border-radius: 999px; border: 1px solid #E5E7EB; background: #fff; color: #111827 !important; font-size: 13px; font-weight: 600; text-decoration: none !important; transition: border-color .15s, background .15s; }
.secrow__all:hover { border-color: #E12E0E; background: #FFF5F3; }
.secrow .hscroll { grid-auto-columns: 184px; }
.secrow .hscroll .card__img { aspect-ratio: 1 / 1; height: auto; }
.secrow .hscroll .card__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 600px) {
    .secrow__ico { width: 38px; height: 38px; border-radius: 10px; }
    .secrow__title { font-size: 16.5px; }
    .secrow__sub { font-size: 12px; }
    .secrow__all { padding: 6px 11px; font-size: 12px; }
    .secrow .hscroll { grid-auto-columns: 150px; }
}
.xm-cat-img { max-width: 44px; max-height: 44px; }

/* ===== product page: video first ===== */
.pick__img.has-video { background: #000; }
.pick__img video.pick__video, .pick__img iframe.pick__video { width: 100%; height: 100%; border: 0; display: block; object-fit: contain; background: #000; }
.pick__thumb--video { position: relative; }
.pick__play { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: 18px; background: rgba(0,0,0,.38); text-shadow: 0 1px 4px rgba(0,0,0,.5); }

/* ===== product page: sold-out variants stay visible but disabled ===== */
.attribute_list .attribute-selection.is-soldout { opacity: .55; cursor: not-allowed; }
.attribute_list .attribute-selection.is-soldout label { cursor: not-allowed; }
.attribute_list .attribute-selection .xm-soldtag { display: none; margin-left: 8px; padding: 1px 7px; border-radius: 999px; background: #FEE2E2; color: #B91C1C; font-size: 11px; font-weight: 700; text-decoration: none; vertical-align: 1px; }
.attribute_list .attribute-selection.is-soldout .xm-soldtag { display: inline-block; }
.add-to-cart.is-soldout, .add-to-cart:disabled { opacity: .5; cursor: not-allowed; filter: grayscale(.6); box-shadow: none; }
.pick__soldout { margin: 10px 0 0; padding: 9px 12px; border-radius: 10px; background: #FEF2F2; color: #B91C1C; font-size: 13.5px; font-weight: 600; }

/* ===== add-to-basket animation ===== */
.xm-fly { position: fixed; z-index: 9999; object-fit: cover; pointer-events: none; border-radius: 16px; box-shadow: 0 14px 34px rgba(17,24,39,.35); will-change: transform, opacity; }
.xm-fly-plus { position: fixed; z-index: 10000; pointer-events: none; font: 800 14px 'Poppins', sans-serif; color: #16A34A; background: #fff; padding: 2px 8px; border-radius: 999px; box-shadow: 0 4px 12px rgba(0,0,0,.15); }

/* ===== advertisements: pop-up (native <dialog>) ===== */
.xm-adpop { width: min(92vw, 460px); max-height: 90vh; padding: 0; border: 0; border-radius: 20px; overflow: hidden; background: #fff; color: #111827; box-shadow: 0 30px 80px rgba(11,31,58,.35);
    opacity: 1; transform: none; transition: opacity .35s ease, transform .45s cubic-bezier(.2,.9,.25,1.2), overlay .35s allow-discrete, display .35s allow-discrete; }
.xm-adpop[open] { display: flex; flex-direction: column; }
@starting-style { .xm-adpop[open] { opacity: 0; transform: translateY(28px) scale(.92); } }
.xm-adpop::backdrop { background: rgba(11,31,58,.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.xm-adpop__media { display: block; background: #F3F4F6; }
.xm-adpop__img { display: block; width: 100%; max-height: 62vh; object-fit: cover; }
.xm-adpop__txt { padding: 16px 20px 20px; }
.xm-adpop__txt h3 { margin: 0 0 6px; font: 700 19px/1.25 'Poppins', sans-serif; }
.xm-adpop__txt p { margin: 0 0 12px; color: #4B5563; font-size: 14px; line-height: 1.5; }
.xm-adpop__cta { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 46px; border-radius: 12px; background: #E12E0E; color: #fff !important; font-weight: 700; text-decoration: none !important; }
.xm-adpop__cta:hover { background: #B42318; }
.xm-adpop__x { position: absolute; top: 10px; right: 10px; z-index: 2; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: #111827; font-size: 22px; line-height: 1; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.18); }
.xm-adpop__tag, .xm-adslot__tag { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 2px 8px; border-radius: 6px; background: rgba(17,24,39,.65); color: #fff; font-size: 10.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.xm-adpop form { margin: 0; }

/* ===== advertisements: in-page slots (random positions) ===== */
.xm-adslot { margin-top: 18px; margin-bottom: 6px; content-visibility: auto; contain-intrinsic-size: auto 180px; opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.xm-adslot.is-in { opacity: 1; transform: none; }
.xm-adslot__in { position: relative; display: flex; align-items: stretch; min-height: 120px; border-radius: 18px; overflow: hidden; background: linear-gradient(120deg, #0B1F3A, #1B3A6B); color: #fff !important; text-decoration: none !important; box-shadow: 0 10px 30px rgba(11,31,58,.15); }
.xm-adslot__img { flex: 1 1 60%; min-width: 0; width: 100%; max-height: 240px; object-fit: cover; display: block; }
.xm-adslot__txt { flex: 0 1 40%; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 18px 22px; }
.xm-adslot__txt b { font: 700 19px/1.25 'Poppins', sans-serif; }
.xm-adslot__txt small { font-size: 13.5px; opacity: .85; line-height: 1.45; }
.xm-adslot__txt em { font-style: normal; font-weight: 700; color: #FFB199; }
.xm-adslot__in:hover .xm-adslot__img { transform: scale(1.02); }
.xm-adslot__img { transition: transform .5s ease; }
@media (max-width: 640px) { .xm-adslot__in { flex-direction: column; } .xm-adslot__img { max-height: 200px; } .xm-adslot__txt { padding: 14px 16px; } }
@media (prefers-reduced-motion: reduce) { .xm-adslot, .xm-adpop { transition: none; transform: none; } .xm-adslot { opacity: 1; } }

/* ===== app QR codes (header pop + footer) ===== */
.hact__pop.hact__pop--apps { width: 250px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hact__pop--apps p { grid-column: 1 / -1; margin: 0; }
.appqr { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none !important; color: inherit !important; }
.appqr img { width: 96px; height: 96px; margin: 0 !important; border-radius: 8px; background: #fff; padding: 4px; box-sizing: content-box; box-shadow: 0 0 0 1px #E5E7EB; image-rendering: pixelated; }
.appqr b { font-size: 12.5px; color: #111827; }
.appqr small { font-size: 11px; color: #6B7280; }
.footer__apps .appqrs { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 6px; }
.footer__apps .appqr { padding: 10px; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.06); transition: transform .15s; }
.footer__apps .appqr:hover { transform: translateY(-2px); }
.footer__apps .appqr img { width: 104px; height: 104px; }
.footer__join { display: inline-block; margin-top: 12px; font-size: 13px; font-weight: 600; }

/* ===== Join Xpressmac FAQ ===== */
.joinfaq { padding-top: 28px; padding-bottom: 28px; }
.joinfaq__head { text-align: center; max-width: 720px; margin: 0 auto 22px; }
.joinfaq__kicker { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #E12E0E; }
.joinfaq__title { margin: 6px 0 8px; font: 700 clamp(22px, 2.4vw, 30px)/1.2 'Poppins', sans-serif; color: #111827; }
.joinfaq__lead { margin: 0; color: #4B5563; font-size: 15px; line-height: 1.55; }
.joinfaq__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; align-items: start; }
.joinfaq__item { background: #fff; border: 1px solid #E5E7EB; border-radius: 16px; overflow: hidden; transition: box-shadow .2s, border-color .2s; interpolate-size: allow-keywords; }
.joinfaq__item[open] { border-color: #FCA5A5; box-shadow: 0 12px 30px rgba(17,24,39,.08); }
.joinfaq__item summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 14px 16px; cursor: pointer; }
.joinfaq__item summary::-webkit-details-marker { display: none; }
.joinfaq__item summary::after { content: "+"; margin-left: auto; flex: none; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #F3F4F6; font-size: 18px; font-weight: 600; color: #374151; transition: transform .2s; }
.joinfaq__item[open] summary::after { content: "−"; background: #FEE2E2; color: #B91C1C; }
.joinfaq__item summary b { display: block; font-size: 15px; color: #111827; }
.joinfaq__item summary small { display: block; margin-top: 2px; font-size: 12.5px; color: #6B7280; }
.joinfaq__ico { flex: none; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #FFF1EE; font-size: 21px; }
.joinfaq__item::details-content { block-size: 0; overflow: hidden; transition: block-size .3s ease, content-visibility .3s allow-discrete; }
.joinfaq__item[open]::details-content { block-size: auto; }
.joinfaq__body { padding: 0 18px 16px 70px; color: #374151; font-size: 14px; line-height: 1.6; }
.joinfaq__body ol, .joinfaq__body ul { margin: 0; padding-left: 18px; }
.joinfaq__body li + li { margin-top: 4px; }
.joinfaq__body p { margin: 8px 0 0; }
.joinfaq__links { display: flex; flex-wrap: wrap; gap: 8px; }
.joinfaq__links:empty { display: none; }
.joinfaq__btn { display: inline-flex; align-items: center; padding: 7px 14px; border-radius: 999px; background: #0B1F3A; color: #fff !important; font-size: 13px; font-weight: 600; text-decoration: none !important; }
.joinfaq__btn--soft { background: #F3F4F6; color: #111827 !important; }
@media (max-width: 600px) { .joinfaq__grid { grid-template-columns: 1fr; } .joinfaq__body { padding-left: 18px; } }
/* FAQ: masonry-style columns so an opened answer doesn't leave gaps beside it */
.joinfaq__grid { display: block; columns: 3 330px; column-gap: 12px; }
.joinfaq__item { break-inside: avoid; margin: 0 0 12px; display: block; }
/* footer: app QR codes under the logo */
.footer__brand .footer__apps { margin-top: 22px; }
.footer__brand .footer__apps h4 { font-family: 'Montserrat', 'Poppins', sans-serif; font-weight: 500; font-size: 16.5px; color: #fff; margin: 0 0 10px; }
.footer__brand .footer__join { color: #FCA5A5 !important; }
.joinfaq__ico img { width: 22px; height: 22px; }

/* ===== section menu: one style for every section, the open one clearly marked ===== */
.catnav__links { gap: 6px; align-items: center; scroll-behavior: smooth; }
.catnav__links li { flex: none; }
.catnav__links a, .catnav__links a.catnav__hi { display: inline-flex; align-items: center; padding: 11px 12px 9px; color: #1F2937 !important; font-weight: 600 !important; font-size: 14.5px; border-bottom: 3px solid transparent; border-radius: 8px 8px 0 0; transition: color .15s, background .15s, border-color .15s; }
.catnav__links a:hover { color: #E12E0E !important; background: #FFF5F3; border-bottom-color: #FCA5A5; }
.catnav__links a.is-current { color: #E12E0E !important; background: #FFF1EE; border-bottom-color: #E12E0E; }
.catnav__links a.catnav__extra { color: #6B7280 !important; font-weight: 500 !important; }

/* ===== Book a Ride / Parcel / Services pages ===== */
.xm-svcpage main > .container { margin-top: 18px; }
.svchero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 28px; align-items: center; padding: 34px 36px; border-radius: 22px; color: #fff;
    background: radial-gradient(70% 90% at 100% 0%, rgba(225,46,14,.35), transparent 60%), linear-gradient(135deg, #0B1F3A 0%, #13254B 60%, #1B3A6B 100%); overflow: hidden; }
.svchero__kicker { margin: 0 0 8px; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #FDBA74; }
.svchero__title { margin: 0 0 12px; font: 700 clamp(26px, 3.2vw, 40px)/1.15 'Poppins', sans-serif; color: #fff; }
.svchero__lead { margin: 0 0 20px; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.88); max-width: 560px; }
.svchero__lead b { color: #fff; }
.svchero__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.svchero .btn--primary { background: #E12E0E; border-color: #E12E0E; color: #fff; }
.svchero__btn2 { background: transparent !important; color: #fff !important; border: 1.5px solid rgba(255,255,255,.6) !important; }
.svchero__btn2:hover { background: rgba(255,255,255,.1) !important; }
.svchero__ticks { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; padding: 0; font-size: 13.5px; color: rgba(255,255,255,.85); }
.svchero__ticks li::before { content: "✓"; margin-right: 6px; color: #4ADE80; font-weight: 700; }
.svchero__art { justify-self: end; width: min(100%, 320px); aspect-ratio: 1; border-radius: 28px; overflow: hidden; border: 6px solid rgba(255,255,255,.9); box-shadow: 0 24px 60px rgba(0,0,0,.35); transform: rotate(2deg); }
.svchero__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svcfeats__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.svcfeat { background: #fff; border: 1px solid #E5E7EB; border-radius: 16px; padding: 18px; }
.svcfeat .ico { width: 30px; height: 30px; padding: 7px; box-sizing: content-box; border-radius: 12px; background: #FFF1EE; }
.svcfeat b { display: block; margin: 12px 0 4px; font-size: 15.5px; color: #111827; }
.svcfeat p { margin: 0; color: #4B5563; font-size: 14px; line-height: 1.55; }
.svcapp { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 26px 30px; border-radius: 20px; background: #FFF7ED; border: 1px solid #FED7AA; margin-bottom: 24px; }
.svcapp .svchero__kicker { color: #C2410C; }
.svcapp h2 { margin: 0 0 6px; font: 700 clamp(18px, 2vw, 24px)/1.3 'Poppins', sans-serif; color: #111827; max-width: 560px; }
.svcapp p { margin: 0 0 14px; color: #4B5563; }
.svcapp__btns { display: flex; gap: 10px; flex-wrap: wrap; }
.svcapp__qr { display: flex; gap: 14px; }
.svcapp__qr .appqr { padding: 10px; background: #fff; border-radius: 14px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.svcapp__qr .appqr img { width: 112px; height: 112px; }

/* parcel: two simple steps */
.pbook { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.pbook__form, .pbook__side { background: #fff; border: 1px solid #E5E7EB; border-radius: 18px; padding: 22px; }
.pbook__step + .pbook__step { margin-top: 22px; padding-top: 20px; border-top: 1px dashed #E5E7EB; }
.pbook__h { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font: 700 18px/1.3 'Poppins', sans-serif; color: #111827; flex-wrap: wrap; }
.pbook__h span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: #E12E0E; color: #fff; font-size: 14px; }
.pbook__h small { font: 400 13px 'Inter', sans-serif; color: #6B7280; }
.pbook__cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.pcat { position: relative; cursor: pointer; }
.pcat input { position: absolute; opacity: 0; pointer-events: none; }
.pcat__in { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 16px 10px; border: 2px solid #E5E7EB; border-radius: 16px; background: #F9FAFB; text-align: center; transition: border-color .15s, background .15s, transform .1s; }
.pcat__in img { width: 54px; height: 54px; object-fit: contain; }
.pcat__in b { font-size: 14px; color: #111827; }
.pcat:hover .pcat__in { border-color: #FCA5A5; }
.pcat input:checked + .pcat__in { border-color: #E12E0E; background: #FFF1EE; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(225,46,14,.15); }
.pcat input:focus-visible + .pcat__in { outline: 3px solid rgba(225,46,14,.35); outline-offset: 2px; }
.pbook__route { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pbook__route label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: #374151; }
.pbook__route input { height: 46px; padding: 0 14px; border: 1.5px solid #E5E7EB; border-radius: 12px; font-size: 15px; background: #fff; color: #111827; }
.pbook__route input[readonly] { background: #F3F4F6; color: #4B5563; }
.pbook__route input:focus { outline: 0; border-color: #E12E0E; box-shadow: 0 0 0 3px rgba(225,46,14,.12); }
.pbook__go { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; padding-top: 18px; border-top: 1px solid #F3F4F6; flex-wrap: wrap; }
.pbook__go p { margin: 0; color: #4B5563; font-weight: 500; }
.pbook__go .btn { min-width: 160px; height: 48px; }
.pbook__go .btn:disabled { opacity: .5; cursor: not-allowed; }
.pbook__side h3 { margin: 0 0 10px; font: 700 17px 'Poppins', sans-serif; }

@media (max-width: 860px) {
    .svchero { grid-template-columns: 1fr; padding: 24px 20px; }
    .svchero__art { display: none; }
    .pbook { grid-template-columns: 1fr; }
    .pbook__route { grid-template-columns: 1fr; }
    .svcapp { padding: 20px; }
    .svcapp__qr .appqr img { width: 96px; height: 96px; }
}
.scard__svcs { margin: 2px 0 4px; font-size: 12.5px; color: #4B5563; line-height: 1.4; }
@media (max-width: 600px) {
    #ride .cgrid, #airport .cgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    #ride .ccard__body, #airport .ccard__body { padding: 10px; }
    #ride .ccard__name, #airport .ccard__name { font-size: 14px; }
}
/* service-type chips (one per On-Demand section) */
.svcchip small { display: inline-grid; place-items: center; min-width: 20px; height: 18px; margin-left: 4px; padding: 0 5px; border-radius: 999px; background: #F3F4F6; color: #374151; font-size: 11px; font-weight: 700; }
.svcchip.is-active small { background: #E12E0E; color: #fff; }
.svcchip.is-empty { opacity: .72; }
.svcchip .svcchip__img { object-fit: cover; border-radius: 8px; }

/* ===== services: category chips + Book link ===== */
.svccats { display: flex; gap: 8px; flex-wrap: wrap; margin: -4px 0 14px; }
.svccat { padding: 6px 14px; border-radius: 999px; border: 1px solid #E5E7EB; background: #fff; font-size: 13px; font-weight: 600; color: #374151; cursor: pointer; }
.svccat.is-active { background: #111827; color: #fff; border-color: #111827; }
a.scard__book { display: inline-flex; align-items: center; text-decoration: none !important; position: relative; z-index: 2; }

/* ===== service checkout ===== */
.svcco { padding-top: 18px; padding-bottom: 36px; }
.svcco__crumb { display: flex; gap: 8px; align-items: center; font-size: 13px; color: #6B7280; margin-bottom: 12px; }
.svcco__crumb a { color: #374151; }
.svcco__err { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: #FEF2F2; color: #B91C1C; font-weight: 600; }
.svcco__loading { padding: 40px 0; text-align: center; color: #6B7280; }
.svcco__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.svcco__card { background: #fff; border: 1px solid #E5E7EB; border-radius: 18px; padding: 20px; }
.svcco__left > .svcco__card + .svcco__card { margin-top: 14px; }
.svcco__svc { display: flex; gap: 16px; align-items: flex-start; }
.svcco__photo { width: 120px; height: 120px; object-fit: cover; border-radius: 14px; flex: none; background: #F3F4F6; }
.svcco__title { margin: 4px 0 2px; font: 700 22px/1.25 'Poppins', sans-serif; color: #111827; }
.svcco__by { margin: 0 0 6px; color: #4B5563; font-size: 14px; }
.svcco__price { margin: 0 0 8px; font: 700 20px 'Poppins', sans-serif; color: #E12E0E; }
.svcco__price small { font: 500 13px 'Inter', sans-serif; color: #6B7280; }
.svcco__price s { font: 500 14px 'Inter', sans-serif; color: #9CA3AF; margin-left: 6px; }
.svcco__desc { margin: 0 0 8px; color: #374151; font-size: 14px; line-height: 1.55; }
.svcco__meta { margin: 2px 0; color: #6B7280; font-size: 13px; }
.svcco__h { display: flex; align-items: center; gap: 10px; margin: 18px 0 12px; font: 700 16.5px 'Poppins', sans-serif; color: #111827; flex-wrap: wrap; }
.svcco__h:first-child { margin-top: 0; }
.svcco__h span { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #E12E0E; color: #fff; font-size: 13px; }
.svcco__h small { font: 400 13px 'Inter', sans-serif; color: #6B7280; }
.svcco__row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.svcco__row label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: #374151; }
.svcco__row input, .svcco__form textarea { height: 46px; padding: 0 12px; border: 1.5px solid #E5E7EB; border-radius: 12px; font-size: 15px; color: #111827; background: #fff; box-sizing: border-box; width: 100%; }
.svcco__form textarea { height: auto; padding: 10px 12px; resize: vertical; font-family: inherit; }
.svcco__qty { display: flex; align-items: center; border: 1.5px solid #E5E7EB; border-radius: 12px; overflow: hidden; height: 46px; }
.svcco__qty button { width: 40px; height: 100%; border: 0; background: #F9FAFB; font-size: 18px; cursor: pointer; }
.svcco__qty input { border: 0 !important; height: 100% !important; text-align: center; border-radius: 0 !important; -moz-appearance: textfield; }
.svcco__hint { margin: 8px 0 0; font-size: 13px; color: #6B7280; }
.svcco__hint.is-bad { color: #B91C1C; font-weight: 600; }
.svcco__addrs, .svcco__pays { display: grid; gap: 8px; margin-bottom: 8px; }
.svcco__opt { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1.5px solid #E5E7EB; border-radius: 14px; cursor: pointer; }
.svcco__opt:has(input:checked) { border-color: #E12E0E; background: #FFF5F3; }
.svcco__opt input { margin-top: 3px; accent-color: #E12E0E; }
.svcco__opt b { display: block; font-size: 14.5px; color: #111827; }
.svcco__opt small { display: block; font-size: 12.5px; color: #6B7280; margin-top: 2px; }
.svcco__sum { position: sticky; top: 90px; }
.svcco__sum h3 { margin: 0 0 12px; font: 700 17px 'Poppins', sans-serif; }
.svcco__sum dl { margin: 0 0 14px; }
.svcco__sum dl > div { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; font-size: 14px; color: #374151; }
.svcco__sum dt { margin: 0; } .svcco__sum dd { margin: 0; font-weight: 600; }
.svcco__total { border-top: 1px solid #E5E7EB; margin-top: 6px; padding-top: 12px !important; font-size: 16px !important; color: #111827 !important; }
.svcco__total dd { color: #E12E0E; font-weight: 800 !important; }
.svcco__place { width: 100%; height: 50px; }
.svcco__place:disabled { opacity: .55; }
.svcco__signin h2 { margin: 0 0 6px; font: 700 18px 'Poppins', sans-serif; }
.svcco__signbtns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.svcok { max-width: 560px; margin: 20px auto; text-align: center; padding: 34px 26px; }
.svcok h1 { margin: 10px 0 8px; font: 700 24px 'Poppins', sans-serif; }
.svcok p { color: #4B5563; line-height: 1.6; }
.svcok .svcco__signbtns { justify-content: center; }
.svcok__icon { width: 64px; height: 64px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; background: #DCFCE7; color: #16A34A; font-size: 32px; font-weight: 800; }
.svcok__icon--bad { background: #FEE2E2; color: #B91C1C; }
@media (max-width: 860px) {
    .svcco__grid { grid-template-columns: 1fr; }
    .svcco__sum { position: static; }
    .svcco__row { grid-template-columns: 1fr 1fr; }
    .svcco__row label[data-svcco-qtywrap] { grid-column: 1 / -1; }
    .svcco__photo { width: 84px; height: 84px; }
}

/* ---------- provider cards (home "Services near you") + provider page (update 14) ---------- */
.scard__initials { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: linear-gradient(135deg, #FDE68A, #F59E0B); color: #111827; font: 700 28px/1 Poppins, sans-serif; }
.svcprov { padding-top: 18px; }
.svcprov__head { display: flex; gap: 20px; align-items: center; margin-bottom: 8px; }
.svcprov__avatar { width: 120px; height: 120px; flex: none; border-radius: 50%; overflow: hidden; background: linear-gradient(135deg, #FDE68A, #F59E0B); display: flex; align-items: center; justify-content: center; }
.svcprov__avatar img { width: 100%; height: 100%; object-fit: cover; }
.svcprov__avatar span { font: 700 34px/1 Poppins, sans-serif; color: #111827; }
.svcprov__types { margin: 0; font-size: 13px; font-weight: 600; color: #B45309; text-transform: uppercase; letter-spacing: .04em; }
.svcprov__name { margin: 2px 0 6px; font: 700 26px/1.2 Poppins, sans-serif; color: #111827; }
.svcprov__meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 0; font-size: 14px; color: #4B5563; }
.svcprov__meta span { display: inline-flex; align-items: center; gap: 4px; }
.svcprov__cats { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; }
.svcprov__cats span { padding: 3px 10px; border-radius: 999px; background: #F3F4F6; font-size: 12.5px; color: #374151; }
.svcprov .openstat { white-space: normal; overflow: visible; text-overflow: clip; max-width: none; }
.svcprov .scard__foot { flex-wrap: wrap; gap: 6px; }
@media (max-width: 640px) {
    .svcprov__head { flex-direction: column; align-items: flex-start; gap: 12px; }
    .svcprov__avatar { width: 72px; height: 72px; }
    .svcprov__name { font-size: 22px; }
}

/* ---------- bigger, clearer pictures on service + provider cards (update 14d) ---------- */
[data-svc-grid] .scard, .svcprov .scard { flex-direction: column; gap: 10px; padding: 10px 10px 12px; }
[data-svc-grid] .scard__img, .svcprov .scard__img { width: 100%; height: 170px; aspect-ratio: auto; border-radius: 10px; background: #F3F4F6; }
[data-svc-grid] .scard__img img, .svcprov .scard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
[data-svc-grid] .scard--prov .scard__img, .svcprov .scard--prov .scard__img { position: relative; background: linear-gradient(135deg, #FEF3C7, #FDE68A); }
[data-svc-grid] .scard__body, .svcprov .scard__body { padding: 0 4px; }
[data-svc-grid] .scard__name, .svcprov .scard__name { font-size: 15px; }
[data-svc-grid] .scard__initials, .svcprov .scard__initials { font-size: 44px; }
.scard.is-closed .scard__img img { filter: none; opacity: 1; }
@media (max-width: 640px) {
    [data-svc-grid] .scard__img, .svcprov .scard__img { height: 200px; }
}

/* ---------- booking page: more services by the same provider ---------- */
.svcco__more { margin-top: 18px; }
.svcco__more .scard { flex-direction: column; gap: 10px; padding: 10px 10px 12px; }
.svcco__more .scard__img { width: 100%; height: 170px; aspect-ratio: auto; border-radius: 10px; background: #F3F4F6; }
.svcco__more .scard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svcco__more .scard__body { padding: 0 4px; }
.svcco__more .scard__name { font-size: 15px; }
.svcco__more .scard__initials { font-size: 44px; }
.svcco__by a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 640px) { .svcco__more .scard__img { height: 200px; } }

.svcok__rcpt { max-width: 420px; margin: 18px auto 0; }

/* booking time slots */
.svcco__slots { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 6px; }
.svcco__slotsh { width: 100%; margin: 0; font-size: 13px; font-weight: 600; color: #374151; }
.svcslot { padding: 8px 14px; border-radius: 10px; border: 1px solid #D1D5DB; background: #fff; font-weight: 600; font-size: 13.5px; cursor: pointer; }
.svcslot:hover:not(:disabled) { border-color: #DC2626; }
.svcslot.is-active { background: #DC2626; border-color: #DC2626; color: #fff; }
.svcslot:disabled { background: #F3F4F6; color: #9CA3AF; text-decoration: line-through; cursor: not-allowed; }

/* service booking: cancel / review box on the booking page */
.svcacts { margin-top: 16px; padding: 16px; border: 1px solid #E5E7EB; border-radius: 14px; background: #fff; }
.svcacts h3 { margin: 0 0 4px; font: 600 16px/1.3 Poppins, sans-serif; }
.svcacts p { margin: 0 0 10px; font-size: 13.5px; color: #4B5563; }
.svcacts__form label { display: block; font-size: 13px; font-weight: 600; margin: 8px 0; }
.svcacts__form input, .svcacts__form textarea { display: block; width: 100%; margin-top: 4px; padding: 10px; border: 1px solid #D1D5DB; border-radius: 10px; font: inherit; }
.svcacts__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.svcacts__msg { margin-top: 8px !important; font-weight: 600; }
.stars { display: flex; gap: 4px; }
.star { font-size: 30px; line-height: 1; border: 0; background: none; color: #D1D5DB; cursor: pointer; padding: 2px; }
.star.is-on { color: #F59E0B; }

/* services list filters */
.svcfilters { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: center; margin: 0 0 14px; font-size: 13.5px; }
.svcfilters label { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: #374151; }
.svcfilters input[type=checkbox] { width: 18px; height: 18px; accent-color: #DC2626; }
.svcfilters select { padding: 6px 10px; border: 1px solid #D1D5DB; border-radius: 10px; font: inherit; background: #fff; }

/* install-to-home-screen bar */
.xminstall { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 900; display: flex; align-items: center; gap: 12px; max-width: 520px; margin: 0 auto; padding: 10px 12px; background: #fff; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.xminstall img { width: 44px; height: 44px; border-radius: 10px; }
.xminstall span { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 13px; }
.xminstall small { color: #6B7280; }
.xminstall__x { border: 0; background: none; font-size: 24px; line-height: 1; color: #6B7280; cursor: pointer; }

/* address chosen on a map */
.mapfield { display: flex; gap: 8px; align-items: stretch; }
.mapfield input[readonly] { flex: 1; min-width: 0; cursor: pointer; background: #F9FAFB; }
.mapfield .btn { white-space: nowrap; }
.mappick { position: fixed; inset: 0; z-index: 2000; background: rgba(17,24,39,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.mappick__panel { width: 100%; max-width: 640px; max-height: 100%; display: flex; flex-direction: column; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.3); }
.mappick__head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; font-size: 16px; }
.mappick__x { border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; color: #6B7280; }
.mappick__search { display: flex; gap: 8px; padding: 0 16px 10px; }
.mappick__search input { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid #D1D5DB; border-radius: 10px; font: inherit; }
.mappick__map { position: relative; height: min(420px, 55vh); }
.mappick__canvas { position: absolute; inset: 0; background: #E5E7EB; }
.mappick__msg { margin: 0; padding: 40px 16px; text-align: center; color: #4B5563; }
.mappick__pin { position: absolute; left: 50%; top: 50%; width: 30px; height: 42px; margin: -42px 0 0 -15px; pointer-events: none;
  background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 42'%3E%3Cpath d='M15 0C6.7 0 0 6.7 0 15c0 11 15 27 15 27s15-16 15-27C30 6.7 23.3 0 15 0z' fill='%23DC2626'/%3E%3Ccircle cx='15' cy='15' r='6' fill='%23fff'/%3E%3C/svg%3E"); filter: drop-shadow(0 3px 3px rgba(0,0,0,.3)); }
.mappick__addr { margin: 0; padding: 10px 16px; font-size: 14px; font-weight: 600; color: #111827; min-height: 40px; }
.mappick__foot { display: flex; justify-content: flex-end; gap: 8px; padding: 0 16px 16px; }
.pac-container { z-index: 2100 !important; }
@media (max-width: 640px) { .mappick { padding: 0; } .mappick__panel { border-radius: 0; height: 100%; } .mappick__map { flex: 1; height: auto; } .mapfield { flex-direction: column; } }

/* restaurant add-ons with quantities + live total (product page) */
.xm-addons__title small { font-weight: 500; color: var(--muted); }
.xm-addon { cursor: default; flex-wrap: nowrap; }
.xm-addon .xm-addon__name { margin-left: 0; text-align: left; }
.xm-addon__name { display: flex; flex-direction: column; min-width: 0; font-weight: 600; color: #111827; }
.xm-addon__name small { font-weight: 500; color: var(--muted); font-size: 12px; }
.xm-addon .xm-addon__line { margin-left: auto; color: #111827; }
.xm-addon__line { margin-left: auto; font-weight: 700; color: #111827; font-size: 13px; }
.xm-addon__qty { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; flex: none; }
.xm-addon__qty button { width: 32px; height: 32px; border: 0; background: #fff; font-size: 18px; font-weight: 700; cursor: pointer; color: #111827; }
.xm-addon__qty button:disabled { color: #D1D5DB; cursor: default; }
.xm-addon__qty input { width: 30px; height: 32px; border: 0; text-align: center; font-weight: 700; background: transparent; padding: 0; }
.xm-addon.is-on { border-color: var(--green); background: var(--brand-tint-2); }
.xm-addon.is-on .xm-addon__qty { border-color: var(--green); background: #fff; }
.xm-pdtotal { margin: 4px 0 12px; padding: 12px 14px; border-radius: 12px; background: #F9FAFB; border: 1px solid var(--line); font-size: 13.5px; }
.xm-pdtotal:empty { display: none; }
.xm-pdtotal__rows { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; color: #4B5563; }
.xm-pdtotal__rows small { display: block; font-size: 12px; color: var(--muted); }
.xm-pdtotal__rows span:nth-child(even) { text-align: right; font-weight: 600; color: #111827; }
.xm-pdtotal__sum { display: flex; justify-content: space-between; align-items: baseline; margin-top: 8px; padding-top: 8px; border-top: 1px dashed #D1D5DB; font-weight: 700; }
.xm-pdtotal__sum b { font-size: 18px; color: var(--green-d, #B91C1C); }

/* order number on receipts / order pages */
.rcpt__ordno { display: flex; flex-direction: column; align-items: center; margin: 2px 0 8px; padding: 6px 0; border: 2px solid #111; border-radius: 6px; }
.rcpt__ordno small { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.rcpt__ordno b { font-size: 22px; letter-spacing: .06em; line-height: 1.2; }
.rcpt-page[data-paper="58"] .rcpt__ordno b { font-size: 18px; }
.orow__no { color: #111827; font-weight: 700; }

/* add-ons listed one per row on order pages */
.oaddon { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; color: #4B5563; font-style: normal; }
.oaddon b { font-weight: 600; color: #111827; }
.oaddon small { color: #6B7280; }
.xm-cart-addon { display: flex; justify-content: space-between; gap: 10px; margin: 0; font-size: 12.5px; }
.xm-cart-addon > span:last-child { font-weight: 600; white-space: nowrap; }

/* tax-inclusive breakdown (receipts / order page) */
.rcpt__incl { margin-top: 6px; padding-top: 4px; border-top: 1px dotted #999; font-size: 12px; }
.rcpt__incl .rcpt__sub { margin-bottom: 2px; }
.osum__incl dt, .osum__incl dd { font-size: 12.5px; color: #6B7280; }

.rcpt__subtot { border-top: 1px dotted #999; margin-top: 2px; padding-top: 2px; }
.rcpt__taxnote { margin-top: 6px; text-align: center; font-size: 11.5px; font-style: italic; }
.osum__sub dt, .osum__sub dd { font-weight: 700; color: #111827; }

/* ===== Transportation block (home): taxi, intercity, airport transfer, car rental ===== */
.transport { margin-top: 22px; padding: 18px 20px; border-radius: var(--radius, 16px); background: linear-gradient(120deg, #0B1F3A, #1E4B8F); color: #fff; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; }
.transport__title { font: 700 24px/1.2 'Poppins', sans-serif; margin: 0; color: #fff; }
.transport__sub { margin: 4px 0 0; color: #C9D6EA; font-size: 14px; }
.transport__nav { display: flex; flex-wrap: wrap; gap: 8px; }
.transport__nav a { background: rgba(255, 255, 255, .12); color: #fff; border-radius: 999px; padding: 8px 14px; font-weight: 600; font-size: 14px; text-decoration: none; white-space: nowrap; }
.transport__nav a:hover { background: rgba(255, 255, 255, .24); }
#transport ~ #ride, #transport ~ #intercity-trips, #transport ~ #airport, #transport ~ #cars { border-left: 4px solid #1E4B8F; }
#ride, #intercity-trips, #airport, #cars { scroll-margin-top: 90px; }
@media (max-width: 640px) { .transport__nav { overflow-x: auto; flex-wrap: nowrap; width: 100%; padding-bottom: 2px; } .transport__title { font-size: 21px; } }
.parcel__riders { margin: 10px 0 0; font-size: 13px; color: #166534; }
.parcel__riders.is-none { color: #991B1B; background: #FEE2E2; border-radius: 10px; padding: 8px 12px; }

/* ===== section menu: every tab visible (update 31) ===== */
/* desktop/tablet: tabs wrap onto a second row instead of disappearing off the edge */
@media (min-width: 901px) {
    .catnav__inner { height: auto; min-height: 46px; align-items: flex-start; padding-top: 5px; padding-bottom: 5px; }
    .catnav__links { flex: 1 1 auto; min-width: 0; max-width: none; flex-wrap: wrap; overflow: visible; white-space: nowrap; row-gap: 2px; column-gap: 2px; }
    .catnav__links a, .catnav__links a.catnav__hi { padding: 8px 9px 6px; font-size: 14px; }
    .allcats { flex: none; padding-top: 1px; }
}
/* phones: the bar scrolls sideways; a fade shows there are more tabs that way */
@media (max-width: 900px) {
    .catnav__links.has-more-r { -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
    .catnav__links.has-more-l { -webkit-mask-image: linear-gradient(90deg, transparent, #000 15%); mask-image: linear-gradient(90deg, transparent, #000 15%); }
    .catnav__links.has-more-l.has-more-r { -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
}
/* "All Categories" list scrolls inside the screen */
.allcats__menu { max-height: min(76vh, calc(100vh - 150px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.allcats__menu::-webkit-scrollbar { width: 8px; }
.allcats__menu::-webkit-scrollbar-thumb { background: #D1D5DB; border-radius: 8px; }
@media (min-width: 901px) { .allcats__fly { position: fixed; } }

/* ===== Transportation page (update 32): homepage colours + taxi photo + gentle animations ===== */
body.xm-transport-page { background: #F3F5F9; }
.trp-hero { position: relative; overflow: hidden; isolation: isolate; min-height: 190px; padding: 30px 30px 62px; align-items: flex-start;
  background: linear-gradient(110deg, rgba(11, 31, 58, .97) 0%, rgba(14, 40, 78, .9) 45%, rgba(30, 75, 143, .55) 100%); box-shadow: 0 18px 40px rgba(11, 31, 58, .22); }
.trp-hero__bg { position: absolute; inset: 0; z-index: -1; background: var(--trp-hero) center 62% / cover no-repeat; animation: trpZoom 24s ease-in-out infinite alternate; }
.trp-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(600px 220px at 85% -10%, rgba(255, 255, 255, .16), transparent 70%), linear-gradient(110deg, rgba(11, 31, 58, .94), rgba(11, 31, 58, .5) 58%, rgba(30, 75, 143, .12)); }
.trp-hero .transport__head, .trp-hero .transport__nav { position: relative; z-index: 2; }
.trp-hero .transport__title { font-size: 32px; letter-spacing: -.01em; animation: trpUp .6s ease-out both; }
.trp-hero .transport__sub { font-size: 15px; animation: trpUp .6s .12s ease-out both; }
.trp-hero .transport__nav a { backdrop-filter: blur(6px); border: 1px solid rgba(255, 255, 255, .16); transition: background .2s, transform .2s, box-shadow .2s, color .2s; animation: trpUp .5s ease-out both; }
.trp-hero .transport__nav a:nth-child(1) { animation-delay: .18s; } .trp-hero .transport__nav a:nth-child(2) { animation-delay: .26s; }
.trp-hero .transport__nav a:nth-child(3) { animation-delay: .34s; } .trp-hero .transport__nav a:nth-child(4) { animation-delay: .42s; }
.trp-hero .transport__nav a:hover { transform: translateY(-2px); }
/* road with moving lane marks and a taxi driving across */
.trp-hero__road { position: absolute; left: 0; right: 0; bottom: 0; height: 30px; z-index: 1; pointer-events: none;
  background: linear-gradient(rgba(255, 255, 255, .05), rgba(255, 255, 255, .09)); border-top: 1px solid rgba(255, 255, 255, .12); }
.trp-hero__road::before { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 3px; margin-top: -1px; opacity: .55;
  background: repeating-linear-gradient(90deg, #F5B301 0 28px, transparent 28px 60px); animation: trpLane 1.2s linear infinite; }
.trp-hero__car { position: absolute; bottom: 8px; left: 0; width: 96px; filter: drop-shadow(0 6px 6px rgba(0, 0, 0, .35)); animation: trpDrive 14s linear infinite; }
.trp-hero__car svg { width: 96px; height: auto; display: block; animation: trpBob .5s ease-in-out infinite alternate; }
.trp-hero__wheel { transform-box: fill-box; transform-origin: center; animation: trpSpin .5s linear infinite; }
/* sections: navy edge, soft lift, slide in when the tab opens */
body.xm-transport-page .vsec { border-radius: 18px; box-shadow: 0 10px 30px rgba(11, 31, 58, .08); transition: box-shadow .25s; }
body.xm-transport-page .vsec:hover { box-shadow: 0 16px 38px rgba(11, 31, 58, .12); }
body.xm-transport-page .trp--anim .vsec:not([hidden]) { animation: trpUp .45s ease-out both; }
body.xm-transport-page .vsec__title .ico { transition: transform .3s; }
body.xm-transport-page .vsec:hover .vsec__title .ico { transform: translateX(4px); }
body.xm-transport-page .rentq { position: relative; }   /* no overflow:hidden — the town finder list opens below the field */
body.xm-transport-page .rentq::before { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, .07) 50%, transparent 60%); background-size: 250% 100%; animation: trpShine 7s ease-in-out infinite; }
body.xm-transport-page .rentq > * { position: relative; }
body.xm-transport-page .rentq__field input, body.xm-transport-page .rentq__field select, body.xm-transport-page .icq__sel { transition: box-shadow .2s; }
body.xm-transport-page .rentq__field input:focus, body.xm-transport-page .rentq__field select:focus, body.xm-transport-page .icq__sel:focus { box-shadow: 0 0 0 3px rgba(245, 179, 1, .45); outline: 0; }
body.xm-transport-page .icq__swap { transition: transform .35s; } body.xm-transport-page .icq__swap:hover { transform: rotate(180deg); }
body.xm-transport-page .btn--primary { transition: transform .15s, box-shadow .2s, filter .2s; }
body.xm-transport-page .btn--primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(220, 38, 38, .28); }
body.xm-transport-page .ride__app { transition: transform .25s, box-shadow .25s; }
body.xm-transport-page .ride__app:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(238, 116, 48, .16); }
body.xm-transport-page .apcar, body.xm-transport-page .icq__card, body.xm-transport-page .ccard { transition: transform .22s, box-shadow .22s, border-color .22s; animation: trpUp .45s ease-out both; }
body.xm-transport-page .apcar:hover, body.xm-transport-page .icq__card:hover, body.xm-transport-page .ccard:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(11, 31, 58, .14); }
body.xm-transport-page :is(.apcar, .icq__card, .ccard):nth-child(2) { animation-delay: .06s; }
body.xm-transport-page :is(.apcar, .icq__card, .ccard):nth-child(3) { animation-delay: .12s; }
body.xm-transport-page :is(.apcar, .icq__card, .ccard):nth-child(4) { animation-delay: .18s; }
body.xm-transport-page :is(.apcar, .icq__card, .ccard):nth-child(n+5) { animation-delay: .24s; }
@keyframes trpUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes trpZoom { from { transform: scale(1); } to { transform: scale(1.09) translateX(-1.5%); } }
@keyframes trpLane { to { background-position: -60px 0; } }
@keyframes trpDrive { 0% { transform: translateX(-130px); } 100% { transform: translateX(calc(100vw + 40px)); } }
@keyframes trpBob { to { transform: translateY(-1.5px); } }
@keyframes trpSpin { to { transform: rotate(360deg); } }
@keyframes trpShine { 0%, 60% { background-position: 150% 0; } 100% { background-position: -100% 0; } }
@media (max-width: 640px) {
  .trp-hero { padding: 22px 16px 54px; min-height: 0; }
  .trp-hero .transport__title { font-size: 25px; }
  .trp-hero__car, .trp-hero__car svg { width: 74px; }
}
@media (prefers-reduced-motion: reduce) {
  .trp-hero *, .trp-hero::after, body.xm-transport-page .vsec, body.xm-transport-page .vsec *, body.xm-transport-page .rentq::before { animation: none !important; transition: none !important; }
  .trp-hero__car { left: 70%; }
}

/* ===== Transportation tabs with a short brief (update 33): Book a Car · Inter City Travel · Rent a Car · Airport Transfer ===== */
.transport:has(.trp-tabs) { flex-direction: column; align-items: stretch; }
.trp-tabs { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; width: 100%; margin-top: 4px; }
.trp-tabs a { display: flex !important; align-items: center; gap: 12px; padding: 12px 14px !important; border-radius: 16px !important; white-space: normal !important; text-align: left; line-height: 1.25;
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); }
.trp-tab__ico { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 21px; background: rgba(255, 255, 255, .14); transition: transform .25s; }
.trp-tab__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.trp-tab__txt b { font: 700 15px/1.2 'Poppins', 'Inter', sans-serif; color: inherit; }
.trp-tab__txt small { font-size: 12.5px; font-weight: 500; color: #C9D6EA; }
.trp-tabs a:hover .trp-tab__ico { transform: scale(1.08) rotate(-4deg); }
.trp-tabs a.is-on, .trp-tabs a.is-on:hover { background: #fff !important; color: #0B1F3A !important; border-color: #fff; box-shadow: 0 10px 24px rgba(0, 0, 0, .22) !important; }
.trp-tabs a.is-on .trp-tab__ico { background: #FFF4D6; }
.trp-tabs a.is-on .trp-tab__txt small { color: #4B5563; }
@media (max-width: 900px) { .trp-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .trp-tabs { overflow: visible !important; padding-bottom: 0 !important; gap: 8px; }
  .trp-tabs a { padding: 10px !important; gap: 9px; }
  .trp-tab__ico { width: 34px; height: 34px; font-size: 18px; }
  .trp-tab__txt b { font-size: 13.5px; } .trp-tab__txt small { font-size: 11.5px; }
}
