/* related-sites.css: original cascade order */
/* Official related sites: scoped entirely to the new section. */
.related-sites {
  width: 100%;
  max-width: 1160px;
  margin: 72px auto 80px;
  padding: 0 !important;
  color: #39483b;
}
.home .related-sites { width: calc(100% - 48px); }
.related-sites * { box-sizing: border-box; }
.related-sites-heading {
  margin: 0 0 26px;
  text-align: left;
}
.related-sites-eyebrow {
  display: block;
  margin-bottom: 11px;
  color: #788b70;
  font: 400 11px/1.5 Arial, sans-serif;
  font-size: max(var(--site-readable-min, 0px), 11px);
  letter-spacing: .18em;
}
.related-sites-heading h2 {
  margin: 0;
  color: #39483b;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: max(var(--site-readable-min, 0px), clamp(24px, 2.3vw, 29px));
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .06em;
}
.related-sites-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.related-site-card {
  display: grid;
  grid-template-columns: 40% minmax(0, 1fr);
  min-width: 0;
  min-height: 220px;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  background: #fffefa;
  border: 1px solid #dbe3d6;
  border-radius: 7px;
  box-shadow: 0 6px 24px rgba(76, 91, 69, .035);
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.related-site-photo {
  position: relative;
  display: block;
  min-width: 0;
  min-height: 218px;
  overflow: hidden;
  background: #f1f2e9;
}
.related-site-photo img {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
  object-position: center;
}
.related-site-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 24px 22px 22px;
}
.related-site-overline {
  display: block;
  color: #82927b;
  font: 400 10px/1.5 Arial, sans-serif;
  font-size: max(var(--site-readable-min, 0px), 10px);
  letter-spacing: .14em;
}
.related-site-name {
  display: block;
  margin-top: 10px;
  color: #39483b;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: max(var(--site-readable-min, 0px), clamp(20px, 1.8vw, 24px));
  font-weight: 400;
  letter-spacing: .04em;
  line-height: 1.45;
}
.related-site-description {
  display: block;
  margin-top: 9px;
  color: #657061;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
}
.related-site-cta {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 19px;
  padding-top: 13px;
  border-top: 1px solid #e2e8df;
  color: #50694e;
  font-size: 12px;
  letter-spacing: .04em;
  line-height: 1.5;
}
.related-site-arrow {
  display: inline-grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid #c9d6c5;
  border-radius: 50%;
  font: 400 13px/1 Arial, sans-serif;
}
@media (hover: hover) and (pointer: fine) {
  .related-site-card:hover {
    border-color: #aebbab;
    box-shadow: 0 13px 30px rgba(76, 91, 69, .095);
    transform: translateY(-2px);
  }
}
.related-site-card:focus-visible {
  outline: 3px solid #688566;
  outline-offset: 4px;
}
@media (max-width: 900px) {
  .related-sites-grid { grid-template-columns: 1fr; }
  .related-site-card { grid-template-columns: 38% minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .related-sites { margin: 42px auto 52px; }
  .home .related-sites { width: calc(100% - 40px); }
  .related-sites-heading { margin-bottom: 19px; }
  .related-sites-grid { gap: 18px; }
  .related-site-card { display: block; min-height: 0; }
  .related-site-photo { min-height: 0; height: auto; aspect-ratio: 2.1 / 1; }
  .related-site-copy { padding: 20px 21px 22px; }
  .related-site-name { margin-top: 6px; font-size: 23px; }
  .related-site-description { margin-top: 6px; font-size: 13px; }
  .related-site-cta { margin-top: 15px; padding-top: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .related-site-card { transition: none; }
  .related-site-card:hover { transform: none; }
}

/* nav-directory.css: original cascade order */
/* Directory expansion for the existing fixed navigation. */
@media (min-width: 768px) {
  .site-header #navigation { position: relative; overflow: visible; }
  .site-header #navigation > a[data-directory][aria-expanded="true"] { color: #53664f; }
  .site-header #navigation .nav-directory-panel {
    position: absolute; top: 100%; left: 50%; z-index: 60;
    width: min(1120px, calc(100vw - 40px)); max-height: min(580px, calc(100dvh - 155px));
    overflow: auto; overscroll-behavior: contain;
    padding: 28px 38px 32px; box-sizing: border-box;
    border: 1px solid #dce3d5; border-top: 1px solid #d5dfcf;
    border-radius: 0 0 8px 8px;
    background: #fbfcf9;
    box-shadow: 0 20px 42px rgba(54, 70, 48, .13);
    color: #455347;
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translate(-50%, -8px);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
  }
  .site-header #navigation .nav-directory-panel.is-open {
    opacity: 1; visibility: visible; pointer-events: auto;
    transform: translate(-50%, 0);
  }
  .nav-directory-head { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 20px; padding-bottom: 17px; border-bottom: 1px solid #dce3d5; }
  .nav-directory-head > div { display: flex; flex-direction: column; gap: 2px; }
  .nav-directory-head small { color: #87957f; font: 500 11px/1.6 Arial, sans-serif;font-size:max(var(--site-readable-min, 0px), 11px); letter-spacing: .2em; }
  .nav-directory-head strong { color: #435344; font: 500 25px/1.45 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .07em; }
  .site-header #navigation .nav-directory-page-link { display: block; margin: 0 0 3px; padding: 0; border: 0; color: #71806c; font-size: 13px; font-weight: 400; text-decoration: none; }
  .site-header #navigation .nav-directory-page-link:hover { color: #4b7654; text-decoration: underline; text-underline-offset: 4px; }
  .site-header #navigation .nav-directory-page-link:focus-visible { outline: 2px solid #778d70; outline-offset: 4px; }
  .nav-directory-links { display: grid; grid-template-columns: repeat(var(--directory-columns, 2), minmax(0, 1fr)); gap: 3px 24px; }
  .site-header #navigation .nav-directory-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 43px; padding: 9px 5px 9px 0; box-sizing: border-box; border-bottom: 1px solid #e8ede4; color: #49594a; font-size: 13px; font-weight: 400; letter-spacing: .02em; line-height: 1.5; }
  .site-header #navigation .nav-directory-link::after { content: "↗"; flex: none; color: #9ba895; font: 14px/1 Arial, sans-serif; }
  .site-header #navigation .nav-directory-link:hover,
  .site-header #navigation .nav-directory-link:focus-visible { color: #4b7654; background: #f2f6ed; }
  .nav-directory-mobile { display: none; }
}
@media (min-width: 768px) and (max-width: 980px) {
  .site-header #navigation .nav-directory-panel { padding: 22px 26px 25px; }
  .nav-directory-links { column-gap: 15px; }
  .site-header #navigation .nav-directory-link { font-size: 12px; }
}
@media (max-width: 767px) {
  .site-header #navigation .nav-directory-panel { display: none !important; }
  .site-header #navigation.open .nav-directory-mobile { display: block; margin-top: 12px; }
  .site-header #navigation .nav-mobile-finder { margin-bottom: 12px; }
  .site-header #navigation .nav-directory-mobile-item > .nav-directory-mobile-overview { margin: 11px 13px 0; }
  .site-header #navigation .nav-directory-mobile > p { margin: 0 0 8px; padding: 0 2px; color: #798a74; font-size: max(var(--site-readable-min, 0px), 11px); letter-spacing: .12em; }
  .site-header #navigation .nav-directory-mobile-item { border-top: 1px solid #dbe3d5; }
  .site-header #navigation .nav-directory-mobile-item:last-child { border-bottom: 1px solid #dbe3d5; }
  .site-header #navigation .nav-directory-mobile-item > summary { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 48px; padding: 9px 13px; box-sizing: border-box; list-style: none; color: #4d5b4b; font-size: 14px; font-weight: 500; cursor: pointer; }
  .site-header #navigation .nav-directory-mobile-item > summary::-webkit-details-marker { display: none; }
  .site-header #navigation .nav-directory-mobile-item > summary::after { content: "+"; color: #738370; font: 20px/1 Arial, sans-serif; }
  .site-header #navigation .nav-directory-mobile-item[open] > summary { background: #f0f5ed; }
  .site-header #navigation .nav-directory-mobile-item[open] > summary::after { content: "−"; }
  .site-header #navigation .nav-directory-mobile-links { display: grid; grid-template-columns: 1fr; padding: 0 13px 12px; background: #fbfcf9; }
  .site-header #navigation .nav-directory-mobile-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 9px 3px; box-sizing: border-box; border-bottom: 1px solid #ebeee8; color: #465648; font-size: 13px; font-weight: 400; line-height: 1.45; }
  .site-header #navigation .nav-directory-mobile-link::after { content: "›"; flex: none; color: #8a9a82; font: 20px/1 Arial, sans-serif; }
  .site-header #navigation .nav-directory-mobile-item > summary:focus-visible,
  .site-header #navigation .nav-directory-mobile-link:focus-visible { outline: 2px solid #778d70; outline-offset: -2px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header #navigation .nav-directory-panel { transition: none; }
}

/* Rich access directory: the same verified beauty-floor map and information on both layouts. */
.nav-access-card { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: 28px; min-width: 0; }
.nav-access-map { min-width: 0; overflow: hidden; border: 1px solid #d9e2d5; border-radius: 5px; background: #eef2e9; }
.nav-access-map iframe { display: block; width: 100%; height: 100%; min-height: 285px; border: 0; }
.nav-access-content { min-width: 0; }
.nav-access-label { margin: 0 0 7px!important; color: #81917c!important; font: 500 10px/1.6 Arial, sans-serif!important;font-size:max(var(--site-readable-min, 0px), 10px) !important; letter-spacing: .17em; }
.nav-access-content address { color: #3d4b3e; font: normal 500 17px/1.55 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .035em; }
.nav-access-route { margin: 8px 0 4px!important; color: #627260!important; font-size: 12px!important; line-height: 1.65!important; }
.nav-access-phone { display: inline-block; margin: 0 0 10px; color: #445b47!important; font: 500 17px/1.5 Arial, sans-serif!important; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.nav-access-hours { display: grid; gap: 2px; padding: 10px 0 11px; border-top: 1px solid #dfe7dc; border-bottom: 1px solid #dfe7dc; color: #61705e; font-size: 12px; line-height: 1.6; }
.nav-access-hours strong { color: #435744; font-size: 12px; font-weight: 600; }
.nav-access-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 12px; margin-top: 10px; }
.site-header #navigation .nav-access-actions a { display: flex; align-items: center; min-height: 38px; padding: 6px 2px; border-bottom: 1px solid #e1e7dc; color: #405741; font-size: 12px; line-height: 1.4; }
.site-header #navigation .nav-access-actions .nav-access-line { color: #497350; font-weight: 600; }
.site-header #navigation .nav-access-actions a:hover,
.site-header #navigation .nav-access-actions a:focus-visible { background: #eff4ec; color: #42654a; outline: 2px solid #819a7d; outline-offset: 1px; }
@media (min-width: 768px) and (max-width: 1024px) {
  .nav-access-card { gap: 16px; }
  .nav-access-map iframe { min-height: 310px; }
  .nav-access-content address { font-size: 15px; }
  .nav-access-actions { gap: 3px 7px; }
}
@media (max-width: 767px) {
  .site-header #navigation .nav-directory-mobile-item .nav-access-card { grid-template-columns: minmax(0,1fr); gap: 14px; padding: 12px 13px 15px; background: #fbfcf9; }
  .site-header #navigation .nav-access-map iframe { height: 190px; min-height: 190px; }
  .site-header #navigation .nav-access-content address { font-size: 16px; }
  .site-header #navigation .nav-access-actions { gap: 3px 9px; }
  .site-header #navigation .nav-access-hours { font-size: 12px; }
}

/* One-step beauty mega menus: all 17 facial / 5 body treatment destinations are visible. */
.nav-directory-mega { min-width: 0; }
.site-header #navigation .nav-directory-mega-overview { display: inline-flex; align-items: center; min-height: 38px; margin: 0 0 16px; padding: 7px 13px; border: 1px solid #b9c9b4; border-radius: 3px; background: #f1f5ef; color: #425a43; font-size: 13px; font-weight: 600; line-height: 1.45; }
.site-header #navigation .nav-directory-mega-overview::after { content: " →"; margin-left: 9px; font-weight: 400; }
.nav-directory-mega-columns { display: grid; grid-template-columns: repeat(var(--mega-columns,4),minmax(0,1fr)); gap: 20px; }
.nav-directory-mega-group { min-width: 0; }
.nav-directory-group-title { margin: 0 0 5px; padding: 0 0 10px; border-bottom: 1px solid #cbd8c7; color: #586f58; font: 600 13px/1.4 "Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif; letter-spacing: .065em; }
.site-header #navigation .nav-directory-mega-item { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 41px; padding: 7px 2px 7px 0; border-bottom: 1px solid #e9ede6; box-sizing: border-box; color: #455847; font-size: 13px; font-weight: 400; line-height: 1.5; }
.site-header #navigation .nav-directory-mega-item::after { content: "↗"; flex: none; color: #9aa994; font: 13px/1 Arial,sans-serif; }
.site-header #navigation .nav-directory-mega-related { display: inline-flex; min-height: 38px; align-items: center; margin-top: 16px; color: #627961; font-size: 12px; }
.site-header #navigation .nav-directory-mega-related::after { content: " →"; margin-left: 7px; }
.site-header #navigation :is(.nav-directory-mega-item,.nav-directory-mega-overview,.nav-directory-mega-related):hover,
.site-header #navigation :is(.nav-directory-mega-item,.nav-directory-mega-overview,.nav-directory-mega-related):focus-visible { outline: 2px solid #82997e; outline-offset: 1px; background: #eaf1e8; color: #385a3c; }
.site-header #navigation .nav-access-actions .nav-access-line { gap: 6px; }
.site-header #navigation .nav-access-line img { width: 22px; height: 22px; flex: none; object-fit: contain; }
/* The dated campaign's short summary uses the existing directory palette and spacing. */
.site-header #navigation .nav-campaign-overview { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 3px 18px; margin: 0 0 8px; padding: 0 0 16px; border-bottom: 1px solid #e0e7db; }
.site-header #navigation .nav-campaign-overview strong { color: #495c48; font: 500 18px/1.6 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .04em; }
.site-header #navigation .nav-campaign-overview span { color: #697c66; font: 500 12px/1.5 Arial, sans-serif; }
.site-header #navigation .nav-campaign-overview p { grid-column: 1/-1; margin: 3px 0 0; color: #667563; font-size: 13px; line-height: 1.65; }
@media (min-width: 768px) and (max-width: 980px) {
  .nav-directory-mega-columns { gap: 12px; }
  .site-header #navigation .nav-directory-mega-item { font-size: 12px; }
}
@media (min-width: 768px) and (max-width: 1150px) {
  .nav-directory-panel .nav-directory-mega-columns { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px 22px; }
  .site-header #navigation .nav-directory-panel .nav-directory-mega-item { font-size: 14px; line-height: 1.55; }
}
@media (max-width: 767px) {
  .site-header #navigation .nav-directory-mega { padding: 11px 13px 15px; background: #fbfcf9; }
  .site-header #navigation .nav-directory-mobile-item .nav-campaign-overview { grid-template-columns: minmax(0,1fr); gap: 3px; margin: 0; padding: 12px 13px; background: #fbfcf9; }
  .site-header #navigation .nav-directory-mobile-item .nav-campaign-overview strong { font-size: 16px; }
  .site-header #navigation .nav-directory-mega-overview { display: flex; justify-content: space-between; min-height: 45px; margin: 0 0 9px; font-size: 13px; }
  .site-header #navigation .nav-directory-mega-columns { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .site-header #navigation .nav-directory-group-title { margin-bottom: 2px; padding-bottom: 7px; font-size: 12px; }
  .site-header #navigation .nav-directory-mega-item { min-height: 45px; font-size: 13px; }
  .site-header #navigation .nav-directory-mega-related { margin-top: 12px; font-size: 12px; }
}

/* site-menu.css: original cascade order */
/* PC whole-site directory; the existing single mobile drawer is unchanged. */
.site-menu-layer[hidden], .site-menu-layer [hidden] { display: none!important; }
@media (min-width: 768px) {
  .site-header .header-actions .site-menu-trigger {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    flex: none; min-width: 112px; min-height: 43px; margin-left: 12px; padding: 8px 12px;
    border: 1px solid #a8b79f; border-radius: 4px; background: #f8faf5;
    color: #465c47; cursor: pointer; white-space: nowrap;
    font: 500 13px/1.3 "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
    letter-spacing: .09em; transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
  }
  .site-header .header-actions .site-menu-trigger:focus-visible { background: #e8efe5; border-color: #82957e; color: #344f3a; outline: 2px solid #81977a; outline-offset: 2px; }
  .site-menu-bars { display: grid; gap: 4px; width: 17px; }
  .site-menu-bars i { display: block; height: 1px; background: currentColor; }
  .site-menu-bars i:nth-child(2) { width: 12px; }
  .site-menu-layer { position: fixed; z-index: 300; inset: 0; display: grid; place-items: center; padding: 16px; box-sizing: border-box; }
  .site-menu-shade { position: absolute; inset: 0; background: rgba(31,42,31,.48); backdrop-filter: blur(3px); }
  .site-menu-dialog { position: relative; display: grid; grid-template-rows: auto auto minmax(0,1fr); width: min(1280px,calc(100vw - 40px)); height: min(780px,calc(100dvh - 32px)); min-height: 0; overflow: hidden; border: 1px solid #d4dfcf; border-radius: 8px; background: #fafbf7; box-shadow: 0 25px 70px rgba(16,31,17,.22); color: #435346; animation: site-menu-in 180ms ease both; font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif; }
  .site-menu-top { z-index: 2; display: grid; grid-template-columns: 270px minmax(220px,1fr) auto; align-items: center; gap: 24px; padding: 16px 25px; border-bottom: 1px solid #dce4d8; background: #fafbf7; }
  .site-menu-kicker { display: block; color: #7d8f78; font: 500 10px/1.5 Arial,sans-serif;font-size:max(var(--site-readable-min, 0px), 10px); letter-spacing: .17em; }
  .site-menu-top h2 { margin: 2px 0 0; color: #435748; font: 500 21px/1.4 "Yu Mincho", "Hiragino Mincho ProN",serif; letter-spacing: .04em; white-space: nowrap; }
  .site-menu-close { display: inline-flex; align-items: center; gap: 7px; min-width: 86px; min-height: 42px; padding: 7px 11px; border: 1px solid #b9c9b4; border-radius: 4px; background: #fff; color: #405a43; font: 500 15px/1.4 sans-serif; cursor: pointer; }
  .site-menu-close span:first-child { font: 24px/1 Arial,sans-serif; }
  .site-menu-finder { position: relative; min-width: 0; }
  .site-menu-search-label { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
  .site-menu-input-row { display: flex; align-items: center; gap: 8px; }
  .site-menu-input-row input { width: 100%; min-width: 0; min-height: 43px; box-sizing: border-box; padding: 8px 12px; border: 1px solid #b4c5af; border-radius: 4px; background: #fff; color: #324835; font: 15px/1.5 sans-serif; }
  .site-menu-input-row button { flex: none; min-height: 41px; padding: 7px 10px; border: 1px solid #c4d0c0; border-radius: 4px; background: #f8faf5; color: #495f4b; cursor: pointer; font-size: 14px; }
  .site-menu-primary { display: flex; align-items: center; gap: 10px; margin: 0; padding: 9px 25px; border-bottom: 1px solid #dce4d8; background: #f2f5ed; }
  .site-menu-primary a { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 36px; padding: 5px 12px; box-sizing: border-box; border: 1px solid #c7d4c1; border-radius: 4px; background: #fafcf8; color: #415a45; font-size: 15px; font-weight: 500; line-height: 1.45; text-decoration: none; }
  .site-menu-primary a:first-child { border-color: #637b60; background: #596f58; color: #fff; }
  .site-menu-primary a[href^="tel:"] { font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
  .site-menu-line-label { display: inline-flex; align-items: center; gap: 8px; }
  .site-menu-line-label img { display: block; width: 23px; height: 23px; box-sizing: border-box; padding: 1px; border-radius: 4px; background: #fff; object-fit: contain; }
  .site-menu-workspace { display: grid; grid-template-columns: 200px minmax(0,1fr); min-height: 0; }
  .site-menu-tabs { display: flex; flex-direction: column; gap: 7px; padding: 20px 12px; border-right: 1px solid #d8e2d3; background: #f0f4ed; min-height: 0; overflow: auto; }
  .site-menu-tab { position: relative; display: grid; gap: 7px; width: 100%; padding: 15px 13px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #5a6e57; cursor: pointer; text-align: left; }
  .site-menu-tab > span { font: 500 15px/1.55 "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif; overflow-wrap: anywhere; }
  .site-menu-tab-phrase { white-space: nowrap; }
  .site-menu-tab > small { font: 400 12px/1.5 sans-serif; color: #7b8c77; }
  .site-menu-tab[aria-selected="true"] { border-color: #bbceb1; background: #fbfcf8; color: #344f36; box-shadow: inset 3px 0 #6d8764, 0 2px 7px #354a3410; }
  .site-menu-content { display: grid; grid-template-rows: auto minmax(0,1fr); min-width: 0; min-height: 0; }
  .site-menu-content-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 16px 24px 12px; border-bottom: 1px solid #e2e8dd; background: #fafbf7; }
  .site-menu-panel-title { margin: 0; color: #3f5742; font: 500 20px/1.45 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing: .025em; }
  .site-menu-result { margin: 0; color: #6a7c65; font: 400 13px/1.5 sans-serif; }
  .site-menu-scroll { min-width: 0; min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 16px 24px 22px; }
  .site-menu-panel { outline-offset: -1px; }
  .site-menu-overviews { display: flex; gap: 12px; margin-bottom: 14px; }
  .site-menu-overviews .site-menu-item { border: 1px solid #c9d7c2; border-radius: 4px; padding: 7px 12px; background: #f1f6ed; min-height: 36px; }
  .site-menu-treatment-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
  .site-menu-treatment-column { min-width: 0; }
  .site-menu-group { min-width: 0; margin: 0 0 18px; }
  .site-menu-group:last-child { margin-bottom: 0; }
  .site-menu-group-title { margin: 0 0 7px; padding: 0 0 9px; border-bottom: 1px solid #c9d7c1; color: #425b43; font: 600 16px/1.5 "Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif; letter-spacing: .015em; }
  .site-menu-group-links { display: grid; grid-template-columns: minmax(0,1fr); }
  .site-menu-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; min-height: 38px; padding: 7px 4px 7px 0; box-sizing: border-box; border-bottom: 1px solid #e7ece3; color: #415743; font-size: 15px; font-weight: 400; line-height: 1.6; text-decoration: none; line-break: strict; word-break: normal; overflow-wrap: anywhere; }
  .site-menu-link-label { min-width: 0; }
  .site-menu-link-condition { white-space: nowrap; }
  .site-menu-item::after { content: "→"; flex: none; color: #819579; font: 15px/1 Arial,sans-serif; }
  .site-menu-item[target="_blank"]::after { content: "↗"; }
  .site-menu-concern-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px 24px; }
  .site-menu-concern-grid .site-menu-group { margin: 0; }
  .site-menu-campaign-note { margin: 12px 0 0; max-width: 720px; color: #64775e; font-size: 15px; line-height: 1.8; }
  .site-menu-guide-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 30px; }
  .site-menu-guide-grid > .site-menu-group:first-child { grid-row: span 2; margin-bottom: 0; }
  .site-menu-social .site-menu-item { justify-content: flex-start; gap: 9px; }
  .site-menu-social .site-menu-item::after { margin-left: auto; }
  .site-menu-social .site-menu-outbound img { display: block; width: auto; max-width: 29px; height: 25px; flex: none; object-fit: contain; }
  .site-menu-results-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2px 24px; }
  .site-menu-search-link { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 8px; padding: 10px 7px; }
  .site-menu-search-link > span { grid-column: 1; }
  .site-menu-search-link > small { grid-column: 1; color: #7b8e75; font-size: 12px; line-height: 1.5; }
  .site-menu-search-link::after { grid-column: 2; grid-row: 1 / span 2; }
  .site-menu-empty { margin: 0; padding: 18px; border: 1px solid #dce5d9; color: #586b59; font-size: 15px; }
  .site-menu-dialog :is(a,button,input,[role="tabpanel"]):focus-visible { outline: 2px solid #6b8962; outline-offset: 2px; border-radius: 3px; }
  .site-menu-tab:active, .site-menu-item:active { background: #e8efe2; }
  @keyframes site-menu-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
  html.site-menu-open { overscroll-behavior: none; }
  @media (max-width: 1150px) {
    .site-menu-top { grid-template-columns: 245px minmax(180px,1fr) auto; gap: 14px; padding: 14px 20px; }
    .site-menu-treatment-columns { display: block; columns: 2; column-gap: 22px; }
    .site-menu-treatment-column { display: contents; }
    .site-menu-treatment-columns .site-menu-group { display: inline-block; width: 100%; margin: 0 0 18px; break-inside: avoid; }
    .site-menu-concern-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
  @media (max-width: 1050px) {
    .site-header .header-actions .site-menu-trigger { min-width: 104px; gap: 8px; margin-left: 7px; padding: 7px 9px; }
  }
  @media (max-width: 900px) {
    .site-menu-workspace { grid-template-columns: 185px minmax(0,1fr); }
    .site-menu-top { grid-template-columns: minmax(0,1fr) auto; }
    .site-menu-finder { grid-row: 2; grid-column: 1/-1; }
    .site-menu-top .site-menu-close { grid-column: 2; grid-row: 1; }
    .site-menu-primary { padding: 8px 18px; gap: 7px; flex-wrap: wrap; }
    .site-menu-primary a { font-size: 14px; gap: 7px; padding: 5px 9px; }
    .site-menu-scroll { padding: 14px 17px 20px; }
    .site-menu-content-head { padding: 13px 17px; }
    .site-menu-treatment-columns, .site-menu-concern-grid { column-gap: 17px; }
  }
}
@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .site-menu-dialog :is(.site-menu-item,.site-menu-tab,.site-menu-close,.site-menu-clear):hover { background: #eaf1e5; color: #314e34; }
  .site-menu-dialog .site-menu-primary a:hover { background: #eaf1e5; color: #314e34; }
  .site-menu-dialog .site-menu-primary a:first-child:hover { background: #405c44; color: #fff; }
}
@media (max-width: 767px) {
  .site-menu-trigger, .site-menu-layer { display: none!important; }
  .site-header #navigation.open .nav-mobile-finder { display: grid; gap: 7px; padding: 14px 13px; border: 1px solid #d5e0d1; border-radius: 5px; background: #f8faf5; }
  .nav-mobile-finder label { color: #536853; font-size: 13px; font-weight: 600; }
  .nav-mobile-finder-row { display: flex; gap: 7px; min-width: 0; }
  .nav-mobile-finder-row input { min-width: 0; flex: 1; min-height: 43px; padding: 7px 9px; border: 1px solid #aebfaa; border-radius: 4px; background: #fff; color: #405541; font-size: 14px; }
  .nav-mobile-finder-row button { min-height: 43px; padding: 6px 10px; border: 1px solid #bdccba; border-radius: 4px; background: #fff; color: #4b604c; font-size: 12px; }
  .nav-mobile-finder-row :is(input,button):focus-visible, .nav-mobile-search-link:focus-visible { outline: 2px solid #789271; outline-offset: 2px; }
  .nav-mobile-finder-count { margin: 0!important; color: #6b7e69; font-size: 12px!important; line-height: 1.5; }
  .site-header #navigation.open .nav-mobile-search-results { display: grid; max-height: min(390px,48dvh); overflow: auto; padding: 3px 0; overscroll-behavior: contain; border-top: 1px solid #dfe7db; }
  .site-header #navigation.open .nav-mobile-search-link { display: flex; align-items: center; min-height: 42px; padding: 8px 3px; border-bottom: 1px solid #e6ece4; color: #405841; font-size: 13px; line-height: 1.4; }
  .site-header #navigation.open .nav-mobile-search-link::after { content: "›"; margin-left: auto; color: #8fa18a; font-size: 20px; }
  .site-header #navigation.open .nav-directory-mobile.is-searching > .nav-directory-mobile-item { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .site-menu-dialog { animation: none; }
  .site-menu-trigger { transition: none!important; }
}

/* first-visit-refresh.css: original cascade order */
/* 2026-10-07 staged revision: first-visit pricing, the dated campaign and visible patient information. */
.home .papa-campaign-banner {
  padding-top: 46px;
  padding-bottom: 48px;
  background: linear-gradient(115deg, #fbfaf5, #f7faf5);
}
.home .papa-campaign-banner .top-campaign-head { margin-bottom: 18px; }
.papa-campaign-card {
  max-width: 1000px;
  margin: 0 auto;
  padding: clamp(24px, 3.8vw, 46px);
  border: 1px solid #d9e1d4;
  border-radius: 7px;
  background: linear-gradient(120deg, #fffdf9, #f5f8f1);
  box-shadow: 0 10px 32px #5263420a;
}
.papa-campaign-copy { max-width: 790px; }
.papa-campaign-copy h3,
.papa-campaign-page h2 {
  margin: 12px 0 20px;
  color: #425445;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: max(var(--site-readable-min, 0px), clamp(23px, 2.4vw, 31px));
  font-weight: 500;
  line-height: 1.5;
}
.papa-campaign-copy p:not(.campaign-current-status) { margin: 0 0 11px; color: #475449; font-size: 14px; line-height: 1.85; }
.campaign-current-status {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 11px;
  border: 1px solid #cdd9c8;
  border-radius: 2px;
  background: #f4f8f0;
  color: #405946;
  font-size: 12px;
  line-height: 1.5;
}
.campaign-current-status[data-state="ended"] { border-color: #d8d4cf; background: #f5f3ef; color: #5d625c; }
.papa-campaign-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
  margin-top: 9px;
  border-bottom: 1px solid #829883;
  color: #415e48;
  font-size: 14px;
  text-underline-offset: 4px;
}
.papa-campaign-link:hover,
.papa-campaign-link:focus-visible { color: #2e4834; border-color: currentColor; }
.papa-campaign-page { max-width: 960px; margin: 0 auto 62px; }
.papa-campaign-page .second-text { width: 100%; }
.papa-campaign-page .news-campaign-article { margin-top: 24px; }
.papa-campaign-page .campaign-original-source,
.papa-campaign-page .campaign-price-guide { font-size: 14px; line-height: 1.8; }
.papa-campaign-page a,
.first-visit-intro a { text-underline-offset: 4px; }
.first-visit-intro { max-width: 900px; margin: 0 auto 28px; color: #4b5b4c; font-size: 15px; line-height: 1.85; }
.home .first-visit-section .top-campaign-content { max-width: 1160px; }
.home .first-visit-section .top-campaign-head-comment { max-width: 620px; }

/* Each displayed amount has its own visible tax indication; table captions cover every cell. */
.amount-tax-note {
  display: inline-block;
  margin-left: .3em;
  color: #596b5b;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: max(var(--site-readable-min, 0px), 10px) !important;
  font-style: normal;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  white-space: nowrap;
  vertical-align: baseline;
}
.offer-special .amount-tax-note,
.normal-fee-amount--initial .amount-tax-note { color: #9a5147; }
.price-tbl .tax-caption,
.news-campaign-price .tax-caption {
  caption-side: top;
  margin: 0;
  padding: 4px 0 10px;
  color: #4a594b;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  text-align: right;
}
.news-campaign-price th .tax-label { font-size: max(var(--site-readable-min, 0px), .85em); font-weight: 400; white-space: nowrap; }
.price-first-visit-link { margin: -4px 0 24px; font-size: 13px; line-height: 1.6; }
.price-first-visit-link a { color: #526b53; text-decoration: underline; text-underline-offset: 3px; }
.price-first-visit-link a:hover,
.price-first-visit-link a:focus-visible { color: #385c42; }

/* Seven concern doors. Existing artwork stays untouched; new doors use quiet typeset art. */
.home .top-search-concerns { gap: 15px; }
.home .top-search-concerns-list { min-width: 0; padding: 17px; }
.home .top-search-concerns-list .concern-caption { grid-column: 1 / -1; margin: 0 0 12px; color: #455748; font-size: 13px; line-height: 1.65; }
.home .top-search-concerns-list .namelist { margin-bottom: 0; }
.home .top-search-concerns-list .namelist a { min-height: 29px; }
.concern-controls,
.concern-position { display: none; }
.concern-buttons { display: flex; gap: 7px; }
.concern-buttons button { width: 38px; height: 38px; border: 1px solid #c7d6c4; border-radius: 50%; background: #fff; color: #486047; font-size: 20px; cursor: pointer; }
.concern-buttons button:disabled { opacity: .4; cursor: default; }
.concern-buttons button:focus-visible,
#concern-track:focus-visible { outline: 2px solid #657f68; outline-offset: 2px; }
.concern-new .concern-simple-art {
  display: grid;
  place-items: center;
  min-height: 150px;
  margin-bottom: 14px;
  border: 1px solid #e2e9de;
  border-radius: 3px;
  background: radial-gradient(circle at 20% 25%, #eaf0e5, transparent 42%),
              linear-gradient(150deg, #fafbf6, #eff4ec);
  color: #869883;
  font-family: Georgia, serif;
  font-size: 12px;
  font-style: italic;
  letter-spacing: .14em;
}
.concern-new .concern-awaiting { color: #586a59; font-size: 13px; line-height: 1.7; }
.eye-care-guide { max-width: 1080px; margin: 36px auto 0; padding: 32px; border: 1px solid #dbe4d6; background: #fafbf7; }
.eye-care-inner { max-width: 800px; margin: 0 auto; }
.eye-care-kicker { color: #72886f; font-size: max(var(--site-readable-min, 0px), 11px); letter-spacing: .14em; }
.eye-care-guide h3 { margin: 7px 0 15px; color: #425a44; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 23px; font-weight: 500; }
.eye-care-guide p { margin: 0 0 12px; color: #344438; font-size: 14px; line-height: 1.85; }
.eye-care-guide a { display: inline-block; min-height: 44px; margin-top: 9px; border-bottom: 1px solid #748b76; color: #405d45; font-size: 14px; line-height: 44px; }

/* The supplied medical copy remains fully visible, never in an accordion. */
.medical-disclosure {
  clear: both;
  margin: 36px 0 32px;
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid #d7e1d3;
  border-left: 3px solid #8da48b;
  background: #fafcf8;
  color: #344438;
}
.medical-disclosure h2,
.medical-disclosure h3 { margin: 0 0 16px; color: #3a503e; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: max(var(--site-readable-min, 0px), clamp(19px, 2vw, 23px)); font-weight: 500; line-height: 1.6; }
.medical-disclosure dl { margin: 0; }
.medical-disclosure dt { margin: 16px 0 4px; color: #405a45; font-size: 15px; font-weight: 700; line-height: 1.6; }
.medical-disclosure dd,
.medical-disclosure p { margin: 0; color: #354438; font-size: 15px; line-height: 1.9; }
.medical-disclosure .medical-cost { margin-top: 20px; padding-top: 14px; border-top: 1px solid #dbe4d8; }
.medical-source-list { margin: 34px 0; padding: 22px; border-top: 1px solid #dbe4d8; }
.medical-source-list h2 { font-size: 20px; }
.medical-source-list li { margin: 7px 0; font-size: 13px; overflow-wrap: anywhere; }
.medical-shared-note { margin: 28px 0 32px; padding: 18px 22px; border: 1px solid #dae4d7; color: #344438; background: #f8faf6; font-size: 14px; line-height: 1.85; }

@media (max-width: 767px) {
  .home .papa-campaign-banner { padding: 30px 22px 34px; }
  .papa-campaign-card { padding: 19px 17px; }
  .papa-campaign-copy h3 { margin: 10px 0 12px; font-size: 22px; }
  .papa-campaign-copy p:not(.campaign-current-status) { font-size: 13px; line-height: 1.7; }
  .home .first-visit-section { padding-top: 38px; padding-bottom: 38px; }
  .home .first-visit-section .top-campaign-head { margin-bottom: 8px; }
  .home .first-visit-section .campaign-controls { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin: 14px auto 10px; }
  .home .first-visit-section .campaign-controls p { font-size: 12px; line-height: 1.6; }
  .home .first-visit-section .campaign-hint-desktop { display: none; }
  .home .first-visit-section .campaign-hint-mobile { display: inline; }
  .home .first-visit-section .campaign-buttons { display: flex; }
  .home .first-visit-section .campaign-position { display: block; margin: 8px auto 14px; }
  .home .first-visit-section .home-offers,
  .home .first-visit-section .home-offers.edge-auto-scrolling,
  .home .first-visit-section .home-offers.edge-auto-settled {
    display: flex;
    grid-template-columns: none;
    align-items: stretch;
    gap: 14px;
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    padding: 2px 32px 13px 2px;
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: auto;
  }
  .home .first-visit-section .home-offers .offer-card,
  .home .first-visit-section .home-offers .offer-card:hover,
  .home .first-visit-section .home-offers .offer-card:focus-within {
    display: flex;
    flex: 0 0 calc(100% - 42px);
    align-self: stretch;
    width: auto;
    min-width: 0;
    scroll-snap-align: start;
    transform: none !important;
  }
  .home .first-visit-section .offer-content { padding: 15px 15px 11px; }
  .home .first-visit-section .offer-heading { padding-bottom: 8px; }
  .home .first-visit-section .offer-variant { padding: 8px 0; }
  .home .first-visit-section .offer-tags li { font-size: max(var(--site-readable-min, 0px), 11px); }
  .home .first-visit-section .offer-detail { min-height: 44px; padding-top: 8px; }

  .home #treatments { padding-top: 42px; padding-bottom: 46px; }
  .home #treatments .treatment-controls { display: flex; }
  .home #treatments .treatment-position { display: block; margin: 8px auto 12px; }
  .home #treatments .treatment-track,
  .home #treatments .treatment-track.edge-auto-scrolling,
  .home #treatments .treatment-track.edge-auto-settled {
    display: flex;
    grid-template-columns: none;
    align-items: stretch;
    gap: 14px;
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    padding: 2px 32px 14px 2px;
    box-sizing: border-box;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: auto;
  }
  .home #treatments .treatment-slide,
  .home #treatments .treatment-slide:hover,
  .home #treatments .treatment-slide:focus-visible {
    display: flex;
    flex: 0 0 calc(100% - 42px);
    align-self: stretch;
    width: auto;
    min-width: 0;
    scroll-snap-align: start;
    transform: none !important;
  }
  .home #treatments .treatment-slide > img { aspect-ratio: 3/2; height: auto; object-fit: contain; }
  .home #treatments .treatment-slide-text { padding: 15px 13px 15px; }
  .home #treatments .treatment-controls p { font-size: 12px; }
  .home .top-search-concerns-list { padding: 13px 14px; }
  .home .concern-controls { display: flex; align-items: center; justify-content: space-between; gap: 9px; max-width: 680px; margin: 12px auto 7px; color: #586f5a; font-size: 12px; line-height: 1.5; }
  .home .concern-position { display: block; max-width: 680px; margin: 6px auto 10px; color: #627662; font-size: 12px; text-align: right; font-variant-numeric: tabular-nums; }
  .home #concern-track { display: flex; align-items: stretch; gap: 12px; width: 100%; max-width: 680px; margin: 0 auto; padding: 2px 32px 10px 2px; box-sizing: border-box; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; touch-action: auto; }
  .home #concern-track .top-search-concerns-list { flex: 0 0 calc(100% - 40px); align-self: stretch; width: auto; min-width: 0; scroll-snap-align: start; }
  .home .top-search-concerns-list > img.concern-detail { height: 82px; width: 82px; }
  .home .concern-new .concern-simple-art { width: 82px; height: 82px; min-height: 0; margin: 0; font-size: max(var(--site-readable-min, 0px), 10px); letter-spacing: .06em; }
  .home .concern-new .concern-awaiting { align-self: center; margin: 0; }
  .home .top-search-concerns-list .top-search-concerns-title { margin-bottom: 8px; }
  .home .top-search-concerns-list .concern-caption { margin-bottom: 9px; font-size: 12px; line-height: 1.6; }
  .eye-care-guide { margin: 22px auto 0; padding: 20px 16px; }
  .eye-care-guide h3 { font-size: 21px; }
  .medical-disclosure { margin: 26px 0; padding: 18px 16px; }
  .medical-disclosure dd, .medical-disclosure p { font-size: 14px; }
}
@media (max-width: 359px) {
  .home .first-visit-section .home-offers .offer-card,
  .home #treatments .treatment-slide { flex-basis: calc(100% - 36px); }
  .home .first-visit-section .offer-prices { flex-wrap: wrap; }
  .home .top-search-concerns-list > img.concern-detail,
  .home .concern-new .concern-simple-art { width: 72px; height: 72px; }
  .home #concern-track .top-search-concerns-list { flex-basis: calc(100% - 35px); }
}
@media (prefers-reduced-motion: reduce) {
  .home .first-visit-section .home-offers,
  .home #treatments .treatment-track,
  .home #concern-track { scroll-behavior: auto; }
}

/* Mobile density: keep every paragraph, photo and link; avoid repeated tall card stacks. */
@media (max-width: 767px) {
  .home main > .top-search { padding: 34px 18px !important; }
  .home main > .first-visit-section { padding: 34px 18px !important; }
  .home main > .home-message { padding: 38px 18px !important; gap: 28px !important; }
  .home main > .top-clinic { padding: 38px 18px !important; }
  .home main > .home-social { padding: 38px 18px !important; gap: 28px !important; }
  .home #treatments { padding: 32px 18px 36px !important; }
  .home #treatments .treatment-slide { align-self: flex-start; }
  .home #treatments .treatment-controls { margin-bottom: 12px; }
  .home #treatments .treatment-browse { margin-top: 16px; }
  .home .space-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  .home .space-gallery figure:first-child { grid-column: auto !important; }
  .home .space-gallery img,
  .home .space-gallery figure:first-child img { width: 100% !important; height: 95px !important; object-fit: cover !important; }
  .home .top-clinic .clinic-map-block { margin-top: 25px !important; }
  .home .top-clinic .clinic-map-frame { height: 250px !important; }
  .home .related-sites { margin: 24px 16px 28px !important; }
  .home .related-sites-heading h2 { text-wrap: balance; }
  .home .related-sites-grid { gap: 10px !important; }
  .home .related-sites-grid .related-site-card { display: grid !important; grid-template-columns: 100px minmax(0, 1fr) !important; min-height: 158px !important; }
  .home .related-site-photo { width: 100% !important; height: 100% !important; }
  .home .related-site-photo img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
  .home .related-site-copy { padding: 10px 11px !important; }
  .home .social-links { gap: 8px !important; margin-top: 12px !important; }
  .home .social-card { padding: 14px !important; }
  .home .cosme-home-teaser { margin-top: 24px !important; margin-bottom: 24px !important; }
}
@media (max-width: 359px) {
  .home main > .top-search,
  .home main > .first-visit-section,
  .home main > .home-message,
  .home main > .top-clinic,
  .home main > .home-social,
  .home #treatments { padding-right: 12px !important; padding-left: 12px !important; }
  .home .first-visit-section .home-offers .offer-card,
  .home #treatments .treatment-slide { flex-basis: calc(100% - 24px); }
  .home .first-visit-section .offer-heading h3 { font-size: 18.5px !important; letter-spacing: 0; }
  .home .related-sites-grid .related-site-card { grid-template-columns: 82px minmax(0, 1fr) !important; min-height: 148px !important; }
  .home .related-site-copy { padding: 8px !important; }
  .home .related-site-name { font-size: 17px !important; }
  .home .related-site-description,
  .home .related-site-cta { font-size: 12px !important; line-height: 1.45 !important; }
  .home .papa-campaign-banner { padding-top: 24px; padding-bottom: 24px; }
  .home .papa-campaign-card { padding: 15px 13px; }
}

/* lower-links.css: original cascade order */
/* Shared lower-page links: feedback only, without changing their content or layout. */
.related-site-card,
.home .social-links .social-card {
  transition: background-color 180ms ease, border-color 180ms ease,
              box-shadow 180ms ease, transform 180ms ease;
}
.site-footer .footer-nav a {
  border-radius: 3px;
  transition: background-color 180ms ease, color 180ms ease,
              text-decoration-color 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .related-site-card:hover,
  .home .social-links .social-card:hover {
    background-color: #f2f6ed;
    border-color: #a2b69d;
    box-shadow: 0 10px 24px rgba(66, 87, 62, .15);
    transform: translateY(-2px);
  }
  .site-footer .footer-nav a:hover {
    background-color: rgba(218, 231, 211, .78);
    color: #365841;
    text-decoration: underline;
    text-decoration-color: #608565;
    text-underline-offset: 3px;
  }
}

.related-site-card:focus-visible,
.home .social-links .social-card:focus-visible {
  outline: 3px solid #607f61;
  outline-offset: 3px;
  background-color: #f2f6ed;
  border-color: #a2b69d;
  box-shadow: 0 10px 24px rgba(66, 87, 62, .15);
}
.site-footer .footer-nav a:focus-visible {
  outline: 2px solid #607f61;
  outline-offset: 2px;
  background-color: rgba(218, 231, 211, .78);
  color: #365841;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.related-site-card:active,
.home .social-links .social-card:active {
  background-color: #edf3e7;
  border-color: #b0c1aa;
  transform: none;
}
.site-footer .footer-nav a:active { background-color: #e2ecdc; }

/* Ignore sticky emulated hover on touch devices; active and focus remain perceptible. */
@media (hover: none), (pointer: coarse) {
  .related-site-card:hover:not(:active):not(:focus-visible) {
    background-color: #fffefa;
    border-color: #dbe3d6;
    box-shadow: 0 6px 24px rgba(76, 91, 69, .035);
    transform: none;
  }
  .home .social-links .social-card:hover:not(:active):not(:focus-visible) {
    background-color: #fcfbf8;
    border-color: #909f89;
    box-shadow: none;
    transform: none;
  }
  .site-footer .footer-nav a:hover:not(:active):not(:focus-visible) {
    background-color: transparent;
    text-decoration: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .related-site-card,
  .home .social-links .social-card,
  .site-footer .footer-nav a { transition: none; }
  .related-site-card:hover,
  .home .social-links .social-card:hover { transform: none; }
}

/* header-feedback.css: original cascade order */
/* Feedback only for the fixed header and the eight directory triggers. */
@media (min-width: 768px) {
  .site-header #navigation > a[data-directory] {
    transition: background-color 165ms ease, color 165ms ease, box-shadow 165ms ease;
  }
  .site-header #navigation > a[data-directory][aria-expanded="true"] {
    background-color: #edf3e9;
    color: #35553b;
    box-shadow: inset 0 -2px #718f70;
  }
  .site-header .header-actions > .branded-line {
    transition: background-color 165ms ease, border-color 165ms ease, box-shadow 165ms ease;
  }
  .site-header .header-actions .site-menu-trigger {
    transition: background-color 165ms ease, border-color 165ms ease,
                color 165ms ease, box-shadow 165ms ease;
  }
  .site-header .header-actions .site-menu-trigger[aria-expanded="true"] {
    background-color: #eaf1e6;
    border-color: #789374;
    color: #354e39;
    box-shadow: 0 4px 12px rgba(62, 81, 58, .12);
  }
}

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
  .site-header #navigation > a[data-directory]:hover:not([data-directory-suppressed]) {
    background-color: #edf3e9;
    color: #35553b;
    box-shadow: inset 0 -2px #718f70;
  }
  .site-header .header-actions > .branded-line:hover {
    background-color: #5a6e55;
    border-color: #5a6e55;
    color: #fff;
    box-shadow: 0 5px 14px rgba(56, 80, 52, .2);
    transform: none;
  }
  .site-header .header-actions .site-menu-trigger:hover {
    background-color: #eaf1e6;
    border-color: #789374;
    color: #354e39;
    box-shadow: 0 4px 12px rgba(62, 81, 58, .12);
    outline: none;
  }
}

@media (min-width: 768px) {
  .site-header #navigation > a[data-directory]:focus-visible {
    outline: 2px solid #617f60;
    outline-offset: -2px;
    background-color: #edf3e9;
    color: #35553b;
    box-shadow: inset 0 -2px #718f70;
  }
  .site-header .header-actions > .branded-line:focus-visible {
    outline: 3px solid #506c4e;
    outline-offset: 3px;
    background-color: #5a6e55;
    border-color: #5a6e55;
    box-shadow: 0 5px 14px rgba(56, 80, 52, .2);
  }
  .site-header .header-actions .site-menu-trigger:focus-visible {
    outline: 2px solid #617f60;
    outline-offset: 2px;
    background-color: #eaf1e6;
    border-color: #789374;
    box-shadow: 0 4px 12px rgba(62, 81, 58, .12);
  }
  .site-header .header-actions > .branded-line:active { background-color: #52674f; }
  .site-header .header-actions .site-menu-trigger:active { background-color: #e0eadb; }
}

@media (max-width: 767px) {
  .site-header .header-actions .menu-toggle:active:not([aria-expanded="true"]) {
    background-color: #e9f0e4;
    border-color: #688162;
  }
  .site-header .header-actions .menu-toggle:focus-visible {
    outline: 2px solid #617f60;
    outline-offset: 2px;
  }
}

@media (max-width: 767px) and (hover: none),
       (max-width: 767px) and (pointer: coarse) {
  .site-header .header-actions .menu-toggle:hover:not([aria-expanded="true"]):not(:active):not(:focus-visible) {
    background-color: #fdfcf8;
    border-color: #788a72;
    color: #344434;
    box-shadow: none;
  }
}

/* A touch device may emulate hover after tapping: only active/focus shows feedback. */
@media (min-width: 768px) and (hover: none),
       (min-width: 768px) and (pointer: coarse) {
  .site-header .header-actions > .branded-line:hover:not(:active):not(:focus-visible) {
    background-color: #737d69;
    border-color: #737d69;
    box-shadow: none;
    transform: none;
  }
  .site-header .header-actions .site-menu-trigger:hover:not([aria-expanded="true"]):not(:active):not(:focus-visible) {
    background-color: #f8faf5;
    border-color: #a8b79f;
    box-shadow: none;
    outline: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header #navigation > a[data-directory],
  .site-header .header-actions > .branded-line,
  .site-header .header-actions .site-menu-trigger { transition: none; }
}

/* medication-update.css: original cascade order */
/* Scoped additions for the confirmed October 2026 medication/menu update. */
main .medication-update-table { width: 100%; table-layout: fixed; }
main .medication-update-table th[scope="row"] { width: 65%; text-align: left; white-space: normal; overflow-wrap: anywhere; padding: 14px; color: #485a48; font-weight: 500; }
main .medication-update-table th[scope="row"] small { display: block; font-size: 12px; line-height: 1.6; font-weight: 400; }
main .medication-update-table td { white-space: nowrap; }
main .medication-image-note { display: block; margin-top: 9px; color: #61705e; font-size: 12px; line-height: 1.65; white-space: normal; overflow-wrap: anywhere; }
main .price-included-note { margin-top: -30px; margin-bottom: 42px; }
@media (max-width: 767px) {
  main .medication-update-table th[scope="row"] { padding: 12px 10px; font-size: 13px; }
  main .medication-update-table td { padding: 12px 8px; }
}

/* clinical-content.css: original cascade order */
.clinical-supervision{max-width:1120px;margin:14px auto 0;padding:0 24px;color:#626b57;font-size:12px;line-height:1.8}.clinical-supervision a{text-decoration:underline;text-underline-offset:3px}.clinical-guide{max-width:1040px;margin:36px auto;padding:clamp(20px,3vw,44px);border:1px solid #dce0d3;border-radius:5px;background:#faf9f4;color:#394233;line-height:1.95;text-align:left}.clinical-guide h2{margin:32px 0 14px;font-family:var(--serif,serif);font-size:max(var(--site-readable-min, 0px), clamp(21px,2.2vw,28px));line-height:1.6;color:#435039}.clinical-guide h2:first-child{margin-top:0}.clinical-guide h3{margin:24px 0 10px;font-size:18px;line-height:1.7}.clinical-guide p{margin:12px 0;font-size:16px;overflow-wrap:anywhere}.clinical-guide li{margin:9px 0;font-size:16px}.clinical-guide ul,.clinical-guide ol{padding-left:1.6em}.clinical-guide a{color:#526343;text-decoration:underline;text-underline-offset:4px}.clinical-flow{padding:16px 20px 16px 42px;background:#eef0e7;border-radius:4px}.clinical-faq{margin:12px 0;border:1px solid #d8ddd0;background:#fffef9;border-radius:4px}.clinical-faq summary{cursor:pointer;padding:17px 20px;line-height:1.65;font-size:16px;font-weight:600;list-style-position:outside;margin-left:18px}.clinical-faq p{margin:0;padding:2px 22px 20px}.clinical-faq[open] summary{color:#4c603c}.clinical-faq summary:focus-visible{outline:2px solid #6e805c;outline-offset:3px}.clinical-table-wrap{overflow:auto;max-width:100%;margin:22px 0}.clinical-guide table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.7;text-align:left}.clinical-guide th,.clinical-guide td{padding:13px 15px;border:1px solid #dce0d3;vertical-align:top;overflow-wrap:anywhere}.clinical-guide th{background:#eef0e8}.clinical-guide table caption{padding:10px 0;text-align:left}.clinical-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px!important}.clinical-links a{padding:9px 13px;background:#edf0e5;border:1px solid #cfd7c3;border-radius:3px}.clinical-notice{max-width:1000px;margin:24px auto;padding:15px 20px;border-left:3px solid #a5ae8e;background:#f0f2e9;line-height:1.8}.campaign-ended-action{color:#666e5c;font-weight:600}.concern-hero{max-width:800px;margin:20px auto;text-align:center}.concern-hero img{width:min(100%,400px);height:auto;border-radius:5px}.ai-image-caption{display:block;color:#727968;font-size:max(var(--site-readable-min, 0px), 11px);line-height:1.7;margin:7px 0 13px;text-align:center}.clinical-overview-note{margin:16px 0;font-size:14px;line-height:1.85}.concern-overview-link{display:block;padding:10px 13px;margin:14px 0 0;color:#526343;background:#f0f2e9;font-size:14px;font-weight:600;text-align:center;text-decoration:none;border:1px solid #dce1d1;border-radius:3px}.concern-overview-link:focus-visible{outline:2px solid #728364;outline-offset:3px}.site-menu-group-title,.nav-directory-group-title{margin:0 0 10px;color:#55634a;font-weight:600;font-size:16px;line-height:1.7}.clinical-guide .medication-update-table{margin:20px 0 28px}.clinical-guide .clinical-faq p{font-size:15px}.privacy h1{font-size:24px;line-height:1.6}.privacy{margin:30px auto;padding:24px;max-width:960px;font-size:16px;line-height:1.8}.clinical-guide .comparison-note{font-size:14px;color:#65705a}@media(max-width:767px){.clinical-guide{margin:24px 0;padding:20px 16px;border-radius:0}.clinical-guide h2{font-size:22px}.clinical-guide p,.clinical-guide li{font-size:15px}.clinical-table-wrap table{min-width:650px}.clinical-supervision{font-size:max(var(--site-readable-min, 0px), 11px);padding:0 18px}.clinical-links{flex-direction:column}.clinical-faq summary{padding:15px 13px;font-size:15px}.clinical-faq p{padding:0 16px 16px}.clinical-guide td,.clinical-guide th{padding:10px 12px}.ai-image-caption{font-size:max(var(--site-readable-min, 0px), 10px)}}@media(hover:hover) and (pointer:fine){.clinical-links a:hover,.concern-overview-link:hover{background:#e1e8d7;color:#34492b}.clinical-faq summary:hover{background:#f1f3e9}}@media(prefers-reduced-motion:reduce){.clinical-guide *{scroll-behavior:auto}}

.home-hero .hero-ai-caption { position: absolute; inset-inline-end: 2%; bottom: .625rem; max-width: 48%; padding: .2rem .35rem; z-index: 3; background: rgba(250,247,241,.86); }
.treatment-slide > .ai-image-caption { padding-inline: .75rem; margin-bottom: 0; }

/* aga-seo-layout.css: original cascade order */
/*
 * AGA/SEO layout addition — load after the existing page styles.
 * This file intentionally does not replace site-core or change menu JavaScript.
 */

:root {
  /* ResizeObserver supplied by the integrating parent: content height only, excluding safe area. */
  --aga-fixed-bar-content-height: 0px;
  --aga-safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --aga-fixed-bar-reserve: calc(
    var(--aga-fixed-bar-content-height) + var(--aga-safe-area-bottom)
  );
}

/* Reserve document space only on pages that actually include the fixed booking bar. */
body:has(.mobile-book) {
  padding-bottom: var(--aga-fixed-bar-reserve);
}

.mobile-book {
  padding-bottom: var(--aga-safe-area-bottom);
}

/* CSS backgrounds have no img srcset/sizes. image-set selects one density candidate.
   Existing background-size/position/repeat declarations remain in the current CSS cascade. */
.home .home-hero .hero-flora {
  background-image: image-set(
    url("/speed-assets/hero-flora-transparent-lossless-v1-480w-q78.762d76c930447c67.webp") type("image/webp") 1x,
    url("/speed-assets/hero-flora-transparent-lossless-v1-936w-q78.5237a06a619a3634.webp") type("image/webp") 2x
  );
}

/* Keep the existing horizontal concerns scroller. Only each individual card becomes a column. */
.home .top-search-concerns-list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-block-size: 0;
}

/* Equal minimum text regions align each card image at its top edge at the normal text size.
   There is deliberately no fixed/max height: browser text enlargement may grow the region. */
.home .top-search-concerns-list > .top-search-concerns-title {
  min-block-size: 1.75em;
}

.home .top-search-concerns-list > .concern-caption {
  min-block-size: 7.2em;
  overflow: visible;
}

.home .top-search-concerns-list > .concern-detail {
  display: block;
  flex: none;
  margin-block-start: 0;
}

/* Do not change .top-search-concerns to flex-wrap; it remains the existing horizontal slider. */
.home .top-search-concerns-list > .namelist {
  margin-block-start: auto;
}

/* A separate, optional static grid is available only if a future non-slider card list is added.
   It does not target .top-search-concerns and therefore cannot turn the live slider into wrapping flex. */
.home .concern-card-grid[data-concern-layout="grid"] {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.25rem;
}

.home .concern-card-grid[data-concern-layout="grid"] > * {
  flex: 0 1 min(100%, 20rem);
}

/* Preserve the 24-treatment horizontal scroller; make every card's detail CTA sit on its lower edge. */
.home #treatments .treatment-slide {
  display: flex;
  flex-direction: column;
  min-block-size: 100%;
}

.home #treatments .treatment-slide > img {
  flex: none;
}

.home #treatments .treatment-slide-text {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-block-size: 0;
}

.home #treatments .treatment-slide-text > span:last-child {
  margin-top: auto;
}

/* The previously large bottom gap is reduced from 80px to roughly half without changing card styling. */
.home .related-sites {
  margin-bottom: 40px;
}

@media (max-width: 767px) {
  .home .top-search-concerns-list > .top-search-concerns-title {
    min-block-size: auto;
  }

  .home .top-search-concerns-list > .concern-caption {
    min-block-size: 6.6em;
  }

  .home .related-sites {
    margin-bottom: 26px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home .treatment-slide,
  .home .top-search-concerns-list {
    scroll-behavior: auto;
  }
}

/* mobile-layout-refine.css: original cascade order */
/* A-1〜A-3: mobile-only layout refinements. Desktop keeps the original table and header. */
.concern-mobile-cards {
  display: none;
}

@media (max-width: 767px) {
  /* A-1: keep the closed header close to 64px and remove only the English brand line. */
  .site-header .header-inner {
    height: 64px;
    padding: 8px 20px;
    gap: 10px;
  }

  .site-header .brand {
    min-width: 0;
  }

  .site-header .brand-name {
    font-size: 16px !important;
    line-height: 1.25;
    white-space: nowrap;
  }

  .site-header .brand-name small {
    font-size: 12px;
    line-height: 1.3;
  }

  .site-header .brand-name small span {
    display: none;
  }

  .site-header .header-actions {
    flex: none;
    gap: 0;
    margin: 0;
  }

  .site-header .header-actions > :not(.menu-toggle) {
    display: none;
  }

  .site-header .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 8px 11px;
    font-size: 12px;
    line-height: 1.3;
  }

  /* The existing drawer styling applies below this point; this extends its breakpoint to 767px. */
  .site-header #navigation:not(.open) {
    display: none;
  }

  @media (min-width: 761px) {
    .site-header #navigation.open {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      max-height: 70dvh;
      overflow: auto;
      padding: 15px 22px;
      font-size: 12px;
    }
  }

  /* A-3: phrase-aware breaking where supported; otherwise use ordinary natural line wrapping. */
  body :is(
    h1,
    h2,
    h3,
    h4,
    a,
    button,
    th,
    td,
    .price-tbl .ttl,
    .price-tbl .sub,
    .price-tbl .price,
    .price-item,
    .price-name,
    .price-title,
    .price-label,
    .price-menu
  ) {
    overflow-wrap: normal;
    word-break: normal;
  }

  @supports (word-break: auto-phrase) {
    body :is(
      h1,
      h2,
      h3,
      h4,
      a,
      button,
      th,
      td,
      .price-tbl .ttl,
      .price-tbl .sub,
      .price-tbl .price,
      .price-item,
      .price-name,
      .price-title,
      .price-label,
      .price-menu
    ) {
      word-break: auto-phrase;
    }
  }

  /* A-2: the original table remains in the DOM but is replaced visually by linked content clones. */
  .clinical-table-wrap.has-concern-mobile-cards {
    overflow: visible;
  }

  .clinical-table-wrap.has-concern-mobile-cards > table {
    display: none;
  }

  .concern-mobile-cards {
    display: grid;
    gap: 14px;
    margin: 22px 0;
  }

  .concern-mobile-card {
    min-width: 0;
    overflow: visible;
    border: 1px solid #d8ddd0;
    border-radius: 5px;
    background: #fffef9;
    color: #394233;
  }

  .concern-mobile-card__header {
    padding: 13px 14px 12px;
    border-bottom: 1px solid #d8ddd0;
    background: #eef0e8;
  }

  .concern-mobile-card__label {
    display: block;
    margin-bottom: 4px;
    color: #5d6a55;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: .04em;
  }

  .concern-mobile-card__title {
    margin: 0;
    color: #435039;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.6;
  }

  .concern-mobile-card__fields {
    margin: 0;
  }

  .concern-mobile-card__field {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    padding: 11px 14px 12px;
    border-top: 1px solid #e1e4db;
  }

  .concern-mobile-card__field:first-child {
    border-top: 0;
  }

  .concern-mobile-card__field dt {
    margin: 0;
    color: #5a6754;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: .035em;
  }

  .concern-mobile-card__field dd {
    margin: 0;
    min-width: 0;
    color: #394233;
    font-size: 15px;
    line-height: 1.8;
  }

  .concern-mobile-card :is(a, button, small, sub, sup) {
    font-size: inherit;
  }

  .concern-mobile-card a {
    color: #526343;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
}

@media (max-width: 767px) {
  article.second .intro .text { min-width: 0; max-width: 100%; }
}

/* mobile-detail-refine.css: original cascade order */
/* B5 / B6 / B8 / B13 — mobile-only. Desktop retains the original document and cascade. */
@media (max-width: 767px) {
  .mobile-detail-rate-summary {
    max-width: 680px;
    margin: 18px auto 28px;
    padding: 15px 16px 14px;
    border: 1px solid #d8e1d3;
    border-left: 3px solid #8da48b;
    background: #fafcf8;
    color: #344438;
    box-sizing: border-box;
  }

  .mobile-detail-rate-summary__heading {
    margin: 0 0 8px;
    color: #405a45;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.6;
  }

  .mobile-detail-rate-summary__list {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .mobile-detail-rate-summary__list li {
    display: grid;
    gap: 1px;
    font-size: 13px;
    line-height: 1.7;
    overflow-wrap: anywhere;
    word-break: auto-phrase;
  }

  .mobile-detail-rate-summary__target {
    color: #4c5d4d;
    font-weight: 600;
  }

  .mobile-detail-rate-summary__rates {
    color: #344438;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }

  .mobile-detail-rate-summary__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: 8px;
    border-bottom: 1px solid #748b76;
    color: #405d45;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.6;
    text-decoration: none;
  }

  .mobile-detail-rate-summary__link:focus-visible {
    outline: 2px solid #657f68;
    outline-offset: 3px;
  }

  table#mobile-detail-refine-price-table {
    scroll-margin-top: 78px;
  }

  /* The original heading remains in the HTML and is restored at desktop width. */
  .mobile-detail-refine--same-as-h1 {
    display: none !important;
  }

  /* This line is relocated immediately before reference material by the reversible script. */
  .clinical-supervision.mobile-detail-refine--supervision {
    max-width: 1040px;
    margin: 20px auto 10px;
    padding: 0 18px;
    color: #626b57;
    font-size: 12px;
    line-height: 1.7;
    text-align: right;
  }

  .first-visit-page .mobile-detail-refine--first-visit-guide {
    margin: 22px 0 28px;
    padding: 18px 16px;
  }

  .first-visit-page .mobile-detail-refine--first-visit-guide h2 {
    margin-top: 24px;
  }

  .first-visit-page .mobile-detail-refine--first-visit-guide h2:first-child {
    margin-top: 0;
  }

  .first-visit-page .offer-machine.mobile-detail-refine--duplicate-subname {
    display: none;
  }
}

/* mobile-content-refine.css: original cascade order */
.mobile-greeting-excerpt,.mobile-treatment-categories,.mobile-line-social,.mobile-line-footer,.mobile-facial-groups,.mobile-price-jumps,.mobile-post-navigation{display:none}
@media(max-width:767px){
 .home .category-gateway,.home .top-hero-comment,.home .top-hero-sign{display:none!important}
 .mobile-greeting-excerpt{display:block;font-size:16px;line-height:1.9;margin:0 0 18px}
 .home #treatments>.treatment-controls,.home #treatment-track,.home #treatments>.treatment-position{display:none!important}
 .mobile-treatment-categories{display:block;min-width:0;width:100%}
 .mobile-category-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}
 .mobile-category-count,.mobile-category-conditions{font-size:12px;line-height:1.7;color:#5d6351}
 .mobile-category-buttons{display:flex;gap:8px}
 .mobile-category-buttons button{width:44px;height:44px;border:1px solid #d6dacb;border-radius:50%;background:#faf9f5;color:#425040;font-size:18px;cursor:pointer}
 .mobile-category-track{display:flex;position:relative;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 12px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
 .mobile-category-card{flex:0 0 84%;scroll-snap-align:start;display:block;color:inherit;text-decoration:none;background:#f8f7f1;border:1px solid #dddcca;border-radius:16px;overflow:hidden;max-width:360px}
 .mobile-category-card>img{display:block;width:100%;height:170px;object-fit:cover}
 .mobile-category-copy{padding:16px}
 .mobile-category-copy h3{font-size:20px;line-height:1.5;margin:0 0 10px;min-height:30px}
 .mobile-category-fee{font-family:Arial,sans-serif;font-size:15px;line-height:1.6;color:#9A5147;white-space:nowrap;margin:0 0 12px}
 .mobile-category-link{font-size:14px;color:#4d5a43}
 .mobile-category-conditions{margin:8px 0 0}
 .mobile-line-social{display:flex!important}
 .mobile-line-footer{display:inline-block}
 .mobile-facial-page article.second .second-text>h3.midashi03{display:none}
 .mobile-facial-page article.second .second-text>ul.treatment-list{display:none!important}
 .mobile-facial-groups{display:block}
 .mobile-facial-group{scroll-margin-top:110px;margin:28px 0}
 .mobile-facial-group>h3{font-size:22px;line-height:1.5;margin:0 0 16px;color:#44513d}
 .mobile-facial-page .mobile-facial-list{display:flex!important;flex-direction:column;gap:12px;margin:0!important;padding:0!important;list-style:none}
 .mobile-facial-page .mobile-facial-list>li{width:100%!important;max-width:none!important;margin:0!important;min-height:0!important}
 .mobile-facial-page .mobile-facial-list>li>a{display:grid!important;grid-template-columns:92px minmax(0,1fr);align-items:start;column-gap:12px;row-gap:6px;padding:14px!important;min-height:0!important;border-radius:14px}
 .mobile-facial-page .mobile-facial-list>li>a>img,.mobile-facial-page .mobile-facial-list .campaign-image-wrap{grid-column:1;grid-row:1;width:92px!important;min-width:0!important;height:auto!important;margin:0!important;aspect-ratio:1}
 .mobile-facial-page .mobile-facial-list>li>a>img,.mobile-facial-page .mobile-facial-list .campaign-image-wrap img{width:92px!important;height:92px!important;object-fit:cover;max-width:100%}
 .mobile-facial-page .mobile-facial-list>li>a>dl{grid-column:2;grid-row:1;margin:0!important;min-width:0}
 .mobile-facial-page .mobile-facial-list dt{font-size:16px!important;line-height:1.55;margin:0 0 6px}
 .mobile-facial-page .mobile-facial-list dt>span{font-size:12px;line-height:1.5}
 .mobile-facial-page .mobile-facial-list dd{font-size:13px!important;line-height:1.75;margin:0!important}
 .mobile-facial-page .mobile-facial-list .normal-fee{grid-column:2;margin:0!important;min-height:0!important;padding:8px 0 0!important}
 .mobile-facial-page .mobile-facial-list .normal-fee-line{margin:0!important;padding:4px 0!important}
 .mobile-facial-page .mobile-facial-list .normal-fee-pair{display:flex!important;flex-wrap:wrap;gap:5px 10px;align-items:center}
 .mobile-facial-page .mobile-facial-list .normal-fee-amount{font-size:14px!important;min-height:0!important;padding:0!important}
 .mobile-facial-page .mobile-facial-list .normal-fee-unit,.mobile-facial-page .mobile-facial-list .normal-fee-condition,.mobile-facial-page .mobile-facial-list .normal-fee-note{font-size:12px!important;line-height:1.6}
 .mobile-facial-page .mobile-facial-list .normal-fee-money{font-size:15px!important;white-space:nowrap}
 .mobile-facial-page .mobile-facial-list .normal-fee-value{font-size:15px!important}
 .mobile-facial-page .mobile-facial-list .ai-image-caption{grid-column:1 / -1;font-size:12px!important;margin:0!important;line-height:1.6}
 .mobile-facial-page .mobile-facial-list .treatment-number{display:none}
 .mobile-facial-page .mobile-facial-list .mobile-duplicate-subname{display:none}
 .mobile-price-page article.second .tax-caption,.mobile-price-page article.second .second-text>.tab{display:none!important}
 .mobile-price-jumps{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
 .mobile-price-jumps a{display:block;background:#f1f3e8;border:1px solid #d2d8c4;border-radius:20px;padding:9px 13px;font-size:14px;color:#45513b;text-decoration:none}
 .mobile-price-anchor{display:block;scroll-margin-top:110px}
 .mobile-news-post .mobile-archive-obsolete,.mobile-news-post .pre_next_btns{display:none!important}
 .mobile-post-navigation{display:flex;flex-direction:column;gap:10px;margin:24px 0;padding:18px;border:1px solid #d9ddcb;border-radius:14px;background:#f8f8f1}
 .mobile-post-navigation a{display:block;font-size:16px;line-height:1.7;color:#45513b;text-decoration:none;padding:6px 0}
 .mobile-post-back{border-block:1px solid #dddcca;padding:12px 0!important}
 .nav-directory-mobile-concern-link{font-size:14px;line-height:1.7}
 .mobile-category-card:focus-visible,.mobile-category-buttons button:focus-visible,.mobile-price-jumps a:focus-visible,.mobile-post-navigation a:focus-visible{outline:2px solid #526244;outline-offset:3px}
}
@media(max-width:360px){.mobile-category-fee{font-size:14px}.mobile-facial-page .mobile-facial-list>li>a{grid-template-columns:76px minmax(0,1fr);column-gap:10px}.mobile-facial-page .mobile-facial-list>li>a>img,.mobile-facial-page .mobile-facial-list .campaign-image-wrap{width:76px!important}.mobile-facial-page .mobile-facial-list .campaign-image-wrap img{width:76px!important;height:76px!important}}
@media(prefers-reduced-motion:reduce){.mobile-category-track{scroll-behavior:auto}}

@media(min-width:768px){.mobile-greeting-excerpt,.mobile-treatment-categories,.mobile-line-social,.mobile-line-footer,.mobile-facial-groups,.mobile-price-jumps,.mobile-post-navigation{display:none!important}}
@media(max-width:767px){.mobile-category-card>.ai-image-caption{display:block;position:static;font-size:12px;line-height:1.6;margin:6px 12px 0;color:#676f5b}}
