/* Complete hero media layout. Image-only controls text; sizing controls the frame.
   Natural sizing uses the <picture> image's actual dimensions, never a fixed crop. */
body.nivara-theme .nv-responsive-hero .hero-slide{
  display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;
  min-height:0;height:auto;padding:0;overflow:visible;
  --hero-media-ratio:var(--hero-desktop-media-ratio,12/5);
  --hero-media-fit:var(--hero-desktop-media-fit,contain);
  --hero-media-height:var(--hero-desktop-media-height,600px);
  --hero-media-x:var(--hero-desktop-media-x,50%);
  --hero-media-y:var(--hero-desktop-media-y,50%);
  background:var(--hero-desktop-media-background,var(--nv-hero-panel));
}
body.nivara-theme .nv-responsive-hero .hero-slide .hero-art{
  grid-area:1/1;position:relative;inset:auto;left:auto;top:auto;right:auto;bottom:auto;
  width:100%;height:auto;min-height:0;min-width:0;align-self:stretch;overflow:hidden;
}
body.nivara-theme .nv-responsive-hero .hero-slide .hero-art picture{display:block;width:100%;height:100%}
body.nivara-theme .nv-responsive-hero .hero-slide .hero-art img{
  display:block;width:100%;max-width:100%;height:100%;margin:0;
  position:absolute;inset:0;object-fit:var(--hero-media-fit);
  object-position:var(--hero-media-x) var(--hero-media-y);
}
body.nivara-theme .nv-responsive-hero .hero-slide .hero-inner{
  grid-area:1/1;position:relative;min-height:0;height:auto;align-self:stretch;
  z-index:1;min-width:0;background:transparent;
}
body.nivara-theme .nv-responsive-hero .hero-slide .hero-image-link{z-index:2}
body.nivara-theme .nv-responsive-hero .hero-controls{position:relative;inset:auto;padding:8px 12px;color:var(--nv-hero-text);background:var(--nv-hero-panel);width:100%;max-width:none;box-sizing:border-box}
@media(min-width:681px){
  body.nivara-theme .nv-responsive-hero .hero-slide[data-desktop-size="natural"] .hero-art{aspect-ratio:auto;min-height:0}
  body.nivara-theme .nv-responsive-hero .hero-slide[data-desktop-size="natural"] .hero-art picture{height:auto}
  body.nivara-theme .nv-responsive-hero .hero-slide[data-desktop-size="natural"] .hero-art img{position:static;height:auto;aspect-ratio:auto;object-fit:contain}
  body.nivara-theme .nv-responsive-hero .hero-slide:is([data-desktop-size="preset"],[data-desktop-size="custom_ratio"]) .hero-art{aspect-ratio:var(--hero-media-ratio)}
  body.nivara-theme .nv-responsive-hero .hero-slide[data-desktop-size="height"] .hero-art{min-height:var(--hero-media-height);aspect-ratio:auto}
  body.nivara-theme .nv-responsive-hero .hero-slide.hero-desktop-image-only .hero-inner{display:none}
  body.nivara-theme .nv-responsive-hero .hero-slide:not(.hero-desktop-image-only) .hero-inner{display:flex}
}
@media(max-width:680px){
  body.nivara-theme .nv-responsive-hero .hero-slide{
    --hero-media-ratio:var(--hero-mobile-media-ratio,4/5);
    --hero-media-fit:var(--hero-mobile-media-fit,contain);
    --hero-media-height:var(--hero-mobile-media-height,520px);
    --hero-media-x:var(--hero-mobile-media-x,50%);
    --hero-media-y:var(--hero-mobile-media-y,50%);
    background:var(--hero-mobile-media-background,var(--nv-hero-panel));
  }
  body.nivara-theme .nv-responsive-hero .hero-slide[data-mobile-size="natural"] .hero-art{aspect-ratio:auto;min-height:0}
  body.nivara-theme .nv-responsive-hero .hero-slide[data-mobile-size="natural"] .hero-art picture{height:auto}
  body.nivara-theme .nv-responsive-hero .hero-slide[data-mobile-size="natural"] .hero-art img{position:static;height:auto;aspect-ratio:auto;object-fit:contain}
  body.nivara-theme .nv-responsive-hero .hero-slide:is([data-mobile-size="preset"],[data-mobile-size="custom_ratio"]) .hero-art{aspect-ratio:var(--hero-media-ratio)}
  body.nivara-theme .nv-responsive-hero .hero-slide[data-mobile-size="height"] .hero-art{min-height:var(--hero-media-height);aspect-ratio:auto}
  body.nivara-theme .nv-responsive-hero .hero-slide.hero-mobile-image-only .hero-inner{display:none}
  body.nivara-theme .nv-responsive-hero .hero-slide:not(.hero-mobile-image-only) .hero-inner{display:flex;width:100%;padding:24px}
  body.nivara-theme .nv-responsive-hero .hero-slide .hero-copy--mobile:empty{display:none}
}
/* Native scroll snapping keeps every slide in flow, including slide 2 and later. */
body.nivara-theme .nv-responsive-hero .hero-slides{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;align-items:flex-start;overscroll-behavior-x:contain;direction:ltr}
body.nivara-theme .nv-responsive-hero .hero-slides::-webkit-scrollbar{display:none}
body.nivara-theme .nv-responsive-hero .hero-slides>.hero-slide{flex:0 0 100%;width:100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
body.nivara-theme .nv-responsive-hero .hero-art img{user-select:none;-webkit-user-drag:none}
@media(max-width:680px){
 body.nivara-theme .nv-responsive-hero .hero-controls{display:none!important}
 body.nivara-theme .nv-responsive-hero .hero-slides{touch-action:pan-x pan-y pinch-zoom}
}

/* Constrain the viewport, never the offscreen slides' intrinsic width. */
body.nivara-theme .nv-responsive-hero{width:100%;min-width:0;max-width:100%;overflow:hidden}
body.nivara-theme .nv-responsive-hero .hero-slides{width:100%;max-width:100%;min-width:0;gap:0;margin:0;padding:0;box-sizing:border-box;position:relative;touch-action:pan-x pan-y pinch-zoom}
body.nivara-theme .nv-responsive-hero .hero-slides>.hero-slide{box-sizing:border-box;max-width:100%;margin:0;align-self:flex-start}
body.nivara-theme .nv-responsive-hero .hero-slides.is-dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}
body.nivara-theme .nv-responsive-hero[data-carousel] .hero-slides{cursor:grab}
body.nivara-theme .nv-responsive-hero .hero-image-link{touch-action:pan-x pan-y pinch-zoom;-webkit-user-drag:none}
/* Desktop controls float over the image instead of adding a bottom strip. */
@media(min-width:681px){
 body.nivara-theme .nv-responsive-hero .hero-controls{position:absolute;inset:auto 0 12px;z-index:3;background:transparent;padding:0 16px}
 body.nivara-theme .nv-responsive-hero .hero-controls .icon-button{background:#fff;color:#242b27;border:1px solid #242b2726;border-radius:50%}
 body.nivara-theme .nv-responsive-hero .hero-controls .carousel-dots{padding:8px 10px;background:#fff;color:#242b27;border-radius:20px}
}
/* Text overlays must never stretch the image's row or create letterboxing. */
body.nivara-theme .nv-responsive-hero .hero-slide .hero-inner{
 position:absolute;inset:0;grid-area:auto;width:100%;max-width:none;height:100%;min-height:0;margin:0;padding:clamp(12px,3vw,40px);box-sizing:border-box;overflow:hidden;pointer-events:none
}
body.nivara-theme .nv-responsive-hero .hero-slide .hero-copy{padding:0;margin:0;max-height:100%;overflow:auto;pointer-events:auto}
body.nivara-theme .nv-responsive-hero .hero-slide .hero-art,
body.nivara-theme .nv-responsive-hero .hero-slide .hero-art picture,
body.nivara-theme .nv-responsive-hero .hero-slide .hero-art img{margin:0;padding:0;border:0;line-height:0}
@media(max-width:680px){
 body.nivara-theme .nv-responsive-hero .hero-slide:not(.hero-mobile-image-only) .hero-inner{padding:16px}
}
