:root{
  --bg: #fff9fb;
  --card: rgba(255,255,255,.78);
  --text: #1b1320;
  --muted: rgba(27,19,32,.72);
  --line: rgba(27,19,32,.10);

  --pink-1:#ffeaf2;
  --pink-2:#ffd3e1;
  --pink-3:#ffb3cd;

  --gold-1:#caa25a;
  --gold-2:#f3d7a1;

  --shadow: 0 18px 50px rgba(25, 10, 30, .10);
  --radius: 18px;
  --radius2: 28px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Manrope, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--text);
  background:
    radial-gradient(900px 500px at 15% 10%, rgba(255,179,205,.35), transparent 70%),
    radial-gradient(1000px 600px at 85% 30%, rgba(243,215,161,.35), transparent 70%),
    linear-gradient(180deg, var(--bg), #ffffff 40%, #fff 100%);
}

a{color:inherit}

.container{
  width:min(1120px, calc(100% - 40px));
  margin:0 auto;
}

.topbar{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(12px);
  background: rgba(255,249,251,.72);
  border-bottom: 1px solid var(--line);
}

/* Smooth anchor scrolling + offset for sticky header */
html{scroll-behavior:smooth; scroll-padding-top: 92px;}
.topbar__inner{
  display:flex;
  align-items:center;
  gap:18px;
  padding:14px 0;
  flex-wrap: nowrap;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
}
.brand__mark{
  width:14px;
  height:14px;
  border-radius:999px;
  background: linear-gradient(135deg, var(--pink-3), var(--gold-2));
  box-shadow: 0 0 0 4px rgba(255,179,205,.25);
}
.brand__text{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-weight:800; letter-spacing:.2px}
.brand__sub{font-size:12px; color:var(--muted)}

.nav{display:flex; gap:14px; margin-left:10px; flex-wrap:wrap}
.nav__link{
  text-decoration:none;
  font-weight:600;
  font-size:13px;
  color: rgba(27,19,32,.72);
  padding:8px 10px;
  border-radius:999px;
}
.nav__link:hover{background: rgba(255,211,225,.35)}

.topbar__cta{margin-left:auto; display:flex; gap:10px; align-items:center}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:999px;
  padding:10px 14px;
  font-weight:750;
  text-decoration:none;
  border:1px solid transparent;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
  user-select:none;
}
.btn:active{transform: translateY(1px)}

.btn--primary{
  background: linear-gradient(135deg, #ffb3cd, #ffd3e1 45%, #f3d7a1);
  border-color: rgba(202,162,90,.35);
  box-shadow: 0 12px 30px rgba(255,179,205,.25);
}
.btn--primary:hover{box-shadow: 0 16px 38px rgba(255,179,205,.33)}

.btn--ghost{
  background: rgba(255,255,255,.6);
  border-color: var(--line);
}
.btn--ghost:hover{background: rgba(255,234,242,.75)}

.btn--lg{padding:12px 18px; font-size:14px}

.hero{padding:46px 0 18px; position:relative; overflow:hidden}
.hero::before{
  content:"";
  position:absolute;
  inset:-40px;
  background-image: url("assets/hero-bg.jpg");
  background-size: cover;
  background-position: center;
  filter: blur(18px) saturate(1.05);
  opacity: .18;
  transform: scale(1.08);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(255,179,205,.30), transparent 65%),
    radial-gradient(900px 520px at 80% 30%, rgba(243,215,161,.26), transparent 70%),
    linear-gradient(180deg, rgba(255,249,251,.75), rgba(255,255,255,.12));
}
.hero__grid{position:relative; z-index:1; display:grid; grid-template-columns: 1.1fr .9fr; gap:28px; align-items:center;}
.stage--hero{padding-top: 6px;}

/* Stage: 3-column layout (left photos / content / right photos) */
.stage{
  position: relative;
  display: grid;
  grid-template-columns: 220px 1fr 220px;
  column-gap: 28px;
  /* IMPORTANT: keep side columns the same height as content so absolute polaroids
     (especially those positioned from bottom) don't float into соседние секции. */
  align-items: stretch;
}
.stage__main{min-width: 0;}
.stage__content{position:relative; z-index:2;}
.stage__side{position: relative; z-index: 1; min-height: 100%;}

/* Polaroid-style decorative photos */
.polaroids{display:none;}
.pol{
  position: absolute;
  width: 210px;
  background: rgba(255,255,255,.92);
  border-radius: 12px;
  padding: 10px 10px 30px;
  box-shadow: 0 18px 50px rgba(25,10,30,.16);
  border: 1px solid rgba(27,19,32,.10);
  transform-origin: center;
  will-change: transform;
}
.pol img{
  width:100%;
  height: 156px;
  object-fit: cover;
  border-radius: 8px;
  filter: saturate(1.02) contrast(1.02);
}
.pol::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:10px;
  height:10px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,179,205,.55), rgba(243,215,161,.45));
  opacity:.35;
}

/* Per-section placements — inside LEFT/RIGHT side columns */
/* HERO: 2 left, 1 right */
.pol--hero-l1{left:0; top:10px; transform: rotate(-8deg)}
.pol--hero-l2{left:6px; top:230px; transform: rotate(6deg)}
.pol--hero-r1{right:0; top:120px; transform: rotate(10deg)}

/* ABOUT: one per side */
.pol--about-l{left:0; top:54px; transform: rotate(-7deg)}
.pol--about-r{right:0; top:74px; transform: rotate(8deg)}

/* BOOKING: one per side */
.pol--book-l{left:0; top:34px; transform: rotate(7deg)}
.pol--book-r{right:0; top:46px; transform: rotate(-8deg)}

/* CONTACTS: one per side near bottom */
.pol--con-l{left:0; bottom:34px; transform: rotate(-6deg)}
.pol--con-r{right:0; bottom:20px; transform: rotate(9deg)}

.pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:700;
  color: rgba(27,19,32,.72);
  background: rgba(255,255,255,.66);
  border: 1px solid var(--line);
  padding:8px 12px;
  border-radius:999px;
}

.h1{font-size:44px; line-height:1.05; margin:14px 0 12px; letter-spacing:-.8px}
.h2{font-size:30px; margin:0 0 14px; letter-spacing:-.4px}
.h3{font-size:18px; margin:0 0 8px}
.lead{font-size:16px; color:var(--muted); line-height:1.6; margin:0 0 18px}

.accent{
  background: linear-gradient(90deg, var(--gold-1), #d8b06b, #ff86b3);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.price-card{
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius2);
  padding:16px;
  box-shadow: var(--shadow);
}
.price-card__title{font-weight:900; font-size:14px; letter-spacing:.2px; margin-bottom:8px}
.price-row{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap}

.price{display:flex; align-items:baseline; gap:10px}
.price__now{font-size:32px; font-weight:900}
.price__old{font-size:16px; font-weight:800; color: rgba(27,19,32,.45); text-decoration: line-through}
.price-card__note{font-size:12px; color: rgba(27,19,32,.6); font-weight:650}

.hero__buttons{display:flex; gap:12px; flex-wrap:wrap; margin-top:12px}

.trust{display:flex; gap:14px; flex-wrap:wrap; margin-top:16px}
.trust__item{
  background: rgba(255,255,255,.58);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding:10px 12px;
  min-width: 150px;
}
.trust__num{display:block; font-size:18px; font-weight:900}
.trust__txt{display:block; font-size:12px; color: rgba(27,19,32,.68); font-weight:650}

.card-visual{
  position:relative;
  border-radius: 32px;
  overflow:hidden;
  border: 1px solid rgba(202,162,90,.25);
  background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.58));
  box-shadow: var(--shadow);
  min-height: 420px;
}
.card-visual__glow{
  position:absolute;
  inset:-40px;
  background:
    radial-gradient(260px 200px at 35% 18%, rgba(255,179,205,.60), transparent 70%),
    radial-gradient(320px 260px at 78% 55%, rgba(243,215,161,.55), transparent 75%),
    radial-gradient(280px 240px at 15% 75%, rgba(255,211,225,.55), transparent 75%);
  filter: blur(10px);
}
.card-visual__content{position:relative; padding:22px}
.mini-title{font-weight:900; letter-spacing:.2px; margin-bottom:12px}

.tech-list{list-style:none; padding:0; margin:0; display:grid; gap:10px}
.tech-list li{
  padding:10px 12px;
  border-radius: 16px;
  border: 1px solid rgba(27,19,32,.10);
  background: rgba(255,255,255,.66);
  font-weight:750;
  color: rgba(27,19,32,.82);
}
.mini-note{margin-top:12px; font-size:12px; color: rgba(27,19,32,.65); font-weight:650}

.section{padding:44px 0}
.section--soft{
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(27,19,32,.06);
}
.section--soft::before{
  content:"";
  position:absolute;
  inset:-30px;
  background-image: url("assets/soft-bg.jpg");
  background-size: cover;
  background-position: 80% 40%;
  filter: blur(22px) saturate(1.02);
  opacity: .12;
  transform: scale(1.10);
}
.section--soft::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.78)),
    radial-gradient(720px 460px at 15% 70%, rgba(255,179,205,.14), transparent 75%),
    radial-gradient(640px 420px at 88% 30%, rgba(243,215,161,.10), transparent 70%);
}
.section--soft > .container{position:relative; z-index:1;}

.grid2{display:grid; grid-template-columns: 1fr 1fr; gap:16px}
.grid3{display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; margin-top:16px}

.panel{
  background: rgba(255,255,255,.75);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding:16px;
  box-shadow: 0 12px 30px rgba(25,10,30,.06);
}

.feature{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(27,19,32,.10);
  border-radius: 20px;
  padding:16px;
}
.feature__title{font-weight:900; margin-bottom:6px}
.feature__text{color: rgba(27,19,32,.72); line-height:1.5}

.booking{margin-top:12px; display:flex; flex-direction:column; gap:10px}
.booking__alts{display:flex; align-items:center; justify-content:center; gap:10px; color: rgba(27,19,32,.68); font-weight:700}

.link{color: rgba(27,19,32,.86); text-decoration: none; border-bottom: 1px dashed rgba(202,162,90,.6)}
.link:hover{border-bottom-style: solid}

/* Contact icons (separate from links to avoid weird rendering issues) */
.kv__v--icon{
  display:flex;
  align-items:center;
  gap:10px;
}
.ico-bg{
  width:22px;
  height:22px;
  flex:0 0 22px;
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(25,10,30,.10);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.ico-bg--telegram{background-image:url("assets/icons/telegram.png");}
.ico-bg--max{background-image:url("assets/icons/max.png");}
.ico-bg--phone{background-image:url("assets/icons/phone.png");}

/* Keep inline links neat */
.link[data-tg], .link[data-max], .link[data-tel]{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.dot{opacity:.5}

.fineprint{font-size:12px; color: rgba(27,19,32,.62); line-height:1.5}

.faq{display:grid; gap:10px}
.faq__item{
  background: rgba(255,255,255,.75);
  border:1px solid var(--line);
  border-radius: 18px;
  padding:12px 14px;
}
.faq__item summary{cursor:pointer; font-weight:900; list-style:none}
.faq__item summary::-webkit-details-marker{display:none}
.faq__body{padding-top:8px; color: rgba(27,19,32,.72); line-height:1.55}

.kv{display:grid; grid-template-columns: 140px 1fr; gap:10px; padding:8px 0; border-bottom:1px solid rgba(27,19,32,.06)}
.kv:last-child{border-bottom:none}
.kv__k{font-weight:900; color: rgba(27,19,32,.70)}
.kv__v{font-weight:750}

.divider{height:1px; background: rgba(27,19,32,.08); margin:14px 0}

.panel--map iframe{
  width:100%;
  height: 320px;
  border:0;
  border-radius: 14px;
  background: rgba(255,255,255,.85);
}
.map-title{font-weight:900; margin-bottom:10px}
.map-note{margin-top:10px}

.footer{margin-top:18px; padding-top:18px; border-top: 1px solid rgba(27,19,32,.08)}
.footer__inner{display:flex; align-items:center; justify-content:space-between; gap:10px; color: rgba(27,19,32,.70); font-weight:700; flex-wrap:wrap}
.footer__right{display:flex; gap:10px; align-items:center; flex-wrap:wrap}

@media (max-width: 520px){
  /* Footer: keep links within screen, avoid overflow */
  .footer__right{
    width: 100%;
    justify-content: center;
    gap: 8px;
  }
  .footer__right .link{
    font-size: 12px;
  }
  .footer__right .dot{display:none}
}

@media (max-width: 1120px){
  .stage{grid-template-columns: 190px 1fr 190px;}
  .pol{width: 190px;}
  .pol img{height: 142px;}
}

@media (max-width: 940px){
  .hero__grid{grid-template-columns:1fr;}

  /* Mobile header layout:
     Row 1: brand (left) + CTA (right)
     Row 2: nav links in one line (horizontal scroll, no wrapping)
  */
  .topbar__inner{flex-wrap: wrap;}
  .brand{order:1;}
  .topbar__cta{order:2; margin-left:auto; gap:8px;}
  .btn{padding:9px 12px}
  .btn--ghost{display:none}

  .nav{
    order:3;
    width:100%;
    display:flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    gap: 8px;
    margin: 6px 0 0;
    padding-bottom: 6px;
  }
  .nav::-webkit-scrollbar{height: 6px;}
  .nav::-webkit-scrollbar-thumb{background: rgba(27,19,32,.12); border-radius: 999px;}
  .nav__link{white-space: nowrap; padding: 7px 9px; font-size: 12px;}

  /* On small screens: keep sides AFTER content (so hero doesn't start with photos) */
  .stage{grid-template-columns: 1fr; row-gap: 14px;}
  .stage__side{min-height: 0;}
  .stage__main{order: 1;}
  .stage__side--left{order: 2;}
  .stage__side--right{order: 3;}

  .stage__side--left, .stage__side--right{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:0;
  }

  /* Mobile "stacked photos" look: 2 per row + slight overlap */
  .pol{
    position:relative;
    left:auto; right:auto; top:auto; bottom:auto;
    width: min(48vw, 170px);
    margin: 0 -10px -14px;
    padding: 8px 8px 22px;
    transform: rotate(-4deg);
  }
  .pol:nth-child(2n){
    transform: rotate(5deg);
    margin-top: 8px;
  }
  .pol img{height: 108px; border-radius: 7px;}
}
@media (max-width: 680px){
  .h1{font-size:36px}
  .grid2{grid-template-columns:1fr}
  .grid3{grid-template-columns:1fr}
  .topbar__cta{gap:8px}
  .btn--ghost{display:none}
  .kv{grid-template-columns: 110px 1fr}
}
