/* Mosum Voyage 1.2 - tour page layout: mosaic gallery + sticky booking card ---------------- */

/* The old Elementor header is only kept for its booking bar: hide its logo/menu rows */
.mv-el-bar:empty{display:none}
.mv-el-bar [data-id="d432a41"],
.mv-el-bar [data-id="225fe0c"]{display:none!important}

/* ---- Mosaic gallery ---------------------------------------------------------------- */
.mv-gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:clamp(300px,34vw,440px);border-radius:18px;overflow:hidden;margin:0 0 28px;position:relative}
.mv-gal-t{position:relative;display:block;padding:0;margin:0;border:0;background:var(--theme-palette-color-7,#0B3037);overflow:hidden;cursor:zoom-in;min-width:0;min-height:0}
.mv-gal-t img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none;transition:transform .5s ease,filter .3s ease}
.mv-gal-t:hover img{transform:scale(1.04)}
.mv-gal-t:focus-visible{outline:3px solid var(--theme-palette-color-1,#C8963E);outline-offset:-3px}
.mv-gal-t1{grid-column:1;grid-row:1 / span 2}
.mv-gal-t2{grid-column:2;grid-row:1 / span 2}
.mv-gal-t3{grid-column:3;grid-row:1}
.mv-gal-t4{grid-column:3;grid-row:2}
.mv-gal-extra{display:none}
.mv-gal-more{position:absolute;right:10px;bottom:10px;z-index:2;background:rgba(6,25,29,.82);color:#fff;font-size:.85rem;font-weight:700;line-height:1;padding:9px 13px;border-radius:999px;backdrop-filter:blur(4px)}
.mv-gal-more::before{content:"";display:inline-block;width:14px;height:11px;margin-right:7px;vertical-align:-1px;border:2px solid #fff;border-radius:3px}
/* fewer than four photos */
.mv-gal-n1{grid-template-columns:1fr}
.mv-gal-n1 .mv-gal-t1{grid-column:1}
.mv-gal-n2{grid-template-columns:1fr 1fr}
.mv-gal-n2 .mv-gal-t2{grid-column:2}
.mv-gal-n3{grid-template-columns:2fr 1fr}
.mv-gal-n3 .mv-gal-t2{grid-column:2;grid-row:1}
.mv-gal-n3 .mv-gal-t3{grid-column:2;grid-row:2}
/* the "N photos" pill sits on the last visible tile when there are fewer than four */
.mv-gal-n1::after,.mv-gal-n2::after,.mv-gal-n3::after{content:attr(data-label);position:absolute;right:10px;bottom:10px;z-index:2;background:rgba(6,25,29,.82);color:#fff;font-size:.85rem;font-weight:700;line-height:1;padding:9px 13px;border-radius:999px;pointer-events:none}

@media (max-width:760px){
  .mv-gal,.mv-gal-n1,.mv-gal-n2,.mv-gal-n3{display:flex;gap:8px;height:auto;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;border-radius:14px;scrollbar-width:none}
  .mv-gal::-webkit-scrollbar{display:none}
  .mv-gal-t,.mv-gal-extra{display:block;flex:0 0 86%;height:250px;scroll-snap-align:start;border-radius:14px}
  .mv-gal-n1 .mv-gal-t{flex-basis:100%}
  .mv-gal-more{display:none}
  .mv-gal-n1::after,.mv-gal-n2::after,.mv-gal-n3::after{display:none}
}
}

/* ---- Lightbox ---------------------------------------------------------------------- */
.mv-lb{position:fixed;inset:0;z-index:100000;background:rgba(3,12,14,.94);display:flex;align-items:center;justify-content:center;padding:56px 64px}
.mv-lb[hidden]{display:none}
.mv-lb-open{overflow:hidden}
.mv-lb-f{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center}
.mv-lb-f img{max-width:100%;max-height:calc(100vh - 150px);width:auto;height:auto;object-fit:contain;border-radius:10px}
.mv-lb-c{color:#d8e6e8;font-size:.9rem;margin-top:12px;text-align:center}
.mv-lb button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:50%;width:46px;height:46px;font-size:2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.mv-lb button:hover{background:rgba(255,255,255,.25)}
.mv-lb-x{top:14px;right:14px}
.mv-lb-p{left:12px;top:50%;transform:translateY(-50%)}
.mv-lb-n{right:12px;top:50%;transform:translateY(-50%)}
@media (max-width:640px){.mv-lb{padding:56px 10px}.mv-lb-p,.mv-lb-n{top:auto;bottom:14px;transform:none}.mv-lb-p{left:calc(50% - 56px)}.mv-lb-n{right:calc(50% - 56px)}}

/* ---- Tour page grid: content on the left, booking card sticks on the right ---------- */
@media (min-width:1025px){
  .mv-tour-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 400px;column-gap:36px;row-gap:0;align-items:start;align-content:start;--gap:0px}
  .mv-tour-grid > *{grid-column:1;min-width:0;width:auto!important;max-width:100%}
  .mv-tour-grid > .elementor-widget-eael-breadcrumbs,
  .mv-tour-grid > .elementor-widget-heading.mv-tour-title{grid-column:1 / -1}
  .mv-tour-grid > .mv-tour-side{grid-column:2;grid-row:3 / span 80;position:sticky;top:calc(var(--mv-bar-h) + 24px);align-self:start;max-height:calc(100vh - var(--mv-bar-h) - 130px);overflow-y:auto;overscroll-behavior:contain}
  .admin-bar .mv-tour-grid > .mv-tour-side{top:calc(var(--mv-bar-h) + 56px);max-height:calc(100vh - var(--mv-bar-h) - 160px)}
}
.mv-tour-side{background:var(--theme-palette-color-7,#0B3037);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:22px 20px;box-shadow:var(--mv-shadow);scrollbar-width:thin}
.mv-tour-side .e-con,.mv-tour-side .e-con-inner{flex-direction:column!important;width:100%!important;max-width:100%!important;padding-left:0!important;padding-right:0!important;--flex-direction:column}
.mv-tour-side .elementor-heading-title{font-size:1.3rem!important;line-height:1.25!important;text-align:left!important;margin:0 0 6px}
.mv-tour-side .elementor-widget-heading:nth-of-type(2) .elementor-heading-title{font-size:.95rem!important;font-weight:400!important;opacity:.85}
.mv-tour-side .elementor-widget{width:100%}
.mv-tour-side .e-con{display:flex!important;grid-template-columns:none!important;gap:12px!important}
.mv-tour-side .elementor-widget,.mv-tour-side>.elementor-widget-heading{margin:0!important;transform:none!important;top:auto!important;inset:auto!important;--container-widget-width:100%}
.mv-tour-side .elementor-widget-heading .elementor-heading-title{display:block}
.mv-tour-side .elementor-widget-icon-list{flex:none!important}
.mv-tour-side .elementor-icon-list-item a,.mv-tour-side .elementor-icon-list-text{font-size:.9rem!important}
.mv-tour-side .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:6px 14px}
.mv-tour-side .elementor-icon-list-item{margin:0!important}
.mv-tour-side form{margin:0}
.mv-tour-side .wpforms-container .wpforms-field{padding:6px 0}
.mv-tour-side .wpforms-field-label{font-size:.9rem}
.mv-tour-side .wpforms-field-medium,.mv-tour-side .wpforms-field-large,.mv-tour-side input[type=text],.mv-tour-side input[type=email],.mv-tour-side input[type=tel],.mv-tour-side input[type=date],.mv-tour-side input[type=number],.mv-tour-side select,.mv-tour-side textarea{max-width:100%!important;width:100%!important}
.mv-tour-side .wpforms-field-checkbox ul{max-height:190px;overflow:auto}

@media (max-width:1024px){
  .mv-tour-grid{display:flex!important;flex-direction:column}
  .mv-tour-side{margin-top:28px}
}

.mv-tour-side .elementor-widget-icon-list{padding:0!important}
.mv-tour-side .elementor-widget-icon-list .elementor-widget-container{padding:12px 14px!important}
.mv-tour-side .elementor-icon-list-items{flex-direction:column}
.mv-tour-side .elementor-icon-list-icon{width:1.4em}
.mv-tour-side .elementor-icon-list-items{padding:12px 14px!important;gap:10px!important}
.mv-tour-side .elementor-icon-list-item{align-items:center}
.mv-tour-side .wpforms-field{padding:4px 0!important;margin:0!important}
.mv-tour-side .wpforms-field-label{margin:0 0 4px!important}
.mv-tour-side .wpforms-field-description,.mv-tour-side .wpforms-field-sublabel{margin-top:2px!important}

/* 1.3: the Elementor header template differs between installs, so hide every top-level row of it except the first (the bottom booking bar). */
.mv-el-bar header>.e-con:nth-child(n+2),.mv-el-bar header>.elementor-element:nth-child(n+2){display:none!important}
.mv-el-bar header [class*="elementor-widget-nav-menu"]{display:none!important}
/* wider page card on desktop so the gallery and the booking card have room */
@media (min-width:1025px){
  .e-con.e-parent:has(.mv-tour-grid){--content-width:min(1280px,calc(100vw - 48px))!important}
  .e-con.e-parent:has(.mv-tour-grid)>.e-con-inner{max-width:min(1280px,calc(100vw - 48px))!important;width:100%!important}
  .mv-tour-grid{grid-template-columns:minmax(0,1fr) 420px!important;column-gap:40px}
  .mv-gal{height:clamp(340px,32vw,480px)}
}
