    /* ============================================
       Foundation
       html { font-size: 68.8% } → 11px = 1rem
       メディアクエリのみ px（ブラウザ基準のため）
    ============================================ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    /* ============================================
       p-hours（診療時間）
    ============================================ */
    .p-hours {
      padding: 8.0rem 0;
      position: relative;
    }


    .p-hours__inner {
      padding: 0 4.8rem;
      display: grid;
      grid-template-columns: 24rem 1fr;
      gap: 6.4rem;
      align-items: start;
    }

    .p-hours__heading {
      position: static;
    }

    .p-hours__title {
      font-size: 4.8rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
      margin-bottom: 1.6rem;
      position: relative;
      padding-top: 3.2rem;
    }

    .p-hours__title::before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 4.0rem;
      height: 0.6rem;
      background: #008F9D;
    }

    .p-hours__lead {
      font-size: 1.5rem;
      color: #6B7479;
      line-height: 1.8;
      letter-spacing: 0.04em;
      margin-top: 2.0rem;
    }

    .p-hours__table-wrap {
      overflow-x: auto;
      margin-bottom: 2.0rem;
    }

    .p-hours__table {
      width: 100%;
      border-collapse: collapse;
      font-size: 1.6rem;
    }

    .p-hours__table thead th {
      background: #E6F4F6;
      color: #2A2F33;
      font-weight: 700;
      padding: 1.2rem 0.8rem;
      text-align: center;
      font-size: 1.5rem;
    }

    .p-hours__table thead th[data-day="0"] {
      color: #D85A5A;
    }

    .p-hours__table thead th[data-day="6"] {
      color: #4A90C8;
    }

    .p-hours__table thead th.is-today {
      background: #008F9D;
      color: #fff;
    }

    .p-hours__table tbody th {
      background: #F5F8F9;
      color: #6B7479;
      font-weight: 500;
      padding: 1.6rem 1.2rem;
      text-align: left;
      white-space: nowrap;
      font-size: 1.4rem;
    }

    .p-hours__table tbody th span {
      display: block;
      font-size: 1.4rem;
      color: #6B7479;
      margin-top: 0.4rem;
    }

    .p-hours__table tbody td {
      text-align: center;
      padding: 1.6rem 0.8rem;
      color: #008F9D;
      font-size: 1.6rem;
      border-top: 0.1rem solid #E2E8EA;
    }

    .p-hours__table tbody td.is-closed {
      color: #D85A5A;
    }

    .p-hours__table tbody td.is-today {
      background: #F4FAFB;
      font-weight: 700;
    }

    .p-hours__note {
      font-size: 1.4rem;
      color: #2A2F33;
      margin-bottom: 3.2rem;
      letter-spacing: 0.02em;
    }

    .p-hours__contact {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1.6rem;
      margin-top: 2.4rem;
    }

    .p-hours__contact-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.8rem;
      padding: 2.0rem 1.6rem;
      background: #fff;
      border-radius: 1.2rem;
      box-shadow: 0 0.2rem 1.2rem rgba(0,50,60,0.07);
    }

    .p-hours__contact-card-label {
      font-size: 1.4rem;
      font-weight: 700;
      color: #2A2F33;
      letter-spacing: 0.04em;
    }

    .p-hours__tel {
      display: inline-flex;
      align-items: center;
      gap: 0.8rem;
      font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
      font-size: 2.8rem;
      font-weight: 700;
      color: #008F9D;
      text-decoration: none;
      letter-spacing: 0.04em;
      transition: opacity 0.18s ease;
    }

    .p-hours__tel:hover { opacity: 0.75; }

    @media (max-width: 767px) {
      .p-hours__contact {
        grid-template-columns: 1fr;
      }
      .p-hours { padding: 5.0rem 0; }
      .p-hours__inner {
        grid-template-columns: 1fr;
        gap: 3.2rem;
        padding: 0 1.6rem;
      }
      .p-hours__heading { position: static; }
      .p-hours__title {
        font-size: 3.2rem;
        text-align: left;
      }
      .p-hours__title::before { left: 0; transform: none; }
      .p-hours__table { font-size: 1.4rem; min-width: 36rem; }
    }

    /* ============================================
       p-menu（診療メニューグリッド）
    ============================================ */
    .p-menu {
      padding: 8.0rem 0;
    }

    .p-menu__inner {
      padding: 0 4.8rem;
    }

    .p-menu__heading {
      text-align: left;
      margin-bottom: 4.0rem;
    }

    .p-menu__title {
      font-size: 3.2rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
      position: relative;
      padding-top: 3.2rem;
      display: inline-block;
    }

    .p-menu__title::before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 4.0rem;
      height: 0.6rem;
      background: #008F9D;
    }

    .p-menu__lead-text {
      font-size: 1.4rem;
      color: #6B7479;
      line-height: 1.8;
      margin-top: 1.2rem;
    }

    /* 当院の特徴 横長カード */
    .p-menu__feature {
      display: grid;
      grid-template-columns: 1fr 1fr;
      border-radius: 1.6rem;
      overflow: hidden;
      background: #FFFFFF;
      box-shadow: 0 0.2rem 1.6rem rgba(0,50,60,0.08);
      margin-top: 2.4rem;
      height: 33rem;
    }
    .p-menu__feature-body {
      padding: 2.0rem 2.4rem;
      display: flex;
      flex-direction: column;
      gap: 1.2rem;
      align-items: flex-start;
      justify-content: center;
    }
    .p-menu__feature-title {
      font-size: 2.8rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
      display: flex;
      align-items: center;
      gap: 1.0rem;
    }
    .p-menu__feature-icon {
      width: 4.4rem;
      height: 4.4rem;
      border-radius: 50%;
      background: #E6F4F6;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }
    .p-menu__feature-icon svg {
      width: 2.4rem;
      height: 2.4rem;
      color: #008F9D;
      stroke: currentColor;
      fill: none;
    }
    .p-menu__feature-text {
      font-size: 1.5rem;
      color: #4B5563;
      line-height: 1.7;
    }
    .p-menu__feature-img {
      overflow: hidden;
      height: 100%;
    }
    .p-menu__feature-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }

    @media (max-width: 767px) {
      .p-menu__feature {
        grid-template-columns: 1fr;
        height: 48rem;
      }
      .p-menu__feature-img {
        height: 100%;
      }
      .p-menu__feature-body {
        padding: 2.4rem 1.6rem;
        align-items: center;
        text-align: center;
      }
      .p-menu__feature-title {
        justify-content: center;
      }
    }

    .p-menu__grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2.4rem;
    }

    .p-menu__card {
      display: flex;
      flex-direction: column;
      background: #FFFFFF;
      border-radius: 1.2rem;
      border: none;
      text-decoration: none;
      color: inherit;
      overflow: hidden;
      transition: box-shadow 0.2s ease, transform 0.2s ease;
    }

    .p-menu__card:hover {
      box-shadow: 0 8px 24px rgba(0,50,60,0.10);
      transform: translateY(-2px);
    }

    /* 画像エリア */
    .p-menu__card-img {
      width: 100%;
      height: 20rem;
      background: #E6F4F6;
      overflow: hidden;
      flex-shrink: 0;
    }

    .p-menu__card-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    /* ボディ */
    .p-menu__card-body {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 2.0rem;
      flex: 1;
    }


    .p-menu__icon-wrap {
      width: 5.6rem;
      height: 5.6rem;
      border-radius: 50%;
      background: #E6F4F6;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 1.2rem;
      flex-shrink: 0;
    }

    .p-menu__icon-wrap svg {
      width: 2.8rem;
      height: 2.8rem;
      color: #008F9D;
    }

    .p-menu__label {
      font-size: 1.5rem;
      font-weight: 700;
      color: #2A2F33;
      letter-spacing: 0.04em;
      margin-bottom: 0.8rem;
      line-height: 1.4;
    }

    .p-menu__lead {
      font-size: 1.4rem;
      color: #6B7479;
      line-height: 1.7;
      margin-bottom: 1.6rem;
    }

    .p-menu__link-text {
      width: 3.2rem;
      height: 3.2rem;
      border-radius: 50%;
      background: #008F9D;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-top: auto;
      flex-shrink: 0;
      transition: background 0.2s ease;
    }

    .p-menu__card:hover .p-menu__link-text {
      background: #006C77;
    }

    .p-menu__link-text svg {
      width: 1.4rem;
      height: 1.4rem;
      color: #FFFFFF;
    }

    .p-menu__card--accent .p-menu__link-text {
      background: #F39C7B;
      color: #E07B58;
    }

    .p-menu__card--accent:hover .p-menu__link-text {
      background: #E07B58;
    }

    /* 自由診療カードのみアクセント強調 */
    .p-menu__card--accent .p-menu__card-img {
      background: #FDE8DE;
    }

    .p-menu__card--accent .p-menu__icon-wrap {
      background: #FDE8DE;
    }

    .p-menu__card--accent .p-menu__icon-wrap svg {
      color: #F39C7B;
    }

    .p-menu__card--accent .p-menu__label {
      color: #E07B58;
    }

    @media (max-width: 767px) {
      .p-menu { padding: 5.0rem 0; }
      .p-menu__inner { padding: 0 1.6rem; }
      .p-menu__heading { margin-bottom: 2.4rem; padding-top: 3.2rem; }
      .p-menu__title { font-size: 2.4rem; }

      /* 1カラム */
      .p-menu__grid {
        grid-template-columns: 1fr;
        gap: 1.0rem;
      }

      /* カード自体を横並び */
      .p-menu__card {
        flex-direction: row;
      }

      /* 画像：左固定幅 */
      .p-menu__card-img {
        width: 10rem;
        height: auto;
        flex-shrink: 0;
        aspect-ratio: 1 / 1;
      }

      /* アイコン・リード非表示 */
      .p-menu__icon-wrap { display: none; }
      .p-menu__lead { display: none; }

      /* ボディ：見出し＋矢印を横並びで両端揃え */
      .p-menu__card-body {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        padding: 1.2rem 1.6rem;
        text-align: left;
      }

      .p-menu__card-text { flex: 1; }
      .p-menu__label { font-size: 1.7rem; }
      .p-menu__link-text { margin-top: 0; flex-shrink: 0; }
    }

    /* ============================================
       p-strength（院内処方強みバナー）
    ============================================ */
    .p-strength {
      padding: 8.0rem 0;
    }

    .p-strength__inner {
      padding: 0 4.8rem;
    }

    .p-strength__heading {
      margin-bottom: 4.0rem;
      padding-top: 4.0rem;
      position: relative;
    }

    .p-strength__heading::before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, #006C77, #008F9D, #4DB8C2);
    }

    .p-strength__title-main {
      font-size: 2.4rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
    }

    .p-strength__lead-text {
      font-size: 1.4rem;
      color: #6B7479;
      line-height: 1.8;
      margin-top: 1.2rem;
    }

    /* 当院の特徴：リード＋画像＋テキスト＋リンク */
    .p-features__content {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4.8rem;
      align-items: center;
    }
    .p-features__img {
      width: 100%;
      aspect-ratio: 16 / 9;
      overflow: hidden;
      border-radius: 1.2rem;
    }
    .p-features__img img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
    }
    .p-features__body {
      display: flex;
      flex-direction: column;
      gap: 2.4rem;
      align-items: flex-start;
    }
    .p-features__text {
      font-size: 1.6rem;
      color: #4B5563;
      line-height: 1.9;
    }
    @media (max-width: 767px) {
      .p-features__content {
        grid-template-columns: 1fr;
        gap: 2.4rem;
      }
    }

    .p-strength__cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2.4rem;
    }

    .p-strength__card {
      display: flex;
      flex-direction: column;
      background: #FFFFFF;
      border-radius: 1.2rem;
      overflow: hidden;
      text-decoration: none;
      color: inherit;
      transition: box-shadow 0.2s ease, transform 0.2s ease;
    }

    .p-strength__card-img {
      width: 100%;
      height: 20rem;
      background: #E6F4F6;
      overflow: hidden;
      flex-shrink: 0;
    }

    .p-strength__card-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .p-strength__card-body {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 2.0rem;
      flex: 1;
    }

    /* アイコン＋見出し横並び */
    .p-strength__card-header {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.2rem;
      margin-bottom: 1.0rem;
    }

    .p-strength__card:hover {
      box-shadow: 0 6px 20px rgba(0,50,60,0.10);
      transform: translateY(-2px);
    }

    .p-strength__icon {
      width: 4.4rem;
      height: 4.4rem;
      flex-shrink: 0;
      border-radius: 50%;
      background: #E6F4F6;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
    }

    .p-strength__icon svg {
      width: 2.6rem;
      height: 2.6rem;
      color: #008F9D;
    }

    .p-strength__body {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.8rem;
    }

    .p-strength__title {
      font-size: 1.8rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.02em;
      line-height: 1.4;
    }

    .p-strength__text {
      font-size: 1.5rem;
      color: #6B7479;
      line-height: 1.7;
    }

    .p-strength__arrow {
      width: 3.2rem;
      height: 3.2rem;
      border-radius: 50%;
      background: #008F9D;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: background 0.2s ease;
    }

    .p-strength__card:hover .p-strength__arrow {
      background: #006C77;
    }

    .p-strength__arrow svg {
      width: 1.4rem;
      height: 1.4rem;
      color: #FFFFFF;
    }

    @media (max-width: 767px) {
      .p-strength { padding: 5.0rem 0; }
      .p-strength__inner { padding: 0 1.6rem; }
      .p-strength__heading { margin-bottom: 3.2rem; padding-top: 3.2rem; }
      .p-strength__title-main { font-size: 2.0rem; }
      .p-strength__cards {
        grid-template-columns: 1fr;
        gap: 1.6rem;
      }
    }

    /* ============================================
       p-selfpay（自由診療【強調】）
    ============================================ */
    .p-selfpay {
      padding: 8.0rem 0;
      background:
        radial-gradient(ellipse 80% 60% at 10% 20%,  rgba(243,156,123,0.35) 0%, transparent 55%),
        radial-gradient(ellipse 60% 70% at 90% 10%,  rgba(249,196,168,0.30) 0%, transparent 50%),
        radial-gradient(ellipse 70% 50% at 80% 80%,  rgba(224,123, 88,0.20) 0%, transparent 55%),
        radial-gradient(ellipse 50% 60% at 20% 85%,  rgba(255,220,200,0.40) 0%, transparent 50%),
        radial-gradient(ellipse 40% 40% at 50% 50%,  rgba(255,240,233,0.60) 0%, transparent 60%),
        #FEF0E9;
    }

    .p-selfpay__inner {
      padding: 0 4.8rem;
    }

    .p-selfpay__heading {
      margin-bottom: 4.8rem;
    }

    .p-selfpay__title {
      font-size: 3.2rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
      margin-bottom: 1.6rem;
      position: relative;
      padding-top: 3.2rem;
    }

    .p-selfpay__title::before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 4.0rem;
      height: 0.6rem;
      background: #F39C7B;
    }

    .p-selfpay__subtitle {
      font-size: 1.8rem;
      font-weight: 500;
      color: #E07B58;
      letter-spacing: 0.04em;
      margin-bottom: 0.8rem;
    }

    .p-selfpay__sub {
      font-size: 1.4rem;
      color: #6B7479;
      line-height: 1.8;
    }

    .p-selfpay__grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 2.4rem;
      margin-bottom: 3.2rem;
    }

    .p-selfpay__card {
      background: #FFFFFF;
      border-radius: 1.2rem;
      padding: 3.2rem 2.4rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 1.2rem;
    }

    .p-selfpay__menu-name {
      font-size: 1.8rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
    }

    .p-selfpay__menu-desc {
      font-size: 1.6rem;
      color: #6B7479;
      line-height: 1.7;
    }

    .p-selfpay__price {
      font-size: 2.2rem;
      font-weight: 700;
      color: #E07B58;
      letter-spacing: 0.02em;
      margin-top: auto;
    }

    .p-selfpay__price-note {
      font-size: 1.4rem;
      color: #98A0A6;
    }

    .p-selfpay__footer {
      display: flex;
      justify-content: center;
    }

    .p-selfpay__note {
      font-size: 1.4rem;
      color: #6B7479;
    }

    @media (max-width: 767px) {
      .p-selfpay { padding: 5.0rem 0; }
      .p-selfpay__inner { padding: 0 1.6rem; }
      .p-selfpay__heading { margin-bottom: 3.2rem; }
      .p-selfpay__title { font-size: 2.4rem; }
      .p-selfpay__grid {
        grid-template-columns: 1fr;
        gap: 1.6rem;
      }
    }

    /* ============================================
       p-news（お知らせ）
    ============================================ */
    .p-news {
      padding: 8.0rem 0;
    }

    /* お知らせ直後に診療メニューが続く場合の余白調整 */
    .p-news + .p-menu {
      padding-top: 0;
    }

    .p-news__inner {
      padding: 0 4.8rem;
    }

    /* 2カラム：左=見出し、右=リスト */
    .p-news__body {
      display: grid;
      grid-template-columns: 28rem 1fr;
      gap: 12rem;
      align-items: start;
    }

    .p-news__heading {
      display: flex;
      flex-direction: column;
      gap: 2.4rem;
      align-items: flex-start;
    }

    .p-news__title {
      font-size: 3.2rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
      position: relative;
      padding-top: 3.2rem;
      display: inline-block;
    }

    .p-news__title::before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      width: 4.0rem;
      height: 0.6rem;
      background: #008F9D;
    }

    @media (max-width: 767px) {
      .p-news__body {
        grid-template-columns: 1fr;
        gap: 2.4rem;
      }
      .p-news__heading {
        position: static;
        gap: 1.6rem;
      }
    }


    .p-news__list {
      list-style: none;
    }

    .p-news__item {
      border-bottom: 1px solid #E2E8EA;
    }

    .p-news__link {
      display: flex;
      align-items: center;
      gap: 1.6rem;
      padding: 1.8rem 0;
      text-decoration: none;
      color: inherit;
      transition: opacity 0.18s ease;
    }

    .p-news__link:hover { opacity: 1; }

    .p-news__link-body {
      display: flex;
      flex-direction: column;
      gap: 0.6rem;
      flex: 1;
    }

    .p-news__meta {
      display: flex;
      align-items: center;
      gap: 1.2rem;
    }

    .p-news__tag {
      font-size: 1.4rem;
      font-weight: 700;
      color: #008F9D;
      background: #E6F4F6;
      border: 0.1rem solid #4DB8C2;
      padding: 0.3rem 1.0rem;
      border-radius: 0.3rem;
      white-space: nowrap;
      letter-spacing: 0.04em;
      flex-shrink: 0;
    }
    /* カテゴリ別タグ色（一覧の休診/その他） */
    .p-news__tag--accent { color: #E07B58; background: #FDE8DE; border-color: #E8A088; }
    .p-news__tag--neutral { color: #6B7479; background: #E2E8EA; border-color: #C8D0D4; }

    .p-news__date {
      font-size: 1.6rem;
      color: #98A0A6;
      font-family: "Inter", sans-serif;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .p-news__text {
      font-size: 1.6rem;
      color: #2A2F33;
      line-height: 1.6;
      flex: 1;
      background-image: linear-gradient(currentColor, currentColor);
      background-size: 0 0.1rem;
      background-repeat: no-repeat;
      background-position: left bottom;
      transition: background-size 0.3s ease;
      width: fit-content;
    }

    .p-news__link:hover .p-news__text {
      background-size: 100% 0.1rem;
    }

    .p-news__arrow {
      width: 3.2rem;
      height: 3.2rem;
      border-radius: 50%;
      background: #008F9D;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      align-self: center;
      transition: background 0.2s ease;
    }

    .p-news__link:hover .p-news__arrow { background: #006C77; }

    .p-news__arrow svg {
      width: 1.4rem;
      height: 1.4rem;
      color: #fff;
    }

    @media (max-width: 767px) {
      .p-news { padding: 5.0rem 0; }
      .p-news__inner { padding: 0 1.6rem; }
      .p-news__title { font-size: 2.4rem; }
    }

    /* ============================================
       p-access（アクセス）
    ============================================ */
    .p-access {
      padding: 8.0rem 0;
    }

    .p-access__inner {
      padding: 0 4.8rem;
    }

    .p-access__heading {
      margin-bottom: 4.0rem;
      padding-top: 4.0rem;
      position: relative;
    }

    .p-access__heading::before {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(to right, #006C77, #008F9D, #4DB8C2);
    }

    .p-access__title {
      font-size: 2.4rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
    }

    .p-access__columns {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6.4rem;
      align-items: start;
    }

    /* 左カラム：情報 */
    .p-access__info {
      display: flex;
      flex-direction: column;
      gap: 2.4rem;
    }

    .p-access__info-list {
      list-style: none;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2.4rem 4.0rem;
    }

    .p-access__info-item {
      display: flex;
      flex-direction: column;
      gap: 0.4rem;
    }

    .p-access__info-label {
      font-size: 1.4rem;
      font-weight: 700;
      color: #008F9D;
    }

    .p-access__info-value {
      font-size: 1.6rem;
      color: #2A2F33;
      line-height: 1.7;
      padding-left: 1.0rem;
    }

    .p-access__cta {
      align-self: flex-start;
    }

    .p-access__tel-link {
      font-size: 2.4rem;
      font-weight: 700;
      color: #008F9D;
      text-decoration: none;
      letter-spacing: 0.04em;
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
      transition: opacity 0.18s ease;
    }

    .p-access__tel-link:hover { opacity: 0.75; }

    /* 右カラム：地図 */
    .p-access__map iframe {
      width: 100%;
      height: 40rem;
      border-radius: 1.2rem;
      border: none;
      display: block;
    }

    @media (max-width: 767px) {
      .p-access { padding: 5.0rem 0; }
      .p-access__inner { padding: 0 1.6rem; }
      .p-access__title { font-size: 2.0rem; }
      .p-access__columns {
        grid-template-columns: 1fr;
        gap: 3.2rem;
      }
      .p-access__map { order: 1; }
      .p-access__map iframe { height: 28rem; }
      .p-access__tel-link { font-size: 2.0rem; }
      .p-access__cta { align-self: center; }
      .p-access__info-list { grid-template-columns: 1fr; }
    }

    /* ============================================
       l-footer
    ============================================ */
    .l-footer {
      background: #006C77;
      color: #FFFFFF;
    }

    .l-footer__main {
      padding: 6.4rem 4.8rem;
      display: grid;
      grid-template-columns: auto 36rem 1fr;
      gap: 6.4rem;
      align-items: start;
    }

    /* ロゴ */
    .l-footer__logo img {
      height: 6.7rem;
      width: auto;
      display: block;
    }

    /* 住所・電話・診療時間 */
    .l-footer__info {
      display: flex;
      flex-direction: column;
      gap: 0.8rem;
    }

    .l-footer__info-name {
      font-size: 1.6rem;
      font-weight: 700;
      margin-bottom: 0.4rem;
    }

    .l-footer__info-text {
      font-size: 1.6rem;
      color: #FFFFFF;
      line-height: 1.7;
    }

    .l-footer__info-tel {
      font-size: 2.0rem;
      font-weight: 700;
      color: #FFFFFF;
      text-decoration: none;
      letter-spacing: 0.04em;
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
    }

    .l-footer__info-tel svg {
      width: 1.8rem;
      height: 1.8rem;
      flex-shrink: 0;
    }

    .l-footer__info-hours {
      padding-top: 0.8rem;
      border-top: 1px solid rgba(255,255,255,0.2);
      display: flex;
      flex-direction: column;
      gap: 0.4rem;
    }

    .l-footer__info-hours-label {
      font-size: 1.1rem;
      font-weight: 700;
      letter-spacing: 0.1em;
      color: rgba(255,255,255,0.5);
      text-transform: uppercase;
    }

    .l-footer__info-hours-text {
      font-size: 1.4rem;
      color: rgba(255,255,255,0.8);
      line-height: 1.8;
    }

    /* サイトマップ */
    .l-footer__nav {
      display: flex;
      flex-wrap: wrap;
      gap: 1.6rem 3.2rem;
    }

    .l-footer__nav-link {
      font-size: 1.6rem;
      color: #FFFFFF;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
    }

    .l-footer__nav-link::before {
      content: '›';
      font-size: 2.4rem;
      line-height: 1;
      display: flex;
      align-items: center;
      color: rgba(255,255,255,0.6);
      transition: transform 0.25s ease;
    }

    /* テキスト部にだけスライドイン下線（矢印は対象外） */
    .l-footer__nav-link-text {
      background-image: linear-gradient(currentColor, currentColor);
      background-size: 0% 1px;
      background-repeat: no-repeat;
      background-position: left bottom;
      transition: background-size 0.25s ease;
    }

    .l-footer__nav-link:hover .l-footer__nav-link-text {
      background-size: 100% 1px;
    }

    .l-footer__nav-link:hover::before {
      transform: translateX(3px);
    }

    /* 施設基準リンクは段落ち */
    .l-footer__nav-link--policy {
      flex-basis: 100%;
    }

    /* 下段 */
    .l-footer__bottom {
      padding: 2.0rem 4.8rem;
      border-top: 1px solid rgba(255,255,255,0.15);
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 2.4rem;
    }

    .l-footer__copyright {
      font-size: 1.4rem;
      color: #FFFFFF;
    }

    .l-footer__policy {
      font-size: 1.4rem;
      color: #FFFFFF;
      text-decoration: none;
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
      background-image: linear-gradient(currentColor, currentColor);
      background-size: 0% 1px;
      background-repeat: no-repeat;
      background-position: left bottom;
      transition: background-size 0.25s ease;
    }

    .l-footer__policy:hover {
      background-size: 100% 1px;
    }


    @media (max-width: 767px) {
      .l-footer__main {
        grid-template-columns: 1fr;
        gap: 3.2rem;
        padding: 4.0rem 1.6rem;
      }
      .l-footer__nav { flex-direction: column; gap: 1.6rem; }
      .l-footer__nav-link { font-size: 1.6rem; }
      .l-footer__bottom {
        padding: 1.6rem;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.8rem;
      }
    }

    .u-sp-only { display: none; }
    @media (max-width: 767px) { .u-sp-only { display: block; } }
    .u-pc-only { display: block; }
    @media (max-width: 767px) { .u-pc-only { display: none; } }

    html { font-size: 0.688vw; } /* 1rem = 1600px幅で11px */
    @media (min-width: 1600px) { html { font-size: 68.8%; } } /* 上限キャップ */
    @media (max-width: 767px)  { html { font-size: 68.8%; } } /* SP固定 */

    body {
      font-family: "Noto Sans JP", "Hiragino Sans", sans-serif;
      font-size: 1.6rem;
      color: #2A2F33;
      line-height: 1.7;
      padding-top: 13.2rem;
      min-height: 100vh;
      background:
        radial-gradient(ellipse 90% 60% at 15% 10%,  rgba(0,143,157,0.22)   0%, transparent 55%),
        radial-gradient(ellipse 70% 80% at 85% 5%,   rgba(77,184,194,0.20)  0%, transparent 50%),
        radial-gradient(ellipse 80% 50% at 95% 55%,  rgba(0,108,119,0.14)   0%, transparent 50%),
        radial-gradient(ellipse 60% 70% at 5%  75%,  rgba(77,184,194,0.16)  0%, transparent 55%),
        radial-gradient(ellipse 70% 60% at 50% 90%,  rgba(0,143,157,0.12)   0%, transparent 50%),
        radial-gradient(ellipse 50% 50% at 40% 40%,  rgba(230,244,246,0.60) 0%, transparent 60%),
        radial-gradient(ellipse 40% 40% at 70% 25%,  rgba(243,156,123,0.07) 0%, transparent 50%),
        #F3F9FB;
      background-attachment: fixed;
    }

    @media (max-width: 767px) {
      body {
        padding-top: 6.0rem;
      }
    }

    a { text-decoration: none; color: inherit; }

    /* ============================================
       l-header（2段構成）
       上段 topbar : ロゴ / 電話 / CTA / お知らせ
       下段 nav-bar: ナビゲーション項目のみ
    ============================================ */
    .l-header {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 100;
      background: rgba(255,255,255,0.92);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      box-shadow: 0 0.2rem 0.8rem rgba(0, 50, 60, 0.07);
      overflow: visible; /* ハンバーガーのSP飛び出しを許可 */
    }

    /* ============================================
       上段: topbar
    ============================================ */
    .l-header__topbar {
      border-bottom: none;
    }

    .l-header__topbar-inner {
      width: 100%;
      padding: 1.8rem 4.8rem;
      display: flex;
      align-items: center;
      gap: 2.4rem;
    }

    /* ロゴ＋休診日ブロック */
    .l-header__brand {
      display: flex;
      align-items: center;
      gap: 2.0rem;
      flex-shrink: 0;
      margin-right: auto;
    }

    .l-header__closed-info {
      display: flex;
      align-items: center;
      gap: 0.6rem;
    }

    .l-header__closed-label {
      font-size: 1.0rem;
      font-weight: 700;
      color: #008F9D;
      background: #E6F4F6;
      border: 0.1rem solid #4DB8C2;
      padding: 0.2rem 0.7rem;
      border-radius: 0.3rem;
      letter-spacing: 0.04em;
      white-space: nowrap;
    }

    .l-header__closed-text {
      font-size: 1.2rem;
      color: #6B7479;
      letter-spacing: 0.04em;
      white-space: nowrap;
    }

    .l-header__logo-link {
      display: flex;
      align-items: center;
    }

    .l-header__logo-link img {
      height: 4.8rem;
      width: auto;
      display: block;
    }

    .l-header__logo-fallback {
      display: none;
      font-family: "Noto Sans JP", sans-serif;
      font-size: 2.0rem;
      font-weight: 700;
      color: #008F9D;
      letter-spacing: 0.04em;
      white-space: nowrap;
    }

    /* 電話（ボタン型・ティール統一） */
    .l-header__tel {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.4rem;
      text-decoration: none;
    }

    .l-header__tel-icon {
      color: #008F9D;
      display: flex;
      align-items: center;
      flex-shrink: 0;
    }

    .l-header__tel-note {
      font-size: 1.0rem;
      color: #6B7479;
      letter-spacing: 0.03em;
      line-height: 1;
      white-space: nowrap;
    }

    .l-header__tel-row {
      display: flex;
      align-items: center;
      gap: 0.7rem;
    }

    .l-header__tel-number {
      font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
      font-size: 2.4rem;
      font-weight: 700;
      color: #008F9D;
      letter-spacing: 0.04em;
      line-height: 1;
    }

    /* CTAボタン群 */
    .l-header__topbar-cta {
      display: flex;
      align-items: center;
      gap: 0.8rem;
    }

    /* ============================================
       c-btn（共通ベース）
       透明背景 → ホバーでフィル
    ============================================ */
    .c-btn {
      cursor: pointer;
      position: relative;
      padding: 1.0rem 2.4rem;
      font-family: inherit;
      font-size: 1.4rem;
      font-weight: 600;
      border-radius: 3.4rem;
      background-color: transparent;
      transition: all 0.3s cubic-bezier(0.23, 1, 0.320, 1);
      overflow: hidden;
      text-decoration: none;
      letter-spacing: 0.04em;
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }

    .c-btn::before {
      content: '';
      position: absolute;
      inset: 0;
      margin: auto;
      width: 3rem;
      height: 3rem;
      border-radius: 50%;
      scale: 0;
      z-index: 0;
      transition: scale 0.6s cubic-bezier(0.23, 1, 0.320, 1);
    }

    .c-btn__label {
      position: relative;
      z-index: 1;
    }

    .c-btn:hover::before { scale: 15; }
    .c-btn:active { scale: 1; }

    /* 初めての方へ（プライマリ・ティール） */
    .c-btn--primary {
      color: #008F9D;
      border: 0.2rem solid #008F9D;
    }

    .c-btn--primary::before {
      background-color: #008F9D;
    }

    .c-btn--primary:hover {
      color: #fff;
      scale: 1.08;
      box-shadow: 0 0 2.0rem rgba(0, 143, 157, 0.45);
    }

    /* 自由診療（アクセント・サーモン） */
    .c-btn--accent {
      color: #E07B58;
      border: 0.2rem solid #E07B58;
    }

    .c-btn--accent::before {
      background-color: #E07B58;
    }

    .c-btn--accent:hover {
      color: #fff;
      scale: 1.08;
      box-shadow: 0 0 2.0rem rgba(224, 123, 88, 0.45);
    }

    /* ============================================
       下段: nav-bar（ナビゲーション専用）
    ============================================ */
    .l-header__nav-bar {
      background: #E6F4F6;
    }

    .l-header__nav-inner {
      max-width: 120rem;
      margin: 0 auto;
      padding: 0 4.8rem;
      display: flex;
      align-items: center;
      width: 100%;
    }

    .l-header__nav-inner > nav {
      width: 100%;
    }

    .l-header__nav-list {
      display: flex;
      align-items: center;
      list-style: none;
      gap: 0;
      width: 100%;
    }

    .l-header__nav-item {
      flex: 1;
      display: flex;
      justify-content: center;
    }

    .l-header__nav-item a {
      width: 100%;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: center;
      gap: 0.6rem;
      padding: 2.0rem 2.8rem;
      font-size: 1.6rem;
      color: #2A2F33;
      letter-spacing: 0.04em;
      line-height: 1;
      position: relative;
      transition: color 0.18s ease, background-color 0.18s ease;
      white-space: nowrap;
    }

    .l-header__nav-item a svg {
      width: 2.4rem;
      height: 2.4rem;
      stroke: #008F9D;
      stroke-width: 2.5;
      fill: none;
      flex-shrink: 0;
      transition: stroke 0.18s ease;
    }

    .l-header__nav-item a::after {
      content: '';
      position: absolute;
      bottom: 0; left: 50%; right: 50%;
      height: 0.25rem;
      background: #008F9D;
      border-radius: 0;
      transition: left 0.18s ease, right 0.18s ease;
    }

    .l-header__nav-item a:hover {
      color: #008F9D;
      background: rgba(0, 143, 157, 0.06);
    }

    .l-header__nav-item a:hover::after {
      left: 0;
      right: 0;
    }

    /* ハンバーガー（SPのみ） */
    .l-header__hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      gap: 0.5rem;
      width: 4.4rem;
      height: 4.4rem;
      background: none;
      border: none;
      cursor: pointer;
      padding: 0;
      flex-shrink: 0;
    }

    .l-header__hamburger span {
      display: block;
      width: 2.2rem;
      height: 0.2rem;
      background: #2A2F33;
      border-radius: 0.2rem;
      transition: transform 0.25s ease, opacity 0.25s ease;
    }

    @media (max-width: 767px) {
      .l-header__hamburger span {
        width: 2.2rem; /* TELアイコン(22px)に合わせる */
      }
    }

    .l-header__hamburger.is-open span:nth-child(1) { transform: translateY(0.7rem) rotate(45deg); }
    .l-header__hamburger.is-open span:nth-child(2) { opacity: 0; }
    .l-header__hamburger.is-open span:nth-child(3) { transform: translateY(-0.7rem) rotate(-45deg); }

    /* SP */
    /* SP用ラベル：PCでは非表示 */
    .l-header__tel-sp-label { display: none; }
    .l-header__hamburger-label { display: none; font-style: normal; }

    @media (max-width: 767px) {
      /* SP: ロゴ・電話・ハンバーガーのみ */
      .l-header__topbar-inner {
        padding: 1.2rem 1.6rem;
        gap: 0;
        align-items: center;
      }

      .l-header__logo-link img { height: 2.7rem; }

      /* SP非表示 */
      .l-header__closed-info,
      .l-header__tel-note,
      .l-header__tel-number,
      .l-header__topbar-cta,
      .l-header__nav-bar { display: none; }

      /* 電話：アイコン＋TELラベル縦積み */
      .l-header__tel {
        margin-left: auto;
        flex-direction: column;
        align-items: center;
        gap: 0.2rem;
        padding: 0.1rem 0.8rem;
      }

      .l-header__tel-row { gap: 0; }

      .l-header__tel-sp-label {
        display: block;
        font-size: 1.0rem;
        font-weight: 700;
        color: #008F9D;
        letter-spacing: 0.08em;
        line-height: 1;
      }

      /* ハンバーガー：ヘッダー下に飛び出す */
      .l-header__hamburger {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.5rem;
        margin-left: 0.8rem;
        width: auto;
        height: auto;
        padding: 0.1rem 0.8rem;
        background: none;
      }

      .l-header__hamburger span {
        background: #008F9D;
      }

      .l-header__hamburger-label {
        display: block;
        font-size: 1.0rem;
        font-weight: 700;
        color: #008F9D;
        letter-spacing: 0.08em;
        line-height: 1;
        margin-top: 0.4rem;
      }

    }

    /* ============================================
       SP アイコンバー（ヘッダー直下固定）
    ============================================ */
    .l-icon-bar { display: none; }

    @media (max-width: 767px) {
      .l-icon-bar {
        display: none; /* SPアイコンバーはヘッダーに統合したため廃止 */
        /*display: flex;*/
        position: fixed;
        top: 6.0rem;
        left: 0; right: 0;
        z-index: 99;
        height: 5.6rem;
        background: #fff;
        border-bottom: 0.1rem solid #E2E8EA;
      }

      .l-icon-bar__item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 0.3rem;
        text-decoration: none;
        color: #2A2F33;
        background: none;
        border: none;
        cursor: pointer;
        transition: background-color 0.15s ease;
        -webkit-tap-highlight-color: transparent;
        min-height: 4.4rem;
      }

      .l-icon-bar__item:active { background: #F4FAFB; }

      .l-icon-bar__icon {
        color: #008F9D;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 2.2rem;
        height: 2.2rem;
      }

      .l-icon-bar__icon svg {
        width: 2.0rem;
        height: 2.0rem;
      }

      .l-icon-bar__label {
        font-size: 0.9rem;
        color: #6B7479;
        letter-spacing: 0.02em;
        line-height: 1;
      }
    }

    /* ============================================
       SP ドロワーメニュー
    ============================================ */
    .l-drawer {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 90; /* ヘッダー(100)より下 */
      pointer-events: none;
    }

    .l-drawer__overlay {
      position: absolute;
      top: 6.0rem; /* ヘッダー下から */
      left: 0; right: 0; bottom: 0;
      background: rgba(0, 50, 60, 0.4);
      opacity: 0;
      transition: opacity 0.25s ease;
    }

    .l-drawer__panel {
      position: absolute;
      top: 6.0rem; /* ヘッダー下から */
      right: 0;
      bottom: 0;
      width: 80%;
      max-width: 30.0rem;
      background: #fff;
      transform: translateX(100%);
      transition: transform 0.25s ease;
      overflow-y: auto;
      display: flex;
      flex-direction: column;
      box-shadow: -0.4rem 0 1.6rem rgba(0, 50, 60, 0.12);
    }

    .l-drawer.is-open { pointer-events: auto; }
    .l-drawer.is-open .l-drawer__overlay { opacity: 1; }
    .l-drawer.is-open .l-drawer__panel { transform: translateX(0); }

    .l-drawer__header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 1.6rem 1.6rem 1.2rem;
      border-bottom: 0.1rem solid #E2E8EA;
    }

    .l-drawer__logo { height: 2.4rem; width: auto; }

    .l-drawer__logo-text {
      font-size: 1.6rem;
      font-weight: 700;
      color: #008F9D;
    }

    .l-drawer__close-btn {
      width: 4.4rem;
      height: 4.4rem;
      background: none;
      border: none;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      color: #6B7479;
      margin: -0.8rem -0.8rem -0.8rem auto;
    }

    .l-drawer__nav { padding: 0.8rem 0; }

    .l-drawer__nav-item {
      display: flex;
      align-items: center;
      height: 5.6rem;
      padding: 0 2.4rem;
      font-size: 1.5rem;
      color: #2A2F33;
      border-bottom: none;
      letter-spacing: 0.04em;
      transition: background-color 0.15s ease;
    }

    .l-drawer__nav-item:active { background: #F4FAFB; }

    .l-drawer__nav-item::after {
      content: '→';
      margin-left: auto;
      color: #008F9D;
      font-size: 1.4rem;
    }

    .l-drawer__tel-row {
      display: flex;
      align-items: center;
      gap: 0.6rem;
    }

    .l-drawer__tel-icon {
      color: #008F9D;
      display: flex;
      align-items: center;
    }

    .l-drawer__cta {
      padding: 2.0rem 1.6rem;
      display: flex;
      flex-direction: column;
      gap: 1.0rem;
    }

    .l-drawer__cta-btn {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 4.8rem;
      border-radius: 99.9rem;
      font-size: 1.5rem;
      font-weight: 700;
      letter-spacing: 0.04em;
    }

    .l-drawer__cta-btn--primary { background: #008F9D; color: #fff; }
    .l-drawer__cta-btn--accent  { background: #F39C7B; color: #fff; }

    .l-drawer__tel {
      margin: 0 1.6rem 2.4rem;
      padding: 1.6rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 0.4rem;
      text-decoration: none;
      background: #E6F4F6;
      border-radius: 0.8rem;
    }

    .l-drawer__tel-label {
      font-size: 1.0rem;
      color: #6B7479;
      letter-spacing: 0.04em;
    }

    .l-drawer__tel-number {
      font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
      font-size: 2.2rem;
      font-weight: 700;
      color: #008F9D;
      letter-spacing: 0.04em;
    }

    @media (max-width: 767px) { .l-drawer { display: block; } }

    /* ============================================
       SP 固定電話CTAバー（画面下部）
    ============================================ */

    /* ============================================
       p-hero（メインビジュアル）
    ============================================ */
    .p-hero {
      position: relative;
      height: calc(100vh - 13.2rem);
      min-height: 48rem;
      display: flex;
      align-items: center;
      overflow: hidden;
    }

    @media (max-width: 767px) {
      .p-hero {
        height: auto;
        min-height: 0;
        align-items: flex-start;
      }
    }

    /* MV画像：背景いっぱいに敷く */
    .p-hero__bg {
      position: absolute;
      inset: 0;
      z-index: 0;
    }

    .p-hero__bg img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }

    @media (max-width: 767px) {
      .p-hero__bg {
        height: 100%;
        bottom: auto;
      }
    }

    .p-hero__bg::after {
      content: '';
      position: absolute;
      inset: 0;
      background:
        linear-gradient(to right,  rgba(243,249,251,0.92) 0%, rgba(243,249,251,0.55) 45%, rgba(243,249,251,0.02) 100%),
        linear-gradient(to bottom, transparent 60%, rgba(243,249,251,0.85) 100%);
    }

    .p-hero__inner {
      position: relative;
      z-index: 1;
      width: 100%;
      align-self: stretch;
      padding: 6.4rem 4.8rem;
      display: flex;
      align-items: center;        /* テキストを天地中央に */
      justify-content: flex-start; /* 左揃え */
    }

    @media (max-width: 767px) {
      .p-hero__inner {
        align-self: baseline;
        padding: 12rem 1.6rem 7rem;
        align-items: flex-start;
        justify-content: flex-start;
        text-align: left;
      }
    }

    .p-hero__body {
      max-width: 52rem;
    }

    .p-hero__title {
      font-size: 4.8rem;
      font-weight: 500;
      color: #2A2F33;
      line-height: 1.4;
      letter-spacing: 0.04em;
      margin-bottom: 3.2rem;
    }

    .p-hero__title-brand {
      color: #008F9D;
    }

    .p-hero__desc {
      font-size: 1.6rem;
      color: #2A2F33;
      line-height: 1.8;
      margin-bottom: 3.2rem;
      letter-spacing: 0.04em;
    }

    .p-hero__cta {
      display: flex;
      gap: 1.6rem;
      flex-wrap: wrap;
    }

    @media (max-width: 767px) {
      .p-hero__bg::after {
        background: rgba(240, 249, 250, 0.75);
      }

      .p-hero__body {
        text-align: left;
        max-width: 100%;
        padding-top: 0;
      }

      .p-hero__title {
        font-size: 3.2rem;
      }

      .p-hero__cta {
        justify-content: flex-start;
      }
    }

    /* ヒーロー内診療時間ミニテーブル */
    .p-hero__hours {
      position: absolute;
      bottom: 3.2rem;
      right: 4.8rem;
      z-index: 2;
      background: rgba(255,255,255,0.88);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-radius: 1.2rem;
      padding: 2.0rem 2.8rem;
      box-shadow: 0 0.4rem 1.6rem rgba(0,50,60,0.10);
    }
    .p-hero__hours-title {
      font-size: 1.3rem;
      font-weight: 700;
      color: #008F9D;
      letter-spacing: 0.12em;
      margin-bottom: 1.2rem;
      text-align: center;
    }
    .p-hero__hours-table {
      border-collapse: collapse;
      width: 100%;
    }
    .p-hero__hours-table thead th {
      padding: 0.4rem 1.2rem;
      font-size: 1.2rem;
      font-weight: 700;
      color: #6B7479;
      text-align: center;
      border-bottom: 0.15rem solid rgba(0,143,157,0.25);
    }
    .p-hero__hours-table tbody tr + tr th,
    .p-hero__hours-table tbody tr + tr td {
      border-top: 0.1rem solid rgba(0,0,0,0.07);
    }
    .p-hero__hours-table tbody th {
      padding: 0.5rem 1.6rem 0.5rem 0;
      font-size: 1.2rem;
      font-weight: 400;
      color: #2A2F33;
      white-space: nowrap;
      text-align: left;
      border-right: 0.15rem solid rgba(0,143,157,0.25);
    }
    .p-hero__hours-table tbody th span {
      display: block;
      font-size: 1.0rem;
      color: #6B7479;
      font-weight: 400;
    }
    .p-hero__hours-table tbody td {
      padding: 0.5rem 1.2rem;
      text-align: center;
      font-size: 1.3rem;
      font-weight: 700;
      color: #008F9D;
    }
    .p-hero__hours-table tbody td.is-closed {
      color: #C0C8CC;
      font-weight: 400;
    }
    .p-hero__hours-note {
      font-size: 1.0rem;
      color: #6B7479;
      margin-top: 1.0rem;
      text-align: right;
    }
    @media (max-width: 767px) {
      .p-hero__hours {
        position: static;
        display: block;
        width: 100%;
        margin-top: 2.0rem;
        padding: 1.4rem 1.6rem;
      }
      .p-hero__hours-title {
        font-size: 1.1rem;
        margin-bottom: 0.8rem;
      }
      .p-hero__hours-table thead th {
        padding: 0.3rem 0.7rem;
        font-size: 1.0rem;
      }
      .p-hero__hours-table tbody th {
        padding: 0.4rem 1.0rem 0.4rem 0;
        font-size: 1.0rem;
      }
      .p-hero__hours-table tbody th span {
        font-size: 0.9rem;
      }
      .p-hero__hours-table tbody td {
        padding: 0.4rem 0.7rem;
        font-size: 1.1rem;
      }
      .p-hero__hours-note {
        font-size: 0.9rem;
        margin-top: 0.6rem;
      }
    }



/* ============================================
   下層ページ用コンポーネント（design-guideより移植）
   c-section-title / c-card-link / c-wide-card / c-news / c-menu-card
   c-tag / c-info-box / c-link / c-breadcrumb / c-icon-circle
   c-list / c-note / c-accordion / c-modal / c-quote / c-heading-h2,h3,h4
   c-mv-page / c-mv-article / c-mv-sub
============================================ */
    /* --- セクションタイトル（TOP実装そのまま） --- */
    .c-section-title {
      font-size: 3.2rem;
      font-weight: 500;
      color: #2A2F33;
      letter-spacing: 0.04em;
      position: relative;
      padding-top: 3.2rem;
      line-height: 1.3;
    }
    .c-section-title::before {
      content: '';
      position: absolute;
      top: 0; left: 0;
      width: 3.2rem;
      height: 0.3rem;
      background: #008F9D;
      border-radius: 99.9rem;
    }
    .c-section-title__sub {
      display: block;
      font-size: 1.4rem;
      font-weight: 400;
      color: #6B7479;
      margin-top: 0.8rem;
      letter-spacing: 0.02em;
    }

    /* --- カードリンク（3カラム・TOP診療メニュー） --- */
    .c-card-link {
      display: flex;
      flex-direction: column;
      background: #FFFFFF;
      border-radius: 1.2rem;
      overflow: hidden;
      text-decoration: none;
      color: inherit;
      transition: box-shadow 0.2s ease, transform 0.2s ease;
    }
    .c-card-link:hover { box-shadow: 0 6px 20px rgba(0,50,60,0.10); transform: translateY(-2px); }
    .c-card-link__img { width: 100%; height: 20rem; background: #E6F4F6; overflow: hidden; flex-shrink: 0; }
    .c-card-link__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .c-card-link__body { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2.0rem; flex: 1; }
    .c-card-link__header { display: flex; align-items: center; justify-content: center; gap: 1.2rem; margin-bottom: 1.0rem; }
    .c-card-link__icon {
      width: 4.4rem; height: 4.4rem;
      border-radius: 50%;
      background: #E6F4F6;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .c-card-link__icon svg { width: 2.4rem; height: 2.4rem; color: #008F9D; }
    .c-card-link__title { font-size: 1.8rem; font-weight: 500; color: #2A2F33; letter-spacing: 0.02em; }
    .c-card-link__arrow {
      width: 3.2rem; height: 3.2rem;
      border-radius: 50%;
      background: #008F9D;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      transition: background 0.2s ease;
    }
    .c-card-link:hover .c-card-link__arrow { background: #006C77; }
    .c-card-link__arrow svg { width: 1.4rem; height: 1.4rem; color: #FFFFFF; }

    /* --- ワイドカード（横長・当院の特徴） --- */
    .c-wide-card {
      display: grid;
      grid-template-columns: 1fr 1fr;
      border-radius: 1.6rem;
      overflow: hidden;
      background: #FFFFFF;
      box-shadow: 0 0.2rem 1.6rem rgba(0,50,60,0.08);
      height: 28rem;
      text-decoration: none;
      color: inherit;
      transition: box-shadow 0.2s ease;
    }
    .c-wide-card:hover { box-shadow: 0 0.4rem 2.0rem rgba(0,50,60,0.12); }
    .c-wide-card__body { padding: 2.4rem 3.2rem; display: flex; flex-direction: column; gap: 1.2rem; align-items: flex-start; justify-content: center; }
    .c-wide-card__title { font-size: 2.8rem; font-weight: 500; color: #2A2F33; display: flex; align-items: center; gap: 1.0rem; }
    .c-wide-card__icon { width: 4.4rem; height: 4.4rem; border-radius: 50%; background: #E6F4F6; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
    .c-wide-card__icon svg { width: 2.4rem; height: 2.4rem; color: #008F9D; stroke: currentColor; fill: none; }
    .c-wide-card__text { font-size: 1.5rem; color: #4B5563; line-height: 1.7; }
    .c-wide-card__img { overflow: hidden; }
    .c-wide-card__img-inner { width: 100%; height: 100%; object-fit: cover; display: block; background: linear-gradient(135deg,#E6F4F6,#4DB8C2); }

    /* --- お知らせリンク（TOP実装そのまま） --- */
    .c-news-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 2.0rem 0;
      text-decoration: none;
      color: inherit;
      gap: 1.6rem;
      transition: opacity 0.15s;
    }
    .c-news-link:hover { opacity: 1; }
    .c-news-link:hover .c-news-link__text { color: #008F9D; text-decoration: underline; text-decoration-color: rgba(0,143,157,0.4); text-underline-offset: 0.3rem; }
    .c-news-link:hover .c-news-link__arrow { background: #006C77; }
    .c-news-link__body { display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
    .c-news-link__meta { display: flex; align-items: center; gap: 1.0rem; }
    .c-news-link__tag {
      font-size: 1.2rem; font-weight: 700; letter-spacing: 0.04em;
      background: #E6F4F6; color: #008F9D;
      padding: 0.2rem 0.8rem; border-radius: 0.3rem;
    }
    .c-news-link__date { font-size: 1.3rem; color: #98A0A6; }
    .c-news-link__text { font-size: 1.5rem; color: #2A2F33; line-height: 1.6; transition: color 0.15s; }
    .c-news-link__arrow {
      width: 3.2rem; height: 3.2rem;
      border-radius: 50%; background: #008F9D;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; transition: background 0.2s ease;
    }
    .c-news-link__arrow svg { width: 1.4rem; height: 1.4rem; color: #fff; }
    .c-news-list { list-style: none; }
    .c-news-list li { border-bottom: 1px solid #E2E8EA; }
    .c-news-list li:last-child { border-bottom: none; }

    /* --- メニューカード（自由診療・白背景中央揃え） --- */
    .c-menu-card {
      background: #FFFFFF;
      border-radius: 1.2rem;
      padding: 3.2rem 2.4rem;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      gap: 1.2rem;
    }
    .c-menu-card__name { font-size: 1.8rem; font-weight: 500; color: #2A2F33; letter-spacing: 0.04em; }
    .c-menu-card__desc { font-size: 1.5rem; color: #6B7479; line-height: 1.7; }
    .c-menu-card__price { font-size: 2.2rem; font-weight: 700; color: #E07B58; letter-spacing: 0.02em; margin-top: auto; }
    .c-menu-card__price-note { font-size: 1.4rem; color: #98A0A6; }

    /* --- タグ（TOP実装そのまま） --- */
    .c-tag {
      display: inline-block;
      padding: 0.2rem 0.8rem;
      border-radius: 0.3rem;
      font-size: 1.2rem;
      font-weight: 700;
      letter-spacing: 0.04em;
    }
    .c-tag--primary { background: #E6F4F6; color: #008F9D; }
    .c-tag--accent  { background: #FDE8DE; color: #E07B58; }
    .c-tag--neutral { background: #E2E8EA; color: #6B7479; }
    .c-tag--error   { background: #FCE8E8; color: #D85A5A; }

    /* --- インフォメーションボックス（アイコンあり・左ボーダーなし） --- */
    .c-info-box {
      display: flex;
      gap: 1.2rem;
      border-radius: 0.8rem;
      padding: 1.4rem 1.6rem;
      font-size: 1.4rem;
      line-height: 1.6;
    }
    .c-info-box__icon {
      width: 2.2rem;
      height: 2.2rem;
      flex-shrink: 0;
      margin-top: 0.1rem;
      display: flex;
      align-items: flex-start;
    }
    .c-info-box__icon svg { width: 100%; height: 100%; }
    .c-info-box__text { flex: 1; }
    .c-info-box__text > p { font-size: 1.6rem; font-weight: 700; margin-bottom: 0.8rem; }
    .c-info-box--info { background: #E6F4F6; color: #006C77; }
    .c-info-box--warn { background: #FEF9E7; color: #856404; }
    .c-info-box--error { background: #FCE8E8; color: #B91C1C; }

    /* --- テキストリンク --- */
    .c-link {
      color: #008F9D;
      text-decoration: underline;
      text-underline-offset: 0.25rem;
      text-decoration-color: rgba(0,143,157,0.35);
      font-size: 1.5rem;
      transition: text-decoration-color 0.15s;
    }
    .c-link:hover { text-decoration-color: #008F9D; }
    .c-link--external::after { content: '↗'; font-size: 0.85em; margin-left: 0.2em; }
    .c-link--pdf::before { content: ''; display: inline-block; width: 1.4rem; height: 1.4rem; background: currentColor; margin-right: 0.4em; vertical-align: middle;
      mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline fill='none' stroke='white' stroke-width='2' points='14,2 14,8 20,8'/%3E%3C/svg%3E") no-repeat center/contain;
      -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline fill='none' stroke='white' stroke-width='2' points='14,2 14,8 20,8'/%3E%3C/svg%3E") no-repeat center/contain;
    }

    /* --- パンくず（要見直し） --- */
    .c-breadcrumb {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.4rem;
      font-size: 1.3rem;
      color: #6B7479;
      line-height: 1;
    }
    .c-breadcrumb a { color: #008F9D; text-decoration: underline; text-underline-offset: 0.25rem; text-decoration-color: rgba(0,143,157,0.35); transition: text-decoration-color 0.15s; }
    .c-breadcrumb a:hover { text-decoration-color: #008F9D; }
    .c-breadcrumb__sep { color: #C8D0D4; font-size: 1.3rem; margin: 0 0.5rem; }
    .c-breadcrumb__current { color: #2A2F33; }

    /* --- アイコン背景（TOP実装そのまま） --- */
    .c-icon-circle {
      width: 4.4rem; height: 4.4rem;
      border-radius: 50%;
      background: #E6F4F6;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .c-icon-circle svg { width: 2.4rem; height: 2.4rem; color: #008F9D; }
    .c-icon-circle--lg { width: 5.6rem; height: 5.6rem; }
    .c-icon-circle--lg svg { width: 3.0rem; height: 3.0rem; }
    .c-icon-circle--accent { background: #FDE8DE; }
    .c-icon-circle--accent svg { color: #E07B58; }
    .c-icon-circle--dark { background: rgba(255,255,255,0.15); }
    .c-icon-circle--dark svg { color: #fff; }

    /* --- リスト --- */
    .c-list { list-style: none; display: flex; flex-direction: column; gap: 0.8rem; font-size: 1.5rem; color: #4B5563; line-height: 1.7; }
    .c-list--bullet li { padding-left: 1.6rem; position: relative; }
    .c-list--bullet li::before { content: ''; position: absolute; left: 0; top: 0.75em; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: #008F9D; flex-shrink: 0; }
    .c-list--ordered { list-style: decimal; padding-left: 2.0rem; }
    .c-list--check li { padding-left: 2.4rem; position: relative; }
    .c-list--check li::before { content: '✓'; position: absolute; left: 0; color: #008F9D; font-weight: 700; }
    .c-list--note li { padding-left: 1.6rem; position: relative; font-size: 1.3rem; color: #6B7479; }
    .c-list--note li::before { content: '※'; position: absolute; left: 0; color: #6B7479; }

    /* --- 注意書き --- */
    .c-note {
      font-size: 1.3rem;
      color: #6B7479;
      padding-left: 1.4rem;
      position: relative;
      line-height: 1.7;
    }
    .c-note::before { content: '※'; position: absolute; left: 0; }

    /* --- アコーディオン（滑らかアニメーション） --- */
    .c-accordion { border: 1px solid #E2E8EA; border-radius: 1.0rem; overflow: hidden; background: #fff; }
    .c-accordion__item + .c-accordion__item { border-top: 1px solid #E2E8EA; }
    .c-accordion__trigger {
      width: 100%;
      appearance: none;
      -webkit-appearance: none;
      border: 0;
      background: transparent;
      padding: 1.8rem 2.0rem;
      font-size: 1.5rem;
      font-weight: 500;
      color: #2A2F33;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      text-align: left;
      font-family: inherit;
      transition: background 0.25s ease;
    }
    .c-accordion__trigger:hover { background: #FAFBFC; }
    .c-accordion__item.is-open .c-accordion__trigger { background: #F4FAFB; }
    .c-accordion__icon {
      width: 1.2rem; height: 1.2rem;
      position: relative;
      flex-shrink: 0;
      margin-left: 1.6rem;
    }
    .c-accordion__icon::before,
    .c-accordion__icon::after {
      content: '';
      position: absolute;
      top: 50%; left: 50%;
      width: 1.2rem; height: 0.2rem;
      background: #008F9D;
      border-radius: 99rem;
      transform: translate(-50%, -50%);
      transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .c-accordion__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
    .c-accordion__item.is-open .c-accordion__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
    .c-accordion__panel {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .c-accordion__item.is-open .c-accordion__panel { grid-template-rows: 1fr; }
    .c-accordion__panel-inner {
      overflow: hidden;
      min-height: 0;
    }
    .c-accordion__body {
      padding: 0.4rem 2.0rem 2.0rem;
      font-size: 1.5rem;
      color: #4B5563;
      line-height: 1.8;
      opacity: 0;
      transform: translateY(-0.4rem);
      transition: opacity 0.3s ease 0.05s, transform 0.3s ease 0.05s;
    }
    .c-accordion__item.is-open .c-accordion__body {
      opacity: 1;
      transform: translateY(0);
    }

    /* --- モーダル --- */
    .c-modal {
      position: fixed; inset: 0;
      z-index: 1000;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 2.4rem;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease, visibility 0.3s ease;
    }
    .c-modal.is-open { opacity: 1; visibility: visible; }
    .c-modal__backdrop {
      position: absolute; inset: 0;
      background: rgba(20, 30, 35, 0.55);
      backdrop-filter: blur(0.4rem);
      -webkit-backdrop-filter: blur(0.4rem);
    }
    .c-modal__dialog {
      position: relative;
      background: #fff;
      border-radius: 1.6rem;
      width: 100%;
      max-width: 52rem;
      max-height: calc(100vh - 4.8rem);
      overflow: hidden;
      box-shadow: 0 2.4rem 6.4rem rgba(0, 50, 60, 0.25);
      transform: translateY(2rem) scale(0.96);
      opacity: 0;
      transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease;
      display: flex;
      flex-direction: column;
    }
    .c-modal.is-open .c-modal__dialog {
      transform: translateY(0) scale(1);
      opacity: 1;
    }
    .c-modal__header {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 1.6rem;
      padding: 2.4rem 2.8rem 1.2rem;
    }
    .c-modal__title {
      font-size: 2.0rem;
      font-weight: 600;
      color: #2A2F33;
      margin: 0;
      line-height: 1.4;
    }
    .c-modal__close {
      appearance: none;
      -webkit-appearance: none;
      border: 0;
      background: #F4F6F7;
      width: 3.2rem; height: 3.2rem;
      border-radius: 50%;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #6B7479;
      transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
      flex-shrink: 0;
    }
    .c-modal__close:hover { background: #E07B58; color: #fff; transform: rotate(90deg); }
    .c-modal__close svg { width: 1.4rem; height: 1.4rem; }
    .c-modal__body {
      padding: 0.4rem 2.8rem 2.0rem;
      font-size: 1.5rem;
      color: #4B5563;
      line-height: 1.8;
      overflow-y: auto;
    }
    .c-modal__footer {
      display: flex;
      gap: 1.2rem;
      justify-content: flex-end;
      padding: 1.6rem 2.8rem 2.4rem;
      border-top: 1px solid #EEF1F2;
    }
    @media (max-width: 768px) {
      .c-modal { padding: 1.6rem; }
      .c-modal__header { padding: 2.0rem 2.0rem 1.0rem; }
      .c-modal__body { padding: 0.4rem 2.0rem 1.6rem; }
      .c-modal__footer { padding: 1.2rem 2.0rem 2.0rem; flex-direction: column-reverse; }
      .c-modal__footer > * { width: 100%; }
      .c-modal__title { font-size: 1.8rem; }
    }
    /* スクロールロック */
    body.is-modal-open { overflow: hidden; }

    /* --- 引用ボックス（要デザイン定義） --- */
    .c-quote {
      border-radius: 0.8rem;
      background: #F4FAFB;
      padding: 2.0rem 2.4rem;
      font-size: 1.5rem;
      color: #4B5563;
      line-height: 1.8;
      position: relative;
    }
    .c-quote__source { font-size: 1.3rem; color: #98A0A6; margin-top: 1.0rem; text-align: right; }


    /* --- h2/h3/h4見出し --- */
    .c-heading-h2 {
      font-size: 3.2rem; font-weight: 500; color: #2A2F33;
      letter-spacing: 0.04em; line-height: 1.4;
      position: relative;
      padding: 0.4rem 0 1.4rem 0;
      background-image: linear-gradient(to right, #E07B58 0, #E07B58 8rem, #008F9D 8rem, #008F9D 100%);
      background-repeat: no-repeat;
      background-position: 0 100%;
      background-size: 100% 2px;
    }
    @media (max-width: 767px) {
      .c-heading-h2 { font-size: 2.2rem; }
    }

    /* h3: ツインドット型（ティール+コーラル） */
    .c-heading-h3 {
      font-size: 2.2rem; font-weight: 500; color: #303538;
      line-height: 1.5; letter-spacing: 0.04em;
      margin: 0;
      display: flex; align-items: center; gap: 1.2rem;
    }
    .c-heading-h3__dots {
      width: 2.4rem; height: 0.4rem; flex-shrink: 0; border-radius: 99rem;
      background: linear-gradient(to right, #008F9D 0, #008F9D 50%, #E07B58 50%, #E07B58 100%);
    }

    /* h4: グリーン太字の小見出し */
    .c-heading-h4 {
      font-size: 1.7rem; font-weight: 700; color: #008F9D;
      line-height: 1.5; letter-spacing: 0.02em; margin: 0;
    }
    /* h4直後の要素はgap分の余白を詰めて「見出し＋本文」を一塊に見せる */
    .c-heading-h4 + * { margin-top: -0.8rem; }

    @media (max-width: 768px) {
      .c-heading-h3 { font-size: 1.8rem; gap: 1.0rem; }
      .c-heading-h4 { font-size: 1.6rem; }
    }

    /* ============================================
       MV / ヒーロー（4バリアント）
       L1: TOP用（全幅3層）— c-mv-demo
       L2: 下層ページ用（左テキスト+右画像）— c-mv-page
       NEWS DETAIL: お知らせ詳細用 — c-mv-article
       L3: 孫ページ用（薄ティール背景）— c-mv-sub
    ============================================ */

    /* --- L1: TOP用（全幅3層） --- */
    .c-mv-demo {
      position: relative;
      height: 36rem;
      border-radius: 1.2rem;
      overflow: hidden;
    }
    .c-mv-demo__layer-img {
      position: absolute; inset: 0; z-index: 0;
      background: linear-gradient(135deg, #E6F4F6 0%, #4DB8C2 50%, #008F9D 100%);
    }
    .c-mv-demo__layer-grad {
      position: absolute; inset: 0; z-index: 1;
      background:
        linear-gradient(to right,  rgba(243,249,251,0.92) 0%, rgba(243,249,251,0.55) 45%, rgba(243,249,251,0.02) 100%),
        linear-gradient(to bottom, transparent 60%, rgba(243,249,251,0.85) 100%);
    }
    .c-mv-demo__body {
      position: relative; z-index: 2;
      padding: 6.4rem 4.8rem;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .c-mv-demo__tag { font-size: 1.2rem; font-weight: 700; color: #008F9D; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 0.8rem; }
    .c-mv-demo__title { font-size: 4.8rem; font-weight: 700; color: #2A2F33; line-height: 1.2; }
    .c-mv-demo__sub { font-size: 1.6rem; color: #6B7479; margin-top: 1.2rem; }

    /* --- L2: 下層ページ用（左テキスト + 右画像） --- */
    .c-mv-page {
      position: relative;
      border-radius: 1.2rem;
      overflow: hidden;
      background: #FAFBFC;
      display: grid;
      grid-template-columns: 5fr 6fr;
      min-height: 30rem;
    }
    .c-mv-page__body {
      padding: 5.6rem 4.8rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
      gap: 1.2rem;
    }
    .c-mv-page__breadcrumb {
      font-size: 1.2rem;
      color: #6B7479;
      letter-spacing: 0.04em;
      display: flex;
      align-items: center;
      gap: 0.6rem;
      flex-wrap: wrap;
    }
    .c-mv-page__breadcrumb a { color: #6B7479; text-decoration: none; }
    .c-mv-page__breadcrumb a:hover { color: #008F9D; }
    .c-mv-page__breadcrumb span[aria-current] { color: #2A2F33; }
    .c-mv-page__breadcrumb-sep { color: #C5CCD0; }
    .c-mv-page__tag {
      font-size: 1.2rem;
      font-weight: 700;
      color: #008F9D;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .c-mv-page__title {
      font-size: 4.0rem;
      font-weight: 500;
      color: #2A2F33;
      line-height: 1.3;
      letter-spacing: 0.02em;
      margin: 0;
    }
    .c-mv-page__lead { font-size: 1.5rem; color: #4B5563; line-height: 1.8; margin: 0; }
    .c-mv-page__image {
      position: relative;
      background: linear-gradient(135deg, #E6F4F6 0%, #008F9D 100%);
      overflow: hidden;
    }
    .c-mv-page__image img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
    }
    .c-mv-page__image::after {
      content: '';
      position: absolute;
      left: -2rem; top: 0; bottom: 0;
      width: 4rem;
      background: linear-gradient(to right, #FAFBFC 0%, transparent 100%);
      pointer-events: none;
    }
    @media (max-width: 768px) {
      .c-mv-page { grid-template-columns: 1fr; min-height: auto; }
      .c-mv-page__image { min-height: 20rem; aspect-ratio: 16 / 10; }
      .c-mv-page__image::after { display: none; }
      .c-mv-page__body { padding: 3.2rem 2.4rem; }
      .c-mv-page__title { font-size: 2.2rem; }
    }

    /* --- お知らせ詳細用 MV --- */
    .c-mv-article {
      position: relative;
      border-radius: 1.2rem;
      overflow: hidden;
      background:
        linear-gradient(135deg, rgba(0, 143, 157, 0.04) 0%, rgba(224, 123, 88, 0.04) 100%),
        #FFFFFF;
      padding: 5.6rem 6.4rem;
      border: 1px solid #EEF1F2;
    }
    .c-mv-article__breadcrumb {
      font-size: 1.2rem;
      color: #6B7479;
      margin-bottom: 2.0rem;
      display: flex;
      align-items: center;
      gap: 0.6rem;
      flex-wrap: wrap;
    }
    .c-mv-article__breadcrumb a { color: #6B7479; text-decoration: none; }
    .c-mv-article__breadcrumb a:hover { color: #008F9D; }
    .c-mv-article__breadcrumb span[aria-current] { color: #2A2F33; }
    .c-mv-article__meta {
      display: flex;
      align-items: center;
      gap: 1.2rem;
      margin-bottom: 1.6rem;
      flex-wrap: wrap;
    }
    .c-mv-article__date {
      font-size: 1.3rem;
      color: #6B7479;
      letter-spacing: 0.04em;
      font-family: "Helvetica Neue", "Arial", sans-serif;
    }
    .c-mv-article__category {
      font-size: 1.1rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      color: #008F9D;
      background: #E6F4F6;
      padding: 0.4rem 1.2rem;
      border-radius: 99rem;
    }
    .c-mv-article__title {
      font-size: 3.2rem;
      font-weight: 500;
      color: #2A2F33;
      line-height: 1.5;
      letter-spacing: 0.02em;
      margin: 0;
      max-width: 72rem;
    }
    @media (max-width: 768px) {
      .c-mv-article { padding: 3.2rem 2.4rem; }
      .c-mv-article__title { font-size: 2.2rem; }
    }

    /* --- L3: 孫ページ用（薄ティール背景） --- */
    .c-mv-sub {
      position: relative;
      border-radius: 1.2rem;
      overflow: hidden;
      background:
        radial-gradient(circle at 88% 30%, rgba(0, 143, 157, 0.08) 0%, transparent 60%),
        linear-gradient(135deg, #F3F9FB 0%, #E6F4F6 100%);
      padding: 4.8rem 5.6rem;
    }
    .c-mv-sub__breadcrumb {
      font-size: 1.2rem;
      color: #6B7479;
      margin-bottom: 1.6rem;
      display: flex;
      align-items: center;
      gap: 0.6rem;
      flex-wrap: wrap;
    }
    .c-mv-sub__breadcrumb a { color: #6B7479; text-decoration: none; }
    .c-mv-sub__breadcrumb a:hover { color: #008F9D; }
    .c-mv-sub__breadcrumb span[aria-current] { color: #2A2F33; }
    .c-mv-sub__tag {
      font-size: 1.1rem;
      font-weight: 700;
      color: #008F9D;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      margin-bottom: 0.6rem;
    }
    .c-mv-sub__title {
      font-size: 2.8rem;
      font-weight: 500;
      color: #2A2F33;
      line-height: 1.4;
      letter-spacing: 0.02em;
      margin: 0;
    }
    .c-mv-sub__lead {
      font-size: 1.4rem;
      color: #4B5563;
      line-height: 1.8;
      margin: 1.0rem 0 0;
      max-width: 56rem;
    }
    @media (max-width: 768px) {
      .c-mv-sub { padding: 2.8rem 2.4rem; }
      .c-mv-sub__title { font-size: 2.0rem; }
    }


/* ============================================
   下層ページ レイアウト（l-lower）
============================================ */
.l-lower__crumb { max-width: 109rem; margin: 0 auto; padding: 3rem 2.4rem 1rem; }
.l-lower__body { max-width: 109rem; margin: 0 auto; padding: 5.6rem 2.4rem 9.6rem; display: flex; flex-direction: column; gap: 6.4rem; }
.l-lower__section { display: flex; flex-direction: column; gap: 2.4rem; }
.l-lower__box { background: #fff; border-radius: 1.0rem; padding: 2.8rem 3.2rem; display: flex; flex-direction: column; gap: 1.2rem; }
.l-lower__lead { font-size: 1.6rem; color: #4B5563; line-height: 1.9; margin: 0; }
.l-lower__note { font-size: 1.3rem; color: #6B7479; line-height: 1.7; margin: 0; }
/* アイコン付き情報カード（3カラム） */
.l-lower__grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem; }
/* STEP番号付きカード（受診の流れ等）。番号バッジ＋連結線で「流れ」を可視化 */
.c-step-list { display: flex; flex-direction: column; gap: 0; }
.c-step { display: flex; gap: 2.0rem; position: relative; padding-bottom: 2.4rem; }
.c-step:last-child { padding-bottom: 0; }
.c-step:not(:last-child)::before { content: ""; position: absolute; left: 2.4rem; top: 5.2rem; bottom: 0; width: 2px; background: #CDE9EC; transform: translateX(-50%); }
.c-step__num { flex-shrink: 0; width: 4.8rem; height: 4.8rem; border-radius: 50%; background: #008F9D; color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; z-index: 1; }
.c-step__num-label { font-size: 0.9rem; letter-spacing: 0.08em; font-weight: 500; opacity: 0.85; }
.c-step__num-figure { font-size: 1.9rem; font-weight: 700; margin-top: 0.2rem; }
.c-step__body { flex: 1; background: #fff; border-radius: 1.0rem; padding: 2.0rem 2.4rem; display: flex; flex-direction: column; gap: 0.8rem; }
.c-step__title { font-size: 1.8rem; font-weight: 700; color: #2A2F33; letter-spacing: 0.02em; }
.c-step__text { font-size: 1.5rem; color: #4B5563; line-height: 1.9; }
/* レスポンシブ表（院長経歴・診療時間）。SPは横スクロール */
.c-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.c-table { width: 100%; border-collapse: collapse; font-size: 1.5rem; line-height: 1.8; }
.c-table th, .c-table td { padding: 1.2rem 1.6rem; text-align: left; vertical-align: top; border-bottom: 1px solid #E6EEF0; }
.c-table--profile th { color: #008F9D; font-weight: 700; white-space: nowrap; width: 9rem; }
.c-table--profile td { color: #4B5563; }
.c-table--schedule { font-size: 1.4rem; min-width: 52rem; }
.c-table--schedule th, .c-table--schedule td { border: 1px solid #E6EEF0; text-align: center; padding: 1.0rem 0.6rem; white-space: nowrap; }
.c-table--schedule thead th { background: #E6F4F6; color: #2A2F33; font-weight: 700; }
.c-table--schedule tbody td:first-child { text-align: left; background: #F5FAFB; color: #4B5563; font-weight: 500; }
/* 全セル罫線の表（料金表・予防接種等） */
.c-table--bordered { min-width: 40rem; }
.c-table--bordered th, .c-table--bordered td { border: 1px solid #E6EEF0; padding: 1.0rem 1.2rem; vertical-align: top; }
.c-table--bordered thead th { background: #E6F4F6; color: #2A2F33; font-weight: 700; }
.c-table--vaccine { table-layout: fixed; width: 100%; min-width: 48rem; }
.c-table--vaccine .col-type { width: 22%; }
.c-table--vaccine .col-price { width: 22%; }
.c-table--vaccine .col-count { width: 10%; }
.c-table--vaccine .col-target { width: 46%; }
/* 写真ギャラリー（内観・外観） */
.c-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.c-gallery figure { margin: 0; }
.c-gallery__img { position: relative; border-radius: 1.0rem; overflow: hidden; aspect-ratio: 4 / 3; background: #E6F4F6; }
.c-gallery__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.c-gallery__tag { position: absolute; top: 0.8rem; left: 0.8rem; background: rgba(0,143,157,0.92); color: #fff; font-size: 1.2rem; font-weight: 500; letter-spacing: 0.04em; padding: 0.4rem 1.0rem; border-radius: 0.6rem; }
/* 地図埋め込み */
.c-map { width: 100%; aspect-ratio: 16 / 9; border-radius: 1.0rem; overflow: hidden; }
.c-map iframe { width: 100%; height: 100%; border: 0; display: block; }
/* 2カラムレイアウト（基本情報＋交通 等） */
.l-lower__grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4rem; align-items: start; }
/* box内の直下要素はgapで間隔管理＝デフォルトmargin除去（インラインstyle不要に） */
.l-lower__box > *,
.c-menu-row__body > * { margin: 0; }
/* box内のh4は上に余白を足して情報の塊を分離（直後要素は -0.8rem で密のまま） */
.l-lower__box > .c-heading-h4,
.c-menu-row__body > .c-heading-h4 { margin-top: 2.0rem; }
/* 院長プロフィール（背景なし・名前＋ふりがな＋経歴表） */
.c-profile { display: flex; flex-direction: column; gap: 1.2rem; }
.c-profile__name { font-size: 2.2rem; font-weight: 700; color: #2A2F33; }
.c-profile__name span { font-size: 1.4rem; color: #6B7479; font-weight: 500; margin-left: 0.8rem; }
/* 電話番号の強調（c-linkと併用） */
.c-tel-strong { font-size: 2.0rem; font-weight: 700; }
/* リンク大（c-linkと併用） */
.c-link--lg { font-size: 1.7rem; font-weight: 700; }
/* 料金の強調（点滴メニュー等。c-spec-card内で使用） */
.c-price { display: inline-block; font-size: 2.0rem; font-weight: 700; color: #008F9D; }
/* タグがflex item化で全幅にstretchするのを防ぐ */
.l-lower__box > .c-tag,
.c-menu-row__body > .c-tag { align-self: flex-start; }
/* self-pay 点滴メニュー：内容3 : 画像1 の2カラム（SPは画像上→内容下の1カラム） */
/* .c-menu-row { display: grid; grid-template-columns: 3fr 1fr; gap: 2.4rem; align-items: start; } */
/* 画像一時非表示中の1カラム対応（復旧時は上のコメントを外し、下の1行を削除） */
.c-menu-row { display: grid; grid-template-columns: 1fr; gap: 2.4rem; align-items: start; }
.c-menu-row__body { display: flex; flex-direction: column; gap: 1.2rem; min-width: 0; }
.c-menu-row__media { margin: 0; }
.c-menu-row__media img { width: 100%; height: auto; border-radius: 1.0rem; display: block; }
@media (max-width: 767px) {
  .c-menu-row { grid-template-columns: 1fr; gap: 1.6rem; }
  .c-menu-row__media img { width: 80%; height: auto; margin: 0 auto; }
}
/* 仕様カード（効果・禁忌・副作用・料金等を整理して並べる。薄ティール背景） */
.c-spec-card { background: #E6F4F6; border-radius: 1.0rem; padding: 1.8rem 2.0rem; display: flex; flex-direction: column; gap: 1.0rem; }
.c-spec-card > * { margin: 0; }
.c-spec-card__title { font-size: 1.6rem; font-weight: 700; color: #008F9D; }
/* 料金カード等のアクセント版（薄オレンジ背景・見出し/料金もコーラル） */
.c-spec-card--accent { background: #FDE8DE; }
.c-spec-card--accent .c-spec-card__title { color: #E07B58; }
.c-spec-card--accent .c-price { color: #E07B58; }
/* よくある質問（オープン表示・アコーディオンなし） */
.c-qa { display: flex; flex-direction: column; gap: 1.6rem; }
.c-qa__item { display: flex; flex-direction: column; gap: 0.6rem; }
.c-qa__q,
.c-qa__a { display: flex; align-items: flex-start; gap: 0.8rem; }
.c-qa__q { font-size: 1.6rem; font-weight: 700; color: #2A2F33; }
.c-qa__q::before {
  content: "Q";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: #008F9D;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1;
  margin-top: 0.1rem;
}
.c-qa__a { color: #4B5563; line-height: 1.8; }
.c-qa__a::before {
  content: "A";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  background: #E07B58;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1;
  margin-top: 0.2rem;
}
/* 上マージン（情報の塊を分離したい時に） */
.u-mt-lg { margin-top: 2.4rem !important; }
/* メニュー詳細の開閉（概要＝見出し＋説明は常時表示、詳細をボタンで展開） */
.c-expand__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.4s ease; }
.c-expand.is-open .c-expand__panel { grid-template-rows: 1fr; }
.c-expand__inner { overflow: hidden; min-height: 0; display: flex; flex-direction: column; gap: 1.2rem; }
.c-expand__inner > * { margin: 0; }
.c-expand__inner > .c-heading-h4 { margin-top: 2.0rem; }
.c-expand__inner > .c-spec-card { margin-top: 2.0rem; }
/* トグルボタンはヘッダー等の c-btn と同じホバー挙動（円フィル＋scale）に乗せる */
.c-expand__toggle { align-self: center; gap: 0.8rem; margin-top: 0.8rem; }
.c-expand__toggle-icon { position: relative; z-index: 1; width: 0.8rem; height: 0.8rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 0.3s; margin-top: -0.3rem; }
.c-expand.is-open .c-expand__toggle-icon { transform: rotate(-135deg); margin-top: 0.3rem; }
/* 横長ギャラリー画像（駐車場等） */
.c-gallery__img--wide { aspect-ratio: 16 / 10; }
/* テキスト寄せ */
.u-text-right { text-align: right !important; }
.u-text-center { text-align: center !important; }
/* 自動折返しグリッド（症状カード等） */
.l-lower__grid-auto { display: grid; grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr)); gap: 1.6rem; }
/* 症状カード（アイコンなし・左寄せ） */
.c-symptom { background: #fff; border-radius: 1.0rem; padding: 1.6rem 2.0rem; display: flex; flex-direction: column; gap: 0.6rem; }
.c-symptom__title { font-size: 1.7rem; font-weight: 700; color: #008F9D; }
.c-symptom__text { font-size: 1.4rem; color: #6B7479; line-height: 1.7; }
/* カテゴリフィルタ（ピル・静的） */
.c-filter { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.c-filter__item { display: inline-block; padding: 0.6rem 1.6rem; border-radius: 99rem; border: 1px solid #CDD8DB; background: #fff; color: #4B5563; font-size: 1.4rem; text-decoration: none; transition: border-color 0.15s, color 0.15s, background 0.15s; }
.c-filter__item:hover { border-color: #008F9D; color: #008F9D; }
.c-filter__item.is-active { background: #008F9D; border-color: #008F9D; color: #fff; }
/* ページネーション */
.c-pagination { display: flex; justify-content: center; align-items: center; gap: 0.8rem; }
.c-pagination__item { display: inline-flex; align-items: center; justify-content: center; min-width: 4rem; height: 4rem; padding: 0 1.2rem; border-radius: 0.6rem; border: 1px solid #CDD8DB; background: #fff; color: #4B5563; font-size: 1.4rem; text-decoration: none; transition: border-color 0.15s, color 0.15s, background 0.15s; }
.c-pagination__item:hover { border-color: #008F9D; color: #008F9D; }
.c-pagination__item.is-active { background: #008F9D; border-color: #008F9D; color: #fff; pointer-events: none; }
.c-pagination__item.is-disabled { color: #C8D0D4; pointer-events: none; }
.c-pagination__ellipsis { color: #98A0A6; padding: 0 0.4rem; }
/* 記事本文（お知らせ詳細） */
.c-article { display: flex; flex-direction: column; gap: 1.6rem; }
.c-article__meta { display: flex; align-items: center; gap: 1.0rem; }
.c-article__date { font-size: 1.3rem; color: #98A0A6; }
.c-article__title { font-size: 2.8rem; font-weight: 700; color: #2A2F33; line-height: 1.5; margin: 0; }
/* WP本文(the_content)対応：クラスが付かない素のタグを要素セレクタで装飾。見出し上に余白・直後は詰めて塊感 */
.c-article__body { margin-top: 2.4rem; font-size: 1.6rem; color: #2A2F33; line-height: 1.9; }
.c-article__body > :first-child { margin-top: 0; }
.c-article__body p { margin: 1.8rem 0 0; }
.c-article__body h2 {
  font-size: 2.2rem; font-weight: 700; color: #2A2F33; line-height: 1.5;
  margin: 4.0rem 0 1.4rem; padding-bottom: 0.8rem;
  background-image: linear-gradient(to right, #E07B58 0, #E07B58 6rem, #008F9D 6rem, #008F9D 100%);
  background-repeat: no-repeat; background-position: 0 100%; background-size: 100% 2px;
}
.c-article__body h3 {
  font-size: 1.9rem; font-weight: 700; color: #2A2F33; line-height: 1.5;
  margin: 3.2rem 0 1.2rem; padding-left: 1.2rem; border-left: 0.4rem solid #008F9D;
}
.c-article__body h4 { font-size: 1.7rem; font-weight: 700; color: #008F9D; margin: 2.4rem 0 0.8rem; }
.c-article__body img { display: block; max-width: 100%; height: auto; border-radius: 1.0rem; margin: 2.4rem 0; }
.c-article__body ul, .c-article__body ol { margin: 1.8rem 0; padding-left: 2.2rem; }
.c-article__body li { margin: 0.6rem 0; line-height: 1.8; }
.c-article__body ul li { list-style: disc; }
.c-article__body ol li { list-style: decimal; }
.c-article__body a { color: #008F9D; text-decoration: underline; text-underline-offset: 0.25rem; text-decoration-color: rgba(0,143,157,0.4); }
.c-article__body strong { font-weight: 700; }
.c-article__body blockquote { margin: 2.4rem 0; padding: 1.6rem 2.0rem; background: #F5FAFB; border-left: 0.4rem solid #4DB8C2; color: #4B5563; border-radius: 0 0.6rem 0.6rem 0; }
.c-info-card { background: #fff; border-radius: 1.2rem; padding: 3.2rem 2.4rem; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.2rem; }
.c-info-card__title { font-size: 1.7rem; font-weight: 700; color: #2A2F33; letter-spacing: 0.02em; }
.c-info-card__text { font-size: 1.4rem; color: #4B5563; line-height: 1.8; text-align: left; }
/* 下層MVフルワイド：左テキストの左端を本文コンテンツ幅(109rem中央)と揃える */
.c-mv-page--full { border-radius: 0; height: 34rem; background: #fff; }
.c-mv-page--full .c-mv-page__body { padding: 2.4rem 4.8rem; }
.c-mv-page--full .c-mv-page__image { background: #fff; }
.c-mv-page--full .c-mv-page__image img { object-fit: contain; }
@media (max-width: 767px) {
  .l-lower__crumb { padding: 1.2rem 1.6rem 1.2rem; }
  .l-lower__body { padding: 4.0rem 1.6rem 6.4rem; gap: 4.8rem; }
  .l-lower__box { padding: 2.0rem; }
  .l-lower__grid3 { grid-template-columns: 1fr; gap: 1.6rem; }
  .c-step { gap: 1.2rem; padding-bottom: 2.0rem; }
  .c-step:not(:last-child)::before { left: 2.0rem; top: 4.4rem; }
  .c-step__num { width: 4.0rem; height: 4.0rem; }
  .c-step__num-figure { font-size: 1.6rem; }
  .c-step__body { padding: 1.6rem; }
  .c-step__title { font-size: 1.6rem; }
  .c-gallery { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
  .c-table--profile th { width: auto; }
  .l-lower__grid2 { grid-template-columns: 1fr; gap: 1.6rem; }
  .c-article__title { font-size: 2.2rem; }
  .c-article__body h2 { font-size: 2.0rem; }
  .c-article__body h3 { font-size: 1.7rem; }
  .c-pagination__item { min-width: 3.6rem; height: 3.6rem; padding: 0 0.8rem; }
  .c-mv-page--full { height: auto; }
  .c-mv-page--full .c-mv-page__body { padding-left: 2.4rem; }
}

/* ============================================================
   l-float-cta — 画面右下固定フローティング初診受付ボタン
   ============================================================ */
.l-float-cta {
  position: fixed;
  bottom: 4.0rem;
  right: 4.0rem;
  z-index: 50;
  opacity: 0;
  transform: scale(0.8);
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.l-float-cta.is-visible {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.l-float-cta.is-hidden {
  opacity: 0;
  transform: scale(0.8);
  pointer-events: none;
}
.l-float-cta__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 9.6rem;
  height: 9.6rem;
  border-radius: 50%;
  background: #E07B58;
  color: #fff;
  text-decoration: none;
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  box-shadow: 0 0.4rem 1.6rem rgba(224,123,88,0.5);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.l-float-cta__link svg {
  width: 2.6rem;
  height: 2.6rem;
  flex-shrink: 0;
}
.l-float-cta__link:hover {
  transform: translateY(-0.3rem);
  box-shadow: 0 0.8rem 2.4rem rgba(224,123,88,0.6);
}
.l-float-cta__close {
  position: absolute;
  top: -0.4rem;
  right: -0.4rem;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: #2A2F33;
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  line-height: 1;
  z-index: 1;
  transition: background 0.15s;
}
.l-float-cta__close:hover { background: #555; }
@media (max-width: 767px) {
  .l-float-cta {
    bottom: 2.4rem;
    right: 2.4rem;
  }
  .l-float-cta__link {
    width: 8.4rem;
    height: 8.4rem;
  }
}
