/* Visible Restaurant Booking - frontend v1.6.6 */
:root{
  --vrbf-bg:#ffffff;
  --vrbf-ink:#111827;
  --vrbf-muted:#8a94a6;
  --vrbf-border:#d8dde6;
  --vrbf-soft:#f7f8fa;
  --vrbf-green:#cfe8cf;
  --vrbf-green-hover:#bfe0bf;
  --vrbf-blue:#2563eb;
  --vrbf-dark:#1f2024;
}
.vrb-customer-booking,
.vrb-customer-booking *{box-sizing:border-box}
.vrb-customer-booking{width:min(760px,100%);margin:34px auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--vrbf-ink);line-height:1.35}
.vrb-customer-card{background:var(--vrbf-bg);border:1px solid var(--vrbf-border);box-shadow:0 18px 45px rgba(15,23,42,.07);min-height:620px;display:flex;flex-direction:column;overflow:hidden}
.vrb-customer-head{height:52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--vrbf-border);padding:0 18px;background:#fff}
.vrb-customer-head h2{margin:0!important;font-size:21px!important;line-height:1!important;font-weight:700!important;color:var(--vrbf-ink)!important;letter-spacing:-.02em}
.vrb-flag{font-size:22px;line-height:1}
.vrb-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;text-align:center;padding:16px 24px 0;font-size:12px;color:#a4acba}
.vrb-steps div{position:relative;font-weight:500;line-height:1.2}
.vrb-steps div:before{content:"";display:block;width:21px;height:21px;margin:0 auto 5px;border-radius:50%;border:1px solid #c6cedb;background:#fff;box-shadow:inset 0 0 0 5px #fff}
.vrb-steps div:nth-child(1):before{content:"⌑";font-size:14px;line-height:19px;color:#657085}
.vrb-steps div:nth-child(2):before{content:"♙";font-size:14px;line-height:19px;color:#657085}
.vrb-steps div:nth-child(3):before{content:"▦";font-size:13px;line-height:19px;color:#657085}
.vrb-steps div:nth-child(4):before{content:"◷";font-size:14px;line-height:19px;color:#657085}
.vrb-steps div:nth-child(5):before{content:"✓";font-size:13px;line-height:19px;color:#657085}
.vrb-steps .active{color:var(--vrbf-ink);font-weight:700}
.vrb-steps .active:before{border-color:var(--vrbf-ink);background:#fff;color:var(--vrbf-ink)}
.vrb-step-panel{flex:1;padding:56px 92px 42px;text-align:center;background:#fff}
.vrb-step-panel h3{font-size:24px!important;font-weight:400!important;margin:0 0 36px!important;line-height:1.25!important;color:var(--vrbf-ink)!important}
.vrb-choice{display:block!important;text-align:left;border:1px solid var(--vrbf-border);border-radius:4px;padding:18px 20px;margin:10px auto;max-width:520px;color:var(--vrbf-ink)!important;text-decoration:none!important;font-size:18px;background:#fff;transition:.16s ease}
.vrb-choice:hover{border-color:#8ea4c8;box-shadow:0 10px 24px rgba(15,23,42,.08);transform:translateY(-1px)}
.vrb-muted{color:#64748b;margin:22px auto 0;max-width:520px;font-size:14px}
.vrb-people-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;max-width:380px;margin:0 auto 28px}.vrb-people-buttons a{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fbfbfc;color:var(--vrbf-ink)!important;text-decoration:none!important;font-size:24px;border:1px solid transparent;transition:.16s ease}.vrb-people-buttons a:hover{background:var(--vrbf-green);border-color:#b7d9b7;transform:translateY(-1px)}
.vrb-large-party{font-size:13px;color:#64748b}.vrb-large-party a{color:#0b66c3!important;text-decoration:none!important}.vrb-large-party a:hover{text-decoration:underline!important}
.vrb-cal-head{display:flex;align-items:center;justify-content:space-between;margin:0 auto 24px;max-width:460px}.vrb-cal-head h3{margin:0!important}.vrb-cal-head a{font-size:38px;text-decoration:none!important;color:var(--vrbf-ink)!important;line-height:1;padding:4px 12px}.vrb-cal-head a:hover{color:var(--vrbf-blue)!important}
.vrb-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:15px;align-items:center;max-width:460px;margin:0 auto}.vrb-calendar span{font-weight:600;color:#111827;text-transform:lowercase}.vrb-calendar a,.vrb-calendar em{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:auto;border-radius:50%;font-style:normal;text-decoration:none!important;color:#111827!important}.vrb-calendar a{border:1px solid #d1d5db;background:#fff;transition:.16s ease}.vrb-calendar a:hover{background:var(--vrbf-green);border-color:#a8d5a8;transform:translateY(-1px)}.vrb-calendar em{color:#c8ced8!important}
.vrb-time-buttons{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.vrb-time-buttons a,.vrb-time-buttons span{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none!important;font-size:16px}.vrb-time-buttons a{background:var(--vrbf-green);color:#111827!important;transition:.16s ease}.vrb-time-buttons a:hover{background:var(--vrbf-green-hover);transform:translateY(-1px)}.vrb-time-buttons span{background:#f1f5f9;color:#94a3b8;text-decoration:line-through!important}
.vrb-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:left;margin-bottom:24px}.vrb-summary span{display:block;color:#8b95a5;font-size:13px}.vrb-summary strong{display:block;margin-top:4px;color:#111827}.vrb-customer-form{text-align:left;padding-top:28px}.vrb-customer-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.vrb-customer-grid label,.vrb-customer-form label{font-size:13px;color:#687386;font-weight:500}.vrb-customer-grid input,.vrb-customer-grid textarea{width:100%;box-sizing:border-box;border:1px solid #b8c0cc;border-radius:4px;padding:10px 11px;margin-top:4px;background:#fff;color:#111827;font:inherit}.vrb-customer-grid input:focus,.vrb-customer-grid textarea:focus{outline:2px solid rgba(37,99,235,.16);border-color:#2563eb}.vrb-full{grid-column:1/-1}.vrb-addon-row{display:flex;gap:22px;margin:6px 0 20px}.vrb-addon-row label{color:#111827;font-size:14px}.vrb-addon-row input,.vrb-consent input{margin-right:7px}.vrb-consent{display:block;margin:16px 0;color:#111827!important}.vrb-book-btn{background:var(--vrbf-blue);color:#fff;border:0;border-radius:8px;padding:13px 24px;font-weight:700;cursor:pointer;font:inherit}.vrb-book-btn:hover{filter:brightness(.95)}.vrb-customer-foot{margin-top:auto;background:var(--vrbf-dark);color:#fff;padding:14px 18px;text-align:right;font-weight:700}.vrb-customer-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;padding:12px 14px;margin-bottom:12px;border-radius:8px}.vrb-customer-done{text-align:center;justify-content:center;align-items:center;min-height:260px;padding:40px}.vrb-customer-done h2{margin-top:0!important}
@media (max-width:782px){.vrb-customer-booking{width:calc(100% - 24px);margin:18px auto}.vrb-customer-card{min-height:auto}.vrb-step-panel{padding:36px 22px}.vrb-steps{padding:14px 8px 0;font-size:11px;gap:4px}.vrb-summary,.vrb-customer-grid{grid-template-columns:1fr}.vrb-calendar{gap:7px}.vrb-calendar a,.vrb-calendar em{width:42px;height:42px}.vrb-choice{font-size:16px}.vrb-customer-head{padding:0 12px}.vrb-addon-row{display:block}.vrb-addon-row label{display:block;margin:8px 0}.vrb-people-buttons{gap:16px}.vrb-people-buttons a,.vrb-time-buttons a,.vrb-time-buttons span{width:54px;height:54px}.vrb-step-panel h3{font-size:22px!important}.vrb-customer-foot{text-align:center}}
@media (max-width:480px){.vrb-steps div:before{width:18px;height:18px;font-size:11px;line-height:16px}.vrb-steps{font-size:10px}.vrb-step-panel{padding-left:14px;padding-right:14px}.vrb-calendar span{font-size:12px}.vrb-calendar{gap:4px}.vrb-calendar a,.vrb-calendar em{width:36px;height:36px}.vrb-customer-head h2{font-size:19px!important}}

.vrb-customer-head{position:relative;gap:18px;align-items:center}.vrb-customer-head span{margin-left:auto;color:#7a826d;font-size:15px}.vrb-lang-switch{display:flex;gap:7px;align-items:center;margin-left:10px}.vrb-lang-switch a{text-decoration:none;font-size:18px;line-height:1;border:0;background:transparent;padding:2px}.vrb-calendar em{pointer-events:none;opacity:.35}.vrb-large-party a[href^="tel:"]{color:#6f7d5f;text-decoration:none}.vrb-large-party a[href^="tel:"]:hover{text-decoration:underline}@media(max-width:640px){.vrb-customer-head{flex-wrap:wrap}.vrb-customer-head span{margin-left:0}.vrb-lang-switch{margin-left:0;width:100%;justify-content:flex-end}.vrb-steps{grid-template-columns:repeat(5,1fr);gap:4px}.vrb-calendar{gap:8px}.vrb-calendar a,.vrb-calendar em{width:42px;height:42px}.vrb-customer-card{max-width:100%;border-left:0;border-right:0}.vrb-customer-booking{padding:0}}

/* v1.6.4: sikre klik på frontend-navigation */
.vrb-customer-booking a,
.vrb-customer-booking button{
  position: relative;
  z-index: 5;
  pointer-events: auto !important;
  cursor: pointer;
}
.vrb-calendar,
.vrb-lang-switch,
.vrb-time-buttons,
.vrb-people-buttons{
  position: relative;
  z-index: 4;
}


/* v1.6.5: Step 5 hardening against theme CSS overlays */
.vrb-customer-booking .vrb-customer-form{
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  overflow: visible !important;
}
.vrb-customer-booking .vrb-customer-form > input[type="hidden"]{
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  position: absolute !important;
  left: -9999px !important;
}
.vrb-customer-booking .vrb-customer-form .vrb-summary{
  position: static !important;
  inset: auto !important;
  float: none !important;
  clear: both !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 14px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 22px 0 !important;
  padding: 14px 16px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  transform: none !important;
  z-index: 1 !important;
  pointer-events: none !important;
}
.vrb-customer-booking .vrb-customer-form .vrb-summary div,
.vrb-customer-booking .vrb-customer-form .vrb-summary span,
.vrb-customer-booking .vrb-customer-form .vrb-summary strong{
  position: static !important;
  float: none !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  white-space: normal !important;
  word-break: normal !important;
  line-height: 1.35 !important;
  text-align: left !important;
}
.vrb-customer-booking .vrb-customer-form .vrb-summary span{
  margin-bottom: 4px !important;
  color: #8b95a5 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}
.vrb-customer-booking .vrb-customer-form .vrb-summary strong{
  color: #111827 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}
.vrb-customer-booking .vrb-customer-form .vrb-customer-grid,
.vrb-customer-booking .vrb-customer-form .vrb-addon-row,
.vrb-customer-booking .vrb-customer-form .vrb-consent,
.vrb-customer-booking .vrb-customer-form .vrb-book-btn{
  position: relative !important;
  z-index: 20 !important;
}
.vrb-customer-booking .vrb-customer-form input:not([type="hidden"]),
.vrb-customer-booking .vrb-customer-form textarea,
.vrb-customer-booking .vrb-customer-form select,
.vrb-customer-booking .vrb-customer-form button{
  position: relative !important;
  z-index: 30 !important;
  pointer-events: auto !important;
  user-select: text !important;
}
.vrb-customer-booking .vrb-customer-grid label{
  display: block !important;
  position: relative !important;
  z-index: 20 !important;
}
@media (max-width:782px){
  .vrb-customer-booking .vrb-customer-form .vrb-summary{
    grid-template-columns: 1fr !important;
  }
}


/* v1.6.6: stabil kalender-layout og undgå tema-overlap */
.vrb-customer-booking .vrb-calendar{
  display:grid !important;
  grid-template-columns:repeat(7, minmax(44px, 1fr)) !important;
  gap:12px !important;
  align-items:center !important;
  justify-items:center !important;
  max-width:500px !important;
  width:100% !important;
  margin:0 auto !important;
  overflow:visible !important;
}
.vrb-customer-booking .vrb-calendar > *{
  position:static !important;
  float:none !important;
  clear:none !important;
  inset:auto !important;
  transform:none !important;
  writing-mode:horizontal-tb !important;
  text-orientation:mixed !important;
  white-space:nowrap !important;
  word-break:normal !important;
  overflow:visible !important;
  text-indent:0 !important;
  letter-spacing:normal !important;
  line-height:1 !important;
}
.vrb-customer-booking .vrb-calendar .vrb-weekday{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:24px !important;
  margin:0 0 4px 0 !important;
  padding:0 !important;
  color:#111827 !important;
  font-size:13px !important;
  font-weight:700 !important;
  text-transform:none !important;
  opacity:1 !important;
}
.vrb-customer-booking .vrb-calendar .vrb-empty{
  display:block !important;
  width:56px !important;
  height:56px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.vrb-customer-booking .vrb-calendar a.vrb-day,
.vrb-customer-booking .vrb-calendar span.vrb-day-disabled{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:56px !important;
  height:56px !important;
  min-width:56px !important;
  min-height:56px !important;
  max-width:56px !important;
  max-height:56px !important;
  margin:0 !important;
  padding:0 !important;
  border-radius:999px !important;
  font-style:normal !important;
  font-size:16px !important;
  font-weight:400 !important;
  text-align:center !important;
  text-decoration:none !important;
}
.vrb-customer-booking .vrb-calendar span.vrb-day-disabled{
  color:#d9dee7 !important;
  background:transparent !important;
  border:1px solid transparent !important;
  pointer-events:none !important;
  opacity:1 !important;
}
.vrb-customer-booking .vrb-calendar a.vrb-day{
  color:#111827 !important;
  background:#fff !important;
  border:1px solid #d1d5db !important;
}
.vrb-customer-booking .vrb-calendar a.vrb-day:hover{
  background:var(--vrbf-green) !important;
  border-color:#a8d5a8 !important;
  transform:translateY(-1px) !important;
}
.vrb-customer-booking .vrb-cal-head{
  margin-bottom:22px !important;
}
@media(max-width:782px){
  .vrb-customer-booking .vrb-calendar{grid-template-columns:repeat(7, minmax(34px, 1fr)) !important;gap:7px !important;}
  .vrb-customer-booking .vrb-calendar .vrb-empty,
  .vrb-customer-booking .vrb-calendar a.vrb-day,
  .vrb-customer-booking .vrb-calendar span.vrb-day-disabled{width:42px !important;height:42px !important;min-width:42px !important;min-height:42px !important;max-width:42px !important;max-height:42px !important;font-size:14px !important;}
}
@media(max-width:480px){
  .vrb-customer-booking .vrb-calendar{gap:4px !important;}
  .vrb-customer-booking .vrb-calendar .vrb-empty,
  .vrb-customer-booking .vrb-calendar a.vrb-day,
  .vrb-customer-booking .vrb-calendar span.vrb-day-disabled{width:36px !important;height:36px !important;min-width:36px !important;min-height:36px !important;max-width:36px !important;max-height:36px !important;font-size:13px !important;}
  .vrb-customer-booking .vrb-calendar .vrb-weekday{font-size:11px !important;}
}

.vrb-customer-booking .vrb-calendar .vrb-day-disabled::before,
.vrb-customer-booking .vrb-calendar .vrb-day-disabled::after{content:none !important;display:none !important;}
.vrb-customer-booking .vrb-calendar .vrb-day-disabled{font-family:inherit !important;line-height:1 !important;}


.vrb-opening-hours-table{width:100%;max-width:560px;border-collapse:collapse;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;background:#fff;font-size:15px}
.vrb-opening-hours-table th,.vrb-opening-hours-table td{padding:9px 12px;border-bottom:1px solid #eef2f7;vertical-align:top;line-height:1.35}
.vrb-opening-hours-table tr:last-child th,.vrb-opening-hours-table tr:last-child td{border-bottom:0}
.vrb-opening-hours-table th{width:125px;text-align:left;font-weight:700;color:#111827;white-space:nowrap;background:#f8fafc}
.vrb-opening-hours-table td{color:#334155}
.vrb-opening-hours-empty{color:#64748b}
@media(max-width:480px){.vrb-opening-hours-table th{width:95px}.vrb-opening-hours-table th,.vrb-opening-hours-table td{padding:8px 9px;font-size:14px}}

/* Version 1.7.4 - ekstra frontend responsivitet */
.vrb-customer-booking,
.vrb-customer-booking * {
    box-sizing: border-box;
}
.vrb-customer-booking {
    max-width: 100%;
}
.vrb-customer-card {
    max-width: 100%;
    overflow: hidden;
}
@media (max-width: 640px) {
    .vrb-customer-booking {
        width: 100% !important;
        margin: 12px auto !important;
    }
    .vrb-customer-head {
        flex-wrap: wrap;
        gap: 8px;
        height: auto;
        min-height: 76px;
        padding: 12px 14px !important;
    }
    .vrb-customer-head h2 {
        width: 100%;
        font-size: 18px !important;
    }
    .vrb-step-panel {
        padding: 28px 14px !important;
    }
    .vrb-steps {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        overflow-x: auto;
    }
    .vrb-choice {
        width: 100%;
        max-width: 100%;
    }
    .vrb-calendar {
        gap: 5px !important;
    }
    .vrb-calendar a,
    .vrb-calendar em,
    .vrb-calendar .vrb-day-disabled,
    .vrb-calendar .vrb-empty {
        width: 38px !important;
        height: 38px !important;
        min-width: 0 !important;
    }
    .vrb-customer-form button,
    .vrb-book-btn {
        width: 100%;
    }
}
@media (max-width: 380px) {
    .vrb-calendar a,
    .vrb-calendar em,
    .vrb-calendar .vrb-day-disabled,
    .vrb-calendar .vrb-empty {
        width: 34px !important;
        height: 34px !important;
        font-size: 13px;
    }
    .vrb-people-buttons a,
    .vrb-time-buttons a,
    .vrb-time-buttons span {
        width: 48px !important;
        height: 48px !important;
    }
}
