:root{
  --paper:#f6f7fa;      /* výkresový papier, chladná biela */
  --paper-2:#eef0f5;
  --grid:#e2e6ee;       /* jemná rysovacia mriežka */
  --line:#1b2132;       /* tuha, steny */
  --line-2:#59627a;     /* kóty, vedľajšie čiary */
  --hair:#c8cedb;
  --navy:#26276f;       /* EXPIS modrá, jediná farba */
  --navy-soft:#e4e5f3;
  --on-navy:#ffffff;
  --ok:#1f6b45;--err:#a8241b;
  --shadow:27 33 50;
  --r:12px;
  --font:"Archivo",system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-scheme]){ /* modrotlač, keď si návštevník nevybral farebný variant */
    --paper:#101536;--paper-2:#151b42;--grid:#1d2552;--line:#e3e8ff;--line-2:#a9b3dc;--hair:#3a4479;
    --navy:#b9bfff;--navy-soft:#232c63;--on-navy:#101536;--ok:#8fe0b4;--err:#ff9d93;--shadow:0 0 0;color-scheme:dark;
  }
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font);font-size:1.0625rem;line-height:1.6;color:var(--line);background:var(--paper);font-stretch:100%;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
::selection{background:var(--navy);color:var(--on-navy)}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
section[id]{scroll-margin-top:84px}
.wrap{width:min(1220px,100% - 2rem);margin-inline:auto}
h1,h2,h3{font-weight:700;line-height:1.05;letter-spacing:-.02em;text-wrap:balance;font-stretch:112%}
h2{font-size:clamp(2rem,4vw,3rem)}
p{text-wrap:pretty}
.num{font-variant-numeric:tabular-nums}
.skip{position:absolute;left:-999px;top:8px;background:var(--navy);color:var(--on-navy);padding:8px 14px;z-index:100}
.skip:focus{left:8px}

/* rysovacia mriežka ako podklad výkresu */
.drafting{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px}

/* ---------- hlavička ---------- */
.hdr{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 94%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--hair)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:72px}
.brand img{height:44px;width:auto}
.brand .w{display:none}
@media (prefers-color-scheme:dark){:root:not([data-scheme=light]) .brand .n{display:none}:root:not([data-scheme=light]) .brand .w{display:block}}
:root[data-scheme=dark] .brand .n{display:none}:root[data-scheme=dark] .brand .w{display:block}
.nav{display:flex;align-items:center;gap:1.7rem;font-weight:500}
.nav a{text-decoration:none}
.nav a:not(.btn):hover{text-decoration:underline}
.nav .tel{font-weight:700;font-variant-numeric:tabular-nums}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 1rem/1 var(--font);padding:.95rem 1.35rem;border:1.5px solid var(--navy);text-decoration:none;cursor:pointer;white-space:nowrap;border-radius:4px;transition:background-color .2s,color .2s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn-main{background:var(--navy);color:var(--on-navy)}
.btn-main:hover{background:color-mix(in srgb,var(--navy) 84%,#000)}
@media (prefers-color-scheme:dark){:root:not([data-scheme=light]) .btn-main:hover{background:color-mix(in srgb,var(--navy) 80%,#fff)}}
:root[data-scheme=dark] .btn-main:hover{background:color-mix(in srgb,var(--navy) 80%,#fff)}
.btn-line{background:transparent;color:var(--navy)}
.btn-line:hover{background:var(--navy-soft)}
.burger{display:none;background:none;border:0;color:var(--line);width:44px;height:44px;cursor:pointer}
.burger svg{width:26px;height:26px}
@media (max-width:980px){
  .burger{display:grid;place-items:center}
  .nav{position:fixed;inset:72px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);padding:.5rem 1rem 1.2rem;border-bottom:1px solid var(--hair);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s,transform .25s,visibility .25s}
  .nav.open{opacity:1;visibility:visible;transform:none}
  .nav a{padding:.9rem .2rem;border-bottom:1px solid var(--grid);font-size:1.1rem}
  .nav .btn{margin-top:1rem}
}

/* ---------- úvod: výkres ---------- */
.hero{padding:3rem 0 4.5rem;border-bottom:1px solid var(--hair)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,5.4fr) minmax(0,6.6fr);gap:3rem;align-items:center}
.hero h1{font-size:clamp(2.3rem,3.6vw,3.35rem);margin-bottom:1.25rem}
.hero .lead{font-size:1.2rem;color:var(--line-2);max-width:40ch;margin-bottom:1.8rem}
.hero .facts{list-style:none;display:grid;gap:.6rem;margin-bottom:2rem}
.hero .facts li{display:flex;gap:.7rem;align-items:baseline}
.hero .facts li::before{content:"";flex:none;width:16px;height:1.5px;background:var(--navy);transform:translateY(-.3em)}
.hero .ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.sheet{background:var(--paper);border:1.5px solid var(--line);padding:10px}
.sheet-in{border:1px solid var(--line);display:grid;grid-template-rows:auto auto}
.sheet svg.plan{display:block;width:100%;height:auto}
.plan .wall{fill:none;stroke:var(--line);stroke-width:7;stroke-linecap:square}
.plan .iwall{fill:none;stroke:var(--line);stroke-width:3.5;stroke-linecap:square}
.plan .win{fill:none;stroke:var(--line);stroke-width:1.2}
.plan .win-bg{fill:var(--paper);stroke:none}
.plan .door{fill:none;stroke:var(--line-2);stroke-width:1.1}
.plan .room{fill:transparent;transition:fill .5s}
.plan .room.on{fill:var(--navy-soft)}
.plan .rl{font:700 11px var(--font);fill:var(--line);letter-spacing:.02em}
.plan .ra{font:400 10px var(--font);fill:var(--line-2);font-variant-numeric:tabular-nums}
.plan .dim{stroke:var(--line-2);stroke-width:.8;fill:none}
.plan .dt{font:500 9.5px var(--font);fill:var(--line-2);font-variant-numeric:tabular-nums}
.plan .rail{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:3 3}
.plan .north{fill:none;stroke:var(--line);stroke-width:1.2}
/* kreslenie pri načítaní */
@media (prefers-reduced-motion:no-preference){
  .plan .draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw 1.6s cubic-bezier(.65,0,.35,1) forwards;animation-delay:var(--d,0s)}
  .plan .fade{opacity:0;animation:fade .6s ease-out forwards;animation-delay:var(--d,1.4s)}
  .tblock{opacity:0;animation:fade .7s ease-out 1.6s forwards}
}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}

/* pečiatka výkresu = žiadosť o ocenenie */
.tblock{display:grid;grid-template-columns:1.1fr 1.3fr 1.2fr 1.1fr auto;border-top:1px solid var(--line)}
.tblock > *{border-left:1px solid var(--line);padding:.55rem .7rem .6rem;display:grid;align-content:start;gap:.15rem;min-width:0}
.tblock > :first-child{border-left:0}
.tblock .cap{font-size:.72rem;color:var(--line-2);font-weight:500}
.tblock .meta strong{font-size:.95rem;font-stretch:120%}
.tblock .meta span{font-size:.78rem;color:var(--line-2)}
.tblock select,.tblock input{font:500 .98rem var(--font);color:var(--line);background:transparent;border:0;border-bottom:1px dashed var(--line-2);padding:.25rem 0;width:100%;border-radius:0}
.tblock select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2359627a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;background-size:16px;padding-right:1.2rem}
.tblock select option{background:var(--paper);color:var(--line)}
.tblock input:focus,.tblock select:focus{outline:none;border-bottom:1.5px solid var(--navy)}
.tblock input::placeholder{color:var(--line-2);opacity:.85}
.tblock .act{padding:0;border-left:1px solid var(--line);display:flex}
.tblock .act .btn{flex:1;align-self:stretch;height:auto;border:0;border-radius:0;padding:0 1.2rem;font-size:.98rem}
.tblock .bad{border-bottom-color:var(--err)!important}
.tstatus{grid-column:1/-1;border-left:0!important;border-top:1px solid var(--line);font-weight:600;font-size:.95rem;padding:.6rem .7rem}
.tstatus:empty{display:none}
.tstatus.ok{color:var(--ok)}.tstatus.bad{color:var(--err)}
@media (max-width:1100px){.tblock{grid-template-columns:1fr 1fr}.tblock .meta{grid-column:1/-1;border-left:0}.tblock > :nth-child(2){border-left:0}.tblock > *{border-top:1px solid var(--line)}.tblock > :first-child{border-top:0}.tblock .act{grid-column:1/-1;border-left:0}.tblock .act .btn{width:100%;padding:1rem}.tblock > :nth-child(4){border-left:1px solid var(--line)}}
@media (max-width:980px){.hero{padding-top:1.5rem}.hero .wrap{grid-template-columns:1fr;gap:2rem}}

/* ---------- sekcie ---------- */
.sec{padding:6rem 0}
.sec-head{max-width:680px;margin-bottom:3rem}
.sec-head p{color:var(--line-2);font-size:1.12rem;margin-top:1rem;max-width:58ch}

/* ---------- postup ako kótovacia reťaz ---------- */
.chain{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1rem}
.chain::before{content:"";position:absolute;left:0;right:0;top:22px;border-top:1px solid var(--line-2)}
.chain li{list-style:none;position:relative;padding:3.2rem 1.6rem 0 0}
.chain li::before{content:"";position:absolute;left:0;top:10px;height:24px;border-left:1px solid var(--line-2)}
.chain li::after{content:"";position:absolute;left:-5px;top:17px;width:10px;height:10px;border-top:1px solid var(--line-2);transform:rotate(-45deg)}
.chain li:last-child{padding-right:0}
.chain .k{position:absolute;left:12px;top:0;font-size:.85rem;font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums;background:var(--paper);padding:0 .4rem}
.chain h3{font-size:1.3rem;margin-bottom:.45rem;font-stretch:108%}
.chain p{color:var(--line-2);font-size:1rem}
.chain-end{position:absolute;right:0;top:10px;height:24px;border-left:1px solid var(--line-2)}
@media (max-width:860px){.chain{grid-template-columns:1fr}.chain::before{left:22px;right:auto;top:0;bottom:0;border-top:0;border-left:1px solid var(--line-2)}.chain li{padding:0 0 2.2rem 3.4rem}.chain li::before,.chain li::after,.chain-end{display:none}.chain .k{left:0;top:0;width:44px;text-align:center;padding:.2rem 0;border:1px solid var(--line-2)}}

/* ---------- služby ako pôdorys bytu ---------- */
.svc{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:2.5rem;align-items:start}
.rooms{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(118px,auto);gap:3px;background:var(--line);border:7px solid var(--line)}
.rm{position:relative;background:var(--paper);border:0;text-align:left;color:var(--line);padding:1rem 1.1rem;cursor:pointer;font:inherit;display:flex;flex-direction:column;justify-content:space-between;gap:.6rem;transition:background-color .35s,color .35s}
.rm:hover{background:var(--navy-soft)}
.rm[aria-pressed="true"]{background:var(--navy);color:var(--on-navy)}
.rm h3{font-size:1.15rem;font-stretch:110%}
.rm .sub{font-size:.9rem;opacity:.8;line-height:1.35}
.rm .ar{font-size:.8rem;font-weight:600;font-variant-numeric:tabular-nums;opacity:.75}
.rm .dr{position:absolute;width:30px;height:30px;border:1px solid currentColor;border-color:currentColor transparent transparent currentColor;border-radius:30px 0 0 0;opacity:.35;pointer-events:none}
.rm .in{display:none}
.r1{grid-column:span 7;grid-row:span 2}.r2{grid-column:span 5}.r3{grid-column:span 5}
.r4{grid-column:span 4}.r5{grid-column:span 4}.r6{grid-column:span 4}.r7{grid-column:span 12;min-height:96px}
.legend{position:sticky;top:96px;border:1.5px solid var(--line);padding:1.5rem;background:var(--paper)}
.legend .cap{font-size:.8rem;color:var(--line-2);font-weight:600;margin-bottom:.6rem}
.legend h3{font-size:1.6rem;margin-bottom:.8rem}
.legend ul,.rm .in ul{list-style:none;display:grid;gap:.5rem}
.legend li,.rm .in li{position:relative;padding-left:1.3rem}
.legend li::before,.rm .in li::before{content:"";position:absolute;left:0;top:.72em;width:.75rem;border-top:1px solid currentColor}
.legend .who{margin-top:1.1rem;padding-top:1rem;border-top:1px dashed var(--hair);font-size:.95rem;color:var(--line-2)}
@media (max-width:980px){
  .svc{grid-template-columns:1fr}.legend{display:none}
  .rooms{grid-template-columns:1fr 1fr}.r1,.r7{grid-column:span 2}.r1{grid-row:auto}.r2,.r3,.r4,.r5,.r6{grid-column:span 1}
  .rm[aria-pressed="true"]{grid-column:1/-1}
  .rm[aria-pressed="true"] .in{display:block;font-size:.95rem;margin-top:.4rem}
}
@media (max-width:520px){.rooms{grid-template-columns:1fr}.rm{grid-column:auto!important}}

/* ---------- ponuka: listy výkresov ---------- */
.offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.offer{display:flex;flex-direction:column;border:1.5px solid var(--line);background:var(--paper);text-decoration:none;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.offer:hover{transform:translateY(-3px);box-shadow:0 22px 40px -30px rgb(var(--shadow) / .6)}
.offer .ph{aspect-ratio:4/3;overflow:hidden;border-bottom:1.5px solid var(--line);background:var(--paper-2)}
.offer .ph img{width:100%;height:100%;object-fit:cover}
.offer .tt{padding:1rem 1.1rem .9rem;flex:1}
.offer .kind{font-size:.85rem;font-weight:700;color:var(--navy)}
.offer h3{font-size:1.15rem;margin:.25rem 0 .2rem;font-stretch:104%;line-height:1.2}
.offer .loc{font-size:.95rem;color:var(--line-2)}
.offer dl{display:grid;grid-template-columns:1fr 1fr 1.4fr;border-top:1px solid var(--line)}
.offer dl div{padding:.55rem .8rem;border-left:1px solid var(--line)}
.offer dl div:first-child{border-left:0}
.offer dt{font-size:.72rem;color:var(--line-2);font-weight:500}
.offer dd{font-weight:700;font-variant-numeric:tabular-nums;font-size:1rem;white-space:nowrap}
.offer dd.p{color:var(--navy)}
.more-offers{margin-top:2rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.more-offers p{color:var(--line-2)}
@media (max-width:980px){.offers{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.offers{grid-template-columns:1fr}}

/* ---------- tím: legenda osôb ---------- */
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1.5px solid var(--line);border-left:1.5px solid var(--line)}
.person{border-right:1.5px solid var(--line);border-bottom:1.5px solid var(--line);padding:1.2rem 1.3rem 1.1rem;display:grid;gap:.15rem;align-content:start}
.person .role{font-size:.85rem;color:var(--navy);font-weight:700}
.person h3{font-size:1.2rem;font-stretch:106%;line-height:1.2}
.person .c{margin-top:.55rem;font-size:.95rem;display:grid;gap:.1rem}
.person .c a{text-decoration:none;font-variant-numeric:tabular-nums}
.person .c a:hover{text-decoration:underline}
.person .lang{margin-top:.55rem;display:flex;flex-wrap:wrap;gap:.3rem}
.person .lang span{font-size:.75rem;font-weight:600;border:1px solid var(--hair);padding:.12rem .4rem;border-radius:3px;color:var(--line-2)}
@media (max-width:980px){.team{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.team{grid-template-columns:1fr}}

/* ---------- referencie ---------- */
.refs{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:2.5rem}
.ref{border-top:1.5px solid var(--line);padding-top:1.2rem}
.ref p{font-size:1.15rem;line-height:1.5}
.ref:first-child p{font-size:1.45rem;font-stretch:104%;line-height:1.35}
.ref footer{margin-top:1rem;font-size:.92rem;color:var(--line-2)}
.ref footer strong{color:var(--line)}
@media (max-width:980px){.refs{grid-template-columns:1fr}}

/* ---------- kontakt: rohová pečiatka ---------- */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:3rem;align-items:start}
.stamp{border:1.5px solid var(--line);display:grid;grid-template-columns:1fr 1fr}
.stamp > div{padding:.9rem 1rem;border-top:1px solid var(--line);border-left:1px solid var(--line);display:grid;gap:.2rem;align-content:start;min-width:0}
.stamp > div:nth-child(-n+2){border-top:0}
.stamp > div:nth-child(odd){border-left:0}
.stamp .wide{grid-column:1/-1;border-left:0!important}
.stamp .cap{font-size:.75rem;color:var(--line-2);font-weight:500}
.stamp .v{font-weight:600}
.stamp .big{font-size:1.6rem;font-weight:700;font-stretch:115%;font-variant-numeric:tabular-nums}
.map{border:1.5px solid var(--line);aspect-ratio:16/11;background:var(--paper-2)}
.map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) contrast(1.05)}
@media (prefers-color-scheme:dark){:root:not([data-scheme=light]) .map iframe{filter:grayscale(1) invert(.92) hue-rotate(200deg) contrast(.95)}}
:root[data-scheme=dark] .map iframe{filter:grayscale(1) invert(.92) hue-rotate(200deg) contrast(.95)}
@media (max-width:980px){.contact{grid-template-columns:1fr}}

.foot{border-top:1px solid var(--hair);padding:2.5rem 0 2rem;color:var(--line-2);font-size:.92rem}
.foot .wrap{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between}

/* ===================== podstránky (pages.py, serverom skladané stránky) ===================== */
.pg-h{font-size:clamp(2.1rem,4.2vw,3.2rem);margin-bottom:1rem}
.lead-p{font-size:1.18rem;color:var(--line-2);max-width:62ch;margin-bottom:1.8rem}
.narrow{max-width:860px}
.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:3rem;align-items:start}
@media (max-width:980px){.with-aside{grid-template-columns:1fr}}
.side-cta{position:sticky;top:96px;border:1.5px solid var(--line);padding:1.3rem;display:grid;gap:.35rem;background:var(--paper)}
.side-cta .cap{font-size:.78rem;color:var(--line-2);font-weight:600}
.side-cta strong{font-size:1.15rem;font-stretch:108%}
.side-cta .big{font-size:1.5rem;font-weight:700;font-stretch:112%;text-decoration:none;font-variant-numeric:tabular-nums}
.side-cta .btn{margin-top:.8rem}
.crumbs{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.9rem;color:var(--line-2);margin-bottom:1rem}
.crumbs a{text-decoration:none}.crumbs a:hover{text-decoration:underline}
.sub-h{font-size:1.6rem;margin:3rem 0 1rem}
.prose{max-width:68ch}
.prose h2{font-size:1.45rem;margin:2.2rem 0 .7rem}
.prose h3{font-size:1.15rem;margin:1.6rem 0 .5rem}
.prose p{margin:.7rem 0;color:var(--line)}
.prose ul{list-style:none;display:grid;gap:.45rem;margin:.6rem 0}
.prose li{position:relative;padding-left:1.4rem}
.prose li::before{content:"";position:absolute;left:0;top:.75em;width:.8rem;border-top:1px solid var(--navy)}
.prose a{color:var(--navy);font-weight:600}
.legal h2{font-size:1.15rem}
.legal p{font-size:.98rem}
.note{font-size:.92rem;color:var(--line-2);margin-top:.8rem}
.muted{color:var(--line-2)}
.cta-strip{margin-top:3.5rem;padding-top:1.6rem;border-top:1px dashed var(--hair);display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center}
.cta-strip p{font-size:1.2rem;font-weight:600;font-stretch:108%}
.sec-head.row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 2rem;max-width:none}
.sec-head.row > div{max-width:640px}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:2.6rem;border-top:1.5px solid var(--line);border-left:1.5px solid var(--line)}
.tile{border-right:1.5px solid var(--line);border-bottom:1.5px solid var(--line);padding:1.2rem 1.3rem;text-decoration:none;display:grid;gap:.3rem;transition:background-color .25s}
.tile:hover{background:var(--navy-soft)}
.tile strong{font-size:1.1rem;font-stretch:108%;color:var(--navy)}
.tile span{color:var(--line-2);font-size:.95rem}
@media (max-width:860px){.tiles{grid-template-columns:1fr 1fr}}@media (max-width:520px){.tiles{grid-template-columns:1fr}}
.hero-ph{margin-bottom:1.6rem;border:1.5px solid var(--line)}
.hero-ph img{width:100%;max-height:420px;object-fit:cover}
.rm .in .more{display:none}
.legend .more{display:inline-block;margin-top:1rem;color:var(--navy);font-weight:700;text-decoration:none}
.legend .more:hover{text-decoration:underline}
.svc-links{display:none}
@media (max-width:980px){.svc-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.svc-links a{border:1px solid var(--hair);padding:.45rem .8rem;border-radius:4px;text-decoration:none;font-size:.95rem}}

/* karta ponuky so srdiečkom */
.offer-w{position:relative;display:flex}
.offer-w > .offer{flex:1}
.offer-w[hidden]{display:none}
.offer .ph{position:relative}
.offer .noph{display:grid;place-items:center;height:100%;color:var(--line-2);font-size:.9rem}
.offer .flag{position:absolute;left:10px;top:10px;background:var(--navy);color:var(--on-navy);font-size:.8rem;font-weight:700;padding:.25rem .55rem;border-radius:3px}
.fav{position:absolute;right:10px;top:10px;width:40px;height:40px;border-radius:50%;border:1px solid var(--hair);background:color-mix(in srgb,var(--paper) 90%,transparent);color:var(--line);display:grid;place-items:center;cursor:pointer;transition:transform .2s,color .2s}
.fav svg{width:20px;height:20px}
.fav:hover{transform:scale(1.06)}
.fav[aria-pressed="true"]{color:var(--navy)}
.fav[aria-pressed="true"] svg{fill:currentColor}
.offer dd{overflow:hidden;text-overflow:ellipsis}
.favs{position:relative;display:grid;place-items:center;width:40px;height:40px}
.favs svg{width:22px;height:22px}
.favs .n{position:absolute;right:0;top:2px;min-width:18px;height:18px;border-radius:9px;background:var(--navy);color:var(--on-navy);font-size:.7rem;font-weight:700;display:grid;place-items:center;padding:0 4px}
.nav a[aria-current="page"]{color:var(--navy);font-weight:700}
@media (max-width:980px){.favs{width:auto;justify-content:start}}

/* filtre */
.filters{display:grid;grid-template-columns:auto repeat(5,minmax(0,1fr));gap:1rem;align-items:end;border:1.5px solid var(--line);padding:1rem;background:var(--paper);margin-bottom:1rem}
.filters label{display:grid;gap:.2rem;min-width:0}
.filters .cap{font-size:.75rem;color:var(--line-2);font-weight:600}
.filters select,.filters input{font:500 .97rem var(--font);color:var(--line);background:var(--paper);border:1px solid var(--hair);border-radius:4px;padding:.55rem .6rem;width:100%}
.filters select:focus,.filters input:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy)}
.seg{display:flex;border:1.5px solid var(--line);border-radius:4px;overflow:hidden;align-self:stretch}
.seg button{font:600 .92rem var(--font);border:0;background:transparent;color:var(--line);padding:.55rem .85rem;cursor:pointer;border-left:1px solid var(--hair);white-space:nowrap}
.seg button:first-child{border-left:0}
.seg button[aria-pressed="true"]{background:var(--navy);color:var(--on-navy)}
.count{color:var(--line-2);margin-bottom:1.2rem;font-variant-numeric:tabular-nums}
.empty-state{border:1.5px dashed var(--hair);padding:2rem;margin-top:1rem;display:grid;gap:.8rem;justify-items:start}
.empty-state[hidden]{display:none}
.empty-state h2{font-size:1.4rem}
@media (max-width:1180px){.filters{grid-template-columns:repeat(3,minmax(0,1fr))}.seg{grid-column:1/-1}}
@media (max-width:600px){.filters{grid-template-columns:1fr 1fr}.seg{overflow-x:auto}}

/* detail ponuky */
.detail{padding:2rem 0 5rem}
.d-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem 3rem;align-items:end;margin-bottom:1.4rem}
.d-head .kind{color:var(--navy);font-weight:700;font-size:.92rem}
.d-head h1{font-size:clamp(1.8rem,3.2vw,2.6rem);margin:.3rem 0}
.d-head .addr{color:var(--line-2)}
.d-price{text-align:right;display:grid;gap:.2rem;justify-items:end}
.d-price .cap{font-size:.8rem;color:var(--line-2)}
.d-price strong{font-size:clamp(1.6rem,3vw,2.3rem);font-stretch:112%;color:var(--navy);font-variant-numeric:tabular-nums}
.d-acts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem;justify-content:end}
.d-acts .btn{padding:.55rem .85rem;font-size:.9rem}
.fav-btn[aria-pressed="true"]{background:var(--navy);color:var(--on-navy)}
@media (max-width:860px){.d-head{grid-template-columns:1fr}.d-price{text-align:left;justify-items:start}.d-acts{justify-content:start}}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:6px;margin-bottom:2rem;border:1.5px solid var(--line);padding:6px;background:var(--paper)}
.gal button{border:0;padding:0;cursor:zoom-in;position:relative;overflow:hidden;background:var(--paper-2)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.gal button:hover img{transform:scale(1.03)}
.gal .g0{grid-row:span 2}
.gal .more{position:absolute;inset:0;display:grid;place-items:center;background:rgb(16 21 54 / .55);color:#fff;font-weight:700;font-size:1.1rem}
.gal.one{grid-template-columns:1fr;grid-template-rows:440px}
@media (max-width:760px){.gal{grid-template-columns:1fr 1fr;grid-template-rows:240px 120px 120px}.gal .g0{grid-column:1/-1;grid-row:auto}.gal .g3,.gal .g4{display:none}}
.d-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:3rem;align-items:start}
@media (max-width:980px){.d-grid{grid-template-columns:1fr}}
.keyfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));border:1.5px solid var(--line);margin-bottom:2rem}
.keyfacts div{padding:.8rem 1rem;border-left:1px solid var(--line)}
.keyfacts div:first-child{border-left:0}
.keyfacts dt{font-size:.75rem;color:var(--line-2);font-weight:600}
.keyfacts dd{font-weight:700;font-size:1.1rem;font-variant-numeric:tabular-nums}
.d-sec{margin-bottom:2.6rem}
.d-sec > h2{font-size:1.35rem;margin-bottom:.8rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}
.tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.tags span{font-size:.85rem;border:1px solid var(--hair);padding:.2rem .55rem;border-radius:3px;color:var(--line-2)}
.spec{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.spec div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .8rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.spec dt{color:var(--line-2)}
.spec dd{font-weight:600;text-align:right}
@media (max-width:600px){.spec{grid-template-columns:1fr}}
.addr2{margin-bottom:.8rem;color:var(--line-2)}
.d-sec .map{aspect-ratio:16/8}
.calc-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 1.1fr;border:1.5px solid var(--line)}
.calc-g > *{padding:.8rem 1rem;border-left:1px solid var(--line);display:grid;gap:.25rem;align-content:start}
.calc-g > :first-child{border-left:0}
.calc-g .cap{font-size:.75rem;color:var(--line-2);font-weight:600}
.calc-g input{font:600 1.05rem var(--font);color:var(--line);background:transparent;border:0;border-bottom:1px dashed var(--line-2);padding:.2rem 0;width:100%}
.calc-g input:focus{outline:none;border-bottom:1.5px solid var(--navy)}
.calc-out{background:var(--navy-soft)}
.calc-out strong{font-size:1.6rem;font-stretch:112%;color:var(--navy);font-variant-numeric:tabular-nums}
.big-calc .calc-out strong{font-size:2.2rem}
@media (max-width:760px){.calc-g{grid-template-columns:1fr 1fr}.calc-g > :nth-child(3){border-left:0}.calc-g > *{border-top:1px solid var(--line)}.calc-g > :nth-child(-n+2){border-top:0}}
.d-side{position:sticky;top:96px;display:grid;gap:1.2rem}
@media (max-width:980px){.d-side{position:static}}
.broker{border:1.5px solid var(--line);padding:1.1rem 1.2rem;display:grid;gap:.2rem;background:var(--paper)}
.broker .cap{font-size:.75rem;color:var(--line-2);font-weight:600}
.broker strong{font-size:1.15rem;font-stretch:108%}
.broker .role{color:var(--navy);font-weight:600;font-size:.9rem;margin-bottom:.4rem}
.broker a{text-decoration:none}
.broker .tel{font-size:1.3rem;font-weight:700;font-variant-numeric:tabular-nums}
.sim{padding:3rem 0 0}
.sim > h2{font-size:1.5rem;margin-bottom:1.2rem}

/* formuláre */
form.req{border:1.5px solid var(--line);padding:1.3rem;display:grid;gap:.9rem;background:var(--paper)}
form.req h2{font-size:1.3rem}
form.req.wide{padding:clamp(1.2rem,3vw,2rem)}
.field{display:grid;gap:.3rem;min-width:0}
.field label{font-weight:600;font-size:.94rem}
.field input,.field select,.field textarea{font:400 1rem var(--font);color:var(--line);background:var(--paper);border:1.5px solid var(--hair);border-radius:4px;padding:.7rem .8rem;width:100%}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2359627a' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;background-size:16px;padding-right:2.2rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-soft)}
.field input::placeholder,.field textarea::placeholder{color:var(--line-2);opacity:.8}
.field .bad,.req .bad{border-color:var(--err)!important}
label.bad{color:var(--err)}
.opts{border:0;display:grid;gap:.35rem}
.opts label,.consent{display:flex;gap:.55rem;align-items:flex-start;font-size:.94rem;cursor:pointer}
.opts input,.consent input{margin-top:.25rem;accent-color:var(--navy);width:16px;height:16px;flex:none}
.consent{font-size:.86rem;color:var(--line-2)}
.consent a{color:var(--navy)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:700px){.two,.three{grid-template-columns:1fr}}
.status{font-weight:600;font-size:.95rem;min-height:1.2em}
.status:empty{display:none}
.status.ok{color:var(--ok)}.status.bad{color:var(--err)}
.btn[disabled]{opacity:.6;cursor:progress}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* lightbox */
dialog.lb{border:0;padding:0;background:transparent;max-width:min(94vw,1300px);max-height:94dvh;margin:auto;overflow:visible;overscroll-behavior:contain}
dialog.lb::backdrop{background:rgb(10 13 34 / .9)}
dialog.lb img{max-height:86dvh;max-width:94vw;width:auto;margin:auto;box-shadow:0 30px 80px rgb(0 0 0 / .5)}
.lb-x,.lb-a{position:fixed;width:48px;height:48px;border-radius:50%;border:1px solid rgb(255 255 255 / .3);background:rgb(255 255 255 / .12);color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lb-x{top:16px;right:16px}.lb-p{left:16px;top:50%}.lb-nx{right:16px;top:50%}
.lb-n{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);color:#fff;font-variant-numeric:tabular-nums}

/* tím, referencie, kariéra */
.grp-h{font-size:1.35rem;margin:2.2rem 0 1rem}
.person{display:grid;grid-template-columns:72px 1fr;gap:1rem;align-items:start}
.pp{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1.5px solid var(--line)}
.pp.mono{display:grid;place-items:center;font-weight:700;font-stretch:115%;color:var(--navy);background:var(--navy-soft)}
.person .mine{display:inline-block;margin-top:.6rem;color:var(--navy);font-weight:700;font-size:.92rem;text-decoration:none}
.person .mine:hover{text-decoration:underline}
.refs-all{display:grid;grid-template-columns:1fr 1fr;gap:2rem 3rem}
@media (max-width:860px){.refs-all{grid-template-columns:1fr}}
.jobs{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.job{border:1.5px solid var(--line);padding:1.4rem;text-decoration:none;display:grid;gap:.4rem;transition:background-color .25s}
.job:hover{background:var(--navy-soft)}
.job .cap{font-size:.78rem;color:var(--line-2);font-weight:600}
.job h2{font-size:1.4rem}
.job .go{color:var(--navy);font-weight:700}
@media (max-width:700px){.jobs{grid-template-columns:1fr}}
.team-teaser .tt-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:3rem;align-items:start}
.team-teaser p{color:var(--line-2);margin:1rem 0 1.4rem;max-width:44ch}
.tt-list{list-style:none;display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1.5px solid var(--line);border-left:1.5px solid var(--line)}
.tt-list li{border-right:1.5px solid var(--line);border-bottom:1.5px solid var(--line);padding:.9rem 1rem;display:grid;gap:.1rem}
.tt-list strong{font-size:1rem;font-stretch:104%}
.tt-list span{font-size:.85rem;color:var(--navy);font-weight:600}
@media (max-width:980px){.team-teaser .tt-grid{grid-template-columns:1fr}.tt-list{grid-template-columns:1fr 1fr}}

/* home staging, partneri, video */
.hs-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1.5px solid var(--line)}
.hs-benefits span{padding:.9rem 1rem;border-left:1px solid var(--line);font-weight:600}
.hs-benefits span:first-child{border-left:0}
@media (max-width:860px){.hs-benefits{grid-template-columns:1fr 1fr}.hs-benefits span:nth-child(3){border-left:0}.hs-benefits span:nth-child(n+3){border-top:1px solid var(--line)}}
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.case button{border:1.5px solid var(--line);padding:0;cursor:zoom-in;background:#fff;display:block;width:100%}
.case img{width:100%;aspect-ratio:4/3;object-fit:cover}
.case figcaption{padding:.6rem 0;display:grid;gap:.2rem}
.case figcaption span{color:var(--line-2);font-size:.93rem}
@media (max-width:860px){.cases{grid-template-columns:1fr 1fr}}@media (max-width:520px){.cases{grid-template-columns:1fr}}
.price-sheet{display:grid;grid-template-columns:1fr 1fr;border:1.5px solid var(--line)}
.price-sheet > div{padding:1.3rem 1.4rem;display:grid;gap:.4rem;align-content:start}
.price-sheet > div + div{border-left:1.5px solid var(--line)}
.price-sheet .cap{font-size:.78rem;color:var(--line-2);font-weight:600}
.price-sheet h3{font-size:1.35rem}
.price-sheet .pr{font-size:1.05rem}
.price-sheet .pr strong{color:var(--navy);font-size:1.3rem;font-variant-numeric:tabular-nums}
.price-sheet ul{list-style:none;display:grid;gap:.3rem;margin-top:.4rem}
.price-sheet li{padding-left:1.2rem;position:relative}
.price-sheet li::before{content:"";position:absolute;left:0;top:.75em;width:.7rem;border-top:1px solid var(--navy)}
@media (max-width:700px){.price-sheet{grid-template-columns:1fr}.price-sheet > div + div{border-left:0;border-top:1.5px solid var(--line)}}
.viz-grid{columns:3 220px;column-gap:.8rem;margin-top:1.2rem}
.vz{display:block;width:100%;border:0;padding:0;margin:0 0 .8rem;cursor:zoom-in;break-inside:avoid;background:none}
.vz img{width:100%;border:1.5px solid var(--line)}
.logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1.5px solid var(--line);border-left:1.5px solid var(--line);margin-bottom:2rem}
.logos span{border-right:1.5px solid var(--line);border-bottom:1.5px solid var(--line);background:#fff;display:grid;place-items:center;padding:1.2rem;min-height:110px}
.logos img{max-height:62px;width:auto;object-fit:contain}
@media (max-width:700px){.logos{grid-template-columns:1fr 1fr}}
.video{position:relative;aspect-ratio:16/9;border:1.5px solid var(--line);background:#000}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.play{position:absolute;inset:0;border:0;padding:0;cursor:pointer;background:#000}
.play img{width:100%;height:100%;object-fit:cover;opacity:.75}
.pbtn{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center}
.pbtn svg{width:34px;height:34px;margin-left:4px}
.pnote{position:absolute;left:0;right:0;bottom:16px;color:#fff;font-weight:600}
.contact-p{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:2rem;align-items:start}
@media (max-width:900px){.contact-p{grid-template-columns:1fr}}

/* päta */
.site-foot{border-top:1.5px solid var(--line);padding:3.5rem 0 2rem}
.sf-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.sf-co img{height:52px;width:auto;margin-bottom:1rem}
.sf-co .w{display:none}
@media (prefers-color-scheme:dark){:root:not([data-scheme=light]) .sf-co .n{display:none}:root:not([data-scheme=light]) .sf-co .w{display:block}}
:root[data-scheme=dark] .sf-co .n{display:none}:root[data-scheme=dark] .sf-co .w{display:block}
.sf-co p{margin-bottom:.8rem}
.sf-co .big{font-size:1.4rem;font-weight:700;font-stretch:112%;text-decoration:none;font-variant-numeric:tabular-nums}
.site-foot nav{display:grid;gap:.45rem;align-content:start}
.site-foot h2{font-size:.85rem;color:var(--line-2);font-weight:600;margin-bottom:.4rem;letter-spacing:0}
.site-foot nav a{text-decoration:none}
.site-foot nav a:hover{text-decoration:underline}
.sf-base{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid var(--hair);font-size:.88rem;color:var(--line-2)}
@media (max-width:900px){.sf-grid{grid-template-columns:1fr 1fr}}@media (max-width:520px){.sf-grid{grid-template-columns:1fr}}

@media print{.hdr,.site-foot,.d-side form,.d-acts,.sim,.fav,.calc,.map,.demo-protect-footer{display:none!important}.gal{grid-template-rows:200px 200px}.detail{padding:0}body{background:#fff}}
.favs .n[hidden]{display:none}
/* rohové razítko výkresu na širokých obrazovkách: popis hore, polia pod ním, tlačidlo cez obe riadky */
@media (min-width:1101px){
  .tblock{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(9.5rem,auto)}
  .tblock .meta{grid-column:1/4;grid-row:1;border-left:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.1rem .8rem;padding:.6rem .8rem}
  .tblock label{grid-row:2;border-top:1px solid var(--line)}
  .tblock label:nth-of-type(1){border-left:0}
  .tblock .act{grid-column:4;grid-row:1/3}
  .tblock .tstatus{grid-column:1/-1}
}
/* úvod: jedno tlačidlo na ocenenie naraz. Na širokej obrazovke je viditeľný formulár, tlačidlo v hlavičke sa ukáže až po odscrollovaní */
@media (min-width:981px){
  .hero .to-form{display:none}
  .hdr .nav > .btn-main{transition:opacity .25s,visibility .25s}
  html:not(.form-out):has(#val) .hdr .nav > .btn-main{opacity:0;visibility:hidden}
}

/* ===================== farebné varianty (UKÁŽKA: prepínač v /assets/farby.js; štruktúra sa nemení, len farby) ===================== */
:root[data-theme=vykres]{--paper:#f6f7fa;--paper-2:#eef0f5;--grid:#e2e6ee;--line:#1b2132;--line-2:#59627a;--hair:#c8cedb;--navy:#26276f;--navy-soft:#e4e5f3;--on-navy:#fff;--ok:#1f6b45;--err:#a8241b;--shadow:27 33 50;color-scheme:light}
:root[data-theme=modrotlac]{--paper:#101536;--paper-2:#151b42;--grid:#1d2552;--line:#e3e8ff;--line-2:#a9b3dc;--hair:#3a4479;--navy:#b9bfff;--navy-soft:#232c63;--on-navy:#101536;--ok:#8fe0b4;--err:#ff9d93;--shadow:0 0 0;color-scheme:dark}
:root[data-theme=grafit]{--paper:#16181b;--paper-2:#1d2024;--grid:#22252a;--line:#ece7de;--line-2:#a7a196;--hair:#3b3f45;--navy:#d6ad62;--navy-soft:#2e2a21;--on-navy:#16181b;--ok:#8fd9ae;--err:#ff9d93;--shadow:0 0 0;color-scheme:dark}
:root[data-theme=zelena]{--paper:#f6f3ec;--paper-2:#ede8dd;--grid:#e6e0d2;--line:#1d2822;--line-2:#59625b;--hair:#d3ccbc;--navy:#1e5a43;--navy-soft:#dfeae3;--on-navy:#fff;--ok:#1f6b45;--err:#a8241b;--shadow:29 40 34;color-scheme:light}
:root[data-theme=terakota]{--paper:#fbf9f6;--paper-2:#f3efe9;--grid:#ece6de;--line:#241d19;--line-2:#675d56;--hair:#ddd4ca;--navy:#a94c24;--navy-soft:#f5e4d9;--on-navy:#fff;--ok:#1f6b45;--err:#a8241b;--shadow:36 29 25;color-scheme:light}
:root[data-theme=petrolej]{--paper:#f3f7f7;--paper-2:#e9f0f0;--grid:#e0e9e9;--line:#13262a;--line-2:#4f6266;--hair:#c9d6d7;--navy:#0e5f68;--navy-soft:#ddeced;--on-navy:#fff;--ok:#1f6b45;--err:#a8241b;--shadow:19 38 42;color-scheme:light}
:root[data-theme=mono]{--paper:#fff;--paper-2:#f3f3f3;--grid:#eee;--line:#111;--line-2:#575757;--hair:#d2d2d2;--navy:#111;--navy-soft:#ebebeb;--on-navy:#fff;--ok:#1f6b45;--err:#a8241b;--shadow:17 17 17;color-scheme:light}
:root.fz-anim *,:root.fz-anim *::before,:root.fz-anim *::after{transition:background-color .35s ease,color .35s ease,border-color .35s ease,fill .35s ease,stroke .35s ease!important}
@media (prefers-reduced-motion:reduce){:root.fz-anim *{transition:none!important}}
