/* ============================================================
   Новый год 2027 — праздничное оформление страницы (изолировано
   под body.ny-page; остальные страницы не затрагивает)
   ============================================================ */

body.ny-page{
  background:#0d2231;
  background-image:
    radial-gradient(1100px 500px at 50% -12%, #16406b66 0%, transparent 65%),
    linear-gradient(180deg, #0d2231 0%, #123b30 46%, #0d2231 100%);
  background-attachment:fixed;
  color:#e8efe9;
}

/* --- падающий снег: два слоя, разные скорость/размер --- */
body.ny-page::before, body.ny-page::after{
  content:''; position:fixed; inset:-60px 0; z-index:5; pointer-events:none;
  background-image:radial-gradient(4px 4px at 20px 15px, #fff 45%, transparent 50%),
                   radial-gradient(3px 3px at 130px 80px, #fff 45%, transparent 50%),
                   radial-gradient(2.5px 2.5px at 70px 130px, #fff 45%, transparent 50%),
                   radial-gradient(3.5px 3.5px at 190px 40px, #fff 45%, transparent 50%),
                   radial-gradient(2px 2px at 240px 110px, #fff 45%, transparent 50%);
  background-size:260px 160px;
  opacity:.55;
  animation:nySnow 9.5s linear infinite;
}
body.ny-page::after{
  background-image:radial-gradient(2px 2px at 40px 25px, #fff 40%, transparent 50%),
                   radial-gradient(1.6px 1.6px at 165px 70px, #fff 40%, transparent 50%),
                   radial-gradient(2.2px 2.2px at 90px 120px, #fff 40%, transparent 50%),
                   radial-gradient(1.5px 1.5px at 210px 10px, #fff 40%, transparent 50%);
  background-size:230px 140px;
  opacity:.4;
  animation:nySnow 15s linear infinite;
}
@keyframes nySnow{
  from{ transform:translateY(-160px); }
  to  { transform:translateY(calc(100vh + 60px)); }
}
@media (prefers-reduced-motion: reduce){
  body.ny-page::before, body.ny-page::after{ animation:none; }
}

/* --- базовая типографика крупнее --- */
body.ny-page h1{ font-size:72px; font-weight:600; letter-spacing:.01em; }
body.ny-page h2{ font-size:44px; text-align:left; color:#f3d081; text-transform:none; letter-spacing:0; margin-bottom:.7em; }
body.ny-page h3{ font-size:26px; color:#fff; }
body.ny-page .section-head{ max-width:900px; }
body.ny-page .section-head h2{ text-align:left; }
body.ny-page .section-head p{ font-size:19px; color:#c3d2ca; line-height:1.75; }
body.ny-page p{ color:#d7e1da; }
body.ny-page a{ color:#8fd0b3; }
body.ny-page a:hover{ color:#b7e5cd; }

body.ny-page .section{ position:relative; background:transparent; }
body.ny-page .section--soft{ background:#ffffff0d; }

/* --- декоративные элементы --- */
.ny-eyebrow{
  display:flex; align-items:center; gap:14px; margin-bottom:22px;
  color:#f3d081; font-size:12px; font-weight:600; letter-spacing:.24em; text-transform:uppercase;
}
.ny-eyebrow::before{ content:''; width:36px; height:1px; background:currentColor; }
.ny-chip{
  display:inline-block; padding:12px 26px; border:1px solid #f3d08166; border-radius:999px;
  color:#f3d081; font-size:16px; letter-spacing:.08em; background:#f3d08114;
}
.ny-card{
  background:#ffffff10; border:1px solid #ffffff22; border-radius:18px; padding:34px 30px;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
}
.ny-card h3{ margin-top:0; }
.ny-card p{ margin:0 0 8px; font-size:15.5px; line-height:1.75; color:#ccd8d1; }
.ny-card svg{ width:34px; height:34px; fill:none; stroke:#f3d081; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; margin-bottom:16px; }
.ny-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }

/* --- списки «включает» --- */
body.ny-page .amenities li{ color:#dfe8e2; border-bottom:1px dashed #ffffff2e; font-size:16px; padding:10px 0; }
body.ny-page .amenities li b{ color:#fff; }

/* --- «Тур включает»: список с иконками в 2 колонки --- */
.ny-tur{ display:grid; grid-template-columns:1fr 1fr; gap:0 46px; max-width:1000px; }
.ny-tur li{
  display:flex; align-items:flex-start; gap:16px;
  border-bottom:1px dashed #ffffff2e; padding:13px 0; margin:0;
  font-size:16.5px; line-height:1.55; color:#e9f1ec;
}
.ny-tur li svg{
  width:26px; height:26px; flex:none; margin-top:2px;
  fill:none; stroke:#f3d081; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
}
@media (max-width:960px){
  .ny-tur{ grid-template-columns:1fr; gap:0; }
  .ny-tur li{ font-size:15px; }
}

/* --- hero --- */
body.ny-page .hero{ min-height:88vh; }
body.ny-page .hero::after{
  background:linear-gradient(180deg, #06121ecc 0%, #0b243655 40%, #091b29dd 100%);
}
body.ny-page .hero .kicker{ color:#f3d081; font-size:13px; }
body.ny-page .hero p{ font-size:19px; color:#eef4ef; }
body.ny-page .hero .ny-lead{ max-width:780px; }
.ny-hero-badge{
  display:inline-flex; align-items:center; gap:10px; margin:0 0 18px;
  padding:9px 20px; border:1px solid #f3d081; border-radius:999px;
  color:#f3d081; background:#0d223166; font-size:14px; letter-spacing:.1em; text-transform:uppercase;
}
.ny-btn{
  display:inline-block; padding:17px 40px; border-radius:999px; border:0; cursor:pointer;
  background:linear-gradient(180deg,#f6d98d,#e2b45f); color:#241a06 !important;
  font-size:14px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; transition:.2s;
}
.ny-btn:hover{ filter:brightness(1.08); transform:translateY(-1px); }

/* --- цены: плитки в ряд, фото небольшое, цена вынесена крупно --- */
.ny-price-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  max-width:1060px; margin:0 auto;
}
.ny-price-card{
  display:block; background:#ffffff0d; border:1px solid #ffffff26; border-radius:16px;
  overflow:hidden; box-shadow:0 22px 60px #00000040; transition:.2s;
}
.ny-price-card:hover{ transform:translateY(-3px); border-color:#f3d08166; }
.ny-price-card img{ display:block; width:100%; height:170px; object-fit:cover; }
.ny-price-card .npc-body{ display:block; padding:22px 24px 24px; }
.ny-price-card .npc-name{
  display:block; font-size:19px; color:#fff; letter-spacing:.02em; margin-bottom:10px;
}
.ny-price-card .npc-price{
  display:block; font-family:Georgia,'Times New Roman',serif;
  font-size:32px; font-weight:700; color:#f3d081; line-height:1.1;
}
.ny-price-card .npc-price small{
  font-family:'Manrope',Arial,sans-serif; font-size:13px; font-weight:400;
  color:#9fb2a7; letter-spacing:.08em; text-transform:uppercase; margin-left:6px;
}

/* --- доп. размещение / другие даты: шире, плитки, название отдельно от цены --- */
.ny-wide{ max-width:1150px; margin:0 auto; }

.ny-tile-grid{ display:grid; gap:18px; margin-top:18px; }
.ny-tile-grid--4{ grid-template-columns:repeat(4,1fr); }
.ny-tile-grid--3{ grid-template-columns:repeat(3,1fr); }
.ny-tile-grid--1{ grid-template-columns:1fr; }

.ny-tile{
  display:flex; flex-direction:column; justify-content:space-between; gap:10px;
  background:#ffffff0d; border:1px solid #ffffff26; border-radius:14px;
  padding:22px 24px;
}
.ny-tile .nt-name{
  display:block; font-size:15.5px; letter-spacing:.02em; color:#fff; line-height:1.45;
}
.ny-tile .nt-price{
  display:block; font-family:Georgia,'Times New Roman',serif;
  font-size:30px; font-weight:700; color:#f3d081; line-height:1.15; white-space:nowrap;
}
.ny-tile .nt-note{
  display:block; font-size:12.5px; color:#9fb2a7; line-height:1.5; margin-top:-2px;
}
.ny-date-chip{
  display:inline-block; margin-top:26px; padding:8px 20px;
  border:1px solid #f3d08144; border-radius:999px; background:#f3d08112;
  color:#f3d081; font-size:13px; letter-spacing:.12em; text-transform:uppercase;
}

@media (max-width:960px){
  .ny-tile-grid--4{ grid-template-columns:repeat(2,1fr); }
  .ny-tile-grid--3{ grid-template-columns:repeat(2,1fr); }
  .ny-tile .nt-price{ font-size:24px; }
}
@media (max-width:600px){
  .ny-tile-grid--4, .ny-tile-grid--3{ grid-template-columns:1fr; }
}

.ny-price-note{ font-size:14px; color:#9fb2a7; margin-top:16px; }
.ny-price-table li b{ color:#f3d081; font-weight:600; }

/* --- панель CTA --- */
body.ny-page .panel{ min-height:52vh; background-color:#0a1a26; }
body.ny-page .panel::after{ background:linear-gradient(90deg, #06121ecc 0%, #07162299 60%, #06121ec2 100%); }
body.ny-page .panel h2{ color:#f3d081; font-size:40px; }

/* --- форма --- */
body.ny-page .form-narrow input, body.ny-page .form-narrow textarea, body.ny-page .form-narrow select{
  background:#ffffff10; border-color:#ffffff2e; color:#eef4ef;
}
body.ny-page .form-narrow input::placeholder, body.ny-page .form-narrow textarea::placeholder{ color:#92a79c; }
body.ny-page .form-narrow input:focus, body.ny-page .form-narrow textarea:focus, body.ny-page .form-narrow select:focus{ border-color:#f3d081; outline:0; }
body.ny-page .form-note{ color:#9fb2a7; }

/* --- адаптация --- */
@media (max-width:960px){
  body.ny-page h1{ font-size:42px; }
  body.ny-page h2{ font-size:30px; }
  body.ny-page h3{ font-size:22px; }
  body.ny-page .panel h2{ font-size:26px; }
  .ny-grid-3{ grid-template-columns:1fr; }
  .ny-price-grid{ grid-template-columns:1fr; max-width:440px; }
  body.ny-page .section-head p{ font-size:16px; }
}
@media (max-width:600px){
  body.ny-page h1{ font-size:30px; }
  body.ny-page .hero{ min-height:78vh; }
  .ny-chip{ font-size:13px; padding:9px 18px; }
  .ny-hero-badge{ font-size:11px; padding:7px 14px; }
}
