/* ============================================================
   Fiora — дизайн-слой в стиле QR-меню (палитра гостевого меню)
   Подключается ПОСЛЕ style.css / hamburger-menu.css и
   перекрывает легаси-оформление (облака, прозрачные блоки).
   Тёмная тема: body.dark (ключ localStorage fp_dark, js/fp-theme.js)
   ============================================================ */

:root{
  /* Бренд */
  --brand:        #1a1a2e;
  --brand-hover:  #33334d;
  --accent:       #f59e0b;
  --accent-hover: #d97706;
  --accent-red:   #dc2626;
  --accent-red-h: #b91c1c;
  /* Светлая тема */
  --bg:        #f4f5f7;
  --surface:   #ffffff;
  --surface-2: #f9fafb;
  --text:      #1a1a2e;
  --text-2:    #666666;
  --text-3:    #888888;
  --muted:     #9ca3af;
  --border:    #e5e7eb;
  --border-2:  #d1d5db;
  --radius-card:  12px;
  --radius-modal: 20px;
  --radius-pill:  20px;
  --radius-btn:   8px;
  --shadow-card:  0 1px 4px rgba(0,0,0,.06);
  --shadow-pop:   0 4px 24px rgba(0,0,0,.18);
}
body.dark{
  --bg:        #0f172a;
  --surface:   #1e293b;
  --surface-2: #0f172a;
  --text:      #f1f5f9;
  --text-2:    #94a3b8;
  --text-3:    #64748b;
  --border:    #334155;
  --border-2:  #334155;
  --accent:    #d97706;
}

/* ========================================
   БАЗА
   ======================================== */

body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.45;
}

/* Легаси-фоны (небо/облака) — отключены */
#bgimg1,#bgimg2,#cloudscontainer{display:none !important;}

/* Заголовки: сброс старого правила 10pt */
h1,h2,h3,h4,h5,h6{
  font-family:inherit;
  font-weight:600;
  color:inherit;
}
h1{font-size:1.6rem;}
h2{font-size:1.35rem;}
h3{font-size:1.15rem;}
h4,h5,h6{font-size:1rem;}

#site_page{
  max-width:1200px;
  margin:0 auto;
  padding:0 0 32px;
}

/* Контентные обёртки — раньше были полупрозрачными рамками.
   max-width:none — у #bo в style.css стоит 1000px, из-за чего
   контент прижимался влево внутри страницы 1200px */
#cob{
  max-width:none;
  padding:16px;
  margin:12px 0 0;
  border-radius:var(--radius-card);
}
#co,#bo{
  max-width:none;
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
}
#bo img{border:0;}

/* ========================================
   ФОНОВОЕ ФОТО (#fp-bg, выводится из shapka.php)
   ======================================== */

#fp-bg{
  position:fixed;
  inset:0;
  z-index:-2;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
/* В тёмной теме фото притемняется, чтобы не спорило с текстом */
body.dark #fp-bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.62);
}
/* Контентная подложка поверх фото — полупрозрачная, с блюром */
body.fp-has-bg #cob{
  background:rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  border-radius:var(--radius-card);
}
body.dark.fp-has-bg #cob{background:rgba(15,23,42,.88);}

/* ========================================
   ШАПКА (.fp-header) — навика, sticky
   ======================================== */

#fp-sticky-wrap{
  position:sticky;
  top:0;
  z-index:1000;
  transition:transform .25s ease;
}
#fp-sticky-wrap.fp-hide{transform:translateY(-110%);}
body.admin-bar #fp-sticky-wrap{top:32px;}

.fp-header{
  background:var(--brand);
  color:#fff;
  border-radius:0 0 var(--radius-card) var(--radius-card);
}
body.dark .fp-header{border-bottom:1px solid var(--border);}

.fp-header-in{
  max-width:1200px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  position:relative;
}

.fp-logo{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:#fff;
  font-weight:700;
  font-size:18px;
  flex-shrink:0;
}
.fp-logo img{
  width:38px;
  height:38px;
  border-radius:10px;
  background:#fff;
  object-fit:contain;
  padding:2px;
  border:0;
}
.fp-logo span{letter-spacing:.3px;}

/* --- бренд-блок: расшифровка FIORA при наведении на лого --- */
.fp-logo-wrap{position:relative;flex-shrink:0;}
.fp-brand-pop{
  position:absolute;
  left:0;
  top:calc(100% + 12px);
  width:360px;
  max-width:84vw;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-pop);
  padding:14px 16px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
  z-index:1002;
}
/* «хвостик» к логотипу */
.fp-brand-pop::before{
  content:"";
  position:absolute;
  top:-6px;
  left:22px;
  width:10px;
  height:10px;
  background:var(--surface);
  border-left:1px solid var(--border);
  border-top:1px solid var(--border);
  transform:rotate(45deg);
}
.fp-logo-wrap:hover .fp-brand-pop,
.fp-logo-wrap:focus-within .fp-brand-pop{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.fp-brand-row{
  display:flex;
  gap:12px;
  align-items:baseline;
  padding:5px 0;
}
.fp-brand-row + .fp-brand-row{border-top:1px solid var(--border);}
.fp-brand-row b{
  color:var(--accent);
  font-size:19px;
  font-weight:800;
  width:18px;
  text-align:center;
  flex-shrink:0;
}
.fp-brand-row span{
  color:var(--text-2);
  font-size:13px;
  line-height:1.45;
}

/* --- навигация внутри шапки --- */
.fp-nav{flex:1;min-width:0;display:flex;align-items:center;}
.fp-nav nav.horizontal-menu-class{display:flex;align-items:center;width:100%;}

.fp-header .horizontal-menu{
  display:flex;
  gap:2px;
  margin:0;
  padding:0;
  overflow-x:auto;
  white-space:nowrap;
  scrollbar-width:none;
}
.fp-header .horizontal-menu::-webkit-scrollbar{display:none;}
.fp-header .horizontal-menu li{margin:0;}
.fp-header .horizontal-menu li a{
  color:rgba(255,255,255,.85);
  padding:8px 12px;
  border-radius:var(--radius-btn);
  font-size:14px;
  transition:background .15s,color .15s;
}
.fp-header .horizontal-menu li a:hover{
  color:#fff;
  background:rgba(255,255,255,.15);
}
/* Старый «выезжающий» голубой фон ссылок — отключён */
.fp-header .horizontal-menu li a::before{display:none !important;}

/* Подменю — карточка */
.fp-header .horizontal-menu li ul.sub-menu{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-pop);
  margin:6px 0 0;
  padding:6px;
  backdrop-filter:none;
}
.fp-header .horizontal-menu li ul.sub-menu li a{
  color:var(--text);
  border-radius:8px;
}
.fp-header .horizontal-menu li ul.sub-menu li a:hover{
  background:var(--surface-2);
  color:var(--text);
}

/* --- кнопки справа --- */
.fp-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
  flex-shrink:0;
}
.fp-hbtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.15);
  border:0;
  color:#fff;
  border-radius:var(--radius-btn);
  padding:7px 10px;
  font-size:16px;
  line-height:1;
  cursor:pointer;
  transition:background .15s;
}
.fp-hbtn:hover{background:rgba(255,255,255,.28);}

/* --- переключатель языка в шапке --- */
.fp-header .language-switcher{
  margin:0;
  display:inline-flex;
  align-items:center;
  cursor:pointer;
  position:relative;
  background:rgba(255,255,255,.15);
  border-radius:var(--radius-btn);
  padding:7px 10px;
  transition:background .15s;
}
.fp-header .language-switcher:hover{background:rgba(255,255,255,.28);}
.fp-header .current-language{display:flex;align-items:center;}
.fp-header .current-language-flag{
  width:24px;
  height:16px;
  border-radius:3px;
  object-fit:cover;
  display:block;
}
.fp-header .language-menu{
  position:absolute;
  right:0;
  left:auto;
  top:calc(100% + 10px);
  margin:0;
  width:150px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-pop);
  padding:6px;
  backdrop-filter:none;
}
.fp-header .language-menu ul{display:block;}
.fp-header .language-menu li{
  float:none;
  width:auto;
  padding:0;
  border-radius:8px;
}
.fp-header .language-menu li:hover{
  width:auto;
  padding:0;
  background:transparent;
  backdrop-filter:none;
}
.fp-header .language-menu li a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border-radius:8px;
  color:var(--text);
  text-decoration:none;
  font-size:14px;
}
.fp-header .language-menu li a:hover{background:var(--surface-2);}
.fp-header .language-menu li a img{border-radius:3px;}

/* --- гамбургер (инжектится фильтром в functions.php) --- */
.fp-header .hamburger{
  margin:0 8px 0 0;
  padding:9px 8px;
  background:rgba(255,255,255,.15);
  border-radius:var(--radius-btn);
}
.fp-header .hamburger .bar{background:#fff;}

/* ========================================
   ВЫПАДАЮЩАЯ ПАНЕЛЬ ВХОДА (#secondary)
   ======================================== */

#secondary{
  position:relative;
  max-width:1200px;
  margin:0 auto;
}
#bloki{
  position:absolute;
  right:16px;
  left:auto;
  top:6px;
  width:330px;
  max-width:calc(100vw - 32px);
  z-index:999;
  padding:0;
  float:none;
}
#boxTable{
  width:auto;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-pop);
  overflow:hidden;
}
/* png-рамки старых блоков отключены */
.blocks,.block-top,.block-bg,.block-bottom,.block-bottom-end{
  background:none !important;
  width:auto;
  height:auto;
}
.block-top{padding:14px 16px 0;}
.boxTitle{
  padding:0;
  color:var(--text);
  font-size:15px;
  font-weight:600;
  font-family:inherit;
}
#boxContent{padding:4px 6px 6px;text-align:left;}
.block-bottom-end{height:6px;}

#custom-login-form input[type="text"],
#custom-login-form input[type="password"]{
  background:var(--surface-2);
  color:var(--text);
  border-color:var(--border-2);
}
#custom-login-form label{color:var(--text-2);}
#custom-login-form input[type="submit"]{
  background:var(--accent);
  color:#1a1a2e;
}
#custom-login-form input[type="submit"]:hover{background:var(--accent-hover);}
.lost-password a{color:var(--accent-hover);}

/* ========================================
   ФОРМЫ И КНОПКИ (глобально)
   ======================================== */

select,
textarea,
input[type="text"],
input[type="search"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"]{
  background-color:var(--surface);
  color:var(--text);
  border-color:var(--border-2);
}
.form-control,.form-select,.custom-select{
  background-color:var(--surface) !important;
  color:var(--text) !important;
  border-color:var(--border-2) !important;
  border-radius:var(--radius-btn) !important;
}
body.dark .form-select,body.dark select{
  /* стрелка селекта в тёмной теме */
  color-scheme:dark;
}

/* Bootstrap-кнопки → бренд */
.btn-primary{
  background-color:var(--brand) !important;
  border-color:var(--brand) !important;
  color:#fff !important;
}
.btn-primary:hover,.btn-primary:focus{
  background-color:var(--brand-hover) !important;
  border-color:var(--brand-hover) !important;
}
body.dark .btn-primary{
  background-color:#2563eb !important;
  border-color:#2563eb !important;
}
body.dark .btn-primary:hover{
  background-color:#3b82f6 !important;
  border-color:#3b82f6 !important;
}

/* ========================================
   КАРТОЧКИ И КОНТЕНТ
   ======================================== */

.geodir-post .card,
.col.mb-4 .card{
  background:var(--surface);
  border:1px solid var(--border);
  box-shadow:var(--shadow-card);
}
.geodir-post .card-body{background:var(--surface);}
.geodir-post .card-body .geodir-post-title h3 a{color:var(--text) !important;}
.geodir-post .card-body .geodir-post-title h3 a:hover{color:var(--accent-hover) !important;}
.geodir-post .card:hover .card-footer{background:var(--surface);}
.geodir-post .gd-expand-bottom{background:var(--surface);}
body.dark .geodir-post .gd-expand-bottom{background:rgba(30,41,59,.97);}
.geodir-post .gd-expand-bottom .post_content{color:var(--text-2);}
.geodir-post .gd-expand-bottom .geodir_post_meta{color:var(--text-2);}
.geodir-post .gd-expand-bottom .geodir_post_meta_title{color:var(--text);}

/* Общие bootstrap-поверхности в тёмной теме */
body.dark .card,
body.dark .modal-content,
body.dark .dropdown-menu,
body.dark .list-group-item{
  background-color:var(--surface);
  color:var(--text);
  border-color:var(--border);
}
body.dark .bg-white{background-color:var(--surface) !important;}
body.dark .text-dark{color:var(--text) !important;}

/* Новости */
.news-item{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);
}
.news-meta{color:var(--text-3);}
.read-more{color:var(--accent-hover);}

/* Старая форма логина / автокомплит / sticky-комментарии */
#login-form,
.ui-autocomplete,
#user-login-box{
  background-color:var(--surface);
  border-color:var(--border);
  color:var(--text);
}
.comment-form.sticky{
  background:var(--surface);
  border-top:1px solid var(--border);
}

/* Модалка выбора языка — тёмная тема */
body.dark .lang-suggest-content{background:rgba(30,41,59,.97);}
body.dark .lang-suggest-title{color:var(--text);}
body.dark .lang-suggest-hint{color:var(--text-2);}
body.dark .lang-btn-secondary{background:#0f172a;color:var(--text-2);}
body.dark .lang-btn-secondary:hover{background:#1e293b;}

/* Кнопка «Наверх» */
#top-link a{
  background:var(--brand);
  border-radius:var(--radius-btn);
}
#top-link:hover a{background:var(--brand-hover);}

/* ========================================
   КНОПКА ВХОДА В ШАПКЕ
   hamburger-menu.css задаёт #menu-left картинку 80×69 —
   перебиваем селектором id+класс
   ======================================== */

#menu-left.fp-hbtn,
#menu-left.fp-hbtn.active{
  width:auto;
  height:auto;
  float:none;
  background:rgba(255,255,255,.15);
}
#menu-left.fp-hbtn:hover{background:rgba(255,255,255,.28);}

/* ========================================
   ВИДЖЕТЫ БРОНИРОВАНИЯ (плагин bookings)
   Светлая: как есть. Тёмная: панели на инлайн-стилях
   перекрываем атрибутными селекторами (как в QR-меню)
   ======================================== */

/* Панели «Выберите даты», «Комната N» и прочие светлые инлайн-фоны */
body.dark .calendar-container[style],
body.dark .per-room-card[style],
body.dark [style*="background: #f8f9fa"],
body.dark [style*="background:#f8f9fa"],
body.dark [style*="background: #f9f9f9"],
body.dark [style*="background:#f9f9f9"],
body.dark [style*="background: #fff3cd"],
body.dark [style*="background:#fff3cd"],
body.dark [style*="background-color: #f8f9fa"],
body.dark [style*="background-color:#f8f9fa"]{
  background:var(--surface) !important;
  border-color:var(--border) !important;
}
/* Белые инлайн-фоны (инпут дат и т.п.) — точное совпадение с «;»,
   чтобы не зацепить #fff3cd */
body.dark [style*="background: #fff;"],
body.dark [style*="background:#fff;"],
body.dark [style*="background: white"],
body.dark [style*="background:white"]{
  background:var(--surface-2) !important;
  border-color:var(--border-2) !important;
  color:var(--text) !important;
}
/* Тёмные инлайн-цвета текста становятся светлыми */
body.dark [style*="color: #333"],
body.dark [style*="color:#333"]{color:var(--text) !important;}
body.dark [style*="color: #555"],
body.dark [style*="color:#555"],
body.dark [style*="color: #666"],
body.dark [style*="color:#666"]{color:var(--text-2) !important;}

/* Таблица номеров */
.hotel-room-table th{
  background:var(--surface-2);
  color:var(--text);
}
body.dark .hotel-room-table th,
body.dark .hotel-room-table td{
  background:var(--surface);
  color:var(--text);
  border-color:var(--border) !important;
}
body.dark .main-table,
body.dark .main-table th,
body.dark .main-table td{border-color:var(--border) !important;}

/* ========================================
   ПОДВАЛ (#fp-footer)
   ======================================== */

#fp-footer{
  background:var(--brand);
  color:#cbd5e1;
  margin:32px 0 0;
  border-radius:var(--radius-card);
}
.fp-footer-in{
  max-width:1200px;
  margin:0 auto;
  padding:24px 16px;
  text-align:center;
  font-size:13px;
  line-height:1.7;
}
.fp-footer-brand{
  font-weight:700;
  font-size:16px;
  color:#fff;
  margin-bottom:6px;
}
.fp-footer-sub{color:#94a3b8;font-size:12px;}
.fp-footer-meta{margin-top:8px;color:#94a3b8;}
#fp-footer a{
  color:var(--accent);
  text-decoration:none;
}
#fp-footer a:hover{color:var(--accent-hover);}

/* ========================================
   АДАПТИВНОСТЬ
   ======================================== */

@media screen and (max-width:768px){
  .fp-header-in{padding:8px 12px;gap:8px;}
  .fp-logo span{font-size:16px;}

  /* меню сворачивается под гамбургер */
  .fp-header .horizontal-menu{display:none;}
  .fp-header .horizontal-menu.open{
    display:flex;
    flex-direction:column;
    position:absolute;
    left:12px;
    right:12px;
    top:calc(100% + 8px);
    margin:0;
    padding:8px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-pop);
    width:auto;
    white-space:normal;
    z-index:1001;
    backdrop-filter:none;
  }
  .fp-header .horizontal-menu.open li{padding:0;}
  .fp-header .horizontal-menu.open li a{
    color:var(--text);
    padding:11px 12px;
    display:block;
  }
  .fp-header .horizontal-menu.open li a:hover{
    background:var(--surface-2);
    color:var(--text);
  }
  /* подменю на мобиле — в потоке */
  .fp-header .horizontal-menu.open li ul.sub-menu{
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    box-shadow:none;
    border:0;
    margin:0 0 0 12px;
    padding:0;
  }

  #cob{padding:10px;}
  #fp-footer{margin:24px 0 0;}
}

@media screen and (max-width:480px){
  .fp-logo span{display:none;}
}
