/* ==========================================================================
   Froitas Améndoa — web informativa
   Verde y beige claros, papel cálido, toldo de frutería.
   ========================================================================== */

/* ---------- Fuentes alojadas en la propia web (sin llamadas a Google) ----------
   Solo el juego «latin», que cubre castellano y gallego. Licencia SIL OFL 1.1 (ver fonts/LICENCIAS.txt). */
@font-face{
  font-family:'Figtree';
  font-style:normal; font-weight:400 700; font-display:swap;
  src:url('../fonts/figtree-latin.woff2') format('woff2');
}
@font-face{
  font-family:'Fraunces';
  font-style:normal; font-weight:300 700; font-display:swap;
  src:url('../fonts/fraunces-latin.woff2') format('woff2');
}
@font-face{
  font-family:'Fraunces';
  font-style:italic; font-weight:300 700; font-display:swap;
  src:url('../fonts/fraunces-italic-latin.woff2') format('woff2');
}

:root{
  --paper:      #F6F1E6;   /* fondo de página */
  --paper-2:    #EEE6D3;   /* secciones beige */
  --cream:      #FBF8F1;   /* tarjetas */
  --sage:       #DFE7D0;   /* verde claro de superficie */
  --sage-2:     #B9CDA3;   /* verde claro de borde / toldo */
  --leaf:       #6E8E58;   /* verde de ilustración y cursivas grandes */
  --leaf-ink:   #557443;   /* verde para texto pequeño (contraste AA) */
  --green:      #3E5B3A;   /* botones */
  --green-deep: #2C4029;   /* titulares, pie */
  --ink:        #2D3A2A;
  --ink-2:      #5D6857;
  --rule:       #DCCFB6;
  --flash:      #B94A33;   /* acento reservado: solo etiquetas «Temporada» */

  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --radius: 20px;
  --lift: 0 18px 30px -22px rgba(62,76,48,.45);
}

/* ---------- Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:88px; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-body);
  font-size:1.0625rem;
  line-height:1.6;
  color:var(--ink);
  background:var(--paper);
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  animation:page-in .3s var(--ease);
}
@keyframes page-in{ from{ opacity:0; } to{ opacity:1; } }

img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3{
  margin:0;
  font-family:var(--font-display);
  font-weight:540;
  line-height:1.05;
  letter-spacing:-.015em;
  color:var(--green-deep);
  font-variation-settings:"SOFT" 100;
  text-wrap:balance;
}
h1 em, h2 em{ font-style:italic; font-weight:inherit; color:var(--leaf); }

:focus-visible{ outline:3px solid var(--leaf); outline-offset:3px; border-radius:6px; }

.wrap{ width:min(1160px, 100% - 32px); margin-inline:auto; }
/* los adornos que asoman (círculos, etiquetas, insignias) nunca crean scroll lateral */
main{ overflow-x:clip; }

.sprite{ position:absolute; width:0; height:0; overflow:hidden; }

.skip-link{
  position:absolute; left:16px; top:-60px; z-index:100;
  background:var(--green); color:var(--cream); padding:.6rem 1rem; border-radius:10px;
  text-decoration:none; font-weight:600; transition:top .2s;
}
.skip-link:focus{ top:16px; }

/* ---------- Fondo de papel (capa fija detrás de todo) ---------- */
.site-scene{
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(55% 45% at 90% 0%, rgba(185,205,163,.38), transparent 70%),
    radial-gradient(45% 40% at 0% 100%, rgba(185,205,163,.24), transparent 70%),
    var(--paper);
}
.site-scene::after{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .36 0 0 0 0 .24 .22 0 0 0 -.06'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Splash del logo ---------- */
.logo-splash{
  position:fixed; inset:0; z-index:9999;
  display:grid; place-items:center;
  background:var(--paper);
  pointer-events:none;
  animation:splash-bg 1.05s var(--ease) forwards;
}
.logo-splash svg{
  width:clamp(84px, 18vw, 140px); height:auto; aspect-ratio:1;
  animation:splash-pop .6s var(--ease) both;
}
@keyframes splash-pop{
  0%{ transform:scale(.45) rotate(-200deg); opacity:0; }
  60%{ transform:scale(1.1) rotate(12deg); opacity:1; }
  80%{ transform:scale(.97) rotate(-4deg); }
  100%{ transform:scale(1) rotate(0); opacity:1; }
}
@keyframes splash-bg{ 0%,45%{ opacity:1; } 100%{ opacity:0; visibility:hidden; } }

/* ---------- Toldo de frutería: se despliega al entrar y se mece con la brisa ---------- */
.awning{ position:relative; z-index:31; filter:drop-shadow(0 5px 4px rgba(80,70,40,.14)); }
.awning span{
  transform-origin:top;
  animation:awning-unroll .9s cubic-bezier(.3,1.35,.5,1) .45s both, awning-breeze 6s ease-in-out 1.6s infinite;
}
@keyframes awning-unroll{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
@keyframes awning-breeze{ 0%,100%{ transform:scaleY(1); } 50%{ transform:scaleY(1.07); } }
.awning span{
  display:block; height:40px;
  background:repeating-linear-gradient(90deg, #A9C290 0 36px, var(--cream) 36px 72px);
  -webkit-mask:
    linear-gradient(#000 0 0) top / 100% 22px no-repeat,
    radial-gradient(circle 18px at 18px 22px, #000 97%, #0000) 0 0 / 36px 40px repeat-x;
          mask:
    linear-gradient(#000 0 0) top / 100% 22px no-repeat,
    radial-gradient(circle 18px at 18px 22px, #000 97%, #0000) 0 0 / 36px 40px repeat-x;
}

/* ---------- Cabecera ---------- */
.site-header{
  position:sticky; top:0; z-index:30;
  background:rgba(246,241,230,.86);
  -webkit-backdrop-filter:saturate(1.2) blur(10px);
          backdrop-filter:saturate(1.2) blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s, box-shadow .3s;
}
.site-header.is-scrolled{ border-color:var(--rule); box-shadow:0 10px 24px -22px rgba(60,70,40,.6); }
.header-inner{ position:relative; display:flex; align-items:center; gap:1.4rem; min-height:72px; }

.brand{ display:flex; align-items:center; gap:.65rem; text-decoration:none; margin-right:auto; }
.brand-mark{ width:44px; height:44px; flex:none; overflow:visible; }

/* la almendra se balancea colgada de su rabito, la hoja se mueve con el aire,
   y al pasar el ratón el logo entero da una vuelta */
.logo-nut{ transform-box:fill-box; transform-origin:58% 4%; animation:nut-sway 7s ease-in-out 2s infinite; }
.logo-leaf{ transform-box:fill-box; transform-origin:0% 100%; animation:leaf-flutter 3.6s ease-in-out infinite; }
.brand.is-spinning .brand-mark{ animation:logo-spin .95s cubic-bezier(.34,1.3,.5,1); }
.brand.is-spinning .logo-leaf{ animation:leaf-flutter .35s ease-in-out 3; }
@keyframes nut-sway{
  0%,64%,100%{ transform:rotate(0); }
  70%{ transform:rotate(-10deg); }
  78%{ transform:rotate(8deg); }
  86%{ transform:rotate(-4deg); }
  93%{ transform:rotate(1.5deg); }
}
@keyframes leaf-flutter{ 0%,100%{ transform:rotate(0); } 50%{ transform:rotate(-14deg); } }
@keyframes logo-spin{ from{ transform:rotate(0) scale(1); } 50%{ transform:rotate(200deg) scale(1.15); } to{ transform:rotate(360deg) scale(1); } }

/* barra de progreso de lectura bajo la cabecera */
.scroll-progress{
  position:absolute; left:0; right:0; bottom:-1px; height:3px;
  background:linear-gradient(90deg, var(--sage-2), var(--leaf));
  transform-origin:left; transform:scaleX(var(--progress, 0));
  border-radius:0 3px 3px 0;
}

/* selector de idioma ES / GL */
.lang-switch{
  position:relative; display:inline-grid; grid-template-columns:1fr 1fr; flex:none;
  padding:3px; border-radius:999px;
  background:var(--cream); border:1px solid var(--rule);
}
.lang-switch button{
  position:relative; z-index:1; min-width:36px; height:32px; padding:0 .55rem;
  border:0; border-radius:999px; background:none; cursor:pointer;
  font:700 .8rem/1 var(--font-body); letter-spacing:.06em; color:var(--ink-2);
  transition:color .3s;
}
.lang-switch button[aria-pressed="true"]{ color:var(--cream); }
.lang-thumb{
  position:absolute; top:3px; bottom:3px; left:3px; width:calc(50% - 3px);
  border-radius:999px; background:var(--green);
  box-shadow:0 2px 0 var(--green-deep);
  transition:transform .45s cubic-bezier(.34,1.4,.5,1);
}
:root[lang="gl"] .lang-thumb{ transform:translateX(100%); }

/* al cambiar de idioma el contenido se funde un instante */
main, .nav{ transition:opacity .25s ease; }
body.lang-fading main, body.lang-fading .nav{ opacity:0; transition-duration:.18s; }

.nav-call{ display:none; }
.brand-name{
  font-family:var(--font-display); font-variation-settings:"SOFT" 100;
  font-size:1.35rem; font-weight:600; line-height:1; color:var(--green-deep);
}
.brand-name small{
  display:block; margin-top:.3rem;
  font-family:var(--font-body); font-size:.66rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--ink-2);
}

.nav{ display:flex; gap:1.5rem; }
.nav a{ position:relative; padding:.3rem 0; text-decoration:none; font-weight:500; color:var(--ink-2); transition:color .2s; }
.nav a:hover{ color:var(--green-deep); }
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; border-radius:2px;
  background:var(--leaf); transform:scaleX(0); transition:transform .3s var(--ease);
}
.nav a:hover::after{ transform:scaleX(1); }

.nav-toggle{ display:none; }

/* ---------- Botones ---------- */
.btn{
  --bg:var(--green); --fg:var(--cream); --edge:var(--green-deep);
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:.9rem 1.35rem;
  border:1.5px solid var(--edge); border-radius:999px;
  background:var(--bg); color:var(--fg);
  font:600 1rem/1.1 var(--font-body);
  text-decoration:none; cursor:pointer;
  box-shadow:0 3px 0 var(--edge);
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), background-color .2s;
}
.btn:hover{ transform:translateY(-2px); box-shadow:0 5px 0 var(--edge); }
.btn:active{ transform:translateY(2px); box-shadow:0 1px 0 var(--edge); }
.btn svg{ width:20px; height:20px; flex:none; }
.btn-ghost{ --bg:var(--cream); --fg:var(--green-deep); --edge:#CDBF9F; }
.btn-ghost:hover{ --bg:#fff; }
.btn-sm{ padding:.62rem 1rem; font-size:.93rem; }
.btn-sm svg{ width:18px; height:18px; }

/* ---------- Piezas comunes ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.78rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--leaf-ink);
}
.eyebrow::before{ content:""; width:22px; height:2px; border-radius:2px; background:currentColor; }

.lead{ font-size:clamp(1.05rem, 1.4vw, 1.2rem); line-height:1.55; color:var(--ink-2); max-width:46ch; }
.muted{ color:var(--ink-2); }
.small{ font-size:.9rem; }

.section{ padding-block:clamp(4rem, 8vw, 6.5rem); }
.section-beige{ background:var(--paper-2); }
.section-head{ max-width:640px; margin-bottom:clamp(2rem, 4vw, 3rem); }
.section-head h2{ font-size:clamp(2.1rem, 4.4vw, 3.3rem); margin-top:.8rem; }
.section-head .lead{ margin-top:1rem; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head.center .lead{ margin-inline:auto; }
.section-head.center .eyebrow::after{ content:""; width:22px; height:2px; border-radius:2px; background:currentColor; }

/* etiqueta de temporada: el único sitio donde aparece el acento */
.tag{
  position:absolute; top:12px; left:12px; z-index:1;
  padding:.34rem .55rem; border-radius:3px;
  background:var(--flash); color:#fff;
  font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; line-height:1;
}
.tag-inline{ position:static; display:inline-block; vertical-align:1px; margin-right:.35rem; }

/* estado abierto/cerrado */
.status{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.45rem .9rem; border-radius:999px;
  background:var(--cream); border:1px solid var(--rule);
  font-size:.9rem; font-weight:600; color:var(--ink);
}
.status-dot{ width:9px; height:9px; border-radius:50%; background:#A39C8B; flex:none; }
.status.is-open .status-dot{ background:#5E9B4B; animation:pulse 2.6s ease-out infinite; }
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(94,155,75,.45); }
  70%,100%{ box-shadow:0 0 0 9px rgba(94,155,75,0); }
}

/* ---------- Portada ---------- */
.hero{ padding-block:clamp(2rem, 5vw, 4rem) clamp(3.5rem, 6vw, 5rem); }
.hero-grid{ display:grid; gap:clamp(2.5rem, 5vw, 4rem); align-items:center; }
.hero h1{ font-size:clamp(2.7rem, 6.2vw, 5rem); font-weight:500; margin:1rem 0 1.2rem; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.hero-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:.8rem 1.3rem; margin-top:1.4rem; font-size:.92rem; color:var(--ink-2); }
.meta-item{ display:inline-flex; align-items:center; gap:.4rem; }
.meta-item svg{ width:18px; height:18px; color:var(--leaf-ink); }

.parcel-chip{
  display:flex; align-items:center; gap:.9rem; max-width:440px;
  margin-top:1.8rem; padding:.75rem 1rem .75rem .8rem;
  border-radius:16px; border:1.5px dashed var(--sage-2);
  background:rgba(223,231,208,.55);
  text-decoration:none; color:var(--ink-2); font-size:.92rem; line-height:1.35;
  transition:background-color .25s, border-color .25s;
}
.parcel-chip:hover{ background:var(--sage); border-color:var(--leaf); }
.parcel-chip strong{ display:block; color:var(--green-deep); font-size:1rem; }
.parcel-chip-icon{ width:46px; height:46px; flex:none; transform-origin:50% 90%; animation:box-hop 5s ease-in-out 2.5s infinite; }
.parcel-chip:hover .parcel-chip-icon{ animation:box-hop 1s ease-in-out; }
@keyframes box-hop{
  0%,72%,100%{ transform:translateY(0) rotate(0); }
  78%{ transform:translateY(-7px) rotate(-7deg); }
  84%{ transform:translateY(0) rotate(0) scaleY(.92); }
  89%{ transform:translateY(-3px) rotate(4deg); }
  94%{ transform:translateY(0) rotate(0); }
}

/* subrayado de rotulador bajo «toda la vida» */
.hero h1 em{
  background:linear-gradient(transparent 64%, rgba(185,205,163,.6) 64% 90%, transparent 90%) no-repeat 0 0 / 0% 100%;
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
  animation:marker 1.1s var(--ease) 1.6s forwards;
}
@keyframes marker{ to{ background-size:100% 100%; } }
.parcel-chip-arrow{ width:20px; height:20px; flex:none; margin-left:auto; color:var(--leaf-ink); transition:transform .25s var(--ease); }
.parcel-chip:hover .parcel-chip-arrow{ transform:translateX(3px); }

.hero-photo{ position:relative; isolation:isolate; width:min(100%, 440px); margin-inline:auto; }
.hero-photo::before{
  content:""; position:absolute; z-index:-1; left:50%; top:46%;
  width:128%; aspect-ratio:1; border-radius:50%;
  background:var(--sage); transform:translate(-50%, -50%);
}
.hero-photo::after{
  content:""; position:absolute; z-index:-1; left:50%; top:46%;
  width:118%; aspect-ratio:1; border-radius:50%;
  border:2px dashed var(--sage-2); transform:translate(-50%, -50%);
  animation:ring-turn 90s linear infinite;
}
@keyframes ring-turn{ to{ transform:translate(-50%, -50%) rotate(360deg); } }

/* hojas que flotan alrededor de la foto */
.leaf{ position:absolute; z-index:2; width:34px; height:34px; pointer-events:none; filter:drop-shadow(0 4px 4px rgba(60,70,40,.18)); }
.leaf-1{ top:6%; right:-4%; width:40px; height:40px; animation:leaf-float-a 9s ease-in-out infinite; }
.leaf-2{ top:36%; left:-9%; width:30px; height:30px; animation:leaf-float-b 11s ease-in-out -3s infinite; }
.leaf-3{ bottom:14%; right:-7%; width:26px; height:26px; animation:leaf-float-a 12s ease-in-out -6s infinite reverse; }
.leaf-4{ top:-3%; left:18%; width:22px; height:22px; opacity:.8; animation:leaf-float-b 10s ease-in-out -1s infinite; }
@keyframes leaf-float-a{
  0%,100%{ transform:translate(0, 0) rotate(0); }
  33%{ transform:translate(-10px, 14px) rotate(24deg); }
  66%{ transform:translate(6px, 24px) rotate(-12deg); }
}
@keyframes leaf-float-b{
  0%,100%{ transform:translate(0, 0) rotate(10deg); }
  50%{ transform:translate(12px, -16px) rotate(-26deg); }
}
.hero-frame{
  aspect-ratio:4 / 5; overflow:hidden;
  border:10px solid var(--cream); border-radius:240px 240px 24px 24px;
  background:var(--paper-2);
  box-shadow:0 34px 50px -34px rgba(60,50,30,.6);
}
.hero-frame img{
  width:100%; height:100%; object-fit:cover; object-position:50% 62%;
  animation:ken-burns 3.2s var(--ease) .5s both;
}
@keyframes ken-burns{ from{ transform:scale(1.16); } to{ transform:scale(1); } }
.photo-tag{ position:absolute; left:-34px; bottom:56px; width:136px; height:auto; overflow:visible; }
.hero-tag{ transform-box:fill-box; transform-origin:12% 0; animation:sway 7s ease-in-out infinite; }
@keyframes sway{ 0%,100%{ transform:rotate(-2deg); } 50%{ transform:rotate(2.5deg); } }

@media (min-width:900px){
  .hero-grid{ grid-template-columns:1.1fr .9fr; }
}

/* entrada de la portada, tras el splash */
[data-enter]{ animation:enter .9s var(--ease) both; animation-delay:calc(.55s + var(--d, 0) * 90ms); }
@keyframes enter{ from{ opacity:0; transform:translateY(14px); } }

/* ---------- Cinta de productos ---------- */
.ribbon{ overflow:hidden; background:var(--sage); border-block:1px solid var(--sage-2); padding-block:1rem; }
.ribbon-track{ display:flex; width:max-content; animation:marquee 90s linear infinite; }
.ribbon ul{ display:flex; }
.ribbon li{
  display:flex; align-items:center; white-space:nowrap;
  font-family:var(--font-display); font-variation-settings:"SOFT" 100;
  font-style:italic; font-size:clamp(1.15rem, 2vw, 1.45rem); color:var(--green-deep);
}
.ribbon li::after{
  content:""; width:9px; height:13px; margin-inline:1.4rem;
  border-radius:50% 50% 50% 50% / 60% 60% 40% 40%;
  background:#C79363; transform:rotate(20deg);
}
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- Productos: índice ---------- */
.products-intro{ padding-bottom:clamp(1.5rem, 3vw, 2.5rem); }
.cat-nav{ display:grid; gap:.8rem; grid-template-columns:repeat(2, 1fr); }
.cat-nav a{
  display:flex; align-items:center; gap:.9rem;
  padding:.9rem 1.1rem; border-radius:18px;
  background:var(--cream); border:1px solid var(--rule);
  text-decoration:none; font-family:var(--font-display); font-variation-settings:"SOFT" 100;
  font-size:1.15rem; font-weight:560; color:var(--green-deep); line-height:1.15;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.cat-nav a:hover{ transform:translateY(-3px); box-shadow:var(--lift); border-color:var(--sage-2); }
.cat-nav-icon{ width:54px; height:54px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--sage); transition:transform .5s var(--ease); }
.cat-nav a:nth-child(even) .cat-nav-icon{ background:var(--paper-2); }
.cat-nav a:hover .cat-nav-icon{ animation:wiggle .7s ease-in-out; }
@keyframes wiggle{
  0%,100%{ transform:rotate(0) scale(1); }
  25%{ transform:rotate(-14deg) scale(1.08); }
  50%{ transform:rotate(10deg) scale(1.08); }
  75%{ transform:rotate(-5deg) scale(1.04); }
}
.cat-nav-icon svg{ width:36px; height:36px; }
@media (min-width:900px){ .cat-nav{ grid-template-columns:repeat(4, 1fr); } }
@media (max-width:420px){
  .cat-nav{ grid-template-columns:1fr; }
}

/* ---------- Secciones por tipo de alimento ---------- */
.cat-section{ padding-block:clamp(3rem, 6vw, 5rem); }
.cat-head{ display:grid; gap:1.2rem 3rem; align-items:start; margin-bottom:clamp(1.6rem, 3vw, 2.4rem); }
.cat-title{ display:flex; align-items:center; gap:1rem; }
.cat-icon{
  width:72px; height:72px; flex:none; display:grid; place-items:center; border-radius:50%;
  background:var(--cream); border:1px solid var(--rule);
}
.cat-icon svg{ width:48px; height:48px; }
.cat-icon:hover{ animation:wiggle .7s ease-in-out; }
/* al aparecer la cabecera de cada sección: el icono rueda hasta su sitio
   y las etiquetas de producto salen una detrás de otra */
.js .cat-head .cat-icon{ opacity:0; transform:translateX(-24px) rotate(-120deg) scale(.6); transition:opacity .6s ease .1s, transform 1s cubic-bezier(.34,1.3,.5,1) .1s; }
.js .cat-head.is-visible .cat-icon{ opacity:1; transform:none; }
.js .cat-head .chips li{ opacity:0; transform:translateY(10px) scale(.94); transition:opacity .45s ease, transform .55s cubic-bezier(.34,1.4,.5,1); transition-delay:calc(.3s + var(--i, 0) * 40ms); }
.js .cat-head.is-visible .chips li{ opacity:1; transform:none; }
.cat-title h2{ font-size:clamp(2rem, 4vw, 3rem); }
.cat-info{ display:grid; gap:1rem; }
.chips{ display:flex; flex-wrap:wrap; gap:.45rem; }
.chips li{
  padding:.38rem .8rem; border-radius:999px;
  background:var(--cream); border:1px solid var(--rule);
  font-size:.92rem; line-height:1.3; color:var(--ink);
}
.season-note{ font-size:.9rem; color:var(--ink-2); }
@media (min-width:900px){
  .cat-head{ grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); }
  .cat-info{ padding-top:.4rem; }
}

/* galería de fotos */
.gallery{ display:grid; gap:12px; grid-template-columns:repeat(2, 1fr); }
.ph{
  position:relative; margin:0; overflow:hidden;
  aspect-ratio:1; border-radius:18px; background:var(--paper-2);
  box-shadow:0 14px 26px -22px rgba(60,50,30,.55);
}
.ph img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.ph:hover img{ transform:scale(1.045); }
.ph figcaption{
  position:absolute; left:10px; bottom:10px; max-width:calc(100% - 20px);
  padding:.34rem .75rem; border-radius:999px;
  background:rgba(251,248,241,.94); color:var(--green-deep);
  font-size:.78rem; font-weight:600; line-height:1.25;
  box-shadow:0 4px 10px -6px rgba(0,0,0,.3);
}

/* las fotos se descubren desde el centro, con un leve zoom de la imagen y luego asoma el rótulo */
.js .ph[data-reveal]{
  opacity:1; transform:none;
  clip-path:inset(14% 14% 14% 14% round 18px);
  transition:clip-path 1.1s var(--ease), box-shadow .4s;
  transition-delay:calc(var(--d, 0) * 90ms);
}
.js .ph[data-reveal] img{ transform:scale(1.18); transition:transform 1.6s var(--ease); transition-delay:inherit; }
.js .ph[data-reveal].is-visible{ clip-path:inset(-30px -30px -40px -30px round 0); }
.js .ph[data-reveal].is-visible img{ transform:scale(1); transition-delay:0s; }
.js .ph[data-reveal].is-visible:hover img{ transform:scale(1.05); transition-duration:.9s; }
.js .ph[data-reveal] figcaption{ opacity:0; transform:translateY(10px); transition:opacity .5s ease, transform .6s var(--ease); transition-delay:calc(.6s + var(--d, 0) * 90ms); }
.js .ph[data-reveal].is-visible figcaption{ opacity:1; transform:none; }
/* la etiqueta «Temporada» cae balanceándose como un cartel colgado */
.ph .tag{ transform-origin:12px 0; opacity:0; transform:rotate(-30deg) translateY(-6px); transition:opacity .3s ease, transform .9s cubic-bezier(.34,1.6,.5,1); transition-delay:calc(.8s + var(--d, 0) * 90ms); }
.ph.is-visible .tag{ opacity:1; transform:none; }
.ph:hover .tag{ animation:tag-swing 1s ease-in-out; }
@keyframes tag-swing{ 0%,100%{ transform:rotate(0); } 30%{ transform:rotate(-9deg); } 60%{ transform:rotate(5deg); } }

/* 7 fotos: una grande + 6 */
.g-7 .big{ grid-column:1 / -1; aspect-ratio:4 / 3; }
/* 3 fotos en móvil: la primera a lo ancho */
.g-3 .ph:first-child{ grid-column:1 / -1; aspect-ratio:4 / 3; }

@media (min-width:700px){
  .g-7{ grid-template-columns:repeat(3, 1fr); }
  .g-7 .big{ aspect-ratio:2 / 1; }
  .g-4{ grid-template-columns:repeat(4, 1fr); }
  .g-3{ grid-template-columns:repeat(3, 1fr); }
  .g-3 .ph:first-child{ grid-column:auto; aspect-ratio:1; }
  .ph figcaption{ left:12px; bottom:12px; font-size:.86rem; }
}
@media (min-width:1000px){
  .g-7{ grid-template-columns:repeat(5, 1fr); }
  .g-7 .big{ grid-column:span 2; grid-row:span 2; aspect-ratio:1; }
  .g-3 .ph, .g-3 .ph:first-child{ aspect-ratio:4 / 3; }
}

/* ---------- Cestas ---------- */
.cestas{ background:var(--sage); }
.gingham-edge{
  height:22px;
  background:
    linear-gradient(90deg, rgba(110,142,88,.3) 50%, transparent 0) 0 0 / 22px 22px,
    linear-gradient(rgba(110,142,88,.3) 50%, transparent 0) 0 0 / 22px 22px,
    var(--cream);
}
.cestas-grid{ display:grid; gap:clamp(2rem, 5vw, 4rem); align-items:center; }
.cestas-art svg{ width:100%; max-width:500px; height:auto; margin-inline:auto; overflow:visible; }
/* la cesta se mece despacio y lo de dentro asoma */
.cestas-art .basket{ transform-box:fill-box; transform-origin:50% 100%; animation:basket-sway 7s ease-in-out infinite; }
.cestas-art .bob{ transform-box:fill-box; transform-origin:50% 100%; animation:bob 4.2s ease-in-out infinite; }
.cestas-art .bob-2{ animation-delay:-.7s; }
.cestas-art .bob-3{ animation-delay:-1.4s; }
.cestas-art .bob-4{ animation-delay:-2.1s; }
.cestas-art .bob-5{ animation-delay:-2.8s; }
.cestas-art .bob-6{ animation-delay:-3.5s; }
.cestas-art .ring-spin{ transform-box:fill-box; transform-origin:center; animation:ring-turn-plain 80s linear infinite; }
@keyframes basket-sway{ 0%,100%{ transform:rotate(-1.8deg); } 50%{ transform:rotate(1.8deg); } }
@keyframes bob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-6px); } }
@keyframes ring-turn-plain{ to{ transform:rotate(360deg); } }
.cestas-copy .section-head{ margin-bottom:1.8rem; }
.cesta-options{ display:grid; gap:.8rem; margin-bottom:1.6rem; }
.cesta-opt{
  display:flex; align-items:center; gap:1rem;
  padding:1rem 1.2rem; border-radius:16px;
  background:var(--cream); border:1px solid var(--sage-2);
}
.cesta-opt svg{ width:52px; height:52px; flex:none; }
.cesta-opt h3{ font-size:1.25rem; margin-bottom:.2rem; }
.cesta-opt p{ font-size:.95rem; color:var(--ink-2); line-height:1.45; }
.cestas-note{ color:var(--ink-2); }
.cestas-note a{ color:var(--green-deep); font-weight:600; text-decoration-color:var(--sage-2); text-underline-offset:3px; }
@media (min-width:900px){
  .cestas-grid{ grid-template-columns:1fr 1fr; }
}

/* ---------- Punto de recogida y envíos ---------- */
.paquetes-grid{ display:grid; gap:clamp(2.5rem, 5vw, 4.5rem); align-items:center; }
.paquetes-copy .section-head{ margin-bottom:2rem; }

.steps{ position:relative; counter-reset:paso; display:grid; gap:1.1rem; }
/* línea discontinua que une los pasos y se dibuja de arriba abajo */
.steps::before{
  content:""; position:absolute; left:19px; top:24px; bottom:24px;
  border-left:2px dashed var(--sage-2);
  transform-origin:top; transform:scaleY(0); transition:transform 1.6s var(--ease) .2s;
}
.steps.is-visible::before, html:not(.js) .steps::before{ transform:none; }
.steps li{ position:relative; display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start; }
.steps li::before{
  counter-increment:paso; content:counter(paso);
  width:40px; height:40px; display:grid; place-items:center; border-radius:50%;
  background:var(--green); color:var(--cream);
  font-family:var(--font-display); font-size:1.2rem; font-weight:600; font-variation-settings:"SOFT" 100;
  box-shadow:0 3px 0 var(--green-deep);
  transition:transform .7s cubic-bezier(.34,1.7,.5,1);
  transition-delay:calc(var(--d, 0) * 80ms + .15s);
}
.js .steps li[data-reveal]::before{ transform:scale(0) rotate(-90deg); }
.js .steps li[data-reveal].is-visible::before{ transform:none; }
.steps strong{ display:block; margin-bottom:.15rem; font-family:var(--font-display); font-variation-settings:"SOFT" 100; font-size:1.25rem; font-weight:560; color:var(--green-deep); }
.steps p{ color:var(--ink-2); line-height:1.5; }
.steps a{ color:var(--green-deep); font-weight:600; text-decoration-color:var(--sage-2); text-underline-offset:3px; }

.send-note{
  display:flex; align-items:flex-start; gap:.9rem;
  margin-top:2rem; padding:1rem 1.2rem; border-radius:16px;
  background:var(--sage); border:1px solid var(--sage-2);
  font-size:.96rem; line-height:1.5; color:var(--ink);
}
.send-note svg{ width:44px; height:44px; flex:none; }
.send-note strong{ color:var(--green-deep); }

/* la «etiqueta de envío» */
.ship-label{
  width:min(100%, 480px); margin-inline:auto;
  background:#FFFDF7; color:var(--green-deep);
  border:2px solid var(--green-deep); border-radius:14px;
  box-shadow:10px 10px 0 var(--sage-2);
  transform:rotate(1.2deg);
  overflow:hidden;
}
.ship-label > *{ padding:1.1rem 1.4rem; }
.ship-label > * + *{ border-top:2px solid var(--green-deep); }
.label-head{ display:flex; align-items:center; gap:1rem; background:var(--sage); }
.label-head svg{ width:62px; height:62px; flex:none; }
.label-head small{ display:block; font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--leaf-ink); }
.label-head strong{ display:block; font-family:var(--font-display); font-variation-settings:"SOFT" 100; font-size:1.5rem; font-weight:600; line-height:1.1; }
.label-head span{ font-size:.92rem; color:var(--ink-2); }
.label-count{ position:relative; display:flex; align-items:center; gap:1rem; }
/* sello de goma que «golpea» la etiqueta cuando aparece */
.stamp{
  position:absolute; right:1.1rem; top:50%;
  display:grid; place-items:center; width:92px; height:92px; padding:8px;
  border:2.5px solid var(--leaf); border-radius:50%;
  outline:1.5px solid var(--leaf); outline-offset:-8px;
  color:var(--leaf-ink); text-align:center; line-height:1.05;
  font-family:var(--font-display); font-variation-settings:"SOFT" 100; font-style:italic; font-weight:600; font-size:.95rem;
  transform:translateY(-50%) rotate(-14deg);
  opacity:.9; mix-blend-mode:multiply;
}
.js .ship-label .stamp{ opacity:0; transform:translateY(-50%) rotate(-30deg) scale(2.4); }
.js .ship-label.is-visible .stamp{ animation:stamp-thump .55s cubic-bezier(.5,0,.75,0) 1.1s forwards; }
@keyframes stamp-thump{
  0%{ opacity:0; transform:translateY(-50%) rotate(-30deg) scale(2.4); }
  70%{ opacity:.95; transform:translateY(-50%) rotate(-14deg) scale(.94); }
  85%{ transform:translateY(-50%) rotate(-14deg) scale(1.04); }
  100%{ opacity:.9; transform:translateY(-50%) rotate(-14deg) scale(1); }
}
.js .ship-label.is-visible{ animation:label-jolt .3s ease-out 1.5s; }
@keyframes label-jolt{ 0%,100%{ translate:0 0; } 40%{ translate:0 3px; } }
.label-count strong{ font-family:var(--font-display); font-variation-settings:"SOFT" 100; font-size:3.6rem; font-weight:600; line-height:.9; }
.label-count span{ font-size:.98rem; line-height:1.35; color:var(--ink); }
.carriers{ display:grid; grid-template-columns:1fr 1fr; gap:.55rem .9rem; }
.carriers li{ display:flex; align-items:center; gap:.5rem; font-weight:600; font-size:.95rem; line-height:1.25; color:var(--ink); }
.carriers svg{ width:18px; height:18px; flex:none; padding:2px; border-radius:50%; background:var(--sage); color:var(--green); transition:transform .5s cubic-bezier(.34,1.8,.5,1); transition-delay:calc(.7s + var(--i, 0) * 70ms); }
.js .ship-label .carriers svg{ transform:scale(0); }
.js .ship-label.is-visible .carriers svg{ transform:none; }
.carriers li:hover svg{ animation:wiggle .6s ease-in-out; }
.label-foot{ display:flex; align-items:center; gap:1rem; font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); }
.barcode{
  position:relative; overflow:hidden;
  flex:none; width:120px; height:38px;
  background:repeating-linear-gradient(90deg,
    var(--green-deep) 0 2px, transparent 2px 4px, var(--green-deep) 4px 5px, transparent 5px 8px,
    var(--green-deep) 8px 11px, transparent 11px 12px, var(--green-deep) 12px 13px, transparent 13px 16px);
}
/* luz de escáner que recorre el código de barras */
.barcode::after{
  content:""; position:absolute; top:-4px; bottom:-4px; left:0; width:3px;
  background:#8FC26E; box-shadow:0 0 10px 3px rgba(143,194,110,.75);
  animation:scan 3.4s ease-in-out infinite;
}
@keyframes scan{ 0%,100%{ transform:translateX(0); } 50%{ transform:translateX(117px); } }
.label-box{ transform-origin:50% 90%; }
.ship-label:hover .label-box{ animation:box-hop 1s ease-in-out; }

/* la etiqueta entra girando y se queda un poco torcida, como pegada a mano */
.js .ship-label[data-reveal]{ opacity:0; transform:translateY(40px) rotate(9deg); transition:opacity .7s ease, transform 1.1s cubic-bezier(.34,1.3,.5,1); }
.js .ship-label[data-reveal].is-visible{ opacity:1; transform:rotate(1.2deg); }

@media (max-width:420px){
  .carriers{ grid-template-columns:1fr; }
  .ship-label, .js .ship-label[data-reveal].is-visible{ transform:none; box-shadow:6px 6px 0 var(--sage-2); }
  .stamp{ width:80px; height:80px; font-size:.85rem; right:.8rem; }
}
@media (min-width:900px){
  .paquetes-grid{ grid-template-columns:1.05fr .95fr; }
}

/* ---------- Nosotros ---------- */
.about-grid{ display:grid; gap:clamp(3rem, 6vw, 5rem); align-items:center; }
.polaroid{
  position:relative; margin:0 auto; width:100%; max-width:430px;
  padding:14px 14px 58px; border-radius:6px;
  background:#FFFDF8;
  box-shadow:0 26px 40px -28px rgba(60,50,30,.6), 0 2px 6px rgba(60,50,30,.08);
  transform:rotate(-2.2deg);
}
.polaroid::before{
  content:""; position:absolute; top:-13px; left:50%; z-index:1; width:108px; height:28px;
  background:rgba(185,205,163,.8); transform:translateX(-50%) rotate(3deg);
  box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.polaroid img{ width:100%; height:auto; aspect-ratio:1; object-fit:cover; object-position:50% 50%; border-radius:2px; }
.polaroid figcaption{
  position:absolute; left:0; right:0; bottom:17px; text-align:center;
  font-family:var(--font-display); font-style:italic; font-size:1.1rem; color:var(--ink-2);
  font-variation-settings:"SOFT" 100;
}
.years-badge{
  position:absolute; right:-12px; top:-26px; z-index:2;
  width:104px; height:104px; border-radius:50%;
  display:grid; place-content:center; text-align:center;
  background:var(--green); color:var(--cream);
  border:3px solid var(--cream); box-shadow:0 10px 20px -10px rgba(40,60,35,.6);
  transform:rotate(9deg);
  font-family:var(--font-display); font-variation-settings:"SOFT" 100;
}
.years-badge strong{ font-size:2.4rem; font-weight:600; line-height:.9; font-variant-numeric:tabular-nums; }

/* la polaroid cae sobre la mesa y la insignia de los años se estampa encima */
.js .polaroid[data-reveal]{ opacity:0; transform:translateY(-40px) rotate(-11deg); transition:opacity .6s ease, transform 1.2s cubic-bezier(.34,1.35,.5,1), box-shadow .4s; }
.js .polaroid[data-reveal].is-visible{ opacity:1; transform:rotate(-2.2deg); }
.js .polaroid[data-reveal].is-visible:hover{ transform:rotate(0) translateY(-6px); box-shadow:0 36px 50px -30px rgba(60,50,30,.6), 0 2px 6px rgba(60,50,30,.08); transition-duration:.6s; }
.js .polaroid .years-badge{ transform:scale(0) rotate(-120deg); transition:transform .9s cubic-bezier(.34,1.6,.5,1) .7s; }
.js .polaroid.is-visible .years-badge{ transform:rotate(9deg); }
.polaroid::before{ transition:transform .4s var(--ease); }
.polaroid:hover::before{ transform:translateX(-50%) rotate(-2deg); }
.years-badge span{ font-style:italic; font-size:1rem; }
.about-copy .lead{ max-width:40ch; }
.about-copy .lead + .lead{ margin-top:1rem; }
.signature{
  margin-top:1.6rem;
  font-family:var(--font-display); font-style:italic; font-size:1.35rem; color:var(--leaf-ink);
  font-variation-settings:"SOFT" 100;
}
@media (min-width:900px){
  .about-grid{ grid-template-columns:.95fr 1.05fr; }
}

/* ---------- Visítanos ---------- */
.visit-grid{ display:grid; gap:1rem; }
.info-card{
  display:flex; flex-direction:column; gap:1rem;
  padding:1.7rem; border-radius:var(--radius);
  background:var(--cream); border:1px solid var(--rule);
}
.info-card h3{ display:flex; align-items:center; gap:.6rem; font-size:1.5rem; }
.info-card h3 svg{ width:26px; height:26px; color:var(--leaf); }
.address{ font-style:normal; font-size:1.08rem; line-height:1.55; }
.card-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:auto; padding-top:.4rem; }

.hours{ width:100%; border-collapse:collapse; font-size:.98rem; }
.hours th{ padding:.7rem .5rem .7rem 0; text-align:left; font-weight:600; vertical-align:top; }
.hours td{ padding:.7rem 0; text-align:right; color:var(--ink-2); font-variant-numeric:tabular-nums; }
.hours tr + tr{ border-top:1px dashed var(--rule); }
.hours tr.is-today th, .hours tr.is-today td{ color:var(--green-deep); }
:lang(gl) .hours tr.is-today th::after{ content:"hoxe"; }
.hours tr.is-today th::after{
  content:"hoy"; margin-left:.5rem; padding:.18rem .45rem; border-radius:999px;
  background:var(--sage); color:var(--leaf-ink);
  font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; vertical-align:2px;
}
.status-block{ align-self:flex-start; margin-top:auto; }

.contact-list{ display:grid; gap:.5rem; }
.contact-list a{
  display:flex; align-items:center; gap:.85rem;
  padding:.75rem .9rem; border-radius:14px;
  background:var(--paper); border:1px solid transparent;
  text-decoration:none; transition:background-color .2s, border-color .2s;
}
.contact-list a:hover{ background:var(--sage); border-color:var(--sage-2); }
.ci{ width:40px; height:40px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--sage); color:var(--green); }
.contact-list a:hover .ci{ background:var(--cream); }
.ci svg{ width:20px; height:20px; }
.contact-list small{
  display:block; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2);
}
.contact-list strong{ font-weight:600; overflow-wrap:break-word; }

@media (min-width:900px){
  .visit-grid{ grid-template-columns:1fr 1.1fr 1fr; }
}
@media (max-width:559px){ .info-card{ padding:1.4rem 1.2rem; } }

/* ---------- Páginas legales ---------- */
.legal-hero{ padding-block:clamp(2rem, 5vw, 3.5rem) clamp(1.4rem, 3vw, 2rem); }
.legal-hero h1{ font-size:clamp(2.4rem, 5.4vw, 3.8rem); font-weight:500; margin-top:.8rem; }
.legal-hero .updated{ margin-top:.9rem; font-size:.92rem; color:var(--ink-2); }
.back-link{
  display:flex; width:fit-content; align-items:center; gap:.4rem; margin-bottom:1.6rem;
  font-size:.92rem; font-weight:600; color:var(--leaf-ink); text-decoration:none;
}
.back-link:hover{ color:var(--green-deep); text-decoration:underline; text-underline-offset:3px; }
.legal{ padding-bottom:clamp(3.5rem, 7vw, 5.5rem); }
.legal-card{
  max-width:820px; padding:clamp(1.4rem, 4vw, 3rem);
  background:var(--cream); border:1px solid var(--rule); border-radius:var(--radius);
}
.legal-summary{
  margin-bottom:2rem; padding:1rem 1.2rem; border-radius:14px;
  background:var(--sage); border:1px solid var(--sage-2); color:var(--ink);
}
.legal-body h2{ font-size:clamp(1.35rem, 2.4vw, 1.7rem); margin:2.2rem 0 .8rem; }
.legal-body h2:first-child, .legal-summary + h2{ margin-top:0; }
.legal-body p, .legal-body li, .legal-body dd{ line-height:1.7; color:var(--ink); max-width:68ch; }
.legal-body p + p{ margin-top:.8rem; }
.legal-body ul{ list-style:disc; padding-left:1.3rem; margin:.7rem 0; }
.legal-body li + li{ margin-top:.45rem; }
.legal-body li::marker{ color:var(--leaf); }
.legal-body a{ color:var(--green-deep); font-weight:600; text-decoration-color:var(--sage-2); text-underline-offset:3px; overflow-wrap:break-word; }
.legal-data{ display:grid; gap:.1rem 1.4rem; margin:1rem 0 0; padding:1rem 1.2rem; border-radius:14px; background:var(--paper); }
.legal-data dt{ font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); padding-top:.6rem; }
.legal-data dd{ margin:0; }
@media (min-width:640px){
  .legal-data{ grid-template-columns:auto 1fr; }
  .legal-data dt{ padding-top:.25rem; }
  .legal-data dd{ padding-block:.15rem; }
}
.legal-more{ display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:1.6rem; font-size:.92rem; color:var(--ink-2); }
.legal-more a{
  padding:.38rem .8rem; border-radius:999px; text-decoration:none;
  background:var(--cream); border:1px solid var(--rule); color:var(--ink);
}
.legal-more a:hover{ border-color:var(--sage-2); background:var(--sage); }
.legal-more a[aria-current="page"]{ background:var(--green); border-color:var(--green-deep); color:var(--cream); }
.footer-bottom a[aria-current="page"]{ color:var(--cream); font-weight:600; }

/* ---------- Pie ---------- */
.site-footer{ color:#E6E1CF; }
.footer-scallop{
  height:14px;
  background:radial-gradient(circle 12px at 12px 14px, var(--green-deep) 97%, #0000) 0 0 / 24px 14px repeat-x;
}
.footer-body{ background:var(--green-deep); padding-block:3rem 1.8rem; }
.footer-grid{ display:grid; gap:1.6rem; align-items:center; }
.footer-brand{ display:flex; align-items:center; gap:.9rem; }
.footer-brand svg{ width:52px; height:52px; flex:none; }
.footer-name{
  font-family:var(--font-display); font-variation-settings:"SOFT" 100;
  font-size:1.5rem; font-weight:600; color:var(--cream); line-height:1.1;
}
.footer-brand p:not(.footer-name){ font-style:italic; color:#C6CDB9; }
.footer-info{ display:grid; gap:.3rem; color:#C6CDB9; font-size:.95rem; }
.footer-info a{ text-decoration:none; border-bottom:1px solid rgba(255,255,255,.25); }
.footer-info a:hover{ color:var(--cream); border-color:var(--cream); }
.footer-bottom{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:.8rem 1.4rem;
  margin-top:2.4rem; padding-top:1.3rem;
  border-top:1px solid rgba(255,255,255,.12);
  font-size:.86rem; color:#AEB7A1;
}
.footer-bottom nav{ display:flex; flex-wrap:wrap; gap:1.2rem; }
.footer-lang{ display:flex; align-items:center; gap:.5rem; }
.footer-lang button{
  padding:0; border:0; background:none; cursor:pointer;
  font:inherit; color:inherit;
}
.footer-lang button:hover{ color:var(--cream); text-decoration:underline; }
.footer-lang button[aria-pressed="true"]{ color:var(--cream); font-weight:600; }
.footer-brand svg{ transition:transform .6s cubic-bezier(.34,1.6,.5,1); }
.footer-brand:hover svg{ transform:rotate(-16deg) scale(1.08); }
.footer-bottom a{ text-decoration:none; }
.footer-bottom a:hover{ color:var(--cream); text-decoration:underline; }
@media (min-width:800px){
  .footer-grid{ grid-template-columns:auto 1fr; }
  .footer-info{ justify-items:end; text-align:right; }
}

/* ---------- Aparición al hacer scroll ---------- */
.js [data-reveal]{
  opacity:0; transform:translateY(16px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
  transition-delay:calc(var(--d, 0) * 80ms);
}
.js [data-reveal].is-visible{ opacity:1; transform:none; }

/* ---------- Móvil ---------- */
@media (max-width:859px){
  .header-inner{ gap:.6rem; min-height:66px; }
  .brand-mark{ width:38px; height:38px; }
  .brand-name{ font-size:1.2rem; }
  .nav-toggle{
    display:inline-grid; place-items:center; width:44px; height:44px; padding:0;
    border-radius:50%; border:1px solid var(--rule); background:var(--cream); color:var(--green-deep); cursor:pointer;
  }
  .nav-toggle svg{ width:22px; height:22px; }
  .nav{
    position:absolute; left:0; right:0; top:calc(100% + 6px);
    flex-direction:column; gap:0; padding:.5rem;
    background:var(--cream); border:1px solid var(--rule); border-radius:18px;
    box-shadow:0 20px 40px -24px rgba(60,70,40,.55);
    opacity:0; visibility:hidden; transform:translateY(-6px); pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
  }
  .nav.is-open{ opacity:1; visibility:visible; transform:none; pointer-events:auto; }
  .nav a{ padding:.85rem 1rem; border-radius:12px; color:var(--ink); }
  .nav a::after{ display:none; }
  .nav a:hover{ background:var(--sage); }
  .nav .nav-call{
    display:flex; align-items:center; justify-content:center; gap:.55rem;
    margin-top:.4rem; background:var(--green); color:var(--cream); font-weight:600;
  }
  .nav .nav-call:hover{ background:var(--green-deep); }
  .nav-call svg{ width:18px; height:18px; }
  .photo-tag{ left:-10px; bottom:40px; width:116px; }
}
@media (max-width:620px){
  /* en móvil el teléfono pasa al menú y la cabecera queda: logo · idioma · menú */
  .header-cta{ display:none; }
}
@media (max-width:420px){
  .brand-name small{ letter-spacing:.12em; }
  .hero-actions .btn{ flex:1 1 100%; }
  .stamp{ top:0; }
}
@media (max-width:380px){
  .brand-mark{ width:34px; height:34px; }
  .brand-name{ font-size:1.05rem; }
  .brand-name small{ font-size:.6rem; letter-spacing:.1em; }
  .lang-switch button{ min-width:32px; padding:0 .4rem; }
}

/* ---------- Movimiento reducido: una sola regla para todo ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  [data-enter], [data-reveal]{ opacity:1 !important; transform:none !important; }
  .js .ph[data-reveal]{ clip-path:none !important; }
  .js .ship-label[data-reveal]{ transform:rotate(1.2deg) !important; }
  .js .polaroid[data-reveal]{ transform:rotate(-2.2deg) !important; }
  .leaf, .barcode::after{ display:none; }
}
