@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Outfit:wght@300;400;500;600&display=swap');

:root{
  --ink:#07080c;--ink2:#0d0f17;--ink3:#12151f;--surface:#141824;
  --gold:#c49040;--gold-hi:#ddb060;--gold-lo:rgba(196,144,64,.13);--gold-line:rgba(196,144,64,.28);
  --smoke:#f2ede6;--smoke2:#ccc7bf;--smoke3:#8a8480;
  --line:rgba(255,255,255,.08);
  --max:1100px;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Outfit',system-ui,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);--r:14px;--r2:22px;
  --sh:0 28px 64px rgba(0,0,0,.6);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);background:var(--ink);color:var(--smoke);
  line-height:1.72;-webkit-font-smoothing:antialiased;
  font-size:18px; /* larger base for older readers */
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{cursor:pointer;border:none;background:none;font:inherit}

.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
.sec{padding:96px 0}
.sec-alt{background:var(--ink2)}

/* ── TYPOGRAPHY ── */
.kicker{
  font-size:12px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold);display:inline-flex;align-items:center;gap:10px;margin-bottom:20px;
}
.kicker::before{content:'';width:22px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.h1{font-family:var(--serif);font-size:clamp(2.6rem,5vw,4.8rem);font-weight:300;line-height:1.08;color:var(--smoke)}
.h1 em{font-style:italic;color:var(--gold-hi)}
.h2{font-family:var(--serif);font-size:clamp(2rem,3.2vw,3.2rem);font-weight:300;line-height:1.15;color:var(--smoke)}
.h2 em{font-style:italic;color:var(--gold-hi)}
.h3{font-family:var(--serif);font-size:clamp(1.4rem,2.2vw,2rem);font-weight:400;line-height:1.25;color:var(--smoke)}
.h3 em{font-style:italic;color:var(--gold-hi)}
.lead{font-size:20px;color:var(--smoke2);line-height:1.75}
.body{font-size:17px;color:var(--smoke2);line-height:1.75}
.body-sm{font-size:15px;color:var(--smoke3);line-height:1.68}
.gold-rule{width:44px;height:1px;background:var(--gold);margin:20px 0 28px}
.gr-c{margin:20px auto 28px}

/* ── BUTTONS ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:15px 32px;border-radius:999px;
  font-size:15px;font-weight:500;letter-spacing:.08em;
  transition:all .22s var(--ease);white-space:nowrap;
}
.btn-g{background:var(--gold);color:#08060a;border:1px solid var(--gold)}
.btn-g:hover{background:var(--gold-hi);border-color:var(--gold-hi);transform:translateY(-1px)}
.btn-o{background:transparent;color:var(--smoke2);border:1px solid rgba(255,255,255,.22)}
.btn-o:hover{border-color:var(--gold-line);color:var(--gold-hi)}
.btn-back{
  display:inline-flex;align-items:center;gap:9px;
  font-size:14px;font-weight:500;letter-spacing:.08em;
  color:var(--smoke3);border:1px solid var(--line);
  border-radius:999px;padding:9px 20px;
  transition:all .2s;text-transform:uppercase;
}
.btn-back:hover{color:var(--gold-hi);border-color:var(--gold-line)}
.btn-back::before{content:'←'}
.btn-t{
  background:none;border:none;padding:0;
  color:var(--gold);font-size:15px;font-weight:500;
  letter-spacing:.08em;display:inline-flex;align-items:center;gap:7px;
  transition:gap .2s,color .2s;
}
.btn-t:hover{gap:11px;color:var(--gold-hi)}

/* ── NAV ── */
.site-header{
  position:sticky;top:0;z-index:200;
  background:rgba(7,8,12,.9);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:8px}
.brand-name{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-hi)}
.brand-tag{font-size:10px;color:var(--smoke3);letter-spacing:.08em;margin-top:2px}
.main-nav ul{display:flex;gap:2px}
.main-nav a{
  font-size:13px;font-weight:400;letter-spacing:.05em;
  color:var(--smoke2);padding:7px 12px;border-radius:8px;
  transition:color .18s,background .18s;
}
.main-nav a:hover,.main-nav a.act{color:var(--gold-hi);background:var(--gold-lo)}
.nav-end{display:flex;align-items:center;gap:12px;flex-shrink:0}
.lang{
  display:flex;align-items:center;gap:6px;
  border:1px solid var(--line);border-radius:999px;padding:5px 13px;
  font-size:11px;letter-spacing:.12em;
}
.lang a{color:var(--smoke3);transition:color .18s}
.lang a.act,.lang a:hover{color:var(--gold-hi)}
.lang span{color:var(--line)}
.ham{
  display:none;flex-direction:column;gap:5px;
  padding:9px;border:1px solid var(--line);border-radius:9px;
}
.ham span{display:block;width:20px;height:1.5px;background:var(--smoke2);border-radius:2px;transition:.22s var(--ease)}
.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.ham.open span:nth-child(2){opacity:0}
.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mob-nav{
  display:none;position:absolute;top:72px;left:0;right:0;
  background:rgba(7,8,12,.98);border-bottom:1px solid var(--line);
  padding:20px 32px 26px;z-index:199;
}
.mob-nav.open{display:block}
.mob-nav ul{display:flex;flex-direction:column;gap:2px}
.mob-nav a{
  display:block;padding:14px 16px;font-size:17px;
  color:var(--smoke2);border-radius:10px;transition:color .18s,background .18s;
}
.mob-nav a:hover{color:var(--gold-hi);background:var(--gold-lo)}
.mob-nav .btn-g{margin-top:20px;width:100%;justify-content:center;font-size:16px}

/* ── FOOTER ── */
.site-footer{background:var(--ink2);border-top:1px solid var(--line);padding:72px 0 36px}
.ft-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;margin-bottom:52px}
.ft-logo{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.ft-logo img{width:36px;height:36px;object-fit:contain;border-radius:7px}
.ft-logo span{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-hi)}
.ft-desc{font-size:14px;color:var(--smoke3);line-height:1.7;max-width:26ch}
.ft-col h4{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.ft-col li{margin-bottom:10px}
.ft-col a{font-size:14px;color:var(--smoke3);transition:color .18s}
.ft-col a:hover{color:var(--gold-hi)}
.ft-bottom{border-top:1px solid var(--line);padding-top:26px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.ft-legal{font-size:13px;color:var(--smoke3);line-height:1.6;max-width:76ch}
.ft-legal a{color:var(--gold);transition:color .18s}.ft-legal a:hover{color:var(--gold-hi)}

/* ── SCROLL TOP ── */
.st{
  position:fixed;right:24px;bottom:24px;z-index:90;
  width:48px;height:48px;border-radius:50%;
  background:var(--ink3);border:1px solid var(--gold-line);
  color:var(--gold);font-size:18px;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .25s,transform .25s var(--ease);transform:translateY(6px);
}
.st.vis{opacity:1;pointer-events:auto;transform:translateY(0)}

/* ── PAGE HERO ── */
.pg-hero{position:relative;padding:110px 0 80px;background:var(--ink2);overflow:hidden}
.pg-hero::before{content:'';position:absolute;inset:0;background:url('gardasee-hero.jpg') center/cover no-repeat;opacity:.1}
.pg-inner{position:relative;z-index:2}
.pg-div{height:1px;background:linear-gradient(90deg,transparent,var(--gold-line) 40%,var(--gold-line) 60%,transparent)}
.pg-h{font-family:var(--serif);font-size:clamp(2.6rem,5vw,4rem);font-weight:300;line-height:1.1;color:var(--smoke);margin-bottom:18px}
.pg-h em{font-style:italic;color:var(--gold-hi)}
.pg-lead{font-size:20px;color:var(--smoke2);max-width:54ch;line-height:1.72}

/* ── FORMS ── */
.f-label{font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--smoke3);display:block;margin-bottom:7px}
.f-input,.f-select,.f-area{
  width:100%;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);border-radius:11px;
  color:var(--smoke);font-family:var(--sans);font-size:17px;
  padding:14px 17px;outline:none;transition:border-color .2s;
}
.f-input:focus,.f-select:focus,.f-area:focus{border-color:var(--gold-line)}
.f-input::placeholder,.f-area::placeholder{color:var(--smoke3)}
.f-area{min-height:120px;resize:vertical}
select option{background:#0d0f17;font-size:17px}

/* ── FORM FEEDBACK ── */
#fOk,#fOk2{
  display:none;margin-top:16px;font-size:16px;color:var(--gold-hi);
  padding:16px;background:rgba(196,144,64,.1);border-radius:10px;border:1px solid var(--gold-line);
}
#fEr,#fEr2{
  display:none;margin-top:16px;font-size:16px;color:#f87171;
  padding:16px;background:rgba(248,113,113,.08);border-radius:10px;border:1px solid rgba(248,113,113,.3);
}

/* ── LEGAL PAGES ── */
.legal-card{background:var(--surface);border:1px solid var(--gold-line);border-radius:22px;padding:44px 40px}
.legal-wrap{max-width:720px}
.legal-wrap h2{font-family:var(--serif);font-size:1.5rem;font-weight:500;color:var(--smoke);margin:38px 0 14px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.legal-wrap h2:first-child{margin-top:0}
.legal-wrap p,.legal-wrap li{font-size:17px;color:var(--smoke2);line-height:1.75;margin-bottom:11px}
.legal-wrap ul{padding-left:1.4rem;list-style:disc;margin-bottom:12px}
.legal-wrap a{color:var(--gold)}.legal-wrap a:hover{color:var(--gold-hi)}

/* ── ANIMATIONS ── */
.anim{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.anim.in{opacity:1;transform:translateY(0)}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.32s}.d4{transition-delay:.44s}

/* ── RESPONSIVE ── */
@media(max-width:960px){
  .main-nav{display:none}.ham{display:flex}
  .ft-grid{grid-template-columns:1fr 1fr}
  .sec{padding:72px 0}
}
@media(max-width:640px){
  .sec{padding:56px 0}
  .wrap{padding:0 20px}
  .ft-grid{grid-template-columns:1fr}
  .ft-bottom{flex-direction:column}
  .btn-g.hide-sm,.btn-o.hide-sm{display:none}
  body{font-size:17px}
  .legal-card{padding:28px 22px}
}
