/* =========================================================
   xpressmac.online — storefront stylesheet
   ========================================================= */
:root {
    --navy: #0B1F3A;
    --navy-2: #124E78;
    /* Brand: Xpress Mac red (logo). --green/--green-d keep their names so existing rules follow the brand. */
    --green: #D7180E;
    --green-d: #B3130B;
    --brand-tint: #FDECEB;
    --brand-tint-2: #FEF4F3;
    /* "Good" states stay green: open, near you, in stock, verified */
    --ok: #0B8A5E;
    --ok-bg: #E7F7EF;
    --amber: #FFB020;
    --hot: #E5484D;
    --ink: #1A202C;
    --muted: #6B7280;
    --line: #E5E7EB;
    --bg: #F4F6F8;
    --card: #FFFFFF;
    --radius: 14px;
    --shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
    --shadow-lg: 0 10px 30px rgba(11, 31, 58, .14);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    font-size: 14px;
    line-height: 1.45;
    color: var(--ink);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
ul { list-style: none; margin: 0; padding: 0; }
p, h1, h2, h3, h4 { margin: 0; }
button { font: inherit; cursor: pointer; }

.container { width: 100%; max-width: 1320px; margin: 0 auto; padding: 0 20px; }

.ico { width: 20px; height: 20px; flex: none; }
.ico--xs { width: 12px; height: 12px; }
.ico--sm { width: 16px; height: 16px; }
.ico--lg { width: 30px; height: 30px; }
.ico--invert { filter: invert(1); }
.ico--star { filter: invert(69%) sepia(83%) saturate(1330%) hue-rotate(356deg) brightness(102%) contrast(101%); }
.ico--bolt { filter: invert(69%) sepia(83%) saturate(1330%) hue-rotate(356deg) brightness(102%) contrast(101%); width: 24px; height: 24px; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 38px; padding: 0 18px; border-radius: 999px; font-weight: 600; border: 1.5px solid transparent; transition: .2s; white-space: nowrap; }
.btn--primary { background: var(--green); color: #fff; }
.btn--primary:hover { background: var(--green-d); }
.btn--ghost { border-color: var(--line); background: #fff; }
.btn--ghost:hover { border-color: var(--navy); }
.btn--light { background: #fff; color: var(--navy); }
.btn--outline { border-color: var(--navy); color: var(--navy); height: 44px; padding: 0 56px; background: #fff; }
.btn--outline:hover { background: var(--navy); color: #fff; }

/* ---------- top bar ---------- */
.topbar { background: var(--navy); color: #cfd8e3; font-size: 12.5px; }
.topbar__inner { display: flex; justify-content: space-between; align-items: center; height: 34px; }
.topbar__promo { display: flex; align-items: center; gap: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.topbar__links { display: flex; gap: 20px; }
.topbar__links a:hover { color: #fff; }

/* ---------- header ---------- */
.header { background: #fff; position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 var(--line); }
.header__inner { display: flex; align-items: center; gap: 28px; height: 76px; }
.header__logo img { width: 230px; height: auto; }
.search { flex: 1; display: flex; height: 44px; border: 2px solid var(--navy); border-radius: 999px; overflow: hidden; background: #fff; }
.search__input { flex: 1; border: 0; outline: 0; padding: 0 20px; font: inherit; font-size: 15px; background: transparent; }
.search__btn { width: 64px; border: 0; background: var(--navy); display: grid; place-items: center; margin: 3px; border-radius: 999px; }
.search__btn:hover { background: var(--navy-2); }
.header__actions { display: flex; align-items: center; gap: 22px; }
.hact { display: flex; align-items: center; gap: 8px; position: relative; font-size: 12px; }
.hact span { display: flex; flex-direction: column; line-height: 1.2; }
.hact small { color: var(--muted); font-size: 11.5px; }
.hact strong { font-weight: 600; font-size: 13px; }
.hact:hover strong { color: var(--green-d); }
.hact .ico { width: 26px; height: 26px; }
.hact__badge { position: absolute; top: -6px; left: 16px; background: var(--hot); color: #fff; font-size: 10px; font-weight: 700; min-width: 17px; height: 17px; border-radius: 9px; display: grid !important; place-items: center; padding: 0 4px; }
.hact__pop { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(6px); background: #fff; box-shadow: var(--shadow-lg); border-radius: 12px; padding: 16px; width: 170px; text-align: center; opacity: 0; visibility: hidden; transition: .2s; z-index: 5; }
.hact__pop img { margin: 0 auto 8px; }
.hact__pop p { font-size: 12px; color: var(--muted); }
.hact--app:hover .hact__pop { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }

/* ---------- category nav ---------- */
.catnav { border-top: 1px solid var(--line); }
.catnav__inner { display: flex; align-items: center; gap: 24px; height: 46px; }
.allcats { position: relative; }
.allcats__btn { display: flex; align-items: center; gap: 8px; height: 34px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--navy); color: #fff; font-weight: 600; white-space: nowrap; }
.allcats__menu { position: absolute; top: calc(100% + 6px); left: 0; width: 270px; background: #fff; border-radius: 12px; box-shadow: var(--shadow-lg); padding: 8px 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .18s; z-index: 60; }
.allcats:hover .allcats__menu, .allcats.is-open .allcats__menu { opacity: 1; visibility: visible; transform: none; }
.allcats__menu a { display: flex; align-items: center; gap: 12px; padding: 9px 16px; }
.allcats__menu a:hover { background: var(--brand-tint-2); color: var(--green-d); }
.allcats__chev { margin-left: auto; opacity: .4; }
.catnav__links { display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.catnav__links::-webkit-scrollbar { display: none; }
.catnav__links a { font-weight: 500; padding: 12px 0; border-bottom: 2px solid transparent; }
.catnav__links a:hover { border-bottom-color: var(--green); color: var(--green-d); }
.catnav__more::after { content: " ▾"; font-size: 10px; }

/* ---------- hero ---------- */
.hero { display: grid; grid-template-columns: 230px minmax(0, 1fr) 250px; gap: 16px; margin-top: 18px; }
.hero__cats, .welcome, .dealbox, .freeship { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); }
.hero__cats { padding: 14px 0; max-height: 400px; overflow: hidden; }
.hero__cats h3 { font-family: 'Poppins', sans-serif; font-size: 14px; padding: 0 16px 8px; }
.hero__cats a { display: flex; align-items: center; gap: 10px; padding: 6px 16px; font-size: 13px; }
.hero__cats a:hover { background: var(--brand-tint-2); color: var(--green-d); }
.hero__cats .ico { width: 18px; height: 18px; opacity: .75; }

.slider { position: relative; border-radius: var(--radius); overflow: hidden; height: 400px; box-shadow: var(--shadow); background: var(--navy); }
.slide { position: absolute; inset: 0; background-size: cover; background-position: center right; opacity: 0; transition: opacity .6s ease; display: flex; align-items: center; }
.slide.is-active { opacity: 1; z-index: 1; }
.slide::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,31,58,.55) 0, rgba(11,31,58,.15) 55%, transparent 75%); }
.slide__copy { position: relative; }
.slide__copy { color: #fff; padding: 0 48px; max-width: 470px; }
.slide__kicker { display: inline-block; background: rgba(255, 255, 255, .16); padding: 5px 12px; border-radius: 999px; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.slide h2 { font-family: 'Poppins', sans-serif; font-size: 38px; line-height: 1.12; margin: 14px 0 10px; }
.slide p { opacity: .9; font-size: 15px; margin-bottom: 22px; }
.slider__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .9); display: grid; place-items: center; opacity: 0; transition: .2s; }
.slider:hover .slider__nav { opacity: 1; }
.slider__nav--prev { left: 14px; }
.slider__nav--next { right: 14px; }
.slider__dots { position: absolute; bottom: 16px; left: 48px; z-index: 3; display: flex; gap: 6px; }
.slider__dots button { width: 8px; height: 8px; border-radius: 4px; border: 0; background: rgba(255, 255, 255, .5); transition: .3s; padding: 0; }
.slider__dots button.is-active { width: 26px; background: #fff; }

.hero__side { display: flex; flex-direction: column; gap: 12px; }
.welcome { padding: 18px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.welcome p { font-size: 12.5px; color: var(--muted); }
.welcome strong { display: block; color: var(--ink); font-size: 14px; margin-bottom: 2px; }
.welcome__btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; }
.welcome__btns .btn { height: 34px; padding: 0 10px; font-size: 13px; }
.freeship { flex: 1; display: flex; align-items: center; gap: 12px; padding: 16px; background: linear-gradient(135deg, var(--brand-tint), #fff); transition: .2s; }
.freeship--amber { background: linear-gradient(135deg, #FFF4DC, #fff); }
.freeship:hover { box-shadow: var(--shadow-lg); }
.freeship strong { display: block; font-family: 'Poppins', sans-serif; font-size: 15px; }
.freeship span { color: var(--muted); font-size: 12.5px; }

/* ---------- deals ---------- */
.deals { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-top: 16px; }
.dealbox { padding: 18px 20px 20px; }
.dealbox--super { background: linear-gradient(180deg, #FFF7E8 0, #fff 120px); }
.dealbox__head { display: flex; align-items: center; gap: 14px; }
.dealbox__title { font-family: 'Poppins', sans-serif; font-size: 20px; display: flex; align-items: center; gap: 6px; }
.dealbox__more { margin-left: auto; display: flex; align-items: center; gap: 2px; font-size: 13px; font-weight: 600; color: var(--muted); }
.dealbox__more:hover { color: var(--green-d); }
.dealbox__sub { color: var(--muted); font-size: 13px; margin: 4px 0 14px; }
.tabs { display: flex; gap: 18px; }
.tab { border: 0; background: none; padding: 0 0 4px; font-family: 'Poppins', sans-serif; font-size: 20px; font-weight: 600; color: #9CA3AF; border-bottom: 3px solid transparent; }
.tab.is-active { color: var(--ink); border-bottom-color: var(--green); }
.tabpanel { display: none; }
.tabpanel.is-active { display: block; animation: fade .35s ease; }
@keyframes fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.countdown { display: flex; align-items: center; gap: 3px; font-size: 12px; color: var(--muted); }
.countdown span { margin-right: 4px; }
.countdown b { background: var(--navy); color: #fff; border-radius: 5px; padding: 2px 5px; font-variant-numeric: tabular-nums; }

.minigrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.mini { display: block; }
.mini__img { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: #F3F4F6; }
.mini__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.mini:hover .mini__img img { transform: scale(1.05); }
.mini__title { font-size: 12.5px; margin-top: 8px; color: #374151; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.off { position: absolute; left: 8px; top: 8px; background: var(--hot); color: #fff; font-size: 11.5px; font-weight: 700; padding: 2px 7px; border-radius: 6px; }
.price { font-weight: 700; font-size: 15px; margin-top: 2px; }
.price s, .card__price s { color: #9CA3AF; font-weight: 400; font-size: 12px; margin-left: 4px; }
.price--hot { color: var(--hot); }
.meta { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--muted); margin-top: 2px; }

/* ---------- more to love ---------- */
.love { margin-top: 28px; }
.section-title { font-family: 'Poppins', sans-serif; font-size: 24px; text-align: center; margin-bottom: 18px; position: relative; }
.section-title::after { content: ""; display: block; width: 48px; height: 4px; border-radius: 2px; background: var(--green); margin: 8px auto 0; }
.grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.card { background: var(--card); border-radius: 12px; overflow: hidden; box-shadow: var(--shadow); transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; }
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.card__img { position: relative; aspect-ratio: 1; background: #F3F4F6; }
.card__img img { width: 100%; height: 100%; object-fit: cover; }
.card__wish { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border-radius: 50%; background: rgba(255, 255, 255, .9); display: grid; place-items: center; opacity: 0; transition: .2s; }
.card:hover .card__wish { opacity: 1; }
.card__body { padding: 10px 12px 14px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.card__title { font-size: 13px; color: #374151; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 38px; }
.card__sold { font-size: 12px; color: var(--muted); }
.card__price { color: var(--ink); font-weight: 700; }
.card__cur { font-size: 13px; }
.card__int { font-size: 21px; letter-spacing: -.01em; }
.card__dec { font-size: 13px; }
.card__tags { display: flex; flex-wrap: wrap; gap: 5px; min-height: 20px; }
.tag { font-size: 11px; font-weight: 600; border-radius: 4px; padding: 2px 6px; }
.tag--coin { background: #FFF4DC; color: #A16207; }
.tag--off { background: #FDECEC; color: var(--hot); }
.card__ship { font-size: 12px; color: var(--green-d); margin-top: auto; }
.love__more { text-align: center; margin: 28px 0 40px; }
.card.is-new { animation: fade .4s ease; }

/* ---------- footer ---------- */
.footer { background: #fff; margin-top: 20px; }
.footer__perks { border-bottom: 1px solid var(--line); }
.perks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; padding-top: 26px; padding-bottom: 26px; }
.perk { display: flex; gap: 12px; align-items: center; }
.perk__icon { width: 46px; height: 46px; border-radius: 12px; background: var(--brand-tint); display: grid; place-items: center; }
.perk__icon .ico { width: 24px; height: 24px; }
.perk strong { font-family: 'Poppins', sans-serif; font-size: 14px; }
.perk p { color: var(--muted); font-size: 12.5px; }
.footer__grid { display: grid; grid-template-columns: repeat(4, 1fr) 1.4fr; gap: 28px; padding-top: 36px; padding-bottom: 36px; }
.footer__col h4 { font-family: 'Poppins', sans-serif; font-size: 14px; margin-bottom: 12px; }
.footer__col li { margin-bottom: 8px; }
.footer__col a { color: #4B5563; font-size: 13px; }
.footer__col a:hover { color: var(--green-d); text-decoration: underline; }
.footer__col--wide h4:not(:first-child) { margin-top: 20px; }
.pay { display: flex; flex-wrap: wrap; gap: 8px; }
.pay img { width: 56px; height: 35px; border-radius: 6px; }
.social { display: flex; gap: 10px; }
.social a { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; transition: .2s; }
.social a:hover { background: var(--green); border-color: var(--green); }
.social a:hover img { filter: invert(1); }
.footer__app { display: flex; gap: 12px; align-items: center; margin-top: 20px; padding: 12px; border: 1px dashed var(--line); border-radius: 12px; }
.footer__app p { font-size: 12.5px; color: var(--muted); }
.footer__app strong { display: block; color: var(--ink); font-size: 13.5px; }
.footer__bottom { background: var(--navy); color: #9FB0C5; font-size: 12.5px; }
.footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; padding-top: 22px; padding-bottom: 22px; }
.footer__help a:hover { color: #fff; text-decoration: underline; }
.footer__copy { margin-left: auto; }

.totop { position: fixed; right: 22px; bottom: 22px; width: 44px; height: 44px; border-radius: 50%; background: var(--navy); color: #fff; display: grid; place-items: center; font-size: 18px; box-shadow: var(--shadow-lg); opacity: 0; visibility: hidden; transition: .25s; z-index: 40; }
.totop.is-visible { opacity: 1; visibility: visible; }
.totop:hover { background: var(--green); }

/* ---------- responsive ---------- */
@media (max-width: 1200px) {
    .hero { grid-template-columns: minmax(0, 1fr) 240px; }
    .hero__cats { display: none; }
    .grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .hact--app { display: none; }
}
@media (max-width: 960px) {
    .hero { grid-template-columns: 1fr; }
    .hero__side { display: grid; grid-template-columns: repeat(3, 1fr); }
    .deals { grid-template-columns: minmax(0, 1fr); }
    .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .footer__grid { grid-template-columns: repeat(2, 1fr); }
    .footer__col--wide { grid-column: 1 / -1; }
    .perks { grid-template-columns: repeat(2, 1fr); }
    .header__actions .hact:not(.hact--cart) span { display: none; }
}
@media (max-width: 680px) {
    .container { padding: 0 16px; }
    .topbar__links { display: none; }
    .header__inner { flex-wrap: wrap; height: auto; padding-top: 10px; padding-bottom: 10px; gap: 10px 16px; }
    .header__logo img { width: 170px; }
    .header__actions { margin-left: auto; gap: 14px; }
    .hact--cart span { display: none; }
    .search { order: 3; flex-basis: 100%; height: 40px; }
    .slider { height: 320px; }
    .slide { background-size: auto 60%; background-position: right -40px bottom 10px; background-repeat: no-repeat; align-items: flex-start; padding-top: 26px; }
    .slide::before { background: linear-gradient(180deg, rgba(11,31,58,.35) 0, transparent 60%); }
    .hero__side { gap: 10px; }
    .welcome { padding: 14px; }
    .topbar { font-size: 11.5px; }
    .slide__copy { padding: 0 22px; }
    .slide h2 { font-size: 24px; margin: 10px 0 6px; }
    .slide p { font-size: 13px; margin-bottom: 14px; }
    .slider__dots { left: 22px; }
    .hero__side { grid-template-columns: 1fr; }
    .minigrid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
    .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .card__int { font-size: 18px; }
    .footer__grid, .perks { grid-template-columns: 1fr; }
    .footer__copy { margin-left: 0; }
    .tab, .dealbox__title { font-size: 17px; }
    .dealbox { padding: 16px 14px; }
    .dealbox__head { flex-wrap: wrap; gap: 8px 12px; }
    .tabs { gap: 12px; }
    .tab { white-space: nowrap; }
    .dealbox__more { font-size: 12px; }
    .price { font-size: 13px; }
    .price s { display: block; margin-left: 0; }
    .meta { font-size: 11px; }
    .mini__title { font-size: 12px; }
    .tag { font-size: 10.5px; }
}

/* =========================================================
   Location-aware features
   ========================================================= */
.btn--block { width: 100%; height: 46px; font-size: 15px; }
.btn--dark { background: var(--navy); color: #fff; }
.btn--dark:hover { background: var(--navy-2); }
.btn--sm { height: 32px; padding: 0 14px; font-size: 13px; }
.linkbtn { border: 0; background: none; color: var(--green-d); font-weight: 600; padding: 0; text-decoration: underline; text-underline-offset: 3px; }

/* header chip */
.locchip { display: flex; align-items: center; gap: 6px; border: 0; background: none; padding: 4px 6px; border-radius: 10px; text-align: left; max-width: 170px; }
.locchip:hover { background: var(--brand-tint-2); }
.locchip .ico { width: 22px; height: 22px; }
.locchip span { display: flex; flex-direction: column; line-height: 1.2; min-width: 0; }
.locchip small { color: var(--muted); font-size: 11px; white-space: nowrap; }
.locchip strong { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* location bar */
.locbar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 16px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 12px 18px; }
.locbar--empty { background: linear-gradient(90deg, var(--brand-tint), #fff); }
.locbar p { font-size: 13.5px; }
.locbar__radii { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.locbar__radii li { font-size: 12px; background: #F3F4F6; border-radius: 999px; padding: 3px 10px; color: var(--muted); }
.locbar__radii b { color: var(--ink); }
.locbar--empty .btn { margin-left: auto; }

/* distance line */
.dist { display: flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--muted); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dist--near { color: var(--green-d); font-weight: 600; }
.dist .ico { opacity: .75; }

/* vertical sections */
.vsec { margin-top: 16px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px 20px 20px; }
.vsec__head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 14px; }
.vsec__title { font-family: 'Poppins', sans-serif; font-size: 20px; display: flex; align-items: center; gap: 8px; }
.vsec__radius { font-size: 12.5px; color: var(--muted); background: #F3F4F6; border-radius: 999px; padding: 3px 10px; }
.empty { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; background: #FFF7E8; border: 1px dashed #F5C26B; border-radius: 12px; padding: 12px 16px; margin-bottom: 14px; font-size: 13px; }

.rgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.rcard { border-radius: 12px; overflow: hidden; border: 1px solid var(--line); transition: .2s; display: block; }
.rcard:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.rcard__img { position: relative; aspect-ratio: 16 / 10; background: #F3F4F6; }
.rcard__img img { width: 100%; height: 100%; object-fit: cover; }
.rcard__eta, .rcard__flag { position: absolute; left: 10px; bottom: 10px; display: flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 700; background: #fff; border-radius: 999px; padding: 3px 9px; box-shadow: var(--shadow); }
.rcard__flag { background: var(--navy); color: #fff; }
.rcard__body { padding: 10px 12px 12px; }
.rcard__name { display: flex; justify-content: space-between; gap: 8px; font-weight: 600; font-size: 14px; }
.rcard__rating { display: flex; align-items: center; gap: 3px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.rcard__cuisine { font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.rcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 12px; color: var(--muted); margin-top: 6px; }
.rcard__meta .dist { margin: 0; }
.rcard--far { opacity: .55; filter: grayscale(.6); cursor: not-allowed; }
.rcard--far:hover { transform: none; box-shadow: none; }

.sgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.scard { display: flex; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 10px; transition: .2s; }
.scard:hover { box-shadow: var(--shadow-lg); }
.scard__img { width: 96px; flex: none; aspect-ratio: 1; border-radius: 10px; overflow: hidden; }
.scard__img img { width: 100%; height: 100%; object-fit: cover; }
.scard__body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.scard__type { font-size: 11px; font-weight: 700; color: var(--green-d); text-transform: uppercase; letter-spacing: .04em; }
.scard__name { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.scard__meta { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--muted); }
.scard__price { font-size: 12.5px; }
.scard--far { opacity: .7; }

.section-sub { text-align: center; color: var(--muted); font-size: 13px; margin: -8px 0 16px; }
.section-title--sm { margin-top: 30px; font-size: 21px; }

/* modal */
.locmodal[hidden] { display: none; }
.locmodal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 16px; }
.locmodal__backdrop { position: absolute; inset: 0; background: rgba(11, 31, 58, .55); backdrop-filter: blur(2px); animation: fade .2s ease; }
.locmodal__panel { position: relative; width: 100%; max-width: 480px; max-height: calc(100vh - 32px); overflow-y: auto; background: #fff; border-radius: 18px; padding: 26px 24px 20px; box-shadow: 0 24px 60px rgba(11, 31, 58, .35); animation: pop .25s ease; }
@keyframes pop { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.locmodal__close { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border-radius: 50%; border: 0; background: #F3F4F6; display: grid; place-items: center; }
.locmodal__head { text-align: center; margin-bottom: 18px; }
.locmodal__badge { width: 60px; height: 60px; border-radius: 50%; background: var(--brand-tint); display: inline-grid; place-items: center; margin-bottom: 10px; }
.locmodal__head h2 { font-family: 'Poppins', sans-serif; font-size: 21px; margin-bottom: 6px; }
.locmodal__head p { color: var(--muted); font-size: 13.5px; }
.locmodal__or { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; margin: 14px 0 10px; }
.locmodal__or::before, .locmodal__or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.locsearch { display: flex; gap: 8px; }
.locsearch input { flex: 1; min-width: 0; height: 42px; border: 1.5px solid var(--line); border-radius: 999px; padding: 0 16px; font: inherit; outline: 0; }
.locsearch input:focus { border-color: var(--green); }
.locsearch .btn { height: 42px; }
.locmodal__status { min-height: 18px; font-size: 12.5px; margin: 8px 2px 0; color: var(--muted); }
.locmodal__status.is-error { color: var(--hot); }
.locmodal__status.is-ok { color: var(--green-d); }
.radii { border-top: 1px solid var(--line); margin-top: 10px; padding-top: 14px; }
.radii__title { font-weight: 700; font-size: 13px; margin-bottom: 10px; }
.radii__row { margin-bottom: 12px; }
.radii__label { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.radii__opts { display: flex; flex-wrap: wrap; gap: 6px; }
.radii__opt { border: 1.5px solid var(--line); background: #fff; border-radius: 999px; padding: 4px 12px; font-size: 12.5px; font-weight: 600; color: #4B5563; }
.radii__opt:hover { border-color: var(--green); }
.radii__opt.is-active { background: var(--green); border-color: var(--green); color: #fff; }
.radii__hint { font-size: 11.5px; color: var(--muted); }
.locmodal__foot { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 16px; }
.locmodal__privacy { text-align: center; font-size: 11px; color: #9CA3AF; margin-top: 12px; }
.is-busy { opacity: .6; pointer-events: none; }

@media (max-width: 1200px) {
    .rgrid, .sgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
    .rgrid, .sgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .locchip span { display: none; }
}
@media (max-width: 680px) {
    .vsec { padding: 16px 14px; }
    .vsec__title { font-size: 17px; }
    .rgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .rcard__name { flex-direction: column; gap: 0; font-size: 13px; }
    .sgrid { grid-template-columns: minmax(0, 1fr); }
    .locbar__radii { margin-left: 0; }
    .locchip { order: 2; margin-left: auto; }
    .header__actions { margin-left: 0; }
    .locmodal { align-items: end; padding: 0; }
    .locmodal__panel { border-radius: 18px 18px 0 0; max-height: 92vh; }
}

/* alignment + icon fixes for location sections */
.locbar, .vsec { width: calc(100% - 40px); max-width: 1280px; }
.rcard__img .rcard__eta img, .rcard__img .rcard__flag img { width: 12px; height: 12px; object-fit: contain; }
.scard__body .dist img, .card__body .dist img { width: 12px; height: 12px; }
@media (max-width: 680px) { .locbar, .vsec { width: calc(100% - 32px); } }

/* =========================================================
   Food & restaurants: popular dishes · Services: type filter
   ========================================================= */
html { scroll-behavior: smooth; }
#food, #services { scroll-margin-top: 130px; }
.catnav__hi { color: var(--green-d); font-weight: 600 !important; }

.vsec__sub { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; font-family: 'Poppins', sans-serif; font-size: 15.5px; font-weight: 600; margin: 4px 0 12px; }
.vsec__sub span { font-family: 'Inter', sans-serif; font-size: 12.5px; font-weight: 500; color: var(--muted); }
.dgrid + .vsec__sub { margin-top: 22px; }

.dgrid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.dcard { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; transition: .2s; background: #fff; }
.dcard:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.dcard__img { position: relative; aspect-ratio: 4 / 3; background: #F3F4F6; }
.dcard__img > img { width: 100%; height: 100%; object-fit: cover; }
.dcard__img .rcard__eta img, .dcard__img .rcard__flag img { width: 12px; height: 12px; object-fit: contain; }
.dcard__tag { position: absolute; top: 8px; left: 8px; font-size: 10.5px; font-weight: 700; background: var(--amber); color: var(--navy); border-radius: 6px; padding: 2px 7px; }
.dcard__body { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 2px; flex: 1; }
.dcard__name { font-weight: 600; font-size: 13.5px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em; }
.dcard__rest { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dcard__body .dist img { width: 12px; height: 12px; }
.dcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 8px; }
.dcard__price { font-weight: 700; font-size: 15px; }
.dcard__add { border: 0; background: var(--green); color: #fff; font-weight: 700; font-size: 12.5px; border-radius: 999px; padding: 6px 12px; cursor: pointer; transition: .2s; white-space: nowrap; }
.dcard__add:hover { background: var(--green-d); }
.dcard__add.is-added { background: var(--navy); }
.dcard__add:disabled { background: #D1D5DB; cursor: not-allowed; }
.dcard--far { opacity: .55; filter: grayscale(.6); }
.dcard--far:hover { transform: none; box-shadow: none; }

.svcchips { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 6px; margin-bottom: 12px; }
.svcchips::-webkit-scrollbar { display: none; }
.svcchip { flex: none; width: 96px; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 6px 10px; background: #fff; border: 1.5px solid var(--line); border-radius: 12px; font: 600 12px/1.25 'Inter', sans-serif; color: #374151; text-align: center; cursor: pointer; transition: .15s; }
.svcchip .ico { width: 26px; height: 26px; }
.svcchip:hover { border-color: var(--green); }
.svcchip.is-active { border-color: var(--green); background: var(--brand-tint); color: var(--green-d); }
.svcchip.is-active .ico { filter: invert(45%) sepia(63%) saturate(2380%) hue-rotate(134deg) brightness(92%) contrast(91%); }
.svc-empty { font-size: 13px; color: var(--muted); background: #F9FAFB; border: 1px dashed var(--line); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
.scard.is-hidden { display: none; }

@media (max-width: 1200px) { .dgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 960px)  { .dgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 680px)  {
    .dgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .dcard__foot { flex-direction: column; align-items: stretch; }
    .dcard__add { padding: 7px 0; }
    .svcchip { width: 84px; font-size: 11.5px; }
}
.dcard__body .dist { white-space: normal; }

/* =========================================================
   Brand: logo, advertising slide, perks strip, footer
   ========================================================= */
:root { --brand: #D7180E; --brand-d: #B3130B; }

.header__logo img { width: 56px; height: 56px; border-radius: 10px; display: block; }

.slide--ad { background: #fff; }
.slide--ad::before { display: none; }
.slide--ad img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

.perks-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 16px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px 24px; width: calc(100% - 40px); max-width: 1280px; }

.footer { background: #000; color: #fff; margin-top: 32px; font-family: 'Montserrat', 'Inter', sans-serif; }
.footer__main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; padding-bottom: 64px; }
.footer__logo img { width: 67px; height: 67px; display: block; }
.footer__social { display: flex; gap: 4px; margin-top: 8px; }
.footer__social a { width: 25px; height: 25px; border: 1px solid #6B6B6B; border-radius: 3px; display: grid; place-items: center; transition: .2s; }
.footer__social a:hover { background: var(--brand); border-color: var(--brand); }
.footer__social .ico { width: 13px; height: 13px; filter: invert(1); }
.footer__cols { display: flex; gap: 52px; padding-top: 56px; }
.footer__col h4 { font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 16.5px; color: #fff; margin-bottom: 14px; }
.footer__col li { margin-bottom: 8px; }
.footer__col a { color: #E6E6E6; font-size: 14.5px; font-weight: 400; transition: color .15s; }
.footer__col a:hover { color: #FF5A4F; text-decoration: none; }
.footer__gap { margin-top: 28px; }
.footer__legal { padding-bottom: 20px; font-size: 12.5px; color: #8C8C8C; }
.footer__legal p { border-top: 1px solid #1F1F1F; padding-top: 18px; }

@media (max-width: 960px) {
    .perks-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .header__logo img { width: 44px; height: 44px; }
    .slide--ad img { object-fit: contain; }
    .perks-strip { grid-template-columns: minmax(0, 1fr); width: calc(100% - 32px); padding: 18px; }
    .footer__main { grid-template-columns: minmax(0, 1fr); gap: 0; padding-bottom: 36px; }
    .footer__cols { padding-top: 32px; gap: 40px; flex-wrap: wrap; }
}
@media (max-width: 680px) { .slide--ad { padding: 0; } }

/* =========================================================
   Car rental · Parcel delivery · Tickets & events
   ========================================================= */
#cars, #parcel, #tickets { scroll-margin-top: 130px; }
.vsec__loc { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; }
.vsec__head .vsec__loc + .dealbox__more { margin-left: 0; }
.vsec__head .vsec__loc { margin-left: auto; }

.pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.pill { border: 1.5px solid var(--line); background: #fff; border-radius: 999px; padding: 5px 14px; font-size: 13px; font-weight: 600; color: #374151; cursor: pointer; }
.pill.is-active { border-color: var(--green); background: var(--brand-tint); color: var(--green-d); }
[data-filter-item].is-hidden, [data-city].is-hidden { display: none !important; }

.cgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ccard { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; transition: .2s; }
.ccard:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.ccard__img { position: relative; aspect-ratio: 16 / 10; background: #F3F4F6; }
.ccard__img img { width: 100%; height: 100%; object-fit: cover; }
.ccard__badge { position: absolute; top: 8px; left: 8px; background: var(--navy); color: #fff; font-size: 11px; font-weight: 700; border-radius: 6px; padding: 3px 8px; }
.ccard__body { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.ccard__name { display: flex; justify-content: space-between; gap: 8px; font-weight: 600; font-size: 14px; }
.ccard__specs { display: flex; flex-wrap: wrap; gap: 6px; }
.ccard__specs li { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; color: #4B5563; background: #F3F4F6; border-radius: 6px; padding: 2px 8px; }
.ccard__body .dist { white-space: normal; }
.ccard__body .dist img { width: 12px; height: 12px; }
.ccard__foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 8px; }
.ccard__price { font-weight: 700; font-size: 16px; }
.ccard__price small { font-size: 12px; font-weight: 500; color: var(--muted); }

.parcel { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 18px; }
.parcel__form { border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.parcel__route { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: end; }
.parcel__route label, .parcel__track label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 600; color: var(--muted); }
.parcel select, .parcel__track input { height: 42px; border: 1.5px solid var(--line); border-radius: 10px; padding: 0 12px; font: 500 14px 'Inter', sans-serif; color: var(--ink, #111827); background: #fff; outline: 0; width: 100%; }
.parcel select:focus, .parcel__track input:focus { border-color: var(--green); }
.parcel__swap { width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid var(--line); background: #fff; font-size: 18px; cursor: pointer; }
.parcel__swap:hover { border-color: var(--green); color: var(--green-d); }
.parcel__label { font-size: 12px; font-weight: 600; color: var(--muted); margin: 14px 0 6px; }
.parcel__opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.popt input { position: absolute; opacity: 0; pointer-events: none; }
.popt span { display: flex; flex-direction: column; gap: 2px; height: 100%; border: 1.5px solid var(--line); border-radius: 10px; padding: 9px 11px; font-size: 11.5px; color: var(--muted); cursor: pointer; transition: .15s; }
.popt b { font-size: 13.5px; color: #111827; }
.popt input:checked + span { border-color: var(--green); background: var(--brand-tint); }
.popt input:disabled + span { opacity: .45; cursor: not-allowed; }
.popt input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.parcel__quote { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--line); }
.parcel__quote small { display: block; font-size: 12px; color: var(--muted); }
.parcel__quote strong { font-family: 'Poppins', sans-serif; font-size: 24px; }
.parcel__note { font-size: 12.5px; color: var(--green-d); margin-top: 8px; min-height: 1em; }
.parcel__side { background: #F9FAFB; border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.parcel__side h3 { font-family: 'Poppins', sans-serif; font-size: 15px; }
.parcel__steps { counter-reset: s; display: flex; flex-direction: column; gap: 10px; }
.parcel__steps li { counter-increment: s; display: grid; grid-template-columns: 28px 1fr; column-gap: 10px; font-size: 12.5px; color: var(--muted); }
.parcel__steps li::before { content: counter(s); grid-row: span 2; width: 28px; height: 28px; border-radius: 50%; background: var(--green); color: #fff; font-weight: 700; display: grid; place-items: center; }
.parcel__steps b { color: #111827; font-size: 13.5px; }
.parcel__track div { display: flex; gap: 8px; margin-top: 5px; }
.parcel__track .btn { height: 42px; }

.tabs--sm .tab { font-size: 15px; }
.citysel { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--line); border-radius: 999px; padding: 0 6px 0 12px; height: 34px; }
.citysel select { border: 0; background: transparent; font: 600 13px 'Inter', sans-serif; outline: 0; cursor: pointer; }
#tickets .vsec__head .vsec__loc { margin-left: 0; }
#tickets .citysel { margin-left: auto; }

.egrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ecard { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; transition: .2s; }
.ecard:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.ecard__img { position: relative; aspect-ratio: 16 / 10; }
.ecard__img img { width: 100%; height: 100%; object-fit: cover; }
.ecard__date { position: absolute; top: 10px; left: 10px; background: #fff; border-radius: 10px; width: 46px; padding: 4px 0; text-align: center; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--hot); box-shadow: var(--shadow); }
.ecard__date b { display: block; font-size: 18px; color: #111827; line-height: 1.1; }
.ecard__tag { position: absolute; top: 10px; right: 10px; background: rgba(0,0,0,.55); color: #fff; font-size: 11px; font-weight: 600; border-radius: 999px; padding: 2px 9px; }
.ecard__body { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 3px; flex: 1; }
.ecard__title { font-weight: 600; font-size: 14px; }
.ecard__meta { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--muted); }
.ecard__foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 8px; font-size: 12.5px; }

.mgrid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.mcard { display: flex; flex-direction: column; }
.mcard__img { position: relative; aspect-ratio: 2 / 3; border-radius: 12px; overflow: hidden; }
.mcard__img img { width: 100%; height: 100%; object-fit: cover; }
.mcard__rated { position: absolute; top: 8px; left: 8px; background: #fff; font-size: 11px; font-weight: 700; border-radius: 6px; padding: 2px 7px; }
.mcard__body { padding-top: 8px; display: flex; flex-direction: column; gap: 3px; }
.mcard__title { font-weight: 600; font-size: 14px; }
.mcard__meta { display: flex; align-items: center; gap: 4px; font-size: 11.5px; color: var(--muted); }
.mcard__times { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.mcard__time { border: 1.5px solid var(--line); background: #fff; border-radius: 8px; padding: 3px 7px; font-size: 12px; font-weight: 600; cursor: pointer; }
.mcard__time:hover, .mcard__time.is-active { border-color: var(--green); background: var(--brand-tint); color: var(--green-d); }
.mcard__price { font-size: 12.5px; margin-top: 2px; }

.bgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.bcard { display: flex; align-items: center; gap: 14px; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.bcard__icon { width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--brand-tint); display: grid; place-items: center; }
.bcard__route { flex: 1; min-width: 0; }
.bcard__cities { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 15.5px; }
.bcard__cities span { color: var(--green-d); }
.bcard__meta { font-size: 12.5px; color: var(--muted); }
.bcard__buy { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.bcard__price { font-weight: 700; font-size: 17px; }
.bcard__seats { font-size: 11.5px; color: var(--muted); }
.bcard__seats.is-low { color: var(--hot); font-weight: 600; }

@media (max-width: 1200px) {
    .cgrid, .egrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .mgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
    .cgrid, .egrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .parcel, .bgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 680px) {
    .cgrid, .egrid { grid-template-columns: minmax(0, 1fr); }
    .mgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .parcel__route { grid-template-columns: minmax(0, 1fr); }
    .parcel__swap { justify-self: center; transform: rotate(90deg); }
    .parcel__opts { grid-template-columns: minmax(0, 1fr); }
    .parcel__quote { flex-direction: column; align-items: stretch; }
    .vsec__head .vsec__loc, #tickets .citysel { margin-left: 0; }
    .bcard { flex-wrap: wrap; }
    .bcard__buy { flex-direction: row; align-items: center; justify-content: space-between; width: 100%; }
}

.parcel__steps { list-style: none; padding: 0; margin: 0; }
.mcard__meta { align-items: flex-start; }
.mcard__meta .ico { margin-top: 2px; }

/* =========================================================
   Search
   ========================================================= */
.search__scope { border: 0; border-right: 1.5px solid var(--line); background: transparent; padding: 0 6px 0 16px; font: 600 13px 'Inter', sans-serif; color: #374151; outline: 0; cursor: pointer; max-width: 124px; }
.searchres { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin-top: 16px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 14px 20px; width: calc(100% - 40px); max-width: 1280px; scroll-margin-top: 140px; }
.searchres[hidden] { display: none; }
.searchres__summary { font-size: 15px; }
.searchres > .btn { margin-left: auto; }
.searchres__empty { flex-basis: 100%; font-size: 13.5px; color: var(--muted); }
.searchres__empty strong { color: #111827; }
.searchres__try { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }

.search-hidden, .search-miss { display: none !important; }
.is-searching main > section:not([data-search-scope]):not([data-search-results]) { display: none; }
.is-searching [data-city].is-hidden, .is-searching .scard.is-hidden, .is-searching [data-filter-item].is-hidden { display: flex !important; }
.is-searching .svcchips, .is-searching .pills, .is-searching .citysel, .is-searching #tickets .tabs,
.is-searching [data-svc-empty], .is-searching [data-city-empty], .is-searching #food .empty,
.is-searching .love__more, .is-searching [data-tab="today"], .is-searching .locbar { display: none !important; }
.is-searching #tickets .tabpanel { display: block; }
.is-searching #tickets .tabpanel::before { display: block; font: 600 15.5px 'Poppins', sans-serif; margin: 6px 0 12px; }
.is-searching #tickets .tabpanel[data-panel="events"]::before { content: "Events"; }
.is-searching #tickets .tabpanel[data-panel="movies"]::before { content: "Movies"; }
.is-searching #tickets .tabpanel[data-panel="buses"]::before { content: "Bus tickets"; }
.is-searching #tickets .tabpanel + .tabpanel { margin-top: 18px; }
.is-searching .deals { display: flex; flex-wrap: wrap; }
.is-searching .deals .dealbox { flex: 1 1 420px; min-width: 0; }
.is-searching .deals .minigrid { grid-template-columns: repeat(auto-fill, minmax(150px, 190px)); }

@media (max-width: 680px) {
    .search__scope { max-width: 92px; font-size: 12px; padding-left: 12px; }
    .search__input { padding: 0 12px; font-size: 14px; }
    .searchres { width: calc(100% - 32px); padding: 12px 14px; }
}

/* =========================================================
   Shop & restaurant pages, basket
   ========================================================= */
.card--shop, .dcard { position: relative; }
.card__link { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.card__add, .dcard__add { position: relative; z-index: 2; }
.card__add { margin-top: 8px; align-self: flex-start; border: 0; background: var(--green); color: #fff; font-weight: 700; font-size: 12.5px; border-radius: 999px; padding: 6px 14px; cursor: pointer; }
.card__add:hover { background: var(--green-d); }
.card__add.is-added, .dcard__add.is-added { background: var(--navy); }

.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 16px; font-size: 13px; color: var(--muted); }
.crumbs a:hover { color: var(--green-d); text-decoration: underline; }
.crumbs b { color: #111827; font-weight: 600; }

.shophead, .resthead, .pick { margin-top: 12px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); width: calc(100% - 40px); max-width: 1280px; }
.shophead { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 20px; padding: 20px 24px; }
.shophead__avatar { width: 64px; height: 64px; flex: none; border-radius: 16px; background: var(--brand, #D7180E); color: #fff; display: grid; place-items: center; font: 700 22px 'Poppins', sans-serif; letter-spacing: .02em; }
.shophead__avatar--sm { width: 44px; height: 44px; border-radius: 12px; font-size: 15px; }
.shophead__info { flex: 1; min-width: 240px; }
.shophead h1 { font-family: 'Poppins', sans-serif; font-size: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.shophead__badge { font: 700 11px 'Inter', sans-serif; background: var(--brand-tint); color: var(--green-d); border-radius: 999px; padding: 3px 10px; }
.shophead__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 6px; font-size: 13px; color: var(--muted); }
.shophead__meta span { display: inline-flex; align-items: center; gap: 5px; }
.shophead__actions { display: flex; gap: 8px; }

.pick { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 28px; padding: 22px 24px; scroll-margin-top: 140px; }
.pick__img { position: relative; aspect-ratio: 1; border-radius: 14px; overflow: hidden; background: #F3F4F6; }
.pick__img img { width: 100%; height: 100%; object-fit: cover; }
.pick__kicker { display: inline-block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--green-d); background: var(--brand-tint); border-radius: 999px; padding: 3px 10px; }
.pick h2 { font-family: 'Poppins', sans-serif; font-size: 24px; line-height: 1.25; margin: 10px 0 6px; }
.pick__meta { display: flex; align-items: center; gap: 5px; font-size: 13px; color: var(--muted); }
.pick__desc { color: var(--muted); font-size: 14px; }
.pick__price { font: 700 28px 'Poppins', sans-serif; margin: 12px 0; }
.pick__price s { font: 500 15px 'Inter', sans-serif; color: var(--muted); margin-left: 6px; }
.pick__facts { display: flex; flex-direction: column; gap: 8px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: 13.5px; color: #374151; }
.pick__facts li { display: flex; align-items: center; gap: 8px; }
.pick__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 16px; }
.pick__buy .btn { height: 44px; padding: 0 24px; }
.pick__buy .btn:disabled { opacity: .5; cursor: not-allowed; }
.qty { display: inline-flex; align-items: center; border: 1.5px solid var(--line); border-radius: 999px; height: 44px; overflow: hidden; }
.qty button { width: 40px; height: 100%; border: 0; background: #fff; font-size: 18px; cursor: pointer; }
.qty button:hover { background: #F3F4F6; }
.qty input { width: 44px; border: 0; text-align: center; font: 600 15px 'Inter', sans-serif; outline: 0; -moz-appearance: textfield; }
.qty input::-webkit-inner-spin-button { -webkit-appearance: none; }

.shoptools { margin-left: auto; display: flex; gap: 8px; }
.shoptools__find, .shoptools__sort { height: 36px; border: 1.5px solid var(--line); border-radius: 999px; padding: 0 14px; font: 500 13px 'Inter', sans-serif; outline: 0; background: #fff; }
.shoptools__find:focus, .shoptools__sort:focus { border-color: var(--green); }
.shoptools__find { width: 220px; }

.shops { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.shopcard { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 12px; transition: .2s; }
.shopcard:hover { box-shadow: var(--shadow-lg); }
.shopcard__info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.shopcard__info b { font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shopcard__info small { font-size: 12px; color: var(--muted); }
.shopcard__go { font-size: 12.5px; font-weight: 700; color: var(--green-d); }

.resthead { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 24px; padding: 20px 24px; }
.resthead__img { aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; }
.resthead__img img { width: 100%; height: 100%; object-fit: cover; }
.resthead__open { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--green-d); }
.resthead__open span { width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.resthead h1 { font-family: 'Poppins', sans-serif; font-size: 26px; margin: 6px 0 2px; }
.resthead__cuisine { color: var(--muted); }
.resthead__facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.resthead__facts li { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; background: #F3F4F6; border-radius: 999px; padding: 4px 12px; }
.resthead__warn { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 14px; background: #FFF4E5; border: 1px solid #FCD9A8; border-radius: 12px; padding: 12px 14px; font-size: 13px; }
.resthead__warn p { flex: 1; min-width: 220px; }

.menu__cats { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.menu__cats .pill { font-size: 12.5px; }
.vsec__sub[id^="menu-"] { scroll-margin-top: 140px; }
.menu__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.mitem { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 10px; transition: .2s; }
.mitem.is-picked { border-color: var(--green); background: var(--brand-tint-2); }
.mitem__img { width: 76px; height: 76px; flex: none; border-radius: 10px; object-fit: cover; }
.mitem__info { flex: 1; min-width: 0; }
.mitem__name { font-weight: 600; font-size: 14px; }
.mitem__desc { font-size: 12.5px; color: var(--muted); }
.mitem__price { font-weight: 700; font-size: 14px; margin-top: 3px; }

.basketbar { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 45; display: flex; align-items: center; gap: 12px; background: var(--navy); color: #fff; border-radius: 999px; padding: 8px 8px 8px 18px; box-shadow: var(--shadow-lg); font-size: 14px; max-width: calc(100% - 32px); }
.basketbar[hidden] { display: none; }
.basketbar p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.drawer { position: fixed; inset: 0; z-index: 80; }
.drawer[hidden] { display: none; }
.drawer__backdrop { position: absolute; inset: 0; background: rgba(11, 31, 58, .45); }
.drawer__panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100%); background: #fff; display: flex; flex-direction: column; box-shadow: var(--shadow-lg); }
.drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.drawer__head h2 { font-family: 'Poppins', sans-serif; font-size: 18px; }
.drawer__head .locmodal__close { position: static; }
.drawer__list { flex: 1; overflow-y: auto; padding: 8px 20px; }
.drawer__shop { display: flex; justify-content: space-between; align-items: center; font-weight: 700; font-size: 13px; margin: 14px 0 6px; }
.drawer__shop a { font-size: 12px; font-weight: 600; color: var(--green-d); }
.ditem { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #F3F4F6; }
.ditem img { width: 52px; height: 52px; border-radius: 8px; object-fit: cover; flex: none; }
.ditem__info { flex: 1; min-width: 0; font-size: 13px; }
.ditem__info b { display: block; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ditem__info span { color: var(--muted); }
.ditem .qty { height: 32px; }
.ditem .qty button { width: 28px; font-size: 15px; }
.ditem .qty input { width: 30px; font-size: 13px; }
.drawer__empty { text-align: center; color: var(--muted); font-size: 14px; padding: 40px 10px; }
.drawer__foot { border-top: 1px solid var(--line); padding: 16px 20px 20px; }
.drawer__sub { display: flex; justify-content: space-between; font-size: 15px; margin-bottom: 12px; }
.drawer__note { font-size: 12.5px; color: var(--muted); margin-top: 8px; text-align: center; min-height: 1em; }

@media (max-width: 960px) {
    .pick, .resthead { grid-template-columns: minmax(0, 1fr); }
    .pick__img { max-width: 360px; }
    .shops { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .menu__list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 680px) {
    .shophead, .resthead, .pick { width: calc(100% - 32px); padding: 16px; }
    .shophead h1, .pick h2 { font-size: 20px; }
    .shoptools { margin-left: 0; width: 100%; }
    .shoptools__find { flex: 1; width: auto; min-width: 0; }
    .shops { grid-template-columns: minmax(0, 1fr); }
    .menu__cats { margin-left: 0; }
    .basketbar { font-size: 13px; }
}
.card--shop[hidden] { display: none; }
body:has(.basketbar:not([hidden])) main { padding-bottom: 72px; }

/* ---------- Variants ---------- */
.variants { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.vgroup { border-radius: 10px; transition: .2s; }
.vgroup.is-missing { outline: 2px solid var(--hot); outline-offset: 6px; }
.vgroup__label { font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.vgroup__label b { color: #111827; font-weight: 600; }
.vgroup__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.vopt { position: relative; min-width: 44px; border: 1.5px solid var(--line); background: #fff; border-radius: 10px; padding: 7px 12px; font: 600 13px 'Inter', sans-serif; color: #111827; cursor: pointer; transition: .15s; }
.vopt small { margin-left: 4px; font-weight: 500; color: var(--muted); }
.vopt:hover:not(:disabled) { border-color: var(--green); }
.vopt.is-on { border-color: var(--green); background: var(--brand-tint); color: var(--green-d); box-shadow: inset 0 0 0 1px var(--green); }
.vopt:disabled { cursor: not-allowed; color: #9CA3AF; background: #F9FAFB; }
.vopt.is-soldout { text-decoration: line-through; }
.vopt.is-soldout::after { content: "Sold out"; position: absolute; top: -8px; right: -6px; font-size: 9.5px; font-weight: 700; text-decoration: none; background: #6B7280; color: #fff; border-radius: 6px; padding: 1px 5px; }
.variants__stock { font-size: 13px; min-height: 1em; }
.variants__stock.is-ok { color: var(--green-d); }
.variants__stock.is-low { color: #B45309; font-weight: 600; }
.variants__stock.is-error { color: var(--hot); font-weight: 600; }
a.card__add, a.dcard__add { display: inline-block; text-align: center; }
.ditem__info em { display: block; font-style: normal; font-size: 12px; color: #374151; }
.ditem .qty button:disabled { color: #D1D5DB; cursor: not-allowed; }

/* ---------- One-shop confirmation ---------- */
.confirm { position: fixed; inset: 0; z-index: 95; display: grid; place-items: center; padding: 16px; }
.confirm[hidden] { display: none; }
.confirm__backdrop { position: absolute; inset: 0; background: rgba(11, 31, 58, .5); }
.confirm__box { position: relative; background: #fff; border-radius: 16px; box-shadow: var(--shadow-lg); padding: 22px; width: min(440px, 100%); }
.confirm__box h3 { font-family: 'Poppins', sans-serif; font-size: 18px; margin-bottom: 8px; }
.confirm__box p { font-size: 14px; color: #374151; }
.confirm__btns { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-top: 18px; }

/* =========================================================
   Opening hours: open/closed states
   ========================================================= */
.openstat { display: inline-flex; align-items: center; gap: 5px; font: 600 12px 'Inter', sans-serif; border-radius: 999px; padding: 3px 10px; white-space: nowrap; vertical-align: middle; }
.openstat::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.openstat.is-open { background: var(--brand-tint); color: var(--green-d); }
.openstat.is-closed { background: #F3F4F6; color: #6B7280; }
.shophead h1 .openstat { font-size: 12px; }
.resthead__open .openstat { font-size: 12.5px; }

.hours { margin-top: 10px; font-size: 13px; }
.hours summary { cursor: pointer; color: var(--green-d); font-weight: 600; width: max-content; }
.hours dl { display: grid; gap: 4px; margin-top: 8px; max-width: 320px; }
.hours dl div { display: flex; justify-content: space-between; gap: 16px; }
.hours dt { color: var(--muted); }
.hours dd { font-weight: 500; }

.closednote { margin-top: 12px; width: calc(100% - 40px); max-width: 1280px; background: #F3F4F6; border: 1px solid #E5E7EB; border-radius: 12px; padding: 12px 16px; font-size: 13.5px; color: #374151; }
.closednote[hidden] { display: none; }
.resthead__warn--closed { background: #F3F4F6; border-color: #E5E7EB; }
.resthead__warn[hidden] { display: none; }

.btn:disabled, .card__add:disabled, .dcard__add:disabled, .scard__book:disabled { background: #D1D5DB !important; border-color: #D1D5DB !important; color: #fff !important; cursor: not-allowed; }
a.is-disabled { pointer-events: none; opacity: .5; }

.rcard__flag--closed { background: #374151; }
.dcard__closed { left: auto; right: 8px; top: 8px; bottom: auto; font-size: 10.5px; }
.rcard.is-closed .rcard__img img, .dcard.is-closed .dcard__img > img, .scard.is-closed .scard__img img, .ccard.is-closed .ccard__img img { filter: grayscale(.7); opacity: .75; }

.scard { position: relative; }
.scard__foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; }
.scard__foot .openstat { font-size: 11px; padding: 2px 8px; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.scard__book { position: relative; z-index: 2; flex: none; border: 0; background: var(--green); color: #fff; font-weight: 700; font-size: 12px; border-radius: 999px; padding: 5px 14px; cursor: pointer; }
.scard__book:hover:not(:disabled) { background: var(--green-d); }
.ccard__status { margin-top: 6px; }
.ccard__status .openstat { font-size: 11px; }

.ecard.is-ended { opacity: .6; }
.ecard.is-ended .ecard__img img { filter: grayscale(.8); }
.mcard__time.is-past, .mcard__time:disabled { color: #9CA3AF; background: #F9FAFB; text-decoration: line-through; cursor: not-allowed; }
.mcard__note { font-size: 12px; color: #6B7280; font-weight: 600; }
.mcard__note[hidden] { display: none; }
.bcard.is-departed { opacity: .6; }
.bcard.is-departed .bcard__seats { color: #6B7280; font-weight: 600; }

.parcel__hours { font-size: 12.5px; color: var(--muted); margin-top: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.drawer__shop .openstat { font-size: 10.5px; padding: 2px 8px; margin-left: 6px; }
.rcard:not(.is-closed) .rcard__flag--closed, .dcard:not(.is-closed) .dcard__closed { display: none; }
.rcard.is-closed .rcard__eta, .dcard.is-closed .rcard__eta { display: none; }
.openstat:empty { display: none; }

.resthead__open span.openstat { width: auto; height: auto; border-radius: 999px; }
.resthead__open span.openstat.is-open { background: var(--brand-tint); }
.resthead__open span.openstat.is-closed { background: #F3F4F6; }
[data-hours].is-closed a.dcard__add, [data-hours].is-closed a.card__add { background: #9CA3AF; }

/* ---------- Fly-to-basket animation ---------- */
.flyimg { position: fixed; z-index: 120; object-fit: cover; pointer-events: none; background: #fff; box-shadow: 0 10px 28px rgba(11, 31, 58, .28); will-change: transform, opacity; }
@keyframes xm-bump { 0% { transform: scale(1); } 35% { transform: scale(1.3) rotate(-8deg); } 65% { transform: scale(.92) rotate(4deg); } 100% { transform: scale(1); } }
@keyframes xm-pop { 0% { transform: scale(1); } 40% { transform: scale(1.5); background: var(--green); } 100% { transform: scale(1); } }
.hact--cart .ico.is-bump { animation: xm-bump .5s ease; }
.hact__badge.is-bump { animation: xm-pop .5s ease; }
@media (prefers-reduced-motion: reduce) { .hact--cart .ico.is-bump, .hact__badge.is-bump { animation-duration: .01s; } }

/* =========================================================
   Brand red theme: semantic "good" states stay green
   ========================================================= */
.dist--near, .card__ship, .variants__stock.is-ok, .locmodal__status.is-ok, .parcel__note,
.resthead__open { color: var(--ok); }
.openstat.is-open, .resthead__open span.openstat.is-open, .shophead__badge { background: var(--ok-bg); color: var(--ok); }
.resthead__open span:not(.openstat) { background: var(--ok); }
.freeship, .locbar--empty { background: linear-gradient(135deg, var(--brand-tint), #fff); }
.btn--primary:focus-visible, .dcard__add:focus-visible, .card__add:focus-visible { outline: 3px solid rgba(215, 24, 14, .35); outline-offset: 2px; }
@keyframes xm-pop { 0% { transform: scale(1); } 40% { transform: scale(1.5); background: var(--navy); } 100% { transform: scale(1); } }
.svcchip.is-active .ico { filter: invert(14%) sepia(92%) saturate(5200%) hue-rotate(357deg) brightness(88%) contrast(110%); }

/* =========================================================
   Accounts, checkout, orders
   ========================================================= */
.hact--me { position: relative; cursor: pointer; }
.hact__menu { position: absolute; top: calc(100% + 10px); right: 0; min-width: 190px; background: #fff; border-radius: 12px; box-shadow: var(--shadow-lg); padding: 6px; display: none; z-index: 60; }
.hact--me:hover .hact__menu, .hact--me:focus-within .hact__menu { display: block; }
.hact__menu a, .hact__menu button { display: block; width: 100%; text-align: left; padding: 9px 12px; border-radius: 8px; font: 500 13.5px 'Inter', sans-serif; background: none; border: 0; cursor: pointer; color: var(--ink); }
.hact__menu a:hover, .hact__menu button:hover { background: var(--brand-tint-2); color: var(--green-d); }

.authbox { display: grid; place-items: center; padding: 40px 20px 60px; }
.authbox__panel { width: min(440px, 100%); background: #fff; border-radius: 18px; box-shadow: var(--shadow); padding: 28px; text-align: center; }
.authbox__logo { border-radius: 14px; margin-bottom: 12px; }
.authbox h1 { font: 700 22px 'Poppins', sans-serif; }
.authbox__sub { color: var(--muted); margin: 6px 0 18px; font-size: 13.5px; }
.authform { display: flex; flex-direction: column; gap: 10px; text-align: left; }
.authform label { font-size: 13px; font-weight: 600; color: #374151; }
.authform__phone { display: flex; border: 1.5px solid var(--line); border-radius: 12px; overflow: hidden; }
.authform__phone span { padding: 0 12px; display: grid; place-items: center; background: #F9FAFB; font-weight: 600; border-right: 1.5px solid var(--line); }
.authform__phone input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 12px; font: 500 16px 'Inter', sans-serif; letter-spacing: .03em; }
.authform__phone:focus-within, .authform__code:focus { border-color: var(--green); }
.authform__code { border: 1.5px solid var(--line); border-radius: 12px; padding: 12px; font: 600 22px 'Inter', sans-serif; letter-spacing: .4em; text-align: center; outline: 0; }
.authform .linkbtn { align-self: center; }
.authbox__msg { min-height: 1.2em; margin-top: 12px; font-size: 13.5px; color: var(--ok); }
.authbox__msg.is-error { color: var(--hot); }
.authbox__warn { margin-top: 12px; background: #FFF4E5; border-radius: 10px; padding: 10px 12px; font-size: 12.5px; text-align: left; }
.authbox__fine { margin-top: 14px; font-size: 11.5px; color: var(--muted); }

.pagebox { margin-top: 12px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px 24px; width: calc(100% - 40px); max-width: 1280px; }
.pagebox__title { font: 700 22px 'Poppins', sans-serif; margin-bottom: 14px; }
.pagebox__h2 { font: 600 16px 'Poppins', sans-serif; margin: 18px 0 8px; }
.pagebox__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.pagebox__links { margin-top: 16px; }
.pagebox__links a { color: var(--green-d); font-weight: 600; }
.flash { background: var(--ok-bg); color: var(--ok); border-radius: 10px; padding: 10px 14px; font-weight: 600; margin-bottom: 14px; }
.form { display: flex; flex-direction: column; gap: 12px; }
.form label, .form__inline { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; color: #374151; }
.form input, .form__inline input { height: 42px; border: 1.5px solid var(--line); border-radius: 10px; padding: 0 12px; font: 500 14px 'Inter', sans-serif; outline: 0; }
.form input:focus, .form__inline input:focus { border-color: var(--green); }
.form input:disabled { background: #F9FAFB; color: var(--muted); }
.form .btn { align-self: flex-start; }
.form__err { color: var(--hot); font-size: 12.5px; }
.form__hint { font-size: 12.5px; color: var(--muted); }
.form--address { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--line); }
.form--address h3 { font: 600 15px 'Poppins', sans-serif; }
.addrlist li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid #F3F4F6; }
.addrlist li div { display: flex; flex-direction: column; font-size: 13.5px; }
.addrlist li span { color: var(--muted); font-size: 12.5px; }
.addrlist__empty { color: var(--muted); font-size: 13.5px; padding: 8px 0; }

.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 18px; align-items: start; margin-top: 12px; }
.checkout__main { display: flex; flex-direction: column; gap: 16px; }
.cbox { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px 22px; }
.cbox__title { display: flex; align-items: center; gap: 10px; font: 600 17px 'Poppins', sans-serif; margin-bottom: 14px; }
.cbox__title span { width: 26px; height: 26px; border-radius: 50%; background: var(--green); color: #fff; font-size: 13px; display: grid; place-items: center; }
.checkout__summary { position: sticky; top: 140px; }
.addrpick { display: flex; flex-direction: column; gap: 8px; }
.addnew { margin-top: 12px; }
.addnew summary { cursor: pointer; font-weight: 600; color: var(--green-d); }
.paylist { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.payopt { display: flex; gap: 12px; align-items: flex-start; border: 1.5px solid var(--line); border-radius: 12px; padding: 12px 14px; cursor: pointer; }
.payopt:has(input:checked) { border-color: var(--green); background: var(--brand-tint-2); }
.payopt:has(input:disabled) { opacity: .5; cursor: not-allowed; }
.payopt input { margin-top: 3px; accent-color: var(--green); }
.payopt span { display: flex; flex-direction: column; }
.payopt small { color: var(--muted); font-size: 12.5px; }
.momo { margin: -4px 0 4px 30px; display: flex; flex-direction: column; gap: 10px; }
.momo[hidden] { display: none; }
.momo__nets { display: flex; flex-wrap: wrap; gap: 8px; }
.momo__net input { position: absolute; opacity: 0; }
.momo__net span { display: inline-block; border: 2px solid var(--line); border-radius: 10px; padding: 8px 14px; font-weight: 700; font-size: 13px; cursor: pointer; }
.momo__net--mtn input:checked + span { border-color: #FFCC00; background: #FFF8D6; }
.momo__net--atl input:checked + span { border-color: #E11D48; background: #FFE4E6; }
.momo__net--vod input:checked + span { border-color: #E60000; background: #FEE2E2; }
.momo__net input:focus-visible + span { outline: 2px solid var(--navy); outline-offset: 2px; }
.checkout__problem { background: #FFF4E5; border: 1px solid #FCD9A8; border-radius: 10px; padding: 9px 12px; font-size: 13px; margin-top: 8px; }
.checkout__place { margin-top: 14px; height: 48px; font-size: 15px; }
.checkout__secure { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); margin-top: 10px; }
.osum { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; display: grid; gap: 6px; font-size: 14px; }
.osum div { display: flex; justify-content: space-between; }
.osum dt { color: var(--muted); }
.osum__total { font-weight: 700; font-size: 17px; border-top: 1px solid var(--line); padding-top: 8px; }
.osum__total dt { color: var(--ink); }
.paybox { text-align: center; }
.paybox__spinner { width: 42px; height: 42px; margin: 0 auto 12px; border-radius: 50%; border: 4px solid var(--brand-tint); border-top-color: var(--green); animation: xm-spin .9s linear infinite; }
.paybox__spinner[hidden] { display: none; }
@keyframes xm-spin { to { transform: rotate(360deg); } }
.paybox form { display: flex; gap: 8px; justify-content: center; margin-top: 12px; }
.paybox form[hidden] { display: none; }
.paybox .authform__code { width: 150px; font-size: 18px; letter-spacing: .2em; }

.orow { display: flex; align-items: center; gap: 16px; padding: 14px 4px; border-bottom: 1px solid #F3F4F6; }
.orow:hover { background: #FAFAFA; }
.orow__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.orow__main span { color: var(--muted); font-size: 12.5px; }
.orow__total { white-space: nowrap; }
.ostat { font: 600 12px 'Inter', sans-serif; border-radius: 999px; padding: 4px 10px; background: #F3F4F6; color: #374151; white-space: nowrap; }
.ostat--placed, .ostat--accepted, .ostat--preparing, .ostat--out_for_delivery { background: var(--brand-tint); color: var(--green-d); }
.ostat--delivered { background: var(--ok-bg); color: var(--ok); }
.ostat--payment_failed, .ostat--cancelled { background: #F3F4F6; color: #6B7280; }
.ohead { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.ohead__sub { color: var(--muted); margin-top: -8px; }
.track { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; margin: 18px 0 8px; counter-reset: t; list-style: none; padding: 0; }
.track__step { position: relative; padding-top: 30px; font-size: 12.5px; text-align: center; color: var(--muted); }
.track__step::before { counter-increment: t; content: counter(t); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 24px; height: 24px; border-radius: 50%; background: #E5E7EB; color: #6B7280; display: grid; place-items: center; font-weight: 700; font-size: 12px; z-index: 1; }
.track__step::after { content: ""; position: absolute; top: 11px; left: -50%; width: 100%; height: 3px; background: #E5E7EB; }
.track__step:first-child::after { display: none; }
.track__step.is-done { color: var(--ink); }
.track__step.is-done::before { background: var(--green); color: #fff; content: "✓"; }
.track__step.is-done::after { background: var(--green); }
.track__step.is-current::before { box-shadow: 0 0 0 4px var(--brand-tint); }
.track__step small { display: block; color: var(--muted); }
.olines li { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid #F3F4F6; }
.olines img { width: 52px; height: 52px; border-radius: 8px; object-fit: cover; }
.olines div { flex: 1; display: flex; flex-direction: column; font-size: 13.5px; }
.olines em { font-style: normal; font-size: 12px; color: #374151; }
.olines span { color: var(--muted); font-size: 12.5px; }
.empty-state { text-align: center; padding: 40px 0; color: var(--muted); display: grid; gap: 12px; justify-items: center; }

@media (max-width: 960px) {
    .checkout { grid-template-columns: minmax(0, 1fr); }
    .checkout__summary { position: static; }
    .pagebox__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 680px) {
    .pagebox { width: calc(100% - 32px); padding: 16px; }
    .track { grid-auto-flow: row; grid-auto-columns: auto; }
    .track__step { padding: 0 0 0 34px; text-align: left; min-height: 28px; }
    .track__step::before { left: 0; transform: none; }
    .track__step::after { display: none; }
    .momo { margin-left: 0; }
    .orow { flex-wrap: wrap; }
}

/* Sign-in: phone / email tabs */
.authform[hidden] { display: none; }
.authtabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; background: var(--bg); border-radius: 999px; padding: 4px; margin: 14px 0 6px; }
.authtabs__tab { border: 0; background: none; border-radius: 999px; padding: 9px 10px; font: inherit; font-weight: 600; font-size: 13.5px; color: var(--muted); cursor: pointer; }
.authtabs__tab.is-active { background: #fff; color: var(--ink); box-shadow: var(--shadow); }
.authform__check { display: flex; align-items: center; gap: 8px; font-weight: 500; font-size: 13.5px; margin: 4px 0; }
.authform input[type=email], .authform input[type=password] { width: 100%; height: 46px; border: 1px solid var(--line); border-radius: 10px; padding: 0 12px; font: inherit; }

/* Categories that follow the search area */
[data-cat-group][hidden] { display: none !important; }
.hero__cats { overflow-y: auto; }
[data-cat].is-active { background: var(--brand-tint-2); color: var(--green-d); font-weight: 700; }

/* Basket: quantity, line totals, remove */
.ditem { align-items: flex-start; }
.ditem__info em { display: block; font-style: normal; color: var(--muted); }
.ditem__max { display: block; color: #B45309; font-size: 11.5px; margin-top: 2px; }
.ditem__side { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex: none; }
.ditem__total { font-size: 14px; }
.ditem__remove { font-size: 12px; color: var(--muted); padding: 0; }
.ditem__remove:hover { color: var(--green-d); }
.ditem .qty input { width: 38px; font-size: 14px; }
.drawer__sub small { color: var(--muted); font-weight: 500; }
.drawer__fine { font-size: 12px; color: var(--muted); margin: -4px 0 10px; }
[data-summary].is-updating { opacity: .55; transition: opacity .15s; }
.checkout__summary .ditem__side .qty { height: 30px; }

/* Delivery address phone */
.addr__phone { display: block; color: var(--muted); font-size: 12.5px; margin-top: 2px; }

/* =========================================================
   Tickets: header, seat maps (bus / theatre / cinema), booking panel
   ========================================================= */
.tkhead { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 22px; background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px; margin-top: 12px; }
.tkhead__art { border-radius: 12px; overflow: hidden; background: var(--brand-tint-2); display: grid; place-items: center; aspect-ratio: 4 / 3; }
.tkhead__art img { width: 100%; height: 100%; object-fit: cover; }
.tkhead__art--bus { background: linear-gradient(135deg, #0B1F3A, #124E78); }
.tkhead__icon { width: 72px !important; height: 72px !important; object-fit: contain !important; filter: invert(1); }
.tkhead__kind { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--green-d); }
.tkhead h1 { font-family: 'Poppins', sans-serif; font-size: 24px; margin: 4px 0; }
.tkhead__sub { color: var(--muted); }
.tkhead__facts { list-style: none; padding: 0; margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; }
.tkhead__facts li { display: flex; align-items: center; gap: 6px; }
.tkchips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.tkchip { display: flex; flex-direction: column; align-items: center; min-width: 78px; padding: 7px 12px; border: 1.5px solid var(--line); border-radius: 12px; font-weight: 600; font-size: 13px; line-height: 1.2; background: #fff; }
.tkchip small { font-weight: 500; color: var(--muted); font-size: 11.5px; }
.tkchip:hover { border-color: var(--green); }
.tkchip.is-on { border-color: var(--green); background: var(--brand-tint); color: var(--green-d); }
.tkchip.is-off { opacity: .45; cursor: not-allowed; text-decoration: line-through; }

.tkgrid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; margin-top: 16px; }
.tkmap__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.tklegend { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; color: #374151; }
.tklegend li { display: flex; align-items: center; gap: 6px; }
.tkdot { width: 14px; height: 14px; border-radius: 4px; display: inline-block; border: 1.5px solid transparent; }
.tkdot--free { background: #fff; border-color: #94A3B8; }
.tkdot--sel { background: var(--green); }
.tkdot--taken { background: #D1D5DB; }
.tkdot--vip { background: #FDE68A; border-color: #D97706; }
.tkdot--premium { background: #DDD6FE; border-color: #7C3AED; }
.tkdot--standard { background: #BAE6FD; border-color: #0284C7; }
.tkmap__scroll { overflow-x: auto; margin: 12px -4px 0; padding: 4px; -webkit-overflow-scrolling: touch; }
.tkmap__svg { display: flex; justify-content: center; }
.tksvg { width: 100%; height: auto; display: block; }
.tkmap__scroll--theatre .tksvg, .tkmap__scroll--cinema .tksvg { min-width: 560px; }
.tkmap__scroll--bus .tksvg { min-width: 240px; }
.tkmap__hint { font-size: 12.5px; color: var(--muted); text-align: center; margin-top: 6px; }

/* seats */
.tkseat { cursor: pointer; outline: none; }
.tkseat__body { fill: #fff; stroke: #94A3B8; stroke-width: 1.5; transition: fill .12s, stroke .12s, transform .12s; }
.tkseat__back { fill: #CBD5E1; }
.tkseat text { font: 700 11px 'Inter', sans-serif; fill: #334155; pointer-events: none; }
.tkseat.tier-vip .tkseat__body { fill: #FEF3C7; stroke: #D97706; }
.tkseat.tier-premium .tkseat__body { fill: #EDE9FE; stroke: #7C3AED; }
.tkseat.tier-standard .tkseat__body { fill: #E0F2FE; stroke: #0284C7; }
.tkseat:hover .tkseat__body, .tkseat:focus-visible .tkseat__body { stroke: var(--green); stroke-width: 2.5; }
.tkseat.is-selected .tkseat__body { fill: var(--green); stroke: var(--green-d); }
.tkseat.is-selected .tkseat__back { fill: var(--green-d); }
.tkseat.is-selected text { fill: #fff; }
.tkseat.is-taken, .tkseat.is-closed { cursor: not-allowed; }
.tkseat.is-taken .tkseat__body { fill: #E5E7EB; stroke: #D1D5DB; }
.tkseat.is-taken .tkseat__back { fill: #D1D5DB; }
.tkseat.is-taken text { fill: #9CA3AF; }
.tkseat__x { stroke: #9CA3AF; stroke-width: 1.6; stroke-linecap: round; }
.tkrow { font: 700 11px 'Inter', sans-serif; fill: #64748B; }

/* bus body */
.tkbus__body { fill: #F8FAFC; stroke: #0B1F3A; stroke-width: 3; }
.tkbus__glass { fill: #BFDBFE; stroke: #0B1F3A; stroke-width: 2; }
.tkbus__driver circle { fill: none; stroke: #0B1F3A; stroke-width: 3; }
.tkbus__driver path { stroke: #0B1F3A; stroke-width: 3; }
.tkbus__door { fill: var(--amber); }
.tkbus__aisle { fill: #EEF2F7; }
.tkbus__lbl { font: 600 10.5px 'Inter', sans-serif; fill: #64748B; }
.tkbus__door--sliding { fill: #F59E0B; opacity: .85; }
.tkbus__lbl--door { font-size: 9px; }
.tkbus__partition { fill: #94A3B8; }
.tkbus__fix rect { fill: #E2E8F0; stroke: #94A3B8; stroke-width: 1.5; }
.tkbus__fix line { stroke: #94A3B8; stroke-width: 1.5; }
.tkbus__fix text { font: 700 10px 'Inter', sans-serif; fill: #475569; }
.tkbus__fix--toilet rect { fill: #E0F2FE; stroke: #7DD3FC; }
.tkbus__fix--stairs text { paint-order: stroke; stroke: #E2E8F0; stroke-width: 4px; }
.tkseat__pillow { fill: #fff; opacity: .85; stroke: rgba(15, 23, 42, .12); }
.tkdot--seat { background: #fff; border-color: #94A3B8; }
.tkmap__scroll--sleeper .tksvg, .tkmap__scroll--double .tksvg { min-width: 440px; }
.tkmap__design { font-size: 13px; font-weight: 600; color: var(--navy, #0B1F3A); margin: 4px 0 0; }
.tkbus__lbl--front { font-size: 11px; letter-spacing: .2em; fill: #0B1F3A; }
/* theatre / cinema */
.tkstage__lbl { font: 800 13px 'Poppins', sans-serif; letter-spacing: .35em; fill: #fff; }
.tkstage__lbl--dark { fill: #1E3A8A; font-size: 11px; }
.tkscreen { fill: none; stroke: #3B82F6; stroke-width: 5; stroke-linecap: round; }

/* booking panel */
.tkbuy { position: sticky; top: 140px; }
.tklist { list-style: none; margin: 0 0 6px; padding: 0; }
.tklist li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #F3F4F6; font-size: 14px; }
.tklist li em { display: block; font-style: normal; color: var(--muted); font-size: 12px; }
.tklist .linkbtn { font-size: 18px; line-height: 1; padding: 0 2px; color: var(--muted); text-decoration: none; }
.paylist--tickets { margin: 10px 0 4px; }

/* tickets on the order page */
.tickets { display: grid; gap: 12px; margin: 16px 0; }
.eticket { display: grid; grid-template-columns: minmax(0, 1fr) 150px; border-radius: 14px; overflow: hidden; background: #fff; border: 1.5px solid var(--line); }
.eticket__main { padding: 14px 16px; }
.eticket__main h3 { font-family: 'Poppins', sans-serif; font-size: 16px; margin: 0 0 4px; }
.eticket__main p { margin: 2px 0; font-size: 13.5px; color: #374151; }
.eticket__seat { background: var(--navy); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 12px; border-left: 2px dashed rgba(255,255,255,.4); }
.eticket__seat small { opacity: .75; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.eticket__seat b { font-size: 22px; font-family: 'Poppins', sans-serif; }
.eticket__code { font: 700 12px monospace; letter-spacing: .1em; margin-top: 6px; }

@media (max-width: 960px) {
    .tkgrid { grid-template-columns: minmax(0, 1fr); }
    .tkbuy { position: static; }
}
@media (max-width: 640px) {
    .tkhead { grid-template-columns: 1fr; }
    .tkhead__art { aspect-ratio: 16 / 7; }
    .tkhead h1 { font-size: 20px; }
    .eticket { grid-template-columns: 1fr; }
    .eticket__seat { border-left: 0; border-top: 2px dashed rgba(255,255,255,.4); flex-direction: row; gap: 10px; }
}
.bcard__design { color: var(--brand, #C8102E); font-weight: 600; }

/* =========================================================
   Airport pickup & drop-off
   ========================================================= */
.aphead { display: flex; gap: 16px; align-items: center; background: linear-gradient(120deg, #0B1F3A 0%, #16325C 60%, #1E4B8F 100%); color: #fff; border-radius: 18px; padding: 22px 24px; margin: 8px 0 16px; }
.aphead h1 { font: 700 26px/1.2 'Poppins', sans-serif; margin: 0 0 6px; }
.aphead p { margin: 0; opacity: .85; max-width: 720px; font-size: 14.5px; }
.aphead__icon { flex: none; width: 64px; height: 64px; border-radius: 16px; background: rgba(255,255,255,.12); display: grid; place-items: center; }
.aphead__icon .ico { width: 34px; height: 34px; filter: invert(1); }
.apgrid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; margin-bottom: 32px; }
.apmain { display: grid; gap: 14px; }
.apmain .cbox > label, .apfields label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; color: #374151; }
.apmain .cbox > label { margin-top: 10px; }
.apmain input:not([type=radio]):not([type=checkbox]), .apmain select { height: 42px; border: 1.5px solid var(--line); border-radius: 10px; padding: 0 12px; font: 500 14.5px 'Inter', sans-serif; background: #fff; width: 100%; }
.apmain input:focus, .apmain select:focus { border-color: var(--green); outline: 0; box-shadow: 0 0 0 3px rgba(215,24,14,.12); }
.apfields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.apfields--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.apdir { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.apdir__opt { position: relative; border: 1.5px solid var(--line); border-radius: 12px; padding: 12px 14px 12px 40px; cursor: pointer; }
.apdir__opt input { position: absolute; left: 14px; top: 16px; accent-color: var(--green); }
.apdir__opt b { display: block; font-size: 14.5px; }
.apdir__opt small { color: var(--muted); font-size: 12.5px; }
.apdir__opt:has(input:checked) { border-color: var(--green); background: #FFF5F4; }
.apseg { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.apseg legend { font-size: 13px; font-weight: 600; color: #374151; margin-bottom: 5px; }
.apseg label { display: flex; gap: 8px; align-items: center; font-weight: 500; }
.apcheck { display: flex !important; flex-direction: row !important; gap: 8px; align-items: flex-start; font-weight: 500 !important; font-size: 14px !important; margin-top: 10px; }
.apcheck input { margin-top: 3px; accent-color: var(--green); }
.apcount { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 14px; }
.apcount__item { border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: #374151; }
.apcount__item .qty { height: 36px; align-self: flex-start; }
.apcount__item .qty button { width: 34px; }
.apcount__item .qty input { width: 38px !important; height: 100% !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
.apmeet { margin-top: 4px; }
.apsign { margin-top: 8px; max-width: 360px; }
.apguest { margin: 4px 0 0; font-size: 14px; }
.apcars { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.apcar { position: relative; border: 1.5px solid var(--line); border-radius: 14px; overflow: hidden; cursor: pointer; display: flex; flex-direction: column; transition: .15s; }
.apcar input { position: absolute; top: 10px; left: 10px; accent-color: var(--green); z-index: 1; }
.apcar__img { background: #F3F4F6; aspect-ratio: 16 / 8; display: block; }
.apcar__img img { width: 100%; height: 100%; object-fit: cover; }
.apcar__body { padding: 10px 12px; display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.apcar__body b { font-size: 15px; }
.apcar__body small { color: var(--muted); }
.apcar__cap { display: flex; gap: 6px; align-items: center; color: #374151; font-weight: 600; }
.apcar__from { color: var(--muted); }
.apcar__from b { color: #111827; font-size: 14px; }
.apcar:has(input:checked) { border-color: var(--green); box-shadow: 0 0 0 3px rgba(215,24,14,.12); }
.apsum { position: sticky; top: 90px; }
.apsum__route { display: flex; flex-direction: column; margin: 0 0 6px; }
.apsum__route span { color: var(--muted); font-size: 13px; }
.apsum__when { background: #EFF6FF; color: #1E3A8A; border-radius: 10px; padding: 10px 12px; font-size: 13.5px; margin: 0 0 10px; }
.apbad input, .apbad select, input.apbad, select.apbad, .apbad.addrpick, .apbad.apcars, .apbad.apcount__item { border-color: #DC2626 !important; }
.apfield-err { display: block; color: #B91C1C; font-weight: 500; font-size: 12.5px; }
/* order page */
.aptrip { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; margin: 14px 0 6px; }
.aptrip__box { border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; background: #fff; }
.aptrip__box h3 { display: flex; gap: 8px; align-items: center; font: 600 14px 'Poppins', sans-serif; margin: 0 0 8px; color: #0B1F3A; }
.aptrip__box p { margin: 2px 0; font-size: 14px; }
.aptrip__box small { color: var(--muted); }
.aptrip__box--driver { background: #F0FDF4; border-color: #BBF7D0; }
.aptrip__big { font: 700 20px 'Poppins', sans-serif; color: #0B1F3A; }
/* homepage section */
.apsec { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 16px; }
.apquick { background: linear-gradient(135deg, #0B1F3A, #1E4B8F); color: #fff; border-radius: 16px; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.apquick h3 { margin: 0; font: 600 18px 'Poppins', sans-serif; }
.apquick__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.apquick label { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 600; opacity: .95; }
.apquick select, .apquick input { height: 40px; border-radius: 10px; border: 0; padding: 0 10px; font: 500 14px 'Inter', sans-serif; color: #111827; }
.apquick__dir { display: flex; gap: 6px; background: rgba(255,255,255,.12); padding: 4px; border-radius: 999px; }
.apquick__dir label { flex: 1; flex-direction: row; justify-content: center; align-items: center; cursor: pointer; border-radius: 999px; padding: 7px 10px; font-size: 13px; }
.apquick__dir input { position: absolute; opacity: 0; pointer-events: none; }
.apquick__dir label:has(input:checked) { background: #fff; color: #0B1F3A; }
.apquick ul { margin: 0; padding: 0 0 0 18px; font-size: 13px; opacity: .9; }
.apcars--home { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1000px) {
    .apgrid { grid-template-columns: 1fr; }
    .apsum { position: static; }
    .apsec { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .apfields, .apfields--3, .apdir { grid-template-columns: 1fr; }
    .aphead { padding: 16px; } .aphead h1 { font-size: 21px; } .aphead__icon { width: 48px; height: 48px; }
    .apcars--home { grid-template-columns: 1fr 1fr; }
}
.apseg label.is-off { opacity: .45; }
.apseg label { flex-direction: row !important; align-items: center !important; font-weight: 500 !important; font-size: 14px !important; color: #111827 !important; }
.apseg input { accent-color: var(--green); }
.apdirtitle { font: inherit; }
.apquick { align-self: start; }
