*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#020814;--panel:rgba(5,20,39,.78);--line:rgba(180,215,255,.18);--gold:#d6a24b;--gold2:#f2d08a;--white:#f7fbff;--muted:#aebcd0}
body{font-family:Arial,Helvetica,sans-serif;background:#020814;color:var(--white)}
a{text-decoration:none;color:inherit}
.header{position:fixed;top:0;left:0;width:100%;height:94px;padding:0 34px;display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:24px;background:rgba(2,8,20,.84);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.06);z-index:100}
.brand{display:flex;align-items:center;gap:14px;font-family:Georgia,'Times New Roman',serif;font-size:22px;line-height:1.04;letter-spacing:.01em}
.brand img{width:64px;height:64px;border-radius:50%;object-fit:cover}
nav{display:flex;justify-content:center;gap:30px;font-size:16px;font-weight:700}
nav a{padding:34px 0 12px;border-bottom:2px solid transparent;color:#f0f5ff}
nav a.active,nav a:hover{color:var(--gold2);border-color:var(--gold)}
.right-head{display:flex;align-items:center;gap:16px}
.icon{font-size:27px;color:#eef5ff}
.about{padding:12px 18px;border:1px solid rgba(214,162,75,.55);border-radius:10px;font-weight:800;color:#fff}
.weather{height:52px;min-width:190px;padding:8px 14px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(7,20,39,.82);display:grid;grid-template-columns:28px 50px 1fr;align-items:center;gap:8px}
.weather b{font-size:27px}.weather small{font-size:12px;color:#e5eefb;line-height:1.25}

.hero{
min-height:650px;
padding-top:94px;
background:
linear-gradient(90deg, rgba(2,8,20,.92) 0%, rgba(2,8,20,.68) 35%, rgba(2,8,20,.22) 100%),
linear-gradient(180deg, rgba(2,8,20,.04) 0%, #020814 100%),
url("images/hero.jpg") center/cover fixed;
}
.hero-content{max-width:1500px;margin:0 auto;padding:62px 34px 0}
.kicker{font-family:Georgia,'Times New Roman',serif;font-size:17px;color:#f0f3f8;margin-bottom:44px}
h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;text-transform:uppercase;font-size:clamp(54px,5.4vw,82px);line-height:.98;letter-spacing:-.045em;text-shadow:0 10px 36px rgba(0,0,0,.5)}
h1 strong{font-weight:500;color:var(--gold2)}
.lead{max-width:560px;margin-top:26px;font-size:21px;line-height:1.55;color:#edf4ff}
.actions{display:flex;gap:18px;margin-top:36px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 30px;border-radius:10px;font-weight:800;border:1px solid var(--line)}
.gold{background:linear-gradient(135deg,var(--gold2),#b9832b);color:#08111f;border:none}
.dark{background:rgba(3,12,24,.58);color:#fff}
.features{max-width:950px;margin-top:42px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:14px;overflow:hidden;background:rgba(5,20,39,.62);backdrop-filter:blur(12px)}
.features div{display:flex;align-items:center;gap:14px;padding:18px 22px;border-right:1px solid var(--line)}
.features div:last-child{border-right:0}.features b{font-size:34px;color:var(--gold2)}.features span{font-size:15px;line-height:1.35}

.main-grid{max-width:1500px;margin:-18px auto 0;padding:0 34px 40px;display:grid;grid-template-columns:2fr .9fr;gap:24px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,.24)}
.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-head h2{font-family:Georgia,'Times New Roman',serif;font-size:30px;font-weight:500}.section-head a{color:var(--gold2);font-weight:800}
.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.cards article{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(5,18,36,.72);position:relative}
.cards img{width:100%;height:150px;object-fit:cover;display:block;filter:brightness(.85) saturate(1.05)}
.cards h3{font-family:Georgia,'Times New Roman',serif;font-size:21px;font-weight:500;margin:16px 16px 8px}.cards p{font-size:15px;color:var(--muted);line-height:1.45;margin:0 16px 26px}.cards i{position:absolute;right:14px;bottom:14px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--gold2);font-style:normal}
.event{display:grid;grid-template-columns:70px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.event:last-child{border-bottom:0}.event time{border-radius:10px;background:rgba(214,162,75,.10);color:var(--gold2);text-align:center;padding:10px;font-weight:900;font-size:28px}.event small{display:block;font-size:12px;margin-top:5px}.event b{font-size:16px}.event p{color:var(--muted);margin-top:5px}
.stats{grid-column:1/2;display:grid;grid-template-columns:repeat(4,1fr);padding:0;overflow:hidden}.stats div{text-align:center;padding:24px;border-right:1px solid var(--line)}.stats div:last-child{border-right:0}.stats b{font-family:Georgia,'Times New Roman',serif;font-size:32px;font-weight:500}.stats span{display:block;color:var(--muted);margin-top:6px}
.city{background:linear-gradient(90deg,rgba(5,20,39,.94),rgba(5,20,39,.42)),url('images/lukoil.webp') right bottom/auto 100% no-repeat}.city h2{font-family:Georgia,'Times New Roman',serif;font-size:30px;font-weight:500}.city p{max-width:320px;line-height:1.7;color:#e5eefb;margin:16px 0 26px}
footer{max-width:1500px;margin:0 auto;padding:20px 34px 44px;display:flex;gap:40px;color:var(--muted)}
@media(max-width:1100px){.header{position:relative;height:auto;grid-template-columns:1fr;padding:18px}.right-head{flex-wrap:wrap}.hero{padding-top:0}.hero-content{padding:42px 18px}.features,.main-grid,.cards,.stats{grid-template-columns:1fr}.main-grid{margin:0;padding:0 18px 32px}.stats{grid-column:auto}.features div{border-right:0;border-bottom:1px solid var(--line)}h1{font-size:44px}footer{padding:20px 18px 40px;flex-wrap:wrap}}
.header{
display:flex;
align-items:center;
justify-content:space-between;
gap:24px;
flex-wrap:wrap;
}

.main-nav{
display:flex;
gap:28px;
flex-wrap:wrap;
}

.header-actions{
display:flex;
align-items:center;
gap:14px;
margin-left:auto;
}
/* ===== ЕДИНАЯ ШАПКА ДЛЯ ВСЕХ СТРАНИЦ ===== */

.header{
  width:100%;
  padding:24px 72px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  gap:34px;
  position:relative;
  z-index:50;
  background:rgba(8,12,22,.72);
  backdrop-filter:blur(14px);
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
  color:#fff;
  flex-shrink:0;
}

.brand img{
  width:54px;
  height:54px;
  object-fit:contain;
}

.brand span{
  font-size:26px;
  line-height:.9;
  font-weight:900;
}

.header nav{
  display:flex;
  align-items:center;
  gap:28px;
  margin-left:auto;
}

.header nav a{
  color:#fff;
  text-decoration:none;
  font-weight:800;
  position:relative;
}

.header nav a.active{
  color:#ffd85a;
}

.header nav a.active::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-10px;
  height:3px;
  border-radius:10px;
  background:#ffd85a;
}

.right-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-left:28px;
  flex-shrink:0;
}

.icon{
  color:#fff;
  font-size:18px;
}

.about{
  color:#fff;
  text-decoration:none;
  font-weight:800;
  padding:12px 18px;
  border:1px solid rgba(255,216,90,.75);
  border-radius:12px;
}

.weather{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:12px;
  background:rgba(55,72,110,.75);
  color:#fff;
}

.weather b{
  font-size:22px;
}

.weather small{
  font-size:11px;
  line-height:1.1;
}
/* ===== FIX: одинаковое меню во всех шапках ===== */

.header nav{
  display:flex !important;
  align-items:center !important;
  gap:32px !important;
  margin-left:auto !important;
}

.header nav a{
  font-size:16px !important;
  line-height:1 !important;
  font-weight:800 !important;
  color:#fff !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}

.header nav a.active{
  color:#ffd85a !important;
}

.header nav a.active::after{
  bottom:-12px !important;
}
/* ===== ЕДИНЫЙ ФОН САЙТА ===== */
html,
body{
  min-height:100%;
}

body{
  background:#020814;
  color:#fff;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  background:
linear-gradient(90deg, rgba(2,8,20,.72) 0%, rgba(2,8,20,.45) 40%, rgba(2,8,20,.18) 100%),
linear-gradient(180deg, rgba(2,8,20,.03) 0%, #020814 100%),
url("images/hero.jpg") center/cover fixed;;
  z-index:-1;
  pointer-events:none;
}
.page-shell{
max-width:1500px;
margin:0 auto;
padding:140px 34px 80px;
}

.page-shell h1{
font-size:56px;
line-height:1;
margin-bottom:18px;
font-family:Georgia,"Times New Roman",serif;
font-weight:700;
color:#fff;
}

.page-shell p{
font-size:18px;
line-height:1.7;
color:#d7e3f7;
}

.page-shell h2{
font-size:34px;
margin-bottom:18px;
font-family:Georgia,"Times New Roman",serif;
color:#f0d58a;
}
/* ===== ЕДИНЫЙ СТИЛЬ САЙТА ===== */

body{
font-family:Arial,Helvetica,sans-serif;
color:#f7fbff;
line-height:1.6;
}

h1,h2,h3{
font-family:Georgia,"Times New Roman",serif;
font-weight:700;
letter-spacing:-0.02em;
color:#fff;
margin-bottom:18px;
line-height:1.1;
}

h1{
font-size:56px;
}

h2{
font-size:34px;
}

h3{
font-size:24px;
}

p{
font-size:18px;
line-height:1.7;
color:#d7e3f7;
margin-bottom:18px;
}

section{
margin-bottom:42px;
}

.panel,
.route-card,
.place-card,
.event-card,
article{
border-radius:22px;
overflow:hidden;
}

.cards,
.route-list{
gap:24px;
}

.btn,
button,
a.btn{
font-weight:700;
letter-spacing:.02em;
border-radius:14px;
padding:14px 26px;
}

.page-shell,
.routes-page,
.events-page,
.places-page,
.announcements-page{
max-width:1500px;
margin:0 auto;
padding:140px 34px 80px;
box-sizing:border-box;
}
/* ===== ЖЕСТКОЕ ВЫРАВНИВАНИЕ ВСЕХ СТРАНИЦ ===== */

.routes-page,
.places-page,
.events-page,
.announcements-page,
.page-shell{
  max-width:1500px !important;
  margin:0 auto !important;
  padding:140px 34px 80px !important;
  box-sizing:border-box !important;
}

.routes-page h1,
.places-page h1,
.events-page h1,
.announcements-page h1{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:72px !important;
  line-height:.95 !important;
  font-weight:700 !important;
  letter-spacing:-.04em !important;
  margin:0 0 22px !important;
  color:#fff !important;
}

.routes-page p,
.places-page p,
.events-page p,
.announcements-page p{
  font-family:Arial,Helvetica,sans-serif !important;
  font-size:18px !important;
  line-height:1.65 !important;
  font-weight:600 !important;
  color:#dbe6f8 !important;
}

.routes-page h2,
.places-page h2,
.events-page h2,
.announcements-page h2{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:42px !important;
  line-height:1.05 !important;
  font-weight:700 !important;
  color:#fff !important;
}

.route-card,
.week-place,
.hero-event,
.card,
.event-card,
.admin-card{
  border-radius:24px !important;
}
/* ===== ОБЪЯВЛЕНИЯ ПОД ОБЩИЙ СТИЛЬ ===== */

.ann-page h1{
font-family:Georgia,"Times New Roman",serif !important;
font-size:72px !important;
font-weight:700 !important;
line-height:.95 !important;
letter-spacing:-.04em !important;
}

.ann-page p,
.ann-page input,
.ann-page select,
.ann-page button,
.ann-page .item,
.ann-page .price{
font-family:Arial,Helvetica,sans-serif !important;
}

.ann-page{
padding-top:140px !important;
}
#adsList{
display:grid;
gap:18px;
margin-top:18px;
}

/* ===== ANNOUNCEMENTS PAGE / CLEAN FINAL ===== */
body.modal-open{overflow:hidden}
.ann-page{min-height:100vh;padding:140px 28px 70px;background:linear-gradient(180deg,rgba(2,8,20,.80),#020814 48%),url('images/hero.jpg') center/cover fixed;color:#fff}
.ann-container{max-width:1450px;margin:0 auto}
.ann-badge{display:inline-flex;padding:10px 16px;border-radius:999px;background:rgba(214,162,75,.12);border:1px solid rgba(214,162,75,.28);color:#f2d08a;font-weight:800;margin-bottom:18px}
.ann-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:30px}
.ann-top h1{font-family:Georgia,'Times New Roman',serif;font-size:72px;line-height:.95;font-weight:700;letter-spacing:-.04em;margin:0 0 18px;color:#fff}
.ann-lead{max-width:760px;font-size:20px;line-height:1.6;color:#dbe6f8;margin:0}
.ann-add-btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 24px;border-radius:12px;background:linear-gradient(135deg,#f1d493,#b88631);color:#08111f;font-weight:900;text-decoration:none;white-space:nowrap}
.ann-search-panel{display:grid;grid-template-columns:1.3fr repeat(3,.7fr);gap:14px;margin-bottom:20px}
.ann-search-panel input,.ann-search-panel select{width:100%;padding:17px 18px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:rgba(8,20,42,.86);color:#fff;font-weight:800;outline:none}
.ann-search-panel input::placeholder{color:#9fb1c8}
.ann-categories{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:30px}
.ann-cat{cursor:pointer;padding:18px;border-radius:18px;background:rgba(8,20,42,.86);border:1px solid rgba(255,255,255,.08);color:#f2d08a;font-weight:900;text-align:center;transition:.22s}
.ann-cat:hover,.ann-cat.active{background:rgba(214,162,75,.18);border-color:rgba(214,162,75,.45);transform:translateY(-2px)}
.ann-board{display:grid;grid-template-columns:2fr 1fr;gap:24px}
.ann-list{display:grid;gap:18px}
.ann-item{position:relative;display:grid;grid-template-columns:118px 1fr 155px;gap:20px;align-items:center;padding:20px;border-radius:22px;background:rgba(8,20,42,.88);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(14px);transition:.28s;cursor:pointer;overflow:hidden}
.ann-item.hidden{display:none}
.ann-item:hover{transform:translateY(-5px);border-color:rgba(214,162,75,.32);box-shadow:0 18px 44px rgba(0,0,0,.28)}
.ann-item.vip{border-color:rgba(214,162,75,.42);background:linear-gradient(90deg,rgba(214,162,75,.10),rgba(8,20,42,.88) 30%)}
.vip-label{position:absolute;top:12px;right:18px;padding:5px 10px;border-radius:999px;background:rgba(214,162,75,.20);border:1px solid rgba(214,162,75,.38);color:#f2d08a;font-weight:950;font-size:11px;z-index:2}
.ann-thumb{width:108px;height:88px;border-radius:16px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.10);position:relative;overflow:hidden}
.ann-thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.35))}
.ann-item h2{font-family:Georgia,'Times New Roman',serif;font-size:30px;font-weight:500;line-height:1.12;margin:0 0 8px;color:#fff;overflow-wrap:anywhere;word-break:break-word}
.ann-item p{margin:0;color:#dbe6f8;line-height:1.5;overflow-wrap:anywhere;word-break:break-word}
.ann-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;color:#aebcd0;font-size:13px;font-weight:800}
.ann-price{text-align:right;min-width:145px;padding-top:22px;overflow-wrap:anywhere;word-break:break-word}
.ann-price b{display:block;font-size:23px;color:#f2d08a;margin-bottom:8px}.ann-price span{color:#aebcd0;font-size:14px}
.ann-side{background:rgba(8,20,42,.88);border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:26px;height:max-content;backdrop-filter:blur(14px)}
.ann-side h2{font-family:Georgia,'Times New Roman',serif;font-size:36px;font-weight:500;margin:0 0 18px;color:#fff}
.ann-side p{color:#dbe6f8;line-height:1.65;margin:0 0 22px}.ann-side-box{padding:18px;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);margin-bottom:14px}.ann-side-box b{display:block;color:#f2d08a;margin-bottom:6px}.ann-side-box span{color:#dbe6f8}
.ann-empty{display:none;padding:28px;border-radius:22px;background:rgba(8,20,42,.88);border:1px solid rgba(255,255,255,.08);color:#dbe6f8;font-weight:800}.ann-empty.show{display:block}
.ad-modal{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.72);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:24px}
.ad-modal.show{display:flex}
.ad-modal-box{position:relative;width:min(820px,96vw);max-height:92vh;overflow:hidden;border-radius:24px;background:linear-gradient(180deg,#101827 0%,#07111d 100%);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 90px rgba(0,0,0,.65);color:#fff}
.ad-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(15,23,42,.78);color:#fff;font-size:28px;line-height:1;cursor:pointer;z-index:20;display:flex;align-items:center;justify-content:center}.ad-close:hover{background:rgba(30,41,59,.96)}
.ad-modal-image{width:100%;height:330px;background:#111827 center/cover no-repeat}
.ad-modal-content{padding:26px 30px 28px;overflow-y:auto;max-height:calc(92vh - 330px)}
.ad-modal-category{display:inline-flex;width:fit-content;padding:9px 15px;margin-bottom:18px;border-radius:999px;background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;font-size:14px;font-weight:800}
.ad-modal-content h2{margin:0 0 12px;color:#fff;font-size:34px;line-height:1.08;font-weight:900;overflow-wrap:anywhere;word-break:break-word}
.ad-modal-content p{margin:0 0 24px;color:rgba(255,255,255,.78);font-size:18px;line-height:1.55;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.ad-modal-info{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:22px 0 26px}.ad-modal-info div{padding:0 18px;border-right:1px solid rgba(255,255,255,.13);min-width:0}.ad-modal-info div:first-child{padding-left:0}.ad-modal-info div:last-child{border-right:0}.ad-modal-info span{display:block;margin-bottom:7px;color:rgba(255,255,255,.58);font-size:14px}.ad-modal-info b{display:block;color:#fff;font-size:18px;font-weight:800;overflow-wrap:anywhere;word-break:break-word}.ad-modal-info div:first-child b{color:#ffd21f}
.ad-modal-phone{width:100%;min-height:58px;border:0;border-radius:12px;background:linear-gradient(180deg,#ffe066 0%,#ffc107 100%);color:#141414;font-size:20px;font-weight:900;cursor:pointer;box-shadow:0 10px 24px rgba(255,193,7,.22)}.ad-modal-phone:hover{filter:brightness(1.04)}
@media(max-width:1100px){.ann-board,.ann-search-panel{grid-template-columns:1fr}.ann-categories{grid-template-columns:1fr 1fr}.ann-item{grid-template-columns:1fr}.ann-price{text-align:left;padding-top:0}.ann-top{display:block}.ann-add-btn{margin-top:22px}.ann-top h1{font-size:52px}}
@media(max-width:768px){.ann-page{padding:38px 12px 48px}.ann-top h1{font-size:42px}.ann-categories{grid-template-columns:1fr}.ann-item{padding:16px}.ann-thumb{width:100%;height:190px}.ad-modal{padding:12px;align-items:flex-start;overflow-y:auto}.ad-modal-box{width:100%;max-height:none;border-radius:18px}.ad-modal-image{height:220px}.ad-modal-content{max-height:none;padding:22px 18px}.ad-modal-content h2{font-size:28px}.ad-modal-content p{font-size:16px}.ad-modal-info{grid-template-columns:1fr 1fr;gap:18px}.ad-modal-info div{padding:0;border-right:0}}


/* ===== FINAL ANN VIP PHONE SUPPORT ===== */
.ann-item.vip{
  border-color:rgba(255,213,74,.46)!important;
  box-shadow:0 0 0 1px rgba(255,213,74,.20),0 18px 46px rgba(255,193,7,.13),0 18px 44px rgba(0,0,0,.28)!important;
}
.ann-item .show-phone-btn{
  width:100%;
  min-height:52px;
  margin-top:16px;
  border-radius:14px;
  border:0;
  background:linear-gradient(180deg,#ffe066,#ffc107);
  color:#111827;
  font-weight:900;
  font-size:16px;
}



/* ===== DIRECT VIP PHONE FIX ===== */
.admin-vip-row{
  display:flex!important;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:12px;
  background:rgba(214,162,75,.12);
  border:1px solid rgba(214,162,75,.35);
  color:#fff;
  font-weight:900;
}
.admin-vip-row input{
  width:18px;
  height:18px;
}
.ann-item{
  position:relative;
}
.ann-item.vip{
  border-color:rgba(242,208,138,.75)!important;
  box-shadow:0 0 0 1px rgba(242,208,138,.28),0 18px 46px rgba(214,162,75,.16),0 18px 44px rgba(0,0,0,.28)!important;
}
.vip-badge{
  position:absolute;
  top:14px;
  left:14px;
  z-index:10;
  padding:7px 13px;
  border-radius:999px;
  background:linear-gradient(135deg,#f2d08a,#d6a24b);
  color:#08111f;
  font-size:12px;
  font-weight:950;
  box-shadow:0 10px 24px rgba(214,162,75,.32);
}
.ann-phone-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  padding:10px 18px;
  min-height:42px;
  margin-top:14px;
  border:0;
  border-radius:10px;
  background:linear-gradient(135deg,#f2d08a,#d6a24b);
  color:#08111f;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(214,162,75,.22);
}

.phone-revealed{
  background:#0f1724!important;
  color:#f2d08a!important;
  border:1px solid rgba(242,208,138,.35);
  letter-spacing:.2px;
  font-weight:950;
}



/* ===== ADMIN LAYOUT + EDIT FIX ===== */
.admin-grid{
  align-items:start;
}

.admin-form-fixed{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px!important;
}

.admin-form-fixed .admin-card-head,
.admin-form-fixed label:has(textarea),
.admin-form-fixed label:has(input[type="file"]),
.admin-form-fixed .admin-submit{
  grid-column:1 / -1;
}

.admin-form-fixed label{
  display:grid!important;
  gap:8px!important;
  min-width:0;
  color:#fff;
  font-weight:800;
}

.admin-form-fixed input,
.admin-form-fixed select,
.admin-form-fixed textarea{
  width:100%!important;
  min-height:48px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#fff;
  padding:10px 14px;
  outline:none;
}

.admin-form-fixed textarea{
  min-height:120px;
  resize:vertical;
}

.admin-form-fixed input::placeholder,
.admin-form-fixed textarea::placeholder{
  color:rgba(255,255,255,.55);
}

.admin-vip-row{
  display:flex!important;
  align-items:center;
  justify-content:flex-start;
  gap:12px!important;
  min-height:48px;
  padding:12px 14px!important;
  border-radius:12px;
  background:rgba(214,162,75,.12);
  border:1px solid rgba(214,162,75,.35);
  color:#fff;
  font-weight:900;
}

.admin-vip-row input{
  width:18px!important;
  min-height:18px!important;
  height:18px!important;
}

.admin-submit{
  justify-self:start;
  min-width:220px;
}

.admin-form-fixed.is-editing .admin-submit{
  background:linear-gradient(135deg,#f2d08a,#d6a24b);
  color:#08111f;
}

.saved-item{
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:14px;
  align-items:center;
  padding:14px;
  border-radius:16px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);
  margin-bottom:12px;
}

.saved-item.vip{
  border-color:rgba(242,208,138,.55);
  box-shadow:0 0 0 1px rgba(242,208,138,.15);
}

.saved-info h3{
  margin:0 0 6px;
  font-size:20px;
}

.saved-info p{
  margin:3px 0;
  color:#dbe6f8;
}

.saved-vip{
  color:#f2d08a;
}

.saved-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.saved-actions button{
  min-height:40px;
  padding:0 14px;
  border-radius:10px;
  border:0;
  font-weight:900;
  cursor:pointer;
}

.edit-ad{
  background:#f2d08a;
  color:#08111f;
}

.delete-ad{
  background:rgba(255,255,255,.10);
  color:#fff;
}

.admin-empty{
  color:#cfd6e6;
  margin:0;
}

@media(max-width:900px){
  .admin-form-fixed{
    grid-template-columns:1fr;
  }

  .saved-item{
    grid-template-columns:64px 1fr;
  }

  .saved-actions{
    grid-column:1 / -1;
  }
}



/* ===== CONTACT OWNER BLOCK ===== */
.contact-owner-box{
  margin-top:24px;
  padding:20px;
  border-radius:18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(12px);
}

.contact-owner-box h3{
  margin:0 0 18px;
  font-size:22px;
  color:#fff;
}

.contact-owner-item{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:16px;
}

.contact-owner-item:last-child{
  margin-bottom:0;
}

.contact-owner-item span{
  color:#9fb0cc;
  font-size:14px;
}

.contact-owner-item strong,
.contact-owner-item a{
  color:#fff;
  font-size:17px;
  font-weight:800;
  text-decoration:none;
}

.contact-owner-item a:hover{
  color:#f2d08a;
}


.contact-owner-box{
  grid-column:1 / -1;
}



/* ===== SUBMIT CONTACT POPUP ===== */
.submit-contact-open{
  overflow:hidden;
}

.submit-contact-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(8px);
}

.submit-contact-modal.show{
  display:flex;
}

.submit-contact-modal__box{
  position:relative;
  width:min(560px,96vw);
  padding:30px;
  border-radius:24px;
  background:linear-gradient(180deg,#101827 0%,#07111d 100%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 30px 90px rgba(0,0,0,.65);
  color:#fff;
}

.submit-contact-modal__close{
  position:absolute;
  top:14px;
  right:14px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.submit-contact-modal__badge{
  display:inline-flex;
  width:fit-content;
  padding:8px 14px;
  margin-bottom:16px;
  border-radius:999px;
  background:linear-gradient(135deg,#f2d08a,#d6a24b);
  color:#08111f;
  font-size:13px;
  font-weight:950;
}

.submit-contact-modal h2{
  margin:0 0 12px;
  font-size:34px;
  line-height:1.05;
  color:#fff;
}

.submit-contact-modal__text{
  margin:0 0 22px;
  color:#dbe6f8;
  font-size:17px;
  line-height:1.5;
}

.submit-contact-modal__info{
  display:grid;
  gap:14px;
  margin:22px 0;
}

.submit-contact-modal__info div{
  padding:15px;
  border-radius:16px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.08);
}

.submit-contact-modal__info span{
  display:block;
  margin-bottom:5px;
  color:#9fb0cc;
  font-size:13px;
  font-weight:800;
}

.submit-contact-modal__info strong,
.submit-contact-modal__info a{
  color:#fff;
  font-size:17px;
  font-weight:900;
  text-decoration:none;
  overflow-wrap:anywhere;
}

.submit-contact-modal__info a:hover{
  color:#f2d08a;
}

.submit-contact-modal__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:18px;
}

.submit-contact-modal__call,
.submit-contact-modal__mail{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 16px;
  border-radius:14px;
  font-weight:950;
  text-decoration:none;
}

.submit-contact-modal__call{
  background:linear-gradient(135deg,#f2d08a,#d6a24b);
  color:#08111f;
}

.submit-contact-modal__mail{
  background:rgba(255,255,255,.08);
  color:#fff;
  border:1px solid rgba(255,255,255,.10);
}

@media(max-width:620px){
  .submit-contact-modal__box{
    padding:24px 18px;
    border-radius:20px;
  }

  .submit-contact-modal h2{
    font-size:28px;
  }

  .submit-contact-modal__actions{
    grid-template-columns:1fr;
  }
}



/* ===== VISUAL STAGE UPGRADE ===== */

:root{
  --gold:#f2d08a;
  --gold-deep:#d6a24b;
}

.hero,
.hero-section,
.main-hero{
  position:relative;
  overflow:hidden;
  border-radius:32px;
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at top right, rgba(242,208,138,.16), transparent 34%),
    linear-gradient(180deg,#111827 0%,#08111f 100%);
  box-shadow:0 30px 80px rgba(0,0,0,.38);
}

.hero h1,
.hero-section h1,
.main-hero h1{
  line-height:1;
  letter-spacing:-1.5px;
  text-shadow:0 10px 34px rgba(0,0,0,.45);
}

.ann-item,
.card,
.listing-card,
.preview-card{
  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.ann-item:hover,
.card:hover,
.listing-card:hover,
.preview-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 50px rgba(0,0,0,.30);
}

.ann-item{
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.025));
  backdrop-filter:blur(12px);
}

.ann-thumb,
.saved-thumb{
  background-size:cover!important;
  background-position:center!important;
  transition:transform .5s ease;
}

.ann-item:hover .ann-thumb,
.saved-item:hover .saved-thumb{
  transform:scale(1.04);
}

.vip-badge{
  border:1px solid rgba(255,255,255,.30);
  backdrop-filter:blur(8px);
  animation:vipPulse 2.6s infinite;
}

@keyframes vipPulse{
  0%{box-shadow:0 0 0 0 rgba(242,208,138,.40);}
  70%{box-shadow:0 0 0 18px rgba(242,208,138,0);}
  100%{box-shadow:0 0 0 0 rgba(242,208,138,0);}
}

button,
.btn,
a.btn,
.admin-submit{
  transition:
    transform .2s ease,
    opacity .2s ease,
    box-shadow .2s ease;
}

button:hover,
.btn:hover,
a.btn:hover,
.admin-submit:hover{
  transform:translateY(-2px);
}

footer,
.footer{
  border-top:1px solid rgba(255,255,255,.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
}

@media(max-width:768px){

  .hero,
  .hero-section,
  .main-hero{
    border-radius:24px;
    padding:26px 18px!important;
  }

  .hero h1,
  .hero-section h1,
  .main-hero h1{
    font-size:38px!important;
    line-height:1.05;
  }

  .ann-item{
    border-radius:20px;
  }

  header,
  .header{
    backdrop-filter:blur(12px);
    background:rgba(7,17,29,.88);
  }
}



/* ===== POPUP CLOSE FIX ===== */
.submit-contact-modal__close{
  display:flex!important;
  align-items:center;
  justify-content:center;
  padding:0!important;
  font-size:34px!important;
  font-weight:300;
  line-height:1!important;
  text-align:center;
  transition:
    transform .2s ease,
    background .2s ease,
    opacity .2s ease;
}

.submit-contact-modal__close:hover{
  transform:rotate(90deg);
  background:rgba(242,208,138,.16);
  color:#f2d08a;
}

.submit-contact-modal__close:active{
  transform:scale(.92);
}



/* ===== HERO BACKGROUND RESTORE FINAL ===== */
.hero{
  background:
    linear-gradient(90deg, rgba(2,8,20,.92) 0%, rgba(2,8,20,.68) 35%, rgba(2,8,20,.22) 100%),
    linear-gradient(180deg, rgba(2,8,20,.04) 0%, #020814 100%),
    url("images/hero.jpg") center/cover fixed !important;
  border-radius:0 !important;
  box-shadow:none !important;
  border:0 !important;
}

.hero::before,
.hero-section::before,
.main-hero::before{
  display:none !important;
}



/* ===== ANNOUNCEMENTS BACKGROUND MATCH ===== */
.ann-page{
  background:
    linear-gradient(180deg, rgba(2,8,20,.22) 0%, rgba(2,8,20,.48) 100%),
    url("images/hero.jpg") center/cover fixed !important;
}

.ann-page::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at top right, rgba(242,208,138,.08), transparent 32%);
}

.ann-page .ann-board,
.ann-page .ann-sidebar,
.ann-page .ann-item{
  background:rgba(7,17,29,.72)!important;
  backdrop-filter:blur(14px);
}



/* ===== GLOBAL BACKGROUND SAME AS ANNOUNCEMENTS ===== */
html,
body{
  background:
    linear-gradient(180deg, rgba(2,8,20,.22) 0%, rgba(2,8,20,.48) 100%),
    url("images/hero.jpg") center/cover fixed !important;
  background-color:#020814 !important;
}

.hero,
.admin-page,
.admin-wrap,
.ann-page,
main,
.page,
.page-bg{
  background:
    linear-gradient(180deg, rgba(2,8,20,.22) 0%, rgba(2,8,20,.48) 100%),
    url("images/hero.jpg") center/cover fixed !important;
}

.hero{
  border-radius:0 !important;
  box-shadow:none !important;
  border:0 !important;
}

.page-bg{
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
}

.hero::before,
.admin-page::before,
.admin-wrap::before,
.ann-page::before,
.page-bg::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at top right, rgba(242,208,138,.08), transparent 32%);
}

section,
.container,
.ann-container,
.admin-grid,
.admin-card,
.ann-board,
.ann-side,
.ann-item{
  background-color:transparent;
}



/* ===== PREMIUM CARDS UPGRADE ===== */

.ann-list,
.cards-grid,
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:24px;
}

.ann-item,
.card,
.place-card,
.listing-card{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.08);
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
  box-shadow:
    0 24px 60px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.04);
}

.ann-thumb,
.card-image,
.place-thumb{
  position:relative;
  min-height:240px;
}

.ann-thumb::before,
.card-image::before,
.place-thumb::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(to top, rgba(2,8,20,.92) 0%, rgba(2,8,20,.12) 55%, transparent 100%);
  z-index:1;
}

.ann-thumb::after,
.card-image::after,
.place-thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(242,208,138,.12), transparent 44%);
  z-index:2;
}

.ann-item-body,
.card-body{
  position:relative;
  z-index:3;
}

.ann-item h2,
.card h2,
.card h3{
  font-size:24px;
  line-height:1.1;
  letter-spacing:-.5px;
}

.ann-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}

.ann-meta span{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(10px);
  color:#dbe6f8;
  font-size:13px;
  font-weight:800;
}

.ann-price{
  border-top:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
}

.ann-price b{
  font-size:28px;
  letter-spacing:-1px;
  color:#fff;
}

.ann-item:hover,
.card:hover{
  transform:translateY(-10px) scale(1.01);
  box-shadow:
    0 40px 90px rgba(0,0,0,.42),
    0 0 0 1px rgba(242,208,138,.12);
}

.vip-badge{
  z-index:20;
}

.top-badge,
.popular-badge,
.new-badge{
  position:absolute;
  top:16px;
  right:16px;
  z-index:20;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(7,17,29,.78);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(12px);
  color:#fff;
  font-size:12px;
  font-weight:900;
}

.skeleton{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.05);
}

.skeleton::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent);
  animation:skeletonMove 1.4s infinite;
}

@keyframes skeletonMove{
  100%{
    transform:translateX(100%);
  }
}

.fade-up{
  opacity:0;
  transform:translateY(30px);
  animation:fadeUp .7s ease forwards;
}

@keyframes fadeUp{
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media(max-width:768px){

  .ann-list,
  .cards-grid,
  .grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .ann-item,
  .card{
    border-radius:22px;
  }

  .ann-thumb,
  .card-image{
    min-height:220px;
  }

  .ann-item h2,
  .card h2,
  .card h3{
    font-size:22px;
  }

  .ann-price b{
    font-size:24px;
  }
}



/* ===== ANNOUNCEMENT CARD LAYOUT FIX ===== */

.ann-item{
  display:grid !important;
  grid-template-columns:140px minmax(0,1fr) 220px !important;
  align-items:center;
  gap:24px;
  padding:24px;
}

.ann-thumb{
  width:140px;
  height:140px;
  min-height:140px !important;
  border-radius:22px;
}

.ann-item-body{
  width:100%;
  min-width:0;
}

.ann-item-body h2,
.ann-item-body h3{
  margin-bottom:12px;
  word-break:break-word;
}

.ann-item-body p{
  width:100%;
  line-height:1.6;
  word-break:break-word;
}

.ann-price{
  width:100%;
  min-width:180px;
  border-radius:22px;
  padding:24px;
  text-align:center;
}

.ann-meta{
  margin-top:16px;
}

.ann-meta span{
  white-space:nowrap;
}

@media(max-width:980px){

  .ann-item{
    grid-template-columns:1fr !important;
    text-align:left;
  }

  .ann-thumb{
    width:100%;
    height:260px;
  }

  .ann-price{
    min-width:unset;
  }
}



/* ===== ANNOUNCEMENTS FINAL CARD GRID FIX ===== */

/* Страница объявлений должна быть списком, а не сеткой в 2-3 узких колонки */
.ann-board{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 360px !important;
  gap:26px !important;
  align-items:start !important;
}

.ann-list{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:18px !important;
  width:100% !important;
  min-width:0 !important;
}

/* Карточка объявления: фото / текст / цена */
.ann-list .ann-item{
  display:grid !important;
  grid-template-columns:150px minmax(0,1fr) 220px !important;
  gap:22px !important;
  align-items:center !important;
  width:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  padding:22px !important;
}

/* Фото не растягивает карточку */
.ann-list .ann-thumb{
  width:150px !important;
  height:150px !important;
  min-height:150px !important;
  max-height:150px !important;
  border-radius:20px !important;
  flex:none !important;
}

/* Текст больше не становится вертикальной колонкой */
.ann-list .ann-item-body{
  min-width:0 !important;
  width:100% !important;
  max-width:none !important;
}

.ann-list .ann-item-body h2,
.ann-list .ann-item-body h3,
.ann-list .ann-item-body p{
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
  writing-mode:horizontal-tb !important;
  text-orientation:mixed !important;
  max-width:100% !important;
}

.ann-list .ann-item-body h2,
.ann-list .ann-item-body h3{
  font-size:28px !important;
  line-height:1.12 !important;
  margin:0 0 10px !important;
}

.ann-list .ann-item-body p{
  font-size:16px !important;
  line-height:1.55 !important;
}

/* Метки */
.ann-list .ann-meta{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-top:12px !important;
}

.ann-list .ann-meta span{
  white-space:nowrap !important;
}

/* Цена справа, не ломает карточку */
.ann-list .ann-price{
  width:100% !important;
  min-width:190px !important;
  max-width:220px !important;
  padding:20px !important;
  border-radius:20px !important;
  text-align:center !important;
  align-self:center !important;
}

.ann-list .ann-price b{
  display:block !important;
  font-size:26px !important;
  line-height:1.1 !important;
  white-space:normal !important;
  word-break:normal !important;
}

.ann-list .ann-price span{
  display:block !important;
  margin-top:8px !important;
  white-space:normal !important;
}

/* Боковая колонка */
.ann-side{
  width:100% !important;
  min-width:0 !important;
}

/* На планшетах боковая колонка уходит вниз */
@media(max-width:1180px){
  .ann-board{
    grid-template-columns:1fr !important;
  }

  .ann-side{
    order:2;
  }
}

/* На телефонах карточка становится вертикальной */
@media(max-width:760px){
  .ann-list .ann-item{
    grid-template-columns:1fr !important;
    gap:16px !important;
    padding:16px !important;
  }

  .ann-list .ann-thumb{
    width:100% !important;
    height:230px !important;
    max-height:230px !important;
  }

  .ann-list .ann-price{
    max-width:none !important;
    min-width:0 !important;
    text-align:left !important;
  }

  .ann-list .ann-item-body h2,
  .ann-list .ann-item-body h3{
    font-size:23px !important;
  }
}



/* ===== ANNOUNCEMENTS FILTER FIX ===== */
.ann-item.hidden{
  display:none !important;
}


/* ===== PLACES PAGE UPGRADE ===== */
.places-page{min-height:100vh;padding:140px 28px 70px}
.places-hero{width:min(1240px,100%);margin:0 auto 30px;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:stretch}
.places-hero-content,.places-map-card{position:relative;overflow:hidden;border-radius:30px;padding:34px;background:rgba(7,17,29,.72);border:1px solid rgba(255,255,255,.09);backdrop-filter:blur(16px);box-shadow:0 24px 60px rgba(0,0,0,.28)}
.places-eyebrow{display:inline-flex;margin-bottom:16px;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f;font-weight:950;font-size:13px}
.places-hero h1{margin:0 0 16px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(48px,6vw,82px);line-height:.95;text-transform:uppercase;color:#fff}
.places-hero p{max-width:720px;color:#dbe6f8;font-size:19px;line-height:1.6}
.places-search{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;margin-top:28px}
.places-search input,.places-search select{height:54px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#fff;padding:0 16px;outline:none}
.places-map-card{display:flex;flex-direction:column;justify-content:flex-end;min-height:260px;background:linear-gradient(180deg,rgba(7,17,29,.28),rgba(7,17,29,.92)),url("images/embankment.jpg") center/cover}
.places-map-card span{color:#f2d08a;font-weight:900}.places-map-card strong{margin:8px 0;font-size:38px;color:#fff}
.places-filter-row{width:min(1240px,100%);margin:0 auto 24px;display:flex;gap:10px;flex-wrap:wrap}
.place-filter{min-height:44px;padding:0 18px;border:1px solid rgba(255,255,255,.10);border-radius:999px;background:rgba(7,17,29,.72);color:#fff;font-weight:900;cursor:pointer}
.place-filter.active,.place-filter:hover{background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f}
.places-grid{width:min(1240px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.place-card{overflow:hidden;border-radius:26px;background:rgba(7,17,29,.72);border:1px solid rgba(255,255,255,.09);backdrop-filter:blur(14px);box-shadow:0 24px 60px rgba(0,0,0,.24);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.place-card:hover{transform:translateY(-8px);border-color:rgba(242,208,138,.26);box-shadow:0 34px 80px rgba(0,0,0,.34)}
.place-card.hidden{display:none!important}.place-image{position:relative;height:220px;background-size:cover;background-position:center}.place-image::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(2,8,20,.88),transparent 70%)}
.place-badge{position:absolute;top:14px;left:14px;z-index:2;padding:8px 13px;border-radius:999px;background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f;font-size:12px;font-weight:950}
.place-body{padding:20px}.place-top,.place-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#aebcd0;font-size:13px;font-weight:900}.place-top b{color:#f2d08a}
.place-body h2{margin:12px 0 10px;color:#fff;font-size:25px;line-height:1.1}.place-body p{color:#dbe6f8;line-height:1.55}
.place-meta{justify-content:flex-start;flex-wrap:wrap;margin-top:16px}.place-meta span{padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08)}
.place-more{width:100%;min-height:48px;margin-top:18px;border:0;border-radius:14px;background:rgba(255,255,255,.08);color:#fff;font-weight:950}.place-more:hover{background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f}
.places-empty{display:none;width:min(760px,calc(100% - 40px));margin:30px auto;padding:28px;border-radius:22px;background:rgba(7,17,29,.72);border:1px dashed rgba(255,255,255,.14);color:#dbe6f8;text-align:center;font-weight:900}.places-empty.show{display:block}
.place-modal{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(0,0,0,.72);backdrop-filter:blur(8px)}.place-modal.show{display:flex}
.place-modal-box{position:relative;width:min(820px,96vw);max-height:92vh;overflow:hidden;border-radius:26px;background:linear-gradient(180deg,#101827,#07111d);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 90px rgba(0,0,0,.65);color:#fff}
.place-modal-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:30px;cursor:pointer;z-index:5}
.place-modal-image{height:320px;background-size:cover;background-position:center}.place-modal-content{padding:26px}.place-modal-rating{display:inline-flex;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f;font-weight:950;margin-bottom:16px}
.place-modal-content h2{margin:0 0 12px;font-size:36px;color:#fff}.place-modal-content p{color:#dbe6f8;font-size:18px;line-height:1.55}
.place-modal-info{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.place-modal-info div{padding:16px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}.place-modal-info span{display:block;color:#9fb0cc;font-size:13px;margin-bottom:6px}.place-modal-info b{color:#fff}
.place-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.place-modal-actions a,.place-modal-actions button{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:14px;border:0;text-decoration:none;font-weight:950;cursor:pointer}.place-modal-actions a{background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f}.place-modal-actions button{background:rgba(255,255,255,.08);color:#fff}
@media(max-width:900px){.places-hero{grid-template-columns:1fr}.places-search{grid-template-columns:1fr}.place-modal-info,.place-modal-actions{grid-template-columns:1fr}}
@media(max-width:700px){.places-page{padding:112px 12px 50px}.places-hero-content,.places-map-card{padding:22px;border-radius:22px}.places-grid{grid-template-columns:1fr}.place-modal-image{height:230px}.place-modal-content h2{font-size:28px}}



/* ===== PLACES REAL FIX: SELECT + CARD ALIGNMENT ===== */

/* Кастомный выпадающий список вместо системного белого select */
.custom-select{
  position:relative;
  width:100%;
  z-index:50;
}

.custom-select-trigger{
  width:100%;
  height:54px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.07);
  color:#fff;
  padding:0 44px 0 16px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}

.custom-select-trigger::after{
  content:"⌄";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  color:#f2d08a;
  font-size:18px;
}

.custom-select-menu{
  position:absolute;
  top:62px;
  left:0;
  right:0;
  display:none;
  overflow:hidden;
  border-radius:16px;
  background:#0b1422;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 22px 70px rgba(0,0,0,.55);
  z-index:9999;
}

.custom-select.open .custom-select-menu{
  display:block;
}

.custom-select-menu button{
  display:block;
  width:100%;
  min-height:48px;
  padding:0 16px;
  border:0;
  background:#0b1422;
  color:#fff;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}

.custom-select-menu button:hover{
  background:linear-gradient(135deg,#f2d08a,#d6a24b);
  color:#08111f;
}

/* Сетка мест ровная */
.places-grid{
  align-items:stretch !important;
}

.place-card{
  display:flex !important;
  flex-direction:column !important;
  height:100% !important;
  min-height:560px !important;
}

/* Фото одинаковое и не исчезает */
.place-image{
  flex:0 0 220px !important;
  height:220px !important;
  min-height:220px !important;
  background-size:cover !important;
  background-position:center !important;
  background-color:rgba(7,17,29,.88) !important;
}

/* Тело карточки — ровно по высоте */
.place-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  min-height:0 !important;
}

/* Текст не вылезает за карточку */
.place-body h2{
  display:-webkit-box !important;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden !important;
  min-height:62px;
  max-height:76px;
  overflow-wrap:break-word;
}

.place-body p{
  display:-webkit-box !important;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden !important;
  min-height:82px;
  max-height:94px;
  overflow-wrap:break-word;
}

.place-meta{
  min-height:42px;
}

/* Кнопка всегда внизу */
.place-more{
  margin-top:auto !important;
}

/* Если картинки нет — не оставляем пустую чёрную дыру */
.place-image:empty{
  background:
    linear-gradient(135deg, rgba(242,208,138,.16), rgba(7,17,29,.92)),
    url("images/galaktika.jpg") center/cover !important;
}

@media(max-width:700px){
  .place-card{
    min-height:auto !important;
  }

  .place-image{
    flex-basis:210px !important;
    height:210px !important;
    min-height:210px !important;
  }

  .place-body h2{
    min-height:auto;
  }

  .place-body p{
    min-height:auto;
  }
}



/* ===== PLACES COMPACT FINAL FIX ===== */

/* Убираем эффект огромных карточек и делаем сетку ровной */
.places-grid{
  width:min(1240px,100%) !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
  align-items:stretch !important;
}

.place-card{
  display:flex !important;
  flex-direction:column !important;
  min-height:0 !important;
  height:100% !important;
  max-height:none !important;
  border-radius:22px !important;
  overflow:hidden !important;
}

/* Фото компактное, одинаковое, без пустых огромных зон */
.place-image{
  flex:0 0 165px !important;
  height:165px !important;
  min-height:165px !important;
  max-height:165px !important;
  background-size:cover !important;
  background-position:center !important;
}

.place-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  padding:18px !important;
  min-height:0 !important;
}

/* Заголовок больше не вылезает и не становится гигантским */
.place-body h2{
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  min-height:54px !important;
  max-height:64px !important;
  margin:10px 0 8px !important;
  font-size:30px !important;
  line-height:1.02 !important;
  letter-spacing:-.5px !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

/* Описание не прячется за карточку */
.place-body p{
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  min-height:72px !important;
  max-height:78px !important;
  margin:0 !important;
  font-size:16px !important;
  line-height:1.5 !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
}

.place-top{
  min-height:24px !important;
}

.place-meta{
  min-height:38px !important;
  margin-top:14px !important;
  gap:8px !important;
}

.place-meta span{
  white-space:nowrap !important;
  font-size:13px !important;
  padding:7px 10px !important;
}

.place-more{
  margin-top:auto !important;
  min-height:44px !important;
  border-radius:13px !important;
}

/* Кастомный список не должен закрывать пол-экрана */
.custom-select{
  z-index:2000 !important;
}

.custom-select-menu{
  top:58px !important;
  max-height:260px !important;
  overflow:auto !important;
  background:#0b1422 !important;
}

.custom-select-menu button{
  color:#fff !important;
  background:#0b1422 !important;
}

.custom-select-menu button:hover{
  color:#08111f !important;
  background:linear-gradient(135deg,#f2d08a,#d6a24b) !important;
}

/* Средние экраны: 2 карточки */
@media(max-width:1150px){
  .places-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Малые экраны: 1 карточка */
@media(max-width:700px){
  .places-grid{
    grid-template-columns:1fr !important;
  }

  .place-image{
    flex-basis:200px !important;
    height:200px !important;
    min-height:200px !important;
    max-height:200px !important;
  }

  .place-body h2{
    font-size:28px !important;
    min-height:auto !important;
  }

  .place-body p{
    min-height:auto !important;
  }
}



/* ===== ANNOUNCEMENTS TEXT CLAMP + FULL MODAL FIX ===== */

/* Список объявлений: размер карточки стабильный, длинный текст не растягивает карточку */
.ann-list .ann-item{
  min-height:170px !important;
  max-height:250px !important;
  overflow:hidden !important;
}

.ann-list .ann-item-body{
  min-width:0 !important;
  overflow:hidden !important;
}

.ann-list .ann-item-body h2,
.ann-list .ann-item-body h3{
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-height:64px !important;
}

.ann-list .ann-item-body p{
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  max-height:76px !important;
  word-break:normal !important;
  overflow-wrap:anywhere !important;
}

/* Метки и цена не должны прыгать */
.ann-list .ann-meta{
  overflow:hidden !important;
  max-height:42px !important;
}

.ann-list .ann-price{
  align-self:center !important;
}

/* В открытой карточке показываем полный текст */
.ad-modal,
.ad-modal-box,
.ad-modal-content{
  max-height:92vh !important;
}

#adModalDescription,
.ad-modal-description{
  display:block !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
  overflow:visible !important;
  max-height:none !important;
  white-space:normal !important;
  word-break:normal !important;
  overflow-wrap:anywhere !important;
  line-height:1.65 !important;
}

/* Если в модалке много текста — прокручивается только окно, а не ломается страница */
.ad-modal-box,
.ad-modal-card{
  overflow:auto !important;
}



/* ===== PLACES MAP ROUTE + PERFECT ALIGN ===== */

/* Ровная сетка и одинаковые карточки */
.places-grid{
  align-items:stretch !important;
}

.place-card{
  display:flex !important;
  flex-direction:column !important;
  height:520px !important;
  min-height:520px !important;
  max-height:520px !important;
  overflow:hidden !important;
}

.place-image{
  flex:0 0 170px !important;
  height:170px !important;
  min-height:170px !important;
  max-height:170px !important;
  background-size:cover !important;
  background-position:center !important;
}

.place-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  padding:18px !important;
}

.place-body h2{
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  min-height:60px !important;
  max-height:68px !important;
  font-size:30px !important;
  line-height:1.05 !important;
}

.place-body p{
  display:-webkit-box !important;
  -webkit-line-clamp:3 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  min-height:74px !important;
  max-height:82px !important;
}

.place-meta{
  min-height:42px !important;
}

.place-more{
  margin-top:auto !important;
}

/* Карта в открытой карточке места */
.place-modal-map{
  display:flex;
  gap:14px;
  align-items:center;
  min-height:112px;
  margin:20px 0;
  padding:18px;
  border-radius:18px;
  background:
    linear-gradient(135deg, rgba(242,208,138,.13), rgba(255,255,255,.04)),
    url("images/embankment.jpg") center/cover;
  border:1px solid rgba(242,208,138,.22);
  overflow:hidden;
  position:relative;
}

.place-modal-map::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(7,17,29,.58);
  pointer-events:none;
}

.place-modal-map > *{
  position:relative;
  z-index:2;
}

.place-modal-map__pin{
  width:52px;
  height:52px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#f2d08a,#d6a24b);
  color:#08111f;
  font-size:26px;
  font-weight:950;
  flex:0 0 auto;
}

.place-modal-map span{
  color:#f2d08a;
  font-weight:950;
  font-size:13px;
}

.place-modal-map strong{
  display:block;
  margin:4px 0;
  color:#fff;
  font-size:20px;
}

.place-modal-map p{
  margin:0;
  color:#dbe6f8;
  font-size:14px;
  line-height:1.35;
}

.place-modal-actions{
  grid-template-columns:1fr 1fr 1fr !important;
}

@media(max-width:900px){
  .place-modal-actions{
    grid-template-columns:1fr !important;
  }
}

@media(max-width:700px){
  .place-card{
    height:auto !important;
    min-height:auto !important;
    max-height:none !important;
  }
}



/* ===== PLACE MODAL SCROLL + CLOSE BUTTON FINAL FIX ===== */

/* Модалка места должна прокручиваться внутри окна */
.place-modal{
  overflow-y:auto !important;
  align-items:flex-start !important;
  padding:28px 18px !important;
}

.place-modal-box{
  margin:0 auto !important;
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
}

/* Контент не должен прятаться снизу */
.place-modal-content{
  overflow:visible !important;
  padding-bottom:34px !important;
}

/* Крестик ровно в круге */
.place-modal-close{
  position:absolute !important;
  top:16px !important;
  right:16px !important;
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  min-height:44px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:0 !important;
  border-radius:50% !important;
  background:rgba(7,17,29,.72) !important;
  color:#fff !important;
  font-size:34px !important;
  font-weight:300 !important;
  line-height:1 !important;
  text-align:center !important;
  cursor:pointer !important;
  z-index:20 !important;
  box-shadow:0 10px 30px rgba(0,0,0,.35) !important;
}

.place-modal-close:hover{
  background:rgba(242,208,138,.18) !important;
  color:#f2d08a !important;
  transform:rotate(90deg) !important;
}

/* Нижние кнопки всегда доступны */
.place-modal-actions{
  position:relative !important;
  z-index:3 !important;
  margin-bottom:8px !important;
}

/* На маленьких экранах модалка не упирается в края */
@media(max-width:700px){
  .place-modal{
    padding:18px 10px !important;
  }

  .place-modal-box{
    width:100% !important;
    border-radius:20px !important;
  }

  .place-modal-close{
    top:10px !important;
    right:10px !important;
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    min-height:40px !important;
    font-size:30px !important;
  }
}



/* ===== PLACES DROPDOWN VISIBILITY FINAL FIX ===== */

/* Выпадающий список категорий должен быть поверх карточек и фона */
.places-hero,
.places-hero-content,
.places-search{
  overflow:visible !important;
}

.places-hero{
  position:relative !important;
  z-index:30 !important;
}

.places-filter-row,
.places-grid{
  position:relative !important;
  z-index:1 !important;
}

.custom-select{
  position:relative !important;
  z-index:99999 !important;
}

.custom-select-menu{
  position:absolute !important;
  top:62px !important;
  left:0 !important;
  right:0 !important;
  z-index:100000 !important;
  max-height:280px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  background:#0b1422 !important;
  border:1px solid rgba(242,208,138,.35) !important;
  border-radius:16px !important;
  box-shadow:0 24px 80px rgba(0,0,0,.75) !important;
}

.custom-select.open .custom-select-menu{
  display:block !important;
}

.custom-select-menu button{
  display:block !important;
  width:100% !important;
  min-height:48px !important;
  background:#0b1422 !important;
  color:#fff !important;
  border:0 !important;
  padding:0 18px !important;
  text-align:left !important;
  font-weight:900 !important;
  cursor:pointer !important;
}

.custom-select-menu button:hover,
.custom-select-menu button:focus{
  background:linear-gradient(135deg,#f2d08a,#d6a24b) !important;
  color:#08111f !important;
  outline:none !important;
}

/* нормальный скролл внутри списка */
.custom-select-menu::-webkit-scrollbar{
  width:8px;
}

.custom-select-menu::-webkit-scrollbar-track{
  background:#101827;
}

.custom-select-menu::-webkit-scrollbar-thumb{
  background:#f2d08a;
  border-radius:99px;
}

/* ===== ABOUT PAGE FINAL ===== */
.about-page{min-height:100vh;color:#fff;}
.about-hero{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:stretch;margin-bottom:30px;}
.about-kicker{display:inline-flex;padding:10px 16px;margin-bottom:18px;border-radius:999px;background:rgba(214,162,75,.14);border:1px solid rgba(214,162,75,.32);color:#f2d08a;font-weight:900;}
.about-page h1{font-family:Georgia,"Times New Roman",serif;font-size:72px;line-height:.95;letter-spacing:-.04em;margin:0 0 22px;color:#fff;}
.about-page p{max-width:760px;color:#dbe6f8;font-size:18px;line-height:1.65;font-weight:650;}
.about-card,.about-grid article{border-radius:24px;background:rgba(8,20,42,.86);border:1px solid rgba(255,255,255,.09);box-shadow:0 22px 70px rgba(0,0,0,.28);}
.about-card{padding:30px;display:flex;flex-direction:column;justify-content:flex-end;min-height:280px;background:linear-gradient(180deg,rgba(8,20,42,.72),rgba(8,20,42,.95)),url('images/night.jpg') center/cover;}
.about-card b{font-family:Georgia,"Times New Roman",serif;font-size:56px;line-height:1;color:#f2d08a;}
.about-card span{font-weight:950;color:#fff;margin:6px 0 14px;}
.about-card p{font-size:16px;margin:0;}
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.about-grid article{padding:26px;}
.about-grid h2{margin:0 0 12px;font-family:Georgia,"Times New Roman",serif;font-size:32px;color:#fff;}
.about-grid p{font-size:16px;margin:0;}
@media(max-width:960px){.about-hero{grid-template-columns:1fr}.about-grid{grid-template-columns:1fr}.about-page h1{font-size:50px}.about-card{min-height:220px}}

/* === Catalog upgrade 2026-05-18 === */
.catalog-page{padding-bottom:80px}
.catalog-hero .places-hero-content{overflow:visible}
.catalog-search{position:relative;z-index:20}
.catalog-note{margin-top:16px;padding:12px 14px;border-radius:14px;background:rgba(242,208,138,.11);border:1px solid rgba(242,208,138,.22);color:#f4dfb0;font-weight:800;line-height:1.45}
.catalog-map-card{background:linear-gradient(180deg,rgba(7,17,29,.22),rgba(7,17,29,.94)),url("images/night.jpg") center/cover!important}
.catalog-stats{width:min(1240px,100%);margin:0 auto 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.catalog-stats div{padding:20px;border-radius:22px;background:rgba(7,17,29,.72);border:1px solid rgba(255,255,255,.09);box-shadow:0 18px 45px rgba(0,0,0,.20)}
.catalog-stats b{display:block;color:#f2d08a;font-size:34px;line-height:1;font-family:Georgia,'Times New Roman',serif}
.catalog-stats span{display:block;margin-top:8px;color:#dbe6f8;font-weight:850}
.catalog-layout{width:min(1240px,100%);margin:0 auto;display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}
.catalog-sidebar{position:sticky;top:110px;padding:22px;border-radius:26px;background:rgba(7,17,29,.78);border:1px solid rgba(255,255,255,.09);box-shadow:0 24px 60px rgba(0,0,0,.24)}
.catalog-sidebar h2{margin:0 0 16px!important;color:#fff!important;font-size:25px!important}
.catalog-category-list{display:grid;gap:9px}
.catalog-category-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:46px;padding:0 12px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.055);color:#fff;font-weight:900;cursor:pointer;text-align:left}
.catalog-category-list button b{min-width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:rgba(242,208,138,.16);color:#f2d08a}
.catalog-category-list button.active,.catalog-category-list button:hover{background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f}
.catalog-category-list button.active b,.catalog-category-list button:hover b{background:rgba(8,17,31,.12);color:#08111f}
.catalog-help{margin-top:18px;padding:16px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:#dbe6f8}
.catalog-help b{color:#f2d08a}.catalog-help p{margin:8px 0 0!important;font-size:14px!important;color:#dbe6f8!important;line-height:1.45!important}
.catalog-toolbar{margin-bottom:18px;padding:16px 18px;border-radius:20px;background:rgba(7,17,29,.72);border:1px solid rgba(255,255,255,.09);display:flex;align-items:center;justify-content:space-between;gap:14px;color:#fff}
.catalog-toolbar b{font-size:20px}.catalog-toolbar span{color:#aebcd0;font-weight:800}.catalog-toolbar button{min-height:42px;padding:0 15px;border:0;border-radius:12px;background:rgba(255,255,255,.08);color:#fff;font-weight:950;cursor:pointer}.catalog-toolbar button:hover{background:linear-gradient(135deg,#f2d08a,#d6a24b);color:#08111f}
.catalog-grid{width:100%!important;margin:0!important;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))!important}
.catalog-card .place-body h2{font-size:22px!important;min-height:48px}.catalog-card .place-body p{min-height:72px}.catalog-card .place-meta span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.custom-select{position:relative;z-index:50}.custom-select-trigger{height:54px;width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:#fff;padding:0 16px;text-align:left;font-weight:900;cursor:pointer}.custom-select-trigger:after{content:'⌄';float:right}.custom-select-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:9999;display:none;max-height:330px;overflow:auto;padding:8px;border-radius:16px;background:#0b1423;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 70px rgba(0,0,0,.55)}.custom-select.open .custom-select-menu{display:grid;gap:6px}.custom-select-menu button{min-height:42px;border:0;border-radius:11px;background:transparent;color:#fff;text-align:left;padding:0 12px;font-weight:900;cursor:pointer}.custom-select-menu button:hover{background:rgba(242,208,138,.16);color:#f2d08a}
.place-modal-box{overflow-y:auto!important}.place-modal-content{padding-bottom:28px!important}.place-modal-close{line-height:38px!important}.modal-open{overflow:hidden}
@media(max-width:980px){.catalog-layout{grid-template-columns:1fr}.catalog-sidebar{position:static}.catalog-stats{grid-template-columns:1fr 1fr 1fr}.catalog-category-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.catalog-stats{grid-template-columns:1fr}.catalog-layout{gap:16px}.catalog-sidebar{padding:16px;border-radius:20px}.catalog-category-list{grid-template-columns:1fr}.catalog-toolbar{align-items:flex-start;flex-direction:column}.catalog-toolbar button{width:100%}.catalog-card .place-body h2,.catalog-card .place-body p{min-height:0}.custom-select-menu{max-height:260px}.catalog-note{font-size:13px}.places-filter-row.catalog-filter-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}.places-filter-row.catalog-filter-row .place-filter{white-space:nowrap;flex:0 0 auto}}

/* ===== FINAL CATALOG CARD UI FIX 2026-05-18 ===== */
.catalog-grid.places-grid{
  width:100% !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap:20px !important;
  align-items:stretch !important;
}

.catalog-card.place-card{
  display:flex !important;
  flex-direction:column !important;
  height:auto !important;
  min-height:520px !important;
  max-height:none !important;
  overflow:hidden !important;
  border-radius:24px !important;
}

.catalog-card .place-image{
  flex:0 0 auto !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:16 / 9 !important;
  background-size:cover !important;
  background-position:center !important;
}

.catalog-card .place-body{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  padding:18px !important;
}

.catalog-card .place-top{
  flex:0 0 auto !important;
  min-height:24px !important;
}

.catalog-card .place-body h2{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  margin:10px 0 10px !important;
  min-height:54px !important;
  max-height:58px !important;
  font-size:24px !important;
  line-height:1.12 !important;
  letter-spacing:-.02em !important;
  word-break:normal !important;
  overflow-wrap:anywhere !important;
}

.catalog-card .place-body p{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:3 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  margin:0 !important;
  min-height:72px !important;
  max-height:76px !important;
  font-size:16px !important;
  line-height:1.5 !important;
  word-break:normal !important;
  overflow-wrap:anywhere !important;
}

.catalog-card .place-meta{
  flex:0 0 auto !important;
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  align-items:flex-start !important;
  min-height:76px !important;
  max-height:82px !important;
  margin-top:16px !important;
  overflow:hidden !important;
}

.catalog-card .place-meta span{
  max-width:100% !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-size:13px !important;
  line-height:1.2 !important;
  padding:8px 10px !important;
}

.catalog-card .place-more{
  flex:0 0 auto !important;
  width:100% !important;
  min-height:46px !important;
  margin-top:auto !important;
  border-radius:14px !important;
}

@media (max-width:1150px){
  .catalog-grid.places-grid{
    grid-template-columns:repeat(auto-fit, minmax(270px, 1fr)) !important;
  }
}

@media (max-width:700px){
  .catalog-grid.places-grid{
    grid-template-columns:1fr !important;
  }

  .catalog-card.place-card{
    min-height:0 !important;
  }

  .catalog-card .place-body h2{
    min-height:0 !important;
    max-height:58px !important;
    font-size:23px !important;
  }

  .catalog-card .place-body p{
    min-height:0 !important;
    max-height:74px !important;
  }

  .catalog-card .place-meta{
    min-height:0 !important;
    max-height:84px !important;
  }
}

/* ===== CATALOG FILTER FUNCTION FINAL FIX ===== */
/* Важнее карточных display:flex!important: скрытые карточки реально исчезают при поиске/фильтрах */
.catalog-grid .catalog-card.hidden,
.catalog-grid .place-card.hidden,
.places-grid .place-card.hidden,
.place-card.hidden{
  display:none !important;
}

/* Клики по поиску/селекту и фильтрам не должны перекрываться карточками */
.catalog-search,
.custom-select,
.custom-select-trigger,
.custom-select-menu,
.catalog-filter-row,
.catalog-sidebar,
.catalog-toolbar{
  position:relative;
}

.catalog-search,
.custom-select{
  z-index:3000 !important;
}

.custom-select-menu{
  z-index:3001 !important;
}

.catalog-filter-row,
.catalog-sidebar,
.catalog-toolbar{
  z-index:20 !important;
}

/* ===== CITY MAP SYSTEM ===== */
.city-map-page{
  min-height:100vh;
  padding:150px 32px 80px;
  color:#fff;
}
.city-map-hero{
  max-width:1180px;
  margin:0 auto 28px;
  padding:34px;
  border-radius:30px;
  background:linear-gradient(135deg, rgba(17,23,36,.94), rgba(24,39,61,.88));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 24px 80px rgba(0,0,0,.28);
}
.city-map-hero span{
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(241,199,91,.16);
  color:#f1c75b;
  font-weight:800;
  font-size:13px;
  margin-bottom:18px;
}
.city-map-hero h1{
  font-family:Georgia,serif;
  font-size:64px;
  line-height:.95;
  margin:0 0 16px;
}
.city-map-hero p{
  max-width:760px;
  color:#d6d9e0;
  line-height:1.6;
  margin:0 0 22px;
}
.city-map-search{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  position:relative;
  z-index:5;
}
.city-map-search input,
.city-map-search button{
  min-height:52px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.08);
  color:#fff;
  padding:0 18px;
  font-weight:800;
  outline:none;
}
.city-map-search input::placeholder{color:rgba(255,255,255,.58)}
.city-map-search button{cursor:pointer;background:#f1c75b;color:#111;border:0;}
.city-map-layout{
  max-width:1180px;
  margin:0 auto;
  display:grid;
  grid-template-columns:360px 1fr;
  gap:22px;
  align-items:start;
}
.city-map-sidebar,
.city-map-panel{
  border-radius:28px;
  background:rgba(17,23,36,.9);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 20px 70px rgba(0,0,0,.22);
  overflow:hidden;
}
.city-map-sidebar{padding:18px;max-height:760px;overflow:auto;}
.city-map-sidebar-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:14px;
}
.city-map-sidebar-head b{font-size:22px;}
.city-map-sidebar-head span{background:#f1c75b;color:#111;border-radius:999px;padding:6px 12px;font-weight:900;}
.map-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.map-filter{
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.07);
  color:#fff;
  border-radius:999px;
  padding:9px 12px;
  cursor:pointer;
  font-weight:800;
}
.map-filter.active{background:#f1c75b;color:#111;border-color:#f1c75b;}
.map-point-list{display:grid;gap:10px;}
.map-point{
  display:grid;
  gap:8px;
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  cursor:pointer;
}
.map-point.active,
.map-point:hover{border-color:rgba(241,199,91,.65);background:rgba(241,199,91,.1);}
.map-point span{font-size:12px;color:#f1c75b;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.map-point h2{font-size:18px;line-height:1.2;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.map-point p{margin:0;color:#d6d9e0;font-size:14px;line-height:1.35;}
.map-point small{color:rgba(255,255,255,.62);}
.map-point button{
  justify-self:start;
  border:0;
  border-radius:12px;
  padding:9px 12px;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.map-empty{padding:18px;border-radius:16px;background:rgba(255,255,255,.06);color:#d6d9e0;}
.city-map-panel{min-height:760px;display:flex;flex-direction:column;}
.city-map-actions{
  display:flex;
  gap:12px;
  justify-content:flex-end;
  padding:14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.city-map-actions a{
  text-decoration:none;
  color:#111;
  background:#f1c75b;
  border-radius:14px;
  padding:12px 16px;
  font-weight:900;
}
.city-map-actions a + a{background:rgba(255,255,255,.1);color:#fff;}
.city-map-panel iframe{
  width:100%;
  min-height:700px;
  flex:1;
  border:0;
  filter:saturate(.9) contrast(.95);
  background:#111827;
}
@media (max-width:980px){
  .city-map-page{padding:130px 16px 60px;}
  .city-map-hero{padding:24px;border-radius:24px;}
  .city-map-hero h1{font-size:46px;}
  .city-map-search{grid-template-columns:1fr;}
  .city-map-layout{grid-template-columns:1fr;}
  .city-map-sidebar{max-height:none;}
  .city-map-panel{min-height:520px;}
  .city-map-panel iframe{min-height:520px;}
  .city-map-actions{justify-content:stretch;}
  .city-map-actions a{flex:1;text-align:center;}
}
@media (max-width:560px){
  .city-map-hero h1{font-size:38px;}
  .city-map-actions{flex-direction:column;}
}

/* Live weather widget */
.weather.weather--loading b,
.weather.weather--error b{font-size:24px;}
.weather.weather--live small,
.weather.weather--error small,
.weather.weather--loading small{overflow:hidden;text-overflow:ellipsis;}
.weather.weather--error{border-color:rgba(255,255,255,.12);opacity:.82;}


.routes-v2-actions{margin-top:18px;display:flex}.routes-v2-btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:14px;background:#f5c542;color:#111;text-decoration:none;font-weight:800;transition:.2s}.routes-v2-btn:hover{transform:translateY(-2px);filter:brightness(1.05)}
/* Unified modal close buttons */
.ad-close,
.submit-contact-modal__close,
.place-modal-close,
.routes-modal__close{
  position:absolute!important;
  top:16px!important;
  right:16px!important;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  padding:0!important;
  border-radius:14px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  background:rgba(10,16,26,.72)!important;
  color:transparent!important;
  font-size:0!important;
  line-height:0!important;
  cursor:pointer!important;
  z-index:50!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 10px 26px rgba(0,0,0,.25)!important;
  transition:background .18s ease,border-color .18s ease,transform .18s ease!important;
}
.ad-close::before,
.ad-close::after,
.submit-contact-modal__close::before,
.submit-contact-modal__close::after,
.place-modal-close::before,
.place-modal-close::after,
.routes-modal__close::before,
.routes-modal__close::after{
  content:""!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:20px!important;
  height:2px!important;
  border-radius:999px!important;
  background:#fff!important;
  transform-origin:center!important;
}
.ad-close::before,
.submit-contact-modal__close::before,
.place-modal-close::before,
.routes-modal__close::before{transform:translate(-50%,-50%) rotate(45deg)!important;}
.ad-close::after,
.submit-contact-modal__close::after,
.place-modal-close::after,
.routes-modal__close::after{transform:translate(-50%,-50%) rotate(-45deg)!important;}
.ad-close:hover,
.submit-contact-modal__close:hover,
.place-modal-close:hover,
.routes-modal__close:hover{
  background:rgba(241,199,91,.18)!important;
  border-color:rgba(241,199,91,.42)!important;
  transform:translateY(-1px)!important;
}
.ad-close:active,
.submit-contact-modal__close:active,
.place-modal-close:active,
.routes-modal__close:active{transform:translateY(0)!important;}
@media(max-width:620px){
  .ad-close,
  .submit-contact-modal__close,
  .place-modal-close,
  .routes-modal__close{top:12px!important;right:12px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;border-radius:12px!important;}
}

.home-highlights{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:20px;
  margin-top:34px;
}

.highlight-card{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  min-height:240px;
  padding:26px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,255,255,.08);
}

.highlight-card::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,.18));
}

.highlight-card *{
  position:relative;
  z-index:2;
}

.highlight-card span{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#d6b16a;
}

.highlight-card h3{
  margin:10px 0 8px;
  font-size:28px;
}

.highlight-card p{
  color:#d7d7d7;
  margin-bottom:18px;
}

.today-grid{
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:24px;
  margin-top:28px;
}

.today-card{
  background:#121212;
  border:1px solid rgba(255,255,255,.08);
  border-radius:26px;
  padding:28px;
}

.today-list{
  display:flex;
  flex-direction:column;
  gap:18px;
  margin-top:20px;
}

.today-item{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.today-item:last-child{border:none;padding-bottom:0}

.today-item b{display:block;margin-bottom:6px}

.today-badge{
  padding:8px 14px;
  border-radius:999px;
  background:#d6b16a;
  color:#111;
  font-weight:700;
  white-space:nowrap;
}

.quick-links{
  display:grid;
  gap:14px;
  margin-top:20px;
}

.quick-links a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 20px;
  border-radius:18px;
  background:#1a1a1a;
  color:#fff;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.06);
}

@media(max-width:900px){
  .today-grid{grid-template-columns:1fr}
}


/* Homepage final polish */
.places .section-head h2{font-size:34px;}
.stats div{position:relative;transition:transform .22s ease, background .22s ease;}
.stats div:hover{transform:translateY(-3px);background:rgba(241,199,91,.06);}
.stats i{display:block;width:38px;height:38px;line-height:38px;margin:0 auto 10px;border-radius:14px;background:rgba(241,199,91,.12);border:1px solid rgba(241,199,91,.22);font-style:normal;font-size:18px;}
.stats b{display:block;}
.city{position:relative;overflow:hidden;border-color:rgba(241,199,91,.18)!important;}
.city::after{content:'';position:absolute;right:-40px;bottom:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(241,199,91,.18),transparent 65%);pointer-events:none;}
.city h2,.city p,.city a{position:relative;z-index:1;}
.today-card{min-height:0;}
.today-list{gap:12px;}
.today-item{padding:14px 0;}
.today-item p{margin:0;color:rgba(255,255,255,.68);}
footer{align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.08);margin-top:20px;}
.footer-links{display:flex;gap:28px;flex-wrap:wrap;}
.footer-links a{color:var(--muted);text-decoration:none;}
.footer-links a:hover{color:#f1c75b;}
@media(max-width:700px){.footer-links{gap:16px}.stats div{padding:20px 14px}.stats i{margin-bottom:8px}}


/* Homepage density fix */
.home-highlights{
  width:min(1500px,100%);
  margin:28px auto 26px;
  padding:0 34px;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:stretch;
}
.highlight-card{
  min-height:205px;
  padding:22px;
  border-radius:20px;
}
.highlight-card h3{font-size:26px;margin:8px 0 6px;}
.highlight-card p{margin-bottom:14px;line-height:1.45;}
.highlight-card .btn{width:100%;padding:13px 18px;border-radius:12px;}
.main-grid{margin:0 auto 0;align-items:start;}
.panel{border-radius:20px;}
.stats{align-self:start;min-height:auto;}
.stats div{padding:22px 16px;}
.city{align-self:start;min-height:0;}
.today-grid{
  width:min(1500px,100%);
  margin:26px auto 0;
  padding:0 34px;
  align-items:start;
}
.today-card{background:var(--panel);border-color:var(--line);border-radius:20px;padding:24px;}
.today-list{margin-top:12px;}
.today-item{min-height:auto;}
.quick-links{margin-top:12px;}
.quick-links a{padding:15px 18px;border-radius:14px;background:rgba(255,255,255,.055);}
@media(max-width:1100px){
  .home-highlights{grid-template-columns:1fr;padding:0 18px;margin:22px auto;}
  .highlight-card{min-height:190px;}
  .today-grid{padding:0 18px;}
}

/* Final unified CTA buttons */
.home-highlights .highlight-card a.btn,
.home-highlights .highlight-card a.btn.gold,
.home-highlights .highlight-card a.btn:visited,
.home-highlights .highlight-card a.btn.gold:visited{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:48px !important;
  padding:13px 18px !important;
  border-radius:12px !important;
  border:1px solid rgba(242,208,138,.55) !important;
  background:linear-gradient(135deg,#f2d08a 0%,#d6a24b 52%,#b9832b 100%) !important;
  color:#08111f !important;
  font-weight:900 !important;
  font-size:15px !important;
  line-height:1 !important;
  text-decoration:none !important;
  box-shadow:0 12px 28px rgba(214,162,75,.22) !important;
}
.home-highlights .highlight-card a.btn:hover,
.home-highlights .highlight-card a.btn.gold:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 16px 34px rgba(214,162,75,.32) !important;
  filter:brightness(1.04) !important;
}


.hero{
display:flex;
align-items:center;
justify-content:space-between;
gap:60px;
}

.hero::after{
content:'';
display:block;
}

.hero-weather-card{
max-width:360px;
min-width:320px;
padding:28px;
border-radius:28px;
background:rgba(15,20,32,.72);
backdrop-filter:blur(16px);
border:1px solid rgba(255,215,120,.18);
box-shadow:0 20px 60px rgba(0,0,0,.45);
position:relative;
overflow:hidden;
}

.hero-weather-card::before{
content:'';
position:absolute;
inset:-30%;
background:radial-gradient(circle at top, rgba(85,255,220,.18), transparent 45%);
pointer-events:none;
}

.weather-top{
display:flex;
justify-content:space-between;
align-items:flex-start;
margin-bottom:18px;
position:relative;
z-index:2;
}

.weather-temp{
font-size:68px;
font-weight:800;
line-height:1;
color:#fff;
}

.weather-status{
font-size:15px;
color:#d6dbe8;
line-height:1.5;
}

.aurora-badge{
display:inline-block;
margin-top:18px;
padding:10px 16px;
border-radius:999px;
background:rgba(255,215,120,.12);
border:1px solid rgba(255,215,120,.25);
color:#ffd86b;
font-weight:700;
}

.weather-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:14px;
margin-top:24px;
position:relative;
z-index:2;
}

.weather-grid div{
background:rgba(255,255,255,.04);
padding:14px;
border-radius:18px;
text-align:center;
}

.weather-grid b{
display:block;
font-size:18px;
color:#fff;
margin-bottom:4px;
}

.weather-grid span{
font-size:13px;
color:#c6cbda;
}

@media (max-width: 980px){
.hero{
flex-direction:column;
align-items:flex-start;
}
.hero-weather-card{
width:100%;
max-width:none;
}
}

/* Final hero weather layout fix */
.hero-content{flex:1;}
.hero-weather-card{margin:120px 72px 0 0;}
.aurora-icon{font-size:56px;line-height:1;position:relative;z-index:2;}
@media(max-width:980px){.hero-weather-card{margin:0 18px 34px;width:calc(100% - 36px);}}

/* Cinematic hero preview — final alignment */
.hero{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) 330px !important;
  align-items:center !important;
  gap:42px !important;
  min-height:720px !important;
  padding:0 72px !important;
}
.hero-content{
  max-width:760px !important;
  padding:86px 0 0 !important;
  margin:0 !important;
  flex:initial !important;
}
.hero-weather-card{display:none !important;}
.cinematic-weather{
  position:relative;
  align-self:center;
  width:330px;
  min-height:285px;
  margin:88px 0 0 !important;
  padding:24px;
  overflow:hidden;
  border-radius:30px;
  color:#fff;
  background:
    linear-gradient(180deg, rgba(13,23,34,.70), rgba(7,12,20,.82)),
    radial-gradient(circle at 78% 15%, rgba(120,255,181,.22), transparent 34%),
    rgba(7,14,24,.76);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 26px 70px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(16px);
}
.cinematic-weather::before{
  content:'';
  position:absolute;
  left:-20%;
  right:-20%;
  top:38%;
  height:72px;
  background:linear-gradient(90deg, transparent, rgba(104,255,171,.08), rgba(220,255,139,.22), rgba(86,236,184,.10), transparent);
  filter:blur(3px);
  transform:rotate(-7deg);
  pointer-events:none;
}
.cinematic-weather__glow{
  position:absolute;
  width:180px;
  height:180px;
  right:-58px;
  top:-70px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(116,255,174,.26), transparent 62%);
  pointer-events:none;
}
.cinematic-weather__label{
  position:relative;
  z-index:1;
  display:inline-flex;
  padding:8px 13px;
  border-radius:999px;
  border:1px solid rgba(255,213,94,.25);
  background:rgba(255,213,94,.10);
  color:#ffd86b;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.cinematic-weather__main{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:22px;
  margin-top:34px;
}
.cinematic-weather__temp{
  font-size:54px;
  line-height:.92;
  font-weight:900;
  letter-spacing:-.05em;
  text-shadow:0 8px 28px rgba(0,0,0,.35);
}
.cinematic-weather__status{
  max-width:210px;
  margin-top:12px;
  color:#e9f2ff;
  font-size:15px;
  line-height:1.45;
  font-weight:700;
}
.cinematic-weather__time{
  padding-top:8px;
  color:rgba(255,255,255,.64);
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.cinematic-weather__line{
  position:relative;
  z-index:1;
  height:2px;
  margin:34px 0 18px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(255,216,107,.85), rgba(109,255,181,.75), transparent);
  box-shadow:0 0 20px rgba(112,255,182,.28);
}
.cinematic-weather__footer{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  gap:14px;
  color:rgba(255,255,255,.78);
  font-size:13px;
  font-weight:800;
}
.home-highlights{margin-top:-38px !important;}
.home-highlights .highlight-card .btn,
.home-highlights .highlight-card a.btn,
.home-highlights .highlight-card a.btn.gold{
  background:linear-gradient(180deg,#ffd86b,#d99a27) !important;
  color:#251908 !important;
  border:1px solid rgba(255,224,134,.72) !important;
  box-shadow:0 14px 30px rgba(201,137,31,.28) !important;
  min-height:54px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:16px !important;
  font-weight:900 !important;
}
.today-card{min-height:auto !important; padding:26px !important;}
.quick-card{padding:24px !important;}
@media(max-width:1100px){
  .hero{
    grid-template-columns:1fr !important;
    min-height:auto !important;
    padding:0 20px 36px !important;
    gap:22px !important;
  }
  .hero-content{padding:48px 0 0 !important;max-width:100% !important;}
  .cinematic-weather{width:min(100%,420px);margin:0 !important;}
  .home-highlights{margin-top:0 !important;}
}
@media(max-width:640px){
  .cinematic-weather{width:100%;min-height:240px;padding:20px;border-radius:24px;}
  .cinematic-weather__temp{font-size:46px;}
  .cinematic-weather__main{margin-top:26px;}
}

/* FINAL FIX: balanced hero + premium cinematic weather preview */
.hero{
  display:grid !important;
  grid-template-columns:minmax(0, 760px) minmax(280px, 320px) !important;
  justify-content:center !important;
  align-items:center !important;
  column-gap:clamp(28px, 6vw, 86px) !important;
  min-height:680px !important;
  padding:116px 48px 70px !important;
  box-sizing:border-box !important;
}
.hero-content{
  max-width:760px !important;
  padding:0 !important;
  margin:0 !important;
}
.hero h1{max-width:720px !important;}
.hero .lead{max-width:560px !important;}
.hero .features{
  max-width:720px !important;
  margin-top:28px !important;
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
}
.hero-weather-card{display:none !important;}
.cinematic-weather{
  position:relative !important;
  width:100% !important;
  max-width:318px !important;
  min-height:214px !important;
  margin:34px 0 0 !important;
  padding:22px !important;
  align-self:center !important;
  justify-self:end !important;
  overflow:hidden !important;
  border-radius:26px !important;
  color:#fff !important;
  background:
    linear-gradient(160deg, rgba(9,18,28,.78), rgba(8,12,18,.66)),
    radial-gradient(circle at 74% 0%, rgba(83,255,157,.18), transparent 38%) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 22px 58px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.10) !important;
  backdrop-filter:blur(14px) !important;
}
.cinematic-weather::before{
  content:'' !important;
  position:absolute !important;
  left:-22% !important;
  right:-22% !important;
  top:58px !important;
  height:54px !important;
  background:linear-gradient(90deg, transparent, rgba(91,255,170,.08), rgba(220,255,126,.22), rgba(91,255,170,.08), transparent) !important;
  filter:blur(5px) !important;
  transform:rotate(-8deg) !important;
  pointer-events:none !important;
}
.cinematic-weather__glow{
  position:absolute !important;
  inset:auto -42px -52px auto !important;
  width:150px !important;
  height:150px !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(255,216,107,.18), transparent 62%) !important;
  pointer-events:none !important;
}
.cinematic-weather__label{
  position:relative !important;
  z-index:1 !important;
  display:inline-flex !important;
  padding:7px 12px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,216,107,.28) !important;
  background:rgba(255,216,107,.08) !important;
  color:#ffd86b !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
}
.cinematic-weather__main{
  position:relative !important;
  z-index:1 !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
  margin-top:26px !important;
}
.cinematic-weather__temp{
  font-size:46px !important;
  line-height:.9 !important;
  font-weight:950 !important;
  letter-spacing:-.055em !important;
}
.cinematic-weather__status{
  max-width:210px !important;
  margin-top:10px !important;
  color:#eaf2ff !important;
  font-size:13px !important;
  line-height:1.35 !important;
  font-weight:800 !important;
}
.cinematic-weather__time{
  padding:6px 9px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.10) !important;
  color:rgba(255,255,255,.74) !important;
  font-size:11px !important;
  font-weight:900 !important;
  text-transform:uppercase !important;
  letter-spacing:.07em !important;
  white-space:nowrap !important;
}
.cinematic-weather__line{
  position:relative !important;
  z-index:1 !important;
  height:2px !important;
  margin:24px 0 15px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, rgba(255,216,107,.85), rgba(112,255,181,.65), transparent) !important;
  box-shadow:0 0 18px rgba(112,255,181,.22) !important;
}
.cinematic-weather__footer{
  position:relative !important;
  z-index:1 !important;
  display:flex !important;
  justify-content:space-between !important;
  gap:12px !important;
  color:rgba(255,255,255,.74) !important;
  font-size:12px !important;
  font-weight:850 !important;
}
.home-highlights{
  margin-top:-18px !important;
}
.today-card{
  min-height:0 !important;
  padding:24px !important;
}
.quick-card{
  min-height:0 !important;
  padding:24px !important;
}
@media(max-width:1100px){
  .hero{
    grid-template-columns:1fr !important;
    min-height:auto !important;
    padding:110px 22px 52px !important;
  }
  .hero-content{max-width:760px !important;}
  .cinematic-weather{
    justify-self:start !important;
    margin:26px 0 0 !important;
    max-width:360px !important;
  }
}
@media(max-width:720px){
  .hero .features{grid-template-columns:1fr 1fr !important;}
  .cinematic-weather{max-width:100% !important;}
}

/* HARD FIX 2026-05-19: hero alignment + cinematic weather blends with page background */
.hero::after{
  content:none !important;
  display:none !important;
}
.hero{
  grid-template-columns:minmax(0, 735px) minmax(260px, 300px) !important;
  column-gap:clamp(26px, 5vw, 70px) !important;
  padding:112px 46px 64px !important;
  align-items:center !important;
}
.cinematic-weather{
  max-width:300px !important;
  min-height:198px !important;
  margin:12px 0 0 !important;
  padding:20px !important;
  border-radius:24px !important;
  background:rgba(6, 12, 20, .34) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:0 18px 48px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08) !important;
  backdrop-filter:blur(10px) saturate(122%) !important;
  -webkit-backdrop-filter:blur(10px) saturate(122%) !important;
}
.cinematic-weather::before{
  top:48px !important;
  height:44px !important;
  background:linear-gradient(90deg, transparent, rgba(87,255,166,.10), rgba(190,255,100,.24), rgba(87,255,166,.10), transparent) !important;
  opacity:.85 !important;
  filter:blur(5px) !important;
}
.cinematic-weather__glow{
  width:130px !important;
  height:130px !important;
  right:-46px !important;
  bottom:-48px !important;
  background:radial-gradient(circle, rgba(100,255,165,.16), transparent 64%) !important;
}
.cinematic-weather__label{
  background:rgba(255,216,107,.07) !important;
  border-color:rgba(255,216,107,.24) !important;
}
.cinematic-weather__main{
  margin-top:22px !important;
}
.cinematic-weather__temp{
  font-size:43px !important;
}
.cinematic-weather__status{
  font-size:12.5px !important;
  line-height:1.32 !important;
}
.cinematic-weather__time{
  background:rgba(255,255,255,.065) !important;
}
.cinematic-weather__line{
  margin:20px 0 14px !important;
}
.cinematic-weather__footer{
  font-size:11.5px !important;
}
@media(max-width:1100px){
  .hero{padding:104px 22px 46px !important;}
  .cinematic-weather{max-width:340px !important;margin:18px 0 0 !important;}
}

/* FINAL LIVE CINEMATIC WEATHER + HERO HIERARCHY CLEAN OVERRIDE */
.hero{
  min-height:780px !important;
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(300px, 410px) !important;
  gap:56px !important;
  align-items:center !important;
  padding:118px clamp(28px,6vw,92px) 64px !important;
  overflow:hidden !important;
}
.hero-content{
  max-width:760px !important;
  margin:0 !important;
  padding:0 !important;
  position:relative !important;
  z-index:2 !important;
}
.hero h1{max-width:720px !important;}
.hero .lead{max-width:590px !important;}
.hero .actions{display:flex !important;gap:14px !important;flex-wrap:wrap !important;margin:28px 0 20px !important;}
.hero .actions .btn{height:54px !important;min-width:150px !important;display:inline-flex !important;align-items:center !important;justify-content:center !important;}
.hero .features{
  width:min(650px,100%) !important;
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  margin-top:18px !important;
  border-radius:18px !important;
  overflow:hidden !important;
  background:rgba(6,18,31,.46) !important;
  border:1px solid rgba(255,255,255,.13) !important;
  backdrop-filter:blur(14px) !important;
  box-shadow:0 18px 50px rgba(0,0,0,.23) !important;
}
.hero .features div{
  min-height:88px !important;
  padding:18px 18px !important;
  border-right:1px solid rgba(255,255,255,.10) !important;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018)) !important;
}
.hero .features div:last-child{border-right:0 !important;}
.hero .features strong{font-size:14px !important;line-height:1.2 !important;}
.hero .features small{display:block !important;margin-top:7px !important;color:rgba(235,244,255,.70) !important;font-size:12px !important;}
.live-weather-card,
.cinematic-weather{
  position:relative !important;
  z-index:2 !important;
  justify-self:end !important;
  width:min(100%,390px) !important;
  min-height:300px !important;
  margin:20px 0 0 !important;
  padding:26px !important;
  border-radius:28px !important;
  overflow:hidden !important;
  background:linear-gradient(135deg,rgba(6,19,29,.54),rgba(9,35,35,.34) 48%,rgba(4,9,16,.48)) !important;
  border:1px solid rgba(255,255,255,.20) !important;
  box-shadow:0 28px 70px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.12) !important;
  backdrop-filter:blur(12px) saturate(1.12) !important;
  color:#fff !important;
}
.live-weather-card::before,
.cinematic-weather::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    radial-gradient(circle at 82% 18%,rgba(98,255,160,.28),transparent 28%),
    linear-gradient(125deg,transparent 8%,rgba(84,255,154,.18) 44%,transparent 70%) !important;
  opacity:.72 !important;
  pointer-events:none !important;
}
.live-weather-card::after,
.cinematic-weather::after{
  content:"" !important;
  position:absolute !important;
  right:-24px !important;top:-20px !important;
  width:210px !important;height:210px !important;
  background:url('images/hero.jpg') center/cover !important;
  opacity:.22 !important;
  filter:blur(1px) saturate(1.25) !important;
  border-radius:50% !important;
  pointer-events:none !important;
}
.cinematic-weather__aurora{
  position:absolute;inset:0;pointer-events:none;opacity:.58;
  background:linear-gradient(105deg,transparent 18%,rgba(104,255,149,.0) 26%,rgba(104,255,149,.35) 45%,rgba(208,255,113,.16) 58%,transparent 78%);
  filter:blur(10px);
  animation:auroraDrift 7s ease-in-out infinite alternate;
}
@keyframes auroraDrift{from{transform:translateX(-18px) translateY(-8px) skewX(-8deg)}to{transform:translateX(22px) translateY(8px) skewX(7deg)}}
.cinematic-weather__head{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px;}
.cinematic-weather__label{
  display:inline-flex !important;align-items:center !important;height:30px !important;padding:0 13px !important;
  border-radius:999px !important;border:1px solid rgba(255,211,80,.45) !important;
  background:rgba(255,211,80,.10) !important;color:#ffe47a !important;
  font-size:12px !important;font-weight:900 !important;letter-spacing:.08em !important;text-transform:uppercase !important;
}
.cinematic-weather__dot{width:8px;height:8px;border-radius:50%;background:#48f59a;box-shadow:0 0 18px rgba(72,245,154,.95);}
.cinematic-weather__main{position:relative;z-index:2;display:flex !important;align-items:flex-start !important;justify-content:space-between !important;gap:22px !important;margin:0 0 18px !important;}
.cinematic-weather__temp{font-size:62px !important;line-height:.9 !important;font-weight:900 !important;letter-spacing:-.06em !important;text-shadow:0 8px 28px rgba(0,0,0,.45) !important;}
.cinematic-weather__status{margin-top:12px !important;font-size:15px !important;line-height:1.3 !important;font-weight:800 !important;color:#fff !important;max-width:230px !important;}
.cinematic-weather__feels{margin-top:8px;color:rgba(235,245,255,.72);font-size:13px;font-weight:700;}
.cinematic-weather__icon{font-size:34px;filter:drop-shadow(0 6px 15px rgba(0,0,0,.35));opacity:.9;}
.cinematic-weather__time{display:none !important;}
.cinematic-weather__line{position:relative;z-index:2;height:2px !important;margin:20px 0 18px !important;border-radius:999px !important;background:linear-gradient(90deg,#fff 0 28%,rgba(103,255,160,.85) 28% 62%,rgba(255,255,255,.18) 62% 100%) !important;}
.cinematic-weather__footer{position:relative;z-index:2;display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:10px !important;color:#fff !important;}
.cinematic-weather__footer span{display:flex !important;flex-direction:column !important;gap:3px !important;padding:10px 8px !important;border-radius:14px !important;background:rgba(255,255,255,.06) !important;border:1px solid rgba(255,255,255,.10) !important;}
.cinematic-weather__footer b{font-size:14px;font-weight:900;white-space:nowrap;}
.cinematic-weather__footer small{font-size:11px;color:rgba(235,245,255,.66);font-weight:700;text-transform:lowercase;}
.cinematic-weather__updated{position:relative;z-index:2;margin-top:16px;font-size:12px;color:rgba(183,255,210,.82);font-weight:700;}
@media(max-width:1050px){
  .hero{grid-template-columns:1fr !important;min-height:auto !important;gap:24px !important;padding:104px 22px 46px !important;}
  .live-weather-card,.cinematic-weather{justify-self:start !important;width:min(100%,380px) !important;margin:4px 0 0 !important;}
  .hero .features{grid-template-columns:1fr 1fr !important;}
}
@media(max-width:620px){
  .hero h1{font-size:42px !important;}
  .hero .features{grid-template-columns:1fr !important;}
  .live-weather-card,.cinematic-weather{min-height:270px !important;padding:22px !important;border-radius:22px !important;}
  .cinematic-weather__temp{font-size:50px !important;}
}


/* FINAL CLEANUP: removed duplicated hero CTA buttons, tighten hero composition */
.hero .actions{display:none !important;}
.hero .lead{margin-bottom:24px !important;}
.hero .features{margin-top:24px !important;}
@media(min-width:1051px){
  .hero{grid-template-columns:minmax(0, 760px) minmax(300px, 390px) !important;gap:64px !important;}
  .hero-content{transform:translateY(-8px) !important;}
  .live-weather-card,.cinematic-weather{transform:translateY(-4px) !important;}
}

/* FINAL UPLOAD FIX: compact first screen, less empty space */
.hero{
  min-height:610px !important;
  padding:94px clamp(24px,5vw,78px) 42px !important;
  gap:46px !important;
  background-position:center 42% !important;
}
.hero-content{transform:none !important;}
.hero h1{margin-bottom:18px !important;}
.hero .lead{margin-bottom:18px !important;}
.hero .features{
  margin-top:18px !important;
  width:min(620px,100%) !important;
}
.hero .features div{
  min-height:74px !important;
  padding:14px 14px !important;
}
.live-weather-card,.cinematic-weather{
  min-height:254px !important;
  width:min(100%,360px) !important;
  padding:22px !important;
  margin:0 !important;
  transform:none !important;
  align-self:center !important;
}
.cinematic-weather__head{margin-bottom:18px !important;}
.cinematic-weather__temp{font-size:54px !important;}
.cinematic-weather__status{font-size:14px !important;}
.cinematic-weather__line{margin:16px 0 14px !important;}
.cinematic-weather__updated{margin-top:12px !important;}
.home-highlights{margin-top:0 !important;}
@media(max-width:1050px){
  .hero{min-height:auto !important;padding:92px 20px 38px !important;gap:22px !important;}
  .live-weather-card,.cinematic-weather{width:min(100%,360px) !important;min-height:244px !important;}
}
@media(max-width:620px){
  .hero{padding:84px 16px 34px !important;}
  .hero h1{font-size:40px !important;}
  .hero .features div{min-height:68px !important;}
  .live-weather-card,.cinematic-weather{min-height:238px !important;padding:20px !important;}
  .cinematic-weather__temp{font-size:48px !important;}
}

/* FINAL CHECKED FIX: weather card uses the hero/page background, not a separate block */
.live-weather-card,
.cinematic-weather{
  background:rgba(4, 12, 22, .18) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 20px 58px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08) !important;
  backdrop-filter:blur(8px) saturate(1.08) !important;
  -webkit-backdrop-filter:blur(8px) saturate(1.08) !important;
}
.live-weather-card::after,
.cinematic-weather::after{
  display:none !important;
  content:none !important;
}
.live-weather-card::before,
.cinematic-weather::before{
  background:
    radial-gradient(circle at 78% 18%,rgba(98,255,160,.18),transparent 30%),
    linear-gradient(120deg,transparent 16%,rgba(84,255,154,.13) 45%,transparent 74%) !important;
  opacity:.55 !important;
}
.cinematic-weather__aurora{
  opacity:.48 !important;
}

/* ===== FINAL FIX: центрируем верхнее меню после очистки шапки ===== */
.header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  width:100% !important;
  height:94px !important;
  padding:0 72px !important;
  display:grid !important;
  grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr) !important;
  align-items:center !important;
  gap:24px !important;
  background:rgba(2,8,20,.78) !important;
  backdrop-filter:blur(16px) !important;
  border-bottom:1px solid rgba(255,255,255,.06) !important;
  z-index:1000 !important;
}

.header .brand{
  grid-column:1 !important;
  justify-self:start !important;
}

.header nav{
  grid-column:2 !important;
  justify-self:center !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:34px !important;
}

.header .right-head{
  grid-column:3 !important;
  justify-self:end !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  min-width:80px !important;
}

.header nav a{
  padding:34px 0 12px !important;
}

@media(max-width:1100px){
  .header{
    position:relative !important;
    height:auto !important;
    padding:18px !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .header .brand,
  .header nav,
  .header .right-head{
    grid-column:1 !important;
    justify-self:center !important;
  }
  .header nav{
    flex-wrap:wrap !important;
    gap:18px 24px !important;
  }
  .header nav a{
    padding:8px 0 10px !important;
  }
}
