/* v2.9.48 — Dr. Benejam booking form (Elementor): language switch, month calendar, automatic text contrast */
.gb-form{--gb-ink:#14213D;--gb-blue:#1E40AF;--gb-blue-2:#DBEAFE;--gb-soft:#F1F5F9;--gb-line:#CBD5E1;--gb-muted:#64748B}
/* text that sits directly on the section background: dark on light backgrounds, white on dark ones */
.gb-form.gb-light .elementor-field-label,.gb-form.gb-light .elementor-field-option label,.gb-form.gb-light .gb-langlbl,.gb-form.gb-light .gb-err{color:var(--gb-ink)!important}
.gb-form.gb-dark .elementor-field-label,.gb-form.gb-dark .elementor-field-option label,.gb-form.gb-dark .gb-langlbl{color:#fff!important}
.gb-form.gb-dark .gb-err{color:#FECACA!important}
.gb-form .elementor-field-textual,.gb-form select.elementor-field{color:#111827!important;background-color:#fff!important}
/* a photo behind the form → the form sits on a white panel so every label is readable */
.gb-form.gb-panel{background:rgba(255,255,255,.95);border-radius:16px;padding:18px 10px 10px;box-shadow:0 8px 30px rgba(15,23,42,.18)}
/* honeypot */
.gb-form .gb-hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
/* language switch */
.gb-langbar{width:100%;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:0 calc(var(--column-gap,10px)/2)}
.gb-langlbl{font-size:14px;font-weight:700;margin-right:4px}
.gb-form .gb-lb{all:unset;box-sizing:border-box!important;cursor:pointer!important;padding:8px 18px!important;border-radius:999px!important;background:#fff!important;color:var(--gb-ink)!important;
  border:2px solid var(--gb-line)!important;font:700 15px/1.2 inherit!important;font-family:inherit!important;transition:background .15s,border-color .15s}
.gb-form .gb-lb:hover{border-color:var(--gb-blue)!important}
.gb-form .gb-lb.on{background:var(--gb-blue)!important;border-color:var(--gb-blue)!important;color:#fff!important}
.gb-form .gb-lb:focus-visible{outline:3px solid #93C5FD!important;outline-offset:2px}
/* notes */
.gb-slots{width:100%}
.gb-note,.gb-warn{border-radius:12px;padding:12px 14px;margin:0 0 10px;font-size:15px;line-height:1.45;font-weight:600}
.gb-note{background:#ECFDF5;color:#065F46;border:1px solid #A7F3D0}
.gb-warn{background:#FEF3C7;color:#92400E;border:1px solid #FCD34D}
/* calendar card — always a white surface, readable on any section background */
.gb-card{background:#fff;color:var(--gb-ink);border-radius:16px;padding:16px;margin:4px 0 12px;box-shadow:0 6px 24px rgba(15,23,42,.14);border:1px solid #E2E8F0}
.gb-msg{font-size:15px;font-weight:600;color:var(--gb-ink);margin:0 0 8px}
.gb-msg:empty{display:none}
.gb-calh{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px}
.gb-calt{font-size:18px;font-weight:800;color:var(--gb-ink);text-align:center;flex:1}
.gb-form .gb-nav{all:unset;box-sizing:border-box!important;cursor:pointer!important;width:40px!important;height:40px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;
  font:700 24px/1 inherit!important;color:var(--gb-ink)!important;background:var(--gb-soft)!important}
.gb-form .gb-nav:hover{background:var(--gb-blue-2)!important}
.gb-form .gb-nav:disabled{opacity:.3!important;cursor:default!important}
.gb-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.gb-wd{text-align:center;font-size:12px;font-weight:800;color:var(--gb-muted);text-transform:uppercase;padding:2px 0 4px}
.gb-blank,.gb-dx{aspect-ratio:1/1}
.gb-dx{display:flex;align-items:center;justify-content:center;font-size:15px;color:#CBD5E1}
.gb-form .gb-d{all:unset;box-sizing:border-box!important;cursor:pointer!important;aspect-ratio:1/1;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:12px!important;
  font:800 16px/1 inherit!important;font-family:inherit!important;color:var(--gb-blue)!important;background:var(--gb-blue-2)!important;transition:transform .1s,background .15s}
.gb-form .gb-d:hover{transform:translateY(-1px);background:#BFDBFE!important}
.gb-form .gb-d.on{background:var(--gb-blue)!important;color:#fff!important}
.gb-form .gb-d:focus-visible,.gb-form .gb-time:focus-visible{outline:3px solid #93C5FD!important;outline-offset:2px}
.gb-tl{margin:16px 0 8px;font-size:15px;font-weight:800;color:var(--gb-ink)}
.gb-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.gb-form .gb-time{all:unset;box-sizing:border-box!important;cursor:pointer!important;text-align:center!important;padding:12px 8px!important;border-radius:10px!important;border:2px solid var(--gb-line)!important;
  background:#fff!important;color:var(--gb-ink)!important;font:800 15px/1.1 inherit!important;font-family:inherit!important}
.gb-form .gb-time:hover{border-color:var(--gb-blue)!important}
.gb-form .gb-time.on{background:var(--gb-blue)!important;border-color:var(--gb-blue)!important;color:#fff!important}
.gb-picked{margin:14px 0 0;padding:10px 12px;border-radius:10px;background:#EFF6FF;color:var(--gb-blue);font-size:15px;font-weight:800}
.gb-picked:empty{display:none}
.gb-tz{margin:12px 0 0;font-size:13px;color:var(--gb-muted);line-height:1.4}
.gb-err{width:100%;font-weight:800;font-size:15px;margin:4px 0 8px;padding:0 calc(var(--column-gap,10px)/2)}
.gb-err:empty{display:none}
@media (max-width:480px){.gb-card{padding:12px;border-radius:14px}.gb-grid{gap:4px}.gb-form .gb-d{font-size:15px!important;border-radius:10px!important}.gb-times{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.gb-calt{font-size:16px}}
