/* Merapi 1.4.0: consistent prices, hot tours, news and final interaction polish. */
:root{--merapi-red:#ef3d43;--merapi-red-dark:#cf2530;--merapi-blue-soft:#dcecf6}

/* Keep the central navigation optically centred without moving the logo or actions. */
@media(min-width:1200px){
  .header-inner{position:relative}
  .main-nav{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}
}

/* The flame is a category/action marker only, never part of a price. */
.price-hot,.tour-card-footer .price-hot,.departure-price .price-hot,.price-table .price-hot,.booking-card .price-hot,.hotel-tabs .price-hot,.hotel-price-result .price-hot,.cruise-action .price-hot{
  color:var(--merapi-red)!important;font-family:Arial,Helvetica,sans-serif!important;font-weight:600!important;letter-spacing:-.01em;line-height:1.22;display:block!important;white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important
}
.price-hot svg{display:none!important}
.price-hot>span{white-space:nowrap!important;overflow-wrap:normal!important;word-break:normal!important}
.hot-head{position:relative;width:44px;height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--merapi-red);display:grid;place-items:center;transition:.2s ease}
.hot-head svg{width:21px;height:21px;fill:currentColor;stroke:none}
.hot-head>span{position:absolute;right:-5px;top:-7px;min-width:21px;height:21px;padding:0 5px;border-radius:12px;background:var(--brand-yellow);color:var(--brand-navy);display:grid;place-items:center;font-size:11px;font-weight:800}
.hot-head:hover{background:#fff3f4;border-color:#f49ca2;transform:translateY(-2px);box-shadow:0 8px 20px rgba(207,37,48,.12)}
.hot-filter{display:inline-flex!important;align-items:center;gap:7px}.hot-filter svg{width:15px;height:15px;fill:currentColor;stroke:none}
.tour-label-stack{position:absolute;z-index:6;left:14px;top:14px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.tour-label-stack .tour-label{position:static!important;display:inline-flex;align-items:center;gap:6px}
.hot-tour-label{background:var(--merapi-red)!important;color:#fff!important}
.hot-tour-label svg{width:15px;height:15px;fill:currentColor;stroke:none}

/* Compact cards, but every row has the same visual baseline. */
.tour-grid{align-items:stretch}
.tour-card{height:100%}
.tour-card-body{display:grid!important;grid-template-rows:auto 58px 24px 45px 44px 42px 62px 46px;align-content:start}
.tour-card h3{height:58px;min-height:58px!important;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:6px 0 0!important}
.tour-card .rating-line{height:24px;margin:0!important;align-self:center}
.tour-card .route{height:45px;min-height:45px!important;margin:0!important;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;align-self:start}
.tour-card-date{height:44px;margin:0!important;align-self:start}
.tour-card-date-current{min-height:40px}
.tour-facts{height:42px;min-height:42px!important;padding-top:9px!important;overflow:hidden}
.tour-card-footer{height:54px;min-height:54px!important;margin:0!important;align-self:start}
.tour-card-footer strong{font-size:18px!important;font-weight:600!important;line-height:1.2}
.tour-card-footer .seats{padding-bottom:3px}
.tour-card-body>.outline-button{height:46px;min-height:46px;margin:0!important}
.cruise-card .tour-card-body{grid-template-rows:auto 58px 24px 45px 55px 62px 46px}

/* Booking totals recalculate in JS and stay readable on one line. */
.booking-card{overflow:visible}
.booking-card .total{display:grid;gap:5px;min-width:0}
.unit-price-line{font-size:13px;color:var(--muted)}
.unit-price-line b{color:var(--brand-navy);font-weight:600;white-space:nowrap}
.booking-card .total .price-hot{font-size:clamp(21px,2vw,28px)!important;font-weight:600!important;max-width:100%;white-space:nowrap!important}
.booking-card .total>small{font-size:12px;color:var(--muted)}
.date-options label{font-family:Arial,Helvetica,sans-serif!important}
.date-options label>b,.date-options label>small{font-family:Arial,Helvetica,sans-serif!important}

/* Official Belarusian ruble sign. Text values stay as BYN in admin/data attributes. */
.byn-currency{
  display:inline-block;flex:none;font-size:1em!important;width:.82em;height:1em;margin-inline:.07em .02em;
  vertical-align:-.11em;background:currentColor;
  -webkit-mask:url('../images/byn-symbol.svg') center/contain no-repeat;
  mask:url('../images/byn-symbol.svg') center/contain no-repeat
}
.price-hot .byn-currency,.unit-price-line .byn-currency,.hot-price .byn-currency{
  font-size:1em!important;width:.82em;height:1em;vertical-align:-.11em
}

/* Hotel first, alternatives below. */
.selected-hotel{margin-top:0}
.hotel-other-options{margin-top:34px;padding-top:30px;border-top:1px solid var(--line)}
.hotel-other-options h3{font-size:25px}
.hotel-tabs .price-hot,.hotel-price-result .price-hot{font-weight:600!important;white-space:nowrap!important}

/* Full calendar grid and a stable sticky rail. */
.calendar-layout{align-items:start}
.calendar-mini{position:sticky!important;top:178px;align-self:start}
body.admin-bar .calendar-mini{top:210px}
.departure-row{grid-template-columns:80px 170px minmax(0,1fr) minmax(210px,240px)}
.month-grid>span,.month-grid>button{height:36px;min-width:0}
.month-grid button:disabled{color:var(--text)!important;opacity:1!important;background:transparent!important}
.month-grid button.has-tour{color:var(--brand-navy)!important;background:#e3f1f8!important}
.month-grid button.few{background:#fff1b9!important}
.departure-price .price-hot{font-size:17px!important;font-weight:600!important;text-align:right}
.departure-price{align-items:flex-end}

/* Day rail exists only while the program itself is being read. */
.day-nav-card{opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;transition:opacity .22s ease,transform .22s ease,visibility .22s}
.day-nav-card.program-active{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.day-nav-card a{font-weight:400!important}
.day-nav-card a span{font-weight:500!important}.day-nav-card a b{font-weight:500!important}

/* News and articles. */
.news-archive{padding-bottom:90px}.news-head{padding-top:50px;padding-bottom:34px}.news-head .lead{max-width:720px}
.news-filters{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.news-filters a{padding:10px 16px;border:1px solid var(--line);border-radius:24px;background:#fff;color:var(--brand-navy);text-decoration:none}.news-filters a:hover,.news-filters a.active{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.news-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 10px 28px rgba(31,73,119,.06)}.news-card-media{height:220px;background:#dce9f1;overflow:hidden}.news-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.news-card:hover .news-card-media img{transform:scale(1.035)}.news-card-body{padding:22px;display:flex;flex-direction:column;flex:1}.news-card-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin-bottom:10px}.news-badge{display:inline-flex;padding:5px 8px;border-radius:6px;background:#e5f1f7;color:var(--brand-navy);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:10px}.news-card h2,.news-card h3{font-size:27px;line-height:1.12;margin:0 0 12px}.news-card p{color:var(--muted);margin:0 0 20px}.news-card .text-button{margin-top:auto;align-self:flex-start}
.news-single{padding-top:48px;padding-bottom:100px}.news-article{max-width:900px;margin:0 auto}.news-article-head{margin-bottom:30px}.news-article-head h1{margin:12px 0 16px}.news-article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:13px;color:var(--muted)}.news-cover{width:100%;max-height:570px;object-fit:cover;border-radius:12px;margin-bottom:38px}.news-article .entry-content{font-size:18px;line-height:1.75}.news-article .entry-content h2{font-size:35px}.news-related{margin-top:64px;padding-top:48px;border-top:1px solid var(--line)}.news-related>.tour-grid{margin-top:24px}.news-more{margin-top:68px;padding-top:48px;border-top:1px solid var(--line)}.news-more .news-grid{margin-top:24px}
.home-news{padding-block:75px}.home-news .news-grid{margin-top:24px}

/* The save-cruise control has the same clear feedback as favorites. */
.favorite-button{transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}
.hot-copy>span{display:flex;align-items:center;gap:5px;color:var(--merapi-red)!important}.hot-copy>span svg{width:15px;height:15px;fill:currentColor;stroke:none}
.site-footer .footer-logo{display:block;width:auto;max-width:150px;height:68px;object-fit:contain;background:#fff;border-radius:8px;padding:4px}
.reveal-on-scroll{opacity:0;transform:translateY(12px) scale(.992);transition:opacity .44s cubic-bezier(.22,.75,.28,1) var(--reveal-delay,0ms),transform .44s cubic-bezier(.22,.75,.28,1) var(--reveal-delay,0ms)}
.reveal-on-scroll.is-visible{opacity:1;transform:none}

@media(max-width:1100px){
  .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobile-day-nav{max-height:0!important;min-height:0;overflow:hidden!important;padding-top:0!important;padding-bottom:0!important;border-bottom:0!important;opacity:0;visibility:hidden;pointer-events:none;transition:max-height .22s ease,padding .22s ease,opacity .22s ease}
  .mobile-day-nav.program-active{max-height:68px!important;padding-top:9px!important;padding-bottom:9px!important;border-bottom:1px solid var(--line)!important;opacity:1;visibility:visible;pointer-events:auto;overflow-x:auto!important}
}
@media(max-width:760px){
  .header-actions{gap:6px}.hot-head{width:38px;height:38px}.hot-head svg{width:18px;height:18px}
  .tour-card-body{grid-template-rows:auto 58px 24px 48px 44px 42px 62px 46px}
  .tour-card .route{height:48px;min-height:48px!important}
  .booking-card{overflow:hidden}.booking-card .total .price-hot{font-size:21px!important}
  .calendar-mini{top:68px!important}body.admin-bar .calendar-mini{top:116px!important}
  .departure-row{grid-template-columns:62px minmax(0,1fr)}
  .departure-price .price-hot{text-align:left}
  .news-head{padding-top:34px}.news-grid{grid-template-columns:1fr}.news-card-media{height:240px}.news-single{padding-top:34px}.news-article .entry-content{font-size:16px}.home-news{padding-block:54px}
}
@media(max-width:430px){
  .price-hot,.price-hot>span{font-size:17px!important;letter-spacing:-.02em}
  .booking-card .total .price-hot,.booking-card .total .price-hot>span{font-size:19px!important}
  .hotel-tabs>button{gap:10px}.hotel-tabs .price-hot,.hotel-tabs .price-hot>span{font-size:14px!important}
  .month-grid>span,.month-grid>button{height:34px}
}
@media(prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transform:none;transition:none}}
