/* v566U — CSS/Layout conflict cleanup foundation.
   Scope: customer-facing layout safety only. This file intentionally avoids
   payment/order JavaScript and does not remove dormant modules.
   Purpose: place one clear final layout layer after older patch files so the
   current achieved UI is preserved while reducing visible selector conflicts. */

html{max-width:100%;overflow-x:hidden;}
body{max-width:100%;overflow-x:hidden;}
img,svg,video,canvas{max-width:100%;height:auto;}
.container{width:100%;}

/* Customer page rails: keep subpages centered and prevent old rail patches from
   forcing cramped horizontal layouts. */
main.section .container,
.page-hero .container,
.footer .container{min-width:0;}
.vge-subpage-viewport-rail-v441G{width:100%;min-width:0;}
.vge-subpage-viewport-rail-v441G > .container{min-width:0;}

/* Floating contact dock: keep it above content but below true modal/dialog layers. */
.whatsapp-float,.messenger-float,.telegram-float,.quick-contact-dock-v419G,.vge-chatbot-widget,.vge-chatbot-launcher{z-index:800;}
.addon-booking-modal-v303G,.modal,.dialog,[role="dialog"]{z-index:1200;}

/* Order form: final desktop width authority after older v465/v561/v562 patches. */
body:has(#orderForm) .order-shell{width:100%;margin-left:auto;margin-right:auto;}
body:has(#orderForm) .order-layout{align-items:start;min-width:0;}
body:has(#orderForm) .order-main,
body:has(#orderForm) .order-summary{min-width:0;}

@media (min-width:1181px){
  body:has(#orderForm) .order-shell{max-width:1680px!important;}
  body:has(#orderForm) .order-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(585px,645px)!important;
    gap:34px!important;
  }
  body:has(#orderForm) .order-summary{
    width:100%!important;max-width:645px!important;justify-self:stretch!important;
    overflow:visible!important;position:sticky;top:88px;
  }
}
@media (min-width:981px) and (max-width:1180px){
  body:has(#orderForm) .order-shell{max-width:1380px!important;}
  body:has(#orderForm) .order-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(460px,520px)!important;
    gap:26px!important;
  }
  body:has(#orderForm) .order-summary{width:100%!important;max-width:520px!important;justify-self:stretch!important;}
}
@media (max-width:980px){
  body:has(#orderForm) .order-layout{display:block!important;}
  body:has(#orderForm) .order-summary{display:none!important;}
  body:has(#orderForm) .review-mobile{display:block!important;}
}

/* Order review rows: stop labels/values from breaking into single letters. */
body:has(#orderForm) .order-summary .summary-row,
body:has(#orderForm) .review-mobile .summary-row,
body:has(#orderForm) #inlinePaymentSummary .summary-row{
  display:grid!important;
  grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr)!important;
  gap:18px!important;
  align-items:start!important;
}
body:has(#orderForm) .order-summary .summary-row span,
body:has(#orderForm) .review-mobile .summary-row span,
body:has(#orderForm) #inlinePaymentSummary .summary-row span{
  min-width:0!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;
}
body:has(#orderForm) .order-summary .summary-row strong,
body:has(#orderForm) .review-mobile .summary-row strong,
body:has(#orderForm) #inlinePaymentSummary .summary-row strong{
  min-width:0!important;text-align:right!important;word-break:normal!important;overflow-wrap:break-word!important;
}
body:has(#orderForm) .order-summary .summary-row strong small,
body:has(#orderForm) .review-mobile .summary-row strong small{display:block;margin-top:6px;}

/* Arrival Fast Track row: final balanced date/type layout, date only. */
body:has(#orderForm) #fastTrackFields .fast-track-grid-v499G{
  display:grid!important;
  grid-template-columns:minmax(300px,1fr) minmax(420px,1.15fr)!important;
  gap:22px!important;
  align-items:start!important;
}
body:has(#orderForm) #fastTrackFields .date-combo{
  display:grid!important;grid-template-columns:minmax(0,1fr) 58px!important;gap:10px!important;align-items:center!important;position:relative!important;width:100%!important;
}
body:has(#orderForm) #fastTrackFields .date-combo input[data-date-input]{min-width:0!important;width:100%!important;}
body:has(#orderForm) #fastTrackFields .date-combo .date-button,
body:has(#orderForm) #fastTrackFields .date-combo .native-date-picker{width:58px!important;height:58px!important;min-height:58px!important;}
body:has(#orderForm) #fastTrackFields .date-combo .native-date-picker{position:absolute!important;right:0!important;top:0!important;opacity:.01!important;z-index:5!important;pointer-events:auto!important;}
body:has(#orderForm) #fastTrackFields .fast-track-flight-number-v499G{grid-column:1 / -1!important;}

@media (max-width:980px){
  body:has(#orderForm) #fastTrackFields .fast-track-grid-v499G{grid-template-columns:1fr!important;}
  body:has(#orderForm) #fastTrackFields .date-combo{grid-template-columns:minmax(0,1fr) 54px!important;}
  body:has(#orderForm) #fastTrackFields .date-combo .date-button,
  body:has(#orderForm) #fastTrackFields .date-combo .native-date-picker{width:54px!important;height:54px!important;min-height:54px!important;}
}

/* PayPal review: keep the two cards stacked, full-width, and readable. */
body:has(#orderForm) .inline-payment-panel{max-width:1040px;margin:22px auto 0;}
body:has(#orderForm) .inline-payment-grid.payment-review-stack-v563U{
  display:grid!important;grid-template-columns:1fr!important;gap:18px!important;align-items:stretch!important;
}
body:has(#orderForm) .inline-payment-card{width:100%!important;max-width:none!important;}
body:has(#orderForm) .payment-action-card-v563U #inlinePaymentBox .actions{
  display:flex!important;gap:12px!important;flex-wrap:wrap!important;align-items:center!important;
}
body:has(#orderForm) .payment-action-card-v563U #inlinePaymentBox .actions .btn{min-width:180px;}
body:has(#orderForm) #inlinePaymentSummary .summary-row.total-line{align-items:center!important;}
body:has(#orderForm) #inlinePaymentSummary .summary-row.total-line strong{font-size:28px;color:#dc2626;white-space:nowrap;}
@media (max-width:760px){
  body:has(#orderForm) .inline-payment-panel{margin-top:18px;}
  body:has(#orderForm) .order-summary .summary-row,
  body:has(#orderForm) .review-mobile .summary-row,
  body:has(#orderForm) #inlinePaymentSummary .summary-row{grid-template-columns:1fr!important;gap:6px!important;}
  body:has(#orderForm) .order-summary .summary-row strong,
  body:has(#orderForm) .review-mobile .summary-row strong,
  body:has(#orderForm) #inlinePaymentSummary .summary-row strong{text-align:left!important;}
  body:has(#orderForm) .payment-action-card-v563U #inlinePaymentBox .actions{display:grid!important;grid-template-columns:1fr!important;}
  body:has(#orderForm) .payment-action-card-v563U #inlinePaymentBox .actions .btn{width:100%;min-width:0;}
}

/* Single final confirmation: keep compact and clear after old multi-confirm CSS. */
body:has(#orderForm) .confirmation-box.single-confirm-v562U{max-width:1040px!important;}
body:has(#orderForm) .confirmation-box.single-confirm-v562U .confirm-check{min-width:0!important;}
body:has(#orderForm) .confirmation-box.single-confirm-v562U .confirm-check span{min-width:0!important;}

/* General mobile safety. */
@media (max-width:760px){
  .container{padding-left:18px;padding-right:18px;}
  .card{max-width:100%;}
  input,select,textarea{max-width:100%;}
  .footer-grid,.footer-grid-3{grid-template-columns:1fr!important;}
}
