:root {
  --subpage-content-max: 960px;
  --subpage-gutter: 24px;
  --subpage-inline-space: 48px;
  --subpage-section-space: 96px;
}

@media (max-width: 900px) {
  :root {
    --subpage-gutter: 20px;
    --subpage-inline-space: 40px;
    --subpage-section-space: 72px;
  }
}

@media (max-width: 520px) {
  :root {
    --subpage-gutter: 16px;
    --subpage-inline-space: 32px;
    --subpage-section-space: 56px;
  }
}

.hero { position: relative; isolation: isolate; min-height: 710px; background: #eef3f0; overflow: hidden; }
.hero-slideshow { --hero-fade-duration: 1000ms; position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hero-slide { position: absolute; inset: 0; background: #eef3f0 center/cover no-repeat; opacity: 0; }
.hero-slide.is-active { opacity: 1; }
.hero-slide.is-entering { z-index: 1; transition: opacity var(--hero-fade-duration) ease-in-out; }
.hero-slide--doctor { background-image: url("../images/hero-doctor.png"); }
.hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-inner { width: min(1180px, calc(100% - 48px)); min-height: 710px; margin-inline: auto; position: relative; z-index: 2; padding-top: 64px; }
@media (prefers-reduced-motion: reduce) {
  .hero-slideshow .hero-slide { opacity: 0; transition: none; }
  .hero-slideshow .hero-slide--doctor { opacity: 1; }
}
.hero-copy { width: 590px; text-align: center; position: relative; z-index: 2; }
.hero-kicker { margin: 0 0 3px; font-size: 2.5rem; letter-spacing: .1em; }
.hero h1 { margin: 0 0 32px; font-size: clamp(4.3rem, 4.2vw, 6rem); line-height: 1.42; letter-spacing: .05em; }
.hero h1 em { color: var(--navy); font-style: normal; }
.hero-highlight { padding: 21px 34px; background: linear-gradient(180deg, #efb20a 0%, #956000 100%); color: #fff; border: 0; box-shadow: 10px 10px 0 rgba(115, 79, 0, .48); transform: skew(-6deg); }
.hero-highlight p { margin: 0; font-family: var(--serif); font-size: 2.3rem; font-weight: 400; line-height: 1.55; letter-spacing: .08em; transform: skew(6deg); }
.hero-highlight-number { color: #fff; font-size: 3.2rem; font-weight: 400; }
.hero-diseases { margin-top: 30px; }
.hero-diseases span { display: inline-block; padding: 0 24px; margin-bottom: 5px; color: var(--ink); background: transparent; font-family: var(--serif); font-size: 1.6rem; }
.hero-diseases p { margin: 0; padding-top: 10px; border-top: 4px solid var(--navy); font-family: var(--serif); font-size: 1.8rem; font-weight: 700; }
.hero-features { position: absolute; left: 0; bottom: 0; display: grid; grid-template-columns: repeat(2, 305px); }
.hero-features > div { position: relative; height: 102px; display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 46px; padding: 25px 20px 10px; color: #fff; background: rgba(29,32,138,.96); }
.hero-features > div + div { background: rgba(22,38,114,.88); }
.feature-icon { position: absolute; left: 50%; top: -45px; width: 90px; height: 90px; border-radius: 50%; display: grid; place-items: center; background: var(--navy); color: #fff; font-size: 3.2rem; box-shadow: 0 0 0 3px #fff; transform: translateX(-50%); }
.feature-icon svg { width: 52px; height: 52px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-features p { margin: 0; line-height: 1.65; }
.hero-feature-image { display: none; }

.news { padding: 48px 0; background: #f2f8f1; border-bottom: 1px solid #e6efec; }
.news-inner { display: grid; grid-template-columns: 150px 1fr 210px; align-items: center; gap: 42px; }
.section-label { text-align: center; }
.section-label--left { text-align: center; }
.section-en { margin: 0; line-height: 1.1; }
.section-label h2 { margin: 6px 0 0; letter-spacing: .2em; }
.news-list { margin: 0; padding: 0; list-style: none; }
.news-list li { display: grid; grid-template-columns: 110px 1fr; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--blue); line-height: 1.5; }
.news-list time { font-size: 1.3rem; color: var(--blue); }
.news-list a:hover { color: var(--blue); }
.outline-button, .small-button { min-height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; padding: 12px 30px; border: 1px solid #9ed8d4; background: #fff; box-shadow: inset 0 0 0 8px #fff, inset 0 0 0 9px #e2efec; color: #256376; font-weight: 600; transition: color .2s, background .2s, transform .2s; }
.outline-button > span, .small-button > span { display: block; flex: 0 0 auto; width: 18px; height: 17px; background: url("../images/button-arrow.png") center/contain no-repeat; font-size: 0; line-height: 0; }
.outline-button:hover, .small-button:hover { background: var(--mint); color: var(--navy); transform: translateY(-2px); }
.outline-button--center { display: flex; width: fit-content; margin: 60px auto 0; }

.concerns { padding: 100px 0 90px; background: linear-gradient(180deg, #fff 0%, #effaf5 100%); }
.lined-heading { position: relative; z-index: 0; margin: 0 auto 70px; text-align: center; color: var(--navy); font-size: 3.2rem; line-height: 1.5; letter-spacing: .05em; }
.lined-heading::before, .lined-heading::after { display: none; }
.lined-heading .heading-mark { color: var(--navy); background: linear-gradient(transparent 70%, #e3f3f1 70%); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.lined-heading .heading-mark.heading-lines { background: none; }
.lined-heading .heading-mark.heading-lines::after { display: none; }
.lined-heading .heading-lines .heading-line,
.subpage-section-title.heading-lines .heading-line { display: inline; background: linear-gradient(transparent 70%, #e3f3f1 70%); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.check-list { width: min(760px, 100%); margin: 0 auto 55px; padding: 0; list-style: none; }
.check-list::after { content: ""; display: block; width: 185px; height: 38px; margin: 48px auto 0; background: url("../images/down-arrow.png") center/contain no-repeat; }
.check-list li { position: relative; padding-left: 48px; margin: 21px 0; font-size: 1.9rem; font-weight: 600; line-height: 1.6; }
.check-list li::before { content: ""; position: absolute; left: 0; top: 0; width: 31px; height: 26px; background: url("../images/check-icon.png") center/contain no-repeat; }
.check-list small { font-size: 1.5rem; font-weight: 400; }
.concerns-note { margin: 0 auto 35px; text-align: center; font-size: 2rem; font-weight: 600; }
.concerns-note > span, .concerns-note > strong { display: block; }
.concerns-note > strong { color: var(--blue); font-size: 2.7rem; line-height: 1.5; }
.concerns-note ruby { color: inherit; }
.concerns-note rt { color: var(--ink); }
.concerns-answer { position: relative; padding: 40px 30px; border: 1px solid var(--blue); background: rgba(221, 248, 249, .78); text-align: center; box-shadow: 0 0 0 10px rgba(216, 246, 242, .65); }
.concerns-answer::before { display: none; }
.concerns-answer p { margin: 0; color: var(--ink); font-size: 2rem; font-weight: 600; }
.concerns-answer-lead strong { display: inline-block; padding: 3px 14px; background: var(--blue); color: #fff; font-size: 3.1rem; }
.concerns-answer-sub { margin-top: 14px !important; font-size: 1.8rem !important; }
.concerns-answer-sub strong { color: var(--blue); font-size: 2.4rem; font-weight: 700; }

.treatment .lined-heading { width: 840px; max-width: 100%; margin-bottom: 70px; }
.treatment-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px 34px; align-items: stretch; }
.treatment-card { display: flex; flex-direction: column; min-height: 510px; padding: 32px 28px 28px; background: #fff; border: 1px solid #d6d6d6; border-radius: 14px; box-shadow: 4px 4px 0 var(--blue); text-align: center; }
.treatment-card h3 { margin: 0 0 22px; color: #2d2a32; font-size: 2.1rem; letter-spacing: .05em; }
.treatment-card img { width: auto; height: 112px; margin: 0 auto 24px; object-fit: contain; }
.treatment-card p { flex: 1; margin-bottom: 25px; text-align: left; font-size: 1.4rem; line-height: 2; }
.small-button { width: 220px; max-width: 100%; min-height: 50px; margin: auto auto 0; padding: 8px 22px; font-size: 1.3rem; }
.treatment-card .small-button { position: relative; isolation: isolate; border: 0; background: #e7f5e7; box-shadow: none; color: var(--ink); font-weight: 400; }
.treatment-card .small-button::before { content: ""; position: absolute; z-index: -1; inset: 7px 10px; border: 1px solid var(--blue); background: #f2f7f2; pointer-events: none; }
.treatment-card .small-button > span { position: relative; z-index: 1; }
.treatment-card .small-button:hover { background: #e7f5e7; color: var(--ink); }

.reasons .lined-heading { margin-bottom: 90px; }
.number-em { color: inherit !important; font-size: 1.35em; }
.reason-list { display: grid; gap: 48px; }
.reason-card { display: grid; grid-template-columns: 1fr 1fr; min-height: 440px; background: #fff; box-shadow: var(--shadow); }
.reason-card--reverse .reason-media { order: 2; }
.reason-media { display: flex; align-items: center; padding: 42px 30px; }
.reason-media img { width: 540px; max-width: 100%; height: auto; object-fit: contain; }
.reason-copy { display: flex; flex-direction: column; justify-content: center; padding: 46px 52px; }
.reason-copy p { margin: 0 0 .6rem; line-height: 2.1; }
.reason-copy p:last-child { margin-bottom: 0; }
.reason-copy address { font-size: 1.3rem; line-height: 1.8; }
.video-link { width: min(748px, 100%); margin: 100px auto 0; padding: 0; background: transparent; box-shadow: none; }
.video-link a,
.video-link img { display: block; width: 100%; }

.message-card { padding: 80px 85px; background: #fff; box-shadow: var(--shadow); }
.message-grid { display: grid; grid-template-columns: 420px 1fr; gap: 65px; margin-top: 60px; align-items: start; }
.director-photo { width: 100%; max-height: 610px; object-fit: cover; }
.message-copy h3 { margin-bottom: 32px; color: #2d2a32; font-family: var(--serif); font-size: 3rem; line-height: 1.6; }
.message-copy h3 span { color: #163d9e; }
.message-copy p { font-size: 1.4rem; line-height: 2; }
.signature { display: flex; flex-direction: column; padding-top: 1.6rem; border-top: 0; }
.signature span { width: 325px; max-width: 100%; margin-bottom: 1.2rem; padding-bottom: 0.8rem; border-bottom: 2px solid #01a0e9; color: #163d9e; font-family: var(--serif); font-size: 1.3rem; }
.signature strong { color: #2d2a32; font-family: var(--serif); font-size: 2.7rem; letter-spacing: .08em; }
.signature small { color: #2d2a32; font-family: "Times New Roman", Times, serif; }
.message-bottom { display: grid; grid-template-columns: 1fr auto; gap: 45px; align-items: center; margin-top: 50px; }
.message-bottom img { width: 560px; max-width: 100%; }

.blog .container { width: min(1030px, calc(100% - var(--subpage-inline-space))); }
.blog-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 36px 60px; margin-top: 65px; }
.blog-card { display: grid; grid-template-columns: 155px 1fr; gap: 24px; }
.blog-card--no-image { grid-template-columns: 1fr; }
.blog-card img { width: 155px; aspect-ratio: 1; object-fit: cover; }
.blog-meta { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 12px; }
.post-category-list { display: flex; min-width: 0; flex-wrap: wrap; gap: 6px; }
.post-category { display: inline-flex; min-height: 24px; align-items: center; padding: 4px 10px; border-radius: 999px; background: var(--blue); color: #fff; font-size: 1.1rem; line-height: 1.2; }
a.post-category:hover { background: var(--navy); color: #fff; }
.blog:not(.blog-archive):not(.blog-single) .post-category { display: inline; min-height: 0; padding: 4px 13px; line-height: inherit; }
.blog-meta time { font-size: 1.1rem; color: var(--muted); }
.blog-card :is(h2, h3) { margin: 0 0 10px; color: var(--navy); font-size: 1.7rem; font-weight: 400; line-height: 1.5; }
.blog-card p { margin: 0; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; font-size: 1.2rem; line-height: 1.8; }
.blog-archive .blog-card--no-image { grid-template-columns: 155px minmax(0, 1fr); }
.blog-archive .blog-card-image-placeholder { box-sizing: border-box; display: grid; width: 155px; aspect-ratio: 1; place-items: center; border: 1px dashed #9ed8d4; background: #e7f3ef; color: var(--navy); font-size: 1.3rem; font-weight: 700; letter-spacing: .08em; }
.blog-archive .blog-card-image-placeholder::before { content: "No Image"; }
.blog-archive .section-label h1,
.blog-single-kicker { margin: 6px 0 0; color: #2d2a32; font-size: 1.5rem; font-weight: 400; line-height: 1.5; letter-spacing: .2em; }
.blog-archive .blog-meta { align-items: flex-start; }
.blog-archive .blog-card-content { min-width: 0; }
.blog-archive .blog-meta time { flex: 0 0 auto; white-space: nowrap; }
.blog-pagination { margin-top: 72px; }
.blog-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.blog-pagination ul.page-numbers li { margin: 0; }
.blog-pagination ul.page-numbers li > a,
.blog-pagination ul.page-numbers li > span { display: grid; min-width: 44px; min-height: 44px; padding: 6px 12px; place-items: center; border: 1px solid #9ed8d4; background: #fff; color: #256376; font-size: 1.3rem; line-height: 1.2; transition: color .2s, background .2s, transform .2s; }
.blog-pagination ul.page-numbers li > a:hover { background: var(--mint); color: var(--navy); transform: translateY(-2px); }
.blog-pagination ul.page-numbers li > span.current { border-color: var(--navy); background: var(--navy); color: #fff; }
.blog-pagination ul.page-numbers li > span.dots { border-color: transparent; background: transparent; color: var(--navy); }

.clinic-grid { display: grid; grid-template-columns: 390px 1fr; gap: 38px 90px; margin-top: 65px; align-items: start; }
.clinic-details h3 { color: var(--navy); font-size: 2.1rem; font-weight: 700; }
.clinic-details h4 { width: fit-content; margin: 32px 0 12px; padding: 2px 16px; border: 1px solid var(--blue); background: #fff; color: #2d2a32; font-size: 1.6rem; font-weight: 700; line-height: 1.5; }
.clinic-details p, .clinic-details address { margin-bottom: 12px; font-size: 1.5rem; line-height: 1.9; }
.clinic-identity address,
.clinic-extra p { font-weight: 700; }
.clinic-tel, .clinic-tel a { color: #2d2a32; font-weight: 700; }
.access-dot { color: var(--blue); }
.access-note { color: #2d2a32; font-size: 1.4rem !important; }
.access-images { display: grid; grid-template-columns: 1fr; gap: 25px; }
.access-video { display: grid; gap: 12px; width: fit-content; color: #2d2a32; font-size: 1.5rem; }
.access-video span { font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.access-images img { width: 319px; max-width: 100%; }
.clinic-map { width: 541px; max-width: 100%; max-height: none; }
.clinic-hours th.clinic-hours-title { color: var(--blue); font-weight: 700; text-align: center; }
.clinic-hours tbody tr:nth-child(2) td:nth-child(7) { color: var(--ink); }
.notice-box { width: min(900px, 100%); margin: 80px auto 0; padding: 42px 75px; border: 0; border-radius: 1.2rem; background: #f2f7f1; box-shadow: 2px 2px 0 rgba(45, 42, 50, .25); color: #2d2a32; font-weight: 700; text-align: center; }
.notice-box h3 { margin-bottom: 2.8rem; padding-bottom: 1.6rem; border-bottom: 2px solid var(--navy); color: #2d2a32; font-size: 2.2rem; font-weight: 700; }
.notice-box p { color: #2d2a32; font-size: 1.5rem; line-height: 2; }
.notice-box > p:first-of-type { text-align: left; }
.notice-box p + p { width: fit-content; margin: 2.6rem auto 0; text-align: left; }
.notice-box a { color: #2d2a32; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2rem; }
@media (max-width: 1180px) {
  .hero-copy { width: 52%; }
  .hero-highlight p { font-size: 2.1rem; }
  .hero-highlight-number { font-size: 3rem; }
}

@media (min-width: 901px) {
  .hero,
  .hero-inner { min-height: 700px; }
  .hero {
    background-color: #fff;
  }
  .hero::after {
    background-image:
      linear-gradient(90deg,
        rgba(255, 255, 255, 1) 0%,
        rgba(255, 255, 255, 1) 42%,
        rgba(255, 255, 255, .94) 45%,
        rgba(255, 255, 255, .77) 49%,
        rgba(255, 255, 255, .56) 52%,
        rgba(255, 255, 255, .36) 56%,
        rgba(255, 255, 255, .14) 59%,
        rgba(255, 255, 255, .1) 63%,
        rgba(255, 255, 255, .04) 66%,
        rgba(255, 255, 255, 0) 70%);
  }
  .hero-slide { background-color: #fff; background-size: auto 700px; background-position: right center; }
  .hero-inner { width: min(1180px, calc(100% - 48px)); }
  .hero-copy { width: 650px; }
  .hero h1 { font-size: 4.5rem; white-space: nowrap; }
  .hero-title-detail { font-size: 3.6rem; }
  .hero h1 br { display: none; }
  .hero-highlight { width: 620px; margin-inline: auto; }
  .hero-diseases span { font-size: 2rem; font-weight: 700; letter-spacing: .12em; }
  .hero-diseases p { letter-spacing: .07em; }
  .hero-features { left: 3px; bottom: 36px; grid-template-columns: repeat(2, 343px); gap: 24px; }
  .hero-features > div,
  .hero-features > div + div { display: block; height: auto; margin: 0; padding: 0; background: transparent; }
  .hero-features .feature-icon,
  .hero-features > div > p { display: none; }
  .hero-feature-image { display: block; width: 343px; height: auto; }
  .news .section-en { font-size: 4.6rem; }
  .news .section-label h2 { font-size: 2rem; }
  .news-inner { width: min(1134px, calc(100% - 48px)); grid-template-columns: 120px 50px 650px 71px 224px; gap: 0; }
  .news .section-label { grid-column: 1; }
  .news-list { grid-column: 3; }
  .news-inner > .outline-button { position: relative; grid-column: 5; width: 224px; min-height: 72px; padding: 5px 10px 6px 9px; border: 0; background: #fff; box-shadow: none; color: var(--ink); font-size: 1.8rem; font-weight: 400; letter-spacing: .06em; }
  .news-inner > .outline-button::before { content: ""; position: absolute; inset: 5px 10px 6px 9px; border: 1px solid var(--blue); pointer-events: none; }
  .news-inner > .outline-button:hover { background: #fff; color: var(--ink); }
  .lined-heading .heading-mark br { display: none; }
  .concerns > .container--narrow { width: min(1000px, calc(100% - 48px)); }
  .concerns .lined-heading .heading-mark { display: inline-block; padding-inline: 28px; }
  .check-list { width: min(900px, 100%); }
  .check-list li { padding-left: 90px; }
  .check-list li::before { left: 31px; }
  .concerns-answer { left: 50%; width: min(913px, calc(100vw - 48px)); min-height: 229px; margin-inline: 0; padding: 45px 50px 40px; border: 0; box-shadow: none; transform: translateX(-50%); }
  .concerns-answer::before { content: ""; position: absolute; display: block; inset: 14px 12px 13px 13px; border: 1px solid var(--blue); pointer-events: none; }
  .concerns-answer > * { position: relative; z-index: 1; }
  .concerns-answer-lead { font-size: 2rem !important; }
  .concerns-answer-lead strong { font-size: 3.2rem; }
  .concerns-note > span,
  .concerns-note > strong { display: inline; }

  .news { padding-block: 39px; }
  .concerns { padding: 106px 0 49px; }
  .treatment { padding-bottom: 141px; }
  .treatment .lined-heading { font-size: 3.6rem; }
  .treatment-card h3 { font-size: 2.4rem; }
  .treatment-card p { font-size: 1.6rem; }
  .treatment-card .small-button { font-size: 1.6rem; }
  .treatment + .reservation-cta { padding-bottom: 70px; }
  .reasons .container { width: min(1200px, calc(100% - 48px)); }
  .reasons .lined-heading .heading-mark { position: relative; isolation: isolate; display: inline-block; padding-inline: 3rem; background: none; }
  .reasons .lined-heading .heading-mark::after { content: ""; position: absolute; z-index: -1; left: 0; right: 0; bottom: .7rem; height: 2rem; background: rgba(1, 160, 233, .1); }
  .reason-card { grid-template-columns: 540px minmax(0, 1fr); gap: 66px; min-height: 0; padding: 46px 57px 47px; }
  .reason-card--reverse { grid-template-columns: minmax(0, 1fr) 540px; }
  .reason-media,
  .reason-copy { padding: 0; }
  .reason-copy p,
  .reason-copy address { font-size: 1.6rem; }
  .reasons .outline-button--center { position: relative; width: 315px; min-height: 80px; gap: 30px; margin-top: 97px; padding: 10px 15px; border: 0; background: #fff; box-shadow: none; color: #2d2a32; font-size: 1.6rem; font-weight: 400; }
  .reasons .outline-button--center::before { content: ""; position: absolute; inset: 10px 15px; border: 1px solid #01a0e9; pointer-events: none; }
  .reasons .outline-button--center:hover { background: #fff; color: #2d2a32; }

  .message { padding-bottom: 59px; }
  .message-card { width: min(1200px, calc(100% - 48px)); min-height: 0; padding: 97px 65px 110px; }
  .message .section-en { color: #01a0e9; font-family: "Times New Roman", Times, serif; font-size: 5rem; font-weight: 400; line-height: 1; }
  .message .section-label h2 { margin-top: 0; color: #2d2a32; font-size: 2rem; font-weight: 400; line-height: 2rem; }
  .message-grid { grid-template-columns: minmax(0, .92fr) minmax(0, 1fr); gap: clamp(40px, 5.1vw, 73px); margin-top: 107px; }
  .message .director-photo { width: 100%; height: auto; max-height: none; object-fit: cover; }
  .message-copy { padding-top: 16px; }
  .message-copy h3 { margin-bottom: 44px; font-size: 3.6rem; line-height: 5rem; }
  .message-copy p { color: #2d2a32; font-size: 1.8rem; line-height: 3.2rem; }
  .message .signature span { font-size: 2.1rem; font-weight: 400; line-height: 3.2rem; }
  .message .signature strong { font-size: 2.8rem; font-weight: 400; line-height: 3.2rem; }
  .message .signature small { font-size: 2rem; line-height: 3.2rem; }
  .message-bottom { grid-template-columns: 558px 240px; gap: 44px; width: 842px; max-width: 100%; margin: 100px auto 0; }
  .message-bottom img { width: 558px; }
  .message-bottom .outline-button { position: relative; width: 240px; min-height: 80px; gap: 34px; padding: 10px 11px; border: 0; background: #f2f7f1; box-shadow: none; color: #2d2a32; font-size: 1.8rem; font-weight: 400; }
  .message-bottom .outline-button::before { content: ""; position: absolute; inset: 10px 11px; border: 1px solid #01a0e9; pointer-events: none; }
  .message-bottom .outline-button:hover { background: #f2f7f1; color: #2d2a32; }

  .blog .section-en { color: #01a0e9; font-family: "Times New Roman", Times, serif; font-size: 5rem; font-weight: 400; line-height: 1; }
  .blog .section-label h2 { margin-top: 1.2rem; color: #2d2a32; font-size: 2rem; font-weight: 400; line-height: 2rem; }
  .blog-archive .section-label h1,
  .blog-single-kicker { margin-top: 1.2rem; color: #2d2a32; font-size: 2rem; line-height: 2rem; }
  .blog-grid { grid-template-columns: repeat(2, 1fr); gap: 30px 58px; margin-top: 96px; }
  .blog-card { grid-template-columns: 153px minmax(0, 1fr); gap: 32px; }
  .blog-card img { width: 153px; height: 155px; aspect-ratio: auto; }
  .blog-archive .blog-card--no-image { grid-template-columns: 153px minmax(0, 1fr); }
  .blog-archive .blog-card-image-placeholder { width: 153px; height: 155px; aspect-ratio: auto; }
  .blog-meta { margin-bottom: 10px; }
  .blog:not(.blog-archive):not(.blog-single) .post-category { display: inline-flex; width: 89px; height: 22px; align-items: center; justify-content: center; padding: 0; font-size: 1.4rem; font-weight: 400; line-height: 1; }
  .blog-meta time { color: #2d2a32; font-size: 1.4rem; }
  .blog-card :is(h2, h3) { font-size: 2rem; line-height: 1.5; }
  .blog-card p { font-size: 1.3rem; line-height: 1.55; }
  .blog .outline-button--center { position: relative; width: 315px; min-height: 80px; gap: 30px; margin-top: 96px; padding: 10px 15px; border: 0; background: #fff; box-shadow: none; color: #2d2a32; font-size: 1.6rem; font-weight: 400; }
  .blog .outline-button--center::before { content: ""; position: absolute; inset: 10px 15px; border: 1px solid #01a0e9; pointer-events: none; }
  .blog .outline-button--center:hover { background: #fff; color: #2d2a32; }
  .clinic { padding: 100px 0 123px; }
  .clinic .section-en { color: #01a0e9; font-family: "Times New Roman", Times, serif; font-size: 5rem; font-weight: 400; line-height: 1; }
  .clinic .section-label h2 { margin-top: 1.2rem; color: #2d2a32; font-size: 2rem; font-weight: 400; line-height: 2rem; }
  .clinic-grid { margin-top: 80px; }
  .clinic-details h3 { font-size: 2.4rem; }
  .clinic-details h4 { font-size: 1.8rem; }
  .clinic-details p,
  .clinic-details address { font-size: 1.7rem; }
  .clinic-tel,
  .clinic-tel a { font-size: 1.8rem; }
  .access-note { font-size: 1.5rem !important; }
  .access-video { font-size: 1.7rem; }
  .clinic-hours { width: 541px; background: #fff; border: 1px solid #d7d7d7; box-shadow: 2px 2px 0 rgba(45, 42, 50, .25); }
  .clinic-hours table { table-layout: fixed; }
  .clinic-hours th.clinic-hours-title { width: 14rem; font-size: 1.8rem; }
  .clinic-hours th,
  .clinic-hours td { border-bottom-color: #2d2a32; border-bottom-width: 2px; font-size: 1.7rem; }
  .clinic-hours tbody th:first-child { padding-right: 1rem; text-align: right; }
  .clinic-hours tbody tr:last-child th,
  .clinic-hours tbody tr:last-child td { border-bottom: 0; }
  .clinic-hours p { font-size: 1.5rem; }
  .notice-box { padding: 48px 100px 45px; }
  .notice-box h3 { font-size: 2.6rem; }
  .notice-box p { font-size: 1.7rem; }

  /* .subpage .site-header,
  .subpage .site-logo { height: 101px; } */
  .subpage .subpage-hero,
  .subpage .subpage-hero__inner { min-height: 320px; }
  .subpage .subpage-hero__inner { grid-template-columns: 300px 1fr; gap: 30px; }
  .subpage .toc-card__en { font-size: 4.6rem; }
  .subpage .toc-card h2 { font-size: 1.6rem; }
  .subpage .toc-card a { padding-left: 34px; }
  .subpage .toc-card a::before { width: 22px; height: 22px; }
  .surgery-method.surgery-method--numbered h3 { font-size: 2.4rem; }
  .surgery-method.surgery-method--numbered h3 span { font-size: 2.2rem; }
  .subpage .subpage-section--accent { padding-bottom: 247px; }
  .qa-section + .reservation-cta { padding-bottom: 72px; }
  .subpage .site-footer { padding-top: 120px; }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .hero-slide {
    background-position: calc(100% + clamp(0px, calc(296px - 25vw), 70px)) center;
  }
  .hero-copy { width: min(52vw, 620px); }
  .hero h1 {
    font-size: clamp(3.4rem, 3.6vw, 4.3rem);
    letter-spacing: .035em;
  }
  .hero-title-detail { font-size: .82em; }
  .hero-highlight {
    width: 100%;
    padding: 18px clamp(20px, 2.4vw, 30px);
  }
  .hero-highlight p { font-size: clamp(1.8rem, 2.0vw, 2.3rem); }
  .hero-highlight-number { font-size: clamp(2.7rem, 2.7vw, 3.2rem); }
  .hero-diseases { margin-top: 24px; }
  .hero-diseases span { font-size: clamp(1.7rem, 1.8vw, 2rem); }
  .hero-diseases p {
    font-size: clamp(1.4rem, 1.65vw, 1.7rem);
    letter-spacing: .04em;
  }
}

@media (max-width: 900px) {
  .hero {
    min-height: 480px;
    background-color: #edf3f0;
  }
  .hero::after { background-image: linear-gradient(180deg, #fff 0%, #fff 35%, rgba(255, 255, 255, .96) 44%, rgba(255, 255, 255, .68) 53%, rgba(255, 255, 255, .28) 61%, rgba(255, 255, 255, 0) 66%); }
  .hero-slide { background-color: #edf3f0; background-size: cover; background-position: 75% center; }
  .hero-inner { width: 100%; min-height: 480px; padding: 14px 16px 0; }
  .hero-copy { width: 100%; }
  .hero-kicker { font-size: clamp(1.6rem, 4.3vw, 1.8rem); }
  .hero h1 { margin-bottom: 7px; font-size: clamp(2.6rem, 7.8vw, 3.1rem); line-height: 1.35; }
  .hero-title-detail { font-size: .82em; }
  .hero-highlight { width: min(calc(100% - 16px), 430px); margin: auto; padding: 7px 10px; box-shadow: 5px 5px 0 rgba(115, 79, 0, .42); }
  .hero-highlight p { font-size: clamp(1.2rem, 3.5vw, 1.5rem); line-height: 1.5; }
  .hero-highlight-number { font-size: 2.1rem; }
  .hero-diseases { margin-top: 8px; }
  .hero-diseases span { margin: 0; padding: 0 16px; font-size: 1.45rem; }
  .hero-diseases p { padding-top: 3px; border-top-width: 2px; font-size: 1.45rem; line-height: 1.45; }
  .hero-features { left: 14px; right: 14px; grid-template-columns: repeat(2, 1fr); }
  .hero-features > div,
  .hero-features > div + div { height: auto; gap: 0; margin-top: 0; padding: 0; background: transparent; }
  .hero-feature-image { display: block; width: 100%; height: auto; }
  .hero-features .feature-icon,
  .hero-features > div > p { display: none; }
  .feature-icon { position: static; width: 36px; height: 36px; font-size: 1.7rem; flex-shrink: 0; background: #fff; color: var(--navy); box-shadow: none; transform: none; }
  .hero-features p { font-size: 1rem; line-height: 1.4; }

  .news { padding: 17px 0 20px; }
  .news-inner { grid-template-columns: 90px minmax(0, 1fr); align-items: start; column-gap: 16px; row-gap: 8px; }
  .news .section-label { grid-column: 1; grid-row: 1; }
  .news-list { grid-column: 2; grid-row: 1; min-width: 0; }
  .news-list li { grid-template-columns: 66px minmax(0, 1fr); gap: 5px; padding: 5px 0; }
  .news-list a { min-width: 0; overflow-wrap: anywhere; }
  .news-list time { font-size: 1rem; }
  .news-inner .outline-button { grid-column: 1 / -1; grid-row: 2; justify-self: center; min-height: 34px; margin: 6px 0 12px; padding: 5px 18px; font-size: 1.1rem; }
  .news-inner .outline-button { position: relative; border: 0; background: #fff; box-shadow: none; color: var(--ink); font-weight: 400; }
  .news-inner .outline-button::before { content: ""; position: absolute; inset: 4px 6px; border: 1px solid var(--blue); pointer-events: none; }
  .outline-button, .small-button { min-height: 50px; padding: 10px 26px; }
  .outline-button > span, .small-button > span { width: 14px; height: 14px; }
  .news-inner .outline-button > span { width: 10px; height: 10px; }

  .concerns { padding: 42px 0 50px; }
  .lined-heading { margin-bottom: 28px; font-size: clamp(2.2rem, 6.3vw, 2.7rem); line-height: 1.35; }
  .lined-heading span:not(.number-em) { display: block; }
  .lined-heading::before, .lined-heading::after { height: 8px; }
  .lined-heading::before { right: calc(50% + 145px); }
  .lined-heading::after { left: calc(50% + 145px); }
  .check-list { margin-bottom: 28px; }
  .check-list li { padding-left: 34px; margin: 13px 0; font-size: 1.3rem; line-height: 1.6; }
  .check-list li::before { width: 21px; height: 18px; }
  .check-list small { font-size: 1.1rem; }
  .concerns-note { margin-bottom: 24px; font-size: 1.3rem; line-height: 1.65; }
  .concerns-answer { padding: 23px 12px; }
  .concerns-answer p { font-size: 1.4rem; }
  .concerns-answer-lead strong { font-size: 1.9rem; }
  .concerns-answer-sub { display: block; margin-top: 8px !important; font-size: 1.2rem !important; line-height: 1.5; }
  .concerns-answer-sub strong { font-size: 1.4rem; }

  .treatment-grid { grid-template-columns: 1fr; gap: 30px; }
  .treatment-card { min-height: 0; padding: 30px 32px 32px; }
  .treatment-card h3 { font-size: 2.2rem; }
  .treatment-card img { height: 150px; }
  .treatment-card p { font-size: 1.5rem; }
  .treatment-card .small-button { font-size: 1.3rem; }

  .reason-list { gap: 30px; }
  .reason-card, .reason-card--reverse { grid-template-columns: 1fr; }
  .reason-card--reverse .reason-media { order: 0; }
  .reason-media { padding: 24px 24px 0; }
  .reason-media img { aspect-ratio: 543 / 363; }
  .reason-copy { padding: 30px 28px 26px; }
  .reason-copy p,
  .reason-copy address { font-size: 1.4rem; line-height: 2; }
  .video-link { margin-top: 65px; padding: 0; }

  .message-card { padding: 55px 26px; }
  .message-grid { grid-template-columns: 1fr; gap: 35px; margin-top: 45px; }
  .message .director-photo { width: 244px; margin-inline: auto; max-height: none; }
  .message-copy h3 { font-size: 2.6rem; }
  .message-copy p { font-size: 1.4rem; }
  .message-bottom { grid-template-columns: 1fr; gap: 28px; }
  .message-bottom .outline-button { margin-inline: auto; }
  .message-bottom .outline-button,
  .blog .outline-button--center,
  .reasons .outline-button--center { position: relative; border: 0; background: #fff; box-shadow: none; color: #2d2a32; font-weight: 400; }
  .message-bottom .outline-button,
  .message-bottom .outline-button:hover { background: #f2f7f1; }
  .message-bottom .outline-button::before,
  .blog .outline-button--center::before,
  .reasons .outline-button--center::before { content: ""; position: absolute; inset: 7px 9px; border: 1px solid var(--blue); pointer-events: none; }

  .blog-grid { grid-template-columns: 1fr; gap: 28px; margin-top: 45px; }
  .blog-card { grid-template-columns: 120px 1fr; gap: 18px; }
  .blog-card img { width: 120px; }
  .blog-archive .blog-card--no-image { grid-template-columns: 120px minmax(0, 1fr); }
  .blog-archive .blog-card-image-placeholder { width: 120px; height: auto; aspect-ratio: 1; }
  .blog-card :is(h2, h3) { font-size: 1.5rem; }
  .blog-card p { -webkit-line-clamp: 2; font-size: 1.1rem; }

  .clinic-grid { grid-template-columns: 1fr; gap: 38px; margin-top: 48px; }
  .clinic-details { display: contents; }
  .clinic-identity, .clinic-extra, .clinic-hours { min-width: 0; }
  .clinic-identity { order: 1; }
  .clinic-hours { order: 2; }
  .clinic-extra { order: 3; }
  .access-images { order: 4; }
  .clinic-map { order: 5; }
  .access-images { gap: 18px; }
  .clinic-hours table { table-layout: fixed; }
  .clinic-hours tbody th:first-child { text-align: right; }
  .notice-box { margin-top: 55px; padding: 32px 24px; }

}

@media (min-width: 521px) and (max-width: 900px) {
  .hero,
  .hero-inner {
    min-height: clamp(680px, 78vw, 710px);
  }

  .hero::after {
    background-image: linear-gradient(180deg, #fff 0, #fff 260px, rgba(255, 255, 255, .9) 310px, rgba(255, 255, 255, .55) 335px, rgba(255, 255, 255, .2) 360px, rgba(255, 255, 255, 0) 390px);
  }
  .hero-slide--doctor { background-image: url("../images/hero-doctor-tablet.png"); background-position: 61% 260px; }
  .hero-slide--photo { top: 260px; background-position: center; }

  .hero-action-stack {
    position: absolute;
    z-index: 4;
    right: auto;
    bottom: 14px;
    left: 50%;
    display: grid;
    width: min(700px, calc(100% - 32px));
    gap: 14px;
    transform: translateX(-50%);
  }


  .hero-action-stack .hero-features {
    position: static;
    right: auto;
    bottom: auto;
    left: auto;
    justify-self: center;
    width: min(481px, 100%);
    gap: 14px;
  }
}

@media (max-width: 520px) {
  .hero {
    min-height: 720px;
  }
  .hero::after { background-image: linear-gradient(180deg, #fff 0, #fff 280px, rgba(255, 255, 255, .96) 330px, rgba(255, 255, 255, .68) 355px, rgba(255, 255, 255, .28) 380px, rgba(255, 255, 255, 0) 405px); }
  .hero-slide--doctor { background-image: url("../images/hero-doctor-sp.png"); background-size: auto clamp(475px, 105vw, 560px); background-position: center 285px; }
  .hero-slide--photo { top: 285px; background-position: center; }
  .hero-slide--photo[data-src$="/slide_02.jpg"] { background-position: right center; }
  .hero-slide--photo[data-src$="/slide_05.jpg"] { background-position: 70% center; }
  .hero-slide--photo.has-responsive-image { background-position: center; }
  .hero::before { display: none; }
  .hero-inner { min-height: 720px; }
  .hero-highlight { width: min(360px, calc(100% - 32px)); padding-block: 12px 13px; }
  .hero-highlight p { font-size: 1.5rem; letter-spacing: .06em; }
  .hero-diseases { width: calc(100% - 10px); margin: 18px auto 0; }
  .hero-diseases span { font-size: clamp(1.45rem, 4vw, 1.55rem); font-weight: 700; letter-spacing: .12em; }
  .hero-diseases p { font-size: clamp(1.25rem, 3.75vw, 1.45rem); letter-spacing: .01em; white-space: nowrap; }
  .hero-action-stack { position: absolute; z-index: 4; right: 20px; bottom: 12px; left: 20px; display: grid; gap: 12px; }
  .hero-action-stack .hero-features { position: static; width: 100%; gap: 13px; }
  .hero-features > div,
  .hero-features > div + div { height: auto; margin-top: 0; padding: 0; background: transparent; }
  .feature-icon { position: absolute; left: 50%; top: -32px; width: 66px; height: 66px; background: var(--navy); color: #fff; box-shadow: 0 0 0 3px #fff; transform: translateX(-50%); }
  .feature-icon svg { width: 38px; height: 38px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; }
  .hero-features p { text-align: center; }
  .news-inner { grid-template-columns: 90px minmax(0, 1fr); column-gap: 14px; row-gap: 8px; }
  .news { padding-top: 16px; padding-bottom: 2px; }
  .news .section-en { font-size: 3rem; }
  .news .section-label h2 { font-size: 1.2rem; }
  .news-inner .outline-button { width: 108px; min-height: 32px; padding: 4px 10px; font-size: .9rem; }
  .concerns { padding-top: 46px; padding-bottom: 53px; }
  .lined-heading > .heading-mark { display: inline; }
  .concerns .lined-heading { margin-bottom: 34px; }
  .check-list { width: calc(100% - 28px); }
  .check-list li { padding-left: 26px; }
  .check-list li::before { width: 18px; height: 15px; background-color: transparent; }
  .check-list::after { width: 130px; height: 27px; margin-top: 32px; margin-bottom: 8px; }
  .concerns-note { margin-bottom: 25px; }
  .concerns-note > strong { margin: 6px -8px 2px; font-size: 2.2rem; }
  .concerns-answer { width: calc(100% - 4px); margin-inline: auto; }
  .treatment { height: auto; padding-top: 51px; padding-bottom: 62px; }
  .treatment .lined-heading { margin-bottom: 52px; }
  .treatment .container { width: calc(100% - 42px); }
  .treatment-grid { gap: 24px; }
  .treatment-card { width: 100%; padding: 30px 28px 16px; }
  .treatment-card h3 { margin-bottom: 20px; }
  .treatment-card h3 { line-height: 1.4; }
  .treatment-card img { height: 142px; margin-bottom: 23px; }
  .treatment-card p { margin-bottom: 17px; line-height: 1.9; }
  .treatment-card .small-button { width: 177px; min-height: 50px; padding: 7px 18px; }
  .treatment-card .small-button span { width: 14px; height: 14px; overflow: visible; border: 0; }
  .reasons { padding-top: 65px; padding-bottom: 95px; }
  .reasons .container { width: calc(100% - 32px); }
  .reasons .lined-heading { margin-bottom: 26px; font-size: 2.7rem; }
  .reason-list { gap: 0; }
  .reason-card:nth-child(1) { margin-bottom: 36px; }
  .reason-card:nth-child(2) { margin-bottom: 34px; }
  .reason-card:nth-child(3) { margin-bottom: 32px; }
  .reason-card:nth-child(4) { margin-bottom: 31px; }
  .reason-card:nth-child(5) { margin-bottom: 30px; }
  .reason-card { min-height: 0; box-shadow: none; }
  .reason-media { padding: 27px 34px 0; }
  .reason-copy { padding: 21px 22px 27px; }
  .reason-copy p { margin-bottom: .5rem; font-size: 1.4rem; line-height: 2; }
  .reason-copy address { font-size: 1.4rem; line-height: 2; }
  .reason-card:nth-child(1) .reason-copy p { margin-bottom: .5rem; font-size: 1.4rem; line-height: 2; }
  .reason-card:nth-child(4) .reason-copy p { margin-bottom: 0; font-size: 1.4rem; line-height: 2; }
  .reason-card:nth-child(1) .reason-copy { padding-bottom: 25px; }
  .reason-card:nth-child(3) .reason-copy { padding-bottom: 11px; }
  .reason-card:nth-child(4) { min-height: 410px; }
  .reason-card:nth-child(4) .reason-copy { padding-bottom: 22px; }
  .reason-card:nth-child(4) .reason-copy p:last-child { margin-bottom: 0; }
  .reason-card:nth-child(6) .reason-copy { padding-bottom: 57px; }
  .video-link { margin-top: 92px; padding: 0; background: transparent; box-shadow: none; }
  .reasons .outline-button--center { width: 175px; min-height: 54px; gap: 16px; margin-top: 39px; padding: 7px 9px; font-size: 1.3rem; }
  .reasons { padding-bottom: 25px; }
  .message { padding-top: 31px; padding-bottom: 85px; }
  .message-card { padding: 36px 32px 30px; }
  .message .section-label h2 { margin-top: 2px; line-height: 1; }
  .message-grid { gap: 25px; margin-top: 21px; }
  .message-copy h3 { margin-bottom: 24px; font-size: 2.3rem; font-weight: 400; line-height: 1.55; }
  .message-copy p { font-size: 1.4rem; line-height: 1.85; }
  .message .signature { padding-top: 9px; border-top: 0; }
  .message .signature span { width: fit-content; padding-bottom: 5px; border-bottom: 1px solid #01a0e9; color: #163d9e; }
  .message .signature strong { font-size: 2.3rem; font-weight: 400; }
  .message .signature small { font-size: 1.2rem; }
  .message-bottom .outline-button { width: 150px; min-height: 54px; gap: 16px; padding: 7px 9px; font-size: 1.3rem; }
  .blog { height: auto; }
  .blog-archive .section-label h1,
  .blog-single-kicker { margin-top: 2px; font-size: 1.2rem; line-height: 1; }
  .blog-grid { gap: 18px; margin-top: 39px; }
  .blog-pagination { margin-top: 42px; }
  .blog-pagination ul.page-numbers { gap: 6px; }
  .blog-pagination ul.page-numbers li > a,
  .blog-pagination ul.page-numbers li > span { min-width: 38px; min-height: 38px; padding: 5px 8px; font-size: 1.1rem; }
  .blog .outline-button--center { width: 175px; min-height: 54px; gap: 16px; margin-top: 38px; padding: 7px 9px; font-size: 1.3rem; }
  .clinic { height: auto; min-height: 2069px; padding: 60px 0 81px; }
  .clinic > .container { width: min(1030px, calc(100% - var(--subpage-inline-space))); }
  .clinic-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 29px; }
  .clinic-identity h3 { color: var(--navy); font-weight: 700; }
  .clinic-tel, .clinic-tel a { color: var(--ink); font-weight: 700; }
  .clinic-hours { width: 100%; height: 194px; padding: 0 20px 18px; background: #fff; border: 0; border-right: 1px solid #aab3b1; border-bottom: 1px solid #aab3b1; }
  .site-footer .hours-card--footer { width: 100%; margin-inline: auto; justify-self: center; }
  .clinic-hours th.clinic-hours-title { width: 9.5rem; padding: 6px 3px; border: 0; color: var(--blue); text-align: center; }
  .clinic-hours th, .clinic-hours td { padding-block: 6px; font-size: 1.1rem; }
  .clinic-hours tbody th:first-child { width: 9.5rem; padding-right: .8rem; text-align: right; }
  .clinic-hours p { margin-top: 11px; font-size: 1.1rem; line-height: 1.65; }
  .clinic-details h4 { margin-top: 18px; padding: 1px 15px; background: #fff; border: 1px solid var(--blue); color: var(--ink); font-size: 1.5rem; line-height: 1.5; }
  .clinic-extra h4:not(:first-child) { margin-top: 50px; }
  .clinic-details p, .clinic-details address { margin-bottom: 8px; font-size: 1.4rem; line-height: 1.7; }
  .clinic-hours { padding-block: 17px; }
  .clinic .access-images { width: 100%; gap: 18px; justify-self: center; }
  .clinic .access-video { width: 100%; max-width: 100%; margin-inline: auto; justify-self: center; font-size: 1.4rem; }
  .access-images img { width: 100%; height: auto; object-fit: cover; }
  .clinic .clinic-map { display: block; width: 100%; max-height: 300px; margin-inline: auto; justify-self: center; }
  .notice-box { position: relative; left: 50%; width: calc(100vw - 32px); margin-left: 0; padding: 36px 28px; transform: translateX(-50%); }
  .section-en { font-size: 2.8rem; }
  .section-label h2 { font-size: 1.2rem; }
  .news-list a { font-size: 1.2rem; }
  .treatment-card { padding-inline: 28px; }
  .message-card { width: calc(100% - 32px); padding-inline: 29px; }
  .message .director-photo { width: 244px; }
  .blog-card { grid-template-columns: 88px 1fr; gap: 18px; }
  .blog-card img { width: 88px; }
  .blog-archive .blog-card--no-image { grid-template-columns: 88px minmax(0, 1fr); }
  .blog-archive .blog-card-image-placeholder { width: 88px; height: auto; aspect-ratio: 1; }
  .blog-meta { align-items: center; flex-direction: row; gap: 5px; margin-bottom: 6px; }
  .blog:not(.blog-archive):not(.blog-single) .post-category { padding: 2px 8px; font-size: 1rem; }
  .blog-meta time { color: #2d2a32; font-size: 1rem; white-space: nowrap; }
  .blog-card :is(h2, h3) { color: var(--navy); font-size: 1.3rem; font-weight: 400; }
  .blog-card p { font-size: 1rem; line-height: 1.55; }
  .access-images { grid-template-columns: 1fr; }
}

/* Concept page components */
.concept-greeting-layout { display: grid; grid-template-columns: minmax(250px, 26%) minmax(0, 1fr); gap: 32px; align-items: start; margin-top: 20px; }
.content-figure.concept-director-card { margin: 0; text-align: center; }
.content-figure.concept-director-card figcaption { margin-top: 20px; }
.concept-director-role { display: block; color: var(--ink); font-size: 1.6rem; line-height: 1.8; }
.concept-director-name-line { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 0 10px; margin-top: 2px; font-weight: 700; }
.concept-director-name { color: var(--ink); font-size: 3rem; line-height: 1.5; }
.concept-director-name-en { color: #939393; font-size: 1.6rem; line-height: 1.5; }
.concept-greeting .concept-greeting-copy .concept-greeting-heading { margin: 0 0 32px; color: var(--ink); font-size: 3rem; font-weight: 700; line-height: 1.5; }
.concept-greeting-heading span { color: var(--navy); }
.concept-greeting-copy p { margin: 0 0 30px; }
.concept-greeting-copy p:last-child { margin-bottom: 0; }
.subpage-section.concept-philosophy .subpage-section__inner > p { text-align: center; font-size: 2.4rem; font-weight: 700; line-height: 2; }
.subpage-section.concept-features > .concept-feature-list { width: 100%; max-width: none; margin: 0; }
.concept-feature-row--tinted { background: #faf7f5; }
.concept-feature-inner { display: flex; width: min(1000px, 90%); margin: 0 auto; padding: 60px 0; align-items: center; justify-content: space-between; }
.concept-feature-row:nth-child(even) .concept-feature-inner { flex-direction: row-reverse; }
.concept-feature-copy { width: 55%; }
.concept-features .concept-feature-row .concept-feature-copy h3 { margin: 0 0 20px; color: var(--ink); font-size: 2.4rem; font-weight: 700; line-height: 2; }
.concept-features .concept-feature-row .concept-feature-copy p { margin: 0; color: var(--ink); font-size: 1.6rem; line-height: 2; }
.concept-feature-image { width: 40%; margin: 0; text-align: center; }
.concept-feature-image img,
.concept-greeting .concept-profile-table { display: table; width: 100%; margin: 100px 0 0; border-collapse: collapse; background: transparent; font-size: 1.6rem; line-height: 2; }
.concept-greeting .concept-profile-table th,
.concept-greeting .concept-profile-table td { min-width: 0; padding: 0; border: 0; background: transparent; color: var(--ink); vertical-align: top; }
.concept-greeting .concept-profile-table th { width: 10%; font-size: 1.76rem; font-weight: 700; white-space: nowrap; }
.concept-greeting .concept-profile-table td { width: 40%; }
.concept-greeting .concept-profile-table th:first-child { text-align: left; }
.concept-greeting .concept-profile-table th:first-child,
.concept-greeting .concept-profile-table td:nth-child(2) { padding-right: 30px; }
.concept-greeting .concept-profile-table th:nth-child(3) { padding-right: 20px; padding-left: 20px; border-left: 1px solid #051b71; text-align: left; }
.concept-infection-image img { display: block; max-width: 100%; height: auto; margin: 0 auto; border-radius: 10px; }
.concept-infection-card { box-sizing: border-box; width: min(900px, 90%); margin: 0 auto 100px; padding: 50px 100px; border-radius: 10px; background: #faf7f5; }
.concept-infection-title { margin: 0 0 30px; color: var(--ink); font-family: var(--sans); font-size: 3rem; font-weight: 700; line-height: 1.5; text-align: left; }
.concept-infection-layout { display: flex; align-items: center; justify-content: space-between; }
.concept-infection-copy { width: 55%; }
.concept-infection-copy p { margin: 0; color: var(--ink); font-size: 1.6rem; line-height: 2; }
.concept-infection-image { width: 40%; margin: 0; }

@media (max-width: 900px) {
  .concept-greeting-layout { grid-template-columns: 1fr; gap: 36px; margin-top: 0; }
  .content-figure.concept-director-card { width: min(320px, 84%); margin-inline: auto; }
  .content-figure.concept-director-card figcaption { margin-top: 10px; }
  .concept-director-role,
  .concept-director-name-en { font-size: 1.5rem; }
  .concept-director-name { font-size: 2.2rem; }
  .concept-greeting .concept-greeting-copy .concept-greeting-heading { margin-bottom: 26px; font-size: 2.2rem; }
  .concept-greeting-copy p { margin-bottom: 20px; }
  .concept-greeting .concept-profile-table { margin-top: 50px; }
  .subpage-section.concept-philosophy .subpage-section__inner > p { font-size: 1.8rem; }
  .concept-feature-inner,
  .concept-feature-row:nth-child(even) .concept-feature-inner { flex-direction: column; gap: 20px; padding: 40px 0; }
  .concept-feature-copy,
  .concept-feature-image { width: 100%; }
  .concept-features .concept-feature-row .concept-feature-copy h3 { margin-bottom: 14px; font-size: 1.8rem; }
  .concept-features .concept-feature-row .concept-feature-copy p { font-size: 1.5rem; }
  .concept-greeting .concept-profile-table { display: block; }
  .concept-greeting .concept-profile-table th,
  .concept-greeting .concept-profile-table td { display: block; width: 100%; padding: 10px !important; }
  .concept-greeting .concept-profile-table th { font-size: 1.65rem; white-space: normal; }
  .concept-greeting .concept-profile-table th:nth-child(3) { margin-top: 10px; border-top: 1px solid #051b71; border-left: 0; }
  .concept-infection-card { padding: 20px; }
  .concept-infection-title { text-align: center; font-size: 2.2rem; }
  .concept-infection-layout { flex-direction: column; gap: 20px; }
  .concept-infection-image, .concept-infection-copy { width: 100%; }
}

/* ----------------------------------------
   鼠径ヘルニア下層ページ
---------------------------------------- */
.article-container { width: min(var(--subpage-content-max), calc(100% - var(--subpage-inline-space))); }
.subpage-hero { position: relative; overflow: hidden; min-height: 330px; background: #f4f3fb; }
.subpage-hero::before { display: none; }
.subpage-hero__inner { position: relative; z-index: 1; min-height: 330px; display: grid; grid-template-columns: 300px 1fr; gap: 30px; align-items: center; }
.subpage-title { align-self: stretch; position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: center; padding-left: 20px; }
.subpage-title__en { position: absolute; z-index: 0; left: -40px; top: -28px; margin: 0; color: rgba(255,255,255,.9); font-size: 19rem; font-weight: 700; line-height: .92; letter-spacing: -.05em; pointer-events: none; }
.subpage-title__en--single-line { top: 50%; transform: translateY(-50%); }
.subpage-title h1 { position: relative; z-index: 1; margin: 0; font-style: italic; font-weight: 700; letter-spacing: .08em; }
.subpage-lead { position: relative; z-index: 1; padding: 40px 0; }
.subpage-lead p { margin: 0; font-size: 1.6rem; font-weight: 700; line-height: 1.8; }
.toc-card { position: relative; z-index: 2; width: min(1050px, calc(100% - var(--subpage-inline-space))); height: auto; margin-block: 80px; padding: 56px 72px; border: 1px solid var(--blue); background: #fff; box-shadow: inset 0 0 0 10px #fff, inset 0 0 0 11px var(--blue); }
.toc-card__en { margin: 0; text-align: center; line-height: 1; }
.toc-card h2 { margin: 5px 0 28px; text-align: center; letter-spacing: .2em; }
.toc-card ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px 35px; margin: 0; padding: 0; list-style: none; }
.toc-card a { position: relative; display: block; padding-left: 25px; color: #203b4f; font-size: 1.6rem; font-weight: 600; }
.toc-card a::before { content: ""; position: absolute; left: 0; top: 50%; width: 13px; height: 13px; background: url("../images/toc-arrow.png") center / contain no-repeat; transform: translateY(-50%); }
.toc-card a::after { display: none; }
.toc-card a:hover { color: var(--blue); }
.subpage-section { padding-block: var(--subpage-section-space); overflow-wrap: anywhere; }
.subpage-section--tint { background: #f3f4fb; }
.subpage-section--accent { position: relative; z-index: 1; overflow: visible; padding: 145px 0 155px; background: #f6f5fc; }
.subpage-section--accent::before, .subpage-section--accent::after { content: ""; position: absolute; width: 320px; height: 250px; background: #bfc0e5; }
.subpage-section--accent::before { left: 0; top: -55px; clip-path: polygon(0 0, 100% 0, 81% 100%, 0 100%); }
.subpage-section--accent::after { right: 0; bottom: -75px; clip-path: polygon(19% 0, 100% 0, 100% 100%, 0 100%); }
.subpage-section-title { position: relative; z-index: 0; width: fit-content; max-width: 100%; margin: 0 auto 72px; color: var(--navy); font-size: 3.6rem; font-weight: 700; line-height: 1.5; letter-spacing: .08em; text-align: center; }
.subpage-section-title--content { max-width: min(var(--subpage-content-max), calc(100% - var(--subpage-inline-space))); }
.subpage-section-title::before { content: ""; position: absolute; z-index: -1; left: -70px; right: -70px; bottom: .7rem; height: 2rem; background: #d8f0f1; }
.subpage-section-title.heading-lines::before { display: none; }
.topic-block + .topic-block { margin-top: 65px; }
.topic-heading { width: fit-content; margin: 60px 0 32px; padding: 8px 42px 8px 36px; background: var(--blue); color: #fff; clip-path: polygon(5% 0, 100% 0, 95% 100%, 0 100%); font-size: 2.4rem; font-weight: 700; line-height: 1.4; letter-spacing: .05em; }
.topic-block > p { margin: 0 0 0 92px; font-size: 1.6rem; line-height: 2.1; }
.hernia-type-list { margin: 0 0 50px; padding-left: 122px; }
.hernia-type-list li { padding-left: 5px; margin: 25px 0; font-size: 2rem; }
.hernia-type-list strong { color: var(--ink); font-size: 2rem; }
.hernia-type-list p { margin: 5px 0 0; font-size: 1.6rem; }
.hernia-types-image { width: min(725px, 100%); margin: 25px auto 0; }
.content-media-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); gap: 30px 48px; align-items: start; }
.content-media-row--wide { grid-template-columns: minmax(0, 55%) minmax(0, 40%); gap: 5%; }
.content-figure { margin: 0; text-align: center; }
.content-figure img { display: block; width: 100%; height: auto; margin-inline: auto; border-radius: 10px; }
.content-figure figcaption { margin-top: 8px; text-align: center; }
.suisyu-types-block { margin-top: 25px; }
.suisyu-types-copy { min-width: 0; }
.suisyu-types-copy h4:first-child { margin-top: 0; }
.suisyu-types-figure { width: 100%; }
.suisyu-types-figure figcaption { margin-top: 8px; text-align: center; font-size: 1.4rem; }
.suisyu-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 48px; align-items: start; }
.suisyu-media-grid--devices { margin-top: 35px; margin-bottom: 55px; }
.suisyu-media-grid--steps { margin-top: 55px; }
.suisyu-media-grid--devices .suisyu-media-card img { width: min(417px, 100%); }
.suisyu-media-card figcaption { margin-top: 12px; color: var(--ink); font-size: 1.4rem; line-height: 1.8; }
.subpage-section--content .suisyu-procedure-intro { margin-top: 40px; }

.suisyu-comparison-table thead th { background: #d9f1f7; color: #000; }
.suisyu-comparison-table thead th:first-child { background: #d9f1f7; color: var(--navy); }
.suisyu-comparison-table thead th:last-child { background: #e6e9ec　; color: var(--navy); }
.suisyu-comparison-table tbody td:first-child { font-weight: 700; }
.suisyu-comparison-table tbody tr:first-child td:last-child,
.suisyu-comparison-table tbody tr:nth-child(4) td:last-child { color: #c62828; font-weight: 700; }
.suisyu-comparison-table tbody tr:nth-child(4) td:last-child span { color: inherit; font-weight: inherit; }
.suisyu-cost-table th:first-child,
.suisyu-cost-table th:nth-child(2),
.suisyu-cost-table td:first-child,
.suisyu-cost-table td:nth-child(2) { text-align: center; vertical-align: middle; }
.suisyu-cost-table tbody td:first-child { font-weight: 700; }
.suisyu-cost-table tbody tr:first-child td:nth-child(2),
.suisyu-cost-table tbody tr:nth-child(2) td:nth-child(2) { color: var(--navy); font-weight: 700; }
.suisyu-cost-table tbody tr:nth-child(3) td:nth-child(2) { color: #c62828; font-weight: 700; }
.suisyu-cost-table tbody td:last-child span { display: inline-block; margin-top: 4px; font-size: 1.2rem; line-height: 1.5; }
.subpage-section--content > .suisyu-achievement-figure.suisyu-achievement-figure--contained { width: min(600px, calc(100% - var(--subpage-inline-space))); max-width: 600px; margin: 30px auto 0; }
.suisyu-achievement-figure img { display: block; width: 100%; height: auto; margin-inline: auto; }

.surgery-method { margin-bottom: 55px; }
.surgery-method h3 { position: relative; display: flex; overflow: hidden; width: fit-content; min-width: 340px; min-height: 45px; margin: 0 0 28px; padding-right: 32px; align-items: center; background: var(--blue); color: #fff; clip-path: polygon(12px 0, 100% 0, calc(100% - 12px) 100%, 0 100%); font-size: 2rem; line-height: 1.35; }
.higaeri-intro-video { width: min(760px, calc(100% - var(--subpage-inline-space))); margin: 85px auto 0; }
.higaeri-intro-video video { display: block; width: 100%; height: auto; }
.surgery-method.higaeri-flow-step { margin-bottom: 0; }
.surgery-method--content .surgery-method__title { font-size: 2rem; line-height: 1.5; }
.higaeri-flow-step .surgery-method__title { margin-bottom: 16px; }
.higaeri-flow-step p,
.higaeri-reason-copy p { margin: 0; }
.surgery-method.higaeri-reason-heading { margin: 60px 0 28px; }
.surgery-method.higaeri-reason-heading h3 { margin: 0; }
.higaeri-reason-row { margin-top: 30px; }
.subpage-section--content .higaeri-hotel-copy .higaeri-hotel-intro { color: var(--ink); font-size: 1.6rem; font-weight: 400; line-height: 2; }
.higaeri-hotel-map { margin-top: 40px; }
.higaeri-hotel-map iframe { display: block; width: 100%; height: 350px; border: 0; }
.higaeri-flow-row { margin-top: 60px; }
.higaeri-flow-group .higaeri-flow-row:first-child { margin-top: 0; }
.higaeri-flow-figure figcaption { color: var(--ink); font-size: 1.4rem; line-height: 1.8; }
.surgery-method h3::before { content: ""; position: absolute; z-index: 2; left: 12px; top: 0; width: 2px; height: 100%; background: var(--blue); transform: skewX(-14deg); transform-origin: top left; pointer-events: none; }
.surgery-method h3 span { width: 68px; align-self: stretch; display: grid; flex-shrink: 0; place-items: center; margin: 0 18px 0 -2px; background: #fff; border: 2px solid var(--blue); color: var(--blue); font-size: 2rem; transform: skewX(-14deg); }
.surgery-method h3 span b { position: relative; left: 4px; font-style: normal; font-weight: 700; line-height: 1; transform: skewX(14deg); }
.surgery-method__body { display: grid; grid-template-columns: 1fr 350px; gap: 70px; align-items: start; }
.surgery-method__body--text { grid-template-columns: 1fr; }
.surgery-method__body p { margin: 0; font-size: 1.6rem; line-height: 2.1; }
.surgery-method figure { margin: 0; }
.surgery-method figure img { width: 100%; }
.surgery-method figcaption { margin-top: 8px; text-align: center; font-size: 1.4rem; }
.surgery-comparison { margin: 75px auto 30px; }
.surgery-comparison__hint { display: none; }
.surgery-comparison__scroll { width: 100%; max-width: 100%; overflow-x: auto; }
.surgery-comparison__scroll:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.surgery-comparison__table { width: 100%; table-layout: fixed; border-collapse: collapse; background: #fff; font-size: 1.4rem; line-height: 1.8; }
.surgery-comparison__label-column { width: 140px; }
.surgery-comparison__table th,
.surgery-comparison__table td { padding: 10px 8px; border: 1px solid #ddd; vertical-align: middle; text-align: center; }
.surgery-comparison__table th { background: #f4f4f4; font-weight: 600; }
.surgery-comparison__table > tbody:first-of-type > tr:first-child > td { vertical-align: top; }
.surgery-comparison__table .surgery-comparison__features > td { vertical-align: top; }
.surgery-comparison__table thead th { background: #e6e9ec; color: var(--navy); }
.surgery-comparison__table thead tr:first-child th:first-child { background: #fff; }
.surgery-comparison__table thead tr:first-child th:nth-child(2) { background: #fde1cc; }
.surgery-comparison__table thead tr:first-child th:last-child { background: #d9f1f7; }
.surgery-comparison__table small { font-size: inherit; font-weight: 400; }
.surgery-comparison__table ul { margin: 0; padding-left: 1.2em; list-style: disc; text-align: left; }
.surgery-comparison__table li { list-style: disc; }
.surgery-comparison__table li + li { margin-top: .4em; }
.surgery-comparison__diagram { display: block; width: 100%; max-width: 160px; height: auto; margin: 0 auto 12px; }
.cost-note { margin: 0; text-align: center; font-size: 1.4rem; line-height: 1.8; }
.cost-note a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.selection-message { margin: 70px auto 0; padding: 38px 45px; border: 1px solid var(--blue); background: #e7f7ff; color: #2c4a5a; text-align: center; box-shadow: 0 0 0 10px #e7f7ff, 0 0 0 11px rgba(2,160,233,.45); font-size: 2.2rem; font-weight: 700; line-height: 1.8; }

.complication-group + .complication-group { margin-top: 110px; }
.complication-group .topic-heading { margin-bottom: 30px; }
.complication-panel { padding: 0 60px; background: #fff; box-shadow: none; }
.complication-intro { margin: 0 0 30px 15px; font-size: 1.6rem; }
.complication-item { display: grid; grid-template-columns: 1fr 270px; gap: 55px; align-items: center; padding: 62px 15px; }
.complication-item + .complication-item { border-top: 2px solid var(--navy); }
.complication-item--text { grid-template-columns: 1fr; }
.complication-item h4 { position: relative; margin: 0 0 14px; padding-left: 25px; color: var(--ink); font-size: 2rem; }
.complication-item h4::before { content: "■"; position: absolute; left: 0; top: 50%; color: var(--navy); font-size: 1.5rem; line-height: 1; transform: translateY(-50%); }
.complication-item p { margin: 0; font-size: 1.5rem; line-height: 2; }

.plain-article { position: relative; z-index: 1; }
.plain-article p { margin: 0 0 20px; color: var(--ink); font-size: 1.6rem; font-weight: 400; line-height: 2.15; }
.plain-article--compact p { margin-bottom: 0; }
.plain-article strong,
.follow-up-box strong { font-weight: 700; }
.follow-up-box { margin: 65px auto 0; padding: 35px 85px; border: 1px solid var(--blue); background: #e7f7ff; text-align: center; box-shadow: 0 0 0 10px #e7f7ff, 0 0 0 11px rgba(2,160,233,.45); }
.follow-up-box h3 { margin: 0 0 18px; color: var(--ink); font-size: 2.2rem; font-weight: 700; }
.follow-up-box p { margin: 0; color: var(--ink); font-size: 1.6rem; font-weight: 400; line-height: 2; }
.subpage-section--accent .article-container { position: relative; z-index: 1; }
.cost-intro { margin: 0 0 35px; font-size: 1.6rem; }
.price-table { width: min(850px, 100%); margin-inline: auto; background: transparent; border: 0; }
.price-row { display: grid; grid-template-columns: 180px 1fr; min-height: 78px; overflow: hidden; border: 1px solid var(--blue); border-radius: 22px; background: #fff; }
.price-row + .price-row { margin-top: 12px; border-top: 1px solid var(--blue); }
.price-label { display: grid; place-items: center; padding: 18px; background: var(--blue); border-right: 0; color: #fff; text-align: center; font-size: 1.5rem; font-weight: 700; white-space: nowrap; }
.price-value { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; padding: 18px 28px; text-align: left; }
.price-value strong { color: var(--ink); font-size: 1.8rem; line-height: 1.35; }
.price-value small { font-size: 1.4rem; line-height: 1.5; }
.price-caption { width: min(850px, 100%); margin: 12px auto 0; font-size: 1.6rem; }

.qa-list { width: 100%; margin-top: 30px; }
.qa-list details { margin-bottom: 14px; background: var(--navy); color: #fff; }
.qa-list summary { position: relative; min-height: 76px; display: grid; grid-template-columns: 92px 1fr 60px; align-items: center; cursor: pointer; list-style: none; font-size: 1.9rem; font-weight: 700; }
.qa-list summary,
.qa-list summary * { cursor: pointer; }
.qa-list summary::-webkit-details-marker { display: none; }
.qa-list summary::after { content: "+"; display: grid; place-items: center; align-self: stretch; font-size: 4rem; font-weight: 400; line-height: 1; border-left: 1px solid rgba(255,255,255,.35); }
.qa-list details[open] summary::after { content: "−"; }
.qa-mark { align-self: stretch; display: grid; place-items: center; background: linear-gradient(180deg, #f5a000 0%, #f56b00 100%); color: #fff; font-size: 4rem; font-weight: 700; line-height: 1; }
.qa-list summary > span:nth-child(2) { padding: 15px 32px; }
.qa-answer { display: grid; grid-template-columns: 92px 1fr; align-items: stretch; background: #fff; color: var(--ink); border: 0; }
.qa-answer .qa-mark { background: #fff; color: var(--orange); }
.qa-answer > p { margin: 0; padding: 28px 34px; font-size: 1.6rem; line-height: 2; }
.qa-answer-content { min-width: 0; padding: 28px 34px; }
.qa-answer-content p { margin: 0; font-size: 1.6rem; line-height: 2; }
.qa-answer-content ol { margin: 1.2em 0 0; padding-left: 2.2em; list-style: decimal; font-size: 1.6rem; line-height: 2; }
.qa-answer-content li + li { margin-top: .75em; }

@media (max-width: 900px) {
  .subpage-hero { min-height: 591px; }
  .subpage-hero::before { left: -30px; top: -10px; font-size: 11rem; line-height: .75; white-space: normal; }
  .subpage-hero__inner { min-height: 591px; grid-template-columns: 1fr; gap: 8px; align-content: start; padding-top: 0; }
  .subpage-title { min-height: 72px; align-items: center; padding-left: 0; text-align: center; }
  .subpage-title__en { left: 50%; top: -35px; transform: translateX(-50%); font-size: 10.2rem; white-space: nowrap; }
  .subpage-title__en--single-line { top: 50%; transform: translate(-50%, -50%); }
  .subpage-title h1 { font-size: 3.1rem; }
  .subpage-lead { padding: 0 14px 28px; }
  .subpage-lead p { margin-bottom: 10px; font-size: 1.4rem; line-height: 1.8; }
  .toc-card { margin-block: 64px; padding: 56px 28px; }
  .toc-card h2 { margin-bottom: 18px; }
  .toc-card ul { grid-template-columns: 1fr; gap: 8px; width: fit-content; margin-inline: auto; }
  .subpage-section-title { margin-bottom: 48px; font-size: 2.8rem; }
  .subpage-section-title--content { max-width: calc(100% - var(--subpage-inline-space)); }
  .subpage-section-title::before { left: -32px; right: -32px; height: 9px; }
  .topic-heading { margin: 32px 0 24px; padding: 8px 30px 8px 24px; font-size: 1.8rem; }
  .topic-block > p { margin-left: 0; }
  .topic-block > p, .hernia-type-list p { font-size: 1.5rem; line-height: 2; }
  .topic-block + .topic-block { margin-top: 40px; }
  .hernia-type-list { padding-left: 24px; }
  .hernia-type-list li { margin: 17px 0; font-size: 1.8rem; }
  .hernia-type-list strong { font-size: 1.8rem; }
  .hernia-types-image { margin-top: 22px; }
  .content-media-row--stack { grid-template-columns: 1fr; gap: 28px; }
  .higaeri-intro-video { margin-top: 40px; }
  .higaeri-flow-row { margin-top: 40px; }
  .surgery-method.higaeri-reason-heading { margin-top: 30px; }
  .higaeri-reason-row { margin-top: 20px; }
  .subpage-section--content .higaeri-hotel-copy .higaeri-hotel-intro { font-size: 1.5rem; }
  .surgery-method--content .surgery-method__title { font-size: 1.8rem; }
  .suisyu-types-block { margin-top: 22px; }
  .suisyu-types-copy h4:first-child { margin-top: 28px; }
  .suisyu-types-figure { width: min(84%, 520px); margin: 28px auto 0; }
  .suisyu-media-grid { grid-template-columns: 1fr; gap: 32px; }
  .suisyu-media-grid--devices { margin-top: 28px; margin-bottom: 45px; }
  .suisyu-media-grid--steps { margin-top: 45px; }
  .suisyu-media-card { width: min(100%, 520px); margin-inline: auto; }
  .surgery-method { margin-bottom: 52px; }
  .surgery-method h3 { width: fit-content; max-width: 100%; min-width: 0; min-height: 42px; margin-bottom: 25px; padding-right: 22px; font-size: 1.8rem; }
  .surgery-method h3 span { width: 54px; margin-right: 12px; flex-shrink: 0; font-size: 1.8rem; }
  .surgery-method__body, .surgery-method__body--text { grid-template-columns: 1fr; gap: 28px; padding-left: 0; }
  .surgery-method__body p { font-size: 1.5rem; line-height: 1.95; }
  .surgery-method figure { width: min(84%, 520px); margin-inline: auto; }
  .surgery-comparison { width: 100%; min-width: 0; margin: 55px 0 25px; }
  .surgery-comparison__hint { display: block; margin: 0 0 10px; color: var(--muted); font-size: 1.3rem; }
  .surgery-comparison__table { min-width: 800px; font-size: 1.4rem; }
  .surgery-comparison__table th,
  .surgery-comparison__table td { padding: 10px; }
  .surgery-comparison__table small { font-size: 1.2rem; }
  .cost-note { text-align: left; font-size: 1.2rem; }
  .selection-message { margin-top: 45px; padding: 30px 20px; font-size: 1.6rem; }
  .complication-panel { padding: 0 22px; }
  .complication-group + .complication-group { margin-top: 75px; }
  .complication-intro { margin-left: 0; font-size: 1.5rem; }
  .complication-item, .complication-item--text { grid-template-columns: 1fr; gap: 30px; padding: 48px 0; }
  .complication-item h4 { font-size: 1.8rem; }
  .complication-item p { font-size: 1.5rem; line-height: 2; }
  .plain-article p { font-size: 1.4rem; line-height: 2; }
  .follow-up-box { margin-top: 45px; padding: 28px 20px; }
  .plain-article p,
  .follow-up-box p { font-size: 1.5rem; }
  .follow-up-box h3 { font-size: 2rem; }
  .subpage-section--accent { padding: 172px 0 178px; }
  .subpage-section--accent::before, .subpage-section--accent::after { width: 180px; height: 115px; }
  .subpage-section--accent::before { left: 0; top: -35px; }
  .subpage-section--accent::after { right: 0; bottom: -40px; }
  .price-row { grid-template-columns: 1fr; }
  .price-label { border-right: 0; border-bottom: 1px solid var(--blue); }
  .price-value { align-items: center; padding: 25px 20px; text-align: center; }
  .price-value strong { font-size: 1.7rem; }
  .qa-list summary { min-height: 52px; grid-template-columns: 56px 1fr 44px; font-size: 1.6rem; }
  .qa-list summary > span:nth-child(2) { padding: 12px 16px; }
  .qa-list summary::after,
  .qa-mark { font-size: 3.2rem; }
  .qa-answer { grid-template-columns: 56px 1fr; }
  .qa-answer > p { padding: 21px 18px; font-size: 1.5rem; }
  .qa-answer-content { padding: 21px 18px; }
  .qa-answer-content p,
  .qa-answer-content ol { font-size: 1.5rem; }
}

@media (max-width: 520px) {
  .subpage-hero { min-height: 0; }
  .subpage-hero__inner { min-height: 0; padding-top: 0; }
  .subpage-title { min-height: 134px; }
  .subpage-title { align-items: center; padding-left: 0; }
  .subpage-title h1 { font-size: 3.2rem; }
  .subpage-title__en { top: -5px; font-size: 8.2rem; }
  .subpage-title__en--single-line { top: 50%; }
  .subpage-lead { width: calc(100% - var(--subpage-inline-space)); margin-inline: auto; padding: 0 14px 18px; }
  .subpage-lead p { font-size: 1.5rem; line-height: 2.05; letter-spacing: -.03em; }
  .toc-card { margin-block: 56px; padding: 48px 24px; }
  .toc-card h2 { margin-bottom: 31px; }
  .toc-card ul { width: auto; margin-inline: 10px; }
  .toc-card a { padding-left: 43px; }
  .toc-card a::before { top: 50%; width: 22px; height: 22px; }
  .selection-message { margin-top: 21px; }
  .subpage-section--accent { padding-top: 161px; }
  .subpage .reservation-cta { padding-bottom: 64px; }
  .subpage-section-title { max-width: 100%; }
  .subpage-section-title--content { max-width: calc(100% - var(--subpage-inline-space)); }
  .subpage-section-title::before { left: -15px; right: -15px; }
  .topic-heading { max-width: 100%; margin-left: -3px; }
  .hernia-type-list { padding-left: 11px; }
  .surgery-method h3 { font-size: 1.6rem; }
  .surgery-method h3 span { font-size: 1.6rem; }
  .higaeri-reason-heading h3 {
    width: 100%;
    padding-left: 0;
  }
  .surgery-method--numbered h3,
  .surgery-method--content h3 {
    overflow-wrap: anywhere;
    clip-path: polygon(12px 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
  }
  .surgery-method--numbered h3::before,
  .surgery-method--content h3::before {
    display: none;
  }
  .surgery-method--numbered h3 span,
  .surgery-method--content h3 span {
    margin: 2px 12px 2px 2px;
    border: 0;
    clip-path: polygon(11px 0, 100% 0, calc(100% - 11px) 100%, 0 100%);
    transform: none;
  }
  .surgery-method--numbered h3 span b,
  .surgery-method--content h3 span b {
    left: 0;
    transform: none;
  }
  .selection-message br { display: none; }
  .complication-panel { width: calc(100% + 8px); margin-left: -4px; padding-inline: 18px; }
}

/* Subpage rich-content formatting. */
.subpage-lead:empty { display: none; }
.subpage-section--content .subpage-section__inner { width: min(var(--subpage-content-max), calc(100% - var(--subpage-inline-space))); }
.subpage-section--content .subpage-section__inner > p:first-child:not(.section-eyebrow),
.subpage-section--content .subpage-section__inner > div > p:first-child:not(.section-eyebrow, .higaeri-hotel-intro) { color: var(--navy); font-size: 2.8rem; font-weight: 700; line-height: 1.5; }
.subpage-section--content p:not(.section-eyebrow),
.subpage-section--content li { color: var(--ink); font-size: 1.6rem; line-height: 2; }
.subpage-section--content ul,
.subpage-section--content ol { margin: 20px 0 30px; padding-left: 2.2em; text-indent: 1em hanging; }
.subpage-section--content li + li { margin-top: .6em; }
.subpage-section--content a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.subpage-section--content table { width: 100%; margin: 35px 0; border-collapse: collapse; background: #fff; font-size: 1.5rem; line-height: 1.8; }
.subpage-section--content th,
.subpage-section--content td { padding: 15px 17px; border: 1px solid rgba(32, 59, 79, .28); vertical-align: top; }
.subpage-section--content th { background: #e7f7ff; color: var(--navy); font-weight: 700; }
.subpage-section--content img { max-width: 100%; height: auto; }
.content-media { margin: 25px auto 35px; }
.content-media img { display: block; width: min(540px, 100%); margin-inline: auto; }
.content-media .director-photo { width: min(420px, 100%); }
.subpage-section--content blockquote { margin: 28px 0; padding: 20px 25px; border-left: 4px solid var(--blue); background: #f3f8fb; }
.subpage-section--content .container.article-container { margin-inline: auto; }

@media (max-width: 520px) {
  .subpage-section--content ul,
  .subpage-section--content ol { padding-left: 0;}
}

.generic-page { width: min(var(--subpage-content-max), calc(100% - var(--subpage-inline-space))); padding-top: 95px; padding-bottom: 120px; }
.generic-page-content { max-width: 960px; margin-inline: auto; }
.generic-page .entry-content { font-size: 1.6rem; line-height: 2; }
.generic-page .entry-content img { max-width: 100%; height: auto; }
.generic-page .entry-content table { width: 100%; border-collapse: collapse; }
.generic-page .entry-content th,
.generic-page .entry-content td { padding: 14px; border: 1px solid #d7e3e8; }
.generic-post-list { display: grid; gap: 28px; max-width: 960px; margin: 0 auto; }
.generic-post-item,
.generic-news-item { padding: 28px 32px; border: 1px solid #d7e3e8; background: #fff; }
.generic-post-item h2,
.generic-news-item h2 { margin: 0 0 12px; color: var(--navy); font-size: 2.1rem; line-height: 1.5; }
.generic-post-meta,
.generic-news-item time { color: var(--muted); font-size: 1.3rem; }
.generic-blog-grid { max-width: 960px; margin-inline: auto; }
.generic-blog-grid .blog-card { min-width: 0; }
.generic-news-list { display: grid; gap: 24px; max-width: 960px; margin: 0 auto; }
.generic-news-item p { margin: 0; font-size: 1.4rem; line-height: 1.8; }
.posts-empty { padding: 40px 0; text-align: center; }

@media (max-width: 900px) {
  .subpage-section--content .subpage-section__inner > p:first-child:not(.section-eyebrow),
  .subpage-section--content .subpage-section__inner > div > p:first-child:not(.section-eyebrow, .higaeri-hotel-intro) { font-size: 2.3rem; }
  .subpage-section--content p:not(.section-eyebrow),
  .subpage-section--content li { font-size: 1.5rem; }
  .subpage-section--content table { display: block; overflow-x: auto; white-space: normal; }
  .subpage-section--content th,
  .subpage-section--content td { min-width: 140px; padding: 12px 10px; }
  .generic-page { padding-top: 72px; padding-bottom: 90px; }
}

@media (max-width: 520px) {
  .subpage-section--content .subpage-section__inner > p:first-child:not(.section-eyebrow),
  .subpage-section--content .subpage-section__inner > div > p:first-child:not(.section-eyebrow, .higaeri-hotel-intro) { font-size: 2.1rem; }
  .subpage-section--content p:not(.section-eyebrow),
  .subpage-section--content li { font-size: 1.5rem; line-height: 1.9; }
  .generic-page { padding-top: 55px; }
  .generic-post-item,
  .generic-news-item { padding: 22px 18px; }
  .generic-post-item h2,
  .generic-news-item h2 { font-size: 1.8rem; }
}

/* Direct rich-content children share the same readable width. */
.subpage-section--content > :not(.container) {
  box-sizing: border-box;
  width: min(var(--subpage-content-max), calc(100% - var(--subpage-inline-space)));
  max-width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.subpage-section--content > .subpage-section-title--content {
  width: fit-content;
}

.subpage-section--content h2:not(.subpage-section-title, .section-eyebrow) {
  margin: 0 0 42px;
  color: var(--navy);
  font-size: 3.6rem;
  font-weight: 700;
  line-height: 1.5;
}

.subpage-section--content h3:not(.topic-heading, .surgery-method__title) {
  margin: 38px 0 16px;
  color: var(--navy);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
}

.subpage-section--content h4:not(.minor-heading) {
  margin: 28px 0 12px;
  color: var(--ink);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
}

.subpage-section--content > h3:not(.topic-heading, .surgery-method__title),
.subpage-section--content > h4:not(.minor-heading) {
  margin-right: auto;
  margin-left: auto;
}

.section-eyebrow {
  margin: 0 auto 14px;
  color: var(--navy);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .08em;
  text-align: center;
}

.section-eyebrow--large {
  margin-bottom: 4px;
  font-size: 4rem;
}

.subpage-section--content > .topic-heading {
  width: fit-content;
  max-width: min(var(--subpage-content-max), calc(100% - var(--subpage-inline-space)));
  margin-left: max(var(--subpage-gutter), calc((100% - var(--subpage-content-max)) / 2));
}

.minor-heading {
  position: relative;
  margin: 30px 0 14px;
  padding-left: 25px;
  color: var(--ink);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.5;
}

.minor-heading::before {
  content: "■";
  position: absolute;
  left: 0;
  top: .15em;
  color: var(--navy);
  font-size: 1.4rem;
}

.qa-list--rich {
  width: 100%;
  max-width: var(--subpage-content-max);
  margin: 0 auto;
}

.qa-list--rich details {
  margin: 0 0 14px;
  background: var(--navy);
  color: #fff;
}

.qa-list--rich summary {
  color: #fff;
}

.qa-list--rich .qa-answer-content p {
  margin: 0;
  color: var(--ink);
  font-size: 1.6rem;
  line-height: 2;
}

.qa-list--rich .qa-answer-content p + p {
  margin-top: 1em;
}

.qa-list--rich .qa-answer-content ol,
.qa-list--rich .qa-answer-content ul {
  margin: 1.2em 0 0;
  padding-left: 2.2em;
  color: var(--ink);
  font-size: 1.6rem;
  line-height: 2;
}

.qa-list--rich .qa-answer-content ol {
  list-style: decimal;
}

.qa-list--rich .qa-answer-content ul {
  list-style: disc;
}

.generic-page .entry-content,
.generic-page .entry-content p,
.generic-page .entry-content li,
.generic-page .entry-content label,
.generic-page .entry-content input,
.generic-page .entry-content select,
.generic-page .entry-content textarea,
.generic-page .entry-content button {
  color: var(--ink);
  font-size: 1.6rem;
  line-height: 2;
}

.generic-page .entry-content h2,
.generic-page .entry-content h3,
.generic-page .entry-content h4 {
  color: var(--navy);
  font-weight: 700;
  line-height: 1.5;
}

.generic-page .entry-content h2 { font-size: 3.6rem; }
.generic-page .entry-content h3 { font-size: 2.4rem; }
.generic-page .entry-content h4 { font-size: 2rem; }
.generic-page .entry-content table { font-size: 1.5rem; line-height: 1.8; }
.generic-page .entry-content small,
.generic-page .entry-content figcaption,
.generic-page .entry-content .caption { font-size: 1.4rem; line-height: 1.8; }
.generic-page .entry-content .mv__ttls { font-family: var(--serif); }
.generic-page .generic-post-meta,
.generic-page .generic-news-item time,
.generic-page .blog-meta time { font-size: 1.3rem; }
.generic-page .generic-post-item h2,
.generic-page .generic-news-item h2,
.generic-page .blog-card :is(h2, h3) { font-size: 2rem; }
.generic-page .generic-post-item p,
.generic-page .generic-news-item p,
.generic-page .blog-card p { font-size: 1.6rem; line-height: 2; }

@media (max-width: 900px) {
  .subpage-section--content h2:not(.subpage-section-title, .section-eyebrow) { font-size: 2.8rem; }
  .subpage-section--content h3:not(.topic-heading, .surgery-method__title),
  .subpage-section--content h4:not(.minor-heading) { font-size: 1.8rem; }

  .section-eyebrow { font-size: 1.8rem; }

  .minor-heading {
    font-size: 1.8rem;
  }

  .section-eyebrow--large { font-size: 2.4rem; }

  .generic-page .entry-content,
  .generic-page .entry-content p,
  .generic-page .entry-content li,
  .generic-page .entry-content label,
  .generic-page .entry-content input,
  .generic-page .entry-content select,
  .generic-page .entry-content textarea,
  .generic-page .entry-content button { font-size: 1.5rem; }
  .generic-page .entry-content h2 { font-size: 2.8rem; }
  .generic-page .entry-content h3 { font-size: 1.8rem; }
  .generic-page .entry-content h4 { font-size: 1.8rem; }

  .qa-list--rich .qa-answer-content p,
  .qa-list--rich .qa-answer-content ol,
  .qa-list--rich .qa-answer-content ul {
    font-size: 1.5rem;
  }
}

@media (max-width: 520px) {
  .section-eyebrow { font-size: 1.6rem; }
}

/* Blog single */

.blog-single {
  height: auto;
  min-height: 0;
}

.blog-single > .container {
  width: min(1180px, calc(100% - var(--subpage-inline-space)));
}

.blog-single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 56px;
  margin-top: 76px;
  align-items: start;
}

.blog-single-main,
.blog-single-sidebar,
.blog-single-related-content,
.blog-single-archive-content {
  min-width: 0;
}

.blog-single-article {
  padding: 50px 54px 58px;
  border: 1px solid #d7e3e8;
  background: #fff;
  box-shadow: 0 12px 30px rgba(37, 99, 118, .08);
}

.blog-single-header {
  padding-bottom: 30px;
  border-bottom: 1px solid #9ed8d4;
}

.blog-single-meta {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.blog-single-meta time,
.blog-single-archive-card time {
  flex: 0 0 auto;
  color: #5f727a;
  font-size: 1.3rem;
  line-height: 1.6;
  white-space: nowrap;
}

.blog-single-header h1 {
  margin: 0;
  color: var(--navy);
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .03em;
}

.blog-single-content {
  padding-top: 38px;
  color: var(--ink);
  font-size: 1.6rem;
  line-height: 2;
  overflow-wrap: anywhere;
}

.blog-single .blog-single-content .clinic-info {
  max-width: none;
  margin: 0;
  padding: 0;
  color: var(--ink);
  line-height: 2;
}

.blog-single-content p,
.blog-single-content li,
.blog-single-content blockquote {
  color: var(--ink);
  font-size: 1.6rem;
  line-height: 2;
}

.blog-single-content p {
  margin: 0 0 1.6em;
}

.blog-single .blog-single-content h2 {
  margin: 56px 0 28px;
  padding-bottom: 12px;
  border-bottom: 3px solid var(--blue);
  color: var(--navy);
  font-size: 2.6rem;
  font-weight: 700;
  line-height: 1.55;
}

.blog-single .blog-single-content h3 {
  margin: 46px 0 22px;
  padding-left: 16px;
  border-left: 5px solid var(--blue);
  color: var(--navy);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
}

.blog-single .blog-single-content h4,
.blog-single .blog-single-content h5,
.blog-single .blog-single-content h6 {
  margin: 36px 0 18px;
  color: var(--navy);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.6;
}

.blog-single-content > :first-child,
.blog-single-content > .clinic-info > :first-child {
  margin-top: 0;
}

.blog-single-content ul,
.blog-single-content ol {
  margin: 24px 0 30px;
  padding-left: 2em;
}

.blog-single-content ul { list-style: disc; }
.blog-single-content ol { list-style: decimal; }
.blog-single-content li + li { margin-top: 8px; }

.blog-single .blog-single-content strong,
.blog-single .blog-single-content b {
  color: #0056b3;
  font-weight: 700;
}

.blog-single .blog-single-content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
}

.blog-single-content figure {
  max-width: 100%;
  margin: 30px auto;
}

.blog-single-content figcaption,
.blog-single-content .wp-caption-text,
.blog-single-content .caption {
  margin-top: 8px;
  color: #5f727a;
  font-size: 1.3rem;
  line-height: 1.7;
  text-align: center;
}

.blog-single-content iframe,
.blog-single-content video {
  max-width: 100%;
}

.blog-single-content table {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 30px 0;
  border-collapse: collapse;
  overflow-x: auto;
  font-size: 1.4rem;
  line-height: 1.8;
}

.blog-single-content th,
.blog-single-content td {
  min-width: 120px;
  padding: 13px 15px;
  border: 1px solid #cbdde3;
  text-align: left;
  vertical-align: top;
}

.blog-single-content th {
  background: #e7f3ef;
  color: var(--navy);
  font-weight: 700;
}

.blog-single-content blockquote {
  margin: 30px 0;
  padding: 22px 26px;
  border-left: 5px solid var(--blue);
  background: #f3f4fb;
}

.blog-single .blog-single-content .signature {
  display: block;
  padding-top: 0;
  border: 0;
}

.blog-single-navigation {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 20px;
  margin-top: 44px;
  align-items: center;
}

.blog-single-navigation-slot a,
.blog-single-list-link {
  color: var(--navy);
  font-size: 1.4rem;
  font-weight: 700;
}

.blog-single-navigation-slot a:hover,
.blog-single-list-link:hover {
  color: var(--blue);
}

.blog-single-navigation-slot--next {
  text-align: right;
}

.blog-single-list-link {
  display: grid;
  min-width: 150px;
  min-height: 48px;
  padding: 8px 18px;
  place-items: center;
  border: 1px solid #9ed8d4;
  background: #fff;
}

.blog-single-related {
  margin-top: 76px;
}

.blog-single-related > h2,
.blog-single-sidebar-panel > h2 {
  margin: 0 0 28px;
  padding-bottom: 12px;
  border-bottom: 3px solid var(--blue);
  color: var(--navy);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
}

.blog-single-related-grid,
.blog-single-archive-list {
  display: grid;
  gap: 24px;
}

.blog-single-related-card {
  display: grid;
  grid-template-columns: 155px minmax(0, 1fr);
  gap: 26px;
  padding: 24px;
  border: 1px solid #d7e3e8;
  background: #fff;
}

.blog-single-card-media {
  display: block;
}

.blog-single-related-card > .blog-single-card-media {
  width: 155px;
  height: 155px;
}

.blog-single-card-media img,
.blog-single-image-placeholder {
  display: grid;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  object-fit: cover;
}

.blog-single-image-placeholder {
  box-sizing: border-box;
  place-items: center;
  border: 1px dashed #9ed8d4;
  background: #e7f3ef;
  color: var(--navy);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: .06em;
}

.blog-single-image-placeholder::before {
  content: "No Image";
}

.blog-single-related-content h3,
.blog-single-archive-content h3 {
  margin: 0;
  color: var(--navy);
  font-weight: 700;
  line-height: 1.55;
}

.blog-single-related-content h3 {
  margin-bottom: 10px;
  font-size: 1.8rem;
}

.blog-single-related-content > p {
  display: -webkit-box;
  margin: 0 0 16px;
  overflow: hidden;
  color: var(--ink);
  font-size: 1.3rem;
  line-height: 1.75;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.blog-single-sidebar-panel {
  padding: 28px 24px 30px;
  border: 1px solid #d7e3e8;
  background: #fff;
}

.blog-single-sidebar-panel > h2 {
  font-size: 2rem;
}

.blog-single-archive-card {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 14px;
  padding-bottom: 22px;
  border-bottom: 1px solid #d7e3e8;
}

.blog-single-archive-card:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.blog-single-archive-card > .blog-single-card-media {
  width: 84px;
  height: 84px;
}

.blog-single-archive-content h3 {
  margin: 5px 0 9px;
  font-size: 1.35rem;
}

.blog-single-archive-content .post-category {
  min-height: 20px;
  padding: 3px 8px;
  font-size: .95rem;
}

.blog-single-empty {
  margin: 0;
  color: var(--ink);
  font-size: 1.4rem;
}

@media (max-width: 900px) {
  .blog-single-layout {
    grid-template-columns: 1fr;
    gap: 64px;
    margin-top: 58px;
  }

  .blog-single-article {
    padding: 42px 38px 48px;
  }

  .blog-single-sidebar-panel {
    padding: 34px;
  }

  .blog-single-archive-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 32px;
  }

  .blog-single-archive-card:nth-last-child(2) {
    padding-bottom: 0;
    border-bottom: 0;
  }
}

@media (max-width: 520px) {
  .blog-single-layout {
    gap: 48px;
    margin-top: 40px;
  }

  .blog-single-article {
    padding: 28px 20px 34px;
  }

  .blog-single-header {
    padding-bottom: 22px;
  }

  .blog-single-meta {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 16px;
  }

  .blog-single-header h1 {
    font-size: 2rem;
    line-height: 1.5;
  }

  .blog-single-content {
    padding-top: 28px;
    font-size: 1.5rem;
  }

  .blog-single-content p,
  .blog-single-content li,
  .blog-single-content blockquote {
    font-size: 1.5rem;
    line-height: 1.9;
  }

  .blog-single .blog-single-content h2 {
    margin-top: 44px;
    font-size: 2.1rem;
  }

  .blog-single .blog-single-content h3 {
    margin-top: 36px;
    padding-left: 12px;
    font-size: 1.7rem;
  }

  .blog-single .blog-single-content h4,
  .blog-single .blog-single-content h5,
  .blog-single .blog-single-content h6 {
    font-size: 1.6rem;
  }

  .blog-single-content table {
    font-size: 1.3rem;
  }

  .blog-single-navigation {
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
      "list list"
      "previous next";
    gap: 22px 12px;
    margin-top: 34px;
  }

  .blog-single-navigation-slot--previous { grid-area: previous; }
  .blog-single-navigation-slot--next { grid-area: next; }
  .blog-single-list-link {
    grid-area: list;
    width: min(180px, 100%);
    margin-inline: auto;
  }

  .blog-single-navigation-slot a,
  .blog-single-list-link {
    font-size: 1.2rem;
  }

  .blog-single-related {
    margin-top: 56px;
  }

  .blog-single-related > h2,
  .blog-single-sidebar-panel > h2 {
    margin-bottom: 22px;
    font-size: 2rem;
  }

  .blog-single-related-card {
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 14px;
    padding: 16px;
  }

  .blog-single-related-card > .blog-single-card-media {
    width: 100px;
    height: 100px;
  }

  .blog-single-related-content h3 {
    margin-bottom: 8px;
    font-size: 1.4rem;
  }

  .blog-single-related-content > p {
    margin-bottom: 10px;
    font-size: 1.05rem;
    line-height: 1.6;
    -webkit-line-clamp: 2;
  }

  .post-category {
    min-height: 20px;
    padding: 3px 8px;
    font-size: 1rem;
  }

  .blog-single-sidebar-panel {
    padding: 24px 18px 26px;
  }

  .blog-single-archive-list {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .blog-single-archive-card:nth-last-child(2) {
    padding-bottom: 20px;
    border-bottom: 1px solid #d7e3e8;
  }

  .blog-single-archive-card > .blog-single-card-media {
    width: 76px;
    height: 76px;
  }

  .blog-single-archive-card {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .blog-single-archive-content h3 {
    font-size: 1.25rem;
  }
}

/* News archive */
.news-archive .blog-archive-grid {
  grid-template-columns: 1fr;
  max-width: 960px;
  margin-right: auto;
  margin-left: auto;
}
