.gpeb-wrap{
  max-width: 860px;
  margin: 0 auto;
  padding: 24px 18px;
}

.gpeb-stepper{
  list-style:none;
  display:flex;
  gap:10px;
  padding:0;
  margin: 0 0 18px 0;
  flex-wrap:wrap;
}

.gpeb-stepper li{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid #d9d9d9;
  border-radius:999px;
  background:#f7f7f7;
  font-size:14px;
  line-height:1;
  user-select:none;
}

.gpeb-stepper li .n{
  display:inline-flex;
  width:22px;
  height:22px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  border:1px solid #cfcfcf;
  background:#fff;
  font-size:12px;
}

.gpeb-stepper li.is-done{
  opacity:0.7;
}

.gpeb-stepper li.is-active{
  border-color:#111;
  background:#111;
  color:#fff;
}
.gpeb-stepper li.is-active .n{
  border-color:#111;
  background:#111;
  color:#fff;
}

.gpeb-error{
  margin: 10px 0 0 0;
  padding: 10px 12px;
  border:1px solid #f0c2c2;
  background:#fff3f3;
  border-radius:8px;
  color:#7a1b1b;
  font-size:14px;
}

.gpeb-branch-list,
.gpeb-exp-list,
.gpeb-times{
  margin-top: 14px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.gpeb-branch-btn,
.gpeb-exp-btn,
.gpeb-time-btn{
  border:1px solid #cfcfcf;
  background:#fff;
  border-radius:10px;
  padding:12px 14px;
  cursor:pointer;
  transition: transform .04s ease, border-color .12s ease, background .12s ease;
  text-align:left;
}

.gpeb-branch-btn:hover,
.gpeb-exp-btn:hover,
.gpeb-time-btn:hover{
  border-color:#111;
}

.gpeb-branch-btn:active,
.gpeb-exp-btn:active,
.gpeb-time-btn:active{
  transform: translateY(1px);
}

.gpeb-branch-btn.is-selected,
.gpeb-exp-btn.is-selected,
.gpeb-time-btn.is-selected{
  border-color:#111;
  background:#111;
  color:#fff;
}

.gpeb-exp-btn{
  flex: 1 1 320px;
  min-width: 260px;
}
.gpeb-exp-btn strong{ font-size: 15px; }
.gpeb-exp-btn small{
  display:block;
  margin-top:6px;
  font-size:13px;
  opacity:.85;
  line-height:1.35;
}

.gpeb-times{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
}

.gpeb-time-btn{
  text-align:center;
  padding:12px 10px;
}

.gpeb-nav{
  margin-top:18px;
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}

/* Stack layout used on final step to keep consent directly above CTA */
.gpeb-nav.gpeb-nav--stack{ display:block; }
.gpeb-nav.gpeb-nav--stack .gpeb-nav-actions{ display:flex; gap:10px; align-items:center; justify-content:flex-end; flex-wrap:wrap; }


.gpeb-back,
.gpeb-next{
  border:1px solid #cfcfcf;
  background:#fff;
  border-radius:10px;
  padding:10px 14px;
  cursor:pointer;
}
.gpeb-next{
  border-color:#111;
  background:#111;
  color:#fff;
}
.gpeb-back[disabled],
.gpeb-next[disabled]{
  opacity:.45;
  cursor:not-allowed;
}

.gpeb-step label{
  display:block;
  margin-top:12px;
}

.gpeb-step input[type="text"],
.gpeb-step input[type="email"],
.gpeb-step input[type="tel"],
.gpeb-step input[type="number"],
.gpeb-step input[type="date"],
.gpeb-step textarea,
.gpeb-step select{
  width: 320px;
  max-width: 100%;
  border:1px solid #cfcfcf;
  border-radius:10px;
  padding:10px 12px;
  font-size:14px;
  background:#fff;
}

.gpeb-step textarea{
  min-height: 96px;
  resize: vertical;
}

.gpeb-step input:focus,
.gpeb-step textarea:focus,
.gpeb-step select:focus{
  outline: none;
  border-color:#111;
}

.gpeb-done{
  margin-top: 10px;
  padding: 12px 14px;
  border:1px solid #cfe8cf;
  background:#f3fff3;
  border-radius:10px;
}


/* Experience cards with images */
.gpeb-exp-list{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap:12px;
}
.gpeb-exp-btn{
  display:flex;
  padding:0;
  text-align:left;
  overflow:hidden;
  border-radius:12px;
}
.gpeb-exp-img{
  width:100%;
  /* Litt større og mer konsekvent bildehøyde */
  height:180px;
  background-size:cover;
  background-position:center;
  flex:0 0 auto;
  /* Kortet har overflow:hidden, så vi trenger ikke egen avrunding her */
  border-radius:0;
}
.gpeb-exp-body{
  padding:12px;
  flex:1;
}
.gpeb-exp-title{
  font-weight:700;
  margin-bottom:4px;
}
.gpeb-exp-meta{
  font-size:12px;
  opacity:.8;
  margin-bottom:8px;
}
.gpeb-exp-desc{
  font-size:13px;
  line-height:1.35;
  opacity:.9;
  max-height:5.4em;
  overflow:hidden;
}

/* Inline calendar */
.gpeb-calendar{
  max-width: 420px;
  border:1px solid #dedede;
  border-radius:12px;
  padding:12px;
}
.gpeb-cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:10px;
}
.gpeb-cal-title{
  font-weight:700;
}
.gpeb-cal-nav{
  width:26px;
  height:26px;
  border-radius:999px;
  line-height:26px;
  padding:0;
}
.gpeb-cal-dow{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap:6px;
  font-size:12px;
  opacity:.8;
  margin-bottom:6px;
  pointer-events:none;
}
.gpeb-cal-grid{
  display:grid;
  grid-template-columns: repeat(7, 1fr);
  gap:6px;
}
.gpeb-cal-pad{
  height:40px;
  pointer-events:none;
}
.gpeb-cal-day{
  height:40px;
  border-radius:10px;
  border:1px solid #cfcfcf;
  background:#fff;
}
.gpeb-cal-day:hover{ border-color:#999; }
.gpeb-cal-day.is-selected{
  background:#111;
  color:#fff;
  border-color:#111;
}
.gpeb-cal-day:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* Month decorations (notes + closed days) */
.gpeb-cal-day{ position: relative; }
.gpeb-cal-day.has-note .gpeb-cal-dot{
  position: absolute;
  left: 50%;
  bottom: 6px;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #2d7ff9;
}
.gpeb-cal-day.is-closed{
  opacity: .35;
}


/* Branch cards */
.gpeb-branch-btn{
  flex:1 1 260px;
  min-width:220px;
  padding:16px 18px;
}
.gpeb-branch-title{ font-size:18px; font-weight:700; }
.gpeb-branch-addr{ margin-top:6px; font-size:14px; opacity:.85; }
.gpeb-branch-city{ margin-top:2px; font-size:14px; opacity:.75; }

/* Pax buttons */
.gpeb-pax-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(56px, 1fr));
  gap:10px;
  max-width: 520px;
}
.gpeb-pax-btn{
  border:1px solid #cfcfcf;
  background:#fff;
  border-radius:12px;
  padding:14px 10px;
  cursor:pointer;
  font-size:16px;
  text-align:center;
  transition: transform .04s ease, border-color .12s ease, background .12s ease;
}
.gpeb-pax-btn:hover{ border-color:#111; }
.gpeb-pax-btn:active{ transform: translateY(1px); }
.gpeb-pax-btn.is-selected{ border-color:#111; background:#111; color:#fff; }
.gpeb-pax-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* Experience menu link */
.gpeb-exp-menu{
  display:inline-block;
  margin-top:10px;
  font-size:13px;
  text-decoration:underline;
  opacity:.9;
}
.gpeb-exp-btn.is-selected .gpeb-exp-menu{ color:#fff; opacity:1; }

/* Group price */
.gpeb-price{
  font-weight:600;
}


/* Experience files (menu PDFs) */
.gpeb-exp-files { margin-top: 0; display: flex; gap: 8px; flex-wrap: nowrap; align-items: center; }
/* Meny-CTA skal være stabil i høyde slik at den legger seg pent på samme linje */
.gpeb-exp-menu { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid rgba(0,0,0,.12); text-decoration: none; font-weight: 600; font-size: 13px; line-height: 1; white-space: nowrap; }
.gpeb-exp-menu:hover { text-decoration: underline; }

/* Sharing price hint */
.gpeb-price { font-weight: 700; }


/* Step: Experiences - consistent card layout */
.gpeb-exp-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; align-items: stretch; grid-auto-rows: 1fr; }
.gpeb-exp-btn { display: flex; flex-direction: column; min-height: 180px; height: 100%; text-align: left; }
.gpeb-exp-body { display: flex; flex-direction: column; height: 100%; flex: 1 1 auto; }
.gpeb-exp-desc {
  flex: 1 1 auto;
  overflow: hidden;
  /* Hindrer at CTA/pax "danser" mellom kort pga. varierende tekstlengde */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}
.gpeb-exp-footer {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  gap: 12px;
}

.gpeb-exp-footer-left {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;
}

.gpeb-exp-footer-right {
  margin-left: auto;
}

.gpeb-exp-pax {
  font-size: 14px;
  color: #666;
}



.gpeb-exp-chips{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.gpeb-chip{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:1px solid #ddd;border-radius:999px;font-weight:600;font-size:16px;line-height:1;color:#111;background:#fff;white-space:nowrap;}
.gpeb-chip--primary{background:#111;color:#fff;border-color:#111;}
@media (max-width: 900px){.gpeb-chip{padding:8px 14px;font-size:15px;}}
/* Group menu links in details step */
.gpeb-group-menu-links { margin: 8px 0 10px; }
.gpeb-group-menu-links .gpeb-exp-menu { margin-right: 8px; }

/* Sharing price emphasis */
.gpeb-price { padding: 8px 10px; border-radius: 10px; border: 1px solid rgba(0,0,0,.12); background: rgba(0,0,0,.03); }


/* Details form layout */
.gpeb-form { max-width: 520px; }
.gpeb-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.gpeb-note-label{grid-column:1/-1;}
.gpeb-note{width:100%;min-height:90px;resize:vertical;}

.gpeb-form-grid label { display:block; }
.gpeb-form-wide { margin-top: 10px; }
.gpeb-group-fields { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(0,0,0,.08); }
.gpeb-dessert-row { margin-top: 10px; display:flex; gap:8px; align-items:center; }
.gpeb-terms { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(0,0,0,.08); }
.gpeb-terms-check { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.gpeb-terms-btn { border: 0; background: transparent; text-decoration: underline; padding: 0; cursor: pointer; font-weight: 700; }

/* Hard override (themes sometimes restyle/hide <button>) */
.gpeb-step .gpeb-terms,
.gpeb-step .gpeb-terms * { box-sizing: border-box; }
.gpeb-step .gpeb-terms { display: block !important; }
.gpeb-step .gpeb-terms-btn { display: inline !important; background: transparent !important; color: inherit !important; border: 0 !important; }

/* Optional: terms button next to CTA */
.gpeb-nav .gpeb-terms-btn--nav { margin-right: auto; font-weight: 700; }
.gpeb-terms-consent-nav{
  margin-right:auto;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  flex:1 1 auto;
  min-width:240px;
  max-width:70%;
}

.gpeb-terms-consent-label{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  font-size:14px;
  line-height:1.3;
}
.gpeb-terms-consent-label input{
  transform:scale(1.05);
}
.gpeb-terms-error--nav{
  margin-top:6px;
  color:#b00020;
  font-size:13px;
  font-weight:600;
}
@media (max-width: 640px){
  .gpeb-terms-consent-nav{ max-width:100%; min-width:0; }
  .gpeb-nav{ flex-direction:column; align-items:stretch; }
  .gpeb-nav .gpeb-back, .gpeb-nav .gpeb-next{ width:100%; }
  .gpeb-terms-consent-nav{ order:-1; }
}


/* Optional: show a small terms-link next to CTA in nav (details step) */
.gpeb-terms-btn--nav { font-weight: 700; margin-right: 10px; }
.gpeb-terms-hint { margin-top: 6px; color: #b30000; font-weight: 600; }


/* Summary table (extra fields) */
.gpeb-summary-table { width: 100%; border-collapse: collapse; }
.gpeb-summary-table th { text-align: left; font-size: 13px; font-weight: 800; padding: 6px 8px 6px 0; width: 34%; vertical-align: top; }
.gpeb-summary-table td { font-size: 13px; padding: 6px 0; vertical-align: top; }
.gpeb-summary-table tr + tr th, .gpeb-summary-table tr + tr td { border-top: 1px dashed rgba(0,0,0,.10); }

/* Phone: country code + number */
.gpeb-phone-row { display: flex; gap: 8px; align-items: center; }
.gpeb-cc { width: 150px; flex: 0 0 150px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gpeb-phone-row input.gpeb-phone { flex: 1 1 auto; min-width: 0; }

@media (max-width: 520px){
  .gpeb-phone-row { gap: 6px; }
  .gpeb-cc { width: 84px; }
  .gpeb-summary-table th { width: 40%; }
}

/* Modal */
.gpeb-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:16px;}
.gpeb-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.gpeb-modal-panel{position:relative;background:#fff;width:min(92vw,560px);max-height:70vh;border-radius:16px;overflow:hidden;box-shadow:0 20px 80px rgba(0,0,0,.35);}
.gpeb-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.08);}
.gpeb-modal-title{font-weight:800;}
.gpeb-modal-close{border:0;background:transparent;font-size:26px;line-height:1;cursor:pointer;}
.gpeb-modal-body{padding:14px;overflow:auto;max-height:calc(70vh - 110px);}
.gpeb-modal-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid rgba(0,0,0,.08);background:#fff;flex-wrap:wrap;}
.gpeb-modal-loading{font-weight:700;opacity:.75;}


/* Highlighted menu box on details step */
.gpeb-menu-box {
  padding: 12px 14px;
  border-radius: 14px;
  border: 2px solid #c9a24d;
  background: #fffaf0;
  margin-bottom: 14px;
}
.gpeb-menu-title {
  font-weight: 800;
  margin-bottom: 8px;
}
.gpeb-menu-box .gpeb-exp-menu {
  display: inline-block;
  margin-right: 10px;
  padding: 8px 14px;
  border-radius: 999px;
  background: #c9a24d;
  color: #000;
  text-decoration: none;
  font-weight: 700;
}
.gpeb-menu-box .gpeb-exp-menu:hover {
  background: #b48f3f;
}


/* v0.6.1: stronger menu CTA */
.gpeb-menu-box { display: flex; flex-direction: column; gap: 10px; }
.gpeb-menu-box .gpeb-exp-menu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  font-size: 14px;
}
@media (min-width: 768px) {
  .gpeb-menu-box .gpeb-exp-menu { font-size: 15px; }
}

.gpeb-company { margin-bottom: 10px; }


/* v0.6.5: ensure menu link is a normal CTA, not full-width */
.gpeb-menu-box { max-width: 520px; }
.gpeb-menu-box .gpeb-exp-menu{
  width: auto !important;
  max-width: 100%;
  min-height: 34px;
  padding: 7px 12px;
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
}
.gpeb-menu-box .gpeb-exp-menu{ justify-content:center; }

/* v0.6.5: sharing clarity */
.gpeb-sharing-box{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.02);
  max-width:520px;
}
.gpeb-sharing-title{ font-weight:800; margin-bottom:6px; }
.gpeb-sharing-help{ font-size:13px; opacity:.85; margin-bottom:10px; }
.gpeb-dessert-row{ margin-top:10px; }
.gpeb-dessert-label{ font-weight:700; display:inline-flex; gap:8px; align-items:center; }
.gpeb-dessert-help{ font-size:12.5px; opacity:.8; margin-top:6px; }
.gpeb-sharing-box .gpeb-menu { width: 100%; }


/* v0.6.6: compact PDF menu link (non-dominant) */
.gpeb-menu-box {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  margin: 10px 0 6px !important;
  max-width: 520px;
}
.gpeb-exp-menu--pdf {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.14);
  background: #fff;
  font-weight: 700;
  font-size: 13px;
  text-decoration: none;
}
.gpeb-exp-menu--pdf::before {
  content: "PDF";
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  margin-right: 8px;
  padding: 2px 6px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.14);
  opacity: .9;
}
.gpeb-exp-menu--pdf:hover { text-decoration: underline; }

/* Dessert delta */
.gpeb-dessert-delta { font-weight: 800; opacity: .9; margin-left: 8px; }


/* v0.6.7: final UX touch */
/* PDF menu as inline chip */
.gpeb-exp-menu--chip {
  background: transparent !important;
  border: 1px solid rgba(0,0,0,.2);
  color: #111;
}
.gpeb-exp-menu--chip::before {
  display: none !important;
}

/* Reduce visual weight */
.gpeb-menu-box {
  margin-top: 6px !important;
}


/* v0.6.8: clickable stepper */
.gpeb-stepper li.is-clickable { cursor: pointer; }
.gpeb-stepper li.is-disabled { opacity: .45; cursor: default; }
.gpeb-stepper li.is-disabled * { pointer-events: none; }


/* v0.7.1: submit UX */
.gpeb-book:disabled{opacity:.6;cursor:not-allowed;}


/* v0.7.4: UI polish (checkbox + text) */
.gpeb input[type="checkbox"]{
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1px solid rgba(0,0,0,.25);
  vertical-align: middle;
}
.gpeb input[type="checkbox"]:checked{
  accent-color: #b7923a; /* Meze-gull tone */
}
.gpeb .gpeb-sharing-box .gpeb-helptext{
  color: rgba(0,0,0,.65);
  font-size: 12px;
  line-height: 1.35;
}


/* Meze notes colored dots (baked in) */
.gpeb-calendar button.has-meze-note .meze-note-dot.meze-dot--closed{ background:#d32f2f !important; opacity:1 !important; }
.gpeb-calendar button.has-meze-note .meze-note-dot.meze-dot--info{ background:#1976d2 !important; opacity:1 !important; }
.gpeb-calendar button.has-meze-note .meze-note-dot.meze-dot--warning{ background:#f57c00 !important; opacity:1 !important; }


/* === Mobile responsiveness === */
@media (max-width: 768px){
  .gpeb-wrap{ padding: 14px 12px 24px; }
  .gpeb-stepper{ gap:8px; justify-content:center; }
  .gpeb-stepper li{ padding:8px 10px; font-size:13px; }
  .gpeb-stepper li .n{ width:20px; height:20px; font-size:12px; }

  .gpeb-exp-list{ grid-template-columns: 1fr; }
  .gpeb-exp-img{ width:100%; height:120px; }
  .gpeb-exp-footer{ flex-wrap: wrap; }
  .gpeb-exp-footer-left{ flex-wrap: wrap; }

  .gpeb-times{ grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap:8px; }
  .gpeb-pax-grid{ grid-template-columns: repeat(auto-fit, minmax(52px, 1fr)); gap:8px; max-width: 100%; }
  .gpeb-pax-btn{ padding:12px 10px; font-size:15px; }

  .gpeb-calendar{ max-width: 100%; }
  .gpeb-cal-header{ padding: 10px 10px; }
  .gpeb-cal-nav{ width:44px; height:40px; }
  .gpeb-cal-weekdays{ font-size: 11px; gap:6px; }
  .gpeb-cal-grid{ gap:8px; }
  .gpeb-cal-day{ height:44px; border-radius:12px; font-size:16px; }

  .gpeb-nav{ flex-direction:column-reverse; }
  .gpeb-back, .gpeb-next{ width:100%; padding:12px 14px; }
}

@media (max-width: 520px){
  .gpeb-form-grid{ grid-template-columns: 1fr; }
  .gpeb-cal-grid{ gap:6px; }
  .gpeb-cal-day{ height:42px; font-size:15px; }
}



/* Mobile friendly booking flow */
@media (max-width: 768px) {
  .gpeb-wrapper, .gpeb-container { padding: 12px !important; }
  .gpeb-stepper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .gpeb-stepper ul, .gpeb-stepper { gap: 8px; }
  .gpeb-stepper li { flex: 0 0 auto; white-space: nowrap; }
  .gpeb-card, .gpeb-panel { width: 100% !important; max-width: 100% !important; }
  .gpeb-calendar { width: 100% !important; max-width: 100% !important; }
  .gpeb-calendar .gpeb-cal-grid { gap: 8px; }
  .gpeb-calendar button, .gpeb-calendar .gpeb-day { min-height: 44px; }
  .gpeb-nav { gap: 10px; }
  .gpeb-nav .gpeb-btn { width: 100%; }
  .gpeb-nav { flex-direction: column; }
  .gpeb-form-grid { display: flex !important; flex-direction: column; gap: 12px; }
  .gpeb-form-grid label { width: 100%; }
  .gpeb-phone-row { display: flex; gap: 10px; }
  .gpeb-phone-row select { flex: 0 0 48%; }
  .gpeb-phone-row input { flex: 1 1 auto; }
  .gpeb-summary-card { padding: 12px; }
  .gpeb-time-grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .gpeb-pax-grid { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
}

/* Country code select - readable on desktop too */
.gpeb-cc-all { max-width: 100%; }

/* Step 6 (details) – mobile-first layout tweaks */
.gpeb-step[data-step="details"] .gpeb-form-grid{ align-items: start; }
/* Phone should feel like one field and not leave an empty "ghost" column */
.gpeb-step[data-step="details"] .gpeb-phone-wrap{ grid-column: 1 / -1; }
.gpeb-step[data-step="details"] .gpeb-phone-row{ display:flex; gap:10px; align-items:center; }
.gpeb-step[data-step="details"] .gpeb-phone-row select.gpeb-cc{ width: 180px; max-width: 220px; }
/* Country code dropdown (readable on desktop + mobile) */
.gpeb-step[data-step="details"] select.gpeb-cc{
  appearance: auto;
  padding: 12px 12px;
  height: 48px;
  line-height: 1.2;
  font-size: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gpeb-step[data-step="details"] .gpeb-phone-row input.gpeb-phone{ flex: 1; min-width: 0; }

@media (max-width: 720px){
  .gpeb-step[data-step="details"] .gpeb-form-grid{ grid-template-columns: 1fr; }
  .gpeb-step[data-step="details"] .gpeb-phone-row select.gpeb-cc{ width: 42%; max-width: none; }
}

@media (max-width: 640px){
  .gpeb-phone-row { flex-direction: row; }
  .gpeb-cc { flex: 0 0 46%; width: 46%; }
  .gpeb-phone-row input.gpeb-phone { flex: 1 1 54%; }
}


/* Inline compact summary (2 lines) */
.gpeb-summary-card--inline{padding:0;border-color:#e9e9e9;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.03);}
.gpeb-summary-inline{display:flex;align-items:flex-start;justify-content:flex-start;gap:14px;padding:12px 14px;}
.gpeb-summary-inline-main{min-width:0;flex:1;}
.gpeb-summary-inline-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:15px;font-weight:700;line-height:1.25;}
.gpeb-summary-inline-title{min-width:0;flex:1;white-space:normal;overflow:hidden;text-overflow:ellipsis;}
.gpeb-summary-inline-bottom{margin-top:3px;font-size:13px;font-weight:600;color:#666;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gpeb-summary-sep{opacity:.55;}

/* Meze polish: summary should read as a confirmation highlight, not another input */
.gpeb-summary-card--meze{background:#fbfaf7;border-color:#e6e0d3;box-shadow:0 1px 0 rgba(0,0,0,.05);}
.gpeb-summary-card--meze .gpeb-summary-inline{padding-top:10px;}
.gpeb-summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.06);}
.gpeb-summary-head-title{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.75;}
.gpeb-summary-edit-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(0,0,0,.12);border-radius:999px;background:rgba(255,255,255,.65);text-decoration:none;color:inherit;opacity:.82;transition:opacity .15s ease, background .15s ease, border-color .15s ease;}
.gpeb-summary-edit-btn:hover{opacity:1;background:#fff;border-color:rgba(0,0,0,.20);}
.gpeb-summary-edit-ico{font-size:12px;line-height:1;opacity:.9;}
.gpeb-summary-edit-txt{font-size:12px;font-weight:800;}
.gpeb-summary-inline-note{margin-top:4px;font-size:12px;font-weight:700;color:#777;}

@media (max-width: 520px){
  .gpeb-summary-head{padding:10px 12px;}
  .gpeb-summary-inline{flex-direction:row;align-items:center;gap:10px;padding:10px 12px;}
  .gpeb-summary-inline-top,.gpeb-summary-inline-bottom{white-space:normal;}
  .gpeb-summary-edit-btn{padding:6px 9px;}
  .gpeb-summary-edit-txt{display:none;}
}


/* Compact summary card */
.gpeb-summary{max-width:860px;margin:10px 0;}
.gpeb-summary-card{border:1px solid #e9e9e9;border-radius:12px;background:#fff;overflow:hidden;margin:10px 0;}

.gpeb-terms-wrap{margin:10px 0 0;}
.gpeb-terms-label{display:block;font-size:14px;line-height:1.3;}
.gpeb-terms-label input{margin-right:8px;transform:scale(1.05);}
.gpeb-terms-error{margin-top:6px;color:#b00020;font-size:13px;}


/* Terms gate: pseudo-disabled CTA so click can show validation error */
.gpeb-next--terms-disabled{
  opacity:.45;
  cursor:not-allowed;
}
.gpeb-next--terms-disabled:hover{
  filter:none;
}

.gpeb-terms-has-error .gpeb-terms-consent-label{
  outline:2px solid #b00020;
  outline-offset:4px;
  border-radius:6px;
}


/* Terms consent row polish */
.gpeb-nav.gpeb-nav--stack .gpeb-terms-consent-nav{
  margin: 0 0 6px 0;
  max-width:100%;
  min-width:0;
}
.gpeb-terms-consent-label{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.gpeb-terms-btn--nav{ margin-left:4px; text-decoration:underline; }
.gpeb-next--terms-disabled{ opacity:.55; cursor:not-allowed; }
.gpeb-next--terms-disabled:hover{ filter:none; }
@media (max-width: 640px){
  .gpeb-nav.gpeb-nav--stack .gpeb-nav-actions .gpeb-back,
  .gpeb-nav.gpeb-nav--stack .gpeb-nav-actions .gpeb-next{ width:100%; }
}

/* Summary microcopy */
.gpeb-summary-inline-note{margin-top:6px;font-size:13px;line-height:1.3;opacity:.85}


/* Summary inline edit (single pencil) – inline with title */
.gpeb-summary-edit--inline{margin-left:6px;opacity:.75;font-size:14px;text-decoration:none;line-height:1;}
.gpeb-summary-edit--inline:hover{opacity:1;text-decoration:underline;}


/* Summary branch label */
.gpeb-summary-branch{font-size:12px;font-weight:600;color:#6f6f6f;margin:0 0 2px 0;}


/* Summary enhancements */
.gpeb-summary-menu{
  margin-top:6px;
  font-size:13px;
  font-weight:600;
  color:#2b2b2b;
}
.gpeb-summary-card .gpeb-branch-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  font-weight:700;
}
.gpeb-step[data-step="group"] .gpeb-step-title{
  font-size:18px;
  font-weight:700;
  margin:6px 0 12px;
}
.gpeb-step[data-step="group"] .gpeb-group-fields{
  margin-top:0;
}



/* UI PATCH v11: Make Avdeling step more visible + Summary icons + Terms cleanup */
.gpeb-step[data-step="branch"] .gpeb-branch-grid,
.gpeb-branch-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
}

.branch-btn{
  border:2px solid rgba(0,0,0,.12) !important;
  border-radius:14px !important;
  padding:16px 16px !important;
  text-align:left !important;
  background:#fff !important;
  min-height:96px;
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  position:relative;
}

.branch-btn:hover{
  transform:translateY(-1px);
}

.branch-btn.is-active,
.branch-btn[aria-pressed="true"]{
  border-color:rgba(0,0,0,.65) !important;
  box-shadow:0 10px 26px rgba(0,0,0,.10);
}

.branch-btn .gpeb-branch-title{
  font-weight:700;
  font-size:16px;
  margin-bottom:6px;
}

.branch-btn .gpeb-branch-address{
  font-size:13px;
  opacity:.85;
  line-height:1.25;
}

.branch-btn .gpeb-branch-meta{
  margin-top:8px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  font-size:12px;
  opacity:.9;
}

/* Summary icon rows */

.gpeb-summary-icon{
  width:18px;
  min-width:18px;
  height:18px;
  margin-top:1px;
  opacity:.85;
}

  margin-right:6px;
}

/* Hide duplicated terms line (group menu repeats) */
.gpeb-terms-duplicate{
  display:none !important;
}



/* UI PATCH v12: Stronger summary + branch emphasis */

/* Summary container */
.gpeb-summary{
  border:2px solid rgba(0,0,0,.12);
  border-radius:16px;
  padding:14px 16px;
  background:#fffaf4;
}

/* Branch pill in summary */
.gpeb-summary-branch{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:#111;
  color:#fff;
  padding:6px 12px;
  border-radius:999px;
  font-weight:600;
  font-size:13px;
  margin-bottom:8px;
}


/* Branch name + address wrapper in summary */
.gpeb-summary-branchbox{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  margin:0 0 10px 0;
}
.gpeb-summary-branchbox .gpeb-summary-branch-address{
  margin:0;
}

/* Branch address shown under pill */
.gpeb-summary-branch-address{
  font-size:12px;
  color:#6f6f6f;
  margin:0 0 10px 0;
}

/* v0.6.8: Branch + address in one compact box */
.gpeb-summary-branchbox{
  background:#111;
  color:#fff;
  padding:8px 12px;
  border-radius:14px;
  gap:2px;
  margin:0 0 10px 0;
}
.gpeb-summary-branchbox .gpeb-summary-branch{
  background:transparent;
  padding:0;
  margin:0;
  font-size:13px;
  line-height:1.2;
}
.gpeb-summary-branchbox .gpeb-summary-branch-address{
  color:rgba(255,255,255,.78);
  font-size:12px;
  line-height:1.2;
  margin:0;
}

/* Make icons pop */
.gpeb-summary-icon{
  color:#111;
  opacity:1;
}

/* Hide any duplicate terms blocks entirely */
.gpeb-terms-duplicate,
.gpeb-terms-duplicate *{
  display:none !important;
}


/* v0.7.4.x: clearer group menu CTA on experience cards */
.gpeb-exp-group-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.28);
  font-weight:800;
  font-size:12px;
  letter-spacing:.2px;
  margin-right:8px;
  background: rgba(0,0,0,.04);
}

/* v68 compact: tighten summary vertical space without losing hierarchy */
.gpeb-summary{
  border-width:1px;
  padding:10px 12px;
  border-radius:14px;
}

.gpeb-summary-head{
  padding:8px 12px;
}

.gpeb-summary-inline{
  padding:10px 12px;
  gap:10px;
}

.gpeb-summary-branch{
  padding:5px 10px;
  font-size:12px;
  margin-bottom:6px;
}

.gpeb-summary-branchbox{
  gap:4px;
  margin-bottom:8px;
}

.gpeb-summary-branch-address{
  margin-bottom:8px;
  line-height:1.3;
}

.gpeb-summary-kv{
  gap:8px;
  margin-top:3px;
  line-height:1.25;
}

.gpeb-summary-section{
  margin-top:8px;
  padding-top:6px;
}

.gpeb-summary-section-title{
  margin-bottom:4px;
}
.gpeb-exp-btn.is-group .gpeb-exp-group-cta{
  background: rgba(0,0,0,.06);
}
.gpeb-exp-btn.is-selected .gpeb-exp-group-cta{
  border-color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.18);
  color:#fff;
}


/* Menu link CTA inside group menu modal */
.gpeb-menu-link-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.18);background:#fff;color:#7a5a15;text-decoration:none;font-weight:600;}
.gpeb-menu-link-btn:hover{background:rgba(122,90,21,.08);text-decoration:none;}
.gpeb-menu-link-btn.has-arrow:after{content:'↗';font-size:12px;line-height:1;opacity:.9;}

/* v68: Summary branch block – remove dominant color, use calm neutral box */
.gpeb-summary-branchbox{
  background:transparent;
  color:inherit;
  border:1px solid rgba(0,0,0,.10);
  padding:8px 10px;
  border-radius:12px;
  gap:2px;
}
.gpeb-summary-branchbox .gpeb-summary-branch{
  background:transparent;
  padding:0;
  margin:0;
  font-weight:700;
  font-size:13px;
  line-height:1.2;
  color:#111;
}
.gpeb-summary-branchbox .gpeb-summary-branch-address{
  color:#666;
  font-size:12.5px;
  line-height:1.25;
  margin:0;
}

/* v68: Mobile fine-tuning */
@media (max-width: 768px){
  .gpeb-summary{ padding:10px 12px; }
  .gpeb-summary-head{ padding:8px 12px; }
  .gpeb-summary-inline{ padding:10px 12px; }
  .gpeb-summary-branchbox{ padding:8px 10px; margin-bottom:8px; }
  .gpeb-summary-branchbox .gpeb-summary-branch-address{ font-size:12px; }
  .gpeb-summary-inline-top{ gap:8px; flex-wrap:wrap; }
  .gpeb-summary-inline-bottom{ gap:8px; flex-wrap:wrap; }
  .gpeb-next{ width:100%; padding:14px 16px; font-size:16px; }
}



/* Modal footer buttons: match "Se meny" pill style */
.gpeb-modal-footer .gpeb-menu-link-btn{
  cursor:pointer;
  user-select:none;
}
.gpeb-menu-link-btn.gpeb-menu-link-btn--primary{
  background:#7a5a15;
  border-color:#7a5a15;
  color:#fff;
}
.gpeb-menu-link-btn.gpeb-menu-link-btn--primary:hover{
  background:#6b4f12;
}
.gpeb-menu-link-btn.gpeb-menu-link-btn--primary:after{
  content:'';
  display:none;
}

/* Group menu badge on experience card */
.gpeb-group-menu-badge{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border:1px solid rgba(142, 111, 48, 0.35);
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  line-height:1;
  color:#8e6f30;
  background:#fff;
  margin-right:8px;
}
.gpeb-exp-btn.is-selected .gpeb-group-menu-badge{
  border-color:#8e6f30;
}

/* Disable state for modal CTA buttons */
.gpeb-menu-link-btn[disabled],
.gpeb-menu-link-btn.is-disabled{
  opacity:0.45;
  cursor:not-allowed;
  pointer-events:none;
}


/* Menu modal microcopy */
.gpeb-sharing-help-muted{display:block;opacity:.8;margin-top:6px;font-size:12px;}


/* UX: experience card subtitles + seasonal badge */
.gpeb-exp-sub{font-size:12px;opacity:.8;margin-top:4px;line-height:1.2}
.gpeb-season-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;margin-left:8px;opacity:.9;border:1px solid rgba(255,255,255,.25)}


/* Summary key/value rows */
.gpeb-summary-kv{display:flex;gap:10px;margin-top:4px;font-size:13px;line-height:1.3;opacity:.9}
.gpeb-summary-kv .gpeb-k{min-width:80px;font-weight:600;color:#6b7280}
.gpeb-summary-kv .gpeb-v{color:#111827}


/* Summary sections */
.gpeb-summary-section{margin-top:10px;padding-top:8px;border-top:1px solid rgba(0,0,0,.06)}
.gpeb-summary-section-title{font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;opacity:.6;margin:0 0 6px}

/* v67: tidy summary + remove duplicate group note */
.gpeb-summary-inline-note{display:flex;gap:10px;align-items:baseline;margin-top:3px}
.gpeb-summary-inline-note strong{min-width:80px;font-weight:600}

/* v68 finpuss: tighter, premium summary without losing readability */
.gpeb-summary-branchbox{
  padding:6px 10px;          /* lower height */
  border-radius:12px;
  gap:1px;
  margin:0 0 6px 0;          /* tighter gap to title */
}
.gpeb-summary-branchbox .gpeb-summary-branch{
  font-size:12px;
  line-height:1.15;
}
.gpeb-summary-branchbox .gpeb-summary-branch-address{
  font-size:11.5px;
  line-height:1.15;
  color:rgba(255,255,255,.74);
}

/* Tone down section label slightly */
.gpeb-summary-section-title{
  opacity:.52;
  font-size:11px;
  letter-spacing:.35px;
  margin:0 0 4px;
}

/* Slightly tighter kv rows */
.gpeb-summary-kv{gap:8px;margin-top:2px;line-height:1.22;}

/* v68: make branch box calm (no dominant color) + emoji label */
.gpeb-summary-branchbox{
  background: transparent;
  color: inherit;
  border: 1px solid rgba(0,0,0,.10);
}
.gpeb-summary-branchbox .gpeb-summary-branch{
  background: transparent;
  padding: 0;
  margin: 0;
  font-weight: 700;
  color: #111;
}
.gpeb-summary-branchbox .gpeb-summary-branch-address{
  color: #6b7280;
}

/* Mobile: compact summary + bigger CTA */
@media (max-width: 768px){
  .gpeb-summary{ padding: 10px 12px; }
  .gpeb-summary-head{ padding: 8px 10px; }
  .gpeb-summary-inline{ padding: 10px 10px; }
  /* Mobile polish: slightly tighter branch block to reduce vertical height */
  .gpeb-summary-branchbox{ padding: 6px 10px; margin: 0 0 4px 0; }
  .gpeb-summary-branchbox .gpeb-summary-branch-address{ font-size: 11.5px; line-height: 1.25; }
  .gpeb-summary-inline-top{ gap: 8px; }
  .gpeb-summary-inline-bottom{ gap: 8px; }
  .gpeb-next{ width: 100%; padding: 14px 16px; font-size: 16px; }
}


/* Terms modal tweaks */
.gpeb-modal-body {
  overflow-x: hidden;
}
.gpeb-terms-content {
  max-width: 100%;
}


/* === Form validation errors === */
.gpeb-field-error input,
.gpeb-field-error textarea,
.gpeb-field-error select {
  border-color: #e53935 !important;
}
.gpeb-field-error-msg {
  color: #e53935;
  font-size: 0.85rem;
  margin-top: 4px;
}


/* Calendar nav fix: ensure overlay does not block clicks */
.meze-cal-overlay {
  pointer-events: none !important;
}

/* Loading state for primary button */
.gpeb-next.is-loading {
  position: relative;
  pointer-events: none;
  opacity: .85;
}

.gpeb-next.is-loading::after {
  content: "";
  position: absolute;
  right: 0.9rem;
  top: 50%;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 50%;
  border: 2px solid currentColor;
  border-top-color: transparent;
  animation: gpeb-spin 1s linear infinite;
}

@keyframes gpeb-spin {
  to { transform: rotate(360deg); }
}


/* Meze styling for pax info modal */
.gpeb-pax-modal .gpeb-modal-panel {
  border-radius: 18px;
  border-top: 4px solid #c9a24d;
}

.gpeb-pax-modal .gpeb-modal-title {
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.gpeb-pax-modal .gpeb-modal-body p {
  margin-bottom: 10px;
}

.gpeb-pax-modal .gpeb-pax-modal-link {
  color: #c9a24d;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(201,162,77,.4);
}

.gpeb-pax-modal .gpeb-pax-modal-link:hover {
  border-bottom-color: rgba(201,162,77,.9);
}

.gpeb-pax-modal .gpeb-pax-modal-list {
  list-style: none;
  padding-left: 0;
  margin: 8px 0 0;
}

.gpeb-pax-modal .gpeb-pax-modal-list li {
  margin-bottom: 4px;
}
