.hap-section{position:relative;padding:8vh 4vw;background:transparent}.hap-shell{max-width:1280px;margin:0 auto}.hap-section-head{text-align:center;margin-bottom:5vh}.hap-section-head h2{font-size:clamp(2rem,4vw,4.5rem);margin:0 0 12px}.hap-layout{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.4fr);gap:clamp(28px,6vw,90px);align-items:start}.hap-cover{position:sticky;top:12vh;align-self:start;text-align:center}.hap-cover img{width:100%;max-height:64vh;object-fit:cover;border-radius:24px;display:block}.hap-cover h3{font-size:clamp(1.5rem,2.5vw,3rem)}.hap-stream{display:flex;flex-direction:column;gap:11vh}.hap-card{will-change:transform,opacity;transition:transform .16s linear,opacity .2s ease}.hap-card img{width:100%;object-fit:cover;border-radius:24px;display:block}.hap-card-copy{text-align:center;padding:18px 8px}.hap-card-copy h3{font-size:clamp(1.4rem,2vw,2.4rem);margin:0 0 8px}
.hap-size-compact .hap-shell{max-width:980px}.hap-size-large .hap-shell{max-width:1450px}.hap-size-wide .hap-shell{max-width:none}
.hap-effect-polaroid .hap-card{padding:16px;background:#fff;box-shadow:0 18px 45px rgba(0,0,0,.14);border-radius:8px}.hap-effect-polaroid .hap-card img{border-radius:2px}
.hap-effect-horizontal .hap-layout{display:block}.hap-effect-horizontal .hap-cover{position:relative;top:auto;max-width:620px;margin:0 auto 40px}.hap-effect-horizontal .hap-stream{display:grid;grid-auto-flow:column;grid-auto-columns:min(78vw,520px);overflow-x:auto;gap:28px;padding:10px 4vw 30px;scroll-snap-type:x mandatory}.hap-effect-horizontal .hap-card{scroll-snap-align:center}
.hap-effect-editorial .hap-card:nth-child(even) .hap-card-copy{text-align:left}.hap-effect-editorial .hap-card:nth-child(odd) .hap-card-copy{text-align:right}
.hap-effect-immersive .hap-card img{max-height:82vh}
@media(max-width:820px){.hap-layout{grid-template-columns:1fr}.hap-cover{position:relative;top:auto}.hap-stream{gap:7vh}}
/* V1.1.1 — protección de textos frente a estilos globales del tema */
.hap-section .hap-section-head,
.hap-section .hap-cover,
.hap-section .hap-card-copy{
  position:relative !important;
  z-index:3 !important;
  visibility:visible !important;
  opacity:1 !important;
}
.hap-section .hap-section-head h2,
.hap-section .hap-section-head .hap-intro,
.hap-section .hap-section-head .hap-intro p,
.hap-section .hap-cover h3,
.hap-section .hap-cover div,
.hap-section .hap-cover p,
.hap-section .hap-card-copy h3,
.hap-section .hap-card-copy div,
.hap-section .hap-card-copy p{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  transform:none !important;
  clip:auto !important;
  clip-path:none !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  text-indent:0 !important;
}
.hap-section .hap-section-head h2,
.hap-section .hap-cover h3,
.hap-section .hap-card-copy h3{
  color:#183c2b !important;
}
.hap-section .hap-intro,
.hap-section .hap-intro p,
.hap-section .hap-cover div,
.hap-section .hap-cover p,
.hap-section .hap-card-copy div,
.hap-section .hap-card-copy p{
  color:#2b2b2b !important;
  line-height:1.65 !important;
}
.hap-section .hap-card-copy{
  background:rgba(255,255,255,.92) !important;
  border-radius:0 0 18px 18px !important;
  margin-top:-8px !important;
  padding:22px 18px 18px !important;
}

/* V1.2.0 — animaciones configurables por álbum */
.hap-section .hap-card{--hap-enter-transform:translateY(0);--hap-scroll-transform:translate3d(0,0,0);will-change:transform,opacity,filter;transform:var(--hap-enter-transform);transition:transform var(--hap-duration,750ms) cubic-bezier(.22,1,.36,1) var(--hap-delay,0ms),opacity var(--hap-duration,750ms) ease var(--hap-delay,0ms),filter var(--hap-duration,750ms) ease var(--hap-delay,0ms);transform-style:preserve-3d}
.hap-section .hap-card.hap-visible{transform:var(--hap-scroll-transform);opacity:1;filter:none}
.hap-section .hap-card img{transition:transform .55s cubic-bezier(.22,1,.36,1),filter .45s ease}
.hap-entrance-none .hap-card{opacity:1}
.hap-entrance-fade .hap-card:not(.hap-visible){opacity:0}
.hap-entrance-fade_up .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:translateY(70px)}
.hap-entrance-fade_down .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:translateY(-70px)}
.hap-entrance-slide_left .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:translateX(-110px)}
.hap-entrance-slide_right .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:translateX(110px)}
.hap-entrance-zoom_in .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:scale(.76)}
.hap-entrance-zoom_out .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:scale(1.18)}
.hap-entrance-flip .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:perspective(1000px) rotateY(65deg)}
.hap-entrance-rotate .hap-card:not(.hap-visible){opacity:0;--hap-enter-transform:rotate(-7deg) scale(.9)}
.hap-entrance-blur .hap-card:not(.hap-visible){opacity:0;filter:blur(18px);--hap-enter-transform:scale(1.06)}
.hap-hover-zoom .hap-card.hap-visible:hover{transform:var(--hap-scroll-transform) scale(1.025)!important}
.hap-hover-lift .hap-card.hap-visible:hover{transform:var(--hap-scroll-transform) translateY(-14px)!important;filter:drop-shadow(0 22px 24px rgba(0,0,0,.16))}
.hap-hover-tilt .hap-card.hap-visible:hover{transform:var(--hap-scroll-transform) perspective(1000px) rotateX(2deg) rotateY(-3deg) scale(1.015)!important}
.hap-hover-glow .hap-card.hap-visible:hover{filter:drop-shadow(0 0 22px rgba(184,142,62,.48))}
.hap-hover-image_zoom .hap-card{overflow:hidden;border-radius:24px}
.hap-hover-image_zoom .hap-card:hover img{transform:scale(1.075)}
@media(prefers-reduced-motion:reduce){.hap-section .hap-card,.hap-section .hap-card img{transition:none!important;animation:none!important}.hap-section .hap-card{opacity:1!important;filter:none!important;transform:none!important}}

/* V1.3.0 — modelos visuales adicionales */
.hap-slider-controls{display:none;align-items:center;justify-content:center;gap:18px;margin-top:24px}
.hap-slider-controls>button{width:48px;height:48px;border:1px solid rgba(24,60,43,.22);border-radius:50%;background:#fff;color:#183c2b;font-size:34px;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.08);transition:transform .25s ease,background .25s ease,color .25s ease}
.hap-slider-controls>button:hover{transform:scale(1.08);background:#183c2b;color:#fff}
.hap-dots{display:flex;align-items:center;justify-content:center;gap:8px}
.hap-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:rgba(24,60,43,.25);cursor:pointer;transition:width .25s ease,background .25s ease,border-radius .25s ease}
.hap-dots button.is-active{width:26px;border-radius:6px;background:#b88e3e}
.hap-effect-slider .hap-layout,.hap-effect-slider_fade .hap-layout,.hap-effect-coverflow .hap-layout{display:block}
.hap-effect-slider .hap-cover,.hap-effect-slider_fade .hap-cover,.hap-effect-coverflow .hap-cover{position:relative;top:auto;max-width:620px;margin:0 auto 34px}
.hap-effect-slider .hap-stream,.hap-effect-slider_fade .hap-stream,.hap-effect-coverflow .hap-stream{display:grid;grid-template-columns:minmax(0,1fr);max-width:780px;margin:0 auto;overflow:hidden;gap:0}
.hap-effect-slider .hap-card,.hap-effect-slider_fade .hap-card,.hap-effect-coverflow .hap-card{grid-area:1/1;pointer-events:none;opacity:0!important;visibility:hidden;transition:transform .75s cubic-bezier(.22,1,.36,1),opacity .6s ease,filter .6s ease!important}
.hap-effect-slider .hap-card{transform:translateX(calc(var(--hap-slide-offset,1) * 105%))!important}
.hap-effect-slider_fade .hap-card{transform:scale(.96)!important;filter:blur(8px)}
.hap-effect-slider .hap-card.hap-active,.hap-effect-slider_fade .hap-card.hap-active,.hap-effect-coverflow .hap-card.hap-active{pointer-events:auto;opacity:1!important;visibility:visible;z-index:3}
.hap-effect-slider .hap-card.hap-active{transform:translateX(0)!important}
.hap-effect-slider_fade .hap-card.hap-active{transform:scale(1)!important;filter:none}
.hap-effect-slider .hap-slider-controls,.hap-effect-slider_fade .hap-slider-controls,.hap-effect-coverflow .hap-slider-controls{display:flex}
.hap-effect-coverflow .hap-stream{max-width:1100px;overflow:visible;perspective:1200px}
.hap-effect-coverflow .hap-card{width:min(70vw,560px);justify-self:center;visibility:visible;transform:translateX(calc(var(--hap-slide-offset,1) * 43%)) translateZ(-220px) rotateY(calc(var(--hap-slide-offset,1) * -22deg)) scale(.78)!important;filter:brightness(.62);z-index:1}
.hap-effect-coverflow .hap-card.hap-active{transform:translateX(0) translateZ(0) rotateY(0) scale(1)!important;filter:none}
.hap-effect-coverflow .hap-card.hap-before,.hap-effect-coverflow .hap-card.hap-after{opacity:.55!important}
.hap-effect-mosaic .hap-layout{display:block}.hap-effect-mosaic .hap-cover{position:relative;top:auto;max-width:620px;margin:0 auto 40px}.hap-effect-mosaic .hap-stream{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}.hap-effect-mosaic .hap-card{grid-column:span 5}.hap-effect-mosaic .hap-card:nth-child(3n+2){grid-column:span 7}.hap-effect-mosaic .hap-card:nth-child(3n){grid-column:3/span 8}.hap-effect-mosaic .hap-card img{height:100%;max-height:620px}.hap-effect-mosaic .hap-card:hover{transform:translateY(-10px) scale(1.015)!important;z-index:4}
.hap-effect-filmstrip .hap-layout{display:block}.hap-effect-filmstrip .hap-cover{position:relative;top:auto;max-width:620px;margin:0 auto 40px}.hap-effect-filmstrip .hap-stream{display:grid;grid-auto-flow:column;grid-auto-columns:min(72vw,460px);overflow-x:auto;gap:18px;padding:26px 5vw 34px;background:#161616;scroll-snap-type:x mandatory;scrollbar-color:#b88e3e #292929}.hap-effect-filmstrip .hap-card{scroll-snap-align:center;background:#fff;padding:12px;border-radius:4px}.hap-effect-filmstrip .hap-card:before,.hap-effect-filmstrip .hap-card:after{content:"";display:block;height:12px;background:repeating-linear-gradient(90deg,#161616 0 14px,transparent 14px 26px);margin:0 0 10px}.hap-effect-filmstrip .hap-card:after{margin:10px 0 0}
@media(max-width:820px){.hap-effect-mosaic .hap-stream{grid-template-columns:1fr}.hap-effect-mosaic .hap-card,.hap-effect-mosaic .hap-card:nth-child(3n+2),.hap-effect-mosaic .hap-card:nth-child(3n){grid-column:1}.hap-effect-coverflow .hap-card{width:82vw}.hap-slider-controls>button{width:44px;height:44px}}
