
/* v77: premium opening hours section */
.opening-hours-section-v77{
  position:relative;
  overflow:hidden;
  padding:72px 0 82px!important;
  background:
    radial-gradient(circle at 14% 44%,rgba(199,146,50,.07),transparent 28%),
    radial-gradient(circle at 86% 55%,rgba(199,146,50,.08),transparent 30%),
    linear-gradient(180deg,#fbf4e9 0%,#fffaf3 100%)!important;
}

.opening-hours-section-v77:before{
  content:"";
  position:absolute;
  left:-150px;
  top:50px;
  width:360px;
  height:360px;
  border-radius:50%;
  border:7px double rgba(185,134,45,.12);
  background:repeating-conic-gradient(rgba(185,134,45,.07) 0 1deg,transparent 1deg 10deg);
  opacity:.42;
  pointer-events:none;
}

.opening-hours-card-v77{
  position:relative;
  z-index:1;
  width:min(1420px,calc(100% - 72px))!important;
  max-width:1420px!important;
  display:grid!important;
  grid-template-columns:.92fr 1.08fr!important;
  gap:70px!important;
  align-items:center!important;
  padding:48px 56px!important;
  border-radius:30px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,252,246,.92))!important;
  border:1px solid rgba(219,190,139,.55)!important;
  box-shadow:0 28px 80px rgba(79,53,16,.10), inset 0 1px 0 rgba(255,255,255,.90)!important;
}

.opening-hours-card-v77:before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.58);
  pointer-events:none;
}

.opening-hours-copy-v77{
  position:relative;
  min-height:540px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  max-width:620px;
}

.opening-hours-copy-v77 .eyebrow{
  margin:0 0 14px!important;
  color:#a66f17!important;
  font-size:15px!important;
  letter-spacing:.28em!important;
  font-weight:800!important;
}

.opening-hours-copy-v77 h2{
  margin:0 0 22px!important;
  font-family:"Cormorant Garamond","Playfair Display",Georgia,serif!important;
  font-size:clamp(54px,4.6vw,72px)!important;
  line-height:.96!important;
  letter-spacing:-.04em!important;
  font-weight:700!important;
  color:#0e1827!important;
}

.opening-range-v77{
  width:max-content;
  max-width:100%;
  display:inline-flex!important;
  align-items:center;
  gap:10px;
  margin:0 0 26px!important;
  padding:12px 17px!important;
  border-radius:999px!important;
  color:#895b14!important;
  background:#fff8e9!important;
  border:1px solid rgba(203,151,54,.50)!important;
  box-shadow:0 9px 26px rgba(97,64,15,.05)!important;
  font-size:16px!important;
  font-weight:700!important;
}

.opening-range-v77 strong{
  font-weight:800;
}

.opening-range-icon{
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  color:#b57b22;
}

.opening-range-icon svg{
  width:21px;
  height:21px;
}

.opening-range-icon svg rect,
.opening-range-icon svg path{
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.opening-hours-note-v77{
  max-width:560px;
  margin:0 0 34px!important;
  color:#536071!important;
  font-size:20px!important;
  line-height:1.55!important;
}

.opening-info-grid-v77{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
  margin:0 0 26px;
}

.opening-mini-card-v77{
  position:relative;
  min-height:158px;
  padding:25px 26px 22px;
  border-radius:16px;
  background:linear-gradient(180deg,#fffdf8,#fbf4ea);
  border:1px solid rgba(212,168,89,.38);
  box-shadow:0 16px 38px rgba(68,45,14,.07);
  overflow:hidden;
}

.opening-mini-card-v77.today.is-open{
  background:linear-gradient(180deg,#f7fff9,#fbfff9);
  border-color:rgba(48,171,89,.38);
  box-shadow:0 16px 42px rgba(38,126,66,.10);
}

.opening-mini-card-v77.today.is-closed{
  background:linear-gradient(180deg,#fff8f6,#fffdf8);
  border-color:rgba(210,135,98,.36);
}

.opening-mini-icon-v77{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:50%;
  margin-bottom:18px;
  color:#b57b22;
  background:rgba(199,146,50,.12);
}

.opening-mini-card-v77.today.is-open .opening-mini-icon-v77{
  color:#146d39;
  background:rgba(35,172,83,.13);
}

.opening-mini-icon-v77 svg{
  width:28px;
  height:28px;
}

.opening-mini-icon-v77 svg circle,
.opening-mini-icon-v77 svg path{
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.opening-mini-card-v77 strong{
  display:block;
  margin:0 0 7px;
  color:#11151d;
  font-size:21px;
  line-height:1.14;
  font-weight:800;
}

.opening-mini-card-v77 b{
  display:block;
  margin:0 0 12px;
  color:#166f3a;
  font-size:30px;
  line-height:1;
  letter-spacing:-.03em;
}

.opening-mini-card-v77 small{
  display:block;
  color:#277845;
  font-size:16px;
  font-weight:700;
}

.opening-mini-card-v77 span:not(.opening-mini-icon-v77){
  display:block;
  color:#69717c;
  font-size:18px;
  line-height:1.36;
}

.opening-mini-card-v77.address em{
  position:absolute;
  right:-7px;
  bottom:-8px;
  width:126px;
  height:64px;
  opacity:.25;
  background:
    linear-gradient(180deg,transparent 38%,#c69031 39% 42%,transparent 43%),
    linear-gradient(90deg,transparent 0 18%,#c69031 18% 21%,transparent 22% 42%,#c69031 42% 45%,transparent 46% 66%,#c69031 66% 69%,transparent 70%),
    linear-gradient(135deg,transparent 0 44%,#c69031 44% 48%,transparent 49%),
    linear-gradient(180deg,transparent 0 60%,#c69031 61% 65%,transparent 66%);
}

.opening-actions-v77{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
}

.opening-actions-v77 a{
  min-height:64px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 22px;
  border-radius:12px;
  background:#fffbf3;
  border:1px solid rgba(208,164,86,.46);
  color:#151922!important;
  font-size:18px;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 9px 24px rgba(67,44,13,.05);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.opening-actions-v77 a:hover{
  transform:translateY(-1px);
  border-color:rgba(184,123,30,.70);
  box-shadow:0 14px 30px rgba(67,44,13,.09);
}

.opening-actions-v77 a span{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  color:#b57b22;
}

.opening-actions-v77 a svg{
  width:26px;
  height:26px;
}

.opening-actions-v77 a svg path,
.opening-actions-v77 a svg circle{
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.opening-actions-v77 a i{
  margin-left:auto;
  font-style:normal;
  color:#b57b22;
  font-size:28px;
  line-height:1;
}

.opening-week-box-v77{
  position:relative;
  align-self:stretch;
  min-height:500px;
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  padding:26px 22px!important;
  border-radius:24px!important;
  color:#fff;
  background:
    radial-gradient(circle at 77% 20%,rgba(199,146,50,.08),transparent 35%),
    linear-gradient(145deg,#171716 0%,#0c0c0b 100%)!important;
  border:1px solid rgba(202,151,58,.65)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.04)!important;
  overflow:hidden;
}

.opening-week-box-v77:before{
  content:"";
  position:absolute;
  right:-80px;
  top:-80px;
  width:260px;
  height:260px;
  border-radius:50%;
  border:6px double rgba(201,151,58,.10);
  opacity:.8;
  pointer-events:none;
}

.opening-week-label-v77{
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 0 2px;
  padding:8px 15px;
  border-radius:999px;
  color:#e6bd62;
  background:rgba(199,146,50,.07);
  border:1px solid rgba(199,146,50,.52);
  font-size:14px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.opening-week-label-v77 span{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#e6bd62;
  box-shadow:0 0 12px rgba(230,189,98,.55);
}

.opening-week-row-v77{
  position:relative;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px;
  min-height:63px;
  padding:14px 19px!important;
  border-radius:16px!important;
  color:#fff;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.055))!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
}

.opening-day-v77{
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.opening-day-v77 strong{
  color:#fff!important;
  font-size:18px!important;
  line-height:1;
}

.opening-day-v77 b{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:0 12px;
  border-radius:999px;
  color:#06190e;
  background:#4ee087;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.opening-day-v77 em{
  flex-basis:100%;
  margin-top:6px;
  color:#3bd373;
  font-style:normal;
  font-size:15px;
  font-weight:700;
}

.opening-day-v77 em.closed{
  color:#e6bd62;
}

.opening-week-row-v77 > span{
  margin-left:auto;
  color:#ffe29c!important;
  font-size:20px!important;
  font-weight:900!important;
  white-space:nowrap;
}

.opening-week-row-v77.today-open{
  min-height:88px;
  background:linear-gradient(180deg,rgba(24,104,56,.36),rgba(8,54,31,.38))!important;
  border-color:rgba(56,219,111,.74)!important;
  box-shadow:0 0 28px rgba(42,199,92,.13), inset 0 1px 0 rgba(255,255,255,.06)!important;
}

.opening-week-row-v77.today-open > span{
  color:#a4ffc6!important;
}

.opening-week-row-v77.today-closed{
  background:linear-gradient(180deg,rgba(89,53,26,.28),rgba(43,31,20,.38))!important;
  border-color:rgba(230,189,98,.35)!important;
}

@media(max-width:1180px){
  .opening-hours-card-v77{
    width:min(1120px,calc(100% - 44px))!important;
    gap:34px!important;
    padding:38px!important;
  }

  .opening-hours-copy-v77 h2{
    font-size:54px!important;
  }

  .opening-info-grid-v77,
  .opening-actions-v77{
    gap:18px;
  }

  .opening-mini-card-v77{
    padding:22px;
  }

  .opening-mini-card-v77 b{
    font-size:25px;
  }
}

@media(max-width:900px){
  .opening-hours-section-v77{
    padding:44px 0 58px!important;
  }

  .opening-hours-card-v77{
    grid-template-columns:1fr!important;
    gap:28px!important;
    width:calc(100% - 28px)!important;
    padding:26px!important;
    border-radius:24px!important;
  }

  .opening-hours-copy-v77{
    min-height:auto;
    max-width:none;
  }

  .opening-hours-copy-v77 h2{
    font-size:44px!important;
  }

  .opening-hours-note-v77{
    font-size:17px!important;
    margin-bottom:24px!important;
  }

  .opening-week-box-v77{
    min-height:auto;
    padding:18px!important;
    border-radius:20px!important;
  }
}

@media(max-width:640px){
  .opening-hours-section-v77{
    padding:34px 0 48px!important;
  }

  .opening-hours-card-v77{
    width:calc(100% - 20px)!important;
    padding:20px 16px!important;
    border-radius:22px!important;
  }

  .opening-hours-copy-v77 .eyebrow{
    font-size:12px!important;
    letter-spacing:.22em!important;
  }

  .opening-hours-copy-v77 h2{
    font-size:38px!important;
  }

  .opening-range-v77{
    font-size:13px!important;
    padding:10px 12px!important;
  }

  .opening-hours-note-v77{
    font-size:15.5px!important;
  }

  .opening-info-grid-v77{
    grid-template-columns:1fr;
    gap:14px;
  }

  .opening-actions-v77{
    grid-template-columns:1fr;
    gap:12px;
  }

  .opening-mini-card-v77{
    min-height:0;
    padding:18px;
  }

  .opening-mini-icon-v77{
    margin-bottom:12px;
  }

  .opening-mini-card-v77 strong{
    font-size:19px;
  }

  .opening-mini-card-v77 b{
    font-size:25px;
  }

  .opening-week-row-v77{
    min-height:58px;
    padding:13px 14px!important;
  }

  .opening-day-v77 strong{
    font-size:16px!important;
  }

  .opening-week-row-v77 > span{
    font-size:17px!important;
  }

  .opening-week-row-v77.today-open{
    min-height:82px;
  }
}


/* v77.1: mobile wraca do prostego układu — tylko tytuł, tydzień i tabela godzin */
@media(max-width:900px){
  .opening-hours-section-v77{
    padding:34px 0 46px!important;
  }

  .opening-hours-card-v77{
    display:block!important;
    width:calc(100% - 24px)!important;
    padding:24px 18px!important;
    border-radius:22px!important;
  }

  .opening-hours-card-v77:before{
    inset:8px!important;
    border-radius:18px!important;
  }

  .opening-hours-copy-v77{
    min-height:0!important;
    display:block!important;
    margin-bottom:20px!important;
  }

  .opening-hours-copy-v77 .eyebrow{
    margin-bottom:10px!important;
  }

  .opening-hours-copy-v77 h2{
    margin-bottom:16px!important;
    font-size:40px!important;
    line-height:1!important;
  }

  .opening-range-v77{
    margin-bottom:0!important;
  }

  .opening-hours-note-v77,
  .opening-info-grid-v77,
  .opening-actions-v77{
    display:none!important;
  }

  .opening-week-box-v77{
    width:100%!important;
    min-height:0!important;
  }
}

@media(max-width:640px){
  .opening-hours-copy-v77 h2{
    font-size:36px!important;
  }

  .opening-range-v77{
    width:100%!important;
    justify-content:center!important;
    text-align:center!important;
  }

  .opening-week-label-v77{
    font-size:12px!important;
    padding:7px 12px!important;
  }

  .opening-week-row-v77{
    min-height:56px!important;
  }

  .opening-week-row-v77.today-open{
    min-height:74px!important;
  }
}
