/* Savana overlay врз whitelabel SPA билдот (Никола/Александар).
   Живее НАДВОР од /var/www/whitelabel-nas за да преживее нивен ребилд.
   Се инјектира преку nginx sub_filter во index.html.
   Врати назад: тргни ги sub_filter редовите во sites-available/whitelabel-*.
   Направено 19.08.2026 по барање на Андреј. */

/* ── 1. Логото: текстот беше #1a1a2e (темно сино), бараше црн ───────── */
:root {
  --brand-text: #0a0a0a;
}

/* ── 2. Ховерот за телефон и мејл — беше 0,35s без задоцнување, ────────
      се отвораше на секое случајно поминување на глувчето.
      Сега: 0,18s задоцнување пред да тргне, 0,7s отворање.
      Затворањето останува брзо (delay 0) — само отворањето е бавно. */
.contact-reveal {
  transition: max-width .32s cubic-bezier(.4,0,.2,1) 0s,
              opacity   .22s ease 0s,
              margin-left .32s cubic-bezier(.4,0,.2,1) 0s !important;
}
a:hover > .contact-reveal,
a:focus-visible > .contact-reveal {
  transition: max-width .70s cubic-bezier(.22,.61,.36,1) .18s,
              opacity   .55s ease .18s,
              margin-left .70s cubic-bezier(.22,.61,.36,1) .18s !important;
}

/* ── 3. Viber и WhatsApp — истиот образец како телефонот и мејлот ───── */
.sv-contact-link {
  display: inline-flex;
  align-items: center;
  color: var(--brand-accent);
  text-decoration: none;
  /* тап-таргет ≥44px на телефон, без да ја помести лентата */
  min-height: 44px;
  min-width: 24px;
  justify-content: center;
}
.sv-contact-link svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  transition: transform .2s ease, color .2s ease;
}
.sv-contact-link:hover svg { color: var(--brand-accent-dark); transform: translateY(-1px); }
.sv-contact-link .contact-reveal {
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  white-space: nowrap;
  font-size: .8rem;
  color: var(--brand-text-secondary);
  margin-left: 0;
}
.sv-contact-link:hover .contact-reveal,
.sv-contact-link:focus-visible .contact-reveal {
  max-width: 240px;
  opacity: 1;
  margin-left: 6.4px;
}
.sv-sep {
  width: 1px;
  height: 16px;
  background: var(--brand-border);
  flex: 0 0 auto;
}

/* ── 4. Мобилно: без хоризонтален скрол ──────────────────────────────────
      Мерено 19.08.2026 на 390px: без overlay 390=390, со него 444 — двете
      нови икони и сепаратори го туркаа копчето „Savana Travel" вон екранот.
      На тесен екран редот со контакти се вие наместо да излегува. */
@media (max-width: 640px) {
  /* родителот на контактите — го фаќаме преку нашиот линк, без да зависиме
     од емотион класа што се менува на секој нивни билд */
  div:has(> .sv-contact-link) {
    flex-wrap: wrap;
    row-gap: 4px;
    justify-content: center !important;
  }
  .sv-sep { display: none; }          /* нашите сепаратори — вишок на тесно */
  .sv-contact-link { min-width: 22px; }
}

/* ── 5. Логото: емотион ги пишува --brand-* ПОСЛЕ нашиот <link>, па
      `:root{--brand-text}` губи. Насловот се бои директно. ─────────────── */
.sv-logo-text { color: #0a0a0a !important; }

/* ── 6. Логото: полното лого со ЦРНИ натписи (20.08.2026) ─────────────
      Досегашното лого (file 17243) ги имаше „TOURIST ENTERPRISES" и
      „COMPLETE TOURIST SERVICES" во БЕЛО — на белиот хедер тие се
      невидливи (мерено: 660 пиксели во боја 250,251,253). Заменето со
      варијантата со црн натпис, транспарентна позадина.

      Билдот го црта логото на height 36 со padding-top 4 → вистински 32px,
      а на 32px трите реда на логото се мрлја. Затоа висината оди на 60
      (44 на телефон). Текстот „Savana Travel" покрај логото се крие —
      логото веќе го носи името, а со него лентата се прелеваше во два
      реда (мерено на 1280px: лента 68 → 124).

      Мерено 20.08 на живо: 1280px лента 84, 390px лента 219, нула
      хоризонтален скрол на двете.

      Врати го текстот покрај логото: тргни го `p.sv-logo-text{display:none}`.
      Врати го белото лого:
        cp /root/lfsm-test/bot-backend/file_uploads/whitelabel/tenant-1/17243.bak-white-text-20260820 \
           /root/lfsm-test/bot-backend/file_uploads/whitelabel/tenant-1/17243          */
div:has(> p.sv-logo-text) > img,
img[alt="Savana Travel"] {
  height: 60px !important;
  max-width: 300px !important;
  padding-top: 0 !important;
}
p.sv-logo-text { display: none !important; }

@media (max-width: 640px) {
  div:has(> p.sv-logo-text) > img,
  img[alt="Savana Travel"] { height: 44px !important; }
}

/* ── ✕ во полињата на лентата за пребарување (21.08.2026) ─────────────────
   Тап-таргетот е 44×44px по правилото за телефон, а иконата внатре е 16px —
   допирот е голем, ликот е ситен. Полето добива десен отстап само кога
   копчето навистина стои, за да не остане дупка во празно поле.
   Мерено на 390px: текстот се стеснува од 242px на 214px, без прелом. */
.MuiInputBase-root.sv-has-clear .MuiInputBase-input {
  padding-right: 34px;
}
button.sv-clear {
  position: absolute;
  right: 26px;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
  border-radius: 50%;
  z-index: 2;
}
button.sv-clear:hover,
button.sv-clear:focus-visible {
  color: #111827;
  background: rgba(0, 0, 0, 0.06);
}
button.sv-clear:focus-visible {
  outline: 2px solid #f97316;
  outline-offset: -2px;
}

/* ── Ред по хотел: преместено во `bookinglook.css` (28.08.2026) ────────────
   Дотогаш редот живееше тука, зад `@media (min-width: 900px)`. Мерено на
   Kefalonia: на 935px беше ред, на 760px паѓаше во вертикална картичка — а
   прозорецот на Андреј со Windows-скалирање е точно под прагот, па тој ја
   гледаше старата картичка и рече „Booking com izgled".

   Прагот сега е по ширина на КАРТИЧКАТА (`@container`), не по екран, и целиот
   ред е во еден фајл: `bookinglook.css`. Тука не се враќа копија — две
   дефиниции за ист ред утре се разидуваат.

   Оваа линија останува зашто билдот дава решетка, не еден столб:            */
.sv-hotel-grid { grid-template-columns: 1fr !important; }

/* ── Препорачани картички наместо фиксните слики (26.08.2026) ──────────────
   Андреј: „slikite stojat fiksno … treba da se trgnat ili da se smenat
   avtomatski so preporacani karticki, spored popustite i destinacijata na
   prebaruvanje primer duri i vo radius".

   Плочките ја задржуваат истата големина и облик како тенантските (за да не
   скока распоредот при замена), а добиваат лента со попуст, цена-од и
   растојание. Растојание нема кога го немаме — тогаш редот едноставно
   отсуствува, никогаш не се пишува „0 км".                                */
.sv-rec-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 24px 0 10px;
  flex-wrap: wrap;
}
.sv-rec-title {
  font-weight: 800;
  font-size: 1.15rem;
  color: var(--brand-text, #1a1a2e);
}
.sv-rec-note {
  font-size: 0.78rem;
  color: var(--brand-text-muted, #6b7280);
}
a.sv-rec-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 200px;
  padding: 16px;
  border-radius: 20px;
  overflow: hidden;
  text-decoration: none;
  background-color: rgba(var(--brand-accent-rgb, 249, 115, 22), 0.08);
  background-size: cover;
  background-position: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
a.sv-rec-card::before {
  content: "";
  position: absolute;
  inset: 0;
  /* Посилен превез од тенантските плочки: тие носат само име, нашите носат
     име, растојание, хотел и цена — четири реда врз фотографија на море
     не се читаат со 0.3 на средина (мерено врз Ситонија). */
  background: linear-gradient(to top, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.62) 42%, rgba(0, 0, 0, 0.12) 100%);
}
/* Подигањето само за глувче (11.09.2026): на допир hover се „залепува" по
   тапот и картичката би останала кревната.
   Hover-от го носи СЛОТОТ (`.sv-rec-slot` од overlay.js), а се крева
   картичката во него. Кога hover го носеше самата картичка, покажувач во
   нејзините долни 4px ја кренуваше, таа бегаше од него и паѓаше назад —
   14 мрдања од 1px = 7 влегувања / 7 излегувања (мерено 11.09). Слотот
   мирува, па hover не се губи. `a.sv-rec-card:hover` останува за разметка
   без слот (LAB има свој overlay.js). */
.sv-rec-slot { cursor: pointer; }   /* кликот го препраќа overlay.js */
@media (hover: hover) and (pointer: fine) {
  a.sv-rec-card:hover,
  .sv-rec-slot:hover > a.sv-rec-card {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1), 0 16px 40px rgba(0, 0, 0, 0.06);
  }
}
/* ── Фотографијата зумира во картичката (11.09.2026) ──────────────────────
   Андреј за овој hover: „ova hover mi se svigja … mora moderno da bide i
   ubavo". Подигањето горе останува какво што е; додадено е бавно зумирање
   на сликата ВО рамката. Сликата е инлајн `background-image` на самиот
   `<a>`, па копија ја носи `::after` преку `background: inherit` и само таа
   се скалира. `isolation` + `z-index:-1` ја држат копијата под превезот
   (`::before`) и под текстот; аглите ги сече `overflow:hidden`. */
a.sv-rec-card { isolation: isolate; }
a.sv-rec-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: inherit;
  transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@media (hover: hover) and (pointer: fine) {
  a.sv-rec-card:hover::after,
  .sv-rec-slot:hover > a.sv-rec-card::after { transform: scale(1.07); }
}
@media (prefers-reduced-motion: reduce) {
  a.sv-rec-card, a.sv-rec-card::after { transition: none; }
  a.sv-rec-card:hover, a.sv-rec-card:hover::after,
  .sv-rec-slot:hover > a.sv-rec-card,
  .sv-rec-slot:hover > a.sv-rec-card::after { transform: none; }
}
/* Препорачана без фотографија — истата илустрација како во листата
   (`sv-noimg.svg`, bookinglook.css), наместо празна обоена плочка. */
a.sv-rec-card:not([style*="background-image"]) { background-image: url("sv-noimg.svg"); }
.sv-rec-card > * { position: relative; text-shadow: 0 1px 2px rgba(0,0,0,0.45); }
.sv-rec-name { color: #fff; font-weight: 800; font-size: 1.15rem; line-height: 1.2; }
.sv-rec-sub { color: rgba(255, 255, 255, 0.88); font-size: 0.78rem; margin-top: 3px; }
.sv-rec-price { color: #fff; font-weight: 800; font-size: 1rem; margin-top: 8px; }
.sv-rec-price span { font-weight: 500; font-size: 0.75rem; opacity: 0.85; }
.sv-rec-badges {
  /* Во токот, не absolute: на тесна картичка (отворена мапа → 3 колони во
     стисната колона) апсолутниот ред „НАШ ОБЈЕКТ" го газеше текстот под себе
     (скриншот 30.08, битка 20260830-07). `margin-bottom:auto` ги држи
     беџовите горе, а текстот на дното — без преклоп на која било ширина.
     `position:relative` доаѓа од `.sv-rec-card > *` и мора да остане за да
     се цртаат НАД ::before превезот. */
  margin-bottom: auto;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.sv-rec-badge {
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  padding: 5px 9px;
  border-radius: 999px;
  background: #e11d48;
  color: #fff;
}
.sv-rec-badge.sv-own { background: var(--brand-accent, #f97316); }
.sv-rec-badge.sv-here { background: #0f766e; }
.sv-rec-skeleton {
  min-height: 200px;
  border-radius: 20px;
  background: linear-gradient(90deg, rgba(0,0,0,0.05) 25%, rgba(0,0,0,0.09) 37%, rgba(0,0,0,0.05) 63%);
  background-size: 400% 100%;
  animation: sv-shimmer 1.3s ease infinite;
}
@keyframes sv-shimmer { 0% { background-position: 100% 0 } 100% { background-position: 0 0 } }

@media (max-width: 640px) {
  a.sv-rec-card { min-height: 168px; }
  .sv-rec-name { font-size: 1.05rem; }
}

/* ── Една лента што тече (30.08.2026) ──────────────────────────────────────
   Андреј: „vo 2 reda e too much treba da animira ne radi reda". Наместо
   мрежа во редови — еден ред што сам се лизга (marquee). JS-от ја удвојува
   содржината во две идентични `.sv-rec-half`; поместување за −50% од
   `.sv-rec-track` е точно една половина, па јамката нема шев. Размакот меѓу
   половините го дава padding-right НА половината — gap меѓу нив би го
   растурил порамнувањето.
   Пауза на hover/фокус/допир: подвижна цел не се кликнува. */
/* Простор за подигањето (11.09.2026): `overflow:hidden` ја сечеше
   картичката кревната 4px — горните заоблени агли излегуваа рамни, а сенката
   одсечена (мерено: врв на картичката y=346,4, врв на лентата 350,4).
   Подлогата го дава просторот, негативната маргина го враќа распоредот. */
.sv-rec-strip {
  --sv-rec-w: min(78vw, 300px);
  overflow: hidden;
  padding: 12px 0 28px;
  margin: -12px 0 -28px;
}
.sv-rec-track {
  display: flex;
  width: max-content;
  animation: sv-rec-flow var(--sv-rec-dur, 54s) linear infinite;
  will-change: transform;
}
.sv-rec-track.sv-rec-static { animation: none; }
.sv-rec-half { display: flex; gap: 16px; padding-right: 16px; }
/* `width` покрај `flex-basis` (11.09.2026): во Safari и Firefox половината
   беше потесна од содржината (975 наспроти 1068px на 1440), па шевот на
   јамката легнуваше врз картичка — чекори 364,364,247,364. Со ширина
   половината е точно колку содржината во сите три мотори. */
.sv-rec-half > * { flex: 0 0 var(--sv-rec-w); width: var(--sv-rec-w); }
@media (min-width: 900px) {
  .sv-rec-strip { --sv-rec-w: 340px; }
  .sv-rec-half { gap: 24px; padding-right: 24px; }
}
@keyframes sv-rec-flow { from { transform: translateX(0) } to { transform: translateX(-50%) } }
.sv-rec-strip:hover .sv-rec-track,
.sv-rec-strip:focus-within .sv-rec-track,
.sv-rec-strip:active .sv-rec-track { animation-play-state: paused; }
/* Кој побарал помалку движење — добива мирна лента со рачно лизгање. */
@media (prefers-reduced-motion: reduce) {
  .sv-rec-track { animation: none; }
  .sv-rec-strip { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .sv-rec-half[aria-hidden="true"] { display: none; }
}

/* Старата мрежа останува САМО за прозорецот на кешот (max-age 300): HTML со
   стар ?v= уште 5 минути може да го носи стариот JS што црта `.sv-rec-grid`.
   По 30.08.2026+5мин слободно се брише. */
.sv-rec-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 600px) { .sv-rec-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .sv-rec-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }

/* ── Структуриран опис во нивниот дијалог на хотел (12.09.2026) ──────────────
   Андреј: „koga ke se otvorat kartickite na hotelite da ima strukturiran opis ne
   haos" · „od telefon dobro izgleda a tekstot zalepen cudno". Нивниот дијалог
   (`.sv-details-dialog`, класа од закрпа) го црта описот со dangerouslySetInnerHTML,
   значи HTML од нашата рута излегува како што е: <p> параграфи, <h4.sv-opis-h>
   секции (Локација · Сместување · Исхрана · Плажа · За деца), <ul.sv-amen> чипови
   за содржините. Ништо не се вметнува во нивното дрво — само стил врз јазли што
   ТИЕ ги цртаат од нашиот текст. Mobile-first: чиповите се ознаки (не копчиња),
   0 хоризонтален скрол (flex-wrap). */
.sv-details-dialog p { margin: 0 0 .7em; }
.sv-details-dialog p:last-child { margin-bottom: 0; }
.sv-details-dialog .sv-opis-kratko { font-size: .95rem; line-height: 1.5; margin-bottom: .9em; }
.sv-details-dialog .sv-opis-kratko b { font-weight: 700; color: var(--brand-text, #111); }
.sv-details-dialog h4.sv-opis-h {
  margin: 1.1em 0 .35em; font-size: .78rem; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; color: var(--brand-accent, #f26a21);
}
.sv-details-dialog ul.sv-amen {
  list-style: none; margin: .2em 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 6px 8px;
}
.sv-details-dialog ul.sv-amen li {
  display: inline-flex; align-items: center; min-height: 28px; padding: 3px 11px;
  border: 1px solid var(--brand-border, #e3e6ea); border-radius: 999px;
  background: rgba(var(--brand-accent-rgb, 242,106,33), .06);
  font-size: .8rem; line-height: 1.3; color: var(--brand-text, #111); white-space: nowrap;
}
@media (min-width: 640px) {
  .sv-details-dialog .sv-opis-kratko { font-size: 1rem; }
  .sv-details-dialog ul.sv-amen li { font-size: .82rem; }
}
