/* ============================================================
   Il Pescatore Torremolinos · Tokens + global
   Paleta: azul marino (#0a1a2e/#0d2341) + blanco/cream
   ============================================================ */
:root{
  --paper:        #f4f1ea;
  --paper-soft:   #faf7f0;
  --white:        #ffffff;
  --ink:          #0a1a2e;
  --navy:         #0d2341;
  --navy-deep:    #061429;
  --navy-light:   #2a4670;
  --navy-mute:    #4a648c;
  --line:         rgba(13, 35, 65, 0.13);
  --line-strong:  rgba(13, 35, 65, 0.22);
  --gold:         #b89968;          /* solo whisper para hover de links muy puntuales */
  --shadow-soft:  0 1px 2px rgba(10,26,46,.05), 0 8px 28px -12px rgba(10,26,46,.18);
  --shadow-lift:  0 6px 24px -12px rgba(10,26,46,.20), 0 18px 48px -24px rgba(10,26,46,.22);
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:  'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --radius-sm: 4px;
  --radius:    8px;
  --radius-lg: 18px;
  --container: 1240px;
  --gutter: clamp(20px, 4vw, 56px);
}

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; }
body{
  font-family: var(--sans);
  font-weight: 400;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.ilp-no-scroll{ overflow:hidden; }
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
button{ font: inherit; cursor: pointer; border: 0; background: transparent; color: inherit; }

/* Utility container */
.ilp-container{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-inline: var(--gutter);
}

/* Reveal animation */
[data-reveal]{ opacity:0; transform: translateY(18px); transition: opacity .8s cubic-bezier(.22,.7,.21,1), transform .8s cubic-bezier(.22,.7,.21,1); }
[data-reveal].is-in{ opacity:1; transform:none; }
[data-reveal][data-delay="1"]{ transition-delay: .12s; }
[data-reveal][data-delay="2"]{ transition-delay: .22s; }
[data-reveal][data-delay="3"]{ transition-delay: .32s; }

/* ============================================================
   NAV
   ============================================================ */
.ilp-nav{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255, 255, 255, .85);
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .3s ease, background .3s ease;
}
.ilp-nav.is-scrolled{
  border-bottom-color: rgba(79, 184, 176, .35);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 4px 16px -10px rgba(20, 64, 62, .15);
}
.ilp-nav-inner{
  max-width: var(--container);
  margin: 0 auto;
  padding: 14px var(--gutter);
  display: flex;
  align-items: center;
  gap: 24px;
}
.ilp-brand{ display:flex; align-items:center; gap:12px; color: #1f5e5c; }
.ilp-brand-logo{ height: 42px; width: auto; display: block; }
@media (max-width: 880px){ .ilp-brand-logo{ height: 56px; } }
@media (max-width: 420px){ .ilp-brand-logo{ height: 50px; } }

.ilp-nav-links{ display:flex; gap: 28px; margin-inline: auto; }
.ilp-nav-link{
  font-size: 13px; letter-spacing: .12em; text-transform: uppercase;
  color: #1f5e5c; position: relative; padding: 6px 0;
  transition: color .25s;
}
.ilp-nav-link:hover{ color: #4FB8B0; }
.ilp-nav-link.is-active::after{
  content: ''; position:absolute; left:0; right:0; bottom:-2px; height:1px; background: #4FB8B0;
}

.ilp-nav-cta{ display:flex; gap: 10px; align-items: center; }
.ilp-nav-wa{
  display:inline-flex; align-items:center; gap: 8px;
  padding: 9px 14px; border-radius: 999px;
  border: 1px solid rgba(31, 94, 92, 0.25);
  font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #1f5e5c;
  transition: background .25s, color .25s, border-color .25s;
}
.ilp-nav-wa:hover{ background: #4FB8B0; color: #fff; border-color: #4FB8B0; }
.ilp-nav-reserve{
  padding: 11px 22px;
  background: #4FB8B0; color: #fff;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
  border-radius: 999px;
  transition: background .25s, transform .15s;
  box-shadow: 0 6px 18px -8px rgba(79, 184, 176, .55);
}
.ilp-nav-reserve:hover{ background: #1f5e5c; transform: translateY(-1px); }

.ilp-burger{ display:none; width: 36px; height: 36px; padding: 0; flex-direction: column; align-items:center; justify-content:center; gap: 5px; }
.ilp-burger span{ width: 22px; height: 1.5px; background: #1f5e5c; transition: transform .3s; }
.ilp-burger[aria-expanded="true"] span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
.ilp-burger[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.ilp-burger[aria-expanded="true"] span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }

/* Drawer móvil */
.ilp-drawer[hidden]{ display: none !important; }
.ilp-drawer{
  position: fixed; inset: 0; z-index: 100;
  background: rgba(20, 64, 62, .55);
  display:flex; justify-content: flex-end;
  animation: ilp-fade .25s ease;
}
.ilp-drawer-inner{
  width: min(420px, 100%); height:100%;
  background: var(--paper); padding: 28px 30px 40px;
  display:flex; flex-direction:column; gap: 28px;
  overflow-y: auto;
  animation: ilp-slidein .35s cubic-bezier(.22,.7,.21,1);
}
@keyframes ilp-fade{ from{ opacity:0 } to{ opacity:1 } }
@keyframes ilp-slidein{ from{ transform: translateX(20px); opacity:0 } to{ transform: none; opacity:1 } }
.ilp-drawer-close{ align-self: flex-end; font-size: 28px; line-height: 1; padding: 4px 10px; color: #1f5e5c; }
.ilp-drawer-nav{ display:flex; flex-direction:column; gap: 8px; }
.ilp-drawer-link{
  display:flex; align-items:baseline; gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(31, 94, 92, .15);
  font-family: var(--serif); font-style: italic; font-size: 26px; color: #1f5e5c;
}
.ilp-drawer-link.is-active{ color: #4FB8B0; }
.ilp-drawer-num{ font-family: 'Caveat', cursive; font-size: 16px; color: #4FB8B0; text-transform: none; letter-spacing: 0; }
.ilp-drawer-meta{ display:flex; flex-direction:column; gap: 8px; font-size: 13px; color: #1f5e5c; }
.ilp-drawer-meta a{ color: #1f5e5c; }
.ilp-drawer-cta{
  display:block; text-align:center; padding: 16px;
  background: #4FB8B0; color: #fff;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500;
  border-radius: 999px;
  box-shadow: 0 8px 22px -10px rgba(79, 184, 176, .55);
}
.ilp-drawer-cta:hover{ background: #1f5e5c; }

@media (max-width: 960px){
  .ilp-nav-links{ display: none; }
  .ilp-nav-wa span{ display: none; }
  .ilp-nav-wa{ padding: 9px; }
  .ilp-burger{ display: inline-flex; }
}
@media (max-width: 560px){
  .ilp-nav-reserve{ display: none; }
}

/* En modo app móvil (≤880px): solo logo grande centrado · sin CTAs (FAB + tabbar abajo se encargan) */
@media (max-width: 880px){
  .ilp-nav-inner{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 12px var(--gutter);
  }
  .ilp-brand{ margin: 0; }
  /* Todo el bloque CTA + reserve + burger se va: ya hay FAB Reservar + tabbar inferior */
  .ilp-nav-cta, .ilp-nav-reserve, .ilp-nav-wa, .ilp-burger{ display: none !important; }
}

/* ============================================================
   HERO
   ============================================================ */
.ilp-hero{
  position: relative;
  min-height: clamp(560px, 78svh, 760px);
  display: grid;
  align-items: end;
  overflow: hidden;
  isolation: isolate;
  color: var(--white);
}
.ilp-hero::before{
  content: ''; position: absolute; inset: 0; z-index: -2;
  background:
    linear-gradient(180deg, rgba(6,20,41,.20) 0%, rgba(6,20,41,.70) 70%, rgba(6,20,41,.85) 100%),
    url('/img/gallery/6X5A4670.jpg') center/cover no-repeat;
}
.ilp-hero::after{
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(80% 60% at 50% 100%, rgba(6,20,41,.5) 0%, transparent 70%);
}
.ilp-hero-content{
  max-width: var(--container);
  margin: 0 auto; width: 100%;
  padding: 80px var(--gutter) 80px;
}
.ilp-hero-pre{
  display:inline-flex; align-items:center; gap:12px;
  font-size: 11.5px; letter-spacing: .26em; text-transform: uppercase;
  color: rgba(255,255,255,.85); margin-bottom: 22px;
}
.ilp-hero-pre::before{ content:''; width:36px; height:1px; background: currentColor; opacity:.6; }
.ilp-hero h1{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(56px, 9vw, 116px);
  line-height: 0.92; letter-spacing: -.01em;
  margin: 0 0 24px;
  color: var(--white);
}
.ilp-hero h1 em{ font-style: italic; font-weight: 400; color: rgba(255,255,255,.92); display: block; }
.ilp-hero-sub{
  font-size: clamp(15px, 1.5vw, 18px);
  max-width: 520px; line-height: 1.6;
  color: rgba(255,255,255,.85); margin: 0 0 36px;
}
.ilp-hero-actions{ display:flex; flex-wrap: wrap; gap: 14px; }
.ilp-hero-cta{
  display:inline-flex; align-items:center; gap: 12px;
  padding: 16px 28px;
  font-size: 12px; letter-spacing: .16em; text-transform: uppercase;
  border-radius: 999px; transition: all .25s;
}
.ilp-hero-cta.primary{ background: var(--white); color: var(--navy); }
.ilp-hero-cta.primary:hover{ background: var(--paper); transform: translateY(-1px); }
.ilp-hero-cta.outline{ border: 1px solid rgba(255,255,255,.4); color: var(--white); }
.ilp-hero-cta.outline:hover{ background: rgba(255,255,255,.1); border-color: var(--white); }
.ilp-hero-foot{
  position: absolute; left: 0; right: 0; bottom: 22px;
  display:flex; justify-content: space-between; gap: 20px;
  padding: 0 var(--gutter); max-width: var(--container); margin: 0 auto;
  font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(255,255,255,.7);
}
.ilp-hero-foot span{ display:inline-flex; align-items:center; gap: 8px; }
@media (max-width: 760px){
  .ilp-hero-foot{ flex-direction: column; gap: 6px; }
}

/* ============================================================
   SECTION + EYEBROW
   ============================================================ */
.ilp-section{ padding: clamp(72px, 11vw, 140px) 0; }
.ilp-section--paper{ background: var(--paper); }
.ilp-section--white{ background: var(--white); }
.ilp-section--navy{ background: var(--navy); color: var(--white); }
.ilp-section--navy .ilp-eyebrow,
.ilp-section--navy .ilp-h2,
.ilp-section--navy h3{ color: var(--white); }
.ilp-section--navy .ilp-h2 em{ color: rgba(255,255,255,.85); }

.ilp-eyebrow{
  display:inline-flex; align-items:center; gap:14px;
  font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--navy-mute); margin-bottom: 18px;
}
.ilp-eyebrow .num{
  font-family: var(--serif); font-style: italic; font-weight:500; font-size:18px; color: var(--navy); letter-spacing: 0;
}
.ilp-eyebrow::after{ content:''; width: 28px; height: 1px; background: currentColor; opacity: .5; }

.ilp-h2{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(40px, 5.5vw, 72px);
  line-height: 1.04; letter-spacing: -.005em;
  color: var(--navy); margin: 0 0 24px;
}
.ilp-h2 em{ font-style: italic; font-weight: 400; color: var(--navy-mute); }

.ilp-body{
  font-size: clamp(15px, 1.3vw, 17px);
  color: var(--navy);
  max-width: 56ch;
}

.ilp-link{
  display:inline-flex; align-items:center; gap: 10px;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--navy); padding-bottom: 4px; border-bottom: 1px solid var(--navy);
  transition: color .25s, border-color .25s;
}
.ilp-link:hover{ color: var(--navy-deep); border-color: var(--navy-deep); }

/* ============================================================
   BIENVENIDA
   ============================================================ */
.ilp-welcome{ text-align:center; }
.ilp-welcome .ilp-eyebrow{ justify-content:center; }
.ilp-welcome .ilp-h2{ margin-inline:auto; max-width: 18ch; }
.ilp-welcome .ilp-body{ margin: 28px auto 0; text-align:left; max-width: 60ch; color: var(--navy-mute); }
.ilp-welcome-rule{ width: 1px; height: 64px; background: var(--line-strong); margin: 56px auto 0; }

/* ============================================================
   EXPERIENCIAS
   ============================================================ */
.ilp-exp-head{ max-width: 700px; margin: 0 auto 80px; text-align: center; }
.ilp-exp-head .ilp-h2{ margin-bottom: 18px; }
.ilp-exp-head p{ color: var(--navy-mute); font-size: 16px; margin: 0; }
.ilp-exp-list{ max-width: 1000px; margin: 0 auto; display:flex; flex-direction:column; }
.ilp-exp-item{
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 24px;
  padding: 36px 0;
  border-top: 1px solid var(--line);
}
.ilp-exp-item:last-child{ border-bottom: 1px solid var(--line); }
.ilp-exp-num{
  font-family: var(--serif); font-style: italic;
  font-size: 28px; color: var(--navy-mute);
}
.ilp-exp-title-wrap{ display:flex; align-items:baseline; gap: 16px; flex-wrap: wrap; justify-content: space-between; }
.ilp-exp-title{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(26px, 3vw, 36px);
  margin: 0; color: var(--navy);
}
.ilp-exp-title em{ font-style: italic; color: var(--navy-mute); }
.ilp-exp-link{
  display:inline-flex; align-items:center; gap: 8px;
  font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--navy); border-bottom: 1px solid var(--navy);
  padding-bottom: 3px;
}
.ilp-exp-body{
  grid-column: 2;
  margin: 12px 0 0;
  color: var(--navy-mute);
  font-size: 16px; line-height: 1.65; max-width: 64ch;
}
@media (max-width: 640px){
  .ilp-exp-item{ grid-template-columns: 1fr; gap: 12px; }
  .ilp-exp-body{ grid-column: 1; }
}

/* ============================================================
   CARTA destacada (signature dishes con foto rotando)
   ============================================================ */
.ilp-carta-grid{
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: center;
}
@media (max-width: 920px){ .ilp-carta-grid{ grid-template-columns: 1fr; } }
.ilp-dishes{
  margin-top: 40px;
  display: flex; flex-direction: column;
  border-top: 1px solid var(--line);
}
.ilp-dish{
  display:flex; justify-content: space-between; align-items: baseline; gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer; user-select: none;
  opacity: .55; transition: opacity .35s, padding .35s;
}
.ilp-dish.is-active{ opacity: 1; padding-left: 16px; }
.ilp-dish-name{ font-family: var(--serif); font-size: clamp(18px, 1.6vw, 22px); color: var(--navy); flex: 1 1 auto; }
.ilp-dish-tag{ font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--navy-mute); }
.ilp-dish-price{ font-size: 14px; color: var(--navy); font-variant-numeric: tabular-nums; }

.ilp-carta-photo{
  position: relative;
  aspect-ratio: 4 / 5;
  background: var(--navy);
  overflow: hidden;
}
.ilp-carta-photo img{
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transform: scale(1.04);
  transition: opacity 1.1s ease, transform 6s ease-out;
}
.ilp-carta-photo img.is-active{ opacity: 1; transform: scale(1); }
.ilp-carta-photo-counter,
.ilp-carta-photo-name{
  position: absolute; left: 24px; right: 24px; color: var(--white); z-index: 2;
  font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase;
}
.ilp-carta-photo-counter{ top: 24px; }
.ilp-carta-photo-name{
  bottom: 24px; font-family: var(--serif); font-size: 18px;
  letter-spacing: 0; text-transform: none; max-width: 80%;
}

/* ============================================================
   VISIT
   ============================================================ */
.ilp-visit-head{ text-align: center; max-width: 720px; margin: 0 auto 60px; }
.ilp-visit-head .ilp-eyebrow{ justify-content: center; }
.ilp-visit-tagline{ color: var(--navy-mute); font-size: 17px; }

.ilp-visit-stats{
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--line);
  border: 1px solid var(--line);
  margin-bottom: 60px;
  border-radius: var(--radius);
  overflow: hidden;
}
.ilp-visit-stats > div{
  background: var(--paper-soft); padding: 32px 18px; text-align:center;
}
.ilp-visit-stat-num{ display:block; font-family: var(--serif); font-size: clamp(36px, 4vw, 52px); color: var(--navy); }
.ilp-visit-stat-lbl{ display:block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; color: var(--navy-mute); margin-top: 8px; }
@media (max-width: 720px){ .ilp-visit-stats{ grid-template-columns: 1fr; } }

.ilp-visit-map-wrap{ position: relative; aspect-ratio: 16/9; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-soft); margin-bottom: 56px; }
.ilp-visit-map-frame{ width: 100%; height: 100%; border: 0; filter: grayscale(.25) contrast(.95); }
.ilp-visit-marker{ position: absolute; left: 50%; top: 46%; transform: translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; pointer-events:none; }
.ilp-visit-marker-pin{ width: 36px; height: 50px; }
.ilp-visit-marker-label{ background: var(--white); padding: 6px 10px; border-radius: 4px; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--navy); margin-top: 6px; box-shadow: var(--shadow-soft); }
.ilp-visit-map-btn{
  position: absolute; right: 18px; bottom: 18px;
  display: inline-flex; align-items:center; gap: 8px;
  padding: 10px 16px; background: var(--white); color: var(--navy);
  font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  border-radius: 999px; box-shadow: var(--shadow-soft);
}

.ilp-visit-info{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 880px){ .ilp-visit-info{ grid-template-columns: 1fr; } }
.ilp-visit-card{
  border: 1px solid var(--line); padding: 32px 28px; border-radius: var(--radius);
  background: var(--paper-soft);
  display:flex; flex-direction: column; gap: 10px;
}
.ilp-visit-icon{ width: 44px; height: 44px; display:grid; place-items:center; border-radius: 50%; border: 1px solid var(--line-strong); color: var(--navy); margin-bottom: 8px; }
.ilp-visit-cat{ font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--navy-mute); margin: 0; }
.ilp-visit-val{ font-family: var(--serif); font-size: 18px; line-height: 1.5; color: var(--navy); margin: 0; }
.ilp-visit-val a{ color: inherit; }
.ilp-visit-val a:hover{ color: var(--gold); }
.ilp-visit-link{ margin-top: auto; font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--navy); border-bottom: 1px solid var(--navy); padding-bottom: 2px; align-self: flex-start; }

/* ============================================================
   GALERÍA bento
   ============================================================ */
.ilp-gal-grid{
  display:grid; grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 200px; gap: 12px;
}
.ilp-gal-grid > a{ display:block; overflow:hidden; background: var(--navy); }
.ilp-gal-grid > a img{ width:100%; height:100%; object-fit:cover; transition: transform 1.4s ease; }
.ilp-gal-grid > a:hover img{ transform: scale(1.06); }
.ilp-gal-grid > a:nth-child(1){ grid-column: span 2; grid-row: span 2; }
.ilp-gal-grid > a:nth-child(6){ grid-row: span 2; }
@media (max-width: 880px){
  .ilp-gal-grid{ grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; }
  .ilp-gal-grid > a:nth-child(1){ grid-column: span 2; grid-row: span 2; }
  .ilp-gal-grid > a:nth-child(6){ grid-row: span 1; }
}

/* ============================================================
   RESEÑAS
   ============================================================ */
.ilp-rev-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 880px){ .ilp-rev-grid{ grid-template-columns: 1fr; } }
.ilp-rev-card{
  background: var(--paper-soft); border: 1px solid var(--line);
  padding: 28px; border-radius: var(--radius);
}
.ilp-rev-stars{ color: var(--gold); letter-spacing: 2px; font-size: 14px; margin-bottom: 14px; }
.ilp-rev-text{ font-family: var(--serif); font-size: 19px; line-height: 1.5; color: var(--navy); margin: 0 0 16px; font-style: italic; }
.ilp-rev-name{ font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--navy-mute); }

/* ============================================================
   FOOTER · paleta teal cálida
   ============================================================ */
.ilp-footer{
  background: #1f5e5c;
  background-image:
    radial-gradient(circle at 10% 0%, rgba(79, 184, 176, .14) 0, transparent 50%),
    radial-gradient(circle at 90% 100%, rgba(20, 64, 62, .35) 0, transparent 60%);
  color: rgba(255,255,255,.82);
  padding: 80px 0 40px;
  position: relative;
}
.ilp-footer::before{
  /* hairline de olas en el header del footer, mismo motif de la fachada */
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 24px;
  background-repeat: repeat-x; background-position: center;
  background-size: 480px 24px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='480' height='24' viewBox='0 0 480 24' fill='none' stroke='%234FB8B0' stroke-width='1.4' stroke-linecap='round'><path d='M0 12 Q 30 2, 60 12 T 120 12 T 180 12 T 240 12 T 300 12 T 360 12 T 420 12 T 480 12'/></svg>");
  opacity: .35;
}
.ilp-footer-inner{ max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); position: relative; }
.ilp-footer-grid{ display: grid; grid-template-columns: 1.4fr 1fr 1.15fr 1fr; gap: 48px; margin-bottom: 56px; }
@media (max-width: 880px){ .ilp-footer-grid{ grid-template-columns: 1fr 1fr; gap: 36px; } }
@media (max-width: 520px){ .ilp-footer-grid{ grid-template-columns: 1fr; } }
.ilp-footer-brand{ display: inline-block; }
.ilp-footer-brand img{ height: 54px; width: auto; }
.ilp-footer-tag{ font-family: 'Caveat', cursive; font-size: 22px; color: #ffe9aa; margin: 8px 0 14px; transform: rotate(-1deg); display: inline-block; }
.ilp-footer-blurb{ font-size: 14px; line-height: 1.65; max-width: 36ch; color: rgba(255,255,255,.78); margin: 0; }
.ilp-footer-h{
  font-family: 'Caveat', cursive;
  font-size: 26px; letter-spacing: 0; text-transform: none;
  color: #ffe9aa;
  margin: 0 0 14px;
  transform: rotate(-1deg);
  display: inline-block;
}
.ilp-footer-line{ font-size: 14px; margin: 0 0 4px; color: rgba(255,255,255,.85); }
.ilp-footer-link{
  display: block;
  font-size: 14px; color: rgba(255,255,255,.85);
  padding: 4px 0;
  transition: color .25s;
  border-bottom: 1px dashed transparent;
  width: max-content;
  max-width: 100%;
}
.ilp-footer-link:hover{ color: #ffe9aa; border-bottom-color: rgba(255,233,170,.4); }

.ilp-footer-hours{ list-style: none; padding: 0; margin: 0; }
.ilp-footer-hours li{
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
  padding: 8px 0;
  font-size: 13.5px;
  border-bottom: 1px dashed rgba(255,255,255,.16);
}
.ilp-footer-hours li:last-child{ border-bottom: 0; }
.ilp-footer-hours li span:first-child{
  color: rgba(255,233,170,.85);
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 500;
}
.ilp-footer-hours li span:last-child{
  color: rgba(255,255,255,.92);
  font-family: var(--serif); font-style: italic; font-size: 15px;
  line-height: 1.4;
}
.ilp-footer-hours .is-closed{
  color: #ffd086 !important;
  font-style: italic;
}

.ilp-footer-rule{ height: 1px; background: rgba(255,255,255,.14); }
.ilp-footer-bottom{
  display: flex; justify-content: space-between;
  padding-top: 26px;
  flex-wrap: wrap; gap: 16px;
  font-size: 12px; color: rgba(255,255,255,.6);
}
.ilp-footer-legal{ display: flex; gap: 18px; margin: 0; }
.ilp-footer-legal a{ color: rgba(255,255,255,.78); }
.ilp-footer-legal a:hover{ color: #ffe9aa; }

/* ============================================================
   IL FOGLIO DEL PESCATORE — concepto editorial / periódico
   Prefijo .ilm-* (Il Foglio Magazine)
   ============================================================ */

.ilm-edition{
  background: var(--paper);
  border-bottom: 1px solid var(--line-strong);
  padding: 10px var(--gutter);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--navy-mute);
}
.ilm-edition-inner{
  max-width: var(--container);
  margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; flex-wrap: wrap;
}
.ilm-edition-inner > span{ display: inline-flex; align-items: center; gap: 8px; }
.ilm-edition-tri{ display: inline-flex; align-items: center; gap: 0; }
.ilm-edition-tri::before{
  content: ''; display: inline-block; width: 16px; height: 9px;
  background: linear-gradient(to right, #008c45 33.33%, #f4f1ea 33.33% 66.66%, #cd212a 66.66%);
  border: 1px solid var(--line-strong);
  margin-right: 8px;
}
@media (max-width: 720px){ .ilm-edition span:nth-child(2),.ilm-edition span:nth-child(4){ display: none; } }

.ilm-masthead{
  background: var(--paper);
  padding: clamp(40px, 6vw, 80px) var(--gutter) clamp(24px, 4vw, 40px);
  text-align: center;
  border-bottom: 2px solid var(--navy);
  position: relative;
}
.ilm-masthead::before, .ilm-masthead::after{
  content: ''; position: absolute; left: var(--gutter); right: var(--gutter); height: 1px;
  background: var(--navy);
}
.ilm-masthead::before{ top: 28px; }
.ilm-masthead::after{ display: none; }
.ilm-masthead-logo{
  max-width: 100%;
  height: auto;
  width: clamp(280px, 50vw, 620px);
  margin: 0 auto;
  display: block;
}
.ilm-masthead-tag{
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(15px, 1.6vw, 18px);
  color: var(--navy);
  margin: 18px 0 0;
  letter-spacing: .01em;
}
.ilm-masthead-tag::before, .ilm-masthead-tag::after{
  content: '·'; margin: 0 14px; color: var(--navy-mute);
}

.ilm-hero-photo{
  background: var(--paper);
  padding: 0;
  border-bottom: 1px solid var(--navy);
}
.ilm-hero-photo img{
  width: 100%; aspect-ratio: 16/5;
  object-fit: cover; display: block;
  filter: contrast(0.96) saturate(0.92);
}
.ilm-hero-cap{
  display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  padding: 12px var(--gutter);
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--navy-mute);
  background: var(--paper);
  border-bottom: 1px solid var(--line-strong);
}
.ilm-hero-cap em{ font-style: italic; text-transform: none; letter-spacing: .01em; font-family: var(--serif); font-size: 14px; color: var(--navy); }

/* ── LEAD: 3-column editorial ── */
.ilm-lead{
  max-width: var(--container);
  margin: 0 auto;
  padding: clamp(50px, 7vw, 90px) var(--gutter);
  border-bottom: 1px solid var(--line-strong);
  background: var(--paper);
}
.ilm-lead-top{
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 20px; align-items: end;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line-strong);
  margin-bottom: 36px;
}
.ilm-lead-kicker{
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--navy-mute);
}
.ilm-lead-byline{
  font-family: var(--serif); font-style: italic; font-size: 14px;
  color: var(--navy-mute); text-align: right;
}
.ilm-lead-h{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(40px, 6vw, 78px);
  line-height: 0.96; letter-spacing: -.012em;
  color: var(--navy);
  margin: 0 0 36px;
  max-width: 22ch;
}
.ilm-lead-h em{ font-style: italic; color: var(--navy-mute); font-weight: 400; }
.ilm-lead-cols{
  columns: 3;
  column-gap: 56px;
  column-rule: 1px solid var(--line);
  font-size: 15px;
  line-height: 1.65;
  color: var(--navy);
  hyphens: auto;
  -webkit-hyphens: auto;
  text-align: justify;
}
.ilm-lead-cols p{ margin: 0 0 14px; break-inside: avoid; }
.ilm-lead-cols p:first-of-type::first-letter{
  font-family: var(--serif);
  float: left;
  font-size: 5em;
  line-height: .85;
  font-weight: 600;
  margin: 6px 8px 0 0;
  color: var(--navy);
}
@media (max-width: 880px){ .ilm-lead-cols{ columns: 2; column-gap: 36px; } }
@media (max-width: 600px){ .ilm-lead-cols{ columns: 1; } .ilm-lead-top{ grid-template-columns: 1fr; } .ilm-lead-byline{ text-align: left; } }

/* ── TICKER ── */
.ilm-ticker{
  background: var(--navy);
  color: var(--white);
  padding: 14px 0;
  overflow: hidden;
  border-bottom: 1px solid var(--navy-deep);
  border-top: 1px solid var(--navy-deep);
  position: relative;
}
.ilm-ticker::before, .ilm-ticker::after{
  content: ''; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 2; pointer-events: none;
}
.ilm-ticker::before{ left: 0; background: linear-gradient(to right, var(--navy), transparent); }
.ilm-ticker::after{  right: 0; background: linear-gradient(to left,  var(--navy), transparent); }
.ilm-ticker-track{
  display: flex; gap: 0; flex-wrap: nowrap;
  animation: ilm-marquee 60s linear infinite;
  width: max-content;
}
.ilm-ticker:hover .ilm-ticker-track{ animation-play-state: paused; }
.ilm-ticker-item{
  font-family: var(--serif); font-size: 18px; font-style: italic;
  white-space: nowrap;
  padding: 0 32px;
  border-right: 1px solid rgba(255,255,255,.2);
}
.ilm-ticker-item .px{ font-family: var(--sans); font-style: normal; font-size: 13px; letter-spacing: .12em; margin-left: 12px; color: rgba(255,255,255,.65); }
@keyframes ilm-marquee{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

/* ── CHART · oggi nel menù ── */
.ilm-chart-wrap{
  background: var(--paper);
  padding: clamp(60px, 8vw, 120px) var(--gutter);
  border-bottom: 1px solid var(--line-strong);
}
.ilm-chart-inner{ max-width: 920px; margin: 0 auto; }
.ilm-chart-head{
  text-align: center; margin-bottom: 56px;
  padding-bottom: 28px; border-bottom: 1px solid var(--line-strong);
}
.ilm-chart-kicker{ font-size: 11px; letter-spacing: .26em; text-transform: uppercase; color: var(--navy-mute); }
.ilm-chart-h{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(40px, 5vw, 64px); color: var(--navy);
  margin: 12px 0 8px; font-style: italic;
}
.ilm-chart-sub{ font-family: var(--serif); font-size: 16px; color: var(--navy-mute); font-style: italic; margin: 0; }
.ilm-chart-list{ list-style: none; padding: 0; margin: 0; }
.ilm-chart-row{
  display: grid; grid-template-columns: 64px 1fr auto;
  gap: 24px; align-items: baseline;
  padding: 24px 0;
  border-top: 1px solid var(--line);
  position: relative;
  cursor: pointer;
  transition: background .35s;
}
.ilm-chart-row:last-child{ border-bottom: 1px solid var(--line); }
.ilm-chart-row:hover{ background: var(--paper-soft); padding-inline: 14px; }
.ilm-chart-num{
  font-family: var(--serif); font-style: italic;
  font-size: 38px; color: var(--navy-mute);
  line-height: 1;
}
.ilm-chart-name{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.15; color: var(--navy);
  margin: 0 0 6px;
}
.ilm-chart-tag{
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--navy-mute);
}
.ilm-chart-price{
  font-family: var(--serif);
  font-size: clamp(20px, 2vw, 26px);
  color: var(--navy);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
@media (max-width: 600px){
  .ilm-chart-row{ grid-template-columns: 44px 1fr; row-gap: 6px; column-gap: 14px; }
  .ilm-chart-num{ font-size: 26px; }
  .ilm-chart-price{ grid-column: 2 / 3; font-size: 20px; }
}

/* ── PHOTO GRID 2x3 (uniform) ── */
.ilm-photogrid{
  background: var(--navy);
  padding: 0;
  border-bottom: 2px solid var(--navy-deep);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
}
.ilm-photogrid > a{
  display: block; aspect-ratio: 4/3;
  position: relative; overflow: hidden;
}
.ilm-photogrid > a img{ width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s ease, filter .8s ease; filter: contrast(0.96) saturate(.95); }
.ilm-photogrid > a:hover img{ transform: scale(1.05); filter: contrast(1) saturate(1.05); }
.ilm-photogrid-cap{
  position: absolute; left: 14px; bottom: 14px;
  background: var(--navy); color: var(--white);
  padding: 4px 10px;
  font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase;
}
@media (max-width: 720px){ .ilm-photogrid{ grid-template-columns: repeat(2, 1fr); } }

/* ── DOVE TROVARCI · ticket layout ── */
.ilm-doves{
  background: var(--paper);
  padding: clamp(60px, 8vw, 100px) var(--gutter);
  border-bottom: 1px solid var(--line-strong);
}
.ilm-doves-inner{
  max-width: var(--container); margin: 0 auto;
  display: grid; grid-template-columns: 1.05fr 1fr;
  gap: 0; align-items: stretch;
  border: 1px solid var(--navy);
}
.ilm-doves-map{
  position: relative; min-height: 460px;
  background: var(--navy);
}
.ilm-doves-map iframe{ width:100%; height:100%; border:0; filter: grayscale(.55) contrast(.95); }
.ilm-doves-ticket{
  background: var(--paper-soft);
  padding: 40px clamp(24px, 4vw, 60px);
  display: flex; flex-direction: column; gap: 24px;
  border-left: 1px solid var(--navy);
}
.ilm-doves-ticket-h{
  display: flex; justify-content: space-between; align-items: baseline;
  border-bottom: 2px solid var(--navy);
  padding-bottom: 18px; margin-bottom: 4px;
}
.ilm-doves-ticket-h .num{ font-family: var(--serif); font-style: italic; color: var(--navy-mute); font-size: 16px; }
.ilm-doves-ticket-h .label{ font-family: var(--serif); font-size: clamp(28px, 3vw, 40px); color: var(--navy); font-style: italic; }
.ilm-doves-row{ display: grid; grid-template-columns: 110px 1fr; gap: 18px; align-items: start; padding: 8px 0; border-bottom: 1px dashed var(--line-strong); font-size: 14px; }
.ilm-doves-row:last-of-type{ border-bottom: 0; }
.ilm-doves-row span:first-child{ font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--navy-mute); padding-top: 3px; }
.ilm-doves-row span:last-child{ color: var(--navy); }
.ilm-doves-row a{ color: inherit; border-bottom: 1px solid var(--line-strong); }
.ilm-doves-row .closed{ color: var(--gold); }
.ilm-doves-cta{
  display: inline-flex; justify-content: center; align-items: center; gap: 10px;
  margin-top: auto;
  padding: 16px;
  background: var(--navy); color: var(--white);
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
}
.ilm-doves-cta:hover{ background: var(--navy-deep); }
@media (max-width: 880px){
  .ilm-doves-inner{ grid-template-columns: 1fr; }
  .ilm-doves-map{ min-height: 320px; }
  .ilm-doves-ticket{ border-left: 0; border-top: 1px solid var(--navy); }
}

/* ── VOCE · single rotating quote ── */
.ilm-voce{
  background: var(--navy); color: var(--white);
  padding: clamp(80px, 10vw, 140px) var(--gutter);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.ilm-voce::before, .ilm-voce::after{
  content: '"'; position: absolute;
  font-family: var(--serif); font-style: italic;
  font-size: clamp(280px, 36vw, 460px);
  color: rgba(255,255,255,.05);
  line-height: 1; pointer-events: none;
  font-weight: 400;
}
.ilm-voce::before{ top: -50px; left: 4vw; }
.ilm-voce::after{ bottom: -160px; right: 4vw; transform: scaleX(-1); }
.ilm-voce-inner{ max-width: 900px; margin: 0 auto; position: relative; z-index: 2; }
.ilm-voce-kicker{
  font-size: 11px; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(255,255,255,.55); margin-bottom: 32px;
  display: inline-flex; gap: 14px; align-items: center;
}
.ilm-voce-kicker::before, .ilm-voce-kicker::after{ content: ''; width: 32px; height: 1px; background: currentColor; opacity: .5; }
.ilm-voce-quotes{ position: relative; min-height: 260px; }
.ilm-voce-quote{
  position: absolute; inset: 0;
  opacity: 0; transition: opacity 1.2s ease;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.ilm-voce-quote.is-on{ opacity: 1; position: relative; }
.ilm-voce-text{
  font-family: var(--serif); font-style: italic; font-weight: 400;
  font-size: clamp(24px, 3.4vw, 42px);
  line-height: 1.32; color: var(--white);
  margin: 0 0 30px;
}
.ilm-voce-meta{
  font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.7);
}
.ilm-voce-meta strong{ color: var(--white); font-weight: 400; }
.ilm-voce-stars{ color: var(--gold); letter-spacing: 4px; font-size: 14px; margin-bottom: 24px; }
.ilm-voce-cta{
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: 60px; padding: 12px 22px;
  border: 1px solid rgba(255,255,255,.4);
  font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--white);
  border-radius: 999px;
  transition: background .25s, border-color .25s;
}
.ilm-voce-cta:hover{ background: rgba(255,255,255,.1); border-color: var(--white); }

/* ── COLOPHON · cierre ── */
.ilm-colophon{
  background: var(--paper);
  padding: 60px var(--gutter) 40px;
  text-align: center;
  border-bottom: 1px solid var(--line-strong);
}
.ilm-colophon-tag{
  font-family: var(--serif); font-style: italic;
  font-size: clamp(36px, 5vw, 60px);
  color: var(--navy);
  margin: 0 0 18px;
  letter-spacing: .015em;
}
.ilm-colophon-meta{
  display: flex; justify-content: center; gap: 24px; flex-wrap: wrap;
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--navy-mute);
}
.ilm-colophon-meta span{ display: inline-flex; gap: 8px; align-items: center; }
.ilm-colophon-meta span + span::before{ content: '·'; color: var(--line-strong); margin-right: 16px; }

/* ============================================================
   TRATTORIA · "Come a casa della nonna" — Mediterranean palette
   Brand colors: turquesa #4FB8B0 + teal-deep #1F5E5C + blanco
   Inspirada en la fachada real (azulejo turquesa + olas dibujadas)
   ============================================================ */

:root{
  --cream:        #ffffff;
  --cream-soft:   #f4faf9;
  --cream-deep:   #d4e9e7;
  --paper-warm:   #e7f3f2;
  --sienna:       #1f5e5c;
  --sienna-soft:  #2e7c79;
  --tomato:       #4FB8B0;
  --tomato-soft:  #6cc6c0;
  --olive:        #1f5e5c;
  --gold-warm:    #d4a574;
  --ink-warm:     #14403e;
  --tape:         rgba(79, 184, 176, 0.24);
  --tape-strong:  rgba(79, 184, 176, 0.40);
  --teal:         #4FB8B0;
  --teal-bright:  #5fc9c2;
  --teal-deep:    #1f5e5c;
  --teal-darker:  #14403e;
  --wave-ink:     #1a3a3a;
  --script: 'Caveat', 'Marck Script', cursive;
}

/* Patrón de olas — motivo de la fachada (líneas dibujadas a mano) */
.ilt-waves{
  display: block;
  width: 100%;
  height: 32px;
  background-repeat: repeat-x;
  background-position: center;
  background-size: 480px 32px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='480' height='32' viewBox='0 0 480 32' fill='none' stroke='%231a3a3a' stroke-width='1.4' stroke-linecap='round'><path d='M0 16 Q 30 4, 60 16 T 120 16 T 180 16 T 240 16 T 300 16 T 360 16 T 420 16 T 480 16'/><path d='M0 22 Q 36 12, 72 22 T 144 22 T 216 22 T 288 22 T 360 22 T 432 22 T 480 22' opacity='0.5'/></svg>");
}
.ilt-waves--on-teal{
  background-color: var(--teal);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='480' height='32' viewBox='0 0 480 32' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round'><path d='M0 16 Q 30 4, 60 16 T 120 16 T 180 16 T 240 16 T 300 16 T 360 16 T 420 16 T 480 16'/><path d='M0 22 Q 36 12, 72 22 T 144 22 T 216 22 T 288 22 T 360 22 T 432 22 T 480 22' opacity='0.55'/></svg>");
}

/* HERO -------------------------------------------------- */
.ilt-hero{
  position: relative;
  background:
    radial-gradient(ellipse at top, rgba(79, 184, 176, .08) 0%, transparent 55%),
    radial-gradient(ellipse at bottom, rgba(31, 94, 92, .06) 0%, transparent 60%),
    var(--cream);
  padding: clamp(40px, 6vw, 70px) 0 clamp(60px, 8vw, 100px);
  overflow: hidden;
  isolation: isolate;
  /* Llena el viewport al cargar la página (descontando el nav sticky de ~76px) */
  min-height: calc(100svh - 76px);
  display: flex;
  align-items: center;
}
@media (max-width: 880px){
  .ilt-hero{ min-height: calc(100svh - 70px); padding: 24px 0 50px; }
}
.ilt-hero-inner{ width: 100%; }

/* HERO split-pane · texto izquierda + foto derecha */
.ilt-hero-split{
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  text-align: left;
  position: relative; z-index: 2;
}
.ilt-hero-split .ilt-hero-left{
  text-align: center;
}
.ilt-hero-split .ilt-flourish{ margin: 0 auto 18px; }
@media (max-width: 880px){
  .ilt-hero-split{ grid-template-columns: 1fr; gap: 28px; }
  /* En móvil la foto va DEBAJO del texto, no encima — para no comerse la primera vista */
  .ilt-hero-split .ilt-hero-right{ order: 2; }
  .ilt-hero-split .ilt-hero-left{ order: 1; }
}

/* Marco polaroid hero */
.ilt-hero-frame{
  position: relative;
  background: #fff;
  padding: 18px 18px 50px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.6) inset,
    0 24px 50px -22px rgba(20, 64, 62, .35),
    0 40px 80px -32px rgba(20, 64, 62, .45);
  transform: rotate(-1.5deg);
  transition: transform .5s cubic-bezier(.22, .7, .21, 1), box-shadow .4s;
  max-width: 480px;
  margin: 0 auto;
}
.ilt-hero-frame:hover{
  transform: rotate(0deg) translateY(-4px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.6) inset,
    0 32px 60px -22px rgba(20, 64, 62, .42),
    0 50px 100px -32px rgba(20, 64, 62, .55);
}
.ilt-hero-frame img{
  display: block;
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  filter: contrast(.97) saturate(.95);
}
.ilt-hero-frame::after{
  /* vignette warm sobre la foto */
  content: '';
  position: absolute;
  top: 18px; left: 18px; right: 18px;
  height: calc(100% - 68px);
  pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 55%, rgba(20, 64, 62, .18) 100%);
}

/* Washi tape decorativos en el marco */
.ilt-hero-frame-tape{
  position: absolute;
  width: 90px; height: 22px;
  background: rgba(79, 184, 176, .25);
  border-left: 1px dashed rgba(79, 184, 176, .55);
  border-right: 1px dashed rgba(79, 184, 176, .55);
  z-index: 4;
}
.ilt-hero-frame-tape--tl{
  top: -10px; left: 24px;
  transform: rotate(-7deg);
}
.ilt-hero-frame-tape--br{
  bottom: 22px; right: -14px;
  transform: rotate(-22deg);
  background: rgba(255, 233, 170, .55);
  border-color: rgba(212, 165, 51, .55);
}

/* Sello "est. MMIX" abajo del marco */
.ilt-hero-frame-stamp{
  position: absolute;
  bottom: 8px; left: 50%; transform: translateX(-50%);
  display: flex; align-items: baseline; gap: 6px;
  color: var(--teal-deep);
  font-style: italic;
}
.ilt-hero-frame-stamp-script{
  font-family: var(--script);
  font-size: 22px;
  color: var(--teal);
}
.ilt-hero-frame-stamp-num{
  font-family: var(--serif); font-style: italic;
  font-size: 18px;
  color: var(--navy);
  letter-spacing: .14em;
}

@media (max-width: 880px){
  .ilt-hero-frame{ max-width: 320px; padding: 12px 12px 40px; transform: rotate(-1deg); }
  .ilt-hero-frame-tape--tl, .ilt-hero-frame-tape--br{ width: 70px; }
  .ilt-hero-frame img{ aspect-ratio: 4/3; }
}
/* En móvil, dejamos que el hero respire: no forzamos full-viewport con la foto debajo */
@media (max-width: 880px){
  .ilt-hero{ min-height: 0; padding: 28px 0 56px; align-items: stretch; }
}
.ilt-hero::before{
  /* sutil teal tint + wave pattern de la fachada */
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    radial-gradient(circle at 20% 15%, rgba(79, 184, 176, 0.10) 0, transparent 45%),
    radial-gradient(circle at 80% 90%, rgba(31, 94, 92, 0.08) 0, transparent 50%);
  opacity: 1;
}
.ilt-hero::after{
  /* línea sutil de olas decorativa en el background */
  content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 64px;
  z-index: 0; pointer-events: none;
  background-repeat: repeat-x; background-position: center;
  background-size: 480px 32px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='480' height='32' viewBox='0 0 480 32' fill='none' stroke='%231a3a3a' stroke-width='1.2' stroke-linecap='round'><path d='M0 16 Q 30 4, 60 16 T 120 16 T 180 16 T 240 16 T 300 16 T 360 16 T 420 16 T 480 16'/></svg>");
  opacity: .04;
}
.ilt-hero-inner{
  position: relative; z-index: 2;
  max-width: 1100px; margin: 0 auto;
  padding: 0 var(--gutter);
  text-align: center;
}
.ilt-flourish{ display: block; margin: 0 auto 18px; color: var(--sienna); }
.ilt-eyebrow-ribbon{
  display: inline-flex; align-items: center; gap: 14px;
  font-family: var(--script);
  font-size: 26px;
  color: var(--tomato);
  letter-spacing: .01em;
  margin-bottom: 14px;
  transform: rotate(-1.5deg);
}
.ilt-eyebrow-ribbon::before, .ilt-eyebrow-ribbon::after{
  content: ''; display: inline-block; width: 28px; height: 2px;
  background: currentColor; opacity: .5;
}
.ilt-hero-mark{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(56px, 10vw, 134px);
  line-height: 0.92;
  letter-spacing: -.012em;
  color: var(--navy);
  margin: 0 0 8px;
}
.ilt-hero-mark em{ font-style: italic; color: var(--sienna); font-weight: 400; }
.ilt-since{
  font-family: var(--script);
  font-size: clamp(28px, 3.5vw, 44px);
  color: var(--tomato);
  transform: rotate(-3deg);
  display: inline-block;
  margin: 6px 0 26px;
}
.ilt-hero-tag{
  font-size: 13px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--sienna);
  margin: 0 0 36px;
  display: inline-flex; align-items: center; gap: 14px;
}
.ilt-hero-tag::before, .ilt-hero-tag::after{
  content: '🐟'; opacity: 0; /* hidden by default; using SVG instead */
}
.ilt-hero-actions{ display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 50px; }
.ilt-btn{
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 30px;
  font-size: 13px; letter-spacing: .14em; text-transform: uppercase;
  border-radius: 999px;
  transition: all .25s;
  font-weight: 500;
}
.ilt-btn--primary{
  background: var(--tomato); color: #fff;
  border: 1px solid var(--tomato);
  box-shadow: 0 6px 20px -8px rgba(184, 68, 46, .55);
}
.ilt-btn--primary:hover{ background: var(--sienna); border-color: var(--sienna); transform: translateY(-1px); }
.ilt-btn--ghost{
  background: transparent; color: var(--navy);
  border: 1px solid var(--navy);
}
.ilt-btn--ghost:hover{ background: var(--navy); color: var(--cream); }

.ilt-hero-photo-wrap{
  position: relative;
  max-width: 880px; margin: 0 auto;
  padding: 0 12px;
}
.ilt-hero-photo{
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  border: 1px solid var(--cream-deep);
  box-shadow:
    0 1px 0 #fff inset,
    0 24px 50px -28px rgba(20, 64, 62, .35),
    0 8px 22px -12px rgba(20, 64, 62, .25);
}
.ilt-hero-photo img{
  width: 100%; height: 100%;
  object-fit: cover;
  filter: contrast(0.96) saturate(0.95) sepia(0.04);
}
.ilt-hero-photo::after{
  /* warm vignette */
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(20, 64, 62, .32) 100%);
  pointer-events: none;
}
.ilt-tape{
  position: absolute;
  width: 100px; height: 24px;
  background: var(--tape);
  border-left: 1px dashed rgba(184,68,46,.45);
  border-right: 1px dashed rgba(184,68,46,.45);
  z-index: 5;
}
.ilt-tape--tl{ top: -10px; left: 30px; transform: rotate(-6deg); }
.ilt-tape--tr{ top: -10px; right: 30px; transform: rotate(7deg); }

.ilt-google{
  display: inline-flex; gap: 8px; align-items: center;
  margin-top: 30px;
  font-size: 13px; color: var(--sienna);
}
.ilt-google-stars{ color: var(--gold-warm); letter-spacing: 2px; }

/* Google rating · card premium */
.ilt-google-card{
  display: inline-flex; align-items: center; gap: 18px;
  padding: 14px 22px 14px 18px;
  margin: 36px auto 0;
  background: #fff;
  border: 1px solid rgba(31, 94, 92, .12);
  border-radius: 16px;
  text-decoration: none;
  color: var(--ink-warm);
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 8px 22px -10px rgba(20, 64, 62, .25),
    0 22px 50px -22px rgba(20, 64, 62, .35);
  transition: transform .2s, box-shadow .25s;
  position: relative;
}
.ilt-google-card:hover{
  transform: translateY(-2px);
  box-shadow:
    0 1px 0 rgba(255,255,255,.8) inset,
    0 14px 30px -10px rgba(20, 64, 62, .3),
    0 30px 60px -22px rgba(20, 64, 62, .4);
}
.ilt-google-card-logo{
  flex: 0 0 auto;
  display: grid; place-items: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 4px 10px -4px rgba(0,0,0,.1);
}
.ilt-google-card-rating{
  display: flex; flex-direction: column; gap: 4px;
  flex: 0 0 auto;
  border-right: 1px solid rgba(31, 94, 92, .1);
  padding-right: 18px;
}
.ilt-google-card-num{
  font-family: var(--serif);
  font-weight: 600;
  font-size: 28px;
  line-height: 1;
  color: var(--navy);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.01em;
}
.ilt-google-card-stars{
  position: relative;
  display: inline-block;
  width: 86px; height: 14px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='86' height='14' viewBox='0 0 86 14'><g fill='%23d4d8db'><polygon points='8.6,1 10.6,5.4 15.4,5.9 11.7,9.1 12.7,13.8 8.6,11.4 4.5,13.8 5.5,9.1 1.8,5.9 6.6,5.4'/><polygon points='25.8,1 27.8,5.4 32.6,5.9 28.9,9.1 29.9,13.8 25.8,11.4 21.7,13.8 22.7,9.1 19,5.9 23.8,5.4'/><polygon points='43,1 45,5.4 49.8,5.9 46.1,9.1 47.1,13.8 43,11.4 38.9,13.8 39.9,9.1 36.2,5.9 41,5.4'/><polygon points='60.2,1 62.2,5.4 67,5.9 63.3,9.1 64.3,13.8 60.2,11.4 56.1,13.8 57.1,9.1 53.4,5.9 58.2,5.4'/><polygon points='77.4,1 79.4,5.4 84.2,5.9 80.5,9.1 81.5,13.8 77.4,11.4 73.3,13.8 74.3,9.1 70.6,5.9 75.4,5.4'/></g></svg>");
}
.ilt-google-card-stars-fill{
  position: absolute; left: 0; top: 0; bottom: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='86' height='14' viewBox='0 0 86 14'><g fill='%23fbbc05'><polygon points='8.6,1 10.6,5.4 15.4,5.9 11.7,9.1 12.7,13.8 8.6,11.4 4.5,13.8 5.5,9.1 1.8,5.9 6.6,5.4'/><polygon points='25.8,1 27.8,5.4 32.6,5.9 28.9,9.1 29.9,13.8 25.8,11.4 21.7,13.8 22.7,9.1 19,5.9 23.8,5.4'/><polygon points='43,1 45,5.4 49.8,5.9 46.1,9.1 47.1,13.8 43,11.4 38.9,13.8 39.9,9.1 36.2,5.9 41,5.4'/><polygon points='60.2,1 62.2,5.4 67,5.9 63.3,9.1 64.3,13.8 60.2,11.4 56.1,13.8 57.1,9.1 53.4,5.9 58.2,5.4'/><polygon points='77.4,1 79.4,5.4 84.2,5.9 80.5,9.1 81.5,13.8 77.4,11.4 73.3,13.8 74.3,9.1 70.6,5.9 75.4,5.4'/></g></svg>");
  background-repeat: no-repeat;
  height: 14px;
}
.ilt-google-card-meta{
  display: flex; flex-direction: column; gap: 2px;
  text-align: left;
  line-height: 1.1;
}
.ilt-google-card-count{
  font-family: var(--serif); font-weight: 600;
  font-size: 18px; color: var(--navy);
  font-variant-numeric: tabular-nums;
}
.ilt-google-card-lbl{
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--teal-deep);
  font-weight: 600;
}
.ilt-google-card-arrow{
  flex: 0 0 auto;
  color: var(--teal-deep);
  opacity: .5;
  transition: opacity .2s, transform .2s;
}
.ilt-google-card:hover .ilt-google-card-arrow{ opacity: 1; transform: translate(2px, -2px); }

@media (max-width: 560px){
  .ilt-google-card{
    gap: 12px;
    padding: 12px 16px 12px 14px;
    margin-top: 28px;
  }
  .ilt-google-card-logo{ width: 32px; height: 32px; }
  .ilt-google-card-num{ font-size: 22px; }
  .ilt-google-card-stars{ width: 72px; transform: scale(.85); transform-origin: left center; }
  .ilt-google-card-rating{ padding-right: 12px; }
  .ilt-google-card-count{ font-size: 14px; }
  .ilt-google-card-lbl{ font-size: 9.5px; }
}

/* SECTION GENERIC --------------------------------------- */
.ilt-section{
  padding: clamp(70px, 10vw, 130px) var(--gutter);
  background: var(--cream);
  position: relative;
}
.ilt-section--soft{ background: var(--cream-soft); }
.ilt-section--deep{ background: var(--paper-warm); }
.ilt-section-inner{ max-width: 1100px; margin: 0 auto; }
.ilt-section-head{ text-align: center; margin-bottom: 64px; }
.ilt-script-h{
  font-family: var(--script);
  font-size: clamp(44px, 6vw, 74px);
  color: var(--tomato);
  margin: 6px 0 12px;
  transform: rotate(-1.5deg);
  display: inline-block;
}
.ilt-serif-h{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(34px, 4.4vw, 56px);
  color: var(--navy);
  margin: 0 0 10px;
  letter-spacing: -.005em;
  font-style: italic;
}
.ilt-serif-h em{ font-style: normal; color: var(--sienna); }
.ilt-section-rule{
  display: flex; align-items: center; justify-content: center; gap: 18px;
  color: var(--sienna);
  margin: 22px 0 0;
}
.ilt-section-rule::before, .ilt-section-rule::after{
  content: ''; width: 80px; height: 1px; background: currentColor; opacity: .4;
}
.ilt-section-rule svg{ width: 28px; height: 28px; }

/* BENVENUTI · 2 columnas con polaroids ----------------- */
.ilt-benv{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
@media (max-width: 880px){ .ilt-benv{ grid-template-columns: 1fr; gap: 60px; } }
.ilt-benv-text .ilt-eyebrow-ribbon{ justify-content: flex-start; }
.ilt-benv-h{
  font-family: var(--serif); font-weight: 500;
  font-size: clamp(36px, 4.4vw, 60px);
  color: var(--navy); margin: 0 0 26px; line-height: 1.05;
}
.ilt-benv-h em{ font-style: italic; color: var(--sienna); }
.ilt-benv-body p{
  font-size: 16px; line-height: 1.75; color: var(--ink-warm);
  margin: 0 0 16px; max-width: 50ch;
}
.ilt-benv-body p:first-of-type::first-letter{
  font-family: var(--serif);
  float: left;
  font-size: 4.2em;
  line-height: 0.9;
  font-weight: 600;
  color: var(--tomato);
  margin: 4px 8px 0 0;
}
.ilt-benv-sign{
  font-family: var(--script);
  font-size: 28px;
  color: var(--tomato);
  margin: 24px 0 0;
  transform: rotate(-2deg);
  display: inline-block;
}

.ilt-polaroids{
  position: relative;
  height: 480px;
}
@media (max-width: 880px){ .ilt-polaroids{ height: 460px; } }
.ilt-pola{
  position: absolute;
  background: #fff;
  padding: 14px 14px 50px;
  box-shadow: 0 18px 38px -16px rgba(20, 64, 62, .45);
  transition: transform .4s ease, box-shadow .4s;
  cursor: default;
}
.ilt-pola img{
  width: 100%; aspect-ratio: 1/1;
  object-fit: cover;
  filter: saturate(1) contrast(.97);
}
.ilt-pola-cap{
  display: block;
  font-family: var(--script);
  font-size: 22px;
  color: var(--sienna);
  text-align: center;
  margin-top: 12px;
}
.ilt-pola--1{ top: 8%;  left: 4%;  width: 56%; transform: rotate(-5deg); z-index: 1; }
.ilt-pola--2{ top: 22%; right: 0%; width: 50%; transform: rotate(4deg);  z-index: 2; }
.ilt-pola--3{ bottom: 0%; left: 22%; width: 52%; transform: rotate(-2deg); z-index: 3; }
.ilt-pola:hover{ transform: rotate(0deg) translateY(-4px) scale(1.02); z-index: 10; }

/* CUCINA · 4 circulos ------------------------------------ */
.ilt-cucina{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 36px;
  margin-top: 56px;
}
@media (max-width: 880px){ .ilt-cucina{ grid-template-columns: repeat(2, 1fr); gap: 32px; } }
.ilt-cucina-item{ text-align: center; }
.ilt-cucina-circle{
  width: 100%; max-width: 220px;
  aspect-ratio: 1/1;
  border-radius: 50%;
  margin: 0 auto 20px;
  overflow: hidden;
  position: relative;
  border: 6px solid #fff;
  box-shadow: 0 14px 32px -14px rgba(20, 64, 62, .42);
  transition: transform .5s, box-shadow .5s;
}
.ilt-cucina-item:hover .ilt-cucina-circle{ transform: rotate(-2deg) scale(1.04); box-shadow: 0 22px 50px -16px rgba(20, 64, 62, .5); }
.ilt-cucina-circle img{
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(1);
}
.ilt-cucina-name{
  font-family: var(--serif);
  font-style: italic;
  font-size: 28px;
  color: var(--navy);
  margin: 0 0 6px;
}
.ilt-cucina-note{
  font-family: var(--script);
  font-size: 19px;
  color: var(--sienna);
  margin: 0;
  transform: rotate(-1deg);
  display: inline-block;
}

/* OGGI NEL MENÙ ------------------------------------------ */
.ilt-menu{
  background: var(--cream-soft);
  border: 1px solid var(--cream-deep);
  padding: clamp(40px, 5vw, 70px) clamp(28px, 4vw, 60px);
  max-width: 920px;
  margin: 56px auto 0;
  position: relative;
  box-shadow:
    0 1px 0 #fff inset,
    0 18px 40px -22px rgba(20, 64, 62, .25);
}
.ilt-menu::before, .ilt-menu::after{
  content: ''; position: absolute;
  width: 60px; height: 60px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none' stroke='%23b8442e' stroke-width='1.4'><circle cx='30' cy='30' r='8' fill='%23b8442e' fill-opacity='0.15'/><path d='M30 22c0-4 3-8 8-8M30 22c0-4-3-8-8-8'/><path d='M22 14c1-2 3-2 4-1M38 14c-1-2-3-2-4-1'/></svg>") no-repeat center/contain;
  opacity: .8;
}
.ilt-menu::before{ top: -28px; left: 30px; transform: rotate(-12deg); }
.ilt-menu::after{ bottom: -28px; right: 30px; transform: rotate(12deg); }

.ilt-menu-head{
  text-align: center;
  border-bottom: 1px dashed var(--sienna-soft);
  padding-bottom: 28px;
  margin-bottom: 36px;
}
.ilt-menu-head .ilt-script-h{ font-size: clamp(40px, 5vw, 60px); margin-bottom: 4px; }
.ilt-menu-head .ilt-serif-h{ font-size: clamp(28px, 3vw, 38px); }
.ilt-menu-list{ list-style: none; padding: 0; margin: 0; }
.ilt-menu-row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px dashed rgba(107, 66, 38, .25);
}
.ilt-menu-row:last-child{ border-bottom: 0; }
.ilt-menu-name{
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(20px, 2vw, 26px);
  color: var(--navy);
  margin: 0 0 4px;
}
.ilt-menu-name em{ font-style: italic; color: var(--sienna); }
.ilt-menu-tag{
  font-family: var(--script);
  font-size: 17px;
  color: var(--tomato);
}
.ilt-menu-price{
  font-family: var(--script);
  font-size: clamp(26px, 2.6vw, 34px);
  color: var(--tomato);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transform: rotate(-2deg);
  display: inline-block;
}
.ilt-menu-foot{ text-align: center; margin-top: 36px; }

/* GALLERY · polaroids tendido sobre cordel --------------- */
.ilt-album{
  position: relative;
  padding: 80px 0 100px;
  background: var(--paper-warm);
  overflow: hidden;
}
.ilt-album::before{
  /* cordel */
  content: ''; position: absolute;
  top: 64px; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(to right, transparent 0, rgba(107,66,38,.5) 4%, rgba(107,66,38,.5) 96%, transparent 100%);
  z-index: 1;
}
.ilt-album-inner{
  position: relative; z-index: 2;
  display: flex; justify-content: center; gap: clamp(18px, 4vw, 60px);
  flex-wrap: wrap;
  padding: 0 var(--gutter);
}
.ilt-album-item{
  background: #fff;
  padding: 14px 14px 50px;
  width: clamp(180px, 22vw, 240px);
  position: relative;
  box-shadow: 0 22px 40px -20px rgba(20, 64, 62, .4);
  transition: transform .4s ease;
}
.ilt-album-item img{ width: 100%; aspect-ratio: 1/1; object-fit: cover; filter: saturate(1); }
.ilt-album-item-cap{
  display: block;
  font-family: var(--script);
  font-size: 20px;
  color: var(--sienna);
  text-align: center;
  margin-top: 10px;
}
.ilt-album-item::before{
  /* clothespin */
  content: ''; position: absolute;
  top: -16px; left: 50%; transform: translateX(-50%) rotate(0deg);
  width: 16px; height: 28px;
  background: var(--sienna);
  border-radius: 3px 3px 1px 1px;
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.2);
}
.ilt-album-item:nth-child(odd){ transform: rotate(-3deg); }
.ilt-album-item:nth-child(even){ transform: rotate(3deg); }
.ilt-album-item:hover{ transform: rotate(0) translateY(-6px) scale(1.03); z-index: 5; }

/* VOCE · cita testimonio --------------------------------- */
.ilt-voce{
  background: var(--cream);
  padding: clamp(80px, 10vw, 130px) var(--gutter);
  text-align: center;
  position: relative;
}
.ilt-voce::before{
  content: '“';
  font-family: var(--serif); font-weight: 600;
  font-size: clamp(180px, 22vw, 280px);
  color: var(--tomato);
  opacity: .12;
  position: absolute;
  top: 30px; left: 50%; transform: translateX(-50%);
  line-height: 0.6;
  pointer-events: none;
}
.ilt-voce-inner{ max-width: 760px; margin: 0 auto; position: relative; z-index: 2; }
.ilt-voce-stars{
  color: var(--gold-warm);
  font-size: 22px; letter-spacing: 4px;
  margin-bottom: 28px;
}
.ilt-voce-text{
  font-family: var(--serif); font-style: italic;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.45;
  color: var(--navy);
  margin: 0 0 26px;
}
.ilt-voce-text em{ color: var(--tomato); font-style: italic; }
.ilt-voce-name{
  font-family: var(--script);
  font-size: 26px;
  color: var(--sienna);
}
.ilt-voce-dots{ display: flex; gap: 10px; justify-content: center; margin-top: 36px; }
.ilt-voce-dot{
  width: 8px; height: 8px; border-radius: 50%;
  background: rgba(107, 66, 38, .25);
  border: 0; padding: 0;
  cursor: pointer;
  transition: background .25s;
}
.ilt-voce-dot.is-on{ background: var(--tomato); }
.ilt-voce-quote{ display: none; }
.ilt-voce-quote.is-on{ display: block; }

/* VIENI A TROVARCI · postal ------------------------------ */
.ilt-vieni{
  background: var(--cream-soft);
  padding: clamp(80px, 10vw, 130px) var(--gutter);
}
.ilt-postcard{
  max-width: 980px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1.1fr;
  gap: 0;
  background: #fff;
  border: 1px solid var(--cream-deep);
  box-shadow:
    0 1px 0 #fff inset,
    0 28px 60px -28px rgba(20, 64, 62, .45);
  position: relative;
  overflow: hidden;
}
@media (max-width: 760px){ .ilt-postcard{ grid-template-columns: 1fr; } }

.ilt-postcard-stamp{
  position: absolute;
  top: 18px; right: 18px;
  width: 96px; height: 110px;
  background: var(--cream-deep);
  border: 2px dashed var(--sienna);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  transform: rotate(6deg);
  z-index: 3;
  box-shadow: 0 4px 12px -4px rgba(20, 64, 62, .25);
}
.ilt-postcard-stamp svg{ color: var(--tomato); margin-bottom: 4px; }
.ilt-postcard-stamp span{
  font-family: var(--script);
  font-size: 16px;
  color: var(--sienna);
  line-height: 1.1;
}
.ilt-postcard-map{
  background: var(--cream-deep);
  position: relative;
  min-height: 420px;
}
.ilt-postcard-map iframe{ width: 100%; height: 100%; border: 0; filter: saturate(.95) saturate(.85) contrast(.95); position: absolute; inset: 0; }
.ilt-postcard-info{ padding: 50px 44px; }
@media (max-width: 760px){ .ilt-postcard-info{ padding: 36px 28px; } }
.ilt-postcard-h{
  font-family: var(--script);
  font-size: clamp(36px, 4vw, 50px);
  color: var(--tomato);
  margin: 0 0 8px;
  transform: rotate(-1.5deg);
  display: inline-block;
}
.ilt-postcard-sub{
  font-family: var(--serif); font-style: italic;
  font-size: 19px; color: var(--sienna);
  margin: 0 0 32px;
}
.ilt-postcard-row{
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--cream-deep);
  font-size: 14px;
}
.ilt-postcard-row:last-of-type{ border-bottom: 0; }
.ilt-postcard-row-k{
  font-size: 11px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--sienna); padding-top: 3px;
}
.ilt-postcard-row-v{ color: var(--navy); line-height: 1.55; }
.ilt-postcard-row-v a{ color: inherit; border-bottom: 1px solid var(--cream-deep); }
.ilt-postcard-row-v .closed{ color: var(--tomato); font-style: italic; }
.ilt-postcard-cta{
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: 30px;
  padding: 14px 26px;
  background: var(--tomato); color: #fff;
  font-size: 12px; letter-spacing: .14em; text-transform: uppercase;
  border-radius: 999px;
  box-shadow: 0 6px 18px -8px rgba(184, 68, 46, .55);
}
.ilt-postcard-cta:hover{ background: var(--sienna); }

/* CIAO · cierre ------------------------------------------- */
.ilt-ciao{
  background: var(--cream);
  padding: 80px var(--gutter);
  text-align: center;
  border-top: 1px dashed var(--cream-deep);
}
.ilt-ciao-h{
  font-family: var(--script);
  font-size: clamp(60px, 8vw, 110px);
  color: var(--tomato);
  margin: 0 0 12px;
  transform: rotate(-2deg);
  display: inline-block;
}
.ilt-ciao-sub{
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(20px, 2.2vw, 28px);
  color: var(--sienna);
  margin: 0 0 30px;
}
.ilt-ciao-tags{
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
  font-size: 11.5px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--sienna);
  opacity: .7;
}
.ilt-ciao-tags span + span::before{ content: '✦'; margin-right: 14px; color: var(--tomato); opacity: .8; }

/* fix: nav blanco también en index */
body.ilp-page--index .ilp-nav{ background: rgba(255, 255, 255, .85); }
body.ilp-page--index .ilp-nav.is-scrolled{ background: rgba(255, 255, 255, .96); }
body.ilp-page--index{ background: var(--cream); }

/* ============================================================
   MODO APP MÓVIL · bottom tabbar + sheet
   ============================================================ */

/* visible solo en móvil */
.ilm-tabbar, .ilm-sheet, .ilm-sheet-backdrop, .ilm-fab{ display: none; }

@media (max-width: 880px){
  /* Tabbar fijo */
  .ilm-tabbar{
    display: grid;
    grid-template-columns: 1fr 1fr 88px 1fr 1fr;
    align-items: center;
    position: fixed;
    left: 12px; right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom, 12px));
    height: 64px;
    z-index: 60;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: saturate(160%) blur(18px);
    -webkit-backdrop-filter: saturate(160%) blur(18px);
    border: 1px solid var(--cream-deep);
    border-radius: 22px;
    box-shadow:
      0 -1px 0 rgba(255,255,255,.6) inset,
      0 24px 60px -20px rgba(20, 64, 62, 0.28),
      0 8px 22px -10px rgba(20, 64, 62, 0.18);
  }
  .ilm-tab{
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 4px;
    color: var(--teal-deep);
    text-decoration: none;
    transition: color .25s, transform .15s;
    padding: 8px 0;
    -webkit-tap-highlight-color: transparent;
  }
  .ilm-tab:active{ transform: scale(.94); }
  .ilm-tab.is-active{ color: var(--teal); }
  .ilm-tab.is-active .ilm-tab-icon::after{
    content: '';
    position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 4px; border-radius: 50%; background: var(--teal);
  }
  .ilm-tab-icon{
    position: relative;
    width: 24px; height: 24px;
    display: grid; place-items: center;
  }
  .ilm-tab-icon svg{ width: 22px; height: 22px; }
  .ilm-tab-lbl{
    font-size: 10.5px; letter-spacing: .04em;
    font-weight: 500;
    color: inherit;
  }

  /* FAB Reservar central — limpio, contenido centrado */
  .ilm-fab{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 64px; height: 64px;
    margin: -18px auto 0;
    background: linear-gradient(155deg, var(--teal-bright) 0%, var(--teal) 55%, var(--teal-deep) 130%);
    color: #fff;
    border-radius: 50%;
    text-decoration: none;
    line-height: 1;
    box-shadow:
      0 14px 24px -8px rgba(20, 64, 62, .45),
      0 4px 10px -4px rgba(20, 64, 62, .35),
      inset 0 1px 0 rgba(255, 255, 255, .3),
      inset 0 -2px 6px rgba(20, 64, 62, .2);
    transition: transform .18s ease, box-shadow .25s;
    -webkit-tap-highlight-color: transparent;
    position: relative;
    overflow: hidden;
  }
  .ilm-fab::before{
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 32px;
    background: radial-gradient(ellipse at 50% 0%, rgba(255, 255, 255, .28), transparent 75%);
    border-radius: 50% 50% 0 0;
    pointer-events: none;
  }
  .ilm-fab:active{
    transform: scale(.93);
    box-shadow:
      0 6px 14px -6px rgba(20, 64, 62, .5),
      inset 0 1px 0 rgba(255, 255, 255, .25),
      inset 0 -2px 6px rgba(20, 64, 62, .25);
  }
  .ilm-fab svg{
    display: block;
    width: 20px; height: 20px;
    margin: 0;
    flex: 0 0 auto;
  }
  .ilm-fab span{
    display: block;
    font-size: 8.5px;
    letter-spacing: .06em;       /* menos tracking → texto más compacto y centrado */
    text-transform: uppercase;
    font-weight: 600;
    text-indent: .06em;          /* compensa el espacio óptico final del letter-spacing */
    line-height: 1;
  }

  /* Compensar el tabbar al final del contenido */
  body{ padding-bottom: 96px; }
  /* Ocultar el botón "Reservar" del header en móvil porque ya está en el FAB */
  .ilp-nav-reserve{ display: none; }
  /* Ocultar burger porque ahora se navega por tabbar */
  .ilp-burger{ display: none; }

  /* Sheet "Más" */
  .ilm-sheet-backdrop{
    display: block;
    position: fixed; inset: 0;
    background: rgba(20, 64, 62, 0);
    transition: background .35s;
    z-index: 70;
    pointer-events: none;
  }
  .ilm-sheet-backdrop.is-open{
    background: rgba(20, 64, 62, .55);
    pointer-events: auto;
  }

  .ilm-sheet{
    display: flex;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 80;
    transform: translateY(102%);
    transition: transform .42s cubic-bezier(.22, .7, .21, 1);
    pointer-events: none;
    will-change: transform;
  }
  .ilm-sheet.is-open{
    transform: translateY(0);
    pointer-events: auto;
  }
  .ilm-sheet-card{
    background: var(--cream);
    width: 100%;
    max-height: 88svh;
    overflow-y: auto;
    border-top-left-radius: 28px;
    border-top-right-radius: 28px;
    padding: 14px 22px calc(28px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -24px 60px -10px rgba(20, 64, 62, 0.45);
    position: relative;
  }
  .ilm-sheet-card::before{
    /* sutil paper grain */
    content: ''; position: absolute; inset: 0;
    background-image: radial-gradient(circle at 30% 20%, rgba(79,184,176,.06), transparent 50%);
    border-top-left-radius: 28px; border-top-right-radius: 28px;
    pointer-events: none;
  }
  .ilm-sheet-handle{
    display: block;
    width: 44px; height: 5px;
    background: var(--cream-deep);
    border-radius: 999px;
    margin: 4px auto 12px;
    border: 0;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .ilm-sheet-head{
    text-align: center;
    padding-bottom: 18px;
    border-bottom: 1px dashed var(--cream-deep);
    margin-bottom: 22px;
  }
  .ilm-sheet-script{
    font-family: var(--script);
    font-size: 24px;
    color: var(--teal);
    transform: rotate(-1deg);
    display: inline-block;
  }
  .ilm-sheet-head h3{
    font-family: var(--serif); font-style: italic; font-weight: 500;
    font-size: 22px;
    color: var(--navy);
    margin: 4px 0 0;
  }

  .ilm-sheet-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 24px;
  }
  .ilm-tile{
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 10px;
    aspect-ratio: 1 / 1;
    background: #fff;
    border: 1px solid var(--cream-deep);
    border-radius: 18px;
    color: var(--teal-deep);
    text-decoration: none;
    transition: transform .15s, background .25s, color .25s, border-color .25s;
    -webkit-tap-highlight-color: transparent;
    box-shadow: 0 4px 14px -8px rgba(20, 64, 62, .2);
  }
  .ilm-tile:active{ transform: scale(.94); }
  .ilm-tile-icon{
    width: 40px; height: 40px;
    display: grid; place-items: center;
    border-radius: 50%;
    background: rgba(79, 184, 176, .14);
    color: var(--teal);
    transition: background .25s, color .25s;
  }
  .ilm-tile-icon svg{ width: 22px; height: 22px; }
  .ilm-tile-lbl{
    font-family: var(--serif); font-style: italic;
    font-size: 14px; line-height: 1;
    color: var(--navy);
  }
  .ilm-tile--accent{ background: var(--teal); border-color: var(--teal); color: #fff; }
  .ilm-tile--accent .ilm-tile-icon{ background: rgba(255, 255, 255, .18); color: #fff; }
  .ilm-tile--accent .ilm-tile-lbl{ color: #fff; }
  .ilm-tile--wa .ilm-tile-icon{ background: rgba(37, 211, 102, .15); color: #25d366; }

  .ilm-sheet-hours{
    background: var(--cream-soft);
    border: 1px dashed var(--cream-deep);
    border-radius: 14px;
    padding: 16px 18px;
    margin: 0 0 18px;
  }
  .ilm-sheet-hours-h{
    font-family: var(--script);
    color: var(--teal);
    font-size: 22px;
    margin: 0 0 8px;
    text-align: center;
    transform: rotate(-1deg);
    display: block;
  }
  .ilm-sheet-hours ul{ list-style: none; padding: 0; margin: 0; font-size: 13.5px; }
  .ilm-sheet-hours li{
    display: flex; justify-content: space-between;
    padding: 6px 0;
    border-top: 1px dashed var(--cream-deep);
  }
  .ilm-sheet-hours li:first-child{ border-top: 0; }
  .ilm-sheet-hours li span:first-child{ color: var(--teal-deep); font-weight: 500; }
  .ilm-sheet-hours li span:last-child{ color: var(--ink-warm); }
  .ilm-sheet-hours .closed{ color: var(--teal); font-style: italic; }

  .ilm-sheet-foot{
    display: flex; justify-content: center; gap: 20px;
    padding-top: 14px;
    border-top: 1px dashed var(--cream-deep);
    font-size: 11.5px;
    color: var(--teal-deep);
  }
  .ilm-sheet-foot a{
    color: inherit;
    border-bottom: 1px solid transparent;
    padding-bottom: 1px;
  }
  .ilm-sheet-foot a:active{ border-bottom-color: var(--teal); }

  /* Ocultar drawer original en móvil — ya no se usa con tabbar */
  .ilp-drawer{ display: none !important; }
}

/* En desktop ocultar tabbar/sheet aunque el HTML esté presente */
@media (min-width: 881px){
  .ilm-tabbar, .ilm-sheet, .ilm-sheet-backdrop{ display: none !important; }
  body{ padding-bottom: 0; }
}

/* Google badge encima de la cita */
.ilt-voce-gbadge{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px 7px 10px;
  background: #fff;
  border-radius: 999px;
  margin-bottom: 24px;
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase; font-weight: 600;
  color: #5f6368;
  box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .35);
  transition: transform .2s, box-shadow .25s;
  text-decoration: none;
}
.ilt-voce-gbadge:hover{ transform: translateY(-1px); box-shadow: 0 10px 22px -8px rgba(0, 0, 0, .4); }
.ilt-voce-gbadge svg{ flex: 0 0 auto; }

/* Author block en cada reseña Google */
.ilt-voce-author{
  display: flex; align-items: center; justify-content: center;
  gap: 14px; margin-bottom: 22px;
}
.ilt-voce-avatar{
  width: 56px; height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow:
    0 0 0 1px rgba(31, 94, 92, .18),
    0 8px 22px -10px rgba(20, 64, 62, .35);
  flex: 0 0 auto;
}
.ilt-voce-avatar-fallback{
  width: 56px; height: 56px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(79, 184, 176, .14);
  color: var(--teal-deep);
  font-family: var(--serif);
  font-style: italic; font-size: 28px; font-weight: 600;
  border: 2px solid #fff;
  box-shadow:
    0 0 0 1px rgba(31, 94, 92, .18),
    0 8px 22px -10px rgba(20, 64, 62, .35);
  flex: 0 0 auto;
}
.ilt-voce-author-meta{
  display: flex; flex-direction: column; align-items: flex-start;
  text-align: left;
  gap: 3px;
}
.ilt-voce-author-name{
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: 19px;
  color: var(--navy);
  line-height: 1.1;
  letter-spacing: -.005em;
}
.ilt-voce-author-when{
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--teal-deep);
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 500;
}
.ilt-voce-mini-stars{
  color: var(--gold-warm);
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: none;
}

/* Texto: clamp a 6 líneas para no romper layout con reseñas largas */
.ilt-voce-text{
  display: -webkit-box;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ============================================================
   "Abierto ahora" badge — calculado en server, sincronizado por cron
   ============================================================ */
.ilp-open-badge{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 14px 6px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .01em;
  white-space: nowrap;
  user-select: none;
}
.ilp-open-badge .ilp-open-dot{
  width: 8px; height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
  position: relative;
}
.ilp-open-badge--open{
  background: rgba(34, 184, 122, .12);
  border: 1px solid rgba(34, 184, 122, .4);
  color: #157a4d;
}
.ilp-open-badge--open .ilp-open-dot{
  background: #22b87a;
  box-shadow: 0 0 0 0 rgba(34, 184, 122, .6);
  animation: ilp-pulse 1.8s ease-out infinite;
}
@keyframes ilp-pulse{
  0%   { box-shadow: 0 0 0 0 rgba(34, 184, 122, .55); }
  70%  { box-shadow: 0 0 0 8px rgba(34, 184, 122, 0); }
  100% { box-shadow: 0 0 0 0 rgba(34, 184, 122, 0); }
}
.ilp-open-badge--closed{
  background: rgba(212, 100, 80, .10);
  border: 1px solid rgba(212, 100, 80, .35);
  color: #8a3324;
}
.ilp-open-badge--closed .ilp-open-dot{ background: #d46450; }
.ilp-open-badge--closed .ilp-open-main{ font-style: italic; }
.ilp-open-badge .ilp-open-main{ font-weight: 600; }
.ilp-open-badge .ilp-open-meta{
  font-weight: 400;
  opacity: .82;
}

/* En la nav principal el badge va a la derecha del brand */
.ilp-open-badge--nav{ margin-right: auto; }

/* Desktop intermedio: oculta el meta para no apretar la nav */
@media (max-width: 1080px) and (min-width: 881px){
  .ilp-open-badge--nav .ilp-open-meta{ display: none; }
}

/* Móvil ≤880px (modo app): pill FIJA al viewport, esquina superior izquierda
   bajo el nav. No se mueve con scroll porque está clavada al viewport, no al nav. */
@media (max-width: 880px){
  .ilp-open-badge--nav{
    position: fixed;
    top: max(70px, calc(env(safe-area-inset-top, 0px) + 64px));
    left: 12px;
    margin: 0;
    transform: none;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: saturate(160%) blur(10px);
    -webkit-backdrop-filter: saturate(160%) blur(10px);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, .6) inset,
      0 8px 22px -10px rgba(20, 64, 62, .35);
    z-index: 49;
    font-size: 11.5px;
    padding: 6px 12px 6px 10px;
  }
  .ilp-open-badge--nav .ilp-open-meta{ display: none; }
}

/* Cuando se abre el sheet "Más" / drawer, el badge se esconde para no estorbar */
body.ilp-no-scroll .ilp-open-badge--nav{ opacity: 0; pointer-events: none; transition: opacity .2s; }

/* ============================================================
   Language switcher global · footer + mobile sheet
   ============================================================ */
.ilp-footer-langs{
  display: flex; gap: 4px;
  padding: 4px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
}
.ilp-footer-lang{
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px;
  padding: 5px 10px;
  font-size: 11px; letter-spacing: .14em; font-weight: 700;
  color: rgba(255, 255, 255, .7);
  border-radius: 999px;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.ilp-footer-lang:hover{ color: #fff; background: rgba(255, 255, 255, .08); }
.ilp-footer-lang.is-active{
  background: var(--cream-accent, #ffe9aa);
  color: var(--teal-deep);
}

/* Mobile sheet language pill row */
@media (max-width: 880px){
  .ilm-sheet-langs{
    display: flex; gap: 4px; justify-content: center;
    padding: 4px;
    background: var(--cream-soft);
    border: 1px dashed var(--cream-deep);
    border-radius: 999px;
    margin: 0 0 14px;
  }
  .ilm-sheet-lang{
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 50px;
    padding: 9px 14px;
    font-size: 12px; letter-spacing: .14em; font-weight: 700;
    color: var(--teal-deep);
    border-radius: 999px;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: background .2s, color .2s, transform .12s;
  }
  .ilm-sheet-lang:active{ transform: scale(.95); }
  .ilm-sheet-lang.is-active{
    background: linear-gradient(155deg, var(--teal-bright) 0%, var(--teal) 60%, var(--teal-deep) 130%);
    color: #fff;
    box-shadow: 0 4px 12px -6px rgba(79, 184, 176, .55);
  }
}
/* ============================================================
   MOBILE JUMPER + SHEET · compartido carta + menu-semanal
   (movido aquí desde carta.css para que /menu-semanal también lo cargue)
   ============================================================ */
/* ============================================================
   MOBILE CARTA · jumper button + sheet (≤880px)
   ============================================================ */
/* No incluimos #ilmCartaBackdrop aquí porque el mobile-app block
   ya gestiona .ilm-sheet-backdrop (mismas reglas para ambos). El id
   ganaría por specificity y bloquearía el backdrop en móvil. */
.ilm-carta-jumper, .ilm-carta-sheet{ display: none; }

@media (max-width: 880px){
  /* Reemplazar el ToC horizontal por el botón jumper */
  .ilp-carta-toc{ display: none; }

  .ilm-carta-jumper{
    display: flex;
    align-items: center; justify-content: space-between;
    gap: 12px;
    position: sticky;
    top: 76px;
    z-index: 20;
    margin: 0 12px 30px;
    padding: 16px 18px 16px 22px;
    background: linear-gradient(160deg, #5fc9c2 0%, #4FB8B0 65%, #1f5e5c 130%);
    border: 1.5px solid #1f5e5c;
    border-radius: 16px;
    color: #fff;
    box-shadow:
      0 0 0 4px #fff,
      0 14px 30px -10px rgba(31, 94, 92, .55),
      0 4px 10px -4px rgba(31, 94, 92, .4),
      inset 0 1px 0 rgba(255, 255, 255, .25);
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    text-align: left;
    transition: transform .15s, box-shadow .25s, filter .25s;
    width: calc(100% - 24px);
  }
  .ilm-carta-jumper:active{
    transform: scale(.97);
    filter: brightness(.95);
  }
  .ilm-carta-jumper-script{
    font-family: 'Caveat', cursive;
    font-size: 22px;
    color: #fff;
    flex: 0 0 auto;
    transform: rotate(-2deg);
    display: inline-block;
    text-shadow: 0 1px 0 rgba(31, 94, 92, .4);
    line-height: 1;
  }
  .ilm-carta-jumper-current{
    flex: 1 1 auto;
    font-family: 'Cormorant Garamond', serif;
    font-weight: 600; font-style: italic;
    font-size: 22px;
    color: #fff;
    line-height: 1.1;
    text-align: center;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    letter-spacing: .005em;
    text-shadow: 0 1px 0 rgba(31, 94, 92, .35);
  }
  .ilm-carta-jumper svg{
    flex: 0 0 auto;
    color: #fff;
    width: 18px; height: 18px;
    background: rgba(255, 255, 255, .22);
    border-radius: 50%;
    padding: 6px;
    box-sizing: content-box;
  }

  .ilm-carta-sheet{
    display: flex;
    position: fixed; left: 0; right: 0; bottom: 0;
    z-index: 80;
    transform: translateY(102%);
    transition: transform .42s cubic-bezier(.22, .7, .21, 1);
    pointer-events: none;
    will-change: transform;
  }
  .ilm-carta-sheet.is-open{ transform: translateY(0); pointer-events: auto; }
  .ilm-carta-sheet-card{
    background: var(--cream);
    width: 100%;
    max-height: 80svh;
    overflow-y: auto;
    border-top-left-radius: 28px;
    border-top-right-radius: 28px;
    padding: 14px 18px calc(28px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -24px 60px -10px rgba(20, 64, 62, .45);
  }

  .ilm-carta-sheet-list{
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column;
    gap: 4px;
  }
  .ilm-carta-sheet-list li{ list-style: none; }
  .ilm-carta-sheet-list a{
    display: flex;
    align-items: center; justify-content: space-between;
    gap: 14px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid var(--cream-deep);
    border-radius: 12px;
    color: #0d2341;
    text-decoration: none;
    transition: background .2s, border-color .2s, color .2s;
    -webkit-tap-highlight-color: transparent;
  }
  .ilm-carta-sheet-list a:active{
    background: rgba(79, 184, 176, .12);
    border-color: #4FB8B0;
  }
  .ilm-carta-sheet-name{
    font-family: 'Cormorant Garamond', serif;
    font-style: italic; font-size: 19px;
    line-height: 1.2;
  }
  .ilm-carta-sheet-count{
    flex: 0 0 auto;
    min-width: 32px;
    padding: 3px 10px;
    background: rgba(79, 184, 176, .15);
    color: #1f5e5c;
    border-radius: 999px;
    font-size: 11px; letter-spacing: .04em; font-weight: 600;
    text-align: center;
  }

  /* En móvil reducir el scroll-margin-top para que el jumper no tape el título */
  .ilp-carta-cat{ scroll-margin-top: 110px; }
}

/* ============================================================
   Selector de idioma de la carta · pill row
   ============================================================ */
.ilp-carta-langs{
  display: inline-flex;
  gap: 4px;
  margin: 14px auto 0;
  padding: 4px;
  background: var(--cream-soft);
  border: 1px solid var(--cream-deep);
  border-radius: 999px;
}
.ilp-carta-lang{
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px;
  padding: 6px 14px;
  font-size: 11.5px; letter-spacing: .12em; font-weight: 600;
  color: var(--teal-deep);
  border-radius: 999px;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.ilp-carta-lang:hover{ background: rgba(79, 184, 176, .12); }
.ilp-carta-lang.is-active{
  background: var(--teal);
  color: #fff;
  box-shadow: 0 4px 12px -6px rgba(79, 184, 176, .55);
}

/* Switcher de idiomas — versión móvil más pulida */
@media (max-width: 880px){
  .ilp-carta-langs{
    margin: 22px auto 0;
    padding: 5px;
    gap: 0;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    border: 1px solid var(--cream-deep);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, .8) inset,
      0 1px 0 rgba(31, 94, 92, .06),
      0 10px 26px -10px rgba(20, 64, 62, .28);
    border-radius: 999px;
    position: relative;
  }
  .ilp-carta-lang{
    position: relative;
    min-width: 64px;
    padding: 11px 18px;
    font-size: 12.5px; letter-spacing: .14em; font-weight: 700;
    color: var(--teal-deep);
    border-radius: 999px;
    transition: color .25s, transform .15s;
    -webkit-tap-highlight-color: transparent;
    z-index: 1;
  }
  .ilp-carta-lang:active{ transform: scale(.96); }
  .ilp-carta-lang:not(.is-active):hover{ color: var(--teal); }
  .ilp-carta-lang.is-active{
    color: #fff;
    background: linear-gradient(155deg, var(--teal-bright) 0%, var(--teal) 60%, var(--teal-deep) 130%);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, .35) inset,
      0 0 0 1.5px var(--teal-deep),
      0 6px 16px -6px rgba(31, 94, 92, .55);
    transform: scale(1.04);
  }
  /* mini-line bajo el activo — simula segmented control con indicator pulse */
  .ilp-carta-lang.is-active::after{
    content: '';
    position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--teal);
    opacity: .55;
  }
}

/* ============================================================
   Idiomas dentro de la sheet "Salta a" — sólo móvil ≤880
   ============================================================ */
.ilm-carta-sheet-langs{ display: none; }

@media (max-width: 880px){
  .ilm-carta-sheet-langs{
    display: flex;
    gap: 4px;
    padding: 5px;
    margin: 0 0 16px;
    background: var(--cream-soft);
    border: 1px solid var(--cream-deep);
    border-radius: 999px;
    justify-content: center;
  }
  .ilm-carta-sheet-lang{
    flex: 1 1 0;
    display: inline-flex; align-items: center; justify-content: center;
    padding: 10px 8px;
    font-size: 12px; letter-spacing: .14em; font-weight: 700;
    color: var(--teal-deep);
    border-radius: 999px;
    text-decoration: none;
    transition: color .2s, transform .12s;
    -webkit-tap-highlight-color: transparent;
  }
  .ilm-carta-sheet-lang:active{ transform: scale(.96); }
  .ilm-carta-sheet-lang.is-active{
    background: linear-gradient(155deg, var(--teal-bright) 0%, var(--teal) 60%, var(--teal-deep) 130%);
    color: #fff;
    box-shadow: 0 4px 10px -4px rgba(79, 184, 176, .55);
  }

  /* Quitar el switcher del page-hero en móvil — ya está en la sheet */
  .ilp-carta-langs{ display: none; }
}

/* ============================================================
   Plato del día · banner destacado
   ============================================================ */
.ilp-carta-special-wrap{
  max-width: 880px; margin: 30px auto 50px;
  padding: 0 var(--gutter);
}
.ilp-carta-special{
  background: linear-gradient(155deg, var(--teal-bright) 0%, var(--teal) 60%, var(--teal-deep) 130%);
  border-radius: 18px;
  padding: clamp(28px, 4vw, 44px);
  color: #fff;
  position: relative;
  overflow: hidden;
  box-shadow: 0 18px 40px -16px rgba(20, 64, 62, .45);
  text-align: center;
}
.ilp-carta-special::before{
  content: '';
  position: absolute; top: 0; left: 0; right: 0;
  height: 36px;
  background-repeat: repeat-x; background-position: center;
  background-size: 240px 18px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='18' viewBox='0 0 240 18' fill='none' stroke='%23ffffff' stroke-width='1.4' stroke-linecap='round' stroke-opacity='0.4'><path d='M0 9 Q 15 2, 30 9 T 60 9 T 90 9 T 120 9 T 150 9 T 180 9 T 210 9 T 240 9'/></svg>");
  opacity: .5;
}
.ilp-carta-special-badge{
  display: inline-block;
  padding: 6px 16px;
  background: rgba(255, 255, 255, .92);
  color: var(--teal-deep);
  border-radius: 999px;
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase; font-weight: 700;
  margin-bottom: 18px;
}
.ilp-carta-special-title{
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: clamp(28px, 3.6vw, 42px);
  margin: 0 0 14px;
  letter-spacing: -.005em;
}
.ilp-carta-special-desc{
  font-family: var(--serif); font-style: italic;
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: 1.5;
  margin: 0 auto 16px;
  max-width: 50ch;
  opacity: .95;
}
.ilp-carta-special-price{
  font-family: var(--serif);
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 600;
  margin-top: 14px;
  font-variant-numeric: tabular-nums;
}

/* Stock · agotado badge en cada plato */
.ilp-carta-row.is-out{ opacity: .5; }
.ilp-carta-row.is-out .ilp-carta-name{ text-decoration: line-through; text-decoration-color: rgba(212, 100, 80, .55); }
.ilp-carta-row.is-out .ilp-carta-price{ color: var(--ink-warm); opacity: .5; text-decoration: line-through; transform: rotate(0); }
.ilp-carta-out{
  display: inline-block;
  margin-left: 8px;
  padding: 2px 9px;
  background: rgba(212, 100, 80, .15);
  color: #8a3324;
  border: 1px solid rgba(212, 100, 80, .35);
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 9.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
  vertical-align: middle;
  text-decoration: none;
}

/* Footer CTAs · entre carta y menú-semanal */
.ilp-carta-foot-ctas{
  display: flex; gap: 14px; justify-content: center; flex-wrap: wrap;
  margin-top: 26px;
}

/* Cross-nav button dentro del sheet móvil (carta ↔ menú-semanal) */
@media (max-width: 880px){
  .ilm-carta-sheet-cross{
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    margin: 0 0 16px;
    background: linear-gradient(155deg, var(--teal-bright) 0%, var(--teal) 60%, var(--teal-deep) 130%);
    color: #fff;
    border-radius: 14px;
    text-decoration: none;
    font-family: var(--serif); font-style: italic; font-weight: 500;
    font-size: 16px;
    box-shadow: 0 6px 16px -8px rgba(31, 94, 92, .55);
    -webkit-tap-highlight-color: transparent;
    transition: transform .12s;
  }
  .ilm-carta-sheet-cross:active{ transform: scale(.97); }
  .ilm-carta-sheet-cross > svg:first-child{
    flex: 0 0 auto;
    background: rgba(255, 255, 255, .22);
    border-radius: 8px;
    padding: 6px;
    box-sizing: content-box;
  }
  .ilm-carta-sheet-cross > span{
    flex: 1 1 auto;
    line-height: 1.2;
  }
  .ilm-carta-sheet-cross > svg:last-child{
    flex: 0 0 auto;
    opacity: .7;
  }
}

/* Tabbar: asegurar que los labels no rompan el grid en idiomas con palabras largas */
@media (max-width: 880px){
  .ilm-tab-lbl{
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .ilm-tab{
    min-width: 0;
    padding-inline: 4px;
  }
}

/* ============================================================
   GLOVO · pedido a domicilio · banner card en el index
   ============================================================ */
.ilt-glovo{
  padding: clamp(50px, 7vw, 80px) var(--gutter);
  background: var(--cream);
}
.ilt-glovo-card{
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 36px);
  max-width: 1000px;
  margin: 0 auto;
  padding: clamp(28px, 4vw, 40px);
  background: linear-gradient(135deg, #fffbe7 0%, #fff 60%);
  border: 1px solid #f3e3a3;
  border-radius: 24px;
  text-decoration: none;
  color: var(--ink-warm);
  position: relative;
  overflow: hidden;
  transition: transform .25s, box-shadow .25s;
  box-shadow:
    0 1px 0 #fff inset,
    0 14px 36px -22px rgba(254, 206, 45, .55),
    0 24px 60px -28px rgba(20, 64, 62, .25);
}
.ilt-glovo-card:hover{
  transform: translateY(-3px);
  box-shadow:
    0 1px 0 #fff inset,
    0 22px 50px -22px rgba(254, 206, 45, .65),
    0 30px 70px -28px rgba(20, 64, 62, .3);
}
.ilt-glovo-card::before{
  /* circulo amarillo decorativo abajo derecha */
  content: '';
  position: absolute;
  bottom: -120px; right: -80px;
  width: 320px; height: 320px;
  background: radial-gradient(circle, rgba(254, 206, 45, .25) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}
.ilt-glovo-mark{
  flex: 0 0 auto;
  display: grid; place-items: center;
  width: 76px; height: 76px;
  border-radius: 50%;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .8) inset,
    0 8px 22px -8px rgba(254, 206, 45, .65);
  position: relative;
  z-index: 1;
}
.ilt-glovo-mark svg{
  display: block;
  width: 64px; height: 64px;
}
.ilt-glovo-text{
  flex: 1 1 auto;
  position: relative; z-index: 1;
  min-width: 0;
}
.ilt-glovo-eyebrow{
  font-family: var(--script);
  font-size: 22px;
  color: #c9962b;
  display: inline-block;
  transform: rotate(-1.5deg);
  line-height: 1;
  margin-bottom: 4px;
}
.ilt-glovo-h{
  font-family: var(--serif); font-style: italic; font-weight: 500;
  font-size: clamp(26px, 3vw, 36px);
  color: var(--navy);
  margin: 4px 0 6px;
  line-height: 1.1;
}
.ilt-glovo-sub{
  font-family: var(--serif); font-style: italic;
  font-size: 15.5px; line-height: 1.55;
  color: var(--teal-deep);
  margin: 0;
  max-width: 56ch;
}
.ilt-glovo-cta{
  flex: 0 0 auto;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px;
  background: #FECE2D;
  color: #00382e;
  border-radius: 999px;
  font-size: 12.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .35) inset,
    0 8px 22px -8px rgba(254, 206, 45, .65);
  transition: transform .15s, background .2s;
  position: relative; z-index: 1;
  white-space: nowrap;
}
.ilt-glovo-card:hover .ilt-glovo-cta{ background: #ffd84a; transform: scale(1.03); }
.ilt-glovo-card:active .ilt-glovo-cta{ transform: scale(.98); }

@media (max-width: 720px){
  .ilt-glovo-card{
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 18px;
  }
  .ilt-glovo-mark{ width: 64px; height: 64px; }
  .ilt-glovo-mark svg{ width: 54px; height: 54px; }
  .ilt-glovo-cta{ width: 100%; justify-content: center; }
}

/* Hero CTA · variante Glovo (amarillo brand) */
.ilt-btn--glovo{
  background: #FECE2D;
  color: #00382e;
  border: 1px solid #f3c225;
  font-weight: 700;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .35) inset,
    0 8px 22px -8px rgba(254, 206, 45, .55),
    0 16px 38px -16px rgba(0, 56, 46, .35);
  display: inline-flex; align-items: center; gap: 10px;
}
.ilt-btn--glovo:hover{
  background: #ffd84a;
  border-color: #f8ce30;
  transform: translateY(-2px);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .35) inset,
    0 14px 30px -8px rgba(254, 206, 45, .65),
    0 22px 50px -16px rgba(0, 56, 46, .4);
}
.ilt-btn--glovo svg{ flex: 0 0 auto; }
