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

:root {
  --bg: #080808; --surface: #111; --card: #161616;
  --gold: #C8973A; --gold-light: #E8B554; --gold-dark: #9A6F28;
  --text: #F0EEE6; --muted: #B5B5AC; --dim: #44443F;
  --border: #1E1E1C;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Inter', sans-serif;
  --elegant: 'Cormorant Garamond', serif;
  --ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --nav-h: 80px;
}

*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--sans); background:var(--bg); color:var(--text); overflow-x:hidden; cursor:none; }
a { text-decoration:none; color:inherit; }
img,video { max-width:100%; display:block; }
ul { list-style:none; }
button { cursor:none; border:none; background:none; font-family:inherit; }

/* ─── CURSOR ─── */
#cursor { position:fixed; width:12px; height:12px; background:var(--gold); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); transition:width .2s,height .2s,opacity .2s; mix-blend-mode:difference; }
#cursor-ring { position:fixed; width:36px; height:36px; border:1px solid var(--gold); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:transform .15s var(--ease),width .3s,height .3s; opacity:.5; }
body:has(a:hover) #cursor, body:has(button:hover) #cursor { width:6px; height:6px; }
body:has(a:hover) #cursor-ring, body:has(button:hover) #cursor-ring { width:56px; height:56px; }

/* ─── PRELOADER ─── */
#preloader { position:fixed; inset:0; background:var(--preloader-bg, var(--bg)); z-index:10000; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:2rem; transition:opacity .8s, visibility .8s; }
#preloader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.preloader-logo { font-family:var(--serif); font-size:2.5rem; color:var(--preloader-text, var(--gold)); letter-spacing:.3em; opacity:0; animation:fadeUp .8s .3s forwards; }
.preloader-bar { width:200px; height:1px; background:var(--border); overflow:hidden; }
.preloader-bar::after { content:''; display:block; height:100%; background:var(--preloader-text, var(--gold)); animation:barFill 1.5s .5s var(--ease) forwards; width:0; }
@keyframes fadeUp { to { opacity:1; transform:translateY(0); } from { opacity:0; transform:translateY(20px); } }
@keyframes barFill { to { width:100%; } }

/* ─── NAV ─── */
header { position:fixed; top:0; left:0; right:0; height:var(--nav-h); z-index:1000; transition:background .4s, backdrop-filter .4s, border-color .4s; border-bottom:1px solid transparent; }
header.scrolled { background:rgba(8,8,8,.85); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-color:var(--border); }
.nav-wrap { max-width:1400px; margin:0 auto; padding:0 2rem; height:100%; display:flex; align-items:center; justify-content:space-between; }
.nav-logo { font-family:var(--serif); font-size:1.3rem; letter-spacing:.15em; color:var(--text); }
.nav-logo span { color:var(--gold); }
.nav-links { display:flex; gap:2.5rem; }
.nav-links a { font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); transition:color .3s; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--gold); transition:width .3s; }
.nav-links a:hover { color:var(--text); }
.nav-links a:hover::after { width:100%; }
.nav-editor-btn { font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); border:1px solid var(--gold); padding:.5rem 1.2rem; transition:all .3s; }
.nav-editor-btn:hover { background:var(--gold); color:var(--bg); }

/* ─── HERO ─── */
.hero { position:relative; height:100vh; min-height:600px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-media { position:absolute; inset:0; z-index:0; }
.hero-media video, .hero-media img.hero-bg-img { width:100%; height:100%; object-fit:cover; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(8,8,8,.3) 0%, rgba(8,8,8,.5) 60%, rgba(8,8,8,.9) 100%); z-index:1; }
.hero-grain { position:absolute; inset:0; z-index:2; opacity:.08; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); background-size:200px; animation:grain 8s steps(10) infinite; }
@keyframes grain { 0%,100%{transform:translate(0,0)} 10%{transform:translate(-2%,-3%)} 20%{transform:translate(3%,1%)} 30%{transform:translate(-1%,4%)} 40%{transform:translate(4%,-2%)} 50%{transform:translate(-3%,2%)} 60%{transform:translate(2%,3%)} 70%{transform:translate(-4%,-1%)} 80%{transform:translate(1%,-4%)} 90%{transform:translate(3%,2%)} }
.hero-content { position:relative; z-index:3; text-align:center; padding:0 2rem; }
.hero-eyebrow { font-family:var(--elegant); font-size:1.1rem; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; margin-bottom:1.5rem; opacity:0; animation:fadeUp .8s .8s forwards; }
.hero-title { font-family:var(--serif); font-size:clamp(3rem,8vw,7rem); line-height:1.05; font-weight:700; margin-bottom:1.5rem; }
.hero-title .line { display:block; overflow:hidden; }
.hero-title .line span { display:block; opacity:0; transform:translateY(110%); animation:slideUp .9s var(--ease) forwards; }
.hero-title .line:nth-child(1) span { animation-delay:1s; }
.hero-title .line:nth-child(2) span { animation-delay:1.15s; color:var(--gold); font-style:italic; font-size:.6em; letter-spacing:.4em; }
.hero-title .line:nth-child(3) span { animation-delay:1.3s; }
@keyframes slideUp { to { opacity:1; transform:translateY(0); } }
.hero-tagline { font-family:var(--elegant); font-size:clamp(1rem,2vw,1.4rem); color:var(--muted); letter-spacing:.1em; margin-bottom:3rem; opacity:0; animation:fadeUp .8s 1.6s forwards; }
.hero-ctas { display:flex; gap:1.5rem; justify-content:center; flex-wrap:wrap; opacity:0; animation:fadeUp .8s 1.9s forwards; }
.hero-scroll { position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:.8rem; opacity:0; animation:fadeUp .8s 2.2s forwards; }
.hero-scroll span { font-size:.7rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted); }
.scroll-line { width:1px; height:60px; background:linear-gradient(to bottom, var(--gold), transparent); animation:scrollPulse 2s infinite; }
@keyframes scrollPulse { 0%,100%{opacity:.3} 50%{opacity:1} }

/* ─── PARTICLES ─── */
#particles { position:absolute; inset:0; z-index:2; pointer-events:none; overflow:hidden; }
.particle { position:absolute; bottom:-10px; border-radius:50%; background:var(--gold); opacity:0; animation:rise linear infinite; }
@keyframes rise { 0%{opacity:0;transform:translateY(0) scale(1)} 10%{opacity:.6} 90%{opacity:.1} 100%{opacity:0;transform:translateY(-100vh) scale(0)} }

/* ─── BUTTONS ─── */
.btn { display:inline-block; padding:.9rem 2.5rem; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; font-family:var(--sans); font-weight:500; transition:all .3s; position:relative; overflow:hidden; }
.btn-primary { background:var(--gold); color:var(--bg); }
.btn-primary::after { content:''; position:absolute; inset:0; background:var(--gold-light); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); z-index:-1; }
.btn-primary:hover::after { transform:scaleX(1); }
.btn-ghost { border:1px solid rgba(240,238,230,.3); color:var(--text); }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold); }

/* ─── STATS ─── */
.stats-section { background:var(--gold); padding:4rem 2rem; }
.stats-grid { max-width:1200px; margin:0 auto; display:flex; flex-wrap:wrap; justify-content:space-evenly; gap:3rem 1.5rem; text-align:center; }
.stat-item { min-width:140px; display:flex; flex-direction:column; align-items:center; gap:.4rem; }
.stat-number-wrap { font-family:var(--serif); font-size:clamp(2.5rem,5vw,4rem); font-weight:700; color:var(--bg); line-height:1; }
.stat-label { font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(8,8,8,.65); }

/* ─── SECTIONS COMMON ─── */
.section-tag { font-family:var(--elegant); font-size:.95rem; letter-spacing:.4em; color:var(--gold); text-transform:uppercase; display:block; margin-bottom:1rem; }
.section-title { font-family:var(--serif); font-size:clamp(2rem,4vw,3.5rem); font-weight:700; line-height:1.1; margin-bottom:1.5rem; }
.section-line { width:60px; height:1px; background:var(--gold); margin-bottom:2rem; }
.container { max-width:1300px; margin:0 auto; padding:0 2rem; }

/* ─── CONCEPT ─── */
.concept-section { padding:8rem 0; }
.concept-inner { display:grid; grid-template-columns:1fr 1fr; gap:6rem; align-items:center; }
.concept-text p { color:var(--muted); line-height:1.9; margin-bottom:1.5rem; font-size:.95rem; }
.concept-image { position:relative; height:550px; }
.concept-image img, .concept-image video { width:100%; height:100%; object-fit:cover; }
.concept-image::before { content:''; position:absolute; inset:-15px 15px 15px -15px; border:1px solid var(--gold); z-index:-1; opacity:.4; }
.concept-badge { position:absolute; bottom:-2rem; right:-2rem; background:var(--gold); color:var(--bg); width:120px; height:120px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; font-family:var(--serif); font-size:.75rem; text-align:center; line-height:1.3; }
.concept-badge strong { font-size:2rem; display:block; }

/* ─── MENU ─── */
.menu-section { padding:8rem 0; background:var(--surface); }
.menu-tabs { display:flex; gap:0; margin-bottom:4rem; border-bottom:1px solid var(--border); overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.menu-tabs::-webkit-scrollbar { display:none; }
.tab-btn { padding:1rem 2.5rem; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); transition:color .3s; position:relative; white-space:nowrap; flex-shrink:0; }
.tab-btn::after { content:''; position:absolute; bottom:-1px; left:0; right:0; height:1px; background:var(--gold); transform:scaleX(0); transition:transform .3s; }
.tab-btn.active { color:var(--text); }
.tab-btn.active::after { transform:scaleX(1); }
.menu-panel { display:none; }
.menu-panel.active { display:block; }
.menu-grid { display: block; }
.menu-card { background:var(--card); border:1px solid var(--border); padding:1.8rem; transition:transform .3s,border-color .3s,box-shadow .3s; transform-style:preserve-3d; }
.menu-card:hover { border-color:var(--gold-dark); box-shadow:0 20px 60px rgba(0,0,0,.5); }
.menu-card-cat { font-size:.7rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); margin-bottom:.8rem; }
.menu-card-name { font-family:var(--serif); font-size:1.15rem; margin-bottom:.6rem; }
.menu-card-desc { font-size:.85rem; color:var(--muted); line-height:1.7; margin-bottom:1.2rem; flex:1; }
.menu-card-footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.5rem; margin-top:auto; }
.menu-card-price { font-family:var(--elegant); font-size:1.5rem; color:var(--gold); }
.menu-card { display:flex; flex-direction:column; }

/* ─── FAMILIAS ─── */
.fam-nav { margin-bottom: 2rem; text-align: center; position: sticky; top: calc(var(--nav-h) + 20px); z-index: 100; pointer-events: none; }
.fam-nav-links { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; background: var(--surface); padding: 0.5rem; border-radius: 40px; border: 1px solid var(--border); pointer-events: auto; box-shadow: 0 4px 20px rgba(0,0,0,0.5); }
.fam-nav-link { font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); padding: 0.4rem 1rem; border-radius: 20px; transition: all 0.3s; }
.fam-nav-link:hover { background: rgba(200, 151, 58, 0.1); color: var(--gold); }
.menu-familia { margin-bottom:3rem; scroll-margin-top: calc(var(--nav-h) + 120px); }
.familia-header { margin-bottom:1.5rem; padding-bottom:1rem; border-bottom:1px solid var(--border); }
.familia-nombre { font-family:var(--serif); font-size:1.6rem; color:var(--text); position:relative; display:inline-block; }
.familia-nombre::after { content:''; position:absolute; left:0; bottom:-4px; width:40px; height:2px; background:var(--gold); }
.familia-desc { font-size:.85rem; color:var(--muted); margin-top:.8rem; letter-spacing:.03em; }

/* ─── FILTRO ALERGENOS ─── */
.allergen-toggle-btn { display:inline-flex; align-items:center; gap:0.5rem; padding:0.5rem 1rem; font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; background:transparent; border:1px solid rgba(255,255,255,0.15); color:var(--muted); border-radius:30px; cursor:pointer; transition:all 0.3s; margin:0 auto; }
.allergen-toggle-btn:hover { border-color:var(--gold); color:var(--gold); }
.allergen-toggle-btn.active { border-color:var(--gold); color:var(--gold); }
.allergens-filter-wrap { max-width:100%; margin:0 auto; opacity:0; max-height:0; overflow:hidden; transition:max-height 0.4s var(--ease), opacity 0.3s var(--ease), margin 0.4s var(--ease); }
.allergens-filter-wrap.open { max-height:100px; opacity:1; margin-top:1rem; margin-bottom:2.5rem; }
.allergens-filter { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:0.6rem; padding:0.5rem 1rem 1rem 1rem; margin:0; -webkit-overflow-scrolling:touch; scrollbar-width:none; mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent); -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent); }
.allergens-filter::-webkit-scrollbar { display:none; }
.allergen-btn { flex:0 0 auto; display:inline-flex; align-items:center; gap:0.4rem; padding:0.4rem 1rem; font-size:0.75rem; font-family:var(--sans); letter-spacing:0.05em; text-transform:uppercase; background:transparent; border:1px solid rgba(255,255,255,0.1); border-radius:30px; color:var(--muted); cursor:pointer; transition:all 0.3s ease; }
.allergen-btn:hover { border-color:rgba(200,151,58,0.5); color:var(--text); }
.allergen-btn.active { background:var(--gold); border-color:var(--gold); color:var(--bg); box-shadow:0 4px 12px rgba(200,151,58,0.3); }
.hidden-allergen { display:none !important; }

.familia-platos { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.2rem; }

/* ─── ALERGENOS ─── */
.alergenos-row { display:flex; flex-wrap:wrap; gap:.3rem; }
.alergen-badge { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; background:rgba(200,151,58,.12); border:1px solid rgba(200,151,58,.25); border-radius:50%; font-size:.9rem; cursor:default; transition:background .2s; }
.alergen-badge:hover { background:rgba(200,151,58,.25); }

/* ─── VINOS D.O. ─── */
.wine-do { font-size:.65rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:.4rem; }
.wine-anno { font-size:.8rem; color:var(--dim); margin-bottom:.4rem; }

/* ─── EXPERIENCE STRIP ─── */
.experience-section { position:relative; height:500px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.exp-media { position:absolute; inset:0; }
.exp-media video, .exp-media img { width:100%; height:100%; object-fit:cover; }
.exp-overlay { position:absolute; inset:0; background:rgba(8,8,8,.6); }
.exp-content { position:relative; z-index:2; text-align:center; max-width:700px; padding:2rem; }
.exp-content .section-tag, .exp-content .section-title { color:var(--text); }
.exp-content p { color:rgba(240,238,230,.7); font-size:1.05rem; line-height:1.8; }

/* ─── GALLERY ─── */
.gallery-section { padding:8rem 0; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:260px; gap:1rem; }
.gallery-item { overflow:hidden; position:relative; background:var(--surface); cursor:pointer; }
.gallery-item:nth-child(3n+1) { grid-row:span 2; }
.gallery-slide { position:absolute; inset:0; opacity:0; transition:opacity 1.5s var(--ease), transform 6s linear; pointer-events:none; }
.gallery-slide.active { opacity:1; z-index:1; }
.gallery-slide img, .gallery-slide video { width:100%; height:100%; object-fit:cover; }
.gallery-item:hover .gallery-slide.active { transform:scale(1.05); }
.gallery-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(8,8,8,.8) 0%, transparent 60%); opacity:0; transition:opacity .4s; display:flex; align-items:flex-end; padding:1.5rem; z-index:2; pointer-events:none; }
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-overlay span { font-size:.8rem; letter-spacing:.1em; color:var(--text); }
.gallery-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:54px; height:54px; background:rgba(200,151,58,.9); border-radius:50%; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .3s; z-index:2; }
.gallery-play svg { margin-left:4px; }
.gallery-item[data-has-video="true"]:hover .gallery-play { opacity:1; }

/* ─── LIGHTBOX ─── */
#lightbox { position:fixed; inset:0; background:rgba(8,8,8,.97); z-index:5000; display:none; align-items:center; justify-content:center; }
#lightbox.open { display:flex; }
#lightbox-media { max-width:90vw; max-height:88vh; object-fit:contain; }
#lightbox-close { position:absolute; top:2rem; right:2rem; color:var(--text); font-size:2rem; line-height:1; opacity:.6; transition:opacity .3s; z-index:2000; }
#lightbox-close:hover { opacity:1; }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(8,8,8,0.5); border:1px solid rgba(200,151,58,0.3); color:white; font-size:1.5rem; width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.3s; z-index:2000; }
.lb-nav:hover { background:var(--gold); color:var(--bg); border-color:var(--gold); }
#lightbox-prev { left:2rem; }
#lightbox-next { right:2rem; }

/* ─── FOOTER ─── */
.footer-section { background:var(--surface); border-top:1px solid var(--border); padding:6rem 0 2rem; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:3rem; margin-bottom:4rem; }
.footer-col h3 { font-family:var(--serif); font-size:1.4rem; margin-bottom:2rem; }
.footer-col p { color:var(--muted); font-size:.9rem; line-height:2.2; }
.footer-col strong { color:var(--gold); font-weight:500; }

/* Contact Form */
.contact-form { display:flex; flex-direction:column; gap:1rem; }
.contact-form input, .contact-form textarea { width:100%; padding:0.8rem 1rem; background:rgba(255,255,255,0.03); border:1px solid var(--border); color:var(--text); font-family:var(--sans); font-size:0.9rem; border-radius:4px; outline:none; transition:border-color 0.3s; }
.contact-form input:focus, .contact-form textarea:focus { border-color:var(--gold); }
.legal-checkbox { display:flex; gap:0.5rem; align-items:flex-start; margin-top:0.5rem; }
.legal-checkbox input { width:auto; margin-top:0.3rem; }
.legal-checkbox label { font-size:0.8rem; color:var(--muted); line-height:1.4; }
.legal-checkbox label a { color:var(--gold); text-decoration:underline; }
.legal-basic-info { font-size:0.75rem !important; line-height:1.4 !important; background:rgba(0,0,0,0.2); padding:1rem; border-radius:4px; border-left:2px solid var(--gold); margin-top:0.5rem; }
.legal-basic-info strong { color:var(--text) !important; font-size:0.75rem; }
.legal-basic-info a { color:var(--gold); }

/* Cookie Banner */
.cookie-banner { position:fixed; bottom:0; left:0; width:100%; background:var(--card); border-top:1px solid var(--border); padding:1.5rem; z-index:9000; display:none; transform:translateY(100%); transition:transform 0.5s var(--ease); box-shadow:0 -10px 30px rgba(0,0,0,0.5); }
.cookie-banner.show { display:block; transform:translateY(0); }
.cookie-content { max-width:1200px; margin:0 auto; display:flex; flex-direction:column; gap:1rem; align-items:center; text-align:center; }
.cookie-content p { font-size:0.9rem; color:var(--muted); line-height:1.6; margin:0; }
.cookie-content p a { color:var(--gold); text-decoration:underline; }
.cookie-buttons { display:flex; gap:1rem; }
.btn-cookie { padding:0.6rem 1.5rem; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase; border-radius:4px; cursor:pointer; transition:all 0.3s; }
.btn-cookie-primary { background:var(--gold); border:1px solid var(--gold); color:var(--bg); font-weight:600; }
.btn-cookie-primary:hover { background:var(--gold-light); }
.btn-cookie-secondary { background:transparent; border:1px solid var(--border); color:var(--text); }
.btn-cookie-secondary:hover { border-color:var(--gold); color:var(--gold); }
.map-wrap { border:1px solid var(--border); overflow:hidden; height:260px; }
.map-wrap iframe { width:100%; height:100%; border:0; filter:grayscale(1) invert(.9) contrast(.8); }
.footer-bottom { border-top:1px solid var(--border); padding-top:2rem; display:flex; justify-content:space-between; align-items:center; }
.footer-bottom p { font-size:.8rem; color:var(--dim); letter-spacing:.05em; }
.footer-legal { display:flex; gap:2rem; }
.footer-legal a { font-size:.8rem; color:var(--dim); letter-spacing:.05em; transition:color .3s; }
.footer-legal a:hover { color:var(--gold); }

/* ─── SCROLL ANIMATIONS ─── */
[data-anim] { opacity:0; transform:translateY(30px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
[data-anim].visible { opacity:1; transform:none; }
[data-anim-delay="1"] { transition-delay:.1s; }
[data-anim-delay="2"] { transition-delay:.2s; }
[data-anim-delay="3"] { transition-delay:.3s; }
[data-anim-delay="4"] { transition-delay:.4s; }
[data-anim-delay="5"] { transition-delay:.5s; }

/* ─── FOCUS VISIBLE (Accesibilidad teclado) ─── */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }

/* ─── CURSOR: Desactivar en dispositivos táctiles ─── */
@media (pointer: coarse) {
  body { cursor:auto; }
  #cursor, #cursor-ring { display:none !important; }
  button, a { cursor:pointer; }
}

/* ─── BOTÓN VOLVER ARRIBA ─── */
#btn-top { position:fixed; bottom:2rem; right:2rem; width:48px; height:48px; background:var(--gold); color:var(--bg); border:none; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:900; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .3s, visibility .3s, transform .3s, background .3s; box-shadow:0 4px 15px rgba(0,0,0,.3); }
#btn-top.show { opacity:1; visibility:visible; transform:translateY(0); }
#btn-top:hover { background:var(--gold-light); }

/* ─── WEEKLY MENU ─── */
.weekly-card { background:var(--card); border:1px solid var(--border); padding:3rem 1.5rem; max-width:700px; margin:0 auto; text-align:center; }
.weekly-price-tag { font-family:var(--elegant); font-size:3rem; color:var(--gold); display:block; margin:1rem 0; }
.weekly-desc { color:var(--muted); margin-bottom:3rem; }
.weekly-cols { display:flex; flex-direction:column; gap:3rem; text-align:center; align-items:center; }
.weekly-col h4 { font-size:.85rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
.weekly-col li { font-size:1rem; color:var(--text); padding:.2rem 0; display:flex; align-items:center; justify-content:center; gap:.5rem; }
.weekly-info-box { margin-top:3rem; padding-top:2rem; border-top:1px dashed var(--border); font-size:.85rem; color:var(--muted); font-style:italic; text-align:center; }

/* ─── WINE GRID ─── */
.wine-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
.wine-card { background:var(--card); border:1px solid var(--border); padding:1.8rem; transition:border-color .3s; }
.wine-card:hover { border-color:var(--gold-dark); }
.wine-cat { font-size:.7rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); margin-bottom:.6rem; }
.wine-name { font-family:var(--serif); font-size:1.1rem; margin-bottom:.4rem; }
.wine-region { font-size:.85rem; color:var(--muted); margin-bottom:1rem; }
.wine-price { font-family:var(--elegant); font-size:1.4rem; color:var(--gold); }

/* ─── RESPONSIVE ─── */
.mobile-menu-btn { display:none; flex-direction:column; justify-content:space-between; width:30px; height:20px; background:transparent; border:none; cursor:pointer; z-index:1001; }
.mobile-menu-btn span { width:100%; height:2px; background:var(--gold); transition:all 0.3s; }
.mobile-menu-btn.open span:nth-child(1) { transform:translateY(9px) rotate(45deg); }
.mobile-menu-btn.open span:nth-child(2) { opacity:0; }
.mobile-menu-btn.open span:nth-child(3) { transform:translateY(-9px) rotate(-45deg); }

@media (max-width:1024px) {
  .concept-inner { grid-template-columns:1fr; gap:3rem; }
  .concept-image { height:380px; }
  .concept-image img, .concept-image video { height:100%; }
}
@media (max-width:768px) {
  .mobile-menu-btn { display:flex; }
  #main-nav { position:fixed; top:0; right:-100%; width:80%; max-width:300px; height:100vh; background:var(--surface); border-left:1px solid var(--border); transition:right 0.4s var(--ease); z-index:1000; display:flex; align-items:center; justify-content:center; }
  #main-nav.open { right:0; }
  .nav-links { flex-direction:column; gap:2rem; align-items:center; }
  .nav-links a { font-size:1.2rem; }
  .nav-editor-btn { display:none; }
  .gallery-grid { grid-template-columns:1fr 1fr; }
  .gallery-item:nth-child(3n+1) { grid-row:span 1; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; gap:1rem; text-align:center; }
}
@media (max-width:480px) {
  .gallery-grid { grid-template-columns:1fr; }
}
