.fy-bk{
  --fy-ink:#172033;--fy-muted:#526079;--fy-pink:#E45C9C;--fy-pink-deep:#C94386;--fy-pink-dark:#B83280;
  --fy-purple:#7C3AED;--fy-purple-deep:#5B21B6;--fy-purple-soft:#F3E8FF;--fy-blue:#2563EB;--fy-blue-deep:#1E40AF;
  --fy-blue-soft:#EFF6FF;--fy-border:#E6EAF3;
  color:var(--fy-ink);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:linear-gradient(180deg,#fff,#fffafd);
  border:1px solid rgba(124,58,237,.16);
  border-radius:20px;
  padding:18px;
  box-shadow:0 14px 34px rgba(23,32,51,.08);
}
.fy-bk *{box-sizing:border-box}

/* ---- Theme-interference guards -------------------------------------
   Elementor/theme global form styles (width:100%, huge padding, borders)
   were blowing up the small controls — pin them down explicitly. */
.fy-bk input[type=checkbox],
.fy-bk input[type=radio]{
  width:20px!important;height:20px!important;min-height:0!important;min-width:0!important;
  padding:0!important;margin:0!important;flex:0 0 20px;appearance:auto;-webkit-appearance:auto;
  box-shadow:none!important;
}
.fy-bk .fy-bk-addon-qty{
  width:64px!important;min-width:64px!important;max-width:64px!important;flex:0 0 64px;
  min-height:38px!important;padding:6px 8px!important;margin:0!important;
}
.fy-bk .fy-bk-duration input[type=radio]{
  position:absolute;opacity:0;pointer-events:none;
}
.fy-bk input,.fy-bk select,.fy-bk textarea{box-shadow:none}
/* -------------------------------------------------------------------- */
.fy-bk-head{text-align:center;margin-bottom:14px}
.fy-bk-title{
  margin:0 0 6px;font-size:clamp(20px,3vw,26px);font-weight:950;line-height:1.15;letter-spacing:-.02em;
  background:linear-gradient(90deg,var(--fy-pink-deep),var(--fy-purple),var(--fy-blue));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.fy-bk-sub{margin:0;color:var(--fy-muted);font-size:12.5px;font-weight:700;line-height:1.5}
.fy-bk-marina{
  display:inline-flex;align-items:center;gap:5px;margin:8px auto 0;padding:6px 12px;
  border:1px solid rgba(37,99,235,.2);border-radius:999px;background:var(--fy-blue-soft);
  color:var(--fy-blue-deep);font-size:12px;font-weight:800;
}
.fy-bk-whatsapp{
  display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;margin-top:9px;
  padding:9px 14px;border-radius:12px;background:#25D366;color:#062b12;
  font-size:12.5px;font-weight:900;text-decoration:none;box-shadow:0 6px 16px rgba(37,211,102,.3);
}
.fy-bk-whatsapp:hover{filter:brightness(1.05)}
.fy-bk-whatsapp[hidden]{display:none}
.fy-bk-policy{
  margin:10px 0 0;border:1px solid var(--fy-border);border-radius:11px;background:#fff;
}
.fy-bk-policy summary{
  padding:9px 12px;cursor:pointer;font-size:11.5px;font-weight:900;color:var(--fy-purple-deep);
  list-style:none;
}
.fy-bk-policy summary::-webkit-details-marker{display:none}
.fy-bk-policy ul{margin:0;padding:0 14px 11px 28px}
.fy-bk-policy li{color:var(--fy-muted);font-size:11px;font-weight:700;line-height:1.55;margin-bottom:4px}

.fy-bk-body{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:900px){.fy-bk-body{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}}

.fy-bk-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
@media(max-width:600px){.fy-bk-fields{grid-template-columns:1fr}}
.fy-bk-field-full{grid-column:1/-1}
.fy-bk-label{display:block;margin-bottom:5px;font-size:11.5px;font-weight:950;letter-spacing:.05em;text-transform:uppercase;color:var(--fy-purple-deep)}
.fy-bk-input{
  width:100%;min-height:46px;padding:10px 13px;border:1.5px solid var(--fy-border);border-radius:12px;
  background:#fff;color:var(--fy-ink);font:inherit;font-size:14px;font-weight:700;
}
textarea.fy-bk-input{min-height:64px;padding-top:11px}
.fy-bk-input:focus{outline:3px solid rgba(124,58,237,.16);border-color:var(--fy-purple)}
.fy-bk-hint{display:block;margin:5px 0 0;color:var(--fy-muted);font-size:11.5px;font-weight:700}

.fy-bk-durations{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px}
.fy-bk-duration{
  position:relative;display:flex;flex-direction:column;gap:3px;padding:11px 13px;border:2px solid var(--fy-border);border-radius:13px;
  background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;
}
.fy-bk-duration:hover{border-color:rgba(124,58,237,.4)}
.fy-bk-duration.is-selected{border-color:var(--fy-purple);background:linear-gradient(105deg,#fff,var(--fy-purple-soft));box-shadow:0 7px 16px rgba(91,33,182,.12)}
.fy-bk-duration input{position:absolute;opacity:0;pointer-events:none}
.fy-bk-duration-name{font-size:13px;font-weight:900;line-height:1.25}
.fy-bk-duration-price{color:var(--fy-pink-deep);font-size:19px;font-weight:950;line-height:1}
.fy-bk-duration-free{
  align-self:flex-start;margin-top:2px;padding:2px 7px;border-radius:999px;
  background:#E0F2FE;color:#075985;font-size:9.5px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;
}
.fy-bk-day-note{
  grid-column:1/-1;margin:0 0 2px;padding:7px 10px;border-radius:9px;
  background:var(--fy-blue-soft);color:var(--fy-blue-deep);font-size:11px;font-weight:900;text-align:center;
  text-transform:uppercase;letter-spacing:.05em;
}

.fy-bk-addons{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.fy-bk-addon{
  display:flex;align-items:flex-start;gap:9px;padding:11px;border:2px solid var(--fy-border);border-radius:13px;
  background:#fff;cursor:pointer;transition:border-color .15s ease;
}
.fy-bk-addon:hover{border-color:rgba(228,92,156,.42)}
.fy-bk-addon.is-on{border-color:var(--fy-pink);background:linear-gradient(105deg,#fff,#fff4f9)}
.fy-bk-addon input[type=checkbox]{margin-top:3px;width:17px;height:17px;accent-color:var(--fy-pink-deep);flex:none}
.fy-bk-addon-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.fy-bk-addon-name{font-size:13px;font-weight:900;line-height:1.25}
.fy-bk-addon-price{color:var(--fy-pink-deep);font-size:13px;font-weight:950}
.fy-bk-addon-note{color:var(--fy-muted);font-size:10.5px;font-weight:750}
.fy-bk-addon-qty{width:56px;min-height:34px;padding:5px 7px;border:1.5px solid var(--fy-border);border-radius:9px;font:inherit;font-size:13px;font-weight:800;flex:none}
.fy-bk-addon-qty:disabled{opacity:.35}

.fy-bk-summary{
  align-self:start;position:sticky;top:14px;padding:15px;border:1px solid rgba(124,58,237,.2);border-radius:17px;
  background:linear-gradient(160deg,#fff,#fff5fa 55%,var(--fy-purple-soft));box-shadow:0 10px 26px rgba(91,33,182,.09);
}
.fy-bk-summary-title{margin:0 0 10px;font-size:12px;font-weight:950;text-transform:uppercase;letter-spacing:.07em;color:var(--fy-purple-deep)}
.fy-bk-lines{display:grid;gap:6px;margin-bottom:11px}
.fy-bk-line{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:750;color:var(--fy-muted)}
.fy-bk-line strong{color:var(--fy-ink);font-weight:900;text-align:right}
.fy-bk-line-empty{color:var(--fy-muted);font-size:12.5px;font-weight:750;line-height:1.55;margin:0}

.fy-bk-total-row{
  display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:9px 0;border-top:1px solid rgba(124,58,237,.18);
  color:var(--fy-muted);font-size:12.5px;font-weight:850;
}
.fy-bk-total{font-size:19px;font-weight:950;color:var(--fy-ink);letter-spacing:-.02em}

.fy-bk-split-intro{
  margin:2px 0 7px;color:var(--fy-muted);font-size:11px;font-weight:800;
  letter-spacing:.03em;text-align:center;text-transform:uppercase;
}

/* Deposit and dock balance sit side by side so the split is unmistakable. */
.fy-bk-split{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:7px;margin-bottom:4px;
}
.fy-bk-split-col{
  display:flex;flex-direction:column;justify-content:flex-start;gap:3px;
  padding:11px 10px;border-radius:13px;text-align:center;min-width:0;
}
.fy-bk-split-col.is-now{
  border:2px solid var(--fy-pink);
  background:linear-gradient(160deg,#fff,#fff4f9);
  box-shadow:0 7px 18px rgba(228,92,156,.16);
}
.fy-bk-split-col.is-later{
  border:2px dashed rgba(124,58,237,.34);
  background:linear-gradient(160deg,#fff,var(--fy-purple-soft));
}
.fy-bk-split-label{
  font-size:10px;font-weight:950;letter-spacing:.045em;text-transform:uppercase;line-height:1.25;
  color:var(--fy-purple-deep);
}
.fy-bk-split-col.is-now .fy-bk-split-label{color:var(--fy-pink-deep)}
.fy-bk-deposit{
  font-size:clamp(21px,4vw,27px);font-weight:950;letter-spacing:-.03em;line-height:1.05;
  color:var(--fy-pink-deep);overflow-wrap:anywhere;
}
.fy-bk-balance{
  font-size:clamp(19px,3.6vw,24px);font-weight:950;letter-spacing:-.03em;line-height:1.05;
  color:var(--fy-ink);overflow-wrap:anywhere;
}
.fy-bk-split-note{color:var(--fy-muted);font-size:10px;font-weight:800;line-height:1.35}
.fy-bk-split-plus{
  align-self:center;color:var(--fy-muted);font-size:16px;font-weight:950;line-height:1;
}
@media(max-width:420px){
  .fy-bk-split{grid-template-columns:1fr;gap:6px}
  .fy-bk-split-plus{display:none}
}

.fy-bk-error{
  margin:9px 0 0;padding:9px 11px;border:1px solid #fca5a5;border-radius:11px;background:#fef2f2;
  color:#b91c1c;font-size:12px;font-weight:850;line-height:1.45;
}
.fy-bk-error[hidden]{display:none}

.fy-bk-submit{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;min-height:60px;
  margin-top:11px;padding:11px 14px;border:2px solid transparent;border-radius:14px;
  background:linear-gradient(105deg,var(--fy-pink-deep) 0%,var(--fy-pink-dark) 48%,var(--fy-purple) 100%);
  color:#fff;font:inherit;cursor:pointer;box-shadow:0 10px 24px rgba(184,50,128,.28);transition:filter .15s ease;
}
.fy-bk-submit:hover:not(:disabled){filter:saturate(1.08) brightness(1.05)}
.fy-bk-submit:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.fy-bk-submit:focus-visible{outline:3px solid rgba(37,99,235,.3);outline-offset:3px}
.fy-bk-submit-main{font-size:14.5px;font-weight:950;line-height:1.2}
.fy-bk-submit-sub{color:rgba(255,255,255,.85);font-size:9.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.fy-bk-fineprint{margin:9px 0 0;color:var(--fy-muted);font-size:10.5px;font-weight:750;line-height:1.45;text-align:center}

/* Modal */
.fy-bk-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.fy-bk-modal[hidden]{display:none}
.fy-bk-modal-backdrop{position:absolute;inset:0;background:rgba(23,32,51,.62);backdrop-filter:blur(4px)}
.fy-bk-modal-panel{
  position:relative;width:min(1040px,100%);max-height:92vh;overflow:auto;border-radius:22px;background:#fff;
  box-shadow:0 30px 70px rgba(23,32,51,.4);animation:fyBkIn .22s ease;
}
@keyframes fyBkIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.fy-bk-modal-close{
  position:absolute;top:11px;right:11px;z-index:2;width:36px;height:36px;border:0;border-radius:50%;
  background:rgba(23,32,51,.08);color:var(--fy-ink,#172033);font-size:25px;line-height:1;cursor:pointer;
}
.fy-bk-modal-close:hover{background:rgba(23,32,51,.16)}
.fy-bk-modal .fy-bk{border:0;border-radius:22px;box-shadow:none;padding:22px}
.fy-bk-loading{padding:60px 20px;text-align:center;color:#526079;font-weight:800;font-family:ui-sans-serif,system-ui,sans-serif}

/* Tablet: single-column body with the summary directly under the fields,
   wider duration cards, comfortable reading size. */
@media(min-width:641px) and (max-width:899px){
  .fy-bk-body{grid-template-columns:1fr}
  .fy-bk-summary{position:static;max-width:560px;margin:0 auto;width:100%}
  .fy-bk-durations{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
  .fy-bk-addons{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
  .fy-bk-input{font-size:15px}
}

/* Phones: bigger tap targets and text sized for reading at arm's length. */
@media(max-width:640px){
  .fy-bk{padding:13px;border-radius:16px}
  .fy-bk-input{min-height:50px;font-size:16px} /* 16px stops iOS zoom-on-focus */
  .fy-bk-duration{padding:13px 14px}
  .fy-bk-duration-name{font-size:14px}
  .fy-bk-duration-price{font-size:21px}
  .fy-bk-addon{padding:13px 12px}
  .fy-bk-addon input[type=checkbox]{width:21px;height:21px}
  .fy-bk-addon-name,.fy-bk-addon-price{font-size:14px}
  .fy-bk-submit{min-height:64px}
  .fy-bk-submit-main{font-size:15.5px}
  .fy-bk-summary{position:static}
  .fy-bk-modal{padding:8px}
  .fy-bk-modal-panel{max-height:95vh;border-radius:16px}
  .fy-bk-modal .fy-bk{padding:14px;border-radius:16px}
}

/* Any touch device: keep every control comfortably tappable. */
@media(pointer:coarse){
  .fy-bk-input,.fy-bk-submit,.fy-bk-duration,.fy-bk-addon{min-height:48px}
  .fy-bk-modal-close{width:44px;height:44px}
}

@media(prefers-reduced-motion:reduce){
  .fy-bk-modal-panel{animation:none}
  .fy-bk-duration,.fy-bk-addon,.fy-bk-submit{transition:none}
}
