/* ═══════════════════════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════════════════════ */
*{box-sizing:border-box;margin:0;padding:0}
img{display:block;max-width:100%}

:root{
  --coral:        #D90429;
  --coral-deep:   #A3001C;
  --sunset:       #B7903C;
  --lime:         #F4EFEA;
  --deep:         #5F5F5F;
  --ocean:        #212121;
  --bg-primary:   #5F5F5F;
  --bg-surface:   #212121;
  --text-main:    #FFFFFF;
  --text-muted:   #F9F9F9;
  --color-border: rgba(255,255,255,0.07);
  --radius-lg:    28px;
  --radius-md:    18px;
  --radius-sm:    10px;
  --font-display: 'Outfit', system-ui, sans-serif;
  --font-serif:   'Playfair Display', Georgia, serif;
  --font-mono:    'Inter', system-ui, sans-serif;
  --ease:         cubic-bezier(0.16,1,0.3,1);
  --ease-back:    cubic-bezier(0.34,1.56,0.64,1);
}

html{scroll-behavior:smooth}
body{
  font-family:var(--font-mono);
  background:var(--bg-primary);
  color:var(--text-main);
  overflow-x:hidden;
  line-height:1.6;
  display:flex;
  justify-content:center;
  -webkit-font-smoothing:antialiased;
}

.page {
  width: 100%;
  max-width: 100%;
  position: relative;
  background: var(--bg-primary);
  overflow: hidden;
}

/* Grain texture */
.page::after{
  content:'';
  position:fixed;inset:0;
  pointer-events:none;
  z-index:9997;
  opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size:160px;
}

/* ═══════════════════════════════════════════════════════════
   SCROLL PROGRESS & CURSOR
═══════════════════════════════════════════════════════════ */
#scroll-progress{
  position:fixed;top:0;left:0;height:2px;z-index:9999;width:0;
  background:linear-gradient(90deg, var(--coral), var(--sunset));
  transition:width .08s linear;
  box-shadow:0 0 12px var(--coral);
}

#cursor-glow{
  position:fixed;pointer-events:none;z-index:9995;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--coral) 8%, transparent) 0%, transparent 70%);
  transform:translate(-50%,-50%);
  transition:opacity .4s ease;
  opacity:0;
}

/* ═══════════════════════════════════════════════════════════
   HERO EDITORIAL (ISABELLAS STYLE)
═══════════════════════════════════════════════════════════ */
.hero {
  position: relative;
  min-height: 100vh;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 40px 5%;
  gap: 30px;
}

.hero-slider-bg {
  position: absolute; inset: 0; z-index: 0;
  background: var(--bg-primary);
}
.hero-slide {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 1.5s ease-in-out, transform 8s linear;
  transform: scale(1.05);
  /* Blur suave para ocultar pixelación en fotos de baja resolución */
  filter: blur(0px);
  will-change: opacity, transform;
}
.hero-slide.active {
  opacity: 1;
  transform: scale(1);
  filter: blur(0px);
}
/* Overlay más opaco para que el contenido sea legible
   aunque la foto sea de baja calidad */
.hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.55) 0%,
    rgba(0,0,0,0.30) 40%,
    rgba(0,0,0,0.55) 100%
  );
}

.hero-top, .hero-center, .hero-bottom { 
  position: relative; 
  z-index: 2; 
  width: 100%; 
  flex-shrink: 0;
}

.hero-center {
  flex: 1 0 auto;
  display: flex; 
  flex-direction: column;
  align-items: center; 
  justify-content: center;
  padding: 20px 0;
  width: 100%;
}

.hero-top {
  display: flex; justify-content: space-between; align-items: flex-start;
  font-family: var(--font-mono); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase;
  flex-wrap: wrap; gap: 16px;
}
.hero-top > div:last-child {
  display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; flex: 1; min-width: 160px;
}

.hero-logo-wrap {
  position: relative; z-index: 2;
  width: 100%; max-width: 130px;
  margin: 0 auto 30px;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 20px 50px rgba(0,0,0,.45);
}
.hero-logo-wrap img { width: 100%; height: auto; object-fit: contain; border-radius: calc(var(--radius-lg) - 12px); }

.hero-tag {
  position: relative; z-index: 2;
  display: inline-flex; align-items: center; gap: 10px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  padding: 8px 20px; border-radius: 100px;
  font-family: var(--font-mono); font-size: .58rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  margin: 0 auto 30px; color: rgba(255,255,255,.6);
}
.hero-tag::before {
  content: ''; width: 4px; height: 4px; border-radius: 50%;
  background: var(--coral); box-shadow: 0 0 6px var(--coral);
}

.hero-title {
  position: relative; z-index: 2;
  font-family: var(--font-display); font-weight: 800; font-size: clamp(2.8rem, 12vw, 5rem);
  line-height: 0.95; letter-spacing: -0.04em; text-align: center; margin-bottom: 24px; color: #fff;
}
.hero-title .word { display: block; }
.hero-title .word-italic {
  font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: 0.95em;
  background: linear-gradient(135deg, var(--coral), var(--sunset));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.hero-title .word-outline {
  font-weight: 300; font-size: 0.75em; opacity: 0.7; letter-spacing: 0.01em;
  -webkit-text-fill-color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.9);
}

.hero-sub {
  position: relative; z-index: 2;
  font-family: var(--font-mono); font-weight: 300; font-size: .95rem;
  text-align: center; margin: 0 auto 20px; max-width: 320px;
  color: rgba(255,255,255,.75); line-height: 1.6; letter-spacing: .01em;
}

.hero-bottom-bar {
  display: flex; justify-content: space-between; align-items: flex-end;
  border-top: 1px solid rgba(255,255,255,0.15); padding-top: 20px;
}
.hero-indicators { display: flex; gap: 24px; }
.hero-indicator-dot {
  font-family: var(--font-mono); font-size: .75rem; color: rgba(255,255,255,0.3);
  cursor: pointer; transition: color .3s;
}
.hero-indicator-dot.active { color: var(--coral); }

.scroll-hint-editorial {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  font-family: var(--font-mono); font-size: .6rem; letter-spacing: .2em; color: rgba(255,255,255,0.5); writing-mode: vertical-rl;
}
.scroll-line { width: 1px; height: 40px; background: rgba(255,255,255,0.3); animation: lineGrow 2s infinite; }
@keyframes lineGrow{ 0%,100%{transform:scaleY(1);opacity:.5} 50%{transform:scaleY(.5);opacity:1} }

@media(max-width: 768px) {
  .hero-bottom-bar { flex-direction: column; align-items: center; gap: 20px; border-top: none; }
  .scroll-hint-editorial { writing-mode: horizontal-tb; flex-direction: row; }
  .scroll-line { width: 40px; height: 1px; }
}

/* ═══════════════════════════════════════════════════════════
   MARQUEE
═══════════════════════════════════════════════════════════ */
.marquee-zone{
  background:var(--bg-surface);
  color:rgba(255,255,255,.35);
  padding:22px 0;overflow:clip;
  border-top:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
  position:relative;
}
.marquee-zone::before,.marquee-zone::after{ content:'';position:absolute;top:0;bottom:0;width:60px;z-index:2; }
.marquee-zone::before{left:0;background:linear-gradient(to right,var(--bg-surface),transparent)}
.marquee-zone::after{right:0;background:linear-gradient(to left,var(--bg-surface),transparent)}
.marquee-track{display:flex;white-space:nowrap;align-items:center;will-change:transform;animation:marqueeScroll 28s linear infinite;}
@keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-33.333%)}}
.marquee-track > *{
  font-family:var(--font-display);font-weight:300;font-size:.95rem;
  letter-spacing:.12em;padding:0 36px;display:inline-flex;align-items:center;
  gap:36px;text-transform:uppercase;
}
.marquee-track .star{ color:var(--coral); font-family:var(--font-serif);font-style:italic;font-size:1.1rem; opacity:.5; }

/* ═══════════════════════════════════════════════════════════
   SECTIONS & BASE TYPOGRAPHY
═══════════════════════════════════════════════════════════ */
.section{padding:100px 28px;position:relative;}
.section-paper{background:var(--bg-surface)}
.section-cream{background:var(--bg-primary)}
.section-deep{background:var(--bg-primary)}
.section-ocean{background:var(--bg-surface)}
.section-lime{
  background:color-mix(in srgb, var(--coral) 4%, var(--bg-primary));
  position:relative;
}
.section-lime::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--coral) 8%, transparent) 0%, transparent 60%);
  pointer-events:none;
}

.eyebrow{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--font-mono);font-weight:600;
  font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;margin-bottom:28px;
  color:var(--coral);
}
.eyebrow::before{ content:'';width:28px;height:1px; background:currentColor;opacity:.6; display:block; }

.h-display{
  font-family:var(--font-display);font-weight:700;
  font-size:clamp(2rem,8.5vw,3rem);
  line-height:1.05;letter-spacing:-.03em;margin-bottom:56px;
  color:var(--text-main);
}
.h-display em{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  background:linear-gradient(135deg, var(--coral), var(--sunset));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ═══════════════════════════════════════════════════════════
   ACTIONS BLOCK & BUTTONS
═══════════════════════════════════════════════════════════ */
.actions-block{
  background:var(--bg-primary);
  padding:72px 28px;position:relative;
  border-bottom:1px solid var(--color-border);
}
.actions-block::before{
  content:'';position:absolute; top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--coral),transparent); opacity:.3;
}

.btn{
  display:flex;align-items:center;justify-content:center;gap:12px;
  cursor:pointer;text-decoration:none;
  font-family:var(--font-mono);font-weight:500;letter-spacing:.03em;
  transition:all .55s var(--ease);
  position:relative;overflow:clip;
}

.btn-primary{
  background:var(--coral); color:#fff;
  padding:22px 28px;border-radius:100px;
  font-size:1rem;width:100%;border:none;
  box-shadow:0 16px 40px color-mix(in srgb, var(--coral) 28%, transparent), inset 0 1px 0 rgba(255,255,255,.15);
}
.btn-primary::before{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(135deg, rgba(255,255,255,.12) 0%, transparent 50%);
}
.btn-primary:hover{
  transform:translateY(-5px);
  box-shadow:0 28px 56px color-mix(in srgb, var(--coral) 40%, transparent), inset 0 1px 0 rgba(255,255,255,.2);
}
.btn-primary:active{transform:translateY(-2px);}

.btn-row {
  display: flex;
  flex-wrap: wrap; 
  gap: 10px;
  margin-top: 10px;
}
.btn-secondary {
  flex: 1 1 calc(50% - 10px);
  min-width: 130px; 
  background: transparent;
  color: rgba(255,255,255,.7);
  padding: 17px 10px;
  border-radius: 100px;
  font-size: .88rem;
  border: 1px solid var(--color-border);
  backdrop-filter: blur(8px);
  text-align: center;
  transition:all .55s var(--ease);
}
.btn-secondary:hover{
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.18);
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 12px 30px rgba(0,0,0,.15);
}

.btn-accent{
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.7);
  padding:19px 28px;border-radius:100px;
  font-size:.92rem;width:100%;margin-top:10px;
  border:1px solid var(--color-border);
}
.btn-accent:hover{
  background:rgba(255,255,255,.08); color:#fff;
  border-color:rgba(255,255,255,.15);
  transform:translateY(-3px); box-shadow:0 12px 30px rgba(0,0,0,.2);
}

.trust-chips {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin-top: 15px;
  padding-bottom: 8px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  justify-content: flex-start;
}
.trust-chips::-webkit-scrollbar { display: none; }
.trust-chip{
  flex-shrink:0; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  padding:8px 16px;border-radius:100px; font-family:var(--font-mono);font-size:.6rem;
  letter-spacing:.06em;text-transform:uppercase; color:rgba(255,255,255,.45);white-space:nowrap;
  font-weight:500; transition:all .4s var(--ease);
}
.trust-chip:hover{ background:rgba(255,255,255,.08); color:rgba(255,255,255,.8); border-color:rgba(255,255,255,.15); }

/* ═══════════════════════════════════════════════════════════
   INFO CARDS
═══════════════════════════════════════════════════════════ */
.info-bio{
  font-family:var(--font-serif);font-style:italic;
  font-size:1.65rem;line-height:1.45; letter-spacing:-.01em;margin-bottom:56px;
  color:rgba(255,255,255,.75);text-align:center;
}
.info-bio:empty{display:none;}

.info-grid{display:flex;flex-direction:column;gap:10px;}
.info-card{
  background:rgba(255,255,255,.03); border:1px solid var(--color-border);
  border-radius:var(--radius-lg); padding:22px 26px; display:flex;align-items:center;gap:18px;
  text-decoration:none;color:var(--text-main); transition:all .55s var(--ease);
  position:relative;overflow:clip;
}
.info-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(255,255,255,.03) 0%,transparent 60%);
  opacity:0;transition:opacity .4s;
}
.info-card:hover{
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12);
  transform:translateY(-4px); box-shadow:0 24px 50px rgba(0,0,0,.2);
}
.info-card:hover::before{opacity:1;}

.info-card-icon{
  width:46px;height:46px;border-radius:50%; background:rgba(255,255,255,.05);
  color:rgba(255,255,255,.6); display:flex;align-items:center;justify-content:center;flex-shrink:0;
  border:1px solid rgba(255,255,255,.08); transition:all .4s var(--ease);
}
.info-card:hover .info-card-icon{
  background:var(--coral); color:#fff; border-color:var(--coral);
  box-shadow:0 8px 20px color-mix(in srgb, var(--coral) 30%, transparent);
}
.info-card-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:all .3s;}
.info-card-content{flex:1;min-width:0}
.info-card-label{ font-family:var(--font-mono);font-size:.58rem;font-weight:600; letter-spacing:.18em;text-transform:uppercase; color:rgba(255,255,255,.3);margin-bottom:5px; }
.info-card-value{font-weight:400;font-size:.95rem;line-height:1.45;word-break:break-word;color:rgba(255,255,255,.8);}

/* ═══════════════════════════════════════════════════════════
   SERVICES
═══════════════════════════════════════════════════════════ */
.bento{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:380px){.bento{grid-template-columns:1fr 1fr;}}

.service-card{
  background:rgba(255,255,255,.03); border:1px solid var(--color-border);
  border-radius:var(--radius-lg); padding:30px 24px;position:relative;overflow:clip;
  transition:all .55s var(--ease);display:flex;flex-direction:column;
  z-index: 1;
}
.service-card::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at top right, color-mix(in srgb, var(--coral) 15%, transparent), transparent 70%);
  opacity: 0; transition: opacity .5s var(--ease); z-index: -1;
}
.service-card:hover::before { opacity: 1; }
.service-card::after{
  content:'';position:absolute; top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--coral),transparent);
  opacity:0;transition:opacity .4s;
}
.service-card:hover{
  background:rgba(255,255,255,.06); transform:translateY(-5px);
  box-shadow:0 20px 50px rgba(0,0,0,.18); border-color:rgba(255,255,255,.1);
}
.service-card:hover::after{opacity:.5;}

.svc-icon{font-size:1.8rem;margin-bottom:20px;opacity:.85;}
.service-card h3{
  font-family:var(--font-display);font-weight:600; font-size:1.05rem;letter-spacing:-.01em;margin-bottom:10px;line-height:1.2;
  color:rgba(255,255,255,.9);
}
.service-card p{ font-size:.82rem;line-height:1.55; font-weight:300;font-family:var(--font-mono); color:rgba(255,255,255,.4); }

/* ═══════════════════════════════════════════════════════════
   SCHEDULE
═══════════════════════════════════════════════════════════ */
.schedule-card{
  background:rgba(255,255,255,.03); border:1px solid var(--color-border);
  border-radius:var(--radius-lg);padding:36px 32px; position:relative;overflow:clip;
}
.schedule-card::before{
  content:'';position:absolute; top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--coral),transparent); opacity:.25;
}
.schedule-status{
  display:inline-flex;align-items:center;gap:10px;
  background:color-mix(in srgb, var(--coral) 10%, transparent); color:var(--coral);
  padding:10px 20px;border-radius:100px; font-family:var(--font-mono);font-size:.65rem;
  letter-spacing:.12em;text-transform:uppercase;font-weight:600;margin-bottom:28px;
  border:1px solid color-mix(in srgb, var(--coral) 20%, transparent);
}
.schedule-status::before{
  content:'';width:5px;height:5px;border-radius:50%; background:var(--coral);
  box-shadow:0 0 8px var(--coral); animation:pulse 2s ease-in-out infinite;
}
.schedule-list{list-style:none;}
.schedule-list li{
  display:flex;justify-content:space-between;align-items:center;
  padding:15px 0;border-bottom:1px solid rgba(255,255,255,.05); font-size:.9rem;transition:all .3s;
}
.schedule-list li:last-child{border-bottom:none;padding-bottom:0;}
.schedule-list li:first-child{padding-top:0;}
.schedule-list li:hover{padding-left:4px;}
.schedule-list li.today{font-weight:600;}
.schedule-list .day-name{ font-family:var(--font-mono);font-weight:500; color:rgba(255,255,255,.7); }
.schedule-list .day-hours{ font-family:var(--font-mono);font-size:.82rem; color:rgba(255,255,255,.35); }
.schedule-list .today .day-name{color:rgba(255,255,255,.95);}
.schedule-list .today .day-name::after{
  content:'HOY';display:inline-block;margin-left:12px;
  background:var(--coral);color:#fff; font-size:.55rem;padding:3px 10px;border-radius:100px;
  letter-spacing:.12em;vertical-align:middle;font-weight:700;
}
.schedule-list .today .day-hours{ color:var(--coral);font-weight:600;opacity:1; }

/* ═══════════════════════════════════════════════════════════
   GALLERY
═══════════════════════════════════════════════════════════ */
#mp-foto-grid{ display:grid;grid-template-columns:1fr 1fr;gap:10px; }
#mp-foto-grid > .gallery-item:nth-of-type(1){grid-row:span 2;aspect-ratio:1/2.1 !important;}

.gallery-placeholder-msg{
  grid-column:1/-1; background:rgba(255,255,255,.02); border:1px dashed rgba(255,255,255,.1);
  border-radius:var(--radius-md); padding:22px 24px; display:flex;align-items:center;gap:16px;margin-bottom:8px;
}
.gpm-icon{font-size:1.6rem;flex-shrink:0;opacity:.5;}
.gpm-text strong{display:block;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:rgba(255,255,255,.7);}
.gpm-text span{display:block;font-family:var(--font-mono);font-size:.75rem;opacity:.35;line-height:1.5;margin-top:3px;}

.gallery-item{
  aspect-ratio:1;border-radius:var(--radius-md); background:rgba(255,255,255,.04);
  position:relative;overflow:clip; display:flex;align-items:center;justify-content:center;cursor:pointer;
  border:1px solid var(--color-border); transition:all .6s var(--ease);
}
.gallery-item img{
  width:100%;height:100%;object-fit:cover;position:absolute;inset:0;
  z-index:1;transition:transform .8s var(--ease);
}
.gallery-item:hover{border-color:rgba(255,255,255,.12);box-shadow:0 20px 50px rgba(0,0,0,.3);}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item:hover .gallery-emoji{transform:scale(0);opacity:0;}

.gallery-item-1{background:#1a1a2e} .gallery-item-2{background:#16213e} .gallery-item-3{background:#0f3460}
.gallery-item-4{background:#1a1a2e} .gallery-item-5{background:#16213e}

.gallery-emoji{ font-size:2.2rem;opacity:.45; transition:all .5s var(--ease);position:relative;z-index:2; }
.gallery-label{
  position:absolute;bottom:14px;left:14px; font-family:var(--font-mono);font-size:.55rem;
  letter-spacing:.18em;text-transform:uppercase; color:rgba(255,255,255,.6);
  background:rgba(0,0,0,.4);backdrop-filter:blur(16px); padding:7px 14px;border-radius:100px;z-index:3;font-weight:600;
  border:1px solid rgba(255,255,255,.08);
}

.video-placeholder{
  aspect-ratio:16/9;background:transparent; border:1px dashed var(--color-border);
  border-radius:var(--radius-lg); display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
}
.video-placeholder svg{width:24px;height:24px;opacity:.12;fill:var(--text-main)}
.video-placeholder span{font-size:.62rem;color:var(--text-main);font-family:var(--font-mono);font-weight:500;text-transform:uppercase;opacity:.2;letter-spacing:.18em;}
#mp-video-grid{display:grid;grid-template-columns:1fr;gap:16px}

/* ═══════════════════════════════════════════════════════════
   DIFFERENTIATORS
═══════════════════════════════════════════════════════════ */
.diff-stack{display:flex;flex-direction:column;gap:12px;}
.diff-item {
  background: rgba(255,255,255,.03);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 28px 26px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
  transition: all .55s var(--ease);
  position: relative;
  overflow: clip;
  perspective: 1000px;
  transform-style: preserve-3d;
}
.diff-item:hover {
  background: rgba(255,255,255,.055);
  border-color: rgba(255,255,255,.1);
  transform: translateY(-6px) rotateX(4deg) rotateY(-4deg);
  box-shadow: -10px 20px 40px rgba(0,0,0,.25);
}

.diff-num,.dif-icon{
  font-family:var(--font-serif);font-style:italic;
  font-size:2.6rem;line-height:1;
  color:var(--coral);flex-shrink:0;font-weight:400;
  opacity:.7;
  transition:opacity .4s;
}
.diff-item:hover .diff-num,.diff-item:hover .dif-icon{opacity:1;}
.diff-content,.dif-text{flex:1;}
.diff-content h3,.dif-text strong{
  display:block; font-family:var(--font-display);font-weight:600;
  font-size:1.05rem;letter-spacing:-.01em;margin-bottom:8px; color:rgba(255,255,255,.88);
}
.diff-content p,.dif-text span{
  display:block; font-size:.84rem;color:rgba(255,255,255,.4);line-height:1.55;
  font-family:var(--font-mono);font-weight:300;
}

/* ═══════════════════════════════════════════════════════════
   REVIEWS
═══════════════════════════════════════════════════════════ */
.reviews-scroll {
  display: flex; gap: 14px; overflow-x: auto; padding: 12px 0 36px;
  scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  margin: 0 -28px; padding-left: 28px; padding-right: 28px;
}
.reviews-scroll::-webkit-scrollbar{display:none}

.review-card,.mp-fade > .reviews-scroll .review-card{
  flex-shrink:0;width:300px; background:rgba(255,255,255,.03);
  color:var(--text-main); border-radius:var(--radius-lg);
  padding:32px 28px;scroll-snap-align:start; border:1px solid var(--color-border);
  transition:all .55s var(--ease); position:relative;overflow:clip;
}
.review-card::before{
  content:'';position:absolute; top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);
}
.review-card:hover{
  background:rgba(255,255,255,.06); transform:translateY(-4px);
  box-shadow:0 20px 50px rgba(0,0,0,.2); border-color:rgba(255,255,255,.1);
}

.review-quote{
  font-family:var(--font-serif);font-style:italic;font-size:1.05rem;
  line-height:1.55;margin-bottom:28px;letter-spacing:-.01em; color:rgba(255,255,255,.8);
}
.review-quote::before{
  content:'\201C';font-size:3.2rem; color:color-mix(in srgb,var(--coral) 40%,transparent);
  line-height:0;vertical-align:-.3em;margin-right:6px;
}
.review-stars{color:var(--sunset);letter-spacing:3px;font-size:.82rem;margin-bottom:14px;}
.review-author{
  display:flex;align-items:center;gap:14px;
  padding-top:20px;border-top:1px solid var(--color-border);
}
.review-avatar{
  width:38px;height:38px;border-radius:50%; background:color-mix(in srgb, var(--coral) 15%, transparent);
  color:var(--coral); display:flex;align-items:center;justify-content:center;
  font-weight:600;font-size:.88rem;font-family:var(--font-display);
  border:1px solid color-mix(in srgb, var(--coral) 25%, transparent);
}
.review-name{font-weight:500;font-size:.85rem;color:rgba(255,255,255,.7);}

.review-header{
  display:flex;align-items:center;gap:14px; margin-bottom:20px;
  padding-bottom:20px; border-bottom:1px solid var(--color-border);
}
.review-text{
  font-family:var(--font-serif);font-style:italic; font-size:1rem;line-height:1.55; color:rgba(255,255,255,.72);
}
.review-text::before{
  content:'\201C';font-size:2.8rem; color:color-mix(in srgb,var(--coral) 35%,transparent);
  line-height:0;vertical-align:-.3em;margin-right:5px;
}

.section-dark{
  background:var(--bg-primary); padding:100px 28px; border-bottom:1px solid var(--color-border); position:relative;
}
.section-dark .sec-label{
  font-family:var(--font-mono);font-size:.58rem;font-weight:600;
  letter-spacing:.28em;text-transform:uppercase; color:var(--coral);margin-bottom:24px;
  display:flex;align-items:center;gap:14px;
}
.section-dark .sec-label::before{content:'';width:28px;height:1px;background:currentColor;opacity:.6;}
.section-dark .sec-title{
  font-family:var(--font-display);font-weight:700; font-size:clamp(2rem,8.5vw,3rem);
  line-height:1.05;letter-spacing:-.03em;margin-bottom:48px; color:var(--text-main);
}
.section-dark .sec-title em{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  background:linear-gradient(135deg,var(--coral),var(--sunset));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent; background-clip:text;
}

/* ═══════════════════════════════════════════════════════════
   CTA FINAL
═══════════════════════════════════════════════════════════ */
.cta-final{
  background:var(--bg-surface); color:var(--text-main); padding:120px 28px;text-align:center;
  position:relative;overflow:clip; border-top:1px solid var(--color-border);
}
.cta-final::before{
  content:'';position:absolute; width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle,var(--coral),transparent 65%);
  top:-300px;left:50%;transform:translateX(-50%); filter:blur(100px);opacity:.12;
}
.cta-final::after{
  content:'';position:absolute; width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,var(--sunset),transparent 65%);
  bottom:-200px;right:-100px; filter:blur(90px);opacity:.08;
}

.cta-title{
  position:relative;z-index:1; font-family:var(--font-display);font-weight:800;
  font-size:clamp(2.4rem,11vw,3.8rem); line-height:1.02;letter-spacing:-.04em;margin-bottom:24px;
}
.cta-title em{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  background:linear-gradient(135deg,var(--coral),var(--sunset));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent; background-clip:text;
}
.cta-sub{
  position:relative;z-index:1; font-family:var(--font-mono);font-size:.95rem;
  margin-bottom:48px;max-width:320px;margin-left:auto;margin-right:auto;
  color:rgba(255,255,255,.45);line-height:1.65;
}
.btn-cta-wa{
  position:relative;z-index:1; display:inline-flex;align-items:center;justify-content:center;
  gap:12px;background:var(--coral);color:#fff; padding:22px 48px;border-radius:100px;
  font-family:var(--font-mono);font-weight:600;font-size:1.05rem; text-decoration:none;border:none;cursor:pointer;
  transition:all .55s var(--ease); box-shadow:0 16px 48px color-mix(in srgb,var(--coral) 30%,transparent), inset 0 1px 0 rgba(255,255,255,.15);
}
.btn-cta-wa::before{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.12) 0%,transparent 50%);
}
.btn-cta-wa:hover{
  transform:translateY(-6px); box-shadow:0 28px 60px color-mix(in srgb,var(--coral) 42%,transparent), inset 0 1px 0 rgba(255,255,255,.2);
}
.btn-cta-wa svg{width:20px;height:20px;fill:currentColor;}
.cta-mini{
  position:relative;z-index:1; font-family:var(--font-mono);font-size:.58rem;letter-spacing:.2em;
  text-transform:uppercase;margin-top:28px; color:rgba(255,255,255,.25);font-weight:500;
}
/* Ocultar Doodles de fondo para mantener el estilo editorial limpio */
.side-doodles, .section-doodle {
  display: none !important;
}
/* ═══════════════════════════════════════════════════════════
   MAP & SOCIAL
═══════════════════════════════════════════════════════════ */
.map-frame{
  border-radius:var(--radius-lg);overflow:clip;height:340px; border:1px solid var(--color-border);
  box-shadow:0 24px 80px rgba(0,0,0,.25); transition:box-shadow .5s var(--ease);
}
.map-frame:hover{box-shadow:0 32px 100px rgba(0,0,0,.35);}
.map-frame iframe{width:100%;height:100%;border:none;display:block}

.social-row{
  display:flex;justify-content:center;gap:14px; padding:72px 28px 60px;
  background:var(--bg-primary); border-bottom:1px solid var(--color-border);
}
.social-btn{
  width:60px;height:60px;border-radius:50%;background:transparent;
  display:flex;align-items:center;justify-content:center;text-decoration:none;
  transition:all .45s var(--ease); border:1px solid rgba(255,255,255,.1);
}
.social-btn:hover{
  transform:translateY(-5px); background:var(--text-main); border-color:var(--text-main);
  box-shadow:0 14px 30px rgba(0,0,0,.2);
}
.social-btn svg{width:24px;height:24px;fill:rgba(255,255,255,.55);transition:fill .3s;}
.social-btn:hover svg{fill:var(--bg-primary)}
.social-btn.disabled{opacity:.12;pointer-events:none}

/* ═══════════════════════════════════════════════════════════
   FOOTER & WA FLOAT
═══════════════════════════════════════════════════════════ */
.footer{
  background:var(--bg-primary); color:var(--text-main);
  padding:0 28px 100px;text-align:center; border-top:1px solid var(--color-border);
}
.footer-brand{
  font-family:var(--font-display);font-weight:700; font-size:1.25rem;letter-spacing:-.02em;
  display:block;padding:40px 0 20px; color:rgba(255,255,255,.7);
}
.footer-brand em{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  background:linear-gradient(135deg,var(--coral),var(--sunset));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent; background-clip:text;
}
.footer p{font-size:.8rem;color:rgba(255,255,255,.3);margin-bottom:6px;font-family:var(--font-mono);}
.footer a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .3s;}
.footer a:hover{color:var(--coral);}
.footer-mini{
  font-family:var(--font-mono);font-size:.56rem;letter-spacing:.22em;
  text-transform:uppercase;color:rgba(255,255,255,.15);margin-top:40px;font-weight:500; display:block;
}

#wa-float{
  position:fixed;bottom:24px;right:24px;z-index:9000;
  width:58px;height:58px;border-radius:50%; background:#25D366;
  display:flex;align-items:center;justify-content:center; box-shadow:0 16px 40px rgba(37,211,102,.28);
  text-decoration:none;opacity:0; transform:translateY(20px) scale(.85); transition:all .55s var(--ease-back);
}
#wa-float.visible{opacity:1;transform:translateY(0) scale(1)}
#wa-float:hover{ transform:translateY(-5px) scale(1.06); box-shadow:0 24px 56px rgba(37,211,102,.4); }
#wa-float svg{width:26px;height:26px;fill:#fff}
.wa-badge{
  position:absolute;top:-2px;right:-2px; background:var(--coral);color:#fff;
  border:2px solid var(--bg-primary); border-radius:50%;width:20px;height:20px;
  font-size:.6rem;font-weight:700; display:flex;align-items:center;justify-content:center;
}

/* ═══════════════════════════════════════════════════════════
   FADE UP
═══════════════════════════════════════════════════════════ */
.fade-up{
  opacity:0;transform:translateY(36px);
  transition:opacity .9s var(--ease),transform .9s var(--ease);
}
.fade-up.visible{opacity:1;transform:translateY(0)}

/* ═══════════════════════════════════════════════════════════
   💻 DESKTOP — Layout tipo revista, ancho completo
═══════════════════════════════════════════════════════════ */
@media(min-width:768px){

  body{ align-items:stretch; }

  .page {
    width: 100%; max-width: 100%; position: relative;
    background: var(--bg-primary); overflow: hidden; 
  }

  .section, .section-dark, .actions-block, .cta-final, .social-row, .footer{
    padding-left:max(48px, calc((100% - 1200px) / 2)); padding-right:max(48px, calc((100% - 1200px) / 2));
  }
  .section,.section-dark{ padding-top:130px; padding-bottom:130px; }

  .actions-block{ padding-top:80px; padding-bottom:80px; }
  .actions-block > .btn-primary, .actions-block > .btn-row, .actions-block > .btn-accent{ max-width:780px; margin-left:auto; margin-right:auto; }
  .actions-block .btn-primary{ font-size:1.1rem; padding:24px 28px; }
  .trust-chips{ max-width:780px; margin-left:auto; margin-right:auto; justify-content:center; flex-wrap:wrap; overflow:visible; }

  .marquee-track > *{ font-size:1.2rem; }

  .section{ text-align:center; }
  .section .eyebrow{ justify-content:center; font-size:.62rem; }
  .section .h-display{ font-size:clamp(2.6rem, 4vw, 3.6rem); }

  .info-bio{ font-size:2.1rem; max-width:900px; margin-left:auto; margin-right:auto; }
  .info-grid{ flex-direction:row; flex-wrap:wrap; max-width:1000px; margin:0 auto; justify-content:center; }
  .info-grid > *{ flex:1 1 300px; max-width:360px; text-align:left; }

  .bento{ grid-template-columns:repeat(2, 1fr); max-width:860px; margin:0 auto; gap:18px; }
  .service-card{ padding:40px 32px; text-align:left; min-height:220px; }
  .svc-icon{ font-size:2.2rem; }
  .service-card h3{ font-size:1.3rem; }
  .service-card p{ font-size:.95rem; }

  .schedule-card{ max-width:780px; margin:0 auto; padding:48px 56px; text-align:left; }
  .schedule-list li{ padding:20px 0; font-size:1.1rem; }

  #mp-foto-grid{
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: 280px 280px;
      max-width: 1000px;
      margin: 0 auto;
      gap: 16px;
    }

    /* Primera foto: ocupa las 2 filas (tall) */
    #mp-foto-grid > .gallery-item:nth-of-type(1){
      grid-row: span 2;
      height: 100%;
      aspect-ratio: unset !important;
    }

    /* Resto de fotos: altura fija, sin aspect-ratio que las estire */
    #mp-foto-grid > .gallery-item:not(:nth-of-type(1)){
      height: 280px;
      aspect-ratio: unset !important;
    }

    /* Asegurar que la img no se estire nunca */
    #mp-foto-grid .gallery-item img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }
  .gallery-placeholder-msg{ text-align:left; }

  .diff-stack{ flex-direction:row; gap:20px; max-width:1000px; margin:0 auto; }
  .diff-item{ flex:1; flex-direction:column; text-align:center; align-items:center; padding:40px 30px; }
  .diff-item:hover{ transform:translateY(-6px); }
  .diff-num,.dif-icon{ font-size:3.4rem; margin-bottom:10px; }
  .diff-content h3,.dif-text strong{ font-size:1.25rem; }
  .diff-content p,.dif-text span{ font-size:.95rem; }

  .section-dark{ text-align:center; }
  .section-dark .sec-label{ justify-content:center; }
  .reviews-scroll {
    display: flex; gap: 14px; overflow-x: auto; padding: 12px 0 36px;
    scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    margin: 0 -28px; padding-left: 28px; padding-right: 28px;
  }
  .review-card{ width:360px; text-align:left; }
  .review-text{ font-size:1.1rem; }

  .map-frame{ max-width:1000px; margin:0 auto; height:460px; }

  .cta-final{ padding-top:150px; padding-bottom:150px; }
  .cta-title{ font-size:clamp(3.5rem, 7vw, 5rem); }
  .cta-sub{ font-size:1.15rem; max-width:480px; }
  .btn-cta-wa{ font-size:1.15rem; padding:24px 56px; }

} /* ← cierre del @media(min-width:768px) */

/* ── Hero title legibilidad ── */
.hero-title .word,
.hero-title .word-outline {
  text-shadow: 0 2px 4px rgba(0,0,0,0.9), 0 4px 12px rgba(0,0,0,0.7), 0 0 30px rgba(0,0,0,0.6);
}
.hero-title .word-italic {
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.8));
}
.hero-sub {
  text-shadow: 0 1px 6px rgba(0,0,0,0.9), 0 2px 12px rgba(0,0,0,0.7);
}
.hero-center {
  position: relative;
  z-index: 2;
}
.hero-center::before {
  content: '';
  position: absolute;
  inset: -40px -60px;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.55) 0%, transparent 70%);
  z-index: -1;
  pointer-events: none;
}

