/* ---- 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}
/* Day cells (.ycsx-day and every day color) live with the one calendar component, gc-bcal
   (snippet 28), which the proposal cards share - one rule set for every calendar (9 Nov 2026). */
.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}