/* ===== FONTS ===== */
@font-face {
  font-family: 'Benzin';
  src: url('fonts/Benzin-Regular.woff2') format('woff2'),
       url('fonts/Benzin-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Benzin';
  src: url('fonts/Benzin-Medium.woff2') format('woff2'),
       url('fonts/Benzin-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

/* ===== RESET ===== */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html { scroll-behavior: smooth; }
body {
  font-family: 'Manrope', sans-serif;
  background: #e9faff;
  color: #163034;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a { text-decoration: none; color: inherit; }
img { display: block; max-width: none; }
button { border: none; background: none; cursor: pointer; font: inherit; }

/* ===== COMMON ===== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 54px;
  padding: 0 40px;
  border-radius: 30px;
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 20px;
  line-height: normal;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.btn:hover { opacity: 0.85; }
.btn--primary { background: #02b2ed; color: #fff; }

.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 54px;
  padding: 0 20px;
  border-radius: 30px;
  font-family: 'Manrope', sans-serif;
  font-weight: 600;
  font-size: 24px;
  line-height: normal;
  white-space: nowrap;
}
.badge--white { background: #fff; color: #163034; }

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 54px;
  border-radius: 30px;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.icon-btn:hover { opacity: 0.8; }
.icon-btn--white { background: #fff; }

.arrow-icon { transform: rotate(45deg); }
.yacht-card__arrow svg { transform: rotate(45deg); }


/* ===== HEADER ===== */
.header {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 30px 30px 0;
}
.logo {
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 50px;
  color: #163034;
  flex-shrink: 0;
}
.nav {
  display: flex;
  align-items: center;
  gap: 30px;
  background: #fff;
  padding: 16px 36px;
  border-radius: 30px;
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: normal;
  color: #163034;
  white-space: nowrap;
}
.nav a:hover { opacity: 0.7; }
.header-socials {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}
.burger {
  display: none;
  width: 58px;
  height: 44px;
  border-radius: 30px;
  background: #fff;
  align-items: center;
  justify-content: center;
}

/* ===== MOBILE MENU ===== */
.mobile-menu {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 200;
  background: #e9faff;
  flex-direction: column;
  padding: 16px;
}
.mobile-menu.active {
  display: flex;
}
.mobile-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.mobile-menu__header .logo {
  color: #163034;
}
.mobile-menu__close {
  width: 58px;
  height: 44px;
  border-radius: 30px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mobile-menu__nav {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 60px;
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 24px;
  line-height: normal;
  color: #163034;
}
.mobile-menu__nav a:hover {
  opacity: 0.7;
}
.mobile-menu__socials {
  display: flex;
  gap: 12px;
  margin-top: auto;
  padding-bottom: 30px;
}

/* ===== HERO ===== */
.hero {
  position: relative;
  padding: 114px 30px 0;
}
.hero__image {
  position: relative;
  width: 100%;
  height: 730px;
  border-radius: 60px;
  overflow: hidden;
}
.hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 75%;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: rgba(6, 7, 39, 0.3);
}
.hero__content {
  position: absolute;
  top: 114px;
  left: 30px;
  right: 30px;
  height: 730px;
}
.hero__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  /* title at y=174, hero at y=114 => 60px from top; x=60, hero x=30 => 30px from left */
  /* badge at x=1172, hero right=1410 => 1410-1172-208=30px from right */
  padding: 60px 30px 0 30px;
}
.hero__title {
  font-family: 'Benzin', sans-serif;
  font-weight: 500;
  font-size: 64px;
  line-height: 68px;
  color: #fff;
  max-width: 716px;
}
.hero__card {
  /* Frame 17: x=60, y=551. Hero starts at y=114. So top offset = 551-114 = 437px from hero top */
  position: absolute;
  top: 437px;
  left: 30px; /* 60 - 30 (hero left padding) */
  width: 506px;
  padding: 20px;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  display: flex;
  flex-direction: column;
  gap: 27px;
}
.hero__card-text {
  font-weight: 600;
  font-size: 24px;
  line-height: normal;
  color: #fff;
}
.hero__card .btn { width: 100%; }

/* ===== ABOUT ===== */
/* About subtitle: y=964, hero bottom: 114+730=844 => margin-top: 120px */
/* About title: x=720, y=964 — same row as subtitle */
.about {
  display: flex;
  padding: 120px 30px 0;
  position: relative;
}
.about__left {
  width: 50%;
  flex-shrink: 0;
  position: relative;
}
.about__subtitle {
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  color: #163034;
  width: 294px;
}
/* Watermark: y=1009, subtitle y=964 => 45px below subtitle */
.about__watermark {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 283.343px;
  line-height: normal;
  color: rgba(0, 0, 0, 0.1);
  white-space: nowrap;
  position: absolute;
  left: 30px;
  top: 165px;
}
.about__right {
  flex: 1;
  padding-right: 30px;
  width: 50%;
}
.about__title {
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 45px;
  color: #163034;
  width: 680px;
  max-width: 100%;
}
/* Description: y=1164, title y=964 => 200px below title top */
.about__description {
  font-size: 24px;
  font-weight: 400;
  line-height: normal;
  color: #163034;
  width: 578px;
  max-width: 100%;
  margin-top: 20px;
}

/* ===== GALLERY ===== */
/* Gallery Rect4: y=1436. About desc bottom: ~1164+132=1296. Gap: 140px */
/* First image starts at x=0, so gallery has no left padding */
.gallery {
  margin-top: 120px;
  overflow: hidden;
}
.gallery__track {
  display: flex;
  gap: 16px;
  width: max-content;
  animation: gallery-scroll 30s linear infinite;
}
@keyframes gallery-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(-50% - 8px)); }
}
.gallery__item {
  flex: 0 0 600px;
  height: 300px;
  border-radius: 30px;
  overflow: hidden;
}
.gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===== YACHTS ===== */
/* Title: y=1856. Gallery bottom: 1436+300=1736. Gap: 120px */
.yachts {
  padding: 120px 30px 0;
}
.yachts__title {
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 45px;
  color: #163034;
  width: 499px;
  /* Cards start at y=1986, title y=1856, title h~90 => gap to cards: 1986-1856-90=40px */
  margin-bottom: 40px;
}
.yachts__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 20px;
  row-gap: 50px;
}
.yacht-card__image {
  position: relative;
  width: 100%;
  height: 400px;
  border-radius: 30px;
  overflow: hidden;
}
.yacht-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.yacht-card:first-child .yacht-card__image img {
  object-position: right center;
}
.yacht-card__guests {
  position: absolute;
  top: 20px;
  left: 20px;
}
.yacht-card__arrow {
  position: absolute;
  top: 20px;
  right: 20px;
}
/* Tags: first tag y=2201, image bottom=1986+350=2336... wait, let me recalc.
   Frame 18 (Майкопская): y=2201 for Sealine card => 2201-1986-350 = negative?
   No: y=2201, image top=1986, image h=350, image bottom=2336.
   But tag is at y=2201 which is INSIDE the image (2201 < 2336).
   So these tags are overlaid on the image! Let me re-check...

   Frame 71 (ул. Майкопская): y=2201 — this is between image top 1986 and bottom 2336, so it's ON the image
   Frame 65 (ул. Протопопа Аввакума): y=2267 — also on image
   So both address tags are positioned ON the image, at the bottom part!

   Name "Sealine, 12 м": y=2356 — below image (2336), gap = 20px
   Price "От 20 000": y=2409 — below name, gap = 2409-2356-44 = 9px
*/
.yacht-card__tags {
  position: absolute;
  bottom: 20px;
  left: 20px;
  right: 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.yacht-card__name {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 32px;
  line-height: normal;
  color: #163034;
  margin-top: 20px;
}
.yacht-card__price {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: normal;
  color: #163034;
  margin-top: 9px;
}

/* ===== OCCASIONS ===== */
/* Blue bg: y=3058. Last yacht price bottom: ~2905+33=2938. Gap: 120px */
.occasions {
  margin-top: 120px;
  background: #8ed0ff;
  padding: 124px 0 80px;
}
.occasions__title {
  padding-left: 30px;
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 45px;
  color: #163034;
  width: 720px;
  max-width: 100%;
  /* Pills y=3357, title y=3182 => 175px. Title h~135 => margin-bottom: 175-135=40px */
  margin-bottom: 40px;
}
.occasions__list {
  overflow: hidden;
}
.occasions__track {
  display: flex;
  gap: 12px;
  width: max-content;
  animation: occasions-scroll 40s linear infinite;
}
@keyframes occasions-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(calc(-50% - 6px)); }
}
.occasion-pill {
  display: flex;
  align-items: center;
  gap: 16px;
  height: 118px;
  padding-left: 40px;
  padding-right: 8px;
  background: #163034;
  border-radius: 70px;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.occasion-pill:hover { opacity: 0.9; }
.occasion-pill__text {
  font-weight: 400;
  font-size: 24px;
  line-height: normal;
  color: #fff;
  white-space: nowrap;
}
.occasion-pill__img {
  width: 160px;
  height: 100px;
  border-radius: 60px;
  overflow: hidden;
  flex-shrink: 0;
}
.occasion-pill__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===== ROUTES ===== */
/* Title: y=3735. Occasions bg bottom: 3058+537=3595. Gap: 140px */
.routes-wrapper {
  margin-top: 0;
}
.routes-pin {
  position: sticky;
  top: 0;
}
.routes {
  display: flex;
  gap: 0;
  padding: 140px 0 0 30px;
  align-items: flex-end;
}
.routes__info {
  width: 50%;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}
.routes__title {
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 45px;
  color: #163034;
  width: 588px;
}
/* Description: y=3931, title y=3735, title h=180 => margin-top: 3931-3735-180=16px */
.routes__description {
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  color: #163034;
  width: 531px;
  margin-top: 16px;
}
/* CTA: y=4017, desc y=3931, desc h=66 => margin-top: 4017-3931-66=20px */
.routes__info .btn {
  margin-top: 20px;
  align-self: flex-start;
  width: 466px;
}
.routes__cards {
  display: flex;
  gap: 20px;
  flex-shrink: 1;
  min-width: 0;
  overflow: hidden;
  padding-right: 30px;
}
.routes__cards::-webkit-scrollbar { display: none; }
.route-card {
  flex: 0 0 300px;
}
.route-card__image {
  width: 300px;
  height: 300px;
  border-radius: 30px;
  overflow: hidden;
}
.route-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Route name: y=4038, card image bottom: 3715+300=4015 => margin-top: 23px */
.route-card__name {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: normal;
  color: #163034;
  margin-top: 23px;
  white-space: nowrap;
}

/* ===== FOOTER ===== */
/* ===== YACHT MODAL ===== */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.5);
  align-items: center;
  justify-content: center;
}
.modal-overlay.active {
  display: flex;
}
.modal__close {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 84px;
  line-height: 1;
  color: #fff;
  cursor: pointer;
  z-index: 1001;
  transition: opacity 0.2s;
}
.modal__close:hover {
  opacity: 0.7;
}
.modal {
  width: 1200px;
  max-width: 95vw;
  max-height: 90vh;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.modal__body {
  display: flex;
  gap: 40px;
  padding: 40px 40px 80px;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
.modal__gallery {
  width: 540px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.modal__main-image {
  width: 540px;
  height: 470px;
  border-radius: 20px;
  overflow: hidden;
  border: none;
}
.modal__main-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.modal__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s;
}
.footer__map {
    height: 400px;
}
.modal__arrow:hover {
  background: rgba(0, 0, 0, 0.6);
}
.modal__arrow--left {
  left: 16px;
}
.modal__arrow--right {
  right: 16px;
}
.modal__main-image {
  position: relative;
}
.modal__thumbs {
  display: flex;
  gap: 16px;
}
.modal__thumb {
  flex: 1;
  height: 100px;
  background: #d9d9d9;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
}
.modal__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.modal__thumb.active {
  outline: 2px solid #02b2ed;
  outline-offset: -2px;
}
.modal__dots {
  display: none;
}
.modal__info {
  flex: 1;
  min-width: 0;
}
.modal__title {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 32px;
  line-height: normal;
  color: #163034;
}
.modal__subtitle {
  font-family: 'Manrope', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: normal;
  color: #163034;
  margin-top: 8px;
}
.modal__prices {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.modal__price-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.modal__price-value {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: normal;
  color: #163034;
}
.modal__price-note {
  font-family: 'Manrope', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: normal;
  color: #163034;
}
.modal__book-btn {
  width: 100%;
  margin-top: 20px;
}
.modal__details {
  margin-top: 24px;
}
.modal__details p {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #163034;
  margin-top: 8px;
}
.modal__details .modal__details-header {
  margin-top: 16px;
}
.modal__details ul {
  list-style: disc;
  padding-left: 20px;
  margin-top: 4px;
}
.modal__details li {
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #163034;
}

/* ===== FOOTER ===== */
.footer {
  background: #163034;
  padding: 120px 30px 44px;
  margin-top: 120px;
}
.footer__content {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 0;
}
.footer__left {
  display: flex;
  flex-direction: column;
}
.footer__logo {
  font-family: 'Manrope', sans-serif;
  font-weight: 700;
  font-size: 72.378px;
  line-height: normal;
  color: rgba(255, 255, 255, 0.1);
}
/* Phone: y=4454, logo: y=4311, logo h=99 => margin-top: 4454-4311-99=44px */
.footer__phone {
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 45px;
  color: #fff;
  margin-top: 44px;
}
/* Address: y=4511, phone y=4454, phone h=45 => margin-top: 12px */
.footer__address {
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 45px;
  color: #fff;
  margin-top: 12px;
}
/* Socials: y=4576, address y=4511, address h=45 => margin-top: 20px */
.footer__socials {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}
/* Legal: y=4720, socials y=4576, socials h=54 => margin-top: 4720-4576-54=90px */
.footer__legal {
  font-size: 24px;
  font-weight: 400;
  line-height: normal;
  color: #fff;
}
/* Privacy: y=4806, legal y=4720, legal h=66 => margin-top: 20px */
.footer__privacy {
  font-size: 16px;
  font-weight: 400;
  line-height: normal;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 20px;
}
.footer__privacy:hover { color: #fff; }
.footer__bottom {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  margin-top: 90px;
}
/* Map: x=720, y=4311, w=690, h=475 — aligned with logo top */
.footer__map {
  grid-column: 2;
  grid-row: 1 / 3;
  width: 690px;
  height: 400px;
  background: #d9d9d9;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 30px;
  overflow: hidden;
}
.footer__map-placeholder {
  font-family: 'Benzin', sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 45px;
  color: #000;
}

/* ===== CALLBACK FORM MODAL ===== */
.callback-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.5);
  align-items: center;
  justify-content: center;
}
.callback-overlay.active {
  display: flex;
}
.callback__close {
  position: absolute;
  top: 20px;
  right: 20px;
  font-size: 84px;
  line-height: 1;
  color: #fff;
  cursor: pointer;
  z-index: 1001;
  transition: opacity 0.2s;
}
.callback__close:hover {
  opacity: 0.7;
}
.callback {
  width: 600px;
  max-width: 95vw;
  max-height: 90vh;
  background: #fff;
  border-radius: 20px;
  padding: 40px;
  overflow-y: auto;
}
.callback__title {
  font-family: 'Benzin', sans-serif;
  font-weight: 500;
  font-size: 32px;
  line-height: 38px;
  color: #163034;
  text-align: center;
  margin-bottom: 30px;
}
.callback__form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.callback__input,
.callback__select {
  width: 100%;
  height: 56px;
  padding: 0 20px;
  border: none;
  border-radius: 30px;
  background: #f2f2f2;
  font-family: 'Manrope', sans-serif;
  font-size: 16px;
  color: #163034;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.callback__input::placeholder,
.callback__select option[disabled] {
  color: #a0a0a0;
}
.callback__select-wrap {
  position: relative;
}
.callback__select-wrap::after {
  content: '';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 7px;
  background: url("data:image/svg+xml,%3Csvg width='12' height='7' viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23163034' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
  pointer-events: none;
}
.callback__consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 8px;
}
.callback__checkbox {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  -webkit-appearance: none;
  appearance: none;
  border: 2px solid #d0d0d0;
  border-radius: 4px;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: border-color 0.2s, background 0.2s;
}
.callback__checkbox:checked {
  background: #02b2ed;
  border-color: #02b2ed;
}
.callback__checkbox:checked::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 1px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.callback__checkbox.error {
  border-color: #e53935;
}
.callback__input.error,
.callback__select.error {
  outline: 2px solid #e53935;
}
.callback__consent-text {
  font-family: 'Manrope', sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: #163034;
}
.callback__submit {
  width: 60%;
  align-self: center;
  margin-top: 8px;
}

/* ===================================================
   SMALL DESKTOP — 961–1200px
   =================================================== */
@media (min-width: 961px) and (max-width: 1200px) {
  .routes__cards {
    max-width: 420px;
    margin-left: auto;
  }
  .footer__content {
    display: flex;
    flex-direction: column;
  }
  .footer__map {
    width: 100%;
    height: 400px;
    margin-top: 50px;
    /* margin-left: -30px; */
    grid-column: unset;
    grid-row: unset;
    border-radius: 30px;
  }
  .footer__bottom {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    margin-top: 20px;
  }
}

/* ===================================================
   MOBILE — max-width: 960px
   =================================================== */
@media (max-width: 960px) {
  body { max-width: 100%; }

  /* HEADER */
  .header { padding: 16px; }
  .logo {
    font-size: 25.515px;
    color: #fff;
    line-height: normal;
  }
  .nav { display: none; }
  .header-socials { display: none; }
  .burger {
    display: flex;
    margin-left: auto;
  }

  /* HERO */
  .hero {
    padding: 0;
    display: grid;
    grid-template: 1fr / 1fr;
    height: 100dvh;
  }
  .hero__image {
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    border-radius: 0;
  }
  .hero__image img {
    content: image-set(url('img/hero-bg-mobile-480.webp') type('image/webp') 1x, url('img/hero-bg-mobile-960.webp') type('image/webp') 2x, url('img/hero-bg-mobile-480.jpg') 1x, url('img/hero-bg-mobile-960.jpg') 2x);
    object-fit: cover;
    object-position: center center;
    width: 100%;
    height: 100%;
  }
  .hero__content {
    grid-area: 1 / 1;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: auto;
    padding: 0 0 16px;
    z-index: 1;
    top: 0;
    left: 0;
  }
  .hero__top {
    flex-direction: column;
    padding: 114px 16px 0 16px;
    gap: 16px;
  }
  .hero__title {
    font-size: 34px;
    line-height: 36px;
    max-width: 328px;
  }
  .badge {
    height: 35px;
    font-size: 14px;
    padding: 12px 16px;
  }
  .hero__card {
    position: relative;
    margin: 0 16px;
    width: auto;
    padding: 12px;
    border-radius: 20px;
    gap: 16px;
    top: 0px;
    left: 0px;
  }
  .hero__card-text {font-size: 15px;}
  .hero__card .btn {
    width: 100%;
    height: 54px !important;
    min-height: 54px;
    font-size: 20px;
    flex-shrink: 0;
  }

  /* ABOUT */
  .about {
    flex-direction: column;
    flex-wrap: wrap;
    padding: 60px 16px 0;
  }
  .about__left {
    width: 100%;
    flex: none;
  }
  .about__subtitle {
    font-size: 13px;
    color: rgba(22, 48, 52, 0.7);
    width: 294px;
    max-width: 100%;
  }
  .about__right {
    padding-top: 24px;
    padding-right: 0;
    width: 100%;
  }
  .about__title {
    font-size: 20px;
    line-height: 25px;
    width: 100%;
  }
  .about__description {
    font-size: 13px;
    width: 100%;
    margin-top: 28px;
    margin-left: 0;
  }
  .about__watermark {
    font-size: 135.448px;
    margin-top: 16px;
    position: static;
    width: 100%;
    order: 3;
  }
  .about__left { order: 1; }
  .about__right { order: 2; }

  /* GALLERY */
  .gallery { margin-top: 50px; }
  .gallery__item {
    flex: 0 0 300px;
    height: 300px;
    border-radius: 20px;
  }

  /* YACHTS */
  .yachts { padding: 60px 16px 0; }
  .yachts__title {
    font-size: 20px;
    line-height: 25px;
    width: 299px;
    margin-bottom: 28px;
  }
  .yachts__grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .yacht-card { width: 100%; }
  .yacht-card__image {
    height: 350px;
    border-radius: 20px;
    display: grid;
    grid-template: 1fr / 1fr;
  }
  .yacht-card__image > * {
    grid-area: 1 / 1;
  }
  .yacht-card__image img {
    z-index: 0;
  }
  .yacht-card__guests {
    position: static;
    align-self: start;
    justify-self: start;
    margin: 8px;
    z-index: 1;
    height: 35px;
    font-size: 14px;
    padding: 0 8px;
  }
  .yacht-card__arrow {
    position: static;
    align-self: start;
    justify-self: end;
    margin: 8px;
    z-index: 1;
    width: 44px;
    height: 35px;
  }
  .yacht-card__tags {
    position: static;
    align-self: end;
    justify-self: start;
    margin: 8px;
    z-index: 1;
    gap: 6px;
  }
  .yacht-card__tags .badge {
    height: 35px;
    font-size: 14px;
    padding: 0 8px;
  }
  .yacht-card__arrow img { width: 16px; height: 16px; }
  .yacht-card__name { font-size: 18px; margin-top: 12px; }
  .yacht-card__price { font-size: 16px; margin-top: 4px; }

  /* OCCASIONS */
  .occasions {
    margin-top: 60px;
    padding: 60px 0 50px;
  }
  .occasions__title {
    font-size: 20px;
    line-height: 25px;
    width: 299px;
    margin-bottom: 30px;
    padding-left: 16px;
  }
  .occasion-pill { height: 80px; }
  .occasion-pill__text { font-size: 16px; }
  .occasion-pill__img { height: 60px; }

  /* ROUTES */
  .routes-wrapper {
    margin-top: 0;
    height: auto !important;
  }
  .routes-pin {
    position: static;
  }
  .routes {
    flex-direction: column;
    padding: 60px 16px 0;
  }
  .routes__info { width: 100%; }
  .routes__title {
    font-size: 20px;
    line-height: 25px;
    width: 100%;
  }
  .routes__description {
    font-size: 16px;
    width: 100%;
  }
  .routes__info .btn {
    width: 100%;
  }
  .routes__cards {
    flex-direction: column;
    gap: 20px;
    margin-top: 34px;
    overflow: visible;
    padding-right: 0;
  }
  .route-card { width: 100%; flex: 1 1 100%; }
  .route-card__image {
    width: 100%;
    height: 300px;
    border-radius: 30px;
  }
  .route-card__name { font-size: 18px; margin-top: 12px; }

  /* FOOTER */
  .footer {
    margin-top: 60px;
    padding: 40px 16px 30px;
  }
  .footer__content {
    flex-direction: column;
    gap: 40px;
    display: flex;
  }
  .footer__logo {
    font-family: 'Benzin', sans-serif;
    font-weight: 400;
    font-size: 25.515px;
    color: #fff;
  }
  .footer__phone { font-size: 20px; margin-top: 12px; }
  .footer__address { font-size: 20px; margin-top: 0; }
  .footer__socials { margin-top: 12px; }
  .footer__socials .icon-btn { width: 58px; height: 44px; }
  .footer__left { order: 0; }
  .footer__bottom {
    flex-direction: column;
    order: 2;
    margin-top: 20px;
  }
  .footer__legal { font-size: 16px; margin-top: 40px; }
  .footer__privacy { font-size: 12px; margin-top: 20px; }
  .footer__map { width: 100%; height: 225px; order: 1; grid-column: unset; grid-row: unset; border-radius: 20px; }
  .footer__map-placeholder {
    font-size: 16px;
    font-family: 'Manrope', sans-serif;
    font-weight: 400;
  }

  /* MODAL */
  .modal-overlay {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: 16px;
  }
  .modal__close {
    position: static;
    align-self: flex-end;
    margin-right: 16px;
    margin-bottom: 8px;
    font-size: 48px;
  }
  .modal {
    width: 100%;
    max-width: 100vw;
    max-height: calc(100vh - 80px);
    border-radius: 16px 16px 0 0;
  }
  .modal__body {
    flex-direction: column;
    gap: 24px;
    padding: 20px 16px;
  }
  .modal__gallery {
    width: 100%;
  }
  .modal__main-image {
    width: 100%;
    height: 260px;
  }
  .modal__arrow {
    display: none;
  }
  .modal__thumbs {
    display: none;
  }
  .modal__dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 12px;
  }
  .modal__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #d9d9d9;
    transition: background 0.2s;
  }
  .modal__dot.active {
    background: #02b2ed;
  }
  .modal__thumb {
    height: 70px;
  }
  .modal__title {
    font-size: 24px;
  }
  .modal__price-value {
    font-size: 18px;
  }
  .modal__price-note {
    font-size: 14px;
  }

  /* CALLBACK */
  .callback-overlay {
    padding: 16px;
  }
  .callback__close {
    position: static;
    align-self: flex-end;
    font-size: 48px;
    margin-bottom: 8px;
  }
  .callback-overlay.active {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: 16px;
  }
  .callback {
    max-width: 100%;
    max-height: calc(100vh - 80px);
    padding: 24px 16px;
    border-radius: 16px;
  }
  .callback__title {
    font-size: 24px;
    line-height: 28px;
  }
  .callback__submit {
    width: 100%;
  }
}

/* ===================================================
   TABLET — текстовые стили как на десктопе (601–768px)
   =================================================== */
@media (min-width: 601px) and (max-width: 960px) {
  .about { padding-top: 120px; }
  .gallery { margin-top: 60px; }
  .yachts { padding-top: 120px; }
  .occasions { margin-top: 120px; }
  .routes { padding-top: 120px; }
  .footer { margin-top: 120px; }
  .logo { font-size: 36px; line-height: 50px; color: #163034; }
  .hero__title { font-size: 64px; line-height: 68px; max-width: 716px; }
  .badge { height: 54px; font-size: 24px; padding: 0 20px; }
  .hero__card { width: 600px; max-width: 100%; margin: 0; margin-left: 16px; }
  .hero__card-text { font-size: 24px; }
  .about__subtitle { font-size: 16px; color: #163034; width: 350px; margin-bottom: 20px; }
  .about__title { font-size: 34px; line-height: 38px; }
  .about__description { font-size: 24px; }
  .about__watermark { font-size: 283.343px; }
  .yachts__title { font-size: 34px; line-height: 38px; width: 499px; }
  .yachts__grid { gap: 50px; }
  .yacht-card__image { height: 400px; display: block; position: relative; }
  .yacht-card__image > * { grid-area: unset; }
  .yacht-card__guests { position: absolute; top: 16px; left: 16px; align-self: unset; justify-self: unset; margin: 0; font-size: 24px; height: 54px; padding: 0 20px; }
  .yacht-card__arrow { position: absolute; top: 16px; right: 16px; align-self: unset; justify-self: unset; margin: 0; }
  .yacht-card__tags { position: absolute; bottom: 16px; left: 16px; right: 16px; align-self: unset; justify-self: unset; margin: 0; }
  .yacht-card__tags .badge { height: 54px; font-size: 24px; padding: 0 20px; }
  .yacht-card__name { font-size: 32px; }
  .yacht-card__price { font-size: 24px; }
  .occasions__title { font-size: 34px; line-height: 38px; width: 720px; }
  .occasion-pill__text { font-size: 24px; }
  .routes__title { font-size: 34px; line-height: 38px; }
  .routes__description { font-size: 21px; }
  .routes__cards { width: 100%; gap: 40px; }
  .route-card { flex: 1 1 100%; min-width: 0; }
  .route-card__image { width: 100%; }
  .route-card__name { font-size: 24px; }
  .footer__logo { font-size: 72.378px; }
  .footer__phone { font-size: 32px; }
  .footer__address { font-size: 32px; }
  .footer__map { height: 400px; }
  .footer__legal { font-size: 24px; }
  .footer__privacy { font-size: 16px; }
  .modal__main-image { height: 350px; }
  .modal__title { font-size: 32px; }
  .modal__price-value { font-size: 20px; }
  .modal__price-note { font-size: 16px; }
}
