/* One colour for content headings and their introductory labels. */
:root{--section-heading-colour:#383838;--section-label-colour:#1d4d48}
body main :is(h2,h3){color:var(--section-heading-colour)!important}
body main :is(h2,h3) :is(em,span,strong){color:inherit!important}
body main .eyebrow,body main .section .eyebrow{color:var(--section-label-colour)!important}
/* Keep the unified text colours legible on the formerly dark content panels. */
body main :is(.contact,.home-banya,.group-invitation,.national-project){background:#f4f7f6!important;color:#383838!important}
body main :is(.contact,.home-banya,.group-invitation,.national-project) :is(p,.section-note,.contact-phones,.contact-phones a){color:#383838}
body main :is(.contact,.home-banya,.group-invitation,.national-project) .eyebrow{color:var(--section-label-colour)!important}
body main .contact .button.lime{background:#1d4d48;color:white;border-color:#1d4d48}
/* Photo-cover copy retains its contrast against the image. */
body main :is(.hero,.gastro-hero,.activity-hero) .eyebrow{color:inherit!important}
body .header .header-contact80>summary{
 font-family:Helvetica,Arial,sans-serif!important;font-weight:400!important;letter-spacing:normal;
}
/* Unified underlined editorial links: 90% brand green and one underline offset. */
body main a.text-link:not(.stay-card>.text-link),
body.resort-home main #offers.sales105 .sales105-heading>a{
 color:rgba(29,77,72,.9)!important;
 border-bottom:0!important;
 text-decoration-line:underline!important;
 text-decoration-color:currentColor!important;
 text-decoration-thickness:1px!important;
 text-underline-offset:6px!important;
 text-decoration-skip-ink:auto;
 padding-bottom:10px;
}
body.resort-home main #resort-location.nature118 .calm-heading80 h2{font-weight:800!important}
/* Reference season switch: solid capsule and white selected half. */
body.resort-home .hero108 .season-controls{
 box-sizing:border-box;width:190px;height:60px;padding:4px;gap:0;
 background:#2d5554;border:0;box-shadow:none;
 backdrop-filter:none;-webkit-backdrop-filter:none;
}
body.resort-home .hero108 .season-controls .season-button{
 height:52px;font:700 20px/1 Helvetica,Arial,sans-serif;
 text-transform:uppercase;color:#fff;text-shadow:none;box-shadow:none;
}
body.resort-home .hero108 .season-controls .season-button[aria-pressed=true]{
 background:#fff;color:#1d4d48;box-shadow:none;text-shadow:none;
}
@media(max-width:700px){
 body.resort-home .hero108 .season-controls{width:160px;height:52px}
 body.resort-home .hero108 .season-controls .season-button{height:44px;font-size:17px}
}

/* Nature booking invitation, matching the supplied composition. */
body.resort-home main .rest123{padding:60px 6%;background:#fff}
body.resort-home main .rest123-card{border-radius:14px;overflow:hidden;padding:56px;min-height:380px;box-sizing:border-box;background:linear-gradient(90deg,rgba(10,39,32,.94),rgba(10,39,32,.74) 48%,rgba(10,39,32,.1)),url('/assets/forest-03-v35.webp') center 55%/cover no-repeat;color:white}
body.resort-home main .rest123-copy{max-width:470px}
body.resort-home main .rest123-copy h2{color:white!important;font-size:clamp(34px,3.5vw,48px);line-height:1.12;margin:0 0 22px}
body.resort-home main .rest123-copy .eyebrow{color:#fff!important;margin-bottom:14px}
body.resort-home main .rest123-copy>p:not(.eyebrow){color:#fff;line-height:1.5;max-width:390px}
body.resort-home main .rest123 .button{background:#fff;color:#1d4d48;border:1px solid #fff;border-radius:5px;margin:12px 0 18px;min-width:210px;text-align:center}
body.resort-home main .rest123-copy .rest123-note{font-size:13px;margin:12px 0 0}
body.resort-home .hero108 .hero-sales87 .button.outline{background:#fff!important;color:#1d4d48!important;border-color:#fff;border-radius:12px;text-shadow:none}
body.resort-home .hero108 .season-controls{width:127px;height:40px;padding:3px;top:155px!important}
body.resort-home .hero108 .season-controls .season-button{height:34px;font-size:13px}
@media(max-width:700px){
 body.resort-home main .rest123{padding:36px 20px}
 body.resort-home main .rest123-card{padding:30px 24px;min-height:350px}
 body.resort-home .hero108 .season-controls{width:107px;height:35px;top:115px!important}
 body.resort-home .hero108 .season-controls .season-button{height:29px;font-size:11px}
}

/* Description typography follows the group and New Year block. */
body main :is(.section,.contact,.home-banya,.group-invitation,.national-project) p:not(.eyebrow):not(.stay102-meta):not(.search-error){
 font:400 15px/1.6 Helvetica,Arial,sans-serif!important;color:#434C4A!important;
}
body main :is(.hero,.gastro-hero,.activity-hero) p:not(.eyebrow),
body.resort-home main .rest123-copy>p:not(.eyebrow){color:#fff!important}
body.resort-home .hero108 .hero-sales87 .button{border-radius:4px!important}

/* Mobile CTA alignment: equal side padding and genuinely centred copy. */
@media(max-width:700px){
 body.resort-home .hero108 .hero-sales87{width:100%;align-items:stretch}
 body.resort-home .hero108 .hero-sales87 .button,
 body.resort-home main .rest123 .button{
  display:flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;width:100%!important;min-width:0!important;
  padding:16px 20px!important;margin-left:0!important;margin-right:0!important;
  text-align:center!important;gap:0!important;white-space:normal!important;
  line-height:1.35!important;min-height:50px;
 }
 body.resort-home .hero108 .stay-search>button{
  display:flex!important;justify-content:center!important;align-items:center!important;
  padding-left:20px!important;padding-right:20px!important;text-align:center!important;
 }
}
/* River gallery captions follow body typography on every viewport. */
body.resort-home main #resort-location.nature118 figcaption{
 font:400 15px/1.6 Helvetica,Arial,sans-serif!important;color:#434C4A!important;
}

body.resort-home main .gastro127-chips{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 16px}
body.resort-home main .gastro127-chips>span{display:inline-flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid #d2dddd;border-radius:8px;font:400 15px/1.3 Helvetica,Arial,sans-serif;color:#1d4d48}
body.resort-home main .gastro127-chips svg{width:20px;height:20px;flex:0 0 20px}
body.resort-home main .gastro127-hours{margin-bottom:24px}
body.resort-home main #experiences .taste127-photo{object-position:center bottom!important}

/* Full landscape photography in photo blocks; posters retain their complete text. */
body main :is(.image-story,.leisure-feature)>img,
body main :is(.calm-slide80,.team43-hero-photo,.team43-gallery,.parking-section figure,.cabin-gallery,.banya-gallery,.group-photo-grid,.family-photo-grid,.cabin-photo-grid,.nature-photo-pair,.workshop-photo,.home-kitchen-photos) img,
body main img.food109,
body main .fishing-cover82>img{
 width:100%!important;height:auto!important;aspect-ratio:3/2!important;
 object-fit:cover!important;object-position:center!important;max-height:none!important;
}
body.resort-home main .leisure-feature .button{
 display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
 min-height:46px!important;padding-top:12px!important;padding-bottom:12px!important;line-height:1.3;
}
/* One CTA geometry, with explicit contrast on the photographic invitation. */
body.resort-home main .rest123.rest123 .rest123-copy>p:not(.eyebrow){color:#fff!important}
body.resort-home main .rest123 .button,
body.resort-home main .home-banya .button,
body.resort-home main .leisure-feature .button,
body.resort-home main #contacts .button{
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 text-align:center!important;box-sizing:border-box!important;gap:0!important;
 padding:12px 24px!important;min-height:46px!important;height:auto!important;
 line-height:1.3!important;border-radius:4px!important;
}
body.resort-home main .home-banya .button{background:#1d4d48!important;color:#fff!important;border:1px solid #1d4d48!important}
body.resort-home main #contacts .button>span:empty{display:none!important}
@media(max-width:700px){
 body.resort-home main .rest123 .button{min-height:46px!important;padding:12px 24px!important}
}
/* Contrast is tied to the actual panel background, including mobile layouts. */
body main .green-panel-copy130.green-panel-copy130{
 color:#fff!important;
}
body main .green-panel-copy130.green-panel-copy130 :is(span,strong,em,small){color:inherit!important}

:root{--soft-panel131:rgba(29,77,72,.03)}
body main :is(.contact,.home-banya,.group-invitation,.national-project,.guest-reviews79,.review-section,.home-history,.leisure-feature,.workshops-section,.river-section,.parking-section,.parking-summary,.choice-help,.offers,.team43-band,.capacity-band,.contacts-direct){background:var(--soft-panel131)!important}
body.resort-home main #resort-location.nature118{background:var(--soft-panel131)!important}
body main .trust131{display:grid;grid-template-columns:1fr 1.15fr;gap:6%;align-items:center;padding:60px 6%}
body main .trust131-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:10px}
body main .trust131-copy{min-width:0}
body main .trust131-copy h2{margin:0 0 24px}
body main .trust131-rating{display:flex;gap:20px;align-items:center;flex-wrap:wrap;width:fit-content;margin-bottom:24px;text-decoration:none;color:#1d4d48}
body main .trust131-yandex{font:700 22px/1.3 Helvetica,Arial,sans-serif}
body main .trust131-rating strong{padding:10px 15px;background:#fff;border-radius:6px;font:700 20px/1.3 Helvetica,Arial,sans-serif}
body main .trust131-rating strong span{color:#e4aa2c;letter-spacing:2px}
body main .trust131 .guest-actions79{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
body main .trust131 .button{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;min-height:46px;text-align:center}
@media(max-width:700px){body main .trust131{grid-template-columns:1fr;padding:40px 20px;gap:28px}body main .trust131 .button{width:100%;box-sizing:border-box}body main .trust131-rating{gap:12px}}

body main .carousel-controls80 button{border-radius:4px!important}
body main .guest-reviews79 .review-award132{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 24px}
body main .guest-reviews79 .review-award132 strong{display:inline-block;color:#1d4d48;font:700 17px/1.4 Helvetica,Arial,sans-serif;border-left:3px solid #1d4d48;padding-left:14px}
body main .guest-reviews79 .review-award132 span{font-size:15px;color:#434c4a}

/* Group invitation: branded green panel with CTA directly below the copy. */
body.resort-home main #groups.group-invitation{
 display:block;background:#1d4d48!important;color:#fff!important;
}
body.resort-home main #groups.group-invitation :is(h2,p,.eyebrow,.home-format-links a){color:#fff!important}
body.resort-home main #groups.group-invitation>div:first-child{max-width:850px}
body.resort-home main #groups.group-invitation>div:first-child>p:not(.eyebrow){margin-bottom:24px}
body.resort-home main #groups.group-invitation .button{
 display:inline-flex;align-items:center;justify-content:center;text-align:center;
 background:#fff!important;color:#1d4d48!important;border:1px solid #fff;
 border-radius:4px;padding:12px 24px;min-height:46px;box-sizing:border-box;margin:0;
}
body.resort-home main #groups.group-invitation .home-format-links{margin-top:32px}
body.resort-home main #groups.group-invitation .home-format-links a{border-color:rgba(255,255,255,.55)}
@media(max-width:700px){body.resort-home main #groups.group-invitation .button{width:100%;white-space:normal}}
/* History gallery titles match the experience card headings. */
body.resort-home main .experience-grid h3,
body.resort-home main .calm-carousel80 .calm-slide80 figcaption>strong{
 font:700 35px/1.1 Akrobat,Arial,sans-serif!important;
 display:block;color:#383838!important;
}
body.resort-home main .calm-carousel80 .carousel-controls80 button{
 border-radius:4px!important;
}
@media(max-width:700px){
 body.resort-home main .experience-grid h3,
 body.resort-home main .calm-carousel80 .calm-slide80 figcaption>strong{font-size:32px!important}
}

body.resort-home main #resort-location.nature118 .nature135-label{
 font:400 13px/1.4 Helvetica,Arial,sans-serif!important;letter-spacing:2px;
 text-transform:lowercase;color:#1d4d48!important;margin:0 0 22px!important;
}
body.resort-home main #resort-location.nature118 figcaption{text-transform:uppercase;letter-spacing:.02em}
body.resort-home main .activities135{display:flex;flex-wrap:wrap;align-items:center;gap:24px 28px}
body.resort-home main .activities135 a{
 display:inline-block;font:400 18px/1.4 Helvetica,Arial,sans-serif;
 color:#434c4a;border:0;border-bottom:1px solid #87a19a;border-radius:0;
 padding:12px 0;text-decoration:none;background:transparent;
}
body.resort-home main .activities135>span{font:400 18px/1.4 Helvetica,Arial,sans-serif;color:#1d4d48}
@media(max-width:700px){body.resort-home main .activities135{gap:12px 20px}}

body.resort-home main .rest123-card{border-radius:4px!important}
body.resort-home main .activities.activities136{border-top:0!important;gap:10px 12px}
body.resort-home main .activities136 a{
 display:inline-flex;align-items:center;gap:8px;padding:8px 12px;
 border:1px solid #d2dddd;border-radius:10px;text-decoration:none;
 color:#1d4d48;font:400 15px/1.2 Akrobat,Arial,sans-serif;min-height:36px;box-sizing:border-box;
}
body.resort-home main .activities136 svg{width:20px;height:20px;flex:0 0 20px}
@media(max-width:700px){
 body .header{padding-left:20px!important;padding-right:20px!important}
 body .header .header-actions{margin-left:auto;margin-right:-8px}
}

/* Dark photographic covers retain white headings and all supporting copy. */
body main :is(.gastro-hero-copy,.activity-hero-copy) :is(h1,h2,h3,p,.eyebrow,.breadcrumb,.hero-menu-link){color:#fff!important}

/* Pale panels use the homepage's 3% brand tint, with dark copy. */
body main :is(.repeat-search,.regional-routes,.kitchen-videos,.gastro-services,.event-links76,.team43-hero,.research-stats>div,.research68 blockquote,.signature-menu-grid article){background:rgba(29,77,72,.03)!important}
body main .soft-panel-copy139{color:#434c4a!important}
body main .soft-panel-copy139:is(h1,h2,h3,h4){color:#383838!important}
body main .soft-panel-copy139:is(a,.eyebrow){color:#1d4d48!important}
/* Bounded winter gallery must not inherit viewport-wide section gutters. */
body main #winter-moments.winter116-posters{
 display:block;width:100%;max-width:1200px;min-width:0;box-sizing:border-box;
 margin:0 auto;padding:48px 24px!important;
}
body main #winter-moments .winter116-grid{
 width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;
}
body main #winter-moments .winter116-grid figure{width:100%;min-width:0;margin:0}
body main #winter-moments .winter116-frame{width:100%;box-sizing:border-box;border-radius:4px}
body main #winter-moments figcaption{width:100%;font-size:15px;line-height:1.6;word-break:normal;overflow-wrap:normal}
@media(max-width:600px){
 body main #winter-moments.winter116-posters{padding:32px 20px!important}
 body main #winter-moments .winter116-grid{grid-template-columns:minmax(0,1fr);gap:28px}
}

/* Supplied editorial posters retain their complete lettering. */
body main .winter-promo142{max-width:1200px;width:100%;box-sizing:border-box;margin:0 auto;padding:48px 24px!important}
body main .winter-promo142-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}
body main .winter-promo142-grid figure{margin:0;min-width:0}
body main .winter-promo142-grid a{display:block}
body main .winter-promo142-grid img{display:block;width:100%;height:auto!important;aspect-ratio:1;object-fit:contain!important;border-radius:4px}
@media(max-width:600px){body main .winter-promo142{padding:32px 20px!important}body main .winter-promo142-grid{grid-template-columns:minmax(0,1fr)}}

/* Increase accommodation CTA labels without changing button geometry. */
body.resort-home main #stay.stay102 .stay102-button{font-size:14px}
/* Use available space for the river introduction instead of a 760px column. */
body.resort-home main #resort-location.nature118 .nature118-summary{flex-wrap:wrap;gap:16px 32px}
body.resort-home main #resort-location.nature118 .nature118-summary p{max-width:none;width:auto;flex:1 1 900px}

/* All four gastrobar films share one aligned row. */
body main #new-videos .banquet-video-gallery{
 display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;
 gap:24px!important;max-width:none!important;width:100%;margin:32px 0 0!important;align-items:start;
}
body main #new-videos .banquet-video-gallery figure{margin:0;min-width:0}
body main #new-videos .banquet-video-gallery video{
 display:block;width:100%!important;height:auto!important;aspect-ratio:9/16!important;object-fit:contain!important;border-radius:4px;
}
body main #new-videos .banquet-video-gallery figcaption{font-size:15px;line-height:1.6;padding-top:12px}
@media(max-width:700px){
 body main #new-videos .banquet-video-gallery{
  grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:min(78vw,300px);
  overflow-x:auto;scroll-snap-type:x mandatory;gap:16px!important;padding-bottom:16px;
 }
 body main #new-videos .banquet-video-gallery figure{scroll-snap-align:start}
}

/* Wedding clips keep their native proportions in one continuous row. */
body main #wedding-videos .wedding-video-row148{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:24px!important;max-width:none!important;width:100%;margin:32px 0!important;align-items:start}
body main #wedding-videos .wedding-video-row148 figure{min-width:0;margin:0}
body main #wedding-videos .wedding-video-row148 video{display:block;width:100%!important;height:auto!important;aspect-ratio:9/16!important;object-fit:contain!important;border-radius:4px}
body main #wedding-videos .wedding-video-row148 figcaption{padding-top:12px}
body main #wedding-videos .wedding-video-row148 figcaption h3{font-family:Akrobat,Arial,sans-serif;font-size:24px;line-height:1.2}
body main #wedding-videos .wedding-video-row148 figcaption p,body main #wedding-videos .wedding-video-row148 figcaption a{font-size:15px;line-height:1.6}
@media(max-width:900px){body main #wedding-videos .wedding-video-row148{grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:min(72vw,260px);gap:16px!important;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px}body main #wedding-videos .wedding-video-row148 figure{scroll-snap-align:start}}

/* Wedding banquet photos: a complete row with matching landscape frames. */
body main #wedding-banquet .wedding-banquet150{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important}
body main #wedding-banquet .wedding-banquet150 figure{min-width:0;margin:0}
body main #wedding-banquet .wedding-banquet150 .filled-photo-frame{display:block;aspect-ratio:3/2;overflow:hidden;border-radius:4px}
body main #wedding-banquet .wedding-banquet150 img{width:100%!important;height:100%!important;object-fit:cover!important}
body main #wedding-banquet .wedding-banquet150 figcaption{font-size:15px;line-height:1.6;color:#434C4A;margin-top:12px}
@media(max-width:700px){body main #wedding-banquet .wedding-banquet150{grid-template-columns:minmax(0,1fr)!important;gap:24px!important}}
