/* CMS integration layer for the approved Yazovir Botevo design. */
html body img { display: initial !important; }
.legacy-shell { display: none !important; }
.cookie_banner #open_preferences_center,
.cookie_banner #open_preferences_center img {
  display: block !important;
  width: 30px !important;
  height: 30px !important;
}
.design_template { display: block !important; width: 100%; }
.design_template > div { width: 100%; }
.design_template h2 { text-align: inherit; text-transform: none; font-weight: inherit; padding-bottom: 0; }
.site-main { overflow: hidden; }

.topbar__item span a,
.topbar__group a { color: inherit; text-decoration: none; }
.topbar__group .topbar__item { display: inline-flex; }

.site-header__list .menu-item.active > a { color: var(--c-brand); }
.site-header__list .menu-item.active > a::after { transform: scaleX(1); }
.site-header__submenu {
  position: absolute;
  z-index: 20;
  display: none;
  min-width: 220px;
  margin: 0;
  padding: 12px;
  list-style: none;
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--shadow-hover);
}
.site-header__list li { position: relative; }
.site-header__list li:hover > .site-header__submenu,
.site-header__list li:focus-within > .site-header__submenu { display: grid; gap: 8px; }

.site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 26px;
  margin: clamp(24px, 2.2vw, 40px) auto 0;
}
.site-footer__nav a {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color .2s ease;
}
.site-footer__nav a:hover { color: #8bd8e7; }

.site-footer__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px clamp(24px, 5vw, 96px);
}
.site-footer__cell {
  grid-template-columns: 24px minmax(0, 1fr);
  max-width: 100%;
}
@media (max-width: 640px) {
  .site-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, max-content);
    gap: 22px;
  }
}

.ko-form form { margin-top: calc(34 * var(--k)); }
.ko-form .alert { margin-bottom: 16px; }
.ko-form__bottom .ko-submit { min-width: 180px; }
.ko-consent input { flex: 0 0 auto; }

.info-page {
  padding: clamp(68px, 7vw, 126px) 0;
  background: var(--c-white);
}
.info-page__card {
  width: min(1500px, calc(100% - 48px));
  margin: 0 auto;
  padding: clamp(28px, 2.5vw, 48px) 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.info-page__card h1 { margin-bottom: 24px; color: var(--c-brand-dark); }
.info-page__card p { max-width: 1000px; margin: 0 0 18px; font-size: clamp(17px, 1.2vw, 20px); line-height: 1.75; }
.info-page__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.info-page__image { width: 100%; max-width: 1200px; max-height: 520px; margin: 30px 0 0; border-radius: 8px; object-fit: cover; box-shadow: var(--shadow-rest); }

@media (max-width: 1024px) {
  .site-header__list .menu-item.active > a::after { transform: translateY(-50%) scaleY(1); }
  .site-header__submenu { position: static; display: grid; box-shadow: none; padding: 0 0 8px 18px; }
}

@media (max-width: 640px) {
  .site-footer__nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); text-align: center; }
  .ko-form form { margin-top: 24px; }
  .ko-form__bottom .ko-submit { width: 100%; grid-column: 1 / -1; }
  .info-page__card { width: calc(100% - 40px); padding: 24px 0; }
  .info-page__actions .btn { width: 100%; }
}

/* Content pages populated from the approved 2026 copy deck. */
.info-page__card h2,
.sector-section h2,
.price-table-grid h2 {
  font-family: var(--ff-head);
  font-weight: 350;
  color: var(--c-ink-soft);
}
.content-intro {
  max-width: 1120px;
  margin-bottom: clamp(38px, 5vw, 72px);
}
.content-intro--center {
  margin-inline: auto;
  text-align: center;
}
.content-intro--center p { margin-inline: auto; }
.content-intro h2 {
  margin: 0 0 24px;
  font-size: clamp(32px, 3vw, 50px);
  line-height: 1.08;
}
.content-kicker {
  margin-bottom: 14px !important;
  color: var(--c-brand) !important;
  font-size: 13px !important;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.3 !important;
  text-transform: uppercase;
}
.content-lead {
  max-width: 1080px !important;
  color: var(--c-ink-soft);
  font-size: clamp(20px, 1.65vw, 28px) !important;
  line-height: 1.55 !important;
}
.content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 30px);
  margin-block: clamp(34px, 4vw, 64px);
}
.content-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.content-grid--bungalows { grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); }
.content-card {
  min-width: 0;
  padding: clamp(26px, 2.8vw, 46px);
  border: 1px solid rgba(0, 119, 145, .13);
  border-radius: 18px;
  background: linear-gradient(145deg, #fff 0%, #f8fbfc 100%);
  box-shadow: 0 16px 42px rgba(7, 38, 48, .08);
}
.content-card h2 {
  margin: 0 0 22px;
  font-size: clamp(25px, 2vw, 34px);
  line-height: 1.15;
}
.content-card p:last-child { margin-bottom: 0; }
.content-card--accent {
  border-color: transparent;
  background: linear-gradient(145deg, var(--c-brand) 0%, var(--c-brand-dark) 100%);
  color: #fff;
}
.content-card--accent h2,
.content-card--accent p,
.content-card--accent a { color: #fff; }
.content-card--warning {
  border-color: rgba(202, 97, 35, .22);
  background: linear-gradient(145deg, #fff 0%, #fff7f1 100%);
}
.content-stat {
  margin: 0 0 8px !important;
  font-family: var(--ff-head);
  font-size: clamp(72px, 7vw, 116px) !important;
  font-weight: 300;
  line-height: .9 !important;
}
.content-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cms-page-content .content-list li {
  position: relative;
  padding-left: 32px;
  font-size: clamp(16px, 1.1vw, 18px);
  line-height: 1.55;
}
.content-list li::before {
  content: '';
  position: absolute;
  top: .68em;
  left: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-brand);
  box-shadow: 0 0 0 5px rgba(0, 139, 163, .12);
}
.content-list--warning li::before { background: #ca6123; box-shadow: 0 0 0 5px rgba(202, 97, 35, .12); }
.content-list--check li::before {
  width: 14px;
  height: 8px;
  border: solid var(--c-brand);
  border-width: 0 0 2px 2px;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  left: 2px;
  transform: rotate(-45deg);
}
.content-card--accent .content-list--check li::before { border-color: #fff; }
.content-list--columns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 34px; }
.content-flow { margin-block: clamp(44px, 6vw, 90px); }
.content-split {
  display: grid;
  grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr);
  gap: clamp(24px, 5vw, 80px);
  padding-block: clamp(30px, 4vw, 58px);
  border-top: 1px solid rgba(10, 51, 64, .15);
}
.content-split:last-child { border-bottom: 1px solid rgba(10, 51, 64, .15); }
.content-split h2 { margin: 0; font-size: clamp(27px, 2.35vw, 42px); line-height: 1.15; }
.content-step {
  margin: 0 0 12px !important;
  color: var(--c-brand) !important;
  font-family: var(--ff-head);
  font-size: 18px !important;
  font-weight: 600;
  letter-spacing: .12em;
}
.content-band {
  margin-block: clamp(42px, 5vw, 76px);
  padding: clamp(30px, 4vw, 60px);
  border-radius: 20px;
  background: linear-gradient(135deg, #0b2b36 0%, #0c5568 100%);
  color: #fff;
  box-shadow: 0 22px 48px rgba(7, 38, 48, .17);
}
.content-band h2 { margin: 0 0 18px; color: #fff; font-size: clamp(28px, 2.5vw, 42px); }
.content-band p,
.content-band li { color: #fff; }
.content-band .content-list li::before { background: #75d4e5; box-shadow: 0 0 0 5px rgba(117, 212, 229, .14); }
.content-highlight {
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
  gap: clamp(28px, 5vw, 76px);
  align-items: center;
  margin-block: clamp(42px, 5vw, 76px);
  padding: clamp(28px, 4vw, 58px);
  border: 1px solid rgba(0, 139, 163, .18);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(231, 247, 250, .94), rgba(255, 255, 255, .98));
  box-shadow: 0 18px 46px rgba(7, 38, 48, .07);
}
.content-highlight h2 { margin: 0; font-size: clamp(28px, 2.5vw, 42px); line-height: 1.12; }
.content-note {
  margin-block: clamp(34px, 4vw, 58px);
  padding: clamp(24px, 3vw, 42px);
  border-left: 5px solid var(--c-brand);
  border-radius: 0 16px 16px 0;
  background: #f1f8fa;
}
.content-note h2 { margin: 0 0 18px; font-size: clamp(25px, 2vw, 34px); }
.content-note p:last-child { margin-bottom: 0; }
.info-page__actions--center { justify-content: center; }
.btn--outline {
  border: 1px solid var(--c-brand);
  background: transparent;
  color: var(--c-brand-dark);
  box-shadow: none;
}
.btn--outline:hover { background: var(--c-brand); color: #fff; }

/* Homepage video: the source is portrait, so preserve the full frame. */
.hm-why__video {
  display: block;
  aspect-ratio: 861 / 537;
  background: radial-gradient(circle at 50% 45%, #174d5c 0%, #061c24 72%);
  object-fit: contain;
}

/* Map and sectors. */
.sector-map { margin: 0 0 clamp(40px, 5vw, 76px); }
.sector-map a { display: block; overflow: hidden; border-radius: 18px; box-shadow: 0 20px 50px rgba(7, 38, 48, .14); }
.sector-map img { display: block; width: 100%; height: auto; transition: transform .45s var(--ease); }
.sector-map a:hover img { transform: scale(1.012); }
.sector-map figcaption { margin-top: 13px; color: #5e6e74; font-size: 14px; text-align: center; }
.sector-section { margin-block: clamp(48px, 6vw, 88px); }
.sector-section__head { margin-bottom: 30px; }
.sector-section__head h2 { margin: 0; font-size: clamp(32px, 3vw, 50px); }
.sector-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sector-card {
  padding: 24px;
  border: 1px solid rgba(0, 119, 145, .13);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(7, 38, 48, .06);
}
.sector-card h3 { margin: 0 0 8px; color: var(--c-brand-dark); font-family: var(--ff-head); font-size: 24px; font-weight: 400; }
.sector-card p { margin: 0; font-size: 16px; line-height: 1.5; }

/* Catch gallery. */
.catch-manifesto {
  margin-top: 26px !important;
  color: var(--c-brand-dark) !important;
  font-family: var(--ff-head);
  font-size: clamp(24px, 2.2vw, 36px) !important;
  font-weight: 350;
}
.page-native-gallery { columns: 3 320px; column-gap: 22px; margin-top: clamp(40px, 5vw, 72px); }
.page-native-gallery__item {
  position: relative;
  break-inside: avoid;
  overflow: hidden;
  margin: 0 0 22px;
  border-radius: 16px;
  background: var(--c-tint);
  box-shadow: 0 14px 34px rgba(7, 38, 48, .12);
}
.page-native-gallery__link {
  display: block;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
}
.page-native-gallery__link:focus-visible {
  outline: 3px solid var(--c-brand);
  outline-offset: -3px;
}
.page-native-gallery__image {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .45s var(--ease), filter .45s var(--ease);
}
.page-native-gallery__caption {
  margin: 0;
  padding: 12px 16px 14px;
  color: var(--c-ink);
  font-size: 15px;
  line-height: 1.5;
}
@media (hover: hover) {
  .page-native-gallery__link:hover .page-native-gallery__image { transform: scale(1.018); filter: saturate(1.05); }
}

/* Prices. */
.price-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-block: clamp(34px, 4vw, 64px); }
.price-card {
  padding: clamp(28px, 3vw, 48px);
  border: 1px solid rgba(0, 119, 145, .16);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(7, 38, 48, .09);
}
.price-card--featured { background: linear-gradient(145deg, #0b8199, #07536a); color: #fff; }
.price-card h2 { margin: 0 0 20px; font-size: clamp(29px, 2.5vw, 42px); }
.price-card--featured h2,
.price-card--featured p,
.price-card--featured a { color: #fff; }
.price-card__label { min-height: 42px; margin: 0 0 16px !important; color: var(--c-brand) !important; font-size: 14px !important; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.price-card--featured .price-card__label { color: #bcecf4 !important; }
.price-card__price { margin: 0 0 14px !important; color: var(--c-brand-dark); font-family: var(--ff-head); font-size: clamp(64px, 7vw, 110px) !important; font-weight: 300; line-height: .9 !important; }
.price-card__price span { font-size: .46em; }
.price-table-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 4vw, 54px); margin-block: clamp(48px, 6vw, 88px); }
.price-table-grid h2 { margin: 0 0 8px; font-size: clamp(25px, 2vw, 34px); line-height: 1.15; }
.content-table-label { margin-bottom: 18px !important; color: var(--c-brand) !important; font-size: 14px !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.content-table-wrap { overflow-x: auto; border: 1px solid rgba(0, 119, 145, .14); border-radius: 14px; box-shadow: 0 12px 32px rgba(7, 38, 48, .06); }
.content-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 16px; }
.content-table th,
.content-table td { padding: 15px 20px; border-bottom: 1px solid rgba(10, 51, 64, .1); text-align: left; }
.content-table th { background: #eaf6f8; color: var(--c-brand-dark); font-weight: 700; }
.content-table th:last-child,
.content-table td:last-child { text-align: right; font-weight: 700; }
.content-table tbody tr:last-child td { border-bottom: 0; }
.service-prices { display: grid; gap: 0; margin: 0; }
.service-prices div { display: flex; gap: 20px; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid rgba(10, 51, 64, .11); }
.service-prices div:last-child { border-bottom: 0; }
.service-prices dt { font-weight: 500; }
.service-prices dd { margin: 0; color: var(--c-brand-dark); font-weight: 700; text-align: right; }

/* Contact copy and direct actions from the approved content deck. */
.ko-info__copy { margin-top: 24px; }
.ko-info__copy p { margin: 0 0 16px; font-size: clamp(16px, 1vw, 18px); line-height: 1.65; }
.ko-info__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.ko-info__actions .btn { min-width: 160px; }
.ko-before { margin-top: 28px; padding: 24px; border-left: 4px solid var(--c-brand); border-radius: 0 12px 12px 0; background: #f0f8fa; }
.ko-before h2 { margin: 0 0 12px; color: var(--c-ink-soft); font-family: var(--ff-head); font-size: 26px; font-weight: 350; }
.ko-before p { margin: 0 0 12px; line-height: 1.55; }

@media (max-width: 1024px) {
  .content-grid--three { grid-template-columns: minmax(0, 1fr); }
  .sector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hm-why__video { aspect-ratio: 16 / 10; }
}

@media (max-width: 760px) {
  .content-grid,
  .content-grid--bungalows,
  .content-split,
  .content-highlight,
  .price-cards,
  .price-table-grid { grid-template-columns: minmax(0, 1fr); }
  .content-list--columns { grid-template-columns: minmax(0, 1fr); }
  .content-split { gap: 18px; }
  .sector-grid { grid-template-columns: minmax(0, 1fr); }
  .page-native-gallery { columns: 2 220px; column-gap: 16px; }
  .page-native-gallery__item { margin-bottom: 16px; border-radius: 12px; }
  .price-card__label { min-height: 0; }
  .ko-info__actions .btn { flex: 1 1 160px; }
}

@media (max-width: 480px) {
  .content-card,
  .content-band,
  .content-highlight { border-radius: 14px; }
  .page-native-gallery { columns: 1; }
  .ko-info__actions .btn { width: 100%; }
}

/* Bistro page: CMS copy/video followed by the native Page Gallery menu. */
.bistro-page .content-intro { margin-bottom: clamp(32px, 4vw, 58px); }
.bistro-page .content-highlight { margin-top: 0; }
.bistro-offer { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bistro-offer .content-card { height: 100%; }
.bistro-offer .content-list { gap: 14px; }
.bistro-video {
  display: grid;
  grid-template-columns: minmax(240px, .55fr) minmax(0, 1.45fr);
  gap: clamp(26px, 5vw, 74px);
  align-items: center;
  margin-block: clamp(48px, 6vw, 88px);
  padding: clamp(28px, 4vw, 58px);
  border-radius: 20px;
  background: linear-gradient(135deg, #0b2b36 0%, #0c5568 100%);
  box-shadow: 0 22px 48px rgba(7, 38, 48, .17);
}
.bistro-video h2,
.bistro-video p { color: #fff; }
.bistro-video h2 { margin: 0 0 18px; font-size: clamp(28px, 2.5vw, 42px); line-height: 1.12; }
.bistro-video p { margin-bottom: 0; }
.bistro-video__media {
  display: block;
  width: 100%;
  max-height: min(70vh, 720px);
  aspect-ratio: 16 / 10;
  border-radius: 14px;
  background: radial-gradient(circle at 50% 45%, #174d5c 0%, #061c24 72%);
  box-shadow: 0 18px 42px rgba(0, 0, 0, .26);
  object-fit: contain;
}
.bistro-menu-intro {
  max-width: 820px;
  margin: clamp(54px, 7vw, 100px) auto 0;
  text-align: center;
}
.bistro-menu-intro h2 { margin: 0 0 16px; font-size: clamp(32px, 3vw, 50px); line-height: 1.08; }
.bistro-menu-intro p { margin-inline: auto; }
.bistro-page + .page-native-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
  columns: auto;
}
.bistro-page + .page-native-gallery .page-native-gallery__item { margin: 0; }

@media (max-width: 1024px) {
  .bistro-offer { grid-template-columns: minmax(0, 1fr); }
  .bistro-video { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .bistro-page + .page-native-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .bistro-video { padding: 22px; border-radius: 14px; }
  .bistro-video__media { border-radius: 10px; }
  .bistro-page + .page-native-gallery { grid-template-columns: minmax(0, 1fr); }
}
