:root {
  --bg: #f6f3ed;
  --surface: #edeae1;
  --surface-2: #e5e0d6;
  --inner: rgba(255, 255, 255, 0.88);
  --dark: #1c1a14;
  --graphite: #20211f;
  --text: #211d16;
  --muted: #6b6459;
  --muted-strong: rgba(33, 29, 22, 0.46);
  --accent: #ac8548;
  --prime-accent: #c6a063;
  --prime-bg: #101a33;
  --prime-soft: #f6f3ed;
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --motion: cubic-bezier(0.22, 1, 0.36, 1);
}

/* Inter (с кириллицей) из /fonts/. Без этого login падал в дефолтный шрифт:
   app.css задаёт font-family:"Inter", но сам шрифт нигде не подключался. */
@font-face {
  font-family: "Inter";
  src: url("/fonts/InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("/fonts/InterVariable-Italic.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

* { box-sizing: border-box; }

html, body { min-height: 100%; }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: "Inter";
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

a { color: inherit; }

button, input, textarea { font-family: inherit; }

button {
  border: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

h1, h2, h3, p { margin: 0; }

p {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.48;
}

small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

.auth-kicker,
.card-kicker {
  display: block;
  color: var(--muted-strong);
  font-size: 9px;
  font-weight: 820;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

input,
textarea {
  width: 100%;
  border: 0;
  outline: 0;
  background: rgba(255, 255, 255, 0.92);
  color: var(--text);
  font-size: 14px;
}

input { border-radius: 999px; padding: 14px 16px; }

textarea {
  min-height: 88px;
  resize: vertical;
  border-radius: 22px;
  padding: 15px 16px;
  line-height: 1.45;
}

input::placeholder,
textarea::placeholder { color: rgba(33, 29, 22, 0.35); }

/* Common buttons */
.ghost-btn,
.access-mini-card a,
.prime-price-card,
.access-request-form button,
.code-form button,
.feedback-form button,
.concierge-link,
.prime-main-btn,
.prime-secondary-btn,
.prime-floating-back,
.auth-form button,
.google-login-btn,
.magic-link-btn {
  border-radius: 999px;
  padding: 13px 17px;
  text-decoration: none;
  font-size: 10px;
  font-weight: 820;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: transform 0.22s var(--motion), background 0.22s var(--motion), color 0.22s var(--motion);
}

button:active,
a:active { transform: scale(0.985); }

/* Auth */
.auth-page,
.dashboard-page { min-height: 100vh; padding: 14px; }
.auth-page { display: grid; place-items: center; }

.auth-card {
  position: relative;
  width: min(520px, 100%);
  padding: clamp(30px, 5vw, 54px);
  border-radius: var(--radius-xl);
  background: var(--inner);
  backdrop-filter: blur(24px) saturate(1.14);
  -webkit-backdrop-filter: blur(24px) saturate(1.14);
}

.auth-close {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 20;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  color: rgba(33, 29, 22, 0.58);
  text-decoration: none;
}
.auth-close svg { width: 14px; height: 14px; }

.auth-logo,
.dashboard-logo {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: 132px;
  height: 28px;
  text-decoration: none;
}
.auth-logo { width: 105px; height: 15px; margin-bottom: 24px; }
.auth-logo img,
.dashboard-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.auth-logo img { object-position: left; }

.auth-card h1 {
  max-width: 760px;
  font-size: clamp(34px, 5.4vw, 64px);
  line-height: 0.96;
  letter-spacing: -0.055em;
  font-weight: 650;
}
.auth-card p { margin-top: 18px; }

.auth-actions { display: flex; flex-direction: column; gap: 14px; margin-top: 28px; }
.google-login-btn,
.magic-link-btn {
  width: 100%;
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-size: 14px;
  letter-spacing: -0.02em;
  text-transform: none;
}
.google-login-btn { background: var(--dark); color: #fff; }
.google-login-btn svg { width: 20px; height: 20px; flex-shrink: 0; }
.magic-link-btn { background: rgba(0, 0, 0, 0.05); color: var(--text); }

.auth-divider { position: relative; display: flex; align-items: center; justify-content: center; margin: 2px 0; }
.auth-divider::before { content: ""; position: absolute; inset: 50% 0 auto 0; height: 1px; background: rgba(0,0,0,.08); }
.auth-divider span { position: relative; z-index: 2; padding: 0 12px; background: var(--bg); font-size: 10px; font-weight: 820; letter-spacing: .18em; text-transform: uppercase; color: rgba(0,0,0,.38); }
.auth-form { display: flex; flex-direction: column; gap: 10px; }
.auth-form button,
.code-form button,
.feedback-form button,
.access-request-form button { background: var(--dark); color: #fff; }
.auth-note { margin-top: 12px; }

/* Dashboard */
.dashboard-page { width: 100%; max-width: none; margin: 0; }

.dashboard-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 6px 20px;
}
.dashboard-header-actions { display: flex; align-items: center; gap: 8px; }
.ghost-btn { background: rgba(255, 255, 255, 0.72); color: var(--text); }
.ghost-btn:hover { background: rgba(255, 255, 255, 0.96); }

.dashboard-hero,
.prime-purchase-card,
.service-card,
.access-mini-card { border-radius: var(--radius-xl); }

.dashboard-hero { background: var(--surface); }
.compact-hero {
  min-height: 170px;
  padding: clamp(26px, 4vw, 44px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, 220px);
  align-items: end;
  gap: 20px;
}
.hero-copy h1 {
  margin-top: 12px;
  font-size: clamp(42px, 5.2vw, 72px);
  line-height: 0.93;
  letter-spacing: -0.068em;
  font-weight: 650;
}
.hero-copy p { margin-top: 12px; max-width: 560px; }
.hero-copy small { margin-top: 12px; }
.hero-status {
  min-height: 108px;
  padding: 18px;
  border-radius: 24px;
  background: var(--inner);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.hero-status span { margin-bottom: auto; color: var(--muted-strong); font-size: 9px; font-weight: 820; letter-spacing: .16em; text-transform: uppercase; }
.hero-status strong { font-size: 21px; line-height: 1; letter-spacing: -0.04em; font-weight: 650; }
.hero-status small { margin-top: 8px; }

.dashboard-section { margin-top: 12px; }
.dashboard-section-head {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 7px;
  padding: 16px 4px 10px;
}
.dashboard-section-head h2 {
  font-size: clamp(26px, 2.8vw, 44px);
  line-height: 0.98;
  letter-spacing: -0.055em;
  font-weight: 650;
}
.dashboard-section-head p { max-width: 760px; margin-top: 0; }

.user-access-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.access-mini-card {
  min-height: 188px;
  padding: 24px;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.access-mini-card span { margin-bottom: auto; color: var(--muted-strong); font-size: 9px; font-weight: 820; letter-spacing: .16em; text-transform: uppercase; }
.access-mini-card h3 { font-size: clamp(23px, 2vw, 32px); line-height: 1; letter-spacing: -0.055em; font-weight: 650; }
.access-mini-card p { margin-top: 10px; font-size: 13px; max-width: 480px; }
.access-mini-card a { width: fit-content; margin-top: 16px; background: var(--accent); color: #211d16; }
.access-mini-card.access-prime { background: var(--accent); }
.access-mini-card.access-prime span,
.access-mini-card.access-prime p { color: rgba(0,0,0,.58); }
.access-mini-card.access-prime a { background: var(--dark); color: #fff; }

.prime-section-head p { margin-top: 0; }
.prime-purchase-card {
  padding: clamp(22px, 2.6vw, 34px);
  background: var(--surface);
}
.prime-control-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.segmented-control {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  overflow: hidden;
}
.segment-thumb {
  position: absolute;
  top: 4px;
  left: 0;
  height: calc(100% - 8px);
  border-radius: 999px;
  background: var(--accent);
  transition: transform .28s var(--motion), width .28s var(--motion);
}
.currency-thumb { background: var(--dark); }
.segment-btn {
  position: relative;
  z-index: 2;
  min-height: 34px;
  padding: 0 15px;
  background: transparent;
  color: rgba(33, 29, 22, .62);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.segment-btn.is-active { color: #211d16; }
.currency-segment .segment-btn.is-active { color: #fff; }

.rate-note { display: none; }

.prime-product-row {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.prime-price-card {
  min-height: 152px;
  padding: 20px;
  border-radius: 26px;
  background: var(--inner);
  color: var(--text);
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  text-transform: none;
  letter-spacing: 0;
}
.prime-price-card span { margin-bottom: auto; color: var(--muted-strong); font-size: 9px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.prime-price-card strong { font-size: clamp(28px, 2.6vw, 42px); line-height: .95; letter-spacing: -.06em; font-weight: 650; }
.prime-price-card small { margin-top: 7px; color: rgba(33, 29, 22, .58); font-size: 15px; font-weight: 760; }
.prime-price-card p { margin-top: 10px; color: rgba(33, 29, 22, .6); font-size: 12px; line-height: 1.35; }
.prime-price-card.is-selected { background: var(--accent); }
.prime-price-card.is-selected span,
.prime-price-card.is-selected small,
.prime-price-card.is-selected p { color: rgba(0,0,0,.58); }

.prime-request-strip {
  margin-top: 12px;
  padding: 22px;
  border-radius: 26px;
  background: rgba(255,255,255,.76);
  display: grid;
  grid-template-columns: minmax(240px, .68fr) minmax(420px, 1.32fr);
  gap: 22px;
  align-items: start;
}
.request-copy h3 {
  margin-top: 12px;
  font-size: clamp(25px, 2.2vw, 36px);
  line-height: 1;
  letter-spacing: -.055em;
  font-weight: 650;
}
.request-copy p { margin-top: 12px; max-width: 420px; }
.access-request-form { display: flex; flex-direction: column; gap: 10px; }
.request-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.access-request-form button { width: fit-content; margin-top: 2px; }

.code-concierge-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .72fr);
  gap: 12px;
}
.service-card {
  min-height: 230px;
  padding: 28px;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.service-card .card-kicker { margin-bottom: auto; }
.service-card h3 { margin-top: 42px; font-size: clamp(24px, 2.2vw, 36px); line-height: 1; letter-spacing: -.055em; font-weight: 650; }
.service-card p { margin-top: 12px; max-width: 520px; }
.compact-code-form { margin-top: 20px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.access-concierge-card,
.concierge-card { background: var(--graphite); color: #fff; }
.access-concierge-card .card-kicker,
.concierge-card .card-kicker { color: rgba(255,255,255,.42); }
.access-concierge-card h3,
.concierge-card h3 { color: #fff; }
.access-concierge-card p,
.access-concierge-card .concierge-mail,
.concierge-card p,
.concierge-card .concierge-mail { color: rgba(255,255,255,.62); }
.concierge-link { width: fit-content; margin-top: 20px; background: var(--accent); color: #211d16; }
.concierge-mail { margin-top: 12px; font-size: 12px; font-weight: 620; }

/* Prime map gateway */
.prime-gateway {
  min-height: 100vh;
  padding: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.prime-shell {
  position: relative;
  width: min(760px, calc(100% - 28px));
  min-height: 420px;
  padding: clamp(34px, 6vw, 68px);
  border-radius: var(--radius-xl);
  background: radial-gradient(circle at 88% 18%, rgba(198, 160, 99, .18), transparent 34%), var(--surface);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.prime-actions { display: flex; gap: 10px; margin-top: 30px; flex-wrap: wrap; }
.prime-main-btn { background: var(--dark); color: #fff; }
.prime-secondary-btn,
.prime-floating-back { background: rgba(255,255,255,.76); color: #211d16; }
body:has(.prime-gateway) { overflow: hidden; }
.prime-gateway,
.prime-shell.prime-map-open,
.prime-map-frame { width: 100vw !important; height: 100vh !important; }
.prime-shell.prime-map-open { position: fixed !important; inset: 0 !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important; background: #000 !important; overflow: hidden !important; }
.prime-map-frame { position: fixed !important; inset: 0 !important; border: 0 !important; display: block !important; }
.prime-floating-back { position: fixed !important; top: 18px !important; left: 18px !important; z-index: 9999 !important; }

/* Responsive */
@media (max-width: 1180px) {
  .prime-request-strip,
  .code-concierge-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .auth-page,
  .dashboard-page { padding: 10px; }
  .dashboard-header { gap: 14px; padding: 14px 2px 20px; }
  .dashboard-logo { width: 122px; height: 26px; }
  .dashboard-header-actions { gap: 6px; }
  .dashboard-header-actions .ghost-btn { min-height: 38px; padding: 11px 13px; font-size: 9px; }
  .compact-hero { min-height: 0; padding: 28px; grid-template-columns: 1fr; }
  .hero-copy h1 { font-size: clamp(38px, 12vw, 56px); }
  .hero-status { min-height: 104px; }
  .dashboard-section-head { padding: 16px 2px 12px; }
  .dashboard-section-head h2 { font-size: clamp(30px, 9vw, 42px); }
  .user-access-grid,
  .prime-product-row,
  .request-form-grid { grid-template-columns: 1fr; }
  .access-mini-card { min-height: 176px; padding: 24px; }
  .prime-purchase-card { padding: 22px; }
  .prime-control-row { align-items: stretch; }
  .segmented-control { width: 100%; }
  .city-segment .segment-btn { flex: 1; padding: 0 8px; font-size: 9px; }
  .currency-segment .segment-btn { flex: 1; }
  .prime-price-card { min-height: 136px; }
  .prime-request-strip { padding: 20px; }
  .access-request-form button,
  .compact-code-form button { width: 100%; }
  .compact-code-form { grid-template-columns: 1fr; }
  .service-card { min-height: 220px; padding: 24px; }
}

@media (max-width: 430px) {
  .dashboard-header { align-items: flex-start; flex-direction: column; }
  .dashboard-header-actions { width: 100%; justify-content: space-between; }
  .dashboard-header-actions .ghost-btn { flex: 1; }
}


.dashboard-section-head.no-kicker {
  padding-top: 18px;
}

.dashboard-section-head.no-kicker h2 {
  margin-top: 0;
}

/* Keep section headers left-aligned and calm */
.dashboard-section-head {
  align-items: flex-start !important;
  text-align: left !important;
}

.hero-status span {
  color: var(--muted-strong);
}

/* Prime block becomes flat: no huge outer bento shell */
.prime-purchase-card {
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Controls become a small quiet strip on the page, not nested in a giant card */
.prime-control-row {
  margin-bottom: 10px;
  padding: 0 !important;
  background: transparent !important;
}

.segmented-control {
  background: var(--surface) !important;
  box-shadow: none !important;
}

/* Price cards are now the actual bento cards */
.prime-product-row {
  margin-top: 0 !important;
  gap: 12px !important;
}

.prime-price-card {
  min-height: 176px !important;
  padding: 24px !important;
  border-radius: var(--radius-xl) !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}

.prime-price-card.is-selected {
  background: var(--accent) !important;
}

.prime-price-card strong {
  margin-top: 10px;
}

.prime-price-card p {
  max-width: 340px;
}

/* Request strip becomes a normal card below prices */
.prime-request-strip {
  margin-top: 12px !important;
  padding: 26px !important;
  border-radius: var(--radius-xl) !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}

.prime-request-strip .access-request-form {
  padding: 22px;
  border-radius: 26px;
  background: var(--inner);
}

.request-copy .auth-kicker {
  margin-bottom: 0;
}

/* Reduce desktop gigantism */
.compact-hero {
  min-height: 150px;
  padding: clamp(24px, 3.2vw, 38px);
}

.hero-copy h1 {
  font-size: clamp(38px, 4.5vw, 64px);
}

.access-mini-card {
  min-height: 168px;
  padding: 22px;
}

.service-card {
  min-height: 210px;
}

/* Mobile keeps breathing, but no nested blocks */
@media (max-width: 900px) {
  .prime-control-row {
    gap: 8px;
  }

  .prime-price-card {
    min-height: 132px !important;
    padding: 20px !important;
  }

  .prime-request-strip {
    padding: 20px !important;
  }

  .prime-request-strip .access-request-form {
    padding: 0;
    background: transparent;
  }
}

/* =========================================
   MOBILE DASHBOARD HEADER BUTTON FIX
   центрирует "На главный экран" и "Выйти"
========================================= */

@media (max-width: 768px) {
  /* Компактный боковой план — как в портале (только бока) */
  .dashboard-page { padding-left: 8px !important; padding-right: 8px !important; }
  .compact-hero,
  .dashboard-hero,
  .access-mini-card,
  .prime-purchase-card,
  .service-card,
  .access-request-form { padding-left: 16px !important; padding-right: 16px !important; }

  .dashboard-header-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
  }

  .dashboard-header-actions .ghost-btn {
    min-height: 40px !important;
    height: 40px !important;
    padding: 0 14px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;

    flex: 1 1 0 !important;
  }
}

/* =========================================
   HERO ACCESS COLOR POLISH
   grey hero, white status by default, lime if Prime active
========================================= */

.dashboard-hero {
  background: var(--surface) !important;
}

.hero-status {
  background: rgba(255, 255, 255, 0.9) !important;
}

.hero-status.is-prime-active {
  background: var(--accent) !important;
  color: #211d16 !important;
}

.hero-status.is-prime-active span,
.hero-status.is-prime-active small {
  color: rgba(0, 0, 0, 0.58) !important;
}

/* =========================================
   SEGMENTED CONTROLS COLOR POLISH
   City + currency toggles: white base, lime active
========================================= */

.segmented-control {
  background: rgba(255, 255, 255, 0.9) !important;
}

.segment-thumb {
  background: var(--accent) !important;
}

.currency-thumb {
  background: var(--accent) !important;
}

.segment-btn {
  color: rgba(33, 29, 22, 0.58) !important;
}

.segment-btn.is-active {
  color: #211d16 !important;
}

.currency-segment .segment-btn.is-active {
  color: #211d16 !important;
}

/* =========================================
   ACCESS REQUEST FORM — NO INNER BOX
========================================= */

.prime-request-strip .access-request-form {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.prime-request-strip .access-request-form input,
.prime-request-strip .access-request-form textarea {
  background: rgba(255, 255, 255, 0.9) !important;
  color: #211d16 !important;
}

.prime-request-strip .access-request-form input::placeholder,
.prime-request-strip .access-request-form textarea::placeholder {
  color: rgba(33, 29, 22, 0.45) !important;
}

.prime-request-strip .access-request-form button {
  background: #1c1a14 !important;
  color: #fff !important;
}

.prime-request-strip .access-request-form button:hover {
  background: #000 !important;
}

.prime-request-strip .access-request-form small {
  color: rgba(33, 29, 22, 0.58) !important;
}

.old-price {
  text-decoration: line-through;
  opacity: 0.42;
  margin-right: 8px;
}

.new-price {
  color: #211d16;
}

/* --- Упрощённый запрос доступа: 3 шага + свёрнутая личность --- */
.request-steps {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 420px;
  counter-reset: req-step;
}
.request-steps li {
  position: relative;
  padding-left: 30px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--text);
  counter-increment: req-step;
}
.request-steps li::before {
  content: counter(req-step);
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: var(--accent);
  color: #211d16;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.request-identity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(33, 29, 22, 0.08);
}
.request-identity-text {
  font-size: 14px;
  color: var(--text);
}
.request-identity-text strong {
  font-weight: 650;
}
.request-identity-email {
  color: var(--muted);
}
.request-identity .request-identity-edit {
  flex-shrink: 0;
  width: auto;
  margin: 0;
  padding: 7px 13px;
  background: rgba(33, 29, 22, 0.06);
  border: none;
  border-radius: 999px;
  font: inherit;
  font-size: 10px;
  font-weight: 820;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  cursor: pointer;
  transition: background 0.22s var(--motion), color 0.22s var(--motion);
}
.request-identity .request-identity-edit:hover {
  background: var(--dark);
  color: #fff;
}

/* --- Testimonial collection (social proof) --- */
.feedback-card .card-kicker { color: var(--muted); }
.feedback-rating {
  display: flex;
  gap: 4px;
  margin: 14px 0 4px;
}
.feedback-star {
  width: auto;
  margin: 0;
  padding: 2px;
  background: none;
  border: none;
  font-size: 26px;
  line-height: 1;
  color: rgba(127, 156, 0, 0.28);
  cursor: pointer;
  transition: color 0.15s var(--motion), transform 0.15s var(--motion);
}
@media (hover: hover) and (pointer: fine) {
  .feedback-star:hover { transform: translateY(-1px); color: #8a6a34; }
}
.feedback-star.is-active { color: #8a6a34; }
.feedback-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}
.feedback-form button { width: fit-content; }

/* --- Gift option in the access request --- */
.gift-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  font-size: 13px;
  color: var(--muted);
  cursor: pointer;
}
.gift-toggle input {
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
  cursor: pointer;
}

/* --- A11y & motion polish --- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible,
.segment-btn:focus-visible,
.nav-pill:focus-visible,
.prime-price-card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
  button:active,
  a:active { transform: none !important; }
  .segment-thumb { transition: none !important; }
  .feedback-star:hover { transform: none !important; }
}

/* --- Notify capture on the Prime "coming soon" gateway --- */
.prime-notify {
  width: 100%;
  max-width: 380px;
  margin-top: 22px;
}
.prime-notify-label {
  display: block;
  margin-bottom: 10px;
  font-size: 13px;
  color: inherit;
  opacity: 0.62;
}
.prime-notify-row {
  display: flex;
  gap: 8px;
}
.prime-notify-row input {
  flex: 1;
  min-width: 0;
  height: 44px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: rgba(255, 255, 255, 0.92);
  color: var(--text);
  font-family: inherit;
  font-size: 14px;
}
.prime-notify-row button {
  flex-shrink: 0;
  height: 44px;
  padding: 0 18px;
  border-radius: 12px;
  border: 0;
  background: var(--dark);
  color: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.prime-notify-status {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  color: inherit;
  opacity: 0.75;
}
/* === Prime-only blue (rest of cabinet keeps site lime) === */
.access-mini-card.access-prime { background: var(--prime-accent); }
.prime-price-card.is-selected { background: var(--prime-accent) !important; }
.hero-status.is-prime-active { background: var(--prime-accent) !important; }

/* === Prime purchase controls (toggles, currency, step numbers) are Prime → blue === */
.segment-thumb { background: var(--prime-accent) !important; }
.currency-thumb { background: var(--prime-accent) !important; }
.request-steps li::before { background: var(--prime-accent); }

/* === Remaining-time line on active access cards (cabinet) === */
.access-remaining {
  margin-top: 6px;
  font-size: 12.5px;
  font-weight: 780;
  letter-spacing: -0.01em;
  color: var(--muted-strong);
}
.access-mini-card.access-prime .access-remaining {
  color: rgba(0, 0, 0, 0.6);
}

/* === Desktop: price, selection and renewal must read clearly (cabinet tariffs) === */
@media (min-width: 901px) {
  .prime-price-card {
    position: relative;
  }
  .prime-price-card small.price-line {
    margin-top: 9px;
    font-size: clamp(16px, 1.3vw, 20px);
    font-weight: 820;
    color: #211d16;
  }
  .prime-price-card .new-price {
    font-size: 1.06em;
    font-weight: 860;
  }
  .prime-price-card .old-price {
    font-size: 0.82em;
  }
  .prime-price-card p {
    font-size: 13px;
  }
  .prime-price-card.is-selected::after {
    content: "\2713 Выбрано";
    position: absolute;
    top: 14px;
    right: 16px;
    font-size: 10.5px;
    font-weight: 850;
    letter-spacing: 0.03em;
    color: rgba(0, 0, 0, 0.62);
  }
}
/* ============================================================
   FINAL — карты в кабинете: Prime тёмно-синий + золото + белый.
   Дописано последним. Откат = удалить блок. Только .access-mini-card.
   ============================================================ */
.access-mini-card.access-prime {
  background:
    radial-gradient(circle at 92% 8%, rgba(198,160,99,0.20), transparent 46%),
    linear-gradient(165deg, #141d38 0%, #101a33 100%) !important;
  border: 1px solid rgba(198,160,99,0.38) !important;
}
.access-mini-card.access-prime h3 { color: #f6f3ed !important; }
.access-mini-card.access-prime span { color: rgba(246,243,237,0.62) !important; }
.access-mini-card.access-prime p { color: rgba(246,243,237,0.72) !important; }
.access-mini-card.access-prime a {
  background: #c6a063 !important;
  color: #101a33 !important;
}
.access-mini-card.access-prime a:hover { background: #d4b273 !important; }