/* latin-ext 300 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 300 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext 400 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 400 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext 500 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 500 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext 600 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 600 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext 700 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 700 */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Playfair Display (nadpisy), variabilní 400–700 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/playfair-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/playfair-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Sacramento (ručně psané akcenty) */
@font-face {
  font-family: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/sacramento-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/sacramento-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --ink:#1B1917;--text:#2B2725;--text-2:#3D3835;--muted:#786E66;
  --bg:#F5F4F2;--surface:#E9E5E2;--line:#DAD3CD;
  --accent:#BA886D;--accent-dark:#8A5F47;--brown:#433834;
  --serif:'Playfair Display',Georgia,serif;--script:'Sacramento',cursive;
  --r:14px;
  --nav-h:77px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Montserrat',sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent-dark);text-decoration:none}
a:hover{color:var(--ink)}
img{display:block}
.wrap{max-width:1180px;margin:0 auto}
.eyebrow{color:var(--accent-dark);font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
h2{font-family:var(--serif);font-weight:400;font-size:40px;margin:0;line-height:1.12;color:var(--ink);letter-spacing:-.01em}
h3{margin:0;color:var(--ink)}
.lead{margin:0;color:var(--text-2);font-size:15.5px;line-height:1.75;font-weight:300;text-wrap:pretty}
.script{margin:0;font-family:var(--script);font-size:34px;line-height:1.15;color:var(--accent-dark)}
.head{display:flex;flex-direction:column;gap:12px}
section{padding:96px 32px}
.btn{display:inline-block;background:var(--ink);color:#fff;border:none;border-radius:999px;padding:15px 28px;font:600 13px/1.2 'Montserrat',sans-serif;letter-spacing:.02em;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--brown);color:#fff}
.btn:disabled{opacity:.6;cursor:wait}

/* NAV */
header{position:sticky;top:0;z-index:10;background:rgba(245,244,242,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header .wrap{padding:6px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}
header .logo img{height:64px;width:auto}
.logo-text{display:flex;align-items:center;height:64px;color:var(--ink);font-family:var(--script);font-size:34px;line-height:1;white-space:nowrap}
.logo-text:hover{color:var(--accent-dark)}
nav{display:flex;gap:30px;font-size:13px;font-weight:500}
nav a{color:var(--text-2)}
nav a:hover,nav a[aria-current]{color:var(--ink);text-decoration:underline;text-underline-offset:8px}
.header-actions{display:flex;align-items:center;gap:12px}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.menu-btn span{display:block;width:18px;height:2px;background:var(--ink);transition:transform .2s,opacity .2s}
.nav-open .menu-btn span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-open .menu-btn span:nth-child(2){opacity:0}
.nav-open .menu-btn span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.btn-outline{background:var(--ink);border:1px solid var(--ink);color:#fff;padding:12px 22px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}
.btn-outline:hover{background:var(--brown);border-color:var(--brown);color:#fff}

/* HERO */
.hero{position:relative;height:calc(100vh - var(--nav-h));height:calc(100svh - var(--nav-h));min-height:520px;overflow:hidden;background:#D1D1D1;padding:0}
.hero .media{position:absolute;top:0;right:0;bottom:0;width:58%}
.hero video,.hero .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 16%}
.hero .poster{-webkit-mask-image:linear-gradient(to right,transparent,#000 26%);mask-image:linear-gradient(to right,transparent,#000 26%)}
.hero-script{position:absolute;left:7%;top:12%;font-family:var(--script);font-size:clamp(40px,5.4vw,76px);line-height:1;color:var(--brown);transform:rotate(-7deg);pointer-events:none}
.hero-card{position:absolute;left:36px;bottom:36px;max-width:calc(100% - 72px);display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.badge{background:var(--ink);color:#fff;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;border-radius:999px}
.card{background:var(--bg);width:600px;max-width:100%;padding:28px 26px 24px;border-radius:var(--r);display:flex;flex-direction:column;gap:20px;box-shadow:0 12px 40px rgba(67,56,52,.22)}
.card-top,.card-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.card-top{align-items:flex-start}
.card-bottom{align-items:flex-end}
.card-title{display:flex;flex-direction:column;gap:8px}
.card-title h1{margin:0;color:var(--ink);font-family:var(--serif);font-size:clamp(30px,3.6vw,44px);line-height:1.05;font-weight:400;text-transform:uppercase;letter-spacing:-.01em}
.card-title span:last-child{color:var(--ink);font-size:13.5px;font-weight:600}
.card-lead{margin:0;color:var(--text-2);font-size:14px;line-height:1.65;font-weight:300;text-wrap:pretty}
.stats{display:flex;gap:24px}
.stats div{display:flex;flex-direction:column;gap:2px}
.stats span{color:var(--muted);font-size:12.5px}
.stats b{color:var(--ink);font-size:15px;font-weight:600}

/* PODSTRÁNKA – úvod */
.page-hero{position:relative;padding:0;min-height:420px;display:flex;align-items:flex-end;background:var(--brown);overflow:hidden}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.page-hero .wrap{position:relative;width:100%;padding:72px 32px 56px;display:flex;flex-direction:column;gap:14px}
.page-hero .eyebrow{color:#E9D5C8}
.page-hero h1{margin:0;color:#fff;font-family:var(--serif);font-size:clamp(34px,4.6vw,56px);line-height:1.08;font-weight:400;max-width:760px}
.page-hero p{margin:0;color:#EDE7E2;font-size:16px;line-height:1.7;font-weight:300;max-width:620px}
.page-hero .btn{align-self:flex-start;margin-top:10px;background:#fff;color:var(--ink)}
.note{border-left:3px solid var(--accent);background:var(--surface);padding:14px 18px;color:var(--muted);font-size:13.5px;line-height:1.6}

/* SLUŽBY */
#sluzby .wrap{display:flex;flex-direction:column;gap:56px}
.params{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.params div{background:var(--surface);border-radius:var(--r);padding:26px 24px;display:flex;flex-direction:column;gap:10px}
.params b{font-size:13px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.08em}
.params span{font-size:13.5px;color:var(--text-2);line-height:1.6;font-weight:300}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:56px}
.desc{display:flex;flex-direction:column;gap:18px}
.desc h3,.spec h3{font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.15}
.prices{margin:0;padding:0;list-style:none}
.prices li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--text-2)}
.prices b{color:var(--ink);font-weight:600;white-space:nowrap}
.fine{margin:0;color:var(--muted);font-size:12.5px;line-height:1.6;font-weight:300}
.spec{background:var(--surface);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;gap:20px}
.spec ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}
.spec li{display:flex;gap:14px;align-items:flex-start;font-size:15px;color:var(--text-2);line-height:1.55}
.spec li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:9px}

/* GALERIE */
#galerie{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
#galerie .wrap{display:flex;flex-direction:column;gap:40px}
.gal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.gal-head > span{color:var(--muted);font-size:13px;font-weight:300}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.grid button{padding:0;border:0;background:var(--surface);cursor:zoom-in;border-radius:var(--r);overflow:hidden}
.grid img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;transition:opacity .2s}
.grid button:hover img{opacity:.85}

/* VIDEO */
#video .wrap{display:flex;flex-direction:column;gap:40px}
#video .head{max-width:640px}
.player{width:100%;aspect-ratio:16/9;background:var(--brown);border-radius:var(--r)}

/* KONTAKT */
#kontakt{background:var(--surface);border-top:1px solid var(--line)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:56px;align-items:start}
.contact-intro{display:flex;flex-direction:column;gap:28px}
.contact-intro h2{font-size:clamp(34px,3.8vw,48px);line-height:1.1;text-wrap:pretty}
.agent{display:flex;gap:28px;align-items:center;flex-wrap:wrap;border-radius:var(--r);padding:20px;background:var(--bg)}
.agent img{width:180px;height:180px;border-radius:50%;object-fit:cover;flex:none}
.agent div{display:flex;flex-direction:column;gap:4px}
.agent strong{font-size:16px;color:var(--ink);font-weight:600}
.agent span{color:var(--muted);font-size:13px}
.agent a{font-size:14px;font-weight:600}
form,.thanks{background:var(--bg);border-radius:var(--r);padding:36px;display:flex;flex-direction:column;gap:18px}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
label.f{display:flex;flex-direction:column;gap:8px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.f input,.f textarea{border:1px solid var(--line);border-radius:10px;padding:13px 14px;font:15px 'Montserrat',sans-serif;outline:none;background:#fff;color:var(--ink)}
.f textarea{resize:vertical}
.f input:focus,.f textarea:focus{border-color:var(--accent)}
::placeholder{color:#A39A93}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--muted);line-height:1.5;font-weight:300}
.consent input{margin-top:3px;accent-color:var(--ink);flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{margin:0;color:#A3302A;font-size:13.5px;display:none}
form .btn{align-self:flex-start}
.thanks{padding:40px;gap:12px;align-items:flex-start}
.thanks .tick{width:44px;height:44px;border-radius:50%;border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;color:var(--accent-dark);font-weight:700}
.thanks h3{margin-top:8px;font-family:var(--serif);font-size:28px;font-weight:400}
.thanks p{margin:0;color:var(--muted);line-height:1.6;font-weight:300}
[hidden]{display:none!important}

/* O MNĚ */
#o-mne{border-top:1px solid var(--line)}
.firm{display:flex;flex-direction:column;gap:20px}
.firm img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.address{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:14px;line-height:1.6;font-weight:300;padding-top:8px}
.address strong{color:var(--ink);font-weight:600}
.steps{display:flex;flex-direction:column;gap:20px}
.steps h3{font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.15}
.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.values div{background:var(--surface);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:8px}
.values span{font-family:var(--serif);color:var(--accent-dark);font-size:30px;line-height:1}
.values strong{font-weight:600;font-size:16px;color:var(--ink)}
.values p{margin:0;color:var(--muted);font-size:14px;line-height:1.6;font-weight:300}

footer{background:var(--brown);color:#CFC6C0;padding:32px;font-size:12.5px;font-weight:300}
footer a{color:#fff}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* LIGHTBOX */
.lb{position:fixed;inset:0;z-index:100;background:rgba(27,25,23,.94);display:flex;align-items:center;justify-content:center;padding:64px 88px}
.lb img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb button{position:absolute;width:52px;height:52px;border:none;background:transparent;color:#fff;font-size:34px;line-height:1;cursor:pointer}
.lb button:hover{color:var(--accent)}
.lb .x{top:18px;right:24px;font-size:30px}
.lb .prev{left:20px;top:50%;transform:translateY(-50%)}
.lb .next{right:20px;top:50%;transform:translateY(-50%)}
.lb .count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:#fff;font-size:12px;font-weight:600;letter-spacing:.14em}

@media (max-width:1100px){
  .menu-btn{display:flex}
  nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px 0}
  nav a{padding:16px 32px}
  .nav-open nav{display:flex}
}
@media (max-width:900px){
  .grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:600px){
  :root{--nav-h:61px}
  header .wrap{padding:6px 16px}
  header .logo img{height:48px}
  .logo-text{height:48px;font-size:28px}
  .btn-outline{padding:10px 14px;font-size:12px}
  nav a{padding:16px}
  .page-hero{min-height:340px}
  .page-hero .wrap{padding:48px 16px 36px}
  section{padding:64px 16px}
  h2{font-size:32px}
  .hero{height:auto;min-height:0;display:flex;flex-direction:column}
  .hero .media{position:relative;width:100%;aspect-ratio:4/5}
  .hero .poster{-webkit-mask-image:none;mask-image:none}
  .hero-script{left:16px;top:18px;font-size:38px}
  .hero-card{position:relative;z-index:1;left:auto;bottom:auto;max-width:none;padding:0 16px 24px;margin-top:-18px}
  .card{width:100%;padding:22px 18px 20px}
  .stats{gap:18px}
  .card-bottom .btn{width:100%;text-align:center}
  .grid{grid-template-columns:repeat(2,1fr);gap:8px}
  form,.thanks{padding:22px}
  .agent img{width:120px;height:120px}
  .lb{padding:56px 8px}
  .lb .prev{left:0}.lb .next{right:0}
  footer{padding:24px 16px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
