/* Approved shared presentation for the three destinations. */
@media (max-width:599px) {
  #app .cabin-heading-row #headerTitle,
  #app2 #headerTitle2,
  #ov.fd-cabin-modern .fd-cabin-title,
  #services-overlay .svcs-title,
  #menu-detail .menu-title,
  #sinema-detail .cn-title,
  #tarfihi-detail .tg-title,
  #maiya-detail .wm-title,
  #tawilat-detail .tw-title,
  #jalsat-detail .jl-title,
  #hospitality-detail .hd-title,
  #sharik-detail .sw-title,
  #walaa-detail .wl-title,
  #faq-overlay .faq-title,
  #faq2-overlay .faq-title,
  #chalet-faq .faq-title,
  #contact-page[data-venue] .cp-title {
    font-size:22px!important;
    line-height:1.4;
  }

  :is(#faq-list-resort,#faq-list-stay) .faq-answer,
  #chalet-faq .chalet-faq-answer { font-size:13px!important; }

  /* Use the resort contact type sizes for all three destinations. */
  #contact-page[data-venue] .cp-label { font-size:18px!important; }
  #contact-page[data-venue] .cp-intro { font-size:15px!important; }
  #contact-page[data-venue] :is(.cp-wide-name,.cp-tile-name,.fd-contact-faq-button),
  #contact-page[data-venue] .cp-primary .cp-wide-name { font-size:16px!important; }
  #contact-page[data-venue] .cp-tile-sub { font-size:13px!important; }
  #contact-page[data-venue] :is(.cp-map-sub,.cp-app-caption),
  #contact-page[data-venue] .cp-tile-sm .cp-tile-name { font-size:14px!important; }
}

/* Increase the controls' touch area while retaining their existing appearance. */
:is(.back-btn,.faq-back,.contact-back,.svcs-back,.menu-back,.cn-back,.tg-back,
    .wm-back,.tw-back,.jl-back,.hd-back,.sw-back,.wl-back,.fs-close,.fs-nav-btn,
    .iframe-close,.fd-cabin-nav-back,.fd-cabin-nav-arrow),
#galWrap > button,
#menu-cart-review button[onclick="closeMenuCartReview()"] {
  box-sizing:border-box;
  min-width:44px!important;
  min-height:44px!important;
}
#ov.fd-cabin-modern .fd-cabin-share-links :is(a,button) {
  box-sizing:border-box;
  min-width:44px;
  min-height:44px;
  padding:8px 4px;
}
#galWrap .gal-img { pointer-events:none; }
#galWrap .gal-img.active { pointer-events:auto; }
#galWrap .gal-img.active:focus-visible { outline:3px solid #7ecfea; outline-offset:-5px; }
#fsOverlay { overflow:hidden; }
#fsTrack { direction:ltr; width:100%; }

/* Three short features can wrap as a single caption at narrow widths. */
.dest-card .dest-sub,
:is(#landing,#landing2,#landing3) .rh-cabin-caption { line-height:1.6; text-wrap:balance; }

/* Retain the mobile carousel and use the available desktop width for cards. */
@media (min-width:900px) {
  :is(#app,#app2) .grid-section:has(.fd-carousel) { padding-inline:24px!important; }
  :is(#app #grid,#app2 #grid2).fd-carousel {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
    width:100%;
    max-width:1100px;
    margin-inline:auto;
    padding:8px 0 24px;
    overflow:visible;
    scroll-snap-type:none;
    scroll-padding:0;
    align-items:stretch;
  }
  :is(#app #grid,#app2 #grid2).fd-carousel > .card:not(.hidden) {
    width:100%;
    max-width:none;
    min-width:0;
    height:100%;
    display:flex;
    flex-direction:column;
  }
  :is(#app #grid,#app2 #grid2).fd-carousel .fd-cabin-card-v2-body {
    flex:1;
    display:flex;
    flex-direction:column;
  }
  :is(#app #grid,#app2 #grid2).fd-carousel .card-btn { margin-top:auto; }
  .fd-carousel-controls { display:none!important; }
}
@media (min-width:1100px) {
  #app #grid.fd-carousel { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

/* Match every resort card to the tallest content without a fixed height. */
#app #grid.fd-carousel { align-items:stretch; }
#app #grid.fd-carousel .fd-cabin-card-v2-body { flex:1; }
#app #grid.fd-carousel .card-btn { margin-top:auto; }
@media (min-width:900px) {
  #app #grid.fd-carousel { grid-auto-rows:1fr; }
}

/* Keep the combined-booking explanation directly below its own heading. */
#ov.fd-cabin-modern .fd-cabin-combined-note .fd-cabin-instructions {
  margin-top:0;
  padding-top:0;
  border-top:0;
}

/* A divider marks a new main specification section in every destination. */
#ov.fd-cabin-modern .fd-cabin-content > .fd-cabin-section {
  margin:0;
}
#ov.fd-cabin-modern .fd-cabin-content > .fd-cabin-section + .fd-cabin-section,
#ov.fd-cabin-modern .fd-cabin-content > .fd-cabin-addons {
  margin:24px 0 0;
  padding:20px 0 0;
  border:0;
  border-top:1px solid rgba(49,89,103,.65);
  border-radius:0;
  background:none;
}
/* Notes stay attached to their features or heading, without an inner divider. */
#ov.fd-cabin-modern .fd-cabin-content .fd-cabin-instructions {
  padding-top:0;
  border-top:0;
}
#ov.fd-cabin-modern .fd-cabin-content h3 + .fd-cabin-instructions,
#ov.fd-cabin-modern .fd-cabin-content .fd-stay-guest-note .fd-cabin-instructions {
  margin-top:0;
}
/* Floors are subsections of the indoor area; headings and spacing distinguish them. */
#ov.fd-cabin-modern .fd-cabin-content .fd-chalet-floor + .fd-chalet-floor {
  margin-top:20px;
  padding-top:0;
  border-top:0;
}

/* Contextual FAQ access at the end of accommodation specifications. */
#ov.fd-cabin-modern .fd-cabin-faq-footer{margin-top:24px;padding-top:12px;border-top:1px solid rgba(49,89,103,.65);}
#ov.fd-cabin-modern .fd-cabin-faq-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:#a6dfe8;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px;}
#ov.fd-cabin-modern .fd-cabin-faq-link:hover{color:#fff;}
#ov.fd-cabin-modern .fd-cabin-faq-link:focus-visible{outline:2px solid #7ecfea;outline-offset:4px;border-radius:4px;}
#ov.fd-cabin-modern .fd-chalet-pool-note{grid-column:1/-1;margin:0 0 8px;}

/* Approved refinements: keep facts aligned even without an amenity badge. */
#app #grid .fd-card-feature-slot{display:flex;align-items:center;justify-content:center;min-height:24px;}
#app #grid .fd-card-actions{display:flex;align-items:stretch;gap:8px;margin-top:auto;}
#app #grid .fd-card-actions .card-btn{flex:1;min-width:0;margin:0;}
.fd-destination-location{font:500 12px/1.5 Tajawal,sans-serif;color:#a6dfe8;margin:2px 0 4px;}
.fd-page-heading-copy{min-width:0;}
.fd-venue-subtitle{margin:4px 0 0;color:#9ac8d4;font:500 13px/1.5 Tajawal,sans-serif;}
/* The name trial uses existing space; the header remains 56px tall. */
#ov.fd-cabin-modern .fd-detail-current-name{margin-inline-start:auto;max-width:calc(100% - 110px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f0f5f7;font:700 14px/1.5 Tajawal,sans-serif;}
#tawilat-detail .tw-contact:disabled{opacity:.55;cursor:default;}
.fd-cart-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.1);font-family:Tajawal,sans-serif;}
.fd-cart-copy{min-width:0;display:flex;flex-direction:column;gap:4px;}
.fd-cart-copy strong{color:#f0f5f7;font-size:14px;line-height:1.6;}
.fd-cart-copy span{color:#a8c8d3;font-size:13px;}
.fd-cart-line-total{font-size:14px;color:#9edce5;align-self:start;white-space:nowrap;}
.fd-cart-row-controls{grid-column:1/-1;display:flex;align-items:center;gap:8px;}
.fd-cart-row-controls button{min-width:44px;min-height:44px;padding:6px 12px;border:1px solid #315967;border-radius:10px;background:#123442;color:#eaf5f8;font:700 18px Tajawal,sans-serif;cursor:pointer;}
.fd-cart-row-controls .fd-cart-remove{margin-inline-start:auto;font-size:13px;background:transparent;color:#c5dbe2;}
.fd-cart-qty{min-width:22px;text-align:center;font-size:15px;color:#fff;}
.fd-cart-row-controls button:focus-visible{outline:2px solid #7ecfea;outline-offset:2px;}

/* Keep swimming instructions with the pools before the other outdoor spaces. */
#ov.fd-cabin-modern .fd-cabin-content .fd-pool-note{grid-column:1/-1;margin:4px 0 8px;}
#ov.fd-cabin-modern .fd-cabin-feature bdi{white-space:nowrap;}
