/* === tokens === */
:root{
  --ink:#111111;
  --ink-2:#2a2a2a;
  --paper:#f4f1ea;     /* warm off-white, like dojo wood */
  --paper-2:#ece8df;
  --line:#d9d3c5;
  --line-2:#bfb8a6;
  --muted:#6b6557;
  --accent:#b3271f;    /* deep dojo red */
  --accent-ink:#fff;
  --shadow: 0 1px 0 rgba(0,0,0,.04), 0 24px 60px -30px rgba(0,0,0,.25);
  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --sans: "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --karate: "Bangers", "Rubik Mono One", "Fraunces", serif;
  --maxw: 1240px;
  --pad: clamp(20px, 5vw, 56px);
  --r: 14px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; cursor:pointer}
.skip{position:absolute; left:-9999px}
.skip:focus{left:12px; top:12px; background:var(--ink); color:var(--paper); padding:8px 12px; z-index:100}

.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad)}

/* === nav ===
   NB: backdrop-filter creates a new containing block for fixed descendants
   per spec, which would trap the mobile menu inside the nav. We apply it
   only at desktop widths where the menu isn't position:fixed. */
.nav{
  position:sticky; top:0; z-index:50;
  background:var(--paper);
  border-bottom:1px solid transparent;
  transition:border-color .2s ease;
}
@media (min-width: 880px){
  .nav{
    background:color-mix(in oklab, var(--paper) 88%, transparent);
    backdrop-filter:saturate(140%) blur(14px);
    -webkit-backdrop-filter:saturate(140%) blur(14px);
  }
}
.nav.is-scrolled{border-bottom-color:var(--line)}
.nav__inner{
  max-width:var(--maxw); margin:0 auto;
  padding:14px var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.brand{display:flex; align-items:center; gap:10px; color:var(--ink)}
.brand__mark{display:inline-flex; color:var(--accent); width:44px; height:44px; border-radius:10px; overflow:hidden; background:var(--paper-2); border:1px solid var(--line)}
.brand__mark img{width:100%; height:100%; object-fit:cover; display:block}
.brand__mark--foot{background:#1a1a1a; border-color:#222}
.brand__txt{display:flex; flex-direction:column; line-height:1.05}
.brand__name{font-family:var(--karate); font-weight: var(--karate-weight, 400); font-size:19px; letter-spacing: var(--karate-track, .02em); text-transform:uppercase}
.brand__sub{font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:3px}

.nav__toggle{
  display:inline-flex; flex-direction:column; gap:5px;
  background:none; border:0; padding:10px; margin:-10px;
  border-radius:8px;
}
.nav__toggle span{display:block; width:22px; height:2px; background:var(--ink); border-radius:2px; transition:transform .25s, opacity .2s}
.nav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.nav__links{
  position:fixed; inset:62px 0 0 0;
  background:var(--paper);
  display:flex; flex-direction:column; gap:0;
  padding:8px var(--pad) 24px;
  transform:translateY(-12px); opacity:0; pointer-events:none;
  transition:transform .25s ease, opacity .2s ease;
  border-top:1px solid var(--line);
}
.nav__links.is-open{transform:translateY(0); opacity:1; pointer-events:auto}
.nav__links a{
  font-family:var(--serif); font-size:28px; font-weight:600;
  padding:14px 0; border-bottom:1px solid var(--line);
  letter-spacing:-.01em;
}
.nav__links a:last-child{border-bottom:0}
.nav__cta{
  margin-top:14px; align-self:flex-start;
  background:var(--ink); color:var(--paper);
  padding:14px 22px !important; border-radius:999px;
  font-size:15px !important; font-family:var(--sans) !important;
  border:0 !important;
}

@media (min-width: 880px){
  .nav__toggle{display:none}
  .nav__links{
    position:static; inset:auto; background:transparent; border:0;
    flex-direction:row; align-items:center; gap:4px; padding:0;
    flex-wrap:wrap;
    transform:none; opacity:1; pointer-events:auto;
  }
  .nav__links a{
    font-family:var(--sans); font-size:14px; font-weight:500;
    padding:8px 12px; border:0; border-radius:999px; color:var(--ink-2);
    white-space:nowrap;
  }
  .nav__links a:hover{background:var(--paper-2); color:var(--ink)}
  .nav__links a.nav__cta{
    margin:0 0 0 8px; align-self:auto;
    padding:10px 18px !important; font-size:14px !important;
    background:var(--accent) !important; color:#fff !important;
    font-weight:600 !important;
    box-shadow: 0 4px 12px -4px color-mix(in oklab, var(--accent) 60%, transparent);
  }
  .nav__links a.nav__cta:hover{background:var(--ink) !important; color:var(--paper) !important}
}

/* === buttons === */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 22px; border-radius:999px;
  font-weight:600; font-size:15px; letter-spacing:-.005em;
  border:1px solid transparent; transition:transform .15s ease, background .2s, color .2s, border-color .2s;
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--ink); color:var(--paper)}
.btn--primary:hover{background:var(--accent)}
.btn--ghost{background:transparent; color:var(--ink); border-color:var(--line-2)}
.btn--ghost:hover{border-color:var(--ink); background:var(--paper-2)}
.btn--accent{background:var(--accent); color:var(--accent-ink)}
.btn--accent:hover{filter:brightness(1.08)}

/* === hero === */
.hero{position:relative; overflow:hidden; isolation:isolate; background:var(--ink); color:var(--paper)}
.hero__bg{position:absolute; inset:0; z-index:-1}
.hero__photo{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.6) 60%, rgba(0,0,0,.85) 100%),
    repeating-linear-gradient(135deg, #1a1a1a 0 22px, #222 22px 44px);
}
.hero__photo::after{
  content:"dojo · trening · Bohinj";
  position:absolute; right:14px; bottom:12px;
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(255,255,255,.35);
}
.hero__grain{
  position:absolute; inset:0; opacity:.18; mix-blend-mode:overlay;
  background-image: radial-gradient(rgba(255,255,255,.4) 1px, transparent 1px);
  background-size:3px 3px;
}
.hero__inner{
  max-width:var(--maxw); margin:0 auto;
  padding: clamp(72px, 14vw, 140px) var(--pad) clamp(56px, 10vw, 100px);
  position:relative;
}
.hero__shotokan{
  position:absolute; top: clamp(24px, 5vw, 56px); right: var(--pad);
  width: clamp(110px, 16vw, 200px); height:auto; aspect-ratio:1;
  object-fit:contain;
  border-radius:50%;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.08);
  z-index:2;
  background:#000;
  filter: drop-shadow(0 0 30px rgba(179,39,31,.25));
  animation: shotokan-spin 60s linear infinite;
}
@keyframes shotokan-spin { to { transform: rotate(360deg); } }
@media (max-width: 720px){
  .hero__shotokan{
    width: 90px; top: 16px; right: 16px;
  }
}
.hero__eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:rgba(255,255,255,.7);
  padding:8px 14px; border:1px solid rgba(255,255,255,.18); border-radius:999px;
  background:rgba(255,255,255,.04);
}
.hero__eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px color-mix(in oklab, var(--accent) 30%, transparent)}
.hero__title{
  font-family: var(--karate);
  font-weight: var(--karate-weight, 400);
  font-size: clamp(48px, 9vw, 108px);
  line-height:.95; letter-spacing: var(--karate-track, .005em);
  margin: 24px 0 24px;
  text-wrap:pretty;
  text-transform:uppercase;
  display:flex; gap: clamp(12px, 2.4vw, 32px); align-items:flex-start;
  text-shadow: none;
}
.hero__title em{font-style:normal; color:var(--accent); font-weight:inherit; text-shadow: none}
.hero__kanji{
  font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-size: clamp(48px, 11vw, 140px);
  line-height:.9;
  color:var(--accent);
  opacity:.95;
  font-weight:400;
  writing-mode: vertical-rl;
  text-orientation: upright;
  letter-spacing:0;
  text-shadow:none;
  flex-shrink:0;
}
.hero__lede{
  max-width:54ch; font-size: clamp(16px, 2vw, 19px);
  color:rgba(255,255,255,.78); margin: 0 0 32px;
}
.hero__cta{display:flex; flex-wrap:wrap; gap:12px; margin-bottom: clamp(48px, 8vw, 72px)}
.hero .btn--primary{background:var(--paper); color:var(--ink)}
.hero .btn--primary:hover{background:var(--accent); color:#fff}
.hero .btn--ghost{color:var(--paper); border-color:rgba(255,255,255,.25)}
.hero .btn--ghost:hover{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.5)}

.hero__stats{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:16px;
  margin:0; padding:24px 0 0; border-top:1px solid rgba(255,255,255,.14);
}
.hero__stats div{display:flex; flex-direction:column; gap:4px}
.hero__stats dt{order:2; font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5); margin:0}
.hero__stats dd{order:1; margin:0; font-family:var(--serif); font-size: clamp(28px, 5vw, 44px); font-weight:700; letter-spacing:-.02em}

.hero__scroll{
  position:absolute; right:var(--pad); bottom:24px;
  font-family:var(--mono); font-size:10px; letter-spacing:.22em;
  color:rgba(255,255,255,.45);
  display:none;
}
@media (min-width: 880px){
  .hero__scroll{display:block}
  .hero__title{align-items:center}
}

/* === page-single (default leaf pages: o-klubu, karate, povezave, …) === */
.page-single{
  padding-top: clamp(72px, 12vw, 140px);
  padding-bottom: clamp(56px, 9vw, 110px);
}
.page-single__wrap{
  max-width: 760px;
  margin: 0 auto;
  padding-inline: var(--pad);
}
.page-single__head{
  margin-bottom: clamp(32px, 5vw, 56px);
}
.page-single__head .sec__num{
  margin-bottom: 14px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 10px;
}
.page-single__head .sec__num::before{
  content: "";
  width: 24px;
  height: 1px;
  background: var(--ink);
}
.page-single__head .sec__title{
  margin: 0 0 14px;
  font-family: var(--karate);
  font-weight: var(--karate-weight, 400);
  letter-spacing: var(--karate-track, .005em);
  font-size: clamp(40px, 7vw, 72px);
  line-height: 1;
  text-transform: uppercase;
  color: var(--ink);
  text-wrap: balance;
}
.page-single__head .sec__lede{
  margin: 0;
  font-size: clamp(16px, 1.6vw, 18px);
  color: var(--ink-2);
  max-width: 60ch;
  line-height: 1.55;
}
.page-single__body{ /* container only — wrap holds layout */ }

/* Long-form prose used inside page-single body */
.prose{
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink-2);
}
.prose > * + *{ margin-top: 18px; }
.prose h2{
  font-family: var(--serif);
  font-size: clamp(22px, 2.6vw, 28px);
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--ink);
  margin-top: clamp(40px, 5vw, 56px);
  margin-bottom: 14px;
  scroll-margin-top: 96px;
}
.prose h3{
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  margin-top: 32px;
  margin-bottom: 10px;
}
.prose p{ margin: 0; }
.prose p strong, .prose li strong{ color: var(--ink); font-weight: 600; }
.prose em{ color: var(--accent); font-style: normal; }
.prose a{
  color: var(--ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color .12s;
}
.prose a:hover{ color: var(--accent); }
.prose ul, .prose ol{ margin: 0; padding-left: 26px; }
.prose li{ margin: 6px 0; }
.prose blockquote{
  margin: clamp(28px, 4vw, 40px) 0;
  padding: 18px 24px;
  border-left: 3px solid var(--accent);
  background: var(--paper-2);
  border-radius: 0 8px 8px 0;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(17px, 1.8vw, 19px);
  line-height: 1.55;
  color: var(--ink);
}
.prose blockquote p{ margin: 0; }
.prose blockquote em,
.prose blockquote cite{
  display: block;
  margin-top: 10px;
  font-family: var(--mono);
  font-style: normal;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
}
.prose hr{
  margin: clamp(40px, 5vw, 56px) 0;
  border: 0;
  height: 1px;
  background: var(--line);
}
.prose table{
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
  font-size: 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}
.prose th{
  text-align: left;
  padding: 10px 14px;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 600;
}
.prose td{
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
}
.prose tr:nth-child(even) td{ background: var(--paper); }
.prose tr:last-child td{ border-bottom: 0; }
.prose code{
  font-family: var(--mono);
  font-size: 13px;
  background: var(--paper-2);
  padding: 1px 6px;
  border-radius: 4px;
}

@media (max-width: 720px){
  .page-single__head .sec__title{ font-size: 36px; }
  .prose{ font-size: 15.5px; }
  .prose blockquote{ padding: 14px 16px; font-size: 16px; }
}

/* === section base === */
.sec{padding: clamp(72px, 12vw, 140px) 0; border-top:1px solid var(--line)}
.sec__head{
  display:flex; flex-direction:column; gap:14px;
  max-width:var(--maxw); margin:0 auto;
  padding-inline:var(--pad);
  margin-bottom: clamp(40px, 6vw, 72px);
}
.sec__num{font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:10px}
.sec__num::before{content:""; width:24px; height:1px; background:var(--ink)}
.sec__title{
  font-family: var(--karate); font-weight: var(--karate-weight, 400);
  letter-spacing: var(--karate-track, .005em);
  font-size: clamp(40px, 8vw, 88px);
  line-height:1; margin:0; text-wrap:balance;
  text-transform:uppercase;
}
.sec__title em{color:var(--accent); font-style:normal; font-weight:inherit}
.sec__lede{
  font-size: clamp(16px, 1.6vw, 18px); color:var(--ink-2);
  max-width:60ch; margin:6px 0 0;
}

/* === Klub === */
.klub{padding-inline:var(--pad)}
.klub__grid{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:1fr; gap:16px;
}
.card{
  background:#fff; border:1px solid var(--line);
  border-radius:var(--r); padding:28px;
  display:flex; flex-direction:column; gap:14px;
  transition:transform .25s ease, border-color .2s, box-shadow .25s;
}
.card:hover{transform:translateY(-2px); border-color:var(--ink); box-shadow:var(--shadow)}
.card__icon{
  width:44px; height:44px; border-radius:12px;
  background:var(--paper); display:grid; place-items:center;
  color:var(--accent);
}
.card__icon svg{width:22px; height:22px}
.card h3{font-family:var(--serif); font-size:22px; font-weight:700; margin:0; letter-spacing:-.01em}
.card p{margin:0; color:var(--ink-2); font-size:15px}
.card__tag{
  align-self:flex-start; margin-top:auto;
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); padding:6px 10px; border:1px solid var(--line); border-radius:999px;
}
@media (min-width: 720px){ .klub__grid{grid-template-columns:repeat(3,1fr); gap:20px} }

/* === Urnik === karate-style cards, belt-color stripe + kanji badge */
.urnik{padding-inline:var(--pad)}
.urnik__wrap{
  max-width:var(--maxw); margin:0 auto;
  display:grid; gap:18px;
}
.urnik__group{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  display:flex; flex-direction:column;
  transition: box-shadow .2s ease;
}
.urnik__group::before{
  /* Belt color stripe down the left edge */
  content:""; position:absolute; inset:0 auto 0 0;
  width:6px;
  background: var(--belt-c, var(--ink));
}
.urnik__group:hover{ box-shadow: 0 12px 28px rgba(0,0,0,.08); }

/* Belt colour map — mirrors the side belt-rail */
.urnik__group--white   { --belt-c:#d6d0c1; --belt-kanji-bg:#f4f1ea; --belt-kanji-fg:#1a1a1a; }
.urnik__group--orange  { --belt-c:#e07f1a; --belt-kanji-bg:#e07f1a; --belt-kanji-fg:#ffffff; }
.urnik__group--black   { --belt-c:#0a0a0a; --belt-kanji-bg:#0a0a0a; --belt-kanji-fg:#ffffff; }
.urnik__group--outdoor { --belt-c:#5b3920; --belt-kanji-bg:#5b3920; --belt-kanji-fg:#ffffff; }

.urnik__group-head{
  display:flex; align-items:center; gap:16px;
  padding:18px 22px 16px 28px;
  background:var(--paper-2);
  border-bottom:1px solid var(--line);
}
.urnik__group-kanji{
  flex-shrink:0;
  width:48px; height:48px;
  display:grid; place-items:center;
  border-radius:10px;
  background: var(--belt-kanji-bg, var(--ink));
  color: var(--belt-kanji-fg, #fff);
  font-family: var(--karate);
  font-weight: 500;
  font-size:24px; line-height:1;
}
.urnik__group--white .urnik__group-kanji{
  border:1px solid #d6d0c1;
}
.urnik__group-meta{
  display:flex; flex-direction:column; gap:2px;
  min-width:0;
}
.urnik__group-eyebrow{
  font-family:var(--mono); font-size:10px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--muted);
}
.urnik__group-title{
  margin:0;
  font-family:var(--serif); font-size:20px; font-weight:700;
  letter-spacing:-.01em; line-height:1.2;
  color:var(--ink);
}
.urnik__group-sub{
  font-size:13px; color:var(--ink-2);
}

.urnik__sessions{
  list-style:none; padding:0; margin:0;
  display:grid;
}
.urnik__session{
  display:grid;
  grid-template-columns: 56px 132px 1fr;
  gap:14px; align-items:center;
  padding:14px 22px 14px 28px;
  border-bottom:1px solid var(--line);
}
.urnik__session:last-child{ border-bottom:0; }
.urnik__day{
  font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink);
  font-weight:700;
}
.urnik__time{
  font-family:var(--serif); font-weight:700; font-size:17px;
  white-space:nowrap; color:var(--ink);
  letter-spacing:-.01em;
  font-variant-numeric: tabular-nums;
}
.urnik__what{
  display:flex; flex-direction:column; gap:2px; min-width:0;
}
.urnik__activity{
  font-size:14px; color:var(--ink);
  line-height:1.35;
}
.urnik__venue{
  font-size:12px; color:var(--muted); line-height:1.3;
}
.urnik__venue--combo{
  display:inline-block;
  margin-top:2px;
  padding:2px 8px;
  border-radius:999px;
  background:var(--paper-2);
  border:1px solid var(--line);
  color:var(--ink-2);
  font-family:var(--mono); font-size:10px; letter-spacing:.14em;
  text-transform:uppercase;
  width:max-content;
}
.urnik__note{
  padding:14px 22px 16px 28px;
  font-size:13px; color:var(--muted);
  background:var(--paper);
  border-top:1px dashed var(--line);
}

@media (max-width: 540px){
  .urnik__session{
    grid-template-columns: 44px 1fr;
    grid-template-rows: auto auto;
    row-gap:4px; column-gap:12px;
    padding:14px 18px 14px 22px;
  }
  .urnik__day{ grid-row:1; grid-column:1; }
  .urnik__time{ grid-row:1; grid-column:2; font-size:16px; }
  .urnik__what{ grid-row:2; grid-column:1 / -1; }
  .urnik__group-head{ padding:14px 18px 12px 22px; gap:12px; }
  .urnik__group-kanji{ width:42px; height:42px; font-size:20px; }
  .urnik__group-title{ font-size:18px; }
}

@media (min-width: 720px){
  .urnik__wrap{grid-template-columns:1fr 1fr; gap:20px}
  .urnik__group--full{grid-column:1/-1}
}

/* /sl/urnik/ page — give breathing room and centre the prose below */
.urnik-page .urnik__wrap{ margin-top: 18px; }
.urnik-page__prose{ max-width: 720px; margin-top: 28px; }

/* === Cenik === */
.cenik{padding-inline:var(--pad)}
.cenik__grid{max-width:var(--maxw); margin:0 auto; display:grid; gap:18px}
.price{
  border:1px solid var(--line); border-radius:var(--r);
  padding:28px; background:#fff; position:relative;
  display:flex; flex-direction:column; gap:14px;
}
.price--feat{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.price--feat .price__label{color:rgba(255,255,255,.6)}
.price--feat .price__list{color:rgba(255,255,255,.85)}
.price--feat .price__list li::before{background:var(--accent)}
.price__label{font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted)}
.price__name{font-family:var(--serif); font-size:26px; font-weight:700; margin:0; letter-spacing:-.01em}
.price__amt{font-family:var(--serif); font-size:48px; font-weight:800; line-height:1; letter-spacing:-.03em}
.price__amt small{font-size:14px; font-weight:500; font-family:var(--sans); color:var(--muted); display:inline-block; margin-left:4px}
.price--feat .price__amt small{color:rgba(255,255,255,.6)}
.price__list{list-style:none; padding:0; margin:8px 0 0; display:grid; gap:8px; font-size:14px}
.price__list li{position:relative; padding-left:18px}
.price__list li::before{content:""; position:absolute; left:0; top:8px; width:8px; height:8px; background:var(--accent); border-radius:2px; transform:rotate(45deg)}
.price__cta{margin-top:auto; padding-top:8px}
@media (min-width: 720px){ .cenik__grid{grid-template-columns:repeat(2,1fr); max-width:760px; margin-inline:auto} }

/* === Trenerji === */
.trenerji{padding-inline:var(--pad)}
.trenerji__grid{max-width:760px; margin:0 auto; display:grid; gap:20px}
.coach{display:flex; flex-direction:column; gap:14px}
.coach__photo{
  aspect-ratio: 4/5; border-radius:var(--r);
  background:
    linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.18)),
    repeating-linear-gradient(45deg, #d6cfbd 0 16px, #cdc5b0 16px 32px);
  position:relative; overflow:hidden; border:1px solid var(--line);
}
.coach__photo::after{
  content:attr(data-ph);
  position:absolute; left:14px; bottom:12px;
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(0,0,0,.4);
}
/* When a real photo is present, override the placeholder background. */
.coach__photo--img{
  background:none;
  border:1px solid var(--line);
}
.coach__photo--img::after{ display:none; }
.coach__photo--img img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.coach__name{font-family:var(--serif); font-size:22px; font-weight:700; margin:0; letter-spacing:-.01em}
.coach__role{font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent)}
.coach__bio{margin:6px 0 0; font-size:14px; color:var(--ink-2)}
@media (min-width: 720px){ .trenerji__grid{grid-template-columns:repeat(2,1fr)} }

/* === Zgodovina — minimal centred timeline (dot on thin line) === */
.zgod{padding-inline:var(--pad); background:var(--paper-2)}
.zgod__wrap{
  max-width: 640px;
  margin: 0 auto;
}

.timeline{
  list-style:none;
  padding: 0 0 0 22px;
  margin: 0;
  border-left: 1px solid var(--line-2);
  display:grid;
  gap: 22px;
}
.timeline__item{
  position:relative;
  padding: 0;
}
.timeline__item::before{
  content:"";
  position:absolute;
  left: -27px;
  top: 7px;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--paper-2);
}
.timeline__year{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.22em;
  text-transform: uppercase;
  color:var(--muted);
}
.timeline__title{
  font-family:var(--serif);
  font-size:18px;
  font-weight:700;
  margin: 4px 0 4px;
  letter-spacing:-.01em;
  color: var(--ink);
}
.timeline__desc{
  margin: 0;
  font-size:14px;
  line-height:1.55;
  color: var(--ink-2);
}

/* Featured era — slightly larger dot, accent year */
.timeline__item--feat::before{
  width: 13px; height: 13px;
  left: -29px;
  top: 5px;
  box-shadow: 0 0 0 4px var(--paper-2), 0 0 0 5px var(--accent);
}
.timeline__item--feat .timeline__year{
  color: var(--accent);
  font-weight: 700;
}

.zgod__more-row{
  margin-top: 32px;
  text-align: center;
}

/* === Obvestila / Facebook — full-page-width card, embed centred inside === */
.obv{padding-inline:var(--pad); background:var(--paper-2)}
.obv__inner{
  max-width: var(--maxw);
  margin: 0 auto;
}

/* Body: stack on mobile, info pane + embed side-by-side on PC. */
.fb__body{
  display:grid;
  grid-template-columns: 1fr;
  align-items:stretch;
}
@media (min-width: 960px){
  .fb__body{
    grid-template-columns: minmax(0, 1fr) 540px;
  }
}

/* "What we post on Facebook" karate-styled info pane — desktop only */
.fb__about{
  display: none;
  padding: clamp(22px, 3vw, 32px) clamp(20px, 3vw, 32px);
  background: #fff;
  flex-direction: column;
  gap: 18px;
}
@media (min-width: 960px){
  .fb__about{ display: flex; }
}
.fb__about-lede{
  margin: 0;
  font-family: var(--serif);
  font-weight: 500;
  font-style: italic;
  font-size: clamp(15px, 1.6vw, 17px);
  color: var(--ink-2);
  line-height: 1.4;
}
.fb__about-list{
  list-style: none;
  padding: 0; margin: 0;
  display: grid;
  gap: 12px;
}
.fb__about-item{
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  transition: border-color .15s, transform .15s, background .15s;
}
.fb__about-item:hover{
  border-color: var(--ink);
  background: #fff;
  transform: translateY(-1px);
}
.fb__about-kanji{
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-family: var(--karate);
  font-weight: 500;
  font-size: 22px;
  line-height: 1;
}
.fb__about-meta{
  display:flex; flex-direction:column; gap:2px; min-width:0;
}
.fb__about-meta strong{
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
  letter-spacing: -.005em;
}
.fb__about-meta small{
  font-size: 12px;
  color: var(--ink-2);
  line-height: 1.35;
}

.fb__about-cta{
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  background: #1877F2;
  color: #fff;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
  transition: background .12s, transform .12s;
}
.fb__about-cta:hover{ background: #0d68d8; transform: translateY(-1px); }
.fb__about-cta svg{ flex-shrink: 0; }

/* On PC the about pane sits left of the embed and the right column is a
   fixed 540px so the 500px iframe sits flush in a wide Facebook-grey band. */
@media (min-width: 960px){
  .fb__about{ border-right: 1px solid var(--line); }
}
.fb{
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  overflow:hidden; box-shadow:var(--shadow);
}
.fb__top{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 18px; border-bottom:1px solid var(--line); background:#fff;
}
.fb__top-l{display:flex; align-items:center; gap:12px; min-width:0}
.fb__avatar{
  width:44px; height:44px; border-radius:50%;
  background:#1877F2; color:#fff;
  display:grid; place-items:center;
  font-family:var(--serif); font-weight:800; font-size:18px;
  flex-shrink:0;
}
.fb__name{font-family:var(--serif); font-size:16px; font-weight:700; margin:0; line-height:1.2}
.fb__handle{font-family:var(--mono); font-size:10px; letter-spacing:.12em; color:var(--muted); text-transform:lowercase}
.fb__follow{
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; font-weight:600;
  padding:8px 14px; border-radius:999px;
  background:#1877F2; color:#fff;
  transition: background .12s;
  flex-shrink:0;
}
.fb__follow:hover{background:#0d68d8}

/* Live FB Page Plugin embed container.
   Facebook hard-caps the iframe at 500px wide. We keep the iframe crisp
   at its native resolution and centre it inside a Facebook-grey wash so
   the card can still span the full page width without looking orphaned. */
.fb__embed{
  position:relative;
  min-height:420px;
  max-height:760px;
  overflow-y:auto;
  overflow-x:hidden;
  background:#f0f2f5;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  -webkit-overflow-scrolling: touch;
  padding: 16px;
}
@media (min-width: 960px){
  .fb__embed{ max-height: 900px; min-height: 600px; padding: 24px 16px; }
}
.fb__embed.is-loaded{ background:#f0f2f5; }
.fb__embed.is-failed{ display:none; }
.fb__embed::-webkit-scrollbar{ width:6px }
.fb__embed::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.2); border-radius:3px }
.fb__embed::-webkit-scrollbar-track{ background:transparent }

.fb__embed .fb-page{
  display:block;
  width:500px;
  max-width:100%;
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.06);
}
.fb__embed .fb-page > span,
.fb__embed .fb-page > span > iframe{
  width:100% !important;
  max-width:500px !important;
  display:block !important;
}
.fb__embed-placeholder{
  position:absolute; inset:0;
  display:flex; flex-direction:column; gap:12px;
  align-items:center; justify-content:center;
  color:var(--muted);
  font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  pointer-events:none;
  text-align:center; padding:0 24px;
}
.fb__embed.is-loaded .fb__embed-placeholder{ display:none }
.fb__embed-spinner{
  width:28px; height:28px; border-radius:50%;
  border:2px solid rgba(0,0,0,.1);
  border-top-color:#1877F2;
  animation:fb-spin .9s linear infinite;
}
@keyframes fb-spin{ to{ transform:rotate(360deg) } }

/* Curated post feed (fallback) — scrollable container with FB-style cards */
.fb__feed{
  max-height:560px;
  overflow-y:auto;
  overflow-x:hidden;
  background:#fff;
  -webkit-overflow-scrolling: touch;
}
.fb__feed::-webkit-scrollbar{ width:6px }
.fb__feed::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.2); border-radius:3px }
.fb__feed::-webkit-scrollbar-track{ background:transparent }

.fb__post{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:18px 20px;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
  transition:background .12s;
}
.fb__post:hover{ background:var(--paper-2); }
.fb__post:last-child{ border-bottom:0 }

.fb__post-meta{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.16em;
  color:var(--muted);
  text-transform:uppercase;
}
.fb__post h4{
  font-family:var(--serif);
  font-size:17px;
  font-weight:700;
  letter-spacing:-.01em;
  margin:0;
  line-height:1.3;
  color:var(--ink);
}
.fb__post p{
  margin:0;
  font-size:14px;
  line-height:1.55;
  color:var(--ink-2);
}
.fb__post-img{
  margin-top:6px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--line);
  aspect-ratio:16/10;
  background:var(--paper-2);
}
.fb__post-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.fb__post-link{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#1877F2;
  font-weight:600;
  margin-top:4px;
  transition:color .12s;
}
.fb__post:hover .fb__post-link{ color:#0d68d8 }

.fb__cta{
  text-align:center; padding:14px 22px;
  border-top:1px solid var(--line); background:#fff;
  font-size:14px; font-weight:600;
}
.fb__cta a{color:#1877F2}
.fb__cta a:hover{text-decoration:underline}

@media (max-width: 720px){
  .obv__inner{max-width:none}
  .fb__top{padding:12px 14px}
  .fb__name{font-size:15px}
  .fb__follow{padding:7px 12px; font-size:12px}
  .fb__embed{min-height:380px; max-height:640px}
}

/* === Kontakt === */
.kont{padding-inline:var(--pad); background:var(--ink); color:var(--paper)}
.kont__inner{max-width:var(--maxw); margin:0 auto; display:grid; gap:32px}
.kont .sec__num{color:rgba(255,255,255,.5)}
.kont .sec__num::before{background:var(--paper)}
.kont .sec__title em{color:var(--accent)}
.kont__lede{color:rgba(255,255,255,.75); font-size: clamp(16px, 1.6vw, 18px); max-width:50ch}
.kont__grid{display:grid; gap:14px}
.kont__row{
  display:flex; flex-direction:column; gap:4px;
  padding:18px 0; border-top:1px solid rgba(255,255,255,.14);
}
.kont__row:last-child{border-bottom:1px solid rgba(255,255,255,.14)}
.kont__label{font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5)}
.kont__val{font-family:var(--serif); font-size:22px; font-weight:600; letter-spacing:-.01em}
.kont__val a:hover{color:var(--accent)}
.kont__cta{display:flex; flex-wrap:wrap; gap:12px; margin-top:8px}
.kont .btn--primary{background:var(--accent); color:#fff}
.kont .btn--primary:hover{background:#fff; color:var(--ink)}
.kont .btn--ghost{color:var(--paper); border-color:rgba(255,255,255,.3)}
.kont .btn--ghost:hover{border-color:#fff; background:rgba(255,255,255,.06)}
@media (min-width: 880px){
  .kont__inner{grid-template-columns: 1fr 1fr; gap:80px; align-items:start}
}

/* === footer === */
.foot{background:#0c0c0c; color:rgba(255,255,255,.7); padding: 56px 0 32px}
.foot__inner{
  max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad);
  display:grid; gap:32px;
}
.foot__col h4{font-family:var(--mono); font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:#fff; margin:0 0 14px}
.foot__col a{display:block; padding:6px 0; font-size:14px; color:rgba(255,255,255,.7)}
.foot__col a:hover{color:#fff}
.foot__addr{font-size:14px; line-height:1.6; margin:14px 0 0}
.brand--foot{color:#fff}
.brand--foot .brand__sub{color:rgba(255,255,255,.5)}
.foot__col--meta{font-size:12px; color:rgba(255,255,255,.45); line-height:1.6}
.foot__legal{font-family:var(--mono); font-size:10px; letter-spacing:.1em; margin-top:6px}
@media (min-width: 720px){ .foot__inner{grid-template-columns:2fr 1fr 1fr 2fr} }

#sections{ display:flex; flex-direction:column }
#sections .obv{ order: -1 }
#sections .klub{ order: 0 }
#sections .kata{ order: 1 }
#sections .urnik{ order: 2 }
#sections .cenik{ order: 3 }
#sections .trenerji{ order: 4 }
#sections .zgod{ order: 5 }
#sections .kont{ order: 6 }

/* === motion === */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease}
  .reveal.is-in{opacity:1; transform:none}
}

/* === phone mockup view === */
body[data-view="phone"]{
  background:
    radial-gradient(circle at 30% 20%, rgba(179,39,31,.10), transparent 50%),
    radial-gradient(circle at 70% 80%, rgba(255,255,255,.04), transparent 50%),
    #0e0e0e;
  min-height:100vh;
  display:grid; place-items:center;
  padding: 24px;
  overflow: hidden;
}
body[data-view="phone"] .phone-shell{
  --pad: 18px;
  --maxw: 100%;
  width: 390px;
  height: min(844px, calc(100vh - 48px));
  border-radius: 48px;
  overflow: hidden;
  background: var(--paper);
  box-shadow:
    0 0 0 12px #0a0a0a,
    0 0 0 14px #2a2a2a,
    0 60px 120px -30px rgba(0,0,0,.7);
  position: relative;
  display:flex; flex-direction:column;
}
body[data-view="phone"] .phone-shell::before{
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width: 130px; height: 32px; background:#0a0a0a;
  border-radius: 0 0 22px 22px; z-index: 60;
}
body[data-view="phone"] .phone-scroll{
  flex: 1; min-height: 0; overflow-y: auto;
  -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
}
body[data-view="phone"] .phone-scroll::-webkit-scrollbar{ width:0; height:0 }
body[data-view="phone"] .nav,
body[data-view="phone"] main,
body[data-view="phone"] .foot{ width:100% }

body[data-view="phone"] .hero{ overflow:hidden }
body[data-view="phone"] .hero__title{ font-size:42px !important; gap:8px; margin:14px 0 16px }
body[data-view="phone"] .hero__title-txt{ line-height:.95 }
body[data-view="phone"] .hero__kanji{ font-size:30px !important }
body[data-view="phone"] .hero__shotokan{ width:60px; top:48px; right:14px }
body[data-view="phone"] .hero__inner{ padding:48px 18px 36px !important }
body[data-view="phone"] .hero__eyebrow{ font-size:9.5px; padding:6px 10px; letter-spacing:.16em }
body[data-view="phone"] .hero__lede{ font-size:13.5px; margin-bottom:20px }
body[data-view="phone"] .hero__cta{ gap:8px; margin-bottom:28px; flex-direction:column; align-items:stretch }
body[data-view="phone"] .hero__cta .btn{ font-size:14px; padding:12px 18px; width:100% }
body[data-view="phone"] .hero__stats{ gap:10px; padding-top:16px }
body[data-view="phone"] .hero__stats dd{ font-size:22px !important }
body[data-view="phone"] .hero__stats dt{ font-size:9px }
body[data-view="phone"] .hero__scroll{ display:none }

body[data-view="phone"] .sec{ padding:44px 0 !important }
body[data-view="phone"] .sec__title{ font-size:28px !important }
body[data-view="phone"] .sec__lede{ font-size:13.5px }
body[data-view="phone"] .sec__num{ font-size:10px }
body[data-view="phone"] .sec__head{ margin-bottom:22px !important; padding-inline:18px }

body[data-view="phone"] .klub,
body[data-view="phone"] .urnik,
body[data-view="phone"] .cenik,
body[data-view="phone"] .trenerji,
body[data-view="phone"] .zgod,
body[data-view="phone"] .obv,
body[data-view="phone"] .kont{ padding-inline:18px !important }

body[data-view="phone"] .klub__grid{ grid-template-columns:1fr !important; gap:12px }
body[data-view="phone"] .card{ padding:18px }
body[data-view="phone"] .card h3{ font-size:18px }
body[data-view="phone"] .card p{ font-size:13.5px }

body[data-view="phone"] .urnik__wrap{ grid-template-columns:1fr !important; gap:14px }
body[data-view="phone"] .urnik__group-head{ padding:14px 16px 12px 22px; gap:12px }
body[data-view="phone"] .urnik__group-kanji{ width:40px; height:40px; font-size:19px }
body[data-view="phone"] .urnik__group-title{ font-size:17px }
body[data-view="phone"] .urnik__group-eyebrow{ font-size:9.5px }
body[data-view="phone"] .urnik__group-sub{ font-size:12.5px }
body[data-view="phone"] .urnik__session{ padding:13px 16px 13px 22px; column-gap:10px }
body[data-view="phone"] .urnik__day{ font-size:10px }
body[data-view="phone"] .urnik__activity{ font-size:13px }
body[data-view="phone"] .urnik__venue{ font-size:11px }
body[data-view="phone"] .urnik__time{ font-size:15px }
body[data-view="phone"] .urnik__note{ padding:14px 16px; font-size:12px }

body[data-view="phone"] .cenik__grid{ grid-template-columns:1fr !important; gap:12px }
body[data-view="phone"] .price{ padding:22px }
body[data-view="phone"] .price__name{ font-size:22px }
body[data-view="phone"] .price__amt{ font-size:36px }

body[data-view="phone"] .trenerji__grid{ grid-template-columns:1fr !important; gap:16px }
body[data-view="phone"] .coach__name{ font-size:18px }

body[data-view="phone"] .zgod__wrap{ max-width:none }
body[data-view="phone"] .timeline{ padding-left:18px }
body[data-view="phone"] .timeline__item::before{ left:-23px; width:8px; height:8px }
body[data-view="phone"] .timeline__item--feat::before{ left:-25px; width:11px; height:11px }
body[data-view="phone"] .timeline__title{ font-size:16px }
body[data-view="phone"] .timeline__desc{ font-size:13px }

body[data-view="phone"] .obv__inner{ grid-template-columns:1fr !important; gap:14px }
body[data-view="phone"] .fb__top{ padding:14px 16px }
body[data-view="phone"] .fb__name{ font-size:16px }
body[data-view="phone"] .fb__post{ padding:16px }
body[data-view="phone"] .fb__post h4{ font-size:16px }
body[data-view="phone"] .fb__post p{ font-size:13.5px }
body[data-view="phone"] .fb__about{ display:none !important }
body[data-view="phone"] .obv__side{ position:static !important }
body[data-view="phone"] .obv__card{ padding:18px }

body[data-view="phone"] .kont__inner{ grid-template-columns:1fr !important; gap:22px }
body[data-view="phone"] .kont__val{ font-size:17px }
body[data-view="phone"] .kont__cta{ flex-direction:column; align-items:stretch }
body[data-view="phone"] .kont__cta .btn{ width:100%; font-size:14px }

body[data-view="phone"] .foot{ padding:32px 0 60px }
body[data-view="phone"] .foot__inner{ grid-template-columns:1fr !important; gap:20px; padding-inline:18px }

body[data-view="phone"] .nav{ position:sticky !important; top:0 !important; z-index:30 }
body[data-view="phone"] .nav__inner{ padding:38px 18px 12px !important }
body[data-view="phone"] .brand__mark{ width:34px; height:34px }
body[data-view="phone"] .brand__name{ font-size:14px }
body[data-view="phone"] .brand__sub{ font-size:8.5px }
body[data-view="phone"] .nav__toggle{ display:inline-flex !important }
body[data-view="phone"] .nav__links{
  position:absolute !important; inset:100% 0 auto 0 !important;
  flex-direction:column !important; align-items:stretch !important; gap:0 !important;
  background:var(--paper) !important; border-top:1px solid var(--line) !important;
  padding:8px 18px 18px !important;
  transform:translateY(-12px) !important; opacity:0 !important; pointer-events:none !important;
  z-index:40;
}
body[data-view="phone"] .nav__links.is-open{
  transform:none !important; opacity:1 !important; pointer-events:auto !important;
}
body[data-view="phone"] .nav__links a{
  font-family:var(--karate) !important; font-size:22px !important;
  font-weight:var(--karate-weight,400) !important;
  padding:12px 0 !important; border-bottom:1px solid var(--line) !important;
  color:var(--ink) !important; border-radius:0 !important; background:transparent !important;
  letter-spacing:var(--karate-track,.02em) !important;
}
body[data-view="phone"] .nav__cta{
  margin-top:12px !important; align-self:flex-start !important;
  background:var(--ink) !important; color:var(--paper) !important;
  padding:12px 20px !important; border-radius:999px !important;
  font-family:var(--sans) !important; font-size:14px !important;
  border-bottom:0 !important;
}

/* === KATA · embusen === */
.kata{padding-inline:var(--pad)}
.kata__grid{
  max-width:var(--maxw); margin:0 auto;
  display:grid; gap:20px;
  grid-template-columns:1fr;
}
@media (min-width: 800px){ .kata__grid{ grid-template-columns:repeat(3,1fr) } }
.kata-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:22px; display:flex; flex-direction:column; gap:14px;
  position:relative; overflow:hidden;
  transition:transform .25s, border-color .2s, box-shadow .25s;
}
.kata-card:hover{ transform:translateY(-2px); border-color:var(--ink); box-shadow:var(--shadow) }
.kata-card__hd{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px }
.kata-card__title{ display:flex; flex-direction:column; gap:2px }
.kata-card__kanji{
  font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:22px; color:var(--accent); line-height:1; margin-bottom:4px;
}
.kata-card__name{
  font-family:var(--karate); font-weight:var(--karate-weight,400);
  letter-spacing:var(--karate-track,.02em); text-transform:uppercase;
  font-size:24px; line-height:1; margin:0;
}
.kata-card__meaning{
  font-family:var(--serif); font-style:italic; color:var(--muted);
  font-size:13px; line-height:1.3;
}
.kata-card__belt{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); padding:5px 10px; border:1px solid var(--line); border-radius:999px;
  white-space:nowrap; flex-shrink:0;
}
.kata-card__belt i{ width:8px; height:8px; border-radius:2px; display:inline-block; box-shadow:inset 0 0 0 1px rgba(0,0,0,.2) }
.kata-card__embusen{
  position:relative; aspect-ratio:6/5;
  background:
    radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.04), transparent 70%),
    linear-gradient(180deg, #f8f5ec, #ede7d6);
  border:1px solid var(--line); border-radius:10px; overflow:hidden;
}
.kata-card__embusen .embusen{ width:100%; height:100%; display:block }
.embusen__stop circle{ transition: r .2s, fill .2s, stroke-width .2s }
.embusen__stop.is-on circle{ fill:var(--accent); stroke:#fff; stroke-width:2 }
.embusen__stop.is-on text{ fill:#fff }
.kata-card__compass{ position:absolute; inset:0; pointer-events:none }
.cdir{
  position:absolute; font-family:var(--mono); font-size:9px;
  letter-spacing:.18em; color:var(--muted); opacity:.6;
}
.cdir--n{ top:6px; left:50%; transform:translateX(-50%) }
.cdir--s{ bottom:6px; left:50%; transform:translateX(-50%) }
.cdir--e{ top:50%; right:8px; transform:translateY(-50%) }
.cdir--w{ top:50%; left:8px; transform:translateY(-50%) }
.kata-card__step{
  display:flex; align-items:center; gap:12px;
  padding:10px 14px; background:var(--paper-2);
  border-radius:8px; border:1px solid var(--line);
  min-height:44px;
}
.kata-card__step-num{
  font-family:var(--karate); font-weight:var(--karate-weight,400);
  font-size:18px; color:var(--accent); flex-shrink:0;
  width:30px; text-align:center;
}
.kata-card__step-label{ font-family:var(--serif); font-style:italic; font-size:14px; color:var(--ink); line-height:1.3 }
.kata-card__ft{ display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap }
.kata-card__stats{ display:flex; gap:14px }
.kata-card__stats span{ display:flex; flex-direction:column; gap:0; line-height:1 }
.kata-card__stats b{ font-family:var(--serif); font-size:20px; font-weight:700; letter-spacing:-.01em }
.kata-card__stats i{ font-style:normal; font-family:var(--mono); font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-top:4px }
.kata-card__play{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--ink); color:var(--paper);
  padding:9px 14px; border-radius:999px; border:0;
  font-size:12.5px; font-weight:600; letter-spacing:-.005em;
  transition: background .2s, transform .15s;
}
.kata-card__play:hover{ background:var(--accent) }
.kata-card__play.is-on{ background:var(--accent); animation: kata-pulse 1.2s ease-in-out infinite }
@keyframes kata-pulse{ 50%{ box-shadow: 0 0 0 6px color-mix(in oklab, var(--accent) 25%, transparent) } }
.kata-card__desc{ margin:0; font-size:13.5px; color:var(--ink-2); line-height:1.5 }

/* === KIAI button === */
.kiai{
  position:fixed; right:18px; bottom:18px; z-index:80;
  width:78px; height:78px; border-radius:50%; border:0;
  background:var(--accent); color:#fff;
  display:grid; place-items:center;
  box-shadow:
    0 18px 40px -10px rgba(179,39,31,.55),
    0 0 0 1px rgba(255,255,255,.1) inset,
    0 0 0 0 rgba(179,39,31,0);
  cursor:pointer;
  transition: transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
  /* gentle idle "breathing" — pause on hover */
  animation: kiai-breathe 3.4s ease-in-out infinite;
}
@keyframes kiai-breathe{
  0%, 100%{ transform: scale(1) }
  50%     { transform: scale(1.045) }
}
.kiai:hover{
  transform: scale(1.08);
  animation-play-state: paused;
  box-shadow:
    0 24px 56px -10px rgba(179,39,31,.78),
    0 0 0 1px rgba(255,255,255,.2) inset,
    0 0 0 6px rgba(179,39,31,.18);
}
.kiai:active{ transform: scale(.94); animation-play-state: paused }
.kiai:focus-visible{ outline: 3px solid #fff; outline-offset: 3px }

/* Sonar idle ping — fades out after user has fired the button once */
.kiai__ping{
  position:absolute; inset:0;
  border-radius:50%;
  border:2px solid var(--accent);
  pointer-events:none;
  animation: kiai-sonar 2.6s ease-out infinite;
}
.kiai__ping::after{
  content:""; position:absolute; inset:0;
  border-radius:50%;
  border:2px solid var(--accent);
  animation: kiai-sonar 2.6s ease-out infinite;
  animation-delay: 1.3s;
}
@keyframes kiai-sonar{
  0%   { transform: scale(.95); opacity: 0; }
  20%  { opacity: .55; }
  100% { transform: scale(2.2); opacity: 0; }
}
/* Once the user has clicked at least once, retire the idle ping (they got the hint) */
.kiai.has-fired .kiai__ping{ animation: none; opacity: 0 }
.kiai.has-fired{ animation: none }
@media (prefers-reduced-motion: reduce){
  .kiai{ animation: none }
  .kiai__ping, .kiai__ping::after{ animation: none; opacity: 0 }
}

.kiai__label{
  font-family: var(--karate);
  font-weight: var(--karate-weight, 900);
  font-size: 22px;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
  user-select: none;
}
.kiai__count{
  position:absolute; top:-4px; right:-4px;
  min-width:22px; height:22px; padding:0 6px; border-radius:999px;
  background:var(--ink); color:var(--paper);
  font-family:var(--mono); font-size:11px; font-weight:600;
  display:grid; place-items:center;
  border:2px solid var(--paper);
}
.kiai__ring{
  position:absolute; inset:-4px; border-radius:50%;
  border:2px solid var(--accent); opacity:0; pointer-events:none;
}
.kiai.is-go .kiai__ring{ animation: kiai-ring .65s ease-out forwards }
.kiai.is-go .kiai__ring--2{ animation-delay:.1s }
@keyframes kiai-ring{
  0%{ transform:scale(.8); opacity:.7 }
  100%{ transform:scale(2.4); opacity:0 }
}
.kiai__shout{
  position:absolute; right:74px; top:50%; transform:translateY(-50%) translateX(8px);
  font-family:var(--karate); font-weight:var(--karate-weight,900);
  font-size:36px; letter-spacing:.04em; color:var(--accent);
  text-shadow: 4px 4px 0 var(--ink);
  white-space:nowrap; opacity:0; pointer-events:none;
  text-transform:uppercase;
}
.kiai__shout.is-go{ animation: kiai-shout .9s cubic-bezier(.2,.8,.2,1) forwards }
@keyframes kiai-shout{
  0%{ opacity:0; transform:translateY(-50%) translateX(20px) scale(.6) rotate(-8deg) }
  20%{ opacity:1; transform:translateY(-50%) translateX(0) scale(1.15) rotate(-4deg) }
  60%{ opacity:1; transform:translateY(-50%) translateX(-4px) scale(1) rotate(-2deg) }
  100%{ opacity:0; transform:translateY(-50%) translateX(-30px) scale(.9) rotate(0) }
}

/* === BELT RAIL — minimal, bigger === */
.belt-rail{
  position:fixed; left:18px; top:50%; transform:translateY(-50%);
  z-index:40; width:14px;
  display:none; flex-direction:column; gap:0;
  font-family:var(--sans); pointer-events:auto;
}
@media (min-width:1180px){ .belt-rail{ display:flex } }
.belt-rail__hd{ display:none }
.belt-rail__list{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:6px;
  position:relative;
}
.belt-rail__seg{
  position:relative; height:42px; width:14px; border-radius:3px;
  background: var(--c);
  border:1px solid color-mix(in oklab, var(--c) 60%, #000 40%);
  transition: width .4s cubic-bezier(.2,.8,.2,1), height .4s cubic-bezier(.2,.8,.2,1), opacity .25s, box-shadow .25s;
  opacity:.35; cursor:default; overflow:visible;
  display:flex; align-items:center; padding:0;
}
.belt-rail__seg b,
.belt-rail__seg span{
  position:absolute; left:24px; white-space:nowrap;
  opacity:0; transition: opacity .3s ease .1s;
  pointer-events:none;
}
.belt-rail__seg b{
  top:50%; transform:translateY(-100%);
  font-family:var(--mono); font-size:9px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--muted); font-weight:500;
}
.belt-rail__seg span{
  top:50%; transform:translateY(-2%);
  font-family:var(--karate); font-weight:var(--karate-weight,400);
  font-size:18px; letter-spacing:var(--karate-track,.04em); text-transform:uppercase;
  color:var(--ink); line-height:1;
}
.belt-rail__seg.is-past{ opacity:.7 }
.belt-rail__seg.is-on{
  height:64px; opacity:1;
  box-shadow: 0 10px 24px -8px rgba(0,0,0,.35), 0 0 0 1px rgba(0,0,0,.04);
}
.belt-rail__seg.is-on b,
.belt-rail__seg.is-on span{ opacity:1 }
.belt-rail__caption{ display:none }
html[data-theme="dark"] .belt-rail__seg span{ color:var(--ink) }

/* === BELT RAIL — small mobile chip (desktop hides it) === */
.belt-mini{
  position:fixed; left:14px; bottom:14px; z-index:80;
  display:none; align-items:center; gap:8px;
  padding:8px 12px 8px 8px; border-radius:999px;
  background: rgba(20,20,20,.85); color:#fff;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 12px 24px -10px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.08);
  font-family:var(--mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
}
.belt-mini__chip{
  width:18px; height:18px; border-radius:50%;
  background: var(--c, #fff);
  border:2px solid rgba(255,255,255,.9);
  flex-shrink:0; transition: background .35s ease;
}
.belt-mini__txt b{ font-weight:600; color:#fff }
.belt-mini__txt i{ font-style:normal; color:rgba(255,255,255,.55); margin-left:6px }
@media (max-width: 1179px){ .belt-mini{ display:flex } }

/* in phone-mockup, the mini chip lives inside the phone screen */
body[data-view="phone"] .belt-rail{ display:none !important }
body[data-view="phone"] .belt-mini{
  display:flex; position:absolute; left:14px; bottom:14px;
  font-size:9px; padding:6px 10px 6px 6px;
}
body[data-view="phone"] .belt-mini__chip{ width:16px; height:16px }

/* phone view tweaks for new sections */
body[data-view="phone"] .kata{ padding-inline:18px !important }
body[data-view="phone"] .kata__grid{ grid-template-columns:1fr !important; gap:14px }
body[data-view="phone"] .kata-card{ padding:16px }
body[data-view="phone"] .kata-card__name{ font-size:20px }
body[data-view="phone"] .kata-card__kanji{ font-size:18px }
body[data-view="phone"] .kiai{
  position:absolute !important; right:14px; bottom:14px; width:54px; height:54px;
  z-index:90;
}
body[data-view="phone"] .kiai__kanji{ font-size:18px }
body[data-view="phone"] .kiai__count{ font-size:10px; min-width:18px; height:18px }
body[data-view="phone"] .kiai__shout{ font-size:22px; right:62px }

/* small viewports (real mobile) — shrink kiai a bit */
@media (max-width: 720px){
  .kiai{ right:12px; bottom:12px; width:54px; height:54px }
  .kiai__kanji{ font-size:18px }
  .kiai__shout{ font-size:24px; right:62px }
}

/* dark theme */
html[data-theme="dark"] .kata-card{ background:var(--paper-2); border-color:var(--line) }
html[data-theme="dark"] .kata-card__embusen{ background: linear-gradient(180deg, #1a1a18, #0f0f0d) }
html[data-theme="dark"] .kata-card__step{ background:#1a1a18; border-color:var(--line) }
html[data-theme="dark"] .belt-rail__title{ color:var(--ink-2) }

/* === tweaks panel === */
.tw{
  position: fixed; bottom: 16px; right: 16px; z-index: 9999;
  background: rgba(20,20,20,.92); color:#fff;
  backdrop-filter: blur(14px) saturate(140%);
  border-radius: 14px; border: 1px solid rgba(255,255,255,.12);
  padding: 14px; width: 280px; max-height: calc(100vh - 32px);
  overflow-y: auto;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.6);
  font-family: var(--sans); font-size: 13px;
  display: none;
}
.tw__sel{
  width:100%; appearance:none; -webkit-appearance:none;
  background: rgba(255,255,255,.06); color:#fff;
  border: 1px solid rgba(255,255,255,.12); border-radius: 8px;
  padding: 9px 32px 9px 12px; font: inherit; font-size: 12.5px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='rgba(255,255,255,.6)' d='M0 0h10L5 6z'/></svg>");
  background-repeat:no-repeat; background-position: right 10px center;
  cursor: pointer; outline: none;
}
.tw__sel:focus{ border-color: var(--accent) }
.tw__sel option{ background: #141414; color:#fff }
.tw__preview{
  margin-top: 10px; padding: 14px 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 8px;
  text-align: center; font-size: 22px;
  text-transform: uppercase; line-height: 1.1;
  color: #fff;
}
.tw__font{
  display:flex; flex-direction:column; gap:2px; align-items:flex-start;
  padding: 8px 10px; background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08); border-radius: 8px;
  color: #fff; cursor: pointer; text-align:left;
  transition: background .15s, border-color .15s;
}
.tw__font:hover{ background: rgba(255,255,255,.08) }
.tw__font.is-on{ background: rgba(179,39,31,.18); border-color: var(--accent) }
.tw__font-name{ font-size: 22px; line-height:1; text-transform:uppercase; color:#fff }
.tw__font-meta{ font-family: var(--mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5) }
.tw__font.is-on .tw__font-meta{ color: rgba(255,255,255,.85) }
.tw__font-meta b{ color:#fff; font-weight:600 }
.tw.is-open{ display:block }
.tw__hd{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom: 12px;
}
.tw__hd h4{ margin:0; font-family: var(--karate); font-size:16px; letter-spacing:.04em; font-weight:400 }
.tw__close{
  background:none; border:0; color: rgba(255,255,255,.6);
  font-size:18px; line-height:1; padding:2px 6px; border-radius:6px;
}
.tw__close:hover{ background: rgba(255,255,255,.08); color:#fff }
.tw__row{ margin-bottom: 12px }
.tw__row:last-child{ margin-bottom:0 }
.tw__label{
  display:block; font-family: var(--mono); font-size:10px;
  letter-spacing:.18em; text-transform:uppercase;
  color: rgba(255,255,255,.5); margin-bottom: 6px;
}
.tw__seg{
  display:flex; gap:0; padding: 3px;
  background: rgba(255,255,255,.06); border-radius: 8px;
}
.tw__seg button{
  flex:1; padding:8px 10px; background:transparent; border:0;
  color: rgba(255,255,255,.7); font-size:12px; font-weight:600;
  border-radius: 6px; transition: background .15s, color .15s;
}
.tw__seg button.is-on{ background: var(--accent); color:#fff }
.tw__seg button:not(.is-on):hover{ color:#fff }
.tw__sel{
  width:100%; padding:8px 10px; border-radius:8px;
  background:rgba(255,255,255,.06); color:#fff;
  border:1px solid rgba(255,255,255,.14);
  font-family:var(--sans); font-size:12px;
}
.tw__sel option{ background:#1a1a1a; color:#fff }
.tw__preview{
  margin-top:10px; padding:18px 14px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  text-align:center; font-size:24px; line-height:1.1;
  color:#fff; text-transform:uppercase;
  min-height: 48px;
}
.tw__swatches{ display:flex; gap:8px }
.tw__swatches button{
  flex:1; height:32px; border-radius:8px; border:2px solid rgba(255,255,255,.14);
  cursor:pointer; padding:0; transition: transform .15s, border-color .15s;
}
.tw__swatches button:hover{ transform: translateY(-1px) }
.tw__swatches button.is-on{ border-color:#fff; box-shadow: 0 0 0 2px rgba(255,255,255,.2) }

/* === dark theme === */
html[data-theme="dark"]{
  --paper:#0e0e0e; --paper-2:#181816;
  --ink:#f5efe2; --ink-2:#cfc8ba;
  --line:#26241f; --line-2:#3a362e;
  --muted:#8b8676;
}
html[data-theme="dark"] body{ background: var(--paper); color: var(--ink) }
html[data-theme="dark"] .nav{ background: rgba(14,14,14,.85); }
html[data-theme="dark"] .nav.is-scrolled{ border-bottom-color: var(--line) }
html[data-theme="dark"] .brand__mark{ background:#1f1d18; border-color: var(--line) }
html[data-theme="dark"] .nav__links{ background: var(--paper) }
html[data-theme="dark"] .card,
html[data-theme="dark"] .urnik__group,
html[data-theme="dark"] .price,
html[data-theme="dark"] .obv__feed,
html[data-theme="dark"] .obv__card,
html[data-theme="dark"] .fb__post,
html[data-theme="dark"] .coach{
  background: var(--paper-2); border-color: var(--line);
}
html[data-theme="dark"] .urnik__group-head,
html[data-theme="dark"] .urnik__session{ border-color: var(--line) }
html[data-theme="dark"] .btn--primary{ background: var(--ink); color: var(--paper) }
html[data-theme="dark"] .btn--ghost{ color: var(--ink); border-color: var(--line-2) }

/* === KIAI particles — multi-direction sound-wave shout === */
.kiai-particle{
  position: fixed; z-index: 999;
  font-family: var(--karate);
  font-weight: var(--karate-weight, 900);
  font-size: clamp(22px, 4vw, 38px);
  letter-spacing: var(--karate-track, .04em);
  color: var(--accent);
  text-shadow: 2px 2px 0 var(--ink);
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  transform: translate(-50%, -50%) scale(.6);
  opacity: 0;
  will-change: transform, opacity;
  animation-name: kiai-particle-fly;
  animation-timing-function: cubic-bezier(.12, .68, .25, 1);
  animation-fill-mode: forwards;
}
@keyframes kiai-particle-fly{
  0%   { opacity: 0;   transform: translate(-50%, -50%) scale(.4) rotate(0deg); }
  12%  { opacity: 1;   transform: translate(-50%, -50%) scale(1.25) rotate(calc(var(--rot) * .25)); }
  30%  { opacity: 1;   transform: translate(calc(-50% + var(--dx) * .25), calc(-50% + var(--dy) * .25)) scale(1.15) rotate(calc(var(--rot) * .5)); }
  100% { opacity: 0;   transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(var(--scale-end, .8)) rotate(var(--rot)); }
}

/* Reduced-motion: keep audio + counter, but skip the flying word storm */
@media (prefers-reduced-motion: reduce){
  .kiai-particle{ animation: none; opacity: 0 }
}

/* Phone view inside the design's phone-mockup shell */
body[data-view="phone"] .kiai-particle{ position: absolute; font-size: 18px }

/* === Nav "Stara stran" chip — matches other nav items, kanji prefix for flair === */
.nav__arhiv{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.nav__arhiv-k{
  font-family:var(--karate);
  font-size:15px;
  line-height:1;
  color:var(--accent);
  font-weight:500;
  transition:color .15s;
}
.nav__arhiv:hover .nav__arhiv-k{ color:var(--ink); }

/* === Kick-shatter blast overlay (forward: new → legacy) === */
#blast{
  position:fixed;
  inset:0;
  z-index:9999;
  pointer-events:none;
  display:none;
  overflow:hidden;
}
#blast.is-on{ display:block }
/* NOTE: #blast is moved to <html> by JS before triggering so any transform on
   <body> or <main> can't break its position:fixed containing block. */

/* Body shake — the whole viewport jolts when the kick lands */
body.is-blasting{
  animation: blast-shake .6s cubic-bezier(.36,.07,.19,.97) both;
}
@keyframes blast-shake{
  10%, 90% { transform: translate3d(-3px, 0, 0); }
  20%, 80% { transform: translate3d(5px, -2px, 0); }
  30%, 50%, 70% { transform: translate3d(-8px, 3px, 0); }
  40%, 60% { transform: translate3d(8px, -3px, 0); }
}

/* Page content visibly "shatters" — content tips forward and falls away */
main.is-shattered, .is-shattered-main{
  animation: blast-page-fall 1.2s cubic-bezier(.55,0,.78,.06) .35s both;
  transform-origin: 50% 0%;
  will-change: transform, opacity, filter;
}
@keyframes blast-page-fall{
  0%   { transform: none; opacity: 1; filter: none; }
  20%  { transform: translateY(8px) rotate(-.4deg); }
  50%  { transform: translateY(40px) rotate(-1.5deg) scale(.98); opacity: .85; filter: blur(.5px); }
  100% { transform: translateY(120vh) rotate(-7deg) scale(.85); opacity: 0; filter: blur(6px); }
}

/* Flash from impact origin — bright white core, warm halo, red rim */
#blast .blast__flash{
  position:absolute;inset:0;
  background:radial-gradient(circle at var(--bx,50%) var(--by,50%),
              rgba(255,255,255,1) 0%,
              rgba(255,235,200,.95) 8%,
              rgba(255,180,120,.85) 18%,
              rgba(230,60,40,.7) 32%,
              rgba(120,10,10,.4) 50%,
              rgba(0,0,0,0) 70%);
  opacity:0;
  mix-blend-mode: screen;
  animation:blast-flash .7s ease-out forwards;
}


/* 破 kanji — slams into view with red glow (smaller, less stage-show) */
#blast .blast__kanji{
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%) scale(.2) rotate(-12deg);
  font-family:var(--karate);
  font-weight:500;
  font-size:min(26vw,260px);
  color:#fff;
  text-shadow:
    0 0 18px rgba(230,60,40,.85),
    0 0 42px rgba(230,60,40,.55),
    0 4px 0 #0a0a0a;
  opacity:0;
  animation:blast-kanji 1.1s cubic-bezier(.16,1,.3,1) forwards;
  will-change:transform,opacity;
  -webkit-text-stroke: 1.5px #0a0a0a;
}
@keyframes blast-kanji{
  0%   { opacity:0; transform:translate(-50%,-50%) scale(.15) rotate(-26deg); }
  16%  { opacity:1; transform:translate(-50%,-50%) scale(1.35) rotate(2deg);  }
  30%  { opacity:1; transform:translate(-50%,-50%) scale(1.05) rotate(0deg);  }
  72%  { opacity:1; transform:translate(-50%,-50%) scale(1.1)  rotate(0deg);  }
  100% { opacity:0; transform:translate(-50%,-50%) scale(2.6)  rotate(6deg);  }
}

/* Three crack layers — white halo + red energy + dark ink */
#blast .blast__cracks{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;
  filter: drop-shadow(0 0 1px rgba(0,0,0,.35));
}
#blast .blast__cracks--glow{
  animation: blast-cracks-glow 1.5s ease-out forwards;
  filter: blur(6px);
  transform-origin: center;
}
#blast .blast__cracks--red{
  animation: blast-cracks-red 1.5s ease-out forwards;
  filter: drop-shadow(0 0 12px rgba(230,60,40,.9));
  transform-origin: center;
}
#blast .blast__cracks--ink{
  animation: blast-cracks-ink 1.5s ease-out forwards;
  transform-origin: center;
}
@keyframes blast-cracks-glow{
  0%   { opacity:0; transform:scale(.1); }
  12%  { opacity:1; }
  100% { opacity:.55; transform:scale(1.45); }
}
@keyframes blast-cracks-red{
  0%   { opacity:0; transform:scale(.15) rotate(-2deg); }
  10%  { opacity:1; }
  100% { opacity:1; transform:scale(1.3) rotate(0); }
}
@keyframes blast-cracks-ink{
  0%   { opacity:0; transform:scale(.15); }
  14%  { opacity:1; }
  100% { opacity:1; transform:scale(1.28); }
}

/* Flying shards — dark triangles with red edge that fly outward */
#blast .blast__shards{
  position:absolute;inset:0;
  pointer-events:none;
}
#blast .blast__shard{
  position:absolute;left:50%;top:50%;
  width:48px;height:48px;
  background: linear-gradient(135deg,#0a0a0a 58%,#e63b2e 58%);
  clip-path: polygon(0 0, 100% 25%, 70% 100%);
  opacity:0;
  transform-origin: center;
  animation: blast-shard 1.5s cubic-bezier(.22,1,.36,1) forwards;
  box-shadow: 0 0 16px rgba(230,60,40,.5);
}
/* 12 shards in different directions */
#blast .blast__shard--1  { --dx: -640px; --dy: -460px; --rot: -380deg; animation-delay: 30ms;  width:60px;height:60px; }
#blast .blast__shard--2  { --dx:  620px; --dy: -480px; --rot:  340deg; animation-delay: 0ms;   width:54px;height:54px; }
#blast .blast__shard--3  { --dx: -740px; --dy:  -80px; --rot: -260deg; animation-delay: 60ms;  }
#blast .blast__shard--4  { --dx:  780px; --dy:   20px; --rot:  300deg; animation-delay: 20ms;  width:56px;height:56px; }
#blast .blast__shard--5  { --dx: -480px; --dy:  520px; --rot: -200deg; animation-delay: 80ms;  }
#blast .blast__shard--6  { --dx:  520px; --dy:  560px; --rot:  280deg; animation-delay: 40ms;  width:52px;height:52px; }
#blast .blast__shard--7  { --dx: -240px; --dy: -580px; --rot: -340deg; animation-delay: 110ms; }
#blast .blast__shard--8  { --dx:  280px; --dy: -560px; --rot:  410deg; animation-delay: 70ms;  width:58px;height:58px; }
#blast .blast__shard--9  { --dx: -880px; --dy: -220px; --rot: -240deg; animation-delay: 50ms;  }
#blast .blast__shard--10 { --dx:  880px; --dy: -260px; --rot:  290deg; animation-delay: 90ms;  width:54px;height:54px; }
#blast .blast__shard--11 { --dx: -660px; --dy:  340px; --rot: -310deg; animation-delay: 35ms;  }
#blast .blast__shard--12 { --dx:  680px; --dy:  380px; --rot:  360deg; animation-delay: 100ms; width:50px;height:50px; }
@keyframes blast-shard{
  0%   { opacity:0; transform:translate(-50%,-50%) scale(.2) rotate(0); }
  6%   { opacity:1; transform:translate(-50%,-50%) scale(1.15) rotate(0); }
  100% { opacity:0; transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.35) rotate(var(--rot)); }
}

/* Final black veil reveal */
#blast .blast__veil{
  position:absolute;inset:0;background:#0a0a0a;opacity:0;
  animation:blast-veil 1.6s ease-in forwards;
}
@keyframes blast-veil{ 0%{opacity:0} 70%{opacity:.2} 100%{opacity:1} }

@media (prefers-reduced-motion: reduce){
  #blast .blast__flash,
  #blast .blast__kanji,
  #blast .blast__cracks,
  #blast .blast__shard{animation:none;display:none}
  #blast .blast__veil{animation:blast-veil-fast .3s linear forwards}
}
@keyframes blast-veil-fast{ to{opacity:1} }

/* === /sl/cenik/ page — karate-styled pricing + enrolment steps === */
.cenik-page{
  padding-top: clamp(72px, 12vw, 140px);
  padding-bottom: clamp(56px, 9vw, 110px);
  padding-inline: var(--pad);
}
.cenik-page > section{
  max-width: 1080px;
  margin: 0 auto;
}
.cenik-page > section + section{
  margin-top: clamp(48px, 6vw, 72px);
}

/* Pricing cards — reuse the homepage .price / .cenik__grid styles */
.cenik-page__pricing .cenik__grid{
  max-width: 760px;
}

/* Shared group head used for "Kako se vpišeš" and "Vprašaj za vpis" */
.cenik-page__group-head{
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.cenik-page__group-kanji{
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-family: var(--karate);
  font-weight: 500;
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
}
.cenik-page__group-title{
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--ink);
  line-height: 1.2;
}

/* Vpisni postopek — three numbered steps in a row on PC, stacked on mobile */
.cenik-page__step-list{
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}
@media (min-width: 720px){
  .cenik-page__step-list{ grid-template-columns: repeat(3, 1fr); gap: 18px; }
}
.cenik-page__step{
  position: relative;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 16px;
  align-items: start;
  padding: 22px 22px 22px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
}
.cenik-page__step::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--accent);
  opacity: .85;
}
.cenik-page__step:hover{
  border-color: var(--ink);
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}
.cenik-page__step-num{
  width: 48px; height: 48px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--paper-2);
  border: 2px solid var(--ink);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
}
.cenik-page__step-body{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.cenik-page__step-title{
  margin: 0;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.005em;
  color: var(--ink);
  line-height: 1.25;
}
.cenik-page__step-desc{
  margin: 2px 0 6px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-2);
}
.cenik-page__step-link{
  margin-top: auto;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--accent);
  word-break: break-word;
}
.cenik-page__step-iban{
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 12.5px;
  color: var(--ink);
  letter-spacing: .04em;
  padding: 6px 10px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 6px;
  align-self: flex-start;
  word-break: break-word;
}
.cenik-page__note{
  margin: 18px 0 0;
  font-size: 13px;
  font-style: italic;
  color: var(--muted);
  text-align: center;
}

/* Contact action cards */
.cenik-page__contact-list{
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}
@media (min-width: 720px){
  .cenik-page__contact-list{ grid-template-columns: repeat(3, 1fr); gap: 16px; }
}
.cenik-page__contact-card{
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  text-decoration: none;
  transition: border-color .15s, transform .15s;
}
.cenik-page__contact-card:hover{
  border-color: var(--ink);
  transform: translateY(-2px);
}
.cenik-page__contact-role{
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.cenik-page__contact-name{
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -.005em;
}
.cenik-page__contact-value{
  font-size: 13px;
  color: var(--ink-2);
  line-height: 1.4;
}

/* Phone-mockup view */
body[data-view="phone"] .cenik-page__step-list{ grid-template-columns: 1fr !important }
body[data-view="phone"] .cenik-page__contact-list{ grid-template-columns: 1fr !important }
body[data-view="phone"] .cenik-page__step{ padding: 18px }

/* === Sponsors (Pokal Bohinja yearly pages) === */
.sponsors{
  margin: 40px 0 0;
  padding: 22px clamp(20px, 3vw, 28px) 24px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.sponsors__title{
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 16px;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--ink);
}
.sponsors__kanji{
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-family: var(--karate);
  font-weight: 500;
  font-size: 18px;
  line-height: 1;
  flex-shrink: 0;
}
.sponsors__count{
  margin-left: auto;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 4px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  font-weight: 600;
}
.sponsors__list{
  list-style: none;
  padding: 0; margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sponsors__chip{
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 13px;
  color: var(--ink);
  font-weight: 500;
  transition: border-color .15s, transform .15s;
}
.sponsors__chip:hover{
  border-color: var(--ink);
  transform: translateY(-1px);
}
.sponsors__thanks{
  margin: 18px 0 0;
  font-size: 13px;
  color: var(--ink-2);
  font-style: italic;
  line-height: 1.55;
}

/* === /sl/kontakt/ page — karate-styled interactive contact cards === */
.kontakt-page{
  padding-top: clamp(72px, 12vw, 140px);
  padding-bottom: clamp(56px, 9vw, 110px);
  padding-inline: var(--pad);
}
.kontakt__head{
  max-width: 880px;
  margin: 0 auto clamp(28px, 4vw, 44px);
}
.kontakt__head-inner{ max-width: 720px; }
.kontakt__num{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
}
.kontakt__num::before{
  content:"";
  width:24px; height:1px;
  background:var(--ink);
}
.kontakt__title{
  margin:0 0 14px;
  font-family:var(--karate);
  font-weight: var(--karate-weight, 400);
  letter-spacing: var(--karate-track, .005em);
  font-size: clamp(40px, 7.5vw, 88px);
  line-height:1;
  text-transform:uppercase;
  color:var(--ink);
  text-wrap: balance;
}
.kontakt__lede{
  margin:0;
  font-size: clamp(16px, 1.7vw, 19px);
  color: var(--ink-2);
  max-width: 56ch;
  line-height: 1.55;
}

.kontakt__grid{
  list-style:none;
  padding:0;
  margin: 0 auto;
  max-width: 1080px;
  display:grid;
  gap: 14px;
  grid-template-columns: 1fr;
}
.kontakt__item{ display:flex; }

.kontakt__card{
  position: relative;
  display: grid;
  grid-template-columns: 64px 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "kanji role"
    "kanji name"
    "kanji value"
    "kanji action";
  gap: 4px 18px;
  align-items: center;
  padding: 22px 22px 22px 22px;
  width: 100%;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--ink);
  text-decoration: none;
  overflow: hidden;
  transition: transform .15s ease, box-shadow .2s ease, border-color .2s;
}
.kontakt__card::before{
  /* Belt-stripe accent that flips colour per card type */
  content:"";
  position:absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--accent-c, var(--ink));
  opacity: .85;
  transition: width .25s ease, opacity .25s ease;
}
.kontakt__card:hover{
  transform: translateY(-2px);
  border-color: var(--accent-c, var(--ink));
  box-shadow: 0 12px 28px rgba(0,0,0,.10);
}
.kontakt__card:hover::before{ width: 7px; opacity: 1; }
.kontakt__card:focus-visible{
  outline: 2px solid var(--accent-c, var(--accent));
  outline-offset: 3px;
}
.kontakt__card:active{ transform: translateY(0); }

/* Per-type colour accents (sober, dojo-leaning) */
.kontakt__card--call   { --accent-c: #c0392b; }   /* tegatana red */
.kontakt__card--mail   { --accent-c: #1d4a82; }   /* blue belt */
.kontakt__card--map    { --accent-c: #2f6e34; }   /* green belt */
.kontakt__card--social { --accent-c: #1877F2; }   /* facebook */
.kontakt__card--train  { --accent-c: #d09a40; }   /* accent gold */

.kontakt__kanji{
  grid-area: kanji;
  align-self: start;
  width: 58px; height: 58px;
  display: grid; place-items: center;
  border-radius: 12px;
  background: var(--accent-c, var(--ink));
  color: #fff;
  font-family: var(--karate);
  font-weight: 500;
  font-size: 28px;
  line-height: 1;
  transition: transform .25s ease;
}
.kontakt__card:hover .kontakt__kanji{
  transform: rotate(-6deg) scale(1.06);
}

.kontakt__role{
  grid-area: role;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
}
.kontakt__name{
  grid-area: name;
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.2;
  color: var(--ink);
  margin-top: 2px;
}
.kontakt__value{
  grid-area: value;
  font-size: 13.5px;
  color: var(--ink-2);
  line-height: 1.4;
  margin-top: 2px;
  word-break: break-word;
}
.kontakt__action{
  grid-area: action;
  margin-top: 8px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--accent-c, var(--accent));
  transition: transform .12s ease;
}
.kontakt__card:hover .kontakt__action{
  transform: translateX(3px);
}

/* Tablet+: 2-up grid */
@media (min-width: 640px){
  .kontakt__grid{ grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
/* PC: 3-up grid */
@media (min-width: 1000px){
  .kontakt__grid{ grid-template-columns: repeat(3, 1fr); }
}

/* Legal block — stamped dojo-document look */
.kontakt__legal{
  position: relative;
  max-width: 1080px;
  margin: clamp(40px, 5vw, 64px) auto 0;
  padding: clamp(24px, 3vw, 32px) clamp(22px, 3vw, 36px) clamp(28px, 3vw, 36px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02), 0 8px 24px rgba(0,0,0,.04);
}
.kontakt__legal::before{
  /* faint top stripe in accent so it reads as a sealed document */
  content:"";
  position:absolute; inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--ink) 0%, var(--ink) 30%, var(--accent) 30%, var(--accent) 70%, var(--ink) 70%, var(--ink) 100%);
  border-radius: 14px 14px 0 0;
  opacity: .82;
}
.kontakt__legal-head{
  display: grid;
  grid-template-columns: 52px 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "seal title"
    "seal eyebrow";
  align-items: center;
  gap: 4px 16px;
  margin: 4px 0 24px;
  padding-bottom: 18px;
  border-bottom: 1px dashed var(--line);
}
.kontakt__legal-seal{
  grid-area: seal;
  width: 52px; height: 52px;
  display: grid; place-items: center;
  border-radius: 50%;
  border: 2px solid var(--accent);
  color: var(--accent);
  font-family: var(--karate);
  font-weight: 500;
  font-size: 26px;
  line-height: 1;
  background: #fff;
  transform: rotate(-6deg);
  box-shadow: inset 0 0 0 3px #fff, 0 0 0 1px rgba(208,154,64,.18);
}
.kontakt__legal-title{
  grid-area: title;
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--ink);
  line-height: 1.15;
}
.kontakt__legal-eyebrow{
  grid-area: eyebrow;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
}

.kontakt__legal-grid{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
}
@media (min-width: 720px){
  .kontakt__legal-grid{ grid-template-columns: repeat(3, 1fr); gap: 16px; }
}

.kontakt__legal-item{
  display: grid;
  grid-template-columns: 40px 1fr;
  grid-template-rows: auto auto;
  grid-template-areas:
    "kanji label"
    "kanji value";
  align-items: center;
  gap: 2px 12px;
  padding: 14px 16px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: 10px;
  transition: border-color .2s, background .2s;
}
.kontakt__legal-item:hover{
  border-color: var(--accent);
  background: #fff;
}
.kontakt__legal-kanji{
  grid-area: kanji;
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-family: var(--karate);
  font-size: 19px;
  font-weight: 500;
  line-height: 1;
}
.kontakt__legal-label{
  grid-area: label;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.kontakt__legal-value{
  grid-area: value;
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -.005em;
  line-height: 1.3;
  word-break: break-word;
}
.kontakt__legal-value--mono{
  font-family: var(--mono);
  font-weight: 500;
  font-size: 13.5px;
  letter-spacing: .03em;
}
.kontakt__legal-value--copy{
  appearance: none;
  -webkit-appearance: none;
  background: none;
  border: 0;
  padding: 0;
  text-align: left;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ink);
  font-family: var(--mono);
  transition: color .15s;
}
.kontakt__legal-value--copy:hover{ color: var(--accent); }
.kontakt__legal-value--copy:focus-visible{
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}
.kontakt__legal-copy{
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--muted);
  transition: background .15s, color .15s, border-color .15s;
}
.kontakt__legal-value--copy:hover .kontakt__legal-copy{
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.kontakt__legal-value--copy.is-copied .kontakt__legal-copy{
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

/* Phone-mockup view */
body[data-view="phone"] .kontakt__grid{ grid-template-columns: 1fr !important; gap: 12px }
body[data-view="phone"] .kontakt__card{ padding: 18px }
body[data-view="phone"] .kontakt__kanji{ width: 50px; height: 50px; font-size: 24px }
body[data-view="phone"] .kontakt__name{ font-size: 17px }
body[data-view="phone"] .kontakt__title{ font-size: clamp(36px, 11vw, 56px) }
body[data-view="phone"] .kontakt__legal{ padding: 18px 20px }

/* === /sl/ljudje/ page — karate-styled people listing === */
.ljudje-page{
  padding-top: clamp(72px, 12vw, 140px);
  padding-bottom: clamp(56px, 9vw, 110px);
  padding-inline: var(--pad);
}
.ljudje__head{
  max-width: 880px;
  margin: 0 auto clamp(36px, 5vw, 56px);
}
.ljudje__head-inner{ max-width: 720px; }
.ljudje__num{
  display:inline-flex; align-items:center; gap:10px;
  margin-bottom:14px;
  font-family:var(--mono); font-size:11px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--muted);
}
.ljudje__num::before{ content:""; width:24px; height:1px; background:var(--ink); }
.ljudje__title{
  margin: 0 0 14px;
  font-family: var(--karate);
  font-weight: var(--karate-weight, 400);
  letter-spacing: var(--karate-track, .005em);
  font-size: clamp(40px, 7.5vw, 88px);
  line-height: 1;
  text-transform: uppercase;
  color: var(--ink);
  text-wrap: balance;
}
.ljudje__lede{
  margin: 0;
  font-size: clamp(16px, 1.7vw, 19px);
  color: var(--ink-2);
  max-width: 56ch;
  line-height: 1.55;
}

.ljudje__wrap{
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  gap: clamp(40px, 5vw, 64px);
}

.ljudje__group{ scroll-margin-top: 96px; }

.ljudje__group-head{
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}
.ljudje__group-kanji{
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--ink);
  color: #fff;
  font-family: var(--karate);
  font-weight: 500;
  font-size: 20px;
  line-height: 1;
  flex-shrink: 0;
}
.ljudje__group-title{
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--ink);
  line-height: 1.2;
  flex: 1;
}
.ljudje__group-count{
  font-family: var(--mono);
  font-size: 11px; letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 4px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
}

/* Coach cards — centred row of two */
.ljudje__coaches{
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
  max-width: 640px;
  margin: 0 auto;
}
@media (min-width: 720px){
  .ljudje__coaches{ grid-template-columns: repeat(2, 1fr); }
}
.ljudje__coach{
  display: flex; flex-direction: column; gap: 14px;
}
.ljudje__coach-photo{
  aspect-ratio: 4/5;
  border-radius: var(--r);
  background:
    linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.18)),
    repeating-linear-gradient(45deg, #d6cfbd 0 16px, #cdc5b0 16px 32px);
  position: relative; overflow: hidden;
  border: 1px solid var(--line);
}
.ljudje__coach-photo::after{
  content: attr(data-ph);
  position: absolute; left: 14px; bottom: 12px;
  font-family: var(--mono); font-size: 10px;
  letter-spacing: .18em; text-transform: uppercase;
  color: rgba(0,0,0,.4);
}
.ljudje__coach-photo--img{ background:none; border:1px solid var(--line); }
.ljudje__coach-photo--img::after{ display:none; }
.ljudje__coach-photo--img img{
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.ljudje__coach-name{
  font-family: var(--serif);
  font-size: 22px; font-weight: 700;
  margin: 0; letter-spacing: -.01em;
}
.ljudje__coach-role{
  font-family: var(--mono);
  font-size: 11px; letter-spacing: .18em;
  text-transform: uppercase; color: var(--accent);
}

/* Board — simple two-column rows */
.ljudje__board{
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  gap: 8px;
}
.ljudje__board-item{
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 18px; align-items: center;
  padding: 14px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.ljudje__board-role{
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.ljudje__board-name{
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -.005em;
}
@media (max-width: 540px){
  .ljudje__board-item{ grid-template-columns: 1fr; gap: 2px; padding: 12px 14px; }
  .ljudje__board-name{ font-size: 16px; }
}

/* Masters list — intentionally quiet, reads as a footnote-style text block */
.ljudje__mojstri{
  margin-top: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.ljudje__mojstri-title{
  margin: 0 0 8px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}
.ljudje__mojstri-line{
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-2);
}
.ljudje__mojstri-rank{
  color: var(--ink);
  font-weight: 600;
}

/* Phone-mockup view */
body[data-view="phone"] .ljudje__coaches{ grid-template-columns: 1fr !important }
body[data-view="phone"] .ljudje__board-item{ grid-template-columns: 1fr; gap: 2px }
body[data-view="phone"] .ljudje__title{ font-size: clamp(36px, 11vw, 56px) }
