/* ===== DavaLeather Booking Modal — Safelite-like light theme ===== */
/* Комментарии на русском; UI — английский */

:root{
  --brand: #a5121a;
  --brand-dark: #a5121a;
  --brand-soft: #141414;
  --surface: #ccc;
  --text: #ccc;
  --muted: #ccc;
  --border: #a5121a;
  --ring: #c8102e1a;

  --radius-lg: 24px;         /* сглажённые углы модалки */
  --shadow: 0 20px 50px rgba(17,24,39,.08);
  --modal-footer-height: 68px;

  --z-modal: 2147483600;     /* поверх любых шапок */
}

/* ===== Overlay: центр + затемнение + blur ===== */
.book-modal.hidden{ display:none; }
.book-modal.open{ display:grid; }
.book-modal{
  position: fixed; inset: 0; z-index: var(--z-modal);
  display: grid; place-items: center;
  padding: 24px;
  background: rgba(17,24,39,.45);
  backdrop-filter: blur(12px) saturate(115%);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
  isolation: isolate;
}

/* ===== Коробка модалки (896px) ===== */
.book-modal__content{
  position: relative;
  width: 896px;
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 48px);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  display: flex; flex-direction: column; outline: none;
}
@media (max-width: 640px){
  .book-modal{ padding: 12px; }
  .book-modal__content{ width:100%; max-width:100%; max-height:calc(100vh - 24px); border-radius:16px; }
}

/* ===== Header / Stepper ===== */
.book-modal__top-header{ padding:18px 20px 8px; border-bottom:1px solid var(--border); background:#141414; }
.book-modal__brand-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.book-modal__brand{ display:flex; flex-direction:column; }
.book-modal__brand-title{ font-size:20px; font-weight:800; color:var(--text); letter-spacing:.2px; }
.book-modal__brand-sub{ font-size:13px; color:var(--muted); margin-top:2px; }
.book-modal__header-actions{ display:flex; align-items:center; gap:10px; }
.book-modal__link{ display:inline-flex; align-items:center; gap:6px; font-size:14px; color:var(--text); text-decoration:none; padding:8px 10px; border-radius:10px; border:1px solid var(--border);}
.book-modal__link:hover{ background:#ccc; }
.book-modal__close{ appearance:none; border:1px solid var(--border); color:var(--text); border-radius:10px; width:40px; height:36px; cursor:pointer; background: #141414;}

.book-modal__stepper{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:12px 0 0; }
.book-modal__step{ height:30px; border-radius:999px; display:flex; align-items:center; justify-content:center; color:#ccc; border:1px solid var(--border); font-size:12px; }
.book-modal__step[aria-current="step"]{ background:var(--brand-soft); color:var(--brand); border-color:var(--brand); }

/* ===== Body ===== */
.book-modal__body{ position:relative; overflow:auto; padding:16px 20px; flex:1; background:#141414; }

/* ===== LEGAL footer ===== */
.book-modal__footer{
  border-top:1px solid var(--border);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:18px;
  padding:7px 16px; background:#141414; font-size:14px; color:#6b7280;
}
.book-modal__copy{ color:#6b7280; }
.book-modal__footer-link{ color:#111827; text-decoration:none; font-weight:700; display:inline-flex; align-items:center; gap:6px; }
.book-modal__footer-link:hover{ text-decoration:underline; }
.book-modal__cookie-btn{ appearance:none; border:0; background:transparent; padding:0; cursor:pointer; }
.book-modal__ccpa{ display:inline-flex; vertical-align:middle; margin-left:4px; }

/* ===== Layout helpers / Form / Buttons ===== */
.book-modal__grid-2{ display:grid; grid-template-columns:1.2fr .8fr; gap:16px; }
.book-modal__grid-span{ grid-column:1 / -1; }
@media (max-width:860px){ .book-modal__grid-2{ grid-template-columns:1fr; } }

.book-modal__label{ display:block; margin-bottom:6px; color:var(--text); font-weight:600; }
.book-modal__input{ width:100%; background:#ccc; border:1px solid var(--border); border-radius:12px; padding:12px 14px; transition: box-shadow .15s, border-color .15s; }
.book-modal__input:focus{ outline:none; box-shadow:0 0 0 4px var(--ring); border-color:var(--brand); }
.book-modal__form-group{ margin-bottom:12px; }
.req{ color:var(--brand); }

.btn:active{ transform: translateY(1px); }
.btn[disabled]{ opacity:.55; cursor:not-allowed; }
.btn-primary{ background:var(--brand); color:#ccc; border-color:var(--brand); }
.btn-primary:hover{ background:var(--brand-dark); border-color:var(--brand-dark); }
.btn-lite{ color:#ccc; border-color:var(--border); }
.btn-ghost{ background:#ccc; color:var(--brand); border-color:var(--brand); }
.book-modal__actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:8px; }

/* Стили для кнопок внутри snapbox__nav (Step 2) */
.snapbox__nav{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid var(--border);
}
.snapbox__nav .btn{ flex:1 1 auto; }
.snapbox__nav .btn-lite{ background:#ccc; color:#141414; border-color:var(--border); }
.snapbox__nav .btn-primary{ background:var(--brand); color:#ccc; border-color:var(--brand); }
.snapbox__nav .btn-primary:hover{ background:var(--brand-dark); border-color:var(--brand-dark); }

.book-modal__step-title{ font-size:22px; font-weight:800; color:#ccc; margin:6px 0 6px; }
.book-modal__step-desc{ font-size:14px; color:#ccc; margin-bottom:14px; }

/* ===== Step 1 hero ===== */
.book-step--hero { padding-top:8px; }
.hero { text-align:center; padding:8px 8px 0; }
.hero__title { font-size:28px; line-height:1.2; font-weight:800; color:#ccc; margin:6px 0 6px; }
@media (max-width:640px){ .hero__title{ font-size:24px; } }
.hero__subtitle { color:#6b7280; margin-bottom:14px; }
.hero__zip{ display:flex; justify-content:center; }
.hero__zip-input{
  width:min(560px,92%); height:52px; background:#ccc; border:1px solid var(--border);
  border-radius:12px; box-shadow:0 2px 0 rgba(17,24,39,.04), 0 1px 2px rgba(17,24,39,.06) inset;
  padding:0 16px; font-size:18px; color:#111827; transition: box-shadow .15s, border-color .15s;
}
.hero__zip-input:focus{ outline:none; border-color:#c8102e; box-shadow:0 0 0 4px #c8102e1a; }

/* ===== ZIP hint — same width & style as the red button ===== */
#zipHint{
  /* ширина и центрирование — ровно как у .hero__cta */
  width: min(560px, 92%);
  margin: 8px auto 0;          /* центрируем весь блок */
  text-align: center;

  /* визуал и компоновка */
  display: flex;
  align-items: center;
  justify-content: center;     /* центрируем контент (иконка + текст) */
  gap: 8px;
  padding: 10px 16px;
  min-height: 44px;            /* близко к высоте кнопки */
  border-radius: 999px;        /* как у кнопки */
  border: 1px solid transparent !important;

  /* базовое состояние */
  color: #9ca3af !important;
  background: transparent !important;

  transition:
    color .18s ease,
    background-color .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    transform .18s ease,
    opacity .18s ease;
}
#zipHint::before{
  content:"ℹ︎";
  font-weight:600;
  opacity:.75;
}

/* зелёное состояние (в белом списке) */
#zipHint.is-ok{
  color:#22c55e !important;
  background:rgba(34,197,94,.14) !important;
  border-color:rgba(34,197,94,.45) !important;
  box-shadow:0 0 0 1px rgba(34,197,94,.45) inset !important;
  animation:zip-hint-pop .2s ease-out;
}
#zipHint.is-ok::before{ content:"✓"; }

/* красное состояние (вне зоны) */
#zipHint.is-error{
  color:#ef4444 !important;
  background:rgba(239,68,68,.16) !important;
  border-color:rgba(239,68,68,.5) !important;
  box-shadow:0 0 0 1px rgba(239,68,68,.5) inset !important;
  animation:zip-hint-pop .2s ease-out;
}
#zipHint.is-error::before{ content:"!"; }


/* Motion */
@keyframes zip-hint-pop{
  from{ opacity:0; transform:translateY(4px); }
  to{   opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  #zipHint{ transition:none; }
  #zipHint.is-ok,
  #zipHint.is-error{ animation:none; }
}


.hero__cta{
  width:min(560px,92%); height:54px; margin:14px auto 10px; background:#c8102e; color:#fff;
  font-weight:800; font-size:18px; letter-spacing:.2px; border:none; border-radius:999px; cursor:pointer;
  transition: transform .08s, background .15s, opacity .15s;
}
.hero__cta:hover{ background:#a10d25; }
.hero__cta[disabled]{ opacity:.55; cursor:not-allowed; }
.hero__resume { margin:8px 0 6px; color:#6b7280; font-size:14px; }
.hero__resume-link{ color:#1d4ed8; text-decoration:none; font-weight:700; }
.hero__resume-link:hover{ text-decoration:underline; }
.hero__illustration{ margin-top:14px; }
.hero-steps{ margin-top:10px; border:1px solid var(--border); border-radius:14px; padding:14px 16px; text-align:center; }
.hero-steps__title{ margin:0 0 10px; font-size:16px; font-weight:800; color:#ccc; }
.hero-steps__list{ margin:0; padding:0; list-style-position: inside; display:flex; gap:12px; justify-content:center; }
.hero-steps__list li{ max-width:280px; }
@media (max-width:860px){
  .hero-steps__list{ display:block; text-align:left; max-width:700px; margin:0 auto; }
  .hero-steps__list li{ margin-bottom:8px; }
}

/* ===== Step 2 — Categories (top row) ===== */
.service-icons{
  display:grid; grid-template-columns: repeat(4,minmax(0,1fr));
  gap:12px; margin-bottom:12px;
}
@media (max-width:960px){ .service-icons{ grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .service-icons{ grid-template-columns: 1fr; } }

.service-icon-card{
  display:flex; flex-direction:column; gap:10px; align-items:center;
  border:1px solid #ccc; border-radius:16px;
  padding:18px 12px; cursor:pointer; text-align:center;
  transition: border-color .15s, box-shadow .15s, transform .06s, background .15s;
  background: #141414;
}
.service-icon-card:hover{ border-color:var(--brand); box-shadow:0 0 0 4px var(--ring);}
.service-icon-card:active{ transform: translateY(1px); }
.service-icon-card img{ width:40px; height:40px; opacity:.9; }
.service-icon-card div{ font-weight:800; color:#ccc; font-size:14px; line-height:1.25; }
.service-icon-card.selected{ border-color:var(--brand); background:var(--brand-soft); }

/* ===== Step 2 — Sub-services grid ===== */
.service-list-grid{
  display:grid; grid-template-columns: repeat(2, minmax(0,1fr));
  gap:12px; margin-top:4px;
}
@media (max-width:900px){ .service-list-grid{ grid-template-columns: 1fr; } }

/* Карточка подпункта-услуги */
.service-item-card{
  position:relative;
  display:flex; flex-direction:column; gap:10px;
  background:#ccc; border:1px solid var(--border); border-radius:14px;
  padding:14px 14px 12px; cursor:pointer; text-align:left;
  transition: border-color .15s, box-shadow .15s, transform .06s, background .15s;
}
.service-item-card:hover{ border-color:var(--brand); box-shadow:0 0 0 3px var(--ring); background:#ccc; }
.service-item-card:active{ transform: translateY(1px); }
.service-item-card__title{ font-weight:800; color:#111827; font-size:15px; line-height:1.35; }
.service-item-card__subtitle{ color:#4b5563; font-size:13px; line-height:1.3; }
.service-item-card__meta{ display:flex; gap:8px; flex-wrap:wrap; margin-top:2px; }

.badge{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius:999px; font-size:12px; font-weight:700;
  background:#ccc; color:#374151; border:1px solid var(--border);
}
.badge--price{ background:#ccc; border-color:#fed7aa; color:#9a3412; }
.badge--time{ background:#ccc; border-color:#a5f3fc; color:#155e75; }

/* ===== Toast ===== */
.book-modal__toast{
  position:absolute; left:50%; bottom:calc(var(--modal-footer-height) + 12px); transform:translateX(-50%);
  background:#111827; color:#fff; padding:10px 14px; border-radius:10px; border:1px solid #0b1220;
  box-shadow:0 6px 20px rgba(0,0,0,.2); font-size:14px; display:none; z-index:3;
}
.book-modal__toast.show{ display:block; }

/* ===== Place selection: two big buttons ===== */
.svcplace-buttons{ display:flex; gap:16px; margin-bottom:8px; flex-wrap:wrap; }
.svcplace-btn{
  flex:1; min-width:260px; background:#ccc; border:2px solid var(--border); border-radius:16px;
  padding:18px; cursor:pointer; display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  transition:border-color .15s, box-shadow .15s, background .15s, transform .06s;
}
.svcplace-btn:hover{ border-color:var(--brand); box-shadow:0 0 0 4px var(--ring); }
.svcplace-btn:active{ transform: translateY(1px); }
.svcplace-btn.selected{ border-color:var(--brand); background:var(--brand-soft); box-shadow:0 0 0 4px var(--ring); }
.svcplace-btn__title{ font-size:18px; font-weight:800; color:#ccc; }
.svcplace-btn__desc{ font-size:14px; color:#ccc; }
.svcplace-btn input{ display:none; }

/* Disabled */
.svcplace-btn.is-disabled{ opacity:.55; cursor:not-allowed; filter: grayscale(0.1); border-color: #ccc; background:var(--brand-soft);}

/* Красный текст ВНУТРИ кнопки Shop */
.svcplace-btn__warning{
  margin-top:8px;
  color:#a5121a;
  font-weight:700;
  font-size:14px;
}

/* ===== Week calendar (Safelite-like) ===== */
.wkcal{
  --wk-blue:#156AE8; --wk-blue-dark:#115AD0; --wk-blue-100:#EAF2FF; --wk-gray:#6b7280;
  background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; box-shadow: var(--shadow);
}
.wkcal__bar{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:12px 14px; border-bottom:1px solid var(--border); background:#141414;
}
.wkcal__label{ font-size:20px; font-weight:800; color:#ccc; }
.wkcal__nav{ appearance:none; border:0; background:transparent; cursor:pointer; font-weight:800; }
.wkcal__nav:hover{ text-decoration:underline; }
.wkcal__nav-group{ display:flex; gap:12px; }

.wkcal__grid{ display:grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap:12px; padding:12px; background:#141414; }
@media (max-width:780px){ .wkcal__grid{ grid-template-columns: repeat(2,minmax(0,1fr)); } }

.wkcol{ border:1px solid var(--border); border-radius:12px; overflow:hidden;}
.wkcol__head{  color:#ccc; padding:14px 12px 12px; }
.wkcol__dow{ font-size:22px; font-weight:800; line-height:1.05; }
.wkcol__date{ margin-top:6px; font-size:16px; opacity:.95; }

.wkcol__cells{ padding:10px; display:grid; gap:10px;}

/* === NEW: Крупные слоты внутри колонок === */
.wkcol__slots[data-scrollable="true"]{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-height:100%;
  overflow-y:auto;
  padding-right:2px;
}

.wk-slot{
  appearance:none;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  border:1px solid var(--surface);
  border-radius:14px;
  background:#141414;
  color:var(--text);
  font-weight:800;
  font-size:11px;
  line-height:1.2;
  cursor:pointer;
  transition: border-color .15s, box-shadow .15s, background .15s, transform .06s;
}
.wk-slot:hover{ border-color:var(--brand); box-shadow:0 0 0 4px var(--ring); }
.wk-slot:active{ transform: translateY(1px); }
.wk-slot:focus-visible{ outline:none; border-color:var(--brand); box-shadow:0 0 0 4px var(--ring); }

/* Выбранный слот */
.wk-slot[aria-pressed="true"]{
  border-color: var(--brand);
  background: var(--brand-soft);
  box-shadow: 0 0 0 4px var(--ring);
}

/* Пустой день */
.wk-slot--empty{
  padding:16px;
  border:1px dashed var(--border);
  border-radius:12px;
  text-align:center;
  color:#6b7280;
  background:#111;
}

/* ===== Прочее / визуально скрытое ===== */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* === Step 2: two columns layout (cards + sticky form) === */
.svc2cols{ display:grid; grid-template-columns: minmax(0,1fr) 360px; gap:16px; align-items:start; }
@media (max-width: 980px){ .svc2cols{ grid-template-columns: 1fr; } }
.svc2cols__right{ position: sticky; top: 8px; }

/* Cards grid (2 per row) */
.svc-cards{ display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:14px; }
@media (max-width:720px){ .svc-cards{ grid-template-columns: 1fr; } }

/* Service card */
.svc-card{
  position:relative; height:260px; border-radius:16px; overflow:hidden;
  border:1px solid var(--border); background:#000; cursor:pointer;
  box-shadow:0 8px 18px rgba(17,24,39,.08);
  transition: transform .08s, box-shadow .15s, border-color .15s;
}
.svc-card:hover{ transform: translateY(-1px); box-shadow:0 10px 22px rgba(17,24,39,.12); }
.svc-card.selected{ outline: 3px solid var(--brand); outline-offset:0; border-color:var(--brand); }

.svc-card__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.svc-card__shade{
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.0) 40%, rgba(0,0,0,.65) 100%);
}
.svc-card__title{
  position:absolute; left:14px; right:14px; bottom:12px;
  color:#ccc; font-weight:900; letter-spacing:.3px; text-transform:uppercase; font-size:20px;
}

/* Pill badges (top-left) */
.svc-badges{ position:absolute; left:12px; top:12px; display:grid; gap:8px; z-index:2; }
.svc-badge{
  display:inline-flex; align-items:center; gap:6px;
  padding:6px 10px; border-radius:999px;
  background: rgba(17,24,39,.55); color:#fff; font-weight:800; border:1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  font-size:14px; box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.svc-badge span{ opacity:.9; font-weight:600; }
.svc-badge b{ font-weight:900; }

/* Sticky photo box (right pane) */
.snapbox{ border:1px solid var(--border); border-radius:14px; background:#141414; padding:14px; box-shadow: var(--shadow); }
.snapbox__hdr{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.snapbox__title{ font-weight:800; font-size:18px; color:#ccc; }
.snapbox__link{ color:#156AE8; font-weight:800; text-decoration:none; }
.snapbox__link:hover{ text-decoration:underline; }
.snapbox__cam{ font-size:26px; line-height:1; opacity:.85; }
.snapbox__rule{ border:none; border-top:1px solid var(--border); margin:10px 0; }
.snapbox__text{ color:#ccc; font-size:14px; margin-bottom:10px; }
.snapbox__btn{ width:100%; margin-top:8px; border-radius:999px; height:46px; }
.snapbox__msg{ margin-top:8px; font-size:13px; color:#047857; font-weight:700; }

/* === Main 4 blocks → accordion sub-services === */
.svc-main-grid{
  display:grid; grid-template-columns: repeat(4,minmax(0,1fr));
  gap:14px; margin:8px 0 12px;
}
@media (max-width:980px){ .svc-main-grid{ grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .svc-main-grid{ grid-template-columns: 1fr; } }

.svc-main-card{
  position:relative; border:1px solid var(--border); border-radius:16px; overflow:hidden;
  background:#000; cursor:pointer; box-shadow:0 8px 18px rgba(17,24,39,.08);
  transition: transform .08s, box-shadow .15s, border-color .15s;
  min-height:160px;
}
.svc-main-card:hover{ transform: translateY(-1px); box-shadow:0 10px 22px rgba(17,24,39,.12); }
.svc-main-card[aria-expanded="true"]{ outline: 3px solid var(--brand); outline-offset:0; border-color:var(--brand); }

.svc-main-card__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.svc-main-card__shade{ position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.05) 40%, rgba(0,0,0,.65) 100%); }
.svc-main-card__title{ position:absolute; left:14px; right:14px; bottom:12px; color:#fff; font-weight:900; letter-spacing:.3px; text-transform:uppercase; font-size:18px; }

.svc-accordions{ display:grid; gap:12px; }
.svc-accordion{
  border:1px solid var(--border); border-radius:14px; overflow:hidden; background:#fff;
}
.svc-accordion__hdr{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:12px 14px; background:#f9fafb; border-bottom:1px solid var(--border);
}
.svc-accordion__title{ font-weight:900; letter-spacing:.2px; color:#111827; text-transform:uppercase; }
.svc-accordion__panel{ padding:12px; display:none; }
.svc-accordion[aria-expanded="true"] .svc-accordion__panel{ display:block; }

/* sub-services grid inside panel */
.svc-sub-grid{ display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:12px; }
@media (max-width:820px){ .svc-sub-grid{ grid-template-columns: 1fr; } }

.svc-sub-card{
  position:relative; display:flex; flex-direction:column; gap:8px;
  background:#fff; border:1px solid var(--border); border-radius:14px; padding:12px;
  transition: border-color .15s, box-shadow .15s, transform .06s, background .15s;
  cursor:pointer;
}
.svc-sub-card:hover{ border-color:var(--brand); box-shadow:0 0 0 3px var(--ring); }
.svc-sub-card.selected{ outline: 3px solid var(--brand); outline-offset:0; border-color:var(--brand); }
.svc-sub-card__title{ font-weight:800; color:#111827; font-size:15px; line-height:1.35; }
.svc-sub-card__subtitle{ color:#4b5563; font-size:13px; line-height:1.3; }
.svc-sub-card__meta{ display:flex; gap:8px; flex-wrap:wrap; }

/* === ZIP Hint pill — hard override (match Continue button width) === */
#zipHint{
  width: min(560px, 92%) !important;
  margin: 8px auto 0 !important;        /* центр */
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 8px !important;

  padding: 12px 16px !important;
  min-height: 54px !important;          /* как у кнопки */
  border-radius: 999px !important;      /* как у кнопки */
  border: 1px solid transparent !important;

  color: #9ca3af !important;
  background: transparent !important;

  transition: color .18s, background-color .18s, border-color .18s, box-shadow .18s !important;
}
#zipHint::before{
  content:"ℹ︎";
  font-weight:700;
  opacity:.75;
}

/* OK (зелёный) */
#zipHint.is-ok{
  color:#22c55e !important;
  background:rgba(34,197,94,.14) !important;
  border-color:rgba(34,197,94,.45) !important;
  box-shadow:0 0 0 1px rgba(34,197,94,.45) inset !important;
}
#zipHint.is-ok::before{ content:"✓"; }

/* Error (красный) */
#zipHint.is-error{
  color:#ef4444 !important;
  background:rgba(239,68,68,.16) !important;
  border-color:rgba(239,68,68,.5) !important;
  box-shadow:0 0 0 1px rgba(239,68,68,.5) inset !important;
}
#zipHint.is-error::before{ content:"!"; }

/* Без анимаций при reduced-motion */
@media (prefers-reduced-motion: reduce){
  #zipHint{ transition:none !important; }
  #zipHint.is-ok, #zipHint.is-error{ animation:none !important; }
}
/* Verify mode */
.mode-verify .book-modal__stepper { display: none !important; }
/* Header link is a button */
.book-modal__link { appearance: none; background: transparent; border: 0; cursor: pointer; }
/* Verify layout small tweaks */
.book-step--verify .book-modal__actions { margin-top: 12px; }

