:root{
    --navy-900:#0b1220;
    --navy-800:#101a30;
    --bg:#eef2f6;
    --card:#ffffff;
    --border:#e2e8f0;
    --text:#1e293b;
    --mute:#64748b;
    --green:#16a34a;
    --green-dark:#0e7a37;
    --green-tint:#eafbf0;
    --amber:#f59e0b;
    --danger:#dc2626;
    --danger-tint:#fdecec;
    --radius:12px;
}
*{box-sizing:border-box;}
body{
    margin:0;
    font-family:'Poppins',sans-serif;
    background:var(--bg);
    color:var(--text);
    font-size:14px;
    line-height:1.6;
}
img{max-width:100%;}
a{text-decoration:none;}
button{font-family:inherit;}
.bk-hidden{display:none !important;}

/* ---------- Header ---------- */
.bk-header{
    position:sticky;
    top:0;
    z-index:50;
    box-shadow:0 2px 10px rgba(0,0,0,.15);
}
.bk-header-inner{
    background:var(--navy-900);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 24px;
    flex-wrap:wrap;
    gap:10px;
}
.bk-logo{
    display:flex;
    align-items:center;
    gap:10px;
    color:#fff;
}
.bk-logo img{height:34px;width:auto;}
.bk-logo-text{
    font-weight:700;
    font-size:14px;
    line-height:1.3;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.3px;
}
.bk-logo-text small{
    display:block;
    font-weight:400;
    text-transform:none;
    font-size:11px;
    color:#8fa2c4;
    letter-spacing:0;
}
.bk-toplinks{display:flex;gap:22px;flex-wrap:wrap;}
.bk-toplinks a{
    color:#7dd3e8;
    font-size:12px;
    font-weight:600;
    letter-spacing:.5px;
    text-transform:uppercase;
}
.bk-toplinks a:hover{color:#fff;}
.bk-progress{background:var(--navy-800);border-top:1px solid rgba(255,255,255,.06);}
.bk-progress ol{
    list-style:none;
    display:flex;
    justify-content:center;
    gap:36px;
    margin:0;
    padding:10px 16px;
    flex-wrap:wrap;
}
.bk-progress li{
    font-size:11px;
    font-weight:600;
    letter-spacing:1px;
    text-transform:uppercase;
    color:#5d6d8c;
    display:flex;
    align-items:center;
    gap:6px;
    cursor:pointer;
}
.bk-progress li span{
    font-size:10px;
    color:#5d6d8c;
}
.bk-progress li.active{color:var(--amber);}
.bk-progress li.active span{color:var(--amber);}
.bk-progress li.done{color:#7dd3a8;}

/* ---------- Layout ---------- */
.bk-layout{
    max-width:1180px;
    margin:0 auto;
    padding:28px 20px 90px;
    display:grid;
    grid-template-columns:1fr 340px;
    gap:24px;
    align-items:start;
}
.bk-main{display:flex;flex-direction:column;gap:24px;min-width:0;}

.bk-card{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:26px 28px;
    box-shadow:0 4px 18px rgba(15,23,42,.04);
}
.bk-sec-title{
    margin:0 0 4px;
    font-size:19px;
    font-weight:700;
    color:var(--text);
}
.bk-sec-sub{
    margin:0 0 18px;
    color:var(--mute);
    font-size:13px;
}
.bk-sub-label{
    font-size:11px;
    font-weight:700;
    letter-spacing:.6px;
    text-transform:uppercase;
    color:#94a3b8;
    border-bottom:1px solid var(--border);
    padding-bottom:10px;
    margin-bottom:16px;
}
.bk-mt{margin-top:26px;}

/* ---------- Fields ---------- */
.bk-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;}
.bk-field label{
    display:block;
    font-size:12px;
    font-weight:600;
    color:var(--text);
    margin-bottom:6px;
}
.bk-field label em{color:var(--danger);font-style:normal;}
.bk-field input,
.bk-field select{
    width:100%;
    padding:11px 14px;
    border:1px solid var(--border);
    border-radius:8px;
    font-size:14px;
    font-family:inherit;
    background:#fff;
    color:var(--text);
}
.bk-field input:focus,
.bk-field select:focus{
    outline:none;
    border-color:var(--green);
    box-shadow:0 0 0 3px rgba(22,163,74,.12);
}

/* ---------- Choice cards (category/activity/package) ---------- */
.bk-choice-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    margin-bottom:22px;
}
.bk-activity-grid{grid-template-columns:repeat(2,1fr);}
.bk-package-grid{grid-template-columns:repeat(2,1fr);}
.bk-choice-card{
    border:1px solid var(--border);
    border-radius:10px;
    padding:16px 18px;
    cursor:pointer;
    transition:.2s ease;
    background:#fff;
    position:relative;
}
.bk-choice-card:hover{border-color:#a7d9b5;}
.bk-choice-card.selected{
    border-color:var(--green);
    background:var(--green-tint);
}
.bk-choice-kicker{
    font-size:10px;
    font-weight:700;
    letter-spacing:.6px;
    text-transform:uppercase;
    color:#94a3b8;
    margin-bottom:4px;
}
.bk-choice-title{font-size:14px;font-weight:600;color:var(--text);}
.bk-choice-desc{font-size:12px;color:var(--mute);margin-top:4px;}
.bk-choice-price{font-size:17px;font-weight:700;color:var(--text);margin-top:10px;}
.bk-choice-price small{font-size:11px;font-weight:500;color:var(--mute);}
.bk-choice-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:12px;
}
.bk-pill{
    display:inline-block;
    padding:5px 14px;
    border-radius:50px;
    font-size:11px;
    font-weight:600;
    background:#eef2f6;
    color:var(--mute);
}
.bk-pill.selected{background:var(--green);color:#fff;}

/* ---------- Calendar ---------- */
.bk-calendar{border:1px solid var(--border);border-radius:10px;padding:16px;}
.bk-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-weight:700;font-size:13px;}
.bk-cal-nav{background:none;border:1px solid var(--border);border-radius:6px;width:28px;height:28px;cursor:pointer;color:var(--mute);}
.bk-cal-nav:hover{background:#f1f5f9;}
.bk-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;}
.bk-cal-dow{font-size:10px;font-weight:700;color:#94a3b8;padding:4px 0;}
.bk-cal-day{
    font-size:12px;
    padding:8px 0;
    border-radius:6px;
    cursor:pointer;
    color:var(--text);
}
.bk-cal-day.muted{color:#cbd5e1;cursor:default;}
.bk-cal-day.today{box-shadow:inset 0 0 0 1.5px var(--green);}
.bk-cal-day.selected{background:var(--green);color:#fff;font-weight:700;}
.bk-cal-day:not(.muted):hover{background:#f1f5f9;}
.bk-cal-selected-line{margin-top:10px;font-size:12px;color:var(--mute);}
.bk-cal-selected-line strong{color:var(--text);}

/* ---------- Time slots ---------- */
.bk-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px;}
.bk-slot{
    border:1px solid var(--border);
    border-radius:8px;
    padding:9px 4px;
    text-align:center;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    color:var(--text);
    background:#fff;
}
.bk-slot:hover{border-color:#a7d9b5;}
.bk-slot.selected{background:var(--green);border-color:var(--green);color:#fff;}
.bk-fixed-schedule{
    background:var(--green-tint);
    border:1px solid #bfe8cc;
    border-radius:8px;
    padding:14px 16px;
    font-size:12px;
    font-weight:700;
    color:var(--green-dark);
    text-transform:uppercase;
    letter-spacing:.3px;
}

/* ---------- Steppers ---------- */
.bk-stepper-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    border:1px solid var(--border);
    border-radius:8px;
    padding:12px 16px;
    margin-bottom:10px;
}
.bk-stepper-info .bk-stepper-title{font-size:13px;font-weight:600;}
.bk-stepper-info .bk-stepper-note{font-size:11px;color:var(--mute);}
.bk-stepper{display:flex;align-items:center;gap:10px;}
.bk-stepper button{
    width:28px;height:28px;
    border-radius:6px;
    border:1px solid var(--border);
    background:#fff;
    font-size:16px;
    line-height:1;
    cursor:pointer;
    color:var(--text);
}
.bk-stepper button:disabled{opacity:.4;cursor:not-allowed;}
.bk-stepper span{min-width:20px;text-align:center;font-weight:700;}

/* ---------- Addons ---------- */
.bk-addon-list{display:flex;flex-direction:column;gap:10px;}
.bk-addon-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    border:1px solid var(--border);
    border-radius:8px;
    padding:14px 16px;
}
.bk-addon-row.selected{border-color:var(--green);background:var(--green-tint);}
.bk-addon-title{font-size:13px;font-weight:600;}
.bk-addon-price{font-size:11px;color:var(--mute);margin-top:2px;}
.bk-addon-toggle{
    border:1px solid var(--border);
    background:#fff;
    border-radius:50px;
    padding:6px 18px;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    color:var(--text);
}
.bk-addon-toggle.added{background:var(--green);border-color:var(--green);color:#fff;}

/* ---------- Terms ---------- */
.bk-terms-box{
    border:1px solid var(--border);
    border-radius:10px;
    padding:16px 18px;
    max-height:280px;
    overflow-y:auto;
    background:#fbfcfd;
}
.bk-term-item{margin-bottom:14px;}
.bk-term-item:last-child{margin-bottom:0;}
.bk-term-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:3px;}
.bk-term-body{font-size:12px;color:var(--mute);}
.bk-terms-loading{font-size:12px;color:var(--mute);}
.bk-terms-note{font-size:11px;color:var(--amber);margin-top:12px;padding-top:12px;border-top:1px dashed var(--border);}

/* ---------- Checkboxes ---------- */
.bk-check{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;font-size:13px;cursor:pointer;}
.bk-check input{margin-top:3px;width:16px;height:16px;accent-color:var(--green);flex-shrink:0;}

/* ---------- Signature ---------- */
.bk-sig-wrap{position:relative;border:1px solid var(--border);border-radius:10px;background:#f8fbff;overflow:hidden;}
.bk-sig-canvas{display:block;width:100%;height:160px;touch-action:none;cursor:crosshair;}
.bk-sig-placeholder{
    position:absolute;
    left:16px;top:16px;
    font-size:12px;
    color:#94a3b8;
    pointer-events:none;
}
.bk-sig-clear{
    position:absolute;
    right:14px;top:12px;
    font-size:11px;
    font-weight:600;
    color:#2563eb;
}

/* ---------- Review ---------- */
.bk-review-box{
    background:#f8fafc;
    border:1px solid var(--border);
    border-radius:10px;
    padding:18px 20px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 24px;
}
.bk-review-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#0891b2;margin-bottom:2px;}
.bk-review-value{font-size:13px;font-weight:600;color:var(--text);}
.bk-review-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px;flex-wrap:wrap;}
.bk-error{
    background:var(--danger-tint);
    border:1px solid #f5b8b8;
    color:var(--danger);
    padding:10px 14px;
    border-radius:8px;
    font-size:12px;
    margin-top:16px;
}

/* ---------- Buttons ---------- */
.bk-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border-radius:50px;
    padding:12px 26px;
    font-size:13px;
    font-weight:700;
    letter-spacing:.3px;
    border:1px solid transparent;
    cursor:pointer;
    text-transform:uppercase;
}
.bk-btn-dark{background:var(--navy-900);color:#fff;}
.bk-btn-dark:hover{background:#000;}
.bk-btn-green{background:var(--green);color:#fff;}
.bk-btn-green:hover{background:var(--green-dark);}
.bk-btn-outline{background:#fff;color:var(--text);border-color:var(--border);}
.bk-btn-outline:hover{border-color:#94a3b8;}
.bk-btn-block{width:100%;}
.bk-btn:disabled{opacity:.6;cursor:not-allowed;}
.bk-spinner{
    width:14px;height:14px;
    border-radius:50%;
    border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;
    animation:bk-spin .7s linear infinite;
}
@keyframes bk-spin{to{transform:rotate(360deg);}}

/* ---------- Sticky Summary ---------- */
.bk-summary{position:sticky;top:112px;align-self:start;}
.bk-summary-inner{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:22px 22px 24px;
    box-shadow:0 4px 18px rgba(15,23,42,.04);
}
.bk-summary-title{
    font-size:11px;
    font-weight:700;
    letter-spacing:.6px;
    text-transform:uppercase;
    color:#0891b2;
    margin-bottom:16px;
}
.bk-sum-block{margin-bottom:12px;}
.bk-sum-label{font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:.4px;}
.bk-sum-value{font-size:13px;font-weight:600;color:var(--text);margin-top:2px;}
.bk-sum-divider{border-top:1px solid var(--border);margin:14px 0;}
.bk-sum-row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--text);padding:4px 0;}
.bk-sum-row.bk-sum-sub{color:var(--mute);font-size:11.5px;}
.bk-sum-row.bk-sum-total{font-weight:700;font-size:15px;color:var(--green);padding:8px 0;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);margin:4px 0;}
.bk-summary .bk-btn-dark{margin-top:16px;}

/* ---------- Confirmation ---------- */
.bk-confirm-overlay{
    position:fixed;inset:0;
    background:rgba(11,18,32,.65);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    z-index:100;
    overflow-y:auto;
}
.bk-confirm-card{
    background:#fff;
    border-radius:16px;
    padding:36px 34px;
    max-width:460px;
    width:100%;
    text-align:center;
    box-shadow:0 30px 70px rgba(0,0,0,.35);
    margin:auto;
}
.bk-confirm-logo{width:56px;height:56px;border-radius:50%;object-fit:cover;margin-bottom:14px;box-shadow:0 0 0 4px #f1f5f9;}
.bk-confirm-badge{color:var(--green);font-weight:700;font-size:11px;letter-spacing:.6px;text-transform:uppercase;margin-bottom:8px;}
.bk-confirm-title{font-size:22px;font-weight:800;margin:0 0 8px;}
.bk-confirm-sub{color:var(--mute);font-size:13px;margin:0 0 22px;}
.bk-confirm-box{
    background:#f8fafc;
    border:1px solid var(--border);
    border-radius:10px;
    padding:16px 18px;
    text-align:left;
    margin-bottom:18px;
}
.bk-confirm-row{display:flex;justify-content:space-between;font-size:13px;padding:5px 0;}
.bk-confirm-row span:first-child{color:#0891b2;font-weight:600;}
.bk-confirm-row span:last-child{font-weight:700;}
.bk-confirm-fb{
    background:var(--green-tint);
    border:1px solid #bfe8cc;
    border-radius:10px;
    padding:14px;
    display:flex;
    align-items:center;
    gap:14px;
    text-align:left;
    margin-bottom:22px;
}
.bk-confirm-fb img{width:64px;height:64px;flex-shrink:0;border-radius:6px;}
.bk-confirm-fb p{margin:0;font-size:11.5px;color:#0f7a37;line-height:1.4;}
.bk-confirm-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;}

/* ---------- Responsive ---------- */
@media (max-width:960px){
    .bk-layout{grid-template-columns:1fr;}
    .bk-summary{position:static;order:-1;}
}
@media (max-width:640px){
    .bk-grid-2{grid-template-columns:1fr;}
    .bk-choice-grid{grid-template-columns:1fr;}
    .bk-activity-grid,.bk-package-grid{grid-template-columns:1fr;}
    .bk-slot-grid{grid-template-columns:repeat(2,1fr);}
    .bk-review-box{grid-template-columns:1fr;}
    .bk-card{padding:20px;}
    .bk-progress ol{gap:16px;}
    .bk-toplinks{gap:14px;}
}
