/* ── Пар на `svrail.js` (28.08.2026) ────────────────────────────────────────
   Нашите редови ја носат класата `sv-hotel-card`, значи целиот распоред им
   доаѓа од `bookinglook.css` — тука е САМО она што нивниот JSX го носи преку
   MUI, а нашиот јазол го нема: типографија на името, сивиот тон на редот со
   местото, и сликата како позадина (нивната е `<img>`, нашата е `div` за да
   не скока висината додека се вчитува).

   Ниту едно правило тука не го допира нивниот ред. Сите се под `.sv-rail-*`
   или под `.sv-hotel-card.sv-rail-card`.                                    */

/* Лентата што кажува колку сме додале. Зазема цел ред во решетката. */
.sv-rail-host {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 2px;
  font-size: .84rem;
  color: var(--brand-text-muted, #6b7280);
}
.sv-rail-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--brand-accent, #f0801a);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .02em;
}

/* Картичката. Позадината и рамката ги презема од нивниот тон, за да не се
   разликува ред од ред — единствената разлика смее да биде содржината. */
.sv-hotel-card.sv-rail-card {
  background: var(--brand-surface, #fff);
  border: 1px solid var(--brand-border, rgba(0, 0, 0, .12));
  box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
  overflow: hidden;
  display: block;                 /* @container во bookinglook.css го прави ред */
}

.sv-rail-img {
  background-color: var(--brand-border, #eceff3);
  background-size: cover;
  background-position: center;
  min-height: 180px;
}
/* Без фотографија: истата илустрација како плочката на билдот
   (`bookinglook.css`, 11.09.2026 — Андреј: „za da ne bide prazno"), со
   истата мала ознака долу лево. */
.sv-rail-noimg {
  background-image: url("sv-noimg.svg") !important;
  font-size: 0;
  color: transparent;
}
.sv-rail-noimg::after {
  content: "Нема достапни слики";
  content: "Нема достапни слики" / "";
  position: absolute;
  left: 8px;
  bottom: 8px;
  max-width: calc(100% - 16px);
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .86);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  color: var(--brand-text, #1a1a2e);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Телефон (сложен распоред): нивните слики се 200px, нашите беа 180 — во
   иста листа (мерено 11.09: 586 × 356×200 наспроти 119 × 356×180). */
@container svlist (max-width: 559.98px) {
  .sv-hotel-card.sv-rail-card > .sv-rail-img { min-height: 200px; }
}

/* Зумирање ВО рамката на hover — пар на `.sv-hotel-card:hover` во
   bookinglook.css. Сликата е позадина на `div`, па копија ја носи `::before`
   (`background: inherit`) и само таа се скалира; рамката мирува. */
.sv-rail-img { position: relative; overflow: hidden; }
.sv-rail-img::before {
  content: "";
  position: absolute;
  inset: 0;
  background: inherit;
  transition: transform .7s cubic-bezier(.2, .8, .2, 1);
}
@media (hover: hover) and (pointer: fine) {
  .sv-rail-card:hover .sv-rail-img::before { transform: scale(1.07); }
}
@media (prefers-reduced-motion: reduce) {
  .sv-rail-img::before { transition: none; }
  .sv-rail-card:hover .sv-rail-img::before { transform: none; }
}

.sv-rail-body { padding: 12px 14px 14px; }

.sv-rail-head { display: flex; }
.sv-rail-name {
  font-weight: 700;
  color: var(--brand-text, #1a1a2e);
  font-size: 1.05rem;
  line-height: 1.3;
}
/* Ѕвездичките како кај нивниот ред (11.09.2026): портокалови на бледа
   пилула, наместо жолт текст — нашите и нивните редови да не се разликуваат. */
.sv-rail-stars {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 8px;
  background: rgba(var(--brand-accent-rgb, 255, 115, 0), .10);
  color: var(--brand-accent, #ff7300);
  font-size: 16px;
  line-height: 16px;
  letter-spacing: 1px;
  white-space: nowrap;
}

.sv-rail-meta,
.sv-rail-room {
  font-size: .82rem;
  color: var(--brand-text-muted, #6b7280);
  margin-top: 2px;
}

/* Десната колона ја реди `bookinglook.css` преку `> :last-child`; тука само
   тонот на бројот, за да е ист со нивниот. */
/* NRF / откажување / такса (12.09.2026) — иста класа и бои како прод svrail.css. */
.sv-rail-cxl {
  display: inline-block; margin-top: 6px; padding: 4px 9px; border-radius: 8px;
  font-size: .78rem; font-weight: 600; line-height: 1.35;
  white-space: normal; overflow-wrap: anywhere; max-width: 100%;
  background: var(--brand-border, #f1f3f7); color: var(--brand-text-muted, #6b7280);
}
.sv-rail-cxl[data-sv-cancel="non_refundable"] { background: #fdecec; color: #b42318; }
.sv-rail-cxl[data-sv-cancel="free_until"] { background: #e7f6ec; color: #15803d; }
.sv-rail-cxl[data-sv-cancel="fee_applies"] { background: #fff4e5; color: #b45309; }
.sv-rail-price { margin-top: 10px; display: flex; align-items: center; gap: 10px; }
.sv-rail-price > div { font-weight: 800; font-size: 1.3rem; color: var(--brand-text, #1a1a2e); min-width: 0; }
.sv-rail-price > div > small { display: block; font-weight: 500; font-size: .76rem; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; color: var(--brand-text-muted, #6b7280); }
.sv-rail-alt[data-sv-cancel="free_until"] { color: #15803d; }
.sv-rail-alt[data-sv-cancel="non_refundable"] { color: #b42318; }
.sv-rail-tax { color: #b45309; }
.sv-rail-price button {
  min-height: 44px;                /* прагот за прст, правило 22.04 */
  padding: 8px 14px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: var(--brand-accent, #f0801a);
  color: #fff;
  font: inherit;
  font-weight: 700;
  font-size: .88rem;
  cursor: pointer;
}
.sv-rail-price button:hover { background: var(--brand-accent-dark, #d96a08); }

/* ── Формата за барање понуда ──────────────────────────────────────────── */
.sv-rail-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(0, 0, 0, .45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.sv-rail-box {
  position: relative;
  width: min(420px, 100%);
  max-height: 90vh;
  overflow: auto;
  background: var(--brand-surface, #fff);
  color: var(--brand-text, #1a1a2e);
  border-radius: 14px;
  padding: 20px 18px 18px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
}
.sv-rail-box h3 { margin: 0 0 2px; font-size: 1.05rem; line-height: 1.3; }
.sv-rail-sub { margin: 0 0 14px; font-size: .82rem; color: var(--brand-text-muted, #6b7280); }
.sv-rail-box label { display: block; margin-bottom: 10px; font-size: .8rem; color: var(--brand-text-muted, #6b7280); }
.sv-rail-f {
  display: block;
  width: 100%;
  margin-top: 4px;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--brand-border, rgba(0, 0, 0, .18));
  border-radius: 10px;
  font: inherit;
  color: var(--brand-text, #1a1a2e);
  background: var(--brand-surface, #fff);
}
textarea.sv-rail-f { min-height: 64px; resize: vertical; }
.sv-rail-x {
  position: absolute;
  top: 10px; right: 10px;
  width: 36px; height: 36px;
  border: 0; border-radius: 8px;
  background: transparent;
  color: var(--brand-text-muted, #6b7280);
  font-size: 1rem; cursor: pointer;
}
.sv-rail-send {
  width: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 10px;
  background: var(--brand-accent, #f0801a);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.sv-rail-send[disabled] { opacity: .6; cursor: default; }
.sv-rail-msg { margin-top: 10px; font-size: .84rem; min-height: 1.2em; }
.sv-rail-ok { color: #15803d; }
.sv-rail-err { color: #b91c1c; }

/* ── Чекаут во два чекора (29.08.2026) — пар на новата openForm ──────────── */
.sv-co-box { width: min(520px, 100%); }

.sv-co-sum {
  display: flex; gap: 12px; align-items: flex-start;
  padding-bottom: 12px; margin-bottom: 12px;
  border-bottom: 1px solid var(--brand-border, rgba(0,0,0,.12));
}
.sv-co-img {
  flex: 0 0 96px; height: 72px; border-radius: 10px;
  background-color: var(--brand-border, #eceff3);
  background-size: cover; background-position: center;
}
.sv-co-sum h3 { margin: 0; font-size: 1.02rem; }
.sv-co-price { font-weight: 800; font-size: 1.25rem; margin-top: 4px; }

.sv-co-step h4 { margin: 12px 0 8px; font-size: .92rem; }
.sv-co-grid { display: grid; grid-template-columns: 96px 1fr 1fr; gap: 8px; }
.sv-co-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.sv-co-grid .sv-rail-f, .sv-co-grid2 .sv-rail-f { margin-top: 0; }

.sv-co-trav { display: grid; grid-template-columns: 18px 88px 1fr 1fr; gap: 6px; align-items: center; margin-bottom: 6px; }
.sv-co-trav span { color: var(--brand-text-muted, #6b7280); font-size: .8rem; }
.sv-co-trav .sv-rail-f { margin-top: 0; min-height: 40px; }

.sv-co-lbl { display: block; margin-top: 10px; font-size: .8rem; color: var(--brand-text-muted, #6b7280); }
.sv-co-next { margin-top: 14px; }

.sv-co-pay {
  display: flex; gap: 10px; align-items: flex-start;
  border: 1px solid var(--brand-border, rgba(0,0,0,.14));
  border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; cursor: pointer;
}
.sv-co-pay:has(input:checked) { border-color: var(--brand-accent, #f0801a); box-shadow: 0 0 0 1px var(--brand-accent, #f0801a); }
.sv-co-pay input { margin-top: 3px; }
.sv-co-pay b { display: block; font-size: .88rem; }
.sv-co-pay small { color: var(--brand-text-muted, #6b7280); font-size: .76rem; line-height: 1.35; }
.sv-co-pay-off { opacity: .55; cursor: default; }

.sv-co-terms { display: block; font-size: .8rem; margin: 10px 0 6px; }
.sv-co-terms a { color: var(--brand-accent, #f0801a); }
.sv-co-note { font-size: .76rem; color: var(--brand-text-muted, #6b7280); line-height: 1.4; }

.sv-co-row { display: flex; gap: 10px; align-items: center; margin-top: 8px; }
.sv-co-back {
  min-height: 46px; padding: 0 14px; border-radius: 10px;
  border: 1px solid var(--brand-border, rgba(0,0,0,.18));
  background: transparent; color: var(--brand-text, #1a1a2e); font: inherit; cursor: pointer;
}
.sv-co-row .sv-rail-send { flex: 1; width: auto; }

.sv-co-done { text-align: center; padding: 18px 6px 8px; }
.sv-co-check {
  width: 56px; height: 56px; margin: 0 auto 10px; border-radius: 50%;
  background: #15803d; color: #fff; font-size: 1.6rem; line-height: 56px;
}
.sv-co-ref {
  display: inline-block; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 1.05rem; font-weight: 700; letter-spacing: .04em;
  background: var(--brand-border, #f1f3f7); border-radius: 8px; padding: 6px 12px; margin: 6px 0;
}
.sv-co-small { font-size: .78rem; color: var(--brand-text-muted, #6b7280); }

@media (max-width: 480px) {
  .sv-co-grid { grid-template-columns: 1fr; }
  .sv-co-grid2 { grid-template-columns: 1fr; }
  .sv-co-trav { grid-template-columns: 14px 80px 1fr 1fr; }
}

/* ── Наша секција кога нивната решетка не постои (нула нивни резултати) ──── */
.sv-rail-section { max-width: 1200px; margin: 18px auto 0; padding: 0 16px; }
.sv-rail-h { font-size: 1.35rem; font-weight: 800; color: var(--brand-text, #1a1a2e); margin: 8px 0 14px; }
.sv-rail-owngrid { display: grid; grid-template-columns: 1fr; gap: 12px; }

/* Филтерот по име крие со `hidden`, не со инлајн стил: `bookinglook.css` во
   `@container svlist (min-width: 560px)` пишува `.sv-hotel-card { display:
   flex !important }`, а нашите редови ја носат истата класа намерно. Инлајн
   стил губи од `!important` — измерено 31.08.2026: сите 102 реда имаа
   `style.display='none'` и сите 102 се гледаа на екран. */
.sv-rail-card[hidden] { display: none !important; }

/* LAB hotel cards and shared accessible details/gallery surface. */
.sv-rail-card .sv-rail-img{position:relative;border:0;padding:0;cursor:pointer;display:block;min-width:0;width:100%;height:210px;overflow:hidden}
.sv-rail-card .sv-rail-img img{display:block;width:100%;height:100%;object-fit:cover}
.sv-rail-card .sv-rail-noimg{cursor:default;display:flex}
.sv-rail-photo-count{position:absolute;left:10px;bottom:10px;min-height:32px;padding:5px 10px;border-radius:8px;background:#10213deb;color:white;font-size:14px;display:flex;align-items:center}
.sv-rail-card .sv-rail-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sv-rail-card button.sv-rail-name{display:inline;text-align:left;background:none;border:0;padding:0;min-height:44px;font:inherit;font-size:18px;font-weight:800;color:#10213d;cursor:pointer}
.sv-rail-card .sv-rail-meta,.sv-rail-card .sv-rail-room,.sv-rail-card .sv-rail-supplier,.sv-rail-card .sv-rail-request{font-size:14px;line-height:1.5;margin-top:4px}
.sv-rail-supplier{color:#475569}
.sv-rail-supplier strong{color:#10213d}
.sv-rail-request{color:#9a4d00}
.sv-rail-details{min-height:44px;background:none;border:0;padding:4px 0;font:inherit;font-size:14px;font-weight:700;color:#9a4d00;text-decoration:underline;cursor:pointer}
.sv-rail-card .sv-rail-price{display:flex;flex-wrap:wrap;gap:6px 12px}
.sv-rail-price small{font-size:14px;line-height:1.4;font-weight:400;color:#64748b}
.sv-rail-host{font-size:14px}
.sv-hotel-dialog{position:fixed;inset:0;z-index:1800;background:#071325bb;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}
.sv-hotel-dialog-box{background:white;border-radius:16px;width:min(720px,100%);max-height:calc(100dvh - 32px);overflow:auto;color:#10213d;font:inherit;font-size:16px;box-shadow:0 24px 70px #0004}
.sv-hotel-dialog-box header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;background:white;border-bottom:1px solid #dbe2ea;padding:10px 16px}
.sv-hotel-dialog-box h2{font-size:20px;line-height:1.3;margin:0}
.sv-hotel-dialog-box button{min-height:44px;min-width:44px;font:inherit;border-radius:10px;cursor:pointer}
.sv-hotel-dialog-close{border:0;background:#f1f5f9;color:#10213d;font-size:26px!important;flex:0 0 44px}
.sv-hotel-gallery .sv-hotel-dialog-box{width:min(1080px,100%)}
.sv-hotel-gallery-stage{height:min(64dvh,670px);background:#071325;display:flex;align-items:center;justify-content:center}
.sv-hotel-gallery-stage img{max-width:100%;max-height:100%;object-fit:contain}
.sv-hotel-gallery-nav{display:flex;justify-content:center;align-items:center;gap:22px;padding:12px}
.sv-hotel-gallery-nav button{border:1px solid #dbe2ea;background:white;font-size:24px}
.sv-hotel-gallery-nav button:disabled{opacity:.4;cursor:default}
.sv-hotel-gallery-error{padding:0 16px;font-size:14px;color:#b42318}
.sv-hotel-gallery-error:empty{display:none}
.sv-hotel-details-content{padding:16px}
.sv-hotel-details-content dl{display:grid;grid-template-columns:minmax(110px,.6fr) minmax(0,1.4fr);margin:16px 0}
.sv-hotel-details-content dt,.sv-hotel-details-content dd{margin:0;padding:10px 0;border-bottom:1px solid #e2e8f0;font-size:14px;overflow-wrap:anywhere}
.sv-hotel-details-content dt{font-weight:700;padding-right:12px}
.sv-hotel-details-photos{padding:8px 14px;background:#fff7ed;color:#984b00;border:1px solid #fed7aa;font-weight:700!important}
.sv-hotel-details-book{padding:10px 20px;background:#ff7900;color:white;border:0;font-weight:700!important}
.sv-hotel-details-notes{white-space:pre-wrap;font-size:14px;line-height:1.6}
.sv-hotel-dialog :focus-visible,.sv-rail-card :focus-visible{outline:3px solid #2563eb;outline-offset:2px}
@media(min-width:800px){.sv-rail-card .sv-rail-img{width:240px;flex:0 0 240px;align-self:stretch;height:auto;min-height:200px}.sv-rail-card .sv-rail-img img{position:absolute;inset:0}.sv-rail-card .sv-rail-body{flex:1;min-width:0}}
@media(max-width:640px){.sv-hotel-dialog{padding:0}.sv-hotel-dialog-box{max-height:100dvh;border-radius:0;width:100%}.sv-hotel-gallery-stage{height:60dvh}.sv-hotel-dialog-box h2{font-size:18px}.sv-rail-card .sv-rail-price{display:flex!important;align-items:flex-start!important;flex-direction:column}.sv-rail-card .sv-rail-price button{width:100%}.sv-rail-card .sv-rail-body{padding:12px}.sv-rail-section{padding:0 12px}.sv-rail-card{min-width:0}}

.sv-rail-section .sv-rail-host{display:none}
.sv-rail-book:disabled,.sv-hotel-details-book:disabled{opacity:.55;cursor:not-allowed}

/* ═══ 13.09.2026 — Иста рамка за сликата во СЕКОЈ ред (Андреј, точка 9:
   „razlicna golemina na sliki" — Villa Bisera квадратна, Gamboa Rio помала).
   Мерено на LAB пред поправката (Касандра · 27.09–04.10):
     1400×900  нивна слика 236×157 · наша 236×204 (Gr Apartments Sea View 236×225)
     390×844   нивна слика 356×200 · наша 356×210
   Причина (ред ≥560px од картичката): bookinglook.css ѝ дава на рамката
   `align-self: stretch` + `min-height: clamp(150…160)`, па рамката ја следи
   висината на ТЕЛОТО — а нашето тело е повисоко од нивното (име 44px +
   добавувач + растојание + соба + откажување + „Детали" 44px = ~204px).
   Причина (телефон): `.sv-rail-card .sv-rail-img{height:210px}` погоре.
   Сега: рамката има ФИКСНА висина по ИСТАТА формула како нивната (15,33cqi
   од списокот, 150–160px) и не се растегнува; телото е збиено со глувче
   (име и „Детали" без 44px минимум — на допир минимумот останува, правило
   22.04), за под сликата да нема празнина. На телефон: 200px како нивната.
   Специфичност (0,3,0) > (0,2,0) од bookinglook.css, кој е подоцна во редот. */
@container svlist (min-width: 560px) {
  .sv-hotel-card.sv-rail-card > .sv-rail-img {
    align-self: flex-start !important;
    height: clamp(150px, calc(15.33cqi - 4.6px), 160px) !important;
    min-height: 0 !important;
    max-height: 160px !important;
  }
  .sv-hotel-card.sv-rail-card > .sv-rail-body { min-height: 0 !important; }
  /* Десната колона (цена · напомена · „Побарај понуда") е `flex-direction:
     column` од bookinglook.css, а нашето `.sv-rail-price{flex-wrap:wrap}` во
     колона значи: што не собира по висина оди во ВТОРА КОЛОНА — десно, вон
     картичката (мерено 13.09 по збивањето: 303 од 387 копчиња на x=1049 во
     картичка широка 1056, исечени со overflow:hidden). Колоната не се крши
     (nowrap), а напомената е на 12px во два реда наместо три, за целата
     колона (18+30+31+44+3×8 ≈ 147px) да собере во телото од 150+. */
  .sv-hotel-card.sv-rail-card .sv-rail-price { flex-wrap: nowrap !important; }
  .sv-hotel-card.sv-rail-card .sv-rail-price small { font-size: 12px; line-height: 1.3; }
}
@media (hover: hover) and (pointer: fine) {
  @container svlist (min-width: 560px) {
    .sv-hotel-card.sv-rail-card button.sv-rail-name { min-height: 0; line-height: 1.3; }
    .sv-hotel-card.sv-rail-card .sv-rail-details { min-height: 30px; padding: 2px 0; }
    .sv-hotel-card.sv-rail-card .sv-rail-meta,
    .sv-hotel-card.sv-rail-card .sv-rail-room,
    .sv-hotel-card.sv-rail-card .sv-rail-supplier,
    .sv-hotel-card.sv-rail-card .sv-rail-request { margin-top: 2px; }
  }
}
@container svlist (max-width: 559.98px) {
  .sv-hotel-card.sv-rail-card > .sv-rail-img {
    height: 200px !important;
    min-height: 200px !important;
    max-height: 200px !important;
  }
}

/* Supplier status remains distinct from booking capability. */
.sv-rail-request[data-sv-availability]{font-weight:600;line-height:1.45;}
.sv-rail-request[data-sv-availability=AVL]{color:#166534;}
.sv-rail-request[data-sv-availability=RQ]{color:#c25700;}
.sv-rail-request[data-sv-availability=STOP]{color:#b42318;}
.sv-rail-request[data-sv-availability=UNKNOWN]{color:#64748b;}
.sv-rail-book:disabled{background:#e5e7eb!important;color:#6b7280!important;box-shadow:none!important;cursor:not-allowed;}

/* Compact summaries use the established native row. Full supplier, price,
   cancellation and local-tax details remain in the accessible detail dialog. */
/* Short description + "Детален опис" (28.09.2026, battle 20260928-03 V4).
   Phone first: two clamped lines, then the button on its own 44px row.
   A card row (>=560px of the list): the button sits beside the last line,
   so a described card grows by at most the two text lines. */
.sv-hotel-card.sv-rail-card .sv-rail-desc { margin: 6px 0 0; min-width: 0; }
.sv-hotel-card.sv-rail-card .sv-rail-description {
  margin: 0;
  color: var(--brand-text-muted, #64748b);
  font-size: 14px;
  line-height: 1.45;
  overflow: hidden;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.sv-hotel-card.sv-rail-card button.sv-rail-more {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0;
  padding: 0 2px;
  background: none;
  border: 0;
  border-radius: 6px;
  box-shadow: none;
  color: #b35000;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
  cursor: pointer;
}
.sv-hotel-card.sv-rail-card button.sv-rail-more:hover { color: #8a3d00; }
@container svlist (min-width: 560px) {
  .sv-hotel-card.sv-rail-card .sv-rail-desc { display: flex; align-items: flex-end; gap: 12px; }
  /* Text stays 14px at every width (V4 verifier 29.09: 13px on tablet/desktop). */
  .sv-hotel-card.sv-rail-card .sv-rail-description { flex: 1 1 auto; min-width: 0; }
  .sv-hotel-card.sv-rail-card button.sv-rail-more { flex: 0 0 auto; }
}
@media (hover: hover) and (pointer: fine) {
  @container svlist (min-width: 560px) {
    /* 44px hit box, drawn where the 21px one was: the negative margin keeps the row
       and the card height unchanged (measured 1024/1280/1440, 29.09); z-index lets its
       lower edge win over the availability line it overlaps. */
    .sv-hotel-card.sv-rail-card button.sv-rail-more { position: relative; z-index: 1; margin: -12px 0; }
  }
}
.sv-hotel-details-desc { margin: 16px 0 0; scroll-margin-top: 76px; }
.sv-hotel-details-desc h3 { margin: 0 0 8px; font-size: 18px; line-height: 1.3; }
.sv-hotel-details-desc h3:focus { outline: none; }
.sv-hotel-details-desc h3:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
.sv-hotel-details-desc-text p { margin: 0 0 10px; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.sv-hotel-details-desc-text h4 { margin: 14px 0 4px; font-size: 15px; line-height: 1.4; font-weight: 700; }
.sv-hotel-details-desc-lang { margin: 4px 0 0; color: #64748b; font-size: 14px; line-height: 1.45; }
.sv-hotel-card.sv-rail-card .sv-rail-room,
.sv-hotel-card.sv-rail-card .sv-rail-meta { overflow-wrap: anywhere; }
.sv-hotel-card.sv-rail-card .sv-rail-head { flex-wrap: wrap; min-width: 0; }
.sv-hotel-card.sv-rail-card button.sv-rail-name {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.sv-hotel-card.sv-rail-card .sv-rail-open-details {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
  min-height: 44px;
}
.sv-hotel-details-price { margin-top: 16px; font-size: 22px; font-weight: 800; }
.sv-hotel-details-process { margin: 16px 0 12px; color: #64748b; font-size: 14px; line-height: 1.5; }
@container svlist (min-width: 560px) {
  .sv-hotel-card.sv-rail-card > .sv-rail-body {
    min-height: clamp(150px, calc(15.33cqi - 4.6px), 160px) !important;
  }
  .sv-hotel-card.sv-rail-card .sv-rail-price { margin-top: 0; }
  .sv-hotel-card.sv-rail-card .sv-rail-request { margin-top: 6px; font-size: 13px; }
}
@container svlist (max-width: 559.98px) {
  .sv-hotel-card.sv-rail-card > .sv-rail-body { min-width: 0; }
  .sv-hotel-card.sv-rail-card .sv-rail-name { min-height: 44px; }
  .sv-hotel-card.sv-rail-card .sv-rail-price { gap: 8px; }
}
