/* ============================================================
   Island Boating — Bareboat Agreement canvas, overlay & step
   Mobile-first, responsive (phone / tablet / desktop)
   ============================================================ */
:root{
	--ibd-primary:#0c5f8c; --ibd-primary-dark:#084567; --ibd-accent:#ff8c00;
	--ibd-success:#2e7d32; --ibd-error:#c62828; --ibd-bg:#f0f8ff; --ibd-amber:#fff8e1;
	--ibd-border:#c9dce8; --ibd-text:#1e2430; --ibd-muted:#6b7280; --ibd-radius:12px;
	--ibd-shadow:0 2px 14px rgba(12,95,140,.12);
}

/* ---------- Agreement canvas ---------- */
.ibd-agreement-wrap{
	font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
	color:var(--ibd-text); max-width:920px; margin:0 auto; padding:16px;
	box-sizing:border-box; line-height:1.5;
}
.ibd-agreement-wrap *{box-sizing:border-box;}
.ibd-login-required{background:#fce4ec;color:var(--ibd-error);padding:18px;border-radius:var(--ibd-radius);text-align:center;font-weight:600;}

.ibd-ag-header{text-align:center;border-bottom:3px solid var(--ibd-primary);padding-bottom:14px;margin-bottom:20px;}
.ibd-ag-title{font-size:1.4rem;font-weight:800;color:var(--ibd-primary);margin:0 0 6px;}
.ibd-ag-company{font-size:.8rem;color:var(--ibd-muted);margin:0 0 10px;}
.ibd-ag-intro{font-size:.85rem;color:var(--ibd-text);max-width:680px;margin:0 auto;}

.ibd-ag-section{background:#fff;border:1px solid var(--ibd-border);border-radius:var(--ibd-radius);padding:16px;margin-bottom:16px;box-shadow:var(--ibd-shadow);}
.ibd-ag-h2{font-size:1rem;font-weight:700;color:var(--ibd-primary);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--ibd-border);}

/* Metadata grid */
.ibd-meta-grid{display:grid;grid-template-columns:1fr;gap:8px;}
.ibd-meta-item{display:flex;justify-content:space-between;gap:10px;font-size:.82rem;padding:6px 10px;background:var(--ibd-bg);border-radius:6px;}
.ibd-meta-label{color:var(--ibd-muted);}
.ibd-meta-value{font-weight:600;color:var(--ibd-primary);text-align:right;}

/* Field grid */
.ibd-field-grid{display:grid;grid-template-columns:1fr;gap:12px;padding-top: 12px;}
.ibd-field-full{grid-column:1/-1;}
/* 20px gap between stacked full-width fields directly inside a section
   (e.g. Printed Name → Draw Signature). */
.ibd-ag-section > .ibd-field + .ibd-field{margin-top:20px;}
.ibd-field label{display:block;font-size:.78rem;font-weight:600;color:var(--ibd-muted);margin-bottom:4px;padding-top:5px;padding-bottom: 3px;font-family: 'Montserrat';font-size: 14px;font-weight: 600;}
.ibd-field input,.ibd-field select,.ibd-field textarea{
	width:100%;border:1px solid var(--ibd-border);border-radius:8px;padding:10px 12px;
	font-size:.95rem;color:var(--ibd-text);background:#fff;
}
.ibd-field input:focus,.ibd-field select:focus,.ibd-field textarea:focus{outline:none;border-color:var(--ibd-primary);box-shadow:0 0 0 3px rgba(12,95,140,.12);}
.ibd-field input[readonly]{background:var(--ibd-bg);color:var(--ibd-muted);}
.ibd-badge{display:inline-block;font-size:.6rem;font-weight:700;border-radius:4px;padding:1px 6px;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;}
.ibd-badge-pre{background:#e3f2fd;color:#1565c0;}
.ibd-badge-req{background:#fce4ec;color:#b71c1c;}
/* Required-field marker: a single red asterisk (plugin-wide convention).
   Optional fields carry no marker. */
.ibd-req{color:#c62828;font-weight:700;margin-left:2px;}

/* Terms scroll */
.ibd-scroll-hint{font-size:.78rem;color:var(--ibd-muted);margin:0 0 8px;}
.ibd-terms{max-height:46vh;overflow-y:auto;border:1px solid var(--ibd-border);border-radius:8px;padding:14px 16px;background:#fff;font-size:.82rem;line-height:1.6;scroll-behavior:smooth;}
.ibd-terms:focus{outline:2px solid var(--ibd-primary);}
.ibd-terms-h3{font-size:.9rem;color:var(--ibd-primary);margin:4px 0 8px;}
.ibd-defs{margin:0 0 14px;}
.ibd-defs dt{font-weight:700;margin-top:6px;}
.ibd-defs dd{margin:0 0 4px;color:var(--ibd-text);}
.ibd-clause{margin-bottom:12px;}
.ibd-clause-title{font-size:.85rem;font-weight:700;color:var(--ibd-primary);margin:0 0 4px;}
.ibd-clause p{margin:0 0 5px;}
.ibd-clause-initial{background:var(--ibd-amber);border:1px solid var(--ibd-accent);border-radius:8px;padding:10px 12px;}

/* Initial rows */
.ibd-initial-row{background:var(--ibd-amber);border:1px solid var(--ibd-accent);border-radius:8px;padding:12px;margin-bottom:12px;}
.ibd-initial-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:.82rem;}
.ibd-initial-check input{flex-shrink:0;width:18px;height:18px;margin-top:2px;accent-color:var(--ibd-primary);}
.ibd-initial-action{margin-top:8px;padding-left:28px;}
.ibd-view-section{background:none;border:none;padding:0;color:var(--ibd-primary);font-size:.8rem;font-weight:600;text-decoration:underline;cursor:pointer;}
.ibd-view-section:hover{color:var(--ibd-accent);}
.ibd-clause-flash{animation:ibd-flash 1.6s ease;}
@keyframes ibd-flash{0%{background:#fff3c4;}60%{background:#fff3c4;}100%{background:transparent;}}

/* Signature */
.ibd-sig-wrap{position:relative;background:#fff;border:2px dashed var(--ibd-primary);border-radius:10px;overflow:hidden;height:180px;}
.ibd-sig-canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none;}
.ibd-sig-line{position:absolute;bottom:40px;left:18px;right:18px;height:1px;background:var(--ibd-border);pointer-events:none;}
.ibd-sig-hint{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:.7rem;color:var(--ibd-muted);pointer-events:none;}
.ibd-sig-clear{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.9);border:1px solid var(--ibd-border);border-radius:6px;padding:4px 10px;font-size:.72rem;cursor:pointer;color:var(--ibd-error);}

.ibd-accept-box{background:var(--ibd-amber);border:1px solid var(--ibd-accent);border-radius:8px;padding:14px;margin-top:14px;}
.ibd-accept-label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:.82rem;line-height:1.5;}
.ibd-accept-label input{flex-shrink:0;width:20px;height:20px;margin-top:2px;accent-color:var(--ibd-primary);}

.ibd-submit-area{margin-top:18px;text-align:center;}
.ibd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;width:100%;max-width:420px;}
.ibd-btn-primary{background:linear-gradient(135deg,var(--ibd-primary),var(--ibd-primary-dark));color:#fff;box-shadow:0 4px 14px rgba(12,95,140,.35);}
.ibd-btn-primary:hover:not(:disabled){transform:translateY(-2px);}
.ibd-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;}
.ibd-btn-spinner{display:none;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:ibd-spin .7s linear infinite;}
.ibd-loading .ibd-btn-spinner{display:block;}
@keyframes ibd-spin{to{transform:rotate(360deg);}}

.ibd-status{display:none;margin-top:12px;}
.ibd-msg{display:block;padding:12px 14px;border-radius:8px;font-size:.86rem;font-weight:600;}
.ibd-msg-error{background:#fce4ec;color:var(--ibd-error);border-left:3px solid var(--ibd-error);}
.ibd-msg-success{background:#e8f5e9;color:var(--ibd-success);border-left:3px solid var(--ibd-success);}

/* ---------- Tablet / desktop ---------- */
@media(min-width:640px){
	.ibd-meta-grid{grid-template-columns:1fr 1fr;}
	.ibd-field-grid{grid-template-columns:1fr 1fr;}
	.ibd-ag-title{font-size:1.7rem;}
}
@media(min-width:980px){
	.ibd-agreement-wrap{padding:24px;}
	.ibd-meta-grid{grid-template-columns:1fr 1fr 1fr;}
}

/* ---------- Embed mode (inside booking overlay): hide theme chrome ---------- */
body.ibd-embed .site-header,body.ibd-embed header#masthead,body.ibd-embed .site-footer,
body.ibd-embed footer#colophon,body.ibd-embed #wpadminbar{display:none !important;}
body.ibd-embed{padding-top:0 !important;}

/* ============================================================
   Booking step guide (inside LatePoint form)
   ============================================================ */
.ibd-booking-step{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;}
.ibd-bs-card{background:#fff;border:1px solid var(--ibd-border);border-radius:var(--ibd-radius);padding:22px;text-align:center;box-shadow:var(--ibd-shadow);max-width:560px;margin:0 auto;}
.ibd-bs-icon{font-size:2.4rem;}
.ibd-bs-title{font-size:1.2rem;font-weight:700;color:var(--ibd-primary);margin:8px 0;}
.ibd-bs-desc{font-size:.86rem;color:var(--ibd-text);margin:0 0 14px;}
.ibd-bs-list{text-align:left;max-width:420px;margin:0 auto 18px;font-size:.84rem;color:var(--ibd-text);padding-left:20px;}
.ibd-bs-list li{margin-bottom:6px;}
.ibd-bs-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;background:linear-gradient(135deg,var(--ibd-primary),var(--ibd-primary-dark));color:#fff;box-shadow:0 4px 14px rgba(12,95,140,.35);transition:transform .2s;}
.ibd-bs-btn:hover{transform:translateY(-2px);}
.ibd-bs-signed{margin-top:14px;background:#e8f5e9;border:1px solid var(--ibd-success);border-radius:8px;padding:12px;color:var(--ibd-success);font-weight:600;font-size:.88rem;}
.ibd-bs-check{font-size:1.1rem;}
.ibd-bs-error{margin-top:12px;background:#fce4ec;color:var(--ibd-error);border-radius:8px;padding:12px;font-size:.84rem;}
.latepoint-next-btn.ibd-lp-locked{opacity:.45 !important;cursor:not-allowed !important;pointer-events:none !important;}

/* ============================================================
   Full-screen overlay (hosts the agreement iframe)
   ============================================================ */
.ibd-overlay{position:fixed;inset:0;z-index:999999;background:rgba(10,30,45,.92);display:none;flex-direction:column;}
.ibd-overlay.is-open{display:flex;}
body.ibd-overlay-open{overflow:hidden;}
.ibd-overlay-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--ibd-primary-dark);color:#fff;flex:0 0 auto;}
.ibd-overlay-title{font-weight:700;font-size:.95rem;}
.ibd-overlay-close{background:rgba(255,255,255,.15);border:none;color:#fff;width:34px;height:34px;border-radius:8px;font-size:1.1rem;cursor:pointer;line-height:1;}
.ibd-overlay-close:hover{background:rgba(255,255,255,.3);}
.ibd-overlay-body{flex:1 1 auto;background:#fff;}
.ibd-overlay-iframe{width:100%;height:100%;border:0;display:block;}

@media(max-width:480px){
	.ibd-overlay-bar{padding:8px 12px;}
	.ibd-bs-card{padding:16px;}
}

/* Scrollbar */
.ibd-terms::-webkit-scrollbar{width:6px;}
.ibd-terms::-webkit-scrollbar-thumb{background:var(--ibd-border);border-radius:4px;}

/* ============================================================
   Stage 2 — Guests Declaration (accordion canvas)
   ============================================================ */
.ibd-guardian-note{background:#e3f2fd;border:1px solid #90caf9;border-radius:8px;padding:10px 14px;font-size:.82rem;color:#0d47a1;margin-bottom:16px;}

/* Progress bar */
.ibd-progress-bar{margin:0 0 16px;}
#ibd-progress-text{font-size:.8rem;font-weight:600;color:var(--ibd-primary);}
.ibd-progress-track{height:8px;background:var(--ibd-bg);border-radius:6px;overflow:hidden;margin-top:5px;border:1px solid var(--ibd-border);}
.ibd-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--ibd-primary),var(--ibd-accent));transition:width .3s ease;}

/* Passenger cards (accordion) */
.ibd-pass-card{background:#fff;border:1px solid var(--ibd-border);border-radius:var(--ibd-radius);margin-bottom:12px;box-shadow:var(--ibd-shadow);overflow:hidden;}
.ibd-pass-card.is-complete{border-color:var(--ibd-success);}
.ibd-pass-head{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;user-select:none;background:#fff;}
.ibd-pass-card.is-complete .ibd-pass-head{background:#f1f8f3;}
.ibd-pass-toggle{transition:transform .2s;color:var(--ibd-primary);font-size:.9rem;}
.ibd-pass-card.is-open .ibd-pass-toggle{transform:rotate(90deg);}
.ibd-pass-title{flex:1;font-weight:700;font-size:.92rem;color:var(--ibd-text);}
.ibd-pass-badge{font-size:.62rem;font-weight:700;border-radius:12px;padding:2px 10px;text-transform:uppercase;letter-spacing:.03em;}
.ibd-badge-incomplete{background:#fde8e8;color:#b71c1c;}
.ibd-badge-complete{background:#e6f4ea;color:var(--ibd-success);}
.ibd-pass-body{display:none;padding:0 16px 16px;}
.ibd-pass-card.is-open .ibd-pass-body{display:block;}
.ibd-badge-opt{background:#ede7f6;color:#5e35b1;font-size:.6rem;font-weight:700;border-radius:4px;padding:1px 6px;text-transform:uppercase;}

/* Adult/Minor switch */
.ibd-am-switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px dashed var(--ibd-border);margin-bottom:12px;}
.ibd-am-label{font-size:.84rem;font-weight:600;color:var(--ibd-text);}
.ibd-switch{position:relative;display:inline-block;cursor:pointer;}
.ibd-switch input{position:absolute;opacity:0;width:0;height:0;}
.ibd-switch-track{display:inline-flex;align-items:center;background:var(--ibd-bg);border:1px solid var(--ibd-border);border-radius:20px;overflow:hidden;}
.ibd-switch-opt{padding:6px 16px;font-size:.78rem;font-weight:700;transition:all .2s;color:var(--ibd-muted);}
.ibd-switch .ibd-opt-adult{background:var(--ibd-primary);color:#fff;}
.ibd-switch input:checked + .ibd-switch-track .ibd-opt-adult{background:transparent;color:var(--ibd-muted);}
.ibd-switch input:checked + .ibd-switch-track .ibd-opt-minor{background:var(--ibd-accent);color:#fff;}
.ibd-minor-note{font-size:.76rem;color:#6a1b9a;background:#f3e5f5;border-radius:6px;padding:8px 10px;margin:0 0 12px;}
.ibd-subhead{font-size:.82rem;font-weight:700;color:var(--ibd-primary);margin:14px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--ibd-border);}
.ibd-guardian-block{background:#f3f7fb;border:1px solid var(--ibd-border);border-left:3px solid var(--ibd-accent);border-radius:8px;padding:12px 14px;margin:6px 0 14px;}
.ibd-guardian-block .ibd-subhead{margin-top:0;color:var(--ibd-accent);}
.ibd-guardian-hint{font-size:.72rem;color:var(--ibd-muted);font-style:italic;margin:0 0 10px;}
.ibd-copy-emerg{background:none;border:1px dashed var(--ibd-primary);color:var(--ibd-primary);border-radius:6px;padding:6px 12px;font-size:.74rem;font-weight:600;cursor:pointer;}
.ibd-copy-emerg:hover{background:var(--ibd-bg);}

/* Annex D — cost breakdown tables (agreement canvas) */
.ibd-cost-table{width:100%;border-collapse:collapse;margin:0 0 14px;font-size:.82rem;}
.ibd-cost-table td{padding:6px 10px;border-bottom:1px solid var(--ibd-border);}
.ibd-cost-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.ibd-cost-total{background:var(--ibd-bg);font-weight:800;color:var(--ibd-primary);}
.ibd-cost-total td{border-bottom:2px solid var(--ibd-primary);}
.ibd-cost-notes{margin:6px 0 0;padding-left:18px;font-size:.74rem;color:var(--ibd-muted);}
.ibd-cost-notes li{margin-bottom:4px;}

/* Dashboard tile — guests actions */
.ibd-guests-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.ibd-guests-cta{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,var(--ibd-primary),var(--ibd-primary-dark));color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:.8rem;font-weight:700;cursor:pointer;}
.ibd-guests-cta:hover{transform:translateY(-1px);}
.ibd-link-btn{background:none;border:none;color:var(--ibd-primary);font-size:.8rem;font-weight:600;text-decoration:underline;cursor:pointer;padding:0;}
.ibd-link-btn:hover{color:var(--ibd-accent);}
.ibd-guests-note{font-size:.72rem;color:var(--ibd-muted);font-style:italic;}
