/* Rental Manager 2.11.7 — Session 5 public entry and checkout. */
.cfl-session5-readiness,
.cfl-session5-documents,
.cfl-session5-handoff {
  --cfl-s5-surface: var(--cfl-customer-surface, var(--cfl-surface, #fff));
  --cfl-s5-surface-2: var(--cfl-customer-surface-secondary, var(--cfl-surface-soft, #f6f8fb));
  --cfl-s5-text: var(--cfl-customer-text, var(--cfl-text, #172033));
  --cfl-s5-muted: var(--cfl-customer-muted, var(--cfl-muted, #64748b));
  --cfl-s5-border: var(--cfl-customer-border, var(--cfl-border, #d8e0ea));
  --cfl-s5-primary: var(--cfl-brand-primary, var(--cfl-primary, #f45a1f));
  --cfl-s5-on-primary: var(--cfl-brand-button-text, #fff);
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  color: var(--cfl-s5-text);
  background: var(--cfl-s5-surface);
  border: 1px solid var(--cfl-s5-border);
  border-radius: 16px;
  padding: clamp(18px, 2.4vw, 28px);
  margin: 0 0 24px;
}
.cfl-session5-readiness *, .cfl-session5-documents *, .cfl-session5-handoff * { box-sizing: border-box; min-width: 0; }
.cfl-session5-readiness.is-blocked { border-left: 5px solid #b42318; background: color-mix(in srgb, #b42318 5%, var(--cfl-s5-surface)); }
.cfl-session5-readiness.is-ready { border-left: 5px solid #15803d; }
.cfl-session5-eyebrow { display:block; margin:0 0 5px; color:var(--cfl-s5-muted); font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.cfl-session5-readiness h2, .cfl-session5-documents h2, .cfl-session5-handoff h2 { color:var(--cfl-s5-text); margin:0 0 8px; font-size:clamp(1.25rem,2vw,1.75rem); line-height:1.15; }
.cfl-session5-readiness p, .cfl-session5-documents p, .cfl-session5-handoff p { color:var(--cfl-s5-muted); margin:0; line-height:1.55; }
.cfl-session5-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.cfl-session5-actions .button,
.cfl-session5-handoff .button,
.cfl-session5-order-pay-documents .button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; }
.cfl-session5-actions .button.alt, .cfl-session5-handoff .button.alt { background:var(--cfl-s5-primary)!important; color:var(--cfl-s5-on-primary)!important; border-color:var(--cfl-s5-primary)!important; }
.cfl-session5-actions .cfl-secondary { background:var(--cfl-s5-surface)!important; color:var(--cfl-s5-text)!important; border:1px solid var(--cfl-s5-border)!important; }
.cfl-session5-documents header { margin-bottom:18px; }
.cfl-session5-document { display:grid; gap:12px; padding:16px; background:var(--cfl-s5-surface-2); border:1px solid var(--cfl-s5-border); border-radius:12px; margin-top:12px; }
.cfl-session5-document details { width:100%; }
.cfl-session5-document summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--cfl-s5-text); }
.cfl-session5-document summary::-webkit-details-marker { display:none; }
.cfl-session5-document summary span:first-child { display:grid; gap:3px; }
.cfl-session5-document summary small { color:var(--cfl-s5-muted); font-weight:500; }
.cfl-session5-document-body { max-height:360px; overflow:auto; margin-top:14px; padding:16px; border-radius:10px; background:var(--cfl-s5-surface); color:var(--cfl-s5-text); border:1px solid var(--cfl-s5-border); line-height:1.55; overflow-wrap:anywhere; }
.cfl-session5-consent { display:flex!important; align-items:flex-start; gap:10px; font-weight:700; color:var(--cfl-s5-text); }
.cfl-session5-consent input { flex:0 0 auto; width:20px!important; height:20px!important; margin:2px 0 0!important; }
.cfl-session5-legal-name { display:grid!important; gap:7px; margin-top:18px; color:var(--cfl-s5-text); font-weight:700; }
.cfl-session5-legal-name input { width:100%!important; min-height:46px; color:var(--cfl-s5-text)!important; background:var(--cfl-s5-surface)!important; border:1px solid var(--cfl-s5-border)!important; border-radius:10px!important; }
.cfl-session5-legal-name small { color:var(--cfl-s5-muted); font-weight:500; }
.cfl-session5-disabled-order { width:100%; opacity:.7; cursor:not-allowed; }
.cfl-session5-order-pay-documents { display:block!important; }
.cfl-session5-order-pay-documents p { margin:.5em 0 0; }
.cfl-session5-handoff { margin-top:24px; }
.cfl-session5-block-guard { margin:20px auto; max-width:1180px; }
.cfl-session5-readiness :focus-visible,
.cfl-session5-documents :focus-visible,
.cfl-session5-handoff :focus-visible { outline:3px solid color-mix(in srgb,var(--cfl-s5-primary) 75%,#fff); outline-offset:3px; }
@media (max-width: 640px) {
  .cfl-session5-readiness, .cfl-session5-documents, .cfl-session5-handoff { border-radius:13px; padding:17px; }
  .cfl-session5-actions { display:grid; grid-template-columns:1fr; }
  .cfl-session5-actions .button { width:100%; }
  .cfl-session5-document summary { align-items:flex-start; }
  .cfl-session5-document-body { max-height:300px; padding:13px; }
}
@media (prefers-reduced-motion: reduce) {
  .cfl-session5-readiness *, .cfl-session5-documents *, .cfl-session5-handoff * { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
/* Public rental date controls: keep third-party Bookings fields usable on touch devices. */
.single-product form.cart .sibooking-datecontainer input,
.single-product form.cart input[id^="timepicker"] {
  min-height: 44px;
  max-width: 100%;
}
.single-product form.cart .cfl-rental-date-guidance {
  margin: 12px 0;
  padding: 12px 14px;
  color: var(--cfl-customer-text, #172033);
  background: var(--cfl-customer-surface-secondary, #f6f8fb);
  border-left: 4px solid var(--cfl-brand-primary, #f45a1f);
  border-radius: 4px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.single-product form.cart .cfl-rental-date-guidance[data-cfl-date-state="invalid"] {
  color: #8a1c13;
  background: #fff4f2;
  border-left-color: #b42318;
}
.single-product form.cart .sibooking-datecontainer input:focus-visible {
  outline: 3px solid var(--cfl-brand-primary, #f45a1f);
  outline-offset: 3px;
}

/* S15 native checkout signature evidence. */
.cfl-session5-signature-pad{display:grid;gap:9px;min-width:0;margin:14px 0}.cfl-session5-signature-pad canvas{display:block;width:100%;max-width:760px;height:190px;border:2px solid var(--cfl-border,#b8c3cf);border-radius:9px;background:#fff;cursor:crosshair;touch-action:none;box-sizing:border-box}.cfl-session5-signature-pad canvas:focus{outline:3px solid rgba(34,113,177,.28);outline-offset:2px}.cfl-session5-signature-pad .button{justify-self:start}.cfl-session5-signature-pad small{max-width:760px}@media(max-width:600px){.cfl-session5-signature-pad canvas{height:170px}.cfl-session5-signature-pad .button{width:100%}}
