/* Shared light-mode and mobile layout safeguards. */
html,body{width:100%;max-width:100%;overflow-x:clip}
@supports not (overflow:clip){html,body{overflow-x:hidden}}
*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas,iframe{max-width:100%}
main,header,footer,section,nav,.shell,.wrap,.app-wrap,.site-header,.site-head,.head-inner,.nav,.site-controls{min-width:0}
.site-controls{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;margin-left:auto;position:relative;z-index:54;flex:none}

/* Keep the desktop navigation aligned to the right of the logo. */
@media(min-width:981px){
  .site-header .nav-links{margin-left:auto}
  .site-header .site-controls{margin-left:0}
}

/* Six store cards now form a balanced 3 × 2 grid. */
.store-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;overflow:visible}
.store-grid .store-card{grid-column:auto!important;width:100%!important;justify-self:stretch!important}

/* Make the customer upload action impossible to miss. */
.upload-pulse{position:relative!important;animation:uploadGlow 1.45s ease-in-out infinite!important;box-shadow:0 0 0 0 rgba(255,48,56,.75),0 10px 26px rgba(255,48,56,.38)!important}
@keyframes uploadGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,48,56,.76),0 10px 24px rgba(255,48,56,.35)}50%{box-shadow:0 0 0 13px rgba(255,48,56,0),0 14px 34px rgba(255,48,56,.72)}}
.upload-pulse:hover{animation-play-state:paused!important;background:#ff3038!important}

/* Opening-day treatment for Serdika Center. */
.grand-opening{overflow:visible!important;border:2px solid #ff3038!important;box-shadow:0 18px 46px rgba(255,48,56,.22)!important;z-index:2}
.grand-opening .store-image{border-radius:22px 22px 0 0}
.grand-opening .store-image>img{object-fit:cover!important;object-position:left center!important;background:#111;padding:0}
.opening-ribbon{position:absolute;z-index:8;top:14px;right:-10px;padding:8px 14px;border-radius:999px 4px 4px 999px;background:#ff3038;color:#fff;font-size:.68rem;font-weight:950;letter-spacing:.11em;box-shadow:0 8px 20px rgba(255,48,56,.32)}
.launch-balloons{position:absolute;inset:-28px -22px auto;z-index:7;height:115px;pointer-events:none}
.launch-balloons i{position:absolute;width:27px;height:34px;border-radius:52% 48% 47% 53%;background:#ff3038;box-shadow:inset -5px -5px 10px rgba(0,0,0,.12),inset 5px 4px 8px rgba(255,255,255,.32);animation:balloon-float 2.8s ease-in-out infinite}
.launch-balloons i::before{content:"";position:absolute;left:10px;bottom:-6px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:7px solid currentColor;color:inherit}
.launch-balloons i::after{content:"";position:absolute;left:13px;top:39px;width:1px;height:42px;background:rgba(55,55,60,.38);transform:rotate(7deg);transform-origin:top}
.launch-balloons i:nth-child(1){left:0;top:21px;background:#ff3038;animation-delay:-.4s}.launch-balloons i:nth-child(2){left:28px;top:0;background:#111;animation-delay:-1.3s}.launch-balloons i:nth-child(3){left:61px;top:25px;background:#ff7b80;animation-delay:-2s}.launch-balloons i:nth-child(4){right:0;top:18px;background:#111;animation-delay:-.8s}.launch-balloons i:nth-child(5){right:28px;top:-2px;background:#ff3038;animation-delay:-1.7s}.launch-balloons i:nth-child(6){right:61px;top:27px;background:#ff7b80;animation-delay:-2.4s}
@keyframes balloon-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(3deg)}}

@media(max-width:820px){.store-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){.store-grid{grid-template-columns:1fr!important}.launch-balloons{inset:-24px -7px auto}.opening-ribbon{right:-5px}}
@media(prefers-reduced-motion:reduce){.upload-pulse,.upload-pulse::before,.upload-pulse::after,.launch-balloons i{animation:none!important}}

@media(max-width:780px){
  .site-controls{gap:6px}
  .site-head .brand{width:150px!important;height:auto!important;flex:0 1 150px}
  .site-head .head-inner{gap:8px!important}
  .site-head .locations-button{width:40px;height:40px;padding:0;justify-content:center}
  .site-head .locations-button span{display:none}
  .site-head .back-link{width:28px;overflow:hidden;white-space:nowrap;font-size:0;text-align:center}
  .site-head .back-link::before{content:"←";font-size:1.1rem}
  .site-header .nav{gap:8px!important}
  .site-header .brand{width:min(168px,43vw)!important;flex:0 1 min(168px,43vw)}
  .legal-back,.app-nav .back-link{font-size:0!important}
  .legal-back::before,.app-nav .back-link::before{content:"←";font-size:1.1rem}
  .app-logo{font-size:1.25rem!important}
}
@media(max-width:420px){
  .site-header .brand{width:min(145px,39vw)!important;flex-basis:min(145px,39vw)}
  .site-head .brand{width:132px!important;flex-basis:132px}
  .site-controls{gap:4px}
}
