/* ============ Base ============ */
:root {
  --navy: #074c6e;
  --blue: #10618a;
  --gold: #8f723e;
  --gold-light: #dbcdb5;
  --dark: #24364e;
  --beige: #f5f3ee;
  --light: #f9f9f9;
  --en-blue: #d6e6ee;
  --font: "Zen Old Mincho", serif;
  --font-en: "Jost", sans-serif;
}

.lower-page--wire .lower-hero__title {
  max-width: 980px;
}

.lower-content--wire {
  padding-bottom: 96px;
}

.lower-section--wire {
  scroll-margin-top: 120px;
}

.wire-doc-body p {
  white-space: normal;
}

.wire-doc-body p + p {
  margin-top: 18px;
}

.wire-bottom-cta {
  margin-top: 64px;
}

.lower-disease-grid a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 13px 16px;
  border: 1px solid var(--lower-border);
  border-radius: 4px;
  color: inherit;
  text-align: center;
  text-decoration: none;
  background: #fff;
}

.lower-disease-grid a:hover {
  border-color: var(--lower-blue);
  color: var(--lower-blue);
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: var(--font); color: #000; background: #fff; line-height: 1.7; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
.page-wrap { max-width: 1440px; margin: 0 auto; overflow: hidden; position: relative; }
.section-en { font-family: var(--font-en); font-weight: 300; color: var(--en-blue); line-height: 1; }
.section-en--gold { color: var(--gold-light); }
.section-title { font-weight: 500; }

/* ============ Header (1440×179) ============ */
.header { position: fixed; top: 0; left: 50%; width: min(1440px, 100vw); height: 88px; z-index: 100; transform: translateX(-50%); background: rgba(0,0,0,0.1); box-shadow: 0 8px 26px rgba(0,56,86,0); transition: background-color .38s ease, box-shadow .38s ease, backdrop-filter .38s ease; }
.header.is-scrolled { background: rgba(255,255,255,.96); box-shadow: 0 8px 26px rgba(0,56,86,.12); backdrop-filter: blur(8px); }
.header.is-scrolled .header__logo-sub,
.header.is-scrolled .header__logo-name,
.header.is-scrolled .header__tel-num,
.header.is-scrolled .header__action-label,
.header.is-scrolled .header__nav a { color: #173243; }
.header.is-scrolled .header__logo-img,
.header.is-scrolled .header__icon { filter: brightness(0) saturate(100%) invert(33%) sepia(70%) saturate(749%) hue-rotate(162deg) brightness(88%) contrast(92%); }
.header.is-scrolled .header__divider { background: rgba(20,81,112,.18); }

/* Single row container */
.header__top { display: flex; align-items: center; height: 100%; padding: 0 22px 0 32px; gap: 18px; position: relative; }

/* Logo: img左、サブ＋名前を縦積み（コンパクト化） */
.header__logo { display: grid; grid-template-columns: auto auto; column-gap: 10px; align-items: center; flex-shrink: 0; }
.header__logo-img { grid-column: 1; grid-row: 1 / 3; width: 38px; height: 37px; object-fit: contain; aspect-ratio: 46/45; transition: filter .38s ease; }
.header__logo-sub { grid-column: 2; grid-row: 1; align-self: end; font-size: 10px; color: #fff; font-weight: 500; white-space: nowrap; line-height: 1.1; transition: color .38s ease; }
.header__logo-name { grid-column: 2; grid-row: 2; align-self: start; font-size: 18px; color: #fff; font-weight: 600; letter-spacing: -0.5px; white-space: nowrap; line-height: 1.1; transition: color .38s ease; }

/* Nav (center) */
.header__nav { display: flex; flex: 1; align-items: center; justify-content: center; gap: 22px; min-width: 0; }
.header__nav a { font-size: 13px; color: #fff; font-weight: 500; white-space: nowrap; transition: color .38s ease; }

/* Right actions */
.header__right { display: flex; align-items: center; flex-shrink: 0; gap: 0; height: 100%; }
.header__action { display: flex; align-items: center; gap: 6px; padding: 0 10px; color: #fff; height: 100%; text-decoration: none; }
.header__action--tel { padding-left: 0; }
.header__icon { object-fit: contain; transition: filter .38s ease; }
.header__icon--phone { width: 16px; height: 16px; }
.header__icon--web { width: 20px; height: 18px; }
.header__icon--line { width: 24px; height: 24px; }
.header__tel-num { font-size: 15px; font-weight: 600; color: #fff; white-space: nowrap; letter-spacing: -0.3px; transition: color .38s ease; }
.header__action-label { font-size: 13px; font-weight: 500; color: #fff; white-space: nowrap; transition: color .38s ease; }
.header__divider { width: 1px; height: 22px; background: rgba(255,255,255,0.25); transition: background-color .38s ease; }

.header__menu-toggle { display: none; }

/* ============ Hero ============ */
.hero { position: relative; width: 1440px; height: 920px; overflow: hidden; }
.hero__bg { position: absolute; top: -212px; left: -62px; width: 1877px; height: 1104px; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.23); mix-blend-mode: multiply; }
/* Wave - combined SVG, exact Figma position */
.hero__wave { position: absolute; left: 0; top: 708px; width: 1440px; height: 210px; z-index: 1; pointer-events: none; }
.hero__copy { position: absolute; left: 171px; top: 209px; z-index: 2; }
.hero__en { font-family: var(--font-en); font-weight: 300; font-size: 30px; color: #fff; letter-spacing: 3px; line-height: 96px; }
.hero__title { font-size: 54px; font-weight: 500; color: #fff; line-height: 1.22; margin-bottom: 16px; }
.hero__sub { font-size: 26px; font-weight: 600; color: #fff; line-height: 1.46; text-shadow: 0 0 12px rgba(0,0,0,0.25); }

.hero__badges { position: absolute; left: 308px; top: 591px; display: flex; gap: 55px; z-index: 2; }
.hero__badge {
  width: 215px; height: 215px; aspect-ratio: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  background: rgba(255,255,255,0.85);
  border-radius: 50%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  flex-shrink: 0;
  padding: 20px;
}
.hero__badge-icon { max-width: 40px; max-height: 40px; object-fit: contain; margin-bottom: 6px; }
.hero__badge-text { font-size: 20px; font-weight: 600; color: var(--dark); line-height: 1.5; letter-spacing: 1px; }
.hero__badge-num { font-size: 30px; }

/* ============ News (positioned absolutely, Figma: x=811 y=864 384×84) ============ */
.news { position: absolute; top: 864px; left: 865px; width: 384px; height: 84px; z-index: 10; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; overflow: hidden; }
.news__label { font-family: var(--font-en); font-size: 18px; color: #9eb6c2; letter-spacing: 1.44px; }
.news__tag { display: inline-block; background: #e4eef3; padding: 1px 10px; border-radius: 100px; font-size: 12px; }
.news__body { width: 100%; }
.news__date { font-family: var(--font-en); font-size: 12px; display: block; }
.news__text { font-size: 14px; }

/* ============ ENDOSCOPY ============ */
.endo { position: relative; width: 1440px; height: 920px; overflow: visible; }
.endo__bg { position: absolute; left: 0; top: 105px; width: 1271px; height: 798px; background: var(--beige); z-index: 0; }
.endo__head { position: absolute; left: 162px; top: 55px; z-index: 2; }
.endo__head .section-en { font-size: 100px; display: block; margin-bottom: -10px; }
.endo__title { font-size: 46px; font-weight: 500; margin-top: 45px; margin-bottom: 0; }
.endo__catch { font-size: 24px; font-weight: 600; line-height: 1.6; margin: 0; }
.endo__image { position: absolute; right: -30px; top: 145px; width: 641px; height: 435px; overflow: hidden; z-index: 1; }
.endo__image img { width: 100%; height: 100%; object-fit: cover; }
.endo__desc { position: absolute; left: 174px; top: 400px; width: 580px; font-size: 16px; line-height: 1.8; z-index: 2; }
.endo__buttons { position: absolute; left: 212px; top: 680px; display: flex; gap: 54px; z-index: 2; }
.endo__btn { position: relative; display: flex; align-items: center; justify-content: center; gap: 22px; background: #fff; width: 478px; height: 141px; padding: 0 40px; transition: box-shadow 0.2s; }
.endo__btn:hover { box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
.endo__btn-icon { position: static; width: 54px; height: 56px; object-fit: contain; flex-shrink: 0; }
.endo__btn-body { position: static; transform: none; display: flex; flex-direction: column; align-items: flex-start; gap: 0; line-height: 1.4; }
.endo__btn-title { font-size: 22px; font-weight: 500; color: var(--navy); }
.endo__btn-en { font-family: var(--font-en); font-weight: 300; font-size: 16px; color: var(--blue); letter-spacing: 0.8px; }
.endo__btn-arrow { position: absolute; right: 16px; bottom: 16px; width: 22px; height: 22px; }

/* ============ MENU ============ */
.menu-sec { position: relative; width: 1440px; padding: 100px 0 60px; }
.menu-sec__head { margin-left: 163px; margin-bottom: 40px; display: flex; align-items: flex-end; gap: 20px; }
.menu-sec__head .section-en { font-size: 70px; line-height: 1; }
.menu-sec__head .section-title { font-size: 30px; margin-bottom: 8px; }
.menu-sec__cards { display: flex; gap: 20px; margin-left: 171px; }
.menu-card { display: block; width: 259px; background: #fff; transition: transform 0.2s; position: relative; }
.menu-card:hover { transform: translateY(-4px); }
.menu-card__img { width: 259px; height: 200px; overflow: hidden; }
.menu-card__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; transform: scale(1.2); }
.menu-card__title { font-size: 22px; font-weight: 500; padding: 14px 8px 6px; }
.menu-card__text { font-size: 16px; padding: 0 8px 20px; line-height: 1.5; }
.menu-card__arrow { position: absolute; right: 6px; top: 172px; width: 22px; height: 22px; }

/* ============ SEARCH ============ */
.search-sec { position: relative; width: 1440px; padding: 80px 0; }
.search-sec__head { margin-left: 163px; margin-bottom: 30px; }
.search-sec__head .section-en { font-size: 70px; display: block; }
.search-sec__head .section-title { font-size: 30px; }
.search-sec__tabs { display: flex; margin-left: 197px; margin-bottom: 0; width: 1046px; justify-content: center; gap: 40px; padding: 0 60px; }
.search-tab { width: 400px; height: 82px; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 22px; font-weight: 500; cursor: pointer; background: var(--beige); }
.search-tab--active { background: var(--beige); opacity: 1; }
.search-tab:not(.search-tab--active) { background: #eae7e2; }
.search-tab__icon { font-size: 24px; color: #999; }
.search-sec__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-left: 197px; background: var(--beige); width: 1046px; padding: 20px 26px; }
.search-item { display: flex; align-items: center; gap: 12px; background: #fff; height: 71px; padding: 0 16px; font-size: 16px; transition: background 0.2s; }
.search-item:hover { background: #f0ede8; }
.search-item__num { font-family: var(--font-en); font-size: 20px; color: var(--gold); min-width: 28px; }
.search-item__name { flex: 1; }
.search-item__arrow { font-size: 20px; color: #bbb; }

/* ============ REASON ============ */
.reason { position: relative; width: 1440px; padding-bottom: 100px; }
.reason__bg { position: absolute; inset: 0; background: var(--light); }
.reason__head { position: relative; text-align: center; padding-top: 70px; margin-bottom: 30px; }
.reason__head .section-en { font-size: 80px; display: block; }
.reason__head .section-title { font-size: 30px; }
.reason__lines { position: absolute; left: 0; width: 1440px; pointer-events: none; z-index: 2; }
.reason__lines .reason__line-h { position: absolute; left: 0; width: 1440px; height: 1px; background: #ddd; }
.reason__lines .reason__line-v { position: absolute; width: 1px; background: #ddd; }
.reason__deco { position: absolute; width: 14px; height: 14px; z-index: 3; pointer-events: none; }
.reason__grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; margin: 0 137px; z-index: 0; }
.reason__item { position: relative; display: block; padding: 30px 34px; color: inherit; text-decoration: none; }
.reason__item-img { width: 517px; height: 254px; overflow: hidden; }
.reason__item-img img { width: 100%; height: 100%; object-fit: cover; }
.reason__item-num { width: 76px; height: 76px; background: #fff; display: flex; align-items: center; justify-content: center; margin-top: -76px; position: relative; z-index: 1; margin-bottom: 10px; }
.reason__item-num span { font-family: var(--font-en); font-weight: 300; font-size: 29px; color: var(--blue); }
.reason__item-title { font-size: 28px; font-weight: 500; margin-bottom: 12px; }
.reason__item-text { font-size: 16px; line-height: 1.8; }
.reason__item-arrow { position: absolute; right: 12px; bottom: 12px; width: 22px; height: 22px; }

/* ============ MEDIA ============ */
.media-sec { position: relative; width: 1440px; padding: 80px 0; }
.media-sec__head { margin-left: 171px; margin-right: 171px; margin-bottom: 30px; display: flex; align-items: flex-end; gap: 20px; }
.media-sec__head .section-en { font-size: 80px; line-height: 1; }
.media-sec__head .section-title { font-size: 30px; margin-bottom: 8px; }
.media-sec__more { margin-left: auto; font-size: 16px; color: #000; text-decoration: none; border-bottom: 1px solid var(--blue); padding-bottom: 6px; white-space: nowrap; }
.media-sec__more span { color: var(--blue); margin-left: 4px; }
.media-sec__cards { display: flex; gap: 22px; margin-left: 284px; }
.media-card { width: 285px; border: 1px solid #ddd; padding: 16px 18px; }
.media-card__img { width: 248px; height: 143px; background: #eee; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; font-size: 16px; color: #000; }
.media-card__date { font-family: var(--font-en); font-size: 16px; color: var(--blue); display: block; margin-bottom: 4px; }
.media-card__text { font-size: 16px; line-height: 1.6; }
.media-sec__dots { display: flex; justify-content: center; gap: 17px; margin-top: 40px; }
.media-sec__dot { width: 11px; height: 11px; border-radius: 50%; background: #ccc; }
.media-sec__dot--active { background: #333; }

/* ============ Gallery ============ */
.gallery { width: 1440px; height: 292px; overflow: hidden; }
.gallery__track { display: flex; animation: gallery-scroll 30s linear infinite; }
.gallery__item { flex-shrink: 0; width: 463px; height: 292px; overflow: hidden; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; }
@keyframes gallery-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-1389px); } }

/* ============ ACCESS ============ */
.access { position: relative; width: 1440px; padding: 70px 0 20px; }
.access__head { margin-left: 171px; }
.access__head .section-en { font-size: 80px; }
.access__info { margin-left: 171px; margin-bottom: 20px; }
.access__info p { font-size: 14px; line-height: 1.8; }
.access__map { width: 1440px; height: 450px; }
.access__map iframe { width: 100%; height: 100%; border: 0; }

/* ============ Footer ============ */
.site-footer { position: relative; width: 1440px; background: #f5f7f8; padding: 60px 171px 170px; }
.site-footer__inner { display: flex; justify-content: space-between; align-items: flex-start; }
.site-footer__left { }
.site-footer__name { font-size: 16px; font-weight: 500; margin-bottom: 12px; }
.site-footer__address, .site-footer__tel-hours, .site-footer__holiday { font-size: 14px; line-height: 2; }
.site-footer__right { text-align: right; margin-top: 40px; }
.site-footer__privacy { font-size: 14px; display: inline-block; border-bottom: 1px solid #333; padding-bottom: 2px; margin-bottom: 16px; }
.site-footer__copy { font-family: var(--font-en); font-size: 14px; }

/* ============ Fixed CTA ============ */
.fixed-cta { position: fixed; bottom: 20px; right: 40px; z-index: 999; display: flex; align-items: center; background: #fff; border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,0.12); height: 75px; padding: 0 24px; gap: 0; }
.fixed-cta__tel { display: flex; align-items: center; gap: 8px; text-decoration: none; color: #000; padding-right: 20px; }
.fixed-cta__icon { object-fit: contain; filter: brightness(0) saturate(100%) invert(22%) sepia(60%) saturate(700%) hue-rotate(170deg); }
.fixed-cta__icon--phone { width: 24px; height: 24px; }
.fixed-cta__icon--web { width: 26px; height: 24px; }
.fixed-cta__icon--line { width: 34px; height: 34px; }
.fixed-cta__tel-body { display: flex; flex-direction: column; }
.fixed-cta__tel-num { font-size: 18px; font-weight: 600; line-height: 1.2; }
.fixed-cta__tel-hours { font-size: 13px; line-height: 1.2; }
.fixed-cta__divider { width: 1px; height: 33px; background: #ddd; }
.fixed-cta__btn { display: flex; align-items: center; gap: 8px; text-decoration: none; color: #000; font-size: 16px; padding: 0 20px; }

/* ============ Scroll fade-in animations (subtle) ============ */
.anim-fade-up { opacity: 0; transform: translateY(20px); transition: opacity 0.6s ease-out, transform 0.6s ease-out; }
.anim-fade-up.is-visible { opacity: 1; transform: translateY(0); }
/* Stagger for grid items */
.anim-fade-up.anim-fade-up--stagger { transition-delay: calc(var(--anim-i, 0) * 80ms); }
/* Disable for reduced motion */
@media (prefers-reduced-motion: reduce) {
  .anim-fade-up { opacity: 1 !important; transform: none !important; transition: none !important; }
}
/* Hover lift effect for cards */
.menu-card,
.media-card,
.reason__item,
.search-sec__grid > * {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.menu-card:hover,
.media-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 56, 86, 0.08);
}
.reason__item:hover,
.search-sec__grid > a:hover {
  transform: translateY(-2px);
}

/* ============ Header tight-fit (≤1919, MacBook含む) ============ */
@media (max-width: 1919px) and (min-width: 768px) {
  html { overflow-x: hidden; }
  body { overflow-x: hidden; }
  .header { left: 0; right: 0; width: 100%; transform: none; }
  .header.is-scrolled { left: 0; right: 0; width: 100%; transform: none; }
  .header__top { padding: 0 24px 0 32px; gap: 14px; }
  .header__logo { column-gap: 10px; }
  .header__logo-img { width: 42px; height: 41px; }
  .header__logo-name { font-size: 20px; }
  .header__logo-sub { font-size: 11px; }
  .header__nav { gap: 20px; }
  .header__nav a { font-size: 13px; letter-spacing: -0.2px; }
  .header__action { padding: 0 10px; gap: 6px; }
  .header__tel-num { font-size: 16px; }
  .header__action-label { font-size: 13px; }
  .header__icon--phone { width: 18px; height: 18px; }
  .header__icon--web { width: 22px; height: 20px; }
  .header__icon--line { width: 26px; height: 26px; }
  .header__divider { height: 24px; }
}

/* ============ 1920 breakpoint ============ */
@media (min-width: 1920px) {
  html { overflow-x: hidden; }
  .page-wrap { max-width: 1440px; margin: 0 auto; overflow: visible; }

  /* ヘッダー全幅（1920pxでは左右の余白を広く使う） */
  .header { left: 0; width: 100vw; transform: none; height: 96px; }
  .header.is-scrolled { left: 0; width: 100vw; transform: none; }
  .header__top { padding: 0 60px 0 70px; gap: 30px; }
  .header__logo { gap: 12px; }
  .header__logo-sub { font-size: 14px; }
  .header__logo-img { width: 44px; height: 43px; }
  .header__logo-name { font-size: 26px; }
  .header__nav { gap: 36px; }
  .header__nav a { font-size: 15px; }
  .header__action { padding: 0 18px; }
  .header__tel-num { font-size: 19px; }
  .header__action-label { font-size: 15px; }
  .header__icon--phone { width: 20px; height: 20px; }
  .header__icon--web { width: 24px; height: 22px; }
  .header__icon--line { width: 30px; height: 30px; }
  .header__divider { height: 28px; }

  /* ヒーロー全幅（内容は1440px中央） 1920px時は高さ+160px（下を広めに） */
  .hero { width: 100vw; margin-left: calc((1440px - 100vw) / 2); height: 1080px; overflow: visible; }
  .hero__bg { left: 0; width: 100%; height: 100%; top: 0; }
  .hero__wave { width: 100vw; left: 0; top: 880px; }
  .hero__copy { left: 240px; top: 205px; }
  .hero__en { font-size: 34px; }
  .hero__title { font-size: 62px; }
  .hero__sub { font-size: 30px; }
  .news {
    top: 1048px;
    left: 845px;
    width: 730px;
    height: 112px;
    display: grid;
    grid-template-columns: auto auto 1fr;
    grid-template-rows: auto auto;
    align-items: center;
    align-content: start;
    column-gap: 16px;
    row-gap: 10px;
    overflow: visible;
  }
  .news__label { font-size: 28px; letter-spacing: 2px; }
  .news__tag { font-size: 14px; padding: 3px 14px; justify-self: start; }
  .news__body { grid-column: 1 / -1; display: grid; grid-template-columns: 110px 1fr; align-items: baseline; column-gap: 22px; width: 100%; }
  .news__date { font-size: 16px; margin-bottom: 0; }
  .news__text { font-size: 18px; white-space: nowrap; }
  /* バッジ: 中央の円をビューポート中心に配置 (260×3 + gap×2) 1920pxで拡大 */
  .hero__badges { left: 50%; transform: translateX(-50%); top: 660px; gap: 90px; }
  .hero__badge { width: 260px; height: 260px; padding: 24px; }
  .hero__badge-icon { max-width: 48px; max-height: 48px; margin-bottom: 8px; }
  .hero__badge-text { font-size: 24px; }
  .hero__badge-num { font-size: 36px; }

  /* 背景が全幅に広がるセクション */
  .endo__bg { left: calc((1440px - 100vw) / 2); width: 100vw; }
  .reason { overflow: visible; }
  .reason__bg { left: calc((1440px - 100vw) / 2); width: 100vw; }
  .reason__lines .reason__line-h { left: calc((1440px - 100vw) / 2); width: 100vw; }

  /* Gallery全幅 */
  .gallery { width: 100vw; margin-left: calc((1440px - 100vw) / 2); }

  /* ACCESS地図全幅 */
  .access__map { width: 100vw; margin-left: calc((1440px - 100vw) / 2); }

  /* Footer全幅 */
  .site-footer { width: 100vw; margin-left: calc((1440px - 100vw) / 2); padding-left: calc((100vw - 1440px) / 2 + 171px); padding-right: calc((100vw - 1440px) / 2 + 171px); }

  .lower-hero {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
    overflow: visible;
  }
  .lower-hero__bg {
    left: 0;
    width: 100vw;
  }
  .lower-hero__wave {
    width: 100vw;
  }
  .lower-hero__en { left: calc((100vw - 1440px) / 2 + 160px); }
  .lower-hero__title { left: calc((100vw - 1440px) / 2 + 172px); }
  .lower-hero__lead { left: calc((100vw - 1440px) / 2 + 170px); }
}

/* ============ Lower Page Template ============ */
.lower-page {
  --lower-blue: #10618a;
  --lower-pale: #eff7fa;
  --lower-border: #d6e6ee;
  --lower-text: #222;
  color: var(--lower-text);
  background: #fff;
}
.lower-hero { position: relative; width: 1440px; height: 680px; overflow: visible; background: #fff; }
.lower-hero__bg { position: absolute; left: -24px; top: -80px; width: 1535px; height: 710px; }
.lower-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.lower-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(60,90,104,0.42); mix-blend-mode: multiply; }
.lower-hero__wave { position: absolute; left: 0; top: 450px; width: 1441px; height: 214px; z-index: 1; max-width: none; pointer-events: none; }
.lower-hero__inner { position: absolute; inset: 0; z-index: 2; color: #fff; }
.lower-hero__en { position: absolute; left: 160px; top: 170px; font-family: var(--font-en); font-size: 100px; font-weight: 300; color: rgba(255,255,255,0.52); line-height: 1; white-space: nowrap; }
.lower-hero__title { position: absolute; left: 172px; top: 310px; width: 1080px; font-size: 46px; font-weight: 600; line-height: 1.45; text-shadow: 0 0 15px rgba(0,0,0,0.25); margin: 0; white-space: nowrap; }
.lower-hero__lead { position: absolute; left: 170px; top: 600px; width: 1006px; font-size: 16px; line-height: 1.8; color: #222; }
.lower-points {
  position: relative;
  width: 1103px;
  height: 415px;
  margin: 0 auto 103px;
  background: var(--beige);
  display: block;
  padding: 0;
}
.lower-points__features { position: absolute; left: 0; top: 48px; width: 100%; height: 189px; display: grid; grid-template-columns: repeat(3, 1fr); }
.lower-points__item { min-height: 189px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; border-right: 1px solid var(--lower-blue); }
.lower-points__item:last-child { border-right: 0; }
.lower-points__icon { object-fit: contain; margin-bottom: 31px; }
.lower-points__icon--sedation { width: 63px; height: 69px; margin-top: 47px; }
.lower-points__icon--scope { width: 64px; height: 52px; margin-top: 56px; margin-bottom: 25px; }
.lower-points__icon--colon { width: 46px; height: 62px; margin-top: 56px; margin-bottom: 28px; }
.lower-points__item p { font-size: 20px; line-height: 1.45; color: var(--lower-blue); font-weight: 500; }
.lower-points__actions { position: absolute; left: 261px; top: 296px; display: flex; gap: 30px; }
.lower-points__btn { position: relative; width: 277px; height: 70px; display: flex; align-items: center; justify-content: center; gap: 28px; background: #fff; color: #222; font-size: 16px; font-weight: 500; }
.lower-points__btn-icon { object-fit: contain; flex: 0 0 auto; }
.lower-points__btn-icon--web { width: 38px; height: 35px; }
.lower-points__btn-icon--calendar { width: 28px; height: 34px; }
.lower-points__btn-arrow { position: absolute; right: 13px; top: 50%; width: 6px; height: 12px; transform: translateY(-50%); }
.lower-content { width: 1100px; margin: 0 auto; padding-top: 80px; padding-bottom: 140px; }
.lower-content:has(> .faq-bottom-cta:last-child) { padding-bottom: 0; }
.lower-content:has(> .lower-section--related-links:last-child) { padding-bottom: 0; }
.lower-section { margin-bottom: 114px; }
.lower-heading { min-height: 77px; display: flex; flex-direction: column; border-left: 3px solid #76a7be; padding-left: 24px; margin-bottom: 42px; }
.lower-heading--center { min-height: auto; position: relative; display: block; text-align: center; border-left: 0; padding-left: 0; margin-bottom: 24px; }
.lower-heading--center::before,
.lower-heading--center::after { content: ""; position: absolute; top: 16px; width: 40px; height: 1px; background: #222; }
.lower-heading--center::before { left: calc(50% - 152px); }
.lower-heading--center::after { right: calc(50% - 152px); }
.lower-heading h2 { order: 1; font-size: 30px; font-weight: 500; line-height: 1.35; }
.lower-heading__sub { order: 2; font-family: var(--font-en); color: #6da1ba; font-size: 18px; line-height: 1.2; margin-top: 8px; margin-bottom: 0; }
.lower-heading--center .lower-heading__sub { display: none; }
.lower-heading--center h2 { display: inline-block; font-size: 20px; line-height: 1.6; }
.lower-text { font-size: 16px; line-height: 1.65; }
.lower-content--flex .lower-text,
.lower-content--flex .lower-section__note,
.lower-content--flex .lower-card p,
.lower-content--flex .lower-check-panel li,
.lower-content--flex .lower-faq__item p,
.lower-content--flex .lower-gallery-grid figcaption,
.lower-content--flex .lower-disease-grid span,
.lower-content--flex .lower-symptom-panel__group li,
.lower-content--flex .lower-credit p { font-weight: 500; }
.lower-content:not(.lower-content--flex) .lower-text,
.lower-content:not(.lower-content--flex) .lower-section__lead,
.lower-content:not(.lower-content--flex) .lower-section__note,
.lower-content:not(.lower-content--flex) .lower-recommend__group li,
.lower-content:not(.lower-content--flex) .lower-bullet-list,
.lower-content:not(.lower-content--flex) .lower-feature > p:not(.lower-feature__num),
.lower-content:not(.lower-content--flex) .lower-disease-grid span,
.lower-content:not(.lower-content--flex) .lower-flow__body,
.lower-content:not(.lower-content--flex) .lower-faq__item p,
.lower-content:not(.lower-content--flex) .lower-credit p { font-weight: 500; }
.lower-text p + p { margin-top: 8px; }
.lower-text--compact { line-height: 1.7; }
.lower-section--about { margin-bottom: 18px; }
.lower-section--about .lower-heading { margin-bottom: 39px; }
.lower-section--recommend { margin-bottom: 114px; }
.lower-section--feature { margin-bottom: 144px; }
.lower-section--disease { margin-bottom: 165px; }
.lower-section--timing { margin-bottom: 118px; }
.lower-section--flow { margin-bottom: 125px; }
.lower-section--expense { min-height: 605px; margin-bottom: 110px; }
.lower-section__lead { font-size: 16px; line-height: 1.7; margin: -3px 0 24px; }
.lower-section__note { font-size: 16px; line-height: 1.7; margin-top: 36px; }
.lower-section__note--right { text-align: right; }
.lower-section__note--right a { color: #6da1ba; }
.lower-section__note--right a:hover,
.lower-section__note--right a:focus-visible { color: var(--lower-blue); }
.lower-recommend { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; }
.lower-recommend__group { display: flex; flex-direction: column; }
.lower-recommend__group h3 { height: 61px; display: flex; align-items: center; background: var(--lower-pale); border: 1px solid var(--lower-border); padding: 0 30px; font-size: 20px; font-weight: 500; }
.lower-recommend__group ul { flex: 1; min-height: 153px; border: 1px solid var(--lower-border); border-top: 0; padding: 19px 30px; display: grid; gap: 5px; background: #fff; align-content: start; }
.lower-recommend__group li { position: relative; padding-left: 22px; font-size: 16px; line-height: 1.55; }
.lower-recommend__group li::before { content: ""; position: absolute; left: 0; top: 0.58em; width: 11px; height: 11px; border: 1px solid #222; background: #f5f5f5; }
.lower-bullet-list { display: grid; gap: 3px; margin-top: 26px; padding-left: 24px; list-style: disc; font-size: 16px; line-height: 1.55; }
.lower-bullet-list li { list-style: disc; }
.lower-feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid var(--lower-border); }
.lower-feature { min-height: 234px; display: grid; grid-template-columns: 36px 1fr; grid-template-rows: auto 1fr; column-gap: 17px; align-content: start; padding: 28px 34px 24px 21px; border-right: 1px solid var(--lower-border); border-bottom: 1px solid var(--lower-border); }
.lower-feature:nth-child(2n) { border-right: 0; }
/* 最後の行のボーダー処理：偶数個・奇数個どちらにも対応 */
.lower-feature:last-child { border-bottom: 0; }
.lower-feature:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
/* 奇数個で最後の1個が単独になるとき：全幅に伸ばす */
.lower-feature:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.lower-feature__num { grid-column: 1; grid-row: 1; font-family: var(--font-en); color: #6da1ba; font-size: 36px; line-height: 1; margin: 0; }
.lower-feature h3 { grid-column: 2; grid-row: 1; color: var(--lower-blue); font-size: 20px; font-weight: 500; line-height: 1.55; margin: 3px 0 23px; }
.lower-feature > p:not(.lower-feature__num) { grid-column: 1 / -1; grid-row: 2; margin-left: 12px; font-size: 16px; line-height: 1.65; }
.lower-disease-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; background: var(--beige); padding: 27px 26px; }
.lower-disease-grid span,
.lower-disease-grid a { position: relative; min-height: 66px; display: flex; align-items: center; justify-content: center; background: #fff; color: #222; font-size: 16px; padding: 0 28px; text-align: center; }
.lower-disease-grid span::after,
.lower-disease-grid a::after { content: ">"; position: absolute; right: 14px; color: #9b7c44; font-family: var(--font-en); font-size: 18px; }
.lower-disease-grid a:hover,
.lower-disease-grid a:focus-visible { color: var(--lower-blue); }
.lower-flow-intro { margin-bottom: 22px; }
.lower-flow-bullets { margin-bottom: 113px; }
.lower-flow { display: grid; gap: 0; }
.lower-flow__item { display: grid; grid-template-columns: 280px 1fr; min-height: 91px; align-items: stretch; }
.lower-flow__item:first-child { min-height: 160px; }
.lower-flow__head { position: relative; display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 16px; background: var(--lower-pale); padding: 0 12px 0 24px; }
.lower-flow__item:not(:last-child) .lower-flow__head { border-bottom: 2px solid #fff; }
.lower-flow__item:not(:last-child) .lower-flow__head::after { content: ""; position: absolute; left: 35px; bottom: -8px; z-index: 2; width: 14px; height: 14px; border-right: 2px solid #6da1ba; border-bottom: 2px solid #6da1ba; transform: rotate(45deg); background: transparent; }
.lower-flow__num { font-family: var(--font-en); color: #6da1ba; font-size: 16px; line-height: 1; white-space: nowrap; }
.lower-flow__item h3 { color: #222; font-size: 20px; font-weight: 500; line-height: 1.5; }
.lower-flow__body { display: flex; flex-direction: column; justify-content: center; font-size: 16px; line-height: 1.5; padding: 14px 24px; border-bottom: 1px solid var(--lower-border); }
.lower-flow__item:first-child .lower-flow__body { border-top: 1px solid var(--lower-border); }
.lower-flow__body p { margin: 0; }
.lower-flow__body ul { margin: 0; padding-left: 16px; list-style: disc; line-height: 1.5; }
.lower-flow__body li { list-style: disc; }
.lower-flow__body--step1 { position: relative; justify-content: flex-start; line-height: 1.58; padding: 19px 0 14px 24px; }
.lower-flow__reserve-line { display: flex; align-items: center; gap: 36px; margin: 13px 0 8px; }
.lower-flow__reserve-line a,
.lower-flow__detail { color: var(--lower-blue); }
.lower-flow__body a.lower-tel-link { color: inherit; text-decoration: none; }
.lower-flow__body a.lower-tel-link:hover,
.lower-flow__body a.lower-tel-link:focus-visible { color: var(--lower-blue); text-decoration: underline; text-underline-offset: 3px; }
.lower-flow__reserve-line span span,
.lower-flow__detail span { font-family: var(--font-en); }
.lower-flow__detail { position: absolute; right: 0; bottom: 14px; min-width: 151px; padding-bottom: 6px; border-bottom: 1px solid var(--lower-blue); text-align: left; }
.lower-flow__inline-link { display: inline-block; margin-top: 10px; color: #6da1ba; text-decoration: underline; text-underline-offset: 5px; }
.lower-flow__inline-link:hover,
.lower-flow__inline-link:focus-visible,
.lower-flow__inline-link:active { color: var(--lower-blue); }
.lower-flow__inline-link span { margin-left: 2px; font-family: var(--font-en); }
.lower-html-block { font-size: 16px; line-height: 1.75; font-weight: 500; }
.flow-prep-block { margin: 0 0 26px; padding: 24px 30px; background: var(--lower-pale); border: 1px solid var(--lower-border); }
.flow-prep-block h3,
.flow-subheading { position: relative; margin: 0 0 14px; padding-left: 20px; font-size: 18px; font-weight: 500; line-height: 1.5; }
.flow-prep-block h3::before,
.flow-subheading::before { content: ""; position: absolute; left: 0; top: .63em; width: 11px; height: 11px; background: #222; }
.flow-prep-block p { margin: 0; }
.flow-prep-block p + p,
.flow-prep-block ul + p { margin-top: 12px; }
.flow-prep-block ul { margin: 0; padding-left: 20px; list-style: disc; }
.flow-prep-block li { list-style: disc; }
.flow-subheading { margin-top: 34px; margin-bottom: 20px; }
.lower-page--flow .lower-section--html { margin-bottom: 34px; }
.lower-page--flow .lower-section--flow-steps { margin-top: -18px; }
.lower-bottom-buttons { display: flex; justify-content: center; gap: 24px; padding: 44px 0 0; }
.lower-bottom-buttons__item { min-width: 260px; min-height: 58px; display: flex; align-items: center; justify-content: center; padding: 12px 24px; background: var(--lower-blue); color: #fff; text-decoration: none; font-size: 16px; font-weight: 500; }
.lower-bottom-buttons__item:hover,
.lower-bottom-buttons__item:focus-visible { background: #6da1ba; }
.lower-price-table { width: 100%; border-collapse: collapse; font-size: 16px; margin-bottom: 36px; }
.lower-price-table th,
.lower-price-table td { border: 1px solid var(--lower-border); height: 61px; padding: 0 24px; text-align: left; font-weight: 500; }
.lower-price-table th { width: 355px; background: var(--lower-pale); }
.lower-insurance-label { position: relative; font-size: 16px; line-height: 1.6; margin: -4px 0 13px; padding-left: 20px; }
.lower-insurance-label::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 11px; height: 11px; background: #222; }
.lower-note { font-size: 16px; line-height: 1.45; margin-bottom: 30px; }
.lower-credit p { font-size: 16px; line-height: 1.7; margin-bottom: 14px; }
.lower-credit__cards { display: flex; align-items: center; gap: 13px; padding-left: 20px; }
.lower-credit__cards img { width: auto; height: auto; max-height: 51px; object-fit: contain; }
.lower-section--faq { margin-bottom: 100px; }
.lower-faq { display: grid; gap: 18px; }
.lower-faq__item h3 { display: flex; align-items: center; gap: 18px; min-height: 63px; border: 1px solid var(--lower-border); border-radius: 6px; padding: 16px 24px; font-size: 16px; font-weight: 500; }
.lower-faq__item p { display: flex; gap: 18px; margin-left: 85px; margin-top: 18px; background: var(--lower-pale); border-radius: 6px; padding: 22px 30px; font-size: 16px; line-height: 1.8; }
.lower-faq__item span { font-family: var(--font-en); color: #6da1ba; font-size: 24px; line-height: 1; flex: 0 0 auto; }
.lower-faq__item .lower-faq__answer-text { display: block; min-width: 0; color: inherit; font-family: inherit; font-size: inherit; line-height: inherit; flex: 1 1 auto; overflow-wrap: anywhere; }
.lower-faq__item a { color: var(--lower-blue); text-decoration: underline; text-underline-offset: 3px; }
.lower-faq__item a.lower-tel-link { color: inherit; text-decoration: none; }
.lower-faq__item a.lower-tel-link:hover,
.lower-faq__item a.lower-tel-link:focus-visible { color: var(--lower-blue); text-decoration: underline; text-underline-offset: 3px; }

/* FAQ accordion */
details.lower-faq__item { display: block; }
details.lower-faq__item > summary { list-style: none; cursor: pointer; outline: none; -webkit-tap-highlight-color: transparent; }
details.lower-faq__item > summary::-webkit-details-marker { display: none; }
details.lower-faq__item > summary > h3 { position: relative; padding-right: 64px; margin: 0; cursor: pointer; }
details.lower-faq__item > summary > h3::before,
details.lower-faq__item > summary > h3::after {
  content: ''; position: absolute; right: 26px; top: 50%;
  width: 16px; height: 2px; background: var(--lower-blue);
  transition: transform 0.25s ease;
}
details.lower-faq__item > summary > h3::before { transform: translateY(-50%) rotate(90deg); }
details.lower-faq__item > summary > h3::after { transform: translateY(-50%); }
details.lower-faq__item[open] > summary > h3::before { transform: translateY(-50%) rotate(0deg); }
.lower-faq__panel { overflow: hidden; transition: height 0.28s ease; }
details.lower-faq__item:not([open]) .lower-faq__panel { height: 0; }
@media (max-width: 767px) {
  details.lower-faq__item > summary > h3 { padding-right: 48px; }
  details.lower-faq__item > summary > h3::before,
  details.lower-faq__item > summary > h3::after { right: 14px; width: 14px; height: 2px; }
}

.lower-page--faq .lower-hero__lead { max-width: 920px; }
.faq-content { padding-top: 0; }
.faq-category-nav { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 78px; padding: 28px 30px; background: var(--beige); }
.faq-category-nav a { min-width: 192px; min-height: 58px; display: flex; align-items: center; justify-content: center; padding: 10px 18px; background: #fff; border: 1px solid var(--lower-border); color: #222; font-size: 16px; font-weight: 500; text-align: center; }
.lower-page--gastroscopy-faq .faq-category-nav { justify-content: center; gap: 14px; }
.lower-page--gastroscopy-faq .faq-category-nav a { min-width: 230px; }
.faq-section { scroll-margin-top: 120px; margin-bottom: 94px; }
.faq-section .lower-heading { margin-bottom: 34px; }
.faq-bottom-cta { width: 100vw; margin: 18px calc((1100px - 100vw) / 2) 0; padding: 48px calc((100vw - 1100px) / 2) 52px; display: flex; justify-content: center; gap: 30px; background: var(--beige); }
.faq-bottom-cta .lower-points__btn { position: relative; width: min(100%, 340px); background: #fff; }
.faq-bottom-cta__phone { width: 28px; height: 28px; filter: brightness(0) saturate(100%) invert(22%) sepia(60%) saturate(700%) hue-rotate(170deg); }

/* Reservation CTA inside flexible lower pages */
.lower-section--reservation-cta { margin-bottom: 0; padding-top: 0; }
.lower-section--reservation-cta .faq-bottom-cta { margin-top: 0; }

/* Embedded Google Map */
.lower-map { width: 100%; margin-top: 18px; border: 1px solid var(--lower-border); background: #f5f5f5; }
.lower-map iframe { display: block; width: 100%; height: 450px; border: 0; }
@media (max-width: 767px) {
  .lower-map iframe { height: 320px; }
}

/* ============ Flexible lower pages ============ */
.lower-content--flex { padding-top: 0; }
.lower-section--flex { margin-bottom: 112px; }
.lower-section--flex .lower-text { max-width: 1066px; }
.lower-section--intro-cards .lower-text { margin-top: 28px; }
.lower-intro-cards { display: grid; grid-template-columns: repeat(3, 268px); justify-content: center; gap: 43px; margin-top: 30px; }
.lower-intro-cards--2 { grid-template-columns: repeat(2, 1fr); gap: 0; background: var(--beige); }
.lower-intro-card { min-height: 285px; background: var(--beige); text-align: center; padding: 31px 24px 24px; }
.lower-intro-cards--2 .lower-intro-card { background: transparent; border-right: 1px solid var(--lower-blue); padding-left: 54px; padding-right: 54px; }
.lower-intro-cards--2 .lower-intro-card:last-child { border-right: 0; }
.lower-intro-card__icon { width: 137px; height: 137px; display: flex; align-items: center; justify-content: center; margin: 0 auto 28px; border-radius: 50%; background: #fff; color: var(--lower-blue); font-family: var(--font-en); font-size: 38px; }
.lower-intro-card__icon img { display: block; object-fit: contain; }
.lower-intro-card h3 { font-size: 16px; line-height: 1.55; font-weight: 500; }
.lower-intro-card p { margin-top: 14px; font-size: 15px; line-height: 1.7; text-align: left; }
.lower-check-panel { background: #fff; border: 1px solid var(--lower-border); padding: 28px 32px; margin-top: 28px; }
.lower-check-panel h3 { display: inline-block; margin: 0 0 18px; padding: 0; background: #fff; color: var(--lower-blue); font-size: 20px; font-weight: 500; }
.lower-check-panel ul { display: grid; gap: 6px; }
.lower-check-panel li { position: relative; padding-left: 22px; font-size: 16px; line-height: 1.65; }
.lower-check-panel li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 11px; height: 11px; border: 1px solid #222; background: #f5f5f5; }
.lower-section--symptom-panel { margin-bottom: 105px; }
.lower-symptom-panel { position: relative; width: 1100px; min-height: 393px; margin: -8px auto 0; padding: 24px 46px 32px; background: var(--beige); }
.lower-symptom-panel h2 { color: var(--lower-blue); font-size: 28px; font-weight: 500; line-height: 1.45; text-align: center; }
.lower-symptom-panel__icon { display: block; width: 59px; height: 63px; margin: 27px auto 0; object-fit: contain; }
.lower-symptom-panel__groups { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 72px; margin-top: -68px; }
.lower-symptom-panel__groups::before { content: ""; position: absolute; left: 50%; top: 1px; bottom: 0; width: 1px; background: var(--lower-border); transform: translateX(-50%); }
.lower-symptom-panel__group { padding: 0 22px; }
.lower-symptom-panel__group h3 { color: #222; font-size: 20px; font-weight: 500; line-height: 1.45; text-align: center; margin-bottom: 20px; }
.lower-symptom-panel__group ul { display: grid; gap: 7px; max-width: 330px; margin: 0 auto; }
.lower-symptom-panel__group li { position: relative; padding-left: 21px; font-size: 16px; line-height: 1.52; }
.lower-symptom-panel__group li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 11px; height: 11px; border: 1px solid #222; background: #fff; }
.lower-section--symptom-panel .lower-section__note { max-width: 1006px; margin: 24px auto 0; line-height: 1.8; }
.lower-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 61px; }
.lower-card-grid--3 { grid-template-columns: repeat(3, 1fr); gap: 28px; }
.lower-card { border: 1px solid var(--lower-border); background: #fff; }
.lower-card h3 { min-height: 57px; display: flex; align-items: center; background: var(--lower-pale); color: #222; font-size: 20px; font-weight: 500; padding: 0 20px; }
.lower-card p { min-height: 132px; padding: 18px 20px 24px; font-size: 16px; line-height: 1.7; }
.lower-flex-table th { width: 317px; }
.lower-flex-table th,
.lower-flex-table td { height: auto; min-height: 61px; padding-top: 16px; padding-bottom: 16px; line-height: 1.65; vertical-align: middle; }
.lower-flow--compact .lower-flow__item { grid-template-columns: 322px 1fr; }
.lower-flow--compact .lower-flow__body { justify-content: center; }
.lower-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 38px 2px; }
.lower-gallery-grid figure { width: 366px; }
.lower-gallery-grid figure div { height: 272px; overflow: hidden; background: var(--beige); }
.lower-gallery-grid img { width: 100%; height: 100%; object-fit: cover; }
.lower-gallery-grid figcaption { margin-top: 10px; font-size: 16px; }
.lower-schedule-table { width: 884px; margin: 0 auto; border-collapse: collapse; font-size: 16px; }
.lower-schedule-table th,
.lower-schedule-table td { width: 108px; height: 73px; border: 1px solid var(--lower-border); text-align: center; vertical-align: middle; font-weight: 500; }
.lower-schedule-table th:first-child { width: 132px; background: var(--lower-pale); }
.lower-schedule-table tbody th:first-child { background: var(--beige); }
.lower-schedule-table thead th:last-child { background: #faeff0; }
.lower-schedule-table thead th { background: var(--lower-pale); color: var(--lower-blue); }
.lower-cta-band { margin: 120px calc((1100px - 100vw) / 2) 0; padding: 46px 0 52px; background: var(--beige); text-align: center; }
.lower-grouped-price__label { height: 45px; display: flex; align-items: center; background: #28698a; color: #fff; padding: 0 24px; margin: 0 0 24px; font-size: 16px; font-weight: 600; }
.lower-grouped-price__group + .lower-grouped-price__group { margin-top: 55px; }
.lower-grouped-price__group h3 { position: relative; margin: 0 0 10px; padding-left: 20px; font-size: 16px; font-weight: 500; }
.lower-grouped-price__group h3::before { content: ""; position: absolute; left: 0; top: .55em; width: 11px; height: 11px; background: #222; }
.lower-grouped-price .lower-price-table { margin-bottom: 0; }
.lower-grouped-price .lower-price-table th { width: 355px; }
.lower-grouped-price .lower-price-table thead th,
.lower-grouped-price .lower-price-table thead td { background: var(--lower-pale); color: #222; }
.lower-related-links { display: grid; grid-template-columns: repeat(6, 167px); gap: 20px; }
.lower-related-links__item { position: relative; height: 189px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; background: #fff; color: #222; text-decoration: none; font-size: 16px; font-weight: 500; }
.lower-related-links__item img { width: 54px; height: 54px; object-fit: contain; }
.lower-related-links__arrow { position: absolute; right: 21px; bottom: 15px; width: 6px !important; height: 12px !important; }
.lower-page--first .lower-section--intro-cards { margin-bottom: 112px; }
.lower-page-lead { width: 1006px; margin: 0 auto 56px; font-size: 16px; line-height: 1.8; color: #222; font-weight: 500; }
.lower-page--first .lower-section--intro-cards .lower-heading--center { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 32px; margin-bottom: 27px; }
.lower-page--first .lower-section--intro-cards .lower-heading--center::before,
.lower-page--first .lower-section--intro-cards .lower-heading--center::after { display: block; position: static; flex: 0 0 40px; height: 1px; transform: none; }
.lower-page--first .lower-section--intro-cards .lower-heading--center::after { order: 2; }
.lower-page--first .lower-section--intro-cards .lower-heading--center h2 { font-size: 28px; line-height: 1.45; transform: none; }
.lower-page--first .lower-intro-cards { justify-content: start; margin-top: 35px; margin-left: 90px; }
.lower-page--first .lower-intro-card { height: 285px; min-height: 0; padding-bottom: 20px; }
.lower-page--first .lower-intro-card__icon { margin-bottom: 23px; }
.lower-page--first .lower-intro-card:nth-child(1) h3 { transform: translateY(13px); }
.lower-page--first .lower-intro-card:nth-child(2) h3 { line-height: 1.45; transform: none; }
.lower-page--first .lower-section--intro-cards .lower-text { max-width: 917px; margin: 12px auto 0; }
.lower-page--first .lower-intro-card:nth-child(1) .lower-intro-card__icon img { width: 64px; height: 93px; }
.lower-page--first .lower-intro-card:nth-child(2) .lower-intro-card__icon img { width: 36px; height: 100px; }
.lower-page--first .lower-intro-card:nth-child(3) .lower-intro-card__icon img { width: 69px; height: 74px; }
.lower-page--first .lower-section--first-flow { margin-bottom: 77px; }
.lower-page--first .lower-section--first-flow .lower-heading { margin-bottom: 42px; }
.lower-page--first .lower-section--first-flow .lower-flow { row-gap: 4px; margin-left: 2px; width: calc(100% - 2px); }
.lower-page--first .lower-section--first-flow .lower-flow__item { grid-template-columns: 322px 1fr; min-height: 100px; }
.lower-page--first .lower-section--first-flow .lower-flow__item:first-child { min-height: 141px; }
.lower-page--first .lower-section--first-flow .lower-flow__head { padding-left: 26px; grid-template-columns: 58px 1fr; }
.lower-page--first .lower-section--first-flow .lower-flow__body { justify-content: center; padding: 14px 19px; line-height: 1.55; }
.lower-page--first .lower-section--first-flow .lower-flow__item:first-child .lower-flow__body { padding-top: 12px; padding-bottom: 12px; }
.lower-page--first .lower-section--first-flow .lower-flow__reserve-line { margin: 8px 0 7px; gap: 36px; }
.lower-page--first .lower-section--first-flow .lower-flow__reserve-line a { color: #6da1ba; text-decoration: underline; text-underline-offset: 5px; }
.lower-page--first .lower-section--first-flow .lower-flow__reserve-line a:hover,
.lower-page--first .lower-section--first-flow .lower-flow__reserve-line a:focus-visible,
.lower-page--first .lower-section--first-flow .lower-flow__reserve-line a:active { color: var(--lower-blue); }
.lower-page--first .lower-text,
.lower-page--first .lower-flow__body,
.lower-page--first .lower-check-panel li,
.lower-page--first .lower-section__note,
.lower-page--first .lower-faq__item p { font-weight: 500; }
.lower-page--first .lower-section--first-bring { margin-bottom: 103px; }
.lower-page--first .lower-section--first-bring .lower-heading { margin-bottom: 35px; }
.lower-page--first .lower-section--first-bring .lower-check-panel { border: 0; padding: 0 0 0 56px; margin-top: 0; background: transparent; }
.lower-page--first .lower-section--first-bring .lower-check-panel ul { gap: 6px; }
.lower-page--first .lower-section--first-bring .lower-check-panel li { padding-left: 18px; line-height: 1.45; }
.lower-page--first .lower-section--first-bring .lower-check-panel li::before { width: 4px; height: 4px; border: 0; border-radius: 50%; background: #222; top: .72em; }
.lower-page--first .lower-section--first-bring .lower-section__note { max-width: 954px; margin: 30px 0 0 56px; line-height: 1.75; }
.lower-page--first .lower-section--first-expense { margin-bottom: 153px; }
.lower-page--first .lower-section--first-expense .lower-heading { margin-bottom: 31px; }
.lower-page--first .lower-section--first-expense .lower-grouped-price__label { margin-bottom: 29px; }
.lower-page--first .lower-section--first-expense .lower-grouped-price__group + .lower-grouped-price__group { margin-top: 44px; }
.lower-page--first .lower-section--first-expense .lower-grouped-price .lower-price-table thead td { background: #fff; }
.lower-page--first .lower-section--first-expense .lower-section__note { margin-top: 20px; font-size: 14px; line-height: 1.7; }
.lower-page--first .lower-section--first-expense .lower-section__note a { color: #6da1ba; text-decoration: underline; text-underline-offset: 4px; }
.lower-page--first .lower-section--first-expense .lower-section__note a:hover,
.lower-page--first .lower-section--first-expense .lower-section__note a:focus-visible,
.lower-page--first .lower-section--first-expense .lower-section__note a:active { color: var(--lower-blue); }
.lower-page--cost .lower-section__note a { color: #6da1ba; text-decoration: underline; text-underline-offset: 4px; }
.lower-page--cost .lower-section__note a:hover,
.lower-page--cost .lower-section__note a:focus-visible,
.lower-page--cost .lower-section__note a:active { color: var(--lower-blue); }
.lower-page--cost .lower-grouped-price .lower-price-table thead td { background: #fff; }
.lower-page--first .lower-section--first-faq { margin-bottom: 0; }
.lower-page--first .lower-section--first-faq .lower-heading { margin-bottom: 58px; }
.lower-page--first .lower-section--first-faq .lower-faq { gap: 35px; }
.lower-page--first .lower-section--first-faq .lower-faq__item h3 { width: 857px; min-height: 63px; margin-left: 22px; padding: 16px 19px; }
.lower-page--first .lower-section--first-faq .lower-faq__item p { width: 967px; min-height: 66px; margin-left: 107px; margin-top: 19px; padding: 18px 30px; }
.lower-page--first .lower-section--related-links,
.lower-page--flow .lower-section--related-links,
.lower-page--cost .lower-section--related-links { width: 100vw; margin: 211px calc((1100px - 100vw) / 2) 0; padding: 55px calc((100vw - 1100px) / 2) 82px; background: var(--beige); }
.lower-page--first .lower-section--related-links > .lower-heading,
.lower-page--flow .lower-section--related-links > .lower-heading,
.lower-page--cost .lower-section--related-links > .lower-heading { border-left: 0; padding-left: 0; margin-bottom: 37px; min-height: auto; }
.lower-page--first .lower-section--related-links > .lower-heading h2,
.lower-page--flow .lower-section--related-links > .lower-heading h2,
.lower-page--cost .lower-section--related-links > .lower-heading h2 { font-size: 20px; }
.lower-page--first .lower-related-links__item,
.lower-page--flow .lower-related-links__item,
.lower-page--cost .lower-related-links__item,
.lower-page--features .lower-related-links__item { display: block; }
.lower-page--first .lower-related-links__item > img:first-child,
.lower-page--flow .lower-related-links__item > img:first-child,
.lower-page--cost .lower-related-links__item > img:first-child,
.lower-page--features .lower-related-links__item > img:first-child { position: absolute; left: 50%; top: 54px; transform: translateX(-50%); width: 54px; height: 54px; }
.lower-page--first .lower-related-links__item span,
.lower-page--flow .lower-related-links__item span,
.lower-page--cost .lower-related-links__item span,
.lower-page--features .lower-related-links__item span { position: absolute; left: 0; right: 0; top: 144px; display: flex; align-items: center; justify-content: center; min-height: 23px; line-height: 23px; text-align: center; }
.lower-page--first .lower-related-links__arrow,
.lower-page--flow .lower-related-links__arrow,
.lower-page--cost .lower-related-links__arrow,
.lower-page--features .lower-related-links__arrow { right: 17px; bottom: 23px; }
.lower-page--first .lower-related-links__item:nth-child(2) > img:first-child,
.lower-page--flow .lower-related-links__item:nth-child(2) > img:first-child,
.lower-page--cost .lower-related-links__item:nth-child(2) > img:first-child { top: 53px; width: 54px; height: 56px; }
.lower-page--first .lower-related-links__item:nth-child(3) > img:first-child,
.lower-page--flow .lower-related-links__item:nth-child(3) > img:first-child,
.lower-page--cost .lower-related-links__item:nth-child(3) > img:first-child { top: 47px; width: 46px; height: 62px; }
.lower-page--first .lower-related-links__item:nth-child(4) > img:first-child,
.lower-page--flow .lower-related-links__item:nth-child(4) > img:first-child,
.lower-page--cost .lower-related-links__item:nth-child(4) > img:first-child { top: 53px; width: 36px; height: 59px; }
.lower-page--first .lower-related-links__item:nth-child(5) > img:first-child,
.lower-page--flow .lower-related-links__item:nth-child(5) > img:first-child,
.lower-page--cost .lower-related-links__item:nth-child(5) > img:first-child { top: 49px; width: 60px; height: 57px; }
.lower-page--first .lower-related-links__item:nth-child(6) > img:first-child,
.lower-page--flow .lower-related-links__item:nth-child(6) > img:first-child,
.lower-page--cost .lower-related-links__item:nth-child(6) > img:first-child { top: 57px; width: 54px; height: 48px; }

/* ============ Clinic final page ============ */
.clinic-final-page { position: relative; width: 1440px; background: #fff; color: #222; }
.clinic-final-hero { position: relative; width: 1440px; height: 580px; overflow: visible; }
.clinic-final-hero__bg { position: absolute; left: -24px; top: -6px; width: 1507px; height: 640px; overflow: hidden; }
.clinic-final-hero__bg img { position: absolute; left: -312px; top: -548px; width: 1876px; height: 1251px; max-width: none; object-fit: cover; }
.clinic-final-hero__bg::after { content: ""; position: absolute; inset: 0; background: #89a4b9; mix-blend-mode: multiply; }
.clinic-final-hero__wave { position: absolute; left: 0; top: 450px; width: 1441px; height: 214px; max-width: none; pointer-events: none; }
.clinic-final-hero__en { position: absolute; left: 160px; top: 170px; font-family: var(--font-en); font-size: 100px; font-weight: 300; line-height: 1; color: rgba(255,255,255,.51); }
.clinic-final-hero__title { position: absolute; left: 163px; top: 290px; white-space: nowrap;  margin: 0; color: #fff; font-size: 46px; font-weight: 500; line-height: 1.45; text-shadow: 0 0 15px rgba(0,0,0,.25); }
.clinic-final-section { position: relative; width: 1101px; margin-left: 170px; }
.clinic-final-section--gallery { height: 853px; margin-bottom: 151px; }
.clinic-final-section--info { height: 491px; margin-bottom: 120px; }
.clinic-final-section--doctors { height: 1566px; margin-bottom: 105px; }
.clinic-final-section--equipment { height: 589px; margin-bottom: 134px; }
.clinic-final-lead { position: absolute; left: 3px; top: 0; width: 1006px; min-height: 116px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 29px; }
.clinic-final-heading { position: absolute; left: 0; top: 90px; min-height: 77px; border-left: 3px solid #76a7be; padding-left: 25px; }
.clinic-final-heading h2 { margin: -3px 0 0; color: #222; font-size: 30px; font-weight: 500; line-height: 1.45; }
.clinic-final-heading p { margin: 0; color: #6da1ba; font-family: var(--font-en); font-size: 18px; font-weight: 300; line-height: 1.45; }
.clinic-final-section--info .clinic-final-heading,
.clinic-final-section--doctors .clinic-final-heading,
.clinic-final-section--equipment .clinic-final-heading { top: 3px; }
.clinic-gallery { position: absolute; left: 0; top: 205px; display: grid; grid-template-columns: repeat(3, 366px); gap: 37px 2px; }
.clinic-gallery__item { position: relative; width: 366px; margin: 0; }
.clinic-gallery__image { width: 366px; height: 272px; background: #f0f0f0; }
.clinic-gallery__item figcaption { position: relative; margin: 10px 0 0 22px; color: #222; font-size: 16px; font-weight: 500; line-height: 23px; }
.clinic-gallery__item figcaption::before { content: ""; position: absolute; left: -9px; top: 12px; width: 12px; height: 1px; background: #222; transform: translateX(-100%); }
.clinic-info-table { position: absolute; left: 1px; top: 131px; width: 1100px; border-top: 1px solid var(--lower-border); }
.clinic-info-table__row { position: relative; height: 60px; border-bottom: 1px solid var(--lower-border); font-size: 16px; font-weight: 500; line-height: 23px; }
.clinic-info-table__label { position: absolute; left: 24px; top: 16px; }
.clinic-info-table__colon { position: absolute; left: 117px; top: 13px; }
.clinic-info-table__value { position: absolute; left: 149px; top: 16px; white-space: pre-line; }
.clinic-doctor { position: absolute; left: 3px; width: 1098px; }
.clinic-doctor h3 { position: absolute; left: 0; top: 0; margin: 0; font-size: 14px; font-weight: 700; line-height: 29px; }
.clinic-doctor h3 span { font-size: 20px; }
.clinic-doctor--ishida { top: 158px; height: 408px; }
.clinic-doctor--toshii { top: 902px; height: 389px; }
.clinic-doctor--nomura { top: 1310px; height: 226px; }
.clinic-profile-table { position: absolute; left: 0; top: 49px; width: 1098px; border-top: 1px solid var(--lower-border); }
.clinic-profile-table--narrow { top: 44px; width: 745px; }
.clinic-profile-row { position: relative; min-height: 60px; border-bottom: 1px solid var(--lower-border); font-size: 16px; font-weight: 500; line-height: 26px; }
.clinic-profile-row__label { position: absolute; left: 24px; top: 15px; }
.clinic-profile-row__colon { position: absolute; left: 117px; top: 15px; }
.clinic-profile-row p { position: relative; left: 149px; top: 15px; width: 590px; margin: 0; }
.clinic-profile-row:first-child { min-height: 169px; }
.clinic-profile-table--narrow .clinic-profile-row:nth-child(2) { min-height: 84px; }
.clinic-profile-table--narrow .clinic-profile-row:nth-child(3) { min-height: 88px; }
.clinic-doctor--toshii .clinic-profile-row:nth-child(2) { min-height: 60px; }
.clinic-doctor--toshii .clinic-profile-row:nth-child(3) { min-height: 62px; }
.clinic-doctor--nomura .clinic-profile-row:first-child { min-height: 66px; }
.clinic-doctor--nomura .clinic-profile-row:nth-child(2) { min-height: 65px; }
.clinic-doctor__photo { position: absolute; left: 797px; top: 44px; width: 301px; height: 341px; background: #f0f0f0; }
.clinic-message { position: absolute; left: 0; top: 584px; width: 1101px; height: 230px; padding: 23px 64px 30px 59px; background: var(--beige); border-radius: 6px; }
.clinic-message__label { margin: 0 0 6px; color: #6da1ba; font-family: var(--font-en); font-size: 24px; font-weight: 300; line-height: 35px; }
.clinic-message p:not(.clinic-message__label) { margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 26px; }
.clinic-detail-link { position: absolute; right: 0; bottom: 0; width: 142px; padding: 0 0 7px 2px; border-bottom: 1px solid #222; color: #000; font-size: 16px; font-weight: 500; line-height: 23px; }
.clinic-detail-link::after { content: ">"; position: absolute; right: 4px; color: #10618a; font-family: var(--font-en); font-size: 16px; line-height: 1; }
.clinic-detail-link::after { top: 11px; }
.clinic-equipment-table { position: absolute; left: 1px; top: 135px; width: 1100px; border-top: 1px solid var(--lower-border); }
.clinic-equipment-table::before { content: ""; position: absolute; left: 0; top: 0; width: 253px; height: 430px; background: var(--lower-pale); z-index: 0; }
.clinic-equipment-table__row { position: relative; display: grid; grid-template-columns: 253px 1fr; min-height: 99px; border-bottom: 1px solid var(--lower-border); z-index: 1; }
.clinic-equipment-table__row:first-child { min-height: 147px; }
.clinic-equipment-table__row:nth-child(3) { min-height: 77px; }
.clinic-equipment-table__row:nth-child(4) { min-height: 107px; }
.clinic-equipment-table__row h3 { margin: 0; padding: 52px 18px 0; color: var(--lower-blue); font-size: 18px; font-weight: 700; line-height: 33px; }
.clinic-equipment-table__row:not(:first-child) h3 { padding-top: 30px; }
.clinic-equipment-table__row p { margin: 0; padding: 15px 0 0 15px; color: #222; font-size: 16px; font-weight: 500; line-height: 26px; }
.clinic-equipment-table__row:not(:first-child) p { padding-top: 20px; }
.clinic-bottom-cta { position: relative; width: 1441px; height: 341px; margin-left: 1px; background: var(--beige); text-align: center; }
.clinic-bottom-cta h2 { position: absolute; left: 504px; top: 62px; margin: 0; color: #222; font-size: 24px; font-weight: 700; line-height: 35px; }
.clinic-bottom-cta > p { position: absolute; left: 190px; top: 133px; width: 1068px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 26px; }
.clinic-bottom-cta__buttons { position: absolute; left: 280px; top: 208px; display: flex; gap: 19px; }
.clinic-bottom-cta__buttons a { position: relative; width: 277px; height: 70px; display: flex; align-items: center; justify-content: center; gap: 38px; background: #fff; color: #222; font-size: 16px; font-weight: 500; }
.clinic-bottom-cta__icon { position: absolute; display: block; object-fit: contain; }
.clinic-bottom-cta__icon--external { right: 28px; top: 31px; width: 15px; height: 15px; }
.clinic-bottom-cta__icon--calendar { left: 32px; top: 20px; width: 38px; height: 34px; }
.clinic-bottom-cta__icon--pin { left: 52px; top: 16px; width: 26px; height: 38px; }
.clinic-bottom-cta__arrow { position: absolute; right: 19px; top: 29px; width: 6px; height: 12px; object-fit: contain; }

/* ============ Gastroenterology final page ============ */
.gastro-final-page { position: relative; width: 1440px; background: #fff; color: #222; }
.gastro-final-page a { color: inherit; text-decoration: none; }
.gastro-final-hero { position: relative; width: 1440px; height: 570px; overflow: visible; }
.gastro-final-hero__bg { position: absolute; left: -24px; top: -80px; width: 1535px; height: 710px; overflow: hidden; }
.gastro-final-hero__bg img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.gastro-final-hero__bg::after { content: ""; position: absolute; inset: 0; background: #7890a2; mix-blend-mode: multiply; opacity: .82; }
.gastro-final-hero__wave { position: absolute; left: 0; top: 450px; width: 1441px; height: 214px; max-width: none; pointer-events: none; }
.gastro-final-hero__en { position: absolute; left: 160px; top: 170px; margin: 0; color: rgba(255,255,255,.51); font-family: var(--font-en); font-size: 100px; font-weight: 300; line-height: 1; letter-spacing: 0; }
.gastro-final-hero__title { position: absolute; left: 172px; top: 290px; white-space: nowrap;  margin: 0; color: #fff; font-size: 46px; font-weight: 500; line-height: 1.45; text-shadow: 0 0 15px rgba(0,0,0,.25); }
.gastro-final-section { position: relative; width: 1101px; margin-left: 170px; }
.gastro-final-section--intro { width: 1100px; height: 611px; margin-left: 172px; margin-bottom: 117px; }
.gastro-final-section--disease-cards { height: 764px; margin-bottom: 98px; }
.gastro-final-section--diseases { height: 908px; margin-bottom: 122px; }
.gastro-final-section--exam-cases { height: 383px; margin-bottom: 100px; }
.gastro-final-section--features { height: 384px; margin-bottom: 110px; }
.gastro-final-section--expense { height: 232px; margin-bottom: 78px; }
.gastro-final-lead { position: absolute; left: 25px; top: 0; width: 1006px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 29px; }
.gastro-final-note { position: absolute; left: 46px; top: 531px; width: 1006px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 29px; }
.gastro-final-heading { position: absolute; left: 2px; top: 0; min-height: 77px; padding-left: 25px; border-left: 3px solid #76a7be; }
.gastro-final-section--expense .gastro-final-heading { left: 0; }
.gastro-final-heading h2 { margin: -3px 0 0; color: #222; font-size: 30px; font-weight: 500; line-height: 1.45; }
.gastro-final-heading p { margin: 0; color: #6da1ba; font-family: var(--font-en); font-size: 18px; font-weight: 300; line-height: 1.45; }
.gastro-symptom-panel { position: absolute; left: 0; top: 110px; width: 1100px; height: 393px; background: url("../img/gastro-final/symptom-bg.svg") 0 0 / 100% 100% no-repeat; }
.gastro-symptom-panel__ribbon { position: absolute; left: 279px; top: 15px; width: 540px; height: 70px; background: url("../img/gastro-final/symptom-bubble.svg") 0 0 / 100% 100% no-repeat; }
.gastro-symptom-panel__ribbon h2 { position: absolute; left: 81px; top: 10px; width: 364px; margin: 0; color: #10618a; font-size: 28px; font-weight: 500; line-height: 41px; white-space: nowrap; }
.gastro-symptom-panel::after { content: ""; position: absolute; left: 548px; top: 114px; width: 1px; height: 247px; background: url("../img/gastro-final/symptom-divider.svg") center/100% 100% no-repeat; }
.gastro-symptom-group { position: absolute; top: 106px; width: 438px; }
.gastro-symptom-group--upper { left: 39px; }
.gastro-symptom-group--lower { left: 579px; }
.gastro-symptom-group__icon { position: absolute; left: 0; top: 0; width: 59px; height: 63px; object-fit: contain; }
.gastro-symptom-group h3 { position: absolute; left: 86px; top: 10px; width: 352px; margin: 0; color: #222; font-size: 20px; font-weight: 700; line-height: 29px; }
.gastro-symptom-group ul { position: absolute; left: 94px; top: 64px; width: 360px; margin: 0; padding: 0; list-style: none; color: #222; font-size: 16px; font-weight: 500; line-height: 26px; white-space: nowrap; }
.gastro-symptom-group li { position: relative; padding-left: 21px; }
.gastro-symptom-group li::before { content: ""; position: absolute; left: 0; top: 8px; width: 11px; height: 11px; border: 1px solid #000; background: #f5f5f5; }
.gastro-card-grid { position: absolute; left: 0; top: 115px; display: grid; grid-template-columns: repeat(2, 520px); gap: 51px 61px; }
.gastro-info-card { position: relative; width: 520px; height: 179px; }
.gastro-info-card:nth-child(3),
.gastro-info-card:nth-child(4) { height: 183px; }
.gastro-info-card h3,
.gastro-case-panel h3,
.gastro-feature-panel h3 { margin: 0; height: 57px; display: flex; align-items: center; padding: 0 23px; background: #eff7fa; color: #222; font-size: 20px; font-weight: 700; line-height: 29px; }
.gastro-info-card p { margin: 16px 0 0 3px; width: 515px; color: #222; font-size: 16px; font-weight: 500; line-height: 26px; }
.gastro-text-link { position: absolute; right: 8px; bottom: 0; width: 142px; padding-bottom: 7px; border-bottom: 1px solid #222; color: #000; font-size: 16px; font-weight: 500; line-height: 23px; }
.gastro-text-link::after { content: ""; position: absolute; right: 2px; top: 11px; width: 6px; height: 12px; background: url("../img/gastro-final/arrow.svg") center/contain no-repeat; }
.gastro-disease-groups { position: absolute; left: 0; top: 120px; display: grid; gap: 63px; }
.gastro-disease-group { position: relative; width: 1101px; height: 361px; }
.gastro-disease-group:nth-child(2) { height: 364px; }
.gastro-disease-group h3 { margin: 0; width: 1101px; height: 57px; display: flex; align-items: center; padding-left: 27px; background: #10618a; color: #fff; font-size: 18px; font-weight: 700; line-height: 33px; }
.gastro-disease-list { width: 1100px; height: 290px; margin-top: 14px; padding: 27px 27px 0; display: grid; grid-template-columns: repeat(4, 253px); grid-auto-rows: 71px; gap: 10px 11px; background: #f3f0e9; }
.gastro-disease-tile { position: relative; display: flex; align-items: center; justify-content: center; width: 253px; height: 71px; background: #fff; color: #222; font-size: 16px; font-weight: 700; line-height: 23px; text-align: center; }
.gastro-disease-tile img { position: absolute; right: 10px; top: 30px; width: 6px; height: 12px; object-fit: contain; }
.gastro-two-panel { position: absolute; left: 0; top: 120px; width: 1103px; height: 263px; }
.gastro-case-panel,
.gastro-feature-panel { position: absolute; top: 0; left: 0; width: 552px; height: 263px; }
.gastro-case-panel + .gastro-case-panel,
.gastro-feature-panel + .gastro-feature-panel { left: 551px; }
.gastro-case-panel h3,
.gastro-feature-panel h3 { height: 61px; padding-left: 30px; border: 1px solid #d6e6ee; background: #eff7fa; }
.gastro-case-panel__body,
.gastro-feature-panel__body { position: relative; width: 552px; height: 203px; margin-top: -1px; border: 0; background: url("../img/gastro-final/panel-body.svg") 0 0 / 100% 100% no-repeat; }
.gastro-case-panel ul { margin: 0; padding: 15px 26px 0 32px; list-style: none; color: #222; font-size: 16px; font-weight: 500; line-height: 26px; }
.gastro-case-panel li { position: relative; padding-left: 21px; }
.gastro-case-panel li::before { content: ""; position: absolute; left: 0; top: 8px; width: 11px; height: 11px; border: 1px solid #000; background: #f5f5f5; }
.gastro-case-panel .gastro-text-link,
.gastro-feature-panel .gastro-text-link { right: 32px; bottom: 19px; width: 194px; }
.gastro-case-panel:nth-child(2) .gastro-text-link,
.gastro-feature-panel:nth-child(2) .gastro-text-link { right: 33px; width: 213px; }
.gastro-case-panel .gastro-text-link::after,
.gastro-feature-panel .gastro-text-link::after { top: 6px; background-image: url("../img/gastro-final/panel-arrow.svg"); }
.gastro-feature-panel__body p { margin: 0; padding: 28px 28px 0 34px; width: 511px; color: #222; font-size: 16px; font-weight: 500; line-height: normal; }
.gastro-expense-text { position: absolute; left: 6px; top: 121px; width: 1076px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 29px; }

/* ============ Gastroscopy preparation final page ============ */
.prep-final-page { position: relative; width: 1440px; background: #fff; color: #222; }
.prep-final-page a { color: inherit; text-decoration: none; }
.prep-final-page > .faq-bottom-cta { margin-left: calc((1440px - 100vw) / 2); margin-right: 0; padding-left: calc((100vw - 1100px) / 2); padding-right: calc((100vw - 1100px) / 2); }
.prep-final-hero { position: relative; width: 1440px; height: 600px; overflow: visible; }
.prep-final-hero__bg { position: absolute; left: -24px; top: -80px; width: 1535px; height: 710px; overflow: hidden; }
.prep-final-hero__bg img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.prep-final-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(60,90,104,.42); mix-blend-mode: multiply; }
.prep-final-hero__wave { position: absolute; left: 0; top: 450px; width: 1441px; height: 214px; max-width: none; pointer-events: none; }
.prep-final-hero__en { position: absolute; left: 160px; top: 170px; margin: 0; color: rgba(255,255,255,.51); font-family: var(--font-en); font-size: 100px; font-weight: 300; line-height: 1; letter-spacing: 0; }
.prep-final-hero__title { position: absolute; left: 172px; top: 290px; white-space: nowrap;  margin: 0; color: #fff; font-size: 46px; font-weight: 500; line-height: 1.45; text-shadow: 0 0 15px rgba(0,0,0,.25); }
.prep-final-section { position: relative; width: 1104px; margin-left: 172px; }
.prep-final-section--before { height: 702px; margin-bottom: 97px; }
.prep-final-section--day { width: 1106px; margin-left: 170px; height: 1041px; margin-bottom: 116px; }
.prep-final-section--after { width: 1101px; margin-left: 170px; height: 685px; margin-bottom: 86px; }
.prep-final-section--faq { width: 1100px; margin-left: 172px; height: 790px; margin-bottom: 70px; }
.prep-final-lead { position: absolute; left: 1px; top: 0; width: 1066px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.prep-final-heading { position: absolute; left: 0; top: 134px; min-height: 77px; padding-left: 25px; border-left: 3px solid #76a7be; }
.prep-final-section--day .prep-final-heading,
.prep-final-section--after .prep-final-heading { left: 2px; top: 0; }
.prep-final-section--faq .prep-final-heading { left: 0; top: 0; }
.prep-final-heading h2 { margin: -3px 0 0; color: #222; font-size: 30px; font-weight: 500; line-height: 1.45; }
.prep-final-heading p { margin: 1px 0 0; color: #6da1ba; font-family: var(--font-en); font-size: 18px; font-weight: 400; line-height: 26px; }
.prep-table { position: absolute; width: 1104px; }
.prep-table--before { left: 0; top: 263px; height: 439px; }
.prep-table--day { left: 2px; top: 121px; height: 393px; }
.prep-table-row { position: relative; display: grid; grid-template-columns: 252px 852px; width: 1104px; }
.prep-table-row__label { display: flex; align-items: center; padding-left: 36px; background: #eff7fa; border: 1px solid #d6e6ee; color: #222; font-size: 18px; font-weight: 700; line-height: 26px; }
.prep-table-row__body { position: relative; border: 1px solid #d6e6ee; border-left: 0; color: #222; font-size: 16px; font-weight: 500; }
.prep-table-row + .prep-table-row { margin-top: -1px; }
.prep-table-row--dinner,
.prep-table-row--meal { height: 139px; }
.prep-table-row--avoid { height: 187px; }
.prep-table-row--after-nine { height: 104px; }
.prep-table-row--medicine { height: 255px; }
.prep-list { margin: 0; padding: 17px 28px 0 45px; list-style: none; line-height: 30px; }
.prep-list li { position: relative; white-space: nowrap; }
.prep-list li::before { content: ""; position: absolute; left: -16px; top: 13px; width: 5px; height: 5px; background: #10618a; }
.prep-list--image { padding-top: 9px; padding-left: 48px; line-height: 30px; }
.prep-list--image li::before { left: -23px; top: 10px; width: 13px; height: 13px; background: url("../img/preparation-final/marker.svg") center/contain no-repeat; }
.prep-table-row--after-nine .prep-list { padding-top: 15px; }
.prep-table-row--meal .prep-list { padding-top: 17px; }
.prep-table-row--medicine .prep-table-row__body { padding-top: 15px; }
.prep-medicine-lead { margin: 0 0 4px 29px; color: #222; font-size: 16px; font-weight: 500; line-height: 30px; }
.prep-table-row--medicine .prep-list { padding: 0 28px 0 45px; line-height: 24px; }
.prep-table-row--medicine .prep-list li::before { top: 10px; }
.prep-table-note { position: relative; margin: 4px 0 0 54px; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.prep-table-note::before { content: "※"; position: absolute; left: -20px; top: -3px; }
.prep-simple-stack { position: absolute; left: 0; top: 561px; width: 1101px; height: 480px; }
.prep-simple-block { position: relative; width: 1101px; color: #222; }
.prep-simple-block h3 { height: 57px; margin: 0; display: flex; align-items: center; padding-left: 26px; background: rgba(235,235,235,.6); color: #28698a; font-size: 20px; font-weight: 700; line-height: 29px; }
.prep-simple-block__lead { margin: 19px 0 0 3px; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.prep-simple-block ul { margin: 7px 0 0 1px; padding: 0; list-style: none; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.prep-simple-block li { white-space: nowrap; }
.prep-simple-block li::before { content: "・"; }
.prep-simple-block--sedation { height: 249px; }
.prep-simple-block--belongings { position: absolute; left: 0; top: 301px; height: 179px; }
.prep-simple-block--belongings ul { margin-top: 19px; }
.prep-after-stack { position: absolute; left: 0; top: 123px; width: 1101px; }
.prep-after-block { height: 175px; margin-bottom: 18px; }
.prep-after-block:nth-child(n+2) { height: 176px; }
.prep-after-block ul { margin-top: 18px; }
.prep-faq { position: absolute; left: 22px; top: 139px; width: 1052px; }
.prep-faq__item { position: relative; height: 151px; margin-bottom: 39px; }
.prep-faq__q { position: absolute; left: 0; top: 0; width: 857px; height: 63px; display: flex; align-items: center; background: #fff; border: 1px solid #d6e6ee; border-radius: 6px; }
.prep-faq__a { position: absolute; left: 85px; top: 82px; width: 967px; min-height: 69px; display: flex; align-items: flex-start; background: #eff7fa; border-radius: 6px; }
.prep-faq__item:nth-child(2) .prep-faq__a { min-height: 68px; }
.prep-faq__item:nth-child(3) .prep-faq__a { min-height: 73px; }
.prep-faq span { flex: 0 0 auto; color: #6da1ba; font-family: var(--font-en); font-size: 24px; font-weight: 400; line-height: 35px; }
.prep-faq__q span { margin-left: 19px; }
.prep-faq__q p { margin: 0 0 0 17px; color: #222; font-size: 16px; font-weight: 500; line-height: 23px; }
.prep-faq__a span { margin: 14px 0 0 31px; }
.prep-faq__a p { margin: 20px 0 0 21px; width: 833px; color: #222; font-size: 16px; font-weight: 500; line-height: normal; }
.prep-detail-link { position: absolute; right: 0; bottom: 0; width: 210px; padding-bottom: 7px; border-bottom: 1px solid #6da1ba; color: #6da1ba; font-size: 16px; font-weight: 500; line-height: 23px; }
.prep-detail-link:hover,
.prep-detail-link:focus-visible { color: var(--lower-blue); border-bottom-color: var(--lower-blue); }
.prep-detail-link::after { content: ""; position: absolute; right: 7px; top: 6px; width: 6px; height: 12px; background: url("../img/preparation-final/arrow.svg") center/contain no-repeat; }

/* === 大腸事前準備ページ: 絶対配置→相対フロー化（コンテンツが固定高さを超えても崩れない） === */
.prep-final-section--before,
.prep-final-section--day,
.prep-final-section--after,
.prep-final-section--faq { height: auto; }
.prep-final-section--before .prep-final-lead { position: relative; left: auto; top: auto; width: 100%; margin: 0 0 36px; }
.prep-final-section--before .prep-final-heading,
.prep-final-section--day .prep-final-heading,
.prep-final-section--after .prep-final-heading,
.prep-final-section--faq .prep-final-heading { position: relative; left: auto; top: auto; margin-bottom: 32px; }
.prep-table,
.prep-table--before,
.prep-table--day { position: relative; left: auto; top: auto; height: auto; width: 100%; }
.prep-table-row,
.prep-table-row--dinner,
.prep-table-row--meal,
.prep-table-row--avoid,
.prep-table-row--after-nine,
.prep-table-row--medicine { height: auto; min-height: 100px; width: 100%; }
.prep-table-row__body { padding-bottom: 20px; }
.prep-table-row--medicine .prep-table-row__body { padding-bottom: 24px; }
.prep-table-note { margin-top: 14px; }
.prep-simple-stack { position: relative; left: auto; top: auto; height: auto; width: 100%; margin-top: 50px; display: grid; gap: 36px; }
.prep-simple-block,
.prep-simple-block--sedation,
.prep-simple-block--belongings { position: relative; left: auto; top: auto; height: auto; width: 100%; margin-bottom: 0; }
.prep-simple-block ul { padding: 0 0 14px 4px; }
.prep-after-stack { position: relative; left: auto; top: auto; width: 100%; }
.prep-after-block,
.prep-after-block:nth-child(n+2) { height: auto; min-height: 175px; }
.prep-final-section--faq { padding-bottom: 60px; }
.prep-faq { position: relative; left: auto; top: auto; width: 100%; margin-top: 0; }
.prep-faq__item { height: auto; margin-bottom: 28px; }
.prep-faq__q,
.prep-faq__a { position: relative; left: auto; top: auto; width: auto; }
.prep-faq__q { width: 100%; }
.prep-faq__a { margin: 14px 0 0 85px; width: calc(100% - 85px); min-height: 0; }
.prep-faq__item:nth-child(2) .prep-faq__a,
.prep-faq__item:nth-child(3) .prep-faq__a { min-height: 0; }
.prep-faq__a { padding: 16px 30px; align-items: center; gap: 14px; }
.prep-faq__a span { margin: 0; flex-shrink: 0; }
.prep-faq__a p { margin: 0; width: auto; max-width: none; flex: 1; line-height: 1.7; }
.prep-detail-link { position: relative; right: auto; bottom: auto; display: block; margin: 20px 0 0 auto; }
/* prep-faq accordion */
details.prep-faq__item { display: block; }
details.prep-faq__item > summary { list-style: none; cursor: pointer; outline: none; -webkit-tap-highlight-color: transparent; }
details.prep-faq__item > summary::-webkit-details-marker { display: none; }
details.prep-faq__item > summary > .prep-faq__q { position: relative; padding-right: 64px; }
details.prep-faq__item > summary > .prep-faq__q::before,
details.prep-faq__item > summary > .prep-faq__q::after {
  content: ''; position: absolute; right: 26px; top: 50%;
  width: 16px; height: 2px; background: var(--lower-blue);
  transition: transform 0.25s ease;
}
details.prep-faq__item > summary > .prep-faq__q::before { transform: translateY(-50%) rotate(90deg); }
details.prep-faq__item > summary > .prep-faq__q::after { transform: translateY(-50%); }
details.prep-faq__item[open] > summary > .prep-faq__q::before { transform: translateY(-50%) rotate(0deg); }
.prep-faq__panel { overflow: hidden; transition: height 0.28s ease; }
details.prep-faq__item:not([open]) .prep-faq__panel { height: 0; }
@media (max-width: 767px) {
  details.prep-faq__item > summary > .prep-faq__q { padding-right: 48px; }
  details.prep-faq__item > summary > .prep-faq__q::before,
  details.prep-faq__item > summary > .prep-faq__q::after { right: 14px; width: 14px; }
}

/* ============ Sunday gastroscopy final page ============ */
.sunday-final-page { position: relative; width: 1440px; background: #fff; color: #222; }
.sunday-final-page a { color: inherit; text-decoration: none; }
.sunday-final-hero { position: relative; width: 1440px; height: 580px; overflow: visible; }
.sunday-final-hero__bg { position: absolute; left: -24px; top: -80px; width: 1535px; height: 710px; overflow: hidden; }
.sunday-final-hero__bg img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.sunday-final-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(60,90,104,.42); mix-blend-mode: multiply; }
.sunday-final-hero__wave { position: absolute; left: 0; top: 450px; width: 1441px; height: 214px; max-width: none; pointer-events: none; }
.sunday-final-hero__en { position: absolute; left: 160px; top: 170px; margin: 0; color: rgba(255,255,255,.51); font-family: var(--font-en); font-size: 100px; font-weight: 300; line-height: 1; letter-spacing: 0; }
.sunday-final-hero__title { position: absolute; left: 165px; top: 290px; white-space: nowrap;  margin: 0; color: #fff; font-size: 46px; font-weight: 500; line-height: 1.45; text-shadow: 0 0 15px rgba(0,0,0,.25); }
.sunday-final-section { position: relative; color: #222; }
.sunday-final-section--reason { width: 1102px; height: 649px; margin-left: 169px; margin-bottom: 115px; }
.sunday-final-section--about { width: 1314px; height: 265px; margin-left: 169px; margin-bottom: 124px; }
.sunday-final-section--camera { width: 1103px; height: 593px; margin-left: 168px; margin-bottom: 115px; }
.sunday-final-section--reservation { width: 1066px; height: 258px; margin-left: 171px; margin-bottom: 50px; }
.sunday-final-lead { position: absolute; left: 4px; top: 0; width: 1066px; margin: 0; font-size: 16px; font-weight: 500; line-height: 24px; }
.sunday-final-heading { position: absolute; left: 3px; top: 150px; min-height: 77px; padding-left: 25px; border-left: 3px solid #76a7be; }
.sunday-final-section--about .sunday-final-heading,
.sunday-final-section--camera .sunday-final-heading,
.sunday-final-section--reservation .sunday-final-heading { top: 0; }
.sunday-final-section--reservation .sunday-final-heading { left: 1px; }
.sunday-final-heading h2 { margin: -3px 0 0; color: #222; font-size: 30px; font-weight: 500; line-height: 1.45; }
.sunday-final-heading p { margin: 1px 0 0; color: #6da1ba; font-family: var(--font-en); font-size: 18px; font-weight: 400; line-height: 26px; }
.sunday-reason-text { position: absolute; left: 2px; top: 299px; width: 1066px; margin: 0; font-size: 16px; font-weight: 500; line-height: 24px; }
.sunday-recommend { position: absolute; left: 0; top: 462px; width: 1102px; height: 181px; }
.sunday-recommend__label { position: absolute; left: 3px; top: 0; width: 344px; height: 66px; display: flex; align-items: flex-start; padding: 15px 0 0 35px; background: url("../img/sunday-final/recommend-label.svg") 0 0 / 100% 100% no-repeat; color: #222; font-size: 20px; font-weight: 500; line-height: 29px; }
.sunday-recommend ul { position: absolute; left: 0; top: 68px; width: 1102px; height: 113px; margin: 0; padding: 10px 0 0 54px; list-style: none; background: url("../img/sunday-final/recommend-bg.svg") 0 0 / 100% 100% no-repeat; color: #000; font-size: 16px; font-weight: 500; line-height: 26px; }
.sunday-recommend li { position: relative; }
.sunday-recommend li::before { content: ""; position: absolute; left: -20px; top: 9px; width: 12px; height: 9px; background: url("../img/sunday-final/check.svg") center/contain no-repeat; }
.sunday-about-table { position: absolute; left: 0; top: 120px; width: 1104px; }
.sunday-about-row { position: relative; display: grid; grid-template-columns: 225px 879px; width: 1104px; height: 73px; }
.sunday-about-row + .sunday-about-row { margin-top: -1px; }
.sunday-about-row__label { display: flex; align-items: center; padding-left: 36px; background: #eff7fa; border: 1px solid #d6e6ee; color: #222; font-size: 18px; font-weight: 700; line-height: 26px; }
.sunday-about-row__value { display: flex; align-items: center; padding-left: 24px; background: url("../img/sunday-final/table-body.svg") 0 0 / 100% 100% no-repeat; color: #222; font-size: 16px; font-weight: 500; line-height: 30px; }
.sunday-about-row:first-child .sunday-about-row__value::before { content: "・"; }
.sunday-camera-text { position: absolute; left: 3px; top: 130px; width: 1066px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.sunday-feature-panel { position: absolute; left: 0; top: 206px; width: 1103px; height: 355px; background: #f5f3ee; }
.sunday-feature-panel h3 { position: absolute; left: 379px; top: 35px; width: 335px; height: 29px; display: flex; align-items: center; justify-content: center; gap: 17px; margin: 0; color: #222; font-size: 20px; font-weight: 500; line-height: 29px; }
.sunday-feature-panel h3 span { width: 40px; height: 1px; background: #222; }
.sunday-feature-panel__inner { position: absolute; left: 0; top: 100px; width: 1103px; height: 218px; }
.sunday-feature-panel__inner::after { content: ""; position: absolute; left: 551px; top: 0; width: 1px; height: 218px; background: #222; opacity: .35; }
.sunday-feature { position: absolute; top: 0; width: 442px; text-align: center; }
.sunday-feature:nth-child(1) { left: 69px; }
.sunday-feature:nth-child(2) { left: 581px; }
.sunday-feature img { position: absolute; left: 50%; transform: translateX(-50%); top: 12px; object-fit: contain; }
.sunday-feature:nth-child(1) img { width: 63px; height: 69px; }
.sunday-feature:nth-child(2) img { width: 65px; height: 77px; top: 12px; }
.sunday-feature h4 { position: absolute; left: 0; top: 95px; width: 442px; margin: 0; color: #10618a; font-size: 20px; font-weight: 500; line-height: 29px; }
.sunday-feature p { position: absolute; left: 0; top: 147px; width: 442px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; text-align: left; }
.sunday-reservation-text { position: absolute; left: 0; top: 118px; width: 1066px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.sunday-reservation-text a { text-decoration: underline; text-underline-offset: 3px; }
.sunday-reservation-text a.lower-tel-link { text-decoration: none; }
.sunday-reservation-text a:hover,
.sunday-reservation-text a:focus-visible { color: var(--lower-blue); }
.sunday-bottom-cta { position: relative; width: 100vw; height: 172px; margin-left: calc((1440px - 100vw) / 2); background: #f5f3ee; }
.sunday-bottom-cta__buttons { position: absolute; left: 50%; top: 50px; display: flex; gap: 47px; transform: translateX(-50%); }
.sunday-bottom-cta a { position: relative; display: block; width: 340px; height: 70px; background: #fff; color: #222; font-size: 16px; font-weight: 500; line-height: 23px; }
.sunday-bottom-cta__icon { position: absolute; object-fit: contain; }
.sunday-bottom-cta__icon--web { left: 32px; top: 20px; width: 38px; height: 34px; }
.sunday-bottom-cta__icon--scope { left: 39px; top: 17px; width: 39px; height: 40px; }
.sunday-bottom-cta span { position: absolute; top: 22px; white-space: nowrap; }
.sunday-bottom-cta a:first-child span { left: 107px; }
.sunday-bottom-cta a:nth-child(2) span { left: 91px; }
.sunday-bottom-cta__arrow { position: absolute; right: 15px; top: 31px; width: 6px; height: 12px; object-fit: contain; }

.diarrhea-final-page { position: relative; width: 1440px; background: #fff; color: #222; }
.diarrhea-final-page a { color: inherit; text-decoration: none; }
.diarrhea-final-hero { position: relative; width: 1440px; height: 620px; overflow: visible; }
.diarrhea-final-hero__bg { position: absolute; left: -24px; top: -80px; width: 1535px; height: 710px; overflow: hidden; }
.diarrhea-final-hero__bg img { position: absolute; left: 0; top: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.diarrhea-final-hero__bg::after { content: ""; position: absolute; inset: 0; background: rgba(60,90,104,.42); mix-blend-mode: multiply; }
.diarrhea-final-hero__wave { position: absolute; left: 0; top: 450px; width: 1441px; height: 214px; max-width: none; pointer-events: none; }
.diarrhea-final-hero__en { position: absolute; left: 160px; top: 170px; margin: 0; color: rgba(255,255,255,.51); font-family: var(--font-en); font-size: 100px; font-weight: 300; line-height: 1; letter-spacing: 0; white-space: nowrap; }
.diarrhea-final-hero__title { position: absolute; left: 172px; top: 290px; white-space: nowrap;  margin: 0; color: #fff; font-size: 46px; font-weight: 500; line-height: 1.45; text-shadow: 0 0 15px rgba(0,0,0,.25); }
.diarrhea-final-section { position: relative; width: 1102px; margin-left: 170px; color: #222; }
.diarrhea-final-section--about { height: 667px; margin-bottom: 94px; }
.diarrhea-final-section--types { height: 544px; margin-bottom: 111px; }
.diarrhea-final-section--diseases { height: 401px; margin-bottom: 106px; }
.diarrhea-final-section--exam { height: 272px; margin-bottom: 114px; }
.diarrhea-final-section--care { height: 483px; margin-bottom: 95px; }
.diarrhea-final-section--message { height: 200px; margin-bottom: 200px; }
.diarrhea-final-heading { position: absolute; left: 2px; top: 0; min-height: 77px; padding-left: 25px; border-left: 3px solid #76a7be; }
.diarrhea-final-heading h2 { margin: -3px 0 0; color: #222; font-size: 30px; font-weight: 500; line-height: 1.45; }
.diarrhea-final-heading p { margin: 1px 0 0; color: #6da1ba; font-family: var(--font-en); font-size: 18px; font-weight: 400; line-height: 26px; }
.diarrhea-about-text { position: absolute; left: 3px; top: 120px; width: 1066px; margin: 0; font-size: 16px; font-weight: 500; line-height: 24px; }
.diarrhea-about-text p { margin: 0 0 18px; }
.diarrhea-about-text p:last-child { margin-bottom: 0; }
.diarrhea-check { position: absolute; left: 0; top: 336px; width: 1102px; height: 234px; }
.diarrhea-check h3 { position: absolute; left: 2px; top: 0; width: 458px; height: 69px; display: flex; align-items: flex-start; margin: 0; padding: 14px 0 0 17px; background: url("../img/diarrhea-final/check-label.svg") 0 0 / 100% 100% no-repeat; color: #222; font-size: 20px; font-weight: 500; line-height: 29px; }
.diarrhea-check ul { position: absolute; left: 0; top: 68px; width: 1102px; height: 166px; margin: 0; padding: 9px 0 0 54px; list-style: none; background: url("../img/diarrhea-final/check-bg.svg") 0 0 / 100% 100% no-repeat; font-size: 16px; font-weight: 500; line-height: 26px; }
.diarrhea-check li { position: relative; height: 26px; }
.diarrhea-check li::before { content: ""; position: absolute; left: -21px; top: 9px; width: 11px; height: 11px; background: #f5f5f5; border: 1px solid #222; box-sizing: border-box; }
.diarrhea-check-note { position: absolute; left: 3px; top: 596px; width: 1066px; margin: 0; font-size: 16px; font-weight: 500; line-height: 24px; }
.diarrhea-bar-heading { position: absolute; left: 1px; top: 0; width: 1101px; height: 57px; display: flex; align-items: center; padding-left: 15px; background: rgba(235,235,235,.6); border-left: 3px solid #76a7be; box-sizing: border-box; }
.diarrhea-final-section--types .diarrhea-bar-heading { left: 3px; padding-left: 16px; }
.diarrhea-bar-heading h2 { margin: 0; color: #28698a; font-size: 20px; font-weight: 700; line-height: 29px; }
.diarrhea-section-lead { position: absolute; left: 3px; top: 88px; width: 1066px; margin: 0; font-size: 16px; font-weight: 500; line-height: 24px; }
.diarrhea-type-table { position: absolute; left: -2px; top: 143px; width: 1104px; height: 341px; }
.diarrhea-type-table h3 { position: absolute; left: -9px; margin: 0; color: #222; font-size: 20px; font-weight: 500; line-height: 29px; }
.diarrhea-type-table h3:nth-of-type(1) { top: 0; }
.diarrhea-type-table h3:nth-of-type(2) { top: 199px; }
.diarrhea-type-table .diarrhea-table-row:nth-of-type(1) { top: 36px; height: 70px; }
.diarrhea-type-table .diarrhea-table-row:nth-of-type(2) { top: 103px; height: 70px; }
.diarrhea-type-table .diarrhea-table-row:nth-of-type(3) { top: 234px; height: 84px; }
.diarrhea-type-table .diarrhea-table-row:nth-of-type(4) { top: 317px; height: 84px; }
.diarrhea-table-row { position: absolute; left: 0; display: grid; grid-template-columns: 317px 787px; width: 1104px; min-height: 61px; }
.diarrhea-table-row--type { grid-template-columns: 184px 920px; }
.diarrhea-table-row::before,
.diarrhea-table-row::after { content: ""; position: absolute; left: 0; z-index: 2; width: 100%; height: 1px; background: #d6e6ee; pointer-events: none; }
.diarrhea-table-row::before { top: 0; }
.diarrhea-table-row::after { bottom: 0; }
.diarrhea-table-row__label { display: flex; align-items: center; justify-content: flex-start; padding: 0 18px 0 29px; background: #eff7fa; border: 1px solid #d6e6ee; color: #222; font-size: 16px; font-weight: 700; line-height: 24px; text-align: left; }
.diarrhea-table-row__body { display: flex; align-items: center; padding: 0 23px; background: #fff; border: 1px solid #d6e6ee; border-left: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.diarrhea-table-row--type .diarrhea-table-row__body { padding-left: 15px; padding-right: 16px; }
.diarrhea-basic-table { position: absolute; left: -2px; top: 80px; width: 1104px; }
.diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(1) { top: 0; height: 81px; }
.diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(2) { top: 80px; height: 81px; }
.diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(3) { top: 160px; height: 81px; }
.diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(4) { top: 240px; height: 81px; }
.diarrhea-final-section--exam .diarrhea-section-lead { line-height: 22px; }
.diarrhea-final-section--exam .diarrhea-basic-table { top: 143px; }
.diarrhea-basic-table--exam .diarrhea-table-row:nth-child(1) { top: 0; height: 81px; }
.diarrhea-basic-table--exam .diarrhea-table-row:nth-child(2) { top: 80px; height: 61px; }
.diarrhea-care { position: absolute; left: 1px; top: 86px; width: 1088px; }
.diarrhea-care-group { position: absolute; left: 0; width: 1088px; }
.diarrhea-care-group--1 { top: 0; height: 264px; }
.diarrhea-care-group--2 { top: 290px; height: 105px; }
.diarrhea-care-group h3 { position: relative; display: flex; align-items: center; gap: 12px; height: 29px; margin: 0; padding-left: 3px; color: #222; font-size: 18px; font-weight: 700; line-height: 26px; }
.diarrhea-care-group h3 img { width: 15px; height: 11px; object-fit: contain; }
.diarrhea-care-list { position: absolute; left: 0; top: 37px; width: 1088px; }
.diarrhea-care-list p { min-height: 72px; margin: 0; padding: 13px 0 13px 19px; border-top: 1px solid #d9d9d9; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; box-sizing: border-box; }
.diarrhea-care-group--1 .diarrhea-care-list p:nth-child(1) { min-height: 73px; }
.diarrhea-care-group--1 .diarrhea-care-list p:nth-child(2) { min-height: 72px; }
.diarrhea-care-group--1 .diarrhea-care-list p:nth-child(3) { min-height: 82px; }
.diarrhea-care-list p:last-child { border-bottom: 1px solid #d9d9d9; }
.diarrhea-care-list strong { display: inline-block; margin-right: 8px; font-weight: 700; }
.diarrhea-care-list span { font-weight: 500; }
.diarrhea-care-group--2 .diarrhea-care-list { top: 42px; }
.diarrhea-care-group--2 .diarrhea-care-list p { min-height: 65px; padding: 0 0 0 3px; border-top: 0; border-bottom: 0; }
.diarrhea-message-text { position: absolute; left: 3px; top: 81px; width: 1066px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; }
.diarrhea-bottom-cta { position: relative; width: 1441px; height: 354px; margin-left: -1px; background: #f5f3ee; }
.diarrhea-bottom-cta h2 { position: absolute; left: 50%; transform: translateX(-50%); top: 33px; margin: 0; color: #222; font-size: 24px; font-weight: 700; line-height: 35px; text-align: center; }
.diarrhea-bottom-cta p { position: absolute; left: 50%; transform: translateX(-50%); top: 160px; width: 1068px; margin: 0; color: #222; font-size: 16px; font-weight: 500; line-height: 24px; text-align: center; }
.diarrhea-bottom-cta__buttons { position: absolute; left: 50%; transform: translateX(-50%); top: 212px; display: flex; gap: 47px; }
.diarrhea-bottom-cta a { position: relative; display: block; width: 277px; height: 70px; background: #fff; color: #222; font-size: 16px; font-weight: 500; line-height: 23px; }
.diarrhea-bottom-cta__icon { position: absolute; object-fit: contain; }
.diarrhea-bottom-cta__icon--web { left: 32px; top: 19px; width: 38px; height: 34px; }
.diarrhea-bottom-cta__icon--colono { left: 23px; top: 17px; width: 39px; height: 40px; }
.diarrhea-bottom-cta span { position: absolute; top: 22px; white-space: nowrap; }
.diarrhea-bottom-cta a:first-child span { left: 107px; }
.diarrhea-bottom-cta a:nth-child(2) span { left: 77px; }
.diarrhea-bottom-cta__arrow { position: absolute; right: 15px; top: 31px; width: 6px; height: 12px; object-fit: contain; }

@media (min-width: 768px) {
  .diarrhea-copy-page .diarrhea-final-section {
    height: auto;
  }
  .diarrhea-copy-page .diarrhea-final-section--about {
    margin-bottom: 74px;
  }
  .diarrhea-copy-page .diarrhea-final-section--types,
  .diarrhea-copy-page .diarrhea-final-section--diseases,
  .diarrhea-copy-page .diarrhea-final-section--exam,
  .diarrhea-copy-page .diarrhea-final-section--care,
  .diarrhea-copy-page .diarrhea-final-section--message {
    min-height: 0;
    margin-bottom: 82px;
  }
  .diarrhea-copy-page .diarrhea-final-heading,
  .diarrhea-copy-page .diarrhea-about-text,
  .diarrhea-copy-page .diarrhea-check,
  .diarrhea-copy-page .diarrhea-check h3,
  .diarrhea-copy-page .diarrhea-check ul,
  .diarrhea-copy-page .diarrhea-check-note,
  .diarrhea-copy-page .diarrhea-bar-heading,
  .diarrhea-copy-page .diarrhea-section-lead,
  .diarrhea-copy-page .diarrhea-type-table,
  .diarrhea-copy-page .diarrhea-type-table h3,
  .diarrhea-copy-page .diarrhea-basic-table,
  .diarrhea-copy-page .diarrhea-table-row,
  .diarrhea-copy-page .diarrhea-care,
  .diarrhea-copy-page .diarrhea-care-group,
  .diarrhea-copy-page .diarrhea-care-list,
  .diarrhea-copy-page .diarrhea-message-text {
    position: static;
  }
  .diarrhea-copy-page .diarrhea-final-heading {
    margin-bottom: 39px;
  }
  .diarrhea-copy-page .diarrhea-about-text,
  .diarrhea-copy-page .diarrhea-check-note,
  .diarrhea-copy-page .diarrhea-section-lead,
  .diarrhea-copy-page .diarrhea-message-text {
    width: 1066px;
  }
  .diarrhea-copy-page .diarrhea-check {
    width: 1102px;
    height: auto;
    margin-top: 42px;
  }
  .diarrhea-copy-page .diarrhea-check h3 {
    width: 458px;
    height: 69px;
  }
  .diarrhea-copy-page .diarrhea-check ul {
    width: 1102px;
    height: auto;
    min-height: 166px;
    padding-bottom: 18px;
  }
  .diarrhea-copy-page .diarrhea-check li {
    height: auto;
    min-height: 26px;
  }
  .diarrhea-copy-page .diarrhea-check-note {
    margin-top: 26px;
  }
  .diarrhea-copy-page .diarrhea-bar-heading {
    width: 1101px;
    min-height: 57px;
    height: auto;
    margin-bottom: 27px;
  }
  .diarrhea-copy-page .diarrhea-section-lead {
    margin: 0 0 26px 3px;
  }
  .diarrhea-copy-page .diarrhea-type-table,
  .diarrhea-copy-page .diarrhea-basic-table {
    width: 1104px;
    height: auto;
    display: grid;
    gap: 0;
  }
  .diarrhea-copy-page .diarrhea-type-table h3 {
    margin: 18px 0 10px -9px;
  }
  .diarrhea-copy-page .diarrhea-type-table h3:first-child {
    margin-top: 0;
  }
  .diarrhea-copy-page .diarrhea-table-row,
  .diarrhea-copy-page .diarrhea-table-row--type,
  .diarrhea-copy-page .diarrhea-type-table .diarrhea-table-row:nth-of-type(n),
  .diarrhea-copy-page .diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(n),
  .diarrhea-copy-page .diarrhea-basic-table--exam .diarrhea-table-row:nth-child(n) {
    width: 1104px;
    height: auto;
    min-height: 72px;
  }
  .diarrhea-copy-page .diarrhea-table-row__label {
    min-height: 72px;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .diarrhea-copy-page .diarrhea-table-row__body,
  .diarrhea-copy-page .diarrhea-table-row--type .diarrhea-table-row__body {
    display: block;
    padding-top: 16px;
    padding-bottom: 16px;
    overflow-wrap: anywhere;
  }
  .diarrhea-copy-page .diarrhea-care {
    width: 1088px;
    display: grid;
    gap: 34px;
    margin-top: 29px;
  }
  .diarrhea-copy-page .diarrhea-care-group,
  .diarrhea-copy-page .diarrhea-care-group--1,
  .diarrhea-copy-page .diarrhea-care-group--2 {
    height: auto;
  }
  .diarrhea-copy-page .diarrhea-care-list {
    width: 1088px;
    margin-top: 12px;
  }
  .diarrhea-copy-page .diarrhea-care-list p,
  .diarrhea-copy-page .diarrhea-care-group--1 .diarrhea-care-list p:nth-child(n),
  .diarrhea-copy-page .diarrhea-care-group--2 .diarrhea-care-list p {
    min-height: 0;
    padding-top: 13px;
    padding-bottom: 13px;
  }
  .diarrhea-copy-page .diarrhea-bottom-cta p {
    left: 50%;
    transform: translateX(-50%);
    width: 1068px;
    text-align: center;
  }
}

@media (min-width: 1441px) {
  .clinic-final-hero {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
  }
  .clinic-final-hero__bg {
    left: 0;
    width: 100vw;
  }
  .clinic-final-hero__bg img {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .clinic-final-hero__wave {
    width: 100vw;
  }
  .clinic-final-hero__en { left: calc((100vw - 1440px) / 2 + 160px); }
  .clinic-final-hero__title { left: calc((100vw - 1440px) / 2 + 163px); }

  .gastro-final-hero {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
  }
  .gastro-final-hero__bg {
    left: 0;
    width: 100vw;
  }
  .gastro-final-hero__bg img {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .gastro-final-hero__wave {
    width: 100vw;
  }
  .gastro-final-hero__en { left: calc((100vw - 1440px) / 2 + 160px); }
  .gastro-final-hero__title { left: calc((100vw - 1440px) / 2 + 172px); }

  .prep-final-hero {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
  }
  .prep-final-hero__bg {
    left: 0;
    width: 100vw;
  }
  .prep-final-hero__bg img {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .prep-final-hero__wave {
    width: 100vw;
  }
  .prep-final-hero__en { left: calc((100vw - 1440px) / 2 + 160px); }
  .prep-final-hero__title { left: calc((100vw - 1440px) / 2 + 172px); }

  .sunday-final-hero {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
  }
  .sunday-final-hero__bg {
    left: 0;
    width: 100vw;
  }
  .sunday-final-hero__bg img {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .sunday-final-hero__wave {
    width: 100vw;
  }
  .sunday-final-hero__en { left: calc((100vw - 1440px) / 2 + 160px); }
  .sunday-final-hero__title { left: calc((100vw - 1440px) / 2 + 165px); }

  .diarrhea-final-hero {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
  }
  .diarrhea-final-hero__bg {
    left: 0;
    width: 100vw;
  }
  .diarrhea-final-hero__bg img {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .diarrhea-final-hero__wave {
    width: 100vw;
  }
  .diarrhea-final-hero__en { left: calc((100vw - 1440px) / 2 + 160px); }
  .diarrhea-final-hero__title { left: calc((100vw - 1440px) / 2 + 172px); }

  /* 下層ページCTA全幅（中身のabsolute要素もオフセット） */
  .diarrhea-bottom-cta {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
  }
  .diarrhea-bottom-cta h2 { left: 50%; transform: translateX(-50%); }
  .diarrhea-bottom-cta p { left: 50%; transform: translateX(-50%); }
  .diarrhea-bottom-cta__buttons { left: 50%; transform: translateX(-50%); }

  /* クリニックCTAも同様に全幅化 */
  .clinic-bottom-cta {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
  }
  .clinic-bottom-cta h2 { left: 50%; transform: translateX(-50%); }
  .clinic-bottom-cta > p { left: 50%; transform: translateX(-50%); }
  .clinic-bottom-cta__buttons { left: 50%; transform: translateX(-50%); }

  .lower-hero {
    width: 100vw;
    margin-left: calc((1440px - 100vw) / 2);
    overflow: visible;
  }
  .lower-hero__bg {
    left: 0;
    width: 100vw;
  }
  .lower-hero__wave {
    width: 100vw;
  }
  .lower-hero__en { left: calc((100vw - 1440px) / 2 + 160px); }
  .lower-hero__title { left: calc((100vw - 1440px) / 2 + 172px); }
  .lower-hero__lead { left: calc((100vw - 1440px) / 2 + 170px); }
  .lower-page--first .lower-hero__lead { left: calc((100vw - 1440px) / 2 + 218px); }
}

/* ============ Mobile: top page first pass ============ */
@media (max-width: 767px) {
  html { overflow-x: hidden; }
  body { min-width: 0; overflow-x: hidden; }
  .page-wrap { width: 100%; max-width: none; overflow: hidden; }

  .header {
    width: 100%;
    height: 72px;
    left: 0;
    transform: none;
    background: rgba(25,38,44,.34);
    backdrop-filter: blur(2px);
  }
  .header.is-scrolled {
    left: 0;
    width: 100%;
    transform: none;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 22px rgba(0,56,86,.12);
    backdrop-filter: blur(8px);
  }
  .header__top {
    height: 72px;
    padding: 0 18px;
    justify-content: flex-start;
    align-items: center;
    gap: 0;
  }
  .header__right,
  .header__nav { display: none; }
  .header__logo {
    width: calc(100% - 56px);
    height: auto;
    margin-top: 0;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    align-content: center;
  }
  .header__logo-sub {
    display: block;
    flex: 0 0 100%;
    color: #fff;
    font-size: 11px;
    line-height: 1;
    letter-spacing: 0;
  }
  .header__logo-img {
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
  }
  .header__logo-name {
    font-size: 20px;
    letter-spacing: 0;
    min-width: 0;
    line-height: 1.1;
  }
  .header__menu-toggle {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 130;
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    gap: 0;
    padding: 0;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    appearance: none;
  }
  .header__menu-toggle span {
    position: absolute;
    left: 13px;
    width: 20px;
    height: 1px;
    background: #fff;
    transition: transform .24s ease, opacity .2s ease, top .24s ease;
  }
  .header.is-scrolled .header__menu-toggle {
    border-color: rgba(23,50,67,.28);
    background: rgba(0,108,153,.06);
  }
  .header.is-scrolled .header__menu-toggle span {
    background: #176d95;
  }
  .header__menu-toggle span:nth-child(1) { top: 16px; }
  .header__menu-toggle span:nth-child(2) { top: 22px; }
  .header__menu-toggle span:nth-child(3) { top: 28px; }
  .header.is-menu-open .header__menu-toggle span:nth-child(1) {
    top: 22px;
    transform: rotate(45deg);
  }
  .header.is-menu-open .header__menu-toggle span:nth-child(2) {
    opacity: 0;
  }
  .header.is-menu-open .header__menu-toggle span:nth-child(3) {
    top: 22px;
    transform: rotate(-45deg);
  }
  .header .header__nav {
    position: fixed;
    left: 0;
    right: 0;
    top: 72px;
    z-index: 120;
    height: auto;
    max-height: calc(100svh - 72px);
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 8px 22px 22px;
    align-items: stretch;
    justify-content: stretch;
    background: rgba(30,45,52,.94);
    border-top: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 18px 30px rgba(0,0,0,.18);
    overflow-y: auto;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity .24s ease, transform .24s ease;
  }
  .header.is-scrolled .header__nav {
    background: rgba(255,255,255,.98);
    border-top-color: rgba(20,81,112,.14);
    box-shadow: 0 18px 30px rgba(0,56,86,.14);
  }
  .header.is-menu-open .header__nav {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .header .header__nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    border-bottom: 1px solid rgba(255,255,255,.16);
    color: #fff;
    font-size: 15px;
    line-height: 1.4;
  }
  .header.is-scrolled .header__nav a {
    border-bottom-color: rgba(20,81,112,.14);
    color: #173243;
  }
  .header .header__nav a::after {
    content: ">";
    color: rgba(255,255,255,.72);
    font-family: var(--font-en);
    font-size: 16px;
  }
  .header.is-scrolled .header__nav a::after {
    color: rgba(23,109,149,.72);
  }

  .hero {
    width: 100%;
    height: 770px;
    overflow: hidden;
  }
  .hero__bg {
    left: 0;
    top: 0;
    width: 100%;
    height: 730px;
  }
  .hero__bg img { object-position: 47% center; }
  .hero__overlay { background: rgba(0,0,0,.22); }
  .hero__wave {
    left: -10%;
    top: 600px;
    width: 120%;
    height: 150px;
    max-width: none;
    object-fit: fill;
  }
  .hero__copy {
    left: 22px;
    right: 22px;
    top: 138px;
  }
  .hero__en {
    font-size: 18px;
    line-height: 1.4;
    letter-spacing: 2px;
    margin-bottom: 16px;
  }
  .hero__title {
    font-size: 34px;
    line-height: 1.34;
    margin-bottom: 18px;
    text-shadow: 0 0 12px rgba(0,0,0,.25);
  }
  .hero__sub {
    font-size: 16px;
    line-height: 1.8;
  }
  .hero__badges {
    left: 50%;
    top: 510px;
    width: min(354px, calc(100vw - 20px));
    transform: translateX(-50%);
    gap: 9px;
    justify-content: center;
  }
  .hero__badge {
    width: 112px;
    height: 112px;
    padding: 11px;
  }
  .hero__badge-icon {
    max-width: 24px;
    max-height: 24px;
    margin-bottom: 3px;
  }
  .hero__badge-text {
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: 0;
  }
  .hero__badge-num { font-size: 18px; }

  .news {
    position: relative;
    top: auto;
    left: auto;
    z-index: 3;
    width: calc(100% - 44px);
    height: auto;
    min-height: 0;
    margin: -42px 22px 54px;
    padding: 18px 0 0;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    row-gap: 7px;
    overflow: visible;
  }
  .news__label { font-size: 20px; letter-spacing: 1.2px; }
  .news__tag {
    align-self: center;
    justify-self: start;
    font-size: 11px;
    padding: 1px 10px;
  }
  .news__body {
    grid-column: 1 / -1;
    display: grid;
    gap: 5px;
    width: 100%;
  }
  .news__date { font-size: 13px; }
  .news__text { font-size: 14px; line-height: 1.65; }

  .endo,
  .menu-sec,
  .search-sec,
  .reason,
  .media-sec,
  .access { width: 100%; }

  .endo {
    height: auto;
    padding: 58px 22px 70px;
    overflow: hidden;
  }
  .endo__bg {
    left: 0;
    top: 88px;
    width: 100%;
    height: calc(100% - 88px);
  }
  .endo__head,
  .endo__image,
  .endo__desc,
  .endo__buttons {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    z-index: 2;
  }
  .endo__head { margin-bottom: 28px; text-align: center; }
  .endo__head .section-en,
  .menu-sec__head .section-en,
  .search-sec__head .section-en,
  .reason__head .section-en,
  .media-sec__head .section-en,
  .access__head .section-en {
    font-size: clamp(50px, 17vw, 72px);
    line-height: .95;
    word-break: keep-all;
  }
  .endo__head .section-en {
    font-size: clamp(40px, 13.5vw, 58px);
    letter-spacing: -0.01em;
  }
  .endo__title,
  .section-title {
    font-size: 28px;
    line-height: 1.4;
  }
  .endo__title { margin: 22px 0 12px; }
  .endo__catch {
    font-size: 17px;
    line-height: 1.75;
  }
  .endo__image {
    width: 100%;
    height: 220px;
    margin: 0 0 26px;
  }
  .endo__desc {
    width: 100%;
    font-size: 14px;
    line-height: 1.9;
  }
  .endo__buttons {
    display: grid;
    gap: 14px;
    margin-top: 30px;
  }
  .endo__btn {
    width: 100%;
    height: 78px;
    padding: 0 40px 0 22px;
    gap: 14px;
    justify-content: flex-start;
  }
  .endo__btn-icon {
    width: 36px;
    height: 38px;
    flex-shrink: 0;
  }
  .endo__btn-body {
    position: static;
    transform: none;
  }
  .endo__btn-title { font-size: 17px; }
  .endo__btn-en { font-size: 12px; }
  .endo__btn-arrow {
    right: 18px;
    bottom: 50%;
    transform: translateY(50%);
    width: 18px;
    height: 18px;
  }

  .menu-sec { padding: 58px 22px 44px; }
  .menu-sec__head,
  .search-sec__head,
  .media-sec__head,
  .access__head {
    margin: 0 0 26px;
    display: block;
  }
  .menu-sec__head .section-title,
  .media-sec__head .section-title { margin: 8px 0 0; }
  .menu-sec__cards {
    margin: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .menu-card,
  .menu-card__img { width: 100%; }
  .menu-card {
    border-bottom: 1px solid #e7e1d7;
    padding-bottom: 18px;
  }
  .menu-card__img { height: 210px; }
  .menu-card__img img { transform: none; }
  .menu-card__title {
    font-size: 21px;
    padding: 14px 0 4px;
  }
  .menu-card__text {
    font-size: 14px;
    padding: 0 36px 0 0;
  }
  .menu-card__arrow {
    right: 0;
    top: auto;
    bottom: 21px;
  }

  .search-sec { padding: 54px 22px 62px; }
  .search-sec__tabs {
    width: 100%;
    margin: 0;
    padding: 0;
    gap: 0;
  }
  .search-tab {
    width: 50%;
    height: 58px;
    font-size: 15px;
  }
  .search-tab__icon { font-size: 18px; }
  .search-sec__grid {
    width: 100%;
    margin: 0;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px;
  }
  .search-item {
    height: 54px;
    font-size: 15px;
    padding: 0 14px;
  }
  .search-item__num { font-size: 17px; }

  .reason { padding: 0 22px 60px; }
  .reason__bg {
    left: 0;
    right: 0;
  }
  .reason__head {
    padding-top: 50px;
    margin-bottom: 22px;
    text-align: left;
  }
  .reason__lines { display: none; }
  .reason__grid {
    grid-template-columns: 1fr;
    margin: 0;
    gap: 22px;
  }
  .reason__item {
    padding: 0 0 28px;
    border-bottom: 1px solid #d8d8d8;
  }
  .reason__item-img {
    width: 100%;
    height: 204px;
  }
  .reason__item-num {
    width: 62px;
    height: 62px;
    margin-top: -62px;
    margin-bottom: 12px;
  }
  .reason__item-num span { font-size: 24px; }
  .reason__item-title {
    font-size: 22px;
    line-height: 1.45;
  }
  .reason__item-text {
    font-size: 14px;
    line-height: 1.85;
    padding-right: 18px;
  }

  .media-sec { padding: 58px 22px 64px; }
  .media-sec__head { margin-right: 0; }
  .media-sec__more {
    display: inline-block;
    margin: 14px 0 0;
    font-size: 14px;
  }
  .media-sec__cards {
    margin: 0 -22px 0 0;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 14px;
    overflow-x: auto;
    padding-right: 22px;
    scroll-snap-type: x mandatory;
  }
  .media-card,
  .media-card--link {
    flex: 0 0 78% !important;
    width: auto !important;
    padding: 14px;
    scroll-snap-align: start;
  }
  .media-card__img {
    width: 100%;
    height: 132px;
    font-size: 13px;
  }
  .media-card__date,
  .media-card__text { font-size: 14px; }
  .media-sec__dots {
    margin-top: 24px;
    gap: 10px;
  }

  .gallery {
    width: 100%;
    height: 168px;
  }
  .gallery__item {
    width: 260px;
    height: 168px;
  }
  @keyframes gallery-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-780px); } }

  .access { padding: 54px 22px 0; }
  .access__info { margin: 0 0 18px; }
  .access__info p {
    font-size: 13px;
    line-height: 1.8;
  }
  .access__map {
    width: calc(100% + 44px);
    height: 300px;
    margin-left: -22px;
  }

  .lower-page--gastroscopy {
    width: 100%;
    overflow: hidden;
  }
  .lower-page--gastroscopy .lower-hero {
    width: 100%;
    height: 575px;
    overflow: hidden;
  }
  .lower-page--gastroscopy .lower-hero__bg {
    left: 0;
    top: 0;
    width: 100%;
    height: 440px;
    overflow: hidden;
    background: #172228;
  }
  .lower-page--gastroscopy .lower-hero__bg img {
    position: absolute;
    left: 50%;
    top: 118px;
    width: 178%;
    height: auto;
    max-width: none;
    object-fit: contain;
    transform: translateX(-48%);
  }
  .lower-page--gastroscopy .lower-hero__bg::after {
    background: linear-gradient(180deg, rgba(18,29,35,.82) 0%, rgba(18,29,35,.56) 44%, rgba(18,29,35,.28) 100%);
    mix-blend-mode: normal;
  }
  .lower-page--gastroscopy .lower-hero__wave {
    left: -14%;
    top: 344px;
    width: 128%;
    height: 144px;
    max-width: none;
    object-fit: fill;
  }
  .lower-page--gastroscopy .lower-hero__en {
    left: 22px;
    top: 174px;
    max-width: calc(100% - 44px);
    font-size: 46px;
    line-height: 1;
    white-space: nowrap;
  }
  .lower-page--gastroscopy .lower-hero__title {
    left: 22px;
    top: 244px;
    width: calc(100% - 44px);
    font-size: 29px;
    line-height: 1.45;
  }
  .lower-page--gastroscopy .lower-hero__lead {
    left: 22px;
    top: 468px;
    width: calc(100% - 44px);
    font-size: 14px;
    line-height: 1.85;
    color: #222;
  }
  .lower-page--gastroscopy .lower-points {
    width: calc(100% - 44px);
    height: auto;
    margin: 0 22px 64px;
    padding: 24px 18px 22px;
  }
  .lower-page--gastroscopy .lower-points__features,
  .lower-page--gastroscopy .lower-points__actions {
    position: static;
    width: 100%;
    height: auto;
    display: grid;
  }
  .lower-page--gastroscopy .lower-points__features {
    grid-template-columns: 1fr;
  }
  .lower-page--gastroscopy .lower-points__item {
    min-height: 0;
    display: grid;
    grid-template-columns: 56px 1fr;
    align-items: center;
    justify-content: start;
    column-gap: 18px;
    padding: 17px 0;
    text-align: left;
    border-right: 0;
    border-bottom: 1px solid rgba(16,97,138,.32);
  }
  .lower-page--gastroscopy .lower-points__item:first-child {
    padding-top: 4px;
  }
  .lower-page--gastroscopy .lower-points__item:last-child {
    border-bottom: 0;
  }
  .lower-page--gastroscopy .lower-points__icon,
  .lower-page--gastroscopy .lower-points__icon--sedation,
  .lower-page--gastroscopy .lower-points__icon--scope,
  .lower-page--gastroscopy .lower-points__icon--colon {
    width: 44px;
    height: 44px;
    margin: 0 auto;
  }
  .lower-page--gastroscopy .lower-points__item p {
    font-size: 17px;
    line-height: 1.55;
  }
  .lower-page--gastroscopy .lower-points__actions {
    gap: 12px;
    margin-top: 20px;
  }
  .lower-page--gastroscopy .lower-points__btn {
    width: 100%;
    height: 62px;
    gap: 18px;
    font-size: 15px;
  }
  .lower-page--gastroscopy .lower-points__btn-icon--web {
    width: 32px;
    height: 30px;
  }
  .lower-page--gastroscopy .lower-points__btn-icon--calendar {
    width: 25px;
    height: 30px;
  }
  .lower-page--gastroscopy .lower-content {
    width: 100%;
    margin: 0;
    padding: 0 22px 96px;
  }
  .lower-page--gastroscopy .lower-section {
    margin-bottom: 72px;
  }
  .lower-page--gastroscopy .lower-section--about {
    margin-bottom: 62px;
  }
  .lower-page--gastroscopy .lower-section--feature,
  .lower-page--gastroscopy .lower-section--disease,
  .lower-page--gastroscopy .lower-section--flow {
    margin-bottom: 82px;
  }
  .lower-page--gastroscopy .lower-section--expense {
    min-height: 0;
    margin-bottom: 76px;
  }
  .lower-page--gastroscopy .lower-heading {
    min-height: 0;
    padding-left: 16px;
    margin-bottom: 26px;
    border-left-width: 3px;
  }
  .lower-page--gastroscopy .lower-heading h2 {
    font-size: 22px;
    line-height: 1.45;
    letter-spacing: 0;
  }
  .lower-page--gastroscopy .lower-heading__sub {
    font-size: 15px;
    margin-top: 5px;
  }
  .lower-page--gastroscopy .lower-heading--center {
    text-align: left;
    border-left: 3px solid #76a7be;
    padding-left: 16px;
    margin-bottom: 24px;
  }
  .lower-page--gastroscopy .lower-heading--center::before,
  .lower-page--gastroscopy .lower-heading--center::after {
    display: none;
  }
  .lower-page--gastroscopy .lower-heading--center .lower-heading__sub {
    display: block;
  }
  .lower-page--gastroscopy .lower-heading--center h2 {
    display: block;
    font-size: 22px;
  }
  .lower-page--gastroscopy .lower-text,
  .lower-page--gastroscopy .lower-section__lead,
  .lower-page--gastroscopy .lower-section__note,
  .lower-page--gastroscopy .lower-bullet-list,
  .lower-page--gastroscopy .lower-note,
  .lower-page--gastroscopy .lower-credit p {
    font-size: 14px;
    line-height: 1.9;
  }
  .lower-page--gastroscopy .lower-text p + p {
    margin-top: 14px;
  }
  .lower-page--gastroscopy .lower-recommend {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .lower-page--gastroscopy .lower-recommend__group h3 {
    height: auto;
    min-height: 56px;
    padding: 14px 18px;
    font-size: 17px;
    line-height: 1.5;
  }
  .lower-page--gastroscopy .lower-recommend__group ul {
    min-height: 0;
    padding: 16px 18px 18px;
    gap: 8px;
  }
  .lower-page--gastroscopy .lower-recommend__group li {
    font-size: 14px;
    line-height: 1.65;
  }
  .lower-page--gastroscopy .lower-bullet-list {
    gap: 8px;
    margin-top: 20px;
    padding-left: 20px;
  }
  .lower-page--gastroscopy .lower-feature-grid {
    grid-template-columns: 1fr;
  }
  .lower-page--gastroscopy .lower-feature {
    min-height: 0;
    grid-template-columns: 40px 1fr;
    column-gap: 13px;
    padding: 22px 18px 23px;
    border-right: 0;
    border-bottom: 1px solid var(--lower-border);
  }
  .lower-page--gastroscopy .lower-feature:nth-child(2n),
  .lower-page--gastroscopy .lower-feature:nth-last-child(-n+2) {
    border-right: 0;
    border-bottom: 1px solid var(--lower-border);
  }
  .lower-page--gastroscopy .lower-feature:last-child {
    border-bottom: 0;
  }
  .lower-page--gastroscopy .lower-feature__num {
    font-size: 32px;
  }
  .lower-page--gastroscopy .lower-feature h3 {
    font-size: 18px;
    line-height: 1.55;
    margin: 1px 0 16px;
  }
  .lower-page--gastroscopy .lower-feature > p:not(.lower-feature__num) {
    margin-left: 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .lower-page--gastroscopy .lower-disease-grid {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 16px;
  }
  .lower-page--gastroscopy .lower-disease-grid span {
    min-height: 52px;
    justify-content: flex-start;
    padding: 0 36px 0 16px;
    font-size: 14px;
    text-align: left;
  }
  .lower-page--gastroscopy .lower-flow-bullets {
    margin-bottom: 36px;
  }
  .lower-page--gastroscopy .lower-flow {
    gap: 10px;
  }
  .lower-page--gastroscopy .lower-flow__item,
  .lower-page--gastroscopy .lower-flow__item:first-child {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .lower-page--gastroscopy .lower-flow__head {
    grid-template-columns: 62px 1fr;
    gap: 14px;
    min-height: 64px;
    padding: 12px 16px;
    border-bottom: 0;
  }
  .lower-page--gastroscopy .lower-flow__item:not(:last-child) .lower-flow__head {
    border-bottom: 0;
  }
  .lower-page--gastroscopy .lower-flow__item:not(:last-child) .lower-flow__head::after {
    display: none;
  }
  .lower-page--gastroscopy .lower-flow__num {
    font-size: 14px;
  }
  .lower-page--gastroscopy .lower-flow__item h3 {
    font-size: 18px;
    line-height: 1.45;
  }
  .lower-page--gastroscopy .lower-flow__body,
  .lower-page--gastroscopy .lower-flow__body--step1 {
    display: block;
    padding: 16px;
    border: 1px solid var(--lower-border);
    border-top: 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .lower-page--gastroscopy .lower-flow__body ul {
    padding-left: 18px;
    line-height: 1.8;
  }
  .lower-page--gastroscopy .lower-flow__reserve-line {
    display: block;
    margin: 12px 0 10px;
  }
  .lower-page--gastroscopy .lower-flow__reserve-line > span {
    display: block;
  }
  .lower-page--gastroscopy .lower-flow__reserve-line a {
    display: inline-block;
    margin-top: 6px;
  }
  .lower-page--gastroscopy .lower-flow__detail {
    position: static;
    display: inline-block;
    min-width: 0;
    margin-top: 12px;
  }
  .lower-page--gastroscopy .lower-insurance-label {
    font-size: 14px;
    line-height: 1.65;
  }
  .lower-page--gastroscopy .lower-price-table {
    table-layout: fixed;
    font-size: 14px;
    margin-bottom: 26px;
  }
  .lower-page--gastroscopy .lower-price-table th,
  .lower-page--gastroscopy .lower-price-table td {
    width: 50%;
    height: auto;
    padding: 13px 12px;
    line-height: 1.55;
    vertical-align: middle;
  }
  .lower-page--gastroscopy .lower-credit__cards {
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding-left: 0;
  }
  .lower-page--gastroscopy .lower-credit__cards img {
    max-height: 31px;
  }
  .lower-page--gastroscopy .lower-faq {
    gap: 16px;
  }
  .lower-page--gastroscopy .lower-faq__item h3 {
    min-height: 0;
    gap: 12px;
    padding: 15px 48px 15px 16px;
    font-size: 14px;
    line-height: 1.6;
  }
  .lower-page--gastroscopy .lower-faq__item p {
    gap: 12px;
    margin: 10px 0 0;
    padding: 16px;
    font-size: 14px;
    line-height: 1.8;
  }
  .lower-page--gastroscopy .lower-faq__item span {
    font-size: 22px;
  }

  .prep-final-page {
    width: 100%;
    overflow: hidden;
  }
  .prep-final-hero {
    width: 100%;
    height: 500px;
    overflow: hidden;
  }
  .prep-final-hero__bg {
    left: 0;
    top: 0;
    width: 100%;
    height: 440px;
    overflow: hidden;
    background: #172228;
  }
  .prep-final-hero__bg img {
    position: absolute;
    left: 50%;
    top: 118px;
    width: 178%;
    height: auto;
    max-width: none;
    object-fit: contain;
    transform: translateX(-48%);
  }
  .prep-final-hero__bg::after {
    background: linear-gradient(180deg, rgba(18,29,35,.82) 0%, rgba(18,29,35,.56) 44%, rgba(18,29,35,.28) 100%);
    mix-blend-mode: normal;
  }
  .prep-final-hero__wave {
    left: -14%;
    top: 344px;
    width: 128%;
    height: 144px;
    max-width: none;
    object-fit: fill;
  }
  .prep-final-hero__en {
    left: 22px;
    top: 174px;
    max-width: calc(100% - 44px);
    font-size: 42px;
    line-height: 1;
    white-space: nowrap;
  }
  .prep-final-hero__title {
    left: 22px;
    top: 244px;
    width: calc(100% - 44px);
    font-size: 29px;
    line-height: 1.45;
  }
  .prep-final-section,
  .prep-final-section--day,
  .prep-final-section--after,
  .prep-final-section--faq {
    position: relative;
    width: calc(100% - 44px);
    height: auto;
    margin: 0 22px 76px;
  }
  .prep-final-section--before {
    margin-top: 0;
  }
  .prep-final-section--faq {
    margin-bottom: 54px;
  }
  .prep-final-lead,
  .prep-final-heading,
  .prep-table,
  .prep-simple-stack,
  .prep-after-stack,
  .prep-faq,
  .prep-detail-link {
    position: static;
  }
  .prep-final-lead {
    width: 100%;
    margin: 0 0 48px;
    font-size: 14px;
    line-height: 1.9;
  }
  .prep-final-lead br {
    display: none;
  }
  .prep-final-heading {
    min-height: 0;
    margin-bottom: 26px;
    padding-left: 16px;
  }
  .prep-final-heading h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.45;
    letter-spacing: 0;
  }
  .prep-final-heading p {
    margin-top: 5px;
    font-size: 15px;
    line-height: 1.3;
  }
  .prep-table,
  .prep-table--before,
  .prep-table--day,
  .prep-simple-stack,
  .prep-after-stack,
  .prep-faq {
    width: 100%;
    height: auto;
  }
  .prep-table-row {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    height: auto;
  }
  .prep-table-row--dinner,
  .prep-table-row--meal,
  .prep-table-row--avoid,
  .prep-table-row--after-nine,
  .prep-table-row--medicine {
    height: auto;
  }
  .prep-table-row + .prep-table-row {
    margin-top: 14px;
  }
  .prep-table-row__label {
    min-height: 54px;
    padding: 14px 18px;
    font-size: 16px;
    line-height: 1.5;
  }
  .prep-table-row__body {
    border-left: 1px solid #d6e6ee;
    border-top: 0;
    font-size: 14px;
    line-height: 1.75;
  }
  .prep-list,
  .prep-list--image,
  .prep-table-row--after-nine .prep-list,
  .prep-table-row--meal .prep-list,
  .prep-table-row--medicine .prep-list {
    padding: 16px 18px 18px 34px;
    line-height: 1.8;
  }
  .prep-list li,
  .prep-simple-block li {
    white-space: normal;
  }
  .prep-list li + li {
    margin-top: 5px;
  }
  .prep-list li::before {
    left: -15px;
    top: .82em;
  }
  .prep-list--image li::before {
    left: -20px;
    top: .58em;
  }
  .prep-table-row--medicine .prep-table-row__body {
    padding-top: 0;
  }
  .prep-medicine-lead {
    margin: 0;
    padding: 16px 18px 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .prep-table-note {
    margin: 0;
    padding: 0 18px 18px 36px;
    font-size: 14px;
    line-height: 1.8;
  }
  .prep-table-note::before {
    left: 18px;
    top: 0;
  }
  .prep-simple-stack,
  .prep-after-stack {
    display: grid;
    gap: 22px;
    margin-top: 34px;
  }
  .prep-simple-block,
  .prep-simple-block--sedation,
  .prep-simple-block--belongings,
  .prep-after-block,
  .prep-after-block:nth-child(n+2) {
    position: static;
    width: 100%;
    height: auto;
    margin: 0;
  }
  .prep-simple-block h3 {
    height: auto;
    min-height: 56px;
    padding: 14px 18px;
    font-size: 17px;
    line-height: 1.55;
  }
  .prep-simple-block__lead {
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .prep-simple-block ul,
  .prep-simple-block--belongings ul,
  .prep-after-block ul {
    margin: 12px 0 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .prep-simple-block li + li {
    margin-top: 4px;
  }
  .prep-faq {
    display: grid;
    gap: 18px;
  }
  .prep-faq__item {
    position: static;
    height: auto;
    margin: 0;
  }
  .prep-faq__q,
  .prep-faq__a {
    position: static;
    width: 100%;
    height: auto;
    min-height: 0;
    align-items: flex-start;
  }
  .prep-faq__q {
    padding: 14px 16px;
  }
  .prep-faq__a {
    margin: 10px 0 0 0;
    padding: 16px;
  }
  .prep-faq span,
  .prep-faq__q span,
  .prep-faq__a span {
    margin: 0 12px 0 0;
    font-size: 22px;
    line-height: 1.2;
  }
  .prep-faq__q p,
  .prep-faq__a p {
    width: auto;
    margin: 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .prep-detail-link {
    display: inline-block;
    position: relative;
    width: 190px;
    margin: 28px 0 0 auto;
    font-size: 14px;
    line-height: 1.6;
  }
  .prep-detail-link::after {
    top: 6px;
  }

  .sunday-final-page {
    width: 100%;
    overflow: hidden;
  }
  .sunday-final-hero {
    width: 100%;
    height: 500px;
    overflow: hidden;
  }
  .sunday-final-hero__bg {
    left: 0;
    top: 0;
    width: 100%;
    height: 440px;
    overflow: hidden;
    background: #172228;
  }
  .sunday-final-hero__bg img {
    position: absolute;
    left: 50%;
    top: 118px;
    width: 178%;
    height: auto;
    max-width: none;
    object-fit: contain;
    transform: translateX(-48%);
  }
  .sunday-final-hero__bg::after {
    background: linear-gradient(180deg, rgba(18,29,35,.82) 0%, rgba(18,29,35,.56) 44%, rgba(18,29,35,.28) 100%);
    mix-blend-mode: normal;
  }
  .sunday-final-hero__wave {
    left: -14%;
    top: 344px;
    width: 128%;
    height: 144px;
    max-width: none;
    object-fit: fill;
  }
  .sunday-final-hero__en {
    left: 22px;
    top: 174px;
    max-width: calc(100% - 44px);
    font-size: 34px;
    line-height: 1.05;
    white-space: normal;
  }
  .sunday-final-hero__title {
    left: 22px;
    top: 244px;
    width: calc(100% - 44px);
    font-size: 29px;
    line-height: 1.45;
  }
  .sunday-final-section,
  .sunday-final-section--reason,
  .sunday-final-section--about,
  .sunday-final-section--camera,
  .sunday-final-section--reservation {
    position: relative;
    width: calc(100% - 44px);
    height: auto;
    margin: 0 22px 76px;
  }
  .sunday-final-lead,
  .sunday-final-heading,
  .sunday-reason-text,
  .sunday-recommend,
  .sunday-recommend__label,
  .sunday-recommend ul,
  .sunday-about-table,
  .sunday-camera-text,
  .sunday-feature-panel,
  .sunday-feature-panel h3,
  .sunday-feature-panel__inner,
  .sunday-feature,
  .sunday-feature img,
  .sunday-feature h4,
  .sunday-feature p,
  .sunday-reservation-text,
  .sunday-bottom-cta,
  .sunday-bottom-cta__buttons {
    position: static;
  }
  .sunday-final-lead,
  .sunday-reason-text,
  .sunday-camera-text,
  .sunday-reservation-text {
    width: 100%;
    margin: 0;
    font-size: 14px;
    line-height: 1.9;
  }
  .sunday-final-lead {
    margin-bottom: 48px;
  }
  .sunday-final-heading {
    min-height: 0;
    margin-bottom: 26px;
    padding-left: 16px;
  }
  .sunday-final-heading h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.45;
    letter-spacing: 0;
  }
  .sunday-final-heading p {
    margin-top: 5px;
    font-size: 15px;
    line-height: 1.3;
  }
  .sunday-reason-text br {
    display: none;
  }
  .sunday-recommend {
    width: 100%;
    height: auto;
    margin-top: 28px;
  }
  .sunday-recommend__label {
    width: 100%;
    height: auto;
    min-height: 56px;
    display: flex;
    align-items: center;
    padding: 14px 18px;
    background: #f5f3ee;
    font-size: 17px;
    line-height: 1.55;
  }
  .sunday-recommend ul {
    width: 100%;
    height: auto;
    padding: 16px 18px 18px 42px;
    border: 1px solid #d6e6ee;
    border-top: 0;
    background: #fff;
    font-size: 14px;
    line-height: 1.8;
  }
  .sunday-recommend li + li {
    margin-top: 6px;
  }
  .sunday-recommend li::before {
    left: -22px;
    top: .7em;
  }
  .sunday-about-table {
    width: 100%;
  }
  .sunday-about-row {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    height: auto;
  }
  .sunday-about-row + .sunday-about-row {
    margin-top: 14px;
  }
  .sunday-about-row__label {
    min-height: 54px;
    padding: 14px 18px;
    font-size: 16px;
    line-height: 1.5;
  }
  .sunday-about-row__value {
    min-height: 0;
    padding: 16px 18px;
    border: 1px solid #d6e6ee;
    border-top: 0;
    background: #fff;
    font-size: 14px;
    line-height: 1.8;
  }
  .sunday-about-row:first-child .sunday-about-row__value::before {
    margin-right: 2px;
  }
  .sunday-feature-panel {
    width: 100%;
    height: auto;
    margin-top: 28px;
    padding: 24px 18px 26px;
  }
  .sunday-feature-panel h3 {
    width: 100%;
    height: auto;
    gap: 12px;
    font-size: 18px;
    line-height: 1.5;
    text-align: center;
  }
  .sunday-feature-panel h3 span {
    width: 28px;
    flex: 0 0 28px;
  }
  .sunday-feature-panel__inner {
    width: 100%;
    height: auto;
    display: grid;
    gap: 24px;
    margin-top: 24px;
  }
  .sunday-feature-panel__inner::after {
    display: none;
  }
  .sunday-feature {
    width: 100%;
    display: grid;
    justify-items: center;
    text-align: center;
  }
  .sunday-feature + .sunday-feature {
    padding-top: 24px;
    border-top: 1px solid rgba(34,34,34,.22);
  }
  .sunday-feature:nth-child(1) img,
  .sunday-feature:nth-child(2) img,
  .sunday-feature img {
    width: auto;
    height: auto;
    max-width: 58px;
    max-height: 62px;
    transform: none;
    object-fit: contain;
  }
  .sunday-feature:nth-child(1) img {
    width: 54px;
    height: auto;
  }
  .sunday-feature:nth-child(2) img {
    width: 52px;
    height: auto;
  }
  .sunday-feature h4 {
    width: 100%;
    margin: 13px 0 10px;
    font-size: 17px;
    line-height: 1.55;
  }
  .sunday-feature p {
    width: 100%;
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
  }
  .sunday-reservation-text br {
    display: none;
  }
  .sunday-bottom-cta {
    width: 100%;
    height: auto;
    margin: 0 0 96px;
    padding: 24px 22px;
  }
  .sunday-bottom-cta__buttons {
    display: grid;
    gap: 12px;
  }
  .sunday-bottom-cta a {
    width: 100%;
    height: 62px;
    display: grid;
    grid-template-columns: 54px 1fr 18px;
    align-items: center;
    padding: 0 14px 0 18px;
    font-size: 15px;
  }
  .sunday-bottom-cta__icon,
  .sunday-bottom-cta__icon--web,
  .sunday-bottom-cta__icon--scope,
  .sunday-bottom-cta span,
  .sunday-bottom-cta a:first-child span,
  .sunday-bottom-cta a:nth-child(2) span,
  .sunday-bottom-cta__arrow {
    position: static;
  }
  .sunday-bottom-cta__icon--web,
  .sunday-bottom-cta__icon--scope {
    height: auto;
    justify-self: center;
  }
  .sunday-bottom-cta__icon--web {
    width: 34px;
  }
  .sunday-bottom-cta__icon--scope {
    width: 34px;
  }
  .sunday-bottom-cta span {
    white-space: normal;
  }
  .sunday-bottom-cta__arrow {
    width: 6px;
    height: 12px;
    justify-self: end;
  }

  .lower-page--flex,
  .lower-page--faq,
  .clinic-final-page,
  .gastro-final-page,
  .diarrhea-final-page {
    width: 100%;
    overflow: hidden;
  }
  .lower-page--flex .lower-hero,
  .lower-page--faq .lower-hero,
  .clinic-final-hero,
  .gastro-final-hero,
  .diarrhea-final-hero {
    width: 100%;
    height: 430px;
    overflow: hidden;
  }
  .lower-page--first .lower-hero,
  .lower-page--faq .lower-hero {
    height: 565px;
  }
  .lower-page--flex .lower-hero__bg,
  .lower-page--faq .lower-hero__bg,
  .clinic-final-hero__bg,
  .gastro-final-hero__bg,
  .diarrhea-final-hero__bg {
    left: 0;
    top: 0;
    width: 100%;
    height: 380px;
    overflow: hidden;
    background: #172228;
  }
  .lower-page--flex .lower-hero__bg img,
  .lower-page--faq .lower-hero__bg img,
  .clinic-final-hero__bg img,
  .gastro-final-hero__bg img,
  .diarrhea-final-hero__bg img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    transform: none;
  }
  .clinic-final-hero__bg img {
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: none;
  }
  .lower-page--flex .lower-hero__bg::after,
  .lower-page--faq .lower-hero__bg::after,
  .clinic-final-hero__bg::after,
  .gastro-final-hero__bg::after,
  .diarrhea-final-hero__bg::after {
    background: linear-gradient(180deg, rgba(18,29,35,.82) 0%, rgba(18,29,35,.56) 44%, rgba(18,29,35,.28) 100%);
    mix-blend-mode: normal;
    opacity: 1;
  }
  .lower-page--flex .lower-hero__wave,
  .lower-page--faq .lower-hero__wave,
  .clinic-final-hero__wave,
  .gastro-final-hero__wave,
  .diarrhea-final-hero__wave {
    left: -14%;
    top: 284px;
    width: 128%;
    height: 144px;
    max-width: none;
    object-fit: fill;
  }
  .lower-page--flex .lower-hero__en,
  .lower-page--faq .lower-hero__en,
  .clinic-final-hero__en,
  .gastro-final-hero__en,
  .diarrhea-final-hero__en {
    left: 22px;
    top: 134px;
    max-width: calc(100% - 44px);
    font-size: 38px;
    line-height: 1.05;
    white-space: normal;
  }
  .lower-page--faq .lower-hero__en,
  .diarrhea-final-hero__en {
    font-size: 34px;
  }
  .lower-page--flex .lower-hero__title,
  .lower-page--faq .lower-hero__title,
  .clinic-final-hero__title,
  .gastro-final-hero__title,
  .diarrhea-final-hero__title {
    left: 22px;
    top: 204px;
    width: calc(100% - 44px);
    font-size: 29px;
    line-height: 1.45;
  }
  .lower-page--flex .lower-hero__lead,
  .lower-page--faq .lower-hero__lead {
    left: 22px;
    top: 468px;
    width: calc(100% - 44px);
    font-size: 14px;
    line-height: 1.85;
    color: #222;
  }

  .lower-content--flex,
  .faq-content {
    width: 100%;
    margin: 0;
    padding: 0 22px 96px;
  }
  .lower-content--flex .lower-section,
  .faq-content .lower-section {
    width: 100%;
    margin: 0 0 76px;
  }
  .lower-content--flex .lower-heading,
  .faq-content .lower-heading {
    min-height: 0;
    padding-left: 16px;
    margin-bottom: 26px;
  }
  .lower-content--flex .lower-heading h2,
  .faq-content .lower-heading h2 {
    font-size: 22px;
    line-height: 1.45;
    letter-spacing: 0;
  }
  .lower-content--flex .lower-heading__sub,
  .faq-content .lower-heading__sub {
    font-size: 15px;
    margin-top: 5px;
  }
  .lower-content--flex .lower-heading--center {
    text-align: left;
    border-left: 3px solid #76a7be;
    padding-left: 16px;
  }
  .lower-content--flex .lower-heading--center::before,
  .lower-content--flex .lower-heading--center::after {
    display: none;
  }
  .lower-content--flex .lower-heading--center .lower-heading__sub {
    display: block;
  }
  .lower-content--flex .lower-text,
  .lower-content--flex .lower-section__note,
  .faq-content .lower-faq__item p {
    font-size: 14px;
    line-height: 1.9;
  }
  .faq-content .lower-faq__item h3,
  .faq-content .lower-faq__item p {
    width: 100%;
    box-sizing: border-box;
  }
  .faq-content .lower-faq__item h3 {
    gap: 12px;
    padding: 15px 48px 15px 16px;
    font-size: 14px;
    line-height: 1.6;
  }
  .faq-content .lower-faq__item p {
    gap: 14px;
    margin: 12px 0 0;
    padding: 18px;
  }
  .lower-intro-cards,
  .lower-intro-cards--2,
  .lower-intro-cards--3,
  .lower-card-grid,
  .lower-card-grid--3 {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 18px;
    margin: 24px 0 0;
  }
  .lower-page--first .lower-intro-cards {
    grid-template-columns: 1fr;
    justify-content: stretch;
    margin: 24px 0 0;
  }
  .lower-page--first .lower-section--intro-cards .lower-heading--center {
    display: block;
  }
  .lower-intro-card,
  .lower-page--first .lower-intro-card {
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 24px 20px;
  }
  .lower-intro-card__icon {
    width: 96px;
    height: 96px;
    margin-bottom: 18px;
  }
  .lower-page--first .lower-intro-card:nth-child(1) h3,
  .lower-page--first .lower-intro-card:nth-child(2) h3 {
    transform: none;
  }
  .lower-page--first .lower-section--intro-cards .lower-text {
    max-width: none;
    margin-top: 20px;
  }
  .lower-flow--compact,
  .lower-page--first .lower-section--first-flow .lower-flow {
    width: 100%;
    margin: 0;
    row-gap: 10px;
  }
  .lower-flow--compact .lower-flow__item,
  .lower-page--first .lower-section--first-flow .lower-flow__item,
  .lower-page--first .lower-section--first-flow .lower-flow__item:first-child {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .lower-flow--compact .lower-flow__head,
  .lower-page--first .lower-section--first-flow .lower-flow__head {
    grid-template-columns: 62px 1fr;
    min-height: 64px;
    padding: 12px 16px;
  }
  .lower-flow--compact .lower-flow__head::after {
    display: none;
  }
  .lower-flow--compact .lower-flow__body,
  .lower-page--first .lower-section--first-flow .lower-flow__body,
  .lower-page--first .lower-section--first-flow .lower-flow__item:first-child .lower-flow__body {
    display: block;
    padding: 16px;
    border: 1px solid var(--lower-border);
    border-top: 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .lower-flow__reserve-line,
  .lower-page--first .lower-section--first-flow .lower-flow__reserve-line {
    display: block;
    margin: 12px 0 10px;
  }
  .lower-flow__reserve-line > span,
  .lower-flow__reserve-line a {
    display: block;
  }
  .flow-prep-block {
    padding: 18px;
  }
  .flow-prep-block h3,
  .flow-subheading {
    font-size: 16px;
  }
  .lower-bottom-buttons {
    display: grid;
    gap: 12px;
    padding-top: 24px;
  }
  .lower-bottom-buttons__item {
    width: 100%;
    min-width: 0;
  }
  .lower-check-panel,
  .lower-page--first .lower-section--first-bring .lower-check-panel {
    margin: 0;
    padding: 18px;
    border: 1px solid var(--lower-border);
    background: #fff;
  }
  .lower-check-panel li {
    font-size: 14px;
    line-height: 1.75;
  }
  .lower-grouped-price__group + .lower-grouped-price__group {
    margin-top: 28px;
  }
  .lower-grouped-price__label {
    height: auto;
    min-height: 45px;
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.7;
  }
  .lower-grouped-price .lower-price-table {
    table-layout: fixed;
  }
  .lower-grouped-price .lower-price-table th {
    width: 62%;
  }
  .lower-grouped-price .lower-price-table td {
    width: 38%;
  }
  .lower-grouped-price .lower-price-table th,
  .lower-grouped-price .lower-price-table td {
    padding: 13px 10px;
    vertical-align: middle;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .lower-page--first .lower-section--first-faq .lower-faq__item,
  .lower-page--first .lower-section--first-faq .lower-faq__item h3,
  .lower-page--first .lower-section--first-faq .lower-faq__item p {
    width: 100%;
    box-sizing: border-box;
  }
  .lower-page--first .lower-section--first-faq .lower-faq__item h3 {
    margin-left: 0;
    gap: 12px;
    padding: 15px 16px;
    font-size: 14px;
    line-height: 1.6;
  }
  .lower-page--first .lower-section--first-faq .lower-faq__item p {
    gap: 14px;
    margin: 12px 0 0;
    padding: 18px;
    font-size: 14px;
    line-height: 1.9;
  }
  .lower-flex-table,
  .lower-price-table {
    table-layout: fixed;
    font-size: 14px;
  }
  .lower-flex-table th,
  .lower-flex-table td,
  .lower-price-table th,
  .lower-price-table td {
    width: 50%;
    height: auto;
    min-height: 0;
    padding: 13px 12px;
    line-height: 1.6;
  }
  .lower-schedule-table {
    width: 100%;
    table-layout: fixed;
    font-size: 12px;
  }
  .lower-schedule-table th,
  .lower-schedule-table td,
  .lower-schedule-table th:first-child {
    width: auto;
    height: 48px;
    padding: 4px;
  }
  .lower-related-links {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .lower-page--first .lower-section--related-links,
  .lower-page--flow .lower-section--related-links,
  .lower-page--cost .lower-section--related-links,
  .lower-page--features .lower-section--related-links {
    width: calc(100% + 44px);
    margin: 64px -22px 96px;
    padding: 36px 22px 42px;
  }
  .lower-page--first .lower-section--related-links > .lower-heading,
  .lower-page--flow .lower-section--related-links > .lower-heading,
  .lower-page--cost .lower-section--related-links > .lower-heading,
  .lower-page--features .lower-section--related-links > .lower-heading {
    margin-bottom: 24px;
  }
  .lower-related-links__item,
  .lower-page--first .lower-related-links__item,
  .lower-page--flow .lower-related-links__item,
  .lower-page--cost .lower-related-links__item,
  .lower-page--features .lower-related-links__item {
    position: relative;
    display: grid;
    justify-items: center;
    align-content: center;
    height: 130px;
    gap: 12px;
    padding: 16px 10px;
    text-align: center;
  }
  .lower-page--first .lower-related-links__item > img:first-child,
  .lower-page--flow .lower-related-links__item > img:first-child,
  .lower-page--cost .lower-related-links__item > img:first-child,
  .lower-page--features .lower-related-links__item > img:first-child,
  .lower-related-links__item img {
    position: static;
    width: 42px;
    height: 42px;
    transform: none;
  }
  .lower-page--first .lower-related-links__item span,
  .lower-page--flow .lower-related-links__item span,
  .lower-page--cost .lower-related-links__item span,
  .lower-page--features .lower-related-links__item span {
    position: static;
    font-size: 13px;
    line-height: 1.45;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
  }
  .lower-page--first .lower-related-links__item span::after,
  .lower-page--flow .lower-related-links__item span::after,
  .lower-page--cost .lower-related-links__item span::after,
  .lower-page--features .lower-related-links__item span::after {
    content: "";
    display: inline-block;
    width: 5px;
    height: 9px;
    background: url("../img/first/related-arrow.svg") center/contain no-repeat;
  }
  .lower-page--first .lower-related-links__arrow,
  .lower-page--flow .lower-related-links__arrow,
  .lower-page--cost .lower-related-links__arrow,
  .lower-page--features .lower-related-links__arrow {
    display: none;
  }
  .lower-related-links__arrow {
    right: 12px;
    bottom: 12px;
  }
  .faq-category-nav {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 54px;
    padding: 16px;
  }
  .faq-category-nav a {
    min-width: 0;
    min-height: 48px;
    font-size: 14px;
  }
  .faq-section {
    scroll-margin-top: 124px;
    margin-bottom: 64px;
  }
  .faq-bottom-cta {
    display: grid;
    gap: 12px;
    width: calc(100% + 44px);
    margin: 0 -22px;
    padding: 22px 12px;
  }
  .faq-bottom-cta .lower-points__btn {
    width: 100%;
    height: 64px;
    display: grid;
    grid-template-columns: 48px 1fr 18px;
    align-items: center;
    justify-content: stretch;
    gap: 0;
    padding: 0 14px 0 14px;
    font-size: 15px;
  }
  .faq-bottom-cta .lower-points__btn-icon { justify-self: center; }
  .faq-bottom-cta .lower-points__btn span { text-align: left; }
  .faq-bottom-cta .lower-points__btn-arrow {
    position: static;
    transform: none;
    justify-self: end;
  }

  .clinic-final-section,
  .gastro-final-section,
  .diarrhea-final-section {
    position: relative;
    width: calc(100% - 44px);
    height: auto;
    margin: 0 22px 76px;
  }
  .clinic-final-section--gallery,
  .clinic-final-section--info,
  .clinic-final-section--doctors,
  .clinic-final-section--equipment,
  .gastro-final-section--intro,
  .gastro-final-section--disease-cards,
  .gastro-final-section--diseases,
  .gastro-final-section--exam-cases,
  .gastro-final-section--features,
  .gastro-final-section--expense,
  .diarrhea-final-section--about,
  .diarrhea-final-section--types,
  .diarrhea-final-section--diseases,
  .diarrhea-final-section--exam,
  .diarrhea-final-section--care,
  .diarrhea-final-section--message {
    height: auto;
  }
  .clinic-gallery,
  .clinic-info-table,
  .clinic-doctor,
  .clinic-profile-table,
  .clinic-equipment-table,
  .clinic-bottom-cta,
  .gastro-card-grid,
  .gastro-disease-groups,
  .gastro-two-panel,
  .diarrhea-type-table,
  .diarrhea-basic-table {
    height: auto;
  }
  .clinic-final-lead,
  .clinic-final-heading,
  .clinic-gallery,
  .clinic-info-table,
  .clinic-doctor,
  .clinic-profile-table,
  .clinic-profile-table--narrow,
  .clinic-doctor__photo,
  .clinic-message,
  .clinic-detail-link,
  .clinic-equipment-table,
  .clinic-bottom-cta,
  .clinic-bottom-cta h2,
  .clinic-bottom-cta > p,
  .clinic-bottom-cta__buttons,
  .gastro-final-lead,
  .gastro-final-note,
  .gastro-final-heading,
  .gastro-symptom-panel,
  .gastro-symptom-panel__ribbon,
  .gastro-symptom-group,
  .gastro-symptom-group__icon,
  .gastro-symptom-group h3,
  .gastro-symptom-group ul,
  .gastro-card-grid,
  .gastro-disease-groups,
  .gastro-two-panel,
  .gastro-case-panel,
  .gastro-feature-panel,
  .gastro-expense-text,
  .diarrhea-final-heading,
  .diarrhea-about-text,
  .diarrhea-check,
  .diarrhea-check h3,
  .diarrhea-check ul,
  .diarrhea-check-note,
  .diarrhea-bar-heading,
  .diarrhea-section-lead,
  .diarrhea-type-table,
  .diarrhea-type-table h3,
  .diarrhea-table-row,
  .diarrhea-basic-table,
  .diarrhea-care,
  .diarrhea-care-group,
  .diarrhea-care-list,
  .diarrhea-message-text,
  .diarrhea-bottom-cta,
  .diarrhea-bottom-cta h2,
  .diarrhea-bottom-cta p,
  .diarrhea-bottom-cta__buttons {
    position: static;
    transform: none;
    left: auto;
    top: auto;
  }
  .clinic-final-lead,
  .gastro-final-lead,
  .gastro-final-note,
  .gastro-expense-text,
  .diarrhea-about-text,
  .diarrhea-check-note,
  .diarrhea-section-lead,
  .diarrhea-message-text {
    width: 100%;
    min-height: 0;
    margin: 0;
    font-size: 14px;
    line-height: 1.9;
  }
  .clinic-final-heading,
  .gastro-final-heading,
  .diarrhea-final-heading {
    min-height: 0;
    margin: 0 0 26px;
    padding-left: 16px;
  }
  .clinic-final-heading h2,
  .gastro-final-heading h2,
  .diarrhea-final-heading h2 {
    margin: 0;
    font-size: 22px;
    line-height: 1.45;
    letter-spacing: 0;
  }
  .clinic-final-heading p,
  .gastro-final-heading p,
  .diarrhea-final-heading p {
    margin-top: 5px;
    font-size: 15px;
    line-height: 1.3;
  }
  .clinic-gallery {
    grid-template-columns: 1fr;
    gap: 22px;
    margin-top: 28px;
  }
  .clinic-gallery__item,
  .clinic-gallery__image {
    width: 100%;
  }
  .clinic-gallery__image {
    height: 210px;
  }
  .clinic-info-table,
  .clinic-profile-table,
  .clinic-equipment-table {
    width: 100%;
    margin-top: 26px;
  }
  .clinic-info-table__row,
  .clinic-profile-row {
    min-height: 0;
    height: auto;
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 12px;
    padding: 14px 0;
    font-size: 14px;
    line-height: 1.75;
  }
  .clinic-info-table__label,
  .clinic-info-table__colon,
  .clinic-info-table__value,
  .clinic-profile-row__label,
  .clinic-profile-row__colon,
  .clinic-profile-row p {
    position: static;
    width: auto;
    white-space: normal;
  }
  .clinic-info-table__colon,
  .clinic-profile-row__colon {
    display: none;
  }
  .clinic-doctor {
    width: 100%;
    margin-top: 36px;
  }
  .clinic-doctor h3 {
    position: static;
    margin-bottom: 16px;
  }
  .clinic-doctor__photo {
    width: 100%;
    height: 220px;
    margin-top: 18px;
  }
  .clinic-message {
    width: 100%;
    height: auto;
    margin-top: 36px;
    padding: 22px 18px;
  }
  .clinic-message p:not(.clinic-message__label) {
    font-size: 14px;
    line-height: 1.8;
  }
  .clinic-detail-link {
    display: inline-block;
    width: 142px;
    margin: 22px 0 0 auto;
  }
  .clinic-equipment-table::before {
    display: none;
  }
  .clinic-equipment-table__row {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .clinic-equipment-table__row h3,
  .clinic-equipment-table__row:not(:first-child) h3 {
    padding: 16px 18px;
    background: var(--lower-pale);
    font-size: 16px;
    line-height: 1.55;
  }
  .clinic-equipment-table__row p,
  .clinic-equipment-table__row:not(:first-child) p {
    padding: 16px 18px;
    font-size: 14px;
    line-height: 1.8;
  }
  .clinic-bottom-cta,
  .diarrhea-bottom-cta {
    width: 100%;
    height: auto;
    margin: 0 0 96px;
    padding: 28px 22px;
    text-align: left;
  }
  .clinic-bottom-cta h2,
  .diarrhea-bottom-cta h2 {
    font-size: 20px;
    line-height: 1.5;
    text-align: left;
  }
  .clinic-bottom-cta > p,
  .diarrhea-bottom-cta p {
    width: 100%;
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
  }
  .clinic-bottom-cta__buttons,
  .diarrhea-bottom-cta__buttons {
    display: grid;
    gap: 12px;
    margin-top: 22px;
  }
  .clinic-bottom-cta__buttons a,
  .diarrhea-bottom-cta a {
    width: 100%;
    height: 62px;
    display: grid;
    grid-template-columns: 54px 1fr 18px;
    align-items: center;
    justify-content: stretch;
    gap: 0;
    padding: 0 14px 0 18px;
    font-size: 15px;
  }
  .clinic-bottom-cta__icon,
  .clinic-bottom-cta__icon--external,
  .clinic-bottom-cta__icon--calendar,
  .clinic-bottom-cta__icon--pin,
  .clinic-bottom-cta__arrow,
  .diarrhea-bottom-cta__icon,
  .diarrhea-bottom-cta__icon--web,
  .diarrhea-bottom-cta__icon--colono,
  .diarrhea-bottom-cta span,
  .diarrhea-bottom-cta a:first-child span,
  .diarrhea-bottom-cta a:nth-child(2) span,
  .diarrhea-bottom-cta__arrow {
    position: static;
  }
  .clinic-bottom-cta__icon--calendar,
  .diarrhea-bottom-cta__icon--web {
    width: 34px;
    height: auto;
    justify-self: center;
  }
  .clinic-bottom-cta__icon--pin,
  .diarrhea-bottom-cta__icon--colono {
    width: 30px;
    height: auto;
    justify-self: center;
  }
  .clinic-bottom-cta__icon--external,
  .clinic-bottom-cta__arrow,
  .diarrhea-bottom-cta__arrow {
    width: 6px;
    height: 12px;
    justify-self: end;
  }

  .gastro-final-section--intro,
  .diarrhea-final-section--about {
    margin-top: 0;
  }
  .gastro-symptom-panel {
    width: 100%;
    height: auto;
    margin-top: 28px;
    padding: 24px 18px;
    background: var(--beige);
  }
  .gastro-symptom-panel__ribbon {
    width: 100%;
    height: auto;
    padding: 0;
    background: transparent;
  }
  .gastro-symptom-panel__ribbon h2 {
    position: static;
    width: 100%;
    font-size: 21px;
    line-height: 1.55;
    text-align: center;
    white-space: normal;
  }
  .gastro-symptom-panel::after {
    display: none;
  }
  .gastro-symptom-group {
    width: 100%;
    display: grid;
    grid-template-columns: 54px 1fr;
    gap: 8px 14px;
    margin-top: 24px;
  }
  .gastro-symptom-group + .gastro-symptom-group {
    padding-top: 24px;
    border-top: 1px solid rgba(16,97,138,.26);
  }
  .gastro-symptom-group__icon {
    width: 46px;
    height: auto;
  }
  .gastro-symptom-group h3 {
    width: auto;
    font-size: 17px;
    line-height: 1.55;
  }
  .gastro-symptom-group ul {
    grid-column: 1 / -1;
    width: 100%;
    font-size: 14px;
    line-height: 1.8;
    white-space: normal;
  }
  .gastro-card-grid,
  .gastro-disease-groups,
  .gastro-two-panel {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 28px;
  }
  .gastro-info-card,
  .gastro-disease-group,
  .gastro-disease-group:nth-child(2),
  .gastro-case-panel,
  .gastro-feature-panel {
    width: 100%;
    height: auto;
  }
  .gastro-info-card h3,
  .gastro-disease-group h3,
  .gastro-case-panel h3,
  .gastro-feature-panel h3 {
    width: 100%;
    height: auto;
    min-height: 56px;
    padding: 14px 18px;
    font-size: 17px;
    line-height: 1.55;
  }
  .gastro-info-card p {
    width: 100%;
    margin: 14px 0 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .gastro-text-link,
  .gastro-case-panel .gastro-text-link,
  .gastro-feature-panel .gastro-text-link,
  .gastro-case-panel:nth-child(2) .gastro-text-link,
  .gastro-feature-panel:nth-child(2) .gastro-text-link {
    position: relative !important;
    display: inline-block;
    right: auto !important;
    bottom: auto !important;
    width: auto !important;
    margin-top: 12px;
    font-size: 14px;
  }
  .gastro-disease-list {
    width: 100%;
    height: auto;
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 8px;
    padding: 16px;
  }
  .gastro-disease-tile {
    width: 100%;
    height: 52px;
    justify-content: flex-start;
    padding: 0 34px 0 16px;
    font-size: 14px;
    text-align: left;
  }
  .gastro-case-panel__body,
  .gastro-feature-panel__body {
    width: 100%;
    height: auto;
    padding: 16px 18px;
    border: 1px solid var(--lower-border);
    border-top: 0;
    background: #fff;
  }
  .gastro-case-panel ul {
    padding: 0;
    font-size: 14px;
    line-height: 1.75;
  }
  .gastro-feature-panel__body p {
    width: 100%;
    padding: 0;
    font-size: 14px;
    line-height: 1.8;
  }

  .diarrhea-check {
    width: 100%;
    height: auto;
    margin-top: 26px;
  }
  .diarrhea-check h3 {
    width: 100%;
    height: auto;
    min-height: 56px;
    align-items: center;
    padding: 14px 18px;
    background: var(--beige);
    font-size: 17px;
    line-height: 1.55;
  }
  .diarrhea-check ul {
    width: 100%;
    height: auto;
    padding: 16px 18px 18px 42px;
    border: 1px solid var(--lower-border);
    background: #fff;
    font-size: 14px;
    line-height: 1.75;
  }
  .diarrhea-check li {
    height: auto;
  }
  .diarrhea-check li + li {
    margin-top: 7px;
  }
  .diarrhea-check li::before {
    left: -22px;
    top: .55em;
  }
  .diarrhea-check-note {
    margin-top: 24px;
  }
  .diarrhea-bar-heading {
    width: 100%;
    height: auto;
    min-height: 56px;
    margin-bottom: 24px;
    padding: 14px 18px;
  }
  .diarrhea-bar-heading h2 {
    font-size: 18px;
    line-height: 1.55;
  }
  .diarrhea-section-lead {
    margin-bottom: 20px;
  }
  .diarrhea-type-table,
  .diarrhea-basic-table {
    width: 100%;
    display: grid;
    gap: 14px;
    margin-top: 20px;
  }
  .diarrhea-type-table h3 {
    margin: 18px 0 0;
    font-size: 17px;
    line-height: 1.55;
  }
  .diarrhea-table-row,
  .diarrhea-table-row--type,
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(1),
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(2),
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(3),
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(4),
  .diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(n),
  .diarrhea-basic-table--exam .diarrhea-table-row:nth-child(n) {
    width: 100%;
    height: auto;
    min-height: 0;
    display: block;
    grid-template-columns: 1fr;
  }
  .diarrhea-table-row::before,
  .diarrhea-table-row::after {
    display: none;
  }
  .diarrhea-table-row__label {
    min-height: 54px;
    padding: 14px 18px;
    font-size: 15px;
    line-height: 1.55;
  }
  .diarrhea-table-row__body,
  .diarrhea-table-row--type .diarrhea-table-row__body {
    display: block;
    padding: 16px 18px;
    border-left: 1px solid var(--lower-border);
    border-top: 0;
    font-size: 14px;
    line-height: 1.8;
  }
  .diarrhea-care {
    width: 100%;
    display: grid;
    gap: 28px;
    margin-top: 24px;
  }
  .diarrhea-care-group,
  .diarrhea-care-group--1,
  .diarrhea-care-group--2 {
    width: 100%;
    height: auto;
  }
  .diarrhea-care-group h3 {
    height: auto;
    font-size: 17px;
    line-height: 1.55;
  }
  .diarrhea-care-list {
    width: 100%;
    margin-top: 12px;
  }
  .diarrhea-care-list p,
  .diarrhea-care-group--1 .diarrhea-care-list p:nth-child(n),
  .diarrhea-care-group--2 .diarrhea-care-list p {
    min-height: 0;
    padding: 14px 0;
    font-size: 14px;
    line-height: 1.8;
    border-top: 1px solid #d9d9d9;
  }
  .diarrhea-care-list strong {
    display: block;
    margin: 0 0 4px;
  }
  .diarrhea-bottom-cta p br {
    display: none;
  }

  .site-footer {
    width: 100%;
    padding: 46px 22px 116px;
  }
  .site-footer__inner {
    display: grid;
    gap: 28px;
  }
  .site-footer__name { font-size: 15px; }
  .site-footer__address,
  .site-footer__tel-hours,
  .site-footer__holiday,
  .site-footer__privacy,
  .site-footer__copy { font-size: 13px; }
  .site-footer__right {
    margin-top: 0;
    text-align: left;
  }

  .fixed-cta {
    left: 8px;
    right: 8px;
    bottom: 8px;
    height: 62px;
    padding: 0 4px;
    justify-content: space-between;
    border-radius: 8px;
  }
  .fixed-cta__btn {
    flex: 1;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    padding: 0 4px;
    font-size: 11px;
    line-height: 1.2;
    text-align: center;
  }
  .fixed-cta__btn span { white-space: nowrap; }
  .fixed-cta__icon--phone {
    width: 20px;
    height: 20px;
  }
  .fixed-cta__icon--web {
    width: 22px;
    height: 20px;
  }
  .fixed-cta__icon--line {
    width: 26px;
    height: 26px;
  }
  .fixed-cta__divider { height: 30px; }
}

/* ==========================================================================
   Column (Media CPT) — link card / archive / single
   ========================================================================== */
.media-card--link { display: block; color: inherit; text-decoration: none; }
.media-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.media-card__img-placeholder { font-size: 14px; color: #888; letter-spacing: 0.05em; }

/* Archive */
.column-archive { max-width: 1240px; margin: 0 auto; padding: 80px 24px; }
.column-archive__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
  gap: 22px;
}
.column-archive__pagination {
  margin-top: 60px;
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.column-archive__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  font-family: var(--font-en);
  font-size: 14px;
  color: #333;
  border: 1px solid #ddd;
  text-decoration: none;
  background: #fff;
}
.column-archive__pagination .page-numbers.current {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.column-archive__pagination .page-numbers:hover:not(.current) {
  border-color: var(--blue);
  color: var(--blue);
}
.column-archive__empty {
  text-align: center;
  font-size: 16px;
  color: #666;
  padding: 80px 0;
}

/* Single */
.column-single {
  max-width: 800px;
  margin: 0 auto;
  padding: 60px 24px 80px;
}
.column-single__date {
  display: block;
  font-family: var(--font-en);
  font-size: 18px;
  color: var(--blue);
  margin-bottom: 24px;
}
.column-single__thumb { margin: 0 0 40px; overflow: hidden; }
.column-single__thumb img { width: 100%; height: auto; display: block; }
.column-single__body { font-size: 16px; line-height: 1.9; color: #222; }
.column-single__body h2 {
  font-size: 24px;
  margin: 48px 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--blue);
}
.column-single__body h3 { font-size: 20px; margin: 36px 0 12px; color: var(--blue); }
.column-single__body p { margin: 0 0 1.5em; }
.column-single__body ul,
.column-single__body ol { margin: 0 0 1.5em; padding-left: 1.5em; }
.column-single__body li { margin-bottom: 0.5em; }
.column-single__body a { color: var(--blue); text-decoration: underline; }
.column-single__body img { max-width: 100%; height: auto; }
.column-single__footer {
  margin-top: 60px;
  padding-top: 40px;
  border-top: 1px solid #ddd;
  text-align: center;
}
.column-single__back {
  display: inline-block;
  font-size: 14px;
  color: var(--blue);
  text-decoration: none;
  border-bottom: 1px solid var(--blue);
  padding-bottom: 4px;
}

@media (max-width: 768px) {
  .column-archive { padding: 48px 16px; }
  .column-archive__list { grid-template-columns: 1fr; gap: 16px; }
  .column-single { padding: 40px 16px 60px; }
  .column-single__body { font-size: 15px; }
  .column-single__body h2 { font-size: 20px; }
  .column-single__body h3 { font-size: 18px; }
}

/* ==========================================================================
   Header — Submenu (hover dropdown)
   ========================================================================== */
.header__nav-item {
  position: relative;
  align-self: stretch;
  display: flex;
  align-items: center;
}
.header__submenu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: #fff;
  min-width: 200px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
  border-radius: 4px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s;
  z-index: 200;
  pointer-events: none;
}
.header__nav-item:hover .header__submenu,
.header__nav-item:focus-within .header__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.header__submenu li {
  margin: 0;
  padding: 0;
}
.header__submenu a {
  display: block;
  padding: 10px 20px;
  font-size: 13px;
  color: #173243;
  text-decoration: none;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease;
  letter-spacing: 0;
  font-weight: 500;
}
.header__submenu a:hover {
  background: #f4f7f9;
  color: var(--blue);
}

/* Mobile (≤767px): accordion-style submenu (closed by default, open on parent tap) */
@media (max-width: 767px) {
  .header__nav-item {
    display: block;
    align-self: auto;
  }
  .header__submenu {
    display: none;
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    margin: 0;
    padding: 4px 0 8px 16px;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    min-width: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: inherit;
    list-style: none;
  }
  .header__nav-item.is-open .header__submenu { display: block; }
  /* 親項目（サブメニューあり）の矢印を「>」→「+」に、開時は「−」に */
  .header__nav-item:has(> .header__submenu) > a::after {
    content: "+" !important;
    font-size: 20px !important;
    line-height: 1;
    color: rgba(255, 255, 255, 0.82);
  }
  .header.is-scrolled .header__nav-item:has(> .header__submenu) > a::after {
    color: rgba(23, 50, 67, 0.72);
  }
  .header__nav-item.is-open > a::after {
    content: "−" !important;
  }
  .header__submenu li { margin: 0; }
  .header__submenu a {
    display: block;
    padding: 8px 0;
    border-bottom: none;
    color: rgba(255, 255, 255, 0.78);
    font-size: 13px;
    line-height: 1.5;
    min-height: 0;
  }
  .header.is-scrolled .header__submenu a {
    color: rgba(23, 50, 67, 0.72);
  }
  .header__submenu a::after { content: none !important; }

  /* FV画像の上部黒帯対策: 画像を top:0 から表示 */
  .lower-page--gastroscopy .lower-hero__bg img,
  .lower-page--colonoscopy .lower-hero__bg img {
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    transform: none !important;
    object-fit: cover !important;
  }

  /* タイトル折り返し許可（画面端で切れない） */
  .lower-hero__title,
  .lower-page--gastroscopy .lower-hero__title,
  .lower-page--colonoscopy .lower-hero__title {
    white-space: normal !important;
    font-size: 20px !important;
    line-height: 1.45 !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    width: calc(100% - 44px) !important;
    max-width: calc(100% - 44px) !important;
    left: 22px !important;
  }
  .lower-hero__en,
  .lower-page--gastroscopy .lower-hero__en,
  .lower-page--colonoscopy .lower-hero__en {
    font-size: 30px !important;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: calc(100% - 44px) !important;
    left: 22px !important;
  }
  /* lead は FV の下に独立配置（hero外に押し出して被り回避） */
  .lower-hero,
  .lower-page--gastroscopy .lower-hero,
  .lower-page--colonoscopy .lower-hero {
    overflow: visible !important;
    margin-bottom: 110px;
  }
  .lower-hero__bg,
  .lower-page--gastroscopy .lower-hero__bg,
  .lower-page--colonoscopy .lower-hero__bg {
    overflow: hidden;
  }
  .lower-hero__lead,
  .lower-page--gastroscopy .lower-hero__lead,
  .lower-page--colonoscopy .lower-hero__lead {
    position: absolute !important;
    top: 100% !important;
    left: 22px !important;
    right: 22px !important;
    width: auto !important;
    max-width: none !important;
    margin-top: 20px !important;
    padding: 0;
    color: #222 !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    text-shadow: none !important;
  }
  /* 本文セクションの見出しも折り返し対応 */
  .lower-heading h2,
  .lower-heading__title {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  /* lower-hero の高さは自動調整 */
  .lower-hero,
  .lower-page--gastroscopy .lower-hero,
  .lower-page--colonoscopy .lower-hero {
    height: auto !important;
    min-height: 480px;
  }
}

/* ==========================================================================
   Symptom / Disease pages — fix absolute-layout overflow on PC
   ========================================================================== */
@media (min-width: 768px) {
  /* セクション固定高さを最小高さに変更（内容が増えても伸びる） */
  .diarrhea-final-section--about { height: auto; min-height: 667px; }
  .diarrhea-final-section--types { height: auto; min-height: 544px; }
  .diarrhea-final-section--diseases { height: auto; min-height: 401px; }
  .diarrhea-final-section--exam { height: auto; min-height: 272px; }
  .diarrhea-final-section--care { height: auto; min-height: 483px; }
  .diarrhea-final-section--message { height: auto; min-height: 200px; }

  /* チェックリスト box: .diarrhea-check 自身も relative化 */
  .diarrhea-check {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 100%;
    height: auto;
    min-height: 234px;
    margin-bottom: 24px;
  }
  .diarrhea-check ul {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
    min-height: 166px;
    padding-bottom: 16px;
  }
  .diarrhea-check li {
    position: relative;
    height: auto;
    min-height: 26px;
  }

  /* テーブル本体: top値リセット */
  .diarrhea-type-table {
    position: relative;
    left: auto;
    top: auto !important;
    height: auto;
    min-height: 341px;
    margin-top: 24px;
  }
  .diarrhea-basic-table {
    position: relative;
    left: auto;
    top: auto !important;
    height: auto;
    padding-bottom: 16px;
    margin-top: 24px;
  }
  .diarrhea-final-section--exam .diarrhea-basic-table { top: auto !important; }

  /* テーブル各行を絶対位置から相対フローに */
  .diarrhea-table-row {
    position: relative;
    top: auto !important;
    left: auto !important;
    height: auto !important;
    min-height: 61px;
  }
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(1),
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(2),
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(3),
  .diarrhea-type-table .diarrhea-table-row:nth-of-type(4),
  .diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(1),
  .diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(2),
  .diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(3),
  .diarrhea-basic-table--diseases .diarrhea-table-row:nth-child(4),
  .diarrhea-basic-table--exam .diarrhea-table-row:nth-child(1),
  .diarrhea-basic-table--exam .diarrhea-table-row:nth-child(2) {
    top: auto !important;
  }

  /* type-table の h3 が absolute で重なるので relative に */
  .diarrhea-type-table h3 {
    position: relative;
    left: auto !important;
    top: auto !important;
    margin-bottom: 8px;
  }
  .diarrhea-type-table h3:nth-of-type(2) { margin-top: 20px; }

  /* セクション末尾の note 等を相対化（テーブルが伸びても下に押されるように） */
  .diarrhea-check-note,
  .diarrhea-message-text {
    position: relative;
    left: auto;
    top: auto;
    margin-top: 20px;
  }

  /* ケアセクション: group 数が CSS想定(2個)を超えるページの重なり対策 */
  .diarrhea-care {
    position: relative;
    left: auto;
    top: auto !important;
    height: auto;
    margin-top: 24px;
  }
  .diarrhea-care-group {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    height: auto !important;
    margin-bottom: 24px;
  }
  .diarrhea-care-group h3 { margin-bottom: 12px; }
  .diarrhea-care-list {
    position: relative !important;
    left: auto !important;
    top: auto !important;
  }
  .diarrhea-care-group--2 .diarrhea-care-list { top: auto !important; }

  /* 全 care-group の border を統一（group--2 だけ枠なしになる問題の解消） */
  .diarrhea-care-group .diarrhea-care-list p {
    min-height: 72px;
    padding: 13px 0 13px 19px;
    border-top: 1px solid #d9d9d9;
    border-bottom: 0;
    box-sizing: border-box;
  }
  .diarrhea-care-group .diarrhea-care-list p:last-child {
    border-bottom: 1px solid #d9d9d9;
  }

  /* CTA セクションも relative 化（h2 改行で次要素と重なる問題を根本解消） */
  .diarrhea-bottom-cta {
    height: auto;
    min-height: 0;
    padding: 50px 20px 60px;
    box-sizing: border-box;
  }
  .diarrhea-bottom-cta h2,
  .diarrhea-bottom-cta p,
  .diarrhea-bottom-cta__buttons {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
  }
  .diarrhea-bottom-cta h2 {
    margin: 0;
    text-align: center;
  }
  .diarrhea-bottom-cta p {
    width: 1068px;
    max-width: 100%;
    margin: 20px auto 0;
    text-align: center;
  }
  .diarrhea-bottom-cta__buttons {
    margin: 30px auto 0;
    justify-content: center;
  }

  /* セクション内の主要要素を全部 relative 化（絶対位置の重なり対策） */
  .diarrhea-final-section .diarrhea-final-heading,
  .diarrhea-final-section .diarrhea-bar-heading {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    margin-bottom: 24px;
  }
  .diarrhea-final-section .diarrhea-about-text,
  .diarrhea-final-section .diarrhea-section-lead {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    margin: 0 0 24px;
    width: 100%;
  }

  /* チェック box 内の h3 と ul を縦並び化 */
  .diarrhea-check h3 {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: auto;
    max-width: 460px;
    margin-bottom: 0;
  }
  .diarrhea-check ul {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: 100%;
    height: auto;
    min-height: 166px;
  }
}

/* ==========================================================================
   News section (in front-page, below .reason) + News CPT pages
   ========================================================================== */
.news-sec { position: relative; width: 1440px; padding: 80px 0; }
.news-sec__head { margin-left: 171px; margin-right: 171px; margin-bottom: 30px; display: flex; align-items: flex-end; gap: 20px; }
.news-sec__head .section-en { font-size: 80px; line-height: 1; }
.news-sec__head .section-title { font-size: 30px; margin-bottom: 8px; }
.news-sec__more { margin-left: auto; font-size: 16px; color: #000; text-decoration: none; border-bottom: 1px solid var(--blue); padding-bottom: 6px; white-space: nowrap; }
.news-sec__more span { color: var(--blue); margin-left: 4px; }
.news-sec__list {
  list-style: none;
  margin: 0 171px;
  padding: 0;
  border-top: 1px solid #e3e7ea;
}
.news-sec__item { border-bottom: 1px solid #e3e7ea; }
.news-sec__link {
  display: grid;
  grid-template-columns: 120px 1fr;
  align-items: center;
  gap: 24px;
  padding: 18px 8px;
  color: #222;
  text-decoration: none;
  transition: background .2s ease;
}
.news-sec__link:hover { background: #f4f7f9; }
.news-sec__date {
  font-family: var(--font-en);
  font-size: 16px;
  color: var(--blue);
}
.news-sec__text {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

@media (max-width: 767px) {
  .news-sec { width: 100%; padding: 48px 22px; }
  .news-sec__head { margin: 0 0 20px; flex-wrap: wrap; gap: 8px; }
  .news-sec__head .section-en { font-size: 44px; }
  .news-sec__head .section-title { font-size: 22px; margin-bottom: 0; }
  .news-sec__more { margin-left: 0; font-size: 14px; flex-basis: 100%; text-align: right; }
  .news-sec__list { margin: 0; }
  .news-sec__link {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 14px 4px;
  }
  .news-sec__date { font-size: 14px; }
  .news-sec__text { font-size: 14px; }
}

/* News archive & single — reuse column-archive / column-single styles base */
.news-archive { max-width: 1100px; margin: 0 auto; padding: 80px 24px; }
.news-archive__list {
  list-style: none;
  margin: 0 0 60px;
  padding: 0;
  border-top: 1px solid #e3e7ea;
}
.news-archive__item { border-bottom: 1px solid #e3e7ea; }
.news-archive__link {
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  gap: 24px;
  padding: 20px 8px;
  color: #222;
  text-decoration: none;
  transition: background .2s ease;
}
.news-archive__link:hover { background: #f4f7f9; }
.news-archive__date {
  font-family: var(--font-en);
  font-size: 16px;
  color: var(--blue);
}
.news-archive__text { margin: 0; font-size: 16px; line-height: 1.6; }
.news-archive__pagination {
  margin-top: 60px;
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.news-archive__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  font-family: var(--font-en);
  font-size: 14px;
  color: #333;
  border: 1px solid #ddd;
  text-decoration: none;
  background: #fff;
}
.news-archive__pagination .page-numbers.current {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}
.news-archive__empty {
  text-align: center;
  font-size: 16px;
  color: #666;
  padding: 80px 0;
}

.news-single { max-width: 800px; margin: 0 auto; padding: 60px 24px 80px; }
.news-single__date {
  display: block;
  font-family: var(--font-en);
  font-size: 18px;
  color: var(--blue);
  margin-bottom: 24px;
}
.news-single__body { font-size: 16px; line-height: 1.9; color: #222; }
.news-single__body p { margin: 0 0 1.5em; }
.news-single__body a { color: var(--blue); text-decoration: underline; }
.news-single__footer {
  margin-top: 60px;
  padding-top: 40px;
  border-top: 1px solid #ddd;
  text-align: center;
}
.news-single__back {
  display: inline-block;
  font-size: 14px;
  color: var(--blue);
  text-decoration: none;
  border-bottom: 1px solid var(--blue);
  padding-bottom: 4px;
}

@media (max-width: 767px) {
  .news-archive { padding: 48px 16px; }
  .news-archive__link {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 14px 4px;
  }
  .news-single { padding: 40px 16px 60px; }
  .news-single__body { font-size: 15px; }
}

/* Doctor message accordion (page-doctor) */
.doctor-msg__intro { display: block; }
.doctor-msg__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 6px 0;
  background: none;
  border: 0;
  color: var(--lower-blue, #2f6a8a);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  cursor: pointer;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}
.doctor-msg__btn:hover { opacity: 0.75; }
.doctor-msg__btn::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-bottom: 3px;
}
.doctor-msg__btn--close::after { transform: rotate(-135deg); margin-bottom: 0; margin-top: 3px; }
.doctor-msg__panel { overflow: hidden; height: 0; transition: height 0.28s ease; }
.doctor-msg__panel > * { margin-top: 12px; }
.doctor-msg-block__body[data-state="closed"] .doctor-msg__panel { display: none; }
.doctor-msg-block__body[data-state="closed"] .doctor-msg__btn--close { display: none; }
.doctor-msg-block__body[data-state="open"] .doctor-msg__btn--open { display: none; }
.doctor-msg-block__body[data-state="open"] .doctor-msg__panel { height: auto; }

/* 診療スケジュール (page-schedule) */
.yuai-schedule { max-width: 720px; margin: 0 auto 80px; }
.yuai-schedule__nav { display: flex; align-items: center; justify-content: center; gap: 24px; margin-bottom: 24px; }
.yuai-schedule__arrow { width: 40px; height: 40px; border: 1px solid var(--lower-border, #d6dde2); background: #fff; color: var(--lower-blue, #2f6a8a); font-size: 24px; line-height: 1; cursor: pointer; border-radius: 50%; transition: opacity 0.2s; padding: 0; }
.yuai-schedule__arrow:hover { opacity: 0.7; }
.yuai-schedule__arrow:disabled { opacity: 0.3; cursor: not-allowed; }
.yuai-schedule__month-label { font-size: 22px; font-weight: 500; color: #222; margin: 0; min-width: 160px; text-align: center; }
.yuai-schedule__slides { position: relative; }
.yuai-schedule__slide { display: none; }
.yuai-schedule__slide.is-active { display: block; }
.yuai-schedule-cal { width: 100%; border-collapse: collapse; background: #fff; }
.yuai-schedule-cal th { padding: 12px 0; font-size: 14px; font-weight: 500; border: 1px solid var(--lower-border, #d6dde2); background: var(--lower-pale, #eaf1f5); }
.yuai-schedule-cal th.is-sun { color: #c74646; }
.yuai-schedule-cal th.is-sat { color: #3a7eaa; }
.yuai-schedule-cal td { border: 1px solid var(--lower-border, #d6dde2); height: 64px; vertical-align: top; padding: 6px 8px; text-align: center; font-size: 14px; }
.yuai-schedule-cal td.is-sun .yuai-schedule-cal__day { color: #c74646; }
.yuai-schedule-cal td.is-sat .yuai-schedule-cal__day { color: #3a7eaa; }
.yuai-schedule-cal__day { display: block; font-weight: 500; }
.yuai-schedule-cal__symbol { display: block; font-size: 20px; line-height: 1.2; color: var(--lower-blue, #2f6a8a); }
.yuai-schedule__legend { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 20px; font-size: 14px; }
.yuai-schedule__legend-symbol { color: var(--lower-blue, #2f6a8a); font-size: 18px; }
.yuai-schedule__note { margin-top: 12px; font-size: 13px; color: #666; text-align: center; }

@media (max-width: 767px) {
  .yuai-schedule { padding: 0 16px; }
  .yuai-schedule__month-label { font-size: 18px; min-width: 120px; }
  .yuai-schedule-cal th { padding: 8px 0; font-size: 12px; }
  .yuai-schedule-cal td { height: 54px; padding: 4px; font-size: 12px; }
  .yuai-schedule-cal__symbol { font-size: 16px; }
}

/* TOP 選ばれる理由 03 機器リスト */
.reason__item-equip { list-style: none; padding: 0; margin: 12px 0 0; font-size: 14px; line-height: 1.7; color: #444; }
.reason__item-equip li { position: relative; padding-left: 14px; }
.reason__item-equip li::before { content: "・"; position: absolute; left: 0; top: 0; color: var(--blue, #2f6a8a); }
@media (max-width: 767px) {
  .reason__item-equip { font-size: 13px; }
}

/* 診療開始日告知ポップアップ */
.yuai-popup {
  position: fixed;
  left: 32px;
  bottom: 32px;
  z-index: 1000;
  max-width: 460px;
  background: #fff;
  border: 1px solid var(--lower-border, #d6dde2);
  border-left: 6px solid #c74646;
  border-radius: 10px;
  box-shadow: 0 12px 36px rgba(0,0,0,0.2);
  padding: 28px 56px 26px 32px;
  animation: yuai-popup-in 0.4s ease-out;
}
@keyframes yuai-popup-in {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}
.yuai-popup.is-hidden { display: none; }
.yuai-popup__close {
  position: absolute;
  right: 10px;
  top: 10px;
  width: 36px;
  height: 36px;
  background: none;
  border: 0;
  font-size: 26px;
  line-height: 1;
  color: #666;
  cursor: pointer;
  padding: 0;
}
.yuai-popup__close:hover { color: #222; }
.yuai-popup__title { margin: 0 0 10px; font-size: 20px; font-weight: 600; line-height: 1.5; color: #c74646; }
.yuai-popup__text { margin: 0; font-size: 16px; line-height: 1.6; color: #333; }

@media (max-width: 767px) {
  .yuai-popup {
    left: 12px;
    right: 12px;
    bottom: 80px; /* fixed-cta (62px height + 8px bottom + 10px gap) の上 */
    max-width: none;
    padding: 20px 46px 18px 18px;
  }
  .yuai-popup__title { font-size: 17px; margin-bottom: 8px; }
  .yuai-popup__text { font-size: 14px; }
}

/* FEATURE カード（page-features） */
.lower-card--feature h3 { display: block; min-height: 0; padding: 16px 20px; line-height: 1.5; }
.lower-card--feature .lower-card__num { display: block; font-family: var(--font-en, "Inter", sans-serif); font-size: 14px; letter-spacing: 0.08em; color: var(--lower-blue, #2f6a8a); font-weight: 500; margin-bottom: 4px; }
.lower-card--feature .lower-card__title { display: block; font-size: 20px; font-weight: 500; color: #222; }
.lower-card--feature .lower-card__body { padding: 18px 20px 24px; font-size: 16px; line-height: 1.7; min-height: 132px; }
.lower-card--feature .lower-card__body p { padding: 0; margin: 0; min-height: 0; }
.lower-card--feature .lower-card__equip { list-style: none; padding: 0; margin: 0 0 12px; font-size: 14px; line-height: 1.7; color: #444; }
.lower-card--feature .lower-card__equip li { position: relative; padding-left: 14px; }
.lower-card--feature .lower-card__equip li::before { content: "・"; position: absolute; left: 0; top: 0; color: var(--lower-blue, #2f6a8a); }
.lower-card--feature .lower-card__equip + p { margin-top: 8px; }
.lower-card--feature .lower-card__link { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; font-size: 14px; font-weight: 500; color: var(--lower-blue, #2f6a8a); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.lower-card--feature .lower-card__link:hover { opacity: 0.75; }
.lower-card--feature .lower-card__link-arrow { font-size: 12px; }

@media (max-width: 767px) {
  .lower-card--feature h3 { padding: 14px 16px; }
  .lower-card--feature .lower-card__title { font-size: 17px; }
  .lower-card--feature .lower-card__body { padding: 14px 16px 20px; font-size: 15px; min-height: 0; }
  .lower-card--feature .lower-card__equip { font-size: 13px; }
}

/* 医師紹介：メッセージ/コメント（テーブル外ブロック） */
.doctor-msg-block { width: 100%; border: 1px solid var(--lower-border); border-radius: 6px; margin-top: -20px; margin-bottom: 36px; overflow: hidden; }
.doctor-msg-block__label { background: var(--lower-pale); padding: 14px 24px; margin: 0; font-weight: 500; font-size: 16px; }
.doctor-msg-block__body { padding: 20px 24px; font-size: 16px; line-height: 1.65; }

@media (max-width: 767px) {
  /* FVリード文の固定幅オーバーフロー対策 */
  .lower-page-lead { width: auto; max-width: 100%; padding: 0 20px; margin: 0 auto 40px; font-size: 15px; box-sizing: border-box; }
  .doctor-msg-block__label { padding: 12px 16px; font-size: 15px; }
  .doctor-msg-block__body { padding: 16px; font-size: 15px; }
}

