:root{
  --text:#393c41; --dark:#171a20; --grey:#5c5e62; --bg:#fff; --card:#f4f4f4; --line:#e0e0e0; --line-2:#c8c8c8;
  --sea:#dfe5ee; --blue:#12228f; --blue-2:#0d1a6e; --r:4px; --w:1440px; color-scheme:light;
}
:root[data-theme="dark"]{
  --text:#c9cacc; --dark:#f2f2f2; --grey:#8e9095; --bg:#121316; --card:#1c1e23; --line:#2b2e34; --line-2:#3a3d44;
  --sea:#1e2a3b; --blue:#5b84f0; --blue-2:#7a9cf5; color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Inter,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{color:var(--dark);font-weight:500;letter-spacing:-.01em}
.wrap{max-width:var(--w);margin:0 auto;padding:0 48px}
@media(max-width:800px){.wrap{padding:0 24px}}

/* ---------- lišta ---------- */
header{position:sticky;top:0;z-index:20;background:var(--bg);height:56px}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:56px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:13px;letter-spacing:.42em;color:var(--dark);white-space:nowrap}
.brand .crown{width:26px;height:26px;color:var(--blue);flex:0 0 auto}
:root[data-theme="dark"] .brand .crown{color:#fff}
nav{display:flex;gap:8px}
nav a{padding:6px 14px;border-radius:var(--r);font-weight:500;color:var(--dark);transition:background .2s}
nav a:hover{background:rgba(128,128,128,.12)}
.rt{display:flex;align-items:center}
.right{font-weight:500;color:var(--dark)}
@media(max-width:1000px){nav a.h2{display:none}}
@media(max-width:800px){nav a.h{display:none}.right{display:none}.lang{margin-left:0}.brand{letter-spacing:.22em;font-size:12px;gap:8px}.brand .crown{width:22px;height:22px}nav a{padding:6px 8px}}
@media(max-width:800px){header .wrap{gap:8px}}

/* ---------- tlačítka ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;height:40px;min-width:264px;padding:0 24px;border-radius:var(--r);font-weight:500;font-size:14px;line-height:1;transition:background .2s,color .2s;white-space:nowrap}
.btn-blue{background:var(--blue);color:#fff}.btn-blue:hover{background:var(--blue-2)}
.btn-white{background:rgba(255,255,255,.72);color:#171a20;backdrop-filter:blur(8px)}.btn-white:hover{background:#fff;color:#171a20}
.btn-light{background:var(--bg);color:var(--dark);border:1px solid var(--line)}.btn-light:hover{background:var(--card)}
.btn-dark{background:var(--dark);color:#fff}.btn-dark:hover{background:#000}
.btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(max-width:600px){.btn{min-width:0;width:100%}.btns{flex-direction:column;width:100%}}

/* ---------- hero ---------- */
.hero{position:relative;height:calc(100svh - 56px);min-height:560px;overflow:hidden;color:#fff}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero .t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:9vh 24px 48px}
.hero h1{color:#fff;font-size:clamp(34px,4vw,48px);font-weight:500;line-height:1.15}
.hero p{font-size:16px;margin-top:6px;opacity:.95}
.hero .btns{margin-top:auto}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,0) 35%,rgba(0,0,0,0) 70%,rgba(0,0,0,.2))}

/* ---------- pás projektů ---------- */
.sec{padding:64px 0 0}
.sec-h{text-align:center;font-size:13px;color:var(--grey);letter-spacing:.08em;text-transform:uppercase;margin-bottom:24px}
.track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 48px;scrollbar-width:none}
.track::-webkit-scrollbar{display:none}
@media(max-width:800px){.track{padding:0 24px;gap:16px}}
.card{position:relative;flex:0 0 min(1040px,calc(100% - 96px));aspect-ratio:1040/560;border-radius:8px;overflow:hidden;scroll-snap-align:start;color:#fff}
@media(max-width:800px){.card{flex-basis:calc(100% - 24px);aspect-ratio:auto;height:440px}}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,0) 40%,rgba(0,0,0,.55))}
.card .in{position:absolute;inset:0;padding:40px;display:flex;flex-direction:column;justify-content:flex-end}
.card .k{font-weight:500;font-size:16px;position:absolute;top:40px;left:40px}
.card h3{color:#fff;font-size:40px;font-weight:600;line-height:1.1}
.card .p{font-size:18px;margin:6px 0 24px}
.card .btns{justify-content:flex-start}
.card .btn{min-width:160px}
@media(max-width:800px){.card .in{padding:24px}.card .k{top:24px;left:24px}.card h3{font-size:30px}.card .p{font-size:16px}}
.dots{display:flex;justify-content:center;gap:10px;margin-top:24px}
.dots i{width:8px;height:8px;border-radius:50%;background:var(--line-2);transition:background .2s}
.dots i.on{background:var(--dark)}

/* ---------- pobřeží ---------- */
.coast{margin-top:64px;background:var(--card);border-radius:8px;padding:48px 48px 32px;overflow:hidden}
@media(max-width:800px){.coast{padding:32px 24px 24px}}
.coast h2{font-size:28px;font-weight:600}
.coast .hd p{font-size:16px;max-width:600px;margin-top:4px}
.coast-body{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:center;margin-top:32px}
@media(max-width:900px){.coast-body{grid-template-columns:1fr;gap:24px}}
.dist{list-style:none}
.dist li{display:grid;grid-template-columns:1fr auto;column-gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);cursor:default;transition:color .2s}
.dist li span{font-size:15px;color:var(--dark)}
.dist li b{font-size:18px;font-weight:600;color:var(--dark);text-align:right}
.dist li small{grid-column:2;font-size:12px;color:var(--grey);text-align:right}
.dist li.on span,.dist li.on b{color:var(--blue)}
.coast .note{font-size:12px;color:var(--grey);margin-top:16px}
.map{width:100%;height:auto;overflow:visible}
.map .sea{fill:var(--sea)}
.map .coastline{stroke:var(--dark)}
.map .towns circle{fill:var(--dark)}
.map .towns text{font-family:Inter,sans-serif;font-size:15px;font-weight:500;fill:var(--dark)}
.map .geo{font-family:Inter,sans-serif;font-size:13px;font-weight:500;fill:var(--grey);opacity:.8;letter-spacing:.2em;text-transform:uppercase}
.map .towns text.mini{font-size:12px;font-weight:400;fill:var(--grey)}
.map .pj .base{fill:none;stroke:var(--blue);stroke-width:1.5;opacity:.5}
.map .pj circle{fill:var(--blue)}.map .pj line{stroke:var(--blue)}
.map .pj text{font-family:Inter,sans-serif;font-size:15px;font-weight:600;fill:var(--dark)}
.map .pj:hover text{fill:var(--blue)}
.map .routes path{stroke:var(--blue);opacity:.45;transition:opacity .25s,stroke-width .25s}
.map .routes path.on{opacity:1;stroke-width:2.4}
.map.draw .routes path{stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 1.4s ease forwards}
.map.draw .routes path:nth-child(2){animation-delay:.15s}.map.draw .routes path:nth-child(3){animation-delay:.3s}.map.draw .routes path:nth-child(4){animation-delay:.45s}.map.draw .routes path:nth-child(5){animation-delay:.6s}.map.draw .routes path:nth-child(6){animation-delay:.75s}
@keyframes draw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.map.draw .routes path{animation:none;stroke-dashoffset:0}}
@media(max-width:700px){.map{display:none}}

/* ---------- postup koupě ---------- */
.steps{margin-top:96px;text-align:center}
.steps h2{font-size:28px;font-weight:600}
.steps ol{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:32px;text-align:left;counter-reset:k;list-style:none}
.steps li{padding:28px 24px 28px;border-top:2px solid var(--dark);counter-increment:k}
.steps li::before{content:counter(k,decimal-leading-zero);display:block;font-size:13px;font-weight:500;color:var(--grey);margin-bottom:14px;letter-spacing:.1em}
.steps li b{display:block;font-size:20px;font-weight:600;color:var(--dark);margin-bottom:8px}
.steps li p{font-size:15px}
.steps .note{font-size:13px;color:var(--grey);margin-top:20px}
@media(max-width:1000px){.steps ol{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.steps ol{grid-template-columns:1fr;gap:8px}.steps li{padding:20px 0}}

/* ---------- proč přes nás ---------- */
.why{margin-top:96px;text-align:center}
.why h2{font-size:28px;font-weight:600}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:32px;text-align:left}
.why-grid div{background:var(--card);border-radius:8px;padding:32px 28px}
.why-grid b{display:block;font-size:20px;font-weight:600;color:var(--dark);margin-bottom:8px}
.why-grid p{font-size:15px}
.why .lead{font-size:16px;max-width:640px;margin:8px auto 0}
.why-grid.g3{grid-template-columns:repeat(3,1fr)}
.why .note{font-size:13px;color:var(--grey);margin-top:20px}
@media(max-width:1000px){.why-grid.g3{grid-template-columns:1fr}}
.why-grid .who .face{width:96px;height:96px;border-radius:50%;object-fit:cover;margin-bottom:16px}
.contact .partner{font-size:14px;color:var(--grey);max-width:560px;margin:-12px auto 28px}
.contact .partner a{color:var(--dark);text-decoration:underline;text-underline-offset:3px}
.why-grid .cepi{width:120px;height:auto;border-radius:4px;margin-top:16px}
@media(max-width:1000px){.why-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.why-grid{grid-template-columns:1fr;gap:12px}.why-grid div{padding:24px}}

/* ---------- detail projektu ---------- */
.detail{margin-top:96px}
.detail .top{position:relative;height:72svh;min-height:480px;overflow:hidden;border-radius:8px;color:#fff}
.detail .top img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.detail .top::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.3),rgba(0,0,0,0) 40%)}
.detail .top .t{position:absolute;inset:0;padding:48px 24px;text-align:center}
.detail .top h3{color:#fff;font-size:clamp(34px,4vw,48px);font-weight:500}
.detail .top p{font-size:16px;margin-top:6px}
.specs{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:40px 0 8px;text-align:center}
.specs b{display:block;font-size:clamp(26px,2.6vw,36px);font-weight:600;color:var(--dark);line-height:1.1}
.specs b.rq{font-size:clamp(20px,2vw,26px);font-weight:500}
.specs b small{font-size:.5em;font-weight:500;color:var(--grey);margin-left:4px}
.specs span{font-size:13px;color:var(--grey)}
.specs.s5{grid-template-columns:repeat(5,1fr)}
.specs.s5 b{font-size:clamp(22px,2.2vw,30px)}
@media(max-width:900px){.specs.s5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.specs,.specs.s5{grid-template-columns:1fr 1fr;gap:28px 16px}}
.detail .btns{margin:32px 0 48px}
.gal{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:520px}
.gal button{border:0;padding:0;background:none;overflow:hidden;border-radius:8px;cursor:zoom-in}
.gal button:first-child{grid-row:1/3}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gal button:hover img{transform:scale(1.03)}
.gal.n4{grid-template-columns:1fr 1fr}
.gal.n4 button:first-child{grid-row:auto}
@media(max-width:800px){.gal{display:flex;flex-wrap:wrap;gap:8px;height:auto}.gal button{flex:0 0 calc(50% - 4px);aspect-ratio:4/3}.gal button:first-child{flex-basis:100%;aspect-ratio:16/9}}
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 40px;padding:40px 0 0;max-width:1000px;margin:0 auto}
.feat li{list-style:none;font-size:16px;color:var(--dark);padding:14px 0;border-bottom:1px solid var(--line)}
@media(max-width:800px){.feat{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.feat{grid-template-columns:1fr}}

/* ---------- kontakt ---------- */
.contact{margin-top:96px;background:var(--card);border-radius:8px;padding:64px 24px;text-align:center}
.contact h2{font-size:28px;font-weight:600}
.contact p{font-size:16px;margin:8px auto 24px;max-width:520px}
.contact .tel{font-size:clamp(28px,4vw,44px);font-weight:600;color:var(--dark);display:block;margin-bottom:6px}
.contact .mail{font-size:18px;color:var(--dark);display:block;margin-bottom:28px}

footer{padding:48px 24px 40px;text-align:center;font-size:12px;color:var(--grey);line-height:1.8}
footer a{margin:0 8px}
footer button{background:none;border:0;font:inherit;color:inherit;cursor:pointer;margin:0 8px;padding:0;text-decoration:underline;text-underline-offset:3px}
.lang{font-weight:500;color:var(--dark);margin-left:16px;letter-spacing:.06em}
footer .legal{max-width:820px;margin:14px auto 0}
footer .ia{display:inline-block;margin-bottom:20px}
footer .ia img{width:180px;height:auto}
:root[data-theme="dark"] footer .ia img{content:url("img/imperial-apartments-white.png")}

/* ---------- galerie ---------- */
.lb{border:0;padding:0;margin:0;max-width:none;max-height:none;width:100vw;height:100svh;background:rgba(0,0,0,.94);display:none;place-items:center}
.lb[open]{display:grid}
.lb img{max-width:94vw;max-height:88svh;object-fit:contain;border-radius:4px}
.lb button{position:fixed;background:none;border:0;color:#fff;cursor:pointer;font-family:inherit;font-size:28px;padding:16px}
.lb .x{top:10px;right:16px}.lb .p{left:6px;top:50%;transform:translateY(-50%)}.lb .n{right:6px;top:50%;transform:translateY(-50%)}
.lb .c{position:fixed;bottom:20px;left:0;right:0;text-align:center;color:#bbb;font-size:13px}

/* ---------- živé počasí a klima ---------- */
.live{padding:64px 0 0}
.now[hidden]{display:none}
.now{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;text-align:center;margin-bottom:56px}
.now-i b{display:block;font-size:clamp(72px,11vw,140px);font-weight:500;line-height:1;color:var(--dark);letter-spacing:-.03em}
.now-l{display:block;font-size:14px;color:var(--grey);margin-bottom:8px}
.now-d{display:block;font-size:16px;color:var(--text);margin-top:8px;min-height:1.5em}
.now-vs{width:1px;height:120px;background:var(--line)}
.now-x{display:block;font-size:13px;color:var(--grey);margin-top:6px;min-height:1.4em}
.now-sub{grid-column:1/-1;text-align:center;font-size:14px;color:var(--text);margin-top:-8px;min-height:1.5em}
@media(max-width:600px){.now{grid-template-columns:1fr;gap:8px}.now-vs{display:none}.now-i b{font-size:88px}.now-sub{margin-top:8px}}

/* ===== scrollem řízené přiblížení: tři snímky jednoho projektu ===== */
.zoom{--p:0;--g:min(1,calc(var(--p)*2.2));height:300vh;margin:48px 0 0;position:relative}
.zoom-st{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.zoom-f{position:relative;display:block;width:calc(44vw + 56vw*var(--g));height:calc(44vh + 56vh*var(--g));border-radius:calc(8px*(1 - var(--g)));overflow:hidden;flex:none;will-change:width,height;color:#fff;background:#000}
.zoom-f img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;will-change:transform,opacity}
.zoom-f .z1{transform:scale(calc(1.15 - .15*var(--g)))}
.zoom-f .z2{opacity:clamp(0,calc((var(--p) - .5)*5),1);transform:scale(calc(1.08 - .08*clamp(0,calc((var(--p) - .5)*3),1)))}
.zoom-f .z3{opacity:clamp(0,calc((var(--p) - .78)*5),1);transform:scale(calc(1.08 - .08*clamp(0,calc((var(--p) - .78)*3),1)))}
.zoom-c{position:absolute;left:0;right:0;bottom:0;padding:120px 48px 40px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.5));opacity:clamp(0,calc((var(--p) - .3)*5),1);display:grid;gap:4px}
.zoom-c b{font-size:clamp(28px,3.4vw,44px);font-weight:500;letter-spacing:-.02em;line-height:1.1}
.zoom-c span{grid-area:2/1;font-size:16px;opacity:.92;transition:opacity .4s}
.zoom-c .c1{opacity:clamp(0,calc((.55 - var(--p))*8),1)}
.zoom-c .c2{opacity:clamp(0,calc(min(var(--p) - .5, .83 - var(--p))*8),1)}
.zoom-c .c3{opacity:clamp(0,calc((var(--p) - .78)*8),1)}
@media(max-width:800px){.zoom{height:240vh;margin-top:24px}.zoom-f{width:calc(64vw + 36vw*var(--g));height:calc(36vh + 64vh*var(--g))}.zoom-c{padding:80px 24px 28px}.zoom-c b{font-size:26px}.zoom-c span{font-size:14px}}
@media(prefers-reduced-motion:reduce){.zoom{height:auto}.zoom-st{position:static;height:auto}.zoom-f{width:100%;height:60vh;border-radius:0}.zoom-f .z2,.zoom-f .z3{display:none}.zoom-c{opacity:1}.zoom-c .c1{opacity:1}.zoom-c .c2,.zoom-c .c3{display:none}}

/* ===== časté otázky ===== */
.faq{margin-top:96px;max-width:820px;margin-left:auto;margin-right:auto}
.faq h2{font-size:28px;font-weight:600;text-align:center}
.faq-l{margin-top:32px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font-size:17px;font-weight:500;color:var(--dark);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;border-right:1.5px solid var(--grey);border-bottom:1.5px solid var(--grey);transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{font-size:15px;line-height:1.6;padding:0 40px 22px 0;max-width:700px}
@media(max-width:600px){.faq summary{font-size:16px;padding-right:28px}.faq details p{padding-right:0}}
.clim{background:var(--card);border-radius:8px;padding:48px 48px 32px}
@media(max-width:800px){.clim{padding:32px 24px 24px}}
.clim-h h2{font-size:28px;font-weight:600}
.clim-h p{font-size:16px;margin-top:4px;max-width:640px}
.chart{width:100%;height:auto;margin-top:24px;overflow:visible}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .lbl{font-family:Inter,sans-serif;font-size:13px;fill:var(--grey)}
.chart .l1{fill:none;stroke:var(--blue);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.chart .l2{fill:none;stroke:var(--grey);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;opacity:.7}
.chart .a1{fill:var(--blue);opacity:.08}
.chart .v{font-family:Inter,sans-serif;font-size:13px;font-weight:600;fill:var(--dark)}
.chart .v2{font-family:Inter,sans-serif;font-size:12px;fill:var(--grey)}
.chart .m{stroke:var(--blue);stroke-width:1.5;stroke-dasharray:4 4;opacity:.6}
.clim-leg{display:flex;gap:28px;flex-wrap:wrap;font-size:14px;color:var(--dark);margin-top:16px;align-items:center}
.clim-leg i{display:inline-block;width:18px;height:3px;border-radius:2px;margin-right:8px;vertical-align:middle}
.clim-leg .c1{background:var(--blue)}.clim-leg .c2{background:var(--grey)}
.clim-leg .sun{margin-left:auto;color:var(--grey)}
.clim .note{font-size:12px;color:var(--grey);margin-top:16px}

/* ---------- kalkulačka ---------- */
.calc{margin-top:96px;text-align:center}
.calc h2{font-size:28px;font-weight:600}
.calc .lead{font-size:16px;max-width:640px;margin:8px auto 0}
.calc-box{max-width:640px;margin:32px auto 0;background:var(--card);border-radius:8px;padding:40px 40px 28px;text-align:left}
@media(max-width:600px){.calc-box{padding:28px 20px 20px}}
.calc-in{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.calc-in span{font-size:14px;color:var(--grey);flex:1 0 100%}
.calc-in input{font:inherit;font-size:36px;font-weight:600;color:var(--dark);background:none;border:0;border-bottom:2px solid var(--dark);width:240px;padding:4px 0;outline:none;-moz-appearance:textfield}
.calc-in input::-webkit-outer-spin-button,.calc-in input::-webkit-inner-spin-button{-webkit-appearance:none}
.calc-in b{font-size:28px;font-weight:500;color:var(--dark)}
.calc-box input[type=range]{width:100%;margin:20px 0 8px;accent-color:var(--blue)}
.calc-t{width:100%;border-collapse:collapse;margin-top:16px}
.calc-t td{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--text)}
.calc-t td:last-child{text-align:right;color:var(--dark);font-variant-numeric:tabular-nums;white-space:nowrap}
.calc-t .tot td{font-size:20px;font-weight:600;color:var(--dark);border-bottom:0;padding-top:18px}
.calc-t .czk td{font-size:15px;color:var(--grey);border-bottom:0;padding-top:0}
.calc-box .note{font-size:12px;color:var(--grey);margin-top:16px}

/* ---------- platební kalendář ---------- */
.plan{margin:28px 0 8px;padding:24px 0 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.plan-h{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:14px}
.plan-h b{font-size:16px;font-weight:600;color:var(--dark)}
.plan-h span{font-size:14px;color:var(--grey);font-variant-numeric:tabular-nums}
.plan-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--line)}
.plan-bar i{display:block;height:100%;width:0;transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.plan-bar i+i{margin-left:2px}
.plan.on .plan-bar i{width:var(--w)}
.plan.on .plan-bar .p2{transition-delay:.2s}.plan.on .plan-bar .p3{transition-delay:.4s}.plan.on .plan-bar .p4{transition-delay:.6s}
.p1{background:#8ea2e8}.p2{background:#5b7be0}.p3{background:#3557c4}.p4{background:var(--blue)}
:root[data-theme="dark"] .p1{background:#3a4a86}:root[data-theme="dark"] .p2{background:#4a63b8}:root[data-theme="dark"] .p3{background:#5b7be0}
.plan-l{list-style:none;margin-top:16px}
.plan-l li{display:grid;grid-template-columns:12px 1fr auto;column-gap:12px;align-items:baseline;padding:9px 0;font-size:15px;color:var(--text);opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}
.plan.on .plan-l li{opacity:1;transform:none}
.plan.on .plan-l li:nth-child(2){transition-delay:.2s}.plan.on .plan-l li:nth-child(3){transition-delay:.4s}.plan.on .plan-l li:nth-child(4){transition-delay:.6s}
.plan-l li i{width:12px;height:12px;border-radius:3px;display:inline-block;position:relative;top:1px}
.plan-l li b{font-weight:600;color:var(--dark);font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-l li small{grid-column:3;font-size:12px;color:var(--grey);text-align:right;margin-top:-4px}
.plan .note{font-size:12px;color:var(--grey);margin-top:10px}

/* ---------- jak pracujeme ---------- */
.how{margin-top:96px;text-align:center}
.how h2{font-size:28px;font-weight:600}
.how-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px 40px;margin-top:40px;text-align:left}
.how-grid div{border-top:2px solid var(--dark);padding-top:20px;opacity:0;transform:translateY(12px);transition:opacity .6s,transform .6s}
.how.on .how-grid div{opacity:1;transform:none}
.how.on .how-grid div:nth-child(2){transition-delay:.15s}.how.on .how-grid div:nth-child(3){transition-delay:.3s}.how.on .how-grid div:nth-child(4){transition-delay:.45s}
.how-grid b{display:block;font-size:clamp(24px,2.4vw,32px);font-weight:600;color:var(--dark);line-height:1.15;margin-bottom:10px;letter-spacing:-.01em}
.how-grid p{font-size:15px}
@media(max-width:1000px){.how-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.how-grid{grid-template-columns:1fr;gap:20px}}
@media(prefers-reduced-motion:reduce){.how-grid div{opacity:1;transform:none;transition:none}}

/* ---------- jemné odhalení při scrollu (třídy přidává skript, bez JS zůstane vše viditelné) ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.hero h1,.hero p,.hero .btns{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.hero p{animation-delay:.15s}.hero .btns{animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.hero h1,.hero p,.hero .btns{animation:none}}

/* ---------- kontaktní formulář ---------- */
.cf{max-width:640px;margin:0 auto;text-align:left}
.cf-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:600px){.cf-row{grid-template-columns:1fr}}
.cf label{display:block;margin-bottom:16px}
.cf label span{display:block;font-size:13px;color:var(--grey);margin-bottom:6px}
.cf input,.cf select,.cf textarea{width:100%;font:inherit;font-size:15px;color:var(--dark);background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;outline:none;transition:border-color .2s}
.cf input:focus,.cf select:focus,.cf textarea:focus{border-color:var(--blue)}
.cf textarea{resize:vertical;min-height:110px}
.cf .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf-foot{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}
@media(max-width:600px){.cf-foot{flex-direction:column}}
.cf .note{font-size:12px;color:var(--grey);text-align:center;margin-top:16px}
.cf-msg{text-align:center;font-size:15px;color:var(--dark);margin-top:16px;padding:14px;border-radius:var(--r);background:var(--bg)}
.cf-msg.err{color:#b3261e}
.cf.sent .cf-row,.cf.sent > label,.cf.sent .cf-foot,.cf.sent .note{display:none}

/* ---------- tabulka volných bytů ---------- */
.units{max-width:1000px;margin:32px auto 0;text-align:center}
.units .u-tgl{min-width:264px}
.u-wrap{margin-top:20px;text-align:left;overflow-x:auto;-webkit-overflow-scrolling:touch}
.u-t{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.u-t th{font-weight:500;color:var(--grey);text-align:left;padding:8px 10px;border-bottom:1px solid var(--dark);white-space:nowrap}
.u-t td{padding:10px 10px;border-bottom:1px solid var(--line);color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums}
.u-t td b{color:var(--dark);font-weight:600}
.u-t td small{color:var(--grey);font-size:11px}
.u-t td a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.u-t tbody tr{opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.u-t tbody tr.in{opacity:1;transform:none}
.units .note{font-size:12px;color:var(--grey);margin-top:12px}

/* ---------- interaktivní mapa ---------- */
.rmap-wrap{margin-top:28px}
.rmap{width:100%;height:440px;border-radius:8px;overflow:hidden;background:var(--sea)}
@media(max-width:700px){.rmap{height:360px}}
.rmap-wrap .note{font-size:12px;color:var(--grey);margin-top:10px}
.mk{display:flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:13px;font-weight:600;color:#171a20;cursor:default;white-space:nowrap}
.mk i{display:block;width:12px;height:12px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.mk-pj{cursor:pointer}
.mk-pj span{background:#fff;padding:3px 8px;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.mk-town{font-weight:500;color:#5c5e62}
.mk-town i{width:8px;height:8px;background:#5c5e62;border-width:1.5px}
.rmap .maplibregl-ctrl-attrib{font-size:10px}
:root[data-theme="dark"] .mk-town{color:#c9cacc}

/* ---------- textová stránka (ochrana osobních údajů) ---------- */
.page{max-width:760px;padding-top:56px;padding-bottom:80px}
.page h1{font-size:34px;font-weight:600;margin-bottom:24px}
.page h2{font-size:20px;font-weight:600;margin:28px 0 8px}
.page p{font-size:16px;margin-bottom:12px}
.page .note{font-size:13px;color:var(--grey);margin-top:28px}
