:root{
  --ink:#1c1a17;
  --ink-soft:#2a2521;
  --parchment:#f4efe6;
  --parchment-dim:#e8e0d2;
  --wine:#6e2439;
  --wine-light:#8a3550;
  --olive:#7c8363;
  --brass:#b08d57;
  --stone:#a79c8c;
  --stone-dark:#6b6255;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--parchment);
  color:var(--ink);
  font-family:'Jost',sans-serif;
  font-weight:300;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}

.eyebrow{
  font-family:'Jost',sans-serif;
  font-size:0.72rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  font-weight:500;
  color:var(--brass);
}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:500;line-height:1.05;}

/* ---------- NAV ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.6rem clamp(1.5rem,5vw,4rem);
  background:rgba(28,26,23,0.92);
  backdrop-filter:blur(6px);
}
.wordmark{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:1.35rem;letter-spacing:0.01em;color:var(--parchment);
  display:inline-flex;align-items:center;
}
.logo-img{height:42px;width:auto;display:block;}
.logo-img-footer{height:34px;}
.wordmark span{color:var(--brass);font-style:normal;}
nav ul{display:flex;gap:clamp(1.2rem,3vw,2.6rem);list-style:none;align-items:center;}
.nav-dropdown{position:relative;}
.nav-more-label{cursor:pointer;}
.nav-more-label::after{content:' ▾';font-size:.6em;vertical-align:middle;}
@media (min-width:761px){
  .nav-dropdown-menu{
    position:absolute;top:calc(100% + 1.2rem);left:50%;transform:translateX(-50%);
    background:var(--ink);border:1px solid rgba(176,141,87,0.25);
    min-width:170px;padding:.6rem 0;display:none;flex-direction:column;gap:0;
    box-shadow:0 12px 28px rgba(0,0,0,0.35);z-index:150;
  }
  .nav-dropdown:hover .nav-dropdown-menu,
  .nav-dropdown.open .nav-dropdown-menu{display:flex;}
  .nav-dropdown-menu li{width:100%;}
  .nav-dropdown-menu a{display:block;padding:.65rem 1.3rem;white-space:nowrap;border-bottom:none;}
}
@media (max-width:760px){
  .nav-dropdown-menu{display:contents;}
  .nav-more-label{display:none;}
}
nav a{
  font-size:0.78rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--parchment-dim);padding-bottom:4px;
  border-bottom:1px solid transparent;
  transition:border-color .3s ease, color .3s ease;
}
nav a:hover,nav a.active{color:var(--parchment);border-color:var(--brass);}
.nav-toggle{display:none;background:none;border:none;color:var(--parchment);font-size:1.6rem;cursor:pointer;}

/* ---------- PAGE HERO (banda superior de páginas internas) ---------- */
.page-hero{
  position:relative;
  padding:clamp(9rem,20vw,11rem) clamp(1.5rem,6vw,4.5rem) clamp(3.5rem,7vw,5rem);
  background:var(--ink);
  color:var(--parchment);
  overflow:hidden;
}
.page-hero::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 85% 20%, rgba(176,141,87,0.12), transparent 55%);
  pointer-events:none;
}
.page-hero h1{
  font-size:clamp(2.3rem,6vw,4.2rem);
  font-style:italic;font-weight:400;
  max-width:18ch;position:relative;z-index:1;
}
.page-hero p{
  margin-top:1.2rem;max-width:46ch;
  color:var(--parchment-dim);line-height:1.7;
  font-size:1rem;position:relative;z-index:1;
}
.page-hero .eyebrow{display:block;margin-bottom:.8rem;position:relative;z-index:1;}

/* ---------- HERO FULL (portada de inicio) ---------- */
.hero{position:relative;height:100svh;min-height:560px;width:100%;overflow:hidden;}
.hero img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 28%;
  transform:scale(1.06);animation:heroIn 1.6s ease-out forwards;
}
@keyframes heroIn{ to{ transform:scale(1); } }
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(28,26,23,0.35) 0%, rgba(28,26,23,0.10) 32%, rgba(28,26,23,0.55) 78%, rgba(28,26,23,0.88) 100%);
}
.hero-content{
  position:absolute;left:clamp(1.5rem,6vw,4.5rem);right:clamp(1.5rem,6vw,4.5rem);
  bottom:clamp(2.2rem,6vw,4rem);z-index:2;color:var(--parchment);
  opacity:0;animation:riseIn 1s ease-out .6s forwards;
}
@keyframes riseIn{ from{opacity:0;transform:translateY(18px);} to{opacity:1;transform:translateY(0);} }
.hero-content .eyebrow{color:var(--brass);margin-bottom:1rem;display:inline-block;}
.hero-content h1{font-size:clamp(1.9rem,7vw,5.2rem);font-style:italic;font-weight:400;max-width:16ch;}
.hero-content p{margin-top:1.4rem;max-width:34ch;font-size:1.02rem;line-height:1.6;color:var(--parchment-dim);font-weight:300;}
.rating-badge{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.5rem 1rem;background:rgba(244,239,230,0.1);border:1px solid rgba(176,141,87,0.4);
  color:var(--brass);font-size:.82rem;letter-spacing:.02em;
  backdrop-filter:blur(4px);
}
.rating-badge strong{color:var(--parchment);font-weight:500;}

.hero-subbar{
  background:var(--ink);color:var(--parchment-dim);
  padding:1.6rem clamp(1.5rem,6vw,4.5rem);
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  border-top:1px solid rgba(176,141,87,0.15);
}
.hero-subbar p{font-size:.92rem;max-width:44ch;margin:0;}
.hero-subbar .rating-badge{flex-shrink:0;}
@media (max-width:700px){
  .hero-subbar{flex-direction:column;align-items:flex-start;padding:1.4rem clamp(1.5rem,6vw,4.5rem);}
}
.scroll-cue{
  position:absolute;right:clamp(1.5rem,6vw,4.5rem);bottom:clamp(2.2rem,6vw,4rem);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
  color:var(--parchment-dim);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;z-index:2;
}
.scroll-cue .line{width:1px;height:44px;background:var(--brass);animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:.3;}50%{opacity:1;}}

/* ---------- SECTION SHELL ---------- */
section{padding:clamp(4.5rem,10vw,8rem) clamp(1.5rem,6vw,4.5rem);}
.section-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  flex-wrap:wrap;gap:1.5rem;margin-bottom:clamp(2.5rem,6vw,4.5rem);
}
.section-head h2{font-size:clamp(1.9rem,4.2vw,3.1rem);font-style:italic;}
.section-head .eyebrow{margin-bottom:.7rem;display:block;}
.section-note{max-width:30ch;font-size:.92rem;line-height:1.6;color:var(--stone-dark);}

/* ---------- TEASER CARDS (home) ---------- */
.teasers{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;
}
.teaser-card{
  position:relative;overflow:hidden;aspect-ratio:4/5;
  display:flex;align-items:flex-end;
}
.teaser-card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.teaser-card:hover img{transform:scale(1.06);}
.teaser-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(28,26,23,0.85), rgba(28,26,23,0.05) 55%);
}
.teaser-inner{position:relative;z-index:1;padding:2rem;color:var(--parchment);}
.teaser-inner .eyebrow{color:var(--brass);}
.teaser-inner h3{font-size:1.7rem;font-style:italic;font-weight:400;margin:.5rem 0 .6rem;}
.teaser-inner span.link{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--parchment-dim);border-bottom:1px solid var(--brass);padding-bottom:2px;}
@media (max-width:1100px){ .teasers{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .teasers{grid-template-columns:1fr;} }

/* ---------- GALERIA / FILMSTRIP (mosaico sin recortes) ---------- */
.gallery{background:var(--parchment);}
.filmgrid{column-count:3;column-gap:.7rem;}
.frame{
  position:relative;overflow:hidden;background:var(--ink);
  break-inside:avoid;margin-bottom:.7rem;display:block;
  opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease;
}
.frame.in-view{opacity:1;transform:translateY(0);}
.frame img{width:100%;height:auto;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1), filter .6s ease;filter:saturate(0.96) contrast(1.02);}
.frame:hover img{transform:scale(1.045);}
.frame .tag{
  position:absolute;left:0;right:0;bottom:0;padding:.9rem 1rem .8rem;
  background:linear-gradient(0deg, rgba(0,0,0,0.72), rgba(0,0,0,0));
  color:var(--parchment);opacity:0;transform:translateY(8px);
  transition:opacity .35s ease, transform .35s ease;
}
.frame:hover .tag{opacity:1;transform:translateY(0);}
.tag .fr{font-family:'Jost',sans-serif;font-size:.62rem;letter-spacing:.16em;color:var(--brass);display:block;margin-bottom:.15rem;}
.tag .cap{font-family:'Fraunces',serif;font-style:italic;font-size:1rem;}

@media (max-width:900px){
  .filmgrid{column-count:2;}
}
@media (max-width:560px){
  .filmgrid{column-count:1;}
}

/* ---------- CATEGORIA (portafolio) intro dentro de la pagina ---------- */
.category-intro{
  max-width:60ch;margin:0 auto clamp(2.5rem,6vw,3.5rem);text-align:center;
}
.category-intro h2{font-size:clamp(1.8rem,4vw,2.6rem);font-style:italic;margin:.6rem 0 .8rem;}
.category-intro p{color:var(--stone-dark);line-height:1.7;font-size:.98rem;}

/* ---------- SOBRE MI ---------- */
.about{
  background:var(--ink);color:var(--parchment);
  display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2.5rem,6vw,5rem);align-items:center;
}
.about-photo{position:relative;aspect-ratio:4/5;overflow:hidden;margin:14px;}
.about-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(0.15) contrast(1.05);}
.about-photo::before{content:"";position:absolute;inset:-14px;border:1px solid var(--brass);z-index:-1;pointer-events:none;}
.about-text .eyebrow{color:var(--brass);}
.about-text h2{font-size:clamp(1.9rem,4vw,2.9rem);font-style:italic;font-weight:400;margin:1rem 0 1.6rem;}
.about-text p{font-size:1rem;line-height:1.85;color:var(--parchment-dim);max-width:52ch;margin-bottom:1.1rem;font-weight:300;}
.about-signature{margin-top:1.8rem;font-family:'Fraunces',serif;font-style:italic;font-size:1.15rem;color:var(--brass);}
@media (max-width:820px){ .about{grid-template-columns:1fr;} }

/* ---------- SERVICIOS ---------- */
.services{background:var(--parchment);}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--stone);border:1px solid var(--stone);}
.service{background:var(--parchment);padding:clamp(2rem,4vw,2.8rem);transition:background .35s ease;}
.service:hover{background:var(--parchment-dim);}
.service .num{font-family:'Fraunces',serif;font-style:italic;font-size:1rem;color:var(--olive);margin-bottom:1.4rem;display:block;}
.service h3{font-size:1.5rem;font-style:italic;font-weight:400;margin-bottom:.9rem;}
.service p{font-size:.92rem;line-height:1.7;color:var(--stone-dark);}
@media (max-width:820px){ .service-grid{grid-template-columns:1fr;} }

/* ---------- CONTACTO ---------- */
.contact{
  background:var(--wine);color:var(--parchment);text-align:center;
  padding:clamp(5rem,12vw,9rem) clamp(1.5rem,6vw,4.5rem);
  position:relative;overflow:hidden;
}
.contact::before{
  content:"";position:absolute;top:50%;left:50%;width:140vw;height:140vw;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 60%);
  pointer-events:none;
}
.contact .eyebrow{color:var(--brass);}
.contact h2{font-size:clamp(2.1rem,6vw,4rem);font-style:italic;font-weight:400;margin:1rem auto 1.6rem;max-width:16ch;}
.contact p{max-width:42ch;margin:0 auto 2.4rem;color:rgba(244,239,230,0.82);line-height:1.7;}
.contact-links{display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap;}
.btn{
  display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 2rem;
  border:1px solid var(--brass);color:var(--parchment);font-size:.8rem;
  letter-spacing:.14em;text-transform:uppercase;
  transition:background .3s ease, color .3s ease;
}
.btn.solid{background:var(--brass);color:var(--ink);}
.btn:hover{background:var(--parchment);color:var(--wine);border-color:var(--parchment);}
.btn.solid:hover{background:var(--parchment);color:var(--wine);}

/* ---------- FOOTER ---------- */
footer{
  background:var(--ink);color:var(--stone);padding:2rem clamp(1.5rem,6vw,4.5rem);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  font-size:.78rem;letter-spacing:.04em;border-top:1px solid rgba(176,141,87,0.2);
}
footer .wordmark{font-size:1rem;}

/* ---------- WHATSAPP FLOTANTE ---------- */
.wa-float{
  position:fixed;right:clamp(1rem,4vw,2rem);bottom:clamp(1rem,4vw,2rem);z-index:90;
  width:52px;height:52px;border-radius:50%;background:var(--wine);
  border:1px solid var(--brass);display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(0,0,0,0.28);
  transition:transform .3s ease, background .3s ease;
}
.wa-float:hover{transform:translateY(-3px);background:var(--wine-light);}
.wa-float svg{width:24px;height:24px;fill:var(--parchment);}

/* ---------- GALERIA PRIVADA DE CLIENTE ---------- */
.gallery-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.4rem clamp(1.5rem,5vw,4rem);
  background:rgba(28,26,23,0.95);backdrop-filter:blur(6px);
}
.gallery-header .tag-private{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brass);border:1px solid var(--brass);
  padding:.35rem .8rem;border-radius:100px;
}
.client-hero{
  background:var(--ink);color:var(--parchment);
  padding:clamp(8rem,18vw,10rem) clamp(1.5rem,6vw,4.5rem) clamp(3rem,6vw,4rem);
  text-align:center;
}
.client-hero .eyebrow{display:block;margin-bottom:.8rem;}
.client-hero h1{font-size:clamp(2rem,5.5vw,3.6rem);font-style:italic;font-weight:400;}
.client-hero p{
  margin:1rem auto 0;max-width:44ch;color:var(--parchment-dim);
  line-height:1.7;font-size:.98rem;
}
.download-all{
  display:flex;justify-content:center;gap:1rem;flex-wrap:wrap;
  margin-top:2rem;
}
.client-grid{
  columns:4 260px;
  column-gap:1rem;
  padding:clamp(2.5rem,6vw,4rem) clamp(1.5rem,6vw,4.5rem);
  background:var(--parchment);
}
@media (max-width:900px){ .client-grid{columns:2 220px;} }
@media (max-width:520px){ .client-grid{columns:2 150px; column-gap:.6rem;} }
.client-photo{
  position:relative;overflow:hidden;background:var(--ink);
  break-inside:avoid;margin-bottom:1rem;
}
.client-photo img{
  width:100%;height:auto;display:block;
  transition:transform .6s ease;
}
.client-photo:hover img{transform:scale(1.04);}
.client-photo .dl-btn{
  position:absolute;right:.6rem;bottom:.6rem;
  width:38px;height:38px;border-radius:50%;
  background:rgba(28,26,23,0.78);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(6px);
  transition:opacity .3s ease, transform .3s ease, background .3s ease;
}
.client-photo:hover .dl-btn{opacity:1;transform:translateY(0);}
.client-photo .dl-btn:hover{background:var(--wine);}
.client-photo .dl-btn svg{width:16px;height:16px;fill:none;stroke:var(--parchment);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.client-footer{
  text-align:center;padding:3rem 1.5rem;background:var(--ink);color:var(--stone);
  font-size:.8rem;letter-spacing:.04em;
}
.client-photo{cursor:zoom-in;}

/* ---------- PORTADA DE GALERIA ---------- */
.gallery-cover{
  position:relative;height:min(72vh,640px);min-height:340px;
  background:var(--ink);overflow:hidden;
}
.gallery-cover img.cover-bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:blur(30px) brightness(.6);transform:scale(1.15);
}
.gallery-cover img.cover-fg{
  position:relative;z-index:1;
  width:100%;height:100%;object-fit:contain;display:block;
  opacity:.96;
}
.gallery-cover::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(28,26,23,.15) 0%, rgba(28,26,23,.55) 70%, rgba(28,26,23,.9) 100%);
}
.gallery-cover .cover-caption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:0 clamp(1.5rem,6vw,4.5rem) clamp(2rem,5vw,3rem);
  color:var(--parchment);text-align:center;
}
.gallery-cover .cover-caption .eyebrow{display:block;margin-bottom:.6rem;color:var(--brass);}
.gallery-cover .cover-caption h1{font-size:clamp(2rem,5.5vw,3.6rem);font-style:italic;font-weight:400;}
.gallery-cover-title{
  background:var(--ink);color:var(--parchment);
  text-align:center;padding:clamp(2rem,5vw,3rem) 1.5rem clamp(1rem,3vw,1.5rem);
}
.gallery-cover-title h1{font-size:clamp(1.8rem,5vw,3rem);font-style:italic;font-weight:400;}

/* ---------- LIGHTBOX (ver foto en grande) ---------- */
.lightbox{
  position:fixed;inset:0;z-index:200;
  background:rgba(15,14,12,0.96);
  display:none;align-items:center;justify-content:center;
  padding:clamp(1rem,4vw,3rem);
}
.lightbox.open{display:flex;}
.lightbox img{
  max-width:100%;max-height:100%;object-fit:contain;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.lightbox .lightbox-close{
  position:absolute;top:1.2rem;right:1.4rem;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.2);
  color:var(--parchment);font-size:1.6rem;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .2s ease;
}
.lightbox .lightbox-close:hover{background:rgba(255,255,255,0.18);}
.lightbox .lightbox-dl{
  position:absolute;top:1.2rem;right:5rem;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.2);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .2s ease;
}
.lightbox .lightbox-dl:hover{background:rgba(255,255,255,0.18);}
.lightbox .lightbox-dl svg{width:18px;height:18px;fill:none;stroke:var(--parchment);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.lightbox .lightbox-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.2);
  color:var(--parchment);font-size:1.4rem;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .2s ease;
}
.lightbox .lightbox-nav:hover{background:rgba(255,255,255,0.18);}
.lightbox .lightbox-prev{left:1rem;}
.lightbox .lightbox-next{right:1rem;}
@media (max-width:600px){
  .lightbox .lightbox-nav{width:40px;height:40px;}
  .lightbox .lightbox-dl{right:1.2rem;top:5rem;}
}
/* ---------- FAVORITOS (corazón) ---------- */
.client-photo .heart-btn{
  position:absolute;left:.6rem;top:.6rem;
  width:38px;height:38px;border-radius:50%;
  background:rgba(28,26,23,0.55);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .25s ease, transform .2s ease;
  z-index:2;
}
.client-photo .heart-btn:hover{transform:scale(1.08);}
.client-photo .heart-btn svg{width:18px;height:18px;fill:none;stroke:var(--parchment);stroke-width:2;transition:fill .2s ease, stroke .2s ease;}
.client-photo .heart-btn.liked{background:rgba(110,36,57,0.85);}
.client-photo .heart-btn.liked svg{fill:var(--parchment);stroke:var(--parchment);}

/* ---------- BARRA DE SELECCION (sticky) ---------- */
.selection-bar{
  position:sticky;top:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
  background:var(--ink);color:var(--parchment);
  padding:1rem clamp(1.5rem,6vw,4.5rem);
  border-bottom:1px solid rgba(176,141,87,0.25);
}
.selection-bar .count{font-size:.85rem;color:var(--parchment-dim);}
.selection-bar .count strong{color:var(--brass);}
.selection-bar .actions{display:flex;gap:.8rem;flex-wrap:wrap;}
.selection-bar button{
  font-family:'Jost',sans-serif;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.6rem 1.2rem;border:1px solid var(--brass);background:none;color:var(--parchment);
  cursor:pointer;transition:background .25s ease, color .25s ease;
}
.selection-bar button.solid{background:var(--brass);color:var(--ink);}
.selection-bar button:hover{background:var(--parchment);color:var(--wine);border-color:var(--parchment);}

/* ---------- MODAL DE CORREO ---------- */
.email-gate{
  position:fixed;inset:0;z-index:250;
  background:rgba(15,13,11,0.82);
  display:none;align-items:center;justify-content:center;
  padding:1.5rem;
}
.email-gate.open{display:flex;}
.email-gate-box{
  background:var(--parchment);color:var(--ink);
  max-width:420px;width:100%;padding:clamp(2rem,5vw,2.6rem);
  text-align:center;position:relative;
}
.email-gate-box .eyebrow{color:var(--wine);}
.email-gate-box h3{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:1.6rem;margin:.7rem 0 .8rem;
}
.email-gate-box p{font-size:.92rem;line-height:1.6;color:var(--stone-dark);margin-bottom:1.4rem;}
.email-gate-box input[type="email"]{
  width:100%;padding:.85rem 1rem;border:1px solid var(--stone);
  background:#fff;color:var(--ink);font-family:'Jost',sans-serif;font-size:.95rem;
  margin-bottom:1rem;
}
.email-gate-box button[type="submit"]{
  width:100%;padding:.9rem;background:var(--wine);color:var(--parchment);
  border:none;font-family:'Jost',sans-serif;font-size:.8rem;letter-spacing:.12em;
  text-transform:uppercase;cursor:pointer;transition:background .25s ease;
}
.email-gate-box button[type="submit"]:hover{background:var(--wine-light);}
.email-gate-box .close-gate{
  position:absolute;top:.9rem;right:1rem;background:none;border:none;
  font-size:1.3rem;color:var(--stone-dark);cursor:pointer;line-height:1;
}
.email-gate-box .gate-note{font-size:.74rem;color:var(--stone);margin-top:1rem;}
.email-gate-box .gate-success{display:none;font-size:.95rem;color:var(--olive);padding:1rem 0;}

/* ---------- CLAVE DE ACCESO A GALERIA ---------- */
.pass-gate{
  position:fixed;inset:0;z-index:300;
  background:var(--ink);
  display:none;align-items:center;justify-content:center;
  padding:1.5rem;
}
.pass-gate.open{display:flex;}
.pass-gate-box{
  max-width:380px;width:100%;text-align:center;color:var(--parchment);
}
.pass-gate-box img.logo-img{height:44px;margin-bottom:2rem;}
.pass-gate-box .eyebrow{color:var(--brass);}
.pass-gate-box h3{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:1.7rem;margin:.8rem 0 1rem;
}
.pass-gate-box p{font-size:.92rem;line-height:1.6;color:var(--parchment-dim);margin-bottom:1.6rem;}
.pass-gate-box input[type="password"]{
  width:100%;padding:.9rem 1rem;border:1px solid var(--stone);
  background:var(--ink-soft);color:var(--parchment);font-family:'Jost',sans-serif;
  font-size:1rem;text-align:center;letter-spacing:.1em;margin-bottom:1rem;
}
.pass-gate-box button{
  width:100%;padding:.9rem;background:var(--brass);color:var(--ink);
  border:none;font-family:'Jost',sans-serif;font-size:.8rem;letter-spacing:.12em;
  text-transform:uppercase;cursor:pointer;transition:background .25s ease;
}
.pass-gate-box button:hover{background:var(--parchment);}
.pass-gate-box .pass-error{
  display:none;color:#d98a8a;font-size:.82rem;margin-top:-.6rem;margin-bottom:1rem;
}
.pass-gate-box .pass-social-label{
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--stone);margin-top:1.8rem;margin-bottom:.8rem;
}
.pass-gate-box .pass-social{
  display:flex;justify-content:center;gap:.9rem;margin-top:0;
}
.pass-gate-box .pass-social a{
  width:42px;height:42px;border-radius:50%;
  border:1px solid var(--stone);
  display:flex;align-items:center;justify-content:center;
  transition:border-color .2s ease, background .2s ease;
}
.pass-gate-box .pass-social a:hover{border-color:var(--brass);background:rgba(196,164,110,0.1);}
.pass-gate-box .pass-social a svg{width:18px;height:18px;fill:none;stroke:var(--parchment);stroke-width:1.8;}
.pass-gate-box .pass-home-link{
  display:block;margin-top:1.6rem;
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--stone);border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.pass-gate-box .pass-home-link:hover{color:var(--brass);border-color:var(--brass);}
body.gate-locked{overflow:hidden;}

.client-footer a{color:var(--brass);border-bottom:1px solid var(--brass);padding-bottom:1px;}

/* ---------- PAQUETES / PRICING ---------- */
.pricing-grid{
  display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));
  gap:1px;background:var(--stone);border:1px solid var(--stone);
}
.pricing-card{
  background:var(--ink);color:var(--parchment);
  padding:clamp(1.8rem,4vw,2.4rem) clamp(1.5rem,3vw,1.8rem);
  position:relative;display:flex;flex-direction:column;
}
.pricing-card.featured{background:var(--wine);}
.pricing-card .badge{
  position:absolute;top:1.4rem;right:1.4rem;
  font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass);
  border:1px solid var(--brass);padding:.25rem .7rem;border-radius:100px;
}
.pricing-card .pkg-num{
  font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass);
}
.pricing-card h3{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:1.7rem;margin:.5rem 0 .7rem;
}
.pricing-card .pkg-desc{font-size:.85rem;color:var(--parchment-dim);line-height:1.6;margin-bottom:1.2rem;}
.pricing-card ul{list-style:none;margin:0 0 1.4rem;padding:0;flex-grow:1;}
.pricing-card li{
  font-size:.83rem;line-height:1.6;padding:.55rem 0;
  border-top:1px solid rgba(244,239,230,0.12);color:var(--parchment-dim);
}
.pricing-card li:first-child{border-top:none;}
.pricing-card li strong{color:var(--parchment);font-weight:500;}
.pricing-card .price{
  font-family:'Fraunces',serif;font-weight:500;font-size:2.1rem;
  margin-top:auto;padding-top:1rem;border-top:1px solid rgba(244,239,230,0.18);
}
.pricing-card .price-note{font-size:.7rem;color:var(--stone);margin-top:.2rem;}

.pricing-note-band{
  background:var(--parchment-dim);padding:1.6rem clamp(1.5rem,6vw,4.5rem);
  text-align:center;font-size:.85rem;color:var(--stone-dark);line-height:1.7;
}

.guide-table{width:100%;border-collapse:collapse;max-width:720px;margin:0 auto;}
.guide-table td{padding:.9rem 0;border-bottom:1px solid var(--parchment-dim);font-size:.92rem;}
.guide-table td:first-child{color:var(--stone-dark);}
.guide-table td:last-child{text-align:right;font-family:'Fraunces',serif;font-style:italic;color:var(--wine);white-space:nowrap;padding-left:1rem;}

.travel-table{width:100%;border-collapse:collapse;}
.travel-table th{
  text-align:left;font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass);padding:.8rem 0;border-bottom:1px solid var(--stone);
}
.travel-table td{padding:.9rem 0;border-bottom:1px solid var(--parchment-dim);vertical-align:top;}
.travel-table .zona-name{font-weight:500;color:var(--ink);}
.travel-table .zona-comunas{font-size:.78rem;color:var(--stone-dark);display:block;margin-top:.2rem;line-height:1.5;}
.travel-table .zona-price{text-align:right;font-family:'Fraunces',serif;font-style:italic;font-size:1.05rem;white-space:nowrap;padding-left:1rem;}

.terms-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(260px,1fr));gap:1.6rem;}
.terms-item h4{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:1.1rem;margin-bottom:.5rem;color:var(--wine);}
.terms-item p{font-size:.85rem;line-height:1.65;color:var(--stone-dark);}

@media (max-width:700px){
  .travel-table thead{display:none;}
  .travel-table tr{display:block;padding:.9rem 0;border-bottom:1px solid var(--parchment-dim);}
  .travel-table td{display:block;border:none;padding:.15rem 0;}
  .travel-table .zona-price{text-align:left;padding-left:0;margin-top:.3rem;}
}

/* ---------- TESTIMONIOS ---------- */
.testimonials{background:var(--ink);color:var(--parchment);}
.testimonial-grid{
  display:grid;grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
  gap:1.4rem;margin-top:2.5rem;
}
.testimonial-card{
  background:var(--ink-soft);padding:clamp(1.8rem,4vw,2.2rem);
  border-left:2px solid var(--brass);
}
.testimonial-card .stars{color:var(--brass);font-size:.9rem;letter-spacing:.15em;margin-bottom:1rem;}
.testimonial-card p{font-size:.92rem;line-height:1.75;color:var(--parchment-dim);margin-bottom:1.4rem;font-style:italic;}
.testimonial-card .author{
  font-family:'Fraunces',serif;font-style:italic;color:var(--brass);font-size:1rem;
}
.google-review-cta{
  text-align:center;margin-top:2.8rem;padding-top:2.5rem;
  border-top:1px solid rgba(244,239,230,0.15);
}
.google-review-cta p{font-size:.88rem;color:var(--parchment-dim);margin-bottom:1.2rem;}

/* ---------- CALCULADORA DE ABONO ---------- */
.calc-box{
  max-width:640px;margin:0 auto;background:var(--ink);color:var(--parchment);
  padding:clamp(2rem,5vw,2.8rem);
}
.calc-row{margin-bottom:1.3rem;}
.calc-row label{
  display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brass);margin-bottom:.5rem;
}
.calc-row select, .calc-row input[type="number"]{
  width:100%;padding:.8rem 1rem;background:var(--ink-soft);
  border:1px solid rgba(244,239,230,0.2);color:var(--parchment);
  font-family:'Jost',sans-serif;font-size:.95rem;
}
.calc-row select option{background:var(--ink-soft);color:var(--parchment);}
#calcHoras{display:none;}
.calc-btn{
  width:100%;padding:1rem;background:var(--brass);color:var(--ink);border:none;
  font-family:'Jost',sans-serif;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;transition:background .25s ease;margin-top:.5rem;
}
.calc-btn:hover{background:var(--parchment);}
.calc-result{
  display:none;margin-top:2rem;padding-top:2rem;
  border-top:1px solid rgba(244,239,230,0.18);
}
.calc-result.show{display:block;}
.calc-line{display:flex;justify-content:space-between;font-size:.9rem;padding:.5rem 0;color:var(--parchment-dim);}
.calc-line.total{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.3rem;color:var(--parchment);
  border-top:1px solid rgba(244,239,230,0.18);margin-top:.5rem;padding-top:1rem;
}
.calc-line.abono{color:var(--brass);font-weight:500;font-size:1rem;}
.calc-wa-btn{
  display:block;text-align:center;margin-top:1.6rem;padding:1rem;
  background:var(--wine);color:var(--parchment);text-decoration:none;
  font-family:'Jost',sans-serif;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  transition:background .25s ease;
}
.calc-wa-btn:hover{background:var(--wine-light);}
.calc-note{font-size:.74rem;color:var(--stone);margin-top:1rem;text-align:center;}

/* ---------- FICHA DE EVENTO ---------- */
.evento-wrap{max-width:640px;margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1.5rem,6vw,4.5rem);}
.evento-form .field-row{margin-bottom:1.4rem;}
.evento-form .field-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.evento-form label{
  display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--brass);margin-bottom:.5rem;
}
.evento-form input, .evento-form textarea{
  width:100%;padding:.85rem 1rem;border:1px solid var(--stone);
  background:#fff;color:var(--ink);font-family:'Jost',sans-serif;font-size:.95rem;
}
.evento-form textarea{min-height:110px;resize:vertical;}
.evento-form .submit-btn{
  width:100%;padding:1rem;background:var(--wine);color:var(--parchment);border:none;
  font-family:'Jost',sans-serif;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;transition:background .25s ease;margin-top:.6rem;
}
.evento-form .submit-btn:hover{background:var(--wine-light);}
.evento-success{display:none;text-align:center;padding:3rem 1.5rem;}
.evento-success.show{display:block;}
.evento-success h2{font-family:'Fraunces',serif;font-style:italic;font-weight:400;font-size:2rem;color:var(--wine);margin-bottom:1rem;}
.evento-success p{color:var(--stone-dark);line-height:1.7;}

/* ---------- NOTAS / BLOG ---------- */
.notas-grid{
  display:grid;grid-template-columns:repeat(auto-fill, minmax(300px,1fr));
  gap:1.8rem;
}
.nota-card{
  display:block;background:var(--ink);color:var(--parchment);
  overflow:hidden;transition:transform .35s ease;
}
.nota-card:hover{transform:translateY(-4px);}
.nota-card .nota-img{aspect-ratio:4/3;overflow:hidden;}
.nota-card .nota-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.nota-card:hover .nota-img img{transform:scale(1.05);}
.nota-card .nota-body{padding:1.5rem;}
.nota-date{
  font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass);display:block;margin-bottom:.7rem;
}
.nota-card h3{font-family:'Fraunces',serif;font-style:italic;font-weight:400;font-size:1.35rem;margin-bottom:.7rem;line-height:1.25;}
.nota-card p{font-size:.88rem;line-height:1.6;color:var(--parchment-dim);margin-bottom:1rem;}
.nota-card .nota-link{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--parchment-dim);border-bottom:1px solid var(--brass);padding-bottom:2px;}

.nota-post{max-width:720px;margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1.5rem,6vw,4.5rem);}
.nota-post .nota-back{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--wine);border-bottom:1px solid var(--wine);padding-bottom:2px;display:inline-block;margin-bottom:2rem;}
.nota-post .nota-date{color:var(--wine);}
.nota-post h1{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:clamp(1.9rem,4.5vw,2.8rem);line-height:1.15;margin:.8rem 0 1.6rem;}
.nota-post .nota-hero-img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:2rem;}
.nota-post .nota-content p{font-size:1.02rem;line-height:1.85;color:var(--stone-dark);margin-bottom:1.3rem;}
.nota-post .nota-content h2{font-family:'Fraunces',serif;font-style:italic;font-weight:500;font-size:1.4rem;margin:2rem 0 1rem;color:var(--ink);}
.nota-post .nota-content ul{margin:0 0 1.3rem 1.2rem;}
.nota-post .nota-content li{font-size:1.02rem;line-height:1.8;color:var(--stone-dark);margin-bottom:.5rem;}
.nota-post-cta{
  margin-top:3rem;padding:2rem;background:var(--parchment-dim);text-align:center;
}
.nota-post-cta p{color:var(--stone-dark);margin-bottom:1.2rem;}

/* ---------- MOBILE NAV ---------- */

@media (max-width:760px){
  nav ul{
    position:fixed;top:0;right:-100%;height:100svh;width:min(78vw,320px);
    background:var(--ink);flex-direction:column;justify-content:center;align-items:flex-start;
    padding:2rem 2.4rem;gap:1.6rem;transition:right .45s ease;z-index:99;
  }
  nav ul.open{right:0;box-shadow:-20px 0 40px rgba(0,0,0,0.35);}
  .nav-toggle{display:block;}
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important;transition-duration:0.001ms !important;}
}
