:root {
  --bg: #f3f3f3;
  --surface: #ffffff;
  --s2: #f7f7f7;
  --border: #e8e8e8;
  --b2: #d9d9d9;
  --text: #202020;
  --t2: #777777;
  --t3: #a6a6a6;
  --accent: #ffbd00;
  --accent-strong: #f4b400;
  --accent-soft: #fff5cf;
  --success: #419f66;
  --r: 26px;
  --rsm: 18px;
  --shadow: 0 10px 35px rgba(20, 20, 20, .06);
  --service-width: 390px;
}

html {
  background: #ececeb;
  scroll-behavior: smooth;
}

body {
  min-width: 320px;
  min-height: 100vh;
  min-height: 100dvh;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 10% -10%, rgba(255, 189, 0, .13), transparent 28rem),
    #ececeb;
  color: var(--text);
  -webkit-font-smoothing: antialiased;
}

body.entry-active {
  overflow: hidden;
}

.entry-gateway {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: #ececeb;
  opacity: 1;
  visibility: visible;
  transition: opacity .25s ease, visibility .25s ease;
}

.entry-gateway.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.entry-gateway iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #ececeb;
}

.entry-reset {
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  right: 16px;
  z-index: 50;
  display: none;
  min-height: 38px;
  padding: 9px 13px;
  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 999px;
  background: rgba(32, 32, 32, .9);
  color: #fff;
  font-size: 11px;
  font-weight: 650;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
  backdrop-filter: blur(14px);
  cursor: pointer;
}

.entry-reset.is-visible {
  display: block;
}

.service-lang {
  position: fixed;
  left: calc(50% - 360px);
  bottom: 28px;
  z-index: 60;
  display: none;
  gap: 3px;
  padding: 4px;
  border: 1px solid rgba(0, 0, 0, .07);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  backdrop-filter: blur(14px);
}

body:not(.entry-active) .service-lang {
  display: flex;
}

.service-lang button {
  min-width: 34px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--t2);
  font-size: 10px;
  font-weight: 750;
  cursor: pointer;
}

.service-lang button.on {
  background: var(--accent);
  color: var(--text);
}

button,
input,
textarea {
  font: inherit;
}

button,
.tap,
.btn,
.ni,
.ni-fab,
.pill,
.ab,
.atab,
.hdr-back {
  touch-action: manipulation;
}

:focus-visible {
  outline: 3px solid rgba(255, 189, 0, .65);
  outline-offset: 3px;
}

.shell {
  width: min(100%, var(--service-width));
  max-width: var(--service-width);
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0 auto;
  background: var(--bg);
  box-shadow: 0 0 60px rgba(0, 0, 0, .09);
  overflow-x: hidden;
}

.screen {
  min-height: 100vh;
  min-height: 100dvh;
}

.hdr {
  min-height: 74px;
  padding: max(14px, env(safe-area-inset-top)) 18px 14px;
  gap: 14px;
  background: rgba(243, 243, 243, .92);
  border: 0;
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
}

.hdr-back {
  width: 44px;
  height: 44px;
  border: 0;
  background: #fff;
  box-shadow: 0 4px 18px rgba(0, 0, 0, .06);
  position: relative;
  display: grid;
  place-items: center;
  font-size: 0;
  line-height: 1;
}
.hdr-back::before { content:"";position:absolute;left:50%;top:50%;width:12px;height:12px;box-sizing:border-box;border-left:2.5px solid #202020;border-bottom:2.5px solid #202020;transform:translate(-38%,-50%) rotate(45deg);margin:0; }

.logo {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
}

.logo img {
  display: block;
  width: 112px;
  height: auto;
}

.logo > span,
.boarding-brand > span {
  display: none;
  font-size: 25px;
  font-weight: 760;
  letter-spacing: -.04em;
}

html[lang="en"] .logo img,
html[lang="en"] .boarding-brand img {
  display: none;
}

html[lang="en"] .logo > span,
html[lang="en"] .boarding-brand > span {
  display: inline;
}

.boarding-brand {
  display: inline-flex;
  align-items: center;
}

.boarding-brand img {
  display: block;
  width: 92px;
  height: auto;
}

.ht {
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -.02em;
}

.hs {
  font-size: 12px;
  color: var(--t2);
  margin-top: 3px;
}

.content {
  padding: 14px 16px calc(118px + env(safe-area-inset-bottom)) !important;
}

.card,
.ccat,
.rc,
.gc,
.uc,
.pbar,
.mapph,
.notif,
.bp,
.faq-item {
  border: 1px solid rgba(0, 0, 0, .045);
  box-shadow: none;
}

.card {
  padding: 18px;
  margin-bottom: 10px;
}

.card:hover,
.ccat:hover,
.rc:hover,
.gc:hover,
.uc:hover {
  border-color: rgba(0, 0, 0, .09);
}

.tap,
.ccat,
.rc,
.gc,
.uc,
.btn,
.ab,
.pill {
  transition: transform .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.tap:active,
.ccat:active,
.rc:active,
.gc:active,
.uc:active,
.btn:active,
.ab:active {
  transform: scale(.985);
}

.icon,
.av {
  background: #f6f6f6;
  border: 0;
}

.icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  font-size: 20px;
  background: #fff1b8;
}

.content > .card:nth-of-type(5n + 1) .icon,
.content > .uc:nth-of-type(5n + 1) .icon { background: #dff3ff; }
.content > .card:nth-of-type(5n + 2) .icon,
.content > .uc:nth-of-type(5n + 2) .icon { background: #e5f6e8; }
.content > .card:nth-of-type(5n + 3) .icon,
.content > .uc:nth-of-type(5n + 3) .icon { background: #fff0c7; }
.content > .card:nth-of-type(5n + 4) .icon,
.content > .uc:nth-of-type(5n + 4) .icon { background: #f2e7ff; }
.content > .card:nth-of-type(5n) .icon,
.content > .uc:nth-of-type(5n) .icon { background: #ffe6ec; }

.ct {
  font-size: 15px;
  font-weight: 650;
  letter-spacing: -.012em;
}

.cd {
  font-size: 13px;
  color: var(--t2);
  line-height: 1.42;
  margin-top: 4px;
}

.arr {
  font-size: 25px;
  color: #777;
}

.sl {
  margin: 26px 2px 12px;
  color: var(--text);
  font-size: 18px;
  font-weight: 750;
  letter-spacing: -.02em;
  text-transform: none;
}

.btn {
  min-height: 54px;
  padding: 16px 20px;
  border-radius: 18px;
  font-size: 15px;
  font-weight: 700;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
}

.btn-p {
  background: var(--accent);
  color: #1d1d1d;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .08);
}

.btn-p:hover {
  background: #ffc528;
}

.btn-s,
.btn-o {
  background: #fff;
  border: 1px solid var(--border);
}

.b {
  padding: 4px 9px;
  border: 0;
  font-size: 10px;
  font-weight: 700;
}

.b-dis,
.b-exc {
  background: #202020;
  color: #fff;
}

.b-free {
  background: #ddf7e4;
  color: #3b9460;
}

.pill {
  padding: 9px 14px;
  background: #fff;
  border: 1px solid var(--border);
  color: var(--t2);
  font-size: 12px;
}

.pill.on,
.ab.on {
  color: #1d1d1d;
  background: var(--accent);
  border-color: var(--accent);
}

.cat-grid {
  gap: 10px;
}

.ccat {
  min-height: 144px;
  padding: 20px;
}

.cem {
  font-size: 30px;
}

.ctt {
  font-size: 15px;
  font-weight: 700;
}

.cds {
  font-size: 12px;
  color: var(--t2);
}

.rc,
.gc {
  margin-bottom: 12px;
}

.photo-card,
.mapph {
  height: 210px;
}

.photo-card-sm {
  height: 145px;
}

.photo-card img,
.gth img {
  transition: transform .45s ease;
}

.rc:hover img,
.gc:hover img {
  transform: scale(1.025);
}

.rb {
  padding: 17px 18px 19px;
}

.gc {
  min-height: 118px;
}

.gth {
  width: 118px;
  height: auto;
}

.gb {
  padding: 16px;
  min-width: 0;
}

.gt {
  font-size: 15px;
  font-weight: 650;
}

.gplay,
.fab-btn {
  background: var(--accent);
  color: #202020;
}
.gf { gap:8px;min-width:0; }.gplay { width:32px;height:32px;min-width:32px;overflow:visible; }

.uc {
  padding: 17px 18px;
  gap: 14px;
  margin-bottom: 10px;
}

.up {
  color: var(--text);
  font-weight: 700;
}

.ag {
  gap: 10px;
}

.ab {
  min-height: 48px;
  padding: 14px 5px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 15px;
}

.promo {
  padding: 20px;
  border-radius: 24px;
  background: #202020;
}

.promo-eyebrow {
  color: var(--accent);
}

.atabs {
  padding: 5px;
  border-radius: 16px;
  background: #eaeaea;
}

.atab {
  padding: 11px 5px;
  border-radius: 12px;
}

.bnav {
  width: calc(100% - clamp(24px, 5vw, 40px));
  max-width: 720px;
  margin: 0 auto max(10px, env(safe-area-inset-bottom));
  padding: 9px 10px;
  border: 1px solid rgba(0, 0, 0, .07);
  border-radius: 34px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .14);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  position: sticky;
  bottom: max(10px, env(safe-area-inset-bottom));
}

.ni {
  min-width: 0;
  border-radius: 24px;
  padding: 8px 2px;
}

.ni.on {
  background: var(--accent);
}

.ni .ico {
  font-size: 18px;
}

.ni .lbl,
.fab-lbl {
  font-size: 9px;
}

.ni.on .ico,
.ni.on .lbl {
  color: #202020;
}

.ni-fab {
  justify-content: center;
}

.fab-btn {
  width: 48px;
  height: 48px;
  margin-top: -15px;
  border: 4px solid #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .14);
}

.contact-reviews-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
}

.repair-categories .ab { min-height:50px;font-size:12px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15; }
#s-repair .atabs .atab { min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1.1; }

#tray-tab,
#purchases-tray {
  max-width: var(--service-width);
}

#tray-tab:not(.has-items),
#purchases-tray:not(.has-items) {
  display: none !important;
}

.home-header { align-items:center; }
.home-brand { display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:2px 0; }
.home-address { display:block;color:#185fa5;text-decoration:none;font-size:10.5px;line-height:1.25;white-space:nowrap; }
.home-orders-card { display:none;margin-top:-3px; }
.housing-featured { border:1.5px solid var(--accent-strong)!important;background:linear-gradient(135deg,#fff,#fffaf0);box-shadow:0 9px 24px rgba(244,180,0,.12);align-items:flex-start!important; }
.housing-chips { display:flex;flex-wrap:wrap;gap:5px;margin-top:9px; }.housing-chips span { border:1px solid #f1d270;background:#fff7da;border-radius:999px;padding:5px 7px;color:#735500;font-size:8.5px;font-weight:700;white-space:nowrap; }
.housing-chips .offline-chip { border-color:#b9dfc5;background:#eef8f1;color:#34764c; }
.wifi-preview>div:nth-child(2) { flex:1;min-width:0; }.wifi-status { flex:0 0 auto;border:1px solid #b9dfc5;background:#eaf7ee;color:#267045;border-radius:999px;padding:5px 7px;font-size:8.5px;font-weight:800;white-space:nowrap; }
.wifi-password { display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--s2);border-radius:12px;padding:13px 14px;border:1px solid var(--border); }.wifi-password button { flex:0 0 auto;border:0;border-radius:13px;background:var(--accent);color:#202020;padding:9px 11px;font:700 10px inherit;cursor:pointer; }
.instruction-host { margin:0 0 14px!important;border:1px solid #d7e8dc!important;background:#f3faf5!important; }
.orders-count { min-width:24px;height:24px;border-radius:12px;display:grid;place-items:center;background:var(--accent);font-size:11px;font-weight:800;margin-left:auto; }
.orders-count.empty { background:var(--s2);color:var(--t3); }

.tray-tab-inner,
.tray-handle {
  background: #202020;
}

.tray-tab-inner {
  border-radius: 20px;
}

.tray-sheet {
  border-radius: 28px 28px 0 0;
}

input[type="text"],
input[type="tel"],
input[type="date"],
input[type="time"],
textarea {
  border-radius: 14px !important;
}

/* Keep inline legacy green actions aligned with the reference palette. */
[style*="background:#1a7a4a"],
[style*="background: #1a7a4a"] {
  background: var(--accent) !important;
  color: #202020 !important;
}

@media (min-width: 761px) {
  body {
    padding: 22px;
  }

  .shell {
    border-radius: 32px;
  }

  .screen {
    min-height: calc(100vh - 44px);
  }

  .hdr {
    top: 0;
    border-radius: 32px 32px 0 0;
  }

  .content {
    padding-inline: 16px !important;
  }

  .cat-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .bpr {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 460px) {
  .hdr {
    min-height: 66px;
    padding-inline: 16px;
  }

  .content {
    padding-inline: 14px !important;
  }

  .card {
    padding: 16px;
  }

  .ct {
    font-size: 14px;
  }

  .up {
    max-width: 98px;
    font-size: 12px;
  }

  .photo-card,
  .mapph {
    height: 175px;
  }

  .ag {
    grid-template-columns: repeat(2, 1fr);
  }

  .bnav {
    width: calc(100% - 20px);
    padding-inline: 6px;
  }

  .entry-reset {
    top: auto;
    right: 14px;
    bottom: calc(92px + env(safe-area-inset-bottom));
    max-width: 160px;
  }

  .service-lang {
    left: 14px;
    bottom: calc(92px + env(safe-area-inset-bottom));
  }
}

@media (max-width: 350px) {
  .content {
    padding-inline: 10px !important;
  }

  .cat-grid {
    grid-template-columns: 1fr;
  }

  .ni .lbl,
  .fab-lbl {
    display: none;
  }

  .bnav {
    border-radius: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}

@media (display-mode: standalone) {
  body {
    padding: 0;
    background: var(--bg);
  }

  .shell {
    width: min(100%, var(--service-width));
    max-width: var(--service-width);
    border-radius: 0;
    box-shadow: none;
  }
}

/* ═══════════ FIXED APP NAV + INTEGRATED CART ═══════════ */
#service-shell > .screen > .bnav { display: none !important; }
.global-bnav {
  display: flex !important;
  position: fixed !important;
  left: 50%;
  bottom: max(10px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(calc(100% - 16px), calc(var(--service-width) - 16px));
  padding: 10px 12px 12px;
  border: 1px solid rgba(30,30,30,.09);
  border-radius: 32px;
  box-shadow: 0 12px 32px rgba(0,0,0,.17);
  z-index: 44;
}
.global-bnav .ni.on .ico { background: var(--accent-soft); color: #202020; }
.service-lang { top:18px !important; bottom:auto !important; left:18px !important; z-index:55; }
#purchases-tray { bottom: calc(80px + max(10px, env(safe-area-inset-bottom))); max-width: var(--service-width); z-index: 43; }
#tray-tab { bottom: calc(77px + max(10px, env(safe-area-inset-bottom))); max-width: var(--service-width); z-index: 42; }
.tray-tab-inner { margin: 0 22px; border-radius: 22px 22px 8px 8px; padding: 12px 18px; box-shadow: 0 -8px 26px rgba(0,0,0,.16); }
.tray-sheet { border-radius: 28px 28px 12px 12px; margin: 0 14px; box-shadow: 0 -12px 42px rgba(0,0,0,.2); }
.tray-body { max-height: min(360px, 47vh); }
.tray-item-side { text-align: right; flex-shrink: 0; }
.tray-remove { border: 0; background: transparent; color: #c44; font: 500 11px inherit; padding: 5px 0 0 8px; cursor: pointer; }
.tray-empty { padding: 36px 20px; text-align: center; color: var(--t3); font-size: 13px; }
.tray-checkout { border: 0; border-radius: 14px; background: var(--accent); color: #202020; padding: 12px 16px; font: 700 13px inherit; cursor: pointer; }
.content { padding-bottom: 128px !important; }

/* ═══════════ HOME SERVICE TABS ═══════════ */
.home-service-tabs { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:18px 0 14px;padding:5px;background:#e8e7e2;border-radius:20px; }
.home-service-tab { min-width:0;border:0;border-radius:16px;background:transparent;color:var(--t3);padding:11px 3px;font:700 9.25px/1.15 inherit;white-space:nowrap;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s; }
.home-service-tab.on { background:#fff;color:#202020;box-shadow:0 3px 10px rgba(0,0,0,.08); }
.home-service-panel { display:none; }
.home-service-panel.on { display:grid;grid-template-columns:1fr;gap:9px; }
.home-service-panel .card { margin:0;min-width:0; }
.home-service-panel .row>div:nth-child(2) { min-width:0; }
.home-service-panel .ct,.home-service-panel .cd { overflow-wrap:anywhere; }

/* ═══════════ STORAGE MAP PLACEHOLDER ═══════════ */
.storage-map { height:190px;margin-bottom:18px;position:relative;overflow:hidden;border:1px solid var(--border);border-radius:26px;background:linear-gradient(135deg,#e6ebdd,#f2eee3); }
.storage-map::before,.storage-map::after { content:"";position:absolute;background:rgba(185,206,167,.65);border-radius:22px; }
.storage-map::before { width:34%;height:42%;left:7%;top:8%; }.storage-map::after { width:29%;height:34%;right:8%;bottom:8%; }
.storage-road { position:absolute;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:30px;box-shadow:0 0 0 4px rgba(255,255,255,.45); }
.road-a { width:125%;height:20px;left:-12%;top:45%;transform:rotate(-9deg); }.road-b { width:20px;height:125%;left:58%;top:-12%;transform:rotate(13deg); }.road-c { width:78%;height:14px;left:5%;bottom:20%;transform:rotate(21deg); }
.storage-pin { position:absolute;z-index:2;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 5px 14px rgba(0,0,0,.19);font-size:18px; }
.storage-pin-home { left:39%;top:38%;background:var(--accent); }.storage-pin-a { right:17%;top:20%; }.storage-pin-b { left:17%;bottom:17%; }
.storage-map-label { position:absolute;z-index:3;left:14px;right:14px;bottom:12px;width:max-content;max-width:calc(100% - 28px);padding:9px 12px;border-radius:14px;background:rgba(255,255,255,.93);box-shadow:0 5px 16px rgba(0,0,0,.1); }
.storage-map-label strong,.storage-map-label small { display:block; }.storage-map-label strong { font-size:13px; }.storage-map-label small { margin-top:2px;color:var(--t3);font-size:10px; }

/* ═══════════ INTERACTIVE GUEST INSTRUCTION ═══════════ */
.instruction-hdr { gap: 9px; }
.instruction-hdr>div:nth-child(2) { flex:1;min-width:0; }.instruction-hdr .ht { font-size:17px;white-space:nowrap;letter-spacing:-.25px; }
.instruction-download { flex:0 0 auto;margin-left:auto;border:0;border-radius:15px;background:var(--accent);color:#202020;padding:8px 10px;font-size:11px;line-height:1;font-weight:700;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer; }
.review-tip-options { margin-top:8px;padding:2px 2px 12px; }.review-tip-methods { display:grid;grid-template-columns:1fr 1fr;gap:8px; }.review-tip-methods button { min-height:44px;border:1px solid var(--border);border-radius:15px;background:#fff;color:var(--text);font:700 12px inherit;display:flex;align-items:center;justify-content:center;cursor:pointer; }.review-tip-methods button.on { border:2px solid var(--accent-strong);background:#fff8df; }
.instruction-content { padding-top: 12px !important; }
.instruction-hero { min-height: 270px; border-radius: 30px; overflow: hidden; position: relative; background: url('./assets/images/image-012.jpg') center/cover; margin-bottom: 16px; }
.instruction-hero-shade { position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.72)); }
.instruction-hero-copy { position:absolute;left:26px;right:26px;bottom:28px;color:#fff; }
.instruction-hero-copy span { display:inline-block;background:#d9ffd7;color:#389461;border-radius:12px;padding:7px 11px;font-weight:700;margin-bottom:10px; }
.instruction-hero-copy h1 { font-size:clamp(27px,5vw,38px);line-height:1;letter-spacing:-.8px;margin:0 0 9px; }
.instruction-hero-copy p { font-size:12px;margin:0; }
.instruction-address { display:flex;align-items:center;gap:10px;justify-content:space-between; }
.instruction-address p { min-width:0; }
.instruction-address button { flex-shrink:0;border:1px solid rgba(255,255,255,.35);border-radius:14px;background:rgba(255,255,255,.93);color:#202020;padding:8px 11px;font:700 11px inherit;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.12); }
.instruction-dates { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px; }
.instruction-dates div { background:#fff;border:1px solid var(--border);border-radius:24px;padding:20px; }
.instruction-dates small,.instruction-code small,.step-code small { color:var(--t3);text-transform:uppercase;font-weight:700;display:block;margin-bottom:8px; }
.instruction-dates strong { font-size:18px;line-height:1.2; }
.instruction-route { background:#fff;border-radius:30px;padding:24px;margin-bottom:18px;overflow:hidden; }
.instruction-route h2,.instruction-title { font-size:23px;margin:0 0 16px;letter-spacing:-.35px; }
.instruction-map { height:260px;border-radius:24px;display:block;position:relative;overflow:hidden;background-color:#e9e4d8;background-image:linear-gradient(35deg,transparent 46%,#fff 47%,#fff 52%,transparent 53%),linear-gradient(90deg,rgba(103,180,213,.5) 0 17%,transparent 17%),repeating-linear-gradient(0deg,transparent 0 45px,rgba(150,140,125,.18) 46px 48px); }
.instruction-map em { position:absolute;right:16px;bottom:14px;background:#fff;color:#202020;padding:9px 12px;border-radius:18px;font-style:normal;font-weight:700;font-size:12px; }
.route-line { position:absolute;left:30%;top:47%;width:44%;height:9px;background:#39b95d;transform:rotate(13deg);border-radius:9px; }
.map-pin { position:absolute;width:45px;height:45px;border-radius:50%;background:#ffc928;border:4px solid #fff;display:grid;place-items:center;font-size:21px;box-shadow:0 4px 12px #777;z-index:2; }
.pin-one { left:28%;top:33%; }.pin-two { left:68%;top:51%; }
.route-cards { display:flex;gap:12px;overflow-x:auto;padding:18px 0 2px;scroll-snap-type:x mandatory; }
.route-cards article { flex:0 0 78%;border:1px solid var(--border);border-radius:22px;padding:18px;display:flex;gap:12px;scroll-snap-align:start; }
.route-cards article.active { border:2px solid #ffc000; }
.route-cards article>b,.instruction-steps header>b { flex:0 0 34px;height:34px;border-radius:50%;background:#ffc928;display:grid;place-items:center;box-shadow:0 2px 5px #aaa; }
.route-cards strong { font-size:13px;line-height:1.25; }.route-cards p { color:var(--t3);font-size:10.5px;margin-top:6px;line-height:1.35; }
.instruction-code { display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;background:#fff;border:1px solid var(--border);border-radius:22px;padding:16px 18px;margin-bottom:22px; }
.instruction-code>div { min-width:0; }.instruction-code strong { display:block;font-size:23px;line-height:1;letter-spacing:.25px;white-space:nowrap; }.instruction-code button { flex-shrink:0;border:0;background:var(--accent);border-radius:15px;padding:10px 12px;font-size:10px;font-weight:700;cursor:pointer; }
.instruction-codes { display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:18px; }
.instruction-codes .instruction-code { margin-bottom:0; }
.instruction-steps article { background:#fff;border:1px solid var(--border);border-radius:28px;padding:22px;margin-bottom:14px; }
.instruction-steps header { display:flex;gap:14px;margin-bottom:18px; }.instruction-steps header>b { background:#202020;color:#fff; }
.instruction-steps header strong { font-size:15px;line-height:1.22; }.instruction-steps header p { color:var(--t3);font-size:11.5px;line-height:1.4;margin-top:5px; }
.step-photo { height:300px;border-radius:24px;position:relative;background-size:cover;background-position:center;overflow:hidden; }
.step-photo span { position:absolute;left:16px;bottom:14px;background:#fff;border-radius:16px;padding:9px 12px;font-weight:700; }
.step-arch { background-image:url('./assets/images/image-021.jpg'); }
.step-locker { background-image:url('./assets/images/image-024.jpg'); }
.step-door { background-image:url('./assets/images/image-028.jpg'); }
.step-keybox { background-image:url('./assets/images/image-009.jpg'); }
.step-code { background:var(--s2);border:1px solid var(--border);border-radius:22px;padding:20px;text-align:center; }.step-code strong { font-size:38px;letter-spacing:2px; }
.download-overlay { display:none;position:fixed;inset:0;background:rgba(0,0,0,.44);z-index:80;align-items:flex-end;justify-content:center; }.download-overlay.open { display:flex; }
.download-sheet { width:min(100%,var(--service-width));background:#fff;border-radius:30px 30px 0 0;padding:14px 20px calc(22px + env(safe-area-inset-bottom));box-shadow:0 -15px 50px rgba(0,0,0,.22); }
.download-sheet h3 { font-size:22px;margin:8px 0 4px; }.download-sheet>p { color:var(--t3);margin-bottom:16px; }
.download-sheet>button { width:100%;border:1px solid var(--border);background:#fff;border-radius:18px;padding:15px;display:flex;align-items:center;gap:14px;text-align:left;margin-top:9px;cursor:pointer; }
.download-sheet>button span { font-size:24px; }.download-sheet>button div { flex:1; }.download-sheet>button strong,.download-sheet>button small { display:block; }.download-sheet>button small { color:var(--t3);margin-top:3px; }.download-sheet>button b { font-size:22px; }.download-sheet .download-cancel { justify-content:center;background:var(--s2);font-weight:700; }

/* ═══════════ PAYMENT ═══════════ */
.purchase-actions { display:grid !important;grid-template-columns:1.35fr .9fr;gap:9px; }
.purchase-actions .btn { margin-bottom:0 !important; }
.rc[data-cart-enhanced],.uc[data-cart-enhanced] { position:relative;padding-bottom:48px; }
.direct-cart-btn { position:absolute;right:12px;bottom:10px;border:1px solid var(--border);background:#fff;border-radius:14px;padding:8px 12px;font:700 11px/1 inherit;color:#202020;box-shadow:0 3px 10px rgba(0,0,0,.08);cursor:pointer;z-index:2; }
.checkout-summary { background:#fff;border:1px solid var(--border);border-radius:24px;padding:18px;margin-bottom:18px; }
.checkout-heading { font-size:12px;text-transform:uppercase;color:var(--t3);font-weight:700;margin-bottom:10px; }
.checkout-row { display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border); }.checkout-row>span { font-size:22px; }.checkout-row>div { flex:1; }.checkout-row strong,.checkout-row small { display:block; }.checkout-row small { color:var(--t3);margin-top:2px; }.checkout-row>b { white-space:nowrap; }
.checkout-total { display:flex;justify-content:space-between;padding-top:15px;font-size:18px; }
.payment-method { width:100%;border:1px solid var(--border);background:#fff;border-radius:20px;padding:16px;display:flex;align-items:center;gap:13px;text-align:left;margin-bottom:10px;cursor:pointer; }.payment-method>div { flex:1; }.payment-method strong,.payment-method small { display:block; }.payment-method small { color:var(--t3);margin-top:3px; }.payment-method>b { font-size:24px;color:var(--t3); }
.payment-logo { width:48px;height:48px;border-radius:15px;background:var(--s2);display:grid;place-items:center;font-weight:800; }.sbp-logo { background:linear-gradient(135deg,#25ad8d,#7058d9);color:#fff;font-size:13px; }
.payment-safe { text-align:center;color:var(--t3);font-size:11px;line-height:1.5;margin:15px 0; }
.bank-card-preview { aspect-ratio:1.65;border-radius:26px;background:linear-gradient(135deg,#222,#575757);color:#fff;padding:25px;margin:10px 0 24px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 18px 30px rgba(0,0,0,.22); }.bank-card-preview>span,.bank-card-preview>small { opacity:.65;letter-spacing:1px; }.bank-card-preview>strong { font-size:clamp(21px,6vw,32px);letter-spacing:2px; }
.pay-label { font-size:11px;color:var(--t3);text-transform:uppercase;font-weight:700;display:block;margin:12px 0 6px; }.pay-input { width:100%;padding:15px;border:1px solid var(--border);border-radius:14px;background:#fff;font:500 17px inherit; }.pay-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px; }.payment-submit { width:100%;border:0;margin-top:18px; }
.sbp-card { background:#fff;border:1px solid var(--border);border-radius:26px;padding:28px;text-align:center;margin:10px 0 18px; }.sbp-card strong,.sbp-card small { display:block; }.sbp-card small { color:var(--t3);margin-top:4px; }
.mock-qr { width:190px;height:190px;margin:0 auto 20px;border:15px solid #fff;background:repeating-conic-gradient(#171717 0 25%,#fff 0 50%) 0 0/22px 22px;box-shadow:0 0 0 1px var(--border); }
.payment-success-icon { width:82px;height:82px;border-radius:50%;display:grid;place-items:center;background:#dff7e6;color:#23834a;font-size:42px;margin-bottom:20px; }
.payment-thanks { padding:32px 18px 110px;justify-content:flex-start; }
.payment-order-number { color:var(--t3);font-size:12px;margin-bottom:8px; }
.payment-access-block { width:100%;margin-top:22px;padding:20px;background:#fff;border:1px solid var(--border);border-radius:24px;box-shadow:var(--shadow); }
.access-qr,.order-mini-qr { background:repeating-conic-gradient(#171717 0 25%,#fff 0 50%) 0 0/14px 14px;box-shadow:0 0 0 8px #fff,0 0 0 9px var(--border); }
.access-qr { width:132px;height:132px;margin:8px auto 22px; }
.payment-access-block small,.payment-access-block strong { display:block; }.payment-access-block small { color:var(--t3);text-transform:uppercase;font-size:10px;font-weight:700; }.payment-access-block strong { font-size:30px;letter-spacing:2px;margin:5px 0; }.payment-access-block p { color:var(--t3);font-size:11px; }
.payment-success-actions { width:100%;margin-top:18px;display:grid;gap:8px; }

/* ═══════════ ORDERS ═══════════ */
.orders-tabs { display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;margin-bottom:14px;background:#e8e7e2;border-radius:18px; }
.orders-tabs button { border:0;border-radius:14px;background:transparent;padding:11px;font-size:12px;font-weight:700;color:var(--t3);cursor:pointer; }.orders-tabs button.on { background:#fff;color:var(--text);box-shadow:0 3px 10px rgba(0,0,0,.08); }.orders-tabs span { display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--text);font-size:9px; }
.order-card { background:#fff;border:1px solid var(--border);border-radius:24px;padding:18px;margin-bottom:12px;box-shadow:var(--shadow); }.order-card header,.order-card footer { display:flex;align-items:center;justify-content:space-between; }.order-card header small,.order-card header strong { display:block; }.order-card header small { color:var(--t3);font-size:9px;text-transform:uppercase; }.order-card header strong { font-size:15px;margin-top:2px; }.order-status { border-radius:999px;padding:6px 9px;font-size:10px;font-weight:700; }.order-status.active { background:#e7f6ec;color:#34764c; }.order-status.past { background:var(--s2);color:var(--t3); }.order-meta { color:var(--t3);font-size:10px;margin:5px 0 12px; }
.order-items { border-block:1px solid var(--border); }.order-items>div { display:flex;align-items:center;gap:10px;padding:12px 0; }.order-items>div+div { border-top:1px solid var(--border); }.order-items>div>span { font-size:22px; }.order-items p { flex:1;min-width:0;margin:0; }.order-items p strong,.order-items p small { display:block; }.order-items p strong { font-size:13px; }.order-items p small { color:var(--t3);font-size:10px;margin-top:3px; }.order-items>div>b { font-size:12px;white-space:nowrap; }
.order-access { display:flex;align-items:center;gap:18px;margin-top:14px;padding:15px;background:var(--accent-soft);border-radius:18px; }.order-mini-qr { width:58px;height:58px;flex-shrink:0;background-size:9px 9px; }.order-access small,.order-access strong { display:block; }.order-access small { color:var(--t3);font-size:9px;text-transform:uppercase; }.order-access strong { font-size:22px;letter-spacing:1.5px;margin:3px 0; }.order-access p { color:var(--t3);font-size:9px;margin:0; }.order-host-note { margin-top:14px;padding:12px;border-radius:14px;background:#eef7f1;color:#34764c;font-size:11px;font-weight:600; }.order-card footer { margin-top:14px;font-size:13px; }.order-card footer strong { font-size:17px; }.orders-empty { padding:44px 24px;text-align:center;background:#fff;border:1px solid var(--border);border-radius:24px; }.orders-empty>span,.orders-empty>strong { display:block; }.orders-empty>span { font-size:36px;margin-bottom:12px; }.orders-empty>strong { font-size:15px; }.orders-empty p { color:var(--t3);font-size:12px;line-height:1.45;margin-top:7px; }

/* ═══════════ BOARDING PASS + ACCOUNT ═══════════ */
.boarding-guide-link { display:flex;align-items:center;justify-content:space-between;margin:2px 0 16px;padding:12px 14px;border-radius:14px;background:var(--accent-soft);color:#202020;text-decoration:none;font-size:13px;font-weight:700; }
.boarding-access { display:flex;align-items:flex-start;gap:16px; }.boarding-access-grid { flex:1;display:grid;grid-template-columns:1fr 1fr;gap:14px;min-width:0; }.bp-code { margin-top:3px;font-size:19px;font-weight:700;letter-spacing:1px;white-space:nowrap; }
.account-tabs .atab { min-height:42px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.1; }
.account-review-action { min-height:38px;margin-top:10px;padding:9px 12px!important;display:flex!important;align-items:center;justify-content:center;text-align:center;line-height:1.15; }
.delete-account-btn { display:block;margin:12px auto 0;border:0;background:transparent;color:#c7433f;font:500 10px inherit;text-decoration:underline;cursor:pointer;padding:6px 10px; }
.stay-repairs { margin-top:12px;padding:12px;border-radius:16px;background:#fff8e5;border:1px solid #f0d98f; }.stay-repairs>strong { display:block;font-size:11px;text-transform:uppercase;color:#866400;margin-bottom:8px; }.stay-repairs>div { display:flex;align-items:center;gap:9px; }.stay-repairs span { font-size:18px; }.stay-repairs p { flex:1;min-width:0;margin:0; }.stay-repairs b,.stay-repairs small { display:block; }.stay-repairs b { font-size:12px; }.stay-repairs small { color:var(--t3);font-size:9px;margin-top:2px; }.stay-repairs em { border-radius:999px;background:#e5f4e9;color:#34764c;padding:5px 7px;font-size:9px;font-style:normal;font-weight:700; }

/* ═══════════ FITNESS ═══════════ */
.fitness-hero { min-height:150px;padding:22px;border-radius:26px;background:linear-gradient(135deg,#1f2622,#405a48);color:#fff;display:flex;align-items:center;justify-content:space-between;overflow:hidden;margin-bottom:16px; }
.fitness-hero span { font-size:9px;letter-spacing:.08em;color:#d5efdc;font-weight:700; }.fitness-hero h2 { margin:8px 0 5px;font-size:27px;line-height:1.02; }.fitness-hero p { max-width:390px;color:rgba(255,255,255,.67);font-size:13px;line-height:1.4; }.fitness-hero>b { font-size:54px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.25)); }
.fitness-activities { display:flex;gap:8px;overflow-x:auto;padding:1px 1px 8px;scrollbar-width:none; }.fitness-activities::-webkit-scrollbar,.fitness-dates::-webkit-scrollbar { display:none; }.fitness-activities button { flex:0 0 auto;border:1px solid var(--border);border-radius:18px;background:#fff;padding:11px 14px;color:var(--t2);font-weight:600;cursor:pointer; }.fitness-activities button.on { background:#202020;color:#fff;border-color:#202020; }
.fitness-dates { display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none; }.fitness-dates button { flex:0 0 62px;height:74px;border:1px solid var(--border);border-radius:18px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer; }.fitness-dates small { color:var(--t3); }.fitness-dates strong { font-size:20px; }.fitness-dates button.on { background:#26a56a;color:#fff;border-color:#26a56a; }.fitness-dates button.on small { color:rgba(255,255,255,.75); }
.fitness-list-heading { display:flex;align-items:flex-end;justify-content:space-between;margin:18px 2px 10px; }.fitness-list-heading strong,.fitness-list-heading small { display:block; }.fitness-list-heading strong { font-size:20px; }.fitness-list-heading small,.fitness-list-heading>span { color:var(--t3);font-size:11px;margin-top:2px; }
.fitness-session { background:#fff;border:1px solid var(--border);border-radius:22px;padding:18px;margin-bottom:10px;cursor:pointer;box-shadow:0 5px 14px rgba(0,0,0,.035); }.fitness-session:active { transform:scale(.99); }.fitness-session-top { display:flex;align-items:center;gap:8px; }.fitness-session-top>span { font-size:16px;font-weight:700; }.fitness-session-top small { background:var(--s2);border-radius:10px;padding:6px 9px;color:var(--t2); }.fitness-session h3 { font-size:20px;margin:14px 0 4px; }.fitness-session p { color:var(--t3);font-size:13px; }.fitness-session footer { display:flex;align-items:center;justify-content:space-between;margin-top:18px; }.fitness-session footer span { font-size:13px; }.fitness-session footer strong { color:#e76a21;font-size:18px; }
.fitness-book-photo { height:210px;border-radius:26px;overflow:hidden;margin-bottom:18px; }.fitness-book-photo img,.fitness-place-image img { width:100%;height:100%;object-fit:cover; }.fitness-book-title { font-size:30px;line-height:1.05;margin:0 0 10px; }.fitness-book-copy { color:var(--t2);font-size:14px;line-height:1.5;margin-bottom:18px; }
.fitness-book-summary { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:#fff;border:1px solid var(--border);border-radius:22px;padding:16px;margin-bottom:10px; }.fitness-book-summary small,.fitness-book-summary strong { display:block; }.fitness-book-summary small { color:var(--t3);font-size:10px;text-transform:uppercase;margin-bottom:5px; }.fitness-book-summary strong { font-size:14px; }
.fitness-time-slots { display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px; }.fitness-time-slots button { flex:0 0 112px;border:1px solid var(--border);border-radius:16px;background:#fff;padding:12px;display:flex;flex-direction:column;gap:5px;font-weight:700;cursor:pointer; }.fitness-time-slots small { color:var(--t3);font-weight:400; }.fitness-time-slots button.on { border:2px solid #26a56a;background:#effaf4; }
.fitness-place { display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:22px;padding:14px;margin:12px 0; }.fitness-place-image { width:90px;height:90px;border-radius:16px;overflow:hidden;flex-shrink:0; }.fitness-place strong { font-size:16px; }.fitness-place p { color:var(--t3);font-size:12px;margin:7px 0; }.fitness-place a { color:#e76a21;text-decoration:none;font-size:12px;font-weight:600; }
.fitness-book-price { display:flex;justify-content:space-between;align-items:center;padding:16px 4px;font-size:16px; }.fitness-book-price strong { font-size:25px; }.fitness-book-actions { margin-top:0!important; }

/* ═══════════ BOOKING DETAILS + RENTALS ═══════════ */
.leisure-value { margin-bottom:16px; }
.booking-options .ab { min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1.15; }
.booking-counter { cursor:default;align-items:center;gap:12px; }
.booking-counter>div:first-child { flex:1;min-width:0; }
.counter { flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:4px;border-radius:15px;background:var(--s2); }
.counter button { width:34px;height:34px;border:0;border-radius:11px;background:#fff;color:var(--text);font-size:21px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.08); }
.counter strong { min-width:20px;text-align:center;font-size:15px; }
.rental-tabs { display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;margin:2px 0 14px;border-radius:18px;background:#e9e9e9; }
.rental-tabs button { min-height:43px;border:0;border-radius:14px;background:transparent;color:var(--t2);font:600 12px inherit;display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer; }
.rental-tabs button.on { background:#fff;color:var(--text);box-shadow:0 3px 10px rgba(0,0,0,.08); }
.ski-type-tabs { grid-template-columns:1.3fr .7fr; }.ski-type-tabs button { padding-inline:7px;font-size:10.5px;line-height:1.15; }
.rental-panel { display:none; }.rental-panel.on { display:block; }
.rental-book-hero { min-height:126px;margin-bottom:16px;padding:20px;border-radius:24px;background:linear-gradient(135deg,#fff7dc,#f0c95b);display:flex;align-items:center;gap:16px;overflow:hidden; }
.rental-book-hero>span { flex:0 0 64px;height:64px;border-radius:20px;background:rgba(255,255,255,.75);display:flex;align-items:center;justify-content:center;font-size:34px; }
.rental-book-hero div { min-width:0; }.rental-book-hero small,.rental-book-hero strong,.rental-book-hero p { display:block; }.rental-book-hero small { font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:#7e661f; }.rental-book-hero strong { margin-top:5px;font-size:18px;line-height:1.15; }.rental-book-hero p { margin:5px 0 0;color:#705f2f;font-size:11px;line-height:1.3; }
.rental-check { margin:4px 0 2px;padding:13px 14px;border:1px solid #e6d28a;border-radius:16px;background:#fff9e7;display:flex;align-items:center;gap:9px;font-size:11px;line-height:1.3; }
.rental-check input { width:17px;height:17px;accent-color:var(--accent); }
.instructor-card .photo-card { height:185px; }.instructor-book-photo { height:210px; }

@media (max-width:460px) {
  .global-bnav { width:calc(100% - 16px);bottom:max(7px,env(safe-area-inset-bottom));padding-inline:6px; }
  #purchases-tray { bottom:calc(76px + max(7px,env(safe-area-inset-bottom))); }
  #tray-tab { bottom:calc(73px + max(7px,env(safe-area-inset-bottom))); }
  .instruction-hero { min-height:225px;border-radius:24px; }.instruction-hero-copy { left:18px;right:18px;bottom:18px; }.instruction-hero-copy h1 { font-size:30px; }.instruction-hero-copy span { font-size:11px;padding:6px 9px; }.instruction-address p { font-size:12px;line-height:1.25; }.instruction-address button { padding:7px 9px;font-size:10px; }
  .instruction-route { padding:17px; }.instruction-map { height:185px; }.instruction-title,.instruction-route h2 { font-size:21px; }
  .step-photo { height:210px; }.instruction-steps article { padding:15px; }.instruction-steps header strong { font-size:14.5px; }
  .instruction-download { font-size:10px;padding:8px 9px; }
  .purchase-actions { grid-template-columns:1fr; }
  .instruction-code strong { font-size:22px; }
  .boarding-access { flex-direction:column; }.boarding-access-grid { width:100%; }.bpqr { width:64px;height:64px; }
  .fitness-book-summary { grid-template-columns:1fr 1fr; }.fitness-book-summary>div:last-child { grid-column:1/-1; }.fitness-book-photo { height:170px; }.fitness-hero h2 { font-size:24px; }
  .home-service-tab { padding:10px 2px;font-size:8.75px; }
  .home-service-panel.on { grid-template-columns:1fr; }
  .storage-map { height:170px; }
}

@media print {
  body.print-instruction * { visibility:hidden !important; }
  body.print-instruction #s-checkin, body.print-instruction #s-checkin * { visibility:visible !important; }
  body.print-instruction #s-checkin { display:block !important;position:absolute;inset:0;width:100%; }
  body.print-instruction .instruction-hdr, body.print-instruction .global-bnav, body.print-instruction #tray-tab { display:none !important; }
}

/* Технический сброс демо не перекрывает содержимое прототипа. */
.entry-reset,
.entry-reset.is-visible {
  top: auto !important;
  right: 7px !important;
  bottom: 2px !important;
  min-height: 0 !important;
  max-width: none !important;
  padding: 2px 5px !important;
  border: 0 !important;
  background: rgba(255,255,255,.72) !important;
  color: #999 !important;
  font-size: 8px !important;
  font-weight: 500 !important;
  box-shadow: none !important;
  opacity: .7;
  z-index: 41;
}
