/*
Theme Name: Avile
Description: Purpose-built one-page restaurant theme for Avile.
Author: Avile
Version: 2.0.0
Text Domain: avile
*/

:root { color-scheme: dark; --ink:#0d0b0a; --surface:#1a1614; --gold:#c9a055; --pale:#e8c87a; --cream:#f5efe6; --muted:#a99a8c; --line:#302722; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--ink); color:var(--cream); font-family:Inter,"Helvetica Neue",Arial,sans-serif; line-height:1.6; text-rendering:optimizeLegibility; }
body.admin-bar .site-header { top:32px; }
img { display:block; max-width:100%; }
a { color:inherit; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif; font-weight:500; line-height:1.08; }
.shell { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.eyebrow { color:var(--gold); font-size:.72rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.site-header { position:fixed; z-index:20; top:0; left:0; right:0; border-bottom:1px solid rgba(201,160,85,.2); background:rgba(13,11,10,.88); backdrop-filter:blur(16px); }
.nav { min-height:76px; display:flex; align-items:center; gap:32px; }
.nav-logo { display:grid; width:54px; height:54px; place-items:center; }
.nav-logo img { width:100%; height:100%; object-fit:contain; }
.nav-links { display:flex; gap:28px; margin-left:auto; }
.nav-links a,.language-switch button { color:var(--cream); font:500 .78rem Inter,"Helvetica Neue",Arial,sans-serif; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }
.nav-links a:hover { color:var(--gold); }
.language-switch { display:flex; border-left:1px solid var(--line); padding-left:20px; }
.language-switch button { border:0; padding:5px; background:none; cursor:pointer; color:var(--muted); }
.language-switch button[aria-pressed="true"] { color:var(--gold); }
.hero { position:relative; min-height:100svh; display:grid; place-items:center; overflow:hidden; background:url('assets/images/interior-wide.jpeg') center/cover; }
.hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,11,10,.97) 0%,rgba(13,11,10,.72) 50%,rgba(13,11,10,.28)),linear-gradient(0deg,var(--ink),transparent 35%); }
.hero-content { position:relative; z-index:1; padding:150px 0 120px; }
.hero-logo { width:clamp(230px,34vw,390px); margin:-42px 0 4px -7%; }
.hero h1 { max-width:760px; margin-bottom:18px; font-size:clamp(3rem,7vw,6.8rem); letter-spacing:-.045em; }
.hero-copy { max-width:580px; color:#d8cdc0; font-size:clamp(1rem,2vw,1.2rem); }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; padding:0 25px; border:1px solid var(--gold); background:var(--gold); color:var(--ink); font-size:.78rem; font-weight:600; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; transition:.18s ease; }
.button:hover { transform:translateY(-2px); background:var(--pale); }
.button-ghost { background:transparent; color:var(--cream); }
.section { padding:110px 0; }
.section-heading { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:58px; }
.section-heading h2 { margin-bottom:0; font-size:clamp(2.6rem,5vw,4.8rem); }
.section-heading p { max-width:520px; margin-bottom:0; color:var(--muted); }
.tempo { border-block:1px solid var(--line); background:var(--surface); }
.tempo-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.tempo-card { padding:76px 7vw; }
.tempo-card + .tempo-card { border-left:1px solid var(--line); }
.tempo-card h2 { margin:14px 0; font-size:clamp(2rem,4vw,3.5rem); }
.tempo-card p { max-width:470px; color:var(--muted); }
.menu { background:radial-gradient(circle at 85% 20%,rgba(201,160,85,.08),transparent 30%),var(--ink); }
.menu-tabs { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:560px; margin-bottom:28px; }
.menu-tab { padding:15px 18px; border:1px solid var(--line); background:transparent; color:var(--muted); font:600 .76rem Inter,"Helvetica Neue",Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.menu-tab[aria-selected="true"] { border-color:var(--gold); background:var(--gold); color:var(--ink); }
.menu-panel { display:none; }
.menu-panel.is-active { display:block; }
.menu-category-toggle { display:flex; width:100%; align-items:center; justify-content:space-between; gap:24px; padding:22px 4px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--cream); text-align:left; cursor:pointer; }
.menu-category-toggle:first-child { border-top:1px solid var(--line); }
.menu-category-toggle > span:first-child { display:grid; gap:10px; }
.menu-category-toggle strong { display:block; color:inherit; font:600 .8rem Inter,"Helvetica Neue",Arial,sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.menu-category-toggle small { display:block; color:var(--muted); font-size:.76rem; font-weight:400; line-height:1.45; letter-spacing:0; text-transform:none; }
.menu-category-toggle[aria-expanded="true"] { color:var(--gold); }
.menu-accordion-icon { position:relative; flex:0 0 18px; width:18px; height:18px; }
.menu-accordion-icon::before,.menu-accordion-icon::after { content:""; position:absolute; top:8px; left:2px; width:14px; height:1px; background:currentColor; transition:transform .18s ease; }
.menu-accordion-icon::after { transform:rotate(90deg); }
.menu-category-toggle[aria-expanded="true"] .menu-accordion-icon::after { transform:rotate(0); }
.menu-category-items { display:grid; grid-template-columns:1fr 1fr; gap:0 56px; padding:0 0 24px; }
.menu-category-items[hidden] { display:none; }
.menu-item { display:grid; grid-template-columns:1fr auto; gap:5px 18px; padding:23px 0; border-bottom:1px solid var(--line); }
.menu-item h3 { margin:0; font-family:Inter,"Helvetica Neue",Arial,sans-serif; font-size:1rem; font-weight:600; }
.menu-price { color:var(--gold); font-weight:600; white-space:nowrap; }
.menu-description { grid-column:1/-1; margin:0; color:var(--muted); font-size:.88rem; }
.menu-footnote { margin:46px 0 0; color:var(--muted); font-size:.72rem; }
.space { background:var(--surface); }
.gallery { display:grid; grid-template-columns:1.2fr .8fr; gap:18px; }
.gallery img { width:100%; height:620px; object-fit:cover; filter:saturate(.75) contrast(1.08); }
.gallery-side { display:grid; gap:18px; }
.gallery-side img { height:301px; }
.visit { position:relative; overflow:hidden; }
.visit::after { content:"A"; position:absolute; right:-.04em; bottom:-.32em; color:rgba(201,160,85,.035); font:600 38rem Palatino,"Palatino Linotype",Georgia,serif; pointer-events:none; }
.visit-grid { position:relative; z-index:1; display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; }
.visit h2 { font-size:clamp(3rem,6vw,5.5rem); }
.details { display:grid; gap:28px; }
.detail { padding-bottom:24px; border-bottom:1px solid var(--line); }
.detail h3 { margin-bottom:8px; color:var(--gold); font:600 .72rem Inter,"Helvetica Neue",Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.detail p { margin:0; }
.hours { display:grid; grid-template-columns:auto 1fr; gap:6px 24px; }
.site-footer { padding:30px 0; border-top:1px solid var(--line); color:var(--muted); font-size:.78rem; }
.footer-row { display:flex; justify-content:space-between; gap:20px; }
.site-footer a { color:var(--cream); text-underline-offset:.2em; }
.legal-content { min-height:calc(100vh - 79px); padding:160px 0 100px; }
.legal-shell { max-width:820px; }
.legal-content h1 { margin:12px 0 48px; font-size:clamp(3rem,7vw,5.5rem); }
.legal-body { color:#d8cdc0; }
.legal-body h2 { margin:46px 0 14px; color:var(--cream); font-size:1.5rem; }
.legal-body p { margin-bottom:18px; }
.legal-body strong { color:var(--gold); }
body:not(.lang-en) [data-lang="en"],body.lang-en [data-lang="de"] { display:none!important; }
@media (max-width:782px) { body.admin-bar .site-header { top:46px; } }
@media (max-width:760px) {
  .shell { width:min(100% - 28px,1180px); }
  .nav { min-height:66px; gap:14px; }
  .nav-logo { width:46px; height:46px; }
  .nav-links a:not(:last-child) { display:none; }
  .nav-links { margin-left:auto; }
  .language-switch { padding-left:10px; }
  .hero { min-height:820px; background-position:58% center; }
  .hero-content { padding:110px 0 72px; }
  .hero-logo { width:min(310px,82vw); margin:-20px 0 8px -10%; }
  .hero::before { background:linear-gradient(90deg,rgba(13,11,10,.92),rgba(13,11,10,.58)),linear-gradient(0deg,var(--ink),transparent 45%); }
  .section { padding:78px 0; }
  .section-heading,.visit-grid { grid-template-columns:1fr; gap:20px; }
  .tempo-grid,.gallery { grid-template-columns:1fr; }
  .tempo-card { padding:55px 28px; }
  .tempo-card + .tempo-card { border-left:0; border-top:1px solid var(--line); }
  .menu-tabs { max-width:none; }
  .menu-category-items { grid-template-columns:1fr; gap:0; }
  .menu-price { max-width:48%; white-space:normal; text-align:right; }
  .gallery img { height:430px; }
  .gallery-side { grid-template-columns:1fr 1fr; }
  .gallery-side img { height:210px; }
  .footer-row { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
