:root{
  --wine:#6B1D2A;--wine-dk:#4A1019;--wine-md:#8B2535;
  --gold:#C9A84C;--gold-lt:#E0C170;
  --white:#FFFFFF;--off-white:#FAF8F4;
  --gray-lt:#EDE9E3;--gray-mid:#C4BAB0;
  --text-dk:#1C1510;--text-md:#4A3E38;--text-lt:#7A6C66;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Montserrat',Helvetica,Arial,sans-serif;
  --max:1280px;
  --gutter:clamp(1.25rem,4vw,3.5rem);
  --sec:clamp(3.5rem,6vw,5.5rem);
  --nav-h:72px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

html{-webkit-text-size-adjust:100%;overflow-x:hidden;}

body{
  font-family:var(--sans);font-size:15px;line-height:1.7;
  color:var(--text-dk);background:var(--white);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  user-select:none;-webkit-user-select:none;
}

img{display:block;max-width:100%;height:auto;object-fit:cover;}
a{text-decoration:none;color:inherit;}

::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-track{background:var(--wine-dk);}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:2px;}

.container{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}

.section-label{
  display:inline-block;font-family:var(--sans);font-size:9.5px;font-weight:600;
  letter-spacing:0.42em;text-transform:uppercase;color:var(--gold);margin-bottom:0.7rem;
}
.section-label.light{color:var(--gold-lt);}

.gold-rule{width:52px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin:1.2rem 0;}
.gold-rule.short{width:32px;margin:0.75rem 0;}

.btn-gold{
  display:inline-flex;align-items:center;gap:0.5rem;
  padding:0.85rem 2rem;background:var(--gold);color:var(--wine-dk);
  font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;
  border:1px solid var(--gold);transition:background .3s,color .3s,transform .2s;cursor:pointer;white-space:nowrap;
}
.btn-gold:hover{background:transparent;color:var(--gold);transform:translateY(-2px);}
.btn-gold.mt-btn{margin-top:1.8rem;}

.btn-outline{
  display:inline-flex;align-items:center;padding:0.85rem 2rem;
  background:transparent;color:rgba(255,255,255,.82);
  font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.4);transition:background .3s,color .3s,border-color .3s,transform .2s;white-space:nowrap;
}
.btn-outline:hover{background:rgba(255,255,255,.08);border-color:var(--gold);color:var(--gold);transform:translateY(-2px);}

.btn-arrow{
  display:inline-block;margin-top:1.4rem;font-family:var(--sans);
  font-size:9.5px;font-weight:600;letter-spacing:0.26em;text-transform:uppercase;
  color:var(--gold);transition:letter-spacing .3s;position:relative;
}
.btn-arrow::after{content:'';display:block;width:0;height:1px;background:var(--gold);margin-top:4px;transition:width .35s ease;}
.btn-arrow:hover{letter-spacing:0.34em;}
.btn-arrow:hover::after{width:100%;}

.fade-in{opacity:0;transform:translateY(20px);transition:opacity .72s ease,transform .72s ease;}
.fade-in.visible{opacity:1;transform:translateY(0);}

/* NAVBAR */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  height:var(--nav-h);background:transparent;
  transition:background .4s ease,box-shadow .4s ease;
}
.navbar::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(30,6,14,.78) 0%,transparent 100%);
  pointer-events:none;z-index:0;transition:opacity .4s;
}
.navbar.scrolled{background:var(--wine-dk);box-shadow:0 1px 0 rgba(201,168,76,.18),0 4px 24px rgba(0,0,0,.35);}
.navbar.scrolled::before{opacity:0;}

.nav-inner{
  position:relative;z-index:1;display:flex;align-items:center;
  justify-content:space-between;height:100%;max-width:var(--max);
  margin:0 auto;padding:0 var(--gutter);gap:1rem;
}

.nav-links{display:flex;align-items:center;gap:clamp(0.8rem,1.4vw,1.5rem);}
.nav-links a{
  font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:0.2em;
  text-transform:uppercase;color:rgba(255,255,255,.82);transition:color .22s;
  white-space:nowrap;position:relative;padding-bottom:2px;
}
.nav-links a::after{
  content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;
  background:var(--gold);transform:scaleX(0);transition:transform .28s ease;transform-origin:center;
}
.nav-links a:hover{color:var(--gold-lt);}
.nav-links a:hover::after{transform:scaleX(1);}

.nav-logo{display:flex;align-items:center;gap:0.7rem;flex-shrink:0;}
.logo-name{font-family:var(--serif);font-size:1.6rem;font-weight:400;letter-spacing:0.14em;color:var(--white);white-space:nowrap;line-height:1;}
.logo-bar{display:block;width:24px;height:1px;background:var(--gold);opacity:.65;flex-shrink:0;}

.lang-switch{
  display:flex;align-items:center;gap:0.3rem;margin-left:0.8rem;
  border:1px solid rgba(201,168,76,.35);padding:0.25rem 0.6rem;flex-shrink:0;
}
.lbtn{
  background:none;border:none;font-family:var(--sans);font-size:9.5px;font-weight:600;
  letter-spacing:0.1em;color:rgba(255,255,255,.4);cursor:pointer;transition:color .2s;padding:0;line-height:1;
}
.lbtn.active{color:var(--gold);}
.lbtn:hover{color:var(--gold-lt);}
.ldiv{color:rgba(201,168,76,.35);font-size:10px;user-select:none;}

.nav-burger{
  display:none;flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;padding:7px;z-index:1100;flex-shrink:0;
}
.nav-burger span{display:block;width:22px;height:1.5px;background:var(--white);transition:transform .32s ease,opacity .28s;}
.nav-burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;transform:scaleX(0);}
.nav-burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

.nav-drawer{
  display:none;position:fixed;top:var(--nav-h);left:0;right:0;z-index:999;
  flex-direction:column;background:var(--wine-dk);
  max-height:0;overflow:hidden;transition:max-height .38s ease;
}
.nav-drawer.open{max-height:620px;border-top:1px solid rgba(201,168,76,.12);}
.nav-drawer a{
  font-family:var(--sans);font-size:10.5px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;
  color:rgba(255,255,255,.78);padding:1rem var(--gutter);border-bottom:1px solid rgba(255,255,255,.05);
  transition:color .2s,padding-left .2s;
}
.nav-drawer a:hover{color:var(--gold);padding-left:calc(var(--gutter) + 6px);}
.drawer-lang{display:flex;align-items:center;gap:0.5rem;padding:1rem var(--gutter);border-top:1px solid rgba(201,168,76,.12);}

/* HERO */
.hero{
  position:relative;background:var(--wine-dk);
  height:100dvh;min-height:580px;
  display:flex;flex-direction:column;overflow:hidden;
}

.hero-bg-texture{
  position:absolute;inset:0;
  background:radial-gradient(ellipse 65% 85% at 70% 50%,rgba(107,29,42,.22) 0%,transparent 65%),
             linear-gradient(158deg,#2A080E 0%,var(--wine-dk) 40%,#1A040A 100%);
  pointer-events:none;z-index:0;
}
.hero-bg-texture::after{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(rgba(201,168,76,.04) 1px,transparent 1px);
  background-size:32px 32px;
}

.hero-grid{
  position:relative;z-index:1;flex:1;
  display:grid;grid-template-columns:1fr 1fr;align-items:center;
  gap:clamp(1.5rem,3vw,4rem);max-width:var(--max);width:100%;margin:0 auto;
  padding:calc(var(--nav-h) + clamp(0.8rem,2vh,2rem)) var(--gutter) clamp(3.5rem,7vh,5rem);
}

.hero-text{min-width:0;}

.hero-eyebrow{display:flex;align-items:center;gap:0.9rem;margin-bottom:1rem;}
.gold-line{display:block;width:34px;height:1px;background:linear-gradient(90deg,var(--gold),rgba(201,168,76,.3));flex-shrink:0;}
.hero-eyebrow span:last-child{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:0.38em;text-transform:uppercase;color:var(--gold);}

.hero-h1{font-family:var(--serif);font-weight:300;line-height:1.02;margin-bottom:1.1rem;}
.h1-line{display:block;font-size:clamp(1.1rem,2vw,2rem);font-style:normal;color:rgba(255,255,255,.6);letter-spacing:0.04em;}
.h1-gold{display:block;font-size:clamp(2.8rem,5.2vw,5rem);font-style:italic;color:var(--gold-lt);line-height:.96;margin:-.02em 0;}
.h1-white{display:block;font-size:clamp(2.8rem,5.2vw,5rem);font-style:italic;color:var(--white);line-height:.96;margin-top:-.02em;}

.hero-desc{font-size:12.5px;font-weight:300;color:rgba(255,255,255,.55);line-height:1.85;max-width:390px;margin-bottom:1.5rem;}
.hero-btns{display:flex;gap:0.8rem;flex-wrap:wrap;margin-bottom:1.3rem;}

.hero-status{display:flex;align-items:center;gap:0.6rem;font-size:10.5px;font-weight:400;letter-spacing:0.06em;color:rgba(255,255,255,.36);}
.open-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;flex-shrink:0;box-shadow:0 0 8px #4ade80bb;transition:background .35s,box-shadow .35s;}

.hero-img-col{display:flex;justify-content:center;align-items:center;min-width:0;position:relative;}

.hero-img-deco{
  position:absolute;inset:-10%;z-index:0;pointer-events:none;
  display:flex;align-items:center;justify-content:center;
}
.hero-circles{width:100%;height:100%;max-width:520px;max-height:520px;}

.hero-frame{position:relative;width:100%;max-width:360px;z-index:1;}
.hero-frame-deco{
  position:absolute;top:-10px;right:-10px;bottom:10px;left:10px;
  border:1px solid rgba(201,168,76,.28);pointer-events:none;z-index:2;
}
.hero-img-wrap{overflow:hidden;aspect-ratio:4/5;max-height:calc(100dvh - var(--nav-h) - 7rem);position:relative;z-index:1;}
.hero-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 7s ease;border-radius:0;}
.hero-img-wrap:hover img{transform:scale(1.04);}

.hero-badge{
  position:absolute;bottom:-1rem;left:-1rem;
  background:var(--gold);padding:0.7rem 1rem;z-index:3;text-align:center;line-height:1.3;
}
.hero-badge span{display:block;font-family:var(--sans);font-size:7.5px;font-weight:600;letter-spacing:0.28em;text-transform:uppercase;color:var(--wine-dk);}
.hero-badge em{display:block;font-family:var(--serif);font-size:1rem;font-style:italic;color:var(--wine-dk);font-weight:600;}

.hero-scroll-hint{
  position:absolute;bottom:1.2rem;left:50%;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:0.4rem;
  font-family:var(--sans);font-size:7.5px;font-weight:500;letter-spacing:0.32em;text-transform:uppercase;
  color:rgba(255,255,255,.2);pointer-events:none;
}
.scroll-line{display:block;width:1px;height:30px;background:linear-gradient(180deg,transparent,var(--gold));animation:scrollPulse 2.4s ease-in-out infinite;}
@keyframes scrollPulse{0%,100%{opacity:.3;}50%{opacity:1;}}

/* STATS */
.stats-bar{background:var(--wine);border-top:1px solid rgba(201,168,76,.2);border-bottom:1px solid rgba(201,168,76,.2);}
.stats-inner{display:flex;align-items:stretch;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
.stat-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.1rem 1.8rem;gap:0.12rem;flex:1;text-align:center;}
.stat-num{font-family:var(--serif);font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:400;font-style:italic;color:var(--gold-lt);line-height:1;}
.stat-label{font-family:var(--sans);font-size:7.5px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,.46);white-space:nowrap;}
.stat-sep{display:block;width:1px;background:rgba(201,168,76,.2);align-self:stretch;margin:0.75rem 0;}

/* EXPERIENCIA */
.experiencia{background:var(--off-white);padding:var(--sec) 0;}

.section-tag{display:flex;align-items:center;gap:0.9rem;margin-bottom:2rem;}
.tag-line{display:block;width:1px;height:28px;background:var(--gold);flex-shrink:0;}

.exp-body{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start;margin-bottom:3.5rem;}
.exp-title-col,.exp-text-col{min-width:0;}
.exp-title-col h2{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:400;line-height:1.18;color:var(--wine-dk);}
.exp-text-col p{font-size:13.5px;font-weight:300;color:var(--text-md);line-height:1.9;margin-bottom:1rem;}

.exp-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:1.8rem;padding-top:2.4rem;border-top:1px solid var(--gray-mid);}
.pillar{text-align:center;padding:0 0.4rem;}
.pillar-icon{width:46px;height:46px;border:1px solid rgba(201,168,76,.45);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 0.85rem;color:var(--gold);transition:background .28s;}
.pillar:hover .pillar-icon{background:rgba(201,168,76,.08);}
.pillar-icon svg{width:19px;height:19px;}
.pillar h4{font-family:var(--serif);font-size:1.08rem;font-weight:500;color:var(--wine-dk);margin-bottom:0.32rem;}
.pillar p{font-size:11.5px;font-weight:300;color:var(--text-lt);line-height:1.68;}

/* PLATOS */
.platos{background:var(--white);padding:var(--sec) 0;}
.platos-header{text-align:center;margin-bottom:3.2rem;}
.platos-header h2{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.8rem);font-weight:400;color:var(--wine-dk);margin-top:0.35rem;}

.plato-row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,4vw,4.5rem);margin-bottom:4.5rem;}
.plato-row:last-child{margin-bottom:0;}
.plato-row>*{min-width:0;}
.plato-row.reverse .plato-img-wrap{order:2;}
.plato-row.reverse .plato-info{order:1;}

.plato-img-wrap{position:relative;overflow:hidden;aspect-ratio:5/4;}
.plato-img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease;}
.plato-img-wrap:hover img{transform:scale(1.05);}
.plato-num{position:absolute;bottom:0.8rem;right:1rem;font-family:var(--serif);font-size:4.5rem;font-weight:300;color:rgba(255,255,255,.1);line-height:1;pointer-events:none;}

.plato-cat{display:block;font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:0.32em;text-transform:uppercase;color:var(--gold);margin-bottom:0.6rem;}
.plato-info h3{font-family:var(--serif);font-size:clamp(1.7rem,2.5vw,2.3rem);font-weight:400;color:var(--wine-dk);line-height:1.14;}
.plato-info p{font-size:13px;font-weight:300;color:var(--text-md);line-height:1.85;margin-top:0.22rem;}

/* OPINIONES */
.opiniones{background:#F5F1EC;padding:var(--sec) 0;}
.opiniones-header{text-align:center;margin-bottom:3rem;}
.opiniones-header h2{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.8rem);font-weight:400;color:var(--wine-dk);margin-top:0.35rem;}

.opiniones-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}

.opinion-card{
  background:var(--white);padding:2rem 1.8rem;
  border:1px solid var(--gray-lt);position:relative;overflow:hidden;
  transition:transform .25s,box-shadow .25s;
}
.opinion-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.opinion-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px rgba(107,29,42,.1);}

.opinion-stars{color:var(--gold);font-size:1.1rem;letter-spacing:0.1em;margin-bottom:1rem;}

.opinion-text{
  font-size:13px;font-weight:300;color:var(--text-md);line-height:1.85;
  margin-bottom:1.5rem;font-family:var(--serif);font-style:italic;
}

.opinion-author{display:flex;align-items:center;gap:0.85rem;}
.opinion-avatar{
  width:38px;height:38px;border-radius:50%;
  background:var(--wine-dk);color:var(--gold);
  font-family:var(--sans);font-size:11px;font-weight:600;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  letter-spacing:0.05em;
}
.opinion-name{display:block;font-family:var(--sans);font-size:11.5px;font-weight:600;color:var(--text-dk);letter-spacing:0.04em;}
.opinion-loc{display:block;font-family:var(--sans);font-size:10px;font-weight:300;color:var(--text-lt);margin-top:0.15rem;}

/* MENÚ */
.menu-sec{background:var(--wine-dk);padding:var(--sec) 0;position:relative;overflow:hidden;}
.menu-sec::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(201,168,76,.06) 0%,transparent 60%);pointer-events:none;}

.menu-header{text-align:center;margin-bottom:3rem;position:relative;z-index:1;}
.menu-header h2{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.7rem);font-weight:300;color:var(--white);margin:0.35rem 0 0.75rem;}
.menu-intro{font-size:12px;font-weight:300;color:rgba(255,255,255,.4);max-width:440px;margin:0 auto;line-height:1.8;}

.menu-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(201,168,76,.14);position:relative;z-index:1;}

.menu-cat{padding:1.8rem 1.9rem;border-right:1px solid rgba(201,168,76,.1);border-bottom:1px solid rgba(201,168,76,.1);min-width:0;overflow:hidden;transition:background .3s;}
.menu-cat:nth-child(even){border-right:none;}
.menu-cat:nth-last-child(-n+2){border-bottom:none;}
.menu-cat:last-child{border-bottom:none;border-right:none;}
.menu-cat:last-child:nth-child(odd){grid-column:span 2;}
.menu-cat:hover{background:rgba(255,255,255,.02);}
.menu-cat.featured{background:rgba(201,168,76,.05);}
.menu-cat.featured:hover{background:rgba(201,168,76,.08);}

.cat-head{display:flex;align-items:center;gap:0.65rem;margin-bottom:1.2rem;padding-bottom:0.85rem;border-bottom:1px solid rgba(201,168,76,.13);}
.cat-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--gold);opacity:.75;}
.cat-icon svg{width:15px;height:15px;}
.cat-head h3{font-family:var(--serif);font-size:1.2rem;font-weight:400;color:var(--gold);line-height:1.1;}

.menu-list{display:flex;flex-direction:column;}

.mitem{display:flex;align-items:baseline;justify-content:space-between;gap:0.8rem;padding:0.55rem 0;border-bottom:1px solid rgba(255,255,255,.04);}
.mitem:last-child{border-bottom:none;padding-bottom:0;}

.mitem-main{display:flex;flex-direction:column;gap:0.12rem;min-width:0;flex:1;}
.mname{font-family:var(--serif);font-size:.98rem;font-weight:500;color:var(--white);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mdesc{font-size:9.5px;font-weight:300;color:rgba(255,255,255,.32);font-style:italic;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mprice{font-family:var(--sans);font-size:10px;font-weight:600;color:var(--gold);letter-spacing:0.04em;white-space:nowrap;flex-shrink:0;}

.cat-nota{
  margin-top:1.1rem;padding-top:0.9rem;border-top:1px solid rgba(201,168,76,.12);
  font-size:10px;font-weight:300;color:rgba(255,255,255,.28);line-height:1.7;font-style:italic;
}

.menu-note{
  display:flex;align-items:flex-start;gap:0.8rem;margin-top:2.2rem;
  padding:1.1rem 1.5rem;border:1px solid rgba(201,168,76,.12);background:rgba(255,255,255,.02);
  position:relative;z-index:1;
}
.menu-note-icon{color:var(--gold);font-size:.9rem;line-height:1.6;flex-shrink:0;opacity:.7;}
.menu-note p{font-size:10.5px;font-weight:300;color:rgba(255,255,255,.3);line-height:1.75;font-style:italic;}

/* GALERÍA */
.galeria{background:var(--off-white);padding:var(--sec) 0;}
.galeria-header{text-align:center;margin-bottom:2.4rem;padding:0 var(--gutter);}
.galeria-header h2{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.8rem);font-weight:400;color:var(--wine-dk);margin-top:0.35rem;}

.gal-grid{
  max-width:var(--max);margin:0 auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:230px 230px;gap:7px;
  margin-bottom:2rem;
}
.gi{overflow:hidden;position:relative;background:var(--gray-lt);}
.gi:nth-child(1){grid-column:1;grid-row:1/3;}
.gi:nth-child(2){grid-column:2;grid-row:1;}
.gi:nth-child(3){grid-column:3;grid-row:1;}
.gi:nth-child(4){grid-column:2;grid-row:2;}
.gi:nth-child(5){grid-column:3;grid-row:2;}

.gi img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s ease,filter .4s ease;filter:brightness(.88) saturate(1.08);}
.gi:hover img{transform:scale(1.06);filter:brightness(1) saturate(1.15);}

.gi-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(74,16,25,.72) 0%,transparent 52%);display:flex;align-items:flex-end;padding:0.85rem 1rem;opacity:0;transition:opacity .32s ease;}
.gi-overlay span{font-family:var(--sans);font-size:8.5px;font-weight:600;letter-spacing:0.26em;text-transform:uppercase;color:var(--gold-lt);}
.gi:hover .gi-overlay{opacity:1;}

.gal-more{
  display:inline-flex;align-items:center;gap:0.75rem;
  margin-top:0.5rem;
  padding:0.9rem 1.8rem;
  border:1px solid rgba(201,168,76,.35);
  color:var(--gold);
  font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;
  transition:background .28s,border-color .28s,transform .2s;
}
.gal-more:hover{background:rgba(201,168,76,.08);border-color:var(--gold);transform:translateX(4px);}
.gal-more svg{width:18px;height:18px;flex-shrink:0;}
.gal-more-label{flex:1;}
.gal-arrow{width:14px;height:14px;flex-shrink:0;transition:transform .25s;}
.gal-more:hover .gal-arrow{transform:translateX(4px);}

/* AMENIDADES */
.amenidades{background:var(--white);padding:var(--sec) 0;border-top:1px solid var(--gray-lt);}
.amenidades-header{text-align:center;margin-bottom:2.8rem;}
.amenidades-header h2{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.7rem);font-weight:400;color:var(--wine-dk);margin-top:0.35rem;}

.amenidades-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
.amenidad-card{padding:1.7rem 1.5rem;border:1px solid var(--gray-lt);transition:border-color .28s,transform .22s;text-align:center;position:relative;overflow:hidden;}
.amenidad-card::before{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--gold),transparent);transform:scaleX(0);transform-origin:left;transition:transform .35s ease;}
.amenidad-card:hover{border-color:rgba(201,168,76,.4);transform:translateY(-3px);}
.amenidad-card:hover::before{transform:scaleX(1);}
.amenidad-icon{width:42px;height:42px;border:1px solid rgba(201,168,76,.35);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 0.85rem;color:var(--wine);transition:background .28s,color .28s;}
.amenidad-card:hover .amenidad-icon{background:var(--wine);color:var(--gold);}
.amenidad-icon svg{width:16px;height:16px;}
.amenidad-card h4{font-family:var(--serif);font-size:1.06rem;font-weight:500;color:var(--wine-dk);margin-bottom:0.3rem;}
.amenidad-card p{font-size:11.5px;font-weight:300;color:var(--text-lt);line-height:1.68;}

/* HORARIOS */
.horarios{background:var(--off-white);padding:var(--sec) 0;border-top:1px solid var(--gray-lt);}
.horarios-inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center;}
.horarios-left{min-width:0;}
.horarios-left h2{font-family:var(--serif);font-size:clamp(1.8rem,2.8vw,2.6rem);font-weight:400;color:var(--wine-dk);margin:0.35rem 0;}
.horarios-left p{font-size:13px;font-weight:300;color:var(--text-lt);line-height:1.82;max-width:320px;}

.hrow{display:flex;align-items:center;padding:0.8rem 0 0.8rem 0.5rem;border-bottom:1px solid var(--gray-lt);gap:0.6rem;position:relative;transition:background .2s,padding-left .2s;}
.hrow:first-child{border-top:1px solid var(--gray-lt);}
.hrow:hover{background:rgba(107,29,42,.04);padding-left:0.9rem;}
.hrow.today{background:rgba(107,29,42,.06);padding-left:1rem;}
.hrow.today::before{content:'';position:absolute;left:0;top:22%;bottom:22%;width:3px;background:var(--gold);border-radius:2px;}
.hrow.today .hday{color:var(--wine);font-weight:600;}
.hrow.today .htime{color:var(--wine);font-weight:600;}
.hday{font-family:var(--serif);font-size:.98rem;font-weight:400;color:var(--text-dk);min-width:90px;flex-shrink:0;}
.hdots{flex:1;border-bottom:1px dotted var(--gray-mid);height:0;position:relative;top:-1px;min-width:16px;}
.htime{font-size:11px;font-weight:400;letter-spacing:0.04em;color:var(--text-lt);flex-shrink:0;white-space:nowrap;}

/* CONTACTO */
.contacto{background:var(--wine-dk);padding:var(--sec) 0;}
.contacto-header{text-align:center;margin-bottom:2.8rem;}
.contacto-header h2{font-family:var(--serif);font-size:clamp(1.8rem,2.7vw,2.5rem);font-weight:300;color:var(--white);margin-top:0.35rem;}

.contacto-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:3.5rem;align-items:start;}
.info-col{min-width:0;overflow:hidden;}

.clist{display:flex;flex-direction:column;gap:1.2rem;margin:1.1rem 0 1.6rem;}
.citem{display:flex;align-items:flex-start;gap:0.85rem;}
.cicon{width:33px;height:33px;border:1px solid rgba(201,168,76,.24);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0;margin-top:2px;transition:background .25s,border-color .25s;}
.citem:hover .cicon{background:rgba(201,168,76,.1);border-color:var(--gold);}
.cicon svg{width:13px;height:13px;}
.clabel{display:block;font-family:var(--sans);font-size:7.5px;font-weight:600;letter-spacing:0.28em;text-transform:uppercase;color:var(--gold);margin-bottom:0.2rem;}
.cval{display:block;font-size:12.5px;font-weight:300;color:rgba(255,255,255,.66);line-height:1.6;}
.clink{font-size:12.5px;font-weight:300;color:rgba(255,255,255,.66);transition:color .22s;word-break:break-word;}
.clink:hover{color:var(--gold-lt);}

.social-block{margin-top:0.35rem;}
.social-row{display:flex;gap:0.55rem;margin-top:0.65rem;flex-wrap:wrap;}
.sicon{width:35px;height:35px;border:1px solid rgba(255,255,255,.13);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.46);transition:border-color .28s,color .28s,transform .22s,background .28s;flex-shrink:0;}
.sicon svg{width:14px;height:14px;}
.sicon:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-3px);background:rgba(201,168,76,.08);}

.mapa-col{min-width:0;}
.mapa-frame{position:relative;overflow:hidden;border:1px solid rgba(201,168,76,.24);border-radius:4px;height:390px;}
.mapa-frame::before{content:'';position:absolute;top:0;left:0;width:26px;height:26px;border-top:2px solid var(--gold);border-left:2px solid var(--gold);z-index:2;pointer-events:none;border-radius:4px 0 0 0;}
.mapa-frame::after{content:'';position:absolute;bottom:0;right:0;width:26px;height:26px;border-bottom:2px solid var(--gold);border-right:2px solid var(--gold);z-index:2;pointer-events:none;border-radius:0 0 4px 0;}
.mapa-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.15) sepia(.08);}
.mapa-caption{display:flex;align-items:center;gap:0.45rem;margin-top:0.75rem;font-size:10.5px;font-weight:300;color:rgba(255,255,255,.36);letter-spacing:0.04em;}
.mapa-icon{display:flex;align-items:center;color:var(--gold);opacity:.7;flex-shrink:0;}
.mapa-icon svg{width:13px;height:13px;}

/* FOOTER */
.footer{background:#2A060C;border-top:1px solid rgba(201,168,76,.18);padding:3.2rem 0 2rem;}
.footer-inner{text-align:center;}
.footer-logo{display:inline-flex;align-items:center;gap:0.75rem;margin-bottom:0.65rem;}
.footer-logo .logo-name{font-family:var(--serif);font-size:1.75rem;font-weight:400;letter-spacing:0.14em;color:var(--white);}
.footer-logo .logo-bar{width:22px;opacity:.5;}
.footer-frase{font-family:var(--serif);font-size:.9rem;font-style:italic;color:rgba(255,255,255,.3);margin-bottom:1.6rem;font-weight:300;}

.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:0.3rem 1.4rem;margin-bottom:1.4rem;}
.footer-nav a{font-family:var(--sans);font-size:8.5px;font-weight:500;letter-spacing:0.22em;text-transform:uppercase;color:rgba(255,255,255,.3);transition:color .22s;}
.footer-nav a:hover{color:var(--gold);}

.footer-details{font-size:10px;font-weight:300;color:rgba(255,255,255,.26);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0.3rem;margin-bottom:0.8rem;line-height:2;}
.footer-details a{color:rgba(255,255,255,.26);transition:color .2s;}
.footer-details a:hover{color:var(--gold);}
.fsep{color:rgba(201,168,76,.26);}

.footer-links-text{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0.3rem;margin-bottom:1.6rem;font-size:11px;font-weight:400;letter-spacing:0.06em;}
.footer-links-text a{color:rgba(255,255,255,.4);transition:color .22s;}
.footer-links-text a:hover{color:var(--gold);}

.footer-copy{font-size:9px;font-weight:400;letter-spacing:0.12em;color:rgba(255,255,255,.15);text-transform:uppercase;}

/* WHATSAPP FAB */
.wa-fab{
  position:fixed;bottom:1.8rem;right:1.8rem;z-index:998;
  display:flex;align-items:center;gap:0.5rem;
  background:var(--wine);color:var(--white);
  padding:0.7rem 1.15rem 0.7rem 0.8rem;
  border:1px solid rgba(201,168,76,.4);box-shadow:0 6px 28px rgba(0,0,0,.32);
  font-family:var(--sans);font-size:9.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;
  transition:background .28s,transform .22s,box-shadow .28s;
}
.wa-fab svg{width:17px;height:17px;color:var(--gold-lt);flex-shrink:0;}
.wa-fab:hover{background:var(--wine-md);transform:translateY(-3px);box-shadow:0 12px 36px rgba(0,0,0,.4);}

/* TABLET ≤ 1024px */
@media(max-width:1024px){
  .nav-left,.nav-right{display:none;}
  .nav-burger{display:flex;}
  .nav-drawer{display:flex;}

  .hero-grid{grid-template-columns:1fr;padding-top:calc(var(--nav-h) + 3rem);padding-bottom:5rem;text-align:center;}
  .hero-img-col{display:none;}
  .hero-eyebrow{justify-content:center;}
  .hero-btns{justify-content:center;}
  .hero-status{justify-content:center;}
  .hero-desc{margin-left:auto;margin-right:auto;}

  .stats-inner{flex-wrap:wrap;justify-content:center;}
  .stat-sep{display:none;}
  .stat-item{flex:1 1 40%;padding:1rem 1.1rem;}

  .exp-body{grid-template-columns:1fr;gap:1.8rem;}
  .exp-pillars{grid-template-columns:repeat(2,1fr);}

  .plato-row,.plato-row.reverse{grid-template-columns:1fr;gap:1.6rem;margin-bottom:3.5rem;}
  .plato-row.reverse .plato-img-wrap{order:unset;}
  .plato-row.reverse .plato-info{order:unset;}

  .opiniones-grid{grid-template-columns:1fr 1fr;gap:1.2rem;}
  .opiniones-grid .opinion-card:nth-child(3){grid-column:span 2;}

  .menu-grid{grid-template-columns:1fr;}
  .menu-cat{border-right:none;}
  .menu-cat:nth-last-child(-n+2){border-bottom:1px solid rgba(201,168,76,.1);}
  .menu-cat:last-child{border-bottom:none;}
  .menu-cat:last-child:nth-child(odd){grid-column:span 1;}

  .gal-grid{grid-template-columns:1fr 1fr;grid-template-rows:200px 200px 200px;}
  .gi:nth-child(1){grid-column:1;grid-row:1/3;}
  .gi:nth-child(2){grid-column:2;grid-row:1;}
  .gi:nth-child(3){grid-column:2;grid-row:2;}
  .gi:nth-child(4){grid-column:1;grid-row:3;}
  .gi:nth-child(5){grid-column:2;grid-row:3;}

  .amenidades-grid{grid-template-columns:repeat(2,1fr);}
  .horarios-inner{grid-template-columns:1fr;gap:3rem;}
  .contacto-grid{grid-template-columns:1fr;gap:2.8rem;}
  .mapa-frame{height:340px;}
}

/* MOBILE ≤ 640px */
@media(max-width:640px){
  :root{--gutter:1.1rem;--nav-h:64px;--sec:clamp(2.8rem,6vw,3.8rem);}

  .nav-drawer{top:var(--nav-h);}

  .hero-grid{padding-top:calc(var(--nav-h) + 1.6rem);padding-bottom:4rem;}
  .h1-gold,.h1-white{font-size:clamp(2.6rem,13vw,4.2rem);}
  .h1-line{font-size:clamp(1.1rem,4.5vw,1.5rem);}
  .hero-desc{font-size:12px;max-width:100%;}
  .hero-btns{gap:0.6rem;flex-direction:column;align-items:center;}
  .btn-gold,.btn-outline{width:100%;text-align:center;justify-content:center;}
  .hero-scroll-hint{display:none;}

  .stat-item{flex:1 1 45%;padding:0.85rem;}
  .stat-num{font-size:1.4rem;}

  .exp-pillars{grid-template-columns:1fr 1fr;gap:1.2rem;}
  .plato-row{gap:1.2rem;margin-bottom:2.8rem;}
  .plato-num{font-size:2.8rem;}

  .opiniones-grid{grid-template-columns:1fr;}
  .opiniones-grid .opinion-card:nth-child(3){grid-column:span 1;}

  .menu-cat{padding:1.4rem 1.1rem;}
  .mdesc{display:none;}

  .gal-grid{grid-template-columns:1fr 1fr;grid-template-rows:125px 125px 125px;}
  .gi:nth-child(1){grid-column:1;grid-row:1/3;}
  .gi:nth-child(2){grid-column:2;grid-row:1;}
  .gi:nth-child(3){grid-column:2;grid-row:2;}
  .gi:nth-child(4){grid-column:1;grid-row:3;}
  .gi:nth-child(5){grid-column:2;grid-row:3;}

  .amenidades-grid{grid-template-columns:1fr;gap:0.8rem;}
  .amenidad-card{padding:1.2rem 1.1rem;text-align:left;display:flex;align-items:flex-start;gap:0.8rem;}
  .amenidad-icon{flex-shrink:0;margin:0;}

  .horarios-inner{gap:2rem;}
  .hday{min-width:72px;font-size:.92rem;}
  .htime{font-size:10.5px;}

  .mapa-frame{height:230px;}
  .footer-details{flex-direction:column;gap:0.2rem;}
  .footer-details .fsep{display:none;}
  .footer-links-text .fsep{display:inline;}
  .wa-fab{right:0.9rem;bottom:0.9rem;padding:0.62rem 0.85rem 0.62rem 0.72rem;}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;}
  .fade-in{opacity:1;transform:none;}
  .fade-in.visible{opacity:1;transform:none;}
  .scroll-line{animation:none;opacity:.5;}
}