:root{
  --black:#070707;
  --ivory:#f4ecd9;
  --ivory-soft:#d7ccb4;
  --red:#e03a4e;
  --gold:#f2a62b;
  --serif:"DM Serif Display",Georgia,serif;
  --sans:"Sora",Arial,sans-serif;
  --header-h:82px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{
  min-width:320px;
  background:var(--black);
  color:var(--ivory);
  font-family:var(--sans);
  overflow-x:hidden;
}
img{display:block;width:100%}
a{text-decoration:none;color:inherit}
button{font:inherit}

.floating-nav{
  position:fixed;
  z-index:50;
  top:0;left:0;
  width:100%;
  height:var(--header-h);
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:24px;
  padding:0 28px;
  background:rgba(7,7,7,.76);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(244,236,217,.07);
}
.profile-title{
  font-family:var(--serif);
  font-size:34px;
  line-height:1;
}
.top-links{
  display:flex;
  justify-content:center;
  gap:28px;
}
.menu-link{
  position:relative;
  color:var(--ivory);
  font-size:12px;
  font-weight:600;
  opacity:0;
  transform:translateY(-8px);
  transition:color .25s ease,transform .25s ease,opacity .5s ease;
}
body.loaded .menu-link{opacity:1;transform:translateY(0)}
body.loaded .menu-link:nth-child(1){transition-delay:.10s}
body.loaded .menu-link:nth-child(2){transition-delay:.18s}
.menu-link::after{
  content:"";
  position:absolute;
  left:0;bottom:-6px;
  width:0;height:2px;
  background:var(--red);
  transition:width .25s ease;
}
.menu-link:hover,.menu-link.is-active{color:var(--red);transform:translateY(-2px)}
.menu-link:hover::after,.menu-link.is-active::after{width:100%}
.whatsapp-button{
  border:1px solid var(--red);
  border-radius:6px;
  padding:10px 14px;
  font-size:11px;
  font-weight:700;
  transition:.25s ease;
}
.whatsapp-button:hover{background:var(--red);transform:translateY(-2px)}

.portfolio-panels{
  position:relative;
  min-height:100vh;
  padding-top:var(--header-h);
  overflow:hidden;
}
.panel-track{
  display:flex;
  width:100%;
  height:calc(100vh - var(--header-h));
  overflow-x:auto;
  overflow-y:hidden;
  scroll-behavior:smooth;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
}
.panel-track::-webkit-scrollbar{display:none}
.gallery-panel{
  position:relative;
  flex:0 0 25%;
  height:100%;
  overflow:hidden;
  border-right:1px solid rgba(244,236,217,.08);
  opacity:0;
  transform:translateY(20px);
  scroll-snap-align:start;
  transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1);
}
body.loaded .gallery-panel{opacity:1;transform:translateY(0)}
body.loaded .gallery-panel:nth-child(1){transition-delay:.06s}
body.loaded .gallery-panel:nth-child(2){transition-delay:.12s}
body.loaded .gallery-panel:nth-child(3){transition-delay:.18s}
body.loaded .gallery-panel:nth-child(4){transition-delay:.24s}
.gallery-panel img,
.gallery-panel video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  transform:scale(1.01);
  filter:brightness(.98) contrast(1.02);
  transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .45s ease;
}
.gallery-panel::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(7,7,7,.22),rgba(7,7,7,.02) 48%);
}
.panel-number{
  position:absolute;
  z-index:4;
  left:20px;bottom:20px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
}
@media(hover:hover) and (pointer:fine){
  .gallery-panel:hover img,
  .gallery-panel:hover video{transform:scale(1.05);filter:brightness(1.02)}
}
.gallery-arrow{
  position:absolute;
  z-index:20;
  top:calc(50% + (var(--header-h)/2));
  transform:translateY(-50%);
  width:44px;height:44px;
  border:1px solid rgba(244,236,217,.28);
  background:rgba(7,7,7,.42);
  color:var(--ivory);
  cursor:pointer;
  transition:.25s ease;
}
.gallery-arrow:hover{background:var(--red);border-color:var(--red);transform:translateY(-50%) scale(1.05)}
.gallery-prev{left:14px}
.gallery-next{right:14px}

/* EXPERIENCIAS COMPACTAS */
.experiences-section{
  background:#f5f2ec;
  color:#111;
  padding:84px 28px 30px;
}

.experiences-heading{
  max-width:840px;
  margin-bottom:16px;
}
.eyebrow{
  color:var(--gold);
  font-size:8px;
  font-weight:700;
  letter-spacing:.22em;
  margin-bottom:6px;
}
.experiences-heading h2{
  font-family:var(--serif);
  font-size:clamp(44px,5.3vw,76px);
  line-height:.94;
  font-weight:400;
}
.experiences-heading>p:last-child{
  margin-top:10px;
  color:#5d5a54;
  font-size:11px;
}

/* más compacta: antes hasta 760px */
.experience-stage{
  position:relative;
  height:min(62vh,610px);
  min-height:500px;
  overflow:hidden;
  background:#161616;
}

.experience-media,
.experience-overlay{
  position:absolute;
  inset:0;
}

.experience-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:1;
  transform:scale(1);
  filter:brightness(1);
  transition:
    opacity .65s cubic-bezier(.2,.7,.2,1),
    transform .95s cubic-bezier(.2,.7,.2,1),
    filter .85s cubic-bezier(.2,.7,.2,1);
}

/* entrada: grande -> pequeño / oscuro -> visible */
.experience-media img.is-changing{
  opacity:.38;
  transform:scale(1.07);
  filter:brightness(.40);
}

.experience-overlay{
  background:
    linear-gradient(90deg,rgba(5,5,5,.76) 0%,rgba(5,5,5,.42) 41%,rgba(5,5,5,.12) 68%,rgba(5,5,5,.22) 100%),
    linear-gradient(0deg,rgba(5,5,5,.42),transparent 45%);
  opacity:1;
  transition:opacity .8s cubic-bezier(.2,.7,.2,1);
}
.experience-overlay.is-changing{
  opacity:1;
  background:
    linear-gradient(90deg,rgba(5,5,5,.88) 0%,rgba(5,5,5,.70) 46%,rgba(5,5,5,.48) 74%,rgba(5,5,5,.60) 100%),
    linear-gradient(0deg,rgba(5,5,5,.68),rgba(5,5,5,.28) 55%,rgba(5,5,5,.15));
}

.experience-copy{
  position:absolute;
  z-index:4;
  left:4.4%;
  bottom:7%;
  width:min(46%,560px);
  color:white;
}

.experience-number-row{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--gold);
}
#experienceNumber{
  font-family:var(--serif);
  font-size:44px;
  line-height:1;
}
.number-line{
  width:44px;
  height:2px;
  background:var(--gold);
}
.experience-kicker{
  margin-top:9px;
  color:#f3d094;
  font-size:8px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.experience-copy h3{
  margin-top:2px;
  font-family:var(--serif);
  font-size:clamp(42px,4.2vw,65px);
  line-height:.94;
  font-weight:400;
}
.experience-prices{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:11px;
}
.price-chip{
  border:1px solid rgba(255,255,255,.26);
  background:rgba(0,0,0,.20);
  padding:6px 9px;
  font-size:9px;
}
.price-chip strong{
  margin-left:5px;
  color:white;
}
.experience-lead{
  margin-top:13px;
  font-size:11px;
  font-weight:700;
  max-width:520px;
}
.experience-detail{
  margin-top:6px;
  color:rgba(255,255,255,.77);
  font-size:10px;
  line-height:1.55;
  max-width:520px;
}
.experience-cta{
  display:inline-flex;
  gap:9px;
  margin-top:13px;
  color:white;
  font-size:9px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.07em;
  border-bottom:1px solid rgba(255,255,255,.7);
  padding-bottom:3px;
  transition:.25s ease;
}
.experience-cta:hover{color:var(--gold);border-color:var(--gold)}

.experience-nav{
  position:absolute;
  z-index:5;
  right:6%;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
}
.experience-nav::before{
  content:"";
  position:absolute;
  left:10px;
  top:10px;
  bottom:10px;
  width:1px;
  background:rgba(255,255,255,.28);
}
.experience-tab{
  position:relative;
  display:grid;
  grid-template-columns:22px 28px auto;
  align-items:center;
  gap:7px;
  min-width:205px;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.52);
  text-align:left;
  padding:10px 0;
  cursor:pointer;
  transition:.25s ease;
}
.experience-tab .dot{
  position:relative;
  z-index:2;
  width:17px;
  height:17px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  background:rgba(0,0,0,.18);
  transition:.25s ease;
}
.experience-tab .tab-num{
  font-size:10px;
  font-weight:700;
  letter-spacing:.07em;
}
.experience-tab .tab-name{
  font-family:var(--serif);
  font-size:15px;
}
.experience-tab.is-active{
  color:white;
}
.experience-tab.is-active .dot{
  width:19px;height:19px;
  background:var(--gold);
  border:4px solid rgba(242,166,43,.28);
  box-shadow:0 0 0 3px rgba(242,166,43,.11);
}
.experience-tab.is-active .tab-num{color:var(--gold)}
.experience-tab:hover{color:white}

.experience-count{
  position:absolute;
  z-index:5;
  right:14px;
  bottom:11px;
  color:rgba(255,255,255,.68);
  font-size:7px;
  font-weight:700;
  letter-spacing:.14em;
}

/* FOOTER */
.site-footer{
  min-height:92px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:20px;
  padding:22px 32px;
  background:var(--black);
  border-top:1px solid rgba(244,236,217,.08);
  color:var(--ivory-soft);
}
.footer-side{font-size:10px;text-transform:uppercase;letter-spacing:.14em}
.footer-left{justify-self:start}
.footer-right{justify-self:end}
.footer-brand{justify-self:center}
.footer-frame{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:138px;
  min-height:40px;
  padding:7px 12px;
  color:var(--ivory);
  font-size:17px;
  font-weight:700;
  letter-spacing:.04em;
}
.footer-corner{
  position:absolute;
  width:9px;height:9px;
  border-color:var(--red);
  border-style:solid;
}
.footer-corner.tl{top:0;left:0;border-width:1.5px 0 0 1.5px}
.footer-corner.tr{top:0;right:0;border-width:1.5px 1.5px 0 0}
.footer-corner.bl{bottom:0;left:0;border-width:0 0 1.5px 1.5px}
.footer-corner.br{bottom:0;right:0;border-width:0 1.5px 1.5px 0}

@media(max-width:1050px){
  .gallery-panel{flex-basis:33.333%}
  .experience-copy{width:52%}
  .experience-nav{right:3.5%}
}

@media(max-width:760px){
  :root{--header-h:92px}

  .floating-nav{
    height:var(--header-h);
    padding:12px 14px;
    grid-template-columns:auto 1fr;
    align-items:start;
    row-gap:8px;
  }
  .profile-title{font-size:28px}
  .top-links{justify-content:flex-end;gap:14px}
  .menu-link{font-size:10px}
  .whatsapp-button{
    grid-column:2;
    justify-self:end;
    padding:7px 10px;
    font-size:10px;
  }

  .panel-track{
    height:calc(100vh - var(--header-h));
    scroll-snap-type:x mandatory;
  }
  .gallery-panel{
    flex:0 0 82%;
    scroll-snap-align:center;
  }
  .gallery-arrow{
    width:40px;height:40px;
    top:calc(50% + (var(--header-h)/2));
  }
  .gallery-prev{left:8px}
  .gallery-next{right:8px}

  .experiences-section{
    padding:98px 16px 20px;
  }
  .experiences-heading{
    margin-bottom:12px;
  }
  .experiences-heading h2{
    font-size:46px;
  }
  .experiences-heading>p:last-child{
    margin-top:7px;
    font-size:9.5px;
  }

  .experience-stage{
    height:66vh;
    min-height:520px;
  }
  .experience-overlay{
    background:
      linear-gradient(0deg,rgba(5,5,5,.84) 0%,rgba(5,5,5,.54) 44%,rgba(5,5,5,.12) 73%),
      linear-gradient(90deg,rgba(5,5,5,.18),rgba(5,5,5,.08));
  }
  .experience-overlay.is-changing{
    background:
      linear-gradient(0deg,rgba(5,5,5,.92) 0%,rgba(5,5,5,.76) 50%,rgba(5,5,5,.45) 78%),
      linear-gradient(90deg,rgba(5,5,5,.42),rgba(5,5,5,.28));
  }

  .experience-copy{
    left:18px;
    right:18px;
    bottom:96px;
    width:auto;
  }
  #experienceNumber{font-size:38px}
  .number-line{width:34px}
  .experience-kicker{margin-top:6px}
  .experience-copy h3{font-size:44px}
  .experience-prices{margin-top:8px}
  .price-chip{font-size:8px;padding:6px 8px}
  .experience-lead{margin-top:9px;font-size:10px}
  .experience-detail{
    font-size:9px;
    line-height:1.48;
    max-width:94%;
  }
  .experience-cta{margin-top:9px;font-size:8px}

  .experience-nav{
    left:14px;
    right:14px;
    top:auto;
    bottom:14px;
    transform:none;
    flex-direction:row;
    justify-content:space-between;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .experience-nav::-webkit-scrollbar{display:none}
  .experience-nav::before{
    left:8px;
    right:8px;
    top:9px;
    bottom:auto;
    width:auto;
    height:1px;
  }
  .experience-tab{
    min-width:67px;
    grid-template-columns:1fr;
    justify-items:center;
    gap:4px;
    padding:0 3px;
    text-align:center;
  }
  .experience-tab .dot{
    width:18px;height:18px;
  }
  .experience-tab .tab-num{font-size:8px}
  .experience-tab .tab-name{
    font-size:10px;
    white-space:nowrap;
  }
  .experience-tab.is-active .dot{
    width:19px;height:19px;
  }
  .experience-count{
    right:8px;
    top:8px;
    bottom:auto;
  }

  .site-footer{
    grid-template-columns:1fr auto 1fr;
    padding:18px 16px;
    gap:10px;
  }
  .footer-side{font-size:8px}
  .footer-frame{
    min-width:118px;
    min-height:36px;
    font-size:14px;
  }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    transition:none!important;
    scroll-behavior:auto!important;
  }
  .gallery-panel,.menu-link{opacity:1!important;transform:none!important}
}


.gallery-panel.is-video{cursor:pointer}
.gallery-panel.is-video::before{
  content:"▶";
  position:absolute;
  z-index:8;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:58px;height:58px;
  display:grid;place-items:center;
  border-radius:50%;
  border:1px solid rgba(244,236,217,.7);
  background:rgba(7,7,7,.42);
  color:var(--ivory);
  font-size:18px;
  padding-left:3px;
  backdrop-filter:blur(6px);
  transition:.25s ease;
}
.gallery-panel.is-video:hover::before{
  transform:translate(-50%,-50%) scale(1.08);
  background:var(--red);
  border-color:var(--red);
}
.video-modal{
  position:fixed;inset:0;z-index:120;
  display:grid;place-items:center;
  padding:28px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}
.video-modal.is-open{
  opacity:1;visibility:visible;pointer-events:auto;
}
.video-modal-backdrop{
  position:absolute;inset:0;
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(10px);
}
.video-modal-dialog{
  position:relative;z-index:2;
  width:min(92vw,920px);
  max-height:90vh;
}
.video-modal-frame{
  width:100%;
  max-height:86vh;
  display:flex;align-items:center;justify-content:center;
  background:#000;
  box-shadow:0 24px 80px rgba(0,0,0,.5);
}
.video-modal-frame video{
  width:100%;
  max-height:86vh;
  object-fit:contain;
  background:#000;
}
.video-modal-close{
  position:absolute;z-index:4;
  top:-18px;right:-18px;
  width:44px;height:44px;
  border:1px solid rgba(244,236,217,.4);
  border-radius:50%;
  background:rgba(7,7,7,.86);
  color:var(--ivory);
  font-size:28px;
  cursor:pointer;
  transition:.25s ease;
}
.video-modal-close:hover{
  background:var(--red);
  border-color:var(--red);
  transform:rotate(90deg);
}
body.video-modal-open{overflow:hidden}
@media(max-width:760px){
  .gallery-panel.is-video::before{width:52px;height:52px;font-size:16px}
  .video-modal{padding:14px}
  .video-modal-dialog{width:100%;max-height:92vh}
  .video-modal-frame,.video-modal-frame video{max-height:88vh}
  .video-modal-close{top:10px;right:10px;width:40px;height:40px;background:rgba(7,7,7,.72)}
}


/* SEO / ACCESSIBILITY / PERFORMANCE */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.profile-title{
  text-decoration:none;
}

.menu-link:focus-visible,
.whatsapp-button:focus-visible,
.profile-title:focus-visible,
.gallery-arrow:focus-visible,
.experience-tab:focus-visible,
.experience-cta:focus-visible,
.footer-brand:focus-visible,
.video-modal-close:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:4px;
}

.noscript-services{
  margin-top:20px;
  padding:18px;
  background:#fff;
  color:#111;
  border:1px solid rgba(0,0,0,.12);
}
.noscript-services h3{
  margin-bottom:10px;
  font-family:var(--serif);
  font-size:24px;
}
.noscript-services p + p{
  margin-top:6px;
}
