@charset "UTF-8";
*,
*::before,
*::after {
  box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
  scroll-behavior: smooth;
  scroll-padding-top: 60px; }

img {
  display: block;
  max-width: 100%;
  height: auto; }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 60px;
  background: linear-gradient(to bottom, #ffdda5, #fff1d7);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  z-index: 1000; }
  .site-header .header-inner {
    max-width: 750px;
    margin: 0 auto;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 24px; }
  .site-header .logo img {
    height: 46px;
    width: auto;
    max-width: none; }
  .site-header .header-reserve .reserve-btn {
    display: inline-block;
    padding: 6px 14px;
    background: #b0965a;
    color: #fff;
    text-decoration: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.05em;
    transition: all 0.25s ease;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.05); }
    .site-header .header-reserve .reserve-btn:hover {
      background: #9a814b;
      transform: translateY(-2px); }
    .site-header .header-reserve .reserve-btn:active {
      background: #866f40;
      transform: translateY(0); }

.top-main {
  margin-top: 60px; }

.top-inner {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 16px;
  box-sizing: border-box; }

.top-title {
  text-align: center;
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 20px;
  color: #4a3f2a; }

.top-description {
  text-align: center;
  font-size: 15px;
  line-height: 1.8;
  color: #4a3f2a; }

.banner-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  padding-bottom: 60px; }
  @media (min-width: 750px) {
    .banner-grid {
      grid-template-columns: repeat(2, 1fr); } }

.banner-item {
  display: block;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12), 0 4px 10px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease; }
  .banner-item img {
    width: 100%;
    display: block; }
  .banner-item:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18), 0 8px 18px rgba(0, 0, 0, 0.12); }

.lp-main {
  margin-top: 60px;
  margin-bottom: 0;
  max-width: 750px;
  margin-left: auto;
  margin-right: auto; }
  .lp-main img {
    width: 100%;
    display: block;
    margin: 0;
    padding: 0; }
  .lp-main .wp-block-image,
  .lp-main .wp-block-image > figure {
    margin: 0;
    padding: 0; }
  .lp-main .wp-block-image figcaption {
    margin: 0;
    padding: 0; }

.lp-title {
  font-size: 28px;
  font-weight: bold;
  text-align: center;
  margin: 40px 0;
  color: #222;
  position: relative; }
  .lp-title::after {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background-color: #b0965a;
    margin: 12px auto 0;
    border-radius: 2px; }

.clinic .clinic-inner {
  max-width: 750px;
  margin: 0 auto;
  padding: 40px 16px 20px 16px;
  box-sizing: border-box;
  background: #FFEBCD; }

.group-title {
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 20px; }

.clinic-area-nav {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 40px; }
  .clinic-area-nav a {
    flex: 1;
    max-width: 150px;
    text-align: center;
    padding: 12px 0;
    background: #d6c39a;
    color: #4a3f2a;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    border-radius: 8px;
    transition: all 0.25s ease; }
    .clinic-area-nav a:hover {
      background: #c4af80;
      transform: translateY(-1px); }

.clinic-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  width: 100%;
  box-sizing: border-box; }
  @media (min-width: 750px) {
    .clinic-list {
      grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .clinic-list .clinic-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.05);
    width: 100%;
    box-sizing: border-box; }
    .clinic-list .clinic-card .clinic-name {
      font-size: 16px;
      margin-bottom: 16px;
      font-weight: normal; }
      .clinic-list .clinic-card .clinic-name span {
        font-size: 110%;
        font-weight: bold; }
    .clinic-list .clinic-card img {
      width: 100%;
      margin-bottom: 16px; }
    .clinic-list .clinic-card .clinic-buttons .btn {
      display: block;
      text-align: center;
      padding: 12px 0;
      border-radius: 8px;
      font-size: 14px;
      font-weight: 600;
      text-decoration: none;
      transition: all 0.25s ease;
      margin-bottom: 10px; }
      .clinic-list .clinic-card .clinic-buttons .btn.reserve {
        background: #b0965a;
        color: #fff; }
        .clinic-list .clinic-card .clinic-buttons .btn.reserve:hover {
          background: #9a814b; }
        .clinic-list .clinic-card .clinic-buttons .btn.reserve:active {
          background: #866f40; }
      .clinic-list .clinic-card .clinic-buttons .btn.line {
        background: #06c755;
        color: #fff; }
        .clinic-list .clinic-card .clinic-buttons .btn.line:hover {
          opacity: 0.85; }
  .clinic-list .clinic-address, .clinic-list .clinic-info {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 16px; }
    .clinic-list .clinic-address p, .clinic-list .clinic-info p {
      margin: 4px 0;
      color: #4a3f2a; }
      .clinic-list .clinic-address p a, .clinic-list .clinic-info p a {
        color: #b0965a;
        text-decoration: underline;
        transition: all 0.25s ease; }
        .clinic-list .clinic-address p a:hover, .clinic-list .clinic-info p a:hover {
          color: #9a814b; }

.lp-qa {
  background: #fff;
  padding: 40px 16px; }
  .lp-qa .qa-wrapper {
    max-width: 750px;
    margin: 0 auto; }
  .lp-qa .qa-item {
    border-bottom: 1px solid #e0d6c5;
    margin-bottom: 16px; }
    .lp-qa .qa-item .qa-question {
      width: 100%;
      text-align: left;
      background: transparent;
      border: none;
      font-size: 16px;
      font-weight: 600;
      color: #4a3f2a;
      padding: 16px 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
      cursor: pointer; }
      .lp-qa .qa-item .qa-question .qa-toggle {
        font-size: 20px;
        color: #c4af80;
        transition: transform 0.25s ease; }
      .lp-qa .qa-item .qa-question:hover .qa-toggle {
        transform: rotate(45deg); }
    .lp-qa .qa-item .qa-answer {
      display: none;
      padding: 8px 0 16px 0;
      font-size: 14px;
      line-height: 1.8;
      color: #4a3f2a; }

/* LP内のTablePress全体 */
.lp-main .tablepress {
  width: calc(100% - 32px);
  max-width: 750px;
  margin: 0 auto;
  border-collapse: collapse;
  border: 1px solid #ccc; }

/* ヘッダーの背景色と文字色 */
.lp-main .tablepress thead th {
  background-color: #f5d8a0;
  color: #4a3f2a;
  font-weight: 600;
  text-align: center;
  padding: 12px;
  border: 1px solid #ccc;
  /* ヘッダーの境界線 */ }

/* tbodyの3列目だけ目立つ色＆太文字 */
.lp-main .tablepress tbody td:nth-child(3) {
  color: #4a3f2a;
  font-weight: 700;
  text-align: center;
  padding: 12px;
  border: 1px solid #ccc;
  /* セル境界線 */
  background-color: #fff;
  /* 背景は白 */ }

/* その他のセルは文字色だけ変える＆境界線復活 */
.lp-main .tablepress tbody td:not(:nth-child(3)) {
  color: #4a3f2a;
  background-color: #fff;
  /* 背景は白 */
  padding: 12px;
  border: 1px solid #ccc;
  /* セル境界線 */
  text-align: center; }

/* スマホ用（750px未満） */
@media (max-width: 749px) {
  .lp-main .tablepress {
    width: calc(100% - 32px); } }
.site-footer {
  width: 100vw;
  background: #ffdda5;
  box-sizing: border-box; }
  .site-footer .footer-copy {
    text-align: center;
    font-size: 12px;
    color: #333;
    padding: 20px 0;
    background: #ffdda5; }
