/* 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}}
