.hpc-photo-place {
  width: min(100%, 1160px);
  margin: 4px auto 0;
  padding: 0 2px;
  color: #70695f;
  font-family: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 9.6px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .08em;
  text-align: center;
}

/* Keep embedded iPhone / QR browser views anchored to the actual document.
   The footer remains the final edge instead of exposing an unbounded-looking
   rubber-band area below it. */
html,
body {
  overscroll-behavior-y: none;
}

body {
  overflow-x: hidden;
}

body > footer:last-of-type {
  margin-bottom: 0 !important;
}

/* Home pages: every photograph/image caption follows one consistent edge. */
.homePage .hpc-photo-place,
.homePage figure > figcaption {
  box-sizing: border-box;
  text-align: right !important;
}

.hpc-photo-place--ai {
  color: #7d756b;
  font-size: 8.8px;
  letter-spacing: .06em;
}

.hpc-photo-place--executive {
  box-sizing: border-box;
  width: 100%;
  margin: 1px 0 0;
  padding: 0 2px;
  background: #fff;
  text-align: right;
}

/* Executive Transfer: keep every photograph disclosure aligned to the
   right edge in both Japanese and English. */
body:has(.hero-photo) .hpc-photo-place,
body:has(.official-photo-sequence) .hpc-photo-place,
body:has(.hero-photo) .hero-photo::after,
body:has(.hero-photo) .intro-photo::after,
body:has(.hero-photo) .card-img::after,
body:has(.official-photo-sequence) .official-photo-sequence figure::after {
  text-align: right !important;
}

/* Executive Transfer disclosure is rendered by CSS so it remains visible
   even when the optional caption-enhancement script is unavailable. */
body:has(.hero-photo) .hpc-photo-place--executive,
body:has(.official-photo-sequence) .hpc-photo-place--executive {
  display: block !important;
}

/* Executive Transfer uses real caption nodes. Suppress every legacy
   pseudo-element fallback so no browser can render a second copy. */
body:has(.official-photo-sequence) main > .hero::after,
body:has(.official-photo-sequence) .official-photo-sequence figure::after {
  content: none !important;
  display: none !important;
}

.hero-photo::after,
.intro-photo::after,
.card-img::after,
main > .hero::after,
.official-photo-sequence figure::after {
  content: "Concept image (AI-generated) · イメージ画像（AI生成）";
  box-sizing: border-box;
  display: block !important;
  width: 100%;
  margin: 1px 0 0;
  padding: 0 2px;
  color: #7d756b;
  background: #fff;
  font-family: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 8.8px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .06em;
  text-align: left;
}

/* Gallery hero contains no concept image. Do not render the global
   AI-generated disclosure beneath its introductory copy. */
body.gallery-story main > .hero::after {
  content: none !important;
  display: none !important;
}

/* Executive Transfer's split hero already carries its disclosure on
   .hero-photo. Do not add the same disclosure a second time to the outer
   hero section (which also creates an empty grid row on mobile). */
body:has(.hero-photo) main > .hero::after {
  content: none !important;
  display: none !important;
}

/* The Japanese home page also uses `main > .hero`, but its main photograph is
   a real image of Itsukushima Shrine.  Keep the Executive Transfer disclosure
   from creating an extra caption row and navy band on the home page. */
.homeHeader + .hero::after {
  content: none !important;
  display: none !important;
}

/* FAQ heroes contain text only. Never render an image disclosure there. */
body:has(.faq) main > .hero::after {
  content: none !important;
  display: none !important;
}

/* Hidden Hiroshima uses real photographs. Suppress the Executive Transfer
   disclosure fallback and let the place-name caption script label them. */
body:has(#why-mitakidera) .hero-photo::after,
body:has(main > .hero > img[src="/hidden.jpg"]) main > .hero::after {
  content: none !important;
  display: none !important;
}

.hero-photo,
.intro-photo,
.card-img,
main > .hero,
.official-photo-sequence figure {
  overflow: visible !important;
}

/* Executive Transfer keeps the disclosure in normal layout immediately
   after the image, so later content cannot cover or clip it. */
body:has(.hero-photo) .hero-photo,
body:has(.hero-photo) .intro-photo,
body:has(.hero-photo) .card-img,
body:has(.official-photo-sequence) .official-photo-sequence figure {
  overflow: visible !important;
  height: auto !important;
}

/* The legacy Executive Transfer hero reserved a minimum photo height. Once
   the disclosure moved into normal flow, that reservation appeared as an
   empty beige band below the caption. Let the image and caption define the
   complete height instead. */
body:has(.hero-photo) .hero-photo {
  min-height: 0 !important;
}

body:has(.hero-photo) main > .hero {
  background: #fff !important;
}

body:has(.hero-photo) main > .hero > .hero-copy {
  background: var(--bg) !important;
}

body:has(.hero-photo) .hero-photo > img,
body:has(.hero-photo) .intro-photo > img,
body:has(.hero-photo) .card-img > img,
body:has(.official-photo-sequence) main > .hero > img,
body:has(.official-photo-sequence) .official-photo-sequence figure > img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

figure > .hpc-photo-place {
  margin-top: 4px;
  text-align: center !important;
}

/* Site-wide photo-caption standard: English / roman lettering only, centered. */
body figure > figcaption,
body .hpc-photo-place,
body .hero-location,
body .peace-cathedral-caption,
body .hpc-peace-hero-caption,
body .distillery-gallery figcaption,
body .distillery-gallery-en figcaption,
body .place-card-image figcaption {
  text-align: center !important;
}

figure > .hpc-photo-place + figcaption {
  padding-top: 3px !important;
}

/* Keep the confirmed Gastronomy & Spirits captions visually consistent
   with the photo labels used on the home page. */
.hero-location,
.distillery-gallery figcaption,
.place-card-image figcaption,
.distillery-gallery-en figcaption,
.distillery-gallery-en .hpc-photo-place,
.restaurant-photo-en .hpc-photo-place {
  margin: 0 !important;
  padding: 0 2px !important;
  color: #70695f;
  background: #fff !important;
  font-family: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  font-size: 9.6px !important;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .08em;
}

.hero-location {
  width: min(100%, 1160px) !important;
  margin: 1px auto 0 !important;
}

.distillery-gallery figure,
.place-card-image,
.distillery-gallery-grid-en figure,
.restaurant-photo-en {
  overflow: visible !important;
}

.promiseImg {
  position: relative;
  overflow: visible !important;
}

.promiseImg > .hpc-photo-place--promise {
  position: absolute;
  z-index: 2;
  top: 100%;
  left: 0;
  margin-top: 4px;
}

/* English home page: image and place label remain one visual unit, matching
   the close caption spacing used on the Japanese home page. */
.card > .hpc-home-card-photo {
  width: 100%;
  margin: 0;
  overflow: visible;
}

.card > .hpc-home-card-photo > img {
  display: block;
  width: 100%;
}

.card:nth-child(even) > .hpc-home-card-photo {
  order: 2;
}

.card > .hpc-home-card-photo > .hpc-photo-place {
  width: 100%;
  margin-top: 4px;
  padding-right: 2px;
  padding-left: 2px;
  text-align: left;
}

/* Experiences index: the photograph and its place label are one grid item. */
.experienceIndexCard > .hpc-experience-card-photo {
  width: 100%;
  margin: 0;
  overflow: visible;
}

.experiences-page .card > .hpc-experience-card-photo {
  width: 100%;
  margin: 0;
  overflow: visible;
}

.experienceIndexCard:nth-child(even) > .hpc-experience-card-photo {
  order: 2;
}

.experiences-page .card:nth-child(even) > .hpc-experience-card-photo {
  order: 2;
}

.hpc-experience-card-photo > .experienceIndexImage,
.hpc-experience-card-photo > .experienceIndexImage > img,
.hpc-experience-card-photo > img {
  display: block;
  width: 100%;
}

.hpc-experience-card-photo > .hpc-photo-place {
  width: 100%;
  margin: 2px 0 0;
  padding-right: 2px;
  padding-left: 2px;
  text-align: right;
}

/* Six Experiences: repeated journey links remain secondary actions, while
   the consultation button is the single primary action at the end. */
.experiencesPage .journeyLink,
.experiences-page .textlink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 42px;
  margin-top: 20px;
  padding: 11px 18px;
  border: 1px solid #b79a6b;
  color: #3b342b !important;
  background: transparent;
  text-decoration: none;
}

.experiencesPage .journeyLink:hover,
.experiencesPage .journeyLink:focus-visible,
.experiences-page .textlink:hover,
.experiences-page .textlink:focus-visible {
  background: #efe5d4;
  outline: none;
}

.hpc-experiences-consult-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 50px;
  margin: 28px auto 0 !important;
  padding: 14px 28px !important;
  border: 0 !important;
  color: #fff !important;
  background: #8b7047 !important;
  font: 500 11px/1.2 Arial, sans-serif !important;
  letter-spacing: .14em;
  text-decoration: none;
}

.experiencesClosing .hpc-experiences-consult-button {
  width: fit-content;
}

/* Shared closing consultation area used by every Japanese and English
   journey page. It matches the confirmed Home / Six Experiences treatment. */
.hpc-unified-consult-section {
  box-sizing: border-box;
  width: 100%;
  padding: 96px 24px !important;
  color: #241f18 !important;
  background: #fff !important;
  text-align: center !important;
}

.hpc-unified-consult-section .eyebrow {
  margin: 0 0 18px !important;
  color: #9b7d4f !important;
  font: 500 10px/1.4 Arial, sans-serif !important;
  letter-spacing: .18em !important;
}

.hpc-unified-consult-section h2 {
  margin: 0 !important;
  color: #241f18 !important;
  font-size: clamp(30px, 4vw, 52px) !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
}

.hpc-unified-consult-section > p:not(.eyebrow) {
  max-width: 680px;
  margin: 22px auto 0 !important;
  color: #756b5d !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
}

.hpc-unified-consult-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 50px;
  margin: 28px auto 0 !important;
  padding: 14px 28px !important;
  border: 0 !important;
  color: #fff !important;
  background: #c8ad7f !important;
  font: 500 11px/1.2 Arial, sans-serif !important;
  letter-spacing: .14em !important;
  text-decoration: none !important;
}

.hpc-unified-consult-button:hover,
.hpc-unified-consult-button:focus-visible {
  color: #fff !important;
  background: #ad8950 !important;
}

/* Six Experiences: finish the page on a clean white field while keeping the
   warm beige consultation button as the primary action. */
.experiencesClosing,
.experiences-page .closing {
  background: #fff !important;
  color: #241f18 !important;
}

.experiencesClosing .eyebrow,
.experiencesClosing p,
.experiences-page .closing p {
  color: #756b5d !important;
}

/* Six Experiences: keep the final consultation prompt visually connected to
   the sixth journey instead of leaving stacked section spacing above it. */
.experiences-page .listing {
  padding-bottom: 20px !important;
}

.experiences-page .card:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 50px !important;
}

.experiences-page .closing {
  padding-top: 64px !important;
}

/* Japanese Six Experiences: match the tightened closing spacing used by the
   English page so the final message follows the sixth journey naturally. */
.experiencesPage .experiencesIndex {
  padding-bottom: 20px !important;
}

.experiencesPage .experienceIndexCard:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 50px !important;
}

.experiencesPage .experiencesClosing {
  padding-top: 64px !important;
}

@media (max-width: 800px) {
  .hpc-photo-place {
    margin-top: 3px;
    padding-right: 18px;
    padding-left: 18px;
    font-size: 8.8px;
  }

  figure > .hpc-photo-place {
    padding-right: 2px;
    padding-left: 2px;
  }

  .card:nth-child(even) > .hpc-home-card-photo {
    order: 0;
  }

  .experienceIndexCard:nth-child(even) > .hpc-experience-card-photo {
    order: initial;
  }

  .experiences-page .card:nth-child(even) > .hpc-experience-card-photo {
    order: initial;
  }

  .hpc-experience-card-photo > .hpc-photo-place {
    margin-top: 2px;
    padding-right: 2px;
    padding-left: 2px;
  }

  .card > .hpc-home-card-photo > .hpc-photo-place {
    margin-top: 3px;
  }

  .hero-location,
  .distillery-gallery figcaption,
  .place-card-image figcaption,
  .distillery-gallery-en figcaption,
  .distillery-gallery-en .hpc-photo-place,
  .restaurant-photo-en .hpc-photo-place {
    margin-top: 0 !important;
    padding-top: 0 !important;
    font-size: 9.6px !important;
  }
}
