/* La Terrasse — klasszikus étlap, sötét foglalás szalag */
:root { --green:#1a3a2a; --green-dark:#12241a; --gold:#c9a227; --cream:#faf6ef; --white:#fff; --dark:#1d1d1d; --muted:#7a7266; --shadow:0 12px 36px rgba(18,36,26,.12); }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',system-ui,sans-serif; color:var(--dark); background:var(--cream); line-height:1.65; }
h1,h2,h3,h4 { font-family:'Playfair Display',serif; line-height:1.15; }
h1 { font-size:3rem; font-weight:700; }
h2 { font-size:2.2rem; margin-bottom:.4rem; }
img { display:block; width:100%; height:auto; }
.container { max-width:900px; margin:0 auto; padding:0 24px; }
.eyebrow,.hero-eyebrow { font-size:.78rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem; }
.eyebrow-light { color:var(--gold); }
.section-head { text-align:center; margin-bottom:48px; }

/* NAV */
.nav { position:fixed; top:0; left:0; right:0; background:rgba(18,36,26,.95); backdrop-filter:blur(8px); z-index:100; }
.nav-inner { max-width:900px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; height:64px; }
.logo { font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--cream); text-decoration:none; }
.nav-links { display:flex; align-items:center; gap:26px; }
.nav-links a { color:var(--cream); text-decoration:none; font-size:.94rem; transition:color .2s; }
.nav-links a:hover { color:var(--gold); }
.btn { display:inline-block; padding:12px 28px; border-radius:6px; text-decoration:none; font-weight:600; font-size:.92rem; transition:transform .2s,background .2s; cursor:pointer; border:none; }
.btn:hover { transform:translateY(-2px); }
.btn-small { padding:8px 18px; font-size:.85rem; }
.btn-light { background:var(--gold); color:var(--green-dark); }
.btn-light:hover { background:#d8b338; }
.nav-toggle { display:none; background:none; border:none; color:var(--cream); font-size:1.6rem; cursor:pointer; }

/* HERO — rövid banner */
.hero { position:relative; min-height:62vh; display:flex; align-items:center; justify-content:center; text-align:center; background:url('../images/hero.jpg') center/cover no-repeat; }
.hero-overlay { position:absolute; inset:0; background:rgba(18,36,26,.62); }
.hero-content { position:relative; color:var(--cream); padding:100px 24px 60px; max-width:680px; }
.hero-eyebrow { color:var(--gold); }
.hero-sub { font-size:1.05rem; color:rgba(250,246,239,.88); margin:1rem auto 1.6rem; max-width:520px; }

/* MENU — klasszikus étlap */
.menu { padding:80px 0; background:var(--white); }
.menu-section { margin-bottom:40px; }
.menu-cat { font-size:1.15rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); border-bottom:1px solid #eee; padding-bottom:8px; margin-bottom:18px; }
.menu-item { display:flex; align-items:baseline; gap:14px; margin-bottom:16px; }
.mi-left h4 { font-size:1.15rem; margin-bottom:2px; }
.mi-left p { color:var(--muted); font-size:.88rem; }
.dots { flex:1; border-bottom:2px dotted var(--gold); transform:translateY(-4px); }
.price { font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:700; color:var(--green); }

/* ABOUT — középre */
.about { background:var(--cream); padding:80px 0; text-align:center; }
.about-inner { max-width:680px; }
.about-inner p { color:var(--muted); }
.about-stats { display:flex; gap:44px; justify-content:center; margin-top:2rem; }
.stat strong { display:block; font-family:'Playfair Display',serif; font-size:1.8rem; color:var(--green); }
.stat span { font-size:.84rem; color:var(--muted); }

/* RESERVATION — sötét szalag */
.reserve { background:var(--green-dark); padding:80px 0; text-align:center; }
.reserve-inner { max-width:780px; color:var(--cream); }
.reserve-inner h2 { color:var(--cream); }
.reserve-sub { color:rgba(250,246,239,.8); margin-bottom:2rem; }
.reserve-form { display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.reserve-form input,.reserve-form select { padding:13px 16px; border:1px solid rgba(255,255,255,.2); border-radius:6px; font-family:inherit; font-size:.94rem; background:var(--white); color:var(--dark); }
.reserve-form input:focus,.reserve-form select:focus { outline:2px solid var(--gold); border-color:transparent; }

/* GALLERY — vízszintes sáv */
.gallery { background:var(--cream); }
.gallery-strip { display:flex; }
.gallery-strip img { width:33.333%; height:300px; object-fit:cover; }

/* FOOTER */
.footer { background:var(--green-dark); padding:44px 0 28px; }
.footer-inner { display:flex; flex-direction:column; align-items:center; gap:14px; }
.footer-brand { font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:700; color:var(--cream); }
.footer-links { display:flex; gap:22px; flex-wrap:wrap; justify-content:center; }
.footer-links a { color:rgba(250,246,239,.7); text-decoration:none; font-size:.85rem; transition:color .2s; }
.footer-links a:hover { color:var(--gold); }
.footer-copy { color:rgba(250,246,239,.5); font-size:.82rem; }

/* BACK TO TOP */
.to-top { position:fixed; right:20px; bottom:20px; width:44px; height:44px; border-radius:50%; border:1px solid rgba(0,0,0,.12); background:#fff; color:#c9a227; font-size:1.2rem; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.18); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s,transform .25s,visibility .25s; z-index:90; }
.to-top.show { opacity:1; visibility:visible; transform:translateY(0); }

/* REVEAL */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .6s ease,transform .6s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

@media (max-width:820px) {
  .nav-toggle { display:block; }
  .nav-links { display:none; position:absolute; top:64px; left:0; right:0; flex-direction:column; background:rgba(18,36,26,.98); padding:20px 24px; gap:18px; align-items:flex-start; }
  .nav-links.open { display:flex; }
  .hero { min-height:52vh; }
  .reserve-form { flex-direction:column; }
  .gallery-strip img { height:200px; }
}
