/* =========================================================================
   Barista Bogotá — Rediseño
   Tema: café espresso oscuro + acento dorado latte. Sistema tipográfico modular.
   ========================================================================= */

/* ---------- Tipografía (self-host, sin CDN) ---------- */
@font-face{
  font-family:'Fraunces';
  src:url('/assets/fonts/fraunces-var.woff2') format('woff2-variations'),
      url('/assets/fonts/fraunces-var.woff2') format('woff2');
  font-weight:400 900;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ---------- Tokens ---------- */
:root{
  --espresso:#150f0a;
  --bg:#1a120c;
  --bg-2:#221811;
  --bg-3:#2c2017;
  --card:#241a12;
  --card-2:#2b2016;

  --ink:#f7f0e7;
  --ink-2:#ecdfce;
  --mute:#c6b39c;
  --mute-2:#9c8870;

  --gold:#cba071;
  --gold-2:#e6ca9f;
  --gold-deep:#a67c4c;

  --line:rgba(233,214,190,.13);
  --line-soft:rgba(233,214,190,.07);
  --wa:#25d366;

  --serif:'Fraunces','Iowan Old Style','Palatino Linotype',Palatino,Georgia,'Times New Roman',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  --wrap:1200px;
  --r:16px;
  --r-lg:24px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow:0 24px 60px -24px rgba(0,0,0,.7);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink);
  line-height:1.65;font-size:17px;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:700;line-height:1.02;letter-spacing:-.02em;font-optical-sizing:auto}
p{margin:0}
::selection{background:var(--gold);color:#1a120c}

.skip{position:absolute;left:-999px;top:0;z-index:200;background:var(--gold);color:#1a120c;padding:12px 18px;border-radius:0 0 10px 0;font-weight:700}
.skip:focus{left:0}

/* ---------- Layout ---------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:24px}
.section{padding:clamp(64px,10vw,128px) 0}
.section--tight{padding:clamp(48px,7vw,88px) 0}

.eyebrow{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--sans);font-size:.74rem;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--gold);
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--gold);opacity:.7}
.eyebrow--center::after{content:"";width:26px;height:1px;background:var(--gold);opacity:.7}
.eyebrow--center{justify-content:center}

.sec-head{max-width:760px;margin:0 auto clamp(40px,6vw,64px);text-align:center}
.sec-head--left{margin-inline:0;text-align:left}
.sec-title{font-size:clamp(2rem,4.6vw,3.2rem);margin:.5em 0 0}
.sec-sub{margin-top:1em;color:var(--mute);font-size:1.06rem;line-height:1.7}

.gold{color:var(--gold)}
.serif{font-family:var(--serif)}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;justify-content:center;
  font-weight:700;font-size:.98rem;letter-spacing:.01em;
  padding:15px 28px;border-radius:100px;transition:all .35s var(--ease);
  white-space:nowrap;
}
.btn__ico{width:19px;height:19px;flex:none}
.btn .btn__ico:last-child{transition:transform .35s var(--ease)}
.btn:hover .btn__ico:last-child{transform:translateX(4px)}
.btn--gold{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#241708;box-shadow:0 12px 30px -12px rgba(203,160,113,.6)}
.btn--gold:hover{transform:translateY(-3px);box-shadow:0 18px 40px -14px rgba(203,160,113,.75)}
.btn--ghost{border:1px solid var(--line);color:var(--ink);background:rgba(255,255,255,.02)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold);background:rgba(203,160,113,.08)}
.btn--wa{background:var(--wa);color:#04310f}
.btn--wa:hover{transform:translateY(-3px);filter:brightness(1.05)}
.btn--pill{padding:11px 22px;font-size:.9rem}
.btn--lg{padding:18px 34px;font-size:1.02rem}
.btn--block{display:flex;width:100%}

/* ---------- Nav ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:90;transition:all .4s var(--ease)}
.nav__inner{
  display:flex;align-items:center;gap:24px;
  max-width:1340px;margin-inline:auto;padding:18px 32px;
}
.nav__brand{margin-right:auto;display:flex;align-items:center}
.nav__logo{width:132px;height:auto;transition:width .4s var(--ease)}
.nav__links{display:flex;gap:6px;align-items:center}
.nav__link{
  position:relative;padding:10px 16px;font-size:.94rem;font-weight:600;
  color:var(--ink-2);opacity:.85;transition:.25s;border-radius:8px;
}
.nav__link::after{
  content:"";position:absolute;left:16px;right:16px;bottom:6px;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);border-radius:2px;
}
.nav__link:hover{opacity:1;color:var(--ink)}
.nav__link:hover::after,.nav__link.is-active::after{transform:scaleX(1)}
.nav__link.is-active{color:var(--gold);opacity:1}
.nav__cta{margin-left:4px}

/* redes en el header */
.nav__social{display:flex;align-items:center;gap:4px}
.nav__social a{
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;color:var(--mute);transition:.28s var(--ease);
}
.nav__social a:hover{color:var(--gold);background:rgba(203,160,113,.14);transform:translateY(-2px)}
.nav__social .ico{width:18px;height:18px}

/* botón de llamada en el header */
.nav__call{
  display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;
  border-radius:100px;border:1px solid var(--line);color:var(--ink-2);
  transition:.28s var(--ease);white-space:nowrap;
}
.nav__call:hover{border-color:var(--gold);color:var(--ink);transform:translateY(-2px)}
.nav__call-ico{
  width:34px;height:34px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(203,160,113,.16);color:var(--gold);
}
.nav__call-ico .ico{width:17px;height:17px}
.nav__call-txt{display:flex;flex-direction:column;line-height:1.15}
.nav__call-txt small{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute-2);font-weight:700}
.nav__call-txt b{font-size:.92rem;font-weight:700;letter-spacing:.01em}

.nav__burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line)}
.nav__burger-ico,.mmenu__close .ico{width:24px;height:24px}

/* estado scrolled */
.nav.is-stuck{background:rgba(21,15,10,.82);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border-bottom:1px solid var(--line-soft);box-shadow:0 10px 40px -20px rgba(0,0,0,.8)}
.nav.is-stuck .nav__inner{padding-top:12px;padding-bottom:12px}
.nav.is-stuck .nav__logo{width:112px}

/* ---------- Menú móvil ---------- */
.mmenu{
  position:fixed;inset:0;z-index:95;background:rgba(20,14,9,.97);
  backdrop-filter:blur(10px);display:block;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:88px 32px calc(88px + env(safe-area-inset-bottom));
  opacity:0;visibility:hidden;transform:translateY(-12px);transition:all .4s var(--ease);
}
.mmenu__inner{
  min-height:100%;display:flex;flex-direction:column;
  justify-content:center;align-items:center;gap:8px;
}
.mmenu.is-open{opacity:1;visibility:visible;transform:none}
.mmenu__close{position:fixed;top:22px;right:22px;z-index:2;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;background:rgba(20,14,9,.9)}
.mmenu__links{display:flex;flex-direction:column;text-align:center;gap:2px;margin-bottom:22px}
.mmenu__link{font-family:var(--serif);font-size:1.8rem;padding:6px;color:var(--ink)}
.mmenu__link.is-active{color:var(--gold)}
.mmenu__actions{display:flex;flex-direction:column;gap:12px;width:100%;max-width:340px}
.mmenu .btn{max-width:340px}
.mmenu__meta{margin-top:22px;display:flex;flex-direction:column;gap:14px;align-items:center;color:var(--mute)}
.mmenu__meta a{display:inline-flex;gap:10px;align-items:center}
.mmenu__meta .ico{width:18px;height:18px;color:var(--gold)}
.mmenu__social{margin-top:22px;display:flex;gap:12px}
.mmenu__social a{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--gold);transition:.28s var(--ease);
}
.mmenu__social a:hover{background:var(--gold);color:#1a120c;border-color:var(--gold)}
.mmenu__social .ico{width:20px;height:20px}
body.menu-open .floats{opacity:0;visibility:hidden;pointer-events:none}

/* ---------- Preloader ---------- */
.preloader{position:fixed;inset:0;z-index:300;background:var(--espresso);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s}
.preloader.is-done{opacity:0;visibility:hidden}
.preloader__cup{color:var(--gold);animation:cupPop .8s var(--ease)}
.preloader__ico{width:58px;height:58px}
.preloader__steam{position:absolute;top:calc(50% - 60px);width:4px;height:26px;background:linear-gradient(to top,transparent,var(--gold-2));border-radius:4px;opacity:0;filter:blur(1px);animation:steam 1.6s ease-in-out infinite}
.preloader__steam:nth-child(2){left:calc(50% - 10px);animation-delay:0s}
.preloader__steam:nth-child(3){left:50%;animation-delay:.3s;height:32px}
.preloader__steam:nth-child(4){left:calc(50% + 10px);animation-delay:.6s}
@keyframes cupPop{0%{transform:scale(.5) translateY(10px);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes steam{0%{opacity:0;transform:translateY(6px) scaleY(.6)}40%{opacity:.7}100%{opacity:0;transform:translateY(-22px) scaleY(1.3)}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--espresso)}
.hero__slides{position:absolute;inset:0}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s var(--ease)}
.hero__slide.is-active{opacity:1}
.hero__slide::before{content:"";position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.05);background-image:var(--img)}
.hero__slide.is-active::before{animation:kenburns 8s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.05)}to{transform:scale(1.15)}}
.hero__overlay{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(18,12,8,.92) 0%,rgba(18,12,8,.72) 42%,rgba(18,12,8,.35) 100%),
  linear-gradient(0deg,rgba(18,12,8,.9) 0%,transparent 45%)}
.hero__grain{position:absolute;inset:0;opacity:.06;pointer-events:none;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.hero__inner{position:relative;z-index:3;max-width:1340px;width:100%;margin-inline:auto;padding:120px 32px 90px}
.hero__content{max-width:680px}
.hero__eyebrow{opacity:0;animation:up .8s var(--ease) .35s forwards}
.hero__title{font-size:clamp(2.9rem,7vw,5.5rem);line-height:.98;margin-top:.22em;letter-spacing:-.03em}
.hero__title .ln{display:block;overflow:hidden}
.hero__title .ln span{display:block;transform:translateY(105%);animation:reveal-line 1.1s var(--ease) forwards}
.hero__title .ln:nth-child(1) span{animation-delay:.45s}
.hero__title .ln:nth-child(2) span{animation-delay:.6s}
.hero__title em{font-style:italic;color:var(--gold);font-weight:700}
@keyframes reveal-line{to{transform:translateY(0)}}

.hero__subwrap{min-height:2.6em;margin-top:1.3em;opacity:0;animation:up .8s var(--ease) 1s forwards}
.hero__sub{font-size:clamp(1.05rem,2vw,1.28rem);color:var(--ink-2);max-width:520px;line-height:1.55}
.hero__sub b{color:var(--gold-2);font-weight:600}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:2.2em;opacity:0;animation:up .8s var(--ease) 1.15s forwards}
.hero__meta{display:flex;flex-wrap:wrap;gap:26px;margin-top:2.6em;opacity:0;animation:up .8s var(--ease) 1.3s forwards}
.hero__meta-item{display:flex;align-items:center;gap:10px;color:var(--mute);font-size:.92rem}
.hero__meta-item .ico{width:18px;height:18px;color:var(--gold)}
.hero__meta-item b{color:var(--ink);font-family:var(--serif);font-size:1.5rem;font-weight:700;line-height:1}

@keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

/* dots slider */
.hero__dots{position:absolute;left:32px;bottom:38px;z-index:4;display:flex;gap:12px;max-width:1340px}
.hero__dot{position:relative;width:54px;height:3px;background:rgba(255,255,255,.22);border-radius:3px;overflow:hidden}
.hero__dot span{position:absolute;inset:0;width:0;background:var(--gold);border-radius:3px}
.hero__dot.is-active span{animation:fill 6s linear forwards}
@keyframes fill{from{width:0}to{width:100%}}

/* scroll cue */
.hero__scroll{position:absolute;right:34px;bottom:38px;z-index:4;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--mute);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;opacity:0;animation:up .8s var(--ease) 1.5s forwards}
.hero__scroll span{writing-mode:vertical-rl}
.hero__mouse{width:22px;height:34px;border:1.5px solid var(--mute);border-radius:12px;position:relative}
.hero__mouse::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:6px;background:var(--gold);border-radius:3px;transform:translateX(-50%);animation:scroll 1.6s ease-in-out infinite}
@keyframes scroll{0%{opacity:0;transform:translate(-50%,0)}40%{opacity:1}100%{opacity:0;transform:translate(-50%,12px)}}

/* granos flotantes */
.beans{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.bean{position:absolute;width:14px;height:19px;background:radial-gradient(ellipse at 40% 30%,#6b4a2f,#3a2416);border-radius:50%;opacity:.0;transform:rotate(20deg)}
.bean::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(90deg,transparent 46%,rgba(0,0,0,.55) 47%,rgba(0,0,0,.55) 53%,transparent 54%)}
.bean.f{animation:floatBean linear infinite}
@keyframes floatBean{0%{opacity:0;transform:translateY(20px) rotate(0deg)}10%{opacity:.5}90%{opacity:.5}100%{opacity:0;transform:translateY(-120px) rotate(220deg)}}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal-stagger>*{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-stagger.in>*{opacity:1;transform:none}
.reveal-stagger.in>*:nth-child(1){transition-delay:.05s}
.reveal-stagger.in>*:nth-child(2){transition-delay:.13s}
.reveal-stagger.in>*:nth-child(3){transition-delay:.21s}
.reveal-stagger.in>*:nth-child(4){transition-delay:.29s}
.reveal-stagger.in>*:nth-child(5){transition-delay:.37s}
.reveal-stagger.in>*:nth-child(6){transition-delay:.45s}
.reveal-stagger.in>*:nth-child(7){transition-delay:.53s}
.reveal-stagger.in>*:nth-child(8){transition-delay:.61s}

/* ---------- About ---------- */
.about{background:linear-gradient(180deg,var(--espresso),var(--bg))}
.about__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,80px);align-items:center}
.about__media{position:relative}
.about__img{border-radius:var(--r-lg);width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow)}
.about__img--sm{position:absolute;right:-28px;bottom:-40px;width:46%;aspect-ratio:1;border-radius:var(--r);border:6px solid var(--bg);box-shadow:var(--shadow)}
.about__badge{position:absolute;left:-24px;top:34px;background:var(--gold);color:#1a120c;border-radius:var(--r);padding:16px 20px;text-align:center;box-shadow:var(--shadow)}
.about__badge b{display:block;font-family:var(--serif);font-size:1.9rem;line-height:1}
.about__badge span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.about__title{font-size:clamp(1.9rem,3.8vw,2.8rem);margin-top:.4em}
.about__lead{margin-top:1.2em;color:var(--ink-2);font-size:1.1rem}
.about__text{margin-top:1em;color:var(--mute);line-height:1.75}
.about__sign{margin-top:1.6em;font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--gold-2)}
.about__list{margin-top:1.6em;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.about__list li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2);font-size:.98rem}
.about__list .ico{width:20px;height:20px;color:var(--gold);flex:none;margin-top:2px}

/* ---------- Servicios cards ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc{
  position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--card);
  border:1px solid var(--line-soft);isolation:isolate;transition:transform .5s var(--ease),border-color .5s;
  min-height:380px;display:flex;flex-direction:column;justify-content:flex-end;
}
.svc__img{position:absolute;inset:0;z-index:-2}
.svc__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.svc::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(18,12,8,.96) 8%,rgba(18,12,8,.66) 46%,rgba(18,12,8,.12) 100%);transition:opacity .5s}
.svc:hover{transform:translateY(-8px);border-color:var(--gold)}
.svc:hover .svc__img img{transform:scale(1.08)}
.svc__body{position:relative;padding:26px;z-index:2}
.svc__ico{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(203,160,113,.16);border:1px solid rgba(203,160,113,.35);color:var(--gold-2);margin-bottom:16px}
.svc__ico .ico{width:24px;height:24px}
.svc__title{font-size:1.32rem;line-height:1.15}
.svc__excerpt{margin-top:.6em;color:var(--mute);font-size:.95rem;line-height:1.6}
.svc__more{margin-top:1em;display:inline-flex;align-items:center;gap:.5em;color:var(--gold);font-weight:700;font-size:.9rem;opacity:0;transform:translateY(6px);transition:.4s var(--ease)}
.svc__more .ico{width:16px;height:16px}
.svc:hover .svc__more{opacity:1;transform:none}

/* ---------- Drinks (carta) ---------- */
.drinks{background:var(--bg-2);border-block:1px solid var(--line-soft)}
.drinks__row{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.drink{
  display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border-radius:100px;
  border:1px solid var(--line);color:var(--ink-2);font-family:var(--serif);font-size:1.15rem;
  transition:.35s var(--ease);background:rgba(255,255,255,.015);
}
.drink::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)}
.drink:hover{border-color:var(--gold);color:var(--gold-2);transform:translateY(-3px)}

/* ---------- Stats ---------- */
.stats{background:
  linear-gradient(rgba(18,12,8,.86),rgba(18,12,8,.92)),
  var(--stats-img,none);background-size:cover;background-position:center;background-attachment:fixed}
.stats__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center}
.stat__n{font-family:var(--serif);font-size:clamp(2.8rem,6vw,4.4rem);color:var(--gold-2);line-height:1;font-weight:700}
.stat__label{margin-top:.5em;color:var(--ink-2);font-size:1rem;letter-spacing:.02em}
.stat{position:relative;padding:10px}
.stat:not(:last-child)::after{content:"";position:absolute;right:0;top:20%;height:60%;width:1px;background:var(--line)}

/* ---------- Steps / proceso ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:st}
.step{position:relative;padding:30px 24px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line-soft)}
.step::before{counter-increment:st;content:"0" counter(st);font-family:var(--serif);font-size:2.4rem;color:var(--gold);opacity:.5;line-height:1}
.step h3{margin-top:.35em;font-size:1.2rem}
.step p{margin-top:.6em;color:var(--mute);font-size:.94rem;line-height:1.6}

/* ---------- Gallery (masonry por columnas) ---------- */
.gal{columns:4;column-gap:14px}
.gal--3{columns:3}
.gal__item{position:relative;overflow:hidden;border-radius:var(--r);cursor:pointer;background:var(--card);break-inside:avoid;margin-bottom:14px;display:block}
.gal__item img{width:100%;height:auto;display:block;transition:transform 1.1s var(--ease)}
.gal__item::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,12,8,.5),transparent 60%);opacity:0;transition:.4s}
.gal__item:hover img{transform:scale(1.06)}
.gal__item:hover::after{opacity:1}
.gal__item .gal__zoom{position:absolute;right:14px;bottom:14px;width:40px;height:40px;border-radius:50%;background:var(--gold);color:#1a120c;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.7);transition:.4s var(--ease)}
.gal__item:hover .gal__zoom{opacity:1;transform:scale(1)}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:200;background:rgba(12,8,5,.94);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.4s}
.lb.is-open{opacity:1;visibility:visible}
.lb img{max-width:92vw;max-height:86vh;border-radius:12px;box-shadow:var(--shadow)}
.lb__close,.lb__nav{position:absolute;background:rgba(255,255,255,.08);border:1px solid var(--line);width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.3s}
.lb__close:hover,.lb__nav:hover{background:var(--gold);color:#1a120c}
.lb__close{top:24px;right:24px}
.lb__close .ico{width:24px;height:24px}
.lb__nav .ico{width:24px;height:24px}
.lb__nav--prev{left:24px;transform:scaleX(-1)}
.lb__nav--next{right:24px}

/* ---------- Testimonios ---------- */
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tst{padding:32px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line-soft);position:relative}
.tst__q{width:40px;height:40px;color:var(--gold);opacity:.6}
.tst__text{margin-top:.6em;color:var(--ink-2);font-size:1.04rem;line-height:1.7;font-style:italic;font-family:var(--serif)}
.tst__who{margin-top:1.4em;display:flex;align-items:center;gap:12px}
.tst__av{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-deep));display:flex;align-items:center;justify-content:center;color:#1a120c;font-weight:800;font-family:var(--serif);font-size:1.2rem}
.tst__name{font-weight:700}
.tst__role{color:var(--mute);font-size:.86rem}
.tst__stars{color:var(--gold);letter-spacing:2px;margin-top:.2em;font-size:.8rem}

/* ---------- CTA band ---------- */
.cta-band{position:relative;background:linear-gradient(120deg,var(--gold-deep),var(--gold));color:#211405;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Ccircle cx='2' cy='2' r='1.2' fill='%23211405' opacity='.18'/%3E%3C/svg%3E")}
.cta-band__inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:clamp(48px,7vw,80px) 24px;flex-wrap:wrap}
.cta-band .eyebrow{color:#4a2f10}
.cta-band .eyebrow::before{background:#4a2f10}
.cta-band__title{font-size:clamp(1.8rem,4vw,3rem);margin-top:.3em;max-width:16ch}
.cta-band__text{margin-top:.8em;max-width:44ch;color:#3a2610;font-size:1.05rem}
.cta-band__actions{display:flex;gap:14px;flex-wrap:wrap}
.cta-band .btn--gold{background:#211405;color:var(--gold-2);box-shadow:none}
.cta-band .btn--gold:hover{background:#000}
.cta-band .btn--ghost{border-color:rgba(33,20,5,.4);color:#211405}
.cta-band .btn--ghost:hover{background:rgba(33,20,5,.1);border-color:#211405;color:#211405}

/* ---------- Footer ---------- */
.foot{background:var(--espresso);border-top:1px solid var(--line-soft);padding-top:clamp(56px,7vw,88px)}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:40px}
.foot__logo{width:150px;margin-bottom:18px}
.foot__tag{color:var(--mute);font-size:.96rem;line-height:1.7;max-width:34ch}
.foot__social{display:flex;gap:12px;margin-top:20px}
.foot__social a{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-2);transition:.3s}
.foot__social a:hover{background:var(--gold);color:#1a120c;border-color:var(--gold);transform:translateY(-3px)}
.foot__social .ico{width:20px;height:20px}
.foot__h{font-family:var(--sans);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.foot__list li{margin-bottom:11px}
.foot__list a,.foot__contact span{color:var(--mute);font-size:.95rem;transition:.25s}
.foot__list a:hover{color:var(--gold-2)}
.foot__contact li{display:flex;gap:12px;align-items:flex-start}
.foot__contact .ico{width:18px;height:18px;color:var(--gold);flex:none;margin-top:3px}
.foot__bottom{margin-top:clamp(40px,6vw,64px);border-top:1px solid var(--line-soft)}
.foot__bottom-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:22px 24px;color:var(--mute-2);font-size:.86rem}
.foot__baen{color:var(--gold);font-weight:700;letter-spacing:.04em}

/* ---------- WhatsApp float ---------- */
.floats{
  position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:80;
  display:flex;flex-direction:column;gap:12px;transition:opacity .3s var(--ease),visibility .3s;
}
.float{position:relative;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.35s var(--ease)}
.float:hover{transform:scale(1.08)}
.float__ico{width:26px;height:26px}
.float--call{background:#231609;color:#f4e2c6;box-shadow:0 14px 34px -12px rgba(35,22,9,.75)}
.float--call:hover{background:var(--gold);color:#231609}
.wafloat{background:var(--wa);color:#04310f;box-shadow:0 14px 34px -10px rgba(37,211,102,.6)}
.wafloat::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--wa);opacity:.5;animation:pulse 2.4s ease-out infinite;z-index:-1}
.wafloat__ico{width:30px;height:30px}
@keyframes pulse{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.9);opacity:0}}

/* ---------- Page hero (interior) ---------- */
.phero{position:relative;padding:clamp(140px,18vw,220px) 0 clamp(56px,8vw,90px);overflow:hidden;background:var(--espresso)}
.phero::before{content:"";position:absolute;inset:0;background-image:var(--img);background-size:cover;background-position:center;opacity:.32;transform:scale(1.04)}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,12,8,.7),rgba(18,12,8,.92))}
.phero__in{position:relative;z-index:2;text-align:center;max-width:760px;margin-inline:auto}
.phero__title{font-size:clamp(2.4rem,6vw,4.2rem);margin-top:.3em}
.phero__crumbs{margin-top:1.4em;color:var(--mute);font-size:.9rem;display:flex;gap:10px;justify-content:center;align-items:center}
.phero__crumbs a:hover{color:var(--gold)}
.phero__crumbs span{color:var(--gold)}
.phero__lead{margin-top:1.2em;color:var(--ink-2);font-size:1.1rem;line-height:1.7}

/* ---------- Servicios página (detalle alterno) ---------- */
.svc-detail{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,64px);align-items:center;padding:clamp(40px,6vw,72px) 0;border-bottom:1px solid var(--line-soft)}
.svc-detail:nth-child(even) .svc-detail__media{order:2}
.svc-detail__media{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow)}
.svc-detail__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.svc-detail:hover .svc-detail__media img{transform:scale(1.05)}
.svc-detail__ico{width:54px;height:54px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(203,160,113,.14);border:1px solid rgba(203,160,113,.32);color:var(--gold-2);margin-bottom:18px}
.svc-detail__ico .ico{width:27px;height:27px}
.svc-detail__num{font-family:var(--serif);color:var(--gold);opacity:.5;font-size:1rem;letter-spacing:.2em}
.svc-detail__title{font-size:clamp(1.6rem,3.4vw,2.3rem);margin-top:.3em}
.svc-detail__excerpt{margin-top:.8em;color:var(--gold-2);font-size:1.1rem;font-family:var(--serif);font-style:italic}
.svc-detail__body{margin-top:1em;color:var(--mute);line-height:1.8}
.svc-detail__cta{margin-top:1.6em}

/* ---------- Servicio individual ---------- */
.phero__ico{width:66px;height:66px;margin:0 auto 4px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(203,160,113,.14);border:1px solid rgba(203,160,113,.34);color:var(--gold-2)}
.phero__ico .ico{width:32px;height:32px}
.svc-panel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,72px);align-items:start}
.svc-includes{grid-template-columns:1fr;margin-top:1.4em}
.svc-includes li{font-size:1.02rem;padding:6px 0}
.chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4em}
.svc-panel__note{margin-top:1.8em;color:var(--mute);line-height:1.7;max-width:42ch}
.svc-panel__note+.btn{margin-top:1.4em}
@media(max-width:900px){.svc-panel{grid-template-columns:1fr;gap:44px}}

/* ---------- Contacto ---------- */
.ct-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,5vw,64px);align-items:start}
.ct-info__item{display:flex;gap:16px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line-soft)}
.ct-info__item:first-child{padding-top:0}
.ct-ico{width:48px;height:48px;flex:none;border-radius:12px;background:rgba(203,160,113,.14);border:1px solid rgba(203,160,113,.3);display:flex;align-items:center;justify-content:center;color:var(--gold-2)}
.ct-ico .ico{width:22px;height:22px}
.ct-info__h{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute-2);font-weight:700}
.ct-info__v{margin-top:4px;color:var(--ink);font-size:1.1rem}
.ct-info__v a:hover{color:var(--gold)}
.ct-form{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:clamp(26px,4vw,42px)}
.field{margin-bottom:22px}
.field label{display:block;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:700;margin-bottom:8px}
.field input,.field textarea,.field select{
  width:100%;background:transparent;border:0;border-bottom:1.5px solid var(--line);
  color:var(--ink);padding:12px 2px;font:inherit;font-size:1rem;transition:.3s;border-radius:0;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold)}
.field textarea{resize:vertical;min-height:110px}
.field select option{background:var(--bg-2)}
.field--row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form-note{color:var(--mute-2);font-size:.84rem;margin-top:6px}
.map{margin-top:28px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-soft);aspect-ratio:16/7}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05)}

/* ---------- Blog ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pcard{display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:var(--card);border:1px solid var(--line-soft);transition:transform .5s var(--ease),border-color .5s}
.pcard:hover{transform:translateY(-6px);border-color:var(--gold)}
.pcard__media{position:relative;aspect-ratio:16/10;overflow:hidden}
.pcard__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.pcard:hover .pcard__media img{transform:scale(1.06)}
.pcard__cat{position:absolute;left:14px;top:14px;background:var(--gold);color:#1a120c;font-size:.72rem;font-weight:700;letter-spacing:.06em;padding:6px 12px;border-radius:100px}
.pcard__body{padding:24px;display:flex;flex-direction:column;flex:1}
.pcard__meta{display:flex;gap:14px;color:var(--mute-2);font-size:.82rem;margin-bottom:10px}
.pcard__title{font-size:1.32rem;line-height:1.2}
.pcard__title a:hover{color:var(--gold-2)}
.pcard__excerpt{margin-top:.7em;color:var(--mute);font-size:.94rem;line-height:1.6;flex:1}
.pcard__more{margin-top:1.2em;display:inline-flex;align-items:center;gap:.5em;color:var(--gold);font-weight:700;font-size:.9rem}
.pcard__more .ico{width:16px;height:16px;transition:transform .35s var(--ease)}
.pcard:hover .pcard__more .ico{transform:translateX(4px)}

/* Post individual */
.post{max-width:760px;margin-inline:auto}
.post__body{color:var(--ink-2);font-size:1.12rem;line-height:1.85}
.post__body h2{font-size:clamp(1.5rem,3vw,2rem);margin:1.6em 0 .5em;color:var(--ink)}
.post__body p{margin:1.1em 0}
.post__body ul{margin:1.1em 0;padding-left:0;display:grid;gap:12px}
.post__body ul li{position:relative;padding-left:32px;color:var(--mute)}
.post__body ul li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.post__body strong{color:var(--ink)}
.post__share{margin-top:40px;padding-top:28px;border-top:1px solid var(--line-soft);display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.post__share span{color:var(--mute);font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}

/* ---------- Responsive ---------- */
@media(max-width:1220px){
  .nav__social{display:none}
}
@media(max-width:1120px){
  .nav__inner{gap:14px}
  .nav__call-txt{display:none}
  .nav__call{padding:5px;border-color:transparent}
  .nav__link{padding:10px 12px}
}
@media(max-width:1024px){
  .svc-grid,.tst-grid,.blog-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .foot__grid{grid-template-columns:1fr 1fr}
  .gal,.gal--3{columns:3}
}
@media(max-width:900px){
  .nav__links,.nav__cta,.nav__social,.nav__call{display:none}
  .nav__burger{display:flex}
  .about__grid,.ct-grid,.svc-detail{grid-template-columns:1fr}
  .about__img--sm{right:0}
  .svc-detail:nth-child(even) .svc-detail__media{order:0}
  .svc-detail__media{aspect-ratio:16/10}
  .stats{background-attachment:scroll}
  .hero__meta{gap:18px}
}
@media(max-width:640px){
  body{font-size:16px}
  .wrap{padding-inline:20px}
  .hero__inner{padding:110px 20px 120px}
  .hero__actions{flex-direction:column;align-items:stretch}
  .hero__actions .btn{width:100%}
  .hero__scroll{display:none}
  .hero__dots{left:20px;right:20px}
  .svc-grid,.tst-grid,.blog-grid,.stats__grid,.about__list,.field--row{grid-template-columns:1fr}
  .stat:not(:last-child)::after{display:none}
  .stats__grid{gap:36px}
  .gal,.gal--3{columns:2}
  .foot__grid{grid-template-columns:1fr}
  .cta-band__inner{flex-direction:column;align-items:flex-start}
  .about__img--sm{display:none}
}

/* =========================================================================
   HOME — TEMA CLARO / CREMA (solo body.home-cream). No afecta interiores.
   ========================================================================= */
body.home-cream main{
  --bg:#f3e5cf; --bg-2:#ebdabf; --bg-3:#e0ccae; --espresso:#eeddc6;
  --card:#fdf5ea; --card-2:#fff8ef;
  --ink:#231507; --ink-2:#382614; --mute:#5c4632; --mute-2:#836c53;
  --line:rgba(40,24,10,.17); --line-soft:rgba(40,24,10,.09);
  --teal:#1f6f68; --teal-ink:#0f5a53; --teal-soft:rgba(31,111,104,.4);
  color:var(--ink);
}
/* Títulos e items que heredaban blanco del tema oscuro → oscuros sobre crema */
.home-cream main .sec-title,
.home-cream main .about__title,
.home-cream main .pcard__title a,
.home-cream main .step__t,
.home-cream main h2,.home-cream main h3{color:var(--ink)}
body.home-cream{background:#f3e5cf;--teal:#1f6f68;--teal-ink:#0f5a53;--teal-soft:rgba(31,111,104,.4)}

/* Acentos: TEAL/petróleo (eco de la máquina y el delantal de la ilustración) */
.home-cream main .eyebrow{color:var(--teal-ink)}
.home-cream main .eyebrow::before,
.home-cream main .eyebrow--center::after{background:var(--teal-ink)}
.home-cream main .about__sign{color:#8a4d18}
.home-cream main .pcard__more{color:var(--teal-ink)}
.home-cream main .pcard__title a:hover{color:var(--teal-ink)}
.home-cream main .pcard__meta{color:#6b543c}
/* Discos de íconos en teal (con ícono claro) */
.home-cream main .phero__ico,
.home-cream main .ct-ico,
.home-cream main .chero__feat .fic,
.home-cream main .icard__disc{background:var(--teal);border-color:var(--teal);color:#fff6ea}
/* Servicios: anillo/pulso/enlace en teal */
.home-cream main .icard__ring::before{border-color:var(--teal-soft)}
.home-cream main .icard:hover .icard__ring::before{border-color:var(--teal)}
.home-cream main .icard__pulse{border-color:var(--teal-soft)}
.home-cream main .icard__more{color:var(--teal-ink)}
.home-cream main .icard::before{background:radial-gradient(circle,rgba(31,111,104,.14),transparent 70%)}
.home-cream main .icard:hover{border-color:var(--teal-soft)}

/* Nav claro */
.home-cream .nav__link{color:#382614;opacity:.92}
.home-cream .nav__link:hover{color:var(--teal-ink)}
.home-cream .nav__link.is-active{color:var(--teal-ink)}
.home-cream .nav__link::after{background:var(--teal-ink)}
.home-cream .nav__logo{filter:brightness(0)}
.home-cream .nav__burger{border-color:rgba(40,24,10,.22);color:#231507}
.home-cream .nav__social a{color:#6b543c}
.home-cream .nav__social a:hover{color:var(--teal-ink);background:rgba(31,111,104,.12)}
.home-cream .nav__call{border-color:rgba(40,24,10,.18);color:#382614}
.home-cream .nav__call:hover{border-color:var(--teal-ink);color:#160d04}
.home-cream .nav__call-ico{background:rgba(31,111,104,.14);color:var(--teal-ink)}
.home-cream .nav__call-txt small{color:#87715a}
.home-cream .nav.is-stuck{background:rgba(243,229,207,.9);border-bottom:1px solid rgba(40,24,10,.09);box-shadow:0 10px 40px -22px rgba(90,55,20,.45)}
.home-cream .nav.is-stuck .nav__logo{filter:brightness(0)}

/* Preloader claro */
.home-cream .preloader{background:#f3e5cf}
.home-cream .preloader__cup{color:#8a4d18}
.home-cream .preloader__steam{background:linear-gradient(to top,transparent,#8a4d18)}

/* Tiles de servicio oscuros sobre crema → texto claro.
   OJO: `.home-cream main h2/h3` pinta los títulos de oscuro por color DIRECTO
   (no herencia), así que hay que ganarle con una regla de 2 clases. */
.home-cream .svc{color:#f7f0e7}
.home-cream .svc .svc__title,
.home-cream .svc__title{color:#fff6ea;text-shadow:0 1px 12px rgba(18,12,8,.55)}
.home-cream .svc__excerpt{color:#e7d7c3}

/* Stats: BANDA OSCURA (contraste fuerte que rompe la crema) */
.home-cream .stats{background:#1b1209!important;background-image:none!important;background-attachment:scroll}
.home-cream .stat__n{color:#e6c89a}
.home-cream .stat__label{color:#e7d7c3}
.home-cream .stat:not(:last-child)::after{background:rgba(233,214,190,.14)}

/* Chips carta */
.home-cream .drink:hover{color:var(--teal-ink);border-color:var(--teal-ink)}

/* ---- Interiores en tema claro (hero interior + detalle de servicio + contacto) ---- */
.home-cream .phero{background:linear-gradient(180deg,#f3e5cf,#e9d9be)}
.home-cream .phero::before{opacity:.15}
.home-cream .phero::after{background:linear-gradient(180deg,rgba(243,229,207,.5),rgba(240,224,201,.92))}
.home-cream .phero__ico{background:var(--teal);border-color:var(--teal);color:#fff6ea}
.home-cream .svc-detail__excerpt{color:#8a4d18}
.home-cream .svc-detail__num{color:var(--teal-ink)}
.home-cream .ct-ico{background:var(--teal);border-color:var(--teal);color:#fff6ea}
.home-cream .map iframe{filter:none}

/* Botón oscuro (CTA principal en tema claro, como la referencia) */
.btn--dark{background:#241812;color:#f4e8d8;box-shadow:0 14px 30px -14px rgba(36,24,18,.55)}
.btn--dark:hover{background:#120b06;transform:translateY(-3px)}
.btn--dark .btn__ico{color:var(--gold-2)}

/* ---------- HERO crema: producto centrado ---------- */
.chero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;
  perspective:1200px;perspective-origin:50% 42%;
  background:radial-gradient(120% 90% at 50% 10%,#fbf1e4 0%,#f2e4d2 60%,#ecdcc6 100%)}
.chero__word{position:absolute;top:50%;left:50%;z-index:1;
  transform:translate(-50%,-58%) translate(calc(var(--px,0)*-30px),calc(var(--py,0)*-18px));
  transition:transform .45s cubic-bezier(.22,.61,.36,1);
  font-family:var(--serif);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(7rem,30vw,26rem);line-height:.8;color:#e6d2b7;white-space:nowrap;
  pointer-events:none;user-select:none;
  -webkit-text-stroke:1px rgba(120,78,38,.10)}
.chero .beans{z-index:2;transition:transform .5s cubic-bezier(.22,.61,.36,1);
  transform:translate(calc(var(--px,0)*20px),calc(var(--py,0)*14px))}
.chero__grid{position:relative;z-index:3;display:grid;grid-template-columns:.82fr 1.34fr .72fr;
  gap:clamp(16px,2.4vw,40px);align-items:center;width:100%}
.chero__grid>*{min-width:0}
.chero__left{max-width:318px}
.chero__eyebrow{opacity:0;animation:up .8s var(--ease) .3s forwards}
.chero__title{font-family:var(--serif);font-weight:700;letter-spacing:-.025em;font-optical-sizing:auto;
  line-height:.98;color:#231609;font-size:clamp(2.5rem,4.2vw,3.7rem);margin-top:.3em}
.chero__title em{font-style:normal;color:#a25e22}
.chero__title .ln{display:block;overflow:hidden}
.chero__title .ln span{display:block;transform:translateY(105%);animation:reveal-line 1s var(--ease) forwards}
.chero__title .ln:nth-child(1) span{animation-delay:.4s}
.chero__title .ln:nth-child(2) span{animation-delay:.52s}
.chero__title .ln:nth-child(3) span{animation-delay:.64s}
.chero__sub{margin-top:1.2em;color:var(--mute);font-size:1.06rem;max-width:38ch;opacity:0;animation:up .8s var(--ease) .9s forwards}
.chero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:1.8em;opacity:0;animation:up .8s var(--ease) 1.05s forwards}

.chero__center{position:relative;display:flex;align-items:center;justify-content:flex-end;min-height:min(56vh,480px);
  transform-style:preserve-3d;transition:transform .4s ease-out;
  transform:rotateX(calc(var(--py,0)*-6deg)) rotateY(calc(var(--px,0)*9deg))}
.chero__illus{position:relative;z-index:2;margin:0;flex:none;max-width:none;
  width:min(128%,524px,43vw);transform-style:preserve-3d;
  animation:floaty 5.5s ease-in-out infinite}
.chero__illus::before{content:"";position:absolute;z-index:-1;left:50%;top:49%;
  width:116%;aspect-ratio:1;transform:translate(-50%,-50%) translateZ(-45px);border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 50% 45%,#fff8ec 0%,rgba(243,229,207,.5) 44%,rgba(243,229,207,0) 70%)}
.chero__illus img{position:relative;width:100%;height:auto;display:block;max-width:none;
  filter:drop-shadow(0 40px 50px rgba(90,45,10,.28))}
@keyframes floaty{0%,100%{transform:translateY(0) translateZ(50px)}50%{transform:translateY(-16px) translateZ(50px)}}
.chero__badge{position:absolute;z-index:3;background:#241812;color:var(--gold-2);
  border-radius:100px;padding:10px 18px;font-weight:700;font-size:.82rem;display:flex;gap:8px;align-items:center;
  box-shadow:0 16px 34px -16px rgba(36,24,18,.6)}
.chero__badge .ico{width:18px;height:18px}
.chero__badge--tl{left:1%;top:7%;animation:floaty 6s ease-in-out infinite}
.chero__badge--br{right:1%;bottom:13%;animation:floaty 6.6s ease-in-out .4s infinite}

.chero__right{display:flex;flex-direction:column;gap:4px;opacity:0;animation:up .8s var(--ease) 1.2s forwards}
.chero__feat{display:flex;gap:14px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line)}
.chero__feat:last-child{border-bottom:0}
.chero__feat .fic{flex:none;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:#241812;color:var(--gold-2)}
.chero__feat .fic .ico{width:22px;height:22px}
.chero__feat h3{font-family:var(--serif);font-size:1.12rem;color:#231609}
.chero__feat p{margin-top:2px;color:var(--mute);font-size:.9rem;line-height:1.45}
.chero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;
  color:var(--mute-2);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px}
.chero__mouse{width:22px;height:34px;border:1.5px solid var(--mute-2);border-radius:12px;position:relative}
.chero__mouse::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:6px;background:#a25e22;border-radius:3px;transform:translateX(-50%);animation:scroll 1.6s ease-in-out infinite}

/* ---------- Sección destacada “Especial” ---------- */
.feat-sec{position:relative;overflow:hidden;background:linear-gradient(180deg,#efe1cf,#f5e9db)}
.feat{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,6vw,80px);align-items:center}
.feat__media{position:relative;display:flex;align-items:center;justify-content:center;min-height:min(52vh,440px)}
.feat__word{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);
  font-family:var(--serif);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(5rem,16vw,13rem);line-height:.8;color:rgba(42,27,16,.06);white-space:nowrap;pointer-events:none}
.feat__circle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;
  width:min(46vh,400px,88vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 42% 34%,#fffaf2,#e9d7bf)}
.feat__img{position:relative;z-index:2;margin:0;width:min(40vh,340px,76vw);aspect-ratio:1;border-radius:50%;overflow:hidden;
  border:10px solid #fff8ef;box-shadow:0 44px 90px -34px rgba(90,45,10,.5);animation:floaty 6s ease-in-out infinite}
.feat__img img{width:100%;height:100%;object-fit:cover}
.feat__title{font-family:var(--serif);font-weight:700;letter-spacing:-.025em;font-optical-sizing:auto;line-height:1.02;
  color:#231609;font-size:clamp(1.9rem,3.8vw,3rem);margin-top:.35em}
.feat__title em{font-style:normal;color:#a25e22}
.feat__text{margin-top:1.1em;color:var(--mute);font-size:1.06rem;line-height:1.7;max-width:46ch}
.feat__list{margin-top:1.4em;display:grid;gap:12px}
.feat__list li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2)}
.feat__list .ico{width:20px;height:20px;color:#a25e22;flex:none;margin-top:3px}
.feat__cta{margin-top:1.8em}

/* ---------- Servicios: tarjetas icono + círculo animado ---------- */
.icard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.icard{position:relative;text-align:center;padding:40px 26px 34px;border-radius:var(--r-lg);
  background:var(--card);border:1px solid var(--line-soft);overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s}
.icard::before{content:"";position:absolute;left:50%;top:30px;transform:translateX(-50%);
  width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(162,94,34,.12),transparent 70%);opacity:0;transition:opacity .5s}
.icard:hover{transform:translateY(-8px);border-color:rgba(162,94,34,.4);box-shadow:0 30px 60px -30px rgba(120,70,25,.4)}
.icard:hover::before{opacity:1}
.icard__ring{position:relative;width:114px;height:114px;margin:0 auto 22px;display:grid;place-items:center}
.icard__ring::before{content:"";position:absolute;inset:0;border-radius:50%;
  border:2px dashed rgba(162,94,34,.4);animation:spin 16s linear infinite;transition:border-color .5s}
.icard:hover .icard__ring::before{border-color:rgba(162,94,34,.85)}
.icard__pulse{position:absolute;inset:12px;border-radius:50%;border:2px solid rgba(162,94,34,.5);opacity:0}
.icard:hover .icard__pulse{opacity:1;animation:pulseRing 2.4s ease-out infinite}
.icard__disc{position:relative;z-index:2;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;
  background:#241812;color:var(--gold-2);transition:transform .55s var(--ease)}
.icard__disc .ico{width:30px;height:30px}
.icard:hover .icard__disc{transform:rotate(-8deg) scale(1.08)}
.icard__title{font-size:1.26rem;color:#231609}
.icard__excerpt{margin-top:.6em;color:var(--mute);font-size:.94rem;line-height:1.6}
.icard__more{margin-top:1.1em;display:inline-flex;gap:.5em;align-items:center;color:#a25e22;font-weight:700;font-size:.9rem}
.icard__more .ico{width:16px;height:16px;transition:transform .35s var(--ease)}
.icard:hover .icard__more .ico{transform:translateX(4px)}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulseRing{0%{transform:scale(.8);opacity:.6}100%{transform:scale(1.4);opacity:0}}

/* Granos de café dibujados en SVG (forma real de grano) para el hero crema */
.home-cream .bean{width:20px;height:27px;border-radius:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 44'%3E%3Cdefs%3E%3CradialGradient id='g' cx='38%25' cy='30%25' r='75%25'%3E%3Cstop offset='0' stop-color='%237c5330'/%3E%3Cstop offset='.6' stop-color='%234f3016'/%3E%3Cstop offset='1' stop-color='%23331e0d'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cellipse cx='16' cy='22' rx='12.5' ry='20.5' fill='url(%23g)'/%3E%3Cpath d='M16 4 C 11 14 21 28 16 40' fill='none' stroke='%23271507' stroke-width='2.6' stroke-linecap='round' opacity='.9'/%3E%3C/svg%3E") center/contain no-repeat;
  filter:drop-shadow(0 5px 7px rgba(80,45,15,.28))}
.home-cream .bean::after{display:none}

@media(max-width:960px){
  .icard-grid{grid-template-columns:repeat(2,1fr)}
  .chero__grid{grid-template-columns:1fr;gap:24px;text-align:center;padding-top:92px;padding-bottom:74px}
  .chero__left{max-width:none;order:1}
  .chero__center{order:2}
  .chero__right{order:3;max-width:420px;margin-inline:auto;text-align:left}
  .chero__left .eyebrow,.chero__actions{justify-content:center}
  .chero__sub{margin-inline:auto}
  .chero__badge{display:none}
  .chero__illus{width:min(92vw,540px)}
  .chero__word{font-size:clamp(6rem,40vw,16rem)}
  .feat{grid-template-columns:1fr;gap:36px}
  .feat__media{order:2}
  .feat__copy{order:1;text-align:center}
  .feat__text{margin-inline:auto}
  .feat__list{max-width:360px;margin-inline:auto;text-align:left}
  .feat__cta .btn{margin-inline:auto}
}
@media(max-width:560px){
  .chero__actions{flex-direction:column}
  .chero__actions .btn{width:100%}
  .chero__illus{width:min(88vw,420px)}
}

/* ---------- Reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero__slide{opacity:1}
  .reveal,.reveal-stagger>*{opacity:1;transform:none}
  .hero__title .ln span{transform:none}
}
