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

/* ---------- 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:'Playfair Display','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}
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:8px}
.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:flex;flex-direction:column;
  justify-content:center;align-items:center;gap:8px;padding:32px;
  opacity:0;visibility:hidden;transform:translateY(-12px);transition:all .4s var(--ease);
}
.mmenu.is-open{opacity:1;visibility:visible;transform:none}
.mmenu__close{position:absolute;top:22px;right:22px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px}
.mmenu__links{display:flex;flex-direction:column;text-align:center;gap:4px;margin-bottom:24px}
.mmenu__link{font-family:var(--serif);font-size:2rem;padding:8px;color:var(--ink)}
.mmenu__link.is-active{color:var(--gold)}
.mmenu .btn{max-width:340px}
.mmenu__meta{margin-top:28px;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)}

/* ---------- 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 ---------- */
.wafloat{position:fixed;right:22px;bottom:22px;z-index:80;width:58px;height:58px;border-radius:50%;background:var(--wa);color:#04310f;display:flex;align-items:center;justify-content:center;box-shadow:0 14px 34px -10px rgba(37,211,102,.6);transition:.35s var(--ease)}
.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:hover{transform:scale(1.08)}
.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: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{display:none}
  .nav__burger{display:flex}
  .about__grid,.ct-grid,.svc-detail{grid-template-columns:1fr}
  .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}
}

/* ---------- 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}
}
