@charset "UTF-8";
:root {
  --font: "Zen Maru Gothic", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  --container: 1120px;
  --gutter: 16px;
  --ink: #3a2e25;
  --muted: #6b5a4d;
  --bg: #fffffc;
  --panel: #ffffff;
  --primary: #EC8367; /* オレンジ系（仮） */
  --primary2: #f6a08a; /* 少し薄め */
  --accent: #49a36a; /* CTAグリーン（仮） */
  --line: #eadfd5;
  --brown:#965700;
  --shadow: 0 10px 25px rgba(0,0,0,.08);
  --radius: 20px;
  --radius-lg: 28px;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--bg);
}

body {
  min-height: 100%;
  margin: 0;
  font-family: var(--font);
  background: var(--bg);
  line-height: 1.8;
  color: var(--brown);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

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

.is-pc {
  display: block;
}

.is-sp {
  display: none;
}

@media (max-width: 768px) {
  .is-pc {
    display: none;
  }
  .is-sp {
    display: block;
  }
}
.l-container {
  width: min(var(--container), 100% - var(--gutter) * 2);
  margin-inline: auto;
}

/* ヘッダー土台 */
.c-header {
  background: rgba(240, 240, 202, 0.6); /* 薄いベージュ寄せ（デザインに近い） */
  font-weight: 500;
}

.c-header__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: clamp(0.563rem, 0.173rem + 0.81vw, 1.125rem) clamp(0.75rem, 0.231rem + 1.08vw, 1.5rem); /*18 24 9 12*/
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(0.75rem, 0.231rem + 1.08vw, 1.5rem);
}

/* 左：ロゴ */
.c-header__brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.c-header__logo {
  display: block;
  height: clamp(2rem, 0.616rem + 2.88vw, 4rem); /* 64 32 */
  width: auto;
}

/* 右：2段 */
.c-header__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(0.438rem, 0.135rem + 0.63vw, 0.875rem); /*14 7*/
  flex: 1;
}

/* 上段：丸ボタン */
.c-header__utility {
  display: flex;
  gap: clamp(0.5rem, 0.154rem + 0.72vw, 1rem); /*16 8*/
  flex-wrap: wrap; /* 画面が狭いときに折り返す */
  justify-content: flex-end;
}

.c-header__pill {
  display: inline-flex;
  align-items: center;
  gap: clamp(0rem, -0.433rem + 0.9vw, 0.625rem); /*10 0*/
  padding: clamp(0.438rem, 0.135rem + 0.63vw, 0.875rem) clamp(0.688rem, 0.212rem + 0.99vw, 1.375rem); /*14 22,7 11*/
  border-radius: 999px;
  background: #e88978; /* サーモン系 */
  color: #fff;
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.c-header__pill img {
  width: clamp(0.938rem, 0.505rem + 0.9vw, 1.563rem);
}

.c-header__pill:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

.c-header__pillIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.c-header__pillText {
  font-size: clamp(0.625rem, 0.192rem + 0.9vw, 1.25rem); /*20 10*/
}

/* 下段：グロナビ */
.c-header__nav {
  display: flex;
  gap: clamp(1.063rem, 0.327rem + 1.53vw, 2.125rem); /*34 17*/
  flex-wrap: wrap;
  justify-content: flex-end;
}

.c-header__navLink {
  color: var(--brown); /* 茶色寄せ */
  text-decoration: none;
  font-size: clamp(0.688rem, 0.212rem + 0.99vw, 1.375rem); /*22 11*/
  line-height: 1.2;
}

.c-header__navLink:hover {
  opacity: 0.75;
}

/* =========================
  SP Hamburger
========================= */
/* ボタン（SPのみ） */
.c-header__toggle {
  display: none; /* PCでは非表示 */
  background: transparent;
  border: 0;
  padding: 10px 8px;
  cursor: pointer;
  text-align: center;
  color: var(--brown);
}

.c-header__toggleIcon {
  display: block;
  width: 34px;
  height: 22px;
  position: relative;
  margin: 0 auto 4px;
}

.c-header__toggleIcon::before,
.c-header__toggleIcon::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--brown);
  border-radius: 2px;
  transition: transform 0.25s ease, top 0.25s ease, opacity 0.2s ease;
}

.c-header__toggleIcon::before {
  top: 4px;
}

.c-header__toggleIcon::after {
  top: 16px;
}

/* 真ん中線 */
.c-header__toggleIcon {
  background: linear-gradient(var(--brown), var(--brown)) center/100% 2px no-repeat;
  transition: background-size 0.2s ease;
}

.c-header__toggleText {
  font-size: 12px;
  letter-spacing: 0.08em;
}

/* SP時のメニュー（右側ブロック）をオフキャンバス化 */
@media (max-width: 768px) {
  .c-header__logo {
    height: clamp(2.063rem, 0.308rem + 7.69vw, 4rem);
  }
  .c-header__toggle {
    display: block;
  }
  .c-header__right {
    position: fixed;
    top: 0;
    right: 0;
    height: 100svh;
    width: min(320px, 86vw);
    background: #fff;
    z-index: 1000;
    transform: translateX(100%);
    transition: transform 0.25s ease;
    padding: 80px 16px 24px; /* 上はヘッダー高さ分の逃げ */
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.12);
    overflow-y: auto;
    display: none; /* ←PCメニューはSPでは隠す */
  }
  /* 開いた状態 */
  .c-header.is-open .c-header__right {
    transform: translateX(0);
  }
  /* utility/ナビを縦積み */
  .c-header__utility {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
  }
  .c-header__nav {
    display: grid;
    gap: 10px;
  }
  .c-header__navLink {
    padding: 12px 10px;
    border-radius: 10px;
    background: rgba(236, 128, 73, 0.12); /* それっぽい */
  }
}
/* 開いた時のハンバーガー → × */
.c-header.is-open .c-header__toggleIcon {
  background-size: 0 0; /* 真ん中線消す */
}

.c-header.is-open .c-header__toggleIcon::before {
  top: 10px;
  transform: rotate(45deg);
}

.c-header.is-open .c-header__toggleIcon::after {
  top: 10px;
  transform: rotate(-45deg);
}

/* Header */
.l-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(240, 240, 202, 0.6);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}

.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
}

.c-logo__text {
  font-weight: 700;
  letter-spacing: 0.04em;
}

.c-gnav__list {
  display: flex;
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.c-gnav__link {
  font-weight: 500;
  font-size: 14px;
  color: var(--muted);
}

.c-gnav__link:hover {
  color: var(--ink);
}

.c-headerCta {
  display: flex;
  gap: 10px;
}

.c-hamburger {
  display: none;
}

/* =========================
  SP Menu Modal（まとめ版 / 0201寄せ）
========================= */
/* ルート */
.c-spMenu {
  position: fixed;
  inset: 0;
  z-index: 1200;
  pointer-events: none;
}

/* オーバーレイ（全画面でも残してOK） */
.c-spMenu__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  opacity: 0;
  transition: opacity 0.25s ease;
}

/* パネル本体（全画面） */
.c-spMenu__panel {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100svh;
  background: #fffdf7;
  box-shadow: -18px 0 40px rgba(0, 0, 0, 0.14);
  transform: translateX(100%);
  transition: transform 0.28s ease;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
}

/* 上部（オレンジ帯 + ゆるい曲線） */
.c-spMenu__top {
  padding: clamp(0.563rem, 0.173rem + 0.81vw, 1.125rem) clamp(0.75rem, 0.231rem + 1.08vw, 1.5rem);
  background: url(/assets/img/header-sp-top.png) center top/100% auto no-repeat;
  height: clamp(6.375rem, 0.035rem + 27.79vw, 13.375rem);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

/* ロゴ（ピル） */
.c-spMenu__logo {
  display: block;
  height: clamp(2.188rem, 0.206rem + 8.68vw, 4.375rem);
  width: auto;
}

/* 閉じる */
.c-spMenu__close {
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  padding: 4px 6px;
}

.c-spMenu__closeIcon {
  width: 18px;
  height: 18px;
  position: relative;
  display: inline-block;
}

.c-spMenu__closeIcon::before,
.c-spMenu__closeIcon::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transform-origin: center;
}

.c-spMenu__closeIcon::before {
  transform: translateY(-50%) rotate(45deg);
}

.c-spMenu__closeIcon::after {
  transform: translateY(-50%) rotate(-45deg);
}

.c-spMenu__closeText {
  font-size: 11px;
  letter-spacing: 0.06em;
  opacity: 0.95;
}

/* ナビ（カード→行リスト） */
.c-spMenu__nav {
  padding: 18px 14px 8px;
  display: grid;
  gap: 0;
}

.c-spMenu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-decoration: none;
  color: #7a4e29;
  background: transparent;
  border: none;
  border-bottom: 2px solid rgba(198, 167, 115, 0.5);
}

.c-spMenu__link.c-spMenu__link1 {
  width: 45vw;
}

.c-spMenu__link.c-spMenu__link2 {
  width: 52vw;
}

.c-spMenu__link.c-spMenu__link3 {
  width: 59vw;
}

.c-spMenu__link.c-spMenu__link4 {
  width: 66vw;
}

.c-spMenu__link.c-spMenu__link5 {
  width: 73vw;
}

.c-spMenu__link.c-spMenu__link6 {
  width: 80vw;
}

.c-spMenu__linkText {
  font-size: clamp(1rem, 0.547rem + 1.99vw, 1.5rem);
  letter-spacing: 0.04em;
}

/* 右の▶ */
.c-spMenu__chev {
  width: 0;
  height: 0;
  border-left: 18px solid var(--primary);
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  flex: 0 0 auto;
}

/* 押下 */
.c-spMenu__link:active {
  transform: translateY(1px);
  background: rgba(236, 131, 103, 0.06);
}

/* 下部（街並み + CTA） */
.c-spMenu__bottom {
  background: #cdb480;
  height: 25vh;
}

.c-spMenu__town {
  width: 100%;
  height: auto;
  display: block;
  margin-top: 30px;
}

/* CTA */
.c-spMenu__cta {
  display: grid;
  align-content: space-evenly;
  justify-content: center;
  align-items: start;
  justify-items: stretch;
  height: 100%;
}

.c-spMenu__ctaBtn {
  width: 80vw;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  text-decoration: none;
  border-radius: 999px;
  padding: 12px 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  box-shadow: none;
  border: 2px solid rgba(255, 255, 255, 0.7);
  transition: transform 0.12s ease, filter 0.12s ease;
}

.c-spMenu__ctaBtn--tel {
  background: var(--primary);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.85);
}

.c-spMenu__ctaBtn--form {
  background: #fff;
  color: var(--primary);
  border: 2px solid var(--primary);
}

.c-spMenu__ctaIcon {
  font-size: clamp(1rem, 0.547rem + 1.99vw, 1.5rem);
}

.c-spMenu__ctaText {
  font-size: clamp(1rem, 0.547rem + 1.99vw, 1.5rem);
}

.c-spMenu__ctaBtn:active {
  transform: scale(0.98);
  filter: brightness(0.98);
}

/* ===== Open state（既存のis-openを利用） ===== */
.c-header.is-open .c-spMenu {
  pointer-events: auto;
}

.c-header.is-open .c-spMenu__overlay {
  opacity: 1;
}

.c-header.is-open .c-spMenu__panel {
  transform: translateX(0);
}

/* ===== PCでは非表示 ===== */
@media (min-width: 769px) {
  .c-spMenu {
    display: none;
  }
}
/* =========================
footer
========================= */
.p-footer-deco {
  width: 100%;
  height: 300px;
  background: url("../img/footer-illust.png") no-repeat center bottom/cover;
}

.l-footer {
  color: #fff;
  padding-top: 48px;
}

.l-footer__container {
  background: #EC8367;
}

.l-footer__inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 40px;
  margin: 0;
  width: 100%;
  padding: 0px clamp(3.125rem, -3.364rem + 13.5vw, 12.5rem) clamp(1.25rem, -0.048rem + 2.7vw, 3.125rem) clamp(3.125rem, -3.364rem + 13.5vw, 12.5rem); /*0 200 50 200,0 50 20 50*/
}

.l-footer__inner::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: clamp(42.813rem, 8.42rem + 71.56vw, 92.5rem); /*1480 685*/
  height: clamp(0rem, -0.692rem + 1.44vw, 1rem);
  transform: translateX(-50%);
  border-top: 1px solid rgb(255, 255, 255);
}

/* 左 */
.l-footer__logo {
  font-size: clamp(1.125rem, 0.346rem + 1.62vw, 2.25rem); /*36 18*/
  font-weight: 700;
  margin: 0;
}

.l-footer__logo span {
  display: block;
  font-size: clamp(0.625rem, 0.365rem + 0.54vw, 1rem); /*16 10*/
  letter-spacing: 0.08em;
  text-align: left;
  padding-left: 84px;
  line-height: 1;
  font-weight: 500;
}

.l-footer__address {
  font-size: clamp(0.5rem, 0.154rem + 0.72vw, 1rem); /*16 8*/
  font-style: normal;
  letter-spacing: 0.08em;
  margin-top: clamp(1rem, -0.125rem + 2.34vw, 2.625rem); /*42 16*/
}

/* 右 */
.l-footer__contact {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.l-footer__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: #EC8367;
  padding: 0px clamp(0.375rem, -0.231rem + 1.26vw, 1.25rem); /*0 20,0 6*/
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  font-size: clamp(1rem, 0.394rem + 1.26vw, 1.875rem); /*30 16*/
  letter-spacing: clamp(0.125rem, 0.038rem + 0.18vw, 0.25rem); /*4 2*/
}

.l-footer__btn:first-child {
  margin-bottom: clamp(0rem, -1.298rem + 2.7vw, 1.875rem); /*30 0*/
}

.l-footer__icon {
  font-size: 16px;
}

/* ナビ */
.l-footer__nav {
  background: #EC8367;
  padding: 0px clamp(3.125rem, -3.364rem + 13.5vw, 12.5rem);
}

.l-footer__nav ul {
  list-style: none;
  margin: 0;
  padding: 24px 0;
  display: grid;
  grid-template-columns: repeat(3, max-content);
  justify-content: start;
  row-gap: clamp(0.5rem, 0.154rem + 0.72vw, 1rem);
  -moz-column-gap: clamp(0.5rem, 0.154rem + 0.72vw, 1rem);
       column-gap: clamp(0.5rem, 0.154rem + 0.72vw, 1rem);
}

.l-footer__nav a {
  color: #fff;
  text-decoration: none;
  font-size: clamp(0.5rem, 0.24rem + 0.54vw, 0.875rem);
}

/* コピーライト */
.l-footer__copy {
  text-align: center;
  font-size: clamp(0.5rem, 0.154rem + 0.72vw, 1rem);
  background: #EC8367;
  margin: 0;
  padding: 24px 0;
}

/*レスポンシブ*/
@media (max-width: 768px) {
  /* l-footer__container を縦並びの親にする */
  .l-footer__container {
    display: flex;
    flex-direction: column;
  }
  /* 各ブロックの並び順を指定 */
  .l-footer__inner {
    order: 1;
  } /* info + contact を含むブロック */
  .l-footer__nav {
    order: 2;
  }
  .l-footer__copy {
    order: 4;
  }
  /* innerの中身も並び替える（info → contact のままなら不要） */
  .l-footer__info {
    order: 1;
  }
  .l-footer__contact {
    order: 3;
  }
  /* inner を「見た目上」分解したい場合（重要） */
  .l-footer__inner {
    display: contents; /* これがキモ：info/contactをcontainer直下扱いにする */
  }
  /* display: contents にする場合は余白をそれぞれに持たせる */
  .l-footer__info {
    padding: 0 clamp(3.125rem, -3.364rem + 13.5vw, 12.5rem) 16px;
  }
  .l-footer__contact {
    padding: 0 clamp(3.125rem, -3.364rem + 13.5vw, 12.5rem) 24px;
  }
  .p-footer-deco {
    height: clamp(4.688rem, 0.442rem + 18.61vw, 9.375rem); /*75 150*/
  }
  .l-footer__info {
    text-align: left;
    margin-top: 60px;
  }
  .l-footer__logo {
    font-size: clamp(0.875rem, 0.083rem + 3.47vw, 1.75rem); /*14 28*/
  }
  .l-footer__logo span {
    font-size: clamp(0.625rem, 0.059rem + 2.48vw, 1.25rem); /*10 20*/
    padding-left: clamp(3.188rem, 0.301rem + 12.66vw, 6.375rem); /*102 51*/
  }
  .l-footer__address {
    font-size: clamp(0.656rem, 0.062rem + 2.61vw, 1.313rem); /*10.5 21*/
  }
  .l-footer__inner {
    overflow: hidden;
    flex-direction: column;
    text-align: center;
  }
  .l-footer__contact {
    align-items: center;
  }
  .l-footer__nav ul {
    justify-content: center;
  }
  .l-footer__nav ul {
    justify-content: flex-start;
  }
  .l-footer__nav ul a {
    font-size: clamp(0.625rem, 0.059rem + 2.48vw, 1.25rem); /*10 20*/
  }
  .l-footer__btn {
    width: 240px;
    justify-content: center;
  }
}
.u-only-sp {
  display: none;
}

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

/* Buttons */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  font-weight: 700;
  border: 1px solid transparent;
  box-shadow: none;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.c-btn:hover {
  transform: translateY(-1px);
  opacity: 0.95;
}

.c-btn--primary {
  background: var(--primary);
  color: #fff;
}

.c-btn--tel {
  background: #fff;
  border-color: var(--line);
}

.c-btn--lg {
  padding: 12px 18px;
}

/* =========================
  CTA Component
========================= */
.c-cta {
  padding: 40px 20px;
  text-align: center;
}

.c-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 600px;
  height: 60px;
  background: #01B513;
  color: #fff;
  font-weight: 700;
  border-radius: 999px;
  font-size: 24px;
}
@media (max-width: 768px) {
  .c-cta__button {
    width: 100%;
    font-size: clamp(1rem, 0.099rem + 3.95vw, 2rem);
  }
  .c-cta__button img {
    width: 6vw;
  }
}

/* Titles / Text */
.c-title {
  font-size: 26px;
  line-height: 1.4;
  margin: 0 0 14px;
  letter-spacing: 0.03em;
}

.c-title--sm {
  font-size: 20px;
}

.c-text {
  margin: 0;
  color: var(--muted);
}

@media (min-width: 768px) {
  .c-tel {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    color: inherit;
  }
}
/* =============
  HERO
============= */
.p-hero__inner {
  position: relative;
  margin: 0 auto;
  margin-bottom: -5px;
  overflow: hidden;
}

/* 背景PNG（オレンジ＋写真＋波＋境目） */
.p-hero__bg {
  width: 100%;
  aspect-ratio: 1280/400;
  background-image: url("../img/hero.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  box-shadow: 0 5px 0 0 var(--bg);
}

/* テキストを上に重ねる */
.p-hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  padding-left: clamp(2.75rem, -3.682rem + 13.4vw, 12.063rem);
  padding-top: clamp(2.25rem, -1.592rem + 8vw, 7.813rem);
  font-size: clamp(0.813rem, 0.338rem + 0.99vw, 1.5rem);
  pointer-events: none;
}

/* キャッチコピー */
.p-hero__catch {
  margin: 0;
  color: #fff;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: clamp(0.063rem, -0.067rem + 0.27vw, 0.25rem);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

.p-hero__catch span {
  font-size: clamp(1.188rem, 0.281rem + 1.89vw, 2.5rem);
}

/* SP調整 */
@media (max-width: 768px) {
  .p-hero__inner {
    max-width: 100%;
    z-index: 1;
  }
  .p-hero__bg {
    width: 100%;
    aspect-ratio: 393/566;
    background-image: url("../img/hero-sp.png");
  }
  .p-hero__content {
    padding-left: clamp(9.688rem, 0.121rem + 41.94vw, 20.25rem);
    align-items: flex-start;
    padding-top: clamp(1.438rem, 0.702rem + 3.23vw, 2.25rem);
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem);
  }
  .p-hero__content span {
    font-size: clamp(1.125rem, -0.12rem + 5.46vw, 2.5rem);
  }
}
/* ===================
  Welcome & Hours
=================== */
.p-welcome {
  padding: 40px 0 60px;
  background: #fff;
}

.p-welcome__inner {
  position: relative;
  margin: 0 auto;
  padding: 0 20px;
}

/* 上/下の家並み PNG */
.p-welcome__deco {
  width: 34%;
  height: 64px;
  background-repeat: repeat-x;
  background-size: auto clamp(2.125rem, 0.83rem + 2.7vw, 4rem);
  opacity: 0.9;
}

.p-welcome__deco--top {
  margin-bottom: 18px;
  background-image: url("../img/deco-houses.png");
}

.p-welcome__deco--bottom {
  margin-top: 18px;
  background-image: url("../img/deco-houses.png");
  margin-left: auto;
}

/* 2カラム */
.p-welcome__grid {
  display: grid;
  align-items: center;
  grid-template-columns: 1.1fr 1fr;
  gap: 36px;
}

/* -------- 左：Welcome -------- */
.p-welcome__left {
  position: relative;
  min-height: 260px;
}

/* 楕円PNG（welcomeの背景） */
.p-welcome__badge {
  width: 100%;
  aspect-ratio: 600/330; /* 楕円PNGの比率に合わせて調整 */
  background-image: url("../img/welcome-oval.png");
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left top;
}

/* テキストを楕円の上に重ねる */
.p-welcome__copy {
  position: absolute;
  inset: 0;
  padding: clamp(2.125rem, -0.054rem + 4.54vw, 4.5rem) clamp(7.188rem, 1.453rem + 11.95vw, 13.438rem) clamp(9.375rem, 8.802rem + 1.19vw, 10rem) clamp(6.25rem, 1.662rem + 9.56vw, 11.25rem); /* 72px 215px 160px 180px; */
}

.p-welcome__lead {
  margin: 0 clamp(0.625rem, -2.816rem + 7.17vw, 4.375rem) 4px; /* 0 70px 4px,0 10px 4px*/
  font-size: clamp(0.625rem, -0.006rem + 1.31vw, 1.313rem); /*21px,10px*/
  font-weight: 500;
  color: var(--brown);
  text-align: center;
}

.p-welcome__headline {
  margin: 0 0 4px;
  font-size: clamp(0.438rem, -0.193rem + 1.31vw, 1.125rem); /*18px,7px*/
  font-weight: 500;
  line-height: 1.8;
  color: var(--brown);
}

.p-welcome__hl {
  position: relative;
  display: inline-block;
  font-size: clamp(0.625rem, -0.637rem + 2.63vw, 2rem); /*32px,10px*/
  padding: 0px 8px;
  border-radius: 6px;
  margin-bottom: 4px;
}

/* 白台 */
.p-welcome__hl::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  border-radius: 6px;
  z-index: 0;
}

/* グラデ文字（前面） */
.p-welcome__hlText {
  position: relative;
  z-index: 1;
  background: linear-gradient(0deg, #EC8367 0%, #F2AB8B 55%, #F0F0CA 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.p-welcome__anniv {
  margin: 0 0 6px;
  font-size: clamp(0.438rem, -0.308rem + 1.55vw, 1.25rem); /*20px,7px*/
  font-weight: 500;
  text-align: right;
}

.p-welcome__annivTag {
  display: inline-block;
  background: var(--brown);
  color: #fff;
  border-radius: clamp(0.188rem, 0.015rem + 0.36vw, 0.375rem); /*6px,3px*/
  font-weight: 700;
  font-size: clamp(0.75rem, -0.168rem + 1.91vw, 1.75rem); /*28,12pxpx*/
}

.p-welcome__note {
  margin: 0;
  font-size: clamp(0.375rem, 0.088rem + 0.6vw, 0.688rem); /*11px,6px*/
  text-align: right;
  color: var(--brown);
}

/* -------- 右：診療時間 -------- */
.p-hours {
  background: #fff;
  width: 85%;
}

.p-hours__label {
  display: inline-block;
  margin: 0 0 10px;
  padding: 6px 14px;
  border-radius: 999px;
  background: var(--brown);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.p-hours__tableWrap {
  border: 1px solid #e6d9cc;
  border-radius: clamp(0.875rem, 0.184rem + 1.44vw, 1.875rem); /*30*/
  overflow: hidden;
  background: #fff;
}

.p-hours__table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
}

.p-hours__table th,
.p-hours__table td {
  border: 1px solid #e6d9cc;
  padding: clamp(0.25rem, -0.009rem + 0.54vw, 0.625rem) 8px; /*10,8*/
  line-height: 1;
}

.p-hours__table thead th {
  background: var(--primary);
  color: #fff;
  font-weight: 700;
  font-size: clamp(0.875rem, 0.271rem + 1.26vw, 1.75rem); /*28px*/
}

.p-hours__timeHead {
  width: 92px;
  background: #fff7f2;
}

.p-hours__time {
  background: #fff7f2;
  font-weight: 700;
  font-size: clamp(0.75rem, 0.491rem + 0.54vw, 1.125rem); /*18px*/
}

.p-hours__time span {
  writing-mode: vertical-rl;
}

/* ● */
.p-hours__dot {
  display: inline-block;
  width: clamp(0.75rem, 0.405rem + 0.72vw, 1.25rem); /*20px*/
  height: clamp(0.75rem, 0.405rem + 0.72vw, 1.25rem);
  border-radius: 50%;
  background: rgba(1, 181, 19, 0.5);
}

/* ／ */
.p-hours__slash {
  display: inline-block;
  width: clamp(0.875rem, 0.357rem + 1.08vw, 1.625rem); /*26*/
  height: clamp(0.125rem, 0.082rem + 0.09vw, 0.188rem); /*3*/
  background: rgba(1, 181, 19, 0.5);
  transform: rotate(-45deg);
}

/* 注釈 */
.p-hours__notes {
  margin: 10px 0 0;
  padding-left: 1.2em;
  font-size: clamp(0.563rem, 0.174rem + 0.81vw, 1.125rem); /*18*/
  line-height: 1.8;
  color: #444;
  list-style: none;
}

.p-hours__notes a {
  color: #00A2FF;
  text-decoration: underline;
}

/* SP */
@media (max-width: 768px) {
  .p-welcome__badge {
    width: 150%;
    aspect-ratio: 600/330;
    background-image: url(../img/welcome-oval-sp.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: left top;
  }
  .p-welcome__lead {
    display: none;
  }
  .p-welcome__headline {
    display: none;
  }
  .p-welcome__grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .p-welcome__copy {
    padding: clamp(9.688rem, -1.068rem + 47.15vw, 21.563rem) 0px 32px 0px; /*345 0 32 0, 155 0 32,0*/
  }
  .p-welcome__anniv {
    font-size: clamp(0.75rem, 0.071rem + 2.98vw, 1.5rem); /*24 12*/
    text-align: center;
  }
  .p-welcome__annivTag {
    border-radius: clamp(0.375rem, 0.035rem + 1.49vw, 0.75rem); /*12 6*/
    font-size: clamp(0.875rem, 0.083rem + 3.47vw, 1.75rem); /*28 14*/
  }
  .p-welcome__note {
    font-size: clamp(0.469rem, 0.044rem + 1.86vw, 0.938rem); /*15 7.5*/
    padding-right: clamp(3.906rem, 0.368rem + 15.51vw, 7.813rem); /*125 62.5*/
  }
  .p-hours {
    width: 100%;
  }
  .p-hours__label {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
    border-radius: clamp(0.5rem, 0.047rem + 1.99vw, 1rem);
  }
  .p-hours__table thead {
    height: clamp(2.5rem, 0.236rem + 9.93vw, 5rem); /*80 40*/
  }
  .p-hours__table thead th {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
  }
  .p-hours__table tbody {
    height: clamp(6.25rem, 0.589rem + 24.81vw, 12.5rem); /*200 100*/
  }
  .p-hours__time {
    font-size: clamp(0.75rem, 0.071rem + 2.98vw, 1.5rem); /*24 12*/
  }
  .p-hours__dot {
    width: clamp(1.094rem, 0.103rem + 4.34vw, 2.188rem); /*35 17.5*/
    height: clamp(1.094rem, 0.103rem + 4.34vw, 2.188rem); /*35 17.5*/
  }
  .p-hours__slash {
    width: clamp(1.094rem, 0.103rem + 4.34vw, 2.188rem); /*35 17.5*/
    height: clamp(0.188rem, 0.018rem + 0.74vw, 0.375rem);
  }
  .p-hours__notes {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
  }
}
/* Message */
.p-message {
  position: relative;
  padding: 44px 0 52px;
}

.p-message__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: center;
}

.p-message__media img {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 320px;
}

.p-message__people {
  margin-top: 22px;
  opacity: 0.95;
  display: flex;
  justify-content: center;
}

/* Info panels */
.p-info {
  padding: 12px 0 40px;
}

.c-panel {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 16px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 18px;
  box-shadow: var(--shadow);
  margin-bottom: 14px;
}

.c-panel__media img {
  width: 100%;
}

.c-panel--simple {
  grid-template-columns: 1fr;
}

/* =============
News
============= */
/* お知らせ全体 */
.p-news {
  padding: 40px 0;
}

/* ボックス（薄い黄緑＋角丸） */
.p-newsBox {
  position: relative;
  max-width: 980px; /* スクショの横幅感 */
  margin: 0 auto;
  background: #F7F7E5; /* 薄い黄緑 */
  border-radius: 24px;
  padding: 34px 64px 26px 64px; /* 上はラベル分あける */
}

/* 左上のラベル（重ねる） */
.p-newsBox__label {
  position: absolute;
  top: -16px;
  left: 42px;
  margin: 0;
  padding: 8px 22px;
  background: var(--primary); /* くすみオレンジ */
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  border-radius: 10px;
  line-height: 1;
}

/* 既存listをスクショ仕様に寄せる（背景はボックス側に任せる） */
.c-newsList {
  list-style: none;
  margin: 0;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}

/* 行 */
.c-newsList__item {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(145, 128, 105, 0.45); /* 薄い線 */
}

.c-newsList__item:last-child {
  border-bottom: 1px solid rgba(145, 128, 105, 0.45); /* スクショは下にも線がある感じ */
}

/* 日付 */
.c-newsList__date {
  min-width: 70px;
  font-weight: 700;
  color: #4a3a2f;
  letter-spacing: 0.02em;
}

/* タイトル（先頭の「・」を疑似要素で付ける） */
.c-newsList__link {
  position: relative;
  padding-left: 18px;
  color: #4a3a2f;
  font-weight: 500;
  text-decoration: none;
}

.c-newsList__link::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}

/* hover */
.c-newsList__link:hover {
  text-decoration: underline;
}

/* 右側の縦バー（ダミー） */
.p-newsBox__scroll {
  position: absolute;
  right: 20px;
  top: 22px;
  bottom: 22px;
  width: 6px;
  border-radius: 999px;
  background: rgba(145, 128, 105, 0.35);
}

/* つまみっぽい部分（任意：なくてもOK） */
.p-newsBox__scroll::after {
  content: "";
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  width: 6px;
  height: 18px;
  border-radius: 999px;
  background: rgba(145, 128, 105, 0.75);
}

/* SP調整 */
@media (max-width: 768px) {
  .p-newsBox {
    padding: 34px 22px 22px;
    border-radius: 18px;
  }
  .p-newsBox__label {
    left: 18px;
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
  }
  .c-newsList {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
  }
  .p-newsBox__scroll {
    display: none; /* SPは消してもOK */
  }
}
/* =========================
  クリニックの想い
========================= */
.p-thought {
  padding: 60px 20px;
}

.p-thought__inner {
  max-width: 95%;
  margin: 0 auto;
  position: relative;
}

/* 背景（Group63）を敷く */
.p-thought__bg {
  width: 100%;
  aspect-ratio: 1280/870;
  background: url("../img/thought.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%; /* ← ここを調整 */
}

/* 中身を背景の上に重ねる */
.p-thought__content {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 420px 1fr; /* 左：丸写真 / 右：文章 */
  align-items: center;
  -moz-column-gap: 56px;
       column-gap: 56px;
  padding: clamp(24px, 3vw, 48px) clamp(24px, 4vw, 72px);
}

/* 丸写真 */
.p-thought__photo {
  position: absolute;
  inset: 0;
  margin: 0;
  top: clamp(9.375rem, 0.29rem + 18.9vw, 22.5rem); /*360 150*/
  left: clamp(5rem, -0.191rem + 10.8vw, 12.5rem); /*200 80*/
}

.p-thought__photo img {
  width: 40%;
  display: block;
}

/* テキスト */
.p-thought__texts {
  position: absolute;
  width: 36%;
  inset: 0;
  top: 24%;
  left: 50%; /*862*/
}

.p-thought__title {
  font-size: clamp(1.125rem, 0.519rem + 1.26vw, 2rem); /*32*/
  font-weight: 800;
  color: #fff;
}

.p-thought__body {
  line-height: 1.9;
}

.p-thought__body p {
  margin-left: clamp(1.125rem, 0.519rem + 1.26vw, 2rem); /*32*/
  margin-bottom: clamp(0rem, -1.73rem + 3.6vw, 2.5rem); /*40*/
  color: #fff;
  line-height: 1.9;
  font-size: clamp(0.625rem, 0.106rem + 1.08vw, 1.375rem); /*22*/
}

.p-thought__body span {
  font-weight: 800;
}

/* SP */
@media (max-width: 768px) {
  .p-thought {
    padding: 0;
    margin-top: clamp(0rem, -11.321rem + 49.63vw, 12.5rem);
    margin-bottom: clamp(7.5rem, 2.971rem + 19.85vw, 12.5rem);
  }
  .p-thought__inner {
    max-width: 100%;
  }
  .p-thought__bg {
    aspect-ratio: 393/758;
    background: url("../img/thought-sp.png");
    background-size: 100%;
  }
  .p-thought__photo {
    top: clamp(7.25rem, 0.061rem + 31.51vw, 15.188rem); /*243 116*/
    left: clamp(3.313rem, 1.048rem + 9.93vw, 5.813rem); /*93 53*/
    z-index: 1;
  }
  .p-thought__content {
    position: relative; /* SPは重ねず通常フローにして崩れにくく */
    inset: auto;
    grid-template-columns: 1fr;
    row-gap: 18px;
    padding: 18px 14px;
  }
  .p-thought__texts {
    width: 100%;
    top: 8%;
    left: 0%;
  }
  .p-thought__title {
    text-align: center;
    font-size: clamp(1.125rem, 0.333rem + 3.47vw, 2rem);
  }
  .p-thought__body {
    margin: 80% 0 0 0;
    padding: 0% 15%;
  }
  .p-thought__body p {
    font-size: clamp(0.625rem, 0.059rem + 2.48vw, 1.25rem); /*20 10*/
  }
  .p-thought__body p br {
    display: none;
  }
  .p-thought__photo img {
    width: 85%;
  }
}
/* =========================
  Online
========================= */
.p-online__inner {
  max-width: 90%;
  margin: 0 auto;
}

/* 外枠（太い茶色枠） */
.p-online__frame {
  border: 4px solid #B3874A;
  border-radius: 28px;
  padding: 34px 34px 28px;
  background: #fff;
}

/* タイトル（中央＋左右の点） */
.p-online__title {
  margin: 0 0 18px;
  text-align: center;
  font-size: clamp(1.625rem, 1.106rem + 1.08vw, 2.375rem); /*38 26*/
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #222;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}

.p-online__dot {
  width: clamp(0.875rem, 0.442rem + 0.9vw, 1.5rem); /*24 14*/
  height: clamp(0.875rem, 0.442rem + 0.9vw, 1.5rem); /*24 14*/
  border-radius: 50%;
  background: #B3874A;
  display: inline-block;
}

/* 内枠（点線） */
.p-online__box {
  border: 2px dashed #B3874A;
  border-radius: 22px;
  padding: 40px clamp(2.5rem, -0.096rem + 5.4vw, 6.25rem); /*40 100,40 40*/
}

/* 2カラム */
.p-online__content {
  display: grid;
  grid-template-columns: 1fr clamp(11.875rem, 0.195rem + 24.3vw, 28.75rem); /*460 190*/
  gap: clamp(0.625rem, -0.154rem + 1.62vw, 1.75rem); /*28 10*/
  align-items: start;
}

.p-online__text p {
  margin: 0 0 14px;
  line-height: 1.9;
  font-size: clamp(0.688rem, 0.212rem + 0.99vw, 1.375rem); /*22 11*/
  color: #333;
}

.p-online__illust img {
  width: 80%;
  height: auto;
  display: block;
}

/* 注意ブロック */
.p-online__notice {
  margin-top: 14px;
  padding-top: 12px;
}

.p-online__noticeTitle {
  margin: 0 0 6px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: clamp(0.688rem, 0.471rem + 0.45vw, 1rem); /*16 11*/
  color: #222;
}

.p-online__circle {
  width: clamp(0.688rem, 0.212rem + 0.99vw, 1.375rem); /*22 11*/
  height: clamp(0.688rem, 0.212rem + 0.99vw, 1.375rem); /*22 11*/
  border-radius: 50%;
  border: clamp(0.125rem, 0.038rem + 0.18vw, 0.25rem) solid #B3874A; /*4 2*/
  display: inline-block;
}

.p-online__noticeText {
  margin: 0;
  line-height: 1.9;
  font-size: 15px;
  color: #333;
}

/* SP */
@media (max-width: 768px) {
  .p-online__frame {
    padding: 26px 18px 22px;
  }
  .p-online__box {
    padding: 18px 16px;
  }
  .p-online__title {
    font-size: clamp(0.875rem, -0.031rem + 3.97vw, 1.875rem);
  }
  .p-online__dot {
    width: clamp(1rem, 0.66rem + 1.49vw, 1.375rem);
    height: clamp(1rem, 0.66rem + 1.49vw, 1.375rem);
  }
  .p-online__content {
    grid-template-columns: 1fr;
  }
  .p-online__illust {
    order: -1; /* 画像を上にしたい場合 */
    margin: clamp(0.938rem, 0.088rem + 3.72vw, 1.875rem) auto;
  }
  .p-online__illust img {
    width: 100%;
    height: clamp(6.25rem, -0.543rem + 29.78vw, 13.75rem); /*220 100*/
  }
  .p-online__text p {
    font-size: clamp(0.625rem, -0.167rem + 3.47vw, 1.5rem); /*24 10*/
    line-height: 1.5;
  }
  .p-online__text p br {
    display: none;
  }
  .p-online__circle {
    width: clamp(1.125rem, 0.446rem + 2.98vw, 1.875rem); /*30 18*/
    height: clamp(1.125rem, 0.446rem + 2.98vw, 1.875rem); /*30 18*/
    border: clamp(0.188rem, 0.074rem + 0.5vw, 0.313rem) solid #B3874A; /*5 3*/
  }
}
/* =========================
  Call CTA
========================= */
.p-cta-call {
  width: 100%;
  background-color: #01B513; /* 指定色 */
  color: #fff;
  padding: 48px 20px;
  margin: 120px 0;
}

/*丸ボタン対応分*/
.p-cta-call__circle {
  width: 70%;
  margin: clamp(3.906rem, 0.763rem + 6.53vw, 8.438rem) auto;
  border-radius: 183px;
}
@media (max-width: 1100px) {
  .p-cta-call__circle {
    width: 90%;
  }
}
@media (max-width: 768px) {
  .p-cta-call__circle {
    padding: 10px 16px !important;
  }
}

.p-cta-call__inner {
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

/* 上の補足文 */
.p-cta-call__sub {
  margin: 0 0;
  font-size: 14px;
  letter-spacing: 0.1em;
}

.p-cta-call__line {
  position: relative;
  padding: 0 14px;
  font-size: 24px;
}

.p-cta-call__line::before,
.p-cta-call__line::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 28px;
  height: 1.5px;
  background: rgb(255, 255, 255);
}

.p-cta-call__line::before {
  left: -34px;
  transform: rotate(45deg);
}

.p-cta-call__line::after {
  right: -34px;
  transform: rotate(-45deg);
}

/* メインコピー */
.p-cta-call__lead {
  margin: 0;
  font-size: clamp(1.875rem, 1.442rem + 0.9vw, 2.5rem); /*40 30*/
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  line-height: 1;
}

/* 電話番号 */
.p-cta-call__tel {
  margin: 0 0 6px;
  font-size: 80px;
  font-weight: 800;
  line-height: 1;
}

.p-cta-call__tel a {
  color: #fff;
  text-decoration: none;
  font-size: clamp(3.75rem, 2.02rem + 3.6vw, 6.25rem);
  letter-spacing: clamp(0.25rem, -0.096rem + 0.72vw, 0.75rem);
}

.p-cta-call__label {
  display: inline-block;
  padding: 0px 24px;
  font-size: 24px;
  background: #fff;
  color: #01B513;
  border-radius: 999px;
}

/* 注釈 */
.p-cta-call__note {
  margin: 0;
  font-size: 20px;
}

/* SP */
@media (max-width: 768px) {
  .p-cta-call__line {
    font-size: clamp(1.125rem, 0.785rem + 1.49vw, 1.5rem); /*24 18*/
    padding: 0 clamp(0rem, -0.792rem + 3.47vw, 0.875rem); /*0 14.0 0*/
  }
  .p-cta-call__line::before, .p-cta-call__line::after {
    width: clamp(1.125rem, 0.559rem + 2.48vw, 1.75rem); /*28 18*/
  }
  .p-cta-call__circle .p-cta-call__line {
    padding: 0 0;
  }
  .p-cta-call {
    padding: 36px 16px;
  }
  .p-cta-call__lead {
    font-size: clamp(0.875rem, 0.537rem + 1.48vw, 1.25rem); /*20 14*/
  }
  .p-cta-call__lead img {
    width: 28px; /*28 28*/
  }
  .p-cta-call__tel a {
    font-size: clamp(1.875rem, 0.177rem + 7.44vw, 3.75rem); /*60 30*/
  }
  .p-cta-call__tel {
    font-size: 32px;
    letter-spacing: 0.05em;
  }
  .p-cta-call__circle .p-cta-call__tel a {
    font-size: clamp(1.688rem, 1.406rem + 1.23vw, 2rem);
  }
  .p-cta-call__label {
    padding: 0px clamp(0.625rem, 0.059rem + 2.48vw, 1.25rem); /*0 20.0 10*/
    font-size: clamp(1rem, 0.094rem + 3.97vw, 2rem); /*32 16*/
  }
  .p-cta-call__note {
    font-size: clamp(0.75rem, 0.071rem + 2.98vw, 1.5rem); /*24 12*/
  }
}
/* =========================
  Info / Standards
========================= */
.p-info {
  padding: 72px 20px;
  background: #fbfaf7; /* うっすら生成り寄せ */
}

.p-info__inner {
  max-width: 90%;
  margin: 0 auto;
}

/* 上：2カラム情報（ラインで区切る） */
.p-info__dl {
  margin: 0 0 36px;
  border-top: 1px solid #C6A773;
}

.p-info__row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 18px;
  align-items: center;
  padding: 18px 8px;
  border-bottom: 1px solid #C6A773;
}

.p-info__dt {
  margin: 0;
  font-weight: 700;
  font-size: 14px;
  color: #333;
}

.p-info__dd {
  margin: 0;
  font-size: 14px;
  color: #333;
}

/* 下：設置基準 */
.p-info__standards {
  padding-left: 8px;
}

.p-info__title {
  margin: 0 0 14px;
  font-weight: 700;
  font-size: 14px;
  color: #333;
}

/* リスト本体：黒丸 */
.p-info__list {
  margin: 0;
  padding-left: 20px;
  list-style: none;
  color: #333;
  font-size: 13px;
  line-height: 1.9;
  border-bottom: 1px solid #C6A773;
}

.p-info__list > li {
  position: relative;
  padding-left: 18px;
  margin: 8px 0;
}

.p-info__list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.85em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #111;
  transform: translateY(-50%);
}

/* サブリスト：小さい点＋インデント */
.p-info__hasSub {
  margin-top: 10px;
}

.p-info__sub {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
  color: #555;
  font-size: 12px;
  line-height: 1.9;
}

.p-info__sub > li {
  position: relative;
  margin: 6px 0;
}

/* SP */
@media (max-width: 768px) {
  .p-info__list {
    line-height: 1;
    padding-bottom: 36px;
  }
  .p-info__list > li {
    margin: 0;
    line-height: 1.5;
  }
  .p-info__sub {
    margin: 0;
    line-height: 1.5;
  }
  .p-info__sub > li {
    margin: 0;
    line-height: 1.5;
  }
}
/* =========================
  Page Top
========================= */
.p-pagetop {
  width: 100%;
  background: rgba(236, 131, 103, 0.4); /* ベージュ指定 */
  text-align: center;
}

.p-pagetop__link {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 18px 0 16px;
  color: var(--brown);
  font-size: 24px;
  text-decoration: none;
  letter-spacing: 0.08em;
}

.p-pagetop__icon {
  display: inline-block; /* ← transformを効かせるため必須 */
  transform: rotate(90deg); /* 上向き */
  font-size: 30px;
  line-height: 1;
}

/* hover（控えめ） */
.p-pagetop__link:hover {
  opacity: 0.75;
}

/*レスポンシブ*/
@media (max-width: 768px) {
  .p-pagetop {
    margin-bottom: 60px;
  }
}
/* お知らせ：本物スクロール領域 */
.c-newsListWrap {
  /* 6件くらいが見える高さに調整（まずは仮） */
  max-height: 180px;
  overflow-y: auto;
  /* スクロールバーと文字が被らないように */
  padding-right: 30px;
  /* iOSなどでスクロールを滑らかに */
  -webkit-overflow-scrolling: touch;
  /* 対応ブラウザではスクロールバー領域を常に確保 */
  scrollbar-gutter: stable;
}

/* もし以前の「擬似スクロールバー」がCSSで出てるなら消す */
.p-newsBox__scroll {
  display: none;
}

/* =========================
  Guide sections base
========================= */
.p-guideSection {
  position: relative;
  overflow: hidden;
  height: clamp(18.75rem, -0.023rem + 39.01vw, 45.813rem); /*733*/
  margin: clamp(7.5rem, 2.297rem + 10.81vw, 15rem) 0;
}

/* 背景イラスト */
.p-guideSection__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-repeat: no-repeat;
  background-position: right center;
  background-size: cover;
  /* うっすら感が必要なら */
  opacity: 1;
}

/* 写真 */
.p-guideSection__photo {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.p-guideSection__photo img {
  width: clamp(14.063rem, -2.196rem + 33.78vw, 37.5rem); /*600*/
  height: clamp(14.063rem, -2.196rem + 33.78vw, 37.5rem); /*600*/
}

/* 文字（最前面） */
.p-guideSection__body {
  position: relative;
  z-index: 3;
}

/* 見出し */
.p-guideSection__title {
  position: absolute;
  font-size: clamp(1.125rem, 0.345rem + 1.62vw, 2.25rem); /*36 18*/
  font-weight: 800;
  color: #333;
  letter-spacing: 0.06em;
}

.p-guideSection__text {
  position: absolute;
  font-size: clamp(0.625rem, 0.191rem + 0.9vw, 1.25rem); /*20 10*/
  font-weight: 500;
  color: #333;
  letter-spacing: 0.06em;
  width: 42%;
}

/* =============
  特徴（1つ目）
============= */
.p-guideSection__photo1 {
  top: clamp(3.813rem, 1.168rem + 5.5vw, 7.625rem); /*122*/
  left: clamp(27.5rem, 0.056rem + 57.03vw, 67.063rem); /*1073 440*/
}

.p-guideFeatures .p-guideSection__bg {
  background-image: url("../img/features-bg.png");
}

.p-guideSection__title1 {
  top: clamp(1.375rem, -0.706rem + 4.32vw, 4.375rem); /*70 22*/
  left: clamp(4rem, -0.336rem + 9.01vw, 10.25rem); /*164 64*/
}

.p-guideSection__text1 {
  top: clamp(5.313rem, 0.11rem + 10.81vw, 12.813rem); /*205 85*/
  left: clamp(5.313rem, 0.11rem + 10.81vw, 12.813rem); /*205 85*/
}

/* =============
  西三河…（2つ目）
============= */
.p-guideSection__photo2 {
  top: clamp(3.813rem, 1.168rem + 5.5vw, 7.625rem); /*122*/
  left: clamp(1.25rem, -2.869rem + 8.56vw, 7.188rem); /*115  20*/
}

.p-guideClinic .p-guideSection__bg {
  background-image: url("../img/clinic-bg.png");
}

.p-guideSection__title2 {
  top: clamp(2.188rem, -0.631rem + 5.86vw, 6.25rem); /*100 35*/
  left: clamp(21.875rem, -1.971rem + 49.55vw, 56.25rem); /*900 350*/
}

.p-guideSection__text2 {
  top: clamp(6.875rem, 1.239rem + 11.71vw, 15rem); /*240 110*/
  left: clamp(24.063rem, -0.434rem + 50.9vw, 59.375rem); /*950 385*/
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

/* 丸い点（デザイン寄せ） */
.p-guideSection__text2 li {
  position: relative;
  padding-left: 1.4em;
}

.p-guideSection__text2 li::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(0.5rem, 0.153rem + 0.72vw, 1rem); /*16 8*/
  width: clamp(0.5rem, 0.153rem + 0.72vw, 1rem); /*16 8*/
  height: clamp(0.5rem, 0.153rem + 0.72vw, 1rem); /*16 8*/
  border-radius: 50%;
  background: #B3874A;
  transform: translateY(-50%);
}

/* =========================
  特徴 SP
  波背景PNG + 左サークルPNG
========================= */
@media (max-width: 768px) {
  /* セクション共通 */
  .p-guideSection {
    position: relative;
    overflow: visible;
    background: #fff;
    height: clamp(37.5rem, 31.867rem + 24.69vw, 43.75rem); /*700 600*/
    margin: 100px 0px;
  }
  /* 波背景（PNGを貼る） */
  .p-guideSection__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    width: 100vw;
    aspect-ratio: 393/224;
    z-index: 1;
    top: 60px;
    left: 0px;
  }
  /* 1つ目：上の波 */
  .p-guideFeatures .p-guideSection__bg {
    background-image: url(/assets/img/guide-sp-wave1.png);
  }
  /* 2つ目：下の波 */
  .p-guideClinic .p-guideSection__bg {
    background-image: url("/assets/img/guide-sp-wave2.png"); /* ←波PNG(下) */
  }
  /* 写真：丸で中央 */
  .p-guideSection__photo {
    z-index: 1;
    aspect-ratio: 1/1;
    border-radius: 999px;
    overflow: hidden;
    /* ふわっと影 */
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0.12);
    background: #fff;
    width: clamp(10rem, -1.829rem + 51.85vw, 23.125rem); /*370 160*/
    top: 79px; /*79*/
    left: clamp(6rem, 0.593rem + 23.7vw, 12rem); /*192*/
    margin: 0;
    background-color: transparent;
    box-shadow: 0 10px 18px rgba(0, 0, 0, 0);
  }
  .p-guideSection__photo img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
  /* 本文（前面） */
  .p-guideSection__body {
    position: relative;
    z-index: 1;
  }
  /* タイトル：左のサークルPNGを貼る */
  .p-guideSection__title {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #222;
    top: 0px;
    left: 0px;
    padding-left: 50px;
  }
  .p-guideSection__title::before {
    content: "";
    width: 35px;
    height: 35px;
    flex: 0 0 auto;
    position: absolute;
    background: url(/assets/img/guide-sp-sircle.png) no-repeat center/contain;
    z-index: -1;
    top: -20px;
    left: 30px;
  }
  /* 文章 */
  .p-guideSection__text {
    margin: 0;
    color: #333;
    line-height: 2;
    letter-spacing: 0.05em;
    font-size: 14px;
    width: 100%;
    padding: 0 20px;
  }
  .p-guideSection__text p {
    margin: 0 0 12px;
  }
  .p-guideSection__text1, .p-guideSection__text2 {
    top: clamp(18.125rem, 5.564rem + 55.06vw, 32.063rem); /*513 290*/
    left: 0px;
  }
  .p-guideSection__text2 li {
    position: relative;
    padding-left: 1.3em;
    line-height: 2;
    letter-spacing: 0.05em;
    font-size: 14px;
    color: #333;
  }
  .p-guideSection__text2 li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 15.5px;
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: #B3874A;
    transform: translateY(-50%);
  }
  /* 2つのセクションの間の余白（スクショっぽく） */
  .p-guideClinic {
    margin-top: 22px;
  }
}
/* =============
 診療時間
============= */
.p-clinicHours__tableSp__table { /*spは表示せず*/
  display: none;
}

.p-clinicHours {
  position: relative;
  height: clamp(56.25rem, 51.914rem + 9.01vw, 62.5rem); /*900 1000*/
  margin: 0 auto;
  padding: clamp(2.5rem, 1.5rem + 5vw, 5rem) clamp(1.25rem, 0.5rem + 3vw, 3rem);
}

/* ピンクの背景 */
.p-clinicHours::before {
  content: "";
  position: absolute;
  top: clamp(3.75rem, 3.1rem + 1.35vw, 4.688rem); /*60 75*/
  left: 50%;
  transform: translateX(-50%);
  width: 70vw;
  height: clamp(47.5rem, 44.899rem + 5.41vw, 51.25rem); /*820 760*/
  background: #FDF3ED;
  z-index: 1;
  border-radius: 24px;
  box-shadow: 0 6px 4px rgba(0, 0, 0, 0.3);
}

.p-clinicHours__title {
  position: absolute;
  top: 0px; /*-75 -60*/
  left: 50%;
  transform: translateX(-50%);
  font-size: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  font-weight: 700;
  color: #333;
  letter-spacing: 0.06em;
  z-index: 3;
}

/* 診療時間テーブル */
.p-clinicHours__table {
  position: absolute;
  top: clamp(6.25rem, 4.082rem + 4.5vw, 9.375rem); /*100 150*/
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  border-collapse: separate;
  border-spacing: 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  overflow: hidden;
  z-index: 2;
}

.p-clinicHours__table th,
.p-clinicHours__table td {
  padding: clamp(0.75rem, 0.5rem + 1vw, 1.25rem);
  text-align: center;
  font-size: clamp(0.875rem, 0.75rem + 0.5vw, 1.125rem);
  font-weight: 500;
  letter-spacing: 0.05em;
}

/* ヘッダー行（曜日） */
.p-clinicHours__table thead th {
  background: var(--primary);
  color: #fff;
  font-weight: 700;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  width: 10%;
}

.p-clinicHours__table thead th:last-child {
  border-right: none;
}

/* 午前・午後のラベル */
.p-clinicHours__table tbody th {
  background: var(--primary);
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  font-weight: 700;
  width: 80px;
}

/* 時間セル */
.p-clinicHours__table tbody td {
  background: #FFF5F3;
  color: #333;
  border-right: 1px solid #F5DDD9;
  border-bottom: 1px solid #F5DDD9;
}

.p-clinicHours__table tbody td:last-child {
  border-right: none;
}

.p-clinicHours__table tbody tr:last-child td {
  border-bottom: none;
}

/* 休診日 */
.p-clinicHours__table .is-holiday {
  color: #E88E7D;
  font-weight: 700;
  font-size: clamp(1rem, 0.875rem + 0.5vw, 1.25rem);
}

/* 時間表示 */
.p-clinicHours__time {
  display: block;
  line-height: 1.6;
}

.p-clinicHours__timeSimbol {
  writing-mode: vertical-rl;
}

/* 緊急時対応ボックスタイトル */
.p-clinicHours__emergencyTitle {
  position: absolute;
  left: 21%;
  width: clamp(13.125rem, -0.315rem + 27.93vw, 32.5rem); /*210 520*/
  top: clamp(28.125rem, 23.703rem + 9.19vw, 34.5rem); /*552 450*/
  background-color: #CAAB80;
  border-radius: 20px;
  z-index: 4;
  display: flex;
  padding: 3px 24px;
  align-items: center;
}
.p-clinicHours__emergencyTitle img {
  width: clamp(1.938rem, 0.55rem + 2.88vw, 3.938rem); /*31 63*/
  height: clamp(1.313rem, 0.402rem + 1.89vw, 2.625rem); /*42 21*/
}
.p-clinicHours__emergencyTitle span {
  padding-left: clamp(0.313rem, 0.096rem + 0.45vw, 0.625rem); /*5 10*/
  color: #fff;
  font-size: clamp(0.75rem, 0.23rem + 1.08vw, 1.5rem); /*12 24*/
}

/* 緊急時対応ボックス */
.p-clinicHours__emergency {
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  top: clamp(29.688rem, 24.702rem + 10.36vw, 36.875rem); /*590 475*/
  margin: 0 auto;
  background: #FBFBEF;
  border: 2px solid #E5C4A0;
  border-radius: 16px;
  padding: clamp(1.5rem, 1rem + 2vw, 2.5rem);
  position: absolute;
  z-index: 2;
}

.p-clinicHours__emergencyIcon {
  width: clamp(1.5rem, 1.25rem + 1vw, 2rem);
  height: clamp(1.5rem, 1.25rem + 1vw, 2rem);
  display: flex;
  align-items: center;
  justify-content: center;
}

.p-clinicHours__emergencyList {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-clinicHours__emergencyList li {
  position: relative;
  padding-left: 1.5em;
  font-size: clamp(0.875rem, 0.75rem + 0.5vw, 1.125rem);
  color: #333;
  line-height: 1.8;
  letter-spacing: 0.03em;
}
.p-clinicHours__emergencyList li span {
  color: #FF383C;
}

.p-clinicHours__emergencyList li:last-child {
  margin-bottom: 0;
}

.p-clinicHours__emergencyList li::before {
  content: "•";
  position: absolute;
  left: 0.5em;
  color: #B3874A;
  font-weight: 700;
}

/* =========================
  SP
========================= */
@media (max-width: 768px) {
  .p-clinicHours::before {
    width: 90vw;
    top: clamp(3.75rem, 3.1rem + 1.35vw, 4.688rem);
  }
  .p-clinicHours__table {
    display: none;
  }
  .p-clinicHours__tableSp {
    position: relative; /* 追加 */
    background: #fff;
    width: 85%;
    padding: 20px; /* 固定のpadding */
    border-radius: 10px; /* 必要なら */
  }
  .p-clinicHours__tableSp__table {
    position: absolute;
    display: block;
    z-index: 10;
    top: 128px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 10px;
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
    width: 80vw;
    table-layout: fixed; /* セルの幅を均等に固定 */
  }
  .p-clinicHours__tableSp__table thead th:not(.p-clinicHours__tableSp__timeHead) {
    width: 11.4285714286%; /* 残りを7等分（月〜日） */
  }
  .p-clinicHours__tableSp__label {
    display: inline-block;
    margin: 0 0 10px;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--brown);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
  }
  .p-clinicHours__tableSp__tableWrap {
    border: 1px solid #e6d9cc;
    border-radius: clamp(0.875rem, 0.184rem + 1.44vw, 1.875rem); /*30*/
    overflow: hidden;
    background: #fff;
  }
  .p-clinicHours__tableSp__table th,
  .p-clinicHours__tableSp__table td {
    border: 1px solid #e6d9cc;
    padding: clamp(0.25rem, -0.009rem + 0.54vw, 0.625rem) 8px; /*10,8*/
    line-height: 1;
    text-align: center;
  }
  .p-clinicHours__tableSp__table thead th {
    background: var(--primary);
    color: #fff;
    font-weight: 700;
    font-size: clamp(0.875rem, 0.271rem + 1.26vw, 1.75rem); /*28px*/
  }
  .p-clinicHours__tableSp__timeHead {
    width: 125px;
    background: #fff7f2;
  }
  .p-clinicHours__tableSp__time {
    background: var(--primary);
    color: #fff;
    font-weight: 700;
    font-size: clamp(0.75rem, 0.491rem + 0.54vw, 1.125rem); /*18px*/
  }
  .p-clinicHours__tableSp__time span {
    writing-mode: vertical-rl;
  }
  /* ● */
  .p-clinicHours__tableSp__dot {
    display: inline-block;
    width: clamp(0.75rem, 0.405rem + 0.72vw, 1.25rem); /*20px*/
    height: clamp(0.75rem, 0.405rem + 0.72vw, 1.25rem);
    border-radius: 50%;
    background: rgba(1, 181, 19, 0.5);
  }
  /* ／ */
  .p-clinicHours__tableSp__slash {
    display: inline-block;
    width: clamp(0.875rem, 0.357rem + 1.08vw, 1.625rem); /*26*/
    height: clamp(0.125rem, 0.082rem + 0.09vw, 0.188rem); /*3*/
    background: rgba(1, 181, 19, 0.5);
    transform: rotate(-45deg);
  }
  /* 注釈 */
  .p-clinicHours__tableSp__notes {
    margin: 10px 0 0;
    padding-left: 1.2em;
    font-size: clamp(0.563rem, 0.174rem + 0.81vw, 1.125rem); /*18*/
    line-height: 1.8;
    color: #444;
    list-style: none;
  }
  .p-hours__notes a {
    color: #00A2FF;
    text-decoration: underline;
  }
  .p-clinicHours__tableSp {
    width: 100%;
  }
  .p-clinicHours__tableSp__label {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
    border-radius: clamp(0.5rem, 0.047rem + 1.99vw, 1rem);
  }
  .p-clinicHours__tableSp__table thead {
    height: clamp(2.5rem, 0.236rem + 9.93vw, 5rem); /*80 40*/
  }
  .p-clinicHours__tableSp__table thead th {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
  }
  .p-clinicHours__tableSp__table tbody {
    height: clamp(6.25rem, 0.589rem + 24.81vw, 12.5rem); /*200 100*/
  }
  .p-clinicHours__tableSp__time {
    font-size: clamp(0.75rem, 0.071rem + 2.98vw, 1.5rem); /*24 12*/
  }
  .p-clinicHours__tableSp__dot {
    width: clamp(1.094rem, 0.103rem + 4.34vw, 2.188rem); /*35 17.5*/
    height: clamp(1.094rem, 0.103rem + 4.34vw, 2.188rem); /*35 17.5*/
  }
  .p-clinicHours__tableSp__slash {
    width: clamp(1.094rem, 0.103rem + 4.34vw, 2.188rem); /*35 17.5*/
    height: clamp(0.188rem, 0.018rem + 0.74vw, 0.375rem);
  }
  .p-clinicHours__tableSp__notes {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
  }
  .p-clinicHours__emergencyTitle {
    left: 10%;
    top: clamp(19.375rem, 11.489rem + 34.57vw, 28.125rem); /*310 450*/
    width: clamp(13.438rem, 6.059rem + 32.35vw, 21.625rem); /*346 215*/
  }
  .p-clinicHours__emergency {
    width: 80%;
    top: clamp(21.188rem, 12.119rem + 39.75vw, 31.25rem); /*339 500*/
  }
  .p-clinicHours__emergencyTitle span {
    font-size: clamp(0.813rem, 0.077rem + 3.23vw, 1.625rem); /*26 13*/
  }
}
/* =========================
  Visit Area
========================= */
.p-visitArea {
  color: #fff;
}

.p-visitArea__header {
  background: var(--primary); /* 上のオレンジ帯（既存変数があればそれ優先） */
  padding: 18px 20px;
  margin-top: 100px;
}

.p-visitArea__title {
  margin: 0;
  text-align: center;
  font-size: clamp(1.25rem, 0.7rem + 1.6vw, 2.125rem);
  letter-spacing: 0.08em;
  font-weight: 700;
}

.p-visitArea__body {
  padding: 44px 20px 36px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.25rem, 0.2rem + 2.4vw, 2.75rem);
  align-items: start;
}

/* 左カラム（テキスト＋車） */
.p-visitArea__left {
  display: grid;
  gap: 28px;
}

.p-visitArea__text p {
  margin: 0 0 14px;
  line-height: 1.5;
  font-size: clamp(0.875rem, 0.55rem + 0.7vw, 1.125rem);
  letter-spacing: 0.08em;
  color: var(--muted);
}
.p-visitArea__text p span {
  font-weight: 800;
}

.p-visitArea__note {
  margin-top: 18px;
}

.p-visitArea__photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 24px;
}

/* 右：地図 */
.p-visitArea__map img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 22px;
  background: #fff; /* PNGの白フチがある場合の保険 */
}

@media (max-width: 768px) {
  /* 全体を1カラムに */
  .p-visitArea__body {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  /* 左ブロックもグリッド化 */
  .p-visitArea__left {
    display: contents; /* 中身だけを親グリッドに参加させる */
  }
  /* 写真を最上段 */
  .p-visitArea__photo {
    order: 1;
  }
  /* テキストブロックを中で制御 */
  .p-visitArea__text {
    display: contents;
  }
  /* テキスト1つ目 */
  .p-visitArea__text p:nth-of-type(1) {
    order: 2;
    font-size: clamp(0.75rem, 0.187rem + 2.47vw, 1.375rem); /*12 22*/
    margin: 0 auto;
  }
  /* テキスト2つ目 */
  .p-visitArea__text p:nth-of-type(2) {
    order: 3;
    font-size: clamp(0.75rem, 0.187rem + 2.47vw, 1.375rem); /*12 22*/
    margin: 0 auto;
  }
  /* 地図 */
  .p-visitArea__map {
    order: 4;
  }
  /* 注意書き（3つ目のp） */
  .p-visitArea__text p:nth-of-type(3) {
    order: 5;
    font-size: clamp(0.75rem, 0.187rem + 2.47vw, 1.375rem); /*12 22*/
    margin: 0 auto;
  }
}
/* =========================
  健康相談
========================= */
.p-health {
  position: relative;
  padding: clamp(4.219rem, 1.292rem + 6.08vw, 8.438rem) clamp(2.5rem, -1.836rem + 9.01vw, 8.75rem); /*135 280 ,40 140*/
}
.p-health div p {
  padding: 0 clamp(9.375rem, 2.872rem + 13.51vw, 18.75rem); /*300 150*/
}

.p-health:before {
  content: "";
  position: absolute;
  top: 0; /* 下にしたいなら bottom: 0; */
  left: 50%;
  width: 70%;
  height: 2px;
  background: var(--brown);
  transform: translateX(-50%);
}

.p-health:after {
  content: "";
  position: absolute;
  bottom: 0; /* 下にしたいなら bottom: 0; */
  left: 50%;
  width: 70%;
  height: 2px;
  background: var(--brown);
  transform: translateX(-50%);
}

/* タイトルPNG */
.p-health__title {
  margin-bottom: clamp(0.875rem, 0.268rem + 1.26vw, 1.75rem); /*14 28*/
  padding-left: clamp(7.5rem, 2.297rem + 10.81vw, 15rem); /*120 240*/
}
.p-health__title img {
  display: block;
  width: clamp(6.25rem, 1.914rem + 9.01vw, 12.5rem); /* 100 200 */
  height: auto;
}

/* 「お問い合わせ」リンク */
.p-health__link {
  display: inline-block;
  color: #00A2FF;
  font-weight: 700;
  text-decoration: underline;
  letter-spacing: 0.04em;
  font-size: 16px;
}

@media (max-width: 768px) {
  .p-health {
    padding: clamp(1.25rem, -0.44rem + 7.41vw, 3.125rem) clamp(2.5rem, -1.836rem + 9.01vw, 8.75rem);
  }
  .p-health:before {
    width: 80%;
  }
  .p-health:after {
    width: 80%;
  }
  .p-health__title {
    padding: 0 clamp(1.25rem, -0.44rem + 7.41vw, 3.125rem); /*0 50,0 20 */
  }
  .p-health__title img {
    width: clamp(4.375rem, 0.432rem + 17.28vw, 8.75rem); /*140 70*/
  }
  .p-health div p {
    padding: 0 clamp(0rem, -2.816rem + 12.35vw, 3.125rem); /*0 50, 0 0*/
  }
}
/* =========================
  Office
========================= */
.p-office {
  padding: clamp(4.219rem, 1.292rem + 6.08vw, 8.438rem) 0;
  background: #fff;
  position: relative;
}

.p-office:after {
  content: "";
  position: absolute;
  bottom: 0; /* 下にしたいなら bottom: 0; */
  left: 50%;
  width: 70%;
  height: 2px;
  background: var(--brown);
  transform: translateX(-50%);
}

.p-office__inner {
  width: min(980px, 92%);
  margin: 0 auto;
}

/* タイトルPNG */
.p-office__title {
  margin-bottom: clamp(0.875rem, 0.268rem + 1.26vw, 1.75rem); /*14 28*/
  padding-left: clamp(10.625rem, 1.087rem + 19.82vw, 24.375rem); /*170 390*/
}
.p-office__title img {
  display: block;
  width: clamp(7.5rem, 2.297rem + 10.81vw, 15rem); /* 120 240 */
  height: auto;
}

/* 写真 */
.p-office__photo {
  margin: 0 auto 18px;
  width: min(680px, 100%);
}

.p-office__photo img {
  width: 100%;
  height: auto;
  border-radius: 20px;
  display: block;
}
@media (max-width: 1100px) {
  .p-office__photo img {
    width: clamp(26.563rem, -1.146rem + 57.58vw, 38.438rem); /*425,615*/
    margin: 0% auto;
  }
}

/* 情報（dl） */
.p-office__dl {
  margin: 0 auto 18px;
  width: min(820px, 100%);
  border-top: 1px solid rgba(179, 135, 74, 0.45);
}

.p-office__row {
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(179, 135, 74, 0.45);
}

.p-office__dt,
.p-office__dd {
  margin: 0;
}

.p-office__tag {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 96px;
  padding: 6px 18px;
  border-radius: 999px;
  background: var(--brown);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: 14px;
}

.p-office__dd {
  color: #222;
  font-size: 16px;
  letter-spacing: 0.06em;
  line-height: 1.7;
}

/* Map */
.p-office__map {
  width: min(820px, 100%);
  margin: 0 auto;
}

.p-office__mapLink {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin: 8px 0 10px;
  color: var(--brown);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-decoration: none;
}

/* ▼マーク（簡易） */
.p-office__mapIcon {
  width: 0;
  height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-top: 10px solid var(--primary);
  transform: translateY(1px);
}

.p-office__mapFrame {
  overflow: hidden;
  border-radius: 16px;
  background: #f5f5f5;
  aspect-ratio: 16/9;
}

.p-office__mapFrame iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

@media (max-width: 768px) {
  .p-office:after {
    width: 80%;
  }
  .p-office__title {
    padding: 0 30px;
  }
  .p-office {
    padding: clamp(1.25rem, -0.44rem + 7.41vw, 3.125rem) clamp(2.5rem, -1.836rem + 9.01vw, 8.75rem);
  }
  .p-office:before {
    width: 80%;
  }
  .p-office:after {
    width: 80%;
  }
  .p-office__title {
    padding: 0 clamp(1.25rem, -0.44rem + 7.41vw, 3.125rem); /*0 50,0 20 */
  }
  .p-office__title img {
    width: clamp(5.156rem, 0.509rem + 20.37vw, 10.313rem); /*165 82.5*/
  }
  .p-office div p {
    padding: 0 clamp(0rem, -2.816rem + 12.35vw, 3.125rem); /*0 50, 0 0*/
  }
  .p-office__row {
    grid-template-columns: 1fr; /* 1列に */
  }
  .p-office__tag {
    padding: 0;
  }
}
/* =========================
  Home-care page
========================= */
.p-homecareIntro {
  margin: clamp(7.5rem, 2.297rem + 10.81vw, 15rem) 0;
}

.p-homecareIntro__inner {
  width: min(980px, 92%);
  margin: 0 auto;
}

.p-homecareIntro__title {
  margin: 0 0 16px;
  font-size: clamp(1.125rem, 0.345rem + 1.62vw, 2.25rem);
  letter-spacing: 0.06em;
  font-weight: 800;
  color: #333;
}

.p-homecareIntro__text {
  padding-left: 4vw;
}
.p-homecareIntro__text p {
  font-size: clamp(0.625rem, 0.191rem + 0.9vw, 1.25rem);
  margin: 0 0 12px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #333;
}

/* SP */
@media (max-width: 768px) {
  .p-homecareIntro__title {
    font-size: 18px;
  }
  .p-homecareIntro__text p {
    font-size: 14px;
  }
}
/* =========================
  Home-care Worries
========================= */
.p-homecareWorries {
  padding: clamp(3rem, 2rem + 3vw, 5rem) 0;
  background: #F7F7E5; /* ページ背景 */
}

/* 白いカード */
.p-homecareWorries__inner {
  background: #fff;
  border-radius: 32px;
  padding: clamp(2rem, 1.5rem + 2vw, 3.5rem);
}

/* タイトル */
.p-homecareWorries__title {
  text-align: center;
  font-size: clamp(1.125rem, 0.345rem + 1.62vw, 2.25rem);
  letter-spacing: 0.06em;
  font-weight: 800;
  color: #333;
  margin-bottom: clamp(2rem, 1.5rem + 2vw, 3rem);
}

/* リスト */
.p-homecareWorries__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1rem, 0.5rem + 2vw, 2rem);
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 丸＋文字のラッパー */
.p-homecareWorries__item {
  position: relative;
  text-align: center;
}

/* 丸PNG */
.p-homecareWorries__img {
  width: 100%;
  max-width: 220px;
  margin: 0 auto;
  display: block;
}

/* 丸の中のテキスト */
.p-homecareWorries__text {
  position: absolute;
  top: 115px;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  font-size: clamp(0.625rem, 0.191rem + 0.9vw, 1.25rem);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #333;
}
@media (max-width: 1100px) {
  .p-homecareWorries__text {
    top: clamp(5rem, -0.104rem + 10.61vw, 7.188rem);
  }
}

/*SP*/
@media (max-width: 768px) {
  .p-homecareWorries__title {
    font-size: 18px;
  }
  .p-homecareWorries__list {
    grid-template-columns: repeat(2, 1fr);
  }
  .p-homecareWorries__text {
    top: clamp(7.5rem, 4.375rem + 9.09vw, 8.75rem); /*120 140*/
    font-size: clamp(0.563rem, 0.281rem + 1.23vw, 0.875rem); /*9 14*/
  }
}
@media (max-width: 768px) and (max-width: 550px) {
  .p-homecareWorries__text {
    top: clamp(4.375rem, -1.791rem + 27.03vw, 7.5rem); /*70 120*/
  }
}
/* =========================
  Homecare Target
========================= */
.p-homecareTarget {
  margin-top: clamp(7.5rem, 2.297rem + 10.81vw, 15rem);
  background: #fff;
}

.p-homecareTarget__inner {
  position: relative;
  border: 4px solid #EC8367;
  border-radius: 28px;
  padding: clamp(3rem, 2rem + 3vw, 4.5rem) clamp(2rem, 1.5rem + 3vw, 4rem);
}

/* タイトル（枠に乗る） */
.p-homecareTarget__title {
  position: absolute;
  top: -76px; /*-70 -76*/
  left: 50%;
  transform: translateX(-50%);
  background: #EC8367;
  color: #fff;
  padding: 0.6em 1.8em;
  border-radius: 10px;
  font-size: clamp(1rem, 0.8rem + 0.6vw, 1.25rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* 説明文 */
.p-homecareTarget__lead {
  margin-bottom: clamp(1.8rem, 1.2rem + 2vw, 2.8rem);
  font-size: clamp(0.9rem, 0.75rem + 0.4vw, 1rem);
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #333;
}

/* リスト（2カラム） */
.p-homecareTarget__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2em 2em;
  color: #333;
}

/* 各項目 */
.p-homecareTarget__list li {
  position: relative;
  padding-left: 2.2em;
  font-size: clamp(0.9rem, 0.75rem + 0.4vw, 1rem);
  line-height: 1.6;
  letter-spacing: 0.04em;
}

/* チェック枠 */
.p-homecareTarget__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  width: 1.1em;
  height: 1.1em;
  border: 2px solid #333;
  border-radius: 3px;
}

/* チェックマーク */
.p-homecareTarget__list li::after {
  content: "";
  position: absolute;
  left: 0.35em;
  top: 0.55em;
  width: 0.45em;
  height: 0.25em;
  border-left: 2px solid #333;
  border-bottom: 2px solid #333;
  transform: rotate(-45deg);
}

/* SP */
@media (max-width: 1100px) {
  .p-homecareTarget__title {
    top: -70px;
  }
}
@media (max-width: 768px) {
  .p-homecareTarget__list {
    grid-template-columns: 1fr;
  }
  .p-homecareTarget__title {
    font-size: 18px;
  }
}
/* =========================
  Homecare Medical (診療・検査・処置)
========================= */
.p-homecareMedical {
  padding: clamp(3rem, 2rem + 4vw, 5.5rem) 0;
  background: #fff;
  width: 100%;
}

.p-homecareMedical__header {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 20px 28px;
  text-align: center;
}

.p-homecareMedical__title {
  background: #BD9661;
  color: #fff;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 14px 18px;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.p-homecareMedical__lead {
  margin: 50px 0;
  font-size: clamp(0.9rem, 0.78rem + 0.4vw, 1rem);
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #222;
}

.p-homecareMedical__inner {
  position: relative;
  padding: 100px 20px;
  display: grid;
  gap: clamp(1.6rem, 1.1rem + 2vw, 2.4rem);
}

.p-homecareMedical__inner:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--brown);
  transform: translateX(-50%);
}

.p-homecareMedical__inner:before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--brown);
  transform: translateX(-50%);
}

/* ブロック全体を花アイコン分だけ右に寄せたい */
.p-homecareMedical__block {
  padding-left: 60px;
}

/* 共通ブロック */
.p-homecareMedical__blockHead {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.p-homecareMedical__flower {
  width: 60px;
  height: 60px;
  flex: 0 0 auto;
}

.p-homecareMedical__blockTitle {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #333;
}

/* ブロック全体を花アイコン分だけ右に寄せたい */
.p-homecareMedical__tableWrap {
  padding-left: 60px;
}

/* パネル背景 */
.p-homecareMedical__table {
  font-size: 28px;
}
.p-homecareMedical__table th {
  font-weight: 100;
}

.p-homecareMedical__panel {
  background: #FDF3ED;
  border-radius: 14px;
  padding: clamp(1rem, 0.8rem + 1vw, 1.4rem);
  margin-left: 60px;
}

/* 01: 診療体制（番号付き） */
.p-homecareMedical__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.p-homecareMedical__list li {
  position: relative;
  padding-left: 1.6em;
  line-height: 1.8;
  color: #222;
}

.p-homecareMedical__list li::before {
  content: "◎";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--brown);
  font-weight: 700;
}

/* 02: 検査（箇条書き） */
.p-homecareMedical__chips {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  font-size: clamp(0.9rem, 0.78rem + 0.4vw, 1rem);
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: #222;
}

.p-homecareMedical__chips li {
  position: relative;
  padding-left: 30px;
}

.p-homecareMedical__chips li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #B3874A;
  transform: translateY(-50%);
}

/* 03: 表 */
/* 処置（一例）：交互背景 */
.p-homecareMedical__table {
  width: 100%; /* ← 1020px固定をやめる */
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border-radius: 12px;
  margin-left: 0; /* ← 60pxをやめる（ズレ＆はみ出し原因） */
}

.p-homecareMedical__table thead th {
  background: #E88E7D; /* ヘッダーのピンク帯（必要に応じて） */
  color: #fff;
  padding: 10px 12px;
  border-right: 2px solid #fff;
}

.p-homecareMedical__table tbody tr th {
  border-right: 2px solid #fff;
  position: relative;
}

.p-homecareMedical__ruby {
  position: absolute;
  display: block;
  font-size: 14px;
  font-weight: 500;
  left: 76px;
}
@media (max-width: 1150px) {
  .p-homecareMedical__ruby {
    left: clamp(1.25rem, -5.715rem + 14.47vw, 4.688rem);
  }
}

.p-homecareMedical__ruby1 {
  top: 31px;
}

.p-homecareMedical__ruby2 {
  top: 55px;
}

.p-homecareMedical__table tbody tr:nth-child(odd) {
  background: #F0F0CA; /* うす黄 */
}

.p-homecareMedical__table tbody tr:nth-child(even) {
  background: #FBFBEF; /* さらに薄い黄/白寄り */
}

.p-homecareMedical__table td,
.p-homecareMedical__table th {
  padding: 12px 14px;
  border-bottom: 2px solid #fff;
  color: #333;
}

.p-homecareMedical__table td ul li {
  list-style: none;
  position: relative;
}

.p-homecareMedical__table td ul li::before {
  content: "";
  position: absolute;
  left: -30px;
  top: 30px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #B3874A;
  transform: translateY(-50%);
}

/* SP */
@media (max-width: 768px) {
  .p-homecareMedical__block {
    padding-left: 0;
  }
  .p-homecareMedical__tableWrap {
    padding-left: 0;
  }
  .p-homecareMedical__header {
    text-align: left;
    padding: 0 16px 22px;
  }
  .p-homecareMedical__blockHead {
    gap: 6px;
  }
  .p-homecareMedical__flower {
    width: 40px;
    height: 40px;
  }
  .p-homecareMedical__table {
    font-size: clamp(0.938rem, 0.768rem + 0.74vw, 1.125rem);
  }
  .p-homecareMedical__table thead th {
    padding: 10px 10px;
  }
  .p-homecareMedical__table tbody th,
  .p-homecareMedical__table tbody td {
    padding: 12px 12px;
  }
  .p-homecareMedical__table td ul li::before {
    left: -22px;
    top: 15px;
    width: 14px;
    height: 14px;
  }
}
/* =========================
  共通
========================= */
.p-flowSteps,
.p-flowPrepare,
.p-flowCost {
  padding: clamp(2.5rem, 2rem + 2vw, 4rem) 0;
}
.p-flowSteps .p-flow__heading,
.p-flowPrepare .p-flow__heading,
.p-flowCost .p-flow__heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 30px;
}
.p-flowSteps .p-flow__icon,
.p-flowPrepare .p-flow__icon,
.p-flowCost .p-flow__icon {
  width: 60px;
  height: 60px;
  flex: 0 0 auto;
}
.p-flowSteps .p-flow__blockHeadTitle,
.p-flowPrepare .p-flow__blockHeadTitle,
.p-flowCost .p-flow__blockHeadTitle {
  margin: 0;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #333;
}

/* =========================
  Flow Steps
========================= */
.p-flowSteps__listBlock {
  padding: 50px 0;
  border-radius: 30px;
  background: #F7F7E5; /* homecare系に合わせた薄い背景 */
}

.p-flowSteps__list {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 80px 60px;
  display: grid;
  gap: 28px;
  width: 100%;
  justify-content: center;
  z-index: 1;
}

.p-flowSteps__list:before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 95%;
  height: 2px;
  background: var(--brown);
  transform: translateX(-50%);
}

.p-flowSteps__list:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 95%;
  height: 2px;
  background: var(--brown);
  transform: translateX(-50%);
}

.p-flowSteps__item {
  position: relative;
  background: #fff;
  border-radius: 14px;
  display: grid;
  grid-template-columns: clamp(18.75rem, 6.086rem + 26.32vw, 25rem) 1fr;
  align-items: center;
  box-shadow: 1px 2px 6px rgba(0, 0, 0, 0.5);
}

.p-flowSteps__arrow {
  position: absolute;
  left: clamp(7.313rem, 1.487rem + 12.11vw, 10.188rem);
  bottom: -40px;
  z-index: 1;
}

.p-flowSteps__media img {
  width: 100%;
  height: 100%;
  padding: 30px;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.p-flowSteps__body {
  padding: 16px 18px;
}

.p-flowSteps__num {
  margin: 0 0 6px;
  font-weight: 800;
  color: #965700;
  font-size: 50px;
  font-weight: 200;
}

.p-flowSteps__title {
  margin: 0 0 8px;
  font-size: 26px;
  letter-spacing: 0.05em;
  color: #965700;
  font-weight: 200;
  border-bottom: dashed 1px #965700;
}

.p-flowSteps__text {
  margin: 0;
  color: #333;
  line-height: 1.9;
  letter-spacing: 0.04em;
  font-size: 15px;
}
.p-flowSteps__text a {
  color: #00A2FF;
}

@media (max-width: 768px) {
  .p-flowSteps__item {
    grid-template-columns: 1fr;
    grid-template-areas: "title" "media" "text";
    padding: 20px;
  }
  /* それぞれを grid-area に割り当て */
  .p-flowSteps__media {
    grid-area: media;
  }
  .p-flowSteps__media img {
    padding: clamp(0rem, -1.694rem + 7.43vw, 1.875rem);
  }
  .p-flowSteps__body {
    grid-area: body;
  } /* body自体は使わないならOK */
  .p-flowSteps__title {
    grid-area: title;
    padding-left: 20px;
  }
  .p-flowSteps__text {
    grid-area: text;
  }
  /* bodyの中身（title/text）は grid-item にする必要があるので */
  .p-flowSteps__body {
    display: contents;
  }
  .p-flowSteps__arrow {
    left: clamp(4.688rem, -6.888rem + 50.74vw, 17.5rem);
  }
}
/* =========================
  Prepare
========================= */
.p-flowPrepare__heading {
  margin: 0 0 18px;
  font-size: clamp(1.1rem, 0.7rem + 1vw, 1.5rem);
  letter-spacing: 0.06em;
  font-weight: 800;
  color: #333;
  display: flex;
  align-items: center;
  gap: 10px;
}

.p-flowPrepare__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.p-flowPrepare__card {
  background: #FDF3ED;
  border-radius: 14px;
  padding: 16px 16px 14px;
}

.p-flowPrepare__title {
  margin: 0 0 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #333;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-size: 22px;
}

.p-flowPrepare__no {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid #BD9661;
  background: #fff;
  color: #BD9661;
  display: grid;
  place-items: center;
  align-content: center;
}

.p-flowPrepare__icon {
  height: 120px;
  margin: 0 auto;
}

.p-flowPrepare__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  color: #333;
  font-size: 17px;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.p-flowPrepare__list p {
  margin: 0;
}

.p-flowPrepare__list li {
  position: relative;
  padding-left: 1.2em;
}

.p-flowPrepare__list li::before {
  content: "";
  position: absolute;
  left: 0px;
  top: 17px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #B3874A;
  transform: translateY(-50%);
}

.p-flowPrepare__note {
  font-size: 17px;
  color: #666;
  line-height: 1.6;
}

@media (max-width: 900px) {
  .p-flowPrepare__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 520px) {
  .p-flowPrepare__grid {
    grid-template-columns: 1fr;
  }
}
/* =========================
  Flow Cost（費用について）
========================= */
.p-flowCost {
  padding: clamp(3rem, 2rem + 3vw, 5rem) 0;
  color: #333;
  --accent: #EC8367;
  --line: #C8A36A;
  --ink: #333;
  --soft: #F7F7E5;
  --border: #E5C4A8;
}

/* 見出し */
.p-flow__heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 32px;
}

.p-flow__icon {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
}

.p-flow__blockHeadTitle {
  margin: 0;
  font-size: clamp(1.4rem, 1.05rem + 1.2vw, 2rem);
  letter-spacing: 0.06em;
  font-weight: 800;
  color: var(--ink);
}

/* ブロック共通（左の縦棒） */
.p-flowCost__block {
  padding: 0 0 42px;
}

.p-flowCost__blockTitle {
  margin: 0 0 18px;
  padding-left: 16px;
  position: relative;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #333;
}

.p-flowCost__blockTitle::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2em;
  width: 4px;
  height: 1.2em;
  border-radius: 2px;
  background: var(--line);
}

/* 表 */
.p-flowCost__tableWrap {
  border-radius: 18px;
  overflow: hidden;
  border: 3px solid var(--border);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.p-flowCost__table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  background: #fff;
}

.p-flowCost__table thead th {
  background: var(--accent);
  color: #fff;
  padding: 16px 20px;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.06em;
  font-size: 20px;
  border-right: 2px solid rgba(255, 255, 255, 0.3);
}

.p-flowCost__table thead th:last-child {
  border-right: none;
}

.p-flowCost__table tbody th,
.p-flowCost__table tbody td {
  padding: 18px 20px;
  border-top: 1px solid #D7BD9C;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.04em;
  font-size: 20px;
  background-color: #FBFBEF;
  border-right: 1px solid #D7BD9C;
  position: relative;
}

.p-flowCost__noteMark {
  position: absolute;
  top: 6px;
  color: #1D7BFF;
  font-weight: 900;
  margin-left: 2px;
  font-size: 0.9em;
}

.p-flowCost__noteMark1 {
  right: clamp(2.5rem, -7.632rem + 21.05vw, 7.5rem);
}

.p-flowCost__noteMark2 {
  right: clamp(5.125rem, -18.684rem + 49.47vw, 16.875rem);
}

.p-flowCost__noteMark3 {
  right: clamp(1.688rem, -22.122rem + 49.47vw, 13.438rem);
}

/* 表下 注記 */
.p-flowCost__notes {
  list-style: none;
  margin: 16px 0 0 50px;
  padding: 0;
  display: grid;
  gap: 8px;
  font-size: 18px;
  line-height: 1.9;
  color: #555;
}

.p-flowCost__notes li {
  position: relative;
  padding-left: 1.4em;
}

.p-flowCost__notes li::before {
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
  color: #333;
  font-weight: 700;
}

/* インフォボックス */
.p-flowCost__info {
  margin: 32px 0 0 50px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  background: #F0F0CA;
  border-radius: 12px;
  position: relative;
}

.p-flowCost__infoIcon {
  position: absolute;
  top: -25px;
  left: -25px;
  width: 50px;
  height: 50px;
}

.p-flowCost__infoText {
  margin: 4px 0 0;
  font-size: 18px;
  line-height: 1.9;
  color: #555;
}

.p-flowCost__link {
  color: #1D7BFF;
  font-weight: 700;
  text-decoration: underline;
}

/* 横長カプセル（ラベル＋本文） */
.p-flowCost__pill {
  display: grid;
  grid-template-columns: 360px 1fr;
  border-radius: 18px;
  overflow: hidden;
  border: 3px solid var(--border);
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.p-flowCost__pillLabel {
  background: var(--accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 16px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-align: center;
  font-size: 20px;
}

.p-flowCost__pillBody {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 20px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-align: center;
  background: #FFFDF9;
  font-size: 20px;
  position: relative;
}

/* 小さな注記 */
.p-flowCost__smallNote {
  margin: 12px 0 0;
  font-size: 18px;
  letter-spacing: 0.04em;
  color: #555;
}

/* 助成制度カード */
.p-flowCost__subsidy {
  background: #F0F0CA;
  border-radius: 18px;
  padding: 24px 70px;
}

.p-flowCost__subsidyText {
  margin: 0 0 16px;
  font-size: 20px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #333;
}

.p-flowCost__subsidyList {
  margin: 0 clamp(0rem, -22.796rem + 47.37vw, 11.25rem) 16px;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 12px;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 24px;
  justify-content: center;
}

.p-flowCost__subsidyList li {
  position: relative;
  padding-left: 1.6em;
  font-weight: 500;
  font-size: 20px;
  color: #333;
}

.p-flowCost__subsidyList li::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 18px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #B3874A;
  transform: translateY(-50%);
}

/* 費用の一例バー */
.p-flowCost__example {
  border-radius: 18px;
  overflow: hidden;
  border: 3px solid var(--border);
  display: grid;
  grid-template-columns: clamp(23.438rem, 4.441rem + 39.47vw, 32.813rem) 1fr;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.p-flowCost__exampleLeft {
  background: var(--accent);
  color: #fff;
  padding: 20px 20px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.7;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 20px;
}

.p-flowCost__exampleRight {
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-weight: 500;
  background: #FFFDF9;
  font-size: 20px;
}

.p-flowCost__exampleRight span {
  color: #1D7BFF;
}

.p-flowCost__sum {
  color: #1D7BFF;
}

/* レスポンシブ */
@media (max-width: 768px) {
  .p-flowCost__table {
    min-width: 300px;
  }
  .p-flowCost__tableWrap {
    overflow-x: auto;
    border: none;
  }
  .p-flowCost__pill {
    grid-template-columns: 1fr;
  }
  .p-flowCost__pillLabel {
    padding: 14px 16px;
  }
  .p-flowCost__example {
    grid-template-columns: 1fr;
  }
  .p-flowCost__subsidyList {
    flex-direction: column;
    align-items: flex-start;
  }
  .p-flowCost__notes {
    margin: 0;
  }
  .p-flowCost__info {
    margin: 32px 0 0 24px;
  }
  .p-flowCost__pillBody {
    padding: 18px 0;
  }
}
@media (max-width: 768px) {
  .p-flowCost__table thead {
    display: none;
  }
  .p-flowCost__table tbody tr {
    display: block;
    background: #FBFBEF;
    border: 3px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    margin-bottom: 14px;
  }
  .p-flowCost__table tbody th[scope=row] {
    display: block;
    background: var(--accent);
    color: #fff;
    padding: 14px 16px;
    text-align: left;
    font-size: 18px;
    font-weight: 700;
    border: none;
  }
  /* 左側に補足ラベルを追加 */
  .p-flowCost__table tbody th[scope=row]::before {
    content: attr(data-label);
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
  .p-flowCost__table tbody td {
    display: block;
    padding: 14px 16px;
    text-align: left;
    border: none;
    background: transparent;
  }
  .p-flowCost__table tbody td + td {
    border-top: 1px solid #D7BD9C;
  }
  .p-flowCost__table tbody td::before {
    content: attr(data-label);
    display: block;
    font-size: 14px;
    color: #555;
    margin-bottom: 6px;
  }
  .p-flowCost__noteMark {
    position: static;
    margin-left: 6px;
  }
}
@media (max-width: 480px) {
  .p-flowCost__block {
    padding: 0 0 32px;
  }
  .p-flowCost__blockTitle {
    font-size: 16px;
  }
  .p-flowCost__info {
    padding: 14px 16px;
  }
  .p-flowCost__subsidy {
    padding: 18px 18px;
  }
}
/* =========================
  FAQ（よくある質問）
========================= */
.p-faq {
  padding: clamp(2.5rem, 2rem + 2vw, 4rem) 0;
  --accent: #EC8367;
  --line: #C8A36A;
  --soft: #F7F7E5;
  --ink: #333;
  --link: #1D7BFF;
}

/* カテゴリ見出し（左の縦棒） */
.p-faq__group {
  margin-top: 150px;
}

.p-faq__groupTitle {
  margin-bottom: 28px;
  font-size: 28px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #333;
}

/* リスト */
.p-faq__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

/* 1件（枠） */
.p-faq__item {
  border-radius: 18px;
  overflow: hidden;
  border: 2px solid rgba(236, 131, 103, 0.35);
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  z-index: 1;
}

/* 質問ボタン */
.p-faq__q {
  width: 100%;
  border: 0;
  background: var(--accent);
  color: #fff;
  display: grid;
  grid-template-columns: 54px 1fr 46px;
  align-items: center;
  gap: 10px;
  padding: 16px 16px;
  cursor: pointer;
  text-align: left;
}

.p-faq__qIcon {
  width: 50px;
  height: 50px;
  border-radius: 990px;
  background: rgb(255, 255, 255);
  display: grid;
  place-items: center;
  font-weight: 500;
  color: #EC8367;
  font-size: 32px;
}

.p-faq__qText {
  font-size: 28px;
  line-height: 1.7;
  letter-spacing: 0.04em;
  font-weight: 500;
}

/* ＋/－（疑似で描画） */
.p-faq__toggle {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  position: relative;
  justify-self: end;
}

.p-faq__toggle::before,
.p-faq__toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 28px;
  height: 3px;
  background: #fff;
  transform: translate(-50%, -50%);
}

.p-faq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* 開いてるときは「－」 */
.p-faq__item.is-open .p-faq__toggle::after {
  opacity: 0;
}

/* 回答 */
.p-faq__a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.28s ease;
  background: #FFFDF9;
}

.p-faq__aInner {
  padding: 16px 80px 18px;
  color: #444;
  line-height: 1.9;
  letter-spacing: 0.04em;
  font-size: 18px;
  border-top: 2px solid rgba(236, 131, 103, 0.25);
}

.p-faq__aInner a {
  color: var(--link);
  font-weight: 700;
  text-decoration: underline;
}

/* フォーカス見やすく */
.p-faq__q:focus-visible {
  outline: 3px solid rgba(236, 131, 103, 0.45);
  outline-offset: 3px;
}

/* SP */
@media (max-width: 520px) {
  .p-faq__q {
    grid-template-columns: 46px 1fr 40px;
    padding: 14px 14px;
  }
  .p-faq__qText {
    font-size: 15px;
  }
}
/* ===== FAQ内：訪問エリア（地図ブロック） ===== */
.p-faqArea__lead {
  margin: 0 0 18px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #444;
}

/* 2カラム */
.p-faqArea__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1rem, 0.4rem + 1.6vw, 2rem);
  align-items: start;
  align-items: center;
}

/* 左：テキスト＋車 */
.p-faqArea__left {
  display: grid;
  gap: 18px;
}

.p-faqArea__text p {
  line-height: 1.9;
  letter-spacing: 0.04em;
  color: #333;
  margin: 0;
}

/* 「全地域往診可能」行（赤い三角っぽいアクセント） */
.p-faqArea__okTitle {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 500;
}

.p-faqArea__okMark {
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 14px solid var(--accent); /* #EC8367 */
  transform: translateY(2px);
}

.p-faqArea__okList {
  margin-bottom: 70px !important;
}

/* 太字の市町村 */
.p-faqArea__okList span {
  font-weight: 800;
}

.p-faqArea__okListAccent {
  color: var(--accent);
}

/* 注意書き（※を赤く） */
.p-faqArea__ngNote {
  margin-top: 8px;
}

.p-faqArea__ngNote::first-letter {
  color: var(--accent);
  font-weight: 800;
}

/* 太字の市町村 */
.p-faqArea__ngNote span {
  font-weight: 800;
}

/* 車画像 */
.p-faqArea__photo img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 22px;
}

/* 地図（枠＋角丸） */
.p-faqArea__map {
  margin: 0;
  overflow: hidden;
  background: #fff;
}

.p-faqArea__map img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===== FAQの回答内の余白をSPで最適化 ===== */
@media (max-width: 768px) {
  .p-faq__aInner {
    padding: 16px 16px 18px; /* ← 80pxをやめる */
  }
  .p-faqArea__grid {
    grid-template-columns: 1fr;
  }
  .p-faqArea__map {
    order: -1; /* SPは地図を上にしたい場合。不要なら消してOK */
  }
}
/* =========================
  Medical（医療関係者の方へ）
========================= */
.p-pageHeader__bg--medical {
  /* 後でPNGを差し替える想定 */
  background: #F7F7E5;
  /* 例：PNGで作るなら
  background: url(/assets/img/pageheader-medical.png) center/cover no-repeat;
  */
}

/* セクション共通 */
.p-medicalIntro,
.p-medicalMiddle,
.p-medicalMerit,
.p-medicalRef {
  --accent: #EC8367;
  --soft: #F7F7E5;
  --ink: #333;
  --line: #C6A773;
  --link: #1D7BFF;
  color: var(--ink);
}

/* -------------------------
  Intro
------------------------- */
.p-medicalIntro {
  padding: clamp(2.8rem, 2rem + 2vw, 4.2rem) 0;
}

.p-medicalIntro__title {
  margin: 0 0 18px;
  text-align: center;
  font-size: clamp(1.25rem, 0.731rem + 1.08vw, 2rem);
  letter-spacing: 0.06em;
  font-weight: 700;
  position: relative;
}

/* 丸点グラデーション */
.p-medicalIntro__title::before,
.p-medicalIntro__title::after {
  content: "";
  display: inline-block;
  width: 96px; /* 丸点の並び幅 */
  height: 10px; /* 丸の直径に合わせる */
  vertical-align: middle;
  margin: 0 clamp(0rem, -0.779rem + 1.62vw, 1.125rem);
  background-repeat: repeat-x;
  background-size: 14px 10px; /* 丸の間隔 */
  background-image: radial-gradient(circle, rgba(236, 131, 103, 0.9) 0%, rgba(236, 131, 103, 0.45) 40%, rgba(236, 131, 103, 0.15) 55%, transparent 56%);
}

.p-medicalIntro__titleBr {
  display: none;
}

/* うす黄の大枠（添付の囲み） */
.p-medicalCard {
  background: var(--paper);
  border: 1.5px solid var(--border);
  border-radius: 34px;
  padding: clamp(22px, 2.4vw, 34px);
}

/* 2カラム */
.p-medicalCard__grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: clamp(18px, 2.5vw, 34px);
  align-items: start;
}

/* 下段は左右反転 */
.p-medicalCard__grid--reverse {
  grid-template-columns: 0.8fr 1.2fr;
}

/* テキスト */
.p-medicalCard__text {
  color: var(--ink);
  line-height: 2;
  letter-spacing: 0.06em;
  font-size: 15px;
}

/* 点線（添付の区切り線） */
.p-medicalCard__divider {
  height: 2px;
  margin: 30px 0;
}

.p-medicalCard__divider1 {
  background: linear-gradient(to right, #C6A773 0%, #C6A773 80%, #fff 80%, #fff 100%);
}

.p-medicalCard__divider2 {
  background: linear-gradient(to right, #fff 0%, #fff 20%, #C6A773 20%, #C6A773 100%);
}

.p-medicalCard__textBlock1 {
  text-align: left;
  width: 80%;
}

.p-medicalCard__textBlock2 {
  margin-left: 20%;
  width: 80%;
}

.p-medicalCard__dropcap {
  display: inline-block;
  min-width: 28px;
  margin-top: 2px;
  font-size: 30px;
  line-height: 1;
  font-weight: 600;
  color: var(--line);
}

/* 画像（重ねる） */
.p-medicalCard__media {
  position: relative;
  min-height: 420px; /* 重なりのための高さ */
}

/* 共通 */
.p-medicalCard__photo {
  margin: 0;
  border-radius: 32px;
  overflow: hidden;
}

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

/* 上の大きい写真 */
.p-medicalCard__photo--top {
  width: min(270px, 100%);
}

/* 下の小さい写真（少し重ねる） */
.p-medicalCard__photo--bottom {
  position: absolute;
  right: 0;
  top: 240px; /* 重ね位置 */
  width: min(280px, 100%);
}

/* 下段（左右反転）のとき、画像の寄せ方だけ変更 */
.p-medicalCard--middle .p-medicalCard__photo--top {
  margin-left: 0;
}

.p-medicalCard--middle .p-medicalCard__photo--bottom {
  right: 27px;
  top: 154px;
}

/* =========================
  Medical Intro：屋根背景（丸みあり）
========================= */
/* イントロのカード（屋根PNGの土台） */
.p-medicalCard--intro {
  position: relative;
  overflow: hidden; /* はみ出し防止（必要なら） */
  border-radius: 32px; /* 角丸が必要なら */
  isolation: isolate; /* z-indexを安全に */
  padding-top: 200px;
}

/* 屋根PNG（背景） */
.p-medicalCard--intro::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0; /* 「下に配置」 */
  height: 100%; /* カード全面に敷く */
  z-index: -1;
  background-image: url("/assets/img/medical-house.png"); /* パスは調整してね */
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% auto; /* 幅いっぱいで、縦は比率維持 */
}
@media (max-width: 1150px) {
  .p-medicalCard--intro::before {
    background-image: url("/assets/img/medical-house-sp.png");
    background-position: top;
  }
}

/* =========================
  Medical Merit（直接ご説明に伺います）
========================= */
.p-medicalMerit {
  padding: clamp(2.5rem, 2rem + 2vw, 4rem) 0;
  --accent: #EC8367;
  --line: #C6A773;
  --soft: #F7F7E5;
  --ink: #333;
}

/* 枠カード */
.p-medicalMerit__card {
  background: #fff;
  border: 4px solid var(--line);
  border-radius: 28px;
  padding: clamp(1.3rem, 1rem + 1.2vw, 2.2rem);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.06);
}

/* 冒頭文章 */
.p-medicalMerit__lead {
  margin: 0 clamp(0rem, -15.831rem + 32.89vw, 7.813rem) 18px;
  color: var(--ink);
  line-height: 2;
  letter-spacing: 0.06em;
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.15rem);
}

/* 2カラム枠（見出し付き） */
.p-medicalMerit__grid {
  margin: 18px auto 22px;
  max-width: 760px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: 18px;
  overflow: hidden;
  background: #FBFBEF;
}

.p-medicalMerit__panel {
  padding: 0;
  border-right: 2px solid #fff;
}

.p-medicalMerit__panel:last-child {
  border-right: none;
}

.p-medicalMerit__panelTitle {
  margin: 0;
  padding: 14px 14px;
  text-align: center;
  background: var(--accent);
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.06em;
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.15rem);
  border-bottom: 2px solid rgb(255, 255, 255);
}

.p-medicalMerit__list {
  margin: 0;
  padding: 36px 16px;
  list-style: none;
  display: grid;
  color: #333;
  letter-spacing: 0.06em;
  font-size: clamp(0.95rem, 0.86rem + 0.35vw, 1.1rem);
}

.p-medicalMerit__list li {
  position: relative;
  padding-left: 1.6em;
}

.p-medicalMerit__list li::before {
  content: "";
  position: absolute;
  left: 0.3em;
  top: 0.8em;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--line);
  transform: translateY(-50%);
}

/* 家アイコン + 文 */
.p-medicalMerit__notice {
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  gap: 12px;
  margin: 18px clamp(0rem, -15.831rem + 32.89vw, 7.813rem);
}

.p-medicalMerit__noticeIcon {
  width: 60px;
  height: 60px;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-medicalMerit__noticeText {
  margin: 0;
  color: var(--ink);
  letter-spacing: 0.06em;
  line-height: 1.5;
  font-size: clamp(1rem, 0.92rem + 0.4vw, 1.15rem);
}

.p-medicalMerit__mark {
  position: relative;
  font-weight: 700; /* 強調したい場合 */
  z-index: 0;
  white-space: nowrap;
}

.p-medicalMerit__mark::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.05em; /* 文字の少し上まで */
  width: 100%;
  height: 0.45em; /* 文字の下半分くらい */
  background: var(--accent);
  opacity: 0.35; /* マーカー感 */
  z-index: -1;
}

/* ボタン */
.p-medicalMerit__cta {
  display: grid;
  place-items: center;
  margin: 18px 0 18px;
}

.p-medicalMerit__btn {
  width: min(720px, 100%);
  background: #01b513;
  color: #fff;
  text-decoration: none;
  border-radius: 999px;
  padding: 18px 22px;
  font-weight: 500;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-size: 24px;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.12);
}

.p-medicalMerit__btnIcon {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 3px solid rgba(255, 255, 255, 0.9);
  position: relative;
  flex: 0 0 auto;
}

.p-medicalMerit__btnIcon::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 10px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: translate(-60%, -50%) rotate(-45deg);
}

/* 下の注記 */
.p-medicalMerit__foot {
  margin: 40px clamp(0rem, -15.831rem + 32.89vw, 7.813rem);
  color: #333;
  letter-spacing: 0.06em;
  line-height: 2;
  font-size: clamp(0.95rem, 0.88rem + 0.3vw, 1.05rem);
}

/* =========================
  参考サイト
========================= */
.p-medicalRef {
  padding: 100px 0;
  background: #fff;
}

.p-medicalRef__inner {
  position: relative;
  padding-top: 24px; /* 丸点分の余白 */
}

/* 上の丸点ライン */
.p-medicalRef__inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 10px;
  background-image: radial-gradient(circle, #C6A773 4px, transparent 5px);
  background-size: 16px 10px;
  background-repeat: repeat-x;
}

.p-medicalRef__title {
  font-size: clamp(1.2rem, 0.85rem + 1.2vw, 2rem);
  padding-left: 70px;
  margin: 3px 0;
}

.p-medicalRef__link {
  padding-left: 100px;
  color: #00A2FF;
}

/* =========================
  Responsive
========================= */
@media (max-width: 768px) {
  .p-medicalIntro {
    padding: 0 0;
  }
  .p-medicalIntro__title {
    width: 330px;
    margin: 60px auto;
  }
  .p-medicalIntro__title::after {
    display: none;
  }
  .p-medicalIntro__title::before {
    position: absolute;
    width: 192px;
    top: 80px;
    left: 70px;
  }
  .p-medicalIntro__titleBr {
    display: block;
  }
  .p-medicalCard__grid,
  .p-medicalCard__grid--reverse {
    grid-template-columns: 1fr;
  }
  .p-medicalCard__media {
    order: -1;
    min-height: 0;
  }
  .p-medicalCard__photo--top {
    width: 100%;
  }
  .p-medicalCard--intro {
    z-index: 1;
    padding-top: clamp(3.75rem, -0.779rem + 19.85vw, 8.75rem);
  }
  .p-medicalCard--intro::before {
    top: 20px;
  }
  .p-medicalCard__photo--bottom {
    position: static;
    width: 100%;
    margin-top: 14px;
  }
  .p-medicalCard__dropcap {
    font-size: clamp(1.5rem, 1.16rem + 1.49vw, 1.875rem);
  }
  .p-medicalCard__text {
    font-size: clamp(0.688rem, 0.291rem + 1.74vw, 1.125rem);
    line-height: 1.5;
  }
  /* 外枠は縦積み（パネルが上下に並ぶ） */
  .p-medicalMerit__grid {
    grid-template-columns: 1fr;
  }
  /* 各パネル内を「見出し｜リスト」の2カラムにする */
  .p-medicalMerit__panel {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1.4fr; /* 右を少し広め */
    align-items: start;
    border-right: none;
    border-bottom: 2px solid rgba(198, 167, 115, 0.25);
  }
  .p-medicalMerit__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    width: 40%; /* ← 左カラム分 */
    background: var(--accent);
    z-index: 0;
  }
  /* 見出し側の調整 */
  .p-medicalMerit__panelTitle {
    background: transparent; /* ← ここ重要 */
    color: #fff;
    border-right: 2px solid #fff;
    border-bottom: none;
    padding: 16px 14px;
    text-align: left;
  }
  .p-medicalMerit__panel:last-child {
    border-bottom: none;
  }
  /* 中身は前面に出す */
  .p-medicalMerit__panelTitle,
  .p-medicalMerit__list {
    position: relative;
    z-index: 1;
  }
  /* 見出しを左カラムに固定、中央寄せ→左寄せに */
  .p-medicalMerit__panelTitle {
    border-bottom: none; /* 上下で区切らない */
    border-right: 2px solid #fff; /* 左右の区切り線にする */
    text-align: left;
    padding: 28px 12px;
  }
  /* リストは右カラム */
  .p-medicalMerit__list {
    padding: 14px 12px;
    font-size: 16px; /* 読みやすく（任意） */
  }
  /* グリッドを1カラムに */
  .p-medicalCard__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }
  /* 中間コンテナを透明化して子要素を直接グリッドアイテムにする */
  .p-medicalCard__text,
  .p-medicalCard__media {
    display: contents;
  }
  .p-medicalCard__photo img {
    aspect-ratio: 294/154;
  }
  /* 各要素の表示順を指定 */
  .p-medicalCard__divider1 {
    order: 1;
    background: #C6A773;
    margin: 30px 0 0 0;
  }
  .p-medicalCard__textBlock1 {
    width: 100%;
  }
  .p-medicalCard__textBlock1b, .p-medicalCard__textBlock--dropcap1 {
    order: 2;
  }
  .p-medicalCard__photo--top {
    order: 3;
  }
  .p-medicalCard__divider2 {
    order: 4;
    background: #C6A773;
    margin: 30px 0 0 0;
  }
  .p-medicalCard__textBlock2 {
    width: 100%;
    margin-left: 0;
  }
  .p-medicalCard__textBlock2b, .p-medicalCard__textBlock--dropcap2 {
    order: 5;
  }
  .p-medicalCard__photo--bottom {
    order: 6;
  }
  #medical-merit-title.p-medicalIntro__title::before {
    top: 40px;
  }
  /* 画像の絶対配置を解除 */
  .p-medicalCard__photo {
    position: static;
    /* 必要に応じて margin などを調整 */
  }
  .p-medicalMerit__notice {
    grid-template-columns: 30px 1fr;
  }
  .p-medicalMerit__noticeIcon {
    width: 30px;
    height: 30px;
  }
  .p-medicalMerit__noticeText {
    font-size: clamp(0.875rem, 0.762rem + 0.5vw, 1rem);
  }
  .p-medicalMerit__btn {
    padding: clamp(0rem, -0.34rem + 1.49vw, 0.375rem) 22px;
    font-size: 16px;
    text-align: center;
  }
  .p-medicalMerit__btnIcon {
    width: clamp(1.25rem, 0.458rem + 3.47vw, 2.125rem);
    height: clamp(1.25rem, 0.458rem + 3.47vw, 2.125rem);
    border: clamp(0.125rem, 0.068rem + 0.25vw, 0.188rem) solid rgba(255, 255, 255, 0.9);
  }
  .p-medicalMerit__btnIcon::before {
    width: clamp(0.438rem, 0.268rem + 0.74vw, 0.625rem);
    height: clamp(0.438rem, 0.268rem + 0.74vw, 0.625rem);
    border-right: clamp(0.125rem, 0.068rem + 0.25vw, 0.188rem) solid #fff;
    border-bottom: clamp(0.125rem, 0.068rem + 0.25vw, 0.188rem) solid #fff;
  }
  .p-medicalRef__title {
    padding-left: 10px;
  }
  .p-medicalRef__link {
    padding-left: 42px;
  }
}
/* =========================
  Contact
========================= */
.p-contact {
  padding: clamp(2.5rem, 2rem + 2vw, 4rem) 0;
  --accent: #EC8367;
  --soft: #F7F7E5;
  --ink: #333;
  --muted: #666;
  --line: #C8A36A;
  --radius: 26px;
}

.p-contact__head {
  text-align: center;
  padding-bottom: 24px;
  border-bottom: 2px solid #C6A773;
}

.p-contact__lead {
  margin: 0;
  line-height: 1.9;
  letter-spacing: 0.06em;
  color: var(--muted);
  font-size: clamp(0.95rem, 0.82rem + 0.45vw, 1.1rem);
}

.p-contact__card {
  margin: 140px 0;
  padding-bottom: 140px;
  border-bottom: 1px solid #C6A773;
}

.p-contact__cardTitle {
  padding: 0 clamp(1.4rem, 1.1rem + 1vw, 2rem);
  max-width: 880px;
  display: flex;
  align-items: center;
  gap: 24px;
  margin: 0 auto;
  font-size: 28px;
  font-weight: 500;
  color: #333;
}

/* 見出し左のPNGアイコン */
.p-contact__cardIconImg {
  width: 100px;
  height: 100px;
  flex: 0 0 auto;
  display: block;
}

/* 電話ブロック */
.p-contactTel {
  padding: clamp(1.4rem, 1.1rem + 1vw, 2rem);
  background: transparent; /* 箱は中で作る */
}

/* 中央の薄グリーン箱 */
.p-contactTel__box {
  background: #F0F0CA; /* スクショの薄い黄緑寄せ */
  border-radius: 18px;
  padding: clamp(1.2rem, 1rem + 1vw, 1.8rem);
  max-width: 880px;
  margin: 0 auto;
}

/* 上段：ラベル＋電話番号 */
.p-contactTel__head {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(0.8rem, 0.4rem + 1vw, 1.2rem);
  flex-wrap: wrap;
}

.p-contactTel__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.9em;
  border-radius: 999px;
  background: rgba(200, 163, 106, 0.9); /* ベージュの小ラベル */
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: clamp(0.9rem, 0.82rem + 0.3vw, 1rem);
  margin-bottom: 6px;
}

/* 電話番号（大きく） */
.p-contactTel__number {
  margin: 0;
  font-weight: 800;
  letter-spacing: 0.18em;
  font-size: clamp(1.8rem, 1.2rem + 2vw, 3rem);
  line-height: 1.1;
}

.p-contactTel__number a {
  color: var(--accent);
  text-decoration: none;
}

/* 点線区切り */
.p-contactTel__divider {
  margin: 18px 0 16px;
  height: 1px;
  background-image: linear-gradient(to right, rgb(200, 163, 106) 66%, rgba(0, 0, 0, 0) 0%);
  background-size: 6px 1px;
  background-repeat: repeat-x;
}

/* 営業時間 / FAX（中央寄せ） */
.p-contactTel__meta {
  margin: 0;
  display: grid;
  gap: 10px;
  justify-items: start;
  text-align: center;
  color: var(--ink);
  letter-spacing: 0.12em;
  font-size: clamp(0.95rem, 0.85rem + 0.4vw, 1.1rem);
  width: 86%;
  justify-content: center;
}

.p-contactTel__row {
  display: inline-grid;
  grid-template-columns: auto auto;
  gap: 16px;
  align-items: baseline;
}

.p-contactTel__meta dt {
  font-weight: 800;
}

.p-contactTel__meta dd {
  margin: 0;
  color: var(--ink);
  letter-spacing: 0.14em;
}

/* 下の注意文 */
.p-contactTel__note {
  max-width: 880px;
  margin: 14px auto 0;
  color: var(--muted);
  line-height: 1.9;
  letter-spacing: 0.06em;
  font-size: clamp(0.9rem, 0.82rem + 0.35vw, 1rem);
}

/* 「お名前とご連絡先」の強調（黄色マーカー＋赤文字っぽく） */
.p-contactTel__noteMark {
  color: #E53935;
  font-weight: 500;
  background: linear-gradient(transparent 62%, #FFCC00 0);
  padding: 0 0.15em;
  font-size: 20px;
}

/* フォーム */
.p-contactForm {
  padding: clamp(1.4rem, 1.1rem + 1vw, 2rem);
  background: #F0F0CA;
  border-radius: 18px;
  margin: 24px auto;
  max-width: 880px;
}

.p-contactForm__field {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
}

.p-contactForm__label {
  color: var(--ink);
  font-weight: 700;
  letter-spacing: 0.06em;
  font-size: clamp(0.95rem, 0.85rem + 0.45vw, 1.05rem);
}

.p-contactForm__req {
  color: #D94A3A;
  font-weight: 800;
}

.p-contactForm__input,
.p-contactForm__textarea {
  width: 100%;
  border: 0;
  outline: none;
  border-radius: 14px;
  padding: 14px 14px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(200, 163, 106, 0.25);
  font-size: 16px;
  letter-spacing: 0.04em;
  color: var(--ink);
}

.p-contactForm__textarea {
  resize: vertical;
}

.p-contactForm__actions {
  margin-top: 10px;
  display: grid;
  place-items: center;
}

.p-contactForm__submit {
  width: min(520px, 100%);
  border: 0;
  cursor: pointer;
  padding: 14px 18px;
  border-radius: 999px;
  color: #fff;
  font-weight: 800;
  letter-spacing: 0.08em;
  font-size: clamp(1rem, 0.9rem + 0.6vw, 1.2rem);
  background: radial-gradient(100% 180% at 30% 30%, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 55%), linear-gradient(180deg, #F19A84, var(--accent));
  box-shadow: 0 10px 18px rgba(236, 131, 103, 0.35);
}

.p-contactForm__submit:active {
  transform: translateY(4px);
}

/* =========================
responsive
========================= */
@media (max-width: 768px) {
  .p-contact__cardIconImg {
    width: clamp(3.125rem, 0.295rem + 12.41vw, 6.25rem);
    height: clamp(3.125rem, 0.295rem + 12.41vw, 6.25rem);
    z-index: 1;
  }
  .p-contact__cardTitle {
    font-size: clamp(1.25rem, 0.797rem + 1.99vw, 1.75rem);
  }
  .p-contactTel__label {
    font-size: clamp(0.625rem, 0.399rem + 0.99vw, 0.875rem);
    margin-bottom: 0px;
  }
  .p-contactTel__number a {
    font-size: clamp(1.25rem, 0.797rem + 1.99vw, 1.75rem);
  }
  .p-contactTel__meta {
    width: 100%;
    text-align: left;
    font-size: clamp(0.813rem, 0.643rem + 0.74vw, 1rem);
  }
  .p-contactTel__row {
    gap: 0px;
  }
}
/* =========================
  Page Header（子ページ共通）
========================= */
.p-pageHeader {
  position: relative;
  padding: 0; /* 背景を上に置くのでここは0でもOK */
  background: #fff;
}

/* 背景イラスト部分（高さはデザインに合わせて調整） */
.p-pageHeader__bg {
  height: 326px; /* 例 */
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

/* 中身 */
/* タイトル */
.p-pageHeader__title {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  height: 100%;
  /* 文字側の指定は、内側spanに寄せるのがおすすめ */
}

.p-pageHeader__titleText {
  font-size: 60px;
  letter-spacing: 0.08em;
  font-weight: 700;
  line-height: 1;
  color: var(--brown);
  -webkit-text-stroke: 10px #fff; /* 白フチの太さ */
  paint-order: stroke fill; /* stroke→fill順に */
  filter: drop-shadow(3px 3px 0 rgba(0, 0, 0, 0.18));
}
@media (max-width: 768px) {
  .p-pageHeader__titleText {
    font-size: clamp(2.25rem, 1.571rem + 2.98vw, 3rem);
    text-align: center;
    line-height: 1.5;
  }
}

/* ナビ */
.p-pageHeader__nav {
  margin-top: 14px;
}

.p-pageHeader__navList {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.p-pageHeader__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid #B3874A;
  color: #B3874A;
  background: #fff;
  font-size: clamp(0.75rem, 0.6rem + 0.3vw, 0.95rem);
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;
}

.p-pageHeader__pill:hover {
  opacity: 0.85;
}

/* =========================
  ページ別（背景差し替え）
========================= */
/* ご案内 */
.p-pageHeader--guide .p-pageHeader__bg {
  background-image: url("../img/page-header-guide.png");
}

/* 例：医師紹介 */
.p-pageHeader--doctor .p-pageHeader__bg {
  background-image: url("../img/page-header-doctor.png");
}

/* 例：在宅での医療について */
.p-pageHeader--homecare .p-pageHeader__bg {
  background-image: url("../img/page-header-homecare.png");
}

/* 在宅での診療までの流れ */
.p-pageHeader--flow .p-pageHeader__bg {
  background-image: url("../img/page-header-flow.png");
}

/* faq */
.p-pageHeader--faq .p-pageHeader__bg {
  background-image: url("../img/page-header-faq.png");
}

/* 医療関係者の方へ */
.p-pageHeader--medical .p-pageHeader__bg {
  background-image: url("../img/page-header-medical.png");
}

/* お問い合わせ */
.p-pageHeader--contact .p-pageHeader__bg {
  background-image: url("../img/page-header-contact.png");
}

/* =========================
  Breadcrumb
========================= */
.p-breadcrumb {
  background: #EC8367; /* スクショの帯っぽい色。必要なら変数へ */
  padding: 20px 0 20px 10%;
  color: #fff;
  font-weight: 500;
  /* プラグインで ul/ol どっちでも崩れないように */
}
.p-breadcrumb ol,
.p-breadcrumb ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.p-breadcrumb li {
  display: inline-flex;
  align-items: center;
  font-size: 20px;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
.p-breadcrumb {
  /* 区切り（liが増えたら自動で出る） */
}
.p-breadcrumb li + li::before {
  content: "＞";
  display: inline-block;
  margin: 0 10px;
  opacity: 0.9;
}
.p-breadcrumb a {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.p-breadcrumb a:hover {
  opacity: 0.8;
  text-decoration: underline;
}
.p-breadcrumb {
  /* 現在地 */
}
.p-breadcrumb [aria-current=page] {
  font-weight: 700;
  opacity: 0.95;
}
.p-breadcrumb {
  /* よくあるプラグインの separator を出すタイプも吸収 */
}
.p-breadcrumb .separator {
  margin: 0 10px;
  opacity: 0.9;
}
.p-breadcrumb {
  /* SP */
}
@media (max-width: 768px) {
  .p-breadcrumb {
    padding: 16px 60px;
  }
  .p-breadcrumb li {
    font-size: 12px;
  }
  .p-breadcrumb li + li::before {
    margin: 0 8px;
  }
}

/* =========================
  丸ボタンナビ
========================= */
.p-pageHeader__nav {
  margin-top: 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.p-pageHeader__navList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 上段：少し目立たせる */
.p-pageHeader__navList--primary {
  gap: 12px 16px;
}
.p-pageHeader__navList--primary .p-pageHeader__pill {
  font-weight: 700;
}

/* 下段：通常 */
.p-pageHeader__navList--secondary .p-pageHeader__pill {
  font-weight: 500;
}

/* CF7が勝手に入れるp/brをフォーム内だけ無害化 */
.p-contactForm p {
  margin: 0;
}

.p-contactForm br {
  display: none;
}

/* single 全体の読みやすさ */
.p-single__inner {
  max-width: 960px; /* l-containerの幅を使う前提。必要なら */
}

/* 本文は横幅を絞る */
.p-single__article {
  max-width: 760px;
  margin: 20px auto;
}

/* カード */
.p-single__card {
  background: #fff;
  border-radius: 20px;
  padding: 32px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

/* メタ行 */
.p-single__meta {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 12px;
}

.p-single__cat {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  background: rgba(0, 0, 0, 0.06);
}

/* タイトルと本文 */
.p-single__title {
  line-height: 1.4;
  margin: 0 0 24px;
}

.p-single__content {
  line-height: 1.9;
}

/* 本文内の余白（WPの標準ブロック対策） */
.p-single__content > * + * {
  margin-top: 1em;
}

/* 前後ナビ */
.p-single__pager {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 24px auto 0;
  max-width: 760px;
}

.p-single__pager a {
  display: inline-block;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.06);
  text-decoration: none;
}

/* 戻る */
.p-single__back {
  margin: 18px auto 0;
  max-width: 760px;
  text-align: end;
}

.p-single__back a {
  text-decoration: underline;
}

/* SP */
@media (max-width: 768px) {
  .p-single__card {
    padding: 20px;
  }
  .p-single__pager {
    flex-direction: column;
  }
}
/*# sourceMappingURL=style.css.map */
