/*
 * Predajná stránka Portican.
 *
 * Statická, bez zostavovania a bez cudzích zdrojov. Beží priamo z Caddy
 * na hlavnej doméne, takže nezávisí od Vendure ani od databázy: keď
 * spadne obchod, predajná stránka stojí ďalej.
 *
 * Písmo je systémové. Web font by znamenal buď cudziu doménu (a súhlas
 * s cookies), alebo o 200 kB viac pri prvom načítaní.
 */

:root {
    --ink: #0c1f1b;
    --ink-soft: #3d534e;
    --ink-faint: #6b807b;
    --papier: #fbf9f6;
    --biela: #ffffff;
    --linka: #e6e0d8;
    --zelena: #0f5c4a;
    --zelena-tmava: #0a4438;
    --koral: #e07a5f;
    --koral-svetly: #fdf1ec;
    --zlta: #f2cc8f;

    --r: 14px;
    --r-s: 8px;
    --sirka: 1140px;
    --tien: 0 1px 2px rgba(12, 31, 27, .04), 0 8px 24px rgba(12, 31, 27, .06);
    --tien-vyssi: 0 2px 4px rgba(12, 31, 27, .05), 0 18px 48px rgba(12, 31, 27, .10);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--papier);
    color: var(--ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { line-height: 1.15; letter-spacing: -.02em; margin: 0 0 .5em; font-weight: 650; }
h1 { font-size: clamp(2.4rem, 5.5vw, 4rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.6rem); letter-spacing: -.03em; }
h3 { font-size: 1.18rem; }
p  { margin: 0 0 1em; }
a  { color: var(--zelena); }

.obal { max-width: var(--sirka); margin: 0 auto; padding: 0 24px; }
.uzky { max-width: 760px; }

section { padding: clamp(64px, 9vw, 120px) 0; }
/* Hlavička je prilepená, takže cieľ kotvy by skončil pod ňou a nadpis
   sekcie by bol neviditeľný. */
section[id] { scroll-margin-top: 84px; }
section + section { padding-top: 0; }

.nadpis-sekcie { max-width: 720px; margin-bottom: 48px; }
.nadpis-sekcie p { color: var(--ink-soft); font-size: 1.1rem; margin: 0; }

.stitok {
    display: inline-block;
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--zelena);
    background: rgba(15, 92, 74, .09);
    padding: 5px 11px;
    border-radius: 100px;
    margin-bottom: 18px;
}
.stitok.coskoro { color: #9a5b18; background: rgba(242, 204, 143, .34); }
.stitok.sluzba  { color: #a2452c; background: var(--koral-svetly); }

/* ── hlavička ─────────────────────────────────────────────── */
header {
    position: sticky; top: 0; z-index: 50;
    background: rgba(251, 249, 246, .86);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid transparent;
    transition: border-color .2s;
}
header.pri-scrollovani { border-bottom-color: var(--linka); }
header .obal { display: flex; align-items: center; gap: 32px; height: 68px; }

.logo { font-weight: 700; font-size: 1.22rem; letter-spacing: -.03em; color: var(--ink); text-decoration: none; display: flex; align-items: center; gap: 9px; }
.logo-znak {
    width: 26px; height: 26px; border-radius: 7px; flex: none;
    background: linear-gradient(140deg, var(--zelena) 0%, #1c8069 70%, var(--zlta) 190%);
}

nav.hlavne { margin-left: auto; display: flex; gap: 26px; align-items: center; }
nav.hlavne a { color: var(--ink-soft); text-decoration: none; font-size: .95rem; font-weight: 500; }
nav.hlavne a:hover { color: var(--ink); }

/* Na mobile sa odkazy nezmestia vedľa seba, ale tlačidlo zmiznúť nesmie:
   je to jediná výzva k akcii, ktorá je vidieť po celý čas listovania.
   Odkazy sa presunú do pásu pod hlavičkou, ktorý sa dá posúvať prstom. */
.mobilne-odkazy { display: none; }
@media (max-width: 900px) {
    header .obal { gap: 14px; }
    nav.hlavne { gap: 0; }
    nav.hlavne a:not(.tlacidlo) { display: none; }
    nav.hlavne .tlacidlo { padding: 10px 17px; font-size: .92rem; }
    .mobilne-odkazy {
        display: flex; gap: 20px;
        overflow-x: auto; scrollbar-width: none;
        padding: 0 24px 11px;
        max-width: var(--sirka); margin: 0 auto;
        -webkit-overflow-scrolling: touch;
    }
    .mobilne-odkazy::-webkit-scrollbar { display: none; }
    .mobilne-odkazy a {
        color: var(--ink-soft); text-decoration: none;
        font-size: .9rem; font-weight: 500; white-space: nowrap;
    }
    /* Hlavička je o pás vyššia, kotvy musia odskočiť nižšie. */
    section[id] { scroll-margin-top: 116px; }
}

.tlacidlo {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 22px; border-radius: 100px;
    font-weight: 600; font-size: .97rem; text-decoration: none;
    border: 1px solid transparent; cursor: pointer; white-space: nowrap;
    transition: transform .12s ease, box-shadow .2s ease, background .2s;
}
.tlacidlo:active { transform: translateY(1px); }
.tlacidlo.hlavne { background: var(--zelena); color: #fff; box-shadow: 0 6px 18px rgba(15, 92, 74, .22); }
.tlacidlo.hlavne:hover { background: var(--zelena-tmava); }
.tlacidlo.vedlajsie { background: var(--biela); color: var(--ink); border-color: var(--linka); }
.tlacidlo.vedlajsie:hover { border-color: var(--ink-faint); }
.tlacidlo.velke { padding: 15px 30px; font-size: 1.03rem; }

/* ── hero ─────────────────────────────────────────────────── */
.hero { padding-top: clamp(56px, 8vw, 96px); position: relative; overflow: hidden; }
.hero::before {
    content: ""; position: absolute; inset: -20% -10% auto -10%; height: 620px; z-index: -1;
    background:
        radial-gradient(52% 60% at 18% 8%, rgba(15, 92, 74, .10), transparent 62%),
        radial-gradient(40% 50% at 88% 0%, rgba(224, 122, 95, .13), transparent 60%);
}
.hero h1 { max-width: 15ch; }
.hero .perex { font-size: clamp(1.08rem, 1.7vw, 1.32rem); color: var(--ink-soft); max-width: 60ch; margin-bottom: 32px; }
.hero-akcie { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.hero-poznamka { color: var(--ink-faint); font-size: .92rem; margin: 18px 0 0; }

.dokazy { display: flex; flex-wrap: wrap; gap: 10px 34px; margin-top: 56px; padding-top: 30px; border-top: 1px solid var(--linka); }
.dokaz { display: flex; align-items: baseline; gap: 9px; font-size: .95rem; color: var(--ink-soft); }
.dokaz b { color: var(--ink); font-size: 1.28rem; font-weight: 650; letter-spacing: -.02em; }

/* ── mriežky ──────────────────────────────────────────────── */
.mriezka { display: grid; gap: 20px; }
.mriezka.dva  { grid-template-columns: repeat(2, 1fr); }
.mriezka.tri  { grid-template-columns: repeat(3, 1fr); }
.mriezka.styri{ grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .mriezka.tri, .mriezka.styri { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .mriezka.dva, .mriezka.tri, .mriezka.styri { grid-template-columns: 1fr; } }

.karta {
    background: var(--biela);
    border: 1px solid var(--linka);
    border-radius: var(--r);
    padding: 26px;
    box-shadow: var(--tien);
}
.karta h3 { margin-bottom: .4em; }
.karta p { color: var(--ink-soft); font-size: .96rem; margin: 0; }
.karta .ikona { font-size: 1.5rem; line-height: 1; margin-bottom: 14px; display: block; }

.karta.zvyraznena { border-color: rgba(15, 92, 74, .35); box-shadow: var(--tien-vyssi); }

/* ── funkcie ──────────────────────────────────────────────── */
.funkcia { display: flex; gap: 14px; padding: 18px 0; border-bottom: 1px solid var(--linka); }
.funkcia:last-child { border-bottom: 0; }
.funkcia .znak { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .72rem; font-weight: 700; margin-top: 3px; }
.funkcia .znak.je   { background: rgba(15, 92, 74, .12); color: var(--zelena); }
.funkcia .znak.bude { background: rgba(242, 204, 143, .45); color: #8a5410; }
.funkcia h4 { margin: 0 0 3px; font-size: 1.02rem; font-weight: 620; }
.funkcia p  { margin: 0; color: var(--ink-soft); font-size: .94rem; }

/* ── ukážky šablón ────────────────────────────────────────── */
.prepinac { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.prepinac button {
    font: inherit; font-size: .93rem; font-weight: 550;
    padding: 9px 17px; border-radius: 100px; cursor: pointer;
    background: var(--biela); border: 1px solid var(--linka); color: var(--ink-soft);
    transition: all .15s;
}
.prepinac button:hover { border-color: var(--ink-faint); color: var(--ink); }
.prepinac button[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

.ukazka { display: none; }
.ukazka[data-aktivna] { display: block; }

.okno {
    border: 1px solid var(--linka); border-radius: var(--r); overflow: hidden;
    background: var(--biela); box-shadow: var(--tien-vyssi);
}
.okno-lista {
    display: flex; align-items: center; gap: 7px;
    padding: 11px 15px; border-bottom: 1px solid var(--linka); background: #f4f1ec;
}
.okno-lista i { width: 10px; height: 10px; border-radius: 50%; background: #d9d2c8; display: block; }
.okno-adresa {
    margin-left: 10px; font-size: .78rem; color: var(--ink-faint);
    background: var(--biela); border-radius: 100px; padding: 3px 12px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* obchod v ukážke, farby dodá trieda odvetvia */
.obchod { --o-primar: #0f5c4a; --o-akcent: #eef4f0; --o-pismo: inherit; }
.obchod-hlavicka { display: flex; align-items: center; gap: 18px; padding: 16px 22px; border-bottom: 1px solid var(--linka); }
.obchod-logo { font-weight: 700; letter-spacing: -.02em; color: var(--o-primar); font-size: 1.05rem; font-family: var(--o-pismo); }
.obchod-menu { display: flex; gap: 15px; font-size: .82rem; color: var(--ink-soft); flex-wrap: wrap; }
.obchod-kosik { margin-left: auto; flex: none; font-size: .8rem; background: var(--o-primar); color: #fff; padding: 5px 13px; border-radius: 100px; white-space: nowrap; }

/* Na mobile sa menu ukážky lámalo na päť riadkov a hlavička obchodu bola
   vyššia než celý jeho obsah. Skutočný obchod na tejto šírke kategórie
   posúva do strany, ukážka má vyzerať rovnako. */
@media (max-width: 680px) {
    .obchod-hlavicka { gap: 12px; padding: 13px 16px; }
    .obchod-logo { flex: none; }
    .obchod-menu {
        flex: 1 1 auto; min-width: 0;
        flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 13px;
    }
    .obchod-menu::-webkit-scrollbar { display: none; }
    .obchod-menu span { white-space: nowrap; }
    .obchod-hero { padding: 26px 16px; }
    .obchod-produkty { padding: 16px; gap: 12px; }
}
.obchod-hero { padding: 34px 22px; background: var(--o-akcent); }
.obchod-hero h4 { font-size: 1.5rem; margin: 0 0 6px; letter-spacing: -.02em; font-family: var(--o-pismo); }
.obchod-hero p { margin: 0; color: var(--ink-soft); font-size: .9rem; }
.obchod-produkty { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; padding: 22px; }
@media (max-width: 680px) { .obchod-produkty { grid-template-columns: repeat(2, 1fr); } }
.produkt-obrazok { aspect-ratio: 1; border-radius: var(--r-s); display: grid; place-items: center; font-size: clamp(2.4rem, 4.5vw, 3.4rem); line-height: 1; }
.produkt-nazov { font-size: .8rem; margin: 8px 0 2px; line-height: 1.3; }
.produkt-cena { font-size: .82rem; font-weight: 650; color: var(--o-primar); }

.popis-sablony { margin-top: 20px; display: flex; gap: 26px; flex-wrap: wrap; }
.popis-sablony div { flex: 1 1 200px; }
.popis-sablony h4 { margin: 0 0 4px; font-size: .95rem; }
.popis-sablony p { margin: 0; font-size: .89rem; color: var(--ink-soft); }

/* ── porovnanie ───────────────────────────────────────────── */
.tabulka-obal { overflow-x: auto; border: 1px solid var(--linka); border-radius: var(--r); background: var(--biela); }
table { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 720px; font-size: .93rem; }

/* Na mobile sa tabuľka posúva do strany a názov riadka by ušiel z obrazovky.
   Prilepený prvý stĺpec drží kontext: bez neho čitateľ vidí tri stĺpce
   odpovedí a nevie, na akú otázku. */
.tabulka-posun { display: none; }
@media (max-width: 760px) {
    .tabulka-posun {
        display: block; font-size: .84rem; color: var(--ink-faint);
        margin: -30px 0 14px;
    }
    table thead th:first-child,
    table tbody td:first-child {
        position: sticky; left: 0; z-index: 1;
        background: var(--biela);
        box-shadow: 1px 0 0 var(--linka);
    }
    table thead th:first-child { min-width: 168px !important; background: #f4f1ec; }
}
th, td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--linka); vertical-align: top; }
thead th { background: #f4f1ec; font-weight: 620; font-size: .84rem; letter-spacing: .02em; }
tbody tr:last-child td { border-bottom: 0; }
td.nase { background: rgba(15, 92, 74, .045); font-weight: 550; }
th.nase { background: rgba(15, 92, 74, .12); color: var(--zelena); }
.ano { color: var(--zelena); font-weight: 700; }
.nie { color: #b4544a; }
.ciastocne { color: #9a5b18; }

/* ── cenník ───────────────────────────────────────────────── */
.cennik { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: start; }
@media (max-width: 900px) { .cennik { grid-template-columns: 1fr; } }
.tarifa { background: var(--biela); border: 1px solid var(--linka); border-radius: var(--r); padding: 28px; box-shadow: var(--tien); }
.tarifa.odporucana { border-color: var(--zelena); box-shadow: var(--tien-vyssi); position: relative; }
.tarifa.odporucana::after {
    content: "Najčastejšia voľba"; position: absolute; top: -11px; left: 28px;
    background: var(--zelena); color: #fff; font-size: .72rem; font-weight: 600;
    padding: 3px 12px; border-radius: 100px; letter-spacing: .03em;
}
.cena { font-size: 2.3rem; font-weight: 680; letter-spacing: -.03em; margin: 10px 0 2px; }
.cena small { font-size: .95rem; font-weight: 500; color: var(--ink-faint); letter-spacing: 0; }
.tarifa ul { list-style: none; padding: 0; margin: 20px 0 24px; }
.tarifa li { padding: 7px 0 7px 26px; position: relative; font-size: .94rem; color: var(--ink-soft); }
.tarifa li::before { content: "✓"; position: absolute; left: 0; color: var(--zelena); font-weight: 700; }

.upozornenie {
    background: rgba(242, 204, 143, .22);
    border: 1px solid rgba(242, 204, 143, .8);
    border-radius: var(--r-s);
    padding: 16px 18px; font-size: .92rem; color: #6d4a12; margin-top: 26px;
}
.upozornenie b { color: #4d340b; }

/* ── faq ──────────────────────────────────────────────────── */
details {
    background: var(--biela); border: 1px solid var(--linka);
    border-radius: var(--r-s); padding: 16px 20px; margin-bottom: 10px;
}
details[open] { box-shadow: var(--tien); }
summary { cursor: pointer; font-weight: 580; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; color: var(--ink-faint); font-size: 1.3rem; line-height: 1; flex: none; }
details[open] summary::after { content: "−"; }
details p { margin: 12px 0 0; color: var(--ink-soft); font-size: .95rem; }

/* ── výzva a päta ─────────────────────────────────────────── */
.vyzva {
    background: var(--ink); color: #e9f0ed; border-radius: 22px;
    padding: clamp(40px, 6vw, 68px); text-align: center;
    background-image: radial-gradient(60% 80% at 50% -10%, rgba(15, 92, 74, .55), transparent 65%);
}
.vyzva h2 { color: #fff; }
.vyzva p { color: #a9bcb6; max-width: 54ch; margin: 0 auto 28px; }
.vyzva .tlacidlo.vedlajsie { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .3); }

/* Bez margin-top: sekcia nad pätičkou má vlastné spodné odsadenie a keď
   sa obe sčítali, ostal medzi výzvou a pätičkou pás prázdna cez pol
   obrazovky. */
footer { border-top: 1px solid var(--linka); padding: 44px 0 60px; }
.footer-obsah { display: flex; gap: 40px; flex-wrap: wrap; justify-content: space-between; }
footer p, footer a { font-size: .9rem; color: var(--ink-faint); }
footer a { text-decoration: none; }
footer a:hover { color: var(--ink); }
.footer-odkazy { display: flex; gap: 22px; flex-wrap: wrap; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; }
}
