body {overflow-wrap:anywhere;}
h1,h2,h3,p,figure {margin:0;}
h1,h2,h3 {text-wrap:balance; font-weight:700;}
h1 {font-size:clamp(1.9rem,4.4vw,3.2rem); line-height:1.3;}
h2 {font-size:clamp(1.4rem,2.8vw,2.1rem); line-height:1.4; margin-bottom:24px; color:var(--coral-ink);}
h3 {font-size:1.5rem; line-height:1.5; margin-bottom:16px;}
p {max-width:36em;}
p + p {margin-top:8px;}
:where(main) a {display:inline-flex; align-items:center; min-height:44px; min-width:44px; max-width:100%; color:var(--cyan-ink); text-underline-offset:0.2em; transition:color 180ms var(--ease-out);}
:where(main) a:hover {color:var(--coral-ink); text-decoration:underline;}
img {display:block; max-width:100%; height:auto; object-fit:contain;}
picture {display:block; min-width:0; max-width:100%;}
ul {padding:0; margin:0; list-style:none;}
main,section,article,figure,figcaption,nav,details,li,.header-inner > *, .section-inner > * {min-width:0;}
.section-inner {width:min(1224px,100%); margin-inline:auto; padding-inline:24px;}
.modern-section {margin-block:48px;}
.home-opening {display:grid; gap:32px; align-items:start; padding-block:48px 0;}
.hero-copy > p {margin-top:24px; color:var(--muted);}
.hero-actions {display:flex; flex-wrap:wrap; gap:16px; margin-top:32px;}
.image-figure img {width:100%;}
.img-text {margin-top:16px; color:var(--muted); max-width:36em; font-size:0.875rem; line-height:1.8;}
.img-text p + p {margin-top:8px;}
.banner-caption {max-width:44rem; font-size:0.8125rem; line-height:1.7; color:var(--muted);}
.banner-caption > * {max-width:none;}
.banner-caption > * + * {margin-top:8px;}
.banner-caption h2,.banner-caption h3 {font-size:inherit; line-height:inherit; margin:0; color:var(--muted); break-after:avoid;}
.banner-caption h2::before,.banner-caption h3::before {display:none;}
.offers-section {padding-block:48px; background:var(--pink-wash);}
.offer-list {display:grid; gap:24px; align-items:start;}
.offer-row {padding:24px; background:var(--white); border:1px solid var(--pink); border-radius:12px; transition:border-color 180ms var(--ease-out);}
.offer-row:hover,.offer-row:focus-within {border-color:var(--coral);}
.offer-row > .offer-banner-copy > h3 {color:var(--coral);}
.offer-conditions {display:flex; flex-wrap:wrap; gap:8px 24px; margin-block:16px; list-style:disc; padding-left:24px;}
.offer-condition {font-size:1rem;}
.offer-price-block {margin-block:24px;}
.offer-price {font-size:clamp(3rem,5.2vw,4rem); line-height:1.2; font-weight:700; font-variant-numeric:tabular-nums; color:var(--coral);}
.offer-price-prefix {display:block; font-size:1rem; line-height:1.8; font-weight:400; color:var(--coral-ink);}
.offer-payment {font-size:0.875rem; color:var(--muted);}
.offer-row > .button {margin-top:8px;}
.offer-row > .image-figure {margin-top:24px;}
.offer-row:first-child .offer-price {font-size:clamp(4rem,7vw,6rem);}
.technology-strip {display:grid; border-bottom:1px solid var(--line);}
.technique {position:relative; padding-block:24px; border-top:4px solid var(--line);}
.technique:first-child {border-top-color:var(--cyan);}
.technique + .technique {border-top-color:var(--line);}
.technique h3 {font-size:1.75rem; color:var(--cyan-ink);}
.witness-split,.bespoke-split {display:grid; align-items:start; gap:32px;}
.witness-visual {min-width:0;}
.witness-copy {max-width:36em;}
.witness-copy p + p {margin-top:16px;}
.banner-ja,.witness-copy [lang="ja"] {font-size:0.9rem; color:var(--muted);}
.bespoke-copy {align-self:start;}
.video-link {display:block; width:100%; max-width:560px;}
.video-link .img-text {color:var(--cyan-ink);}
.contact-figure > img {margin-bottom:24px;}
.contact-copy {display:grid; gap:0 32px; max-width:none; font-size:1.0625rem; color:var(--ink);}
.contact-copy a {display:inline-flex;}
.desktop {display:none;}
.mobile {display:block;}
.modern-treatment .archive-breadcrumbs {font-size:0.875rem; line-height:1.8; padding-top:24px;}
.modern-treatment .archive-breadcrumbs a {display:inline-flex; align-items:center; min-height:44px; padding-block:8px;}
.treatment-intro {display:grid; gap:24px; padding-block:32px 0;}
.treatment-intro > p {margin:0;}
.treatment-hero-figure {width:100%; margin-top:16px; padding:16px; border:1px solid var(--cyan-ink); border-radius:12px;}
.treatment-hero-figure .img-text p {display:inline; margin:0;}
.treatment-hero-figure .img-text p:not(:last-child)::after {content:" \2002\FF5C\2002 "; color:var(--line);}
.treatment-mini-nav {display:flex; flex-wrap:wrap; gap:8px 32px; margin-top:32px; background:var(--white); border-block:1px solid var(--line); z-index:8;}
.treatment-mini-nav a {padding-block:8px;}
.treatment-sections {display:grid; gap:48px; margin-top:48px;}
.treatment-split {display:grid; gap:48px; margin-top:48px;}
.treatment-split > .treatment-hero-figure {margin-top:0;}
.treatment-split .treatment-sections {margin-top:0;}
.treatment-copy > h2 {margin-bottom:24px;}
.treatment-copy > ul,.treatment-copy > ol {max-width:36em;}
.treatment-copy ul,.treatment-copy ol {padding-left:24px; list-style:revert;}
.treatment-copy li + li {margin-top:16px;}
.treatment-copy > * + * {margin-top:24px;}
.treatment-copy [lang="ja"] {color:var(--muted);}
.treatment-copy li > p {margin:0;}
.treatment-ja {font-size:0.9rem; color:var(--muted);}
.treatment-illustration {margin-block:32px; max-width:100%;}
.treatment-illustration img {width:auto; max-height:520px; margin-inline:auto;}
.treatment-illustration .img-text p {display:inline; margin:0;}
.treatment-illustration .img-text p:not(:last-child)::after {content:" \2002\FF5C\2002 "; color:var(--line);}
.treatment-index {display:grid; grid-template-columns:minmax(0,1fr); gap:32px 24px;}
.treatment-row {min-width:0;}
.treatment-row-link {display:grid; grid-template-columns:minmax(0,1fr); gap:16px; align-items:start; width:100%; text-decoration:none;}
.treatment-row-link:hover {text-decoration:none;}
.treatment-name {width:fit-content;}
.treatment-name::after {content:""; display:block; width:48px; height:2px; margin-top:8px; background:var(--cyan); transition:width 180ms var(--ease-out);}
.treatment-row-link:hover .treatment-name::after,.treatment-row-link:focus-visible .treatment-name::after {width:100%;}
.treatment-row-link img {width:100%; aspect-ratio:4 / 3; object-fit:cover; border-radius:12px;}
.treatment-row-copy {padding-inline:4px;}
.treatment-row h2,.treatment-row h3 {margin:0; font-size:1.5rem; line-height:1.5; color:var(--cyan-ink);}
.treatment-row h2::before {display:none;}
.treatment-name,.treatment-name-ja {display:block;}
.treatment-name-ja {margin-top:8px; font-size:0.9rem; font-weight:400; color:var(--muted);}
.treatment-excerpt {margin-top:16px; color:var(--ink);}
.treatment-more {display:flex; align-items:center; min-height:44px; margin-top:8px; text-decoration:underline; text-underline-offset:0.2em;}
.related-list {display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:4px; padding:4px 4px 16px;}
.related-list > li {flex:0 0 min(280px,85%); scroll-snap-align:start;}
.related-list .treatment-row-link img {aspect-ratio:auto; object-fit:contain; height:auto;}
.related-list .treatment-row-link {grid-template-columns:minmax(0,1fr);}
.related-list h3 {font-size:1.25rem;}
@media (min-width:600px) {
  .technology-strip {grid-template-columns:repeat(3,minmax(0,1fr));}
  .technique {padding:24px;}
  .technique + .technique {border-left:1px solid var(--line);}
  .contact-copy {grid-template-columns:repeat(2,minmax(0,1fr));}
  .contact-copy > p:first-child {grid-row:1 / span 2;}
  .contact-copy > p + p {grid-column:2; margin:0;}
  .treatment-index {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:900px) {
  h2 {color:var(--coral);}
  .offers-section h2 {color:var(--coral-ink);}
  .section-inner {padding-inline:40px;}
  .modern-section {margin-block:80px;}
  .home-opening {grid-template-columns:repeat(12,minmax(0,1fr)); gap:32px; padding-top:64px;}
  .hero-copy {grid-column:1 / -1;}
  .home-opening > .image-figure {grid-column:1 / -1;}
  .offer-list {grid-template-columns:minmax(0,5fr) minmax(0,7fr);}
  .offer-row {padding:32px;}
  .witness-split {grid-template-columns:minmax(0,7fr) minmax(0,5fr); align-items:start;}
  .bespoke-split {grid-template-columns:minmax(0,4fr) minmax(0,8fr);}
  .desktop {display:block;}
  .mobile {display:none;}
  .treatment-intro {padding-top:48px;}
  .treatment-mini-nav {position:sticky; top:80px;}
  #header-container.header-compact ~ main .treatment-mini-nav {top:56px;}
  .treatment-sections {margin-top:80px;}
  .treatment-index {grid-template-columns:repeat(3,minmax(0,1fr));}
  .treatment-index > li:first-child {grid-column:span 2;}
  /* First card is the wide one: picture beside its copy. */
  .treatment-index > li:first-child .treatment-row-link {grid-template-columns:minmax(0,3fr) minmax(0,2fr); align-items:center; gap:24px;}
}
@media (min-width:1000px) {
  /* Hero figure stays put in the left column while 原理 / 功效 scroll on the right.
     No ancestor between here and the page may set overflow. */
  .treatment-detail .treatment-split {grid-template-columns:minmax(0,7fr) minmax(0,5fr); align-items:start;}
  .treatment-split > .treatment-hero-figure {position:sticky; top:160px;}
  .treatment-split > .treatment-hero-figure .treatment-banner {width:auto; max-width:100%; max-height:calc(100vh - 300px); margin-inline:auto;}
}
@media (prefers-reduced-motion:reduce) {
  .treatment-name::after {transition:none;}
}
