:root{
  /* paleta tomada del letrero, el recetario y sus posts */
  --cream:#FDF5EA;
  --cream-dp:#F6EADA;
  --paper:#FFFFFF;
  --peach:#E2AB7C;
  --peach-lt:#F8B389;
  --peach-dp:#C98B58;
  --sage:#81B783;
  --teal:#016867;
  --teal-dk:#014F4E;
  --teal-lt:#2E8F8B;
  --navy:#2E3E92;
  --ink:#2A3B36;
  --ink-soft:#5F6F68;
  --line:rgba(42,59,54,.13);

  --display:'Fraunces',Georgia,serif;
  --body:'Karla',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --script:'Parisienne',cursive;
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
a{color:inherit}
img{max-width:100%;display:block}

.eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--peach)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;letter-spacing:-.02em;font-variation-settings:'SOFT' 40}
h2{font-size:clamp(30px,4.2vw,46px)}
h3{font-size:21px}
.lead{font-size:clamp(17px,1.6vw,19px);color:var(--ink-soft);max-width:56ch}

/* nav */
header{position:sticky;top:0;z-index:50;background:rgba(253,245,234,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.brand{text-decoration:none;line-height:1.15;display:flex;align-items:center;gap:11px}
.brand img{height:36px;width:auto;display:block}
.brand .n{font-family:var(--display);font-size:21px;color:var(--peach-dp);letter-spacing:-.015em}
.brand .n b{color:var(--teal);font-weight:400}
.brand .s{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.nav-links{display:flex;gap:26px;list-style:none}
.nav-links a{text-decoration:none;font-size:14.5px;color:var(--ink-soft);padding-bottom:3px;border-bottom:1px solid transparent;transition:.2s}
.nav-links a:hover{color:var(--teal);border-color:var(--peach)}
.nav .btn{padding:10px 18px;font-size:14px}
@media(max-width:980px){.nav-links{display:none}}

/* botones */
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--teal);color:#fff;text-decoration:none;padding:15px 26px;border-radius:3px;font-weight:500;font-size:15.5px;border:1px solid var(--teal);transition:.22s}
.btn:hover{background:var(--teal-dk);border-color:var(--teal-dk)}
.btn--peach{background:var(--peach);border-color:var(--peach);color:#40291A}
.btn--peach:hover{background:var(--peach-dp);border-color:var(--peach-dp);color:#fff}
.btn--ghost{background:transparent;color:var(--teal)}
.btn--ghost:hover{background:var(--teal);color:#fff}

/* hero */
.hero{padding:70px 0 90px;position:relative}
.hero::before{content:"";position:absolute;top:0;left:0;right:0;height:7px;background:linear-gradient(90deg,var(--peach) 0%,var(--peach) 58%,var(--sage) 58%,var(--sage) 78%,var(--teal) 78%)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(40px,5.4vw,66px);margin:22px 0 20px}
.hero h1 em{font-style:italic;color:var(--peach-dp)}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.creds{margin-top:36px;padding-top:22px;border-top:1px solid var(--line);display:flex;gap:26px;flex-wrap:wrap}
.cred{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}

/* retrato recortado + tarjeta flotante */
.portrait-stack{position:relative;display:flex;justify-content:center;padding-top:8px}
.blob{
  position:absolute;width:400px;height:400px;top:2%;left:50%;transform:translateX(-48%);
  border-radius:44% 56% 61% 39%/50% 42% 58% 50%;
  background:linear-gradient(150deg,var(--sage) 0%,var(--teal-lt) 100%);
  opacity:.30;z-index:0;filter:blur(1px);
}
.cutout{
  position:relative;z-index:2;display:block;max-height:640px;width:auto;margin:0 auto;
  filter:drop-shadow(0 30px 26px rgba(42,59,54,.35));
}
.readout{
  position:absolute;z-index:3;left:-18px;bottom:18px;width:min(310px,80%);
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 22px 54px -26px rgba(42,59,54,.55);padding:22px 22px 20px;
}
.readout-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:13px;border-bottom:1px solid var(--line);margin-bottom:17px}
.readout-head .t{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal)}
.readout-head .d{font-family:var(--mono);font-size:10px;color:var(--ink-soft)}
.metric{margin-bottom:14px}
.metric-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;gap:10px}
.metric-name{font-size:13.5px;color:var(--ink-soft)}
.metric-val{font-family:var(--mono);font-size:13px;font-weight:500;white-space:nowrap}
.metric-val b{color:var(--teal);font-weight:500}
.metric-val s{color:#B7C0BB;text-decoration:line-through;margin-right:6px;font-size:12px}
.bar{height:6px;background:var(--cream-dp);position:relative;overflow:hidden;border-radius:4px}
.bar i{position:absolute;inset:0 auto 0 0;background:var(--teal);width:0;transition:width 1.5s cubic-bezier(.22,1,.36,1);border-radius:4px}
.bar i.is-peach{background:var(--peach)}
.readout-foot{margin-top:16px;padding-top:13px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-soft);line-height:1.5}
.readout-foot span{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--peach-dp);display:block;margin-bottom:4px}
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .cutout{max-height:460px}
  .blob{width:300px;height:300px}
  .readout{position:relative;left:0;bottom:0;width:100%;max-width:380px;margin:-30px auto 0}
}

section{padding:88px 0}
.sec-head{max-width:62ch;margin-bottom:52px}
.sec-head h2{margin:18px 0 16px}

/* enfoque */
.thesis{background:var(--teal);color:var(--cream)}
.thesis .eyebrow{color:#9ED2CE}
.thesis .eyebrow::before{background:var(--peach)}
.thesis-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.thesis h2{font-size:clamp(32px,4.4vw,50px);color:#fff}
.thesis h2 em{font-style:italic;color:var(--peach-lt)}
.thesis p{color:#C3DBD8;margin-top:20px}
.thesis-img{overflow:hidden;border-radius:6px;box-shadow:0 24px 54px -30px rgba(0,0,0,.6);aspect-ratio:4/5}
.thesis-img img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
@media(max-width:980px){.thesis-grid{grid-template-columns:1fr;gap:36px}}

/* recetario */
.rx{background:var(--cream-dp);padding:92px 0}
.rx-card{max-width:600px;margin:0 auto;background:var(--paper);box-shadow:0 26px 60px -32px rgba(42,59,54,.55);overflow:hidden}
.rx-top{height:32px;background:var(--peach-lt)}
.rx-body{padding:36px 44px 32px;text-align:center}
.rx-mark{font-family:var(--display);font-style:italic;font-size:29px;color:var(--navy);text-align:left;margin-bottom:4px}
.rx-text{font-family:var(--script);font-size:clamp(25px,3.4vw,36px);line-height:1.45;color:var(--navy)}
.rx-icons{font-size:25px;letter-spacing:10px;margin:16px 0 4px}
.rx-sign{font-family:var(--script);font-size:26px;color:var(--navy);margin-top:24px;display:inline-block;border-bottom:1.5px solid var(--navy);padding:0 22px 3px}
.rx-bot{background:var(--teal);color:#fff;text-align:center;padding:12px 20px;font-size:13px}
.rx-note{text-align:center;max-width:52ch;margin:34px auto 0;font-size:15.5px;color:var(--ink-soft)}
@media(max-width:640px){.rx-body{padding:28px 24px}}

/* servicios */
.tracks{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.track{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--peach);padding:30px 28px;display:flex;flex-direction:column;transition:.25s}
.track:nth-child(2){border-top-color:var(--sage)}
.track:nth-child(3){border-top-color:var(--teal)}
.track:hover{transform:translateY(-4px);box-shadow:0 18px 42px -28px rgba(42,59,54,.5)}
.track-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:14px}
.track h3{margin-bottom:12px}
.track p{font-size:15px;color:var(--ink-soft);margin-bottom:20px}
.track ul{list-style:none;font-size:14.5px;color:var(--ink-soft);margin-top:auto}
.track li{padding:8px 0 8px 20px;border-top:1px solid var(--line);position:relative}
.track li::before{content:"";position:absolute;left:0;top:16px;width:7px;height:1px;background:var(--peach)}
.track-cta{display:inline-flex;align-items:center;gap:7px;margin-top:20px;background:var(--peach);color:#40291A;text-decoration:none;padding:11px 18px;border-radius:3px;font-size:14.5px;font-weight:500;border:1px solid var(--peach);transition:.2s;justify-content:center}
.track-cta::before{content:"";width:15px;height:15px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.87 9.87 0 004.79 1.22c5.46 0 9.91-4.45 9.91-9.91C21.96 6.45 17.5 2 12.04 2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.87 9.87 0 004.79 1.22c5.46 0 9.91-4.45 9.91-9.91C21.96 6.45 17.5 2 12.04 2z'/%3E%3C/svg%3E") center/contain no-repeat}
.track-cta:hover{background:var(--peach-dp);border-color:var(--peach-dp);color:#fff}
@media(max-width:980px){.tracks{grid-template-columns:1fr}}

/* proceso */
.proc{background:var(--cream-dp)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(42,59,54,.22)}
.step{padding:30px 24px 32px 24px;border-right:1px solid rgba(42,59,54,.15)}
.step:first-child{padding-left:0}
.step:last-child{border-right:none;padding-right:0}
.step-n{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--peach-dp);margin-bottom:14px}
.step h3{font-size:18px;margin-bottom:9px}
.step p{font-size:14.5px;color:var(--ink-soft)}
@media(max-width:980px){
  .steps{grid-template-columns:1fr}
  .step{border-right:none;border-bottom:1px solid rgba(42,59,54,.15);padding:26px 0}
  .step:last-child{border-bottom:none}
}
.gallery{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-top:46px}
.gallery figure{overflow:hidden;border-radius:5px;background:#E9DFD2;position:relative;cursor:zoom-in}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery figure .hint{
  position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;
  background:rgba(20,33,28,.55);display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .2s;pointer-events:none;
}
.gallery figure:hover .hint{opacity:1}
.gallery figure .hint svg{width:16px;height:16px;stroke:#fff}
.g-a{aspect-ratio:5/4}
.g-b{display:grid;gap:16px}
.g-b figure{aspect-ratio:16/10}
@media(max-width:760px){.gallery{grid-template-columns:1fr}}

/* vista ampliada sin recorte, al pasar el mouse o tocar */
.lightbox{
  position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  padding:28px;background:rgba(20,28,25,.74);
  opacity:0;visibility:hidden;transition:opacity .22s ease;
  pointer-events:none;
}
.lightbox.show{opacity:1;visibility:visible}
/* solo cuando se abre con toque/clic el overlay recibe eventos, para poder cerrarlo.
   En modo hover queda inerte: si capturara el puntero, el mouse saldria de la figura,
   se dispararia mouseleave, cerraria, volveria a entrar... y parpadea sin fin. */
.lightbox.tap{pointer-events:auto}
.lightbox img{
  max-width:min(720px,92vw);max-height:88vh;width:auto;height:auto;
  object-fit:contain;border-radius:8px;background:#fff;
  box-shadow:0 34px 80px -20px rgba(0,0,0,.6);
}

/* recursos */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post{background:var(--paper);border:1px solid var(--line);overflow:hidden;transition:.25s}
.post:hover{transform:translateY(-4px);box-shadow:0 18px 42px -28px rgba(42,59,54,.5)}
.post figure{aspect-ratio:1/1;overflow:hidden;background:var(--cream-dp)}
.post figure img{width:100%;height:100%;object-fit:cover}
.post-body{padding:22px 24px 26px}
.post-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--peach-dp);margin-bottom:10px}
.post h3{font-size:19px;margin-bottom:8px}
.post p{font-size:14.5px;color:var(--ink-soft)}
@media(max-width:980px){.posts{grid-template-columns:1fr}}

/* ubicación */
.loc{background:var(--teal-dk)}
.loc .eyebrow{color:#9ED2CE}
.loc .eyebrow::before{background:var(--peach)}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.loc h2{color:#fff}
.loc-item{padding:19px 0;border-top:1px solid rgba(255,255,255,.22)}
.loc-item .k{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:#8FC4C0;margin-bottom:5px}
.loc-item .v{font-size:16.5px;color:#fff}
.loc .btn{margin-top:26px}
.sign{background:#fff;padding:26px;border-radius:6px;box-shadow:0 24px 54px -28px rgba(0,0,0,.7)}
.sign img{border-radius:3px}
@media(max-width:980px){.loc-grid{grid-template-columns:1fr;gap:38px}}

/* cierre */
.close{text-align:center;padding:104px 0}
.close h2{font-size:clamp(34px,5vw,56px);max-width:18ch;margin:20px auto 22px}
.close h2 em{font-style:italic;color:var(--peach-dp)}
.close .lead{margin:0 auto 34px}
.close .eyebrow{justify-content:center}

/* footer */
footer{background:var(--ink);color:#9FB0AA;padding:56px 0 34px;font-size:14.5px}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:44px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand{font-family:var(--display);font-size:23px;color:var(--peach);margin-bottom:10px}
.foot-brand b{color:var(--sage);font-weight:400}
.foot h4{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:16px;font-weight:400}
.foot ul{list-style:none}
.foot li{margin-bottom:9px}
.foot a{text-decoration:none;transition:.2s}
.foot a:hover{color:var(--peach)}
.foot-bot{padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#74857F}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:32px}}

.wa-wrap{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.wa{background:#25D366;color:#fff;width:58px;height:58px;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 28px -8px rgba(37,211,102,.7);transition:.22s;padding:0}
.wa:hover{transform:scale(1.07)}
.wa .x{display:none}
.wa-wrap.open .wa .ico{display:none}
.wa-wrap.open .wa .x{display:block}
.wa-panel{
  width:min(320px,calc(100vw - 44px));background:var(--paper);border-radius:12px;overflow:hidden;
  box-shadow:0 24px 60px -18px rgba(42,59,54,.55);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.96);transform-origin:bottom right;
  transition:opacity .25s ease,transform .25s cubic-bezier(.22,1,.36,1),visibility .25s;
}
.wa-wrap.open .wa-panel{opacity:1;visibility:visible;transform:none}
.wa-head{background:var(--teal);color:#fff;padding:16px 18px}
.wa-head .h{font-family:var(--display);font-size:17px;line-height:1.25}
.wa-head .p{font-size:12.5px;color:#B7D9D6;margin-top:3px}
.wa-msg{background:var(--cream-dp);padding:16px 18px}
.wa-bubble{background:#fff;border-radius:3px 12px 12px 12px;padding:12px 14px;font-size:14px;line-height:1.5;color:var(--ink);box-shadow:0 3px 10px -4px rgba(42,59,54,.3)}
.wa-opts{padding:12px 14px 16px;display:flex;flex-direction:column;gap:8px}
.wa-opts a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;text-decoration:none;
  font-size:14px;color:var(--ink);background:var(--cream);border:1px solid var(--line);
  border-radius:8px;padding:11px 14px;transition:.18s;
}
.wa-opts a::after{content:"\2192";color:var(--peach-dp);font-size:15px}
.wa-opts a:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.wa-opts a:hover::after{color:#fff}
@media(prefers-reduced-motion:reduce){.wa-panel{transition:none}}

.rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  .bar i{transition:none}
  html{scroll-behavior:auto}
}



/* ===== mapa ubicacion ===== */
.loc-visual{display:flex;flex-direction:column;gap:18px}
.sign{margin:0}
.map-wrap{border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.3);box-shadow:0 20px 44px -26px rgba(0,0,0,.7)}
.map-card{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  height:260px;padding:20px;text-align:center;text-decoration:none;color:#fff;
  background:
    radial-gradient(circle at 25% 30%, rgba(255,255,255,.14) 0%, transparent 40%),
    radial-gradient(circle at 75% 70%, rgba(255,255,255,.1) 0%, transparent 45%),
    repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 2px, transparent 2px 26px),
    var(--teal-dk);
  transition:.22s;
}
.map-card:hover{background-color:var(--teal)}
.map-pin{width:34px;height:34px;color:var(--peach-lt)}
.map-txt{font-size:16px;font-weight:500}
.map-go{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--peach-lt);border-bottom:1px solid rgba(248,179,137,.5);padding-bottom:2px}
@media(max-width:980px){.map-card{height:220px}}

/* ===== reseñas ===== */
.revs{background:var(--cream-dp)}
.rev-score{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:44px;padding:22px 26px;background:var(--paper);border:1px solid var(--line);border-radius:6px}
.rev-num{font-family:var(--display);font-size:52px;line-height:1;color:var(--teal)}
.rev-meta .stars{color:#F5A623;font-size:19px;letter-spacing:2px}
.rev-meta .cnt{font-size:14.5px;color:var(--ink-soft);margin-top:4px}
.rev-meta .cnt a{color:var(--teal);text-decoration:none;border-bottom:1px solid var(--sage)}
.rev-meta .cnt a:hover{color:var(--peach-dp);border-color:var(--peach)}
.rev-badge{margin-left:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}
.revs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rev{background:var(--paper);border:1px solid var(--line);padding:28px 26px 24px;display:flex;flex-direction:column;position:relative;transition:.25s}
.rev:hover{transform:translateY(-4px);box-shadow:0 18px 42px -28px rgba(42,59,54,.5)}
.rev .qm{font-family:var(--display);font-size:52px;line-height:.7;color:var(--peach);opacity:.5;margin-bottom:10px}
.rev p{font-size:15.5px;color:var(--ink);line-height:1.6;margin-bottom:20px}
.rev-who{margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.rev-who .n{font-size:14.5px;font-weight:600;color:var(--ink)}
.rev-who .s{color:#F5A623;font-size:13px;letter-spacing:1.5px;margin-top:3px}
@media(max-width:980px){.revs-grid{grid-template-columns:1fr}.rev-badge{margin-left:0;width:100%}}

/* ===== animaciones ===== */
.progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:70;background:linear-gradient(90deg,var(--peach),var(--sage),var(--teal));transition:width .1s linear}

@keyframes riseIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes leafFloat{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(4px,-8px) rotate(6deg)}}
@keyframes portraitIn{from{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:none}}
@keyframes cardIn{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}

/* entrada escalonada del hero */
.hero .anim{opacity:0;animation:riseIn .8s cubic-bezier(.22,1,.36,1) forwards}
.hero .a1{animation-delay:.10s}
.hero .a2{animation-delay:.22s}
.hero .a3{animation-delay:.34s}
.hero .a4{animation-delay:.46s}
.hero .a5{animation-delay:.58s}
.hero h1 .ln{display:block;opacity:0;animation:riseIn .85s cubic-bezier(.22,1,.36,1) forwards}
.hero h1 .ln:nth-child(1){animation-delay:.20s}
.hero h1 .ln:nth-child(2){animation-delay:.32s}
.hero h1 .ln:nth-child(3){animation-delay:.44s}
.portrait-stack .cutout{opacity:0;animation:portraitIn 1s cubic-bezier(.22,1,.36,1) .32s forwards}
.portrait-stack .readout{opacity:0;animation:cardIn .8s cubic-bezier(.22,1,.36,1) .74s forwards}
.blob{animation:leafFloat 9s ease-in-out infinite}

/* numeros contando */
.metric-val b{display:inline-block;min-width:3.2em;text-align:right}

/* botones */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.22);transform:translateX(-101%);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.btn:hover::after{transform:translateX(101%)}
.btn:active{transform:translateY(1px)}

/* tarjetas de servicio: acento superior que crece */
.track{position:relative;border-top-color:transparent!important}
.track::before{content:"";position:absolute;top:-3px;left:0;height:3px;width:0;background:var(--peach);transition:width .6s cubic-bezier(.22,1,.36,1)}
.track:nth-child(2)::before{background:var(--sage)}
.track:nth-child(3)::before{background:var(--teal)}
.track.in::before{width:100%}
.track:nth-child(2).in::before{transition-delay:.12s}
.track:nth-child(3).in::before{transition-delay:.24s}

/* pasos del proceso */
.step-n{transition:letter-spacing .4s ease,color .3s ease}
.step:hover .step-n{letter-spacing:.2em;color:var(--teal)}

/* galeria y posts */
.gallery figure img,.post figure img{transition:transform 1s cubic-bezier(.22,1,.36,1)}
.gallery figure:hover img,.post:hover figure img{transform:scale(1.05)}

/* recetario: entrada con leve giro */
.rx-card{opacity:0;transform:translateY(30px) rotate(-1.2deg)}
.rx-card.in{opacity:1;transform:none;transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1)}

@media(prefers-reduced-motion:reduce){
  .hero .anim,.hero h1 .ln,.portrait-stack .cutout,.portrait-stack .readout{opacity:1;animation:none}
  .blob{animation:none}
  .progress{display:none}
  .rx-card{opacity:1;transform:none}
  .track::before{width:100%}
  .gallery figure img,.post figure img{transition:none}
}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px}

/* ===== pulido ===== */
html{scroll-padding-top:88px}
img{height:auto}
.wa-wrap{pointer-events:none}
.wa-wrap>*{pointer-events:auto}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--teal);color:#fff;padding:10px 16px;border-radius:3px;text-decoration:none;font-size:14px;transition:top .15s}
.skip:focus{top:12px}
.hero{overflow-x:clip}
.blob{transform:none;translate:-48% 0}
.brand img{height:46px}
.btn{white-space:nowrap}
.nav-links a.active{color:var(--teal);border-color:var(--peach)}
.post figure{aspect-ratio:4/5}
.thesis-img img{object-position:50% 50%}
.loc-item .v a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);transition:.2s}
.loc-item .v a:hover{color:var(--peach-lt);border-color:var(--peach-lt)}
.gallery figure:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.foot-bot{color:#9FB0AA}
.menu-btn{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--teal);cursor:pointer;align-items:center;justify-content:center;padding:0;flex:none}
.menu-btn svg{width:20px;height:20px}
.menu-btn .c{display:none}
header.open .menu-btn .o{display:none}
header.open .menu-btn .c{display:block}
.nav-right{display:flex;align-items:center;gap:10px}
@media(max-width:980px){
  .menu-btn{display:inline-flex}
  .nav{height:66px;gap:12px}
  .nav-links{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:100%;background:var(--cream);border-bottom:1px solid var(--line);padding:6px 28px 14px;box-shadow:0 22px 40px -28px rgba(42,59,54,.5);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s}
  header.open .nav-links{opacity:1;visibility:visible;transform:none}
  .nav-links a{display:block;padding:13px 0;font-size:16px;border-bottom:1px solid var(--line)}
  .nav-links li:last-child a{border-bottom:none}
  .portrait-stack{flex-direction:column;align-items:center}
  .blob{top:4%}
  section{padding:64px 0}
  .hero{padding:44px 0 64px}
}
@media(max-width:560px){
  .wrap{padding:0 20px}
  .nav-links{padding:6px 20px 14px}
  .brand .s{display:none}
  .brand img{height:40px}
  .nav .btn{padding:9px 14px;font-size:13.5px}
  .hero-cta .btn{flex:1 1 100%;justify-content:center}
  .creds{gap:10px 18px}
  .close{padding:72px 0}
  .wa-wrap{right:14px;bottom:14px}
}
@media(prefers-reduced-motion:reduce){.nav-links{transition:none}}
