/* =================================================================
   My Dreams – kozmetični studio, Ljubljana
   Barve so povzete po logotipu: terakota #BC746A in zlata #CFA550.

   Pravilo, ki velja po vsej strani:
   slika ni nikoli obrezana. Za to skrbita dva vzorca –
   .fr  (okvir stalnega razmerja, slika v celoti, zamegljena podlaga)
   .ph  (slika v svojem naravnem razmerju, galerije)
   ================================================================= */

:root {
  /* =================================================================
     TEMNA IZVEDBA

     Imena spremenljivk so namenoma enaka kot v svetli različici, čeprav
     zdaj pomenijo nasprotno (--porcelain je najtemnejša podlaga, --ink
     najsvetlejše besedilo). Tako sta obe datoteki po zgradbi identični
     in ju je mogoče kadar koli združiti v eno s preklopom teme –
     dovolj je, da se ta blok prepiše pod [data-theme="dark"].

     Kontrast na podlagi #15100E:
       --ink 16,9:1   --ink-soft 12,3:1   --muted 7,7:1
       --clay 7,1:1   --gold 10,1:1
     ================================================================= */

  --porcelain: #15100E;   /* osnovna podlaga strani */
  --linen:     #1D1613;   /* izmenična podlaga sekcij */
  --sand:      #3A2F29;   /* tanke črte in obrobe */
  --white:     #211A16;   /* podlaga kartic */

  --ink:       #F7F1EC;   /* naslovi */
  --ink-soft:  #DACEC6;   /* tekoče besedilo */
  --muted:     #B5A198;   /* drugotno besedilo */

  --clay:      #D28D80;   /* terakota, posvetljena za temno podlago */
  --clay-dk:   #E3A99D;   /* svetlejša ob prehodu miške */
  --gold:      #DCB96E;

  --plate:     #FFFFFF;   /* svetla ploščica za risbe in sheme (črne črte) */
  --shadow:    rgba(0,0,0,.62);

  --wrap:      1240px;
  --gut:       clamp(20px, 5vw, 48px);
  --nav-h:     84px;

  --display:   'Italiana', 'Times New Roman', serif;
  --body:      'Jost', 'Segoe UI', system-ui, sans-serif;

  --ease:      cubic-bezier(.22,.61,.36,1);
  --line:      1px solid var(--sand);
}

/* ------------------------------ base ------------------------------ */

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

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h) + 70px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--porcelain);
  color: var(--ink-soft);
  font-family: var(--body);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.72;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }

h1, h2, h3 { color: var(--ink); margin: 0; font-weight: 400; }
h1, h2 { font-family: var(--display); line-height: 1.04; letter-spacing: .005em; }
h1 { font-size: clamp(2.4rem, 5.4vw, 4.3rem); }
h2 { font-size: clamp(2rem, 4.2vw, 3.3rem); }

p { margin: 0 0 1.05em; }
p:last-child { margin-bottom: 0; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gut); }

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

.skip {
  position: absolute; left: -9999px; top: 8px; z-index: 200;
  background: var(--ink); color: var(--porcelain); padding: 10px 18px; border-radius: 999px;
  font-size: .85rem; text-decoration: none;
}
.skip:focus { left: 16px; }

:focus-visible { outline: 2px solid var(--clay); outline-offset: 3px; border-radius: 2px; }

.eyebrow {
  font-size: .72rem; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  color: var(--clay); margin: 0 0 1.1rem;
}

.lead { color: var(--muted); font-size: clamp(1rem, 1.3vw, 1.1rem); max-width: 58ch; font-weight: 300; }

/* ================= OKVIR SLIKE – slika je vedno cela ============== */

.fr {
  display: block; position: relative; overflow: hidden;
  border-radius: 3px; background: var(--linen); isolation: isolate;
}
.fr-11  { aspect-ratio: 1 / 1; }
.fr-43  { aspect-ratio: 4 / 3; }
.fr-32  { aspect-ratio: 3 / 2; }
.fr-45  { aspect-ratio: 4 / 5; }
.fr-34  { aspect-ratio: 3 / 4; }
.fr-169 { aspect-ratio: 16 / 9; }
.fr-auto { aspect-ratio: 4 / 3; } /* nadomestek, dejansko razmerje pride v style */

/* zamegljena razširitev iste slike zapolni prazno – nič se ne odreže */
.fr-bed {
  position: absolute; inset: 0; z-index: 0;
  background-size: cover; background-position: center;
  filter: blur(34px) saturate(1.15) brightness(.5);
  transform: scale(1.3);
  opacity: .55;
}
.fr-img {
  position: relative; z-index: 1;
  width: 100%; height: 100%;
  object-fit: contain; object-position: center;
}
.fr::after {
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.09);
  border-radius: inherit;
}

/* risbe in sheme: bela podlaga, brez zamegljene razširitve */
.fr-plain { background: var(--plate); }
.fr-plain::after { box-shadow: none; }

/* nadomestni okvir, dokler fotografije še ni */
.fr-empty {
  display: grid; align-content: center; justify-items: center; gap: 14px;
  background: linear-gradient(155deg, var(--linen), #2A211C);
}
.fr-empty .fr-mark { width: clamp(42px, 16%, 78px); opacity: .55; }
.fr-note { font-size: .64rem; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); text-align: center; padding-inline: 12px; }

/* ============ SLIKA V NARAVNEM RAZMERJU – galerije ================ */
/* Poravnane vrstice: širina posamezne slike je sorazmerna njenemu
   razmerju, zato so slike v isti vrstici enako visoke, vrstica je
   zapolnjena od roba do roba, slika pa ni nikoli obrezana.          */

.just {
  display: flex; flex-wrap: wrap;
  gap: clamp(10px, 1.2vw, 16px);
}
.just::after { content: ''; flex-grow: 99999; }

.ph {
  flex: var(--ar, 1.33) 1 calc(var(--ar, 1.33) * 240px);
  min-width: min(190px, 100%);
  display: block; margin: 0; padding: 0; border: 0;
  background: var(--linen); position: relative; overflow: hidden;
  border-radius: 3px; text-align: left;
}
.ph img { width: 100%; height: auto; transition: transform .8s var(--ease); }
.ph-btn { cursor: zoom-in; font: inherit; }
.ph-btn:hover img { transform: scale(1.035); }
.ph::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.09); border-radius: inherit;
}
.ph.is-hidden { display: none; }

/* ----------------------------- buttons ---------------------------- */

.btn {
  display: inline-flex; align-items: center; gap: .6em;
  padding: .92em 1.7em; border-radius: 999px;
  font-size: .88rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase;
  text-decoration: none; border: 1px solid transparent; cursor: pointer;
  transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.btn-solid { background: var(--clay); color: var(--porcelain); }
.btn-solid:hover { background: var(--clay-dk); color: var(--porcelain); transform: translateY(-2px); }
.btn-line { background: transparent; color: var(--ink); border-color: var(--sand); }
.btn-line:hover { border-color: var(--clay); color: var(--clay); transform: translateY(-2px); }
.btn-num { font-family: var(--body); letter-spacing: .04em; opacity: .85; text-transform: none; }
.btn-big { font-size: 1.15rem; padding: .8em 1.5em; letter-spacing: .05em; }

.tlink {
  display: inline-block; margin-top: 1.2rem;
  font-size: .8rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--clay); text-decoration: none;
  border-bottom: 1px solid var(--sand); padding-bottom: 3px;
  transition: border-color .3s var(--ease), color .3s var(--ease);
}
.tlink:hover { border-color: var(--clay); color: var(--clay-dk); }

/* ----------------------------- header ----------------------------- */

.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 90;
  transition: background .35s var(--ease), box-shadow .35s var(--ease);
}
.nav.is-stuck {
  background: rgba(21,16,14,.86);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(255,255,255,.07);
}
.nav-in {
  display: flex; align-items: center; gap: clamp(14px, 2.4vw, 34px);
  height: var(--nav-h); transition: height .35s var(--ease);
}
.nav.is-stuck .nav-in { height: 68px; }

.nav-logo { flex: 0 0 auto; }
.nav-logo img { width: clamp(94px, 9.6vw, 120px); height: auto; transition: width .35s var(--ease); }
.nav.is-stuck .nav-logo img { width: clamp(82px, 8vw, 100px); }

.nav-links { margin-left: auto; display: flex; align-items: center; gap: clamp(13px, 1.9vw, 27px); }
.nav-links > a, .ndrop-btn {
  font-family: inherit; font-size: .8rem; letter-spacing: .13em; text-transform: uppercase;
  text-decoration: none; color: var(--ink); position: relative; padding: 4px 0;
  background: none; border: 0; cursor: pointer;
}
.nav-links > a::after, .ndrop-btn::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px;
  background: var(--clay); transition: right .35s var(--ease);
}
.nav-links > a:hover::after, .ndrop-btn:hover::after,
.nav-links > a[aria-current]::after, .ndrop.is-current .ndrop-btn::after { right: 0; }

.nav-lang { color: var(--muted) !important; border: 1px solid var(--sand); border-radius: 999px; padding: 4px 11px !important; }
.nav-lang::after { display: none !important; }
.nav-lang:hover { border-color: var(--clay); color: var(--clay) !important; }

.nav-call { flex: 0 0 auto; padding: .72em 1.35em; font-size: .82rem; }

/* jezikovni gumb ob hamburgerju – samo na telefonu */
.nav-lang-m { display: none; }

.burger {
  display: none; width: 44px; height: 44px; margin-left: auto;
  background: none; border: 0; cursor: pointer; position: relative;
}
.burger span {
  position: absolute; left: 10px; width: 24px; height: 1.5px; background: var(--ink);
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.burger span:nth-child(1) { top: 18px; }
.burger span:nth-child(2) { top: 25px; }
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }

/* --------------------- spustni meni s storitvami ------------------- */

.ndrop { position: relative; }
.ndrop-btn { display: inline-flex; align-items: center; gap: 8px; }
.ndrop-caret {
  width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform .3s var(--ease);
}
.ndrop.is-open .ndrop-caret { transform: translateY(1px) rotate(-135deg); }

/* Meni se z zgornjim robom DOTIKA gumba – razmik je prozoren padding
   znotraj menija, ne prazen prostor med njima. Zato miška ne more
   zaiti "mimo" in meni se med potjo na postavko ne zapre. */
.ndrop-menu {
  position: absolute; top: 100%; left: 50%; transform: translate(-50%, 8px);
  width: min(640px, 78vw); padding-top: 16px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
}
.ndrop-panel {
  background: var(--porcelain); border: var(--line); border-radius: 4px; padding: 14px;
  box-shadow: 0 30px 60px -34px var(--shadow);
}
.ndrop.is-open .ndrop-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0); }
/* gumb sam malo razširimo navzdol, da ni niti pikslu široke reže */
.ndrop-btn { padding-bottom: 10px; margin-bottom: -6px; }
.ndrop-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }

.ndrop-item {
  display: flex; align-items: center; gap: 12px; padding: 9px 10px; min-width: 0;
  text-decoration: none; border-radius: 3px; transition: background .25s var(--ease);
}
.ndrop-item:hover, .ndrop-item.is-on { background: var(--linen); }
.ndrop-thumb { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 4px; overflow: hidden; display: block; background: var(--linen); }
.ndrop-thumb .fr { border-radius: 4px; }
.ndrop-thumb .ndrop-mark { width: 100%; height: 100%; object-fit: contain; padding: 9px; opacity: .55; }
.ndrop-txt { display: block; flex: 1 1 auto; min-width: 0; overflow: hidden; }
.ndrop-txt strong {
  display: block; font-family: var(--display); font-weight: 400; font-size: 1.16rem;
  color: var(--ink); line-height: 1.25; text-transform: none; letter-spacing: 0;
}
.ndrop-txt em {
  display: block; font-style: normal; font-size: .68rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--muted); line-height: 1.5;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ------------------------------ hero ------------------------------ */

.hero {
  position: relative; overflow: hidden;
  padding-top: calc(var(--nav-h) + clamp(24px, 5vw, 60px));
  padding-bottom: clamp(26px, 4vw, 46px);
}
.hero-mark {
  position: absolute; right: -8%; top: -12%; width: min(48vw, 540px);
  opacity: .12; pointer-events: none; z-index: 0;
}
.hero-mark img { width: 100%; }

.hero-in {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
  gap: clamp(30px, 5vw, 72px); align-items: center;
}

.hero-h1 { font-size: clamp(2.8rem, 6.6vw, 5.1rem); margin: 0 0 1.3rem; max-width: 14ch; }
.hero-h1::after {
  content: ''; display: block; width: 62px; height: 1px;
  background: var(--gold); margin-top: clamp(18px, 2.4vw, 28px);
}
.hero-sub {
  font-size: clamp(1.08rem, 1.7vw, 1.3rem); font-weight: 300; color: var(--ink);
  max-width: 44ch; margin-bottom: .9rem; line-height: 1.55;
}
.hero .lead { max-width: 50ch; font-size: 1rem; }

.hero-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 1.9rem; }

.hero-trust {
  list-style: none; margin: 1.9rem 0 0; padding: 1.4rem 0 0; border-top: var(--line);
  display: flex; flex-wrap: wrap; gap: 10px 26px;
}
.hero-trust li {
  font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted);
  padding-left: 16px; position: relative;
}
.hero-trust li::before {
  content: ''; position: absolute; left: 0; top: .62em; width: 5px; height: 5px;
  border-radius: 50%; background: var(--gold);
}

.hero-media { position: relative; padding-bottom: 44px; padding-left: 30px; }
.hero-fig { position: relative; }
.hero-fig .fr { box-shadow: 0 34px 60px -44px var(--shadow); }
.hero-fig-sm {
  position: absolute; left: 0; bottom: 0; width: 40%; max-width: 200px;
  background: var(--porcelain); padding: 6px; border-radius: 4px;
  box-shadow: 0 18px 40px -22px var(--shadow);
}
.hero-badge {
  position: absolute; top: 20px; right: -12px; margin: 0; z-index: 3;
  background: var(--porcelain); border: var(--line);
  border-radius: 999px; padding: 13px 21px; text-align: center; line-height: 1.15;
}
.hero-badge-n { display: block; font-family: var(--display); font-size: 1.45rem; color: var(--clay); }
.hero-badge-t { display: block; font-size: .61rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }

/* ---------------------------- sections ---------------------------- */

.sec { padding-block: clamp(58px, 7.5vw, 116px); }
.sec-top { padding-top: clamp(34px, 4.4vw, 62px); }
.sec-head { margin-bottom: clamp(34px, 4.4vw, 62px); max-width: 62ch; }
.sec-head h2 { margin-bottom: 1.1rem; }
.sec-head-sm { margin-bottom: clamp(24px, 3vw, 38px); }
.sec-head-sm h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin-bottom: 0; }

.phead {
  background: var(--linen);
  padding-top: calc(var(--nav-h) + clamp(28px, 4.6vw, 62px));
  padding-bottom: clamp(24px, 3.4vw, 44px);
}
.phead h1 { margin-bottom: 1rem; }
.phead-tall { padding-bottom: clamp(48px, 7vw, 96px); }
.nf-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 2rem; }

/* --------------------------- drobtinice --------------------------- */

.crumbs { margin: 0 0 clamp(18px, 2.4vw, 30px); }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.crumbs li { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.crumbs li + li::before { content: '·'; margin-right: 8px; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { color: var(--clay); }

/* -------------------- kartice storitev na domači ------------------ */

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.2vw, 28px); }
.cards-sm { grid-template-columns: repeat(4, 1fr); gap: clamp(12px, 1.6vw, 20px); }

.sc {
  position: relative; display: flex; flex-direction: column;
  background: var(--white); border: 1px solid rgba(255,255,255,.07); border-radius: 4px;
  overflow: hidden;
  transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.sc::after {
  content: ''; position: absolute; left: 0; right: 100%; top: 0; height: 2px;
  background: var(--gold); z-index: 4; transition: right .55s var(--ease);
}
.sc:hover, .sc:focus-within { transform: translateY(-5px); box-shadow: 0 30px 54px -38px var(--shadow); border-color: var(--sand); }
.sc:hover::after, .sc:focus-within::after { right: 0; }

.sc-media { display: block; }
.sc-body { padding: clamp(17px, 1.9vw, 25px); display: flex; flex-direction: column; flex: 1; }

.sc-kicker {
  font-size: .66rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--clay); margin: 0 0 .45rem;
}
.sc-title { font-family: var(--display); font-size: clamp(1.45rem, 2vw, 1.95rem); line-height: 1.12; margin: 0 0 .6rem; }
.sc-link { text-decoration: none; }
.sc-link::after { content: ''; position: absolute; inset: 0; z-index: 5; }
.sc-short { font-size: .93rem; font-weight: 300; color: var(--muted); margin: 0 0 1.3rem; }

.sc-foot {
  margin: auto 0 0; padding-top: .95rem; border-top: var(--line);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  font-size: .73rem; letter-spacing: .11em; text-transform: uppercase; color: var(--muted);
}
.sc-price strong { color: var(--ink); font-weight: 500; }
.sc-go { display: inline-flex; align-items: center; gap: 8px; color: var(--clay); white-space: nowrap; }
.sc-arrow {
  width: 16px; height: 1px; background: currentColor; position: relative;
  transition: width .35s var(--ease);
}
.sc-arrow::after {
  content: ''; position: absolute; right: 0; top: -2.5px; width: 6px; height: 6px;
  border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg);
}
.sc:hover .sc-arrow { width: 26px; }

.sc-mini .sc-body { padding: 14px 16px 18px; }
.sc-mini .sc-title { font-size: clamp(1.2rem, 1.5vw, 1.45rem); margin-bottom: .3rem; }
.sc-mini .sc-kicker { margin: 0; font-size: .62rem; }

/* --------------------- podstran storitve: vrh --------------------- */

.shero {
  background: var(--linen);
  padding-top: calc(var(--nav-h) + clamp(24px, 4vw, 50px));
  padding-bottom: clamp(34px, 4.6vw, 66px);
}
.shero-in {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr);
  gap: clamp(28px, 4.6vw, 64px); align-items: center;
}
.shero h1 { margin-bottom: 1.1rem; }
.shero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 2rem; }
.shero-from { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.shero-from strong { font-family: var(--display); font-size: 1.5rem; color: var(--clay); letter-spacing: 0; }
.shero-media .fr { box-shadow: 0 30px 56px -40px var(--shadow); }

/* ------------------ podstran storitve: besedilo ------------------- */

.detail-in {
  display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, .9fr);
  gap: clamp(30px, 4.6vw, 68px); align-items: start;
}
.detail-in-top { margin-top: clamp(44px, 5.5vw, 80px); }
.detail-body p { max-width: 64ch; font-size: 1.02rem; }
.detail-body p + p { margin-top: 1.15em; }
.detail-body strong { color: var(--ink); font-weight: 500; }

.detail-side { position: sticky; top: calc(var(--nav-h) + 22px); display: grid; gap: 16px; }
.detail-side .tlink { margin-top: 0; }

.side-box { background: var(--white); border: var(--line); border-radius: 4px; padding: clamp(19px, 2.2vw, 27px); }
.side-h {
  font-family: var(--body); font-size: .71rem; font-weight: 500; letter-spacing: .2em;
  text-transform: uppercase; color: var(--clay); margin: 0 0 1.1rem;
}
.side-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; font-size: .92rem; font-weight: 300; }
.side-list li { position: relative; padding-left: 18px; }
.side-list li::before {
  content: ''; position: absolute; left: 0; top: .62em; width: 6px; height: 6px;
  border-radius: 50%; background: var(--gold);
}
.side-box .btn { margin-top: 1.4rem; }

/* ------------------- sheme oblik bikini depilacije ---------------- */

.sec-styles { padding-top: 0; }
.styles {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: clamp(14px, 1.8vw, 24px);
}
.style {
  background: var(--white); border: var(--line); border-radius: 4px;
  padding: clamp(16px, 1.8vw, 22px);
  display: flex; flex-direction: column;
}
.style-no {
  margin: 0 0 .5rem; font-size: .66rem; letter-spacing: .22em; color: var(--gold);
}
.style-title {
  font-family: var(--display); font-size: clamp(1.3rem, 1.8vw, 1.6rem);
  line-height: 1.15; margin: 0 0 .5rem;
}
.style-text { font-size: .89rem; font-weight: 300; color: var(--muted); margin: 0 0 1.2rem; }

/* Sheme so izrisane na enako višino, zato so telesa na vseh petih
   enako velika in oblike med seboj primerljive. */
.style-img {
  display: block; margin-top: auto; padding-top: 1rem; border-top: var(--line);
}
/* risba je črna na svetlem, zato dobi svojo ploščico */
.style-img img { background: var(--plate); border-radius: 3px; padding: 10px 6px; }
.style-img img {
  height: clamp(120px, 13vw, 160px); width: auto; max-width: 100%;
  margin-inline: auto;
}

.sec-shots { background: var(--linen); }
.sec-styles + .sec-shots { background: var(--linen); }
.sec-shots + .band { background: var(--porcelain); }
.shots-more { margin-top: clamp(18px, 2.4vw, 28px); }

/* ------------------------ druge storitve -------------------------- */

.pager {
  display: flex; justify-content: space-between; gap: 16px;
  margin-top: clamp(32px, 4vw, 52px); padding-top: clamp(18px, 2.4vw, 28px); border-top: var(--line);
}
.pager a {
  display: inline-flex; align-items: center; gap: 10px; text-decoration: none;
  font-size: .76rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted);
  transition: color .3s var(--ease);
}
.pager a:hover { color: var(--clay); }
.pager-prev::before { content: '←'; }
.pager-next::after { content: '→'; }
.pager-next { margin-left: auto; text-align: right; }

/* ---------------------------- filtri ------------------------------ */

.filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: clamp(24px, 3vw, 38px); }
.fbtn {
  font-family: inherit; font-size: .74rem; letter-spacing: .12em; text-transform: uppercase;
  padding: .6em 1.1em; border-radius: 999px; border: var(--line);
  background: transparent; color: var(--ink-soft); cursor: pointer;
  transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.fbtn:hover { border-color: var(--clay); color: var(--clay); }
.fbtn.is-on { background: var(--clay); border-color: var(--clay); color: var(--porcelain); }

.filterbar {
  position: sticky; top: calc(var(--nav-h) - 6px); z-index: 40;
  background: rgba(21,16,14,.9); backdrop-filter: blur(10px);
  border-bottom: var(--line);
  margin-bottom: clamp(26px, 3.2vw, 42px);
}
.filterbar .filter { margin-bottom: 0; padding-block: 13px; }

/* ----------------------------- cenik ------------------------------ */

.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: clamp(10px, 1.2vw, 16px); }
.tile {
  display: block; text-decoration: none; background: var(--white);
  border: var(--line); border-radius: 4px; overflow: hidden;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.tile:hover { transform: translateY(-3px); box-shadow: 0 22px 40px -30px var(--shadow); border-color: var(--clay); }
.tile-media { display: block; }
.tile-txt { display: block; padding: 12px 14px 14px; }
.tile-txt strong { display: block; font-family: var(--display); font-weight: 400; font-size: 1.12rem; color: var(--ink); line-height: 1.25; }
.tile-txt em { display: block; font-style: normal; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--clay); margin-top: 3px; }

.pgrid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
  gap: clamp(16px, 2vw, 26px); align-items: start;
}
.pc {
  background: var(--white); border: var(--line); border-radius: 4px;
  padding: clamp(18px, 2.1vw, 26px);
}
.pc.is-hidden { display: none; }
.pc-pack { border-color: rgba(220,185,110,.42); background: linear-gradient(180deg, rgba(220,185,110,.10), var(--white) 52%); }

.pc-head { display: flex; align-items: center; gap: 14px; padding-bottom: 1rem; margin-bottom: .6rem; border-bottom: var(--line); }
.pc-thumb { flex: 0 0 auto; width: 54px; height: 54px; border-radius: 4px; overflow: hidden; display: block; background: var(--linen); }
.pc-thumb .fr { border-radius: 4px; }
.pc-thumb > img { width: 100%; height: 100%; object-fit: contain; padding: 10px; opacity: .55; }
.pc-heading { display: block; min-width: 0; }
.pc-heading h3 { font-family: var(--display); font-size: 1.34rem; line-height: 1.2; }
.pc-from { display: block; font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin-top: 2px; }
.pc-from strong { color: var(--clay); font-weight: 500; }

.pc-note { font-size: .84rem; font-weight: 300; color: var(--muted); margin: .2rem 0 .9rem; }

.pc-list { margin: 0; }
.pc-row { display: flex; align-items: baseline; gap: 10px; padding: .42rem 0; }
.pc-row dt { flex: 0 1 auto; font-weight: 300; color: var(--ink-soft); font-size: .96rem; }
.pc-row::after {
  content: ''; flex: 1 1 auto; height: 1px; min-width: 12px; order: 1;
  background-image: radial-gradient(circle, var(--sand) 1px, transparent 1px);
  background-size: 5px 1px; background-repeat: repeat-x; background-position: 0 100%;
  transform: translateY(-4px);
}
.pc-row dd { order: 2; margin: 0; flex: 0 0 auto; color: var(--ink); font-weight: 500; white-space: nowrap; }
.pc-row.is-pack dd { color: var(--clay); }
.pc-flag {
  display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px;
  background: rgba(220,185,110,.16); color: var(--gold);
  font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; vertical-align: middle;
}
.pc-slim { border: 0; padding: 0; background: transparent; }
.pc-slim .pc-thumb { width: 44px; height: 44px; }
.pc-slim .pc-heading h3 { font-size: 1.16rem; }

.pnote { margin-top: clamp(24px, 3vw, 38px); font-size: .86rem; color: var(--muted); font-weight: 300; max-width: 62ch; }

/* ----------------------------- tečaji ----------------------------- */

.courses { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.2vw, 26px); }
.course {
  background: var(--white); border-radius: 4px; border-top: 2px solid var(--gold);
  overflow: hidden; display: flex; flex-direction: column;
}
.course-media { display: block; }
.course-txt { padding: clamp(20px, 2.4vw, 32px); display: flex; flex-direction: column; flex: 1; }
.course h2 { font-family: var(--display); font-size: clamp(1.35rem, 2vw, 1.8rem); margin-bottom: .6rem; }
.course p { font-size: .94rem; color: var(--muted); font-weight: 300; }
.course p.course-price {
  margin: auto 0 0; padding-top: 1.4rem;
  font-family: var(--display); font-size: clamp(1.8rem, 2.4vw, 2.2rem);
  line-height: 1; color: var(--clay);
}

/* ---------------------------- o studiu ---------------------------- */

.about-in {
  display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  gap: clamp(30px, 5vw, 76px); align-items: center;
}
.about-media .fr { box-shadow: 0 30px 56px -42px var(--shadow); }
.about-text h2 { margin-bottom: 1.3rem; }
.about-text p { max-width: 56ch; }

.sig { margin-top: 1.9rem; padding-top: 1.3rem; border-top: var(--line); display: inline-block; }
.sig-name { display: block; font-family: var(--display); font-size: 1.45rem; color: var(--ink); }
.sig-role { display: block; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }

.facts {
  list-style: none; margin: clamp(44px, 5.6vw, 78px) 0 0; padding: clamp(26px, 3.2vw, 40px) 0 0;
  border-top: var(--line);
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.facts strong { display: block; font-family: var(--display); font-weight: 400; font-size: clamp(1.7rem, 2.8vw, 2.3rem); color: var(--clay); }
.facts span { display: block; font-size: .84rem; color: var(--muted); font-weight: 300; }

/* --------------------- ozek pas (galerija) ------------------------ */

.sec-slim { padding-block: clamp(34px, 4vw, 56px); border-top: var(--line); }
.slim-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.slim-txt { margin: 0; color: var(--muted); font-weight: 300; max-width: 46ch; }

/* --------------------------- poziv (band) ------------------------- */

.band { background: var(--linen); padding-block: clamp(50px, 6.4vw, 92px); }
.band-in {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
  gap: clamp(24px, 4vw, 56px); align-items: center;
}
.band h2 { margin-bottom: 1rem; }
.band-act { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-top: 1.6rem; }
.band-act .tlink { margin-top: .4rem; }

/* domača stran: poleg poziva še naslov in zemljevid */
.band-map .band-in { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; }
.band-info {
  margin: 1.9rem 0 0; display: grid; grid-template-columns: repeat(2, auto);
  gap: 1rem 2.6rem; justify-content: start;
}
.band-info dt { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.band-info dd { margin: .25rem 0 0; color: var(--ink); }
.band-map-frame {
  border-radius: 4px; overflow: hidden;
  box-shadow: 0 24px 50px -34px var(--shadow);
}
.band-map-frame iframe {
  display: block; width: 100%; height: clamp(300px, 32vw, 420px); border: 0;
  filter: invert(.92) hue-rotate(180deg) saturate(.72) brightness(.94);
}

/* ---------------------------- kontakt ----------------------------- */

.contact-in { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(30px, 5vw, 70px); align-items: center; }
.contact-list { margin: 2rem 0 0; display: grid; gap: 1.1rem; }
.contact-list dt { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); }
.contact-list dd { margin: .2rem 0 0; color: var(--ink); }
.contact-list a { text-decoration: none; border-bottom: var(--line); }
.contact-list a:hover { border-color: var(--clay); color: var(--clay); }

.contact-map { border-radius: 4px; overflow: hidden; box-shadow: 0 24px 50px -34px var(--shadow); }
.contact-map iframe { display: block; width: 100%; height: clamp(320px, 44vw, 470px); border: 0; filter: invert(.92) hue-rotate(180deg) saturate(.72) brightness(.94); }

/* ----------------------------- footer ----------------------------- */

.foot {
  background: #0E0A09; color: rgba(247,241,236,.56);
  border-top: var(--line);
  padding-block: clamp(26px, 3vw, 40px) 0;
  font-size: .8rem; line-height: 1.6;
}
.foot a { text-decoration: none; }
.foot a:hover { color: var(--gold); }

.foot-in {
  display: flex; flex-wrap: wrap; align-items: flex-start;
  justify-content: space-between; gap: 18px 40px;
}
.foot-logo { width: 96px; height: auto; margin-bottom: .7rem; }
.foot-brand p { margin: 0 0 .25rem; }

.foot-nav { display: flex; flex-wrap: wrap; gap: .35rem 1.3rem; padding-top: .3rem; }
.foot-nav a { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }

.foot-btm {
  margin-top: clamp(20px, 2.4vw, 32px); padding-block: 14px;
  border-top: 1px solid rgba(247,241,236,.10);
  display: flex; flex-wrap: wrap; gap: 4px 20px; justify-content: space-between;
  font-size: .72rem; color: rgba(247,241,236,.42);
}
.foot-btm p { margin: 0; }
.foot-by a { color: var(--gold); }

/* --------------------------- klicna vrstica ------------------------ */

.callbar {
  display: none; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 80;
  background: var(--clay); color: var(--porcelain); text-align: center; text-decoration: none;
  padding: 15px; border-radius: 999px; font-size: .9rem; letter-spacing: .1em; text-transform: uppercase;
  box-shadow: 0 14px 30px -12px var(--shadow);
}

/* ----------------------------- lightbox ---------------------------- */

.lightbox {
  position: fixed; inset: 0; z-index: 120; display: flex; align-items: center; justify-content: center;
  background: rgba(8,6,5,.96); padding: clamp(16px, 5vw, 56px);
  opacity: 0; transition: opacity .3s var(--ease);
}
.lightbox[hidden] { display: none; }
.lightbox.is-on { opacity: 1; }
.lb-fig { margin: 0; max-width: min(1100px, 92vw); text-align: center; }
.lb-fig img { max-height: 78vh; max-width: 100%; width: auto; height: auto; margin-inline: auto; border-radius: 3px; }

.lb-close, .lb-nav {
  position: absolute; background: none; border: 1px solid rgba(251,247,244,.28); border-radius: 999px;
  width: 46px; height: 46px; cursor: pointer; transition: border-color .3s var(--ease), background .3s var(--ease);
}
.lb-close:hover, .lb-nav:hover { border-color: rgba(251,247,244,.8); background: rgba(251,247,244,.08); }
.lb-close { top: clamp(14px, 3vw, 30px); right: clamp(14px, 3vw, 30px); }
.lb-close::before, .lb-close::after {
  content: ''; position: absolute; inset: 50% 14px auto; height: 1px; background: var(--porcelain);
}
.lb-close::before { transform: rotate(45deg); }
.lb-close::after { transform: rotate(-45deg); }
.lb-prev { left: clamp(10px, 2.4vw, 30px); top: 50%; transform: translateY(-50%); }
.lb-next { right: clamp(10px, 2.4vw, 30px); top: 50%; transform: translateY(-50%); }
.lb-nav::before {
  content: ''; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px;
  border-left: 1px solid var(--porcelain); border-bottom: 1px solid var(--porcelain);
}
.lb-prev::before { transform: translate(-40%, -50%) rotate(45deg); }
.lb-next::before { transform: translate(-60%, -50%) rotate(-135deg); }

body.lb-open { overflow: hidden; }

/* ------------------------- razkritje ob drsenju -------------------- */

.reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }

/* ------------------- prehod med stranmi (View Transitions) --------- */

@view-transition { navigation: auto; }

::view-transition-old(root) { animation: vt-out .26s var(--ease) both; }
::view-transition-new(root) { animation: vt-in .34s var(--ease) both; }
@keyframes vt-out { to { opacity: 0; } }
@keyframes vt-in  { from { opacity: 0; transform: translateY(10px); } }

/* ============================= responsive ========================== */

@media (max-width: 1180px) {
  .cards { grid-template-columns: repeat(2, 1fr); }
  .cards-sm { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 980px) {
  :root { --nav-h: 72px; }

  .nav-links {
    position: fixed; top: 0; right: 0; bottom: 0; height: 100dvh; width: min(360px, 88vw);
    z-index: 95; background: var(--porcelain); box-shadow: -20px 0 50px -30px var(--shadow);
    flex-direction: column; align-items: stretch; justify-content: flex-start;
    gap: 4px; padding: calc(var(--nav-h) + 18px) clamp(22px, 6vw, 36px) 40px; overflow-y: auto;
    transform: translateX(100%); transition: transform .4s var(--ease); margin: 0;
  }
  .nav-links.is-open { transform: none; }
  .nav-links > a { font-size: .95rem; letter-spacing: .16em; padding: 12px 0; border-bottom: var(--line); }
  .nav-links > a::after { display: none; }
  .nav-lang { align-self: flex-start; margin-top: 18px; }
  .nav-call { display: none; }
  .nav-lang-m {
    display: inline-block; margin-left: auto; position: relative; z-index: 96;
    font-size: .74rem; letter-spacing: .13em; text-transform: uppercase; text-decoration: none;
  }
  .nav-links .nav-lang { display: none; }
  .burger { display: block; position: relative; z-index: 96; margin-left: 4px; }
  .nav, .nav.is-stuck { background: var(--porcelain); backdrop-filter: none; box-shadow: 0 1px 0 rgba(255,255,255,.07); }
  body.menu-open { overflow: hidden; }

  /* spustni meni postane zložljiv seznam */
  .ndrop { order: -1; }
  .ndrop-btn { width: 100%; justify-content: space-between; font-size: .95rem; letter-spacing: .16em; padding: 12px 0; border-bottom: var(--line); }
  .ndrop-btn::after { display: none; }
  .ndrop-menu {
    position: static; transform: none; width: auto; opacity: 1; visibility: visible; pointer-events: auto;
    padding: 0;
    display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--ease);
  }
  .ndrop-panel { border: 0; box-shadow: none; padding: 0; background: transparent; }
  .ndrop-btn { padding-bottom: 12px; margin-bottom: 0; }
  .ndrop.is-open .ndrop-menu { grid-template-rows: 1fr; transform: none; }
  .ndrop-menu > * { overflow: hidden; min-height: 0; }
  .ndrop-grid { grid-template-columns: 1fr; gap: 0; padding: 6px 0 10px; }
  .ndrop-item { padding: 8px 0; }

  .hero-in, .about-in, .contact-in, .detail-in, .shero-in, .band-in { grid-template-columns: 1fr; }
  .band-map .band-in { grid-template-columns: 1fr; }
  .band-map-frame iframe { height: 280px; }
  .hero-media { order: -1; padding-left: 0; padding-bottom: 0; max-width: 480px; }
  .hero-fig-sm { display: none; }
  .hero-badge { right: 10px; top: 10px; }
  .hero-h1 { max-width: 18ch; }
  .hero-mark { width: 62vw; opacity: .09; }

  .shero-media { max-width: 560px; }
  .detail-side { position: static; }
  .about-media { max-width: 460px; }
  .band-act { align-items: flex-start; }
  .contact-map iframe { height: 320px; }

}

@media (max-width: 760px) {
  body { font-size: 16px; }
  .cards, .cards-sm, .courses { grid-template-columns: 1fr; }
  .facts { grid-template-columns: 1fr; gap: 18px; }
  .pgrid { grid-template-columns: 1fr; }
  .callbar { display: block; }
  .foot { padding-bottom: 72px; }
  .foot-in { gap: 14px; }
  .foot-nav { gap: .3rem 1.1rem; }
  .lb-prev { left: 6px; } .lb-next { right: 6px; }
  .lb-close { width: 40px; height: 40px; }
  .filterbar { top: calc(var(--nav-h) - 10px); }
  .filterbar .filter { padding-block: 10px; }
  .hero-cta .btn { width: 100%; justify-content: center; }
  .pager { flex-direction: column; }
  .pager-next { margin-left: 0; text-align: left; }
}

@media (max-width: 520px) {
  .ph { flex-basis: 100%; }
  .tiles { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
