/* absolutní cesty — podle skutečné složky z FileZilly
   (/vladimir_web/all-locations-page/fonts/…). Přesunete-li složku,
   upravte tyto čtyři cesty. */
@font-face{font-family:"Neue Haas Display";src:url(/vladimir_web/all-locations-page/fonts/NeueHaasDisplayLight.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Neue Haas Display";src:url(/vladimir_web/all-locations-page/fonts/NeueHaasDisplayRoman.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Neue Haas Display";src:url(/vladimir_web/all-locations-page/fonts/NeueHaasDisplayMediu.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Neue Haas Display";src:url(/vladimir_web/all-locations-page/fonts/NeueHaasDisplayBlack.woff) format("woff");font-weight:800;font-style:normal;font-display:swap}

.tm-loc{
  --orange:#F5481C;
  --black:#0E0E0E;
  --grey:#6A6A6A;
  --mute:#C8C8C8;
  --line:#CFCFCF;

  --radius:16px;
  --card-gap-x:40px;
  --card-gap-y:55px;
  --col-l:220px;
  --gutter:80px;

  /* výška pevné/lepivé hlavičky šablony — dej sem reálnou hodnotu,
     jinak bude sticky obsah (toc) při scrollování mizet pod hlavičkou.
     Pokud hlavička není fixed/sticky, nech 0px. */
  --tm-hdr-h:0px;

  --t-country:64px;
  --t-city:36px;
  --t-head:24px;
  --t-body:18px;
  --t-small:14px;

  box-sizing:border-box;
  color:var(--black);
  font:400 var(--t-body)/1.3 "Neue Haas Display",system-ui,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  max-width:1440px;
  margin:0 auto;
  padding:48px 40px 0;
}

.type-page .content-inner h1 {display: none;}

.tm-loc *,.tm-loc *::before,.tm-loc *::after{box-sizing:border-box}
.tm-loc img{display:block;max-width:100%}
.tm-loc button{background:none;border:0;padding:0;cursor:pointer}
.tm-loc a{color:inherit;text-decoration:none}
.tm-loc h1,.tm-loc h2,.tm-loc h3,.tm-loc p{margin:0}

/* ============================================================
   layout: contents column (left) + feed (right)
   ============================================================ */
.tm-loc__grid{
  display:grid;
  grid-template-columns:var(--col-l) minmax(0,1fr);
  column-gap:var(--gutter);
}

/* ---------- contents ---------- */
.tm-toc{
  position:sticky;
  top:calc(var(--tm-hdr-h) + 24px);
  align-self:start;
  max-height:calc(100vh - var(--tm-hdr-h) - 48px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:none;
  padding-bottom:40px;
}
.tm-toc::-webkit-scrollbar{width:0;height:0}

.tm-toc__group + .tm-toc__group{margin-top:34px}
.tm-toc__country,.tm-toc__city{
  display:block;text-align:left;width:100%;
  color:var(--mute);
  transition:color .15s ease;
}
.tm-toc__country{font-size:var(--t-head);font-weight:800;line-height:34px;text-transform:uppercase}
.tm-toc__city{font-size:var(--t-body);font-weight:400;line-height:32px}
.tm-toc__country:hover,.tm-toc__city:hover{color:var(--black)}
.tm-toc__country.is-on,.tm-toc__city.is-on{color:var(--black)}

/* ---------- feed ---------- */
.tm-feed{min-width:0}

.tm-cgroup + .tm-cgroup{
  border-top:1px solid var(--line);
  margin-top:52px;
  padding-top:48px;
}
.tm-cgroup__name{
  font-size:var(--t-country);font-weight:800;line-height:1;text-transform:uppercase;
  letter-spacing:-.01em;
  scroll-margin-top:calc(var(--tm-hdr-h) + 24px);
}
.tm-cgroup > .tm-city:first-of-type{margin-top:32px}

.tm-city + .tm-city{
  border-top:1px solid var(--line);
  margin-top:48px;
  padding-top:28px;
}
.tm-city__name{font-size:var(--t-city);font-weight:800;line-height:1;text-transform:uppercase}
.tm-city__name + .tm-cards{margin-top:28px}

.tm-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:var(--card-gap-x);
  row-gap:var(--card-gap-y);
}

/* ---------- card ---------- */
.tm-card{display:flex;flex-direction:column}
.tm-card__media{
  position:relative;
  display:block;
  aspect-ratio:324/416;
  border-radius:var(--radius);
  overflow:hidden;
  background:#E6E6E6;
}
.tm-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.tm-card:hover .tm-card__media img{transform:scale(1.03)}

.tm-card__egg{position:absolute;top:16px;right:16px;width:52px;height:52px;pointer-events:none}

.tm-card__name{margin-top:16px;font-size:var(--t-head);font-weight:800;line-height:1.05;text-transform:uppercase}
.tm-card__addr{margin-top:4px;font-size:var(--t-body);font-weight:400;line-height:1.25}
.tm-card__addr a:hover{color:var(--orange)}
.tm-card__meta{margin-top:8px;min-height:51px}
.tm-card__rule{border-top:1px solid var(--line)}

.tm-card__hours{padding-top:10px}
.tm-card__hours div{display:flex;justify-content:space-between;gap:16px;font-size:var(--t-small);line-height:20px}
.tm-card__hours span:first-child{font-weight:400}
.tm-card__hours span:last-child{font-weight:500}

.tm-card__note{padding-top:10px;font-size:var(--t-small);font-weight:500;line-height:20px}

.tm-card__soon{
  margin-top:12px;height:28px;border-radius:var(--radius);
  background:var(--orange);color:var(--black);
  font-size:var(--t-small);font-weight:800;text-transform:uppercase;
  display:grid;place-items:center;
}

@supports (grid-template-rows:subgrid){
  .tm-cards{row-gap:0;margin-bottom:calc(-1 * var(--card-gap-y))}
  .tm-cards > .tm-card{
    display:grid;grid-template-rows:subgrid;grid-row:span 4;
    padding-bottom:var(--card-gap-y);
  }
}

/* ============================================================
   mobile — toc becomes one swipeable strip above the cards
   ============================================================ */
@media (max-width:1180px){
  .tm-loc{padding-inline:24px;--gutter:48px}
}

@media (max-width:900px){
  .tm-loc{--t-country:36px;--t-city:24px;--card-gap-x:16px;--card-gap-y:36px;padding-top:24px}

  .tm-loc__grid{display:block}

  .tm-toc{
    position:sticky;top:var(--tm-hdr-h);z-index:5;
    max-height:none;margin:0 -24px 20px;
    display:flex;align-items:baseline;gap:20px;
    width:auto;
    overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;
    padding:16px 24px;
    background:#F6F6F6;
    -webkit-overflow-scrolling:touch;
  }
  .tm-toc__group{display:flex;align-items:baseline;gap:14px;margin:0 !important}
  .tm-toc__country,.tm-toc__city{width:auto;white-space:nowrap}
  .tm-toc__country{font-size:15px;line-height:22px}
  .tm-toc__city{font-size:15px;line-height:22px}

  .tm-cgroup + .tm-cgroup{margin-top:32px;padding-top:28px}
  .tm-cgroup > .tm-city:first-of-type{margin-top:18px}
  .tm-city + .tm-city{margin-top:32px;padding-top:18px}
  .tm-city__name + .tm-cards{margin-top:18px}
  .tm-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tm-card__name{font-size:18px;margin-top:12px}
  .tm-card__addr{font-size:15px}
  .tm-card__egg{width:40px;height:40px;top:10px;right:10px}
}
