/* ==========================================================================
   AMAZING THAILAND CLUB — responsive.css
   Breakpoints (max-width, desktop-first) with a few min-width refinements.

   1920 / 1600 / 1440   large desktop
   1366 / 1280          desktop & laptop
   1200 / 1024 / 992    small laptop & tablet landscape
   768                  tablet portrait
   576 / 480 / 430      large phones
   390 / 375 / 360      phones
   320                  small phones
   ========================================================================== */

/* ==========================================================================
   LARGE DESKTOP — 1600px and up
   ========================================================================== */
@media (min-width: 1600px) {
  :root { --container: 1440px; --header-h: 94px; }
  .about__media { min-height: 520px; }
}

@media (min-width: 1920px) {
  :root { --container: 1520px; }
  .hero { min-height: 800px; }
}

/* ==========================================================================
   1440px
   ========================================================================== */
@media (max-width: 1440px) {
  :root { --container: 1240px; }
}

/* ==========================================================================
   1366px / 1280px — laptops
   ========================================================================== */
@media (max-width: 1366px) {
  :root { --container: 1160px; --header-h: 84px; }
  .nav__list { gap: 16px; }
  .about__quote { max-width: 260px; }
}

@media (max-width: 1280px) {
  :root { --container: 1080px; }
  .script-note--footer { font-size: 1.14rem; }
  .logo__tag { letter-spacing: .24em; }
  .usp { gap: 0 4px; }
  .footer__grid { grid-template-columns: 1.4fr 1fr 1.1fr 1.1fr 1.35fr; }
}

/* ==========================================================================
   1200px — nav gets tight, switch to burger
   ========================================================================== */
@media (max-width: 1200px) {
  .nav { display: none; }
  .burger { display: flex; }
  .slider__nav--prev { left: -6px; }
  .slider__nav--next { right: -6px; }
  .section__action { position: static; transform: none; margin-top: 18px; }
  .about__card { grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); }
  .exp-card__body { right: 58px; }
}

/* ==========================================================================
   1024px / 992px — tablet landscape
   ========================================================================== */
@media (max-width: 1024px) {
  :root { --header-h: 76px; }

  .hero { min-height: 620px; }
  .hero__sub br { display: none; }

  .searchbar { flex-wrap: wrap; border-radius: var(--r-xl); }
  .searchbar__field { flex: 1 1 40%; }
  .searchbar__divider { display: none; }
  .searchbar__submit { flex: 1 1 100%; padding-block: 14px; }

  .exp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .about__card { grid-template-columns: minmax(0, 1fr); }
  .about__media { min-height: 460px; order: -1; }
  .about__quote { max-width: 300px; }

  .footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer__brand { grid-column: 1 / -1; }
  .footer__col--connect { grid-column: 1 / -1; }
}

@media (max-width: 992px) {
  .usp { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 0; }
  .usp__item:nth-child(3)::before { display: none; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 0; }
  .stats__item:nth-child(3)::before { display: none; }
  .contact__grid { grid-template-columns: minmax(0, 1fr); }
  .band--cta { min-height: 250px; }
}

/* ==========================================================================
   768px — tablet portrait
   ========================================================================== */
@media (max-width: 768px) {
  :root { --section-y: 52px; }

  .hero { min-height: auto; padding-bottom: clamp(40px, 7vw, 56px); }
  .hero__title { font-size: clamp(2.2rem, 7.6vw, 3rem); }
  .eyebrow--light { justify-content: center; }
  .hero__inner { text-align: center; }
  .hero__sub { margin-inline: auto; }
  .hero__cta { justify-content: center; }

  /* the search bar joins the normal flow so it can never cover the CTAs */
  .searchbar-wrap { position: static; transform: none; margin-top: clamp(22px, 5vw, 34px); }
  .slider__nav { display: none !important; }

  .searchbar { flex-direction: column; gap: 4px; padding: 12px; }
  .searchbar__field { flex: 1 1 auto; width: 100%; padding-block: 11px; }
  .searchbar__field + .searchbar__field { border-top: 1px solid rgba(217, 164, 65, .28); border-radius: 0; }
  .searchbar__submit { width: 100%; margin-top: 8px; }

  .exp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about__text { padding: 28px 22px 32px; }
  .about__media { min-height: 400px; }
  .about__quote { position: static; max-width: none; margin: 0 14px 14px auto; }
  .about__media { display: flex; flex-direction: column; justify-content: flex-start; padding-top: 18px; }
  .script-note--onphoto { position: static; margin: 0 0 10px 18px; transform: rotate(-5deg); }
  .mascot { position: relative; right: auto; margin: auto 0 0 auto; }

  .footer-scene { min-height: 300px; }
  .mascot--footer { position: absolute; left: -10px; }
  .mascot--footer .mascot__cap { display: none; }

  .footer-bar__inner { justify-content: center; text-align: center; }
  .footer-bar__brand { order: -1; }
}

/* ==========================================================================
   576px — large phones
   ========================================================================== */
@media (max-width: 576px) {
  :root { --header-h: 68px; --section-y: 44px; }

  .logo__tag { display: none; }
  .logo__name { font-size: 1.14rem; }

  .hero { min-height: auto; }
  .hero__cta { flex-direction: column; align-items: stretch; gap: 16px; }
  .hero__cta .btn { width: 100%; }
  .video-link { justify-content: center; }

  .exp-grid { grid-template-columns: minmax(0, 1fr); }
  .exp-card { aspect-ratio: 16 / 9; }

  .usp { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .usp__item::before { display: none !important; }
  .usp__item { text-align: left; display: grid; grid-template-columns: 42px 1fr; column-gap: 14px; align-items: center; }
  .usp__icon { grid-row: 1 / 3; }
  .usp__title { margin-top: 0; }
  .usp__title br, .usp__text br { display: none; }

  .stats { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .stats__item { justify-content: flex-start; }
  .stats__item::before { display: none !important; }

  .chips { gap: 6px 10px; }
  .chip { padding: 7px 10px; letter-spacing: .1em; }
  .chip svg { width: 18px; height: 18px; }

  .form__row { grid-template-columns: minmax(0, 1fr); }
  .footer__grid { grid-template-columns: minmax(0, 1fr); }
  .footer-scene { min-height: 260px; }
  .footer-bar__links { justify-content: center; }
}

/* ==========================================================================
   480px / 430px
   ========================================================================== */
@media (max-width: 480px) {
  .hero__title { font-size: clamp(2rem, 9vw, 2.5rem); }
  .hero__sub { font-size: .9rem; }
  .section__title { font-size: clamp(1.65rem, 7.4vw, 2.1rem); }
  .eyebrow { letter-spacing: .22em; gap: 8px; }
  .eyebrow__rule { width: 20px; }

  .about__quote p { font-size: .88rem; }
  .band__text { letter-spacing: .2em; font-size: .74rem; }
  .footer-bar__brand { flex-wrap: wrap; justify-content: center; }
}

@media (max-width: 430px) {
  :root { --gutter: 16px; }
  .btn--lg { padding: 15px 26px; }
  .searchbar__icon { width: 21px; height: 21px; }
  .holiday-card__icon { width: 52px; height: 52px; }
  .holiday-card__icon svg { width: 24px; height: 24px; }
  .holiday-card__body { padding-top: 34px; }
}

/* ==========================================================================
   390px / 375px / 360px
   ========================================================================== */
@media (max-width: 390px) {
  .logo__mark { width: 40px; }
  .logo__name { font-size: 1.04rem; }
  .icon-btn { width: 40px; height: 40px; }
  .burger { width: 42px; height: 42px; }
  .hero { min-height: auto; }
  .mascot__img { width: 130px; }
}

@media (max-width: 360px) {
  :root { --gutter: 14px; }
  .hero__title { font-size: 1.94rem; }
  .video-link__text small { display: none; }
  .footer-bar__links { gap: 10px; }
  .footer-bar__links li { gap: 10px; }
}

/* ==========================================================================
   320px — smallest supported
   ========================================================================== */
@media (max-width: 320px) {
  :root { --gutter: 12px; }
  .logo__name { font-size: .95rem; }
  .logo__mark { width: 34px; }
  .hero__title { font-size: 1.76rem; }
  .hero__sub { font-size: .84rem; }
  .btn { padding: 12px 20px; font-size: .78rem; }
  .section__title { font-size: 1.5rem; }
  .exp-card { aspect-ratio: 4 / 3; }
  .social { flex-wrap: wrap; }
}

/* ==========================================================================
   ORIENTATION / DEVICE REFINEMENTS
   ========================================================================== */

/* short landscape phones — keep the hero usable */
@media (max-height: 520px) and (orientation: landscape) {
  .hero { min-height: 560px; padding-top: calc(var(--header-h) + 24px); }
  .offcanvas__nav { padding-bottom: 8px; }
  .oc-link { padding-block: 11px; }
}

/* iPad portrait & landscape safe-area + notch handling */
@supports (padding: max(0px)) {
  .container { padding-left: max(var(--gutter), env(safe-area-inset-left)); padding-right: max(var(--gutter), env(safe-area-inset-right)); }
  .to-top { bottom: max(clamp(14px, 2vw, 28px), env(safe-area-inset-bottom)); }
}

/* hover-capable pointers only — avoids sticky :hover states on touch */
@media (hover: none) {
  .dest-card:hover, .holiday-card:hover, .exp-card:hover { transform: none; }
  .nav__item--has-children:hover > .nav__drop { opacity: 0; visibility: hidden; }
  .nav__item--has-children:focus-within > .nav__drop { opacity: 1; visibility: visible; }
}

/* coarse pointers get bigger tap targets (WCAG 2.5.5) */
@media (pointer: coarse) {
  .footer__list a, .nav__drop a, .oc-sub a { min-height: 44px; align-items: center; }
  .slider__dot { height: 12px; }
  .link-cta { padding-block: 6px; }
}

/* high-resolution / retina — crisper hairlines */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .stats, .contact__info li, .form { border-width: .5px; }
}

/* print */
@media print {
  .header, .offcanvas, .offcanvas-overlay, .to-top, .slider__nav, .slider__dots,
  .scroll-cue, .deco, .band__img, .footer-scene__img, .mascot { display: none !important; }
  body { background: #fff; color: #000; }
  .section, .band, .footer { padding-block: 12pt; background: #fff !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
}

/* ==========================================================================
   PACKAGES LISTING PAGE
   (kept here so every breakpoint for the whole site lives in one file)
   ========================================================================== */

/* --- large desktop --- */
@media (min-width: 1600px) {
  .pkg-layout { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); }
  .pkg-card__inner { grid-template-columns: 268px minmax(0, 1fr) 236px; }
}

/* --- laptops: tighten the three columns --- */
@media (max-width: 1366px) {
  .pkg-card__inner { grid-template-columns: 214px minmax(0, 1fr) 200px; }
}

@media (max-width: 1200px) {
  .pkg-layout { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); }
  .pkg-card__inner { grid-template-columns: 192px minmax(0, 1fr) 190px; }
  .summary__bar { grid-template-columns: minmax(0, 1.3fr) 1px minmax(0, 1fr); }
  .summary__actions { grid-column: 1 / -1; justify-content: flex-end; }
}

/* --- tablet landscape: sidebar moves into the drawer --- */
@media (max-width: 992px) {
  .pkg-layout { grid-template-columns: minmax(0, 1fr); }
  .filters-slot { position: static; }
  .filters-slot:empty { display: none; }
  .filters-toggle { display: inline-flex; }

  .sortbar { top: calc(var(--header-h) + 8px); }
  .pkg-card__inner { grid-template-columns: 210px minmax(0, 1fr); }
  .pkg-card__price {
    grid-column: 1 / -1;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px 11px;
    padding: 14px 0 0;
    border-left: 0;
    border-top: 1px dashed var(--line);
  }
  .pkg-card__price .btn--wine { margin-top: 0; width: auto; padding-inline: 24px; order: 5; }
  .pkg-price__actions { gap: 7px; }
  .pkg-price__actions .btn--sm { padding-inline: 14px; }
  .pkg-price__label { margin-top: 0; }
  .pkg-price { margin-right: auto; }          /* keeps both button groups together on the right */
  .pkg-price__actions { width: auto; margin-top: 0; order: 6; }
  .pkg-price__actions .btn { flex: none; }
}

/* --- tablet portrait --- */
@media (max-width: 768px) {
  .summary__bar { grid-template-columns: minmax(0, 1fr); }
  .summary__divider { display: none; }
  .summary__field + .summary__field { padding-top: 12px; border-top: 1px solid var(--line-soft); }
  .summary__actions { justify-content: stretch; }
  .summary__actions .btn { flex: 1; }

  .sortbar { flex-wrap: wrap; border-radius: 18px; }
  .sortbar__emi { margin-left: 0; width: 100%; padding-top: 6px; border-top: 1px solid var(--line-soft); }

  .pkg-card__inner { grid-template-columns: 170px minmax(0, 1fr); padding: 12px; }
  .pkg-card__media { min-height: 150px; }
  .pkg-facilities li { min-width: 46px; }
}

/* --- phones: everything stacks --- */
@media (max-width: 576px) {
  .pkg-page { padding-top: calc(var(--header-h) + 12px); }
  .crumbs__list { font-size: .68rem; }

  .pkg-card__inner { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .pkg-card__media { min-height: 0; aspect-ratio: 16 / 10; }
  .pkg-card__body { padding-top: 0; }

  .pkg-card__price { flex-direction: column; align-items: stretch; }
  .pkg-card__price .btn--wine { width: 100%; margin-left: 0; }
  .pkg-price__actions { width: 100%; }
  .pkg-price__actions .btn { flex: 1; }
  .pkg-price { justify-content: flex-start; }

  .sortbar { gap: 6px 10px; padding: 8px 10px; }
  .sortbar__label { padding-right: 10px; }
  .sortbar__btn { padding: 8px 10px; }

  .pagination { gap: 5px; padding: 10px; }
  .pagination__btn { min-width: 36px; height: 36px; padding: 0 10px; font-size: .8rem; }
}

@media (max-width: 430px) {
  .pkg-highlights { gap: 4px 10px; }
  .pkg-facilities { gap: 4px 6px; }
  .pkg-facilities li { min-width: 42px; font-size: .6rem; }
  .pkg-facilities svg { width: 18px; height: 18px; }
  .summary__intro { padding-inline: 0; }
}

@media (max-width: 360px) {
  .pkg-price__actions { flex-wrap: wrap; }
  .pkg-price__actions .btn { flex: 1 1 100%; }
  .pkg-page .pkg-price__actions .wa-btn { width: 100%; border-radius: 14px; }
  .pagination__btn { min-width: 34px; padding: 0 8px; }
}

/* ==========================================================================
   TOUR DETAILS PAGE
   ========================================================================== */

@media (min-width: 1600px) {
  .td-head__card,
  .td-hero__grid { grid-template-columns: minmax(0, 1fr) 320px; }
}

@media (max-width: 1366px) {
  .td-head__card,
  .td-hero__grid { grid-template-columns: minmax(0, 1fr) 262px; }
  .td-overview { grid-template-columns: minmax(0, 1fr) 250px; }
}

@media (max-width: 1200px) {
  .td-layout { grid-template-columns: minmax(0, 64%) minmax(0, 36%); }
  .td-quick__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .td-hotels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .td-gal { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .td-day__rows li { grid-template-columns: 110px minmax(0, 1fr); }
  .td-strip__bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .td-strip__modify { grid-column: 1 / -1; justify-self: stretch; }
}

/* --- tablet landscape: the sidebar drops under the content --- */
@media (max-width: 1024px) {
  .td-layout { grid-template-columns: minmax(0, 1fr); }
  .td-sidebar__inner { position: static; max-height: none; overflow: visible; }
  .td-sidebar { order: 2; }

  .td-head__card { grid-template-columns: minmax(0, 1fr); }
  .td-head__aside {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    padding: 14px 0 0;
    border-left: 0;
    border-top: 1px dashed var(--line);
  }
  .td-head__actions { order: -1; margin-left: auto; align-self: center; }
  .td-price__label { margin-top: 0; }
  .td-head__aside .btn--teal { margin-top: 0; margin-left: auto; width: auto; padding-inline: 30px; }
  .td-head__links { width: auto; margin-top: 0; }

  .td-hero__grid { grid-template-columns: minmax(0, 1fr); }
  .td-highlights__mascot { display: none; }
  .td-overview { grid-template-columns: minmax(0, 1fr); }
  .td-why { order: -1; }
}

@media (max-width: 992px) {
  .td-quick__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .td-incl { grid-template-columns: minmax(0, 1fr); }
  .td-rev-top { grid-template-columns: minmax(0, 1fr); text-align: center; }
  .td-bars li { grid-template-columns: 104px minmax(0, 1fr) 30px; text-align: left; }
  .td-map__route { flex-wrap: wrap; justify-content: center; gap: 4px 0; }
  .td-map__leg { min-width: 30px; }
}

/* --- tablet portrait --- */
@media (max-width: 768px) {
  .td-tabs { top: calc(var(--header-h) + 6px); }
  .td-sec__title { padding-left: 13px; }
  .td-gal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .td-hotels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .td-timeline { padding-left: 26px; }
  .td-timeline::before { left: 9px; }
  .td-day__badge { left: -26px; width: 22px; height: 22px; }
  .td-day__rows li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .td-day__v { padding-left: 22px; }
  .td-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .td-mobcta { display: flex; }
  .td-page { padding-bottom: 96px; }
  .to-top { bottom: 84px; }
}

/* --- phones --- */
@media (max-width: 576px) {
  .td-page { padding-top: calc(var(--header-h) + 10px); }
  .td-head__card { padding: 14px; }
  .td-facilities { gap: 8px 12px; }
  .td-facilities li { min-width: 48px; }

  .td-head__aside { flex-direction: column; align-items: stretch; }
  .td-head__actions { align-self: flex-end; margin-left: 0; }
  .td-head__aside .btn--teal { width: 100%; margin-left: 0; }
  .td-head__links { width: 100%; }

  .td-strip__bar { grid-template-columns: minmax(0, 1fr); }
  .td-quick__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .td-quick__item { padding: 12px 10px; }
  .td-gal { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .td-hotels { grid-template-columns: minmax(0, 1fr); }
  .td-cats { gap: 6px; }
  .td-cat { padding: 8px 12px; }

  .td-gallery__stage { aspect-ratio: 16 / 11; }
  .td-thumb { width: 74px; }
  .td-gallery__all span { display: none; }

  .td-map__route { flex-direction: column; align-items: flex-start; gap: 0; }
  .td-map__stop { flex-direction: row; gap: 12px; width: auto; text-align: left; align-items: center; }
  .td-map__leg { width: 46px; min-width: 0; height: 34px; padding-top: 0; margin-left: 22px; }
  .td-map__line { width: 2px; height: 100%; background: repeating-linear-gradient(180deg, var(--teal) 0 8px, transparent 8px 15px); }
  .td-map__line--air { background: repeating-linear-gradient(180deg, var(--amber) 0 8px, transparent 8px 15px); }
  .td-map__mode { top: 50%; left: 24px; transform: translateY(-50%); }

  .td-bars li { grid-template-columns: 92px minmax(0, 1fr) 28px; gap: 8px; }
  .lightbox { grid-template-columns: minmax(0, 1fr); padding: 60px 12px 20px; }
  .lightbox__nav { position: absolute; bottom: 20px; }
  .lightbox__nav--prev { left: 22%; }
  .lightbox__nav--next { right: 22%; }
  .lightbox__img { max-height: 62vh; }
  .lightbox__cap { padding-bottom: 54px; }
}

@media (max-width: 430px) {
  .td-trust { grid-template-columns: minmax(0, 1fr); }
  .td-trust li { flex-direction: row; justify-content: flex-start; gap: 9px; text-align: left; padding: 9px 12px; }
  .td-mobcta__btn--call span,
  .td-mobcta__btn--wa span { display: none; }
  .td-mobcta__btn--call,
  .td-mobcta__btn--wa { width: 44px; padding: 0; }
  .td-quick__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 360px) {
  .td-head__links { flex-wrap: wrap; }
  .td-head__links .btn { flex: 1 1 100%; }
  .td-head__links .wa-btn { width: 100%; border-radius: 14px; }
  .td-gal { grid-template-columns: minmax(0, 1fr); }
  .td-tag { font-size: .62rem; padding: 3px 8px; }
  .td-mobcta__price b { font-size: .92rem; }
}

/* ==========================================================================
   PART D — CONTENT, COMMERCE AND AUTH PAGES (about, contact, legal,
   wishlist, cart, checkout, confirmation, login, register, forgot, otp)
   ========================================================================== */

/* ---- header cart / wishlist / account -------------------------------- */
@media (max-width: 1560px) {
  .account__btn { padding: 0 11px; }
  .account__btn > span[data-account-name] { display: none; }
  .account__caret { display: none; }
  .header__actions { gap: 20px; }
  .nav__list { gap: clamp(9px, 1.1vw, 18px); }
}
@media (max-width: 1460px) {
  .header .logo__mark { width: 42px; }
  .header .logo__name { font-size: 1.26rem; }
  .header__inner { gap: 14px; }
  .nav__list { gap: 10px; }
  .nav__link { font-size: .84rem; }
  .header .icon-btn { width: 38px; height: 38px; }
  .header .account__btn { height: 38px; }
}
@media (max-width: 992px) {
  .header__actions .account { display: none; }
  .header__actions .icon-btn--badge[href="wishlist.html"] { display: none; }
}
@media (max-width: 430px) {
  .header__actions { gap: 6px; }
  .header__actions .js-search-toggle { display: none; }
}

/* ---- shared page shell ------------------------------------------------ */
@media (max-width: 992px) {
  .pg-cards, .pg-steps, .pg-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pg-split { grid-template-columns: minmax(0, 1fr); }
  .pg-split__media { order: -1; }
  .wish-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pg-contact-grid { grid-template-columns: minmax(0, 1fr); }
  .done__next { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 576px) {
  .pg-cards, .pg-steps, .pg-contact { grid-template-columns: minmax(0, 1fr); }
  .wish-grid { grid-template-columns: minmax(0, 1fr); }
  .done__next { grid-template-columns: minmax(0, 1fr); }
  .page-hero { padding-block: 92px 44px; }
}

/* ---- legal pages ------------------------------------------------------ */
@media (max-width: 992px) {
  .legal { grid-template-columns: minmax(0, 1fr); }
  .legal__toc { position: static; max-height: none; }
  .legal__toc-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 576px) {
  .legal__toc-list { grid-template-columns: minmax(0, 1fr); }
  .legal__body { padding: 18px 16px; }
}

/* ---- cart + checkout -------------------------------------------------- */
@media (max-width: 1100px) {
  .cart-layout { grid-template-columns: minmax(0, 1fr); }
  .summary-card { position: static; }
}
@media (max-width: 860px) {
  .cart-row { grid-template-columns: 148px minmax(0, 1fr); }
  .cart-row__side {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    padding-left: 0;
    padding-top: 12px;
    border-left: 0;
    border-top: 1px dashed var(--line);
  }
  .cart-row__price { text-align: left; }
}
@media (max-width: 576px) {
  .cart-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .cart-row__media img { aspect-ratio: 16 / 8; }
  .cart-ctrls { gap: 10px 12px; }
  .cart-row__acts { flex-direction: row; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
  .steps__label { display: none; }
  .steps { gap: 8px; }
}
@media (max-width: 430px) {
  .cart-row__side { flex-direction: column; align-items: stretch; gap: 10px; }
  .cart-row__acts { flex-direction: row; justify-content: space-between; align-items: center; }
  .mini-cart__row { grid-template-columns: 44px minmax(0, 1fr) auto; }
  .mini-cart__row img { width: 44px; height: 34px; }
}

/* ---- auth pages ------------------------------------------------------- */
@media (max-width: 992px) {
  .auth { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .auth__art { order: -1; min-height: 232px; }
  .auth__quote p { font-size: 1.05rem; }
  .auth__panel { padding: clamp(26px, 5vw, 44px) 20px clamp(36px, 6vw, 56px); }
}
@media (max-width: 576px) {
  .auth__art { min-height: 180px; }
  .auth__stats { gap: 8px 18px; margin-top: 16px; padding-top: 14px; }
  .auth__form .form__row { grid-template-columns: minmax(0, 1fr); }
  .auth__form .form__row + .field,
  .auth__form .field + .form__row,
  .auth__form .form__row + .form__row { margin-top: 14px; }
  .auth__row { flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media (max-width: 400px) {
  .otp { gap: 5px; }
  .otp__input { max-width: 44px; border-radius: 11px; font-size: 1.2rem; }
}
@media (max-width: 340px) {
  .otp { gap: 4px; }
  .otp__input { max-width: 40px; font-size: 1.05rem; }
}

/* ---- toasts ----------------------------------------------------------- */
@media (max-width: 576px) {
  .toasts { left: 14px; right: 14px; bottom: 82px; }
  .toast { width: 100%; }
}
