/* ---------- homepage full-page scroll (js/fullpage.js) ---------- */
html.home{scroll-snap-type:y proximity}
html.home.fp-snap{scroll-snap-type:y mandatory}            /* low-power phones: native snap fallback */
html.home.fp-on,html.home.fp-on body{height:100%;overflow:hidden;overscroll-behavior:none;scroll-snap-type:none;scroll-behavior:auto}
html.fp-on #main{position:fixed;inset:0;height:100vh;height:100dvh;outline:0}
html.fp-on .fp-s{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;margin:0;overflow:hidden;scroll-snap-align:none;touch-action:none;will-change:transform;backface-visibility:hidden;
  transform:translate3d(0,100%,0);transition:transform .4s cubic-bezier(.7,0,.3,1)}
html.fp-on .fp-s.at{transform:translate3d(0,0,0)}
html.fp-on .fp-s.below{pointer-events:none}
/* footer: slides up over the last panel at its own height; scrolls inside if taller than the screen */
html.fp-on .fp-foot{top:auto;bottom:0;height:auto;max-height:100vh;max-height:100dvh;overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--paper);box-shadow:0 -12px 40px rgba(0,0,0,.12)}
html.fp-on .panel>img,html.fp-on .panel>video,html.fp-on .hero .frame img{width:100%;height:100%;object-fit:cover}
html.fp-on .duo{height:100vh;height:100dvh}
/* reduced motion: quick fade instead of the slide */
html.fp-on.fp-rm .fp-s{transform:none;opacity:0;transition:opacity .18s ease}
html.fp-on.fp-rm .fp-s.at{opacity:1}
@media (max-width:900px){
  /* phones: the two-tile sections are split — each tile is a full-screen, full-bleed panel with the caption over the photo */
  html.fp-on .duo.fp-split{display:contents}
  html.fp-on .duo.fp-split>a.fp-s{display:block;width:100vw;height:100vh;height:100dvh;background:#111;padding:0}
  html.fp-on .duo.fp-split>a.fp-s .img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;background:#111}
  html.fp-on .duo.fp-split>a.fp-s .img img{width:100%;height:100%;object-fit:cover;transform:none!important}
  html.fp-on .duo.fp-split>a.fp-s .cap{position:absolute;left:0;right:0;bottom:90px;margin:0;text-align:center;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.55);z-index:2}
  html.fp-on .duo.fp-split>a.fp-s .cap h2{margin-bottom:0;color:#fff}
  html.fp-on .duo.fp-split>a.fp-s .cap span{display:block;margin-top:2px}
}

/* mobile: a tile that shows its image inside a square on a paper panel instead of full-bleed */
@media (max-width:900px){
html.fp-on .fp-split>a.fp-s.m-square{background:var(--paper,#fff);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:calc(var(--hdr,56px) + 12px) 24px 48px}
html.fp-on .fp-split>a.fp-s.m-square .img{position:relative;inset:auto;width:min(100vw - 48px,62dvh);height:auto;aspect-ratio:1/1;background:#f1efeb;overflow:hidden;flex:none}
html.fp-on .fp-split>a.fp-s.m-square .img img{object-fit:cover;object-position:center 40%}
html.fp-on .fp-split>a.fp-s.m-square .cap{position:static;color:var(--ink,#111);text-shadow:none;margin:0}
html.fp-on .fp-split>a.fp-s.m-square .cap h2{color:var(--ink,#111)}
}
