:root{--bg:#fffaf7;--fg:#3f3432;--muted:#7e6f6a;--brand:#a47e74;--card:#ffffff;--star:#f5b301;--shadow:0 18px 50px rgba(0,0,0,.08)}
*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,Helvetica,sans-serif;color:var(--fg);background:var(--bg);line-height:1.6}
.container{width:min(1200px,92vw);margin:0 auto}
.header{position:sticky;top:0;z-index:30;background:rgba(255,250,247,.9);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid rgba(0,0,0,.05)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.7rem 0}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:inherit}
.brand-logo{width:44px;height:44px;border-radius:50%;object-fit:cover;box-shadow:var(--shadow)}
.brand-name{font-family:'Playfair Display',serif;font-weight:700;line-height:1}
.brand-name em{font-weight:600;font-style:normal;color:var(--muted)}
.header-right{display:flex;align-items:center;gap:.6rem}
.langmenu{position:relative}
.langbtn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;padding:.35rem .55rem;cursor:pointer}
.langbtn .lang-code{font-weight:600}
.langlist{position:absolute;top:calc(100% + 6px);left:0;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;box-shadow:var(--shadow);display:none;flex-direction:column;min-width:110px;overflow:hidden;z-index:40}
.langlist.show{display:flex}
.langlist button{display:flex;align-items:center;gap:.4rem;background:none;border:none;padding:.45rem .6rem;text-align:left;cursor:pointer}
.langlist button:hover{background:#faf6f4}
.flag{display:inline-block;width:18px;height:12px;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.08) inset}
.flag-de{background:linear-gradient(#000 33%, #dd0000 33% 66%, #ffce00 66%)}
.flag-fr{background:linear-gradient(90deg,#0055a4 33%,#fff 33% 66%,#ef4135 66%)}
.flag-it{background:linear-gradient(90deg,#009246 33%,#fff 33% 66%,#ce2b37 66%)}
.flag-en{background: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 36'>\
<clipPath id='a'><path d='M0 0h60v36H0z'/></clipPath>\
<g clip-path='url(%23a)'>\
<path fill='%23012169' d='M0 0h60v36H0z'/>\
<path stroke='%23fff' stroke-width='6' d='M0 0l60 36M60 0L0 36'/>\
<path stroke='%23C8102E' stroke-width='4' d='M0 0l60 36M60 0L0 36'/>\
<path fill='%23fff' d='M25 0h10v36H25zM0 13h60v10H0z'/>\
<path fill='%23C8102E' d='M27 0h6v36h-6zM0 15h60v6H0z'/>\
</g></svg>") center/cover no-repeat}
.nav{display:flex;align-items:center;gap:1rem}
.nav a{color:var(--fg);text-decoration:none;font-weight:600;opacity:.9}
.nav a:hover{opacity:1}
.social{display:flex;align-items:center;gap:.6rem;margin-left:.6rem}
.icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:var(--fg);opacity:.8}
.icon:hover{opacity:1;background:rgba(0,0,0,.04)}
.btn.small{padding:.5rem .8rem;border-radius:12px;border:1px solid var(--brand);color:var(--brand)}
.nav-toggle{display:none;background:none;border:none;font-size:1.4rem}
@media(max-width:900px){.nav-toggle{display:block}.nav{position:absolute;right:4vw;top:64px;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:.6rem;flex-direction:column;gap:.5rem;display:none;box-shadow:var(--shadow)}.nav.show{display:flex}}
.hero{padding:16px 0 6px}
.hero-grid{display:grid;grid-template-columns:1.1fr .95fr;grid-template-areas:'copy media' 'actions media';align-items:center;gap:24px;min-height:60vh}
.hero-copy{grid-area:copy}
.hero-media{grid-area:media;display:grid;place-items:center}
.hero-actions{grid-area:actions;display:flex;gap:.8rem;flex-wrap:wrap}
.hero-copy h1{font-family:'Playfair Display',serif;font-size:clamp(2rem,4vw,3.15rem);margin:.2rem 0;color:#3a2e2c}
.hero-copy p{color:var(--muted);margin:.4rem 0 .6rem;font-size:clamp(1rem,1.05vw,1.1rem)}
.hero-media img{width:min(500px,36vw);height:clamp(280px,46vh,560px);object-fit:cover;border-radius:20px;box-shadow:var(--shadow)}
.hero-caption{margin-top:6px;font-size:.85rem;color:#8a7a75}
@media(max-width:640px){
  .hero-grid{grid-template-columns:1fr;grid-template-areas:'copy' 'media' 'actions';min-height:unset}
  .hero-media img{width:86vw;height:clamp(240px,34vh,320px)}
  .hero-actions{margin-top:8px}
}
.section{padding:64px 0;scroll-margin-top:80px}
.section.alt{background:#fff}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(1.6rem,2.6vw,2rem);margin:0 0 18px;color:#3a2e2c;text-align:center}
.section-title.deco{position:relative;padding-bottom:12px}
.section-title.deco:after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:120px;height:6px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(164,126,116,.45),transparent)}
.grid{display:grid;gap:24px}
.services{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.gallery figure{grid-column:span 3}
.gallery img{width:100%;aspect-ratio:4/3;border-radius:14px;object-fit:cover;box-shadow:var(--shadow);cursor:zoom-in}
@media(max-width:640px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery img{width:100%;height:180px;object-fit:cover}}
.reviews{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid rgba(0,0,0,.06);padding:20px;border-radius:18px;box-shadow:var(--shadow)}
.card h3{margin:.2rem 0 .3rem}.card p{margin:0;color:#5e524f}
.stars{display:flex;gap:4px;margin-bottom:.4rem}
.star{width:18px;height:18px;display:inline-block;clip-path:path('M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z');background:var(--star)}
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.link{color:var(--brand);text-decoration:none}.link:hover{text-decoration:underline}
.social-row{display:flex;gap:.6rem;margin-top:.4rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid rgba(0,0,0,.08);padding:.45rem .7rem;border-radius:999px;text-decoration:none;color:var(--fg)}
.chip:hover{background:rgba(0,0,0,.03)}.chip.ig{color:#c13584}.chip.fb{color:#1877f2}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.1rem;border-radius:16px;text-decoration:none;font-weight:700;letter-spacing:.1px;transition:transform .12s ease, box-shadow .3s ease}
.btn.primary{background:var(--brand);color:#fff;box-shadow:var(--shadow)}.btn.outline{border:1px solid var(--brand);color:var(--brand);background:transparent}
.btn:hover{transform:translateY(-1px)}.btn.primary:hover{filter:brightness(.95)}.btn.outline:hover{background:rgba(164,126,116,.06)}
.footer{padding:36px 0 46px;border-top:1px solid rgba(0,0,0,.06)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.footer-links a{margin-left:12px;color:#7e6f6a;text-decoration:none}.footer-links a:hover{color:var(--fg)}
.footer-social{display:flex;align-items:center;gap:.4rem}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;place-items:center;padding:16px}
.modal .modal-box{background:#fff;border-radius:18px;max-width:720px;width:min(720px,90vw);padding:18px;box-shadow:var(--shadow)}
.modal[aria-hidden="false"]{display:grid}.modal-close{position:absolute;right:18px;top:10px;background:none;border:none;font-size:24px}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.8);display:none;place-items:center;z-index:60}
.lightbox img{max-width:min(92vw,1200px);max-height:90vh;border-radius:12px}
.lightbox[aria-hidden="false"]{display:grid}.lightbox-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:34px;color:#fff}
.animate-in{opacity:0;transform:translateY(14px);transition:opacity .7s ease, transform .7s ease}
.animate-in.visible{opacity:1;transform:none}
.parallax-float{transform:translateY(0);animation:float 6s ease-in-out infinite}
@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-6px)}100%{transform:translateY(0)}}
.cookie{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid rgba(0,0,0,.1);box-shadow:0 -10px 30px rgba(0,0,0,.06);padding:10px 0;z-index:50}
.cookie-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cookie[hidden]{display:none}
@media(max-width:720px){.cookie-inner{flex-direction:column;align-items:flex-start}.cookie-actions{width:100%;display:flex;gap:8px;justify-content:flex-end}}