/* Clean site styles (no commercial theme). */

@keyframes photo-shimmer{
  0%{background-position:0% 50%}
  100%{background-position:200% 50%}
}

:root{
  --bg: #0b2545;
  --bg2:#072f58;
  --text:#072f58;
  --muted:#4a647f;
  --paper:#ffffff;
  --paper2:#f6f8fb;
  --line: rgba(7,47,88,.12);
  /* Sand / cozy accent */
  --primary:#CDA36B;
  --primary2:#E7D1AE;
  --radius:18px;
  --shadow: 0 10px 30px rgba(7,47,88,.08);
  --shadow2: 0 18px 55px rgba(7,47,88,.14);
  --shadow3: 0 26px 90px rgba(7,47,88,.18);
  --container: 1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth; overflow-x:hidden}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
  color: var(--text);
  background: #fff;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit}
.container{max-width:var(--container);margin:0 auto;padding:0 20px}

/* Subtle background texture */
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(800px 500px at 15% -10%, rgba(205,163,107,.10), transparent 60%),
    radial-gradient(900px 600px at 95% 10%, rgba(89,175,255,.07), transparent 55%);
  opacity:1;
  z-index:-1;
}

.skip-link{
  position:absolute;left:-999px;top:12px;
  background:#fff;color:#000;padding:10px 12px;border-radius:10px;
}
.skip-link:focus{left:12px;z-index:9999;outline:2px solid var(--primary)}

/* Header */
.header{
  position:sticky;top:0;z-index:1000;
  backdrop-filter: blur(12px);
  background: rgba(255,255,255,.78);
  border-bottom:1px solid rgba(7,47,88,.08);
}
.header.is-scrolled{box-shadow:0 12px 40px rgba(7,47,88,.10)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:74px}

.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand__mark{
  width:40px;height:40px;border-radius:14px;
  background: radial-gradient(90% 90% at 20% 20%, var(--primary2), var(--primary));
  box-shadow: 0 12px 30px rgba(205,163,107,.30);
  position: relative;
  overflow: hidden;
}
.brand__mark:after{
  content:"";
  position:absolute;
  left:9px;
  top:50%;
  width:18px;
  height:18px;
  transform: translateY(-50%);
  background: rgba(255,255,255,.92);
  opacity: .95;
  /* simple "shell / wave" mark */
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3c4.6 0 8.5 3.4 9.2 8-.7 1.1-2 1.9-3.6 1.9-1.7 0-3-.9-3.7-2.1-.7 1.2-2 2.1-3.7 2.1s-3-.9-3.7-2.1c-.7 1.2-2 2.1-3.7 2.1-1.6 0-2.9-.8-3.6-1.9C3.5 6.4 7.4 3 12 3Zm-9 13.5c.7.8 1.8 1.3 3 1.3 1.7 0 3-.9 3.7-2.1.7 1.2 2 2.1 3.7 2.1s3-.9 3.7-2.1c.7 1.2 2 2.1 3.7 2.1 1.2 0 2.3-.5 3-1.3v2.2c0 1-2.4 2.6-9 2.6s-9-1.6-9-2.6v-2.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3c4.6 0 8.5 3.4 9.2 8-.7 1.1-2 1.9-3.6 1.9-1.7 0-3-.9-3.7-2.1-.7 1.2-2 2.1-3.7 2.1s-3-.9-3.7-2.1c-.7 1.2-2 2.1-3.7 2.1-1.6 0-2.9-.8-3.6-1.9C3.5 6.4 7.4 3 12 3Zm-9 13.5c.7.8 1.8 1.3 3 1.3 1.7 0 3-.9 3.7-2.1.7 1.2 2 2.1 3.7 2.1s3-.9 3.7-2.1c.7 1.2 2 2.1 3.7 2.1 1.2 0 2.3-.5 3-1.3v2.2c0 1-2.4 2.6-9 2.6s-9-1.6-9-2.6v-2.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.12));
}
.brand__text{display:flex;flex-direction:column;line-height:1.1}
.brand__name{font-weight:800;letter-spacing:.2px}
.brand__sub{font-size:12px;color:var(--muted)}

.nav{display:flex;align-items:center}
.nav__toggle{
  display:none;
  align-items:center;gap:10px;
  padding:10px 12px;border-radius:12px;
  border:1px solid rgba(7,47,88,.10);
  background:#fff;
}
.nav__toggle-lines{
  width:18px;height:12px;display:inline-block;position:relative;
}
.nav__toggle-lines:before,.nav__toggle-lines:after{
  content:"";position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--text);
}
.nav__toggle-lines:before{top:1px}
.nav__toggle-lines:after{bottom:1px}
.nav__toggle-text{font-weight:700;font-size:13px}

.nav__panel{display:flex;align-items:center;gap:16px}
.nav__list{
  margin:0;padding:0;list-style:none;
  display:flex;gap:18px;align-items:center;
}
.nav__list a{
  text-decoration:none;
  font-weight:700;
  font-size:14px;
  color: rgba(7,47,88,.86);
  padding:10px 10px;border-radius:12px;
  transition: background .15s ease, color .15s ease;
}
.nav__list a:hover{background:rgba(7,47,88,.05);color:rgba(7,47,88,.95)}
.nav__cta{display:flex;gap:10px;align-items:center}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:10px;
  border-radius:999px;
  padding:12px 16px;
  text-decoration:none;
  font-weight:800;
  border:1px solid transparent;
  cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}
.btn--primary{
  background: linear-gradient(135deg, var(--primary), #B88B51);
  color:#fff;
  box-shadow: 0 14px 40px rgba(205,163,107,.28);
}
.btn--primary:hover{filter:saturate(1.05);transform:translateY(-1px);box-shadow: 0 18px 60px rgba(205,163,107,.33)}
.btn--ghost{
  background: rgba(255,255,255,.82);
  border-color: rgba(7,47,88,.14);
}
.btn--ghost:hover{background:#fff;transform:translateY(-1px);box-shadow: 0 12px 40px rgba(7,47,88,.08)}
.icon-btn{
  width:42px;height:42px;border-radius:14px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.12);
  color:#fff;
  font-size:22px;
  cursor:pointer;
  display:grid;place-items:center;
}
.icon-btn:hover{background: rgba(255,255,255,.20)}

/* Hero */
.hero{
  position:relative;
  /* The slide images cover the whole hero; keep fallback color only. */
  background: #071f3b;
  padding: 0;
  overflow:hidden;
  min-height: 100vh;
}
.hero:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(1200px 500px at 30% 0%, rgba(255,255,255,.08), transparent 60%),
    radial-gradient(900px 600px at 80% 20%, rgba(205,163,107,.10), transparent 55%);
  mix-blend-mode: screen;
  opacity:.85;
}
.hero__slider{position:relative;min-height: 100vh;}
.hero__slides{display:flex;min-height: inherit;transition:transform .55s cubic-bezier(.2,.8,.2,1);will-change:transform}
.hero__slide{min-width:100%;position:relative;min-height: inherit;overflow:hidden}
.hero__slide::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background: linear-gradient(
    115deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,0) 38%,
    rgba(255,255,255,.10) 48%,
    rgba(255,255,255,.20) 50%,
    rgba(255,255,255,.09) 52%,
    rgba(255,255,255,0) 62%,
    rgba(255,255,255,0) 100%
  );
  background-size: 240% 100%;
  animation: photo-shimmer 9s linear infinite;
  mix-blend-mode: soft-light;
  opacity:.92;
}
.hero__slide:nth-child(2)::after{
  animation-duration: 11s;
  animation-delay: -3s;
  opacity:.85;
}
.hero__slide:nth-child(3)::after{
  animation-duration: 10s;
  animation-delay: -6s;
  opacity:.88;
}
.hero__content{padding: 56px 0 90px;position:relative;z-index:2;min-height: inherit;display:flex;align-items:center}
.hero__panel{width:100%;}
.hero__panel{
  max-width: 860px;
  border-radius: calc(var(--radius) + 12px);
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.06));
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: var(--shadow3);
  backdrop-filter: blur(10px);
  padding: clamp(16px, 2.4vw, 26px);
}
.hero__bg{
  position:absolute;inset:0;
  background:
    radial-gradient(900px 420px at 25% 30%, rgba(255,255,255,.08), rgba(255,255,255,0) 55%),
    linear-gradient(120deg, rgba(205,163,107,.22), rgba(7,47,88,.0) 55%),
    linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.45));
  opacity:.95;
}
.hero__bg--1{
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.55)),
    radial-gradient(900px 420px at 25% 30%, rgba(255,255,255,.08), rgba(255,255,255,0) 55%),
    url("../img/XXXL.webp");
  background-size: cover, cover, cover;
  background-position: center, center, center;
  background-repeat: no-repeat;
}
.hero__bg--2{
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.60)),
    radial-gradient(900px 420px at 70% 30%, rgba(255,255,255,.10), rgba(255,255,255,0) 55%),
    url("../img/XXXL%20(29).webp");
  background-size: cover, cover, cover;
  background-position: center, center, center;
  background-repeat: no-repeat;
}
.hero__bg--3{
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.62)),
    radial-gradient(900px 420px at 25% 30%, rgba(255,255,255,.10), rgba(255,255,255,0) 55%),
    url("../img/XXXL%20(3).webp");
  background-size: cover, cover, cover;
  background-position: center, center, center;
  background-repeat: no-repeat;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color: rgba(255,255,255,.82);
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:12px;
}
.kicker--dark{
  color: rgba(7,47,88,.68);
}
.kicker--dark:before{
  background: rgba(205,163,107,.92);
  box-shadow: 0 12px 30px rgba(205,163,107,.18);
}
.kicker:before{
  content:"";
  width:14px;height:14px;border-radius:6px;
  background: rgba(205,163,107,.95);
  box-shadow: 0 10px 30px rgba(205,163,107,.28);
}
.h1{margin:14px 0 0;color:#fff;font-size: clamp(34px, 4.6vw, 58px);line-height:1.02;letter-spacing:-.03em}
.h2{margin:10px 0 0;font-size: clamp(28px, 2.7vw, 40px);letter-spacing:-.03em}
.h3{margin:0;font-size:18px}
.lead{margin:14px 0 0;color: rgba(255,255,255,.86);max-width: 70ch;font-size:18px;line-height:1.65}
.text{margin:12px 0 0;color: rgba(7,47,88,.76);line-height:1.75;max-width: 90ch}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.hero__meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.meta-pill{
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  padding: 10px 12px;
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  color: rgba(255,255,255,.88);
  backdrop-filter: blur(10px);
}
.meta-pill__label{opacity:.75;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.meta-pill__value{font-weight:800;text-decoration:none}

.hero__controls{
  position:absolute;
  left:0;right:0;bottom:24px;
  z-index:4;
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding: 0;
}
.dots{display:flex;gap:10px;align-items:center}
.dots button{
  width:10px;height:10px;border-radius:999px;border:0;padding:0;
  background: rgba(255,255,255,.35);
  box-shadow: 0 0 0 1px rgba(7,47,88,.35), 0 10px 26px rgba(0,0,0,.18);
  cursor:pointer;
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.dots button:hover{
  transform: translateY(-1px) scale(1.05);
  background: rgba(255,255,255,.55);
}
.dots button[aria-current="true"]{background: var(--primary);box-shadow:0 10px 30px rgba(205,163,107,.28)}

/* Sections */
.section{padding: 64px 0}
.section--alt{background: var(--paper2)}
.section__head{margin-bottom: 22px}

/* Booking widget under hero */
.booking-widget{
  padding: 28px 0 28px;
  background: #fff;
}
.booking-widget__wrap{
  border-radius: calc(var(--radius) + 10px);
  border: 1px solid rgba(7,47,88,.10);
  background: rgba(255,255,255,.92);
  box-shadow: 0 26px 90px rgba(7,47,88,.14);
  overflow:hidden;
  padding: 10px;
}
.booking-widget__wrap.is-flash{
  outline: 3px solid rgba(205,163,107,.45);
  box-shadow: 0 26px 90px rgba(7,47,88,.14), 0 0 0 10px rgba(205,163,107,.12);
}
@media (max-width: 860px){
  .booking-widget__wrap{padding: 8px;}
}

/* Layout */
.grid{display:grid;gap:18px}
.grid--3{grid-template-columns: repeat(3, minmax(0,1fr))}
.grid--2{grid-template-columns: repeat(2, minmax(0,1fr))}
.cards{margin-top: 18px}
.cards--tight{margin-top: 16px}

.card{
  background: var(--paper);
  border: 1px solid rgba(7,47,88,.08);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: 0 12px 38px rgba(7,47,88,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card__icon{
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display:inline-block;
  background: rgba(205,163,107,.18);
  border: 1px solid rgba(205,163,107,.30);
  box-shadow: 0 18px 55px rgba(7,47,88,.10);
  margin-bottom: 12px;
  position: relative;
  overflow:hidden;
}
.card__icon:after{
  content:"";
  position:absolute;
  inset: 10px;
  background: rgba(7,47,88,.86);
  opacity: .92;
  -webkit-mask: var(--card-icon) center / contain no-repeat;
  mask: var(--card-icon) center / contain no-repeat;
}
.card__icon--cafe{
  --card-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 7h10a0 0 0 0 1 0 0v6a4 4 0 0 1-4 4H10a4 4 0 0 1-4-4V7Zm11 1h1a3 3 0 0 1 0 6h-1V8Zm1 2h-1v2h1a1 1 0 1 0 0-2ZM6 19h12v2H6v-2Z'/%3E%3C/svg%3E");
}
.card__icon--beach{
  --card-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 18c2 0 2-1 4-1s2 1 4 1 2-1 4-1 2 1 4 1v2c-2 0-2-1-4-1s-2 1-4 1-2-1-4-1-2 1-4 1-2-1-4-1v-2c2 0 2 1 4 1Zm2-8a4 4 0 1 1 8 0h-2a2 2 0 1 0-4 0H8Zm2 2h8v2H10v-2Z'/%3E%3C/svg%3E");
}
.card__icon--promenade{
  --card-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c3.3 0 6 2.7 6 6 0 4.5-6 12-6 12S6 12.5 6 8c0-3.3 2.7-6 6-6Zm0 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm-7 10h14v2H5v-2Z'/%3E%3C/svg%3E");
}
.card__icon--parking{
  --card-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3h7a5 5 0 0 1 0 10H9v8H6V3Zm3 3v4h4a2 2 0 0 0 0-4H9Z'/%3E%3C/svg%3E");
}
.card__icon--pool{
  --card-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm8 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM2 20c2 0 2-1 4-1s2 1 4 1 2-1 4-1 2 1 4 1 2-1 4-1v2c-2 0-2-1-4-1s-2 1-4 1-2-1-4-1-2 1-4 1-2-1-4-1-2 1-4 1v-2Zm1-5h18v2H3v-2Zm2-2 1-6h2l-1 6H5Zm12 0-1-6h2l1 6h-2Z'/%3E%3C/svg%3E");
}
.card:hover{
  transform: translateY(-3px);
  box-shadow: 0 18px 55px rgba(7,47,88,.10);
  border-color: rgba(7,47,88,.12);
}
.card--soft{background: rgba(255,255,255,.75)}
.card__title{margin:0 0 10px;font-size:16px;letter-spacing:-.01em}
.card__text{margin:0;color: rgba(7,47,88,.74);line-height:1.55}

.split{display:grid;grid-template-columns: 1.1fr 1fr;gap:22px;align-items:center}
.split--reverse{grid-template-columns: 1fr 1.1fr}
.split--reverse .split__content{order:1}
.split--reverse .split__media{order:2}
.split__media{
  min-height: 380px;
  border-radius: calc(var(--radius) + 6px);
  background:
    radial-gradient(900px 420px at 25% 30%, rgba(205,163,107,.22), rgba(205,163,107,0) 55%),
    linear-gradient(180deg, rgba(7,47,88,.25), rgba(7,47,88,.05)),
    linear-gradient(135deg, #e8f3ff, #fff);
  border: 1px solid rgba(7,47,88,.10);
  box-shadow: var(--shadow);
}
.split__media{
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.18)),
    url("../img/XXXL.webp");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat;
}
.split__media--gallery{
  background-image: none;
  background: #fff;
  padding: 0;
  overflow: hidden;
  display:flex;
  /* Высота чуть больше ширины (портретнее кадра) */
  min-height: unset;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1 / 1.08;
}
.split__media--gallery .gallery--media{
  width:100%;
  height: 100%;
  position: relative;
}
.split__media--gallery .gallery__viewport{height:100%}
.split__media--gallery .gallery__track{height:100%; gap:0; padding:0}
.split__media--gallery .gallery__slide{flex-basis: 100%; height:100%; margin:0}
.split__media--gallery .gallery__img{
  height: 100%;
  border-radius: 0;
  object-fit: cover;
}
.gallery__btn--corner{
  top: auto;
  bottom: 12px;
  right: 12px;
  left: auto;
  transform: none;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: rgba(7,47,88,.48);
}
.gallery__btn--corner.gallery__btn--prev{
  left: 12px;
  right: auto;
}
/* Иначе .gallery__btn--next { right: -10px } перебивает угол и выносит кнопку за фото */
.gallery__btn--corner.gallery__btn--next{
  right: 12px;
  left: auto;
}
.gallery__btn--corner:hover{background: rgba(7,47,88,.58)}
.gallery__btn--corner span{font-size: 30px}
.split__media--map{
  background: transparent;
  background-image: none !important;
  padding: 0;
  display: flex;
  min-height: 380px;
}

.map-embed{
  width:100%;
  flex: 1 1 auto;
  min-height: inherit;
  border-radius: calc(var(--radius) + 6px);
  overflow:hidden;
  border: 1px solid rgba(7,47,88,.10);
  box-shadow: var(--shadow);
  background: #fff;
}
.map-embed__frame,
.map-embed iframe{
  width:100%;
  height:100%;
}
.map-embed iframe{
  display:block;
  border:0;
}

/* Amenities */
.amenities{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:18px;
}
.amenities__col{
  background:#fff;
  border:1px solid rgba(7,47,88,.08);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: 0 12px 38px rgba(7,47,88,.06);
}
.list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.list li{
  position:relative;
  padding-left: 22px;
  color: rgba(7,47,88,.74);
  line-height:1.35;
}
.list li:before{
  content:"";
  position:absolute;left:0;top:.32em;
  width:12px;height:12px;border-radius:5px;
  background: rgba(205,163,107,.22);
  border:1px solid rgba(205,163,107,.42);
}

/* Rooms */
.room{
  background:#fff;border:1px solid rgba(7,47,88,.08);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
  transition: transform .18s ease, box-shadow .18s ease;
}
.room:hover{transform:translateY(-3px);box-shadow:0 20px 70px rgba(7,47,88,.14)}
.room__body{padding:16px 16px 18px}
.room__title{margin:0 0 10px;font-size:18px;letter-spacing:-.01em}
.room__text{margin:0;color: rgba(7,47,88,.74);line-height:1.55}
.room__meta{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.tag{
  font-size:12px;font-weight:800;
  padding:8px 10px;border-radius:999px;
  background: rgba(7,47,88,.05);
  border:1px solid rgba(7,47,88,.08);
  color: rgba(7,47,88,.80);
}

/* Cottages gallery slider */
.gallery{
  position:relative;
  margin: 14px 0 18px;
}
.gallery__viewport{
  position:relative;
  overflow:hidden;
  border-radius: calc(var(--radius) + 8px);
  border: 1px solid rgba(7,47,88,.10);
  background: rgba(255,255,255,.7);
  box-shadow: 0 18px 55px rgba(7,47,88,.10);
}
.gallery__track{
  display:flex;
  gap: 14px;
  padding: 14px;
  will-change: transform;
  transition: transform .55s cubic-bezier(.2,.8,.2,1);
}
.gallery__slide{
  flex: 0 0 calc((100% - 28px) / 3);
  margin:0;
  border-radius: calc(var(--radius) + 4px);
  overflow:hidden;
  background: #fff;
  border: 1px solid rgba(7,47,88,.08);
}
.gallery__img{
  width:100%;
  height: 220px;
  object-fit: cover;
  display:block;
}
.gallery__btn{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:46px;height:46px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(7,47,88,.35);
  color:#fff;
  cursor:pointer;
  display:grid;place-items:center;
  z-index:2;
  backdrop-filter: blur(10px);
  box-shadow: 0 18px 55px rgba(7,47,88,.22);
}
.gallery__btn:hover{background: rgba(7,47,88,.50)}
.gallery__btn--prev{left:-10px}
.gallery__btn--next{right:-10px}
.gallery__btn span{font-size:26px;line-height:1}

@media (max-width: 980px){
  .gallery__slide{flex-basis: calc((100% - 14px) / 2);}
  .gallery__img{height: 200px}
}
@media (max-width: 640px){
  .gallery__track{gap:12px;padding:12px}
  .gallery__slide{flex-basis: 100%;}
  .gallery__img{height: 210px}
  .gallery__btn--prev{left:6px}
  .gallery__btn--next{right:6px}
}

/* Quotes */
.quote{
  background:#fff;border:1px solid rgba(7,47,88,.08);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: 0 10px 30px rgba(7,47,88,.05);
}
.quote__stars{color:var(--primary);font-weight:900;letter-spacing:.08em}
.quote__text{margin:12px 0 0;color: rgba(7,47,88,.76);line-height:1.65}
.quote__who{margin:14px 0 0;font-weight:900}

/* Reviews widget */
.reviews-split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: stretch;
}
.reviews-split__left,
.reviews-split__right{min-width:0;}

.reviews-widget{
  display:flex;
  justify-content:center;
}
.reviews-widget__frame{
  width: 100% !important;
  height: min(78vh, 860px) !important;
  border-radius: calc(var(--radius) + 6px);
  overflow:hidden;
  box-shadow: 0 18px 55px rgba(7,47,88,.10);
  background:#fff;
}
.reviews-widget__frame iframe{
  width:100% !important;
  height:100% !important;
  border: 0 !important;
  border-radius: inherit !important;
  display:block;
}

.reviews-note{
  height: 100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.reviews-note__items{
  display:grid;
  gap: 12px;
  margin-top: 14px;
}
.reviews-note__item{
  padding: 12px 14px;
  border-radius: calc(var(--radius) - 4px);
  border: 1px solid rgba(7,47,88,.08);
  background: rgba(255,255,255,.75);
}
.reviews-note__label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:900;
  color: rgba(7,47,88,.55);
}
.reviews-note__value{
  margin-top:6px;
  font-weight:900;
  text-decoration:none;
  display:block;
}
.reviews-note__cta{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.reviews-note__cta .btn{width:auto;}

@media (max-width: 980px){
  .reviews-split{grid-template-columns: 1fr;}
  .reviews-widget__frame{height: min(72vh, 820px) !important;}
  .reviews-note__cta .btn{width:100%;}
}

/* Contacts */
.contact-cards{display:grid;gap:12px;margin-top:14px}
.contact-card{
  background:#fff;border:1px solid rgba(7,47,88,.08);
  border-radius: var(--radius);
  padding: 14px 16px;
}
.contact-card__label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:rgba(7,47,88,.55)}
.contact-card__value{margin-top:6px;font-weight:900;text-decoration:none;display:block}
.contact-cta{
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
@media (max-width: 860px){
  .contact-cta{
    flex-direction: column;
    align-items: stretch;
  }
}

/* Footer */
.footer{padding: 26px 0;border-top:1px solid rgba(7,47,88,.08);background:#fff}
.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.footer__brand{display:flex;gap:12px;align-items:center}
.footer__name{font-weight:900}
.footer__sub{font-size:12px;color:rgba(7,47,88,.60);margin-top:2px}
.footer__right{display:flex;gap:10px;align-items:center;color:rgba(7,47,88,.72);flex-wrap:wrap}
.footer__right a:not(.btn){text-decoration:none;font-weight:800}
.footer__tel{
  flex:0 0 auto;
  padding:10px 16px;
  font-size:14px;
  letter-spacing:.01em;
}
.dot-sep{opacity:.4}

/* Modal */
.modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center}
.modal[hidden]{display:none}
.modal__backdrop{position:absolute;inset:0;background:rgba(7,47,88,.55);backdrop-filter: blur(6px)}
.modal__panel{
  position:relative;
  width:min(560px, calc(100% - 26px));
  background:#fff;border-radius: calc(var(--radius) + 6px);
  border:1px solid rgba(7,47,88,.10);
  box-shadow: var(--shadow2);
  padding: 18px;
}
.modal__close{
  position:absolute;right:12px;top:12px;
  width:42px;height:42px;border-radius:14px;
  border:1px solid rgba(7,47,88,.10);
  background:#fff;
  font-size:22px;cursor:pointer;
}

.form{margin-top:14px;display:grid;gap:12px}
.field{display:grid;gap:6px}
.field__label{font-weight:900;font-size:13px;color:rgba(7,47,88,.72)}
.field__input{
  width:100%;
  border:1px solid rgba(7,47,88,.14);
  border-radius: 14px;
  padding: 12px 12px;
  font: inherit;
}
.field__input--area{resize:vertical}
.hint{margin:10px 0 0;color:rgba(7,47,88,.60);font-size:12px;line-height:1.5}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:2100;display:grid;place-items:center}
.lightbox[hidden]{display:none}
.lightbox__backdrop{
  position:absolute;inset:0;
  background: rgba(7,47,88,.70);
  backdrop-filter: blur(8px);
}
.lightbox__panel{
  position:relative;
  width: min(1100px, calc(100% - 26px));
  max-height: 88vh;
  border-radius: calc(var(--radius) + 10px);
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  box-shadow: 0 26px 90px rgba(7,47,88,.35);
  overflow:hidden;
}
.lightbox__figure{
  width:100%;
  max-height: 88vh;
  margin:0;
  position:relative;
  padding: 10px 10px;
  display:block;
}
.lightbox__img{
  width:100%;
  height:auto;
  max-height: calc(88vh - 20px);
  object-fit: contain;
  object-position: center;
  background: rgba(0,0,0,.28);
  border-radius: calc(var(--radius) + 6px);
}
.lightbox__caption{
  position:absolute;
  left: 22px;
  right: 22px;
  bottom: 18px;
  padding: 10px 12px;
  color: rgba(255,255,255,.82);
  font-weight:800;
  font-size: 12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(7,47,88,.35);
  backdrop-filter: blur(10px);
}
.lightbox__close{
  position:absolute;right:12px;top:12px;
  width:44px;height:44px;border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.10);
  color:#fff;
  font-size:24px;
  cursor:pointer;
  display:grid;place-items:center;
  backdrop-filter: blur(10px);
  z-index: 4;
}
.lightbox__close:hover{background: rgba(255,255,255,.16)}
.lightbox__nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:52px;height:52px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.10);
  color:#fff;
  font-size:30px;
  cursor:pointer;
  display:grid;place-items:center;
  backdrop-filter: blur(10px);
  z-index: 4;
}
.lightbox__nav:hover{background: rgba(255,255,255,.16)}
.lightbox__nav--prev{left:12px}
.lightbox__nav--next{right:12px}

@media (max-width: 640px){
  .lightbox__panel{max-height: 86vh}
  .lightbox__nav{width:46px;height:46px;border-radius:16px;font-size:28px}
}

/* Reveal animations */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease, transform .55s ease}
.reveal.is-in{opacity:1;transform:none}

/* Responsive */
@media (max-width: 980px){
  .grid--3{grid-template-columns: 1fr}
  .grid--2{grid-template-columns: 1fr}
  .split,.split--reverse{grid-template-columns: 1fr}
  .split--reverse .split__content{order:2}
  .split--reverse .split__media{order:1}
  .amenities{grid-template-columns: 1fr}
  .hero{background: #071f3b}
}
@media (max-width: 860px){
  .nav__toggle{display:inline-flex}
  .nav__panel{
    position:fixed;left:14px;right:14px;top:86px;
    background:#fff;
    border:1px solid rgba(7,47,88,.12);
    border-radius: 18px;
    padding: 14px;
    box-shadow: var(--shadow2);
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .nav__panel.is-open{display:flex}
  .nav__list{flex-direction:column;align-items:stretch;gap:8px}
  .nav__list a{display:block}
  .nav__cta{flex-direction:column;align-items:stretch}
  .btn{width:100%}
  .footer__right .btn.btn--primary{width:auto}
  .hero__meta{flex-direction:column}
  .hero__panel{padding:16px}
}

/* Текстовые страницы (политика конфиденциальности и т.п.) */
.policy-page{padding: 28px 0 56px}
.policy-page__title{margin:0 0 8px;font-size:clamp(28px,2.7vw,40px);letter-spacing:-.03em;line-height:1.1;color:var(--text)}
.policy-page__meta{margin:0 0 28px;font-size:13px;color:rgba(7,47,88,.55)}
.policy-section{margin-top:26px}
.policy-section:first-of-type{margin-top:18px}
.policy-section h2{margin:0 0 10px;font-size:clamp(17px,1.6vw,20px);letter-spacing:-.02em}
.policy-section p{margin:10px 0 0;color:rgba(7,47,88,.76);line-height:1.75;max-width:85ch}
.policy-section ul{margin:10px 0 0;padding-left:1.25em;color:rgba(7,47,88,.76);line-height:1.75;max-width:85ch}
.policy-section li{margin-top:6px}
.policy-section a{color:var(--text);text-decoration:underline;text-underline-offset:3px;font-weight:700}

.cookie{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  /* Выше типичных плавающих кнопок виджетов (Контур и др.) */
  z-index: 100002;
  padding: 12px 0;
  background: rgba(255,255,255,.72);
  border-top: 1px solid rgba(7,47,88,.10);
  backdrop-filter: blur(14px);
  max-width: 100%;
  overflow-x: hidden;
}
.cookie[hidden]{display:none !important}
.cookie__inner{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 14px 16px;
  flex-wrap: wrap;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 20px;
  width: 100%;
}
.cookie__text{min-width:0}
.cookie__title{
  font-weight: 950;
  letter-spacing: -.02em;
}
.cookie__desc{
  margin-top: 4px;
  color: rgba(7,47,88,.72);
  line-height: 1.55;
  max-width: min(85ch, 100%);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.cookie__desc a{word-break: break-word}
.cookie__desc a{
  color: var(--text);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cookie__actions{
  display:flex;
  gap: 10px;
  align-items:center;
  flex-wrap: wrap;
  min-width: 0;
}
.cookie__btn{
  width: auto;
  white-space: nowrap;
}
@media (max-width: 860px){
  /* Плавающая кнопка бронирования Контура снизу — поднимаем баннер cookie */
  .cookie{
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
    padding-bottom: 10px;
  }
}
@media (max-width: 640px){
  .cookie{padding-top: 10px}
  .cookie__actions{width:100%}
  .cookie__btn{flex: 1 1 auto}
}

@media (prefers-reduced-motion: reduce){
  .hero__slide::after{
    animation: none;
    opacity: 0;
  }
}

