
/* VAT toggle (header friendly) */
.glh-btw-toggle{
  display:inline-flex;
  border:1px solid rgba(0,0,0,.15);
  border-radius:999px;
  padding:4px;
  gap:4px;
  background:#fff;
}
.glh-btw-btn{
  border:0;
  background:transparent;
  padding:8px 14px;
  border-radius:999px;
  cursor:pointer;
  font-weight:600;
  line-height:1;
}
.glh-btw-btn.is-active{
  background:#78b0ac;
  color:#fff;
}

/* Price box */
.glh-pricebox{
  border:1px solid rgba(0,0,0,.12);
  border-radius:14px;
  padding:16px;
  width:100%;
  max-width:100%;
}
.glh-full-width{width:100%;}
.glh-date-field{
  padding:12px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:12px;
  width:100%;
}
.glh-add-offer{
  margin-top:14px;
}
.glh-date-row{display:flex;gap:12px;flex-wrap:wrap}
.glh-date-row label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:200px}
.glh-date-row input{padding:10px;border-radius:10px;border:1px solid rgba(0,0,0,.2);width:100%;box-sizing:border-box}
.glh-pricing{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.glh-line{display:flex;justify-content:space-between;gap:12px}
.glh-total{border-top:1px solid rgba(0,0,0,.12);padding-top:10px;margin-top:4px}
.glh-hint{opacity:.75}
.glh-msg{margin-top:10px;min-height:1.2em}

/* Gallery */
.glh-product-gallery{
  width:100%;
}
.glh-gallery-main{
  display:block;
  width:100%;
  max-height:500px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  border-radius:15px;
  overflow:hidden;
}
.glh-gallery-main-image{
  width:100%;
  max-height:500px;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  border-radius:15px;
  display:block;
}
.glh-gallery-thumbs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.glh-gallery-thumb{
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  border-radius:16px;
  overflow:hidden;
  position:relative;
}
.glh-gallery-thumb::after{
  content:"";
  position:absolute;
  inset:0;
  border:3px solid transparent;
  border-radius:16px;
  opacity:0;
  pointer-events:none;
  transition:border-color .2s ease, opacity .2s ease;
}
.glh-gallery-thumb:hover::after,
.glh-gallery-thumb:focus-visible::after{
  border-color:#78B0AC;
  opacity:1;
}
.glh-gallery-thumb-image{
  width:100%;
  aspect-ratio:1 / 1;
  object-fit:cover;
  display:block;
  border-radius:16px;
}
.glh-lightbox[hidden]{display:none !important}
.glh-lightbox{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483646 !important;
}
body.glh-lightbox-open{
  overflow:hidden;
}
.glh-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.82);
  z-index:0;
}
.glh-lightbox-dialog{
  position:relative;
  z-index:1;
  width:min(92vw,1100px);
  height:min(88vh,900px);
  margin:6vh auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.glh-lightbox-image{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  border-radius:18px;
  display:block;
}
.glh-lightbox-close,
.glh-lightbox-nav{
  position:absolute;
  z-index:2147483647;
  border:0;
  background:rgba(255,255,255,.14);
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important;
  font-style: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  text-shadow: none !important;
}
.glh-lightbox-close{
  top:14px;
  right:14px;
  width:44px;
  height:44px;
  border-radius:999px;
  font-size:28px;
  line-height:1;
  font-weight:700;
}
.glh-lightbox-nav{
  top:50%;
  transform:translateY(-50%);
  width:48px;
  height:48px;
  border-radius:999px;
  font-size:0 !important;
  line-height:1;
}
.glh-lightbox-nav::before{
  content:"";
  display:block;
  width:14px;
  height:14px;
  border-top:3px solid #fff;
  border-right:3px solid #fff;
}
.glh-lightbox-prev{left:14px}
.glh-lightbox-prev::before{transform:rotate(-135deg); margin-left:5px;}
.glh-lightbox-next{right:14px}
.glh-lightbox-next::before{transform:rotate(45deg); margin-right:5px;}
@media (max-width: 767px){
  .glh-gallery-thumbs{gap:10px}
  .glh-lightbox-dialog{width:min(96vw,1100px);height:min(82vh,900px);margin:9vh auto;}
  .glh-lightbox-nav{width:42px;height:42px;font-size:24px;}
}

/* Specs table */
.glh-specs{width:100%;border-collapse:collapse}
.glh-specs th,.glh-specs td{padding:10px;border-bottom:1px solid rgba(0,0,0,.12);text-align:left}
.glh-specs th{width:45%}

/* Offer page */
.glh-offer-page{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.glh-offer-single{width:100%}
@media (max-width: 900px){ .glh-offer-page{grid-template-columns:1fr} }
.glh-offer-table{width:100%;border-collapse:collapse}
.glh-offer-table th,.glh-offer-table td{padding:10px;border-bottom:1px solid rgba(0,0,0,.12);vertical-align:top}
.glh-offer-table tfoot th{border-bottom:0}
.glh-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.glh-colspan-2{grid-column:1 / -1}
.glh-grid input{width:100%;padding:10px;border-radius:10px;border:1px solid rgba(0,0,0,.2)}
.glh-consent{display:flex;gap:10px;align-items:flex-start;margin:12px 0}
.glh-form-msg{margin-top:10px;min-height:1.2em}
.glh-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}


/* Static price list */
.glh-prices-table,
.glh-prices-table th,
.glh-prices-table td{
  text-align:left;
}
.glh-prices-table{
  width:100%;
  border-collapse:collapse;
}
.glh-prices-table th,
.glh-prices-table td{
  padding:8px 0;
}
.glh-prices-table td{
  width:1%;
  white-space:nowrap;
}


.glh-cta-button,
.glh-cta-button.button,
.glh-cta-button.button.button-primary{
  width:100%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 22px;
  border:0;
  border-radius:100px;
  background:#78B0AC;
  color:#ffffff;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
  box-sizing:border-box;
  transition:background-color .2s ease, opacity .2s ease;
}
.glh-cta-button:hover,
.glh-cta-button:focus,
.glh-cta-button.button:hover,
.glh-cta-button.button:focus,
.glh-cta-button.button.button-primary:hover,
.glh-cta-button.button.button-primary:focus{
  background:#202020;
  color:#ffffff;
}
.glh-cta-button:disabled,
.glh-cta-button.button:disabled{
  opacity:.7;
  cursor:not-allowed;
}
.glh-cta-icon{
  width:16px;
  height:16px;
  display:block;
  flex:0 0 16px;
}
.glh-cta-text{
  color:inherit;
  font-size:13px;
  font-weight:600;
}


.glh-section-title{
  font-weight:700;
  margin:0 0 20px;
}
.glh-static-vat-label{
  display:inline-block;
  margin-left:6px;
  font-size:.92em;
  white-space:nowrap;
}

body.glh-lightbox-open{overflow:hidden;}

.glh-lightbox-close:hover,
.glh-lightbox-nav:hover,
.glh-lightbox-close:focus-visible,
.glh-lightbox-nav:focus-visible{
  background:rgba(255,255,255,.22);
}

.glh-remove-item,
.glh-remove-item.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  min-width:32px;
  padding:0;
  border:1px solid #efc2c7;
  border-radius:999px;
  background:#fff5f6;
  color:#cf3341;
  font-size:18px;
  line-height:1;
  font-weight:700;
  box-shadow:none;
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.glh-remove-item:hover,
.glh-remove-item:focus-visible,
.glh-remove-item.button:hover,
.glh-remove-item.button:focus-visible{
  background:#ffe9ec;
  border-color:#e79aa4;
  color:#b42331;
  transform:scale(1.04);
}
.glh-remove-item:focus-visible{
  outline:0;
}
.glh-upsells-box{margin-top:16px;padding:14px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:rgba(120,176,172,.06)}
.glh-upsells-title{font-weight:700;margin-bottom:10px}
.glh-upsells-list{display:flex;flex-direction:column;gap:10px}
.glh-upsell-item{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.glh-upsell-meta{display:flex;flex-direction:column;gap:2px;min-width:180px}
.glh-upsell-price-type{opacity:.7}
.glh-upsell-qty{display:inline-flex;align-items:center;gap:8px}
.glh-upsell-qty .button{min-width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}
.glh-upsell-count{min-width:20px;text-align:center;font-weight:700}
.glh-upsell-quantity{display:none}
.glh-offer-extras{margin-top:8px}
.glh-offer-extras-label{font-weight:600}
.glh-offer-extras-list{margin:4px 0 0 18px;padding:0}


/* Offer confirmation modal */
body.glh-offer-modal-open{
  overflow:hidden;
}
.glh-offer-modal[hidden]{display:none !important;}
.glh-offer-modal{
  position:fixed;
  inset:0;
  z-index:2147483645;
}
.glh-offer-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.5);
}
.glh-offer-modal__dialog{
  position:relative;
  z-index:1;
  width:min(92vw, 520px);
  margin:50vh auto 0;
  transform:translateY(-50%);
  background:#fff;
  border-radius:20px;
  padding:28px 24px 24px;
  box-shadow:0 24px 70px rgba(0,0,0,.22);
}
.glh-offer-modal__x{
  position:absolute;
  top:12px;
  right:12px;
  border:0;
  background:transparent;
  cursor:pointer;
  font-size:28px;
  line-height:1;
  color:#2b2b2b;
}
.glh-offer-modal__title{
  margin:0 0 14px;
  font-size:26px;
  line-height:1.15;
}
.glh-offer-modal__product,
.glh-offer-modal__period{
  margin:0;
}
.glh-offer-modal__product{
  font-weight:700;
  font-size:18px;
}
.glh-offer-modal__period{
  margin-top:10px;
  color:rgba(0,0,0,.76);
}
.glh-offer-modal__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}
.glh-offer-modal__btn,
.glh-offer-modal__btn.button{
  flex:1 1 200px;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  text-decoration:none;
}
.glh-offer-modal__btn--secondary,
.glh-offer-modal__btn--secondary.button{
  background:#fff;
  border:1px solid rgba(0,0,0,.15);
  color:#222;
}
.glh-offer-modal__btn--primary,
.glh-offer-modal__btn--primary.button{
  background:#78B0AC;
  border:1px solid #78B0AC;
  color:#fff;
}
@media (max-width: 640px){
  .glh-offer-modal__dialog{
    width:min(94vw, 520px);
    padding:24px 18px 18px;
  }

  .glh-offer-modal__title{
    font-size:22px;
    padding-right:26px;
  }

  .glh-offer-modal__actions{
    flex-direction:column;
  }
}
