/*
 * GESTOR CLEAN — public address and scheduling final polish.
 * Tenant colors remain authoritative.  No custom company branding hardcoded.
 */
body.gc-booking-v81 #step3 .gc-inline-summary-link,
body.gc-booking-v81 #step4 .gc-inline-summary-link{
  appearance:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:11px!important;
  width:100%!important;
  max-width:100%!important;
  min-height:49px!important;
  margin:12px 0 13px!important;
  padding:9px 13px!important;
  border:1px solid color-mix(in srgb,var(--gc-primary,#0D806B) 31%,transparent)!important;
  border-radius:13px!important;
  background:color-mix(in srgb,var(--gc-primary,#0D806B) 12%,transparent)!important;
  color:var(--gc-text,#17382E)!important;
  font-size:.76rem!important;
  font-weight:800!important;
  line-height:1.3!important;
  text-align:left!important;
  box-sizing:border-box!important;
  cursor:pointer!important;
}
body.gc-booking-v81[data-gc-public-template="immersive"] #step3 .gc-inline-summary-link,
body.gc-booking-v81[data-gc-public-template="immersive"] #step4 .gc-inline-summary-link{
  background:rgba(230,255,240,.08)!important;
  border-color:rgba(230,255,240,.19)!important;
  color:#E8F7F0!important;
  -webkit-text-fill-color:#E8F7F0!important;
}
body.gc-booking-v81 #step3 .gc-inline-summary-link>span:first-child,
body.gc-booking-v81 #step4 .gc-inline-summary-link>span:first-child{
  font-size:1.17rem!important;
  line-height:1!important;
}
body.gc-booking-v81 #step3 .gc-inline-summary-link>span:nth-child(2),
body.gc-booking-v81 #step4 .gc-inline-summary-link>span:nth-child(2){
  flex:1!important;
  text-align:left!important;
}
body.gc-booking-v81 .gc-inline-summary-count{
  display:grid!important;
  place-items:center!important;
  width:27px!important;
  min-width:27px!important;
  height:27px!important;
  border-radius:999px!important;
  background:var(--gc-primary,#0D806B)!important;
  color:white!important;
  -webkit-text-fill-color:white!important;
  font-size:.75rem!important;
  font-variant-numeric:tabular-nums!important;
}
body.gc-booking-v81 #step3>.gc-panel,
body.gc-booking-v81 #step4>.gc-panel{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  padding:clamp(13px,4.2vw,20px)!important;
  border-radius:18px!important;
}
body.gc-booking-v81 #step3 .gc-panel{
  display:flex!important;
  flex-direction:column!important;
  gap:9px!important;
}
body.gc-booking-v81 #step3 .gc-panel .gc-field{
  min-width:0!important;
  margin:0!important;
}
body.gc-booking-v81 #step3 .gc-panel .gc-field label,
body.gc-booking-v81 #step4 .gc-panel .gc-field label{
  display:block!important;
  margin:0 0 6px!important;
  font-size:.74rem!important;
  font-weight:790!important;
  letter-spacing:0!important;
  line-height:1.35!important;
}
body.gc-booking-v81 #step3 .gc-panel .gc-field input,
body.gc-booking-v81 #step4 .gc-panel .gc-field input{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:51px!important;
  padding:10px 13px!important;
  box-sizing:border-box!important;
  border-radius:12px!important;
  font-size:clamp(.83rem,2.6vw,.95rem)!important;
  line-height:1.3!important;
}
body.gc-booking-v81 #step3 .gc-address-grid,
body.gc-booking-v81 #step3 .gc-address-region{
  display:grid!important;
  align-items:start!important;
  gap:11px!important;
  margin:0!important;
  width:100%!important;
  min-width:0!important;
}
body.gc-booking-v81 #step3 .gc-address-grid{
  grid-template-columns:minmax(93px,.83fr) minmax(0,1.4fr)!important;
}
body.gc-booking-v81 #step3 .gc-address-region{
  grid-template-columns:minmax(0,1fr) 76px!important;
}
body.gc-booking-v81 #step3 #stateCode{
  text-align:center!important;
  text-transform:uppercase!important;
  font-weight:800!important;
}
body.gc-booking-v81 #step3 #gc857-cep-status{
  margin-top:6px!important;
  line-height:1.4!important;
  font-size:.7rem!important;
}
body.gc-booking-v81 #step4 .gc-panel{
  display:flex!important;
  flex-direction:column!important;
  gap:9px!important;
}
body.gc-booking-v81 #step4 .gc-panel .gc-field{margin:0!important;}
body.gc-booking-v81 #step4 #date{
  min-height:56px!important;
  font-size:.97rem!important;
  font-weight:750!important;
  font-variant-numeric:tabular-nums!important;
  cursor:pointer!important;
}
body.gc-booking-v81 #step4 #slotStatus{
  margin:7px 0!important;
  min-height:18px!important;
  font-size:.74rem!important;
  line-height:1.45!important;
  color:var(--gc-muted,#62796F)!important;
}
body.gc-booking-v81 #step4 #slots{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:9px!important;
  padding:0!important;
  margin:4px 0 0!important;
}
body.gc-booking-v81 #step4 #slots .slot{
  min-width:0!important;
  min-height:49px!important;
  padding:8px!important;
  border-radius:12px!important;
  font-size:.89rem!important;
  font-weight:780!important;
  font-variant-numeric:tabular-nums!important;
  cursor:pointer!important;
}
body.gc-booking-v81 #step4 #slots .slot.on,
body.gc-booking-v81 #step4 #slots .slot[aria-pressed="true"]{
  background:color-mix(in srgb,var(--gc-primary,#0D806B) 15%,var(--gc-surface,#FFF))!important;
  color:var(--gc-primary,#0D806B)!important;
  border:2px solid var(--gc-primary,#0D806B)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gc-primary,#0D806B) 16%,transparent)!important;
}
body.gc-booking-v81 #step3 input:focus-visible,
body.gc-booking-v81 #step4 input:focus-visible,
body.gc-booking-v81 #step4 .slot:focus-visible,
body.gc-booking-v81 .gc-inline-summary-link:focus-visible{
  outline:3px solid var(--gc-primary,#0D806B)!important;
  outline-offset:2px!important;
}
body.gc-booking-v81 #step1 .gc-total{
  align-items:center!important;
}
body.gc-booking-v81 #step1 .gc-total span{
  font-size:.72rem!important;
  font-weight:730!important;
}
@media(max-width:380px){
  body.gc-booking-v81 #step3 .gc-address-grid{
    grid-template-columns:minmax(86px,.85fr) minmax(0,1.3fr)!important;
  }
  body.gc-booking-v81 #step3 .gc-address-region{
    grid-template-columns:minmax(0,1fr) 64px!important;
  }
  body.gc-booking-v81 #step4 #slots{
    gap:7px!important;
  }
  body.gc-booking-v81 #step4 #slots .slot{
    font-size:.8rem!important;
  }
}


/* Last-stage address and scheduling refinements — tenant-aware and accessible. */
body.gc-booking-v81 #step3 .gc-address-no-number {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  width:fit-content!important;
  max-width:100%!important;
  margin:-1px 0 3px!important;
  padding:5px 3px!important;
  min-height:37px!important;
  border:0!important;
  background:transparent!important;
  color:var(--gc-text,#17382E)!important;
  cursor:pointer!important;
  box-sizing:border-box!important;
}
body.gc-booking-v81 #step3 .gc-address-no-number input[type="checkbox"] {
  appearance:auto!important;
  display:block!important;
  flex:0 0 19px!important;
  width:19px!important;
  height:19px!important;
  min-width:19px!important;
  min-height:19px!important;
  max-width:19px!important;
  max-height:19px!important;
  padding:0!important;
  margin:0!important;
  accent-color:var(--gc-primary,#087B66)!important;
  border-radius:4px!important;
  cursor:pointer!important;
}
body.gc-booking-v81 #step3 .gc-address-no-number span {
  font-weight:740!important;
  font-size:.73rem!important;
  line-height:1.4!important;
  color:var(--gc-text,#17382E)!important;
}
body.gc-booking-v81 #step3 .gc-address-no-number input:focus-visible {
  outline:3px solid var(--gc-primary,#087B66)!important;
  outline-offset:3px!important;
}
body.gc-booking-v81 #step3 .gc-panel .gc-field #number:disabled {
  opacity:1!important;
  background:color-mix(in srgb,var(--gc-primary,#087B66) 7%,var(--gc-surface,#FFFFFF))!important;
  color:var(--gc-text,#17382E)!important;
  -webkit-text-fill-color:var(--gc-text,#17382E)!important;
  font-weight:770!important;
  cursor:not-allowed!important;
}
/* Same shopping-bag pictogram used in the cart and catalogue. */
body.gc-booking-v81 .gc-inline-summary-link .gc-inline-summary-icon {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:22px!important;
  height:24px!important;
  flex:0 0 22px!important;
}
body.gc-booking-v81 .gc-inline-summary-link .gc-inline-summary-icon svg {
  display:block!important;
  width:22px!important;
  height:22px!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  fill:none!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body.gc-booking-v81 #step3 #gc857-cep-status[data-state="success"] {
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
}
body.gc-booking-v81 #step3 #gc857-cep-status[data-state="success"]::before {
  content:"✓";
  display:grid;
  place-items:center;
  width:17px;
  height:17px;
  min-width:17px;
  border-radius:50%;
  background:var(--gc-primary,#087B66);
  color:var(--gc-on-primary,#FFFFFF);
  font-family:system-ui,sans-serif;
  font-weight:850;
  font-size:11px;
  line-height:1;
}
body.gc-booking-v81 #step4 .gc-date-readable {
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  min-height:22px!important;
  margin:-1px 2px 1px!important;
  color:var(--gc-primary-text,var(--gc-primary,#087B66))!important;
  font-size:.76rem!important;
  font-weight:760!important;
  line-height:1.4!important;
}
body.gc-booking-v81 #step4 .gc-date-readable[hidden] {
  display:none!important;
}
body.gc-booking-v81 #step4 #slotStatus[aria-busy="true"] {
  display:flex!important;
  gap:9px!important;
  align-items:center!important;
  color:var(--gc-primary-text,var(--gc-primary,#087B66))!important;
  font-weight:730!important;
}
body.gc-booking-v81 #step4 #slotStatus[aria-busy="true"]::before {
  content:"";
  display:inline-block;
  box-sizing:border-box;
  width:14px;
  height:14px;
  flex:0 0 14px;
  border:2px solid color-mix(in srgb,var(--gc-primary,#087B66) 22%,transparent);
  border-top-color:var(--gc-primary,#087B66);
  border-radius:50%;
  animation:gc-slots-loading-turn .85s linear infinite;
}
@keyframes gc-slots-loading-turn {
  to {transform:rotate(360deg)}
}
body.gc-booking-v81 #step4 #slotStatus[data-gc-availability="empty"],
body.gc-booking-v81 #step4 #slotStatus[data-gc-availability="error"] {
  font-weight:725!important;
  color:var(--gc-text,#17382E)!important;
}
body.gc-booking-v81 #step4 .gc-slots-recovery[hidden] {
  display:none!important;
}
body.gc-booking-v81 #step4 .gc-slots-recovery {
  display:flex!important;
  width:100%!important;
  max-width:100%!important;
  margin:1px 0 7px!important;
}
body.gc-booking-v81 #step4 .gc-slots-recovery-action {
  appearance:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:43px!important;
  padding:10px 14px!important;
  border:1px solid color-mix(in srgb,var(--gc-primary,#087B66) 32%,transparent)!important;
  border-radius:11px!important;
  background:color-mix(in srgb,var(--gc-primary,#087B66) 8%,var(--gc-surface,#FFFFFF))!important;
  color:var(--gc-primary-text,var(--gc-primary,#087B66))!important;
  font-size:.75rem!important;
  font-weight:810!important;
  line-height:1.3!important;
  cursor:pointer!important;
}
body.gc-booking-v81 #step4 .gc-slots-recovery-action:focus-visible {
  outline:3px solid var(--gc-primary,#087B66)!important;
  outline-offset:3px!important;
}
/* The keyboard already switches the bottom action bar into document flow.
   Reveal the last address field without a competing fixed overlay. */
body.gc-booking-v81.gc-keyboard-open #step3 .gc-panel {
  scroll-margin-bottom:32px!important;
}
body.gc-booking-v81.gc-keyboard-open #step3 #complement {
  scroll-margin-block:24px!important;
}
body.gc-booking-v81.gc-keyboard-open main.gc-main {
  padding-bottom:max(36px,env(safe-area-inset-bottom))!important;
}
@media(prefers-reduced-motion:reduce) {
  body.gc-booking-v81 #step4 #slotStatus[aria-busy="true"]::before {
    animation:none!important;
    border-top-color:var(--gc-primary,#087B66)!important;
  }
}


/* Schedule: preserve the approved three-column layout, but guarantee that the
   final row clears the sticky actions on short phones and landscape viewports. */
body.gc-booking-v81.gc-schedule-active:not(.gc-keyboard-open) main.gc-main{
  padding-bottom:calc(var(--gc-floating-footer-height,88px) + 24px + env(safe-area-inset-bottom))!important;
}
body.gc-booking-v81.gc-schedule-active #step4 .gc-panel,
body.gc-booking-v81.gc-schedule-active #step4 #slots{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:359px){
  body.gc-booking-v81 #step4 #slots{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.gc-booking-v81 #step4 #slots .slot{
    min-height:48px!important;
    font-size:.85rem!important;
  }
}
