/* ============================================
   CSS VARIABLES – Design System
   ============================================ */
:root {
  /* Brand Colors – Black & Gold */
  --color-dark: #16181D;
  --color-gold: #D4A832;
  --color-gold-hover: #b8922a;
  --color-bg: #ffffff;
  --color-bg-warm: #f8f7f4;
  --color-bg-dark: #16181D;
  --color-text: #333333;
  --color-text-light: #6b6b6b;
  --color-border: rgba(26, 26, 26, 0.1);

  /* Typography */
  --font-body: 'Open Sans', sans-serif;
  --font-heading: 'Outfit', sans-serif;

  /* Spacing – 8 px grid */
  --sp-xs: 0.5rem;
  --sp-sm: 1rem;
  --sp-md: 2rem;
  --sp-lg: 3rem;
  --sp-xl: 4rem;
  --sp-2xl: 6rem;
  --sp-3xl: 8rem;

  /* Radius */
  --r-sm: 8px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 32px;

  /* Shadows */
  --shadow-sm: 0 2px 8px rgba(0,0,0,.05);
  --shadow-md: 0 8px 24px rgba(0,0,0,.08);

  /* Easing */
  --ease: cubic-bezier(.4, 0, .2, 1);

  /* Heading scale */
  --h1-size: clamp(1.85rem, 5.2vw, 4rem);
  --h2-size: clamp(1.8rem, 4vw, 3rem);
}

/* ============================================
   RESET
   ============================================ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { font-size: 16px; scroll-behavior: smooth; overflow-x: clip; }
body {
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.65;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
img, iframe, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }

/* ============================================
   TYPOGRAPHY
   ============================================ */
h1, h2, h3, h4 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.15;
  color: var(--color-dark);
}
h1 { font-size: var(--h1-size); letter-spacing: -0.02em; }
h2 { font-size: var(--h2-size); letter-spacing: -0.01em; }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.7rem); }
p { max-width: 65ch; margin-bottom: var(--sp-sm); }

/* ============================================
   LAYOUT
   ============================================ */
.wrap {
  width: min(85%, 1320px);
  margin: 0 auto;
}

/* ============================================
   HEADER
   ============================================ */
.site-header {
  position: fixed; inset: 0 0 auto 0;
  z-index: 1000;
  transition: background .35s var(--ease), box-shadow .35s var(--ease);
}

body.home .site-header { background: transparent; }
body.home .site-header.scrolled {
  background: rgba(22,24,29,.88);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 30px rgba(0,0,0,.25);
}

body:not(.home) .site-header {
  background: var(--color-dark);
  backdrop-filter: none;
  box-shadow: none;
}

.header-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem clamp(1.5rem, 4vw, 3rem);
}

.site-logo img {
  height: 38px;
  width: auto;
  max-width: min(50vw, 260px);
  filter: brightness(0) invert(1);
  display: block;
}

.nav-list {
  display: flex;
  list-style: none;
  gap: var(--sp-xs);
  align-items: center;
}

.nav-list a {
  display: inline-flex;
  align-items: center;
  padding: .5rem .9rem;
  font-size: .84rem;
  font-weight: 500;
  color: rgba(255,255,255,.85);
  text-transform: uppercase;
  letter-spacing: .6px;
  border-radius: var(--r-sm);
  transition: color .2s, background .2s;
}

.nav-list a:hover {
  color: #fff;
  background: rgba(255,255,255,.1);
}

.nav-list a[aria-current="page"] {
  color: var(--color-gold) !important;
  background: transparent !important;
}

.home-icon svg {
  width: 1rem; height: 1rem;
  fill: currentColor;
}

.burger {
  display: none;
  background: none; border: none;
  color: #fff; font-size: 1.5rem;
  cursor: pointer; padding: .4rem;
  z-index: 1001;
}

/* ============================================
   HERO
   ============================================ */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding-top: clamp(92px, 11vh, 126px);
  padding-bottom: clamp(68px, 9vh, 108px);
}

.hero-bg {
  position: absolute; inset: 0;
}

.hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-bg::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(0,0,0,.65);
}

.hero-body {
  position: relative; z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #fff;
  max-width: 980px;
  width: min(92%, 980px);
  margin: 0 auto;
  padding: 0 var(--sp-md);
}

.hero-body h1 {
  color: #fff;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: .95rem;
  font-size: clamp(2.2rem, 5.5vw, 4.2rem);
  line-height: 1.12;
  letter-spacing: .01em;
  text-shadow: 0 2px 20px rgba(0,0,0,.3);
}
.hero-main { display: block; width: 100%; text-align: center; }
.hero-sub {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 1em;
  letter-spacing: .01em;
  opacity: .92;
  margin-top: .05em;
}
.hero-accent {
  color: var(--color-gold);
  font-style: normal;
}

.hero-body > p {
  font-size: clamp(1rem, 1.15vw, 1.4rem);
  max-width: 64ch;
  opacity: .95;
  line-height: 1.5;
  letter-spacing: .008em;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2.2rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 2.8rem;
}

.hero .btn {
  min-height: 48px;
  padding: .8rem 1.8rem;
  border-radius: 22px;
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .03em;
}

.hero .btn-gold {
  box-shadow: 0 10px 28px rgba(212,168,50,.32);
}

.hero .btn-outline {
  border: 2px solid rgba(255,255,255,.72);
  background: rgba(0,0,0,.16);
}

.hero .btn-outline:hover {
  background: rgba(255,255,255,.16);
  color: #fff;
  border-color: rgba(255,255,255,.95);
}

.hero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1.15rem;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.8rem;
}

.hero-tag {
  color: rgba(255,255,255,.92);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .25px;
  line-height: 1.2;
  position: relative;
  padding-right: 1.25rem;
}

.hero-tag:last-child {
  padding-right: 0;
}

.hero-tag:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 50%;
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-radius: 50%;
  background: rgba(212,168,50,.95);
}

/* ============================================
   HERO EDGE
   ============================================ */
.hero::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: clamp(52px, 7vw, 90px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cpath d='M0,72 C240,118 420,18 600,60 C780,102 960,14 1200,66 L1200,120 L0,120 Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat bottom / 100% 100%;
  z-index: 4;
  pointer-events: none;
}

/* ============================================
   BUTTONS
   ============================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .8rem 1.8rem;
  font-size: .85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .5px;
  border-radius: var(--r-md);
  border: none;
  cursor: pointer;
  transition: all .3s var(--ease);
  text-decoration: none;
}

.btn-gold {
  background: var(--color-gold);
  color: #fff;
  box-shadow: 0 4px 16px rgba(212,168,50,.25);
}
.btn-gold:hover {
  background: var(--color-gold-hover);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(212,168,50,.3);
}

.btn-outline {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.4);
}
.btn-outline:hover {
  background: #fff;
  color: var(--color-dark);
  border-color: #fff;
}

.btn-outline-dark {
  background: transparent;
  color: var(--color-dark);
  border: 1.5px solid rgba(22,24,29,.3);
}
.btn-outline-dark:hover {
  background: var(--color-dark);
  color: #fff;
}

.btn-icon {
  width: 1rem; height: 1rem;
  display: inline-flex; align-items: center; justify-content: center;
  margin-right: .4rem; flex-shrink: 0;
}
.btn-icon svg { width: 100%; height: 100%; fill: currentColor; }

/* ============================================
   SECTION HELPERS
   ============================================ */
.section { padding: var(--sp-3xl) 0; }

/* Tighter transition from homepage hero to first content section */
body.home main { margin-top: -1px; position: relative; background: var(--color-bg); }
#vyrobky-preview { padding-top: var(--sp-xl); }

.section-label {
  display: inline-block;
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--color-gold);
  margin-bottom: var(--sp-sm);
}

.section-title { margin-bottom: var(--sp-sm); }

.section-desc {
  color: var(--color-text-light);
  max-width: 58ch;
  margin-bottom: var(--sp-xl);
}

.section-center { text-align: center; }
.section-center .section-desc { margin-left: auto; margin-right: auto; }
.section-cta { text-align: center; margin-top: var(--sp-lg); }

/* ============================================
   TRADITION STRIP – numbers / facts
   ============================================ */
.tradition {
  background: transparent;
  color: var(--color-dark);
  padding: var(--sp-sm) 0 var(--sp-md);
}

.page-o-nas .tradition .wrap {
  max-width: none;
}

.tradition-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-md);
  text-align: center;
  padding: 1rem 1.2rem;
  background: var(--color-bg-warm);
  border: 1px solid rgba(212,168,50,.22);
  border-radius: var(--r-lg);
}

.tradition-item {
  padding: .25rem .15rem;
}

.tradition-item strong {
  display: block;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--color-gold);
  line-height: 1.1;
  margin-bottom: .3rem;
}

.tradition-item span {
  font-size: .88rem;
  color: var(--color-text-light);
  letter-spacing: .3px;
}

.page-o-nas .onas-photo-col {
  display: flex;
  flex-direction: column;
  gap: var(--sp-sm);
}

.page-o-nas .tradition-under-text {
  padding: 0;
  width: min(100%, 520px);
  margin-top: var(--sp-sm);
}

.page-o-nas .tradition-under-text .tradition-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: .45rem;
  padding: .35rem 0;
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.page-o-nas .tradition-under-text .tradition-item {
  padding: .12rem .08rem;
}

.page-o-nas .tradition-under-text .tradition-item strong {
  font-size: clamp(1.45rem, 2.6vw, 2.1rem);
  margin-bottom: .15rem;
}

.page-o-nas .tradition-under-text .tradition-item span {
  font-size: .78rem;
}

/* ============================================
   PRODUCT CARDS – image hover reveal
   ============================================ */
.products-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-md);
}

.product-card {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  cursor: default;
}

.product-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}

.product-card:hover img { transform: scale(1.06); }

.product-card-overlay {
  position: absolute; inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.4rem;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.55) 0%,
    rgba(0,0,0,.08) 40%,
    rgba(0,0,0,0) 100%
  );
  transition: background .4s var(--ease);
}

.product-card:hover .product-card-overlay {
  background: linear-gradient(
    to top,
    rgba(0,0,0,.85) 0%,
    rgba(0,0,0,.4) 50%,
    rgba(0,0,0,.05) 100%
  );
}

.product-card h3 {
  color: #fff;
  font-size: 1.25rem;
  margin-bottom: 0;
  text-shadow: 0 2px 10px rgba(0,0,0,.5);
}

.product-card p {
  color: rgba(255,255,255,.9);
  font-size: .86rem;
  line-height: 1.5;
  max-width: 26ch;
  margin: 0;
  text-shadow: 0 1px 6px rgba(0,0,0,.4);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .4s var(--ease), opacity .4s var(--ease), margin .4s var(--ease);
}

.product-card:hover p {
  max-height: 4rem;
  opacity: 1;
  margin-top: .4rem;
}

/* ============================================
   REVIEWS
   ============================================ */
.reviews { background: var(--color-bg-warm); }

.reviews-layout {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: var(--sp-lg);
  align-items: stretch;
}

.review-highlight {
  background: var(--color-dark);
  border-radius: var(--r-lg);
  padding: var(--sp-lg);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}

.review-highlight .review-label {
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: rgba(255,255,255,.55);
  margin-bottom: .4rem;
}

.review-highlight .review-score {
  font-family: var(--font-heading);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.1;
}

.review-highlight .review-stars {
  color: var(--color-gold);
  font-size: 1.15rem;
  letter-spacing: 2px;
  margin: .4rem 0 1rem;
}

.review-highlight .review-sub {
  font-size: .88rem;
  color: rgba(255,255,255,.7);
  margin-bottom: var(--sp-md);
}

.review-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-md);
}

.review-card {
  background: #fff;
  border-radius: var(--r-lg);
  padding: 1.6rem;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.review-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.review-card .badge {
  display: inline-block;
  padding: .2rem .6rem;
  font-size: .72rem;
  font-weight: 600;
  background: rgba(22,24,29,.06);
  color: var(--color-dark);
  border-radius: 999px;
  margin-bottom: .7rem;
}

.review-card .quote {
  font-size: .95rem;
  line-height: 1.7;
  color: var(--color-text);
  margin-bottom: .8rem;
}

.review-card .author {
  font-size: .85rem;
  font-weight: 600;
  color: var(--color-dark);
  margin: 0;
}

/* ============================================
   HOMEPAGE CONTACT (kontakt2 style)
   ============================================ */
.hp-contact-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-bottom: 3rem;
}
.hp-contact-block {
  text-align: center;
  padding: 1.5rem 1rem;
}
.hp-contact-icon {
  width: 56px; height: 56px;
  margin: 0 auto 1.1rem;
  display: flex; align-items: center; justify-content: center;
  background: rgba(212,168,50,.08);
  border-radius: 50%;
}
.hp-contact-icon svg { width: 26px; height: 26px; fill: var(--color-gold); }
.hp-contact-block h3 {
  font-size: .78rem; font-weight: 600;
  margin-bottom: .6rem;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: var(--color-gold);
}
.hp-contact-value {
  display: block;
  font-size: 1.05rem;
  color: var(--color-text);
  padding: .2rem 0;
  transition: color .2s;
}
a.hp-contact-value:hover { color: var(--color-gold); }
.hp-contact-label {
  font-weight: 600;
  color: var(--color-dark);
}
.hp-contact-sub {
  font-size: .85rem;
  color: var(--color-text-light);
  margin-top: .35rem;
}

.hp-hours-strip {
  background: var(--color-bg-warm);
  border-radius: var(--r-lg);
  padding: 2rem 2.5rem;
  max-width: 520px;
  margin: 0 auto;
}
.hp-hours-label {
  font-family: var(--font-heading);
  font-size: .78rem; font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: var(--color-gold);
  margin-bottom: .4rem;
}
.hp-hours-title {
  font-size: clamp(1.2rem, 2vw, 1.5rem);
  margin-bottom: 1rem;
}
.hp-hours-table { width: 100%; }
.hp-hour-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: .7rem 0;
  border-bottom: 1px solid rgba(22,24,29,.06);
  font-size: .95rem;
}
.hp-hour-row:last-child { border-bottom: none; }
.hp-hour-day { color: var(--color-text-light); }
.hp-hour-time { font-weight: 600; color: var(--color-dark); }
.hp-hour-closed .hp-hour-time { color: var(--color-text-light); font-weight: 400; }
.hp-notes {
  list-style: none; margin-top: 1.3rem;
  display: flex; flex-direction: column; gap: .35rem;
}
.hp-notes li {
  position: relative; padding-left: .9rem;
  font-size: .88rem; color: var(--color-text-light);
}
.hp-notes li::before {
  content: ''; position: absolute; left: 0; top: .55em;
  width: 5px; height: 5px; border-radius: 50%; background: var(--color-gold);
}

/* ============================================
   CTA / CONTACT STRIP
   ============================================ */
.cta-strip {
  border-top: 1px solid var(--color-border);
}

.cta-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-md);
}

.cta-card {
  background: #fff;
  border-radius: var(--r-lg);
  padding: var(--sp-lg);
  border: 1px solid var(--color-border);
  text-align: center;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}

.cta-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

.cta-card h3 { font-size: 1.1rem; margin-bottom: .6rem; }
.cta-card p { margin: 0 auto .3rem; color: var(--color-text-light); font-size: .92rem; }

.cta-hours { text-align: left; max-width: 240px; margin: 0 auto; }

.cta-hours-row {
  display: flex;
  justify-content: space-between;
  padding: .35rem 0;
  border-bottom: 1px solid rgba(22,24,29,.06);
  font-size: .9rem;
}

.cta-hours-row:last-child { border-bottom: none; }
.cta-hours-row strong { font-weight: 600; color: var(--color-dark); }

.cta-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .4rem 0;
  color: var(--color-text);
  font-size: .92rem;
  transition: color .2s;
}

.cta-links a:hover { color: var(--color-gold); }

.cta-links svg {
  width: .95rem; height: .95rem;
  fill: var(--color-gold);
  flex-shrink: 0;
}

/* ============================================
   FOOTER
   ============================================ */
.site-footer {
  background: var(--color-dark);
  color: #fff;
  padding: var(--sp-xl) 0 var(--sp-md);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr .9fr .9fr;
  gap: var(--sp-lg);
  margin-bottom: var(--sp-lg);
}

.footer-col h4 {
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: .7rem;
}

.footer-col p, .footer-col a {
  color: rgba(255,255,255,.7);
  font-size: .85rem;
  line-height: 1.6;
}

.footer-col a:hover { color: var(--color-gold); }

.footer-logo {
  display: block;
  height: 32px; width: auto;
  max-width: 200px;
  filter: brightness(0) invert(1);
  margin-top: 1.2rem;
}

.footer-contact-row {
  display: flex; align-items: center; gap: .4rem;
  margin-bottom: .15rem;
}

.footer-contact-row span,
.footer-contact-row a {
  color: rgba(255,255,255,.7);
  font-size: .85rem;
  line-height: 1.6;
}

.footer-contact-row svg {
  width: .85rem; height: .85rem;
  fill: rgba(255,255,255,.6);
  flex-shrink: 0;
}

.footer-col a[href$="gdpr.html"],
.footer-col a[href$="cookies.html"] {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.footer-bottom {
  text-align: center;
  padding-top: var(--sp-md);
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.45);
  font-size: .82rem;
}

.footer-bottom p { margin: 0 auto; max-width: none; }
.footer-bottom a { color: rgba(255,255,255,.7); }
.footer-bottom a:hover { color: #fff; }

/* ============================================
   COOKIE BANNER
   ============================================ */
.cookie-banner {
  position: fixed;
  bottom: var(--sp-md);
  left: var(--sp-md);
  width: min(92%, 420px);
  background: rgba(22,24,29,.95);
  backdrop-filter: blur(14px);
  border-radius: var(--r-lg);
  padding: 1.2rem 1.4rem;
  color: rgba(255,255,255,.9);
  box-shadow: 0 12px 40px rgba(0,0,0,.35);
  z-index: 9999;
  font-size: .88rem;
  animation: bannerUp .4s var(--ease);
}

@keyframes bannerUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.cookie-banner p { margin-bottom: .5rem; max-width: none; font-size: .84rem; }
.cookie-banner-links { display: flex; gap: .8rem; margin-bottom: .7rem; }
.cookie-banner-links a { color: var(--color-gold); text-decoration: underline; text-underline-offset: 2px; font-size: .78rem; }
.cookie-banner-links a:hover { color: #fff; }

.cookie-banner-actions { display: flex; gap: .45rem; }

.cookie-btn {
  flex: 1;
  padding: .55rem .9rem;
  border: none; border-radius: var(--r-sm);
  font-size: .8rem; font-weight: 600;
  cursor: pointer; text-transform: uppercase;
  letter-spacing: .3px;
  transition: all .2s;
}

.cookie-accept { background: var(--color-gold); color: #fff; }
.cookie-accept:hover { background: var(--color-gold-hover); }
.cookie-reject { background: rgba(255,255,255,.12); color: rgba(255,255,255,.8); }
.cookie-reject:hover { background: rgba(255,255,255,.2); }

.cookie-settings-link {
  background: transparent; border: 0;
  color: var(--color-gold); font: inherit;
  cursor: pointer; text-decoration: underline;
  text-underline-offset: 2px;
}
.cookie-settings-link:hover { color: #fff; }

.footer-col .cookie-settings-link {
  font-size: .85rem;
  line-height: 1.6;
  padding: 0;
  color: rgba(255,255,255,.7);
}
.footer-col .cookie-settings-link:hover {
  color: var(--color-gold);
}

/* ============================================
   SCROLL REVEAL
   ============================================ */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .65s var(--ease), transform .65s var(--ease);
}

.reveal.visible {
  opacity: 1;
  transform: none;
}

/* ============================================
   INNER PAGES (shared)
   ============================================ */
.inner-page { padding-top: 0; min-height: 70vh; }

.inner-hero {
  padding: 8rem 0 3rem;
  background: var(--color-dark);
}
.inner-hero .wrap { position: relative; z-index: 1; }
.inner-hero h1 { text-align: center; margin-bottom: var(--sp-sm); color: #fff; font-size: var(--h1-size); }
.inner-hero p { margin: 0 auto; text-align: center; max-width: 720px; color: rgba(255,255,255,.7); }

.inner-section { padding: 0 0 var(--sp-2xl); }

.legal-content { max-width: 920px; }
.legal-content h2 { font-size: 1.3rem; margin-top: 1.4rem; margin-bottom: .5rem; }
.legal-content h3 { font-size: 1.05rem; margin-top: .8rem; margin-bottom: .3rem; }
.legal-content p { margin-bottom: .65rem; max-width: none; }
.legal-content ul { margin: 0 0 .8rem 1rem; }
.legal-content li { margin-bottom: .25rem; }

.catalog-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-md); }
.page-produkty .produkty-section { padding-top: var(--sp-lg); }
.catalog-card { border: 1px solid var(--color-border); border-radius: var(--r-lg); overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.catalog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.catalog-card > img { width: 100%; height: 220px; object-fit: cover; }
.catalog-content { padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .35rem; }
.catalog-content h2 { font-size: 1.3rem; margin-bottom: .4rem; }
.catalog-content p { margin: 0; color: var(--color-text-light); }
.composition-label { margin-top: .4rem; font-weight: 600; color: var(--color-dark); }
.composition-text { color: var(--color-text-light); font-size: .9rem; }
.catalog-block { margin-top: .2rem; padding-top: .5rem; border-top: 1px solid var(--color-border); position: relative; }
.catalog-block::before { content: ''; position: absolute; left: 0; top: -1px; width: 48px; height: 2px; border-radius: 99px; background: var(--color-gold); }
.catalog-list { list-style: none; display: grid; gap: .15rem; }
.catalog-list li { position: relative; padding-left: .75rem; color: var(--color-text-light); font-size: .9rem; }
.catalog-list li::before { content: ''; position: absolute; left: 0; top: .55em; width: 5px; height: 5px; border-radius: 50%; background: var(--color-gold); }
.catalog-gallery-block { margin-top: .35rem; }
.catalog-gallery {
  margin-top: .45rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .4rem;
}
.catalog-gallery-trigger {
  border: 0;
  border-radius: var(--r-sm);
  padding: 0;
  overflow: hidden;
  cursor: zoom-in;
  line-height: 0;
  background: transparent;
}
.catalog-gallery-trigger img {
  width: 100%;
  height: 74px;
  object-fit: cover;
  transition: transform .3s var(--ease), filter .3s var(--ease);
}
.catalog-gallery-trigger:hover img {
  transform: scale(1.04);
  filter: saturate(1.06);
}
.catalog-gallery-trigger:focus-visible {
  outline: 2px solid var(--color-gold);
  outline-offset: 2px;
}

/* Produkty page in Nabidka visual style */
.page-produkty .produkty-grid {
  grid-template-columns: repeat(2, 1fr);
}
.page-produkty .produkty-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--r-lg);
  overflow: hidden;
  position: relative;
  box-shadow: var(--shadow-sm);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.page-produkty .produkty-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.page-produkty .produkty-card > img {
  width: 100%;
  height: 230px;
  object-fit: cover;
  transition: transform .45s var(--ease);
}
.page-produkty .produkty-card:hover > img {
  transform: scale(1.03);
}
.page-produkty .produkty-card-body {
  position: static;
  inset: auto;
  padding: 1rem 1.15rem 1.2rem;
  background: #fff;
  color: var(--color-text);
}
.page-produkty .produkty-card-body h2 {
  font-size: 1.2rem;
  margin-bottom: .45rem;
  color: var(--color-dark);
}
.page-produkty .produkty-card-body p {
  margin: 0;
  max-height: none;
  opacity: 1;
  transform: none;
  overflow: visible;
  color: var(--color-text-light);
  line-height: 1.55;
}
.page-produkty .produkty-card-body .composition-label {
  margin-top: .45rem;
  margin-bottom: .15rem;
}
.page-produkty .produkty-card:hover .produkty-card-body p {
  margin-top: 0;
  max-height: none;
  opacity: 1;
  transform: none;
}

/* ---- Nabídka page ---- */

/* Category anchor navigation */
.nabidka-nav {
  background: #fff;
  border-bottom: 1px solid var(--color-border);
  padding: .85rem 0;
  z-index: 90;
}

.nabidka-nav.is-sticky {
  position: fixed;
  left: 0;
  right: 0;
  box-shadow: var(--shadow-sm);
}

.nabidka-nav-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: .25rem 0;
}

.nabidka-nav-list li {
  display: flex;
  align-items: center;
}

.nabidka-nav-list li:not(:last-child)::after {
  content: '';
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--color-text-light);
  margin: 0 .85rem;
  opacity: .45;
}

.nabidka-nav-link {
  font-family: var(--font-heading);
  font-size: .82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--color-text);
  padding: .4rem .15rem;
  border-bottom: 2px solid transparent;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}

.nabidka-nav-link:hover {
  color: var(--color-gold);
}

.nabidka-nav-link.active {
  color: var(--color-dark);
  border-bottom-color: var(--color-dark);
}

.page-nabidka .nabidka-section { padding-top: var(--sp-lg); }

/* Price info bar */
.nabidka-price-info {
  text-align: center;
  margin-bottom: var(--sp-xl);
  padding: .15rem 0 .35rem;
}

.nabidka-price-info p {
  margin: 0;
  font-size: .9rem;
  color: var(--color-text-light);
  max-width: none;
}

.nabidka-price-info a {
  color: var(--color-gold);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color .2s;
}

.nabidka-price-info a:hover {
  color: var(--color-gold-hover);
}

/* Category sections */
.nabidka-category {
  margin-bottom: var(--sp-3xl);
}

.nabidka-category:last-of-type {
  margin-bottom: var(--sp-xl);
}

.nabidka-category-header {
  text-align: center;
  margin-bottom: var(--sp-lg);
}

.nabidka-category-title {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 700;
  color: var(--color-dark);
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin-bottom: 0.75rem;
}

.nabidka-category-line {
  width: 48px;
  height: 2px;
  background: var(--color-gold);
  margin: 0 auto;
  border-radius: 999px;
}

/* Product grid */
.nabidka-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-md);
}

/* Product cards – overlay style (matches homepage .product-card) */
.nabidka-card {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  cursor: default;
}

.nabidka-card-image {
  position: absolute;
  inset: 0;
}

.nabidka-card-image picture {
  display: block;
  width: 100%;
  height: 100%;
}

.nabidka-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s var(--ease);
}

.nabidka-card:hover img {
  transform: scale(1.06);
}

/* Rotated images (source photos are sideways) */
.page-nabidka .nabidka-card img.matjesy-left,
.page-nabidka .nabidka-card img.matjesy-losos-left,
.page-nabidka .nabidka-card img.pomazanka-losos-left {
  transform: rotate(-90deg) scale(1.35);
}

.page-nabidka .nabidka-card:hover img.matjesy-left,
.page-nabidka .nabidka-card:hover img.matjesy-losos-left,
.page-nabidka .nabidka-card:hover img.pomazanka-losos-left {
  transform: rotate(-90deg) scale(1.38);
}

/* Card body – overlay with gradient */
.nabidka-card-body {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.4rem;
  background: linear-gradient(
    to top,
    rgba(0,0,0,.55) 0%,
    rgba(0,0,0,.08) 40%,
    rgba(0,0,0,0) 100%
  );
  transition: background .4s var(--ease);
}

.nabidka-card:hover .nabidka-card-body {
  background: linear-gradient(
    to top,
    rgba(0,0,0,.85) 0%,
    rgba(0,0,0,.4) 50%,
    rgba(0,0,0,.05) 100%
  );
}

.nabidka-card-body h3 {
  color: #fff;
  font-size: 1.25rem;
  margin-bottom: 0;
  text-shadow: 0 2px 10px rgba(0,0,0,.5);
}

.nabidka-card-body p {
  color: rgba(255,255,255,.9);
  font-size: .86rem;
  line-height: 1.5;
  max-width: 26ch;
  margin: 0;
  text-shadow: 0 1px 6px rgba(0,0,0,.4);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height .4s var(--ease), opacity .4s var(--ease), margin .4s var(--ease);
}

.nabidka-card:hover .nabidka-card-body p {
  max-height: 4rem;
  opacity: 1;
  margin-top: .4rem;
}

/* Responsive: phones <480px */
@media (max-width: 479px) {
  .nabidka-grid { grid-template-columns: 1fr; gap: var(--sp-sm); }
  .nabidka-card { aspect-ratio: 16 / 9; }
  .nabidka-category { margin-bottom: var(--sp-2xl); }
  .nabidka-category-title { font-size: 1.4rem; }
  .nabidka-nav { padding: .6rem 0; }
  .nabidka-nav-list { gap: .15rem .35rem; }
  .nabidka-nav-list li:not(:last-child)::after { margin: 0 .45rem; }
  .nabidka-nav-link { font-size: .72rem; letter-spacing: .3px; }
}

/* Responsive: phablets 480-768px */
@media (min-width: 480px) and (max-width: 768px) {
  .nabidka-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-sm); }
  .nabidka-category { margin-bottom: var(--sp-2xl); }
}

/* Responsive: tablets 769-1100px */
@media (min-width: 769px) and (max-width: 1100px) {
  .nabidka-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================
   CENÍK: Toolbar (search + filters)
   ============================================ */
.cenik-toolbar {
  padding: var(--sp-lg) 0 var(--sp-md);
  background: var(--color-bg);
  position: sticky;
  top: 0;
  z-index: 90;
  transition: box-shadow .3s var(--ease);
}

.cenik-toolbar .wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-sm);
}

.cenik-search-wrap {
  position: relative;
  max-width: 520px;
  width: 100%;
}

.cenik-search-input {
  width: 100%;
  padding: .9rem 1.2rem .9rem 3rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--color-text);
  background: #fff;
  border: 1.5px solid var(--color-border);
  border-radius: 999px;
  box-shadow: var(--shadow-sm);
  transition: all .3s var(--ease);
}

.cenik-search-input:focus {
  outline: none;
  background: #fff;
  border-color: var(--color-gold);
  box-shadow: 0 0 0 3px rgba(212,168,50,.12);
}

.search-icon {
  position: absolute;
  left: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.1rem;
  height: 1.1rem;
  fill: var(--color-text-light);
  pointer-events: none;
}

.cenik-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: center;
}

.cenik-filter-btn {
  padding: .5rem 1.2rem;
  font-family: var(--font-heading);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .3px;
  color: var(--color-text);
  background: transparent;
  border: 1.5px solid var(--color-border);
  border-radius: 999px;
  cursor: pointer;
  transition: all .25s var(--ease);
}

.cenik-filter-btn:hover {
  border-color: var(--color-gold);
  color: var(--color-gold);
  background: rgba(212,168,50,.06);
}

.cenik-filter-btn.active {
  background: var(--color-dark);
  color: #fff;
  border-color: var(--color-dark);
}

/* ============================================
   CENÍK: Card Portfolio Grid
   ============================================ */
.cenik-portfolio {
  padding: var(--sp-xl) 0 var(--sp-2xl);
  background: #fff;
}

.cenik-table-wrap {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--r-md);
  overflow: auto;
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--sp-md);
  -webkit-overflow-scrolling: touch;
}

.cenik-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
}

.cenik-table th,
.cenik-table td {
  padding: .8rem 1rem;
  border-bottom: 1px solid var(--color-border);
}

.cenik-table thead th {
  font-family: var(--font-heading);
  font-size: .85rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--color-dark);
  background: var(--color-bg-warm);
  text-align: left;
}

.cenik-table tbody tr:nth-child(even) td {
  background: rgba(22,24,29,.02);
}

.cenik-table tbody td:nth-child(2),
.cenik-table tbody td:nth-child(3),
.cenik-table thead th:nth-child(2),
.cenik-table thead th:nth-child(3) {
  text-align: right;
  white-space: nowrap;
}

.cenik-table tbody td:first-child {
  font-weight: 600;
}

.cenik-table tbody tr:last-child td {
  border-bottom: 0;
}

.page-cenik.data-table-active .cenik-grid {
  display: none;
}

.cenik-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

/* Individual product card */
.cenik-card {
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: var(--r-md);
  padding: 1.25rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: .85rem;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), opacity .3s var(--ease);
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.cenik-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--color-dark);
  opacity: 0;
  transition: opacity .3s var(--ease);
}

.cenik-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.cenik-card:hover::before {
  opacity: 1;
}

.cenik-card.hidden {
  display: none;
}

/* Card header */
.cenik-card-header h3 {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
}

/* Prices row */
.cenik-card-prices {
  display: flex;
  gap: .75rem;
}

.cenik-price-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .15rem;
  padding: .65rem .75rem;
  background: rgba(22,24,29,.03);
  border: 1px solid rgba(22,24,29,.08);
  border-radius: var(--r-sm);
  text-align: center;
}

.cenik-price-weight {
  font-size: .72rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--color-text-light);
}

.cenik-price-value {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--color-dark);
}

/* Empty state */
.cenik-empty {
  text-align: center;
  padding: var(--sp-xl) 0;
  color: var(--color-text-light);
}

.cenik-empty[hidden] {
  display: none;
}

.cenik-empty p {
  margin: 0 auto;
  font-size: 1rem;
}

/* Bottom note + actions */
.cenik-bottom {
  margin-top: var(--sp-xl);
  text-align: center;
}

.cenik-bottom .price-note {
  margin-bottom: var(--sp-md);
  color: var(--color-text-light);
}

.cenik-bottom .price-note p {
  max-width: none;
  margin: 0;
}

.cenik-bottom-actions {
  display: flex;
  gap: .7rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================
   O NÁS: Story section
   ============================================ */
.onas-story {
  padding: var(--sp-xl) 0 var(--sp-2xl);
  background: var(--color-bg);
}

.onas-story-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: var(--sp-xl);
  align-items: center;
}

.onas-photo-col img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--r-lg);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-md);
}

.onas-text-col h2,
.page-o-nas .onas-values .section-title {
  font-size: var(--h2-size);
  line-height: 1.18;
}

.onas-text-col h2 {
  margin-bottom: var(--sp-md);
  position: relative;
  padding-bottom: .6rem;
}

.onas-text-col p {
  color: var(--color-text-light);
  line-height: 1.75;
  margin-bottom: 1rem;
}

.onas-quote {
  margin-top: 1.2rem;
  padding: 1.1rem 1.3rem;
  border-left: 3px solid var(--color-gold);
  background: var(--color-bg-warm);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  font-weight: 600;
  color: var(--color-dark);
  font-size: 1.02rem;
  line-height: 1.6;
}

/* ============================================
   O NÁS: Values section
   ============================================ */
.onas-values {
  padding: var(--sp-2xl) 0;
  background: var(--color-bg);
}

.page-o-nas .onas-values .section-center {
  margin-bottom: var(--sp-xl);
}

.page-o-nas .onas-values .section-label {
  margin-bottom: .5rem;
  letter-spacing: 1.8px;
}

.page-o-nas .onas-values .section-title {
  margin-bottom: 0;
}

.onas-values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}

.onas-value-card {
  background: #fff;
  border: none;
  border-radius: var(--r-md);
  padding: 1.5rem 1.35rem;
  text-align: center;
  box-shadow: none;
}

.onas-value-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  background: rgba(212,168,50,.1);
  border-radius: 50%;
  margin-bottom: var(--sp-sm);
}

.onas-value-icon svg {
  width: 1.4rem;
  height: 1.4rem;
  fill: var(--color-gold);
}

.onas-value-card h3 {
  font-size: 1.08rem;
  font-weight: 600;
  margin-bottom: .55rem;
  line-height: 1.3;
}

.onas-value-card p {
  color: var(--color-text-light);
  font-size: .92rem;
  margin: 0 auto;
  max-width: 30ch;
  line-height: 1.6;
}

.onas-cta {
  display: flex;
  gap: .7rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: var(--sp-2xl);
}

/* ============================================
   O NÁS: Detail section (prodejna)
   ============================================ */
.onas-detail {
  padding: var(--sp-2xl) 0;
  background: var(--color-bg-warm);
}

.onas-detail-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: var(--sp-xl);
  align-items: center;
}

.onas-detail-text .section-label {
  margin-bottom: var(--sp-xs);
}

.onas-detail-text h2 {
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  margin-bottom: var(--sp-md);
  position: relative;
  padding-bottom: .6rem;
}

.onas-detail-text p {
  color: var(--color-text-light);
  line-height: 1.75;
  margin-bottom: 1rem;
}

.onas-detail-photos {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
}

.onas-detail-photos img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--r-lg);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}

.onas-detail-photos img:hover {
  box-shadow: var(--shadow-md);
  transform: scale(1.02);
}

.kontakt-reborn { padding-bottom: var(--sp-2xl); }
.kr-grid { display: grid; gap: var(--sp-lg); }
.kr-contact-group { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-md); }
.kr-card { background: #fff; border: 1px solid var(--color-border); border-radius: var(--r-lg); padding: var(--sp-lg); box-shadow: var(--shadow-sm); transition: box-shadow .3s var(--ease); }
.kr-card:hover { box-shadow: var(--shadow-md); }
.kr-contact-card h3 { display: flex; align-items: center; gap: .5rem; font-size: 1.1rem; margin-bottom: .7rem; }
.kr-icon-wrap { width: 1.8rem; height: 1.8rem; display: inline-flex; align-items: center; justify-content: center; background: rgba(212,168,50,.1); border-radius: 50%; padding: .3rem; flex-shrink: 0; }
.kr-icon-wrap svg { width: 100%; height: 100%; fill: var(--color-gold); }
.page-kontakt .kr-icon-wrap { background: transparent; border-radius: 0; padding: 0; }
.kr-info-item { display: block; padding: .25rem 0; color: var(--color-text); transition: color .2s; }
a.kr-info-item:hover { color: var(--color-gold); }
.kr-info-label { font-weight: 600; color: var(--color-dark); margin-right: .25rem; }
.kr-contact-note { margin-top: .3rem; color: var(--color-text-light); font-size: .88rem; }
.kr-row-hours-photo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-md); }
.kr-card-hours h3, .kr-card-gallery h3 { font-size: 1.15rem; margin-bottom: .7rem; }
.kr-hours-list { display: grid; }
.kr-hour-row { display: flex; justify-content: space-between; padding: .45rem 0; border-bottom: 1px solid rgba(22,24,29,.06); }
.kr-hour-row:last-child { border-bottom: none; }
.kr-hour-time { font-weight: 600; color: var(--color-dark); }
.kr-hour-row-closed .kr-hour-time { color: var(--color-text-light); }
.kr-hours-notes { list-style: none; margin-top: var(--sp-sm); }
.kr-hours-notes li { position: relative; padding-left: .9rem; font-size: .88rem; color: var(--color-text-light); margin-bottom: .2rem; }
.kr-hours-notes li::before { content: ''; position: absolute; left: 0; top: .5em; width: 5px; height: 5px; border-radius: 50%; background: var(--color-gold); }
.kr-photo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .45rem; }
.kr-photo-trigger { display: block; width: 100%; border: 0; padding: 0; background: transparent; cursor: zoom-in; border-radius: var(--r-sm); }
.kr-photo-card img { width: 100%; height: 125px; object-fit: cover; border-radius: var(--r-sm); transition: transform .3s var(--ease); }
.kr-photo-card img:hover { transform: scale(1.03); }
.kr-photo-trigger:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 2px; }
.kr-lightbox {
  position: fixed;
  inset: 0;
  z-index: 12000;
  background: rgba(22,24,29,.92);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.1rem;
}
.kr-lightbox[hidden] { display: none; }
.kr-lightbox-inner { position: relative; width: min(92vw, 1080px); max-height: 92vh; }
.kr-lightbox-image { width: 100%; max-height: 84vh; object-fit: contain; border-radius: var(--r-sm); }
.kr-lightbox-close,
.kr-lightbox-nav {
  position: absolute;
  border: 0;
  color: #fff;
  background: rgba(0,0,0,.45);
  cursor: pointer;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.kr-lightbox-close {
  top: -14px;
  right: -14px;
  width: 42px;
  height: 42px;
  font-size: 1.5rem;
  line-height: 1;
}
.kr-lightbox-nav {
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  font-size: 1.6rem;
}
.kr-lightbox-prev { left: -56px; }
.kr-lightbox-next { right: -56px; }
.kr-lightbox-close:hover,
.kr-lightbox-nav:hover { background: rgba(0,0,0,.7); }
.kr-lightbox-close:focus-visible,
.kr-lightbox-nav:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 2px; }
@media (max-width: 768px) {
  .kr-lightbox-close { top: 10px; right: 10px; }
  .kr-lightbox-nav { width: 40px; height: 40px; font-size: 1.4rem; }
  .kr-lightbox-prev { left: 8px; }
  .kr-lightbox-next { right: 8px; }
}
.kr-card-map { padding: 0; overflow: hidden; }
.kr-map-frame { width: 100%; height: 340px; border: 0; }
.kr-actions, .page-actions { display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap; margin-top: var(--sp-lg); }
.inner-page .page-actions { margin-bottom: var(--sp-xl); }
.page-produkty .page-actions,
.page-cenik .page-actions,
.page-o-nas .page-actions { margin-bottom: 0; }

.page-404 { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding-top: 0; }
.error404-card { text-align: center; max-width: 460px; margin: 0 auto; }
.error404-code { font-family: var(--font-heading); font-size: 1.35rem; font-weight: 700; color: var(--color-dark); margin-bottom: var(--sp-md); }
.error404-image { margin: 0 0 var(--sp-md); }
.error404-image img { width: 100%; max-width: 300px; border-radius: var(--r-lg); margin: 0 auto; }

/* ============================================
   RESPONSIVE
   ============================================ */

/* ---- Phones: up to 768px ---- */
@media (max-width: 768px) {
  .wrap { width: 90%; }
  .header-bar { padding: .95rem .6rem .95rem 1.15rem; justify-content: flex-start; }
  .site-logo img { height: 44px; max-width: min(62vw, 275px); }
  .burger {
    font-size: 2.15rem;
    padding: 0;
    line-height: 1;
    margin-left: auto;
    margin-right: 0;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform: translateY(-4px);
  }

  .nav-list {
    display: none;
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--color-dark);
    flex-direction: column;
    padding: var(--sp-md);
    box-shadow: var(--shadow-md);
    gap: var(--sp-xs);
  }
  .nav-list.active { display: flex; }

  /* Homepage mobile: solid dark header on top, semi-transparent after scroll */
  body.home .site-header {
    background: var(--color-dark) !important;
    backdrop-filter: none;
  }
  body.home .site-header.scrolled {
    background: rgba(22,24,29,.88) !important;
    backdrop-filter: blur(12px);
    box-shadow: 0 4px 30px rgba(0,0,0,.25);
  }

  .hero {
    min-height: clamp(480px, 72svh, 100svh);
    align-items: center;
    padding-top: clamp(140px, 20vh, 180px);
    padding-bottom: clamp(72px, 9vh, 88px);
  }
  .hero-body {
    width: min(92%, 640px);
    padding: 0 .6rem;
    margin-top: 0;
    gap: .4rem;
  }
  .hero-body h1 {
    font-size: clamp(1.8rem, 7.2vw, 2.6rem);
    line-height: 1.13;
    letter-spacing: .005em;
    margin-bottom: .6rem;
    width: 100%;
  }
  .hero-sub { opacity: .88; margin-top: .08em; }
  .inner-hero h1 { font-size: clamp(2.2rem, 8.4vw, 3.2rem); }
  .hero-body > p {
    font-size: clamp(.92rem, 3.8vw, 1.1rem);
    line-height: 1.55;
    width: 100%;
    max-width: none;
    letter-spacing: .004em;
    margin-bottom: 1.1rem;
  }
  .hero-actions {
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    margin-bottom: 1.4rem;
    width: 100%;
  }
  .hero .btn {
    width: 100%;
    max-width: 340px;
    min-height: 50px;
    border-radius: 999px;
    font-size: .92rem;
    letter-spacing: .03em;
    padding: .7rem 1.6rem;
  }
  .hero-tags {
    flex-wrap: wrap;
    gap: .2rem .55rem;
    width: 100%;
    justify-content: center;
    margin-bottom: 1.3rem;
  }
  .hero-tag {
    font-size: .85rem;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: .01em;
    white-space: nowrap;
    padding-right: .8rem;
    color: rgba(255,255,255,.90);
    text-shadow: 0 1px 8px rgba(0,0,0,.35);
  }
  .hero-tag:last-child { padding-right: 0; }
  .hero-tag:not(:last-child)::after { width: 5px; height: 5px; margin-top: -2.5px; }

  .tradition-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-sm); }

  #vyrobky-preview { padding-top: var(--sp-lg); padding-bottom: var(--sp-xl); }
  #vyrobky-preview .section-desc { margin-bottom: var(--sp-md); }
  .products-grid { grid-template-columns: 1fr; }
  #vyrobky-preview .product-card { aspect-ratio: 16 / 9; }


  #recenze { padding-top: var(--sp-2xl); padding-bottom: var(--sp-2xl); }
  #recenze .section-desc { margin-bottom: var(--sp-md); }
  .reviews-layout { grid-template-columns: 1fr; }
  .review-cards { grid-template-columns: 1fr; }

  #kde-nas-najdete { padding-top: var(--sp-2xl); padding-bottom: var(--sp-2xl); }
  #kde-nas-najdete .section-desc { margin-bottom: var(--sp-md); }
  .cta-grid { grid-template-columns: 1fr; }
  .hp-contact-cols { grid-template-columns: 1fr; gap: 0; }
  .hp-contact-block { padding: 1.5rem 0; border-bottom: 1px solid rgba(22,24,29,.06); }
  .hp-contact-block:last-child { border-bottom: none; }
  .hp-hours-strip { padding: 1.5rem 1.2rem; }

  .site-footer .wrap { padding-left: .9rem; }
  .footer-grid { grid-template-columns: 1fr; }

  .catalog-grid { grid-template-columns: 1fr; }
  .onas-story-grid { grid-template-columns: 1fr; gap: var(--sp-lg); }
  .onas-photo-col img { aspect-ratio: 16 / 9; }
  .onas-text-col .section-label { text-align: center; display: block; }
  .onas-text-col h2 { text-align: center; }
  .onas-text-col h2::after { left: 50%; transform: translateX(-50%); }
  .onas-text-col p { text-align: center; }
  .onas-quote { text-align: center; border-left: none; border-top: 3px solid var(--color-gold); border-radius: 0 0 var(--r-sm) var(--r-sm); }
  .onas-values-grid { grid-template-columns: 1fr; }
  .onas-detail-grid { grid-template-columns: 1fr; gap: var(--sp-lg); }
  .onas-detail-text h2 { text-align: center; }
  .onas-detail-text h2::after { left: 50%; transform: translateX(-50%); }
  .onas-detail-text p { text-align: center; }
  .onas-detail-text .section-label { text-align: center; display: block; }
  .page-o-nas .tradition-under-text .tradition-grid { justify-items: center; }
  .page-o-nas .tradition-under-text .tradition-item { text-align: center; align-items: center; }
  .onas-detail-photos img:first-child { transform: none; }
  .onas-detail-photos img:first-child:hover { transform: scale(1.02); }
  .catalog-card > img { height: 195px; }
  .catalog-gallery { grid-template-columns: repeat(3, 1fr); }
  .catalog-gallery-trigger img { height: 82px; }

  .kr-contact-group { grid-template-columns: 1fr; }
  .kr-row-hours-photo { grid-template-columns: 1fr; }

  .inner-page { padding-top: 0; }
  .inner-hero { padding: 7rem 0 2.5rem; }

  .nabidka-nav { padding: .65rem 0; }
  .nabidka-nav-list { gap: .15rem .35rem; }
  .nabidka-nav-list li:not(:last-child)::after { margin: 0 .5rem; }
  .nabidka-nav-link { font-size: .75rem; }

  .cenik-toolbar { padding: var(--sp-md) 0 var(--sp-sm); position: static; }
  .cenik-filter-bar { gap: .3rem; }
  .cenik-filter-btn { padding: .4rem .85rem; font-size: .78rem; }
  .cenik-grid { grid-template-columns: 1fr; gap: .75rem; }
  .cenik-portfolio { padding: var(--sp-lg) 0 var(--sp-xl); }
  .cenik-table th,
  .cenik-table td { padding: .62rem .72rem; font-size: .88rem; }
  .cenik-table thead th { font-size: .76rem; }
  .cenik-card { padding: 1rem; }
  .cenik-card-header h3 { font-size: .95rem; }
  .cenik-price-value { font-size: 1.05rem; }
  .cenik-bottom-actions { flex-direction: column; align-items: center; }
  .cenik-bottom-actions .btn { width: 100%; max-width: 320px; }
}

/* ---- Phablet: 480-768px (overrides phone defaults) ---- */
@media (min-width: 480px) and (max-width: 768px) {
  .products-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-sm); }
  #vyrobky-preview .product-card { aspect-ratio: 4 / 3; }


  .review-cards { grid-template-columns: repeat(2, 1fr); gap: var(--sp-sm); }

  .cta-grid { grid-template-columns: repeat(2, 1fr); }
  .cta-grid > .cta-card:last-child { grid-column: 1 / -1; }

  .tradition-grid { grid-template-columns: repeat(4, 1fr); }

  .onas-values-grid { grid-template-columns: repeat(2, 1fr); }

  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid > .footer-col:first-child { grid-column: 1 / -1; }

  .cenik-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-sm); }
  .cenik-bottom-actions { flex-direction: row; }
  .cenik-bottom-actions .btn { width: auto; max-width: none; }
}

/* ---- Extra small phones: up to 374px ---- */
@media (max-width: 374px) {
  .wrap { width: 94%; }

  .header-bar { padding: .8rem .4rem .8rem .8rem; }
  .site-logo img { height: 36px; max-width: min(52vw, 200px); }

  .hero-body h1 { font-size: clamp(1.5rem, 6.8vw, 1.95rem); line-height: 1.15; }
  .hero-sub { font-size: .92em; }
  .hero-body > p { font-size: .88rem; line-height: 1.5; }
  .hero .btn { min-height: 48px; font-size: .86rem; max-width: 280px; padding: .65rem 1.4rem; }
  .hero-tag { font-size: .78rem; }
  .hero-tags { gap: .15rem .45rem; }

  .section { padding: var(--sp-xl) 0; }

  .tradition-item strong { font-size: clamp(1.5rem, 7vw, 2rem); }
  .tradition-item span { font-size: .8rem; }

  .product-card h3 { font-size: 1.05rem; }
  .product-card p { font-size: .8rem; }
  .product-card-overlay { padding: 1rem; }

  .review-highlight .review-score { font-size: 2rem; }
  .review-card { padding: 1.1rem; }
  .review-card .quote { font-size: .88rem; }

  .cta-card { padding: var(--sp-md); }
  .cta-hours-row { font-size: .84rem; }

  .footer-col p, .footer-col a { font-size: .8rem; }
  .footer-logo { height: 26px; }

  .inner-hero p { font-size: .9rem; }
  .catalog-card > img { height: 160px; }
  .catalog-content { padding: .85rem; }
  .catalog-content h2 { font-size: 1.1rem; }
  .catalog-gallery { grid-template-columns: repeat(2, 1fr); }
  .catalog-gallery-trigger img { height: 72px; }

  .cenik-card { padding: .85rem; gap: .6rem; }
  .cenik-card-header h3 { font-size: .88rem; }
  .cenik-price-value { font-size: .95rem; }
  .cenik-price-item { padding: .5rem .55rem; }
  .cenik-filter-btn { padding: .35rem .7rem; font-size: .75rem; }

  .cookie-banner { left: var(--sp-xs); right: auto; width: min(96%, 360px); padding: 1rem; }
  .cookie-btn { font-size: .75rem; padding: .5rem .65rem; }

  .kr-card { padding: var(--sp-md); }
  .kr-photo-card img { height: 100px; }
  .kr-map-frame { height: 260px; }

  .onas-value-card { padding: 1.1rem 1rem; }
  .onas-value-icon { width: 2.5rem; height: 2.5rem; }
  .onas-value-icon svg { width: 1.2rem; height: 1.2rem; }

  .btn { min-height: 44px; padding: .7rem 1.2rem; font-size: .82rem; }
}

/* ---- Tablets: 769-1100px ---- */
@media (min-width: 769px) and (max-width: 1100px) {
  .header-bar { padding: .95rem 1.35rem; }

  .hero {
    min-height: 88svh;
    padding-top: clamp(90px, 10vh, 120px);
    padding-bottom: clamp(48px, 6vh, 76px);
  }
  .hero-body { width: min(90%, 860px); }
  .hero-body h1 {
    font-size: clamp(2rem, 5vw, 3.2rem);
    line-height: 1.12;
  }
  .hero-body > p { max-width: 46ch; }

  .section { padding: var(--sp-2xl) 0; }
  .products-grid { grid-template-columns: 1fr 1fr; }

  .reviews-layout { grid-template-columns: 1fr; }
  .review-cards { grid-template-columns: 1fr 1fr; }

  .cta-grid { grid-template-columns: 1fr 1fr; }
  .cta-grid > .cta-card:last-child { grid-column: 1 / -1; }

  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > .footer-col:first-child { grid-column: 1 / -1; }

  .onas-story-grid { gap: var(--sp-lg); }
  .onas-values-grid { grid-template-columns: repeat(2, 1fr); }
  .onas-detail-grid { gap: var(--sp-lg); }

  .inner-page { padding-top: 0; }

  .cenik-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 769px) and (max-width: 1100px) and (orientation: portrait) {
  .hero {
    min-height: 52svh;
    padding-top: clamp(72px, 6.5vh, 92px);
    padding-bottom: clamp(28px, 3.5vh, 46px);
  }
}

/* ---- Landscape phones / small tablets ---- */
@media (max-width: 1024px) and (max-height: 520px) and (orientation: landscape) {
  .hero {
    min-height: 100svh;
    padding-top: 72px;
    padding-bottom: clamp(40px, 10vh, 72px);
  }
  .hero-body h1 {
    font-size: clamp(1.6rem, 4.5vw, 2.2rem);
    margin-bottom: .3rem;
  }
  .hero-body > p { font-size: .9rem; margin-bottom: .5rem; }
  .hero-tags { margin-bottom: .35rem; }
  .hero-tag { font-size: .8rem; }
  .hero-actions { gap: .4rem; margin-bottom: .6rem; }
  .hero .btn { min-height: 44px; font-size: .85rem; }
}

/* ---- Large Desktop: 1440-1919px ---- */
@media (min-width: 1440px) and (max-width: 1919px) {
  .wrap { width: min(82%, 1400px); }

  .header-bar { padding: 1.1rem clamp(2rem, 3.5vw, 3.5rem); }
  .site-logo img { height: 42px; }
  .nav-list a { font-size: .88rem; padding: .55rem 1rem; }

  .hero-body { width: min(92%, 1060px); max-width: 1060px; }
  .hero-body h1 { font-size: clamp(2.4rem, 4.5vw, 4rem); }
  .hero-body > p { font-size: clamp(1.08rem, 1.15vw, 1.35rem); max-width: 56ch; }
  .hero .btn { min-height: 52px; padding: .85rem 2rem; font-size: .88rem; }
  .hero-tag { font-size: 1.05rem; }

  .section { padding: clamp(5.5rem, 6.5vh, 7.5rem) 0; }

  .products-grid { gap: var(--sp-md); }
  .product-card h3 { font-size: 1.3rem; }

  .reviews-layout { grid-template-columns: 320px 1fr; }
  .review-card { padding: 1.7rem; }

  .cta-card { padding: var(--sp-lg) var(--sp-md); }

  .inner-hero { padding: 8rem 0 3rem; }
  .catalog-card > img { height: 240px; }
  .catalog-content h2 { font-size: 1.35rem; }

  .footer-grid { gap: var(--sp-lg); }
}

/* ---- Full HD+: 1920-2559px ---- */
@media (min-width: 1920px) and (max-width: 2559px) {
  html { font-size: 18px; }
  .wrap { width: min(78%, 1680px); }

  .header-bar { padding: 1.15rem clamp(2.5rem, 4vw, 4rem); }
  .site-logo img { height: 50px; max-width: 340px; }
  .nav-list a { font-size: .95rem; padding: .6rem 1.1rem; }

  .hero {
    min-height: 88svh;
    padding-top: clamp(96px, 9vh, 130px);
    padding-bottom: clamp(58px, 7vh, 92px);
  }
  .hero-body { width: min(92%, 1400px); max-width: 1400px; }
  .hero-body h1 { font-size: clamp(2.8rem, 4.2vw, 4.5rem); }
  .hero-body > p { font-size: clamp(1.15rem, 1.2vw, 1.55rem); max-width: 52ch; }
  .hero .btn { min-height: 58px; padding: .9rem 2.2rem; font-size: .92rem; }
  .hero-tag { font-size: 1.12rem; }

  .section { padding: clamp(6rem, 7vh, 9rem) 0; }
  .section-title { margin-bottom: var(--sp-md); }
  .section-desc { max-width: 60ch; margin-bottom: var(--sp-xl); }

  .products-grid { gap: var(--sp-lg); }
  .product-card-overlay { padding: 1.5rem; }
  .product-card h3 { font-size: 1.35rem; }
  .product-card p { font-size: .92rem; }

  .reviews-layout { grid-template-columns: 340px 1fr; gap: var(--sp-lg); }
  .review-card { padding: 1.8rem; }

  .cta-grid { gap: var(--sp-lg); }
  .cta-card { padding: 2.8rem 2.2rem; }

  .inner-page { padding-top: 0; }
  .inner-hero { padding: 8rem 0 3rem; }
  .catalog-grid { gap: var(--sp-lg); }
  .catalog-card > img { height: 255px; }
  .catalog-content h2 { font-size: 1.4rem; }

  .onas-story-grid { gap: var(--sp-xl); }

  .kr-contact-group { gap: var(--sp-lg); }
  .kr-card { padding: var(--sp-lg); }
  .kr-photo-card img { height: 145px; }
  .kr-map-frame { height: 380px; }

  .site-footer { padding: var(--sp-2xl) 0 var(--sp-lg); }
  .footer-grid { gap: var(--sp-xl); }
  .footer-col h4 { font-size: 1.02rem; }
  .footer-logo { height: 35px; }
}

/* ---- 4K / Ultra-wide: 2560px+ ---- */
@media (min-width: 2560px) {
  html { font-size: 22px; }
  .wrap { max-width: 2200px; }

  .header-bar { padding: 1.2rem clamp(2.6rem, 4vw, 4.5rem); }
  .site-logo img { height: 74px; max-width: 500px; }
  .nav-list a { font-size: 1.18rem; padding: .88rem 1.3rem; }

  .hero {
    min-height: 86svh;
    align-items: center;
    justify-content: center;
    padding-top: clamp(96px, 8.5vh, 130px);
    padding-bottom: clamp(58px, 6vh, 86px);
  }
  .hero-body { width: min(94%, 2200px); max-width: 2200px; }
  .hero-body h1 { font-size: clamp(3.2rem, 4.2vw, 5.2rem); max-width: none; line-height: 1.1; }
  .hero-body > p { font-size: clamp(1.45rem, 1.5vw, 1.95rem); max-width: 50ch; line-height: 1.45; margin-bottom: 2.1rem; }
  .hero-actions { gap: 1.2rem; margin-bottom: 1.9rem; }
  .hero .btn { min-height: 72px; font-size: 1.08rem; padding: 1rem 2.4rem; }
  .hero-tag { font-size: 1.2rem; }

  .section { padding: clamp(7rem, 7.5vh, 9.5rem) 0; }
  h2 { font-size: clamp(2.2rem, 3.2vw, 3.5rem); }
  h3 { font-size: clamp(1.5rem, 2vw, 2rem); }
  .section-label { font-size: .95rem; letter-spacing: 2.2px; }
  .section-title { margin-bottom: var(--sp-md); }
  .section-desc { max-width: 62ch; margin-bottom: var(--sp-2xl); font-size: 1.1rem; }

  .products-grid { gap: var(--sp-lg); }
  .product-card-overlay { padding: 1.7rem; }
  .product-card h3 { font-size: 1.4rem; }
  .product-card p { font-size: .95rem; max-width: 30ch; }

  .reviews-layout { grid-template-columns: 360px 1fr; gap: var(--sp-xl); }
  .review-card { padding: 1.9rem; }

  .cta-grid { gap: var(--sp-lg); }
  .cta-card { padding: 3.3rem 3rem; }

  .inner-page { padding-top: 0; }
  .inner-hero { padding: 8rem 0 3rem; }
  .catalog-grid { gap: var(--sp-lg); }
  .catalog-card > img { height: 260px; }
  .catalog-content h2 { font-size: 1.45rem; }

  .onas-story-grid { gap: var(--sp-2xl); }

  .kr-contact-group { gap: var(--sp-xl); }
  .kr-card { padding: var(--sp-xl); }
  .kr-photo-card img { height: 160px; }
  .kr-map-frame { height: 420px; }

  .site-footer { padding: var(--sp-2xl) 0 var(--sp-lg); }
  .footer-grid { gap: var(--sp-2xl); }
  .footer-col h4 { font-size: 1.05rem; }
  .footer-col p, .footer-col a { font-size: .92rem; }
  .footer-logo { height: 36px; max-width: 220px; }
  .footer-bottom { font-size: .86rem; }
}

/* ---- True 4K: 3840px+ ---- */
@media (min-width: 3840px) {
  html { font-size: 32px; }
  .wrap { width: min(86%, 3400px); max-width: 3400px; }

  .header-bar { padding: 1.4rem clamp(3rem, 4vw, 5rem); }
  .site-logo img { height: 100px; max-width: 680px; }
  .nav-list a { font-size: 1.25rem; padding: 1rem 1.5rem; gap: .2rem; }
  .nav-list { gap: var(--sp-sm); }

  .hero {
    min-height: 90svh;
    padding-top: clamp(160px, 9vh, 200px);
    padding-bottom: clamp(100px, 7vh, 140px);
  }
  .hero-body { width: min(90%, 3200px); max-width: 3200px; }
  .hero-body h1 {
    font-size: clamp(4.5rem, 4vw, 6.5rem);
    line-height: 1.1;
    letter-spacing: .01em;
    margin-bottom: 1.2rem;
  }
  .hero-body > p {
    font-size: clamp(1.4rem, 1.3vw, 1.8rem);
    max-width: 52ch;
    line-height: 1.55;
    margin-bottom: 2.6rem;
  }
  .hero-actions { gap: 1.5rem; margin-bottom: 2.4rem; }
  .hero .btn {
    min-height: 86px;
    font-size: 1.1rem;
    padding: 1.15rem 3rem;
    border-radius: 28px;
    letter-spacing: .04em;
  }
  .hero-tags { gap: 1rem 1.6rem; margin-bottom: 2.2rem; }
  .hero-tag { font-size: 1.2rem; padding-right: 1.6rem; }
  .hero-tag:not(:last-child)::after { width: 8px; height: 8px; margin-top: -4px; }

  .section { padding: clamp(7rem, 8vh, 10rem) 0; }
  .section-label { font-size: 1rem; letter-spacing: 2.5px; margin-bottom: 1.2rem; }
  h2 { font-size: clamp(2.4rem, 3vw, 3.5rem); }
  h3 { font-size: clamp(1.5rem, 1.8vw, 2rem); }
  .section-desc { font-size: 1.1rem; max-width: 64ch; margin-bottom: var(--sp-2xl); }

  .tradition-grid { padding: 1.8rem 2rem; border-radius: var(--r-xl); }
  .tradition-item strong { font-size: clamp(2.5rem, 3.5vw, 3.5rem); }
  .tradition-item span { font-size: 1rem; }

  .products-grid { gap: var(--sp-xl); }
  .product-card-overlay { padding: 2rem; }
  .product-card h3 { font-size: 1.45rem; }
  .product-card p { font-size: 1rem; max-width: 34ch; }

  .reviews-layout { grid-template-columns: 1fr 2fr; gap: var(--sp-2xl); }
  .review-highlight { padding: var(--sp-xl) var(--sp-lg); }
  .review-highlight .review-score { font-size: 3.5rem; }
  .review-cards { gap: var(--sp-lg); }
  .review-card { padding: 2.2rem; }
  .review-card .quote { font-size: 1.05rem; }
  .review-card .author { font-size: .95rem; }

  .cta-grid { gap: var(--sp-xl); }
  .cta-card { padding: 3.5rem 3.2rem; }
  .cta-card h3 { font-size: 1.35rem; }

  .inner-hero { padding: 10rem 0 4rem; }
  .inner-hero h1 { font-size: clamp(3rem, 3.5vw, 5rem); }
  .inner-hero p { font-size: 1.2rem; }
  .catalog-grid { gap: var(--sp-xl); }
  .catalog-card > img { height: 380px; }
  .catalog-content { padding: 1.5rem; }
  .catalog-content h2 { font-size: 1.45rem; }

  .onas-story-grid { gap: var(--sp-2xl); }
  .onas-value-card { padding: 2rem 1.8rem; }
  .onas-value-icon { width: 4rem; height: 4rem; }

  .kr-contact-group { gap: var(--sp-2xl); }
  .kr-card { padding: var(--sp-2xl); }
  .kr-photo-card img { height: 240px; }
  .kr-map-frame { height: 600px; }

  .site-footer { padding: var(--sp-3xl) 0 var(--sp-xl); }
  .footer-grid { gap: var(--sp-2xl); }
  .footer-col h4 { font-size: 1.05rem; }
  .footer-col p, .footer-col a { font-size: .92rem; }
  .footer-logo { height: 56px; max-width: 340px; }
  .footer-bottom { font-size: .88rem; padding-top: var(--sp-lg); }

  .btn { min-height: 56px; padding: .85rem 1.8rem; font-size: .88rem; }
  .btn-gold { box-shadow: 0 6px 24px rgba(212,168,50,.28); }

  .cookie-banner { padding: 1.8rem 2.2rem; border-radius: var(--r-lg); }
  .cookie-btn { font-size: .85rem; padding: .65rem 1.1rem; }

  /* --- Homepage contact / hours (hp-*) --- */
  .hp-contact-cols { gap: var(--sp-xl); margin-bottom: var(--sp-xl); }
  .hp-contact-block { padding: 2rem 1.5rem; }
  .hp-contact-icon { width: 96px; height: 96px; margin-bottom: 1.4rem; }
  .hp-contact-icon svg { width: 42px; height: 42px; }
  .hp-contact-block h3 { font-size: .88rem; margin-bottom: .8rem; }
  .hp-contact-value { font-size: 1rem; padding: .3rem 0; }
  .hp-contact-sub { font-size: .88rem; }
  .hp-hours-strip { padding: 3rem 3.5rem; max-width: 860px; border-radius: var(--r-xl); }
  .hp-hours-label { font-size: .78rem; letter-spacing: 2.5px; }
  .hp-hours-title { font-size: clamp(1.4rem, 2vw, 1.8rem); margin-bottom: 1.2rem; }
  .hp-hour-row { padding: .9rem 0; font-size: 1rem; }
  .hp-notes { margin-top: 1.8rem; gap: .55rem; }
  .hp-notes li { font-size: .88rem; }
  .hp-notes li::before { width: 7px; height: 7px; }

  /* --- Review details --- */
  .review-highlight .review-label { font-size: .72rem; letter-spacing: 2.5px; margin-bottom: .5rem; }
  .review-highlight .review-score { font-size: 3rem; }
  .review-highlight .review-stars { font-size: 1.15rem; margin: .5rem 0 1.2rem; letter-spacing: 3px; }
  .review-highlight .review-sub { font-size: .88rem; margin-bottom: var(--sp-lg); }
  .review-highlight .btn { font-size: .85rem; }
  .review-card .badge { padding: .3rem .8rem; font-size: .72rem; }
  .review-card .quote { font-size: .95rem; line-height: 1.65; }
  .review-card .author { font-size: .88rem; }

  /* --- Nabídka page (nabidka-*) --- */
  .nabidka-nav { padding: 1.1rem 0; }
  .nabidka-nav-list li:not(:last-child)::after { width: 6px; height: 6px; margin: 0 1.1rem; }
  .nabidka-nav-link { font-size: .88rem; padding: .55rem .25rem; }
  .nabidka-price-info p { font-size: .95rem; }
  .nabidka-category { margin-bottom: var(--sp-3xl); }
  .nabidka-category-header { margin-bottom: var(--sp-xl); }
  .nabidka-category-title { font-size: clamp(1.8rem, 3vw, 2.5rem); }
  .nabidka-category-line { width: 72px; height: 3px; }
  .nabidka-grid { gap: var(--sp-lg); }
  .nabidka-card-body { padding: 1.8rem; }
  .nabidka-card-body h3 { font-size: 1.25rem; }
  .nabidka-card-body p { font-size: .95rem; max-width: 30ch; }

  /* --- Ceník page (cenik-*) --- */
  .cenik-toolbar { padding: var(--sp-xl) 0 var(--sp-lg); }
  .cenik-search-wrap { max-width: 720px; }
  .cenik-search-input { padding: 1rem 1.4rem 1rem 3.5rem; font-size: 1rem; }
  .search-icon { width: 1.3rem; height: 1.3rem; left: 1.2rem; }
  .cenik-filter-btn { padding: .55rem 1.3rem; font-size: .88rem; }
  .cenik-portfolio { padding: var(--sp-2xl) 0 var(--sp-3xl); }
  .cenik-table-wrap { max-width: 1400px; }
  .cenik-table th, .cenik-table td { padding: .9rem 1.2rem; font-size: .95rem; }
  .cenik-table thead th { font-size: .88rem; }
  .cenik-grid { gap: 1.6rem; }
  .cenik-card { padding: 1.5rem 1.6rem; gap: 1rem; }
  .cenik-card-header h3 { font-size: 1.1rem; }
  .cenik-price-item { padding: .75rem .9rem; }
  .cenik-price-weight { font-size: .78rem; }
  .cenik-price-value { font-size: 1.2rem; }
  .cenik-empty { padding: var(--sp-2xl) 0; }
  .cenik-empty p { font-size: 1rem; }
  .cenik-bottom .price-note { font-size: .92rem; }
  .cenik-bottom-actions .btn { font-size: .92rem; }

  /* --- O nás page (onas-*) --- */
  .onas-story { padding: var(--sp-2xl) 0 var(--sp-3xl); }
  .onas-text-col h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
  .onas-text-col p { font-size: 1rem; }
  .onas-quote { padding: 1.5rem 1.8rem; font-size: 1rem; border-left-width: 4px; }
  .onas-detail { padding: var(--sp-3xl) 0; }
  .onas-detail-grid { gap: var(--sp-2xl); }
  .onas-detail-text h2 { font-size: clamp(1.8rem, 3vw, 2.5rem); }
  .onas-detail-text p { font-size: 1rem; }
  .onas-values { padding: var(--sp-3xl) 0; }
  .onas-values-grid { gap: 1.6rem; }
  .onas-value-card { padding: 2rem 1.8rem; }
  .onas-value-icon { width: 4rem; height: 4rem; }
  .onas-value-icon svg { width: 1.6rem; height: 1.6rem; }
  .onas-value-card h3 { font-size: 1.1rem; }
  .onas-value-card p { font-size: .95rem; max-width: 34ch; }
  .onas-cta { gap: 1rem; margin-top: var(--sp-3xl); }

  /* --- Kontakt reborn (kr-*) --- */
  .kontakt-reborn { padding-bottom: var(--sp-3xl); }
  .kr-grid { gap: var(--sp-xl); }
  .kr-contact-card h3 { font-size: 1.15rem; gap: .7rem; }
  .kr-icon-wrap { width: 2.2rem; height: 2.2rem; }
  .kr-info-item { padding: .35rem 0; font-size: .95rem; }
  .kr-contact-note { font-size: .92rem; }
  .kr-row-hours-photo { gap: var(--sp-lg); }
  .kr-card-hours h3, .kr-card-gallery h3 { font-size: 1.2rem; }
  .kr-hour-row { padding: .55rem 0; font-size: .95rem; }
  .kr-hours-notes li { font-size: .92rem; }
  .kr-hours-notes li::before { width: 6px; height: 6px; }
  .kr-photo-grid { gap: .6rem; }
  .kr-photo-card img { height: 240px; }
  .kr-lightbox-inner { width: min(92vw, 1800px); }
  .kr-lightbox-close { width: 64px; height: 64px; font-size: 1.3rem; }
  .kr-lightbox-nav { width: 66px; height: 66px; font-size: 1.8rem; }
  .kr-lightbox-prev { left: -80px; }
  .kr-lightbox-next { right: -80px; }

  /* --- Inner pages / legal --- */
  .inner-hero .wrap { max-width: 1400px; }
  .inner-hero p { max-width: 920px; font-size: 1.15rem; }
  .inner-section { padding: 0 0 var(--sp-3xl); }
  .legal-content { max-width: 1300px; }
  .legal-content h2 { font-size: 1.4rem; }
  .legal-content h3 { font-size: 1.15rem; }
  .legal-content p { font-size: .95rem; margin-bottom: .85rem; line-height: 1.75; }
  .legal-content ul { margin: 0 0 1rem 1.2rem; }
  .legal-content li { font-size: .95rem; margin-bottom: .35rem; }

  /* --- Produkty / catalog --- */
  .catalog-grid { gap: var(--sp-xl); }
  .catalog-card > img { height: 420px; }
  .catalog-content { padding: 1.5rem 1.6rem; }
  .catalog-content h2 { font-size: 1.45rem; }
  .catalog-content p { font-size: .95rem; }
  .composition-label { font-size: .88rem; }
  .composition-text { font-size: .95rem; }
  .catalog-block { margin-top: .3rem; padding-top: .7rem; }
  .catalog-list li { font-size: .95rem; }
  .catalog-gallery { gap: .6rem; }
  .catalog-gallery-trigger img { height: 120px; }
  .page-produkty .produkty-card > img { height: 360px; }
  .page-produkty .produkty-card-body { padding: 1.3rem 1.5rem 1.5rem; }
  .page-produkty .produkty-card-body h2 { font-size: 1.3rem; }
  .page-produkty .produkty-card-body p { font-size: .95rem; }

  /* --- 404 page --- */
  .error404-card { max-width: 700px; }
  .error404-code { font-size: 1.5rem; }
  .error404-image img { max-width: 500px; }

  /* --- Page actions --- */
  .page-actions { gap: 1rem; }

  /* --- Footer contact rows --- */
  .footer-contact-row { font-size: .92rem; gap: .7rem; }
  .footer-contact-row svg { width: 1.1rem; height: 1.1rem; }
}

/* ============================================
   KONTAKT PAGE (k2-* styles)
   ============================================ */

/* Hero */
.k2-hero {
  padding: 8rem 0 3rem;
  background: var(--color-dark);
  text-align: center;
}
.k2-hero .wrap { position: relative; z-index: 1; }
.k2-hero h1 { color: #fff; font-size: var(--h1-size); letter-spacing: -.02em; margin-bottom: .6rem; }
.k2-hero p { color: rgba(255,255,255,.7); font-size: clamp(.95rem, 1.1vw, 1.15rem); max-width: 54ch; margin: 0 auto; line-height: 1.6; }

/* Contact strip – 3 columns */
.k2-contact-strip { padding: 4rem 0; background: var(--color-bg); }
.k2-contact-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.k2-contact-block { text-align: center; padding: 1.5rem 1rem; }
.k2-contact-icon {
  width: 56px; height: 56px;
  margin: 0 auto 1.1rem;
  display: flex; align-items: center; justify-content: center;
  background: rgba(212,168,50,.08); border-radius: 50%;
}
.k2-contact-icon svg { width: 26px; height: 26px; fill: var(--color-gold); }
.k2-contact-block h3 {
  font-size: .78rem; font-weight: 600;
  margin-bottom: .6rem; text-transform: uppercase;
  letter-spacing: .8px; color: var(--color-gold);
}
.k2-contact-value { display: block; font-size: 1.05rem; color: var(--color-text); padding: .2rem 0; transition: color .2s; }
a.k2-contact-value:hover { color: var(--color-gold); }
.k2-contact-label { font-weight: 600; color: var(--color-dark); }
.k2-contact-sub { font-size: .85rem; color: var(--color-text-light); margin-top: .35rem; }

/* Nav button */
.k2-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  padding: .65rem 1.5rem; font-size: .82rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .5px;
  border-radius: 999px; border: none; cursor: pointer;
  transition: all .3s var(--ease); text-decoration: none;
}
.k2-btn--gold { background: var(--color-gold); color: #fff; box-shadow: 0 4px 16px rgba(212,168,50,.25); }
.k2-btn--gold:hover { background: var(--color-gold-hover); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(212,168,50,.3); }
.k2-btn--outline { background: transparent; color: var(--color-dark); border: 1.5px solid rgba(22,24,29,.25); }
.k2-btn--outline:hover { background: var(--color-dark); color: #fff; border-color: var(--color-dark); }
.k2-btn svg { width: 1rem; height: 1rem; fill: currentColor; }

/* Hours + Gallery – split section */
.k2-split { padding: 5rem 0; background: var(--color-bg-warm, #f6f5f2); }
.k2-split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3.5rem; align-items: start; }

.k2-section-label {
  font-family: var(--font-heading); font-size: .88rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1.8px; color: var(--color-gold); margin-bottom: .6rem;
}
.k2-section-title { font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 1.2rem; }

.k2-hours-col { max-width: 430px; }
.k2-hours-table { width: 100%; }
.k2-hour-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: .7rem 0; border-bottom: 1px solid rgba(22,24,29,.06); font-size: .95rem;
}
.k2-hour-row:last-child { border-bottom: none; }
.k2-hour-day { color: var(--color-text-light); }
.k2-hour-time { font-weight: 600; color: var(--color-dark); }
.k2-hour-closed .k2-hour-time { color: var(--color-text-light); font-weight: 400; }

.k2-notes { list-style: none; margin-top: 1.3rem; display: flex; flex-direction: column; gap: .35rem; }
.k2-notes li { position: relative; padding-left: .9rem; font-size: .88rem; color: var(--color-text-light); }
.k2-notes li::before {
  content: ''; position: absolute; left: 0; top: .55em;
  width: 5px; height: 5px; border-radius: 50%; background: var(--color-gold);
}

/* Gallery */
.k2-gallery-grid { border-radius: 16px; overflow: hidden; }
.k2-photo-btn {
  display: block; width: 100%; border: 0; padding: 0;
  background: transparent; cursor: zoom-in; overflow: hidden; position: relative; line-height: 0;
}
.k2-photo-btn img {
  width: 100%; height: 320px; object-fit: cover;
  transition: transform .5s var(--ease), filter .4s var(--ease);
}
.k2-photo-btn:hover img { transform: scale(1.06); filter: brightness(1.04); }
.k2-photo-btn:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 2px; }

/* Map */
.k2-map-section { background: var(--color-bg); padding: 0; }
.k2-map-frame { width: 100%; height: 380px; border: 0; display: block; }

/* Lightbox */
.k2-lightbox {
  position: fixed; inset: 0; z-index: 12000;
  background: rgba(22,24,29,.92);
  display: flex; align-items: center; justify-content: center; padding: 1.1rem;
}
.k2-lightbox[hidden] { display: none; }
.k2-lightbox-inner { position: relative; width: min(92vw, 1080px); max-height: 92vh; }
.k2-lightbox-image { width: 100%; max-height: 84vh; object-fit: contain; border-radius: 12px; }
.k2-lightbox-close,
.k2-lightbox-nav {
  position: absolute; border: 0; color: #fff;
  background: rgba(0,0,0,.45); cursor: pointer; border-radius: 999px;
  display: inline-flex; align-items: center; justify-content: center;
}
.k2-lightbox-close { top: -14px; right: -14px; width: 42px; height: 42px; font-size: 1.5rem; line-height: 1; }
.k2-lightbox-nav { top: 50%; transform: translateY(-50%); width: 44px; height: 44px; font-size: 1.6rem; }
.k2-lightbox-prev { left: -56px; }
.k2-lightbox-next { right: -56px; }
.k2-lightbox-close:hover, .k2-lightbox-nav:hover { background: rgba(0,0,0,.7); }

/* Kontakt reveal */
.k2-reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .65s var(--ease), transform .65s var(--ease);
}
.k2-reveal.visible { opacity: 1; transform: none; }

/* Kontakt responsive */
@media (max-width: 768px) {
  .k2-hero { padding: 7rem 0 2.5rem; }
  .k2-contact-cols { grid-template-columns: 1fr; gap: 0; }
  .k2-contact-block { padding: 1.5rem 0; border-bottom: 1px solid rgba(22,24,29,.06); }
  .k2-contact-block:last-child { border-bottom: none; }
  .k2-split { padding: 4rem 0; }
  .k2-split-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .k2-hours-col { max-width: none; }
  .k2-section-label { display: block; text-align: center; }
  .k2-section-title { text-align: center; }
  .k2-photo-btn img { height: 220px; }
  .k2-map-frame { height: 260px; }
  .k2-lightbox-close { top: 10px; right: 10px; }
  .k2-lightbox-nav { width: 40px; height: 40px; font-size: 1.4rem; }
  .k2-lightbox-prev { left: 8px; }
  .k2-lightbox-next { right: 8px; }
}

@media (max-width: 374px) {
  .k2-photo-btn img { height: 180px; }
  .k2-map-frame { height: 220px; }
}

@media (min-width: 1440px) {
  .k2-photo-btn img { height: 360px; }
}

@media (min-width: 1920px) and (max-width: 2559px) {
  .k2-hero { padding: 10rem 0 4rem; }
  .k2-hero h1 { font-size: clamp(3rem, 3.5vw, 5rem); }
  .k2-hero p { font-size: 1.15rem; max-width: 780px; }
  .k2-contact-strip { padding: 4rem 0; }
  .k2-contact-cols { gap: var(--sp-xl); }
  .k2-contact-block { padding: 2.5rem 2rem; }
  .k2-contact-icon { width: 3.5rem; height: 3.5rem; margin: 0 auto 1.4rem; }
  .k2-contact-icon svg { width: 1.5rem; height: 1.5rem; }
  .k2-contact-block h3 { font-size: .82rem; margin-bottom: .8rem; letter-spacing: 1.2px; }
  .k2-contact-value { font-size: 1.05rem; padding: .3rem 0; }
  .k2-contact-label { font-size: 1.05rem; }
  .k2-btn { padding: .8rem 1.8rem; font-size: .85rem; }
  .k2-btn svg { width: 1.1rem; height: 1.1rem; }
  .k2-split { padding: 5rem 0; }
  .k2-split-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-xl); }
  .k2-section-label { font-size: .88rem; letter-spacing: 1.8px; margin-bottom: .6rem; }
  .k2-section-title { font-size: clamp(1.6rem, 2.5vw, 2.2rem); margin-bottom: 1.4rem; }
  .k2-hours-col { max-width: 500px; }
  .k2-hours-table { width: 100%; }
  .k2-hour-row { padding: .85rem 0; font-size: 1rem; }
  .k2-notes li { font-size: .88rem; }
  .k2-photo-btn img { height: 420px; }
  .k2-gallery-grid { border-radius: var(--r-xl); }
  .k2-map-frame { height: 420px; }
}

@media (min-width: 2560px) and (max-width: 3839px) {
  .k2-hero { padding: 12rem 0 5rem; }
  .k2-hero h1 { font-size: clamp(3.5rem, 4vw, 5.5rem); }
  .k2-hero p { font-size: 1.3rem; max-width: 900px; }
  .k2-contact-strip { padding: 5rem 0; }
  .k2-contact-cols { gap: var(--sp-2xl); }
  .k2-contact-block { padding: 3rem 2.5rem; }
  .k2-contact-icon { width: 4.5rem; height: 4.5rem; margin: 0 auto 1.6rem; }
  .k2-contact-icon svg { width: 2rem; height: 2rem; }
  .k2-contact-block h3 { font-size: .92rem; margin-bottom: 1rem; letter-spacing: 1.5px; }
  .k2-contact-value { font-size: 1.15rem; padding: .4rem 0; }
  .k2-contact-label { font-size: 1.15rem; }
  .k2-contact-sub { font-size: .95rem; }
  .k2-btn { padding: 1rem 2.2rem; font-size: .95rem; }
  .k2-btn svg { width: 1.2rem; height: 1.2rem; }
  .k2-split { padding: 6rem 0; }
  .k2-split-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-2xl); }
  .k2-section-label { font-size: .95rem; letter-spacing: 2.2px; margin-bottom: .8rem; }
  .k2-section-title { font-size: clamp(1.8rem, 2.8vw, 2.5rem); margin-bottom: 1.6rem; }
  .k2-hours-col { max-width: 560px; }
  .k2-hour-row { padding: 1rem 0; font-size: 1.1rem; }
  .k2-hour-day { font-size: 1.1rem; }
  .k2-hour-time { font-size: 1.1rem; }
  .k2-notes { margin-top: 1.8rem; gap: .5rem; }
  .k2-notes li { font-size: .95rem; padding-left: 1.1rem; }
  .k2-notes li::before { width: 7px; height: 7px; }
  .k2-photo-btn img { height: 520px; min-height: 500px; }
  .k2-gallery-grid { border-radius: var(--r-xl); }
  .k2-map-frame { height: 560px; }
  .k2-lightbox-inner { width: min(92vw, 1800px); }
  .k2-lightbox-close { width: 64px; height: 64px; font-size: 1.3rem; }
  .k2-lightbox-nav { width: 66px; height: 66px; font-size: 1.8rem; }
  .k2-lightbox-prev { left: -80px; }
  .k2-lightbox-next { right: -80px; }
}

@media (min-width: 3840px) {
  .k2-hero { padding: 14rem 0 6rem; }
  .k2-hero h1 { font-size: clamp(4rem, 4.5vw, 6.5rem); }
  .k2-hero p { font-size: 1.4rem; max-width: 1100px; }
  .k2-contact-strip { padding: 6rem 0; }
  .k2-contact-cols { gap: var(--sp-2xl); }
  .k2-contact-block { padding: 3.5rem 3rem; }
  .k2-contact-icon { width: 5.5rem; height: 5.5rem; margin: 0 auto 2rem; }
  .k2-contact-icon svg { width: 2.4rem; height: 2.4rem; }
  .k2-contact-block h3 { font-size: 1rem; margin-bottom: 1.2rem; letter-spacing: 2px; }
  .k2-contact-value { font-size: 1.25rem; padding: .5rem 0; }
  .k2-contact-label { font-size: 1.25rem; }
  .k2-contact-sub { font-size: 1rem; }
  .k2-btn { padding: 1.1rem 2.5rem; font-size: 1rem; }
  .k2-btn svg { width: 1.4rem; height: 1.4rem; }
  .k2-split { padding: 7rem 0; }
  .k2-split-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-3xl); }
  .k2-section-label { font-size: 1rem; letter-spacing: 2.5px; margin-bottom: 1rem; }
  .k2-section-title { font-size: clamp(2rem, 3vw, 3rem); margin-bottom: 2rem; white-space: nowrap; }
  .k2-hours-col { max-width: none; }
  .k2-hours-table { width: 100%; }
  .k2-hour-row { padding: 1.2rem 0; font-size: 1.2rem; }
  .k2-hour-day { font-size: 1.2rem; }
  .k2-hour-time { font-size: 1.2rem; }
  .k2-notes { margin-top: 2.2rem; gap: .6rem; }
  .k2-notes li { font-size: 1rem; padding-left: 1.3rem; }
  .k2-notes li::before { width: 8px; height: 8px; }
  .k2-photo-btn img { height: 680px; min-height: 600px; }
  .k2-gallery-grid { border-radius: var(--r-xl); }
  .k2-map-frame { height: 800px; }
  .k2-lightbox-inner { width: min(92vw, 2400px); }
  .k2-lightbox-close { width: 80px; height: 80px; font-size: 1.6rem; }
  .k2-lightbox-nav { width: 82px; height: 82px; font-size: 2rem; }
  .k2-lightbox-prev { left: -100px; }
  .k2-lightbox-next { right: -100px; }
}
