:root {
  --bg: #f2f1ed;
  --blue: #0145b4;
  --orange: #ee7b2c;
  --ink: #141414;
  --white: #ffffff;

  --gutter: clamp(16px, 5vw, 48px);
  --col: 760px;            /* max width of the content column on desktop */
  --tight: -0.06em;        /* display letter-spacing */
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  font-size: clamp(15px, 3.9vw, 19px);
  line-height: 1.3;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body.menu-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

.wrap {
  width: 100%;
  max-width: calc(var(--col) + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---------- Shared display pieces ---------- */

.logo {
  display: inline-block;
  color: var(--blue);
  font-weight: 800;
  font-size: clamp(64px, 16vw, 140px);
  line-height: 0.8;
  letter-spacing: -0.075em;
  margin-left: -0.04em;
}

/* "PENJAČKI   KLUB   159" bar */
.wordmark {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-weight: 800;
  font-size: clamp(22px, 5.6vw, 56px);
  letter-spacing: -0.06em;
  line-height: 1;
}

/* Two words spread across the line at set positions (--a, --b as % of the line) */
.split {
  position: relative;
  display: block;
  font-weight: 800;
  letter-spacing: -0.05em;
  line-height: 1;
  white-space: nowrap;
}
.split > span:first-child { margin-left: var(--a, 0%); }
.split > span:nth-child(2) { position: absolute; left: var(--b); }

/* ---------- Menu toggle ---------- */

.menu-dot {
  position: fixed;
  z-index: 30;
  top: clamp(22px, 6.5vw, 48px);
  right: var(--gutter);
  width: clamp(26px, 5vw, 36px);
  height: clamp(26px, 5vw, 36px);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 0 2px var(--bg);   /* keeps the dot visible over photos and the blue footer */
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: scale(0.4);
  transition: opacity .3s, transform .3s cubic-bezier(.3,1.5,.6,1);
}
.menu-dot.is-visible,
body.menu-open .menu-dot { opacity: 1; pointer-events: auto; transform: scale(1); }
.menu-dot:hover { transform: scale(1.12); }
.menu-dot:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }

/* ---------- Menu ---------- */

.menu {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  padding: clamp(22px, 6.5vw, 48px) var(--gutter) clamp(16px, 4vw, 32px);
  background: var(--bg);
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s, visibility 0s .35s;
}
body.menu-open .menu { opacity: 1; visibility: visible; transition: opacity .35s; }

.menu__logo { align-self: flex-start; }

.menu__nav {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.55em;
  width: 100%;
  max-width: 640px;
  margin-inline: auto;
  font-size: clamp(28px, 7vw, 52px);
}
.menu__nav a { transition: color .2s, transform .45s cubic-bezier(.2,.8,.2,1); transform: translateY(14px); }
body.menu-open .menu__nav a { transform: none; }
.menu__nav a:hover, .menu__nav a:focus-visible { color: var(--blue); outline: none; }

.menu__wordmark { color: var(--blue); }

/* ---------- Hero ---------- */

.hero {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 480px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s;
}
.hero__video.is-playing { opacity: 1; }

.hero__number {
  position: relative;
  margin: 0;
  padding-right: 0.085em;  /* optical centring: the "1" is visually lighter than the "9" */
  color: var(--blue);
  font-weight: 800;
  font-size: 58vw;
  line-height: 1;
  letter-spacing: -0.085em;
  white-space: nowrap;
}

.hero__wordmark {
  position: absolute;
  left: var(--gutter);
  right: var(--gutter);
  bottom: clamp(16px, 4vw, 32px);
  color: var(--blue);
}

/* Landscape / desktop: size by height so it never gets too big */
@media (min-aspect-ratio: 4/5) {
  .hero__number { font-size: min(60vh, 46vw); }
}

/* ---------- About ---------- */

.about { padding-top: clamp(40px, 10vw, 96px); padding-bottom: clamp(56px, 14vw, 120px); }

.about__text {
  margin: 0 0 1.2em;
  color: var(--orange);
  font-weight: 500;
}

.hours {
  margin: 1.6em 0;
  color: var(--blue);
  font-weight: 700;
}
.hours div { display: flex; gap: 1em; }
.hours dt { min-width: 9.2em; }
.hours dd { margin: 0; }

.about__address { margin: 0; color: var(--blue); font-weight: 700; }

/* ---------- Offer / Cenovnik ---------- */

.offer { padding-bottom: clamp(64px, 16vw, 140px); }

.offer__list {
  width: 100%;
  max-width: 980px;
  margin-inline: auto;
  font-size: clamp(20px, 6.2vw, 60px);
  display: flex;
  flex-direction: column;
  gap: 1.1em;
}

.offer__item.split,
.offer__item > summary { padding-inline: 0.15em; }

details.offer__item > summary {
  list-style: none;
  cursor: pointer;
  transition: color .2s;
}
details.offer__item > summary::-webkit-details-marker { display: none; }
details.offer__item > summary:hover,
details.offer__item > summary:focus-visible,
details.offer__item[open] > summary { color: var(--blue); outline: none; }

.offer__body {
  max-width: calc(var(--col) + var(--gutter) * 2);
  margin: 2em auto 1.6em;   /* clear gap under the title so the details read as belonging to it */
  padding-inline: var(--gutter);
  font-size: clamp(15px, 3.9vw, 19px);
  letter-spacing: normal;
}
.offer__body p { margin: 0 0 1.2em; color: var(--blue); font-weight: 500; }

/* Opening times inside an offer, e.g. "RADNIM DANIMA   18–20 ČASOVA" */
.schedule {
  width: 100%;
  margin-bottom: 1.4em;
  border-collapse: collapse;
  color: var(--blue);
  font-weight: 700;
  text-transform: uppercase;
}
.schedule th { text-align: left; font-weight: inherit; padding: 0.1em 0; }
.schedule td { text-align: right; }

.features {
  margin: -0.6em 0 1.6em;
  padding: 0;
  list-style: none;
  color: var(--blue);
  font-weight: 500;
}
.features li { margin-bottom: 0.2em; }

.prices {
  width: 100%;
  margin-bottom: 1.4em;
  border-collapse: collapse;
  font-size: 1.3em;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.prices th { text-align: left; font-weight: inherit; padding: 0.1em 1em 0.1em 0; line-height: 1.15; }
.prices td { text-align: right; vertical-align: top; padding-top: 0.1em; }

/* ---------- Gallery ---------- */

/* Edge-to-edge swipe strip: each photo is narrower than the screen so the next one peeks in */
.gallery { position: relative; }

.gallery__track {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.gallery__track::-webkit-scrollbar { display: none; }
.gallery__track:focus-visible { outline: 3px solid var(--orange); outline-offset: -3px; }

.gallery__slide {
  flex: 0 0 84%;
  margin: 0;
  aspect-ratio: 3 / 4;
  scroll-snap-align: start;
  overflow: hidden;
  background: #ddd;
}
.gallery__slide img { width: 100%; height: 100%; object-fit: cover; }

@media (min-width: 700px) { .gallery__slide { flex-basis: 46%; } }
@media (min-width: 1100px) { .gallery__slide { flex-basis: 31%; } }

/* Arrow buttons sit over the photos, desktop/mouse only */
.gallery__nav {
  position: absolute;
  right: var(--gutter);
  bottom: var(--gutter);
  display: none;
  gap: 10px;
}
.gallery__btn {
  width: 52px; height: 52px;
  border: 0;
  border-radius: 50%;
  background: var(--blue);
  color: var(--white);
  font: 600 20px/1 "Inter", sans-serif;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.gallery__btn:hover { background: var(--orange); transform: scale(1.06); }
@media (hover: hover) and (pointer: fine) { .gallery__nav { display: flex; } }

/* ---------- Location ---------- */

.location { padding-top: clamp(56px, 14vw, 120px); }

.location__lead { margin: 0 0 1.4em; font-weight: 700; }

.transit { margin: 0 0 clamp(32px, 8vw, 64px); font-weight: 700; }
.transit div { display: flex; gap: 0.3em; }
.transit dd { margin: 0; }

.map { position: relative; display: block; overflow: hidden; }
.map img { width: 100%; height: clamp(240px, 60vw, 520px); object-fit: cover; }
.map__cta {
  position: absolute;
  right: var(--gutter);
  bottom: 14px;
  padding: 0.5em 0.9em;
  background: var(--blue);
  color: var(--white);
  font-size: 0.8em;
  font-weight: 700;
  opacity: 0;
  transition: opacity .2s;
}
.map:hover .map__cta, .map:focus-visible .map__cta { opacity: 1; }
@media (hover: none) { .map__cta { opacity: 1; } }

/* ---------- Footer ---------- */

.footer {
  background: var(--blue);
  color: var(--white);
  padding: clamp(24px, 5vw, 48px) 0 clamp(28px, 6vw, 56px);
}
.footer__inner {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.footer__wordmark { margin-bottom: clamp(24px, 6vw, 48px); }

.footer__rows {
  display: flex;
  flex-direction: column;
  gap: 1.3em;
  font-size: clamp(12px, 3.3vw, 17px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.footer__row { display: flex; justify-content: space-between; gap: 1em; }
.footer__row > :last-child { text-align: right; }
.footer a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Motion preferences ---------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0s !important; }
  .hero__video { display: none; }
}
