/* ==========================================================================
   Viking Booking – Consolidated Stylesheet
   ========================================================================== */

/* ---------- Vars ---------- */
:root{
  --vb-blue:#2271b1;
  --vb-blue-dark:#1b5a8d;
  --vb-blue-soft:rgba(34,113,177,.14);
  --vb-border:#e2e8f0;
  --vb-border-2:#e9e9e9;
  --vb-bg:#f8fafc;
  --vb-text:#0f172a;
  --vb-text-muted:#64748b;
  --vb-surface:#ffffff;
  --vb-surface-muted:#f1f5f9;
  --vb-radius-sm:10px;
  --vb-radius-md:14px;
  --vb-radius-lg:22px;
  --vb-shadow-sm:0 1px 2px rgba(15,23,42,.05);
  --vb-shadow-md:0 4px 16px rgba(15,23,42,.07);
  --vb-shadow-lg:0 16px 48px rgba(15,23,42,.1);
  --vb-ease:cubic-bezier(0.25,0.46,0.45,0.94);
  /* Mobilt tangentbord (sätts via JS + visualViewport) */
  --vb-keyboard-gap:0px;
}

/* ---------- Grundlayout / Cards ---------- */
#viking-booking-root,
#viking-extras-root,
#viking-party-root,
#viking-wizard-root{
  margin:0 auto;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  color:var(--vb-text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
#viking-booking-root{ max-width:720px; }
.vb-card{
  background:var(--vb-surface);
  border-radius:var(--vb-radius-lg);
  padding:clamp(20px,4vw,28px);
  box-shadow:var(--vb-shadow-md);
  border:1px solid var(--vb-border);
  margin:clamp(20px,4vw,32px) auto;
}
.vb-title{
  font-size:clamp(1.25rem,2.4vw,1.5rem);
  font-weight:700;
  margin-bottom:16px;
  letter-spacing:-0.02em;
  color:var(--vb-text);
}

/* ---------- Formelement ---------- */
.vb-label{display:block;font-weight:600;margin:14px 0 8px;font-size:15px;color:var(--vb-text);}
.vb-input{
  width:100%!important;
  border:1px solid #cbd5e1!important;
  border-radius:var(--vb-radius-sm)!important;
  padding:12px 14px!important;
  font-size:15px!important;
  background:var(--vb-surface-muted)!important;
  transition:border-color .2s var(--vb-ease),background .2s var(--vb-ease),box-shadow .2s var(--vb-ease)!important;
  color:var(--vb-text)!important;
  font-family:inherit!important;
  line-height:1.45!important;
  box-shadow:var(--vb-shadow-sm);
}
.vb-input:hover{background:var(--vb-surface)!important;border-color:#94a3b8!important;}
.vb-input:focus{
  border-color:var(--vb-blue)!important;
  background:var(--vb-surface)!important;
  box-shadow:0 0 0 3px var(--vb-blue-soft)!important;
  outline:none!important;
}
.vb-input::placeholder{color:#94a3b8!important;}

@media (max-width:600px){
  .vb-input{font-size:17px!important;} /* iOS zoom fix */
}

/* ---------- Grid ---------- */
.vb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.vb-grid-half{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;}
@media (max-width:600px){.vb-grid-half{grid-template-columns:1fr;}}

/* ---------- Fieldset / Etiketter ---------- */
.vb-fieldset{
  margin-top:18px;
  border:1px solid var(--vb-border);
  border-radius:var(--vb-radius-md);
  padding:20px 18px;
  background:linear-gradient(180deg,#fff 0%,var(--vb-surface-muted) 100%);
  box-shadow:var(--vb-shadow-sm);
  color:var(--vb-text);
}
.vb-fieldset legend{
  font-weight:600;
  color:var(--vb-text);
  font-size:15px;
  padding:0 10px;
  display:flex;
  align-items:center;
  gap:10px;
}
.vb-sublabel{display:block;margin-bottom:6px;font-weight:500;color:var(--vb-text-muted);font-size:14px;}
.vb-player-row{margin:12px 0 10px;}

/* ---------- Knappar ---------- */
.vb-btn,.vb-btn-option,.vb-btn-secondary{
  border:none;
  border-radius:var(--vb-radius-sm);
  font-weight:600;
  font-size:15px;
  cursor:pointer;
  transition:background .2s var(--vb-ease),transform .15s var(--vb-ease),box-shadow .2s var(--vb-ease);
}
.vb-btn{
  background:linear-gradient(180deg,#2a7fc4 0%,var(--vb-blue) 100%);
  color:#fff;
  padding:12px 20px;
  min-height:44px;
  box-shadow:0 2px 8px rgba(34,113,177,.28);
}
.vb-btn:hover,.vb-btn:focus{background:var(--vb-blue-dark)!important;box-shadow:0 3px 12px rgba(34,113,177,.32);}
.vb-btn:active{transform:scale(0.98);}
.vb-btn-secondary{
  background:var(--vb-surface-muted)!important;
  color:var(--vb-text)!important;
  padding:12px 20px;
  min-height:44px;
  border:1px solid var(--vb-border)!important;
  box-shadow:var(--vb-shadow-sm);
  appearance:none;
  -webkit-appearance:none;
  font-family:inherit;
}
.vb-btn-secondary:hover{
  background:#e2e8f0!important;
  border-color:#cbd5e1!important;
  color:var(--vb-text)!important;
}
.vb-btn-secondary:active{
  background:#e2e8f0!important;
  color:var(--vb-text)!important;
}
.vb-btn-secondary:focus,
.vb-btn-secondary:focus-visible{
  outline:none!important;
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-blue)!important;
  box-shadow:0 0 0 3px var(--vb-blue-soft)!important;
}
.vb-btn-option{
  border:1px solid #cbd5e1;
  background:var(--vb-surface);
  color:var(--vb-text);
  padding:8px 14px;
  margin:5px;
  border-radius:999px;
  box-shadow:var(--vb-shadow-sm);
}
.vb-btn-option:hover{background:#f1f5f9;border-color:var(--vb-blue);color:var(--vb-blue-dark);}
.vb-btn-option.active{background:var(--vb-blue);color:#fff;border-color:var(--vb-blue-dark);box-shadow:0 2px 8px rgba(34,113,177,.25);}
.vb-btn-option:disabled{cursor:not-allowed;opacity:.45;}
.vb-btn-option:focus,.vb-btn-option:focus-visible{outline:none!important;box-shadow:0 0 0 3px var(--vb-blue-soft)!important;border-color:var(--vb-blue);background:var(--vb-surface-muted)!important;color:var(--vb-text)!important;}
.vb-btn-option.active:focus,.vb-btn-option.active:focus-visible{box-shadow:0 0 0 3px var(--vb-blue-soft),0 2px 8px rgba(34,113,177,.25)!important;background:var(--vb-blue)!important;color:#fff!important;}
.vb-btn-option:hover{background:#f1f5f9!important;border-color:var(--vb-blue);color:var(--vb-blue-dark)!important;}
.vb-btn-option:active{background:#f1f5f9!important;color:var(--vb-blue-dark)!important;}
.vb-btn-option.active,.vb-btn-option.active:hover,.vb-btn-option.active:active{background:var(--vb-blue)!important;color:#fff!important;border-color:var(--vb-blue-dark)!important;box-shadow:0 2px 8px rgba(34,113,177,.25);}
/* Focus harmoniserad */
.vb-btn:focus,.vb-btn:focus-visible{outline:none!important;box-shadow:0 0 0 3px var(--vb-blue-soft)!important;}
.vb-btn:focus:not(:focus-visible){outline:none!important;box-shadow:0 2px 8px rgba(34,113,177,.28);}
.vb-btn-secondary:focus:not(:focus-visible){
  outline:none!important;
  background:var(--vb-surface-muted)!important;
  color:var(--vb-text)!important;
  box-shadow:var(--vb-shadow-sm)!important;
}

/* ---------- Lediga tider ---------- */
.vb-time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-top:10px;animation:vbFadeInGrid .35s var(--vb-ease);}
.vb-time-card{
  border:1px solid transparent;
  border-radius:var(--vb-radius-sm);
  text-align:center;
  padding:10px 8px;
  font-size:.85rem;
  cursor:pointer;
  transition:transform .18s var(--vb-ease),box-shadow .18s var(--vb-ease),border-color .18s var(--vb-ease);
  font-weight:600;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  line-height:1.35;
  min-height:64px;
  box-shadow:var(--vb-shadow-sm);
}
.vb-time-card:hover:not(.gray){transform:translateY(-2px);box-shadow:var(--vb-shadow-md);}
.vb-time-slot{font-weight:700;font-size:14px;letter-spacing:-0.01em;}
.vb-time-price{font-size:12px;opacity:.88;margin-top:3px;font-weight:500;}
.vb-time-card.green{background:linear-gradient(165deg,#ecfdf5 0%,#d1fae5 100%);border-color:#6ee7b7;color:#14532d;}
.vb-time-card.yellow{background:linear-gradient(165deg,#fffbeb 0%,#fef3c7 100%);border-color:#fcd34d;color:#78350f;}
.vb-time-card.orange{background:linear-gradient(165deg,#fff7ed 0%,#ffedd5 100%);border-color:#fb923c;color:#9a3412;}
.vb-time-card.gray{background:#f1f5f9;border-color:#e2e8f0;color:#94a3b8;box-shadow:none;cursor:not-allowed;}
.vb-time-card.selected{background:linear-gradient(165deg,#2a7fc4 0%,var(--vb-blue) 100%)!important;color:#fff!important;border-color:var(--vb-blue-dark)!important;box-shadow:0 4px 16px rgba(34,113,177,.35)!important;transform:scale(1.02);}
.vb-time-card:focus,.vb-time-card:focus-visible{outline:none!important;box-shadow:0 0 0 3px var(--vb-blue-soft)!important;}
.vb-time-card.selected:focus,.vb-time-card.selected:focus-visible{box-shadow:0 0 0 3px var(--vb-blue-soft),0 4px 16px rgba(34,113,177,.35)!important;}
.vb-dot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:4px;vertical-align:-webkit-baseline-middle!important;}
.vb-dot.green{background:#4caf50;} .vb-dot.yellow{background:#ffcc00;} .vb-dot.orange{background:#ff884d;}
.vb-sep{opacity:.5;}
.vb-slot-warning{top:6px;right:8px;color:#ff884d;font-size:0;opacity:.9;}

/* ---------- Sammanfattning ---------- */
.vb-summary{
  background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);
  border:1px solid var(--vb-border);
  border-radius:var(--vb-radius-md);
  padding:14px 16px;
  margin-top:14px;
  box-shadow:var(--vb-shadow-sm);
}
.vb-summary h4{margin:0 0 6px;font-size:16px;font-weight:700;letter-spacing:-0.02em;color:var(--vb-text);}

/* ---------- Legend ---------- */
.vb-legend{display:flex;justify-content:flex-start;align-items:center;gap:18px;margin-top:10px;font-size:14px;color:#333;flex-wrap:wrap;}
.vb-legend-item{display:flex;align-items:center;gap:6px;white-space:nowrap;flex:0 1 auto;}
@media (max-width:600px){
  .vb-legend{justify-content:left;gap:10px 16px;font-size:13px;}
  .vb-legend-item{flex:0 1 100%;justify-content:left;}
}

/* ---------- “Inga tider” ---------- */
@keyframes vbFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes vbFadeInGrid{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
.vb-empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:2rem 1.25rem;
  border-radius:var(--vb-radius-md);
  background:var(--vb-surface-muted);
  border:1px dashed #cbd5e1;
  margin:.5rem 0 1rem;
  animation:vbFadeIn .4s var(--vb-ease);
}
.vb-no-slots{font-size:1.1rem;font-weight:600;color:var(--vb-text-muted);margin-bottom:.75rem;}
.vb-empty .vb-btn-secondary{background:var(--vb-surface);border:1px solid var(--vb-border);color:var(--vb-text);padding:.65rem 1.15rem;border-radius:var(--vb-radius-sm);cursor:pointer;transition:.2s var(--vb-ease);box-shadow:var(--vb-shadow-sm);}
.vb-empty .vb-btn-secondary:hover{background:#f1f5f9;}

/* ---------- Skeleton Loader ---------- */
@keyframes vbShimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
.vb-time-grid.loading{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.6rem;margin:1rem 0;animation:vbFadeInGrid .3s ease-in-out;}
.vb-skeleton{height:64px;border-radius:var(--vb-radius-sm);background-color:#e2e8f0;background-image:linear-gradient(90deg,#e2e8f0,#f1f5f9,#e2e8f0);background-size:200px 100%;background-repeat:no-repeat;animation:vbShimmer 1.3s infinite linear;box-shadow:var(--vb-shadow-sm);opacity:.85;}

/* ---------- Modal ---------- */
.vb-modal{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.48);
  backdrop-filter:saturate(1.1) blur(6px);
  -webkit-backdrop-filter:saturate(1.1) blur(6px);
  display:flex;
  justify-content:center;
  align-items:center;
  z-index:1000;
  padding:16px;
  overflow:hidden;
}
.vb-modal-content{
  background:var(--vb-surface);
  border-radius:var(--vb-radius-lg);
  width:100%;
  max-width:600px;
  max-height:90vh;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  box-shadow:var(--vb-shadow-lg);
  border:1px solid rgba(255,255,255,.65);
  display:flex;
  flex-direction:column;
  padding:clamp(20px,3vw,28px);
}
.vb-modal-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px;}
@media (min-width:1400px){.vb-modal-content{max-width:720px;}}
.vb-modal-content h3{font-size:clamp(1.1rem,2.2vw,1.35rem);font-weight:700;margin:0 0 4px;letter-spacing:-0.02em;color:var(--vb-text);}
@media (max-width:768px){
  .vb-modal{align-items:stretch;padding:0;}
  /* dvh = synlig höjd på mobil (undviker att knapprad hamnar under browser-chrome) */
  .vb-modal-content{
    border-radius:0;
    width:100%;
    min-height:100vh;
    min-height:100dvh;
    max-height:100vh;
    max-height:100dvh;
    padding:20px 16px;
    padding-bottom:calc(28px + 120px + env(safe-area-inset-bottom,0px) + var(--vb-keyboard-gap,0px));
    box-sizing:border-box;
  }
  /* Fast bottenrad: förskjuts uppåt när tangentbord öppnas (--vb-keyboard-gap) */
  .vb-modal-actions{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    transform:translateY(calc(-1 * var(--vb-keyboard-gap,0px)));
    margin-top:0;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
    background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,#fff 55%);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-top:1px solid var(--vb-border);
    box-shadow:0 -8px 32px rgba(15,23,42,.1);
    z-index:12050;
    justify-content:space-between;
    gap:8px;
  }
}
/* Lås bakgrunds-scroll när modal är öppen */
html.vb-modal-open,body.vb-modal-open{overflow:hidden!important;touch-action:none!important;overscroll-behavior:contain!important;}

/* ---------- Overlay / Spinner ---------- */
.vb-overlay{
  position:fixed;
  inset:0;
  background:rgba(248,250,252,.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  animation:fadeIn .3s var(--vb-ease);
}
.vb-overlay-inner{text-align:center;color:var(--vb-text);font-size:16px;font-weight:600;}
.vb-spinner{
  border:3px solid var(--vb-blue-soft)!important;
  border-top-color:var(--vb-blue)!important;
  border-radius:50%!important;
  width:44px!important;
  height:44px!important;
  margin:0 auto 14px!important;
  animation:spin .85s linear infinite!important;
}
.vb-overlay-text{font-size:15px;color:var(--vb-text-muted);}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
body.vb-processing{overflow:hidden;}

/* ---------- Små UI-fixar ---------- */
.vb-actions{margin-top:22px;display:flex;justify-content:flex-start;gap:10px;flex-wrap:wrap;}
.vb-showmore{display:inline-block;margin:14px auto 0;font-size:13px;font-weight:500;padding:8px 16px;border-radius:999px;background:var(--vb-surface-muted);border:1px solid var(--vb-border);color:var(--vb-text-muted);transition:background .2s var(--vb-ease),color .2s var(--vb-ease);}
.vb-showmore:hover{color:var(--vb-text);background:#e2e8f0;}
.vb-lane-toggle:hover{color:var(--vb-blue);}
.vb-modal .vb-input.vb-input-error{border-color:#e74c3c!important;background:#fff6f6!important;}
.vb-modal .vb-input.vb-input-error::placeholder{color:#e74c3c!important;opacity:.9;}

/* ==========================================================================
   WooCommerce Checkout Overrides
   - Orderöversikt och betalsätt
   ========================================================================== */

/* Dolt Elementor-dubbelblock endast i inline-kassan (modal) — inte på /kassan/ */
.viking-inline-checkout .e-checkout__order_review{display:none!important;}

/* Dölj Woo-fakturafält bara i inline-checkout: React-formuläret ersätter dem där.
   Global döljning bröt fullständig kassa (/kassan/) och kunde ge tom vänsterkolumn + misslyckad order. */
.viking-inline-checkout .woocommerce-billing-fields{display:none!important;}
.viking-inline-checkout .woocommerce-additional-fields{display:none!important;}

/* --------- Orderöversikt (“Din beställning”) --------- */
#order_review_heading{font-size:18px;font-weight:700;margin:10px 0 12px;letter-spacing:-0.02em;color:var(--vb-text);}
#order_review{background:var(--vb-surface);border:1px solid var(--vb-border);border-radius:var(--vb-radius-md);padding:18px;box-shadow:var(--vb-shadow-sm);}
#order_review .shop_table{border:0;}
#order_review .shop_table thead th{border-bottom:1px solid #eee;text-transform:uppercase;letter-spacing:.02em;font-size:13px;padding:8px 0;}
#order_review .shop_table td,#order_review .shop_table th{border:0;padding:8px 0;}
#order_review .product-name{font-weight:600;}
#order_review .variation{margin:4px 0 0;}
#order_review .variation dt{display:none;}
#order_review .variation dd{margin:0;color:#555;white-space:pre-line;font-weight:400;}
#order_review tfoot th,#order_review tfoot td{padding:8px 0;}
#order_review .order-total th,#order_review .order-total td{border-top:1px solid #eee;padding-top:12px;font-size:16px;}
/* Radmarkering för varuraden */
#order_review .shop_table tr.cart_item td,#order_review .shop_table tr.cart_item th{background:#f6f7f9;border-radius:8px;}

/* --------- Betalsätt – fix för dubbla bakgrunder + loggor --------- */
#payment.woocommerce-checkout-payment{margin-top:16px;border-top:1px solid #eee;padding-top:16px;}
#payment .wc_payment_methods{display:flex;flex-direction:column;gap:12px;}
/* Yttre rad – ingen egen bakgrund */
#payment .wc_payment_method{background:transparent;border:0;padding:0;}
/* Labeln fungerar som “kortet” */
#payment .wc_payment_method>label{
  display:flex;align-items:center;gap:12px;font-weight:600;margin:0;padding:14px 14px;
  background:var(--vb-surface-muted);border:1px solid var(--vb-border);border-radius:var(--vb-radius-sm);
  transition:background .2s var(--vb-ease),border-color .2s var(--vb-ease);
}
#payment .wc_payment_method>label:hover{background:#e2e8f0;border-color:#cbd5e1;}
/* Begränsa alla betal-loggor */
#payment .wc_payment_method>label img,.wc_payment_methods label img{max-height:22px;width:auto;height:auto;object-fit:contain;}
/* Särskilt för Klarna-pill */
.payment_method_woocommerce_payments_klarna>label img{max-height:28px;max-width:120px;}
/* Innehållsruta för vald metod */
#payment .payment_box{display:block;margin:10px 0 0;background:var(--vb-surface);border:1px solid var(--vb-border);border-radius:var(--vb-radius-sm);padding:14px;box-shadow:var(--vb-shadow-sm);}
#payment .payment_box:before{display:none;}
/* Ta bort onödiga ramar i inre formulär */
#payment .payment_box fieldset,#payment .payment_box .wcpay-upe-form{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;}

/* Modal: säkerställ att Stripe/WooPayments-iframes och UPE får yta (overflow:hidden på .vb-modal kan annars klippa) */
.vb-modal .viking-inline-checkout #payment .payment_box{
  overflow:visible;
  min-height:7.5rem;
  position:relative;
  z-index:2;
}
.vb-modal .viking-inline-checkout #payment .payment_box iframe{
  width:100%!important;
  min-height:2.75rem;
  border:0;
  vertical-align:top;
}
/* WooPayments UPE / Stripe: tomma mount-noder innan JS — ge höjd så layout inte kollapsar */
.vb-modal .viking-inline-checkout .wcpay-upe-element,
.vb-modal .viking-inline-checkout .wc-stripe-upe-element{
  min-height:5rem;
}

/* Beställknapp (om den visas) */
#place_order.button.alt{width:100%;min-height:48px;height:auto;border-radius:var(--vb-radius-sm);font-size:16px;font-weight:600;}

/* Småfixar för layout på mobil */
.col2-set #customer_details .col-1,.col2-set #customer_details .col-2{box-sizing:border-box;}
@media (max-width:768px){.col2-set .col-1,.col2-set .col-2{width:100%;float:none;}#order_review{padding:12px;}}

/* 1) Återställ Woo-placera-order-knappen (du råkade dölja den tidigare) */
.vb-checkout-container button[name="woocommerce_checkout_place_order"],
#place_order {
  display: inline-block !important;
  width: 100%;
  min-height: 48px;
  height: auto;
  border-radius: var(--vb-radius-sm);
  font-size: 16px;
  font-weight: 600;
}

/* 2) Visa dina egna “Nästa/Gå vidare”-knappar som standard */
.vb-modal-actions .vb-btn {
  display: inline-flex !important;
}

/* 3) Men: om checkouten är inladdad i modalen → dölj den externa primärknappen
      (annars får vi två: din + Woo’s “Lägg beställning”) */
.vb-modal:has(.viking-inline-checkout) .vb-modal-actions .vb-btn {
  display: none !important;
}

/* Behåll sekundärknappen (t.ex. “Ändra tid”) även på checkout-steget */
.vb-modal-actions .vb-btn-secondary {
  display: inline-flex !important;
}

/* —— Knapp: korrekt blå färg (inte lila) —— */
#place_order.button.alt,
.woocommerce #payment #place_order,
.vb-checkout-container #place_order {
  background: linear-gradient(180deg,#2a7fc4 0%,#2271b1 100%) !important;
  border-color: #1b5a8d !important;
  color: #fff !important;
  box-shadow: 0 2px 12px rgba(34,113,177,.28) !important;
}
#place_order:hover,
#place_order:focus {
  background: #1b5a8d !important;
  box-shadow: 0 4px 16px rgba(34,113,177,.32) !important;
}

/* —— Orderrad “Produkt”: ta bort rundade hörn —— */
#order_review .shop_table tr.cart_item td,
#order_review .shop_table tr.cart_item th {
  border-radius: 0 !important;       /* inga rundningar */
}

.woocommerce-form-coupon-toggle {
    display: none !important;
}
.vb-time-chip {
  border: 1px solid var(--vb-border);
  border-radius: var(--vb-radius-sm);
  padding: 10px 14px;
  background: linear-gradient(180deg,#f0fdf4 0%,#ecfdf5 100%);
  cursor: pointer;
  transition: transform .18s var(--vb-ease), box-shadow .18s var(--vb-ease);
  box-shadow: var(--vb-shadow-sm);
  font-weight: 500;
}
.vb-time-chip:hover { background: linear-gradient(180deg,#ecfdf5 0%,#d1fae5 100%); transform: translateY(-2px); box-shadow: var(--vb-shadow-md); }
.vb-subtitle { color: var(--vb-text-muted); margin: 6px 0 12px; font-size: 15px; line-height: 1.45; }


/* Paket-grid */
#viking-party-root .vb-packages-grid{
  display:grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(260px, 1fr);
  gap:12px;
  overflow-x:auto;          /* blir horisontell scroll om de inte får plats */
  padding-bottom:6px;       /* liten luft för scrollbar */
  scroll-snap-type: x mandatory;
}
#viking-party-root .vb-packages-grid::-webkit-scrollbar{ height:8px }

#viking-party-root .vb-package{
  scroll-snap-align: start;
  display:flex; flex-direction:column; align-items:flex-start; text-align:left;
  border:1px solid var(--vb-border); background:linear-gradient(180deg,#fff 0%,var(--vb-surface-muted) 100%); color:var(--vb-text);
  padding:14px 16px; border-radius:var(--vb-radius-md); cursor:pointer;
  min-height:86px;
  box-shadow:var(--vb-shadow-sm);
  transition:transform .18s var(--vb-ease), background .18s var(--vb-ease), border-color .18s var(--vb-ease), box-shadow .18s var(--vb-ease);
}
#viking-party-root .vb-package:hover{ transform:translateY(-2px); box-shadow:var(--vb-shadow-md); }
#viking-party-root .vb-package.active{
  background:linear-gradient(165deg,#2a7fc4 0%,var(--vb-blue) 100%); color:#fff; border-color:var(--vb-blue-dark); box-shadow:0 6px 20px rgba(34,113,177,.3);
}

#viking-party-root .vb-package-title{ font-weight:700; margin-bottom:4px }
#viking-party-root .vb-package-desc{ font-size:12px; opacity:.9; margin-bottom:6px }
#viking-party-root .vb-package-price{ font-weight:700 }


/* Paket-korten: tillåt radbrytning */
#viking-party-root .vb-package,
#viking-party-root .vb-package *{
  white-space: normal !important;       /* får radbrytas */
  overflow-wrap: anywhere;              /* bryt långa ord om det behövs */
  word-break: break-word;
}


/* — tid-kort: bryt aldrig mellan tidspannet — */
.vb-time-slot { white-space: nowrap; }

/* — horisontell scroll när ytan är liten (även desktop som är inzoomad) — */
@media (max-width: 1024px){
  .vb-time-grid{
    grid-auto-flow: column;
    grid-auto-columns: 130px;   /* bredd per kort */
    overflow-x: auto;
    padding-bottom: 6px;
    scroll-snap-type: x mandatory;
  }
  .vb-time-card{ scroll-snap-align: start; }
}

/* ---------- Wizard (kombinerad bokning) ---------- */
#viking-wizard-root .vb-wizard-card,
#viking-wizard-root .vb-wizard-upsell-item,
#viking-wizard-root .vb-btn-option,
#viking-wizard-root .vb-time-card{
  /* WordPress/Woo temat färgar button:active i accent (ofta rosa) – nollställ */
  --wp--preset--color--primary:var(--vb-blue);
  --wp--preset--color--contrast:var(--vb-text);
}
.vb-wizard{ position:relative; }
.vb-wizard-kicker{
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--vb-blue);
  margin:0 0 6px;
}
.vb-wizard-progress{
  display:flex;
  gap:6px;
  margin:0 0 24px;
  padding-bottom:4px;
}
.vb-wizard-progress-seg{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  opacity:.45;
}
.vb-wizard-progress-seg.active{ opacity:1; }
.vb-wizard-progress-dot{
  display:block;
  width:100%;
  height:4px;
  border-radius:999px;
  background:var(--vb-border);
}
.vb-wizard-progress-seg.active .vb-wizard-progress-dot{ background:var(--vb-blue); }
.vb-wizard-progress-seg.current .vb-wizard-progress-dot{ box-shadow:0 0 0 2px var(--vb-blue-soft); }
.vb-wizard-progress-label{
  font-size:10px;
  font-weight:600;
  color:var(--vb-text-muted);
  text-align:center;
  line-height:1.2;
}
@media (max-width:560px){
  .vb-wizard-progress-label{ display:none; }
}
.vb-wizard-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.vb-wizard-cards-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.vb-wizard-cards-sm{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:640px){
  .vb-wizard-cards,
  .vb-wizard-cards-4{ grid-template-columns:1fr; }
}
.vb-wizard-card{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:18px 16px;
  border:2px solid var(--vb-border);
  border-radius:var(--vb-radius-md);
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  cursor:pointer;
  text-align:left;
  font-family:inherit;
  appearance:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;
  box-shadow:var(--vb-shadow-sm);
  transition:border-color .15s var(--vb-ease),box-shadow .15s var(--vb-ease),background .15s var(--vb-ease);
}
.vb-wizard-card:hover,
.vb-wizard-card:active{
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  border-color:#94a3b8;
}
.vb-wizard-card:focus,
.vb-wizard-card:focus-visible{
  outline:none!important;
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-blue)!important;
  box-shadow:0 0 0 3px var(--vb-blue-soft)!important;
}
.vb-wizard-card i{
  font-size:22px;
  color:var(--vb-blue)!important;
}
.vb-wizard-card-img{
  width:48px;
  height:48px;
  object-fit:cover;
  border-radius:10px;
  flex-shrink:0;
}
.vb-wizard-card strong{
  font-size:16px;
  color:var(--vb-text)!important;
}
.vb-wizard-card.selected,
.vb-wizard-card.selected:hover,
.vb-wizard-card.selected:active,
.vb-wizard-card.selected:focus,
.vb-wizard-card.selected:focus-visible{
  background:var(--vb-blue-soft)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-blue)!important;
  box-shadow:0 0 0 3px var(--vb-blue-soft)!important;
}
.vb-wizard-card.selected strong{
  color:var(--vb-blue-dark)!important;
}
.vb-wizard-card-price{
  font-size:13px;
  color:var(--vb-text-muted)!important;
}
.vb-wizard-card.selected .vb-wizard-card-price{
  color:var(--vb-blue-dark)!important;
  opacity:.85;
}
.vb-wizard-actions{
  display:flex;
  gap:10px;
  margin-top:24px;
  flex-wrap:wrap;
}
.vb-wizard-actions .vb-btn,
.vb-wizard-actions .vb-btn-secondary{ flex:1 1 auto; min-width:140px; }
#viking-wizard-root .vb-wizard-actions .vb-btn-secondary,
#viking-wizard-root .vb-wizard-actions .vb-btn-secondary:hover,
#viking-wizard-root .vb-wizard-actions .vb-btn-secondary:active{
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  border:1px solid var(--vb-border)!important;
}
#viking-wizard-root .vb-wizard-actions .vb-btn-secondary:hover{
  background:#f1f5f9!important;
  border-color:#cbd5e1!important;
}
#viking-wizard-root .vb-wizard-actions .vb-btn-secondary:focus,
#viking-wizard-root .vb-wizard-actions .vb-btn-secondary:focus-visible{
  background:var(--vb-surface)!important;
  color:var(--vb-blue-dark)!important;
  border-color:var(--vb-blue)!important;
  box-shadow:0 0 0 3px var(--vb-blue-soft)!important;
}
.vb-wizard-summary{
  list-style:none;
  margin:0 0 16px;
  padding:0;
  border:1px solid var(--vb-border);
  border-radius:var(--vb-radius-md);
  overflow:hidden;
}
.vb-wizard-summary li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-bottom:1px solid var(--vb-border);
}
.vb-wizard-summary li:last-child{ border-bottom:none; }
.vb-wizard-total{
  font-size:18px;
  font-weight:700;
  margin:0 0 16px;
}
.vb-wizard-upsell-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:16px;
}
.vb-wizard-upsell-group:last-child .vb-wizard-upsell-list{ margin-bottom:0; }
.vb-wizard-upsell-heading{
  margin:0 0 8px;
  font-size:15px;
  font-weight:700;
  color:var(--vb-text);
}
.vb-wizard-upsell-item{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:4px 16px;
  align-items:center;
  padding:12px 14px;
  border:2px solid var(--vb-border);
  border-radius:var(--vb-radius-sm);
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  text-align:left;
  cursor:pointer;
  font-family:inherit;
  appearance:none;
  -webkit-appearance:none;
  -webkit-tap-highlight-color:transparent;
  box-shadow:var(--vb-shadow-sm);
  transition:border-color .15s var(--vb-ease),box-shadow .15s var(--vb-ease),background .15s var(--vb-ease),transform .15s var(--vb-ease);
}
.vb-wizard-upsell-when{
  font-size:14px;
  font-weight:600;
  color:var(--vb-text-muted)!important;
}
.vb-wizard-upsell-time{
  font-size:14px;
  font-weight:600;
  color:var(--vb-text)!important;
  white-space:nowrap;
}
.vb-wizard-upsell-price{
  font-size:13px;
  font-weight:600;
  color:var(--vb-blue-dark)!important;
  white-space:nowrap;
}
.vb-wizard-upsell-item:hover,
.vb-wizard-upsell-item:active{
  background:var(--vb-surface)!important;
  border-color:#94a3b8;
}
.vb-wizard-upsell-item:focus,
.vb-wizard-upsell-item:focus-visible{
  outline:none!important;
  background:var(--vb-surface)!important;
  border-color:var(--vb-blue)!important;
  box-shadow:0 0 0 3px var(--vb-blue-soft)!important;
}
.vb-wizard-upsell-item.selected,
.vb-wizard-upsell-item.selected:hover,
.vb-wizard-upsell-item.selected:active,
.vb-wizard-upsell-item.selected:focus,
.vb-wizard-upsell-item.selected:focus-visible{
  background:linear-gradient(165deg,#2a7fc4 0%,var(--vb-blue) 100%)!important;
  border-color:var(--vb-blue-dark)!important;
  color:#fff!important;
  box-shadow:0 4px 14px rgba(34,113,177,.32)!important;
  transform:scale(1.01);
}
.vb-wizard-upsell-item.selected .vb-wizard-upsell-when,
.vb-wizard-upsell-item.selected .vb-wizard-upsell-time,
.vb-wizard-upsell-item.selected .vb-wizard-upsell-price{
  color:#fff!important;
  opacity:1;
}
.vb-wizard-upsell-item.selected .vb-wizard-upsell-when{
  opacity:.92;
}
.vb-muted{ color:var(--vb-text-muted); font-size:14px; }
.vb-btn-group-vertical{ flex-direction:column; align-items:stretch; }
.vb-btn-group-vertical .vb-btn-option{ width:100%; text-align:left; }

/* — Wizard: datumkort (steg 3) — */
#viking-wizard-root .vb-date-strip{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(72px,1fr);
  gap:10px;
  overflow-x:auto;
  padding:4px 2px 10px;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
}
#viking-wizard-root .vb-date-card{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-height:92px;
  padding:12px 8px 16px;
  border:2px solid var(--vb-border);
  border-radius:var(--vb-radius-md);
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  cursor:pointer;
  scroll-snap-align:start;
  font-family:inherit;
  appearance:none;
  -webkit-appearance:none;
  transition:border-color .15s var(--vb-ease),box-shadow .15s var(--vb-ease),background .15s var(--vb-ease);
}
#viking-wizard-root .vb-date-card:hover:not(:disabled){
  border-color:#94a3b8;
  box-shadow:var(--vb-shadow-sm);
}
#viking-wizard-root .vb-date-card.selected{
  border-color:var(--vb-blue)!important;
  background:var(--vb-blue-soft)!important;
  box-shadow:0 0 0 3px var(--vb-blue-soft)!important;
}
#viking-wizard-root .vb-date-card.disabled{
  opacity:.55;
  cursor:not-allowed;
}
#viking-wizard-root .vb-date-card__wd{
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--vb-text-muted);
}
#viking-wizard-root .vb-date-card.selected .vb-date-card__wd{ color:var(--vb-blue-dark); }
#viking-wizard-root .vb-date-card__day{
  font-size:28px;
  font-weight:800;
  line-height:1;
}
#viking-wizard-root .vb-date-card__mo{
  font-size:12px;
  color:var(--vb-text-muted);
  text-transform:lowercase;
}
#viking-wizard-root .vb-date-card__dot{
  position:absolute;
  bottom:8px;
  width:8px;
  height:8px;
  border-radius:50%;
}
#viking-wizard-root .vb-date-card__dot--open{ background:#22c55e; }
#viking-wizard-root .vb-date-card__dot--busy{ background:#f59e0b; }
#viking-wizard-root .vb-date-card__dot--full,
#viking-wizard-root .vb-date-card__dot--closed{ background:#cbd5e1; }
#viking-wizard-root .vb-date-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:4px;
  font-size:13px;
  color:var(--vb-text-muted);
}
#viking-wizard-root .vb-date-legend__item{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
#viking-wizard-root .vb-date-legend__dot{
  width:8px;
  height:8px;
  border-radius:50%;
}
#viking-wizard-root .vb-date-legend__dot--open{ background:#22c55e; }
#viking-wizard-root .vb-date-legend__dot--busy{ background:#f59e0b; }
#viking-wizard-root .vb-date-legend__dot--full{ background:#cbd5e1; }

/* — Wizard: tillägg (steg 4) — */
#viking-wizard-root .vb-addon-group{ margin-top:18px; }
#viking-wizard-root .vb-addon-group__title{
  margin:0 0 10px;
  font-size:15px;
  font-weight:700;
  color:var(--vb-text);
}
#viking-wizard-root .vb-addon-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#viking-wizard-root .vb-addon-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--vb-border);
  border-radius:var(--vb-radius-md);
  background:linear-gradient(180deg,#fff 0%,var(--vb-surface-muted) 100%);
  box-shadow:var(--vb-shadow-sm);
}
#viking-wizard-root .vb-addon-row__info{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
#viking-wizard-root .vb-addon-row__info strong{ font-size:15px; }
#viking-wizard-root .vb-addon-row__info .vb-muted{ font-size:13px; }
#viking-wizard-root .vb-addon-row__price{
  font-size:13px;
  font-weight:600;
  color:var(--vb-blue-dark);
}
#viking-wizard-root .vb-addon-qty{
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
#viking-wizard-root .vb-addon-qty__btn{
  width:36px;
  height:36px;
  border:1px solid var(--vb-border);
  border-radius:10px;
  background:var(--vb-surface)!important;
  color:var(--vb-text)!important;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
#viking-wizard-root .vb-addon-qty__btn:hover{
  border-color:var(--vb-blue);
  color:var(--vb-blue)!important;
}
#viking-wizard-root .vb-addon-qty__val{
  min-width:24px;
  text-align:center;
  font-weight:700;
  font-size:16px;
}
#viking-wizard-root .vb-addon-summary{
  margin-top:20px;
  padding:14px 16px;
  border-radius:var(--vb-radius-md);
  background:var(--vb-blue-soft);
  border:1px solid rgba(34,113,177,.15);
}
#viking-wizard-root .vb-addon-summary__list{
  margin:8px 0 0;
  padding-left:18px;
}
#viking-wizard-root .vb-addon-summary__total{
  margin:10px 0 0;
  font-weight:700;
  color:var(--vb-blue-dark);
}
@media (max-width:560px){
  #viking-wizard-root .vb-addon-row{
    flex-direction:column;
    align-items:stretch;
  }
  #viking-wizard-root .vb-addon-qty{ justify-content:flex-end; }
}
