/* Merapi 1.3.0: compact cards, working selectors and a consistent spacing rhythm. */
:root{--merapi-hot:#ef3d43;--merapi-hot-dark:#c9242d;--merapi-panel:#f6fafc;--merapi-active:#dfeff8}
.app-shell{overflow-x:clip;overflow-y:visible}
body.admin-bar .site-header{top:32px}
body.admin-bar .detail-section-nav{top:114px}
body.admin-bar .day-nav-card{top:196px}
body.admin-bar .calendar-mini{top:210px}

/* Shared rhythm */
.hero{margin-bottom:24px}
.trust-strip{width:min(1240px,calc(100% - 64px));margin:0 auto 44px;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 12px 32px rgba(31,73,119,.06)}
.tours-section{padding-top:44px}
.catalog-head,.calendar-head,.tour-top{padding-top:48px}
.catalog-results{padding-top:42px}
.content-block{padding-bottom:64px;margin-bottom:64px}
.content-block>.eyebrow{margin-bottom:14px}
.content-block h2,.content-block>div>h2{margin-bottom:26px}
.content-block h3{margin-top:0}
.entry-content h2,.entry-content h3,.entry-content h4{margin-top:40px;margin-bottom:16px}
.entry-content p{margin-bottom:22px}

/* Prices are one interface style everywhere. */
.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-hot)!important;font-family:Arial,Helvetica,sans-serif!important;font-weight:800!important;letter-spacing:-.025em;display:inline-flex!important;align-items:center;gap:7px;min-width:0;white-space:normal!important}
.price-hot svg{width:22px;height:22px;flex:0 0 22px;fill:currentColor}
.price-hot>span{font:inherit;color:inherit;min-width:0;overflow-wrap:anywhere}

/* Compact catalogue cards with readable metadata. */
.tour-grid{gap:22px}
.tour-card{border-radius:10px;min-height:0}
.tour-card-media,.tour-card-media.card-gallery{height:218px}
.tour-card-body{padding:19px 20px 20px;gap:0}
.tour-card h3{font-size:25px;line-height:1.1;margin:7px 0 8px;min-height:0}
.tour-card .rating-line{margin-bottom:10px}
.tour-card .route{font-size:14px;line-height:1.45;min-height:0;margin:0 0 13px}
.tour-card-date{position:relative;margin:0 0 11px}
.tour-card-date-current{width:100%;min-height:42px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#f8fbfd;color:var(--brand-navy);display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;gap:8px;align-items:center;text-align:left;cursor:pointer;font-size:14px;font-weight:700}
.tour-card-date-current svg{width:17px;height:17px}
.tour-card-date-current small{font-size:12px;color:var(--muted);font-weight:600}
.tour-card-date-current:hover,.tour-card-date-current[aria-expanded="true"]{border-color:var(--brand-sky);background:#eef7fb}
.tour-card-date-menu{position:absolute;z-index:12;left:0;right:0;top:calc(100% + 5px);padding:6px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 16px 34px rgba(31,73,119,.16)}
.tour-card-date-menu button{width:100%;border:0;border-radius:6px;background:#fff;padding:9px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer;font-size:13px}
.tour-card-date-menu button:hover,.tour-card-date-menu button.active{background:var(--merapi-active);color:var(--brand-navy)}
.tour-card-date-menu small{color:var(--muted)}
.tour-facts{min-height:0;padding-top:11px;gap:7px 14px}
.tour-facts span{font-size:13px;line-height:1.35;white-space:normal}
.tour-card-footer{min-height:0;margin:14px 0 13px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}
.tour-card-footer small{font-size:11px}
.tour-card-footer strong{font-size:21px;line-height:1.2}
.tour-card-footer .seats{font-size:13px;align-self:end}
.tour-card-body>.outline-button{min-height:46px;margin-top:0}
.tour-label.badge-red{background:#ef3d43;color:#fff}.tour-label.badge-blue{background:var(--brand-sky);color:#fff}.tour-label.badge-green{background:#2b7b57;color:#fff}.tour-label.badge-yellow{background:var(--brand-yellow);color:#17385d}
.hot-price .price-hot{font-size:18px}.hot-price .price-hot svg{width:18px;height:18px;flex-basis:18px}

/* Expanded tour-type filter. */
.advanced-filters{grid-template-columns:minmax(310px,1.6fr) repeat(2,minmax(170px,.7fr));align-items:start}
.advanced-filters fieldset{border:0;padding:0;margin:0;min-width:0}
.advanced-filters legend{font-weight:800;color:var(--brand-navy);margin-bottom:10px}
.type-filter>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 16px}
.type-filter label{display:flex!important;align-items:flex-start;gap:9px;color:var(--text)!important;font-size:14px!important;font-weight:500!important;cursor:pointer}
.type-filter input{appearance:none;width:20px;height:20px;flex:0 0 20px;border:1px solid var(--line);border-radius:5px;background:#f0f2f4;margin:1px 0 0;display:grid;place-items:center;cursor:pointer}
.type-filter input:checked{background:var(--brand-navy);border-color:var(--brand-navy)}
.type-filter input:checked:after{content:"✓";color:#fff;font-size:13px;font-weight:800}
.advanced-filter-actions{grid-column:1/-1;display:flex;align-items:center;gap:18px;padding-top:2px}
.advanced-filter-actions a{color:var(--muted)}

/* Consistent tour gallery height; every image opens the modal. */
.tour-hero-layout{grid-template-columns:minmax(0,1.7fr) minmax(350px,410px);gap:26px}
.tour-gallery{height:520px;grid-template-columns:minmax(0,1fr) 172px}
.main-photo,.gallery-thumbs button{height:100%;min-height:0;background:#dce9f1}
.main-photo img,.gallery-thumbs img{object-fit:cover}
.gallery-thumbs{min-height:0;grid-template-rows:repeat(4,minmax(0,1fr))}
.gallery-thumbs:has(button:nth-child(3):last-child){grid-template-rows:repeat(3,minmax(0,1fr))}
.gallery-thumbs:has(button:nth-child(2):last-child){grid-template-rows:repeat(2,minmax(0,1fr))}
.gallery-thumbs:has(button:first-child:last-child){grid-template-rows:1fr}

/* Booking card: real radios, one selected option, no price overflow. */
.booking-card{padding:25px;min-width:0;overflow:hidden}
.booking-card h2{font-size:34px;margin-bottom:19px}
.date-options{display:grid;gap:9px}
.date-options label{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;color:var(--text);font-family:Arial,Helvetica,sans-serif}
.date-options label:hover{border-color:var(--brand-sky);background:#f7fbfd}
.date-options label.selected{border-color:var(--brand-navy);background:#eaf4fa}
.date-options input{position:absolute;opacity:0;pointer-events:none}
.date-options label>i{width:20px;height:20px;border:1.5px solid var(--brand-navy);border-radius:50%;display:grid;place-items:center;background:#fff}
.date-options label.selected>i:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--brand-navy)}
.date-options label>b{font:700 14px/1.3 Arial,Helvetica,sans-serif;min-width:0}
.date-options label>small{font:500 12px/1.25 Arial,Helvetica,sans-serif;text-align:right}
.people-row{font-family:Arial,Helvetica,sans-serif}
.total{min-width:0}
.total>span,.total>small{font-family:Arial,Helvetica,sans-serif}
.total .price-hot{font-size:clamp(25px,2.35vw,35px);line-height:1.12;max-width:100%}
.total .price-hot svg{width:25px;height:25px;flex-basis:25px}

/* Sticky section bar and sticky day navigator. */
.detail-section-nav{top:82px;background:rgba(247,251,253,.91)}
.detail-section-nav a{font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:650;letter-spacing:.01em}
.tour-content-layout{grid-template-columns:minmax(0,1fr) 330px;gap:42px;padding-top:64px}
.day-nav-card{top:164px;padding:17px;background:#f8fbfd;overflow:visible}
.day-nav-card>.eyebrow{font-family:Arial,Helvetica,sans-serif}
.day-nav-card a{min-height:61px;margin:0!important;width:100%!important;border-top:1px solid var(--line);background:#f5f9fb;padding:11px 14px;grid-template-columns:70px minmax(0,1fr);gap:10px;color:var(--brand-navy);font-family:Arial,Helvetica,sans-serif;font-weight:400}
.day-nav-card a span{font-size:12px;font-weight:500;letter-spacing:.065em}
.day-nav-card a b{font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.28;font-weight:500}
.day-nav-card a:hover{background:#eaf4f9}
.day-nav-card a.active{background:#d7eaf5;color:var(--brand-navy);box-shadow:inset 4px 0 0 var(--brand-navy)}
.day-nav-card a:before{display:none!important}
.day-nav-card a.active:after{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);border-top:11px solid transparent;border-bottom:11px solid transparent;border-right:14px solid #d7eaf5}
.altai-day{scroll-margin-top:180px}
.altai-day header h3{margin-bottom:11px}
.day-copy p{margin:0}

/* Hotels */
.hotel-tabs>button{grid-template-columns:90px minmax(0,1fr) minmax(150px,205px) 34px}
.hotel-tabs .price-hot{justify-content:flex-end;font-size:18px}
.hotel-price-result{grid-template-columns:minmax(0,1fr);gap:6px}
.hotel-price-result .price-hot{font-size:22px;justify-content:flex-start}
.hotel-price-result .primary-button{grid-column:1;margin-top:10px}
.selected-hotel-media,.selected-hotel-media>button{height:420px;min-height:420px}

/* Calendar: functional month grid and sticky left rail. */
.calendar-layout{grid-template-columns:310px minmax(0,1fr);gap:32px;align-items:start}
.calendar-mini{top:178px;border-radius:10px;box-shadow:0 12px 30px rgba(31,73,119,.07);z-index:5}
.mini-head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin-bottom:19px}
.mini-head b{text-align:center;color:var(--brand-navy);font-size:17px}
.mini-head button{width:34px;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--brand-navy);cursor:pointer;font-size:22px;line-height:1}
.mini-head button:hover{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}
.weekdays{margin-bottom:7px}.weekdays span{font-size:11px;font-weight:700;color:var(--muted)}
.month-grid>span,.month-grid>button{height:34px;display:grid;place-items:center}
.month-grid button{position:relative;border:0;border-radius:8px;background:transparent;color:var(--text);cursor:pointer;font-size:13px}
.month-grid button:disabled{cursor:default;opacity:.48}
.month-grid button.has-tour{background:#e3f1f8;color:var(--brand-navy);font-weight:800;opacity:1}
.month-grid button.has-tour:after{content:"";position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--brand-sky)}
.month-grid button.few{background:#fff1b9}.month-grid button.few:after{background:#f5b800}
.month-grid button.active{background:var(--brand-navy);color:#fff}.month-grid button.active:after{background:#fff}
.calendar-reset{width:100%;margin-top:13px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:8px;color:var(--brand-navy);cursor:pointer}
.calendar-legend{display:flex;flex-wrap:wrap;gap:9px 16px;border-top:1px solid var(--line);margin-top:17px;padding-top:14px;font-size:11px;color:var(--muted)}
.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:10px;height:10px;border-radius:50%;background:var(--brand-sky)}.calendar-legend i.few{background:#f5b800}
.departure-row{grid-template-columns:80px 170px minmax(0,1fr) minmax(170px,210px);gap:20px;padding:16px 18px}
.departure-row>img{width:170px;height:120px;border-radius:7px}
.departure-price{min-width:0}
.departure-price .price-hot{justify-content:flex-end;font-size:20px}
.departure-price>span{font-family:Arial,Helvetica,sans-serif}
.calendar-no-results{text-align:center;padding:45px;background:#fff;border:1px dashed var(--line);border-radius:10px}

/* Gallery modal */
.merapi-lightbox.lightbox{padding:18px}
.lightbox-stage{width:min(1320px,100%);height:calc(100dvh - 36px);grid-template-rows:48px minmax(0,1fr) 86px}
.lightbox-image-stage{position:relative;width:100%;height:100%;min-height:0;display:grid;place-items:center;overflow:hidden}
.lightbox-image-stage>img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px}
.lightbox-top{padding:0 4px}
.lightbox-thumbs{max-width:100%;padding:2px 0;scrollbar-width:thin}

/* Interactive states, including save/favorite controls. */
.favorite-button,.heart{position:relative;overflow:visible}
.favorite-button:hover,.heart:hover{border-color:#ee8298;background:#fff4f7;color:#d52f55;transform:translateY(-2px);box-shadow:0 8px 20px rgba(213,47,85,.13)}
.favorite-button:active,.heart:active{transform:scale(.94)}
.favorite-button.favorite-pop svg,.heart.favorite-pop svg{animation:merapi-heart-pop .42s cubic-bezier(.2,.9,.3,1.4)}
.favorite-button.active svg,.heart.active svg{fill:currentColor}
@keyframes merapi-heart-pop{0%{transform:scale(.6)}55%{transform:scale(1.42) rotate(-8deg)}100%{transform:scale(1)}}

@media(max-width:1100px){
  .trust-strip{width:min(100% - 40px,1240px)}
  .advanced-filters{grid-template-columns:1fr 1fr}.type-filter{grid-column:1/-1}
  .tour-hero-layout{grid-template-columns:1fr}.tour-gallery{height:510px}
  .tour-content-layout{grid-template-columns:1fr}.day-nav-card{display:none}
  .calendar-mini{top:164px}
}

@media(max-width:760px){
  body.admin-bar .site-header{top:46px}body.admin-bar .detail-section-nav{top:112px}body.admin-bar .mobile-day-nav{top:162px}
  .hero{margin-bottom:20px}.trust-strip{width:calc(100% - 30px);margin-bottom:38px}.tours-section{padding-top:38px}
  .content-block{padding-bottom:46px;margin-bottom:46px}
  .tour-card-media,.tour-card-media.card-gallery{height:240px}
  .tour-card-body{padding:18px}.tour-card h3{font-size:25px}.tour-card .route{font-size:15px}
  .tour-card-footer strong{font-size:20px}
  .advanced-filters{grid-template-columns:1fr}.type-filter{grid-column:auto}.type-filter>div{grid-template-columns:1fr}.advanced-filter-actions{grid-column:1}
  .tour-gallery{height:auto}.main-photo{height:360px}.gallery-thumbs{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:84px!important}
  .booking-card h2{font-size:32px}.total .price-hot{font-size:27px}
  .detail-section-nav{top:66px}.mobile-day-nav{top:116px}.mobile-day-nav a{font-family:Arial,Helvetica,sans-serif;font-weight:600;background:#f8fbfd}.mobile-day-nav a.active{background:#d7eaf5;color:var(--brand-navy);border-color:var(--brand-sky)}
  .selected-hotel-media,.selected-hotel-media>button{height:330px;min-height:330px}
  .hotel-tabs>button{grid-template-columns:70px minmax(0,1fr) 30px}.hotel-tabs .price-hot{grid-column:2;justify-content:flex-start}.hotel-tabs>button>i{grid-column:3;grid-row:1/3}
  .calendar-layout{grid-template-columns:1fr}.calendar-mini{position:sticky;top:68px;z-index:8}body.admin-bar .calendar-mini{top:116px}.departure-row{grid-template-columns:70px minmax(0,1fr);gap:13px}.departure-row>img{width:100%;height:128px}.departure-info,.departure-price{grid-column:1/-1}.departure-price .price-hot{justify-content:flex-start}
  .lightbox-stage{height:calc(100dvh - 24px);grid-template-rows:44px minmax(0,1fr) 72px}.lightbox-thumbs button{width:86px;height:60px}.lightbox-arrow{width:42px;height:48px}
}

@media(max-width:430px){
  .gallery-thumbs{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:76px 76px!important}.main-photo{height:300px}
  .date-options label{grid-template-columns:20px minmax(0,1fr);padding:12px}.date-options label>small{grid-column:2;text-align:left}
  .total .price-hot{font-size:24px}.price-hot svg{width:20px;height:20px;flex-basis:20px}
  .calendar-mini{position:static}.departure-row{grid-template-columns:58px minmax(0,1fr)}
}
