.fbce-card {
  --fbce-text: #142033;
  --fbce-muted: #596579;
  --fbce-accent: #2d6262;
  --fbce-green: #739582;
  --fbce-border: #d7dfe1;
  --fbce-pink: #F1BBD7;
  width: 100%;
  max-width: 430px;
  padding: 22px;
  color: var(--fbce-text);
  background: #fff;
  border: 1px solid #e3e9ea;
  border-radius: 22px;
  box-shadow: 0 16px 40px rgba(23, 48, 61, .08);
  font-family: inherit;
}

.fbce-card * { box-sizing: border-box; }
.fbce-badge {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  margin-bottom: 14px;
  border-radius: 999px;
  background: #fff1a6;
  color: #624c13;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.fbce-price-row { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
.fbce-from { color: var(--fbce-muted); font-size: 13px; font-weight: 700; text-transform: uppercase; }
.fbce-price-main { color: var(--fbce-accent); font-family: Georgia, serif; font-size: 42px; font-weight: 500; line-height: 1; }
.fbce-price-meta { color: var(--fbce-muted); font-size: 14px; font-weight: 700; }
.fbce-cancel { margin: 8px 0 26px; color: var(--fbce-green); font-size: 14px; font-weight: 650; }
.fbce-cancel span { margin-right: 5px; }
.fbce-urgency {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 18px;
  padding: 13px 14px;
  background: #fff0ee;
  border-radius: 12px;
  color: #cc4035;
  font-size: 13px;
  font-weight: 750;
}
.fbce-live-dot { width: 10px; height: 10px; flex: 0 0 10px; border-radius: 50%; background: #ff504b; box-shadow: 0 0 0 7px rgba(255,80,75,.13); }
.fbce-field-label { display: block; margin-bottom: 8px; color: var(--fbce-accent); font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.fbce-date,
.fbce-time { display: block; margin-bottom: 18px; }
.fbce-date input,
.fbce-time select,
.fbce-input input {
  width: 100%;
  height: 56px;
  padding: 0 16px;
  border: 1px solid var(--fbce-border);
  border-radius: 13px;
  background: #fff;
  color: var(--fbce-text);
  font: inherit;
  font-size: 16px;
}
.fbce-time select { appearance: auto; }
.fbce-time select:disabled { color: var(--fbce-muted); background: #f7f9f9; }
.fbce-live-status { min-height: 18px; margin: -8px 0 17px; color: var(--fbce-muted); font-size: 12px; line-height: 1.4; }
.fbce-live-status.is-loading { color: #5f6c7b; }
.fbce-live-status.is-available { color: #3f7b58; font-weight: 700; }
.fbce-live-status.is-unavailable { color: #a23a31; }
.fbce-guests-label { margin-top: 3px; }
.fbce-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 74px;
  padding: 12px 14px;
  margin-bottom: 10px;
  border: 1px solid var(--fbce-border);
  border-radius: 13px;
}
.fbce-stepper-label { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.fbce-stepper-label strong { font-size: 15px; }
.fbce-stepper-label small { color: var(--fbce-muted); font-size: 13px; }
.fbce-stepper-control { display: grid; grid-template-columns: 30px 28px 30px; align-items: center; text-align: center; }
.fbce-stepper-control button {
  appearance: none;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--fbce-text);
  font-size: 22px;
  line-height: 30px;
  cursor: pointer;
}
.fbce-stepper-control button:hover { background: #f3f6f6; }
.fbce-stepper-control button:disabled { opacity: .32; cursor: default; background: transparent; }
.fbce-stepper-control span { font-size: 16px; font-weight: 800; }
.fbce-total { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 12px; padding: 20px 0 14px; border-top: 1px dashed #cfd9db; color: var(--fbce-muted); font-size: 14px; font-weight: 650; }
.fbce-total-value { color: var(--fbce-accent); font-family: Georgia, serif; font-size: 30px; font-weight: 500; }
.fbce-note { margin: 0 auto 18px; max-width: 330px; color: var(--fbce-muted); font-size: 13px; line-height: 1.55; text-align: center; }
.fbce-buyer { margin: 0 0 18px; padding: 16px; border: 1px solid var(--fbce-border); border-radius: 13px; background: #f8fafa; }
.fbce-input-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.fbce-input { display: block; margin-bottom: 12px; }
.fbce-input:last-child { margin-bottom: 0; }
.fbce-input span { display: block; margin-bottom: 7px; color: var(--fbce-text); font-size: 12px; font-weight: 700; }
.fbce-input input { height: 48px; padding: 0 12px; background: #fff; font-size: 14px; }
.fbce-input input:focus,
.fbce-date input:focus,
.fbce-time select:focus { border-color: var(--fbce-accent); outline: 2px solid rgba(45,98,98,.16); outline-offset: 1px; }
.fbce-cta {
  width: 100%;
  min-height: 52px;
  padding: 13px 18px;
  border: 0;
  border-radius: 999px;
  background: var(--fbce-pink);
  color: #092c35;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform .18s ease, filter .18s ease;
}
.fbce-cta:hover { filter: brightness(.97); transform: translateY(-1px); }
.fbce-cta:disabled { opacity: .55; cursor: wait; filter: none; transform: none; }
.fbce-cta:focus-visible { outline: 3px solid rgba(45,98,98,.35); outline-offset: 3px; }
.fbce-trust { display: grid; gap: 10px; margin-top: 16px; padding-top: 16px; border-top: 1px solid #edf0f1; }
.fbce-trust-item { display: grid; grid-template-columns: 20px 1fr; gap: 7px; align-items: center; font-size: 12.5px; font-weight: 600; }
.fbce-trust-item span { color: #3379b7; font-weight: 850; text-align: center; }
.fbce-help { display: flex; justify-content: space-between; gap: 18px; margin-top: 20px; color: #5c9bb4; font-size: 13px; line-height: 1.4; }
.fbce-help a { color: #245d63; font-weight: 750; text-decoration: none; }
.fbce-help a:hover { text-decoration: underline; }
.fbce-error { display: none; margin-top: 12px; color: #b42318; font-size: 12px; line-height: 1.4; }
.fbce-error.is-visible { display: block; }
.fbce-modal[hidden] { display: none; }
.fbce-modal {
  position: fixed;
  z-index: 999999;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
}
.fbce-modal-backdrop { position: absolute; inset: 0; background: rgba(8, 20, 28, .64); backdrop-filter: blur(3px); }
.fbce-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 520px);
  max-height: calc(100vh - 40px);
  overflow: auto;
  padding: 28px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .25);
}
.fbce-modal-dialog h3 { margin: 0 40px 8px 0; color: var(--fbce-text); font-size: 25px; line-height: 1.2; }
.fbce-modal-intro { margin: 0 0 18px; color: var(--fbce-muted); font-size: 13px; line-height: 1.55; }
.fbce-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f1f4f4;
  color: var(--fbce-text);
  font: inherit;
  font-size: 25px;
  line-height: 38px;
  cursor: pointer;
}
.fbce-modal .fbce-buyer { margin-bottom: 16px; }
.fbce-secure-note { margin: 11px 10px 0; color: var(--fbce-muted); font-size: 11.5px; line-height: 1.45; text-align: center; }
body.fbce-modal-open { overflow: hidden; }

@media (max-width: 480px) {
  .fbce-card { max-width: none; padding: 19px; }
  .fbce-price-main { font-size: 38px; }
  .fbce-help { flex-direction: column; gap: 4px; }
  .fbce-input-grid { grid-template-columns: 1fr; gap: 0; }
  .fbce-modal { padding: 10px; }
  .fbce-modal-dialog { max-height: calc(100vh - 20px); padding: 22px 18px; border-radius: 16px; }
}


/* Pearl Island booking refinements — infants, discounts and final totals */
.fbce-departure-value {
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 0 14px;
  border: 1px solid #d8dfdd;
  border-radius: 12px;
  background: #f7faf9;
  color: #143f3b;
  font-weight: 700;
}
.fbce-total {align-items:flex-start;border-top:1px solid #e4e9e7;margin-top:16px;padding-top:18px}
.fbce-total>span {display:flex;flex-direction:column;gap:3px}
.fbce-total>span strong {font-size:16px;color:#163f3a}
.fbce-total>span small {font-size:12px;color:#6a7b78;font-weight:500}
.fbce-total-value {font-size:32px!important;line-height:1;color:#194c46}
.fbce-breakdown {margin-top:8px;color:#667773;font-size:13px;line-height:1.45}
.fbce-discount-line {margin-top:8px;color:#24745f;font-size:13px;font-weight:700}
.fbce-discount {margin:14px 0 8px}
.fbce-discount-toggle {padding:0!important;border:0!important;background:transparent!important;color:#176d62!important;font-size:13px!important;font-weight:700!important;text-decoration:underline;box-shadow:none!important}
.fbce-discount-fields {display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}
.fbce-discount-fields[hidden] {display:none}
.fbce-discount-fields input {min-width:0;border:1px solid #d8dfdd;border-radius:10px;padding:11px 12px;background:#fff;color:#173f3b}
.fbce-discount-fields button {border:0;border-radius:10px;padding:0 16px;background:#F1BBD7;color:#142033;font-weight:800}
.fbce-cta {display:flex!important;align-items:center;justify-content:center;gap:10px;background:#F1BBD7!important;border-radius:999px!important;box-shadow:0 10px 24px rgba(241,187,215,.35)!important}
.fbce-cta:hover {background:#F1BBD7!important;transform:translateY(-1px)}
.fbce-cta strong {font:inherit;color:inherit}
.fbce-adult-names {grid-column:1/-1;margin:0 0 16px;padding:16px;border-radius:14px;background:#f5f9f8}
.fbce-adult-names h4 {margin:0 0 4px;color:#173f3b;font-size:16px}
.fbce-adult-names p {margin:0 0 12px;color:#6a7b78;font-size:12px}
.fbce-adult-name-field {display:block;margin-top:10px}
.fbce-adult-name-field span {display:block;margin-bottom:6px;color:#294f4a;font-size:12px;font-weight:700}
.fbce-adult-name-field input {width:100%;border:1px solid #d8dfdd;border-radius:10px;padding:11px 12px;background:#fff}
@media(max-width:767px){
  .fbce-card {scroll-margin-top:84px}
  .fbce-total-value {font-size:28px!important}
  .fbce-discount-fields {grid-template-columns:1fr}
  .fbce-discount-fields button {min-height:44px}
  .fbce-modal-dialog {max-height:90vh;overflow:auto}
}

.fbce-input textarea{width:100%;min-height:110px;padding:12px 14px;border:1px solid #d8dfdd;border-radius:10px;background:#fff;color:#173f3b;font:inherit;line-height:1.5;resize:vertical}
.fbce-input textarea:focus{border-color:#1c625a;outline:2px solid rgba(28,98,90,.12);outline-offset:1px}

/* Reference booking design — compact card and accessible checkout. */
.fbce-card { padding:18px!important; border-radius:18px; font-family:Nunito,sans-serif; }
.fbce-card .fbce-badge { padding:5px 10px; margin-bottom:8px; font-size:10px; }
.fbce-card .fbce-price-main { font-size:36px!important; }
.fbce-card .fbce-cancel { margin:5px 0 10px; font-size:12px; }
.fbce-card .fbce-urgency { padding:8px 12px; margin-bottom:10px; font-size:11px; }
.fbce-card .fbce-field-label { margin-bottom:5px; font-size:11px; }
.fbce-card .fbce-date,.fbce-card .fbce-time { margin-bottom:10px; }
.fbce-card .fbce-date input { height:44px!important; padding:0 12px!important; border:1px solid #d7dfe1!important; border-radius:10px!important; cursor:pointer; font-size:15px; }
.fbce-card .fbce-departure-value { min-height:40px; font-size:14px; }
.fbce-card .fbce-live-status:empty { display:none; }
.fbce-card .fbce-live-status { margin:0 0 8px; min-height:0; }
.fbce-card .fbce-stepper { min-height:54px!important; padding:7px 10px!important; margin-bottom:6px; gap:8px; border-radius:10px; }
.fbce-card .fbce-stepper-label { gap:1px; }
.fbce-card .fbce-stepper-label strong { font-size:13px; }
.fbce-card .fbce-stepper-label small { font-size:11px; }
.fbce-card .fbce-stepper-control { grid-template-columns:34px 24px 34px; }
.fbce-card .fbce-stepper-control button { width:34px; height:34px; }
.fbce-card .fbce-total { margin-top:10px; padding:12px 0 3px; }
.fbce-card .fbce-breakdown { margin-top:4px; font-size:12px; }
.fbce-card .fbce-discount { margin:8px 0; }
.fbce-card .fbce-note { margin-bottom:10px; }
.fbce-card > .fbce-cta { background:#EE7266!important; color:#fff!important; min-height:52px; padding:14px 16px; font-size:14px; letter-spacing:.05em; gap:6px; box-shadow:0 12px 28px rgba(238,114,102,.38)!important; }
.fbce-card > .fbce-cta strong:before { content:'· '; }
.fbce-card > .fbce-cta:disabled { opacity:.7; }
.fbce-cta-note { text-align:center; font-size:12px; line-height:1.5; color:#5a6372; margin-top:10px; }
.fbce-reassure { list-style:none!important; margin:16px 0 0!important; padding:16px 0 0!important; border-top:1px solid #e3e7ea; display:grid; gap:9px; }
.fbce-reassure li { display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.6; color:#5a6372; }
.fbce-reassure li span { color:#3B5F5F; font-weight:800; flex:none; }
.fbce-reference-help { text-align:center; font-size:12px; line-height:1.6; color:#5a6372; margin-top:14px; }
.fbce-reference-help a { color:#609AAD; font-weight:700; text-decoration:none; border-bottom:1px solid rgba(96,154,173,.4); }
.fbce-modal[popover] { margin:0; width:100%; height:100%; max-width:none; max-height:none; border:0; background:transparent; color:#22403F; }
.fbce-modal[popover]::backdrop { background:transparent; }
.fbce-modal .fbce-reference-modal { display:flex; flex-direction:column; padding:0!important; border-radius:14px!important; max-height:calc(100dvh - 32px)!important; overflow:hidden!important; font-family:Nunito,sans-serif; color:#22403F; box-shadow:0 24px 60px -12px rgba(34,64,63,.28); }
.fbce-ref-head { position:relative; padding:28px 28px 22px; background:#3B5F5F; color:white; flex:none; }
.fbce-ref-head:after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#75C2DB,#609AAD 60%,transparent); }
.fbce-ref-eyebrow { font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; color:#75C2DB; margin-bottom:8px; }
.fbce-ref-head h3 { font-family:'Miller Banner','Playfair Display',Georgia,serif!important; font-size:27px!important; line-height:1.15!important; font-weight:600; color:#fff!important; margin:0 24px 0 0!important; }
.fbce-ref-head p { margin:9px 0 0; font-size:14px; line-height:1.55; color:rgba(255,255,255,.78); max-width:38ch; }
.fbce-ref-head .fbce-modal-close { top:20px; right:20px; width:32px; height:32px; font-size:20px; line-height:30px; border:1px solid rgba(255,255,255,.24); background:transparent; color:#fff; }
.fbce-ref-body { padding:24px 28px 8px; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.fbce-ref-summary { background:#F7F4EE; border:1px solid #DFE4E2; border-left:3px solid #609AAD; border-radius:10px; padding:16px 18px; margin-bottom:26px; }
.fbce-ref-summary h4 { font-family:'Miller Banner','Playfair Display',Georgia,serif!important; font-size:17px!important; line-height:1.25; color:#22403F; margin:0 0 6px; }
.fbce-ref-details { display:flex; flex-wrap:wrap; gap:4px 10px; font-size:13px; font-weight:600; }
.fbce-ref-total { display:flex; justify-content:space-between; align-items:baseline; border-top:1px dashed #DFE4E2; margin-top:13px; padding-top:12px; }
.fbce-ref-total span { color:#6E8583; font-size:13px; }
.fbce-ref-total strong { font-family:'Miller Banner',Georgia,serif; font-size:22px; }
.fbce-ref-meet { margin:10px 0 0; font-size:12.5px; color:#6E8583; line-height:1.5; }
.fbce-ref-section { margin-bottom:26px; }
.fbce-ref-section > h4 { font-family:Nunito,sans-serif!important; font-size:11px!important; letter-spacing:.15em; text-transform:uppercase; font-weight:700; color:#609AAD; margin:0 0 5px; }
.fbce-ref-section > p { color:#6E8583; font-size:13px; margin:0 0 14px; line-height:1.5; }
.fbce-ref-section .fbce-input,.fbce-ref-section .fbce-adult-name-field { margin:0 0 14px; }
.fbce-ref-section .fbce-input span,.fbce-ref-section .fbce-adult-name-field span { font-size:13px; font-weight:600; color:#22403F; margin-bottom:6px; }
.fbce-ref-section input,.fbce-ref-section textarea { width:100%; min-width:0; height:46px; padding:12px 14px!important; font:15px Nunito,sans-serif!important; color:#22403F; background:#FCFDFC!important; border:1px solid #DFE4E2!important; border-radius:9px!important; }
.fbce-ref-section textarea { height:auto; min-height:92px; line-height:1.55!important; }
.fbce-ref-section small { display:block; color:#6E8583; font-size:12px; margin-top:6px; line-height:1.45; }
.fbce-ref-req { color:#EE7266; }
.fbce-ref-opt { font-size:10px; text-transform:uppercase; color:#6E8583; background:#EDEDED; border-radius:20px; padding:2px 8px; white-space:nowrap; }
.fbce-ref-foot { padding:18px 28px 24px; background:#F7F4EE; border-top:1px solid #DFE4E2; flex:none; }
.fbce-ref-assure { display:flex; gap:9px; font-size:13px; line-height:1.5; margin-bottom:14px; }
.fbce-ref-assure span { color:#609AAD; }
.fbce-ref-foot .fbce-cta { background:#3B5F5F!important; color:#fff!important; border-radius:10px!important; font-size:15.5px; font-weight:700; letter-spacing:.01em; text-transform:none; padding:16px 20px; box-shadow:0 2px 0 rgba(34,64,63,.35)!important; }
.fbce-ref-foot .fbce-cta:disabled { background:#B7C6C4!important; box-shadow:none!important; opacity:1; cursor:not-allowed; }
.fbce-ref-foot .fbce-secure-note { margin:12px 0 0; font-size:12px; color:#6E8583; line-height:1.5; }
.fbce-ref-foot .fbce-secure-note b { color:#22403F; font-weight:600; }
@supports selector(:popover-open) { @media(min-width:768px) { .fbce-card { max-height:calc(100dvh - 140px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; } } }
@media(max-width:480px) { .fbce-ref-head { padding:22px 20px 18px; } .fbce-ref-body { padding:18px 20px 6px; } .fbce-ref-foot { padding:14px 20px 18px; } .fbce-ref-head h3 { font-size:24px!important; } .fbce-ref-head p { font-size:12px; } .fbce-ref-assure { font-size:12px; margin-bottom:10px; } }

/* Guest full-name validation */
.fbce-adult-name-field input.is-invalid {
  border-color: #f46f68 !important;
  box-shadow: 0 0 0 1px #f46f68 !important;
  background: #fffafa !important;
}
.fbce-guest-name-error {
  display: block;
  margin-top: 6px;
  color: #ef625c;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
}
.fbce-guest-name-error[hidden] {
  display: none !important;
}
