/* VMON4.3.1 · runtime geometry hardening.
   The JS companion recognises the real Marga DOM after hydration and adds
   stable classes. These rules therefore do not depend on a particular Colibri
   ancestor chain or on the PHP router recognising /reserva/ early enough. */

/* -------------------------------------------------------------------------
   Outer canvas release: every ancestor in the functional island that could
   still carry an old h-col-* width is explicitly released. */
body.cth-brand--vmon.cth-vmon-trip-runtime .cth-vmon-trip-host,
body.cth-brand--vmon.cth-vmon-reservation-runtime .cth-vmon-reservation-host{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:0 0 100%!important;
  float:none!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon.cth-vmon-trip-runtime :where(.cth-vmon-trip-host.h-row,.cth-vmon-trip-host.row),
body.cth-brand--vmon.cth-vmon-reservation-runtime :where(.cth-vmon-reservation-host.h-row,.cth-vmon-reservation-host.row){
  display:block!important;
}
body.cth-brand--vmon.cth-vmon-trip-runtime :where(.cth-vmon-trip-host.h-column,.cth-vmon-trip-host[class*="h-col-"],.cth-vmon-trip-host[class*="col-"]),
body.cth-brand--vmon.cth-vmon-reservation-runtime :where(.cth-vmon-reservation-host.h-column,.cth-vmon-reservation-host[class*="h-col-"],.cth-vmon-reservation-host[class*="col-"]){
  margin-left:0!important;
  margin-right:0!important;
}

/* Trip detail: 100% of the available page canvas, capped at the agreed 1240. */
body.cth-brand--vmon .md-template.cth-vmon-trip-template{
  display:block!important;
  width:min(calc(100% - 36px),1240px)!important;
  max-width:1240px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon .md-template.cth-vmon-trip-template .cth-vmon-trip-inner-wide{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  float:none!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon .md-template.cth-vmon-trip-template :where(.h-row,.row):has(#precioIncluye,.h-tabs,.h-tabs-content)>.h-column{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:0 0 100%!important;
  float:none!important;
}

/* -------------------------------------------------------------------------
   Reservation: recognition is DOM-based. The form uses the full 1240px canvas
   and the existing Marga rows become a fluid desktop grid without moving or
   replacing any input, Vue binding, price calculation, validation or submit. */
body.cth-brand--vmon.cth-vmon-reservation-runtime .md-template.cth-vmon-reservation-template{
  display:block!important;
  width:min(calc(100% - 36px),1240px)!important;
  max-width:1240px!important;
  min-width:0!important;
  margin:0 auto!important;
  padding:32px 0 82px!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0 auto!important;
  padding:clamp(22px,3vw,36px)!important;
  border:1px solid rgba(7,26,62,.10)!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:0 18px 52px rgba(7,26,62,.06)!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form,
body.cth-brand--vmon form.cth-vmon-reservation-form>div,
body.cth-brand--vmon form.cth-vmon-reservation-form :where(.control-group,.form-group,.form-row){
  min-width:0!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row{
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:flex-start!important;
  gap:18px 20px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0 0 22px!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>:where(.h-column,[class*="h-col-"],[class*="col-"]){
  float:none!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  flex:1 1 230px!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}
/* Original Colibri proportions remain useful once the page has its real width. */
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>.h-col-lg-2{flex-basis:145px!important;flex-grow:0!important}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>.h-col-lg-3{flex-basis:210px!important}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>.h-col-lg-4{flex-basis:270px!important}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>.h-col-lg-6{flex-basis:420px!important}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>:where(.h-col-lg-8,.h-col-lg-9,.h-col-lg-10,.h-col-lg-12){flex-basis:100%!important}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-cell{
  min-width:0!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-cell--wide{
  flex-basis:100%!important;
  width:100%!important;
  max-width:100%!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),select,textarea,.select2-container){
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),select){min-height:46px!important}
body.cth-brand--vmon form.cth-vmon-reservation-form textarea{min-height:150px!important;resize:vertical!important}
body.cth-brand--vmon form.cth-vmon-reservation-form :where(button,.md-btn,input[type="button"],input[type="submit"]){
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  white-space:nowrap!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form :where(input[type="checkbox"],input[type="radio"]){width:auto!important;min-width:0!important;min-height:0!important}
body.cth-brand--vmon form.cth-vmon-reservation-form :where(.input-group,.md-counter,.counter,.quantity){
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  width:auto!important;
  max-width:100%!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form :where(h2,h3,h4,h5,h6,p,label,.md-label,strong,span){
  max-width:100%!important;
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
body.cth-brand--vmon form.cth-vmon-reservation-form :where(.g-recaptcha,[data-sitekey],table,img){max-width:100%!important}

/* Existing “Sí / No” controls: clean horizontal pair, never two tall blocks. */
body.cth-brand--vmon.cth-vmon-reservation-runtime .cth-vmon-reservation-history{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0 0 22px!important;
  padding:6px 0 2px!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon.cth-vmon-reservation-runtime .cth-vmon-reservation-history__question{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0 0 7px!important;
  white-space:normal!important;
}
body.cth-brand--vmon.cth-vmon-reservation-runtime .cth-vmon-reservation-history__choice{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:58px!important;
  max-width:none!important;
  min-height:42px!important;
  height:auto!important;
  margin:0 8px 0 0!important;
  padding:9px 15px!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-sizing:border-box!important;
}
body.cth-brand--vmon.cth-vmon-reservation-runtime input.cth-vmon-reservation-history__choice[type="radio"]{
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
}

@media(max-width:1023px) and (min-width:768px){
  body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>:where(.h-column,[class*="h-col-"],[class*="col-"]){flex:1 1 calc(50% - 10px)!important}
  body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>:where(.h-col-lg-8,.h-col-lg-9,.h-col-lg-10,.h-col-lg-12){flex-basis:100%!important}
}
@media(max-width:767px){
  body.cth-brand--vmon .md-template.cth-vmon-trip-template,
  body.cth-brand--vmon.cth-vmon-reservation-runtime .md-template.cth-vmon-reservation-template{width:min(calc(100% - 20px),1240px)!important}
  body.cth-brand--vmon form.cth-vmon-reservation-form{padding:18px 14px!important;max-width:100%!important}
  body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row{display:block!important;margin-bottom:18px!important}
  body.cth-brand--vmon form.cth-vmon-reservation-form .cth-vmon-reservation-row>:where(.h-column,[class*="h-col-"],[class*="col-"]){display:block!important;width:100%!important;max-width:100%!important;margin:0 0 14px!important}
  body.cth-brand--vmon form.cth-vmon-reservation-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),select,textarea){font-size:16px!important}
}
