/* ═══════════════════════════════════════════════════════════════════
   TERMINA — »ORRERIJ« v5.0, zaključna plast

   Kaj je ta datoteka. Svet povesta styles.css in postavitev.css; ta
   plast nosi samo tisto, kar je bilo med »Papirjem« in »Gozdom«
   IZMERJENO kot napaka in popravljeno. Vsako pravilo tu je bilo
   nekoč hrošč, ne okus.

   Zakaj obstaja namesto da bi popravke vpisal v postavitev.css.
   Ker se tako vidi, kaj je svet in kaj je popravek. Ko bo svet
   naslednjič zamenjan, gre ta datoteka z njim ali pa ne — odločitev
   je berljiva na enem mestu.

   Kaj je bilo iz »Gozda« NAMENOMA izpuščeno: vsa barva, teden s
   prostimi urami in pas kategorij. Prva dva sta bila drug svet,
   tretji pa je nadomeščal orrerij, ki je zdaj spet tu.
   ═══════════════════════════════════════════════════════════════════ */

/* ── gibanje: Kowalskijev register ───────────────────────────────────
   Iz »Gozda« ostane, ker ni barva. Vstop je vedno ease-out: ease-in
   pri istem trajanju bere počasneje, ker zamakne prav tisti trenutek,
   ki ga oko gleda najbolj pozorno. */
:root{
  --hitro:cubic-bezier(.23,1,.32,1);
  --t-pritisk:140ms;
  --t-odziv:180ms;
  --t-prihod:240ms;
}

/* Pritisk stisne gumb za 3 %. Merjeno na dotik: pri 140 ms je odziv
   še vezan na prst, pri 220 ms se že bere kot animacija. */
.btn{transition:transform var(--t-pritisk) var(--hitro),
                background var(--t-odziv),border-color var(--t-odziv),color var(--t-odziv)}
.btn:active{transform:scale(.97)}
.time:active{transform:scale(.96)}
.time.gone:active{transform:none}
.btn-p:disabled:active{transform:none}

/* Prehod ob drsenju: krajši in z močnejšo krivuljo kot prej.
   Razred .js postavi pwa.js; brez njega je vsebina vidna takoj in
   varovalka ga po dveh sekundah odvzame, če se opazovalec ne oglasi. */
.js .reveal{opacity:0;transform:translateY(10px);
  transition:opacity var(--t-prihod) var(--hitro),transform var(--t-prihod) var(--hitro)}
.js .reveal.in{opacity:1;transform:none}

/* Dvig kartice samo tam, kjer miška sploh obstaja. Na dotik je
   :hover lepljivo stanje, ki ostane po tapu. */
@media(hover:hover) and (pointer:fine){
  .pcard:hover,.fpost:hover,.plan:hover{transform:translateY(-2px)}
}

/* ── postavitev: štirje koraki ───────────────────────────────────────
   .arches je tretji otrok mreže z dvema stolpcema, zato so vsi štirje
   koraki stali v levi polovici — 474 px od 964. */
.kako-grid>.arches{grid-column:1 / -1;margin-top:52px}

/* .arch je mreža z dvema stolpcema in tremi otroki: odstavek je padel
   v drugo vrsto prvega stolpca, naslov odletel desno, besedilo pa se
   je stisnilo na 20 znakov v vrstici. */
.arch{display:grid;grid-template-columns:auto minmax(0,1fr);
      column-gap:18px;row-gap:6px;align-items:start}
.arch .cap{grid-column:1;grid-row:1 / -1}
.arch h3{grid-column:2;margin:0;align-self:center}
.arch p{grid-column:2;margin:0;max-width:46ch;line-height:1.6}

/* ── tipografija: hierarhija, ki je manjkala ─────────────────────── */
.arch h3{font-size:var(--t-lg);line-height:1.25}
.plan h3{font-size:var(--t-xl);line-height:1.22}

/* Poved, ki naredi razdelek s cenami pošten, ni smela biti šepet. */
.plan-foot{font-size:var(--t-md);line-height:1.6;max-width:62ch}
/* vrstica dodatkov pod paketi: isti glas kot nogi cenika, le tišja */
/* Vrstica dodatkov je bila edina sredinska vrstica v levo poravnanem
   razdelku cenika — stala je pod tremi karticami kot podnapis pod sliko in
   se je od noge cenika, ki je tik pod njo, ločila brez razloga. */
.plan-dodatki{font-size:var(--t-sm);margin-top:18px}

/* Zaključni razdelek je odslej levo poravnan (styles.css); ostane samo
   omejitev širine, da vrstica ne postane predolga za branje. */
.close .note,.close .sub{max-width:58ch}

/* Povzetek tretjega koraka je bral kot obrazec, ne kot pregled. */
#s3 .fld span{font-size:var(--t-sm);letter-spacing:0}

/* Prazno stanje toka je bilo sredinsko na levo poravnani strani. */
.feed .empty,#feed .empty,.flist .empty,#empty.empty{
  text-align:left;padding:22px 24px;font-size:var(--t-md);
  border:1px solid var(--meja);border-radius:var(--r-drobno);
}

/* Prazna opomba je držala svojo višino in odpirala vrzel pod
   obrazcem, preden je uporabnik karkoli naredil. */
.note:empty{display:none;padding:0;border:none;background:none}

/* ── prihod korakov rezervacije ──────────────────────────────────────
   Korak, ki se pokaže brez prihoda, bere kot preskok. Osem pikslov
   navzgor in nič drugega. */
#s2:not([hidden]),#s3:not([hidden]),#done:not([hidden]),
#slots-wrap:not([hidden]){animation:t-prihod var(--t-prihod) var(--hitro) both}
@keyframes t-prihod{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ── znak Termine na profilu brez fotografije ────────────────────────
   Kjer ponudnik ni naložil slike, ne stoji ne praznina ne založniška
   fotografija, ampak znak Termine. Utrip je počasen — 6,4 s na cikel —
   ker je to ploskev, ki čaka na sliko, in ne obvestilo. Znak sedi v
   ZGORNJI tretjini polja, ker spodnjo polovico pokrije ploščica z imenom.

   Prepoved zank iz CGP velja za signal kot DOGODEK; ploskev, ki čaka, se
   ne zgodi enkrat. */
.p-signal{
  position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);
  width:132px;height:132px;overflow:visible;pointer-events:none;
}
.pfoto.ima .p-signal{display:none}
.p-signal .rip,.p-signal .pika,.p-signal .obroc{
  transform-box:fill-box;transform-origin:center;
}
.p-signal .pika{fill:var(--medenina)}
.p-signal .obroc,.p-signal .rip{stroke:var(--medenina)}
.p-signal .obroc{opacity:.5}
.p-signal .rip{opacity:0;animation:p-sig 6.4s cubic-bezier(.25,.6,.3,1) infinite}
.p-signal .r2{animation-delay:3.2s}
.p-signal .pika{animation:p-dih 6.4s ease-in-out infinite}
.p-signal .obroc{animation:p-obroc 6.4s ease-in-out infinite}
@keyframes p-sig{0%{transform:scale(1);opacity:0}14%{opacity:.42}100%{transform:scale(2.9);opacity:0}}
@keyframes p-dih{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes p-obroc{0%,100%{opacity:.5}50%{opacity:.72}}

/* ── zmanjšano gibanje ─────────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  .btn,.time,.pcard,.fpost,.plan{transition:none}
  .btn:active,.time:active{transform:none}
  @media (hover:hover) and (pointer:fine){.pcard:hover,.fpost:hover,.plan:hover{transform:none}}
  #s2:not([hidden]),#s3:not([hidden]),#done:not([hidden]),
  #slots-wrap:not([hidden]){animation:none}
  .p-signal .rip{animation:none;opacity:.28;transform:scale(1.6)}
  .p-signal .r2{opacity:.16;transform:scale(2.2)}
  .p-signal .pika,.p-signal .obroc{animation:none}
}

[hidden]{display:none !important}

/* ── fokusna obroba se ne animira ─────────────────────────────────────
   Blanketni `transition:.2s` je animiral tudi outline, zato se je
   fokusna obroba pojavljala 200 ms po pritisku na tabulator. Obroba
   fokusa mora biti takojšnja: uporabnik, ki tipka, ne sme čakati, da
   izve, kje je. */
:focus-visible{transition:none !important}
