@layer base {
  [id] { scroll-margin-top: calc(var(--layout-header-height) + var(--space-4)); }
    address { font-style: normal; }
    h1, h2, h3, p { margin-block-start: 0; }
}

@layer components {
  .c-button--line { color: var(--color-text-on-primary); background: #4DC764; border-color: #4DC764; box-shadow: var(--shadow-button); }
    .c-button--line:hover { color: var(--color-text-on-primary); filter: brightness(.94); }
    .c-editorial-heading { display: grid; gap: var(--space-2); justify-items: center; text-align: center; }
    .c-editorial-heading__en { margin: 0; color: var(--color-brand-accent); font-family: Georgia, serif; font-size: var(--font-size-md); letter-spacing: var(--letter-spacing-wider); }
    .c-editorial-heading__title { margin: 0; font-family: var(--font-family-display); font-size: var(--font-size-xl); line-height: var(--line-height-tight); letter-spacing: var(--letter-spacing-wide); }
    .c-editorial-heading--light, .c-editorial-heading--light .c-editorial-heading__title { color: var(--color-text-inverse); }
    .c-text-link { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: var(--font-weight-bold); }
    .c-text-link::after { content: "→"; }
    .c-case-card { position: relative; display: flex; width: 100%; min-width: 0; flex-direction: column; gap: 0; padding: 21px; border: 1px solid var(--color-border-default); background: var(--color-bg-page); box-shadow: 0 1px 1.5px rgba(61, 58, 53, .08); }
    .c-case-card__number { position: absolute; z-index: 1; top: 10px; left: -7px; display: flex; width: 87.484px; height: 30px; align-items: center; margin: 0; padding-inline-start: 16px; color: var(--color-text-on-primary); background: var(--color-brand-primary); font-family: var(--font-family-en); font-size: var(--font-size-base); font-weight: var(--font-weight-normal); line-height: 1; letter-spacing: .8312px; white-space: nowrap; }
    .c-case-card__number::after { content: ""; position: absolute; top: 30px; left: 0; width: 10px; height: 4px; background: #000; }
    .c-voice-card__label { width: fit-content; margin: 0; padding: var(--space-2) var(--space-4) var(--space-1) var(--space-4); color: var(--color-text-on-primary); background: var(--color-brand-primary); font-family: var(--font-family-en); font-size: var(--font-size-base); letter-spacing: var(--letter-spacing-wider); line-height: 1;}
    .c-case-card h3, .c-voice-card h3 { margin: 0; font-family: var(--font-family-display); }
    .c-case-card h3 { padding-inline-start: 68px; font-size: 16px; font-weight: 600; line-height: 1.25; letter-spacing: .02em; white-space: nowrap; }
    .c-case-card img { width: min(100%, 283px); max-width: none; aspect-ratio: 283 / 159; height: auto; margin-block: 16px; object-fit: cover; }
    .c-case-card dl, .c-case-card dd { margin: 0; }
    .c-case-card dl { display: grid; gap: var(--space-1); color: var(--color-text-secondary); font-size: var(--font-size-xs); }
    .c-case-card dl > div { display: grid; grid-template-columns: 6em 1fr; gap: var(--space-2); }
    .c-case-card dt { font-weight: var(--font-weight-bold); }
    .c-voice-card { align-content: start; min-height: 100%; padding: var(--space-6); line-height: var(--line-height-relaxed); font-size: var(--font-size-xs);}
    .c-voice-card p:last-child { margin-bottom: 0; }
    .c-voice-card__body { position: relative; max-height: 10.6em; overflow: hidden; }
    .c-voice-card__body::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 2.4em; background: linear-gradient(to bottom, transparent, var(--color-surface-card)); pointer-events: none; }
    .c-voice-card.is-expanded .c-voice-card__body { max-height: none; }
    .c-voice-card.is-expanded .c-voice-card__body::after { content: none; }
    .c-voice-card__more { display: inline-flex !important;
      min-height: 44px;
      width: fit-content;
      align-items: center;
      justify-content: center;
      margin-block-start: var(--space-3);
      padding-inline: 16px !important;
      border: 1px solid #d8d8d8 !important;
      border-radius: 0px !important;
      background-color: #FFFFFF !important;
      color: var(--color-brand-primary);
      font-size: 12px !important;
      font-weight: var(--font-weight-bold);
      cursor: pointer;}
    .c-voice-card__more:hover { filter: brightness(.96); }
    .c-voice-card__more[hidden] { display: none; }
    @media (min-width: 1024px) {
      .c-voice-card__body { max-height: none; min-height: 0; overflow-y: auto; }
      .c-voice-card__body::after { content: none!important; }
      .c-voice-card__more { display: none!important; }
    }
    .p-voice__item { position: relative; }
    .p-voice__item::before { content: ""; position: absolute; z-index: 0; right: 0; bottom: 0; width: min(346px, 58.75%); height: 80px; background: var(--color-bg-section-alt); clip-path: polygon(100% 0, 100% 100%, 0 100%); pointer-events: none; }
    .p-voice__item > * { position: relative; z-index: 1; }
    .c-price-panel { padding: var(--space-6); border: 1px solid var(--color-border-default); background: color-mix(in srgb, var(--color-surface-card) 94%, transparent); }
    .c-price-panel h3 { width: fit-content; margin: 0 0 var(--space-4); padding: var(--space-2) var(--space-5); color: var(--color-text-on-primary); background: var(--color-brand-tertiary); font-family: var(--font-family-display); }
    .c-faq-item { padding: 0; overflow: clip; }
    .c-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-5); font-family: var(--font-family-display); font-weight: var(--font-weight-bold); cursor: pointer; list-style: none; }
    .c-faq-item summary::-webkit-details-marker { display: none; }
    .c-faq-item summary::after { content: "+"; font-size: var(--font-size-xl); font-weight: var(--font-weight-normal); }
    .c-faq-item[open] summary::after { content: "−"; }
    .c-faq-item p { margin: 0; padding: 0 var(--space-5) var(--space-5); color: var(--color-text-secondary); }
    .c-reservation-actions { display: grid; gap: var(--space-3); }

  .p-voice__viewport { position: relative; }
    .p-voice__carousel { scrollbar-width: none; -ms-overflow-style: none; }
    .p-voice__carousel::-webkit-scrollbar { display: none; }
    @media (pointer: fine) {
      .p-voice__carousel { cursor: grab; }
      .p-voice__carousel:active { cursor: grabbing; user-select: none; }
    }
    .p-voice__nav-group { display: flex; justify-content: center; gap: var(--space-4); margin-block-start: var(--space-6); }
    .p-voice__nav {
      display: grid;
      place-items: center;
      width: 44px;
      height: 44px;
      padding: 4px 0 0 0!important;
      border: 1px solid var(--color-border-default);
      border-radius: 50%;
      background: var(--color-bg-page);
      color: #ffffff!important;
      font-size: var(--font-size-lg);
      line-height: 1;
      box-shadow: 0 1px 4px rgba(61, 58, 53, .12);
      cursor: pointer;
      line-height: 1!important;
    }
    .p-voice__nav:hover { filter: brightness(.96); }
    .p-voice__nav:disabled { opacity: .35; cursor: not-allowed; }

  @media (min-width: 1024px) {
    .c-editorial-heading__title { font-size: var(--font-size-2xl); }
        .c-reservation-actions:not(.c-reservation-actions--stack) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .p-voice__item::before { width: 346px; }
  }
}

@layer sections {
  .p-header { backdrop-filter: blur(12px); }
    .p-header__logo img { width: 142px; }
    .p-header__actions { display: flex; align-items: stretch; align-self: stretch; }
    .p-header__action { display: none; align-items: center; justify-content: center; gap: var(--space-1); min-width: 104px; padding-inline: var(--space-3); font-size: var(--font-size-sm); font-weight: var(--font-weight-bold); text-decoration: none; }
    .p-header__action--tel { color: var(--color-text-primary); background: var(--color-brand-primary-soft); }
    .p-header__action--line { color: var(--color-text-on-primary); background: #4DC764; }
    .p-header__action--web { color: var(--color-text-on-primary); background: var(--color-brand-primary); }
    
    .p-header__menuLine { display: block; width: 24px; height: 1px; background: currentColor; }
    .p-menuDialog { width: min(92vw, 420px); max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; color: var(--color-text-primary); background: var(--color-bg-page); }
    .p-menuDialog--drawerRight { inset: 0 0 0 auto; transform: translateX(100%); transition: transform var(--transition-normal), display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete; }
    .p-menuDialog--drawerRight[open] { transform: translateX(0); }
    @starting-style { .p-menuDialog--drawerRight[open] { transform: translateX(100%); } }
    .p-menuDialog::backdrop { background: color-mix(in srgb, var(--color-brand-primary) 58%, transparent); }
    .p-menuDialog__header { display: flex; align-items: center; justify-content: space-between; padding: var(--space-5); border-block-end: 1px solid var(--color-border-default); }
    .p-menuDialog__close { position: relative; width: 48px; height: 48px; border: 0; background: transparent; }
    .p-menuDialog__close::before, .p-menuDialog__close::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 28px; height: 1px; background: var(--color-brand-primary); }
    .p-menuDialog__close::before { transform: translate(-50%, -50%) rotate(45deg); }
    .p-menuDialog__close::after { transform: translate(-50%, -50%) rotate(-45deg); }
    .p-menuDialog__nav { padding: var(--space-6); 
  font-family: var(--font-family-heading);font-size: var(--font-size-md); font-weight: var(--font-weight-medium); line-height: var(--line-height-tight); }
  .p-menuDialog__nav ul li{position:relative;}
  .p-menuDialog__list { margin: 0; padding: 0; list-style: none;}
    .p-menuDialog__list a {  display: block; padding: var(--space-4) 0; border-block-end: 1px solid var(--color-border-default); text-decoration: none; }
    .p-menuDialog__actions { display: grid; gap: var(--space-3); margin-block-start: var(--space-8); }

    .p-hero {
      position: relative; display: block; min-height: calc(100vw * 790 / 750); padding: 0; overflow: hidden;
      color: #111;
      background: var(--color-bg-page);
    }
    .p-hero::before,
    .p-hero::after {
      content: "";
      position: absolute;
      z-index: 0;
      inset: 0;
      background: center / cover no-repeat;
      animation: p-hero-crossfade 6s infinite;
    }
    .p-hero::before { background-image: url("./assets/images/p-fv-sp.webp"); }
    .p-hero::after { background-image: url("./assets/images/p-fv-sp-2.webp"); animation-delay: -3s; }
    @keyframes p-hero-crossfade {
      0%, 40% { opacity: 1; }
      50%, 90% { opacity: 0; }
      100% { opacity: 1; }
    }
    @media (prefers-reduced-motion: reduce) {
      .p-hero::before, .p-hero::after { animation: none; }
      .p-hero::after { opacity: 0; }
    }
    .p-hero__media { position: absolute; z-index: 0; inset: 0; display: block; }
    .p-hero__media::after { display: none; }
    .p-hero__media img { display: block; width: 100%; height: auto; min-height: 100%; object-fit: cover; object-position: center top; }
    .p-hero__inner { position: relative; z-index: 1; width: 100%; min-height: inherit; margin: 0; padding: 0; }
    .p-hero__copy { position: relative; min-height: inherit; }
    .p-hero__eyebrow {
      position: absolute; top: 5.5vw; left: 6vw; margin: 0; padding: 1.6vw 3vw;
      color: #fff; background: #101010; font-family: var(--font-family-display); font-size: clamp(13px, 3.2vw, 24px);
      font-weight: 600; line-height: 1; letter-spacing: .12em; white-space: nowrap;
    }
    .p-hero__title {
      position: absolute; top: 18vw; left: 3.5vw; display: flex; flex-direction: row-reverse; gap: 1.2vw;
      margin: 0; font-family: var(--font-family-display); font-size: clamp(25px, 7.2vw, 50px); font-weight: 500;
      line-height: 1.36; letter-spacing: .03em; text-shadow: 0 0 3px #fff, 0 0 8px #fff, 3px 4px 4px rgba(0,0,0,.52);
      writing-mode: vertical-rl;
    }
    .p-hero__title span { display: block; white-space: nowrap; }
    .p-hero__title strong { color: #a88e47; font-size: 1.28em; font-weight: 600; }
    .p-hero__banner {
      position: absolute; left: 4vw; bottom: 4vw; display: grid; width: 63vw; min-height: 12vw;
      grid-template-columns: 3fr 2fr; color: #fff; border: 1px solid rgba(255,255,255,.28);
      background-color: #aa161a; background-image: linear-gradient(135deg,rgba(255,255,255,.09) 25%,transparent 25%),linear-gradient(315deg,rgba(0,0,0,.08) 25%,transparent 25%);
      background-size: 26px 26px; box-shadow: 0 2px 8px rgba(65,0,0,.2); font-family: var(--font-family-display);
      text-shadow: 0 2px 2px rgba(0,0,0,.7);
    }
    .p-hero__banner p { display: grid; place-content: center; margin: 0; padding: 1vw; font-size: clamp(8px, 1.9vw, 20px); line-height: 1.45; text-align: center; }
    .p-hero__banner p + p { border-inline-start: 1px solid rgba(255,255,255,.58); }
    .p-hero__banner b { font-size: 1.08em; letter-spacing: .08em; }
    .p-hero__badges { position: absolute; right: 2vw; bottom: -1vw; display: flex; align-items: flex-end; }
    .p-hero__badge { position: relative; width: 24vw; max-width: 240px; overflow: hidden; aspect-ratio: 1; border-radius: 50%; }
    .p-hero__badge + .p-hero__badge { margin-left: -2.2vw; }
    .p-hero__badge img { display: block; width: 100%; height: 100%; object-fit: cover; }
    .p-hero__badge p {
      position: absolute; inset: 56% 0 0; display: grid; place-content: center; margin: 0; padding: .25em;
      color: #fff; font-family: var(--font-family-display); font-size: clamp(8px, 1.55vw, 18px); font-weight: 600;
      line-height: 1.28; letter-spacing: .04em; text-align: center;
    }
  .p-info, .p-feature, .p-case, .p-voice, .p-cost, .p-treatment, .p-message, .p-faq, .p-access, .p-reservation, .p-alliance { position: relative; padding-block: var(--layout-section-padding-y-sm); }
    .p-result__inner, .p-info__inner, .p-feature__inner, .p-case__inner, .p-voice__inner, .p-reason__inner, .p-cost__inner, .p-treatment__inner, .p-message__inner, .p-faq__inner, .p-access__inner, .p-reservation__inner, .p-alliance__inner { width: min(100%, calc(var(--layout-container-max) + var(--layout-container-padding) * 2)); margin-inline: auto; padding-inline: var(--layout-container-padding); }
    .p-result { background: var(--color-bg-page); text-align: center;
  padding-top: clamp(20.00px, calc(21.57vw + -60.89px), 160.00px); }
    .p-result__inner { display: grid; gap: var(--space-6); justify-items: center; }
    .p-result__lead { width: 100%; display: grid;
      justify-items: center;font-family: var(--font-family-heading); font-size: clamp(14.00px, calc(2.16vw + 5.91px), 28.00px); font-weight: var(--font-weight-medium); line-height: 1.7; letter-spacing: .05em; }
    .p-result__lead p, .p-result__title { font: inherit; }
    .p-result__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; margin-bottom: var(--space-2); }
    .p-result__badge { display: inline-flex; align-items: center; justify-content: center; padding-inline:var(--space-2) var(--space-4); color: var(--color-text-inverse); }
    .p-result__badge--accent { background: var(--color-doctor-accent, #876d26); }
    .p-result__badge--dark { background: var(--color-brand-tertiary); }
    .p-result__qualifications strong { color: var(--color-brand-accent); }
    .p-result__title { max-width: none; }
    .p-result__award { width: min(100%, 750px); }
    .p-result__number { margin: 0; font-family: var(--font-family-heading); font-size: var(--font-size-xl); font-weight: var(--font-weight-medium); line-height: 1; letter-spacing: 2px; }
    .p-result__number strong { color: var(--color-error); font-size: clamp(3rem, 14vw, 5rem); }
    .p-result__ratings { width: min(100%, 867px); }
    .p-conversion-banner { width: min(100%, 1200px); margin: var(--space-10) auto; padding-inline: var(--layout-container-padding); }
    .p-conversion-banner a, .p-conversion-banner img { display: block; width: 100%; }
    .p-info {  display: grid; align-items: center;  background: var(--color-bg-page) url("./assets/images/p-info-sp.webp") top center / 100% no-repeat;
  margin-block-end: clamp(24.00px, calc(11.40vw + -18.76px), 98.00px); }
    .p-info__inner { display: grid; gap: var(--space-6); justify-items: center; }
    .p-info__statement { margin: 0; padding: var(--space-4) var(--space-5); border: 1px solid color-mix(in srgb, var(--color-text-inverse) 55%, transparent); background: color-mix(in srgb, var(--color-bg-page) 90%, transparent); color: var(--color-text-primary); font-family: var(--font-family-display); font-size: clamp(1.35rem, 5vw, 2.25rem); text-align: center; }
    .p-info__statement strong { color: var(--color-brand-accent); }
    .p-info__list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; font-family: var(--font-family-display); font-size: var(--font-size-md); }
    .p-info__list li { display: flex; gap: var(--space-1);align-items: center;}
    .v-more{font-family: var(--font-family-en); font-size: var(--font-size-xs); font-weight: var(--font-weight-normal);
  text-decoration: underline!important; }
    .p-info__list li::before { content: ""; flex-shrink: 0; width: 1.2em; height: 1.2em; background: url("./assets/icons/p-info__list__check.svg") center / contain no-repeat; }
    .p-feature { display: grid; align-items: center; color: var(--color-text-on-primary); background: var(--color-brand-primary) url("./assets/images/p-feature-sp.webp") center / cover no-repeat; }
    .p-feature__inner { display: flex; min-height: 308px; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--space-10); overflow: clip; }
    .p-feature__label { margin: 0; color: inherit; font-family: var(--font-family-en); font-size: clamp(1.75rem, 8vw, var(--font-size-2xl)); font-weight: var(--font-weight-normal); line-height: 1.12; letter-spacing: .05em; }
    .p-feature__copy { display: flex; flex-direction: column; gap: var(--space-6); font-size:clamp(12.00px, calc(0.62vw + 9.69px), 16.00px); line-height: 1.8; text-align: justify; }
    .p-feature__copy p { margin: 0; }
    .p-doctor { position: relative; padding-block: var(--space-16); background-position: center; background-size: cover; }
    .p-doctor--primary { color: var(--color-text-on-primary); background-image: url("./assets/images/p-doctor-bg1-sp.webp"); background-size: cover;
  background-position: bottom center; aspect-ratio: 3 / 4; max-width: 100%;
display: grid;
    align-items: center;}
    .p-doctor--secondary { background-image: url("./assets/images/p-doctor-bg2-sp.webp"); aspect-ratio: 1 / 1;
       background-size: cover; background-position: top center; max-width: 100%;
    display: grid;
    align-items: center;}
    .p-doctor__inner { width: min(100%, calc(var(--layout-container-max) + var(--layout-container-padding) * 2)); margin-inline: auto; padding-inline: var(--layout-container-padding); }
    .p-doctor__copy { display: grid; gap: var(--space-4); font-family: var(--font-family-heading);font-weight: var(--font-weight-medium); font-size: clamp(20.00px, calc(5.55vw + -0.80px), 56.00px); line-height: 1.7; letter-spacing: .05em;
  }
    .p-doctor__eyebrow { width: fit-content; margin: 0; padding: var(--space-2) var(--space-4); color: var(--color-text-primary); background: var(--color-bg-page); font-family: var(--font-family-heading); font-size:clamp(16.00px, calc(1.85vw + 9.07px), 28.00px); }
    .p-doctor--secondary .p-doctor__eyebrow { color: var(--color-text-on-primary); background: var(--color-brand-tertiary); }
    .p-doctor--secondary .p-doctor__copy{justify-content: end; justify-items: end;}
    .p-doctor__copy h2 { margin: 0; font-family: var(--font-family-display); font-size: clamp(20.00px, calc(5.55vw + -0.80px), 56.00px); line-height: 1.45; letter-spacing: var(--letter-spacing-wide); }
    .p-doctor__profile { display: grid; gap: var(--space-5); align-items: end; margin-block-start: var(--space-12); grid-template-columns: 29.333vw 1fr;}
    .p-doctor--secondary .p-doctor__profile { display: grid; gap: var(--space-5); align-items: end; margin-block-start: var(--space-12); grid-template-columns: 1fr 29.333vw;}
    h2#doctor-morisaki-title {
      text-align: right;
  }
  .c-before-after {
      margin-block:var(--space-3);
  }
    .p-doctor__name { display: flex; flex-direction: column; place-content: center; justify-self: center; width: 28vw; height: 28vw; margin: 0; border-radius: var(--radius-circle); color: var(--color-text-on-primary); background: var(--color-doctor-accent, #876d26); text-align: center; }
    .p-doctor__name strong { align-self: center; padding-block-end: 9px; border-block-end: 1px solid currentColor; font-family: var(--font-family-heading); font-size: clamp(18.00px, calc(2.77vw + 7.60px), 36.00px); line-height: 1.2; }
    .p-doctor__name span { margin-block-start: 8px; color: var(--color-brand-accent-soft); font-family: var(--font-family-en); font-size: clamp(10.00px, calc(1.23vw + 5.38px), 18.00px); line-height: 1.2; letter-spacing: 2px; }
    .p-doctor__careerPanel { position: relative; }
    .p-doctor__career { display: flex; flex-direction: column; gap: var(--space-1); margin: 0; padding: var(--space-8) var(--space-5); color: var(--color-text-primary); background: color-mix(in srgb, var(--color-bg-page) 95%, transparent); font-size: clamp(10.00px, calc(0.92vw + 6.53px), 16.00px); line-height: 1.3; list-style: none; }
    .p-doctor__career li { display: flex; }
    .p-doctor__career li::before { content: "・"; flex: none; }
    .p-doctor__sns { position: absolute; display: flex; gap: var(--space-1); inset: -24px 10px auto auto; }
    .p-doctor__sns img { width: 36px; height: 36px; }
    .p-credential-band { display: grid; align-items: center; padding-block: var(--space-8); color: var(--color-text-on-primary); background-color: var(--color-brand-primary); background-image:linear-gradient(90deg, var(--color-brand-primary) 0%, color-mix(in srgb, var(--color-brand-primary) 94%, transparent) 40%, color-mix(in srgb, var(--color-brand-primary) 20%, transparent) 100%), url("./assets/images/p-doctor--3rd-bg.webp"); background-position: center, right center; background-size: cover, auto 100%; background-repeat: no-repeat; }
    .p-credential-band__inner { display: flex; width: min(100%, calc(var(--layout-container-max) + var(--layout-container-padding) * 2)); align-items: center; margin-inline: auto; padding-inline: var(--layout-container-padding); }
    .p-credential-band ul { display: grid; gap: 0; width: 100%; margin: 0; padding: 0; font-family: var(--font-family-display); font-size: clamp(12.00px, calc(1.85vw + 5.07px), 24.00px); font-weight: 600; line-height: 1.7; list-style: none; }
    .p-case { position: relative; overflow: hidden; padding-block-start: var(--space-20); background: var(--color-bg-section-alt) url("./assets/images/p-case-bg-sp.webp") top center / 100% auto no-repeat; }
    .p-case__heading { width: 100%; margin: 0 auto var(--space-12); }
    .p-case__heading h2 { position: absolute; top: var(--space-20); right: var(--layout-container-padding); margin: 0; color: var(--color-doctor-accent, #876d26); font-family: var(--font-family-heading); font-size: var(--font-size-2xl); font-weight: 600; line-height: 1; letter-spacing: 5.5px; writing-mode: vertical-rl; text-orientation: upright; }
    .p-case__heading p { width: min(calc(100% - 64px), 616px); margin: 0; font-family: var(--font-family-display); font-size: clamp(var(--font-size-md), 4vw, var(--font-size-xl)); font-weight: 600; line-height: 1.6; letter-spacing: 2.6402px; }
    .p-case__grid { display: grid; gap: var(--space-5); justify-items: center; }
    .p-voice { background: var(--color-bg-page) url("./assets/images/p-voice-bg-sp.webp") top center / 100% auto no-repeat; }
    .p-voice__grid { display: grid; gap: var(--space-5); margin-block-start: var(--space-10); }
    .p-voice__note { margin: var(--space-5) 0 0; color: var(--color-text-muted); font-size: var(--font-size-xs); text-align: center; }
    .p-reason { position: relative; padding-block-end: 0; margin-block-start: clamp(40.00px, calc(6.16vw + 16.89px), 80.00px);}
    .p-reason__visual { position: relative; height: 230px; overflow: hidden; }
    .p-reason__visual > picture, .p-reason__visual > picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
    .p-reason__visual > picture img { object-fit: cover; }
    .p-reason__heading { position: absolute; top: 28px; left: 20px; display: grid; grid-template-columns: 22px 1px 50px; column-gap: var(--space-1); align-items: start; }
    .p-reason__eyebrow { height: 75px; margin: 0; color: var(--color-doctor-accent, #876d26); font-family:var(--font-family-en); font-size: 16px; font-weight: var(--font-weight-normal); line-height: 1; letter-spacing: 1.8px; white-space: nowrap; writing-mode: vertical-rl; transform: rotate(180deg); }
    .p-reason__headingLine { width: 1px; height: 75px; background: var(--color-doctor-accent, #876d26); }
    .p-reason__heading h2 { display: flex; width: 50px; flex-direction: column; align-items: center; gap: 10px; margin: 0; color: var(--color-text-primary); font-family: var(--font-family-display); font-size: 22px; font-weight: 600; line-height: .74; }
    .p-reason__heading h2 .is-large { font-size: 36px; }
    .p-reason__grid { display: grid; gap: var(--space-6); margin: 40px 0 0; padding: 0; list-style: none; }
    .p-reason__item { display: flex; width: 100%; flex-direction: column; gap: var(--space-1); }
    .p-reason__title { display: flex; width: 100%; min-height: 60px; align-items: center; gap: var(--space-3); }
    .p-reason__number { display: inline-flex; align-items: center; justify-content: center; color: var(--color-doctor-accent, #876d26); font-family: var(--font-family-heading); font-size: 62px; font-weight: var(--font-weight-normal); line-height: 1; transform: skewX(-16.7deg) scaleY(.96); transform-origin: center; white-space: nowrap; }
    .p-reason__title h3 { flex: 1; margin: 0; color: var(--color-text-secondary); font-family: var(--font-family-display); font-size: 20px; font-weight: 600; line-height: 1.5; }
    .p-reason__content { display: flex; width: 100%; min-height: 130px; align-items: center; gap: var(--space-5); border: 1px solid var(--color-border-default); }
    .p-reason__image { display: block; width: clamp(96px, 34vw, 130px); aspect-ratio: 1; height: auto; flex: 0 1 clamp(96px, 34vw, 130px); overflow: hidden; }
    .p-reason__image img { width: 100%; height: 100%; object-fit: cover; }
    .p-reason__content p { flex: 1 1 0; width: auto; min-width: 0; margin: 0; padding: 0; color: var(--color-text-primary); font-size: 14px; line-height: 1.7; }
    .p-reason__pcBreak { display: none; }
    .p-cost { background: var(--color-bg-section-alt) url("./assets/images/p-cost-bg-sp.webp") center / cover no-repeat; }
    .p-cost__inner { display: grid; gap: var(--space-6); }
    .p-cost__panels { display: grid; gap: var(--space-5); }
    .p-cost__cards { display: grid; gap: var(--space-4); align-items: center; padding: var(--space-5); border: 1px solid var(--color-border-default); background: var(--color-surface-card); }
    .p-cost__cards h3 { margin: 0; font-family: var(--font-family-display); }
    .p-treatment { padding-block-start: 0; background: var(--color-bg-section-alt); }
    .p-treatment__header, .p-message__header, .p-faq__header, .p-access__header { position: relative; }
    .p-treatment__header img, .p-message__header img, .p-faq__header img, .p-access__header img { width: 100%; }
    .p-treatment__header h2, .p-faq__header h2, .p-access__header h2 { position: absolute; inset: 50% 50% auto auto; margin: 0; color: var(--color-text-on-primary); font-family: var(--font-family-display); font-size: clamp(28.00px, calc(1.23vw + 23.38px), 36.00px); transform: translate(50%, -50%); font-weight: var(--font-weight-medium);}
    .p-treatment__lead { margin-block: var(--space-10); text-align: center; }
    .p-treatment__grid { display: grid; gap: var(--space-8); margin: 0; padding: 0; list-style: none; counter-reset: treatment; }
    .p-treatment__grid li { position: relative; display: grid; gap: var(--space-3); padding: var(--space-5); background: var(--color-surface-card); box-shadow: var(--shadow-card); counter-increment: treatment; }
    .p-treatment__grid li::before { content: counter(treatment, decimal-leading-zero); position: absolute; inset: calc(var(--space-5) * -1) auto auto var(--space-2); color: var(--color-brand-accent); font-family: Georgia, serif; font-size: var(--font-size-3xl); }
    .p-treatment__grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
    .p-treatment__grid h3 { margin: 0; font-family: var(--font-family-display); font-size: var(--font-size-lg); text-align: center; }
    .p-treatment__grid p { margin: 0; }
    .p-message { padding-block-start: 0; background: var(--color-bg-page); }
    .p-message__inner { display: grid; gap: var(--space-4); margin-block-start: var(--space-8); }
    .p-message__inner h2 { font-family: var(--font-family-display); font-size: var(--font-size-xl); }
    .p-message__inner ul { display: grid; gap: var(--space-3); padding: 0; list-style: none; }
    .p-message__inner li { padding: var(--space-4); border-inline-start: 4px solid var(--color-brand-accent); background: var(--color-bg-section-alt); }
    .p-faq { padding-block-start: 0; }
    .p-faq__inner { display: grid; gap: var(--space-3); margin-block-start: var(--space-10); }
    .p-access { padding-block-start: 0; background: var(--color-bg-section-alt); }
    .p-access__inner { display: grid; gap: var(--space-8); margin-block-start: var(--space-10); }
    .p-access__gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); overflow: clip; }
    .p-access__gallery img { width: 100%; height: 100%; object-fit: cover; }
    .p-access__details { display: grid; gap: var(--space-3); }
    .p-access__details h3, .p-access__details p { margin: 0; }
    .p-access__details ul { padding-inline-start: 1.2em; }
    .p-access__map { min-height: 250px; display: grid; place-items: center; grid-column: 1 / -1; color: var(--color-text-muted); background: var(--color-border-default); }
    .p-reservation { color: var(--color-text-on-primary); background: var(--color-brand-tertiary); }
    .p-reservation__inner { display: grid; gap: var(--space-6); text-align: center; }
    .p-reservation h2 { margin: 0; font-family: var(--font-family-display); }
    .p-reservation__phone { margin: 0; font-family: var(--font-family-display); font-size: clamp(2rem, 10vw, 3.25rem); }
    .p-bottom-message { position: relative;display: grid; place-items: center; overflow: hidden; color: var(--color-text-primary); }
    .p-bottom-message > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    .p-bottom-message__copy { position: relative; z-index: var(--z-above); padding: var(--space-6); background: color-mix(in srgb, var(--color-bg-page) 82%, transparent); text-align: center; }
    .p-bottom-message__copy h2 { font-family: var(--font-family-display); }
    .p-alliance__inner { text-align: center; }
    .p-alliance h2 { font-family: var(--font-family-display); }
    .p-alliance__logos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); margin-block-start: var(--space-8); }
    .p-alliance__logos img { width: 100%; border: 1px solid var(--color-border-default); }
    .p-footer { display: grid; padding: 0; }
    .p-footer__conversion { display: grid; gap: var(--space-6); padding: var(--space-10) var(--layout-container-padding); color: var(--color-text-primary); background: var(--color-bg-section-alt) url("./assets/images/p-footer__cta-bg.webp") center / cover no-repeat; }
    .p-footer__conversion h2 { font-family: var(--font-family-display); text-align: center; }
    .p-footer__links { display: grid; gap: var(--space-8); padding: var(--space-10) var(--layout-container-padding); color: var(--color-text-inverse); background: var(--color-brand-tertiary); }
    .p-footer__links > img { justify-self: center; }
    .p-footer__links nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
    .p-footer__links ul { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
    .p-footer__links a { text-decoration: none; }

  .p-info__inner { position: relative; width: var(--layout-container-max); max-width: 100%; align-content: center; justify-items: center; }
    .p-info__head { display: flex; align-items: end; justify-content: space-between; padding-bottom: 20px; border-bottom: 1px solid var(--color-border-strong); }
    .p-info__head p { margin: 0; font-family: var(--font-family-en); font-size: clamp(1.75rem, 4vw, 2.25rem); letter-spacing: .08em; }
    .p-info__head h2 { margin: 0; font-family: var(--font-family-heading); font-size: 22px; font-weight: var(--font-weight-medium); }
    .p-info__statement { border-color: var(--color-border-default); background: var(--color-surface-card); font-weight: var(--font-weight-medium);
  font-family: var(--font-family-heading); font-size: var(--font-size-md); line-height: 1.5; text-align: center; }
    .p-info__list { width: min(594px, 100%); color: var(--color-text-primary); font-family: var(--font-family-heading); font-size: var(--font-size-md); line-height: 1.7; }
    .p-info__list strong { color: var(--color-doctor-accent); }
    .p-info__catch { position: absolute; inset: 95px auto auto 0; width: 169px; }

    .p-case__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .c-case-card { min-width: 0; }
    .c-case-card > p:last-child { margin: 0; color: var(--color-text-secondary); font-size: var(--font-size-xs); line-height: 1.6; }

    .p-voice__grid { align-items: start; }
    .c-voice-card { overflow: hidden; }

    .p-cost { width: 100%; margin: 0; padding: 0; background: none; }
    .p-cost__qa { position: relative; width: 100%; }
    /* SPはheader/questions/answerを個別ブロック化し、それぞれ独立した背景を持たせる（テキスト量でブロック高さが変わっても背景がズレないようにするため）。画像は仮ファイル名、差し替え予定 */
    .p-cost__qaInner { display: flex; flex-direction: column; width: 100%; }
    .p-cost__header { width: 100%; padding: 24px 20px; background: var(--color-brand-accent-soft) url("./assets/images/p-cost__header-bg.webp") center top / 100% auto no-repeat; box-sizing: border-box; }
    .p-cost__headerCard { display: flex; width: 100%; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-1); padding: 40px 20px; background: var(--color-surface-card); box-shadow: 0 4px 12px rgba(61, 58, 53, .1); box-sizing: border-box; max-width: 400px;
      margin-inline: auto;}
    .p-cost__label { margin: 0; color: var(--color-doctor-accent, #876d26); font-family: var(--font-family-heading); font-size: 18px; font-weight: var(--font-weight-medium); line-height: 1; letter-spacing: 1.8px; }
    .p-cost__header h2 { margin: 0; color: var(--color-text-primary); font-family: var(--font-family-display); font-size: 28px; font-weight: 600; line-height: 1.8; text-align: center; }
    .p-cost__header h2 small { display: block; color: var(--color-text-secondary); font-size: 18px; font-weight: var(--font-weight-medium); }
    .p-cost__content { display: flex; flex-direction: column; align-items: flex-start; box-sizing: border-box; }
    .p-cost__questions { display: flex; width: 100%; flex-direction: column; gap: var(--space-4); padding: 20px 20px 60px; min-height: 240px; background:#f3ecdc url("./assets/images/p-cost-questions-bg-sp.webp") center bottom / 100% auto no-repeat; box-sizing: border-box; }
    .p-cost__questions p { display: flex; align-items: flex-start; gap: var(--space-3); margin: 0; color: var(--color-text-primary); font-family: var(--font-family-display); font-size: var(--font-size-base); font-weight: var(--font-weight-bold); line-height: 1.6; letter-spacing: .08em;
    -webkit-text-stroke: 1px #f2eddc;
    text-stroke: 1px #f2eddc;
  paint-order: stroke fill; }
    .p-cost__check { display: block; width: 24px; height: 24px; flex: 0 0 24px; }
    .p-cost__answer { width: 100%; margin: 0; padding: 20px 20px 150px 20px; color: var(--color-text-on-primary); font-size: 16px; font-weight: 500; line-height: 1.7; background: #3a3a3a url("./assets/images/p-cost-answer-bg-sp.webp") center bottom / 100% auto no-repeat; box-sizing: border-box; }
    .p-cost__answer strong { font-weight: 700; }
    .p-cost__pcBreak { display: none; }
  .p-cost__fee { display: flex; width: 100%; justify-content: center; gap: var(--space-6); padding: var(--space-8) var(--space-6); flex-direction: column; background: var(--color-brand-accent-soft); box-sizing: border-box; }
  .p-cost .c-price-panel { display: flex; flex: 1 1 0; width: auto;  flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-5) 15px; border: 0; background: var(--color-surface-card); box-sizing: border-box; }
      .p-cost .c-price-panel h3 { margin: 0; padding: 8px 20px; color: var(--color-text-on-primary); background: var(--color-doctor-accent, #876d26); font-family: var(--font-family-display); font-size: 16px; font-weight: 600; line-height: 1; }
      .p-cost .c-price-panel ul { display: flex; flex-direction: column; gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
      .p-cost .c-price-panel li { position: relative; padding-inline-start: 20px; color: var(--color-doctor-accent, #876d26); font-size: 16px; font-weight: 500; line-height: 1.6; letter-spacing: .9751px; white-space: nowrap; }
      .p-cost .c-price-panel li::before { content: "●"; position: absolute; top: 0; left: 2px; font-size: 13px; }
      .p-cost .c-price-panel strong { color: var(--color-text-primary); font-size: 18px; font-weight: 500; }
      .p-cost .c-price-panel small { color: var(--color-text-primary); font-size: 10px; }
      .p-cost__cards { display: block; width: 100%; padding: 0 var(--space-6) var(--space-8); border: 0; background: var(--color-brand-accent-soft); box-sizing: border-box; }
      .p-cost__cardBlock { display: flex; flex-direction: column; width: 100%; align-items: flex-start; gap: var(--space-8); padding: var(--space-5) 15px; overflow: hidden; background: var(--color-surface-card); box-sizing: border-box; }
      .p-cost__cardBlock h3 { flex: 0 0 auto; margin: 0; padding: 8px 20px; color: var(--color-text-on-primary); background: var(--color-doctor-accent, #876d26); font-family: var(--font-family-display); font-size: 16px; font-weight: 600; line-height: 1; white-space: nowrap; }
      .p-cost__cardList { display: flex; align-items: flex-start; gap: var(--space-3); flex-direction: column;}
    .p-cost__loan{color: var(--color-brand-accent); font-family: var(--font-family-heading); text-align: center; width: 100%;}
      .p-treatment__header h2 { width: min(900px, 80%); text-align: center;}
    .p-treatment__grid { counter-reset: treatment; }
    .p-treatment__grid li { min-width: 0; }
    .p-treatment__grid .c-button { justify-self: center; min-width: 200px; }

  .home .p-flow { position: relative; padding-bottom: 80px; text-align: center; background: var(--color-surface-card); }
  .home .p-flow__header { position: relative; min-height: 260px; overflow: hidden; color: var(--color-text-inverse); text-align: left; }
  .home .p-flow__header img { width: 100%; object-fit: cover; }
  .home .p-flow__list { width: min(1200px, calc(100% - 40px)); margin: 48px auto; padding: 0; display: grid; gap: 18px; list-style: none; text-align: left; }
  .home .p-flow__list li { display: grid; grid-template-columns: 52px 80px 1fr; align-items: center; gap: var(--space-3); min-height: 76px; border-bottom: 1px solid var(--color-border-default); }
  .home .p-flow__list span { color: var(--color-doctor-accent); font-family:var(--font-family-en); font-size: 12px; }
  .home .p-flow__list img { width: 80px; height: 60px; object-fit: cover; }

    .p-faq { padding-bottom: 100px; background: #f4ecd7; }
    .p-faq__header h2 { color: var(--color-text-primary); text-shadow: none; inset-inline: auto; left: max(20px, calc((100% - 1200px) / 2)); transform: translateY(-50%); }
    .p-faq__inner { gap: 28px; }
    .p-faq__inner > p { text-align: center; }
    .p-faq__topics { margin: 0; padding: 0; display: grid; gap: var(--space-4); list-style: none; }
    .p-faq__topics li { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: var(--space-4); padding: 12px; background: var(--color-surface-card); }
    .p-faq__topics img { width: 110px; height: 80px; object-fit: cover; }
    .p-faq__guarantee { display: grid; gap: var(--space-5); align-items: center; padding: 24px; background: var(--color-surface-card); }
    .p-faq__guarantee img { width: 100%; }
    .p-faq__guarantee h3 { margin: 0 0 16px; padding: 10px; color: var(--color-text-inverse); background: var(--color-doctor-accent); text-align: center; }
    .p-faq__guarantee strong { color: var(--color-error); font-family: var(--font-family-display); font-size: 28px; }

    .p-message { padding-top: 0; }
    .p-message__header { min-height: 300px; color: var(--color-text-inverse); }
    .p-message__header picture, .p-message__header img { width: 100%; height: 100%; object-fit: cover; }
    .p-message__header picture { position: absolute; inset: 0; }
    .p-message__header p, .p-message__header h2 { position: absolute; left: max(20px, calc((100% - 1200px) / 2)); margin: 0; }
    .p-message__header p { top: 48%; font-family:var(--font-family-en); }
    .p-message__header h2 { top: 58%; font-family: var(--font-family-display); }
    .p-message__inner { display: block; max-width: 720px; padding-top: 48px; line-height: 1.9; }
    .p-message__inner p:not(:last-child){margin-bottom: var(--space-5);}
    .p-doctor-profiles { width: min(1200px, calc(100% - 40px)); margin: 30px auto 80px; display: grid; gap: var(--space-10); }
    .p-doctor-profiles article { padding: 24px; border: 1px solid var(--color-border-default); }
    .p-doctor-profiles header { display: grid; grid-template-columns: 180px 1fr; align-items: center; gap: var(--space-5); padding-bottom: 24px; border-bottom: 1px solid var(--color-border-default); }
    .p-doctor-profiles header img { width: 180px; height: 120px; object-fit: cover; }
    .p-doctor-profiles h2 { font-family: var(--font-family-display); }
    .p-doctor-profiles article > p { line-height: 1.7; }
    .p-doctor-profiles .c-button { display: flex; width: 200px; margin: 24px auto 0; }

    .p-news-column, .p-sns-info { width: min(700px, calc(100% - 40px)); margin: 0 auto 84px; }
    .p-news-column header { text-align: center; }
    .p-news-column header p { margin: 0; color: var(--color-doctor-accent); font-family:var(--font-family-en); font-size: 28px; }
    .p-news-column header h2 { margin: 0 0 32px; font-family: var(--font-family-display); font-size: 16px; }
    .p-news-column article { padding: 16px 0; border-bottom: 1px solid var(--color-border-default); }
    .p-news-column article h3 { margin: 0 0 8px; font-size: 16px; font-weight: 500; }
    .p-news-column time { font-size: 12px; }
    .p-news-column .c-button { display: flex; width: 200px; margin: 30px auto 0; }
    .p-sns-info { border: 1px solid var(--color-border-default); }
    .p-sns-info h2 { margin: 0; padding: 12px; color: var(--color-text-inverse); background: var(--color-brand-primary); font-size: 16px; text-align: center;
  font-family: var(--font-family-heading); }
    .p-sns-info > p { margin: 20px 24px; line-height: 1.7; }
    .p-sns-info > div { display: flex; justify-content: center; gap: 10px; padding: 0 24px 24px; }
    .p-sns-info img { width: 45px; height: 45px; }

    .p-access { padding-top: 0; background: var(--color-surface-card); }
    .p-access__header { min-height: 343px; overflow: hidden; color: var(--color-text-inverse); }
    .p-access__header picture, .p-access__header img { width: 100%; height: 100%; object-fit: cover; object-position: bottom center;}
    .p-access__header picture { position: absolute; inset: 0; }
    .p-access__header p, .p-access__header h2 { position: absolute; right: max(20px, calc((100% - 1200px) / 2)); margin: 0; }
    .p-access__header p { top: 40%; font-family:var(--font-family-en); }
    .p-access__header h2 { top: 52%; transform: none; text-shadow: none; }
    .p-access__contact { width: min(1200px, calc(100% - 40px)); margin: 40px auto; text-align: center; }
    .p-access__contact h2 { font-family: var(--font-family-display); }
    .p-access__contact p { margin: 12px 0; font-family: var(--font-family-display); font-size: 32px; }
    .p-access__contact .c-button { min-width: 250px; }

    .p-reservation { padding: 0 0 40px; color: var(--color-text-primary); background: var(--color-surface-card); }
    .p-reservation > h2 { margin: 0; padding: 12px; color: var(--color-text-inverse); background: var(--color-brand-primary); font-family: var(--font-family-display); font-size: 18px; text-align: center; }
    .p-reservation__inner { width: min(1200px, calc(100% - 40px)); padding: 20px; border: 1px solid var(--color-border-default); color: var(--color-text-primary); background: var(--color-surface-card); }

    .p-bottom-message { display: block; padding: 48px 20px; }
    .p-bottom-message > div { position: relative; z-index: 1; width: min(900px, 100%); margin: auto; font-size: 12px; line-height: 1.9; }

    .p-alliance { padding-block: 56px; }
    .p-alliance__inner > p { margin: 0; color: var(--color-doctor-accent); font-family:var(--font-family-en); font-size: 28px; }
    .p-alliance__inner > h2 { margin: 0; font-size: 16px; }
    .p-alliance__logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }

    .p-footer__conversion > p { line-height: 1.7; }

  .p-menu { position: relative; background: var(--color-bg-section-alt); }
    .p-menu__header { position: relative; display: flex; align-items: center; justify-content: flex-end; width: 100%; height: 389px; padding: var(--space-16); overflow: hidden; }
    .p-menu__headerImage { position: absolute; inset: -4.87% 0 auto; width: 100%; height: 109.73%; object-fit: cover; }
    .p-menu__titleImage { position: relative; z-index: 1; width: 822px; height: 261px; object-fit: contain; }
    .p-menu__content { padding: 48px 0 120px; overflow: hidden; background: var(--color-bg-section-alt); }
    .p-menu__inner { display: flex; flex-direction: column; align-items: center; gap: var(--space-10); width: var(--layout-container-max); max-width: calc(100% - var(--layout-container-padding) * 2); margin: 0 auto; }
    .p-menu__lead { width: 100%; margin: 0; color: var(--color-text-primary); font-family: "Yu Gothic", "YuGothic", sans-serif; font-size: 14px; font-weight: 500; line-height: 1.7; text-align: center; }
    .p-menu__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-8) var(--space-5); width: 100%; margin: 0; padding: 0; list-style: none; counter-reset: menu; }
    .p-menu__item { position: relative; display: flex; flex-direction: column; width: 100%; padding: var(--space-3) var(--space-6) var(--space-6); overflow: visible; background: var(--color-surface-card); box-shadow: var(--shadow-card); counter-increment: menu; }
    .p-menu__item::before { content: counter(menu, decimal-leading-zero); position: absolute; z-index: 2; top: -16px; left: -7px; color: rgba(51, 51, 51, .1); font-family:var(--font-family-en); font-size: 80px; font-weight: var(--font-weight-normal); line-height: 1; transform: skewX(-10deg) scaleY(.98); transform-origin: left top; }
    .p-menu__item h3 { position: relative; z-index: 3; display: flex; align-items: baseline; justify-content: center; height: 49px; margin: 0; padding: 0 0 13px; border-bottom: 1px solid var(--color-border-default); color: var(--color-doctor-accent); font-family: var(--font-family-heading); font-size: 25px; font-weight: 600; line-height: normal; text-align: center; white-space: nowrap; }
    .p-menu__titleSmall { color: var(--color-text-primary); font-size: 18px; font-weight: 500; }
    .p-menu__titleAccent { color: var(--color-doctor-accent); font-size: 25px; }
    .p-menu__itemContent { display: flex; flex: none; flex-direction: column; align-items: center; gap: var(--space-6); height: 276px; padding-top: 16px; }
    .p-menu__itemContent > img { flex: none; width: min(282px, 100%); aspect-ratio: 3 / 2; height: auto; object-fit: cover; }
    .p-menu__itemContent p { width: 100%; margin: 0; color: var(--color-text-primary); font-family: "Yu Gothic", "YuGothic", sans-serif; font-size: 14px; font-weight: 500; line-height: 1.7; text-align: center; }
    .p-menu__item--detail .p-menu__itemContent > p, .p-menu__item--detail .p-menu__itemText p { display: none; }
    .p-menu__item:nth-child(6) { min-height: 359px; }
    .p-menu__item:nth-child(6) h3 { height: 47px; }
    .p-menu__item:nth-child(10) { min-height: 348px; }
    .p-menu__item:nth-child(10) .p-menu__itemContent { height: 263px; }
    .p-menu__item--detail .p-menu__itemText { gap: 0;}
    .p-menu__itemText { display: flex; flex: 1; flex-direction: column; align-items: center; gap: var(--space-3); width: 100%; }
    .p-menu__item--detail .p-menu__button { margin-top: 0!important; }
    .p-menu__button { display: inline-flex!important; align-items: center; justify-content: center; width: 128px; height: 32px; margin-top: auto!important; border: 1px solid var(--color-border-default)!important; background: var(--color-bg-section-alt)!important; font-family: var(--font-family-heading)!important; font-size: 14px!important; font-weight: 600; line-height: 1; text-decoration: none; padding: 0 !important;}

    /* p-menuDialog--center — 中央表示モーダル（見出し無し・テキストのみの詳細モーダル用）。.p-menuDialog の幅/高さ指定(92vw/100dvh)を上書きするため同一レイヤーに配置 */
    .p-menuDialog--center { position: fixed; inset: 50% auto auto 50%; right: auto; bottom: auto; width: min(560px, calc(100% - var(--space-8) * 2)); max-width: none; height: fit-content; max-height: min(80vh, 640px); margin: 0; border-radius: var(--component-radius-card); box-shadow: var(--shadow-card); opacity: 0; transform: translate(-50%, -50%) scale(0.96); transition: opacity var(--transition-normal), transform var(--transition-normal); }
    .p-menuDialog--center[open] { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    @starting-style { .p-menuDialog--center[open] { opacity: 0; transform: translate(-50%, -50%) scale(0.96); } }
    .p-menuDialog--center.is-closing { opacity: 0; transform: translate(-50%, -50%) scale(0.96); }
    .p-menuDialog--center .p-menuDialog__body { display: grid; gap: var(--space-4); padding: 0 var(--space-8) var(--space-8) var(--space-8); }
    .p-menuDialog--center .p-menuDialog__body p { margin: 0; color: var(--color-text-primary); font-size: var(--font-size-base); line-height: var(--line-height-normal); }

  .home .p-flow { position: relative; display: flex; flex-direction: column; align-items: center; min-height: 0; padding-bottom: clamp(60.00px, calc(9.24vw + 25.33px), 120.00px); overflow: hidden; background: var(--color-surface-card); text-align: left; }
    .p-flow__header { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 343px; min-height: 343px; overflow: hidden; color: var(--color-text-inverse); }
    .p-flow__header picture, .p-flow__header picture img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
    .p-flow__title { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: var(--space-3); width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); }
    .p-flow__title p { position: static; width: 100%; margin: 0; color: #f1ecdd; font-family:var(--font-family-en); font-size: 18px; font-weight: var(--font-weight-normal); line-height: 1; letter-spacing: 1.8px; }
    .p-flow__title h2 { position: static; margin: 0; color: var(--color-text-inverse); font-family: var(--font-family-heading); font-size: 36px; font-weight: 600; line-height: 27px; letter-spacing: 1px; }
    .p-flow__inner { display: flex; flex-direction: column; align-items: center; width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); min-height: 476.75px; padding-top: var(--space-20); overflow: hidden; }
    .p-flow__flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: var(--space-6); width: 100%; margin: 0; padding: 0; list-style: none; }
    .p-flow__flowItem { justify-content: space-between; position: relative; display: flex; align-items: flex-start; gap: var(--space-6); width: 100%; min-height: 116.25px; padding: var(--space-3) var(--space-4); border: 1px solid var(--color-border-default); }
    .p-flow__flowItem::after { content: ""; position: absolute; z-index: 2; top: 40px;     right: -22px;
      width: 16px; height: 34px; background: var(--color-doctor-accent); clip-path: polygon(0 0, 100% 50%, 0 100%); }
    
    .p-flow__flowText { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-1); }
    .p-flow__flowText span { width: 100%; color: var(--color-doctor-accent); font-family:var(--font-family-en); font-size: 20px; font-weight: var(--font-weight-normal); line-height: 1; letter-spacing: 1.5px; }
    .p-flow__flowText strong { width: 100%; color: var(--color-text-primary); font-family: var(--font-family-heading); font-size: 18px; font-weight: 600; line-height: 29.7px; letter-spacing: 1.35px; white-space: nowrap; }
    .p-flow__flowImage { height: 92.25px; overflow: hidden; }
    .p-flow__flowImage img { display: block; width: 100%; height: 100%; object-fit: cover; }
    .p-flow__flowItem:nth-child(7) .p-flow__flowImage img { object-fit: contain; }
    .p-flow__btn { display: flex; flex-direction: column; align-items: center; width: 345px; height: 73px; padding-top: 30px; }
    .p-flow__button { display: flex; align-items: center; justify-content: center; gap: 10px; width: 200px; min-width: 200px; height: 43px; min-height: 43px; padding: 10px 0; border: 0; border-radius: 0; background: var(--color-brand-primary); box-shadow: none; color: var(--color-text-inverse); font-family: var(--font-family-heading); font-size: 15px; font-weight: 600; line-height: 22.5px; letter-spacing: 1.5px; }
    .p-flow__button img { width: 16.5px; height: 10.55px; object-fit: contain; }

  @media (min-width: 1024px) {
    .p-header__logo img { width: 176px; }
        a.p-header__logo {
        display: grid;
        align-items: end;
    }
        h2#doctor-morisaki-title {
      text-align: left;
  }
      .p-doctor--primary { color: var(--color-text-on-primary); background-image: url("./assets/images/p-doctor-bg1.webp"); }
      .p-doctor--secondary { background-image: url("./assets/images/p-doctor-bg2.webp"); }
     .p-hero::before { background-image: url("./assets/images/p-fv-pc.webp"); }
      .p-hero::after { background-image: url("./assets/images/p-fv-pc-2.webp"); }
    a.p-header__action{font-family: var(--font-family-heading); font-weight: var(--font-weight-medium); letter-spacing: 1.8px; text-decoration: none; transition: opacity .2s ease;}
    a.p-header__action:hover{opacity: .8;}
        .p-header__nav { display: flex; gap: var(--space-4); }
        .p-header__nav a { font-size: var(--font-size-sm); text-decoration: none;font-family: var(--font-family-heading); font-weight: 600; line-height: 1.5; letter-spacing: .08em; }
        .p-header__action { display: flex; }
        .p-header__menuButton { display: none; }
        .p-info, .p-feature, .p-case, .p-voice, .p-cost, .p-treatment, .p-message, .p-faq, .p-access, .p-reservation, .p-alliance { padding-block: var(--layout-section-padding-y-lg); }
        .p-feature { background-image: url("./assets/images/p-feature.webp"); }
        .p-feature__inner {
          width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
          padding: 19px clamp(var(--space-5), 8vw, 114px);
        }
        .p-header__right{display:flex;align-items: center;
    gap: var(--space-8, 32px);}
        .p-feature__label { font-size: var(--font-size-2xl); }
        .p-doctor { min-height: 700px; padding-block: var(--space-20); }
        .p-doctor--primary { background-image: url("./assets/images/p-doctor-bg1.webp"); }
        .p-doctor--secondary { background-image: url("./assets/images/p-doctor-bg2.webp"); }
        .p-doctor__profile { grid-template-columns: 220px 500px; justify-content: space-between; }
        .p-doctor--secondary .p-doctor__copy { justify-items: end; text-align: left; }
        .p-doctor--secondary .p-doctor__profile { grid-template-columns: 500px 220px; }
        .p-doctor__name { width: 213px; height: 213px; }
        .p-case { padding-block-start: 200px; background-image: url("./assets/images/p-case-bg.webp"); }
        .p-case__inner { width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); padding-inline: 0; }
        .p-case__heading { width: min(100%, 1026px); margin-block-end: var(--space-12); }
        .p-case__heading h2 { top: 137px; right: max(20px, calc((100% - 1200px) / 2 + 89px)); }
        .p-case__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-8); }
        .p-voice { background-image: url("./assets/images/p-voice-bg.webp"); }
        .p-voice__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
        .p-reason__visual { height: 365px; }
        .p-reason__heading { top: 22px; left: calc(50% - 89px); grid-template-columns: 37px 1px 60px; column-gap: 10px; }
        .p-reason__eyebrow { height: 99px; font-size: 22px; line-height: 40.32px; }
        .p-reason__headingLine { height: 105px; }
        .p-reason__heading h2 { width: 60px; gap: var(--space-4); font-size: 36px; }
        .p-reason__heading h2 .is-large { font-size: 60px; }
        .p-reason__inner { width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); padding-inline: 0; }
        
        .p-reason__item { gap: var(--space-4); }
        .p-reason__title { gap: var(--space-6); }
        .p-reason__title h3 { font-size: 28px; }
        .p-reason__content { height: 150px; gap: var(--space-6); }
        .p-reason__image { width: 200px; height: 150px; flex-basis: 200px; }
        .p-reason__content p { font-size: 16px; }
        .p-reason__pcBreak { display: inline; }
        .p-reason__spBreak { display: none; }
        .p-cost { background-image: url("./assets/images/p-cost-bg.webp"); }
        .p-cost__inner { grid-template-columns: 260px 1fr; }
        .p-cost__panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        .p-cost__cards { grid-column: 1 / -1; grid-template-columns: 1fr 300px 300px; }
        .p-treatment { padding-block-start: 0; }
        .p-treatment__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
        .p-message { padding-block-start: 0; }
        .p-message__inner { grid-template-columns: .7fr 1.3fr; align-items: start; }
        .p-message__inner .c-editorial-heading__en, .p-message__inner h2 { grid-column: 1; }
        .p-message__inner ul { grid-column: 2; grid-row: 1 / span 2; }
        .p-faq, .p-access { padding-block-start: 0; }
        .p-access__inner { grid-template-columns: 2fr 1fr; }
        .p-footer { grid-template-columns: minmax(380px, .74fr) minmax(0, 1fr); }
        .p-footer__conversion, .p-footer__links { padding: var(--space-10) clamp(var(--space-6), 6vw, var(--space-20)); }

    .p-result__inner { gap: var(--space-12); max-width: var(--layout-container-max); }
    .p-result{margin-bottom:var(--layout-section-padding-y-lg)}
        .p-result__badges { display: grid; grid-auto-flow: column;}
        .p-result__award { width: 750px; height: 300px; object-fit: contain; }
        .p-result__number {display: flex; align-items: flex-end;
            gap: 8px;}
        .p-result__number strong { font-size: 80px; line-height: 0.8; letter-spacing: 5px; }
        .p-info { min-height: 530px; padding-block: 0; }
        .p-info__inner { width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); max-width: var(--layout-container-max); min-height: 530px; }
        .p-info__head p { font-size: var(--font-size-2xl); }
        .p-info__statement { font-size: var(--font-size-2xl); width: 594px;}
        .p-info__list { font-size: var(--font-size-xl); }
          .p-info {
        color: var(--color-text-primary);
        background: var(--color-bg-page) url("./assets/images/p-info__bg.webp") center / cover no-repeat;
        margin-block-start: var(--space-20);
      }
      .p-info__head{
        width: 594px;
        align-items: center;
        padding-bottom: 0px;
      }
        .p-feature { min-height: 572px; padding-block: 120px; }
        .p-doctor { padding-block: 0; }
        .p-doctor--primary { min-height: 744px; aspect-ratio: 475 / 248;
display: grid;
        align-items: end;
        max-width: 100%;}
        .p-doctor--primary .p-doctor__inner { width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); padding: 180px 0 var(--space-10); overflow: clip;
        aspect-ratio: 5 / 3;}
        .p-doctor--primary .p-doctor__copy { gap: var(--space-4); }
        .p-doctor--primary .p-doctor__eyebrow { width: 301px; height: 50px; padding: 13px 17px; line-height: 22.5px; letter-spacing: 4px; white-space: nowrap; }
        .p-doctor--primary .p-doctor__copy h2 { font-size: 56px; font-weight: 600; line-height: 1.4; letter-spacing: 1px; white-space: nowrap; }
        .p-doctor--primary .p-doctor__profile { grid-template-columns: 213px 500px; margin-block-start: 64px; }
        .p-doctor--primary .p-doctor__name { justify-self: start; width: 213px; height: 213px; }
        .p-doctor--primary .p-doctor__name strong { font-size: 36px; }
        .p-doctor--primary .p-doctor__careerPanel { width: 500px; }
        .p-doctor--primary .p-doctor__career { width: 500px; }
        .p-doctor--secondary { min-height: 671px; padding: 47px 0; aspect-ratio: 1425 / 671;
        display: grid;
        align-items: end;
        max-width: 100%;}
        .p-doctor--secondary .p-doctor__inner { width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); padding: var(--space-10) 0 0; overflow: clip; 
        aspect-ratio: 15/7;}
        .p-doctor--secondary .p-doctor__copy { display: flex; width: fit-content; flex-direction: column; align-items: flex-start; align-self: flex-end; gap: var(--space-4); margin-inline-start: auto; }
        .p-doctor--secondary .p-doctor__eyebrow { width: 301px; height: 50px; padding: 13px 17px; font-size: 28px; font-weight: 600; line-height: 22.5px; letter-spacing: 4px; white-space: nowrap; }
        .p-doctor--secondary .p-doctor__copy h2 { font-size: 56px; font-weight: 600; line-height: 1.4; letter-spacing: 1px; white-space: nowrap; }
        .p-doctor--secondary .p-doctor__profile { grid-template-columns: 500px 213px; margin-block-start: 64px; }
        .p-doctor--secondary .p-doctor__careerPanel, .p-doctor--secondary .p-doctor__career { width: 500px; }
        .p-doctor--secondary .p-doctor__name { justify-self: end; width: 213px; height: 213px; }
        .p-doctor--secondary .p-doctor__name strong { font-size: 36px; }
        .p-credential-band { min-height: 250px; padding-block: 0; background-image: url("./assets/images/p-doctor--3rd-bg.webp"); background-position: right center; background-size: auto 100%; }
        .p-credential-band__inner { width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); min-height: 250px; padding-inline: 0; }
        .p-credential-band ul { font-size: 28px; }
        .p-credential-band { min-height: 250px; }
        .p-case { height: auto; min-height: 1464px; }
        .p-case__grid { grid-template-columns: repeat(3, minmax(0, 320px)); justify-content: center; gap: var(--space-5) var(--space-8); }
        .c-case-card { width: 100%; min-height: 340px; padding: 21px; }
        .p-voice { padding-block: 80px; }
        .c-voice-card { height: 700px; grid-template-rows: auto auto 1fr; padding: var(--space-8); font-size: var(--font-size-sm); }
        .p-reason { padding-bottom:80px; }
        .p-cost { width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max)); height: auto; min-height: 779px; margin: 120px auto 0; padding: 0; background: none; filter: none; }
        .p-cost__qa, .p-cost__qaInner { min-height: 333px; }
        .p-cost__qaInner { display: grid; grid-template-columns: minmax(280px, 320px) minmax(220px, 266px) clamp(var(--space-10), 10vw, 140px) minmax(0, 440px); align-items: start; padding: 0; background: url("./assets/images/p-cost-bg.webp") center bottom / cover no-repeat; }
        .p-cost__header { grid-column: 1; justify-self: start; width: 311px; margin: 75px 0 0 -30px; padding: 0; background: none; }
        .p-cost__headerCard { height: 182px; padding: 16px 20px; overflow: hidden; box-sizing: border-box; white-space: nowrap; }
        .p-cost__content { display: contents; }
        .p-cost__questions { position: static; grid-column: 2; width: auto; margin-top: var(--space-10); padding: 0; gap: var(--space-6); background: none; }
        .p-cost__questions p { font-size: var(--font-size-md); line-height: 29px; white-space: nowrap; }
        .p-cost__pcBreak { display: inline; }
        .p-cost__answer { position: static; grid-column: 4; width: auto; margin: var(--space-10) 0 0; padding: 0; font-size: var(--font-size-md); background: none; }
       
        .p-cost__cards { display: block; width: 100%; min-height: 142px; padding: 0 var(--space-6) var(--space-8); border: 0; background: var(--color-brand-accent-soft); box-sizing: border-box; }
        .p-cost__cardBlock {flex-direction: row;}
        .p-cost__loan{width: auto;}
        .p-cost__cardBlock h3 { flex: 0 0 auto; margin: 0; padding: 8px 20px; color: var(--color-text-on-primary); background: var(--color-doctor-accent, #876d26); font-family: var(--font-family-display); font-size: 16px; font-weight: 600; line-height: 1; white-space: nowrap; }
        .p-cost__cardList {flex-direction: row;}
        .p-treatment__grid { grid-template-columns: repeat(3, 386px); justify-content: center; gap: 32px 20px; }
        .p-treatment__grid li { min-height: 361px; }
        .home .p-flow { min-height: 893px; }
        .home .p-flow__list { grid-template-columns: repeat(3, 1fr); }
        .home .p-flow__list li { grid-template-columns: 44px 110px 1fr; }
        .p-faq { min-height: 0; }
        .p-faq__topics { grid-template-columns: repeat(3, 1fr); }
        .p-faq__topics li { grid-template-columns: 100px 1fr; }
        .p-faq__guarantee { width: 800px; margin: auto; grid-template-columns: 280px 1fr; }
        .p-doctor-profiles { grid-template-columns: repeat(2, 1fr); }
        .p-news-column { min-height: 350px; margin-bottom: 85px; }
        .p-sns-info { min-height: 290px; }

        .p-access__inner { margin-top: 40px; }
        .p-access__gallery { width: 100%; max-width: 758px; }
        .p-footer { min-height: 0; }
  }

  @media (max-width: 1023px) {
    .p-info__catch { position: absolute; inset: -20px auto auto 20px;
            width: 20vw; }
        .p-info__head {align-items: end; padding-bottom: 4px;
            gap: 16px; margin-left: 32vw;}
        .p-info__head p { font-size: var(--font-size-md); }
        .p-info__head h2 {
            font-size: var(--font-size-xs);
        }
        .p-cost{margin-block-start: 80px;}
        .p-info__list { font-size: var(--font-size-base); }

        .p-cost__inner { padding-inline: 20px; }
        .p-treatment__grid { grid-template-columns: 1fr; }
        .p-treatment__lead br { display: none; }
        .p-doctor-profiles header { grid-template-columns: 120px 1fr; }
        .p-doctor-profiles header img { width: 120px; height: 90px; }
        .p-alliance__logos { grid-template-columns: repeat(2, 1fr); }
        .p-doctor--primary .p-doctor__inner {
        margin-top: 70px;
    }
    .p-doctor__career{
        padding: var(--space-4) var(--space-2);
    }
    .p-doctor--secondary{
    padding-block: var(--space-8);
    }

    .p-info__inner { width: 100%; max-width: 100vw; }
        .p-info__statement, .p-info__list { width: 100%; max-width: 100%; }

    .p-menu__header { height: 113px; padding: 20px; }
        .p-menu__headerImage { inset: 0; width: 100%; height: 100%; object-fit: cover; }
        .p-menu__titleImage { width: 228px; height: 73px; }
        .p-menu__content { padding: 32px 0 80px; }
        .p-menu__inner { gap: var(--space-10); width: 100%; max-width: none; }
        .p-menu__lead { width: calc(100% - 40px); font-size: 10px; text-align: left; }
        .p-menu__lead br:not(:first-of-type) { display: none; }
        .p-menu__list { grid-template-columns: 1fr; gap: var(--space-8); width: 100%; padding-inline: 20px; }
        .p-menu__item, .p-menu__item:nth-child(10) { width: 100%; min-height: 201px; padding: var(--space-3) var(--space-6) var(--space-6); }
        .p-menu__item:nth-child(6) { min-height: 199px; }
        .p-menu__item:nth-child(6) h3 { height: 47px; }
        .p-menu__item--detail, .p-menu__item--detail:nth-child(10) { min-height: 220px; }
        .p-menu__item::before { top: -12px; left: -7px; font-size: 60px; }
        .p-menu__item h3 { height: 49px; min-height: 49px; font-size: 25px; padding-bottom: 13px; }
        .p-menu__itemContent, .p-menu__item:nth-child(10) .p-menu__itemContent { flex-direction: row; align-items: flex-start; gap: var(--space-6); height: 116px; }
        .p-menu__item--detail .p-menu__itemContent, .p-menu__item--detail:nth-child(10) .p-menu__itemContent { height: 135px; }
        .p-menu__itemContent > img { width: 150px; height: 100px; }
        .p-menu__itemContent p { flex: 1; font-size: 12px; text-align: left; }
        .p-menu__item--detail .p-menu__itemText p { display: block; }
        .p-menu__item--detail .p-menu__itemText { gap: var(--space-6);}
        .p-menu__itemText { align-items: flex-start; gap: var(--space-6); min-width: 0; }
        .p-menu__button { width: 112px; margin-top: 0; }

    .p-flow__header { height: 150px; min-height: 150px; }
        .p-flow__title { width: 100%; padding-inline: 20px; }
        .p-flow__title h2 { font-size: 28px; }
        .p-flow__inner { width: calc(100% - var(--layout-container-padding) * 2); min-height: 0; padding-top: var(--space-10); }
        .p-flow__flow { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); width: 100%; }
        .p-flow__flowItem { width: 100%; min-height: 116.25px; }
        .p-flow__flowItem::after { display: block; top: auto; right: auto; bottom: -21px; left: 50%; width: 34px; height: 12px; clip-path: polygon(0 0, 100% 0, 50% 100%); transform: translateX(-50%); }
        .p-flow__flowItem:nth-child(7)::after { display: none; }
        .p-flow__flowText { flex-basis: 120px; width: 120px; }
        .p-flow__btn { width: min(100%, 345px); }
  }
}

@media (min-width: 1024px) {
  :root { --layout-header-height: 86px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
@media (max-width: 767px) {
    .p-case__grid { grid-template-columns: 1fr; }
}
@media (min-width: 768px) and (max-width: 1023px) {
.p-doctor__profile{
        grid-template-columns: 214px 1fr;
}
.p-doctor__name{
    width: 214px;
    height: 214px;
}
.p-doctor--secondary .p-doctor__profile{
    grid-template-columns: 1fr 214px;
}
.p-cost__questions{   min-height: 150px;
    background: #f3ecdc url(./assets/images/p-cost-questions-bg-tab.webp) center bottom / 100% auto no-repeat;}
.p-cost__answer {
    padding: 20px 20px 150px 20px;
    background: #3a3a3a url(./assets/images/p-cost-answer-bg-tab.webp) center bottom / 100% auto no-repeat;}
.p-doctor--primary {
    aspect-ratio: 4 / 5;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.p-doctor--secondary{
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.p-message__header picture, .p-message__header picture img,.p-message__header{
    min-height: 300px;
}

}

@media (max-width: 1023px) {
  .p-info__inner { width: 100%; max-width: 100%; min-width: 0; 
padding-top: 34vw;}
.p-info__statement, .p-info__list { width: calc(100vw - 40px); max-width: 370px; }
}

.p-faq {
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #f1ecdd;
}
.p-faq *,
.p-faq *::before,
.p-faq *::after { box-sizing: border-box; }
.p-faq__header {
  position: relative;
  width: 100%;
  height: 182px;
}
.p-faq__header > img {
position: absolute;
    top: -2.6%;
    left: -55.22%;
    width: 209.54%;
    height: 102.39%;
    max-width: none;
    object-fit: cover;
    object-position: top center;
}
.p-faq__header::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #f2eddc;
  clip-path: polygon(0 72%, 50% 100%, 100% 72%, 100% 100%, 0 100%);
  pointer-events: none;
  bottom: -1px;
}
.p-faq__title {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  width: 100%;
  height: 154px;
  padding: 0 20px;
}
.p-faq__title h2 {
  position: static;
  inset: auto;
  left: auto;
  display: block;
  width: max-content;
  margin: 0;
  color: var(--color-text-primary);
  font-family: var(--font-family-display);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 1px;
  text-shadow: none;
  transform: none;
}
.p-faq__title h2 span {
  display: block;
  width: max-content;
  border-bottom: 1px solid #b9a46a;
}
.p-faq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-8);
  width: 100%;
  max-width: 375px;
  height: auto;
  margin: 0 auto;
  padding: 40px 0 40px;
  overflow: visible;
}
.p-faq__lead {
  width: 100%;
  margin: 0;
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  text-align: left;
  position: relative;
    z-index: 2;
}
.p-faq__topics {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  width: 100%;
  margin: 0;
  list-style: none;
}
.p-faq__topics li {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  width: 100%;
  padding: 0px;
  overflow: hidden;
  border: 1px solid var(--color-border-default);
  background: var(--color-surface-card);
  box-shadow: 0 1px 3px rgba(61,58,53,.08);
}
.p-faq__topics li:nth-child(3) { min-height: 130px; }
.p-faq__topics img {
  flex: 0 0 130px;
  width: 130px;
  height: 130px;
  object-fit: contain;
}
.p-faq__topics span {
  padding: 24px 16px;
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}
.p-faq__guarantee {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-6);
  width: 100%;
  margin: 0;
  padding: 20px;
  background: #fff8ea;
  box-shadow: 0 4px 12px rgba(61,58,53,.1);
}
.p-faq__guaranteeImage {
  flex: 0 0 190.84px;
width: 100%;
  height: 190.84px;
}
.p-faq__guaranteeImage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-faq__guaranteeContent {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
width: 100%;
}
.p-faq__guaranteeContent h3 {
  display: flex;
  align-items: center;
  justify-content: center;
 width: 100%;
  margin: 0;
  padding: 8px 0;
  color: var(--color-text-inverse);
  background: var(--color-doctor-accent);
  font-family: var(--font-family-display);
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
}
.p-faq__guaranteeBig {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  width: 160px;
  height: 101px;
  margin: 0;
  white-space: nowrap;
  font-family: var(--font-family-display);
}
.p-faq__guaranteeBig > span {
  color: var(--color-text-primary);
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
}
.p-faq__guaranteeBig > span:last-child { line-height: 1.7; }
.p-faq__guaranteeBig strong {
  color: #b3261e;
  font-family: var(--font-family-display);
  font-size: 28px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 1.4337px;
}
.p-faq__guaranteeBig strong b {
  font-size: 44px;
  font-weight: 600;
}
.p-faq__guaranteeBig strong span { font-size: 22px; }
.p-faq__guaranteeFor {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-1);
  width: 100%;
  margin-top: 8px;
  padding: 16px;
  background: var(--color-surface-card);
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  font-weight: 500;
  line-height: 1.7;
}
.p-faq__guaranteeFor strong {
  font-size: 16px;
  font-weight: 500;
}

.p-faq__guaranteeFor p {
  width: 263px;
  margin: 0;
  font-size: 14px;
}

@media (min-width: 1024px) {
  .p-faq {
    height: auto;
    min-height: 0;
    padding: 0;
  }
  .p-faq__header {
    width: 100%;
    height: 332px;
  }
  .p-faq__header > img {
top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
  }
  .p-faq__title {
    width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
    margin: 0 auto;
    padding: 0;
    transform:translateY(3vw);
  }
  .p-faq__title h2 {
  position: static;
  inset: auto;
  left: auto;
    display: block;
    width: max-content;
    border-bottom: 1px solid #b9a46a;
    padding-bottom: 12px;
    font-size: 44px;
    line-height: 1.4;
  }
  .p-faq__title h2 span {
    display: inline;
    border: 0;
  }
  .p-faq__inner {
    gap: var(--space-8);
    max-width: 1180px;
    min-height: 0;
    padding: var(--space-10) var(--space-5) var(--space-20) var(--space-5);
  }
  .p-faq__lead {
    width: 100%;
    min-height: 27px;
    text-align: center;
  }
  .p-faq__topics {
    flex-direction: row;
    justify-content: center;
    gap: var(--space-8);
    width: 100%;
    min-height: 132px;
    padding: 0;
  }
  .p-faq__topics li,
  .p-faq__topics li:nth-child(3) {
    flex: 1 1 0;
    width: auto;
    box-shadow: none;
  }
  .p-faq__guarantee {
    display: grid;
    grid-template-columns: minmax(0, 389px) minmax(0, 1fr);
    align-items: start;
    gap: var(--space-10);
    width: 100%;
    max-width: 1200px;
    min-height: 316px;
    padding: 32px;
  }
  .p-faq__guaranteeImage {
    width: 100%;
    height: 252px;
  }
  .p-faq__guaranteeContent {
    gap: var(--space-6);
    width: 100%;
    min-height: 235px;
  }
  .p-faq__guaranteeContent h3 {
    width: 100%;
    min-height: 45px;
    font-size: 22px;
  }
  .p-faq__guaranteeBig {
    flex-direction: row;
    align-items: flex-end;
    gap: var(--space-1);
    width: min(100%, 505px);
    height: auto;
    min-height: 52px;
  }
  .p-faq__guaranteeBig > span {
    font-size: 22px;
  }
  .p-faq__guaranteeBig > span:last-child { line-height: 1.7; }
  .p-faq__guaranteeBig strong {
    font-size: 36px;
  }
  .p-faq__guaranteeBig strong b { font-size: 52px; }
  .p-faq__guaranteeBig strong span { font-size: 28px; }
  .p-faq__guaranteeFor {
    width: min(100%, 525px);
    height: auto;
    min-height: 90px;
    margin-top: 0;
  }
  .p-faq__guaranteeFor p {
    width: auto;
    font-size: 16px;
    white-space: nowrap;
  }
  .p-flow__flowItem:nth-child(3)::after, .p-flow__flowItem:nth-child(6)::after, .p-flow__flowItem:nth-child(7)::after { display: none; }
}

.p-message__header {
  position: relative;
  width: 100%;
  overflow: hidden;
}
.p-message__header picture,
.p-message__header picture img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.p-message__header > p,
.p-message__header > h2 {
  position: absolute;
  left: max(20px, calc((100% - 1200px) / 2));
  z-index: 1;
  width: calc(100% - var(--layout-container-padding) * 2);
  margin: 0;
  color: var(--color-text-inverse);
  text-shadow: none;
}
.p-message__header > p {
  top: 90.5px;
  color: #f1ecdd;
  font-family:var(--font-family-en);
  font-size: 18px;
  font-weight: var(--font-weight-normal);
  line-height: 1;
  letter-spacing: 1.8px;
}
.p-message__header > h2 {
  top: 120.5px;
  font-family: var(--font-family-display);
  font-size: 28px;
  font-weight: 600;
  line-height: 27px;
  letter-spacing: 1px;
}

@media (min-width: 1024px) {
  .p-message__header {
    height: 343px;
    min-height: 343px;
  }
  .p-message__header > p {
    top: 143px;
    width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
  }
  .p-message__header > h2 {
    top: 173px;
    width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
    font-size: var(--font-size-2xl);
  }
}

section.p-doctor-profiles.p-doctor__profile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-6);
  width: min(calc(100% - var(--layout-container-padding) * 2), 100%);
  height: auto;
  margin: 0 auto var(--space-20);
}
.p-doctor-profiles *,
.p-doctor-profiles *::before,
.p-doctor-profiles *::after { box-sizing: border-box; }
.p-doctor-profiles .p-doctor__profile__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  margin: 0;
  padding: var(--space-5);
  border: 1px solid var(--color-border-default);
  background: var(--color-surface-card);
}

.p-doctor-profiles .p-doctor__profile__header {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  width: 100%;
  height: 96px;
  padding: 0 0 16px;
  border: 0;
}
.p-doctor-profiles .p-doctor__profile__image {
  flex: 0 1 clamp(90px, 32vw, 120px);
  width: clamp(90px, 32vw, 120px);
  aspect-ratio: 3 / 2;
  height: auto;
  overflow: hidden;
}
.p-doctor-profiles .p-doctor__profile__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-doctor-profiles .p-doctor__profile__meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  flex: 1 1 0;
  width: auto;
  min-width: 0;
}
.p-doctor-profiles .p-doctor__profile__name {
  margin: 0;
  color: var(--color-text-secondary);
  font-family: var(--font-family-display);
  font-size: 22px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 2px;
}

.p-doctor-profiles .p-doctor__profile__sns {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 128px;
  height: 36px;
}
.p-doctor-profiles .p-doctor__profile__sns img {
  display: block;
  width: 36px;
  height: 36px;
}
.p-doctor-profiles .p-doctor__profile__hr {
  flex: 0 0 1px;
  width: 100%;
  height: 1px;
  border-top: 1px solid var(--color-border-default);
}
.p-doctor-profiles .p-doctor__profile__content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  flex: 1;
  padding-top: 15px;
}
.p-doctor-profiles .p-doctor__profileText {
  width: 100%;
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
  text-align: justify;
}
.p-doctor-profiles .p-doctor__profileText p { margin: 0; }
.p-doctor-profiles .p-doctor__profile__item:first-child .p-doctor__profileText p:nth-child(1),
.p-doctor-profiles .p-doctor__profile__item:first-child .p-doctor__profileText p:nth-child(3),
.p-doctor-profiles .p-doctor__profile__item:last-child .p-doctor__profileText p:nth-child(2) { margin-bottom: 1.7em; }
.p-doctor-profiles .p-doctor__profile__btn {
  display: flex;
  justify-content: center;
  width: 100%;
  height: 73px;
  padding-top: 30px;
}
.p-doctor-profiles .p-doctor__profile__btn .c-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 200px;
  height: 43px;
  margin: 0;
  padding: 10px 0;
  font-size: var(--font-size-base);
    font-weight: var(--font-weight-normal);
}
.p-doctor-profiles .p-doctor__profile__btn .c-button > img {
  width: 14px;
  height: 18px;
  object-fit: contain;
}

@media (min-width: 1024px) {
  section.p-doctor-profiles.p-doctor__profile {
    flex-direction: row;
    gap: var(--space-10);
    width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
    height: auto;
    margin: 30px auto var(--space-20);
  }
  .p-doctor-profiles .p-doctor__profile__item,
  .p-doctor-profiles .p-doctor__profile__item:first-child,
  .p-doctor-profiles .p-doctor__profile__item:last-child {
    flex: 1 1 0;
    width: auto;
    min-height: 513px;
    padding: var(--space-6);
  }
  .p-doctor-profiles .p-doctor__profile__header {
    width: 532px;
    height: 136px;
  }
  .p-doctor-profiles .p-doctor__profile__image {
    flex-basis: 180px;
    width: 180px;
    height: 120px;
  }
  .p-doctor-profiles .p-doctor__profile__name {
    color: var(--color-text-primary);
    font-size: 28px;
  }
  .p-doctor-profiles .p-doctor__profile__hr {
    width: 532px;
  }
  .p-doctor-profiles .p-doctor__profile__content {
    width: 532px;
    padding-top: 15px;
  }
  .p-doctor-profiles .p-doctor__profileText {
    width: 532px;
    font-size: 14px;
  }
  .p-doctor-profiles .p-doctor__profile__btn {
    width: 532px;
  }
}
/* p-doctor__profile exact box-model correction */
.p-doctor-profiles .p-doctor__profile__item { padding: 19px; }
.p-doctor-profiles .p-doctor__profile__header,
.p-doctor-profiles .p-doctor__profile__hr,
.p-doctor-profiles .p-doctor__profile__content,
.p-doctor-profiles .p-doctor__profileText,
.p-doctor-profiles .p-doctor__profile__btn { width: 100%; }
.p-doctor-profiles .p-doctor__profile__hr {
  flex: 0 0 0;
  height: 0;
}
.p-doctor-profiles .p-doctor__profile__content { padding-top: 16px; }

.p-doctor-profiles .p-doctor__profile__btn .c-button {
  min-height: 43px;
  max-height: 43px;
  border: 0;
}

@media (min-width: 1024px) {
  .p-doctor-profiles .p-doctor__profile__item,
  .p-doctor-profiles .p-doctor__profile__item:first-child,
  .p-doctor-profiles .p-doctor__profile__item:last-child { padding: 23px; }
  .p-doctor-profiles .p-doctor__profile__header,
  .p-doctor-profiles .p-doctor__profile__hr,
  .p-doctor-profiles .p-doctor__profile__content,
  .p-doctor-profiles .p-doctor__profileText,
  .p-doctor-profiles .p-doctor__profile__btn { width: 100%; }
  .p-doctor-profiles .p-doctor__profile__item:first-child .p-doctor__profile__content { min-height: 329px; }
  .p-doctor-profiles .p-doctor__profile__item:last-child .p-doctor__profile__content { min-height: 233px; }
  .p-doctor-profiles .p-doctor__profile__item:first-child .p-doctor__profileText { min-height: 240px; }
  .p-doctor-profiles .p-doctor__profile__item:last-child .p-doctor__profileText {
    width: 100%;
    min-height: 144px;
  }
}

.p-doctor-profiles .p-doctor__profile__name {
  font-family: var(--font-family-heading);
}
.p-doctor-profiles .p-doctor__profileText {
  font-family: "Yu Gothic", "YuGothic", sans-serif;
}
.p-doctor-profiles .p-doctor__profile__hr {
  position: relative;
  border: 0;
}
.p-doctor-profiles .p-doctor__profile__hr::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  border-top: 1px solid var(--color-border-default);
}

section.p-doctor-profiles.p-doctor__profile { margin-bottom: 60px; }
section.p-news-column {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 700px;
  min-height: 0;
  margin: 0 auto 60px;
}
.p-news-column *, .p-news-column *::before, .p-news-column *::after { box-sizing: border-box; }
.p-news-column--news { min-height: 0; }
.p-news-column--column { min-height: 0; }
.p-news-column__header {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(100% - var(--layout-container-padding) * 2);
  height: 60px;
  text-align: center;
}
.p-news-column__header::after {
  content: "";
  position: absolute;
  top: 36px;
  left: 50%;
  width: 45px;
  height: 1px;
  border-radius: 2px;
  background: var(--color-doctor-accent);
  transform: translateX(-50%);
}
.p-news-column__header p {
  width: auto;
  height: 44px;
  margin: 0;
  color: #000;
  font-family:var(--font-family-en);
  font-size: 28px;
  font-weight: var(--font-weight-normal);
  line-height: 1;
  letter-spacing: 2px;
}
.p-news-column__header h2 {
  margin: 0;
  color: #000;
  font-family: var(--font-family-heading);
  font-size: 14px;
  font-weight: 500;
  line-height: 15.12px;
}

.p-news-column__list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: calc(100% - var(--layout-container-padding) * 2);
  padding-top: 30px;
}
.p-news-column__item {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  margin: 0;
  padding: var(--space-3) 0;
  border: 0;
  border-bottom: 1px solid var(--color-border-default);
}
.p-news-column--news .p-news-column__item { min-height: 96px; }
.p-news-column--column .p-news-column__item:first-child { min-height: 108px; }
.p-news-column--column .p-news-column__item:last-child { min-height: 110px; }
.p-news-column__item h3 {
  position: static;
  width: 100%;
  height: auto;
  margin: 0;
  color: #0d1616;
  font-family: "Yu Gothic", "YuGothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
}
.p-news-column--news .p-news-column__item h3 { width: 100%; }
.p-news-column__item time {
  position: static;
  min-height: 20px;
  color: var(--color-text-muted);
  font-family: "Yu Gothic", "YuGothic", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.7;
}

.p-news-column__btn {
  display: flex;
  justify-content: center;
  width: calc(100% - var(--layout-container-padding) * 2);
  padding-top: 30px;
}
.p-news-column__btn .c-button {
display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 200px;
    height: 43px;
    min-height: 43px;
    max-height: 43px;
    margin: 0;
    padding: 10px 0;
    border: 0;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-normal);
}
.p-news-column__btn .c-button > img { width: 14px; height: 18px; object-fit: contain; }

@media (min-width: 1024px) {
  section.p-doctor-profiles.p-doctor__profile { margin-bottom: 80px; }
  section.p-news-column, .p-news-column--news, .p-news-column--column {
    width: min(calc(100% - var(--layout-container-padding) * 2), 700px);
    min-height: 350px;
    margin-bottom: 85px;
  }
  .p-news-column__header, .p-news-column__list, .p-news-column__btn { width: 100%; }
  .p-news-column__list, .p-news-column--news .p-news-column__list, .p-news-column--column .p-news-column__list {
    min-height: 217px;
    padding-top: var(--space-10);
  }
  .p-news-column__item { width: 100%; }
  .p-news-column--news .p-news-column__item, .p-news-column--column .p-news-column__item:first-child { min-height: 81px; }
  .p-news-column--news .p-news-column__item:last-child, .p-news-column--column .p-news-column__item:last-child { min-height: 96px; }
  .p-news-column__item h3, .p-news-column--news .p-news-column__item h3 {
    width: 100%;
    white-space: nowrap;
  }
}

.p-access__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  width: min(calc(100% - var(--layout-container-padding) * 2), 335px);
  min-height: 152px;
  margin: var(--space-10) auto 0;
}
.p-access__bottom *,
.p-access__bottom *::before,
.p-access__bottom *::after { box-sizing: border-box; }
.p-access__bottom__title {
  display: flex;
  justify-content: center;
  width: 100%;
  min-height: 27px;
}
.p-access__bottom__title h2 {
  margin: 0;
  color: var(--color-text-primary);
  font-family: var(--font-family-heading);
  font-size: 18px;
  font-weight: 600;
  line-height: 27px;
  letter-spacing: 1.35px;
  text-align: center;
}
.p-access__details img {
    display: inline-block;
    margin-right: 8px;
    position: relative;
    top: 6px;
}
.p-access__bottom__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  width: 100%;
  min-height: 44px;
}
.p-access__bottom__tel > img {
  display: block;
  width: 29px;
  height: 29px;
}
.p-access__bottom__tel a {
  color: var(--color-text-primary);
  font-family: var(--font-family-heading);
  font-size: 28px;
  font-weight: 600;
  line-height: 43.2px;
  letter-spacing: 1.35px;
  text-align: center;
  text-decoration: none;
}

.p-access__bottom__btn {
  display: flex;
  justify-content: center;
  width: calc(100% - var(--layout-container-padding) * 2);
  height: 73px;
  padding-top: 30px;
}
.p-access__bottom__btn .c-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: min(100%, 250px);
  height: 43px;
  min-width: 0;
  min-height: 43px;
  max-height: 43px;
  margin: 0;
  padding: 10px 0;
  border: 0;
}
.p-access__bottom__btn .c-button span {
  font-family: var(--font-family-heading);
  font-size: 15px;
  font-weight: var(--font-weight-medium);
  line-height: 22.5px;
  letter-spacing: 1.5px;
}

.p-access__bottom__btn .c-button > img {
  width: 14px;
  height: 18px;
  object-fit: contain;
}

@media (min-width: 1024px) {
  .p-access__bottom {
    gap: var(--space-5);
    width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
    min-height: 184px;
  }
  .p-access__bottom__title,
  .p-access__bottom__tel { width: 100%; }
  .p-access__bottom__title h2 { font-size: 28px; }
  .p-access__bottom__tel > img {
    width: 44px;
    height: 44px;
  }
  .p-access__bottom__tel a { font-size: 48px; }
  .p-access__bottom__btn { width: min(100%, 700px); }
}

.p-access__resav,
.p-access__resav *,
.p-access__resav *::before,
.p-access__resav *::after { box-sizing: border-box; }
.p-access__resav {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(calc(100% - var(--layout-container-padding) * 2), 100%);
  margin: var(--space-10) auto 0;
  padding: 0;
  border: 1px solid var(--color-border-default);
  color: var(--color-text-primary);
  background: var(--color-surface-card);
  box-shadow: 0 1px 3px rgba(61, 58, 53, .08);
}
.p-access__resav > h2 {
  display: flex;
  flex: 0 0 47px;
  align-items: center;
  justify-content: center;
  width: calc(100% + 2px);
  height: 47px;
  margin: 0;
  color: var(--color-text-inverse);
  background: var(--color-brand-tertiary);
  font-family: var(--font-family-heading);
  font-size: 18px;
  font-weight: 600;
  line-height: 22.5px;
  letter-spacing: 1.35px;
  text-align: center;
}
.p-access__rsv__body {
  display: flex;
  flex: 0 0 287px;
  flex-direction: column;
  width: calc(100% - 2px);
  min-height: 287px;
  padding: var(--space-5);
  background: var(--color-surface-card);
}
.p-access__rsv__body > p {
  flex: 0 0 27px;
  width: 100%;
  min-height: 27px;
  margin: 0;
  color: var(--color-text-secondary);
  font-family: "Yu Gothic", "YuGothic", sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 27.2px;
  text-align: center;
}

.p-access__rsv__btns {
  display: flex;
  flex: 0 0 220px;
  flex-direction: column;
  gap: var(--space-4);
  width: 100%;
  min-height: 220px;
  padding-top: var(--space-5);
}
.p-access__rsv__btn {
  display: flex;
  flex: 0 0 56px;
  align-items: center;
  justify-content: center;
  gap: var(--space-1);
  width: 100%;
  height: 56px;
  min-height: 56px;
  max-height: 56px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  font-family: var(--font-family-heading);
  font-size: 18px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(63, 86, 74, .25);
}
.p-access__rsv__btn--line { color: var(--color-text-inverse); background: #4dc764; }
.p-access__rsv__btn--web { color: var(--color-text-inverse); background: var(--color-brand-primary); }
.p-access__rsv__btn--tel { border: 1px solid var(--color-border-strong); color: var(--color-text-primary); background: var(--color-bg-section-alt); }
.p-access__rsv__btn--line img { width: 27px; height: 25px; }
.p-access__rsv__btn--web img { width: 16px; height: 14.769px; }
.p-access__rsv__btn--tel img { width: 24px; height: 24px; }
.p-access__rsv__btn img { display: block; flex: 0 0 auto; object-fit: fill; }
.p-access__rsv__btn span { white-space: nowrap; }

@media (min-width: 1024px) {
  .p-access__resav {
    width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
    min-height: 192px;
  }
  .p-access__resav > h2 {
    width: calc(100% + 1px);

  }
  .p-access__rsv__body {
    flex-basis: 143px;
    width: calc(100% - 2px);
    min-height: 143px;
  }
  .p-access__rsv__body > p { width: 100%; white-space: nowrap; }
  .p-access__rsv__btns {
    flex-basis: 76px;
    flex-direction: row;
    gap: var(--space-6);
    width: 100%;
    min-height: 76px;
  }
  .p-access__rsv__btn {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: 370px;
  }
  .p-menu {
    margin-top:100px;
  }
}

.p-alliance__header,
.p-alliance__header *,
.p-alliance__header *::before,
.p-alliance__header *::after { box-sizing: border-box; }
.p-alliance__header {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(100% + 40px);
  height: 60px;
  margin-left: -20px;
  text-align: center;
}
.p-alliance__header > p {
  height: 44px;
  margin: 0;
  color:var(--color-text-primary);
  font-family:var(--font-family-en);
  font-size: 28px;
  font-weight: var(--font-weight-normal);
  line-height: 28px;
  letter-spacing: 2px;
  text-align: center;
}
.p-alliance__line { display: none; }
.p-alliance__header > h2 {
  height: 16px;
  margin: 0;
  color: #000;
  font-family: var(--font-family-heading);
  font-size: 14px;
  font-weight: 500;
  line-height: 15.12px;
  letter-spacing: 0;
  text-align: center;
}

.p-alliance__logos{
    margin-top:clamp(40.00px, calc(6.16vw + 16.89px), 80.00px);
}

@media (min-width: 1024px) {
  .p-alliance__header {
    width: min(calc(100% - var(--layout-container-padding) * 2), var(--layout-container-max));
    margin-left: 0;
  }
  .p-alliance__line {
    position: absolute;
    top: 36px;
    left: 50%;
    display: block;
    width: 45px;
    height: 1px;
    border-radius: 2px;
    background: var(--color-doctor-accent);
    transform: translateX(-50%);
  }
}

.p-footer,
.p-footer *,
.p-footer *::before,
.p-footer *::after { box-sizing: border-box; }
.p-footer { display: flex; flex-direction: column; width: 100%; min-height: 0; padding: 0; }
.p-footer__cta {
  position: relative; display: flex; flex: 0 0 513px; align-items: flex-start; justify-content: center;
  width: 100%; min-height: 513px; padding: var(--space-10) var(--layout-container-padding); overflow: hidden; color: var(--color-text-primary);
  background-color: var(--color-bg-section-alt);
  background-image: url("./assets/images/p-footer__cta-bg.webp");
  background-position: center; background-size: cover;
}
.p-footer__cta__inner { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-6); width: min(100%, 335px); min-height: 433px; }
.p-footer__cta__inner > h2 {
  flex: 0 0 18px; width: 100%; min-height: 18px; margin: 0; color: var(--color-text-primary);
  font-family: "Noto Serif JP",serif; font-size: 18px; font-weight: 600; line-height: 18px; text-align: center;
}
.p-footer__cta__btns { display: flex; flex: 0 0 216px; flex-direction: column; gap: var(--space-6); width: 100%; min-height: 216px; }
.p-footer__cta__btn {
  display: flex; flex: 0 0 56px; align-items: center; justify-content: center; gap: var(--space-1);
  width: 100%; height: 56px; min-height: 56px; max-height: 56px; margin: 0; padding: 0;
  border: 0; border-radius: 0; font-family: "Noto Serif JP",serif; font-size: 18px;
  font-weight: 700; line-height: 18px; text-decoration: none; box-shadow: 0 2px 8px rgba(63,86,74,.25);
}
.p-footer__cta__btn--line { color: var(--color-text-inverse); background: #4dc764; }
.p-footer__cta__btn--web { color: var(--color-text-inverse); background: var(--color-brand-primary); }
.p-footer__cta__btn--tel { border: 1px solid var(--color-border-strong); color: var(--color-text-primary); background: var(--color-bg-section-alt); }
.p-footer__cta__btn img { display: block; flex: 0 0 auto; object-fit: fill; }
.p-footer__cta__btn--line img { width: 27px; height: 25px; }
.p-footer__cta__btn--web img { width: 16px; height: 14.769px; }
.p-footer__cta__btn--tel img { width: 24px; height: 24px; }
.p-footer__cta__btn span { white-space: nowrap; }
.p-footer__access {
  flex: 0 0 151px; width: 264px; height: 151px; color: var(--color-text-primary);
  font-family: "Yu Gothic","YuGothic",sans-serif; font-size: 16px; font-weight: 500; line-height: 27.2px;
}
.p-footer__access address { width: 264px; height: 81px; margin: 0; white-space: nowrap; }
.p-footer__access__routes { display: flex; flex-direction: column; gap: var(--space-1); width: 264px; height: 58px; margin-top: 12px; }
.p-footer__access__routes p { display: flex; align-items: flex-start; gap: var(--space-1); width: 264px; height: 27px; margin: 0; white-space: nowrap; }
.p-footer__access__routes p:last-child { align-items: center; width: 215px; }
.p-footer__access__routes p:first-child img { width: 21px; height: 21px; }
.p-footer__access__routes p:last-child img { width: 16px; height: 16px; }
.p-footer__access__routes img { display: block; flex: 0 0 auto; object-fit: contain; }
.p-footer-link {
  display: flex; flex-direction: column; align-items: center; gap: var(--space-10);
  width: 100%; padding: var(--space-10) var(--layout-container-padding); overflow: hidden; color: var(--color-text-inverse); background: var(--color-brand-tertiary);
}
.p-footer-link__logo { display: flex; flex: 0 0 48px; width: min(100%, 319px); min-height: 48px; align-items: center; justify-content: center; }
.p-footer-link__logo img { position: static; display: block; width: 235px; height: 52px; object-fit: fill; }
.p-footer-link__wrap {
  display: flex; flex-direction: row; align-items: flex-start; gap: var(--space-8);
  width: 100%;
  font-size: clamp(12.00px, calc(0.62vw + 9.69px), 16.00px); font-weight: 500; line-height: 27.2px; white-space: nowrap;
}
.p-footer-link__list {
  display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  width: 50%; margin: 0; padding: 0; overflow: hidden; list-style: none;
}

.p-footer-link__list li { margin: 0; padding: 0; }
.p-footer-link__list a { color: var(--color-text-inverse); text-decoration: none; }

@media (min-width: 1024px) {
  .p-footer { flex-direction: row; }
  .p-footer__cta { flex: 0 0 42.222222%; width: 42.222222%; }
  .p-footer__cta__inner { min-height: 417px; }
  .p-footer__cta__btns { flex-basis: 200px; gap: var(--space-4); min-height: 200px; }
  .p-footer-link { flex: 1 0 0; gap: var(--space-10); width: auto;}

  .p-footer-link__logo img { position: static; width: 229px; height: 52px; }
  .p-footer-link__wrap { flex: 0 0 249px; flex-direction: row; gap: var(--space-12); width: min(100%, 548px); min-height: 249px; }
}

/* ==========================================================================
   Shared foundation compatibility overrides
   This final, intentionally unlayered block keeps the LP implementation
   authoritative when reset.css, typography.css, and ui.css are also loaded.
   The existing cascade layers above remain intact.
   ========================================================================== */
*,
*::before,
*::after {
  margin: revert-layer;
  padding: revert-layer;
  box-sizing: revert-layer;
}

html {
  scrollbar-gutter: auto;
}
img,
picture,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: revert-layer;
  max-inline-size: revert-layer;
  block-size: revert-layer;
}

body {
  margin: 0;
  color: var(--color-text-primary);
  background: var(--color-bg-page);
  font-family: var(--font-family-body);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);
  font-feature-settings: normal;
}

address {
  font-style: normal;
}

h1,
h2,
h3 {
  line-height: revert-layer;
}

.c-skip-link,
.c-button,
.p-header__action,
.p-header__menuLine,
.p-menuDialog,
.p-menuDialog--drawerRight,
.p-menuDialog__close,
.p-menuDialog__close::before,
.p-menuDialog__close::after {
  all: revert-layer;
}

.p-info__catch {
  display: revert-layer;
}

.p-footer {

  padding: 0 !important;
}

@media (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
  .p-reason__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-10) var(--space-6); margin-block-start: var(--space-20); }
 .p-cost__fee { flex-direction: row;}
}

@media (min-width: 1024px) {
  .p-hero { min-height: 650px; overflow: visible; }
  .p-hero__media { height: 650px; }
  .p-hero__media img { width: 100%; height: 650px; min-height: 0; object-fit: cover; object-position: center top; }
  .p-hero__inner { width: min(calc(100% - var(--layout-container-padding) * 2), 1200px); margin-inline: auto; }
  .p-hero__copy { min-height: 650px; }
  .p-hero__eyebrow {
    top: 114px; left: 155px; padding: 12px 26px 13px;
    font-size: 28px; line-height: 1; letter-spacing: .08em;
  }
  .p-hero__title {
    top: 202px; left: 6px; display: grid; gap: 0;
    font-size: 44px; line-height: 1.58; letter-spacing: .025em; writing-mode: horizontal-tb;
  }
  .p-hero__title strong { font-size: 1.45em; line-height: 1; }
  .p-hero__banner { top: 437px; bottom: auto; left: 6px; width: 600px; min-height: 77px; }
  .p-hero__banner p { padding: 8px 10px; font-size: 19px; line-height: 1.42; }
  .p-hero__badges { top: 500px; right: 0; bottom: auto; align-items: flex-start; }
  .p-hero__badge { width: 240px; max-width: none; }
  .p-hero__badge + .p-hero__badge { margin-left: -19px; }
  .p-hero__badge p { font-size: 18px; }
  .p-hero__badge--europe { transform: translateY(27px); }
  .p-hero__badge--angel { transform: translateY(17px); }
}

.p-hero__copyImage {
  position: absolute;
  display: block;
}
.p-hero__copyImage img { display: block; width: 100%; height: auto; }
@media (max-width: 1023px) {
  .p-hero { min-height: calc(100vw * 790 / 750 + 70px); }
  .p-hero__media { inset: 0 0 auto; height: calc(100vw * 790 / 750); }
  .p-hero__media img { height: 100%; min-height: 0; }
  .p-hero__title { display: block; width: 30vw; height: 68vw; font-size: 5.2vw; line-height: 1.5; }
  .p-hero__banner { bottom: 40px; width: 93vw;}
  .p-hero__badges { bottom: 0; display: none;}
  .p-hero__badge--angel { transform: translateY(-4px); }
  .p-case{padding-block-start: 120px;}
  .p-case__heading h2{top: 40px;}
  .p-access__header {
    min-height: 200px;
}
.p-hero__copyImage {
    top: 8vw;
    left: 4.5vw;
    width: 36vw;
}
.p-hero__banner {
  display: block; height: auto; min-height: 0; border: 0; background: none;
  box-shadow: none; text-shadow: none;
}
.p-hero__badge--sp img{
    width: 100%;
    max-width: 240px;
}
.p-hero__badges--sp {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
      padding:var(--layout-container-padding);
}
}
@media (min-width: 1024px) {
  .p-hero__copyImage { top: 114px; left: 6px; width: 592px; }
  .p-hero__banner { width: 600px; height: auto; }
  .p-hero__badges--sp{display:none;}
}

@media (min-width: 1024px) and (max-width: 1160px) {
.p-header__actions{
  display:none;
}
.p-header__right{
    padding-right: var(--space-4);
}
}

.p-voice__carousel {
  display: flex;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--layout-container-padding);
  -webkit-overflow-scrolling: touch;
}
.p-voice__carousel > .p-voice__item {
  flex: 0 0 100%;
  min-width: 0;
  scroll-snap-align: start;
}
@media (min-width: 1024px) {
  .p-voice__carousel > .p-voice__item {
    flex-basis: calc((100% - var(--space-6)) / 2);
  }
}

