/* ---- content chips and blocks ---- */
.ycs-chip { display:inline-block; background:#e8f4fb; color:#1a5276; border:1px solid #cfe6f5; border-radius:100px; padding:6px 13px; font-size:0.78rem; font-weight:600; margin:0 6px 8px 0; }
  .ycs-section-label { font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color:#8a8a8a; font-weight:700; margin:26px 0 8px; }
  .ycs-block { margin-bottom: 4px; }
  .ycs-crew-card, .ycs-menu-card, .ycs-review-card { background:#f7fafb; border:1px solid #e2e2e2; border-radius:10px; padding:14px 16px; }
  .ycs-crew-row, .ycs-menu-row { display:flex; gap:14px; flex-wrap:wrap; }
  .ycs-crew-card, .ycs-menu-card { flex:1 1 200px; }
  .ycs-review-card { margin-bottom:10px; }
  .ycs-worth-list, .ycs-discount-list { margin:0; padding-left:20px; font-size:0.92rem; line-height:1.6; }
  .ycs-discount-note { font-size:0.82rem; color:#575757; font-style:italic; margin-top:8px; }

  .ycs-gallery-hero { position:relative; left:50%; transform:translateX(-50%); width:100vw; max-width:100vw; margin:0 0 16px; }
  .ycs-gallery-row { display:flex; height:clamp(280px, 42vh, 420px); }
  .ycs-gallery-main { flex:1 1 55%; min-width:0; overflow:hidden; position:relative; background:#0f2b33; }
  .ycs-gallery-main img { width:100%; height:100%; object-fit:cover; object-position:center 72%; display:block; }
  .ycs-gallery-album { flex:1 1 45%; min-width:0; position:relative; overflow:hidden; cursor:pointer; background:#0f2b33; }
  .ycs-gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); gap:2px; width:100%; height:100%; }
  .ycs-gallery-cell { position:relative; overflow:hidden; }
  .ycs-gallery-cell img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.2s; }
  .ycs-gallery-album:hover .ycs-gallery-cell img { transform:scale(1.04); }
  .ycs-gallery-more-badge { position:absolute; inset:0; background:rgba(15,43,51,0.68); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.05rem; text-align:center; padding:6px; }
  @media (max-width:720px) {
    .ycs-gallery-row { flex-direction:column; height:auto; }
    .ycs-gallery-main { height:220px; }
    .ycs-gallery-album { height:170px; }
  }

  .ycs-lightbox { position:fixed; inset:0; background:rgba(8,8,8,0.94); z-index:99999; display:none; align-items:center; justify-content:center; }
  .ycs-lightbox.ycs-open { display:flex; }
  .ycs-lightbox img { max-width:86vw; max-height:80vh; object-fit:contain; border-radius:4px; }
  .ycs-lightbox-close { position:absolute; top:18px; right:22px; background:none; border:none; color:#fff; font-size:2rem; line-height:1; cursor:pointer; }
  .ycs-lightbox-prev, .ycs-lightbox-next { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.14); border:none; color:#fff; font-size:1.5rem; width:46px; height:46px; border-radius:50%; cursor:pointer; }
  .ycs-lightbox-prev { left:18px; }
  .ycs-lightbox-next { right:18px; }
  .ycs-lightbox-count { position:absolute; bottom:22px; color:#ddd; font-size:0.82rem; }

  main.wp-block-group:has(.ycs-gallery-hero) { margin-top:0 !important; }
  /* The theme auto-renders its own page-title H1 above our content; we already show the boat name as a
     real H1 further down (#ycs-boat-title), so the theme's duplicate is hidden to avoid two identical titles. */
  .wp-block-post-title { display:none; }
  /* Standing rule for all future boat pages: this H1's text is "{Boat Name} | All-Inclusive BVI Catamaran Charter".
     Length varies with the boat name, so font-size uses clamp() to shrink on narrower screens rather than a
     fixed size, and nowrap+ellipsis is a safety net so it always stays on one line even for a longer name. */
  #ycs-boat-title { font-size:clamp(0.85rem, 2.6vw, 1.55rem); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

  .ycs-modal-overlay { position:fixed; inset:0; background:rgba(15,43,51,0.6); z-index:100000; display:none; align-items:center; justify-content:center; padding:16px; }
  .ycs-modal-overlay.ycs-open { display:flex; }
  .ycs-modal-card { background:#fff; border-radius:14px; padding:26px; max-width:380px; width:100%; box-shadow:0 12px 40px rgba(0,0,0,0.25); }
  #ycs-proposal-toast.ycs-show { opacity:1 !important; transform:translateX(-50%) translateY(0) !important; }
  #ycs-proposal-pill:hover { opacity:0.92; }
/* ---- booking panel ---- */
/* The panel used to follow its own <style> tag inside the column, so the theme's flow-layout
   gap (32px above every child but the first) applied to it. With the styles moved here the
   panel is the column's first child; this keeps the same 32px. */
.is-layout-flow > #ycs-availability{margin-block-start:var(--wp--preset--spacing--50)}
/*ycsx-panel*/
#ycs-availability .ycsx-sect{padding:14px 0;border-bottom:1px solid #e6ecee}
#ycs-availability .ycsx-sect:last-child{border-bottom:0}
#ycs-availability .ycsx-lbl{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:#8a97a3;font-weight:700}
.ycsx-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ycsx-row+.ycsx-row{margin-top:12px}
.ycsx-pills{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.ycsx-pill{min-width:38px;height:36px;padding:0 10px;border:1px solid #c9d6d9;background:#fff;border-radius:9px;font-size:.86rem;font-weight:600;color:#12303f;cursor:pointer}
.ycsx-pill:hover:not(:disabled){border-color:#9fb3ba}
.ycsx-pill[aria-pressed="true"]{background:#12303f;border-color:#12303f;color:#fff}
.ycsx-pill:disabled{opacity:.45;cursor:not-allowed}
.ycsx-calhead{display:flex;align-items:center;gap:6px;margin-bottom:10px}
.ycsx-calhead select{flex:1;height:32px;border:1px solid #c9d6d9;border-radius:8px;background:#fff;font-size:.85rem;font-weight:600;color:#12303f;padding:0 6px;cursor:pointer}
#ycs-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:3px}
#ycs-cal-dow span{text-align:center;font-size:.66rem;font-weight:700;color:#8a97a3}
.ycsx-day{aspect-ratio:1/1;border:1px solid #c9d6d9;background:#fff;border-radius:7px;font-size:.8rem;font-weight:600;color:#12303f;cursor:pointer;padding:0;transition:.1s}
.ycsx-day:hover:not(:disabled){border-color:#12303f}
.ycsx-day:disabled{cursor:not-allowed;color:#9aa5ab}
.ycsx-booked{background:#ec5a30;border-color:#ec5a30;color:#fff}
.ycsx-hold{background:#f2c94c;border-color:#e0b93f;color:#5c4a10}
.ycsx-unavail{background:#d5d5d5;border-color:#cbcbcb;color:#7d7d7d}
.ycsx-closed{background:repeating-linear-gradient(45deg,#eef1f2,#eef1f2 4px,#e2e7e9 4px,#e2e7e9 8px);border-color:#dfe5e7;color:#a8b2b7}
.ycsx-turn{background:#f0f3f4;border-color:#dde4e6;color:#a8b2b7}
.ycsx-booked.ycsx-hstart{background:linear-gradient(to bottom right,#fff 50%,#ec5a30 50%)}
.ycsx-booked.ycsx-hend{background:linear-gradient(to bottom right,#ec5a30 50%,#fff 50%)}
.ycsx-hold.ycsx-hstart{background:linear-gradient(to bottom right,#fff 50%,#f2c94c 50%)}
.ycsx-hold.ycsx-hend{background:linear-gradient(to bottom right,#f2c94c 50%,#fff 50%)}
.ycsx-insel{background:#2c8a52;border-color:#2c8a52;color:#fff}
.ycsx-insel.ycsx-bad{background:#ec5a30;border-color:#ec5a30}
.ycsx-selhalf-s{background:linear-gradient(to bottom right,#fff 50%,#2c8a52 50%);border-color:#2c8a52}
.ycsx-selhalf-e{background:linear-gradient(to bottom right,#2c8a52 50%,#fff 50%);border-color:#2c8a52}
.ycsx-selhalf-s.ycsx-bad{background:linear-gradient(to bottom right,#fff 50%,#ec5a30 50%);border-color:#ec5a30}
.ycsx-selhalf-e.ycsx-bad{background:linear-gradient(to bottom right,#ec5a30 50%,#fff 50%);border-color:#ec5a30}
.ycsx-legend{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px;font-size:.68rem;color:#5b6b76}
.ycsx-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;border:1px solid #c9d6d9;vertical-align:-1px;margin-right:3px}
.ycsx-hols{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap;font-size:.8rem}
.ycsx-navbtn{width:32px;height:32px;border:1px solid #c9d6d9;background:#fff;border-radius:8px;cursor:pointer;font-size:1rem;line-height:1;color:#12303f;padding:0}
.ycsx-navbtn:hover{background:#f1f6f7}
.ycsx-ctas{display:flex;flex-direction:column;gap:8px}
.ycsx-ctarow{display:flex;gap:8px}
.ycsx-ctarow>*{flex:1}
/* ---- payment schedule ---- */
/*gc-paysched*/ #gc-paysched{margin:16px 0 4px;padding:14px 0 2px;border-top:1px solid #e6e8eb;font-size:.9rem;line-height:1.5}#gc-paysched .gc-ps-title{font-weight:700;font-size:1rem;margin-bottom:9px;color:#12303f}#gc-paysched .gc-ps-row{display:flex;gap:12px;margin-bottom:6px}#gc-paysched .gc-ps-pct{color:#ec5a30;font-weight:700;min-width:44px}#gc-paysched .gc-ps-when{color:#2b2b2b}#gc-paysched .gc-ps-grat{margin-top:12px;font-size:.9rem;color:#2b2b2b}#gc-paysched .gc-ps-mut{color:#8a97a3}
/* Calendar shading, matching the home search calendar (was snippet 29): open start days pale
   green, days whose trip at the chosen nights would run into the holiday weeks or hurricane
   season pale coral. Days from the months either side keep full colors. */
#ycs-availability .ycsx-day.ycsx-open{background:#eef8f1}
#ycs-availability .ycsx-day.ycsx-fitno{background:#fdece6;color:#bd4622;border-color:#f3c7b6}