:root {
  --modern-ink: #182d2d;
  --modern-warm: #f6f1e8;
  --modern-gold: #c79551;
  --modern-radius: 22px;
  --modern-shadow: 0 22px 60px rgba(18, 38, 38, .12);
}

html { scroll-behavior: smooth; }
body { color: var(--modern-ink); background: var(--modern-warm); }
img { max-width: 100%; height: auto; }

.navbar-fixed-top {
  background: rgba(20, 35, 35, .34) !important;
  border: 0 !important;
  backdrop-filter: blur(16px) saturate(125%);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
  transition: background-color .25s ease, box-shadow .25s ease;
}
.navbar-fixed-top.modern-scrolled {
  background: rgba(20, 35, 35, .9) !important;
  box-shadow: 0 8px 28px rgba(0, 0, 0, .14);
}
.navbar-nav > li > a { letter-spacing: .08em; font-weight: 600; }

.section-bg-video { min-height: 100svh; overflow: hidden; background: #172c2c; }
.section-bg-video .videobox,
.section-bg-video .videobox video { position: absolute; inset: 0; width: 100%; height: 100%; }
.section-bg-video .videobox video { object-fit: cover; object-position: center; }
.section-bg-video .bg-overlay { background: linear-gradient(120deg, rgba(9, 24, 24, .7), rgba(9, 24, 24, .25)) !important; }
.section-bg-video .overlay-content { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; align-items: center; }
.section-bg-video .my-title { font-size: clamp(72px, 10vw, 150px) !important; line-height: .82 !important; letter-spacing: -.045em; text-shadow: 0 12px 40px rgba(0,0,0,.25); }
.section-bg-video h3 { letter-spacing: .22em; }
.section-bg-video h6 { max-width: 650px; line-height: 1.7; letter-spacing: .08em; }

.container.content { padding-top: clamp(72px, 9vw, 125px); padding-bottom: clamp(72px, 9vw, 125px); }
.section-bg-color { position: relative; }
.title-base h2, .title-base.title-small h2 { letter-spacing: -.025em; }
.advs-box, .img-box, .flexslider, .google-map, iframe {
  border-radius: var(--modern-radius);
  overflow: hidden;
}
.advs-box { transition: transform .3s ease, box-shadow .3s ease; }
.advs-box:hover { transform: translateY(-5px); box-shadow: var(--modern-shadow); }
.advs-box iframe { display: block; width: 100% !important; aspect-ratio: 16 / 9; height: auto !important; border: 0; }
.btn, .circle-button { border-radius: 999px !important; transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.btn:hover, .circle-button:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,.14); }

.modern-video-fallback { display: none; position: absolute; inset: 0; place-items: center; z-index: 2; color: #fff; text-align: center; padding: 24px; background: rgba(16,38,38,.76); }
.video-unavailable .modern-video-fallback { display: grid; }
.video-unavailable .videobox { opacity: .32; }

@media (max-width: 991px) {
  .navbar-fixed-top { background: rgba(20,35,35,.9) !important; }
  .section-bg-video .my-title { font-size: clamp(64px, 19vw, 110px) !important; }
  .section-bg-video .overlay-content { padding-left: 22px; padding-right: 22px; }
  .section-bg-video h3 { font-size: 15px; }
  .container.content { padding-left: 20px; padding-right: 20px; }
  .row > [class*="col-md-"] { margin-bottom: 26px; }
}

@media (max-width: 560px) {
  .section-bg-video .my-title { font-size: 66px !important; }
  .section-bg-video h6 br { display: none; }
  .advs-box, .img-box, .flexslider, .google-map, iframe { border-radius: 16px; }
  .copy-text { padding: 22px !important; line-height: 1.7; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* YouTube gallery: lightweight covers until the visitor starts a video. */
#gallery .row { display: flex; flex-wrap: wrap; }
#gallery .advs-box { height: 100%; background: rgba(255,255,255,.88); }
.youtube-poster {
  position: relative;
  z-index: 1;
  isolation: isolate;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  cursor: pointer;
  background-color: #152b2b;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: var(--modern-radius) var(--modern-radius) 0 0;
}
.youtube-poster.youtube-river { background-image: url('images/video-river.jpg') !important; }
.youtube-poster.youtube-anniversary { background-image: url('images/video-anniversary.jpg') !important; }
.youtube-poster.youtube-polina { background-image: url('images/video-polina.jpg') !important; }
.youtube-poster.youtube-svetlana { background-image: url('images/video-svetlana.jpg') !important; }
.youtube-poster img {
  display: block !important;
  visibility: visible !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  opacity: 1 !important;
  object-fit: cover !important;
  object-position: center !important;
  pointer-events: none;
  filter: sepia(.78) saturate(.82) contrast(1.06) brightness(.9) !important;
  transform: scale(1.002);
  transition: filter .35s ease, transform .45s ease;
}
.youtube-poster::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, transparent 45%, rgba(5,20,20,.38)); transition: background .3s ease; pointer-events: none; }
.youtube-poster:hover, .youtube-poster:focus { background-size: 104%; }
.youtube-poster:hover img, .youtube-poster:focus img {
  filter: sepia(.52) saturate(.95) contrast(1.06) brightness(.95) !important;
  transform: scale(1.025);
}
.youtube-poster:focus { outline: 3px solid var(--modern-gold); outline-offset: 3px; }
.youtube-play { position: absolute; z-index: 2; left: 50%; top: 50%; width: 76px; height: 76px; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(255,255,255,.94); box-shadow: 0 14px 38px rgba(0,0,0,.25); transition: transform .25s ease, background-color .25s ease; }
.youtube-play::after { content: ''; position: absolute; left: 31px; top: 24px; border-left: 23px solid var(--modern-gold); border-top: 14px solid transparent; border-bottom: 14px solid transparent; }
.youtube-poster:hover .youtube-play { transform: translate(-50%,-50%) scale(1.08); background: #fff; }
.youtube-poster iframe { width: 100%; height: 100%; border: 0; border-radius: 0; }

/* News: one clean editorial grid, independent of the legacy Bootstrap columns. */
#news { background: #f4efe6; }
#news .container { max-width: 1240px; }
#news .title-base { margin-bottom: 50px; }
#news > .container > .row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}
#news > .container > .row > .col-md-6 { display: contents; }
#news > .container > .row > .col-md-6 > hr { display: none; }
#news .news {
  min-width: 0;
  margin: 0;
  padding: 0 0 26px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(24,45,45,.1);
  border-radius: var(--modern-radius);
  box-shadow: 0 8px 28px rgba(18,38,38,.06);
  transition: transform .28s ease, box-shadow .28s ease;
}
#news .news:hover { transform: translateY(-5px); box-shadow: var(--modern-shadow); }
#news .news-data-wrapper { order: 2; padding: 23px 25px 8px; }
#news .news-data { display: inline-flex; align-items: center; min-height: 27px; padding: 0 11px; border-radius: 999px; background: rgba(199,149,81,.14); color: #8c6431; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
#news .news-text { order: 3; padding: 0 25px; font-size: 15px; line-height: 1.65; color: #294343; }
#news .news > a.lightbox,
#news .news-text > a.lightbox { order: 1; display: block; margin: 0; overflow: hidden; }
#news .news > a.lightbox { order: 1; }
#news .news-text > a.lightbox { margin: 20px -25px -1px; }
#news .news a.lightbox img { width: 100%; height: 250px; object-fit: cover; display: block; transition: transform .4s ease; }
#news .news:hover a.lightbox img { transform: scale(1.025); }
#news .news .clearfix { display: none; }
#news .section-slider { order: 1; width: 100% !important; height: 250px !important; margin: 0 !important; overflow: hidden; }
#news .section-slider .flexslider,
#news .section-slider .slides,
#news .section-slider .slides li { width: 100% !important; height: 250px !important; margin: 0 !important; }
#news .section-slider img { width: 100%; height: 250px; object-fit: cover; }
#news .section-slider .flex-direction-nav a { border-radius: 50%; }

@media (max-width: 991px) {
  #news > .container > .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #gallery .row > [class*="col-md-"] { width: 50%; }
}
@media (max-width: 620px) {
  #news > .container > .row { grid-template-columns: 1fr; gap: 20px; }
  #news .news a.lightbox img, #news .section-slider, #news .section-slider .flexslider, #news .section-slider .slides, #news .section-slider .slides li, #news .section-slider img { height: 230px !important; }
  #gallery .row > [class*="col-md-"] { width: 100%; }
  .youtube-play { width: 62px; height: 62px; }
  .youtube-play::after { left: 26px; top: 20px; border-left-width: 19px; border-top-width: 11px; border-bottom-width: 11px; }
}

/* Natural-height masonry refinement for the news archive. */
#news > .container > .row {
  display: block;
  column-count: 3;
  column-gap: 28px;
}
#news > .container > .row::before,
#news > .container > .row::after,
#news > .container > .row > .col-md-6::before,
#news > .container > .row > .col-md-6::after { display: none !important; content: none !important; }
#news .news {
  width: 100%;
  display: inline-flex;
  margin: 0 0 28px;
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  vertical-align: top;
}
#news .news a.lightbox img {
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center top;
}
#news .news-text > a.lightbox img { margin-top: 0; }
#news .section-slider,
#news .section-slider .flexslider,
#news .section-slider .slides,
#news .section-slider .slides li { height: auto !important; min-height: 0 !important; }
#news .section-slider img { width: 100%; height: auto !important; max-height: none; object-fit: contain; object-position: center top; }

@media (max-width: 991px) {
  #news > .container > .row { column-count: 2; }
}
@media (max-width: 620px) {
  #news > .container > .row { column-count: 1; }
  #news .news a.lightbox img,
  #news .section-slider,
  #news .section-slider .flexslider,
  #news .section-slider .slides,
  #news .section-slider .slides li,
  #news .section-slider img { height: auto !important; }
}
