/* Personal travel moments in the site's existing editorial layouts. */
.aboutSmallMoment{display:flex;align-items:center;gap:17px;margin:28px 0 0}
.aboutSmallMoment img{display:block;width:112px;height:149px;object-fit:cover;border-radius:3px}
.aboutSmallMoment figcaption{max-width:180px;color:var(--muted);font:italic .9rem/1.5 Georgia,serif}
.cultureWideMoment{margin-block:20px 55px}
.cultureWideMoment img{display:block;width:100%;max-height:440px;object-fit:cover;object-position:center 55%;border-radius:4px}
.cultureWideMoment figcaption{margin-top:10px;color:#55675f;font:.88rem/1.5 Georgia,serif}
.cityEverydayPhotos{display:grid;grid-template-columns:minmax(0,1fr) 158px minmax(0,1fr);gap:clamp(12px,2.5vw,28px);align-items:end;margin-block:10px 65px}
.cityEverydayPhotos figure{min-width:0;margin:0}
.cityEverydayPhotos img{display:block;width:100%;height:310px;object-fit:cover;border-radius:4px}
.cityEverydayPhotos figure:nth-child(2) img{height:210px;object-fit:contain}
.cityEverydayPhotos figcaption{margin-top:10px;color:#55675f;font:.88rem/1.5 Georgia,serif}
@media(max-width:700px){.cityEverydayPhotos{grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-block:0 55px}.cityEverydayPhotos figure:nth-child(2){grid-column:1/-1;grid-row:2;max-width:158px}.cityEverydayPhotos img{height:240px}.cityEverydayPhotos figure:nth-child(2) img{height:210px}.cultureWideMoment img{max-height:320px}}

/* A second series of personal photographs, sized to their source files. */
.aboutTravelVideo{justify-self:center;width:min(100%,330px);margin:0}
.aboutTravelVideo video{display:block;width:100%;max-height:530px;aspect-ratio:9/16;object-fit:cover;border-radius:4px}
.aboutTravelVideo figcaption,.ayutthayaOwnPhotos figcaption,.beachSmallMoment figcaption,.favoriteQuietMoment figcaption{margin-top:10px;color:#55675f;font:.88rem/1.5 Georgia,serif}
.ayutthayaOwnPhotos{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:clamp(12px,2vw,24px);margin-block:24px 70px}
.ayutthayaOwnPhotos figure{min-width:0;margin:0}
.ayutthayaOwnPhotos img{display:block;width:100%;height:350px;object-fit:cover;border-radius:4px}
.beachSmallMoment{max-width:276px;margin:18px 0 0 auto}
.beachSmallMoment img{display:block;width:100%;height:auto;border-radius:4px}
.favoriteQuietMoment{display:flex;align-items:end;gap:24px;margin-block:12px 70px}
.favoriteQuietMoment img{display:block;width:min(100%,270px);height:330px;object-fit:cover;border-radius:4px}
.favoriteQuietMoment figcaption{max-width:220px;padding-bottom:12px}
@media(max-width:700px){.ayutthayaOwnPhotos{grid-template-columns:1fr 1fr;margin-block:12px 55px}.ayutthayaOwnPhotos figure:first-child{grid-column:1/-1}.ayutthayaOwnPhotos figure:first-child img{height:260px}.ayutthayaOwnPhotos img{height:230px}.aboutTravelVideo{width:min(100%,290px)}.favoriteQuietMoment{align-items:start;flex-direction:column;gap:8px}.favoriteQuietMoment img{height:310px}}

/* Added photographs sit alongside the site's original imagery. */
.homeOwnPhotoAlbum,.aboutOwnPhotoAlbum{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(14px,3vw,36px);padding-block:clamp(52px,7vw,90px)}
.homeOwnPhotoAlbum figure,.aboutOwnPhotoAlbum figure{min-width:0;margin:0}
.homeOwnPhotoAlbum img,.aboutOwnPhotoAlbum img{display:block;width:100%;height:330px;object-fit:cover;border-radius:4px}
.homeOwnPhotoAlbum figure:first-child img,.aboutOwnPhotoAlbum figure:first-child img{object-position:center 38%}
.homeOwnPhotoAlbum figcaption,.aboutOwnPhotoAlbum figcaption{margin-top:10px;color:#55675f;font:.88rem/1.5 Georgia,serif}
.aboutMediumMoment img{width:170px;height:225px}
.foodOwnMoment{display:flex;align-items:end;gap:22px;margin-block:36px 65px}
.foodOwnMoment img{display:block;width:min(100%,260px);height:330px;object-fit:cover;border-radius:4px}
.foodOwnMoment figcaption{max-width:240px;padding-bottom:12px;color:#55675f;font:.95rem/1.5 Georgia,serif}
.cultureHistoryCatalogPage .travelPhotoStory figure:nth-child(4n + 11) img{aspect-ratio:4/3}
@media(max-width:700px){.homeOwnPhotoAlbum,.aboutOwnPhotoAlbum{grid-template-columns:1fr 1fr}.homeOwnPhotoAlbum img,.aboutOwnPhotoAlbum img{height:210px}.homeOwnPhotoAlbum figure:nth-child(2) img,.aboutOwnPhotoAlbum figure:nth-child(2) img{object-position:center}.foodOwnMoment{align-items:start;flex-direction:column;gap:8px;margin-block:25px 50px}.foodOwnMoment img{height:290px}.aboutMediumMoment img{width:140px;height:187px}}

/* Homepage hero slideshow */
.homeHeroSlider { position: absolute; inset: 0; overflow: hidden; }
.homeHeroSlide { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity 1.5s ease-in-out; }
.homeHeroSlide.isActive { opacity: 1; }
.homeHeroSlide img { transform: scale(1); transition: transform 12s ease-out; }
.homeHeroSlide.isActive img { transform: scale(1.025); }
.homeHeroSlideControls {
  position: absolute; top: 18px; right: max(10px, env(safe-area-inset-right)); z-index: 3;
  display: flex; align-items: center; gap: 3px; padding: 4px 6px;
  border: 1px solid rgba(255,255,255,.36); border-radius: 999px;
  background: rgba(8,30,24,.5); backdrop-filter: blur(8px);
}
.homeHeroSlideControls button { appearance: none; border: 0; cursor: pointer; }
.homeHeroSlidePause { width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font-size: .72rem; }
.homeHeroSlideDot { width: 18px; height: 28px; padding: 0; display: grid; place-items: center; background: transparent; }
.homeHeroSlideDot::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: rgba(255,255,255,.6); transition: width .25s ease, background-color .25s ease; }
.homeHeroSlideDot.isActive::before { width: 16px; background: #fff; }
.homeHeroSlideControls button:focus-visible { outline: 3px solid #f4a07f; outline-offset: 3px; }
@media (max-width: 700px) {
  .homeHeroSlideControls { top: 12px; right: max(8px, env(safe-area-inset-right)); }
  .homeHeroSlide1 img { object-position: 63% center; }
  .homeHeroSlide2 img { object-position: 58% center; }
}
@media (prefers-reduced-motion: reduce) {
  .homeHeroSlide, .homeHeroSlide img, .homeHeroSlideDot::before { transition: none; }
  .homeHeroSlide.isActive img { transform: none; }
}
