/* Lokamo :: generator kodu QR do menu (/narzedzia/generator-qr-menu).
   Buduje na home.css, szablon.css i narzedzia.css (.nz-card, .nz-f, .nz-in,
   .nz-cmp, .nz-steps...). Tu tylko uklad generatora, trzy projekty wydruku
   i druk A6/A5.

   Wydruk (.gm-sheet) jest liczony w em, gdzie 1em = 1 mm na A6 (105 x 148 mm).
   Podglad ustawia font-size z szerokosci ramki (cqw), druk ustawia 1mm (A6)
   albo 148/105 mm (A5). Ten sam znacznik, te same proporcje, przewidywalny
   rozmiar kodu: 50 mm (Elegancka, Kafel) i 64 mm (Prosty) na A6. */

/* ---------- uklad karty generatora ---------- */
.gm-card{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);grid-template-rows:auto auto auto 1fr;grid-template-areas:"a p" "b p" "c p" "d p";column-gap:56px;row-gap:30px;align-items:start}
.gm-a{grid-area:a}.gm-b{grid-area:b}.gm-c{grid-area:c}.gm-d{grid-area:d}.gm-p{grid-area:p}
.gm-card .nz-l{display:block;padding:0;margin:0 0 10px;font-size:14.5px;font-weight:560;color:var(--ink)}
.gm-card fieldset{min-width:0;margin:0;padding:0;border:0}
.gm-url{font-family:var(--mono);font-size:15px}
.gm-nojs{display:none;margin-top:12px;font-size:14px;color:var(--text2)}
html:not(.js) .gm-nojs{display:block}

/* komunikaty pod polem adresu: blad (czerwony), podpowiedz poprawki, informacja */
.gm-fix{margin-top:4px}
.gm-fix[hidden]{display:none}
.gm-fix__b{min-height:44px;padding:8px 0;border:0;background:none;color:var(--cobalt-deep);font:500 14.5px/1.4 var(--font);text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer;overflow-wrap:anywhere}
.gm-fix__b:hover{color:var(--ink)}
.gm-fix__b:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px;border-radius:4px}
.gm-info{margin-top:8px;font-size:14px;line-height:1.5;color:var(--text2);overflow-wrap:anywhere}
.gm-info:empty{display:none}
.gm-info.is-warn{padding:10px 12px;border-radius:10px;background:#FFF6E6;color:#7A4300}
.gm-info a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.gm-err{overflow-wrap:anywhere}

/* ---------- wybor projektu ---------- */
.gm-proj__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gm-opt{position:relative;display:flex;flex-direction:column;gap:10px;padding:10px 10px 14px;border:1px solid #D9D9DF;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.gm-opt:hover{border-color:#A6A6AB}
.gm-opt input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.gm-opt:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.gm-opt:has(input:checked)::after{content:"";position:absolute;top:16px;right:16px;width:22px;height:22px;border-radius:50%;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}
.gm-opt:has(input:focus-visible){outline:2px solid var(--cobalt);outline-offset:2px}
.gm-opt__t b{display:block;font-size:15px;font-weight:600;letter-spacing:-.01em}
.gm-opt__t small{display:block;margin-top:3px;font-size:13px;line-height:1.4;color:var(--steel)}

/* miniatury projektow: tylko ksztalt, prawdziwy wyglad jest w podgladzie */
.gm-opt__v{position:relative;display:block;aspect-ratio:4/3;border-radius:9px;overflow:hidden;background:#F5F5F7}
.gm-opt__v i,.gm-opt__v b,.gm-opt__v s{position:absolute;display:block}
.gm-opt__v i{left:50%;width:30%;aspect-ratio:1;transform:translateX(-50%);background:#fff url("data:image/svg+xml,%3Csvg") center/100% no-repeat}
.gm-opt__v--e{background:#F7F2E8;box-shadow:inset 0 0 0 5px #F7F2E8,inset 0 0 0 6.5px #1E1A16}
.gm-opt__v--e b{left:30%;right:30%;top:17%;height:9%;border-radius:2px;background:#1E1A16}
.gm-opt__v--e s{left:40%;right:40%;top:31%;height:2px;background:#1E1A16}
.gm-opt__v--e i{top:42%}
.gm-opt__v--k{background:#fff}
.gm-opt__v--k s{inset:0 0 48% 0;background:#1F4D3A}
.gm-opt__v--k b{left:14%;width:46%;top:16%;height:9%;border-radius:2px;background:#fff}
.gm-opt__v--k i{top:38%;border-radius:2px;box-shadow:0 0 0 4px #fff,0 4px 10px rgba(13,13,15,.25)}
.gm-opt__v--p{background:#fff}
.gm-opt__v--p b{left:24%;right:24%;top:10%;height:16%;border-radius:2px;background:#0D0D0F}
.gm-opt__v--p s{left:16%;right:16%;bottom:8%;height:3px;background:#0D0D0F}
.gm-opt__v--p i{top:33%;width:40%}

/* ---------- teksty i opcje kafla ---------- */
.gm-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gm-pair .nz-f{margin-top:0}
.gm-kafel{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px 28px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.gm-kafel[hidden]{display:none}
.gm-kolory__list{display:flex;flex-wrap:wrap;gap:8px}
.gm-sw{position:relative;display:block;width:44px;height:44px;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 1px rgba(13,13,15,.12);cursor:pointer}
.gm-sw input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}
.gm-sw:has(input:checked){box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}
.gm-sw:has(input:checked)::after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.gm-sw:has(input:focus-visible){outline:2px solid var(--cobalt);outline-offset:5px}
.gm-foto__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.gm-foto__b{cursor:pointer;height:44px}
.gm-foto__row:has(input:focus-visible) .gm-foto__b{outline:2px solid var(--cobalt);outline-offset:2px}
.gm-foto .btn[hidden]{display:none}
.gm-foto .nz-btn3{height:44px}

/* ---------- pobieranie ---------- */
.gm-d__h{margin-bottom:10px}
.gm-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}
.gm-dl .btn{width:100%;padding:0 14px}
/* Wylaczony przycisk przygaszamy kolorem, nie przezroczystoscia (kontrast tekstu zostaje czytelny). */
.gm-card .btn:disabled{opacity:1;--bg:#E9E9EC;--fg:#55555B;border-color:transparent}

/* ---------- podglad ---------- */
.gm-p{display:grid;gap:18px;align-content:start;position:sticky;top:calc(var(--hdr) + 20px)}
.gm-stage{display:flex;flex-direction:column;align-items:center;padding:34px 24px 20px}
.gm-frame{container-type:inline-size;width:min(100%,292px)}
.gm-meta{margin-top:16px;font-size:13.5px;line-height:1.45;color:var(--steel);text-align:center}
.gm-meta span{display:block}
.gm-meta b{color:var(--ink);font-weight:560;white-space:nowrap}
.gm-how{padding:22px 24px;border-radius:16px;background:var(--paper)}
.gm-how h3{font-size:16px;font-weight:600;letter-spacing:-.01em}
.gm-how ol{display:grid;gap:10px;margin:12px 0 0;padding:0;list-style:none}
.gm-how li{font-size:14.5px;line-height:1.5;color:var(--text2)}
.gm-how li b{color:var(--ink);font-weight:600}

/* ---------- wydruk: wspolne ---------- */
.gm-sheet{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;aspect-ratio:105/148;overflow:hidden;font-size:calc(100cqw / 105);line-height:1.15;text-align:center;background:#fff;color:#0D0D0F;font-family:var(--font);box-shadow:0 0 0 1px rgba(13,13,15,.06),0 18px 40px -22px rgba(13,13,15,.45);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.gm-sheet p{margin:0}
.gm-sheet__top,.gm-sheet__orn,.gm-sheet__k,.gm-sheet__name{display:none}
.gm-sheet.ma-nazwe .gm-sheet__k{display:block}
.gm-sheet__head{position:relative;z-index:1;flex:none}
.gm-sheet__t{overflow-wrap:anywhere;text-wrap:balance}
.gm-sheet__qr{position:relative;z-index:1;flex:none;background:#fff;line-height:0}
.gm-sheet__code{position:relative;width:50em;height:50em}
.gm-sheet__code svg{display:block;width:100%;height:100%}
.gm-sheet__ph{position:absolute;inset:7%;display:grid;place-items:center;padding:10%;border:2px dashed #BDBDC5;border-radius:6%;font-size:3.6em;line-height:1.3;color:#5C5C62}
.gm-sheet__call{overflow-wrap:anywhere;text-wrap:balance}

/* ---------- projekt: Elegancka ---------- */
.gm-sheet--elegancka{justify-content:center;padding:13em 13em;background:#F7F2E8;color:#1E1A16}
.gm-sheet--elegancka::before,.gm-sheet--elegancka::after{content:"";position:absolute;pointer-events:none}
.gm-sheet--elegancka::before{inset:5em;border:.3em solid #1E1A16}
.gm-sheet--elegancka::after{inset:6.3em;border:.12em solid #1E1A16}
.gm-sheet--elegancka .gm-sheet__k{font:500 3em/1 var(--mono);letter-spacing:.42em;margin-right:-.42em;text-transform:uppercase;color:#5F503B}
.gm-sheet--elegancka .gm-sheet__t{max-width:7.6em;margin-top:.3em;font:600 10em/1.04 var(--font);letter-spacing:-.025em}
.gm-sheet--elegancka.dluga-nazwa .gm-sheet__t{max-width:10.6em;font-size:7.2em}
.gm-sheet--elegancka:not(.ma-nazwe) .gm-sheet__t{font-size:12em;letter-spacing:.01em;font-weight:500}
.gm-sheet--elegancka .gm-sheet__orn{display:block;position:relative;width:22em;height:.15em;margin:5.4em auto 6em;background:#1E1A16}
.gm-sheet--elegancka .gm-sheet__orn::after{content:"";position:absolute;left:50%;top:50%;width:1.9em;height:1.9em;border:.15em solid #1E1A16;background:#F7F2E8;transform:translate(-50%,-50%) rotate(45deg)}
.gm-sheet--elegancka .gm-sheet__call{max-width:15em;margin-top:1.3em;font:500 5em/1.2 var(--font);letter-spacing:-.015em}
.gm-sheet--elegancka .gm-sheet__f{margin-top:.9em;font:400 3.1em/1.3 var(--font);color:#5F503B}

/* ---------- projekt: Kafel (kolor albo zdjecie nad kodem) ---------- */
.gm-sheet--kafel{justify-content:flex-start}
.gm-sheet--kafel .gm-sheet__top{display:block;position:absolute;inset:0 0 auto;height:76em;overflow:hidden;background:var(--gm-kafel,#1B1B1E)}
.gm-sheet--kafel .gm-sheet__top img{display:block;width:100%;height:100%;object-fit:cover}
.gm-sheet--kafel.ma-foto .gm-sheet__top::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08) 20%,rgba(0,0,0,.68) 72%)}
.gm-sheet--kafel .gm-sheet__head{display:flex;flex-direction:column;justify-content:flex-end;width:100%;height:52em;padding:0 10em;text-align:left;color:#fff}
.gm-sheet--kafel .gm-sheet__k{font:500 3em/1 var(--mono);letter-spacing:.3em;text-transform:uppercase}
.gm-sheet--kafel .gm-sheet__t{margin-top:.3em;font:650 9.4em/1.04 var(--font);letter-spacing:-.025em}
.gm-sheet--kafel.dluga-nazwa .gm-sheet__t{font-size:6.8em}
.gm-sheet--kafel:not(.ma-nazwe) .gm-sheet__t{font-size:11em;letter-spacing:-.035em}
.gm-sheet--kafel .gm-sheet__qr{margin-top:5em;padding:2.6em;border-radius:3.2em;box-shadow:0 .8em 3em rgba(13,13,15,.2)}
.gm-sheet--kafel .gm-sheet__call{max-width:17em;margin-top:1.2em;font:620 5em/1.18 var(--font);letter-spacing:-.015em}
.gm-sheet--kafel .gm-sheet__f{margin-top:.7em;font:400 3.1em/1.3 var(--font);color:#45454B}

/* ---------- projekt: Prosty (stojak, lada) ---------- */
.gm-sheet--prosty{justify-content:center;padding:9em 8em 17em}
.gm-sheet--prosty .gm-sheet__t{font:760 16em/.9 var(--font);letter-spacing:-.045em;text-transform:uppercase}
.gm-sheet--prosty .gm-sheet__qr{margin-top:5em}
.gm-sheet--prosty .gm-sheet__code{width:64em;height:64em}
.gm-sheet--prosty .gm-sheet__call{max-width:15em;margin-top:.7em;font:650 5.4em/1.14 var(--font);letter-spacing:-.02em}
.gm-sheet--prosty .gm-sheet__f{margin-top:.8em;font:400 3.1em/1.3 var(--font);color:#45454B}
.gm-sheet--prosty .gm-sheet__name{display:block;position:absolute;left:7.6%;right:7.6%;bottom:4.8%;padding-top:.75em;border-top:.1em solid #0D0D0F;font:600 3.4em/1.2 var(--font);text-align:left;overflow-wrap:anywhere}
.gm-sheet--prosty .gm-sheet__name:empty{display:none}

/* ---------- druk ---------- */
.gm-druk[hidden]{display:none}
/* @page (format i margines 0) wstawia skrypt tuz przed drukiem, zeby zwykly
   druk strony zostal nietkniety. */
@media print{
  html[data-gm-druk],html[data-gm-druk] body{margin:0!important;padding:0!important;background:#fff!important;min-width:0!important}
  html[data-gm-druk] body>*:not(.gm-druk){display:none!important}
  html[data-gm-druk] .gm-druk{display:block!important;width:105mm;height:148mm;overflow:hidden}
  html[data-gm-druk="a5"] .gm-druk{width:148mm;height:210mm}
  .gm-druk .gm-sheet{width:105mm;height:148mm;aspect-ratio:auto;font-size:1mm;box-shadow:inset 0 0 0 .2mm #D9D9DF;break-inside:avoid}
  html[data-gm-druk="a5"] .gm-druk .gm-sheet{width:148mm;height:210mm;font-size:calc(148mm / 105)}
}

/* ---------- Nie masz menu online ---------- */
.gm-uklady{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin:56px 0 0;padding:0;list-style:none}
.gm-tel{margin:0}
.gm-tel__s{padding:7px;border-radius:30px;background:#0D0D0F;box-shadow:0 1px 1px rgba(13,13,15,.06),0 24px 48px -28px rgba(13,13,15,.5)}
.gm-tel__s img{display:block;width:100%;height:auto;border-radius:23px}
.gm-tel figcaption b{display:block;margin-top:20px;font-size:18px;font-weight:600;letter-spacing:-.015em}
.gm-tel figcaption span{display:block;margin-top:4px;font-size:15px;line-height:1.5;color:var(--text2)}
.gm-uklady__n{margin-top:26px;font-size:14px;line-height:1.5;color:var(--steel)}
.gm-more{margin-top:96px;align-items:start}
.gm-more__h{font-size:clamp(26px,3vw,36px);font-weight:600;letter-spacing:-.03em;line-height:1.1}
.gm-more__p{margin-top:12px;max-width:540px;font-size:17px;line-height:1.55;color:var(--text2)}

@media (max-width:999px){
  .gm-card{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:"a" "b" "p" "c" "d" "h";row-gap:30px}
  /* Na waskim ekranie instrukcja druku idzie pod przyciski, podglad zostaje przy wyborze projektu. */
  .gm-p{display:contents}
  .gm-stage{grid-area:p}
  .gm-how{grid-area:h}
  .gm-uklady{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
}
@media (max-width:640px){
  .gm-proj__list{grid-template-columns:1fr}
  .gm-opt{flex-direction:row;align-items:center;gap:14px;padding:8px 44px 8px 8px}
  .gm-opt__v{flex:none;width:84px}
  .gm-opt:has(input:checked)::after{top:50%;right:14px;transform:translateY(-50%)}
  .gm-pair{grid-template-columns:1fr}
  .gm-kafel{grid-template-columns:1fr}
  .gm-dl{grid-template-columns:1fr 1fr}
  .gm-stage{padding:26px 18px 16px}
  .gm-how{padding:20px}
  .gm-uklady{gap:28px 16px;margin-top:40px}
  .gm-tel__s{padding:5px;border-radius:24px}
  .gm-tel__s img{border-radius:19px}
  .gm-tel figcaption b{margin-top:14px;font-size:16px}
  .gm-tel figcaption span{font-size:14px}
  .gm-more{margin-top:72px}
}

/* Listy sekcji opisowych bez znacznikow przegladarki (numeracja jest w tresci). */
#jak-to-dziala .nz-steps{list-style:none}

/* Bez wiszacych pojedynczych slow w akapitach tej strony. */
main p,main li,.cta__m{text-wrap:pretty}
