/* ---- scroll reveal ---- */
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1)}
[data-reveal].in-view{opacity:1;transform:none}
.flavor-card[data-reveal]:nth-child(2){transition-delay:.08s}
.flavor-card[data-reveal]:nth-child(3){transition-delay:.16s}
.flavor-card[data-reveal]:nth-child(4){transition-delay:.24s}
.recipe-grid .recipe:nth-child(2){transition-delay:.08s}
.recipe-grid .recipe:nth-child(3){transition-delay:.16s}
.community-grid .photo-slot.slot-b{transition-delay:.1s}
.community-grid .community-quote{transition-delay:.2s}
.craft-steps li:nth-child(2){transition-delay:.1s}
.craft-steps li:nth-child(3){transition-delay:.2s}
.craft-steps li:nth-child(4){transition-delay:.3s}
@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
}

/* ---- hover / interaction micro-motion ---- */
.flavor-card,.recipe,.craft-steps li{transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s cubic-bezier(.16,1,.3,1)}
.flavor-card:hover,.recipe:hover{transform:translateY(-10px);box-shadow:0 26px 44px -20px #00000045}
.craft-steps li:hover{transform:translateY(-6px)}
.button{position:relative;transition:transform .25s ease,box-shadow .25s ease}
.button:hover{transform:translateY(-3px);box-shadow:0 12px 22px -10px #00000055}
.button span,.text-link span,.recipe a span{display:inline-block;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.button:hover span{transform:translateX(5px)}
.text-link:hover span,.recipe a:hover span{transform:translate(3px,-3px)}
.nav a{position:relative}
.nav nav a:after{content:'';position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:currentColor;transition:right .3s cubic-bezier(.16,1,.3,1)}
.nav nav a:hover:after{right:0}

/* ---- recipe modal ---- */
.recipe-dialog{width:min(720px,92vw);padding:0}
.recipe-modal{display:grid;grid-template-columns:230px 1fr}
.recipe-modal-visual{position:relative;background:var(--ink);padding:0;min-height:260px}
.recipe-modal-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.recipe-modal-body{padding:44px 40px}
.recipe-modal-body h2{font:600 2.2rem/1 var(--serif);letter-spacing:-.04em;margin:6px 0 24px}
.recipe-modal-cols{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.recipe-modal-cols b{display:block;font:10px var(--mono);letter-spacing:.08em;margin-bottom:10px;text-transform:uppercase}
.recipe-modal-cols ul,.recipe-modal-cols ol{margin:0;padding-left:18px;font-size:.82rem;line-height:1.6}
.recipe-modal-cols li{margin-bottom:6px}
@media(max-width:640px){.recipe-modal{grid-template-columns:1fr}.recipe-modal-visual{padding:20px}.recipe-modal-body{padding:30px 26px}.recipe-modal-cols{grid-template-columns:1fr}}
.pin,.leaflet-marker-icon{transition:transform .2s ease}
.place{transition:background-color .25s ease,padding-left .25s ease}
.place:hover{background:#00000006;padding-left:6px}

/* ---- mobile nav drawer ---- */
.mobile-nav{position:fixed;inset:0;z-index:40;background:var(--moss);color:var(--paper);display:flex;flex-direction:column;justify-content:center;gap:44px;padding:40px 9vw;transform:translateX(100%);transition:transform .5s cubic-bezier(.16,1,.3,1);overflow:auto}
.mobile-nav.open{transform:translateX(0)}
.mobile-nav nav{display:flex;flex-direction:column;gap:20px}
.mobile-nav nav a{color:var(--paper);text-decoration:none;font:600 2.1rem/1 var(--serif);letter-spacing:-.03em}
.mobile-nav .button{align-self:flex-start}
body.nav-open{overflow:hidden}
@media(min-width:801px){.mobile-nav{display:none}}

/* ---- community / people section ---- */
.community{padding:110px 5.5vw 0;background:var(--paper)}
.community-heading{max-width:640px;margin-bottom:52px}
.community-heading h2{font:600 clamp(2.8rem,4.2vw,4.8rem)/.9 var(--serif);letter-spacing:-.06em;margin:0}
.community-heading em{font-weight:600;color:var(--red);font-style:italic}
.community-heading p:not(.eyebrow){font-size:.92rem;line-height:1.55;margin-top:22px;max-width:480px}
.community-grid{display:grid;grid-template-columns:1fr 1.15fr;grid-template-rows:auto auto;gap:14px}
.photo-slot{position:relative;border-radius:4px;overflow:hidden;min-height:280px;background:repeating-linear-gradient(135deg,#20201812 0 16px,#2020180a 16px 32px),var(--sand);border:1.5px dashed #20201835;display:flex;align-items:flex-end}
.photo-slot:before{content:'◎';position:absolute;top:50%;left:50%;transform:translate(-50%,-56%);font-size:2.6rem;color:#20201830;font-family:var(--sans)}
.photo-slot figcaption,.photo-slot>figcaption{position:relative;padding:16px 18px;width:100%;background:linear-gradient(0deg,#20201880,transparent);color:#fff}
.photo-slot figcaption b{display:block;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px}
.photo-slot figcaption span{font-size:.72rem;opacity:.9}
.slot-a{grid-row:1/3}
.community-quote{background:var(--maize);margin:0;padding:26px 28px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.community-quote p{font:600 1.35rem/1.3 var(--serif);letter-spacing:-.02em;margin:0}
.community-quote span{font:10px var(--mono);letter-spacing:.06em}
.community-stats{margin-top:70px;width:100vw;margin-left:calc(50% - 50vw);background:var(--maize);border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);padding:44px max(5.5vw,calc((100% - 1400px)/2)) 48px}
.stats-label{font:10px var(--mono);letter-spacing:.16em;margin:0 0 30px;text-align:center;font-weight:bold}
.stats-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.stats-grid>div{text-align:center;padding:6px 20px}
.stats-grid>div+div{border-left:1.5px solid #20201830}
.community-stats b{display:block;font:600 clamp(3.2rem,5vw,5rem)/1 var(--serif);letter-spacing:-.03em}
.community-stats span{display:block;margin-top:12px;font:10px var(--mono);letter-spacing:.14em;text-transform:uppercase}

/* ---- craft / process section ---- */
.craft{padding:110px 5.5vw;background:var(--moss);color:var(--paper)}
.craft-heading{max-width:600px;margin-bottom:56px}
.craft-heading h2{font:600 clamp(2.8rem,5vw,4.6rem)/.9 var(--serif);letter-spacing:-.06em;margin:0}
.craft-heading p{font-size:.92rem;line-height:1.55;margin-top:22px;max-width:440px;color:#cdd9d0}
.craft-steps{list-style:none;margin:0;padding:26px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;border-top:1px solid #628174}
.craft-steps li{position:relative;padding-top:6px}
.craft-steps li:before{content:'';position:absolute;top:-27px;left:0;width:9px;height:9px;border-radius:50%;background:var(--maize)}
.craft-steps .photo-slot{min-height:170px;margin-bottom:18px;background:repeating-linear-gradient(135deg,#ffffff14 0 16px,#ffffff08 16px 32px),#1c4a3a;border-color:#ffffff30}
.craft-steps .photo-slot:before{color:#ffffff40}
.craft-steps .card-num{font:10px var(--mono);color:#a9c3b2;margin:0 0 6px}
.craft-steps h3{font:600 1.5rem/1 var(--serif);letter-spacing:-.03em;margin:0 0 8px}
.craft-steps p{font-size:.82rem;line-height:1.45;color:#cdd9d0;margin:0;max-width:220px}

@media(max-width:800px){
  .community{padding:70px 7vw 0}
  .craft{padding:70px 7vw}
  .community-grid{grid-template-columns:1fr;grid-template-rows:auto}
  .slot-a{grid-row:auto;min-height:220px;aspect-ratio:4/3}
  .slot-b{aspect-ratio:16/9}
  .community-stats{margin-top:52px;padding:34px 5.5vw 38px}
  .stats-label{margin-bottom:24px}
  .stats-grid{grid-template-columns:1fr;gap:0}
  .stats-grid>div{display:flex;align-items:baseline;justify-content:space-between;text-align:left;padding:14px 0}
  .stats-grid>div+div{border-left:0;border-top:1.5px solid #20201830}
  .community-stats b{font-size:2.7rem}
  .community-stats span{margin-top:0}
  .craft-steps{grid-template-columns:1fr 1fr;gap:28px 18px}
}

/* ---- v9: composición profesional en pantallas anchas ---- */
.nav{padding-left:max(5.5vw,calc((100% - 1500px)/2));padding-right:max(5.5vw,calc((100% - 1500px)/2))}
.hero,.flavors,.recipes,.community,.craft{padding-left:max(5.5vw,calc((100% - 1400px)/2));padding-right:max(5.5vw,calc((100% - 1400px)/2))}
.statement,.newsletter,.contact{padding-left:max(5.5vw,calc((100% - 1400px)/2));padding-right:max(5.5vw,calc((100% - 1400px)/2))}
footer{padding-left:max(5.5vw,calc((100% - 1400px)/2));padding-right:max(5.5vw,calc((100% - 1400px)/2))}
.hero-image{width:100vw;margin:64px 0 0 calc(50% - 50vw)}
@media(min-width:1000px){
  .hero-copy{display:grid;max-width:none;grid-template-columns:1fr minmax(300px,400px);column-gap:7vw;align-items:end}
  .hero-copy .eyebrow{grid-column:1/-1}
  .hero-copy h1{grid-column:1}
  .hero-copy .intro{grid-column:2;grid-row:2;margin:0 0 12px;align-self:end}
  .hero-copy .hero-actions{grid-column:1/-1;margin-top:42px}
}
.photo-slot{min-height:0;aspect-ratio:4/3;width:100%;height:auto}
.slot-b{aspect-ratio:16/9}
@media(min-width:1121px){.slot-a{aspect-ratio:auto;min-height:460px;height:100%}}
.community-quote{padding:34px 38px}
.craft-steps .photo-slot{aspect-ratio:4/3;min-height:0;margin-bottom:18px}
.craft-steps .photo-slot:not(.has-img){border:0;background:#153a2c;background-image:none}
.craft-steps .photo-slot:not(.has-img):before{content:'◎';color:#ffffff30;font-size:2rem}

/* ---- v10: responsivo real en todos los tamaños ---- */
html,body{overflow-x:clip}
@media(min-width:801px) and (max-width:1120px){
  .flavors{grid-template-columns:1fr 1fr}
  .flavors-heading{grid-column:span 2;margin-bottom:18px}
  .flavor-card:nth-child(4){grid-column:span 2}
  .craft-steps{grid-template-columns:1fr 1fr;gap:30px 18px}
  .recipe-grid{grid-template-columns:1fr 1fr}
  .recipe-yellow{grid-column:1/-1;min-height:320px}
  .community-grid{grid-template-columns:1fr 1fr}
  .slot-a{grid-row:1/3;grid-column:1/2}
  .slot-b{grid-row:1/2;grid-column:2/3;aspect-ratio:16/9}
  .community-quote{grid-column:2/3;grid-row:2/3}
  .finder{display:flex;flex-direction:column}.finder-copy{order:1}.map-wrap{order:2}.location-results{order:3;margin:0 5.5vw 60px;max-width:none}
  .map-wrap{height:480px;min-height:0}
  .contact{grid-template-columns:1fr;gap:40px}
}


/* ---- v19: tarjetas de marca en "Cómo se hacen" (pasos 01 y 02, sin foto de proceso aún) ---- */
.craft-steps .photo-slot.craft-tile{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:16px 18px;background:radial-gradient(circle at 85% 15%,#f9c83933,transparent 55%),linear-gradient(160deg,#1f5040,#123327)}
.craft-tile-num{font:600 clamp(2.4rem,3vw,3.2rem)/1 var(--serif);letter-spacing:-.04em;color:var(--maize)}
.craft-tile figcaption{background:none;padding:0}
