:root{--red:#B20709;--red-dark:#A90508;--ink:#262728;--mute:#5E6265;--line:#e8e9e8;--paper:#fff;--off:#f6f7f6;--dark:#262728}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope','DM Sans',sans-serif;line-height:1.14}h1{font-size:clamp(2.9rem,5.3vw,5.6rem);letter-spacing:-.065em;font-weight:800}h2{font-size:clamp(2.15rem,3.7vw,3.7rem);letter-spacing:-.055em;font-weight:800}h3{font-size:1.2rem;letter-spacing:-.025em}h2 em,h1 em{font-style:normal;color:var(--red)}.wrap{width:min(1180px,calc(100% - 56px));margin:auto}.skip-link{position:absolute;top:-200px;left:8px;background:#fff;padding:12px;z-index:1000}.skip-link:focus{top:8px}.site-header{height:94px;position:relative;background:white;border-bottom:1px solid #e9ebea;z-index:40}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{display:inline-flex;align-items:center;gap:11px;min-width:140px}.brand img{display:block;max-height:72px;max-width:214px;width:auto;object-fit:contain}.brand-mark{color:var(--red);width:38px;height:42px;display:block}.brand-mark svg{width:100%;height:100%}.brand-text{font-family:Manrope,sans-serif;font-size:1.36rem;font-weight:800;letter-spacing:-.06em;line-height:1}.brand-text>span,.footer-brand>span{color:var(--red)}.brand-text small{display:block;color:#798086;font-family:'DM Sans',sans-serif;font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;margin-top:6px;font-weight:600}.main-nav{display:flex;align-items:center;gap:31px}.main-nav>a{font-size:.88rem;font-weight:700;transition:color .2s}.main-nav>a:hover{color:var(--red)}.main-nav .nav-cta{padding:13px 18px;background:var(--ink);color:white;border-radius:3px}.main-nav .nav-cta:hover{background:var(--red);color:white}.menu-toggle{display:none}.hero{background:#fff}.hero-grid{display:grid;grid-template-columns:52% 48%;min-height:620px}.hero-content{display:flex;flex-direction:column;justify-content:center;padding:74px 66px 73px 0}.eyebrow,.kicker{font-size:.74rem;letter-spacing:.18em;font-weight:800;color:var(--red)}.eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:28px}.red-rule{width:29px;height:3px;display:inline-block;background:var(--red)}.hero h1{margin-bottom:22px;max-width:650px}.hero-lead{font-size:1.1rem;line-height:1.78;max-width:540px;color:#58616b}.hero-actions{display:flex;align-items:center;gap:27px;margin-top:26px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:17px 24px;border-radius:3px;font-weight:800;font-size:.88rem;white-space:nowrap;border:0;transition:background .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn-red{background:var(--red);color:white}.btn-red:hover{background:var(--red-dark);color:white}.text-link{font-size:.88rem;font-weight:800;display:inline-flex;align-items:center;gap:11px;white-space:nowrap}.text-link:hover{color:var(--red)}.hero-trust{margin-top:76px;display:flex;align-items:center;gap:13px;font-size:.72rem;color:#7b838a;font-weight:700;letter-spacing:.075em;text-transform:uppercase}.trust-line{display:inline-block;width:32px;height:1px;background:#aeb5bb}.hero-visual{position:relative;min-height:620px;background:linear-gradient(135deg,#3A3C3E 0%,#262728 68%);background-size:cover;background-position:center;overflow:hidden}.roof-graphic{position:absolute;inset:0;overflow:hidden;opacity:.98}.roof-a{position:absolute;width:100%;height:45%;background:#B20709;transform:skewY(-37deg);top:30%;left:28%;box-shadow:-40px 20px 0 rgba(255,255,255,.035)}.roof-b{position:absolute;width:105%;height:25%;background:#e2e4e4;transform:skewY(30deg);top:62%;left:-45%;opacity:.11}.roof-c{position:absolute;transform:rotate(-42deg);width:190%;height:3px;left:-40%;top:49%;background:#fff;opacity:.4}.visual-label{position:absolute;bottom:44px;left:45px;right:30px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;color:white}.visual-label span{opacity:.8;font-size:.72rem;letter-spacing:.22em}.visual-label strong{font-family:Manrope,sans-serif;font-weight:800;font-size:1.4rem;letter-spacing:-.045em;text-align:right;line-height:1.35}.hero-band{background:var(--dark);color:#cbd1d4}.hero-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:23px 0;flex-wrap:wrap}.hero-band span{font-size:.7rem;letter-spacing:.145em;font-weight:700}.section{padding:110px 0;scroll-margin-top:20px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:45px;margin-bottom:47px}.section-head h2{margin:13px 0 0}.section-head>p{color:var(--mute);max-width:330px;margin-bottom:6px;line-height:1.8}.section-head>.text-link{margin-bottom:13px}.services{background:var(--off)}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{position:relative;background:#fff;padding:36px 34px 36px;min-height:296px;border:1px solid #eceeee;transition:transform .2s,box-shadow .2s}.service-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px #26272812}.service-num{font-size:.75rem;color:#9da4a8;letter-spacing:.12em}.service-icon{font-size:3.5rem;color:var(--red);height:81px;line-height:81px;font-weight:400}.service-card h3{margin:6px 0 12px;font-size:1.18rem}.service-card p{font-size:.91rem;color:#6b7379;line-height:1.7;max-width:260px;margin:0}.service-arrow{position:absolute;top:28px;right:34px;color:var(--red);font-size:1.25rem}.portfolio{background:white}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px}.project{display:block;min-width:0}.project-image{position:relative;background:#eef0f0;aspect-ratio:1.28;overflow:hidden}.project-image img{height:100%;width:100%;object-fit:cover;transition:transform .35s}.project:hover .project-image img{transform:scale(1.04)}.project-title{padding:20px 0 4px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-title h3{margin:0;font-size:1.03rem}.project-title span{white-space:nowrap;font-size:.77rem;color:var(--red);font-weight:700}.project-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(130deg,#d1d4d6,#eceff0);color:#9ea3a5;font-family:Manrope,sans-serif;font-weight:800;letter-spacing:.13em}.project-empty{grid-column:1/-1;background:#f3f5f5;min-height:320px;padding:48px 56px;display:flex;align-items:center;justify-content:center;gap:80px}.project-empty h3{font-size:1.75rem;margin:12px 0}.project-empty p{color:#6a737a;max-width:440px}.empty-art{width:30%;height:170px;border:2px solid #dee1e1;position:relative;background:#e8ebeb;min-width:180px}.empty-roof{position:absolute;width:120px;height:120px;border-top:14px solid #D50D14;border-left:14px solid #D50D14;transform:rotate(45deg);top:72px;left:calc(50% - 60px)}.contact-section{background:#262728;color:white;padding:102px 0}.contact-grid{display:grid;grid-template-columns:48% 52%;gap:50px}.contact-aside h2{margin:14px 0 20px}.contact-aside h2 em{color:#D50D14}.contact-aside>p{color:#b3bcc3;max-width:400px;margin-bottom:43px;line-height:1.8}.kicker.light{color:#D50D14}.contact-method{display:flex;flex-direction:column;margin-bottom:22px}.contact-method>span{font-size:.72rem;color:#929ea6;letter-spacing:.17em;font-weight:700;margin-bottom:5px}.contact-method a,.contact-method strong{font-size:1.16rem;font-weight:700}.contact-method a:hover{color:#D50D14}.form-wrap{background:white;color:var(--ink);padding:35px 41px 38px;min-width:0}.form-topline{display:flex;justify-content:space-between;font-size:.75rem;font-weight:800;color:var(--red);letter-spacing:.1em;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:28px}.form-wrap>h3{font-size:1.5rem}.form-wrap>p{color:var(--mute)}.contact-form label{display:block;font-size:.8rem;color:#39434b;font-weight:700;margin-bottom:8px}.contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.contact-form .field{margin-bottom:17px}.contact-form input:not([type=checkbox]),.contact-form textarea{width:100%;background:#f7f8f8;border:1px solid #e4e6e6;border-radius:2px;min-height:48px;padding:12px 13px;font-size:.94rem;color:var(--ink)}.contact-form textarea{min-height:128px;resize:vertical}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--red);outline-offset:1px}.contact-form .consent{display:flex;align-items:flex-start;gap:11px;font-size:.76rem;color:#59616a;line-height:1.55;font-weight:400;margin-bottom:21px}.contact-form .consent input{margin-top:3px}.contact-form .consent a{text-decoration:underline}.contact-form button{width:100%}.form-alert{padding:14px 16px;font-size:.86rem;margin-bottom:20px;background:#eaf8ee;color:#1b6030}.form-alert.error{background:#fff0ef;color:#A90508}.form-hp{position:absolute;left:-9999px}.site-footer{background:#262728;color:#e7ebed;padding:65px 0 22px}.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1.1fr 1.35fr;gap:30px}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:11px}.footer-grid strong{font-weight:800;font-size:.88rem}.footer-grid .footer-brand{font-size:1.6rem;font-family:Manrope,sans-serif;letter-spacing:-.065em}.footer-grid p,.footer-grid a{font-size:.83rem;color:#aeb9c0;line-height:1.9;margin:0}.footer-grid a:hover{color:white}.footer-bottom{border-top:1px solid #364048;display:flex;justify-content:space-between;margin-top:55px;padding-top:23px;color:#98a5ad;font-size:.78rem}.footer-bottom a:hover{color:white}.subhero{background:#f3f5f5;padding:84px 0 88px}.subhero h1{font-size:clamp(2.6rem,5vw,4.6rem);margin:16px 0 15px}.subhero p{color:var(--mute);max-width:650px}.back-link{display:inline-block;margin-bottom:30px;color:var(--red);font-size:.85rem;font-weight:700}.page-content{max-width:850px;line-height:1.9;color:#3b434b}.page-content h2{font-size:1.8rem;margin-top:35px}.page-content a{text-decoration:underline;color:var(--red)}.pagination{text-align:center;margin-top:45px}.pagination .page-numbers{padding:8px 13px;border:1px solid #ddd;margin:0 3px}.pagination .current{background:var(--red);color:white;border-color:var(--red)}.detail-copy{max-width:760px;color:#4b555e;margin-bottom:40px;line-height:1.85}.detail-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.detail-gallery a{display:block;overflow:hidden;background:#eff1f1}.detail-gallery img{width:100%;height:330px;object-fit:cover;display:block;transition:transform .3s}.detail-gallery a:hover img{transform:scale(1.02)}.detail-cta{background:#f6f7f7;margin-top:55px;padding:38px;display:flex;gap:25px;align-items:center;justify-content:space-between}.detail-cta h2{font-size:1.7rem;margin:0}
@media(max-width:1050px){.wrap{width:min(100% - 40px,1180px)}.main-nav{gap:17px}.hero-grid{grid-template-columns:52% 48%;min-height:550px}.hero-content{padding-right:32px}.hero-visual{min-height:550px}.contact-grid{gap:25px}.footer-grid{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:clamp(2.7rem,5.2vw,4.9rem)}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.site-header{height:72px}.brand img{max-height:56px;max-width:180px}.menu-toggle{display:flex;flex-direction:column;gap:5px;border:0;background:none;padding:12px;margin-left:auto}.menu-toggle span{height:2px;width:25px;background:var(--ink);display:block}.main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;padding:20px 22px 30px;border-bottom:1px solid #eee;box-shadow:0 20px 30px #00000012;flex-direction:column;align-items:stretch;gap:20px}.main-nav.is-open{display:flex}.main-nav .nav-cta{text-align:center}.hero-grid{display:flex;flex-direction:column}.hero-content{padding:66px 0 51px}.hero h1{font-size:clamp(2.8rem,11vw,4.7rem)}.hero-visual{min-height:330px}.hero-trust{margin-top:43px}.visual-label{left:22px;bottom:22px}.visual-label strong{font-size:1.12rem}.hero-band .wrap{justify-content:center;gap:10px 22px}.hero-band span{font-size:.61rem}.section{padding:72px 0}.section-head{display:block;margin-bottom:33px}.section-head>p{margin-top:22px;max-width:520px}.section-head>.text-link{margin-top:24px}.services-grid{grid-template-columns:1fr}.service-card{min-height:240px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:21px}.project-empty{padding:35px 25px;gap:25px;min-height:250px}.empty-art{display:none}.contact-section{padding:70px 0}.contact-grid{grid-template-columns:1fr;gap:38px}.form-wrap{padding:28px 24px}.footer-grid{gap:38px}.subhero{padding:63px 0}.detail-gallery img{height:250px}.detail-cta{flex-direction:column;align-items:flex-start}.footer-bottom{margin-top:40px}}
@media(max-width:500px){.hero-actions{align-items:flex-start;gap:20px}.hero-band span:nth-child(4){display:none}.project-grid{grid-template-columns:1fr}.contact-form .form-row{grid-template-columns:1fr;gap:0}.footer-grid{grid-template-columns:1fr;gap:27px}.detail-gallery{grid-template-columns:1fr}.detail-gallery img{height:auto}.footer-bottom{gap:16px;flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
/* Lokální systémová písma – bez externího požadavku na fontové servery. */
body{font-family:'Segoe UI',Arial,sans-serif}h1,h2,h3,.brand-text,.footer-brand,.visual-label strong,.project-placeholder{font-family:'Segoe UI',Arial,sans-serif}

/* Kategorie krytin a popisky fotografií (1.1.0) */
.roof-types{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 34px}
.roof-type{display:inline-flex;padding:10px 15px;background:#f6f7f7;border:1px solid #e6e8e8;font-size:.88rem;font-weight:700;border-radius:3px;transition:background .2s,color .2s}
.roof-type:hover,.roof-type.is-current{background:var(--dark);color:white;border-color:var(--dark)}
.roof-folder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:65px}
.roof-folder{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 8px;padding:24px 25px;border:1px solid #e7e8e8;background:#f8f9f9;transition:transform .2s,border-color .2s}
.roof-folder:hover{border-color:#B20709;transform:translateY(-3px)}
.folder-icon{grid-column:1/-1;font-size:2.2rem;line-height:1;color:var(--red);margin-bottom:9px}
.folder-name{font-size:1.2rem;font-weight:800;grid-column:1;line-height:1.3}
.folder-count{grid-column:1;color:var(--mute);font-size:.82rem}
.folder-arrow{grid-row:2/4;grid-column:2;align-self:center;color:var(--red);font-size:1.3rem}
.portfolio-list-heading h2{font-size:2rem;margin-bottom:28px}
.project-krytina{display:block;color:var(--red);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-weight:800}
.detail-categories{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.detail-categories a{background:#fff;border:1px solid #dce0e2;padding:6px 13px;color:var(--red);font-size:.82rem;font-weight:750}
.detail-photo{margin:0;background:#f4f5f5;min-width:0}
.detail-photo a{display:block}
.detail-photo figcaption{padding:12px 15px;color:#515e67;font-size:.9rem;line-height:1.5}
@media(max-width:760px){.roof-folder-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.roof-folder{padding:22px 18px}}
@media(max-width:500px){.roof-folder-grid{grid-template-columns:1fr}.roof-types{gap:7px}.roof-type{padding:8px 12px;font-size:.82rem}}

/* NStřechy 1.2: dvě samostatně nastavitelná firemní loga. */
.site-header{height:116px}
.brand{flex:0 0 auto}
.brand img.header-logo{display:block;width:auto;height:auto;max-height:105px;max-width:235px;object-fit:contain}
.footer-identity{min-width:0}
.footer-logo{display:inline-block;line-height:0;max-width:100%}
.footer-logo-img{display:block;width:min(250px,100%);height:auto;max-width:100%;object-fit:contain}
@media(max-width:760px){
  .site-header{height:83px}
  .brand img.header-logo{max-height:72px;max-width:158px}
  .main-nav{top:83px}
}
@media(max-width:390px){.brand img.header-logo{max-height:66px;max-width:144px}}

/* v1.3 – přehledné právní údaje na samostatné stránce */
.footer-grid a.footer-legal-link{display:inline-block;color:#FFFFFF;text-decoration:underline;text-underline-offset:3px;font-weight:700}
.footer-grid a.footer-legal-link:hover{color:#fff}
.nst-legal-details{max-width:740px}
.nst-legal-details h2{margin:0 0 26px}
.nst-legal-details dl{margin:0;border-top:1px solid #e3e7e8}
.nst-legal-row{display:grid;grid-template-columns:minmax(155px,34%) 1fr;border-bottom:1px solid #e3e7e8;padding:15px 0;gap:20px}
.nst-legal-row dt{font-weight:700;color:#262728}
.nst-legal-row dd{margin:0;overflow-wrap:anywhere}
.nst-legal-row em{color:#A90508;font-style:normal}
@media(max-width:600px){.nst-legal-row{grid-template-columns:1fr;gap:4px}}



/* =============================================================
 NStřechy 1.4 – logomanuál 2.0 / říjen 2026
 Barvy: #B20709 / #262728 / #D50D14 / #A90508
 Montserrat is preferred. No remote Google Font calls (GDPR-friendly).
 Logo files are supplied artwork, only transparent excess was trimmed.
============================================================= */
:root{--red:#B20709;--red-dark:#A90508;--red-light:#D50D14;--ink:#262728;--dark:#262728;--paper:#fff;--off:#f6f6f6;--line:#e1e3e3}
body{font-family:'Montserrat','Segoe UI',Arial,sans-serif;color:var(--ink);line-height:1.58}
h1,h2,h3,.visual-label strong,.folder-name,.footer-grid strong{font-family:'Montserrat','Segoe UI',Arial,sans-serif;font-weight:800;letter-spacing:-.035em;line-height:1.16}
h1{letter-spacing:-.04em}
h2{letter-spacing:-.035em}
.main-nav>a,.hero-band span,.kicker,.eyebrow,.contact-method>span{font-family:'Montserrat','Segoe UI',Arial,sans-serif;font-weight:600}
.hero-lead,.services p,.section-head>p,.page-content,.contact-aside p,.detail-copy{line-height:1.55}
.site-header{height:auto;min-height:268px;background:#fff}
.header-inner{min-height:268px;gap:36px;padding-top:6px;padding-bottom:6px}
.brand{display:inline-flex;align-items:center;flex:0 0 auto;min-width:0;max-width:100%}
.brand picture{display:block;line-height:0}
.brand img.header-logo{display:block;width:440px;max-width:440px;height:auto;max-height:none;object-fit:contain}
.brand:focus-visible,.footer-logo:focus-visible{outline:3px solid var(--red);outline-offset:4px}
.main-nav{gap:clamp(13px,1.8vw,30px);flex-wrap:nowrap}
.main-nav>a{font-size:.83rem;white-space:nowrap}
.main-nav .nav-cta{background:var(--ink);color:#fff;padding:15px 19px}
.main-nav .nav-cta:hover{background:var(--red)}
.hero-visual{background:linear-gradient(135deg,#3A3C3E,#262728)}
.roof-a{background:#B20709}
.roof-c{background:#D50D14;opacity:.6}
.hero-content{padding-top:84px;padding-bottom:84px}
.hero h1{max-width:750px}
.red-rule{background:#B20709}
.btn-red{background:#B20709}
.btn-red:hover{background:#A90508}
.hero-band{background:#262728}
.service-icon,.service-arrow,.project-krytina,.kicker,.eyebrow{color:var(--red)}
.roof-type:hover,.roof-type.is-current{background:#262728;border-color:#262728;color:#fff}
.roof-folder:hover{border-color:#B20709}
.contact-section{background:#262728}
.contact-aside h2 em{color:#fff}
.kicker.light{color:#fff}
.contact-method a:hover{color:#fff;text-decoration:underline}
.form-topline{color:var(--red)}
.site-footer{background:#262728;color:#fff;padding:70px 0 26px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:65px;padding-bottom:35px;border-bottom:1px solid rgba(255,255,255,.23);margin-bottom:35px}
.footer-identity{display:flex;align-items:center;min-width:0}
.footer-logo{display:inline-flex;max-width:100%;align-items:center;line-height:0}
.footer-logo picture{line-height:0;display:block}
.footer-logo-img{width:440px;height:auto;max-width:100%;display:block;object-fit:contain}
.footer-intro{margin:0;line-height:1.65;max-width:310px;color:#f0f1f1;font-weight:500;font-size:1.05rem}
.footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:50px}
.footer-grid>div{gap:13px}
.footer-grid strong{color:#fff;font-size:.91rem}
.footer-grid a,.footer-grid p{font-size:.9rem;color:#e5e6e6;line-height:1.7}
.footer-grid a.footer-legal-link{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.footer-bottom{color:#dedfdf;border-top:1px solid rgba(255,255,255,.23);margin-top:42px}
.footer-bottom a{color:#fff;text-decoration:underline;text-underline-offset:4px}
.detail-photo figcaption{line-height:1.55}
.nst-legal-row{padding:18px 0}
.nst-legal-row dt{font-weight:700;color:#262728}
.nst-legal-row dd{font-weight:400}
@media(max-width:1199px){
 .site-header{min-height:130px}
 .header-inner{min-height:130px}
 .brand img.header-logo{width:238px;max-width:238px;height:auto;max-height:none}
 .main-nav{gap:16px}
 .main-nav>a{font-size:.81rem}
 .footer-logo-img{width:440px}
}
@media(max-width:860px){
 .site-header{min-height:96px}
 .header-inner{min-height:96px}
 .brand img.header-logo{width:220px;max-width:220px}
 .main-nav{gap:9px}
 .main-nav>a{font-size:.76rem}
 .main-nav .nav-cta{padding:10px}
 .footer-top{gap:25px}
 .footer-logo-img{width:360px}
}
@media(max-width:760px){
 .site-header{min-height:94px;height:auto}
 .header-inner{min-height:94px;padding:0}
 .brand img.header-logo{width:220px;max-width:220px;height:auto;max-height:none}
 .main-nav{top:94px;gap:20px;padding:24px}
 .main-nav>a{font-size:1rem}
 .footer-top{display:block;padding-bottom:26px;margin-bottom:30px}
 .footer-logo-img{width:230px;max-width:100%}
 .footer-intro{margin-top:14px;font-size:.92rem}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
 .hero-content{padding-top:60px;padding-bottom:55px}
}
@media(max-width:500px){
 .header-inner{min-height:86px}
 .site-header{min-height:86px}
 .brand img.header-logo{width:220px;max-width:220px}
 .main-nav{top:86px}
 .footer-grid{grid-template-columns:1fr}
 .footer-logo-img{width:230px}
 .hero h1{letter-spacing:-.035em}
}


/* =============================================================
 NStřechy 1.4.1 – menší firemní loga, kompaktnější hlavička a patička.
 Zachována barevnost, proporce i varianty schválené značky.
============================================================= */
.site-header{height:auto;min-height:122px}
.header-inner{min-height:122px;padding-top:7px;padding-bottom:7px}
.brand img.header-logo{width:180px;max-width:180px;height:auto;max-height:none;object-fit:contain}
.site-footer{padding-top:48px}
.footer-top{gap:35px;padding-bottom:25px;margin-bottom:28px}
.footer-logo-img{width:210px;max-width:100%;height:auto;object-fit:contain}
@media (max-width:1199px){
 .site-header{min-height:108px}
 .header-inner{min-height:108px}
 .brand img.header-logo{width:170px;max-width:170px}
 .footer-logo-img{width:200px}
}
@media (max-width:860px){
 .site-header{min-height:96px}
 .header-inner{min-height:96px}
 .brand img.header-logo{width:155px;max-width:155px}
 .footer-logo-img{width:195px}
}
@media (max-width:760px){
 .site-header{min-height:85px}
 .header-inner{min-height:85px}
 .brand img.header-logo{width:155px;max-width:155px}
 .main-nav{top:85px}
 .footer-logo-img{width:190px}
}
@media (max-width:500px){
 .site-header{min-height:78px}
 .header-inner{min-height:78px}
 .brand img.header-logo{width:146px;max-width:146px}
 .main-nav{top:78px}
 .footer-logo-img{width:185px}
}



/* =============================================================
   NStřechy v1.4.4 – úsporná jednořádková patička na desktopu.
   Oddělená pravidla kvůli aktualizacím stávajícího tématu.
   ============================================================= */
.site-footer{padding:38px 0 21px}
.footer-grid.footer-grid-v144{
  display:grid;
  grid-template-columns:minmax(165px,1.04fr) minmax(125px,.86fr) minmax(195px,1.12fr) minmax(165px,1fr);
  column-gap:clamp(22px,3.2vw,46px);
  row-gap:0;
  align-items:start;
}
.footer-grid.footer-grid-v144>div{min-width:0;gap:10px}
.footer-grid-v144 .footer-brand-panel{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}
.footer-grid-v144 .footer-logo{display:inline-flex;max-width:100%;line-height:0}
.footer-grid-v144 .footer-logo-img{width:175px;max-width:100%;height:auto;display:block;object-fit:contain}
.footer-grid-v144 .footer-owner p{margin:0}
.footer-grid-v144 a{overflow-wrap:anywhere}
.footer-bottom{margin-top:30px;padding-top:18px}
@media(max-width:900px){
  .footer-grid.footer-grid-v144{column-gap:24px;grid-template-columns:minmax(140px,1fr) minmax(105px,.75fr) minmax(165px,1.15fr) minmax(125px,.9fr)}
  .footer-grid-v144 .footer-logo-img{width:155px}
}
@media(max-width:760px){
  .footer-grid.footer-grid-v144{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 26px}
  .footer-grid-v144 .footer-logo-img{width:158px}
}
@media(max-width:500px){
  .footer-grid.footer-grid-v144{grid-template-columns:1fr;row-gap:24px}
  .footer-grid-v144 .footer-logo-img{width:155px}
  .footer-bottom{margin-top:27px}
}


/* =============================================================
 NStřechy 1.4.5 – ÚVODNÍ FOTOGRAFIE PŘES CELOU ŠÍŘKU HERO SEKCE
 Fotografie nastavená v Přizpůsobit pokrývá i prostor za nadpisem.
 Tmavý přechod zleva zajišťuje kontrast textu, bez červené grafiky.
 Při nevybrané fotografii zůstává původní dvousloupcový vzhled.
============================================================= */
.hero--photo .hero-main {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #262728;
}
.hero--photo .hero-full-image {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  display: block;
  object-fit: cover;
  object-position: center 48%;
}
.hero--photo .hero-main::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg,
    rgba(18, 22, 26, .88) 0%,
    rgba(18, 22, 26, .77) 27%,
    rgba(18, 22, 26, .51) 55%,
    rgba(18, 22, 26, .12) 100%);
}
.hero--photo .hero-grid {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  min-height: 620px;
}
.hero--photo .hero-content {
  width: min(760px, 77%);
  max-width: 100%;
  padding: 95px 0 85px;
}
.hero--photo h1 {
  color: #fff;
  max-width: 740px;
  text-shadow: 0 2px 16px rgba(0,0,0,.12);
}
.hero--photo .eyebrow { color: #fff; }
.hero--photo .red-rule { background: #D50D14; }
.hero--photo .hero-lead { color: #f4f4f4; max-width: 575px; }
.hero--photo .hero-actions .text-link { color: #fff; }
.hero--photo .hero-actions .text-link:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.hero--photo .hero-trust { color: #f3f3f3; margin-top: 54px; }
.hero--photo .trust-line { background: rgba(255,255,255,.7); }
.hero--photo .hero-actions a:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 5px;
}
@media (max-width: 1050px) {
  .hero--photo .hero-grid { min-height: 560px; }
  .hero--photo .hero-content { width: min(690px, 86%); padding: 75px 0; }
}
@media (max-width: 760px) {
  .hero--photo .hero-grid { min-height: 550px; display: flex; }
  .hero--photo .hero-content { width: 100%; padding: 70px 0 65px; }
  .hero--photo .hero-full-image { object-position: 57% center; }
  .hero--photo .hero-main::before {
    background: linear-gradient(90deg, rgba(18,22,26,.82), rgba(18,22,26,.66)),
                linear-gradient(0deg, rgba(18,22,26,.20), transparent 65%);
  }
  .hero--photo .hero-trust { margin-top: 43px; }
}
@media (max-width: 500px) {
  .hero--photo .hero-grid { min-height: 580px; }
  .hero--photo .hero-content { padding: 56px 0 50px; }
  .hero--photo h1 { font-size: clamp(2.7rem, 11vw, 4.4rem); }
  .hero--photo .hero-lead { font-size: 1rem; line-height: 1.65; }
  .hero--photo .hero-actions { gap: 19px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero--photo * { scroll-behavior: auto; }
}


/* =============================================================
 NStřechy 1.4.6 – celoplošná úvodní fotografie, šest služeb 3 × 2.
 Spravovatelné texty služeb; jiné sekce webu zůstávají beze změny.
============================================================= */
.hero--photo .hero-lead{max-width:675px;font-size:1.09rem;line-height:1.65;text-wrap:pretty}
.hero--photo .hero-content{width:min(790px,82%)}
.hero--photo .hero-grid{min-height:655px}
.hero--photo .hero-trust{margin-top:44px}
.services-grid--six{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.service-card--v146{display:flex;flex-direction:column;min-width:0;min-height:292px;padding:30px 29px 27px;border:1px solid #e6e8e8;border-top:3px solid transparent;transition:border-color .2s,transform .2s,box-shadow .2s}
.service-card--v146:hover{border-top-color:var(--red)}
.service-card--v146 .service-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:25px}
.service-card--v146 .service-num{font-size:.75rem;letter-spacing:.08em;color:#727779;font-weight:700}
.service-card--v146 .service-num span{color:#a0a6a8}
.service-card--v146 .service-card-symbol{display:block;width:49px;height:49px;color:var(--red);flex:none}
.service-card--v146 .service-card-symbol svg{width:100%;height:100%;display:block}
.service-card--v146 h3{margin:0 0 12px;font-size:clamp(1.12rem,1.32vw,1.35rem);line-height:1.28;letter-spacing:-.023em;text-wrap:balance}
.service-card--v146 p{color:#62686c;line-height:1.65;font-size:.92rem;max-width:none;margin:0 0 22px}
.service-card--v146 .service-card-link{margin-top:auto;display:inline-flex;gap:9px;align-items:center;align-self:flex-start;font-size:.82rem;font-weight:800;color:var(--red);text-underline-offset:4px}
.service-card--v146 .service-card-link:hover{text-decoration:underline}
.service-card--v146 .service-card-link:focus-visible{outline:3px solid var(--red);outline-offset:5px}
@media(max-width:1050px){
 .services-grid--six{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero--photo .hero-content{width:min(735px,92%)}
}
@media(max-width:760px){
 .hero--photo .hero-grid{min-height:610px}
 .hero--photo .hero-content{width:100%;padding:75px 0 65px}
 .hero--photo .hero-lead{font-size:1rem;line-height:1.65}
 .services-grid--six{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 .service-card--v146{min-height:286px;padding:25px 22px 22px}
 .service-card--v146 .service-card-top{margin-bottom:19px}
}
@media(max-width:580px){
 .hero--photo .hero-grid{min-height:685px}
 .hero--photo .hero-content{padding:63px 0 57px}
 .hero--photo .hero-trust{margin-top:32px}
 .services-grid--six{grid-template-columns:1fr}
 .service-card--v146{min-height:0;padding:27px 25px}
 .service-card--v146 .service-card-top{margin-bottom:15px}
 .service-card--v146 h3{font-size:1.2rem}
}


/* ===========================================================
 NStřechy 1.4.7 | Úvod s tradicí, jemná interaktivní galerie služeb,
 jednotné technické ilustrace a čitelnější navigace.
 JS selhání neblokuje vodorovný scroll / swipe karet.
=========================================================== */
@media (min-width: 761px) {
 .main-nav { gap:clamp(19px,2vw,30px); }
 .main-nav > a { font-size:.965rem; font-weight:700; }
 .main-nav .nav-cta { padding:14px 20px; }
}
@media (min-width:761px) and (max-width:1100px) {
 .main-nav { gap:clamp(11px,1.35vw,18px); }
 .main-nav > a { font-size:.88rem; }
 .main-nav .nav-cta { padding:12px 13px; }
}
@media (max-width:760px) {
 .main-nav > a { font-size:1.02rem; }
}
.hero-tagline {
 margin:0 0 15px;
 font-family:'Montserrat','Segoe UI',Arial,sans-serif;
 font-size:clamp(1.15rem,1.7vw,1.48rem);
 font-weight:750;
 line-height:1.38;
 letter-spacing:-.02em;
 color:var(--ink);
}
.hero--photo .hero-tagline { color:#fff; }
.hero--photo .hero-content { width:min(820px,86%); padding:78px 0 72px; }
.hero--photo .hero-grid { min-height:710px; }
.hero--photo h1 { font-size:clamp(3rem,5vw,5.25rem); max-width:790px; margin-bottom:20px; }
.hero--photo .hero-lead { max-width:750px; font-size:1.045rem; line-height:1.66; margin:0; text-wrap:pretty; }
.hero--photo .hero-actions { margin-top:27px; }
.hero--photo .hero-trust { margin-top:37px; }
.hero--photo .hero-main::before {
 background:linear-gradient(90deg,rgba(15,20,24,.91) 0%,rgba(15,20,24,.79) 35%,rgba(15,20,24,.49) 72%,rgba(15,20,24,.26) 100%);
}
.services-intro { align-items:flex-end; gap:45px; }
.services-intro-side { width:min(335px,100%); flex:0 0 auto; }
.services-intro-side > p { margin:0 0 21px; color:var(--mute); line-height:1.7; font-size:.94rem; }
.services-controls { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.services-counter { font-family:'Montserrat','Segoe UI',Arial,sans-serif; font-variant-numeric:tabular-nums; font-size:.81rem; color:#92999d; font-weight:700; letter-spacing:.07em; }
.services-counter strong { color:var(--red); font-size:1.22rem; font-weight:800; }
.services-controls-buttons { display:flex; gap:8px; }
.services-arrow { width:48px; height:48px; background:#fff; border:1px solid #d7d9da; color:var(--ink); border-radius:2px; display:grid; place-items:center; transition:background .2s,color .2s,border-color .2s; }
.services-arrow svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.services-arrow:hover:not(:disabled) { color:#fff; background:var(--red); border-color:var(--red); }
.services-arrow:disabled { cursor:default; opacity:.32; }
.services-arrow:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
.services-carousel { position:relative; min-width:0; }
.services-track {
 --services-gap:22px;
 display:flex; gap:var(--services-gap); overflow-x:auto; overscroll-behavior-x:contain;
 padding:4px 1px 20px; margin:0 -1px;
 scroll-snap-type:x mandatory; scroll-padding-inline:1px;
 scrollbar-width:none; -webkit-overflow-scrolling:touch; scroll-behavior:smooth;
}
.services-track::-webkit-scrollbar { display:none; }
.services-track:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
.services-track .service-card--v147 {
 flex:0 0 calc((100% - 2 * var(--services-gap)) / 3);
 min-width:0; min-height:345px; display:flex; flex-direction:column; scroll-snap-align:start;
 padding:29px 30px 29px; background:#fff;
 border:1px solid #e2e5e5; border-top:3px solid transparent;
 transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.services-track .service-card--v147:hover { border-top-color:var(--red); transform:translateY(-3px); box-shadow:0 15px 32px rgba(38,39,40,.085); }
.services-track .service-card--v147 .service-card-top { display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:26px; }
.services-track .service-card--v147 .service-num { font-size:.75rem; color:#757d80; font-weight:700; letter-spacing:.095em; }
.services-track .service-card--v147 .service-num span { color:#a1a7a9; }
.services-track .service-card--v147 .service-card-symbol { width:74px; height:74px; display:block; flex:0 0 74px; color:var(--red); background:rgba(178,7,9,.045); border-radius:2px; padding:10px; }
.services-track .service-card--v147 .service-card-symbol svg { width:100%;height:100%;display:block; }
.services-track .service-card--v147 h3 { font-size:clamp(1.13rem,1.4vw,1.37rem);letter-spacing:-.026em;line-height:1.32;margin:0 0 11px;text-wrap:balance; }
.services-track .service-card--v147 p { font-size:.94rem;color:#62696d;line-height:1.64;margin:0 0 23px;max-width:none; }
.services-track .service-card--v147 .service-card-link { margin-top:auto;display:inline-flex;align-self:flex-start;align-items:center;gap:11px;font-size:.83rem;font-weight:800;color:var(--red);text-underline-offset:4px; }
.services-track .service-card--v147 .service-card-link:hover { text-decoration:underline; }
.services-track .service-card--v147 .service-card-link:focus-visible { outline:3px solid var(--red);outline-offset:4px; }
.services-progress { height:3px;background:#dedfdf;margin-top:8px; overflow:hidden; }
.services-progress span { display:block;height:100%;width:50%;background:var(--red);transform:translateX(0);transition:width .25s,transform .25s; }
@media (max-width:1050px) {
 .services-track .service-card--v147 { flex-basis:calc((100% - var(--services-gap)) / 2); min-height:332px; }
 .hero--photo .hero-content { width:min(760px,96%); }
 .hero--photo h1 { font-size:clamp(3rem,5.3vw,4.7rem); }
}
@media (max-width:760px) {
 .hero--photo .hero-grid { min-height:unset; }
 .hero--photo .hero-content { padding:72px 0 67px; width:100%; }
 .hero--photo h1 { font-size:clamp(2.75rem,10vw,4.8rem); }
 .hero--photo .hero-tagline { font-size:1.16rem; }
 .hero--photo .hero-lead { font-size:1rem;line-height:1.62; }
 .hero--photo .hero-main::before { background:linear-gradient(90deg,rgba(15,20,24,.88),rgba(15,20,24,.69)),linear-gradient(0deg,rgba(15,20,24,.15),transparent 75%); }
 .services-intro { display:block; }
 .services-intro-side { width:100%; display:flex;align-items:flex-end;justify-content:space-between;gap:20px; margin-top:19px; }
 .services-intro-side > p { max-width:480px; margin:0; }
 .services-controls { gap:15px;flex:0 0 auto; }
 .services-counter { display:none; }
}
@media (max-width:650px) {
 .services-track { --services-gap:14px; margin-right:-18px; padding-right:18px; }
 .services-track .service-card--v147 { flex-basis: min(82vw,350px); min-height:330px; padding:27px 24px 26px; }
 .services-track .service-card--v147 .service-card-symbol { width:68px;height:68px;flex-basis:68px; }
 .services-intro-side { display:block; }
 .services-intro-side > p { max-width:none; margin:0 0 18px; }
 .services-controls { justify-content:flex-end; }
 .services-arrow { width:44px;height:44px; }
 .hero--photo .hero-content { padding:58px 0 53px; }
 .hero--photo .hero-trust { margin-top:29px; }
 .hero--photo .hero-actions { margin-top:23px; }
}
@media (prefers-reduced-motion: reduce) {
 .services-track { scroll-behavior:auto !important; }
 .services-track .service-card--v147, .services-progress span { transition:none !important; }
}


/* ===========================================================
 NStřechy v1.4.8 – čisté liniové ikony, bez číslování,
 motivy druhů krytin a stručná spodní lišta.
=========================================================== */
/* The previous hero note is gone in PHP; leave no residual spacing. */
.hero-content .hero-actions { margin-bottom:0; }
.hero--photo .hero-grid { min-height:660px; }
.hero--photo .hero-content { padding-top:72px; padding-bottom:65px; }
/* Cards: remove placeholder pink backgrounds; line art on pure white. */
.services-track .service-card--v147 .service-card-top {
 justify-content:flex-end;
 min-height:70px;
 margin-bottom:23px;
}
.services-track .service-card--v147 .service-card-symbol {
 width:76px;height:76px;flex-basis:76px;
 background:#fff;
 border:1px solid #e7e7e7;
 border-radius:3px;
 color:var(--red);
 padding:9px;
}
.services-track .service-card--v147 .service-card-symbol svg { width:100%;height:100%; }
/* Portfolio category cards now use dedicated, scalable roofing symbols. */
.roof-folder .folder-icon {
 display:grid;place-items:center;
 width:66px;height:66px;
 margin:0 0 15px;
 padding:8px;
 background:#fff;
 border:1px solid #e5e6e6;
 color:var(--red);
 font-size:initial;
 line-height:1;
}
.roof-folder .folder-icon svg { display:block;width:100%;height:100%; }
.roof-folder:focus-visible { outline:3px solid var(--red);outline-offset:3px; }
.footer-bottom-links {display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;}
.footer-bottom-links a {color:#fff;text-decoration:underline;text-underline-offset:4px;}
.footer-bottom-links a:focus-visible {outline:2px solid #fff;outline-offset:4px;}
@media (max-width:760px) {
 .hero--photo .hero-grid { min-height:0; }
 .services-track .service-card--v147 .service-card-symbol {width:70px;height:70px;flex-basis:70px;}
 .footer-bottom { align-items:flex-start; }
}
@media (max-width:500px) {
 .footer-bottom-links {gap:9px 18px;}
}


/* =========================================================
 NStřechy 1.4.9 – dodané PNG ikony / volné symboly bez rámečků,
 kontinuální vodorovný posuv s náhledem další karty a okrajovým fade.
 ========================================================= */
/* Potlačení starých šedých/červených čtverců kolem ikon. */
.services-track .service-card .service-card-symbol,
.services-track .service-card--v149 .service-card-symbol {
 display:flex; align-items:center; justify-content:center;
 width:88px; height:88px; flex:0 0 88px;
 padding:0; border:0; box-shadow:none;
 border-radius:0; background:transparent;
}
.services-track .service-card .service-card-symbol img,
.services-track .service-card--v149 .service-card-symbol img {
 display:block; width:88px; height:88px; max-width:100%; object-fit:contain;
}
.services-track .service-card--v149 .service-card-top { display:flex; min-height:88px; align-items:center; justify-content:flex-end; margin-bottom:22px; }
.roof-folder .folder-icon {
 display:flex;align-items:center;justify-content:center;
 width:76px;height:76px;
 margin:0 0 14px;
 padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;
}
.roof-folder .folder-icon img {display:block;width:76px;height:76px;object-fit:contain;}

/* Každá karta je součástí jedné horizontální řady; čtvrtá prosvítá za okrajem. */
.services-carousel { position:relative; min-width:0; }
.services-track {
 --services-gap:20px;
 display:flex;
 gap:var(--services-gap);
 overflow-x:auto;
 overflow-y:hidden;
 padding:7px 1px 23px;
 scroll-snap-type:x proximity;
 scroll-padding-inline:1px;
 scroll-behavior:smooth;
 overscroll-behavior-x:contain;
 scrollbar-width:none;
 -webkit-overflow-scrolling:touch;
 cursor:grab;
 touch-action:pan-x pan-y;
 -webkit-mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 118px),transparent 100%);
 mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 118px),transparent 100%);
}
.services-track::-webkit-scrollbar {display:none;}
.services-track.is-dragging {
 cursor:grabbing;
 scroll-snap-type:none;
 scroll-behavior:auto !important;
 user-select:none;
 -webkit-user-select:none;
}
.services-track .service-card--v149 {
 flex:0 0 calc((100% - 2 * var(--services-gap)) / 3.20);
 min-width:0;
 min-height:337px;
 display:flex;
 flex-direction:column;
 scroll-snap-align:start;
 padding:27px 28px 28px;
 border:1px solid #e2e5e5;
 border-top:3px solid transparent;
 background:#fff;
 transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.services-track .service-card--v149:hover {
 transform:translateY(-3px);
 border-top-color:var(--red);
 box-shadow:0 15px 32px rgba(38,39,40,.085);
}
.services-track .service-card--v149 h3 {
 margin:0 0 11px;
 font-size:clamp(1.13rem,1.4vw,1.37rem);
 letter-spacing:-.026em;
 line-height:1.32;
 text-wrap:balance;
}
.services-track .service-card--v149 p {
 font-size:.94rem;color:#62696d;line-height:1.64;margin:0 0 23px;max-width:none;
}
.services-track .service-card--v149 .service-card-link {
 margin-top:auto;display:inline-flex;align-self:flex-start;
 align-items:center;gap:11px;font-size:.83rem;font-weight:800;
 color:var(--red);text-underline-offset:4px;
}
.services-track .service-card--v149 .service-card-link:hover {text-decoration:underline;}
.services-track .service-card--v149 .service-card-link:focus-visible {outline:3px solid var(--red);outline-offset:4px;}
/* Jakmile jsme dojeli na konec, poslední karta zůstane plně čitelná. */
.services-carousel[data-edge="end"] .services-track { 
 -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 60px,#000 100%);
 mask-image:linear-gradient(to right,transparent 0%,#000 60px,#000 100%);
}
.services-carousel[data-edge="middle"] .services-track {
 -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 60px,#000 calc(100% - 118px),transparent 100%);
 mask-image:linear-gradient(to right,transparent 0%,#000 60px,#000 calc(100% - 118px),transparent 100%);
}
.services-carousel[data-edge="all"] .services-track { -webkit-mask-image:none; mask-image:none; cursor:auto; }
.services-progress {margin-top:6px;}
@media (max-width:1050px) {
 .services-track .service-card--v149 {flex-basis:calc((100% - var(--services-gap)) / 2.2);min-height:340px;}
}
@media (max-width:650px) {
 .services-track {--services-gap:14px; margin:0 -10px; padding:6px 10px 22px;}
 .services-track .service-card--v149 {flex-basis:min(77vw,334px);min-height:315px;padding:24px 23px;}
 .services-track .service-card--v149 .service-card-symbol {width:76px;height:76px;flex-basis:76px;}
 .services-track .service-card--v149 .service-card-symbol img {width:76px;height:76px;}
 .services-track .service-card--v149 .service-card-top {min-height:76px;}
}
@media (prefers-reduced-motion:reduce) {
 .services-track {scroll-behavior:auto !important;}
 .services-track .service-card--v149,.services-progress span {transition:none !important;}
}

/* 1.4.11 – oddělení odkazu zpět a štítku na detailu realizace. */
.detail-heading-intro {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:22px;
}
.detail-heading-intro .detail-back-link {
  display:inline-flex;
  align-items:center;
  margin:0;
  line-height:1.5;
}
.detail-heading-intro .detail-kicker {
  display:block;
  line-height:1.5;
  margin:0;
}
@media(max-width:760px) {
  .detail-heading-intro {gap:18px;}
}


/* ================================================================
 NStřechy 1.4.12 – šest nejnovějších realizací ve vodorovném posuvu.
 Ovlivňuje pouze přehled realizací na homepage, nikoliv archiv galerie.
================================================================ */
.portfolio-intro { align-items:flex-end; }
.portfolio-intro-side { display:flex; flex-direction:column; align-items:flex-end; gap:22px; flex:0 0 auto; }
.portfolio-intro-side .text-link { margin:0; }
.projects-controls { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.projects-carousel { position:relative; min-width:0; }
.projects-carousel [data-projects-announcement] {
 position:absolute; width:1px; height:1px; padding:0; margin:-1px;
 overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.projects-track {
 --projects-gap:22px;
 display:flex;
 gap:var(--projects-gap);
 overflow-x:auto;
 overflow-y:hidden;
 margin:0;
 padding:5px 1px 22px;
 scroll-snap-type:x proximity;
 scroll-padding-inline:1px;
 scroll-behavior:smooth;
 overscroll-behavior-x:contain;
 scrollbar-width:none;
 -webkit-overflow-scrolling:touch;
 cursor:grab;
 -webkit-mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 108px),transparent 100%);
 mask-image:linear-gradient(to right,#000 0%,#000 calc(100% - 108px),transparent 100%);
}
.projects-track::-webkit-scrollbar { display:none; }
.projects-track:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
.projects-track.is-dragging {
 cursor:grabbing;
 scroll-behavior:auto !important;
 scroll-snap-type:none;
 user-select:none;
 -webkit-user-select:none;
}
.projects-track .project-slide {
 flex:0 0 calc((100% - 2 * var(--projects-gap)) / 3.18);
 min-width:0;
 scroll-snap-align:start;
 display:block;
}
.projects-track .project-slide:focus-visible { outline:3px solid var(--red); outline-offset:-3px; }
.projects-track .project-image { width:100%; }
.projects-track .project-slide { display:flex; flex-direction:column; }
.projects-track .project-title { flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding-top:17px; }
.projects-track .project-title > div { min-width:0; width:100%; }
.projects-track .project-title > span { margin-top:auto; white-space:normal; }
.projects-track .project-krytina { overflow-wrap:anywhere; }
/* Fade se při posunu obrátí: na konci je poslední realizace celá vidět. */
.projects-carousel[data-edge="middle"] .projects-track {
 -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 55px,#000 calc(100% - 108px),transparent 100%);
 mask-image:linear-gradient(to right,transparent 0%,#000 55px,#000 calc(100% - 108px),transparent 100%);
}
.projects-carousel[data-edge="end"] .projects-track {
 -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 55px,#000 100%);
 mask-image:linear-gradient(to right,transparent 0%,#000 55px,#000 100%);
}
.projects-carousel[data-edge="all"] .projects-track {
 -webkit-mask-image:none; mask-image:none; cursor:auto;
}
.projects-progress { height:3px; background:#dedfdf; margin-top:7px; overflow:hidden; }
.projects-progress span {
 display:block; height:100%; width:50%; background:var(--red);
 transform:translateX(0); transition:width .25s, transform .25s;
}
.projects-carousel[data-edge="all"] .projects-progress { display:none; }
.projects-controls[data-static="true"] { display:none; }
@media (max-width:1050px) {
 .projects-track .project-slide { flex-basis:calc((100% - var(--projects-gap)) / 2.22); }
}
@media (max-width:760px) {
 .portfolio-intro { gap:23px; }
 .portfolio-intro-side { align-items:flex-start; gap:16px; }
 .projects-controls .services-arrow { width:44px; height:44px; }
}
@media (max-width:650px) {
 .projects-track { --projects-gap:14px; margin:0 -10px; padding:4px 10px 22px; }
 .projects-track .project-slide { flex-basis:min(78vw,330px); }
 .portfolio-intro-side { flex-direction:row; align-items:center; flex-wrap:wrap; justify-content:space-between; width:100%; }
 .portfolio-intro-side .text-link { white-space:normal; }
 .portfolio-intro { display:block; }
 .portfolio-intro-side { margin-top:20px; }
}
@media (prefers-reduced-motion:reduce) {
 .projects-track { scroll-behavior:auto !important; }
 .projects-progress span { transition:none !important; }
}

/* v1.4.13 – velký čistý náhled fotografií realizací s volitelným označeným stažením */
.nst-photo-open { position:relative; display:block; width:100%; border:0; padding:0; background:transparent; cursor:zoom-in; text-align:inherit; }
.nst-photo-open img { width:100%; height:330px; object-fit:cover; display:block; transition:transform .25s ease; }
.nst-photo-open:hover img { transform:scale(1.018); }
.nst-photo-open:focus-visible { outline:3px solid var(--red); outline-offset:4px; }
.nst-photo-zoom { position:absolute; right:12px; bottom:12px; padding:6px 10px; background:rgba(25,29,33,.8); color:white; font-weight:700; font-size:.74rem; }
.nst-lightbox[hidden], .nst-lightbox *[hidden] { display:none !important; }
.nst-lightbox { position:fixed; inset:0; z-index:99999; display:grid; place-items:center; padding:16px; }
.nst-lightbox-backdrop { position:absolute; inset:0; background:rgba(7,10,14,.93); }
.nst-lightbox-panel { position:relative; width:min(1200px,100%); max-height:calc(100dvh - 32px); display:flex; flex-direction:column; color:white; }
.nst-lightbox-header { display:flex; align-items:center; justify-content:space-between; padding:0 4px 9px; }
.nst-lightbox-count { font-size:.8rem; letter-spacing:.08em; }
.nst-lightbox-close { width:44px; height:44px; border:0; background:transparent; color:white; font-size:2rem; line-height:1; }
.nst-lightbox-close:focus-visible,.nst-lightbox-nav:focus-visible,.nst-lightbox-download:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.nst-lightbox-image-row { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:12px; align-items:center; min-height:0; }
.nst-lightbox-image-row img { display:block; justify-self:center; max-width:100%; max-height:calc(100dvh - 185px); width:auto; height:auto; object-fit:contain; }
.nst-lightbox-nav { width:44px; height:60px; border:1px solid #ffffff55; color:white; background:#252a31; font-size:2.4rem; line-height:1; }
.nst-lightbox-nav:hover,.nst-lightbox-close:hover { background:#414851; }
.nst-lightbox-bottom { padding:17px 60px 3px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; }
.nst-lightbox-bottom p { margin:0; line-height:1.5; color:#eceeef; }
.nst-lightbox-download { display:inline-flex; align-items:center; padding:10px 17px; min-height:42px; background:var(--red); color:white; border-radius:2px; font-weight:800; font-size:.85rem; }
.nst-lightbox-download:hover { background:var(--red-dark); }
@media(max-width:760px) {
  .nst-photo-open img { height:250px; }
  .nst-lightbox {padding:9px;}
  .nst-lightbox-panel {max-height:calc(100dvh - 18px);}
  .nst-lightbox-image-row { grid-template-columns:32px minmax(0,1fr) 32px; gap:3px; }
  .nst-lightbox-nav {width:32px;height:52px;font-size:1.9rem;}
  .nst-lightbox-image-row img {max-height:calc(100dvh - 204px);}
  .nst-lightbox-bottom {padding:13px 35px 5px;}
}
@media(max-width:500px) { .nst-photo-open img {height:auto;} }
@media(prefers-reduced-motion:reduce) { .nst-photo-open img {transition:none;} }

/* v1.4.14 – galerie je určena k prohlížení, nikoli jako nabídka ke stažení.
   Omezení kontextové nabídky nechrání proti získání souboru z webového provozu. */
.project-image, .detail-gallery .nst-photo-open, .nst-lightbox-image-row {
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}
.project-image img, .detail-gallery .nst-photo-open img, .nst-lightbox-image-row img {
  -webkit-user-drag:none;
  user-select:none;
  -webkit-user-select:none;
  -webkit-touch-callout:none;
  pointer-events:none;
}

/* NStřechy 1.4.15: zamezení běžné nabídky uložit a přetažení obrázků.
   Odkazy na homepage, galerii a jednotlivé realizace zůstávají klikatelné.
   Nechrání přímé URL originálů ani screenshoty. */
img,
picture,
.site-header .brand,
.site-footer .footer-logo,
.hero--photo .hero-main {
  -webkit-touch-callout: none;
}
img,
picture {
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}
.hero-full-image,
.header-logo,
.footer-logo-img {
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}


/* NStřechy 1.4.17 – stejné úplné logo na všech zařízeních.
 * Na mobilu se zmenšuje pouze měřítko, nikoli varianta loga.
 * Výšky hlavičky zohledňují poměr stran loga a horní/spodní odsazení. */
@media(max-width:1199px) {
  .site-header, .header-inner { min-height:121px; }
}
@media(max-width:860px) {
  .site-header, .header-inner { min-height:111px; }
}
@media(max-width:760px) {
  .site-header, .header-inner { min-height:119px; }
  .brand img.header-logo { width:165px; max-width:165px; }
  .main-nav { top:119px; }
}
@media(max-width:500px) {
  .site-header, .header-inner { min-height:111px; }
  .brand img.header-logo { width:155px; max-width:155px; }
  .main-nav { top:111px; }
}
@media(max-width:360px) {
  .site-header, .header-inner { min-height:105px; }
  .brand img.header-logo { width:145px; max-width:145px; }
  .main-nav { top:105px; }
}
