
:root{--roof:#a45149;--cream:#f8f4ef;--pink:#eccac0;--sage:#d5dfc7;--ink:#392f2b;--muted:#74635d;--line:#d8c7bf}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid var(--roof);outline-offset:6px}.wrap{width:min(1280px,calc(100% - 96px));margin:auto}header{padding:38px 0;border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.brand{font-size:clamp(26px,3vw,40px);font-weight:750;letter-spacing:-1.8px;color:var(--roof);white-space:nowrap}.brand span{font-weight:400}nav{display:flex;gap:30px;align-items:center;font-size:14px}nav a{padding:10px 0;border-bottom:1px solid transparent}nav a:hover{border-color:var(--roof);color:var(--roof)}nav .quote{padding:13px 20px;background:var(--roof);color:white;border-radius:4px}.hero{position:relative;display:flex;align-items:center;min-height:640px;padding:76px 0 86px;isolation:isolate}.hero-content{position:relative;z-index:1}.hero-content h1{max-width:850px}.hero-photo{position:absolute;inset:0;z-index:-1;background-color:var(--pink);background-image:linear-gradient(90deg,rgba(248,244,239,.96),rgba(248,244,239,.75) 48%,rgba(248,244,239,.12)),var(--hero-image,none);background-size:cover;background-position:center;border-radius:0;transform:none}.hero-photo span{position:absolute;right:12%;top:50%;color:var(--muted);font-size:13px;letter-spacing:2px}.eyebrow{display:block;font-size:11px;text-transform:uppercase;letter-spacing:2.5px;font-weight:700;color:var(--roof);margin-bottom:25px}h1{margin:0;font-family:Georgia,serif;font-size:clamp(48px,5.7vw,80px);font-weight:400;line-height:1.07;letter-spacing:-3px}h1 em{color:var(--roof);font-weight:400}.intro{max-width:390px;color:var(--muted);font-size:17px;line-height:1.8;margin:27px 0 32px}.button{display:inline-flex;align-items:center;gap:35px;background:var(--roof);color:white;padding:17px 23px;border-radius:4px;font-size:14px}.button:hover{background:#61352f}.photo{background:white;border:1px solid var(--line);min-height:250px;display:grid;place-items:center;color:var(--muted);font-size:13px;letter-spacing:2px}.section{padding:72px 0}.gallery{background:var(--pink)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}h2{font-family:Georgia,serif;font-size:clamp(32px,4vw,46px);font-weight:400;letter-spacing:-1px;margin:0}.section-head p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.photos .photo{aspect-ratio:4/3;border-radius:5px}.offer{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.offer-copy{border-left:1px solid var(--line);padding-left:50px}.offer p,.about p{color:var(--muted);line-height:1.8;max-width:480px}.questions{background:var(--sage)}.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}details{border-bottom:1px solid #bac3b0;padding:22px 0}details:first-child{padding-top:0}summary{cursor:pointer;font-size:17px;line-height:1.5}details p{color:#56604e;font-size:15px;line-height:1.8;margin-bottom:0}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about .photo{min-height:310px;border-radius:5px}.owner{display:block;margin-top:28px;color:var(--roof);font-size:20px;font-family:Georgia,serif}.owner small{font-weight:550;display:block;font:12px Arial,sans-serif;margin-top:8px;color:var(--muted)}footer{background:var(--roof);color:#fff5ee;padding:50px 0 24px}.footer-top{display:flex;justify-content:space-between;gap:40px;padding-bottom:35px}.footer-brand{font-size:29px;font-weight:700;letter-spacing:-1px}.footer-details{font-weight:500;display:flex;gap:65px;font-size:14px;line-height:1.8}.footer-details strong{display:block;font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:#ead0c7;margin-bottom:8px}.footer-bottom{font-weight:550;border-top:1px solid #af7870;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#efd8d0;line-height:1.6}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.header-inner{flex-direction:column;align-items:flex-start;gap:20px}.hero,.offer,.about{gap:35px}.faq{gap:40px}.footer-details{gap:30px}}
@media(max-width:650px){.wrap{width:calc(100% - 36px)}header{padding:25px 0}.brand{font-size:32px}nav{flex-wrap:wrap;gap:12px 22px;font-size:13px}nav .quote{padding:10px 13px}.hero,.offer,.faq,.about{grid-template-columns:1fr;gap:32px}.hero{padding:45px 0}h1{letter-spacing:-2px}.hero{min-height:530px}.hero-photo span{right:8%;top:auto;bottom:25px}.section{padding:48px 0}.section-head,.footer-top,.footer-bottom{flex-direction:column;align-items:flex-start}.photos{grid-template-columns:1fr;gap:16px}.offer-copy{padding-left:0;border:0}.footer-details{flex-wrap:wrap;gap:25px 40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Moderní typografie, barevné přechody a jemný pohyb */
body{background:linear-gradient(125deg,#faf5ee 0%,#f8eee8 55%,#f1e7df 100%)}
header{background:rgba(250,245,238,.85)}
.brand{font-weight:800;letter-spacing:-2px}
h1,h2{font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif;font-weight:650;letter-spacing:-.055em}
h1{font-size:clamp(52px,6.5vw,94px);line-height:1.04}h1 em{font-style:normal;font-weight:650}
nav a{position:relative;transition:color .25s,background .25s,transform .25s}
nav a:not(.quote)::after{content:"";position:absolute;bottom:3px;left:0;width:100%;height:2px;background:var(--roof);transform:scaleX(0);transform-origin:left;transition:transform .3s}
nav a:hover::after,nav a[aria-current=page]::after{transform:scaleX(1)}
nav a[aria-current=page]{color:var(--roof)}
nav .quote,.button{border-radius:100px;background:linear-gradient(120deg,#a45149,#bd7163);box-shadow:0 7px 22px #a451491b;transition:transform .3s,box-shadow .3s}
nav .quote:hover,.button:hover{color:white;background:linear-gradient(120deg,#93433e,#ad6054);transform:translateY(-3px);box-shadow:0 12px 26px #a4514933}
.button span{transition:transform .3s}.button:hover span{transform:translate(3px,-3px)}

.photo{color:#976c61;border-color:#e7d4ca}.photos .photo{border-radius:16px;transition:transform .4s,box-shadow .4s}.photos .photo:hover{transform:translateY(-6px);box-shadow:0 16px 30px #85474112}
.gallery{background:linear-gradient(120deg,#ecd0c4,#eac0b7)}.questions{background:linear-gradient(120deg,#dae2ce,#cbd8ba)}
footer{background:linear-gradient(115deg,#994a44,#b4695c)}
.subpage{min-height:68vh;display:grid;place-items:center;text-align:center;padding:80px 20px;position:relative;overflow:hidden}
.subpage::before{content:"";position:absolute;width:min(580px,85vw);height:420px;border-radius:50%;background:radial-gradient(ellipse,#e9bfb477,transparent 70%);z-index:-1}
.subpage h1{font-size:clamp(70px,12vw,160px);color:var(--roof)}
.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .75s,transform .75s}.js .reveal.visible{opacity:1;transform:none}
main{animation:arrive .65s cubic-bezier(.2,.7,.3,1) both}
@keyframes arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:650px){h1{font-size:58px}.hero{padding-top:55px}.brand{font-size:32px}.subpage{min-height:60vh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .reveal{opacity:1;transform:none}}



/* Celé fotografie bez ořezu, deformace a zvětšování zdrojových souborů. */
.hero{min-height:720px;background:var(--cream);overflow:hidden}
.hero-photo{z-index:0;background:var(--cream);border-radius:0;transform:none}
.hero-photo img{display:block;width:100%;height:100%;object-fit:contain;object-position:78% center}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--cream) 0%,rgba(248,244,239,.94) 25%,rgba(248,244,239,.55) 48%,transparent 70%);pointer-events:none}
.hero-content h1{max-width:760px;font-size:clamp(48px,5.3vw,76px);line-height:1.12;letter-spacing:-.045em;text-wrap:balance}
.hero-content h1 span{display:block}
.hero-content .intro{color:var(--ink)}
.photo-card{margin:0;min-width:0}
.photo-card img{display:block;width:100%;height:auto;border-radius:0;background:var(--cream)}
.photo-card figcaption{padding:14px 0;color:var(--muted);font-size:14px;line-height:1.5}
.about-photo{max-width:480px;justify-self:center}
@media(max-width:1000px){.hero-photo img{object-position:right center}.hero-content h1{max-width:590px}}
@media(max-width:650px){
 .hero{min-height:0;padding:0;display:grid}
 .hero-photo{position:relative;grid-area:1 / 1;align-self:start;background:var(--cream)}
 .hero-photo img{width:100%;height:auto;object-position:center}
 .hero-photo::after{background:linear-gradient(180deg,rgba(248,244,239,.84),rgba(248,244,239,.6) 38%,rgba(248,244,239,.08) 70%,transparent)}
 .hero-content{grid-area:1 / 1;align-self:start;padding:42px 0 36px}
 .hero-content h1{font-size:clamp(34px,8.5vw,52px);max-width:100%;line-height:1.12}
 .hero-content .eyebrow{margin-bottom:18px}
 .hero-content .intro{font-size:15px;line-height:1.65;margin:20px 0 24px}
 .about-photo{max-width:100%}
}

/* Kalkulačky střech a okapů. */
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.calculator-page header{padding:22px 0}.calculator-intro{padding:30px 0 24px}.calculator-intro .eyebrow{font-size:11px;margin-bottom:10px}.calculator-intro h1{font-size:clamp(32px,3.2vw,44px);line-height:1.15;letter-spacing:-.045em}.calculator{padding-bottom:60px}
.service-switch{--active-tab:0;position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;max-width:620px;background:#eadbd260;border:1px solid var(--line);border-radius:18px;padding:6px;margin-bottom:32px;box-shadow:inset 0 1px 2px #392f2b05}.service-switch::before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:calc(50% - 6px);background:linear-gradient(120deg,#a45149,#b76a5d);border-radius:12px;box-shadow:0 5px 14px #a4514924;transform:translateX(calc(var(--active-tab) * 100%));transition:transform .3s cubic-bezier(.2,.8,.2,1);z-index:-1}.service-switch button{display:flex;justify-content:center;align-items:center;gap:12px;min-height:62px;padding:12px;border:0;border-radius:12px;background:none;color:var(--muted);font:650 16px "Avenir Next",Avenir,sans-serif;cursor:pointer;transition:color .2s}.service-switch button[aria-selected=true]{color:white}.service-switch svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.calculator-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:34px;align-items:start}.calculator-fields,.service-options{display:flex;flex-direction:column;gap:26px;min-width:0}.calculator fieldset{border:0;padding:0;margin:0;min-width:0}.calculator legend{font-size:16px;font-weight:650;letter-spacing:-.02em;margin-bottom:12px;width:100%}.calculator legend small{float:right;font-weight:600;font-size:12px;letter-spacing:0;color:var(--muted);margin-top:4px}.option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.two-options{grid-template-columns:repeat(2,minmax(0,1fr))}.option-choice{position:relative;cursor:pointer;min-width:0}.option-choice input{position:absolute;left:12px;top:12px;opacity:0;width:18px;height:18px;margin:0}.option-card{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:12px;padding:15px 13px;background:#fffaf580;transition:border-color .2s,background .2s,box-shadow .2s}.option-copy{display:flex;flex-direction:column;min-width:0;gap:5px}.option-copy strong{font-size:14px;line-height:1.3;font-weight:650}.option-copy>span{font-size:12px;font-weight:500;color:var(--muted);line-height:1.4}.option-card b{font-size:16px;font-weight:600;color:var(--roof);white-space:nowrap}.option-card small{font-size:12px;font-weight:600}.option-card.has-photo,.slope-card,.house-card{min-height:242px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;padding:10px}.choice-image{display:block;overflow:hidden;height:160px;background:#efe9e2;border-radius:7px}.choice-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.complexity-card .choice-image img{object-fit:contain}.has-photo .option-copy,.slope-card .option-copy,.house-card .option-copy{flex-direction:row;align-items:center;justify-content:space-between;gap:6px;padding:0 2px}.choice-description{font-size:12px;font-weight:500;line-height:1.6;color:var(--muted);padding:0 2px}.has-photo .option-copy strong{font-size:13px}.slope-art,.house-art{display:block;width:100%;height:160px;flex:none;background:#f9f1e9;border-radius:7px}.slope-art text{fill:var(--roof);font:600 13px "Avenir Next",sans-serif}.slope-card .option-copy strong small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.house-card .option-copy strong{font-size:14px}.option-choice input:checked+.option-card{border-color:var(--roof);box-shadow:0 0 0 1px var(--roof);background:#ecd0c44d}.option-choice:hover .option-card{border-color:var(--roof)}.option-choice input:focus-visible+.option-card{outline:3px solid var(--roof);outline-offset:4px}.factor-group:disabled .option-choice{cursor:default}.factor-group:disabled .option-card{opacity:.76}.factor-group:disabled .option-choice:hover .option-card{border-color:var(--line)}
.area-section{display:grid;grid-template-columns:1fr 220px;column-gap:20px;row-gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:18px}.area-label{display:block;font-size:14px;font-weight:650;margin-bottom:7px}.field-help{font-size:13px;font-weight:550;line-height:1.6;color:var(--muted);margin:0}.area-input-wrap{position:relative}.area-input-wrap input{width:100%;border:1px solid var(--line);border-radius:10px;background:#fffaf5;color:var(--ink);font:500 23px "Avenir Next",sans-serif;padding:12px 48px 12px 14px}.area-input-wrap input:focus,.travel-search input:focus{outline:2px solid var(--roof);outline-offset:2px}.area-input-wrap input:disabled{opacity:.5}.area-input-wrap>span{position:absolute;right:15px;top:17px;color:var(--muted);font-size:14px}.input-error{grid-column:1 / -1;font-size:12px;font-weight:600;color:#963a30;line-height:1.5;margin:0}.area-input-wrap input[aria-invalid=true],.travel-search input[aria-invalid=true]{border-color:#963a30}.area-notice{font-size:13px;font-weight:500;line-height:1.7;color:var(--muted);margin:0;padding:16px 18px;background:#ecd0c435;border-left:2px solid var(--roof);border-radius:0 9px 9px 0}
.travel-section{border-top:1px solid var(--line);padding-top:24px}.section-label{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px}.section-label h2{font-size:23px}.section-label>span{font-size:12px;font-weight:600;color:var(--roof);white-space:nowrap}.travel-search{display:flex;gap:12px;margin-bottom:10px}.travel-search input{min-width:0;flex:1;width:100%;border:1px solid var(--line);border-radius:10px;background:#fffaf5;color:var(--ink);font:500 14px "Avenir Next",sans-serif;padding:14px}.travel-status{font-size:12px;font-weight:550;line-height:1.65;color:var(--roof);margin:14px 0 0}.travel-status:empty{display:none}.travel-status.is-error{color:#963a30}.address-results{display:flex;flex-direction:column;gap:7px;margin-top:12px}.address-results:empty{display:none}.address-results button{background:#fffaf5;border:1px solid var(--line);border-radius:8px;text-align:left;font:550 13px "Avenir Next",sans-serif;line-height:1.5;padding:12px 14px;color:var(--ink);cursor:pointer}.address-results button:hover{border-color:var(--roof);background:#f3ded4}.calculator-credits{font-size:11px;font-weight:500;color:var(--muted);text-align:right;line-height:1.6;margin-top:-14px}.calculator-credits a:hover{color:var(--roof);text-decoration:underline}.house-stat a{border-bottom:1px solid var(--line)}
.price-track{align-self:stretch;min-width:0}.price-panel{position:sticky;top:min(max(24px,calc((100dvh - var(--summary-height,650px)) / 2)),calc(100dvh - var(--summary-height,650px) - 24px));align-self:start;display:flex;flex-direction:column;background:linear-gradient(145deg,#f0d8ce,#eac8be);border:1px solid #d9b9ad;border-radius:18px;padding:24px;max-height:none;overflow:visible;cursor:default;user-select:none;-webkit-user-select:none}.price-panel .eyebrow{font-size:11px;letter-spacing:1.5px;margin-bottom:10px}.price-panel h2{font-size:24px;letter-spacing:-.04em}.price-breakdown{margin:20px 0 14px}.price-breakdown>div{font-weight:550;display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:13px;margin:14px 0}.price-breakdown dt small{font-weight:500;display:block;font-size:12px;margin-top:4px;color:var(--muted);line-height:1.6;max-width:175px}.price-breakdown dd{margin:0;text-align:right;white-space:nowrap;font-weight:550}.price-breakdown .unit-total{border-top:1px solid #d9b9ad;padding-top:12px;margin-top:15px}.cleaning-line{font-weight:650}.price-breakdown .travel-line{border-top:1px solid #d9b9ad;padding-top:13px;margin-top:15px}.price-notice{font-size:12px;font-weight:500;line-height:1.75;color:#685048;margin:0}.price-result{border-top:1px solid #d9b9ad;margin-top:20px;padding-top:18px}.price-result .total-label{display:block;font-size:12px;font-weight:650;margin:0 0 7px;color:var(--ink);min-height:0}.price-result output{display:block;min-height:1.15em;font-size:40px;font-weight:700;letter-spacing:-.055em;line-height:1.15;overflow-wrap:anywhere}.price-result>span:not(.total-label){font-weight:550;display:block;font-size:12px;line-height:1.5;color:var(--muted);margin-top:9px;min-height:0}.reset-calculator{align-self:start;border:1px solid #c39788;border-radius:8px;background:#fffaf532;font:600 13px "Avenir Next",sans-serif;color:#805147;padding:9px 12px;margin-top:18px;cursor:pointer;transition:background .2s,border-color .2s}.reset-calculator span{font-size:15px;margin-left:6px}.reset-calculator:hover{background:#fffaf566;border-color:var(--roof)}button:focus-visible{outline:3px solid var(--roof);outline-offset:4px}.back-link{display:inline-block;font-size:13px;color:var(--muted)}.back-link:hover{color:var(--roof)}
.house-stat{border:1px solid var(--line);padding:16px 18px!important;border-radius:10px;background:#fffaf550}.house-stat summary{font-size:13px;font-weight:600}.house-stat p{font-size:12px;font-weight:550;color:var(--muted);line-height:1.75;margin:12px 0}.house-stat a{font-size:12px;font-weight:600;color:var(--roof)}
@media(max-width:1100px){.calculator-layout{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.option-grid{gap:9px}.has-photo .option-copy{align-items:start;flex-direction:column}.option-card b{font-size:15px}.choice-image,.slope-art,.house-art{height:150px}.option-card.has-photo,.slope-card,.house-card{min-height:252px}.price-panel{padding:20px}.section-label{align-items:start;flex-direction:column;gap:7px}.travel-search{flex-direction:column}}
@media(max-width:900px){.calculator-layout{grid-template-columns:1fr}.price-panel{position:static;max-height:none;overflow:visible}.has-photo .option-copy{flex-direction:row}.travel-search{flex-direction:row}.service-switch{max-width:none}.reset-calculator{margin-top:18px}}
@media(max-width:650px){.calculator-page header{padding:18px 0}.calculator-intro{padding:26px 0 22px}.calculator-intro h1{font-size:32px}.service-switch{margin-bottom:26px;border-radius:14px}.service-switch::before{border-radius:9px}.service-switch button{font-size:13px;gap:8px;min-height:54px;padding:10px 5px}.service-switch svg{width:24px;height:24px}.calculator-fields,.service-options{gap:24px}.calculator legend{font-size:15px}.calculator legend small{float:none;display:block;margin-top:6px}.material-fieldset .option-grid,.factor-group:has(.complexity-card) .option-grid{grid-template-columns:1fr}.choice-image{height:185px}.option-card.has-photo{min-height:240px}.has-photo .option-copy strong{font-size:15px}.two-options{gap:10px}.slope-card{min-height:224px;padding:8px}.slope-art{height:125px}.slope-card .option-copy{flex-direction:column;align-items:start}.slope-card .option-copy strong{font-size:13px}.slope-card .choice-description{font-size:12px}.house-card{min-height:212px;padding:8px}.house-art{height:100px}.house-card .option-copy{flex-direction:column;align-items:start}.house-card .option-copy strong{font-size:12px}.house-card .option-card small{font-size:12px}.house-card .choice-description{font-size:12px}.option-card:not(.has-photo):not(.slope-card):not(.house-card):not(.dirt-card){padding:12px 8px;min-height:110px;flex-direction:column;align-items:start;justify-content:center;gap:8px}.option-copy strong{font-size:12px}.option-copy>span{font-size:12px}.area-section{grid-template-columns:1fr 135px;gap:10px}.area-input-wrap input{font-size:21px;padding-left:10px}.travel-search{flex-direction:column}.section-label h2{font-size:22px}.price-panel{padding:24px}.calculator{padding-bottom:40px}.price-result output{font-size:40px}}

/* Plocha a adresa: stejné povrchy, rámečky a rytmus jako volby nad nimi. */
.area-travel-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
.area-travel-row .entry-card{min-width:0;min-height:242px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:68px 42px 52px auto;gap:10px;align-content:start;border:1px solid var(--line);border-radius:12px;padding:14px;background:#fffaf580}
.entry-illustration{display:block;width:100%;height:68px;flex:none;background:#f9f1e9;border-radius:7px}
.entry-card .entry-title{font-size:18px;line-height:1.25;letter-spacing:-.025em;margin:0;align-self:center}
.entry-card .area-input-wrap,.entry-card .travel-search,.entry-card .address-input-wrap{width:100%;min-width:0;margin:0}
.entry-card .travel-search{display:block}
.entry-card .area-input-wrap input{height:52px;font-size:24px;padding-top:10px;padding-bottom:10px}
.entry-card .area-input-wrap>span{top:16px}
.entry-card .travel-search input{display:block;height:52px;font-size:15px;padding:12px}
.entry-card .field-help{font-size:13px;line-height:1.5;margin:0}
.entry-card .input-error{grid-column:1;margin:0}
.entry-card .travel-status{font-size:13px;line-height:1.5;margin:0}
.area-travel-row.is-gutter .travel-section{grid-column:1 / -1}
.address-input-wrap{position:relative;min-width:0;flex:1;width:100%}
.city-suggestions{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:10;max-height:270px;overflow-y:auto;padding:6px;background:var(--cream);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 28px #392f2b20}
.city-suggestions button{display:block;width:100%;border:0;border-radius:7px;text-align:left;cursor:pointer;background:transparent;padding:11px 10px;color:var(--ink);font:550 14px "Avenir Next",Avenir,sans-serif;line-height:1.5}
.city-suggestions button:hover,.city-suggestions button[aria-selected=true]{background:#ecd0c466;color:var(--roof)}
.option-card.dirt-card{min-height:88px;padding:15px 13px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:9px}
.dirt-card .option-copy strong{font-size:14px;line-height:1.35}
.dirt-card>b{margin-top:auto}
@media(max-width:650px){.area-travel-row{grid-template-columns:1fr;gap:14px}.area-travel-row .entry-card{min-height:242px}.entry-card .entry-title{font-size:18px}.city-suggestions{max-height:230px}.option-card.dirt-card{min-height:110px;padding:12px 8px}.dirt-card .option-copy strong{font-size:13px}.dirt-card>b{font-size:14px}.dirt-card>b small{font-size:11px}}

/* Panorama doplňuje boky fotografie; výška úvodní sekce zůstává stejná. */
.hero-photo picture{display:contents}
@media(min-width:651px){
 .hero{min-height:612px;height:612px}
 .hero-photo img{object-fit:cover;object-position:78% bottom}
}
@media(max-width:650px){
 .hero-photo{width:100%;aspect-ratio:1126 / 1275}
 .hero-photo img{height:100%;object-fit:cover;object-position:center bottom}
}
nav .quote[aria-current=page]{color:white}

/* O nás: dvě skutečné fotografie v původních proporcích. */
.about-story{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center;padding-top:54px;padding-bottom:46px}
.about-copy h1{font-size:clamp(48px,5vw,68px);margin-bottom:25px}.about-copy h2{font-size:30px;line-height:1.25;margin-bottom:24px}.about-copy p{max-width:430px;font-size:15px;line-height:1.8;color:var(--muted)}.about-copy .owner{margin:24px 0}.about-copy .button{margin-top:7px}.about-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.about-photos img{border-radius:12px}.about-photos figcaption{font-size:12px;padding-top:10px}.about-closing{padding:0 0 60px}.about-closing h2{font-size:28px}.about-closing p{font-size:14px;color:var(--muted);line-height:1.7}
@media(max-width:1000px){.about-story{gap:30px;grid-template-columns:1fr 1fr}.about-photos{gap:12px}.about-copy h2{font-size:25px}}
@media(max-width:750px){.about-story{grid-template-columns:1fr;gap:32px;padding-top:40px}.about-photos{max-width:620px;gap:16px}.about-copy h1{font-size:52px;margin-bottom:20px}.about-copy h2{font-size:27px}.about-closing{padding-bottom:40px}}


/* Úvod ladí s kalkulačkou: vzdušné plochy, jemné rámečky a měkké zaoblení. */
.home-page header{padding:22px 0;background:#faf5eee8}
.home-page-main .hero-content h1{font-weight:700;line-height:1.09;font-size:clamp(44px,5.1vw,72px);letter-spacing:-.05em}
.home-page-main .hero-content .eyebrow{margin-bottom:18px;letter-spacing:2px}
.home-page-main .hero-content .intro{font-size:17px;line-height:1.65;font-weight:500;max-width:390px}
.home-page-main .button{font-size:14px;font-weight:600;gap:24px;padding:16px 24px;min-height:52px}
.home-page-main .gallery{background:transparent;padding:64px 0 42px}
.home-page-main .section-head{margin-bottom:28px;gap:24px}
.home-page-main .section-head .eyebrow{margin-bottom:12px}
.home-page-main .section-head h2{font-size:clamp(30px,3.2vw,44px);line-height:1.15}
.home-page-main .section-head p{font-size:14px;font-weight:500;line-height:1.7}
.home-page-main .photos{gap:20px}
.home-page-main .photo-card{background:#fffaf5a6;border:1px solid var(--line);border-radius:20px;padding:8px;overflow:hidden;box-shadow:0 8px 26px #392f2b04;transition:transform .25s,box-shadow .25s}
.home-page-main .photo-card img{border-radius:13px}
.home-page-main .photo-card figcaption{font-size:14px;font-weight:600;color:var(--ink);padding:16px 12px 10px}
@media(hover:hover){.home-page-main .photo-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #392f2b0c}}
.home-quote{padding:22px 0 64px}
.home-quote-card{display:flex;align-items:center;justify-content:space-between;gap:28px;border:1px solid #dfc3b8;border-radius:24px;background:linear-gradient(125deg,#f3dfd5,#efd6cc);padding:36px 40px;box-shadow:0 8px 28px #a4514905}
.home-quote-card p{margin:0;font-size:clamp(23px,2.1vw,30px);line-height:1.3;font-weight:650;letter-spacing:-.035em;color:var(--ink)}
.home-quote-card .button{flex:none}
.footer-top{align-items:start;gap:40px;padding-bottom:32px}
.footer-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}
.footer-contact{min-width:0}
.footer-contact strong{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;margin-bottom:8px;color:#fff5ee}
.footer-contact>a{display:inline-block;font-size:19px;font-weight:600;letter-spacing:-.025em;white-space:nowrap;padding:4px 0;line-height:1.5}
.footer-contact>a:hover{text-decoration:underline;text-underline-offset:5px}
.footer-bottom{font-size:12px;font-weight:500;line-height:1.7}
@media(max-width:1000px){.footer-top{flex-direction:column;gap:28px}.footer-details{width:100%;gap:24px}.home-quote-card{padding:30px}}
@media(max-width:650px){
 .home-page header{padding:18px 0}
 .home-page-main .hero-content h1{font-size:clamp(34px,8.5vw,52px);line-height:1.12}
 .home-page-main .hero-content .intro{font-size:15px;max-width:300px}
 .home-page-main .gallery{padding:38px 0 22px}
 .home-page-main .section-head{align-items:start;gap:12px;margin-bottom:22px}
 .home-page-main .photos{gap:20px}
 .home-quote{padding:18px 0 40px}
 .home-quote-card{flex-direction:column;align-items:start;gap:22px;padding:26px 22px;border-radius:20px}
 .home-quote-card p{font-size:25px}
 .footer-details{grid-template-columns:1fr;gap:22px}
 .footer-contact strong{margin-bottom:3px;font-size:14px}
 .footer-contact>a{font-size:21px}
}


/* Statická úvodní karta se stejným jemným rámováním jako ostatní fotografie. */
.home-page-main .hero{width:min(1280px,calc(100% - 96px));margin:24px auto 0;border:1px solid var(--line);border-radius:24px;box-shadow:0 10px 30px #392f2b06}
.home-page-main .hero-content{width:calc(100% - 80px)}
.home-page-main .hero-photo img{cursor:default}
@media(max-width:1000px){.home-page-main .hero{width:calc(100% - 48px)}.home-page-main .hero-content{width:calc(100% - 56px)}}
@media(max-width:650px){.home-page-main .hero{width:calc(100% - 36px);margin-top:18px;border-radius:20px}.home-page-main .hero-content{width:calc(100% - 40px);padding-top:28px;padding-bottom:24px}.home-page-main .hero-content h1{font-size:clamp(30px,8vw,46px)}.home-page-main .hero-content .eyebrow{font-size:10px;letter-spacing:1.3px;margin-bottom:12px}.home-page-main .hero-content .intro{margin:16px 0 20px;font-size:14px}.home-page-main .hero-photo::after{background:linear-gradient(180deg,#f8f4efed,#f8f4ef88 45%,transparent 80%)}}

/* Fotografie bez širokého rámu, na jemně rozmazaném pozadí. */
.zoomable-photo{cursor:default}
.zoomable-photo:focus-visible{outline:3px solid var(--roof);outline-offset:-4px}
.photo-viewer-open{overflow:hidden}
.photo-viewer{width:max-content;max-width:calc(100vw - 32px);max-height:94dvh;border:0;border-radius:0;padding:0;background:transparent;color:#fffaf5;box-shadow:none;overflow:visible}
.photo-viewer[open]{animation:photo-appear .24s cubic-bezier(.2,.7,.3,1) both}
.photo-viewer::backdrop{background:#27232270;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:photo-backdrop .24s ease-out both}
.photo-viewer-body{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;padding:0}
.photo-viewer-toolbar{position:absolute;top:12px;right:12px;z-index:1}
.photo-viewer-toolbar>span{display:none}
.photo-viewer button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff60;border-radius:50%;background:#faf7f0dc;color:var(--ink);font:550 20px "Avenir Next",sans-serif;cursor:pointer;box-shadow:0 4px 18px #201b191c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .18s,transform .18s}
.photo-viewer button:hover{background:#fffaf5;transform:scale(1.04)}
.photo-viewer-close{font-size:16px!important}
.photo-viewer figure{display:flex;flex-direction:column;align-items:center;gap:12px;margin:0}
.photo-viewer img{display:block;width:auto;height:auto;max-width:min(1160px,calc(100vw - 40px));max-height:calc(88dvh - 82px);object-fit:contain;border-radius:18px;box-shadow:0 16px 50px #201b1938}
.photo-viewer figcaption{max-width:min(720px,calc(100vw - 48px));text-align:center;font-size:14px;font-weight:550;line-height:1.5;text-shadow:0 1px 6px #201b1960}
.photo-viewer-navigation{display:flex;align-items:center;justify-content:center;gap:18px}
.photo-counter{font-size:13px;font-weight:600;min-width:46px;text-align:center;text-shadow:0 1px 6px #201b1960}
@keyframes photo-appear{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes photo-backdrop{from{opacity:0}to{opacity:1}}
@media(max-width:650px){.photo-viewer{max-width:calc(100vw - 20px)}.photo-viewer img{max-width:calc(100vw - 24px);border-radius:14px}.photo-viewer-toolbar{top:8px;right:8px}.photo-viewer button{width:36px;height:36px}.photo-viewer figcaption{font-size:13px}.photo-viewer::backdrop{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}

/* E-mail pod značkou, stejný kontakt také v patičce. */
.brand-block,.footer-brand-block{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.brand-email{font-size:13px;line-height:1.5;font-weight:550;color:var(--muted);letter-spacing:0}
.brand-email:hover{color:var(--roof);text-decoration:underline;text-underline-offset:3px}
.footer-brand-block{gap:10px}
.footer-email{font-size:14px;line-height:1.5;font-weight:500;color:#fff5ee}
.footer-email:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:650px){.brand-email{font-size:12px}}

/* Nové týmové fotografie: celé snímky, bez ořezu obličejů. */
.about-story{align-items:start}
.about-copy p{max-width:540px}
.about-photos{align-items:start;padding-top:8px}
.gallery-photos{display:block;columns:3;column-gap:22px}
.gallery-photos .photo-card{break-inside:avoid;margin:0 0 24px}
.gallery-photos .photo-card img{border-radius:14px}
@media(max-width:1000px){.gallery-photos{columns:2}}
@media(max-width:650px){.gallery-photos{columns:1}}

/* Stejná závěrečná karta v galerii a otázkách jako na úvodu. */
.page-quote-card .quote-copy{min-width:0}
.page-quote-card h2{font-size:clamp(25px,2.5vw,34px);line-height:1.2;letter-spacing:-.035em}
.page-quote-card .intro{font-size:15px;line-height:1.65;font-weight:400;letter-spacing:0;color:var(--muted);margin:10px 0 0;max-width:480px}

/* O nás: přirozeně navazující sloupce stejně jako v galerii. */
.about-photos{display:block;columns:2;column-gap:20px}
.about-photos .photo-card{break-inside:avoid;margin:0 0 20px}
@media(max-width:1000px){.about-photos{column-gap:12px}.about-photos .photo-card{margin-bottom:12px}}
@media(max-width:750px){.about-photos{column-gap:16px}.about-photos .photo-card{margin-bottom:16px}}

/* Kontakt přímo u upozornění na orientační nabídku. */
.notice-contact{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:8px}
.notice-contact a{color:var(--roof);font-weight:600;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.notice-contact a:hover{text-decoration-thickness:2px}

/* Kalkulace se rozšíří doleva do jedné společné karty nad stránkou. */
.calculator-layout{position:relative}
.calculator-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:18px}
.calculator-actions .reset-calculator{margin-top:0}
.request-toggle,.request-send{border:1px solid var(--roof);border-radius:8px;background:var(--roof);color:#fffaf5;font:600 13px "Avenir Next",Avenir,sans-serif;padding:9px 12px;cursor:pointer;transition:background .2s,box-shadow .2s}
.request-toggle:hover,.request-send:hover{background:#93433e;box-shadow:0 4px 12px #a4514918}
.request-toggle[aria-expanded=true]{background:#fffaf566;color:var(--roof)}
.request-modal-open{overflow:hidden}
.quote-request-dialog{position:fixed;inset:auto;margin:0;padding:0;max-width:none;max-height:none;border:1px solid #d9b9ad;border-radius:18px;background:linear-gradient(145deg,#f0d8ce,#eac8be);color:var(--ink);overflow:hidden;box-shadow:0 24px 80px #392f2b26}
.quote-request-dialog::backdrop{background:#392f2b24;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}
.request-expanded-panel{position:absolute;right:0;top:0;display:grid;grid-template-columns:minmax(0,1fr) var(--request-summary-width,340px);align-items:stretch;width:var(--expanded-width,100%);height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.quote-request-overlay{min-width:0}
.quote-request-card{min-height:100%;padding:28px;border-right:1px solid #d9b9ad;background:linear-gradient(145deg,#fffaf550,#fffaf51a)}
.request-summary-slot{min-width:0}
.quote-request-dialog .price-panel{position:static!important;max-height:none;overflow:visible;background:transparent;border:0;border-radius:0;box-shadow:none}
.request-head{display:flex;align-items:start;justify-content:space-between;gap:16px}
.request-head .eyebrow{font-size:10px;letter-spacing:1.8px;margin-bottom:9px}
.request-head h2{font-size:30px;line-height:1.2;letter-spacing:-.04em}
.request-close{display:grid;place-items:center;flex:none;width:32px;height:32px;border:1px solid #cda99b;border-radius:50%;background:#fffaf580;color:var(--muted);cursor:pointer;font:500 14px "Avenir Next",sans-serif}
.request-close:hover{color:var(--roof);border-color:var(--roof)}
.request-intro{max-width:430px;font-size:14px;line-height:1.6;color:var(--muted);margin:14px 0 22px}
.request-fields{display:flex;flex-direction:column;gap:16px}
.request-fields label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;line-height:1.4;min-width:0}
.request-fields label>span{display:block}.request-fields label small{font-size:12px;font-weight:400;color:var(--muted);margin-left:5px}
.request-contact-row{display:grid;grid-template-columns:1.15fr 1fr;gap:14px}
.request-fields input,.request-fields textarea{display:block;width:100%;min-width:0;padding:12px 13px;border:1px solid #d5b8aa;border-radius:10px;background:#fffaf5b8;color:var(--ink);font:400 15px "Avenir Next",Avenir,sans-serif;line-height:1.5}
.request-fields input{height:48px}
.request-fields textarea{resize:vertical;min-height:104px;max-height:200px}
.request-fields input:focus,.request-fields textarea:focus{outline:2px solid var(--roof);outline-offset:2px}
.request-fields input::placeholder,.request-fields textarea::placeholder{color:#998980}
.request-send{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;margin-top:22px;padding:12px 16px;font-size:14px;min-height:46px}
.request-privacy-note,.request-status{font-size:12px;line-height:1.6;color:var(--muted);margin:12px 0 0}
.request-status{color:var(--roof)}
.request-status:empty{display:none}
@media(max-width:1100px){.quote-request-card{padding:22px}.request-contact-row{grid-template-columns:1fr}}
@media(max-width:900px){
 .request-expanded-panel{grid-template-columns:1fr;align-content:start}
 .request-summary-slot{grid-row:1;position:sticky;top:0;z-index:2;background:#efd3c7;border-bottom:1px solid #d9b9ad}
 .quote-request-dialog .price-panel{padding:16px 22px}
 .quote-request-dialog .price-panel>.eyebrow,.quote-request-dialog .price-breakdown,.quote-request-dialog #price-status{display:none}
 .quote-request-dialog .price-panel h2{font-size:20px}
 .quote-request-dialog .price-result{margin-top:9px;padding-top:0;border:0}
 .quote-request-dialog .price-result output{font-size:30px}
 .quote-request-dialog .calculator-actions{margin-top:10px}
 .quote-request-card{padding:22px;border:0}
 .request-head h2{font-size:28px}
 .request-fields input,.request-fields textarea{font-size:16px}
}

/* Souhrn nemá vlastní posuvník; interaktivní zůstávají pouze jeho tlačítka. */
.price-panel button,.price-panel button *{cursor:pointer}

/* Nenápadné vedení k údajům potřebným pro poptávku. */
.quote-missing .option-card{border-color:#bd9082;box-shadow:0 0 0 2px #a451490b}
.quote-missing>legend{color:var(--roof)}
.entry-card.quote-missing{border-color:#bd9082;box-shadow:0 0 0 2px #a4514912}
.quote-missing .area-input-wrap input,.quote-missing .travel-search input,.contact-missing input{border-color:#bd9082;background:#fff3ed}
.request-feedback{font-size:12px;line-height:1.6;color:var(--roof);margin:12px 0 0}
.request-feedback:empty{display:none}

/* Jemně zvýrazněný vstup do galerie v sekci O nás. */
.about-closing .back-link{display:inline-flex;align-items:center;min-height:46px;padding:12px 20px;border:1px solid #c39788;border-radius:100px;background:#fffaf54d;color:var(--roof);font-size:14px;font-weight:600;line-height:1.5;transition:background .2s,border-color .2s,box-shadow .2s}
.about-closing .back-link:hover{background:#ecd0c44d;border-color:var(--roof);box-shadow:0 4px 14px #a451490b}

/* Poptávka jako výraznější hlavní akce vedle resetu. */
.calculator-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.calculator-actions .reset-calculator{align-self:center;min-width:0;padding-left:8px;padding-right:8px}
.request-toggle{min-width:0;min-height:50px;padding:12px 10px;border-color:#9d4b43;border-radius:12px;background:linear-gradient(120deg,#9d4b43,#b66c5d);font-size:15px;font-weight:650;line-height:1.25;box-shadow:0 5px 15px #a4514926}
.request-toggle:hover{background:linear-gradient(120deg,#93433e,#a95c50);box-shadow:0 7px 18px #a4514933}
.request-toggle[aria-expanded=true]{background:#fffaf566;color:var(--roof);box-shadow:none}

/* Obě akce mají stejné rozměry, každá si zachovává vlastní barevnost. */
.calculator-actions .reset-calculator,.calculator-actions .request-toggle{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-width:0;height:50px;min-height:50px;padding:12px 8px;border-radius:12px;font-size:15px;font-weight:650;line-height:1.25}
.calculator-actions .reset-calculator span{margin-left:0}

.request-fields .required-mark{color:var(--roof);font-weight:650;margin-left:2px}


/* Orientační charakter je viditelný před výběrem i u výsledné částky. */
.estimate-badge{display:block;margin:13px 0 0;padding:0;border:0;background:none;color:var(--roof);font-size:12px;font-weight:650;line-height:1.5}
.area-notice{padding:18px 20px;border:1px solid #cda99b;border-left:3px solid var(--roof);border-radius:12px;background:linear-gradient(120deg,#f1dcd1,#f5e7df);box-shadow:0 4px 16px #a4514908}
.area-notice>strong{display:block;margin-bottom:5px;font-size:16px;font-weight:650;line-height:1.4;color:var(--roof)}
.notice-copy{display:block;color:var(--ink)}
.price-result .total-label{font-size:13px;font-weight:650;color:var(--roof)}
.price-result .estimate-note{display:block;margin-top:10px;font-size:12px;font-weight:600;line-height:1.5;color:var(--roof)}

/* Upozornění přes celou šířku, kontakty samostatně pod ním. */
.calculator-notices{display:flex;flex-direction:column;gap:12px;min-width:0}
.calculator-notices .area-notice{width:100%;min-width:0}
.calculator-notices>.notice-contact{margin:0;padding:0;font-size:13px;line-height:1.6}

/* Text webu se neoznačuje; vlastní údaje ve formulářích lze dál upravovat. */
body{-webkit-user-select:none;user-select:none}
input,textarea,[contenteditable="true"]{-webkit-user-select:text;user-select:text}

/* Potvrzení poptávky: obálka, pečeť a vykreslená fajfka. */
.request-success[hidden]{display:none}
.request-success{position:relative;display:grid;place-items:center;padding:22px 26px 26px;text-align:center;outline:none;animation:request-success-in .35s ease-out both}
.quote-request-dialog.is-success{inset:auto!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%);width:max-content!important;max-width:calc(100vw - 32px);height:auto!important;max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #d9b9ad;border-radius:18px;background:linear-gradient(145deg,#fffaf5,#f0d8ce);box-shadow:0 12px 40px #392f2b20}
.quote-request-dialog.is-success::backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.is-success .request-expanded-panel{display:none}
.request-success-content{max-width:270px}
.request-success h2{margin:4px 0 8px;font-size:25px;line-height:1.2;letter-spacing:-.03em}
.request-success p{margin:0;font-size:13px;line-height:1.5;color:var(--muted)}
.success-envelope{display:block;width:min(230px,60vw);height:auto;margin:0 auto;overflow:visible;filter:drop-shadow(0 12px 18px #392f2b24)}
.success-mail{fill:#fffaf5;stroke:#b67160;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transform-origin:80px 78px;animation:success-mail .7s cubic-bezier(.2,.8,.2,1) both}
.success-fold{fill:none;stroke:#cba496}
.success-seal{fill:#66866b;stroke:#fffaf5;stroke-width:4;transform-origin:80px 78px;animation:success-halo .45s .4s cubic-bezier(.2,.8,.2,1) both}
.success-check{stroke:#fffaf5;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:0;animation:success-check .45s .65s ease-out both}
@keyframes request-success-in{from{opacity:0}to{opacity:1}}
@keyframes success-mail{from{opacity:0;transform:translateY(14px) rotate(-8deg) scale(.85)}to{opacity:1;transform:translateY(0) rotate(0) scale(1)}}
@keyframes success-halo{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
@keyframes success-check{from{stroke-dashoffset:36}to{stroke-dashoffset:0}}

/* Malé kontaktní okénko v barvách kalkulačky. */
.contacts-toggle{display:inline-flex;align-items:center;justify-content:center;gap:28px;align-self:flex-start;padding:12px 20px;border:1px solid #9d4b43;border-radius:12px;background:linear-gradient(120deg,#9d4b43,#b66c5d);color:#fffaf5;font:600 14px "Avenir Next",Avenir,"Segoe UI",sans-serif;line-height:1.4;cursor:pointer;box-shadow:0 5px 15px #a4514926;transition:transform .25s,box-shadow .25s}
.contacts-toggle:hover{transform:translateY(-2px);box-shadow:0 8px 20px #a4514933}
.contacts-toggle:focus-visible,.contacts-dialog a:focus-visible,.contacts-dialog button:focus-visible{outline:2px solid var(--roof);outline-offset:4px}
footer .contacts-toggle{border-color:#f3d8cc;background:#fffaf5;color:var(--roof);box-shadow:0 5px 15px #392f2b15}
.contacts-modal-open{overflow:hidden}
.contacts-dialog{position:fixed;inset:0;margin:auto;width:min(440px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid #d9b9ad;border-radius:18px;background:linear-gradient(145deg,#fffaf5,#f0d8ce);color:var(--ink);box-shadow:0 16px 50px #392f2b26;overflow:auto;overscroll-behavior:contain}
.contacts-dialog::backdrop{background:#392f2b10}
.contacts-card{padding:28px}
.contacts-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.contacts-head .eyebrow{font-size:10px;letter-spacing:1.8px;margin-bottom:8px}
.contacts-head h2{font-size:30px;line-height:1.2}
.contacts-intro{font-size:14px;line-height:1.75;color:var(--muted);margin:20px 0}
.contacts-email{display:block;padding:15px 16px;border:1px solid #d9b9ad;border-radius:12px;background:#fffaf580;font-size:15px;font-weight:600;color:var(--roof);overflow-wrap:anywhere}
.contacts-email>span:first-child{display:block;margin-bottom:6px;font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted)}
.contacts-people{margin-top:10px}
.contacts-people>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #d9b9ad80;font-size:14px}
.contacts-people>div:last-child{border-bottom:0;padding-bottom:0}
.contacts-people strong{font-weight:550}
.contacts-people a{color:var(--roof);white-space:nowrap;font-weight:600}
.contacts-dialog a:hover{text-decoration:underline;text-underline-offset:3px}
.contacts-people a span{margin-left:6px;font-size:12px}
@media(max-width:400px){.contacts-card{padding:22px}.contacts-people>div{flex-wrap:wrap;gap:6px}.contacts-email{font-size:14px}}

/* Jednotná série realistických ilustračních snímků pro každou volbu. */
.calculator .option-card.calculator-photo{height:100%;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;padding:10px}
.calculator-photo .choice-image{width:100%;height:auto;aspect-ratio:3/2;flex:none;background:#efe9e2}
.calculator-photo .choice-image img{width:100%;height:100%;object-fit:contain}
.calculator-photo.dirt-card .option-copy{padding:0 2px}
.calculator-photo.dirt-card>b{padding:0 2px;margin-top:auto}
.calculator-image-note{display:block;margin-bottom:6px}
@media(max-width:650px){.calculator .option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calculator .calculator-photo .option-copy{flex-direction:column;align-items:flex-start}.calculator .calculator-photo .option-copy strong{font-size:14px}.calculator-photo .choice-description{font-size:12px}}
@media(max-width:420px){.calculator .option-grid{grid-template-columns:1fr}.calculator .calculator-photo .option-copy{flex-direction:row;align-items:center}.calculator .calculator-photo .option-copy strong{font-size:15px}.calculator-photo .choice-description{font-size:13px}}

/* Detail krytiny a znečištění zachovává stejnou fotografii a zvětšuje pouze pohled na střechu. */
.calculator .roof-detail-card .choice-image{isolation:isolate}
.calculator .roof-detail-card .choice-image img{object-fit:cover;transform:scale(2.05);transform-origin:50% 14%}
/* Malé ilustrace u údajů mají vlastní řádek a nemění velikost vstupních polí. */
.area-travel-row .entry-card{grid-template-rows:96px 42px 52px auto}
.entry-card img.entry-illustration{height:96px;width:100%;object-fit:contain;background:#f9f1e9}

/* Průhledné okolí domku přebírá přesně pozadí karty, bez barevného obdélníku. */
.area-section img.entry-illustration{background:transparent}

/* Odesílání poptávky: past na roboty, čitelný průběh a chyba. */
.request-fields .request-honeypot{display:none}
.request-send:disabled{opacity:.65;cursor:wait}
.request-status[data-kind="error"]{padding:10px 12px;border:1px solid #bd9082;border-radius:8px;background:#fff3ed}
.request-fields .contact-missing textarea{border-color:#bd9082;background:#fff3ed}
.request-success-close{display:inline-flex;width:auto;height:auto;min-height:40px;padding:8px 18px;margin:18px auto 0;border-radius:10px}
