/* ============================================================
   SEIN ME — Shared Cart, Checkout, Travel Styles
   Loaded by all 3 service pages from Netlify
   Uses CSS variables defined per page (--green, --card, etc.)
   so each page's existing palette still drives the look.
   ============================================================ */

/* CART FAB (floating button) */
.cart-fab{position:fixed;bottom:24px;right:24px;z-index:120;background:var(--green,#3FB07D);color:#0a0a0a;padding:14px 22px;border-radius:999px;display:inline-flex;align-items:center;gap:12px;cursor:pointer;box-shadow:0 12px 32px rgba(63,176,125,0.35),0 4px 12px rgba(0,0,0,0.3);font-weight:700;font-size:0.85rem;transition:transform 0.2s,box-shadow 0.2s;border:none;font-family:inherit}
.cart-fab.hide{display:none}
.cart-fab:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(63,176,125,0.45),0 6px 14px rgba(0,0,0,0.4)}
.cart-fab svg{width:18px;height:18px}
.cart-fab-count{background:#0a0a0a;color:var(--green,#3FB07D);min-width:22px;height:22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:0.72rem;font-weight:800;padding:0 7px}
.cart-fab-divider{width:1px;height:18px;background:rgba(10,10,10,0.2)}
.cart-fab-total{font-size:0.9rem;font-weight:800}

/* CART OVERLAY + DRAWER */
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:140;opacity:0;visibility:hidden;transition:opacity 0.25s,visibility 0.25s}
.cart-overlay.show{opacity:1;visibility:visible}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:100vw;background:var(--card,#141414);border-left:1px solid var(--line-2,#2a2a2a);z-index:150;transform:translateX(100%);transition:transform 0.3s ease-out;display:flex;flex-direction:column}
.cart-drawer.show{transform:translateX(0)}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid var(--line,#1f1f1f)}
.cart-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:600;letter-spacing:-0.01em;color:var(--text,#f0ede8)}
.cart-close{width:34px;height:34px;border-radius:50%;background:var(--card-2,#181818);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s;border:none}
.cart-close:hover{background:var(--line-2,#2a2a2a)}
.cart-close svg{width:16px;height:16px;color:var(--muted,#8a857d)}
.cart-body{flex:1;overflow-y:auto;padding:18px 28px}

.cart-empty{text-align:center;color:var(--muted,#8a857d);font-size:0.92rem;padding:60px 20px;line-height:1.5}
.cart-empty-icon{width:56px;height:56px;border-radius:50%;background:var(--card-2,#181818);display:inline-flex;align-items:center;justify-content:center;color:var(--muted,#8a857d);margin-bottom:18px}
.cart-empty-icon svg{width:26px;height:26px}

.cart-item{background:var(--card-2,#181818);border:1px solid var(--line,#1f1f1f);border-radius:14px;padding:16px;margin-bottom:12px}
.cart-item-cat{display:inline-block;font-size:0.66rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--green,#3FB07D);font-weight:700;background:rgba(63,176,125,0.1);padding:3px 9px;border-radius:6px;margin-bottom:8px}
.cart-item-name{font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:600;letter-spacing:-0.005em;margin-bottom:4px;line-height:1.25;color:var(--text,#f0ede8)}
.cart-item-notes{font-size:0.78rem;color:var(--muted,#8a857d);line-height:1.45;margin-bottom:10px;font-style:italic;opacity:0.85}
.cart-item-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.cart-qty{display:flex;align-items:center;gap:10px;background:var(--card,#141414);border:1px solid var(--line,#1f1f1f);border-radius:10px;padding:4px 6px}
.cart-qty button{width:26px;height:26px;border-radius:6px;background:transparent;color:var(--text,#f0ede8);font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:background 0.2s;border:none;cursor:pointer}
.cart-qty button:hover{background:var(--line,#1f1f1f)}
.cart-qty button:disabled{opacity:0.3;cursor:not-allowed}
.cart-qty span{min-width:22px;text-align:center;font-weight:700;font-size:0.92rem;color:var(--text,#f0ede8)}
.cart-item-total{font-size:1rem;font-weight:700;color:var(--green,#3FB07D)}
.cart-remove{font-size:0.72rem;color:var(--muted,#8a857d);letter-spacing:0.08em;text-transform:uppercase;font-weight:600;transition:color 0.2s;padding-top:8px;border-top:1px solid var(--line,#1f1f1f);margin-top:6px;display:block;width:100%;text-align:left;background:none;border-left:none;border-right:none;border-bottom:none;cursor:pointer;font-family:inherit}
.cart-remove:hover{color:#e87560}

.cart-foot{border-top:1px solid var(--line,#1f1f1f);padding:22px 28px 24px;background:var(--card,#141414)}
.cart-totals{margin-bottom:18px}
.cart-row{display:flex;justify-content:space-between;align-items:center;font-size:0.92rem;margin-bottom:8px;color:var(--muted,#8a857d)}
.cart-row strong{color:var(--text,#f0ede8);font-weight:700}
.cart-row-deposit{background:rgba(63,176,125,0.08);border:1px solid rgba(63,176,125,0.25);border-radius:10px;padding:11px 14px;display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:0.9rem}
.cart-row-deposit span:first-child{color:var(--green,#3FB07D);font-weight:700;letter-spacing:0.04em;text-transform:uppercase;font-size:0.74rem}
.cart-row-deposit span:last-child{color:var(--text,#f0ede8);font-weight:800;font-size:1.05rem}

.cart-add-more{margin-bottom:14px}
.cart-add-more-label{font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted,#8a857d);font-weight:700;margin-bottom:9px;text-align:center}
.cart-add-more-btns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.cart-add-btn{display:flex;align-items:center;justify-content:center;text-align:center;background:var(--card-2,#181818);border:1px solid var(--line-2,#2a2a2a);color:var(--text,#f0ede8);padding:11px 4px;border-radius:9px;font-size:0.7rem;font-weight:600;letter-spacing:0.02em;text-decoration:none;transition:all 0.2s;cursor:pointer;font-family:inherit;line-height:1.2;min-height:42px}
.cart-add-btn:hover{border-color:var(--green,#3FB07D);color:var(--green,#3FB07D);background:rgba(63,176,125,0.05)}

.cart-checkout{display:block;width:100%;background:var(--green,#3FB07D);color:#0a2624;padding:17px;border-radius:12px;font-size:0.88rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:700;text-align:center;cursor:pointer;transition:transform 0.2s,box-shadow 0.2s;border:none;font-family:inherit}
.cart-checkout:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(63,176,125,0.3)}
.cart-checkout:disabled{opacity:0.4;cursor:not-allowed;transform:none}
.cart-note{font-size:0.74rem;color:var(--muted,#8a857d);text-align:center;margin-top:10px;line-height:1.5}

@media(max-width:560px){.cart-fab{bottom:18px;right:18px;padding:12px 18px;font-size:0.8rem}.cart-drawer{width:100vw}}

/* CHECKOUT MODAL */
.co-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity 0.25s,visibility 0.25s}
.co-modal-bg.show{opacity:1;visibility:visible}
.co-modal{background:var(--card,#141414);border:1px solid var(--line-2,#2a2a2a);border-radius:20px;max-width:520px;width:100%;max-height:92vh;overflow-y:auto;padding:32px;position:relative;transform:translateY(20px);transition:transform 0.3s}
.co-modal-bg.show .co-modal{transform:translateY(0)}
.co-modal-close{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:50%;background:var(--card-2,#181818);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 0.2s;z-index:2;border:none}
.co-modal-close:hover{background:var(--line-2,#2a2a2a)}
.co-modal-close svg{width:16px;height:16px;color:var(--muted,#8a857d)}
.co-modal-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px;padding-bottom:22px;border-bottom:1px solid var(--line,#1f1f1f)}
.co-modal-icon{width:54px;height:54px;border-radius:13px;flex-shrink:0;background:linear-gradient(135deg,rgba(63,176,125,0.18) 0%,rgba(63,176,125,0.04) 100%);border:1px solid rgba(63,176,125,0.25);display:flex;align-items:center;justify-content:center;color:var(--green,#3FB07D)}
.co-modal-icon svg{width:28px;height:28px}
.co-modal-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:600;line-height:1.2;letter-spacing:-0.01em;margin-bottom:4px;color:var(--text,#f0ede8)}
.co-modal-sub{font-size:0.85rem;color:var(--green,#3FB07D);font-weight:600;letter-spacing:0.04em}
.co-modal-row{margin-bottom:18px}
.co-input,.co-select{width:100%;background:var(--card-2,#181818);border:1px solid var(--line,#1f1f1f);border-radius:11px;padding:13px 16px;font-size:0.95rem;color:var(--text,#f0ede8);transition:border-color 0.2s;font-family:inherit}
.co-input:focus,.co-select:focus{outline:none;border-color:var(--green,#3FB07D)}
.co-input::placeholder{color:var(--muted,#8a857d);opacity:0.7}
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.co-grid-3{display:grid;grid-template-columns:1.4fr 0.6fr 0.8fr;gap:10px}
@media(max-width:480px){.co-grid-3{grid-template-columns:1fr 1fr}.co-grid-3 .span-mobile{grid-column:span 2}}
.co-submit{display:block;width:100%;text-align:center;background:var(--green,#3FB07D);color:#0a2624;padding:16px;border-radius:12px;font-size:0.88rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:transform 0.2s,box-shadow 0.2s;margin-top:8px;border:none;font-family:inherit}
.co-submit:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(63,176,125,0.3)}
.co-submit:disabled{opacity:0.5;cursor:not-allowed;transform:none}
.co-err{display:none;background:rgba(232,117,96,0.1);border:1px solid rgba(232,117,96,0.4);border-radius:10px;padding:11px 14px;font-size:0.82rem;color:#e87560;margin-bottom:14px}
.co-err.show{display:block}
.co-deposit-note{font-size:0.78rem;color:var(--muted,#8a857d);line-height:1.5;text-align:center;margin-top:14px}

/* TRAVEL FEE PANEL inside checkout */
.co-travel{border-radius:11px;padding:13px 16px;margin-bottom:18px;font-size:0.88rem;line-height:1.45;border:1px solid var(--line-2,#2a2a2a);background:var(--card-2,#181818);color:var(--text,#f0ede8);transition:border-color 0.2s,background 0.2s}
.co-travel-title{font-weight:700;margin-bottom:3px;letter-spacing:0.01em}
.co-travel-sub{font-size:0.78rem;color:var(--muted,#8a857d);line-height:1.4}
.co-travel.zone-free{border-color:rgba(63,176,125,0.45);background:rgba(63,176,125,0.08)}
.co-travel.zone-free .co-travel-title{color:var(--green,#3FB07D)}
.co-travel.zone-fee{border-color:rgba(78,205,196,0.45);background:rgba(78,205,196,0.07)}
.co-travel.zone-fee .co-travel-title{color:var(--teal,#4ECDC4)}
.co-travel.zone-blocked{border-color:rgba(232,117,96,0.5);background:rgba(232,117,96,0.08)}
.co-travel.zone-blocked .co-travel-title{color:#e87560}
.co-travel.zone-blocked .co-travel-sub{color:var(--text,#f0ede8);opacity:0.85}
.co-travel.zone-blocked strong{color:#e87560}
.co-travel.zone-loading .co-travel-title{color:var(--muted,#8a857d);font-weight:600}
