
:root{
  --cream:#f4f0e5;
  --cream-2:#ebe5d8;
  --ink:#202018;
  --muted:#6f6c62;
  --gold:#9a7b3f;
  --gold-2:#b89a62;
  --line:#cfc8b8;
  --white:#fffdf8;
  --shadow:0 24px 70px rgba(32,32,24,.14);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--cream);line-height:1.6}
button,input,textarea,select{font:inherit}
button,a{cursor:pointer}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:auto}
.site-header{
  position:fixed;z-index:50;top:0;left:0;width:100%;min-height:78px;padding:0 4vw;
  display:flex;align-items:center;justify-content:space-between;background:rgba(244,240,229,.9);
  backdrop-filter:blur(14px);border-bottom:1px solid rgba(32,32,24,.08)
}
.brand-text{font-family:"Libre Caslon Display",serif;font-size:30px;letter-spacing:.12em;line-height:1}
.brand-text small{display:block;margin-top:7px;font:500 9px/1 "DM Sans",sans-serif;letter-spacing:.25em;text-align:center}
.main-nav{display:flex;align-items:center;gap:30px;font-size:14px}
.main-nav>a{position:relative}
.main-nav>a:after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:1px;background:var(--gold);transition:.25s}
.main-nav>a:hover:after{width:100%}
.nav-cta{border:0;background:var(--gold);color:white;padding:13px 21px;text-transform:uppercase;font-size:12px;letter-spacing:.12em}
.menu-toggle{display:none;background:none;border:0;width:40px;height:40px;position:relative}
.menu-toggle span{position:absolute;left:9px;width:22px;height:1px;background:var(--ink)}
.menu-toggle span:first-child{top:15px}.menu-toggle span:last-child{top:23px}

.hero{margin-top:78px;height:min(84vh,820px);min-height:620px;overflow:hidden}
.hero-slider,.hero-slide{height:100%;position:relative}
.hero-slide{display:none;background-size:cover;background-position:center;align-items:flex-end}
.hero-slide.active{display:flex;animation:fade .7s ease}
@keyframes fade{from{opacity:.55}to{opacity:1}}
.overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,16,.64),rgba(20,20,16,.20) 58%,rgba(20,20,16,.04))}
.hero-copy{position:relative;z-index:2;color:white;padding:8vw 7vw;max-width:820px}
.eyebrow,.section-kicker{margin:0 0 20px;letter-spacing:.17em;font-size:12px;font-weight:600}
.hero h1,.section-pad h2,.booking-modal h2,.service-modal h2{
  font-family:"Libre Caslon Display",serif;font-weight:400;line-height:.98;letter-spacing:-.035em
}
.hero h1{font-size:clamp(54px,7vw,108px);margin:0 0 24px}
.hero-copy>p:not(.eyebrow){font-size:18px;max-width:620px;color:rgba(255,255,255,.9)}
.button{border:0;padding:16px 22px;display:inline-flex;align-items:center;gap:32px;margin-top:18px;text-transform:uppercase;letter-spacing:.11em;font-size:12px;transition:.2s}
.button:hover{transform:translateY(-2px)}
.button-light{background:var(--cream);color:var(--ink)} .button-dark{background:var(--ink);color:var(--white)}
.hero-controls{position:absolute;z-index:3;right:4vw;bottom:4vw;display:flex;align-items:center;gap:12px}
.hero-arrow,.service-nav button{width:46px;height:46px;border:1px solid rgba(255,255,255,.6);color:white;background:rgba(20,20,16,.24);font-size:18px}
.hero-dots{display:flex;gap:7px}.hero-dots button{width:28px;height:2px;padding:0;border:0;background:rgba(255,255,255,.35)}.hero-dots button.active{background:white}

.section-pad{padding:110px 6vw}
.section-kicker{color:var(--gold)}
.intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:80px;align-items:end}
.intro h2,.services h2,.about h2,.contact h2,.prices h2{font-size:clamp(44px,5vw,74px);margin:0}
.intro-grid>div{max-width:520px}
.text-link{display:inline-flex;align-items:center;gap:18px;border:0;background:none;padding:0 0 5px;border-bottom:1px solid var(--gold);margin-top:14px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}

.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.about-photo img{height:650px;object-fit:cover}
.about-copy{max-width:620px}.about-copy p:not(.section-kicker){color:var(--muted)}

.services{background:var(--cream-2);overflow:hidden}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:48px}
.service-nav{display:flex;gap:8px}.service-nav button{border-color:var(--ink);color:var(--ink);background:transparent}
.service-track-wrap{overflow:hidden}
.service-track{display:flex;gap:24px;transition:transform .55s cubic-bezier(.2,.75,.2,1);will-change:transform}
.service-card{flex:0 0 min(390px,78vw);background:var(--cream);cursor:pointer;transition:transform .25s,box-shadow .25s}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.service-card img{height:330px;object-fit:cover}.service-card-copy{padding:26px 26px 30px}
.service-card-copy>span{font-size:11px;color:var(--gold);letter-spacing:.15em}
.service-card h3{font-family:"Libre Caslon Display",serif;font-size:31px;line-height:1.05;font-weight:400;margin:12px 0}
.service-card p{font-size:14px;color:var(--muted);min-height:68px}

.quote-strip{padding:76px 8vw;background:var(--ink);color:var(--cream);text-align:center}
.quote-strip p{max-width:1080px;margin:auto;font:400 clamp(31px,4vw,58px)/1.12 "Libre Caslon Display",serif}

.prices{background:var(--cream)}
.prices-head{align-items:start}.prices-intro{max-width:470px;color:var(--muted);margin:12px 0 0}
.price-list{border-top:1px solid var(--line)}
.price-list div{display:flex;justify-content:space-between;gap:30px;padding:22px 0;border-bottom:1px solid var(--line)}
.price-list strong{font-weight:500;color:var(--gold)}

.contact{display:grid;grid-template-columns:.85fr 1.15fr;gap:6vw;align-items:center;background:var(--cream-2)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:40px 0}
.contact-grid>div:last-child{grid-column:1/-1}.contact-grid span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.contact-grid p{margin:7px 0;color:var(--muted)}
.map-card{position:relative;min-height:560px;background:var(--cream)}
.map-card iframe{border:0;width:100%;height:560px;filter:grayscale(1) contrast(.9) sepia(.15)}
.map-note{position:absolute;left:18px;bottom:18px;background:rgba(244,240,229,.94);padding:10px 12px;font-size:11px;color:var(--muted)}

footer{padding:48px 6vw;background:var(--ink);color:var(--cream);display:flex;justify-content:space-between;align-items:center;gap:24px}
footer p,.to-top{font-size:12px;color:#c7c0b2}.footer-brand .brand-text{color:var(--cream)}

.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(20,20,16,.54);backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:22px;overflow:auto}
.modal-backdrop.open{display:flex}
.booking-modal,.service-modal{width:min(860px,100%);max-height:92vh;overflow:auto;background:var(--cream);padding:52px;position:relative;box-shadow:var(--shadow)}
.service-modal{width:min(720px,100%)}.modal-close{position:absolute;right:24px;top:18px;border:0;background:none;font-size:30px;color:var(--ink)}
.booking-modal h2,.service-modal h2{font-size:clamp(44px,6vw,72px);margin:0 0 16px}.modal-lead{color:var(--muted);margin-bottom:30px}
.booking-modal form{display:grid;grid-template-columns:1fr 1fr;gap:24px 28px}.booking-modal label{font-size:13px}
.booking-modal input,.booking-modal textarea,.booking-modal select{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:13px 0;outline:none;color:var(--ink)}
.booking-modal input:focus,.booking-modal textarea:focus,.booking-modal select:focus{border-bottom-color:var(--gold)}
.booking-modal .full{grid-column:1/-1}.form-note{font-size:12px;color:var(--muted)}.form-success{font-size:13px;margin-top:6px}
.service-modal #serviceModalBody{color:var(--muted);margin-bottom:24px}

@media (max-width: 980px){
  .main-nav{display:none;position:absolute;top:78px;left:0;width:100%;background:var(--cream);padding:24px 4vw 30px;flex-direction:column;align-items:stretch;gap:22px;border-bottom:1px solid var(--line)}
  .main-nav.open{display:flex}.menu-toggle{display:block}
  .intro-grid,.about,.contact{grid-template-columns:1fr}
  .about-photo{order:2}.about-copy{order:1}.about-photo img{height:520px}
  .map-card,.map-card iframe{min-height:430px;height:430px}
  footer{flex-direction:column;align-items:flex-start}
}
@media (max-width:620px){
  .site-header{min-height:68px}.hero{margin-top:68px}.brand-text{font-size:24px}
  .hero{height:76vh;min-height:560px}.hero-copy{padding:8vw 6vw 105px}.hero h1{font-size:54px}.hero-copy>p:not(.eyebrow){font-size:15px}
  .section-pad{padding:78px 6vw}.intro-grid{gap:30px}
  .intro h2,.services h2,.about h2,.contact h2,.prices h2{font-size:45px}
  .section-head{align-items:center}.prices-head{display:block}.prices-intro{margin-top:25px}
  .service-card img{height:280px}.about-photo img{height:430px}
  .contact-grid{grid-template-columns:1fr}.contact-grid>div:last-child{grid-column:auto}
  .booking-modal,.service-modal{padding:44px 24px 28px}.booking-modal form{grid-template-columns:1fr}.booking-modal .full{grid-column:auto}
}

/* V3 – hero image javítás */
.hero-slide{
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center;
}
.hero-slide:nth-child(1){background-position:center 42%}
.hero-slide:nth-child(2){background-position:center 48%}
.hero-slide:nth-child(3){background-position:center 42%}
@media (max-width:620px){
  .hero-slide:nth-child(1){background-position:58% center}
  .hero-slide:nth-child(2){background-position:52% center}
  .hero-slide:nth-child(3){background-position:55% center}
}
