@charset "UTF-8";
* { margin: 0; padding: 0; box-sizing: border-box; }
ul, ol {
  list-style: none;
  margin: 0;
  padding: 0;
}
li {
  margin: 0;
  padding: 0;
}

/* base */
/*===============================================================*/
body {
  font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", Arial, Osaka, Sans-Serif;
  font-size: min(15px, 3.4vw);
  font-weight: 400;
  background: #fff;
  max-width: 750px;
  margin: 0 auto;
}
img { max-width: 100%; }

.mt5 {margin-top: 5px;}
.mb5 {margin-bottom: 5px;}
.pt5 {padding-top: 5px;}
.pb5 {padding-bottom: 5px;}
.mt10 {margin-top: 10px;}
.mb10 {margin-bottom: 10px;}
.pt10 {padding-top: 10px;}
.pb10 {padding-bottom: 10px;}
.mt15 {margin-top: 15px;}
.mb15 {margin-bottom: 15px;}
.pt15 {padding-top: 15px;}
.pb15 {padding-bottom: 15px;}

/* 文字装飾 */
.txt-l {text-align: left;}
.txt-b {font-weight: bold;}
.yl { color: #ffe234; }
.red { color: #e00; }
.y_marker {
  background: linear-gradient(transparent 50%, #fff115 50%);
  padding: 0 2px;
}
/* 数字フォント */
.num-font {
  font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Container */
/*===============================================================*/
#container {
  max-width: 750px;
  margin: 0 auto;
  background: #fff;
}

/* FV ===== */
.fv {
  width: 100%;
}
.fv img {
  width: 100%;
  height: auto;
  display: block;
}

/* sub header ===== */
.subheader {
  background: #5182e6;
  padding: .5em;
  text-align: center;
  position: relative;
  z-index: 30;
}
.subheader .date-line {
  font-size: clamp(13px, 3.5vw, 22px);
  color: #fff;
  font-weight: 900;
  letter-spacing: 0.5px;
}
.subheader .date-line span {
  display: inline-block;
  padding: 0 10px;
  border-radius: 2px;
  margin: 0 4px;
}
.subheader .main-text {
  font-size: clamp(0.813rem, 0.689rem + 2.08vw, 2.25rem);
  color: #fffdb2;
  font-weight: 900;
  line-height: 1.4;
}

/* 比較表 ========== */
.hikaku-table-section {
  border: 1px solid #f4f4f4;
  margin: 10px 0 24px;
  border-radius: 4px;
  position: relative;
  z-index: 10;
}
.hikaku-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.hikaku-table thead {
  position: sticky;
  top: 0;
  z-index: 10;
}
/* iOSのChromeだけpadding-topを追加 */
.ios-chrome .hikaku-table thead {
  top: 70px;
  z-index: 10;
}
.ios-chrome .hikaku-table thead::before {
  content: '';
  position: absolute;
  top: -70px;
  left: 0;
  right: 0;
  height: 70px;
  background: #fff;
  z-index: -1;
  display: none; /* デフォルトは非表示 */
}
.ios-chrome .hikaku-table thead.show-before::before {
  display: block; /* subheaderが消えたら表示 */
}
/* セクション見出し行（青帯） */
.hikaku-row-header {
  background: #1f4994;
  color: #fff;
  font-weight: bold;
  font-size: clamp(0.75rem, 0.718rem + 0.54vw, 1.125rem);
  text-align: center;
}
.hikaku-row-header small{
  font-size: .8em;
}
.hikaku-row-header .hikaku-cell-header {
  padding: 5px 4px 4px;
  border-right: 1px solid rgba(255,255,255,0.3);
  line-height: 1.3em;
}
.hikaku-row-header .hikaku-cell-header:last-child {
  border-right: none;
}

/* データ行（クリーム背景） */
.hikaku-row {
  background: #fff;
}
.hikaku-row:last-child .hikaku-cell {
  border-top: 2px solid #f4f4f4;
} 
.hikaku-row .hikaku-cell:first-child {
  background: #fffdf0;
}
.hikaku-cell {
  padding: 10px 3px;
  text-align: center;
  border-right: 1px solid #f4f4f4;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.hikaku-row:first-child .hikaku-cell {
  padding: 5px 6px 10px;
}
.hikaku-cell:last-child {
  border-right: none;
}
.hikaku-sticky {
  position: sticky;
  top: 0;
}
.total-score .hikaku-cell {
  border-bottom: 2px solid #f4f4f4;
} 
.clinic-header {
  width: 100%;
}
.crown-img {
  width: clamp(37px, 10vw, 67px);
  height: auto;
  display: block;
  mix-blend-mode: multiply;
  margin: 0 auto 8px;
}
.clinic-name-link {
  display: block;
  text-align: center;
  font-size: clamp(0.563rem, 0.403rem + 0.8vw, 1rem);
  font-weight: bold;
  color: #1a50a0;
  text-decoration: underline;
  text-underline-offset: 3px;
  line-height: 1.3;
}
.clinic-name-link:hover {
  color: #0a3070;
}
.clinic-img-wrap {
  width: 100%;
  overflow: hidden;
  position: relative;
  padding-top:80%;
  margin-bottom: 5px;
}
.clinic-img-wrap img {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  object-fit: cover;
}
.stars {
  font-size: clamp(12px, 3.2vw, 20px);
  line-height: 1;
  white-space: nowrap;
  padding-top: .3em;
  padding-bottom: .3em;
}
.stars img {
  width: 70%;
  height: auto;
  margin: 0 auto;
}
.star-on  { color: #f5c400; }
.star-off { color: #ccc; }
.score {
  font-size: clamp(1.625rem, 1.375rem + 1.25vw, 2.313rem);
  font-weight: 900;
  color: #ed0d1e;
  line-height: 1.1;
}
.score span { font-size: 0.55em; }

/* 記号アイコン */
.hikaku-mark-icon img {
  display: block;
  width: min(10vw, 30%);
  height: auto;
  margin: 0 auto;
}
/* 比較表テキスト */
.hikaku-cell {
  color: #222;
  line-height: 1.2em;
}
.hikaku-text-main {
  font-size: clamp(1rem, 0.864rem + 0.68vw, 1.375rem);
  font-weight: bold;
}
.hikaku-text-main_s { /* 文章行小 */
  font-size: clamp(0.813rem, 0.676rem + 0.68vw, 1.188rem);
  font-weight: bold;
}
.hikaku-text-main_ss { /* 文章行小小 */
  font-size: clamp(0.688rem, 0.597rem + 0.45vw, 0.938rem);
  font-weight: bold;
}
.hikaku-text-subb {
  font-size: clamp(0.688rem, 0.619rem + 0.34vw, 0.875rem);
  font-weight: bold;
}
.hikaku-text-sub {
  font-size: clamp(0.688rem, 0.619rem + 0.34vw, 0.875rem);
  font-weight: normal;
}
.hikaku-text-main span.time {
  font-size: clamp(11px, 2.8vw, 17px);
}
.hikaku-text-note {
  font-size: clamp(0.625rem, 0.58rem + 0.23vw, 0.75rem);
  line-height: 1.3;
}
/* 取り消し */
.hikaku-text-before {
  font-size: clamp(10px, 2.5vw, 16px);
  color: #222;
  text-decoration: line-through;
}
/* バッジ */
.off-badge {
  background: #ef2634;
  color: #fff;
  font-weight: bold;
  font-size: clamp(0.625rem, 0.534rem + 0.45vw, 0.875rem);
  padding: 2px 8px;
  border-radius: 2px;
}
/* 公式サイトボタン */
.official-btn {
  position: relative;
  width: 100%;
}
.official-btn a {
  display: grid;
  height: 3em;
  width: 88%;
  place-content: center;
  background: #fe544a;
  margin-left: auto;
  margin-right: auto;
  color: #fff;
  font-size: clamp(0.688rem, 0.639rem + 0.81vw, 1.25rem);
  animation: dokidoki 1s ease-in-out infinite;
  text-decoration: none;
  font-weight: bold;
  box-shadow: 2px 2px #ae5a55;
}
.official-btn a span {
  padding-right: 1em;
}
.official-btn a span::after {
  content: "";
  width: 1.35em;
  aspect-ratio: 1;
  background: url("../images/icon-btn_arrow.webp") no-repeat center/contain;
  position: absolute;
  right: clamp(0.375rem, 0.348rem + 0.45vw, 0.688rem);
  top: 50%;
  translate: 0 -50%;
}

/* ===== セクション見出し ===== */
.section-header {
  background: #5182e6;
  padding: 18px 0;
  text-align: center;
  margin-bottom: 0;
}
.section-sub {
  color: #fff;
  font-size: clamp(1rem, 0.957rem + 0.72vw, 1.5rem);
}
.section-main {
  color: #fff;
  font-size: clamp(1rem, 0.828rem + 2.9vw, 3rem);
  font-weight: 900;
  line-height: 1.3;
}
/* ===== 切る vs 切らない ===== */
.vs-section {
  background-image: url("../images/back-hougan.webp");
  background-size: contain;
  background-repeat: repeat;
  position: relative;
  padding-bottom: 2em;
}
/* 吹き出し */
.chat-section {
  padding: 2vw;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.chat-row {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.chat-row.user {
  flex-direction: row-reverse;
}
.chat-icon {
  width: clamp(4.375rem, 3.239rem + 5.68vw, 7.5rem);
  height: clamp(4.375rem, 3.239rem + 5.68vw, 7.5rem);
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: #fff;
}
.chat-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.chat-row.doctor .chat-icon {
  background: #edf4ff;
}
.chat-row.user .chat-icon {
  background: #edf4ff;
}
.bubble {
  position: relative;
  border-radius: 5px;
  padding: 16px 14px;
  font-size: clamp(0.875rem, 0.648rem + 1.14vw, 1.5rem);
  font-weight: bold;
  line-height: 1.6;
  width: 70%;
  box-shadow: 2px 2px #ccc;
  color: #111;
  top: .5vw;
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 750px) {
  .bubble {
    width: 80%;
  }
}
.chat-row.doctor .bubble {
  background: #edf4ff;
  border: 1.5px solid #798cb1;
}
.chat-row.doctor .bubble::before {
  content: '';
  position: absolute;
  top: 18px; left: -10px;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 10px solid #798cb1;
}
.chat-row.doctor .bubble::after {
  content: '';
  position: absolute;
  top: 19px;
  left: -8px;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-right: 9px solid #edf4ff;
}
.chat-row.user .bubble {
  background: #fdf9e3;
  border: 1.5px solid #798cb1;
}
.chat-row.user .bubble::before {
  content: '';
  position: absolute;
  top: 18px; right: -10px;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 10px solid #798cb1;
}
.chat-row.user .bubble::after {
  content: '';
  position: absolute;
  top: 19px; right: -8px;
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 9px solid #fdf9e3;
}
.bubble .red { color: #e00; }

/* Check */
.check-box-section {
  padding: 2vw;
  margin-top: 2.5em;
}
.check-box {
  border: 1px solid #798cb1;
  border-radius: 20px;
  padding: 1.5em 1em 1em;
  position: relative;
  font-size: clamp(0.75rem, 0.686rem + 1.09vw, 1.5rem);
  line-height: 1.7;
  color: #222;
  background-color: #edf4ff;
  display: flex;
  justify-content: center;
}
.check-box-label {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  background: #11274e;
  color: #fff;
  font-weight: bold;
  font-size: clamp(12px, 2.8vw, 15px);
  padding: 3px 10vw;
  border-radius: 20px;
  white-space: nowrap;
}
.check-box p {
  padding: .5em 0;
  font-weight: bold;
}
.check-box .hl {
  color: #1f4994;
}

/* ===== 重要5ポイント見出し ===== */
.point5-section .section-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.point5-section .section-sub img {
  width: clamp(16px, 3.5vw, 22px);
  height: auto;
}
/* アコーディオン */
.p5-acc-section {
  padding: 12px 16px;
  color: #1f4994;
}
.acc-item {
  border: 3px solid #1f4994;
  border-radius: 10px;
  margin-bottom: 10px;
  overflow: hidden;
}
.acc-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1em 3vw;
  cursor: pointer;
  background: #fff;
  user-select: none;
}
.acc-trigger .acc-icon {
  font-size: clamp(1.125rem, 1.071rem + 0.9vw, 1.75rem);
  font-weight: 300;
  line-height: 1;
  transition: transform 0.3s;
  flex-shrink: 0;
  margin-left: 1em;
}
.acc-titlebox {
  display: flex;
  gap: 8px;
  line-height: 1.3;
  justify-content: space-between;
  font-size: clamp(1.125rem, 1.071rem + 0.9vw, 1.75rem);
  font-weight: bold;
  align-items: center;
}
@media screen and (max-width: 480px) {
  .acc-titlebox span.txt_s {
    font-size: clamp(0.875rem, 0.827rem + 0.81vw, 1.438rem);
  }
}
.acc-body {
  display: none;
  padding: 1em 16px 16px;
  background: #f5f5f5;
}
.acc-item.open .acc-body {
  display: block;
}

/* アコーディオン内コンテンツ */
.acc-content {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.acc-img {
  width: clamp(100px, 28vw, 160px);
  flex-shrink: 0;
  border-radius: 6px;
  overflow: hidden;
}
.acc-img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}
.acc-text {
  font-size: clamp(0.813rem, 0.786rem + 0.45vw, 1.125rem);
  line-height: 1.7;
  color: #333;
}
/* アコーディオン下テキスト */
.p5-text {
  font-size: clamp(0.875rem, 0.827rem + 0.81vw, 1.438rem);
  padding: 0 16px 2em;
  font-weight: bold;
}
.p5-text span {
  color: #1f4994;
}

/* ===== サイト詳細セクション ===== */
.ranking-detail-section {
  background: #798cb1;
  padding: 24px 14px;
}

/* セクションタイトル */
.rd-section-title {
  text-align: center;
  margin-bottom: 2vw;
}
.rd-section-title .rd-date {
  display: inline-block;
  background: #1f4994;
  color: #fff;
  font-size: clamp(0.875rem, 0.832rem + 0.72vw, 1.375rem);
  font-weight: bold;
  padding: 4px 18px;
  border-radius: 20px;
  margin-bottom: 2vw;
}
.rd-section-title .rd-sub {
  color: #fff;
  font-size: clamp(1.063rem, 1.02rem + 0.72vw, 1.563rem);
  font-weight: bold;
}
.rd-section-title .rd-main {
  color: #ffff7a;
  font-size: clamp(2rem, 1.871rem + 2.17vw, 3.5rem);
  font-weight: 900;
  line-height: 1.2;
}

/* 各クリニックカード */
.rd-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 20px;
}

/* カードヘッダー */
.rd-card-header {
  display: flex;
  align-items: center;
  padding: 14px 16px 10px;
  border-bottom: 1px solid #e8edf5;
  gap: 10px;
}
.rd-card-header .crown {
  width: clamp(32px, 7vw, 48px);
  height: auto;
  flex-shrink: 0;
  padding-bottom: 5px;
}
.rd-card-header .clinic-name {
  font-size: clamp(22px, 5.5vw, 34px);
  font-weight: 900;
  color: #222;
  flex: 1;
}
.rd-card-header .clinic-name_s {
  font-size: clamp(0.875rem, 0.768rem + 1.81vw, 2.125rem);
  font-weight: 900;
  color: #222;
  flex: 1;
}
.rd-card-header .score {
  font-size: clamp(1.438rem, 1.384rem + 0.9vw, 2.063rem);
  font-weight: 900;
  color: #e00;
  white-space: nowrap;
  line-height: 1;
}
.rd-card-header .score span { font-size: 0.55em; }

/* カード本文 */
.rd-card-body {
  padding: 14px 16px;
}
.rd-card-desc {
  font-size: clamp(0.938rem, 0.884rem + 0.9vw, 1.563rem);
  font-weight: bold;
  line-height: 1.5;
  color: #222;
  margin-bottom: 14px;
}
.rd-card-img {
  width: 100%;
  overflow: hidden;
  line-height: 0;
}
.rd-card-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* おすすめポイント */
.recommend-box {
  margin: 14px 0;
  border: 2px solid #5182e6;
  overflow: hidden;
}
.recommend-box-title {
  background: #5182e6;
  color: #fff;
  font-size: clamp(1.25rem, 1.218rem + 0.54vw, 1.625rem);
  font-weight: bold;
  text-align: center;
  padding: 1.2vw 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.recommend-box-title img {
  width: clamp(1.25rem, 1.218rem + 0.54vw, 1.625rem);
  height: auto;
}
.recommend-list {
  padding: 10px 12px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.recommend-item {
  display: flex;
  align-items: flex-start;
  gap: .3em;
  font-size: clamp(1rem, 0.979rem + 0.36vw, 1.25rem);
  line-height: 1.6;
  color: #222;
  font-weight: bold;
}
.recommend-item img {
  width: clamp(18px, 4vw, 24px);
  height: auto;
  flex-shrink: 0;
  margin-top: min(5px, 1.4vw);
  mix-blend-mode: multiply;
}
.recommend-item .price-red {
  color: #e00;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.recommend-item .note {
  font-size: 0.8em;
  font-weight: normal;
  color: #555;
}

/* クリニック詳細テーブル */
.clinic-detail-table {
  border: 1px solid #d0d8e8;
  overflow: hidden;
}
.cdt-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  border-bottom: 1px solid #d0d8e8;
}
.cdt-row:last-child { border-bottom: none; }
.cdt-row.header-row {
  background: #eef2fa;
}
.cdt-cell {
  padding: 8px .2em;
  text-align: center;
  border-right: 1px solid #d0d8e8;
  font-size: clamp(1rem, 0.979rem + 0.36vw, 1.25rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.cdt-cell:last-child { border-right: none; }
.cdt-cell.header-cell {
  font-weight: bold;
  color: #333;
  background: #eef2fa;
  font-size: clamp(0.688rem, 0.661rem + 0.45vw, 1rem);
}
/* 記号アイコン */
.cdt-mark-icon img {
  display: block;
  width: min(10vw, 30%);
  height: auto;
  margin: 0 auto;
}
.cdt-cell .cdt-val {
  font-size: clamp(0.688rem, 0.677rem + 0.18vw, 0.813rem);
  color: #333;
  line-height: 1.4;
  text-align: center;
}
.cdt-cell .cdt-val_s {
  font-size: clamp(0.625rem, 0.62rem + 0.09vw, 0.688rem);
  color: #333;
  line-height: 1.4;
  text-align: center;
}
.cdt-cell .star { color: #333; font-size: clamp(10px, 2.2vw, 12px); }

/* 料金テーブル */
.price-menu-table {
  border: 1px solid #d4d5d7;
  margin: 1.5em 0;
  width: 100%;
  border-spacing: 0;
}
.pmt-header {
  background: #1f4994;
  color: #fff;
  font-weight: bold;
  font-size: clamp(1.063rem, 1.014rem + 0.81vw, 1.625rem);
  text-align: center;
}
.price-menu-table th,
.price-menu-table td {
  padding: .5em 1em;
  text-align: center;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.price-menu-table th {
  border-right: 1px solid #d4d5d7;
}
.price-menu-table tr:not(:last-child) th,
.price-menu-table tr:not(:last-child) td {
  border-bottom: 1px solid #d4d5d7;
}
.price-menu-table td {
  width: 40%;
}
.pmt-name {
  max-width: 17em;
  text-align: center;
  margin: 0 auto;
}
.pmt-name p {
  text-align: left;
}
.pmt-name, .pmt-price {
  font-size: clamp(0.75rem, 0.718rem + 0.54vw, 1.125rem);
  font-weight: bold;
}
.pmt-price {
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.pmt-price .original {
  display: block;
  font-size: 0.85em;
  color: #999;
  text-decoration: line-through;
  font-weight: normal;
}
.pmt-price .discounted { color: #e00; }
.pmt-price.att {
  text-align: right;
  font-size: 0.5em;
}
  

/* アイコン付きセクション共通 */
.section-title {
display: flex;
align-items: center;
gap: 4px;
font-size: clamp(1rem, 0.957rem + 0.72vw, 1.5rem);
font-weight: 900;
color: #2a4a8c;
margin-bottom: 10px;
}
.section-title img {
  width: clamp(1.75rem, 1.739rem + 0.18vw, 1.875rem);
  height: auto;
}
/* Google口コミ */
.review-section {
  padding: 14px 0 16px;
}
.review-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(1.25rem, 1.218rem + 0.54vw, 1.625rem);
  font-weight: 900;
  color: #2a4a8c;
  margin-bottom: 10px;
}
.review-section-title img {
  width: clamp(1.75rem, 1.739rem + 0.18vw, 1.875rem);
  height: auto;
}

/* 口コミアコーディオン */
.review-accordion {
  border: 1.5px solid #d4d5d7;
  overflow: hidden;
  margin-bottom: 8px;
}
.review-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  cursor: pointer;
  background: #fff;
  user-select: none;
}
.review-trigger .rev-icon {
  width: clamp(44px, 10vw, 60px);
  height: clamp(44px, 10vw, 60px);
  border-radius: 50%;
  flex-shrink: 0;
  overflow: hidden;
  background: #e8eef8;
}
.review-trigger .rev-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.review-trigger .rev-title {
  flex: 1;
  font-size: clamp(0.75rem, 0.707rem + 0.72vw, 1.25rem);
  font-weight: bold;
  color: #222;
}
.review-trigger .rev-chevron {
  color: #aaa;
  font-size: clamp(16px, 3.5vw, 20px);
  flex-shrink: 0;
  transition: transform 0.3s;
}
.review-accordion.open .rev-chevron {
  transform: rotate(180deg);
}
.review-body {
  display: none;
  background: #fff;
  padding: 12px 14px;
}
.review-accordion.open .review-body {
  display: block;
}
.review-body p {
  font-size: clamp(0.813rem, 0.791rem + 0.36vw, 1.063rem);
  line-height: 1.7;
  color: #333;
}
.arrow_box {
	position: relative;
	background: #f5f5f5;
	border: none;
  border-radius: 10px;
  padding: 1em;
}
.arrow_box:after, .arrow_box:before {
	bottom: 100%;
	left: 5%;
	border: solid transparent;
	content: "";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
}
@media screen and (max-width: 480px) {
  .arrow_box:after, .arrow_box:before {
    left: 10%;
  }
}
.arrow_box:after {
	border-color: rgba(245, 245, 245, 0);
	border-bottom-color: #f5f5f5;
	border-width: 8px;
	margin-left: -8px;
}
.arrow_box:before {
	border-color: rgba(245, 245, 245, 0);
	border-bottom-color: #f5f5f5;
	border-width: 14px;
	margin-left: -14px;
}

.review-text {
  text-align: right;
  width: 100%;
  margin-right:1em;
  font-size: clamp(0.625rem, 0.58rem + 0.23vw, 0.75rem);
  line-height: 1.3;
  color: #888;
}

/* キャンペーン情報 */
.campaign-section {
  padding: 14px 0 2em;
}
.campaign-box {
  border: 3px solid #1f4994;
  border-radius: 8px;
  overflow: hidden;
  width: 80%;
  margin: 0 auto;
}
@media screen and (max-width: 750px) {
  .campaign-box {
    width: 100%;
  }
}
.campaign-box-header {
  background: #1f4994;
  color: #fff;
  text-align: center;
  font-size: clamp(1.063rem, 1.014rem + 0.81vw, 1.625rem);
  font-weight: bold;
  padding: .3em 0;
}
.campaign-box-body {
  background: #fffef0;
  padding: .8em;
  display: flex;
  align-items: center;
  gap: 1em;
  flex-wrap: nowrap;
  justify-content: center;
}
@media screen and (max-width: 750px) {
  .campaign-box-body {
    gap: 12px;
  }
}
.campaign-label {
  font-size: clamp(0.75rem, 0.68rem + 1.18vw, 1.563rem);
  font-weight: bold;
  color: #222;
  white-space: nowrap;
  text-align: center;
}
.campaign-off-badge {
  background: #2a4a8c;
  color: #ffff93;
  font-weight: bold;
  font-size: clamp(0.75rem, 0.68rem + 1.18vw, 1.563rem);
  padding: .2em 1em;
  white-space: nowrap;  
  text-align: center;
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.campaign-original {
  font-size: clamp(0.75rem, 0.68rem + 1.18vw, 1.563rem);
  color: #333;
  text-decoration: line-through;
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.campaign-arrow { font-weight: 900; }
.campaign-discounted {
  font-size: clamp(1.438rem, 1.341rem + 1.63vw, 2.563rem);
  font-weight: 900;
  color: #e00;
  line-height: 1;
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.campaign-discounted small {
  font-size: 0.4em;
  color: #333;
  font-weight:normal;
}
.campaign-box-text {
  background: #fffef0;
  text-align: center;
  font-weight: 900;
  font-size: clamp(0.75rem, 0.68rem + 1.18vw, 1.563rem);
  padding-bottom: .2em;
}

/* 店舗情報テーブル */
.store-section {
  padding: 14px 0 2em;
}
.store-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #cacaca;
  overflow: hidden;
  font-size: clamp(0.563rem, 0.525rem + 0.63vw, 1rem);
}
.store-table tr {
  border-bottom: 1px solid #cacaca;
}
.store-table tr:last-child {
  border-bottom: none;
}
.store-table td {
  padding: .5em;
  vertical-align: middle;
}
.store-table .region {
  background: #1f4994;
  color: #fff;
  font-weight: bold;
  text-align: center;
  white-space: nowrap;
  width: 28%;
}
.store-table .clinics {
  background: #fff;
  color: #337cf0;
  line-height: 1.3;
}
.store-table .clinics a {
  color: #3366cc;
  margin-right: 10px;
}
.store-table .clinics a:hover { text-decoration: underline; }
.store-list {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.store-list > li {
  -ms-flex-preferred-size: calc(100%/3);
  flex-basis: calc(100%/3);
  padding: 0.3em;
  font-size: clamp(0.563rem, 0.525rem + 0.63vw, 1rem);
}
.store-list > li a {
  color: #1a73e8;
  text-decoration: underline;
  line-height: 1.4;
}
ul.store-list li:nth-child(3n) a {
  margin-right: 0;
}
/* CTAボタン（吹き出し付き） */
.cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 2em;
  position: relative;
}
.cta-wrap .cta-balloon {
  width: min(75%, 20em);
  text-align: center;
  background: #fff;
  border: 2px solid #cf3f3c;
  border-radius: 100vmax;
  color: #cf3f3c;
  font-weight: 600;
  font-size: clamp(0.563rem, 0.477rem + 1.45vw, 1.563rem);
  height: 2.5em;
  display: grid;
  place-content: center;
  z-index: 1;
  padding-bottom: 3px;
  position: relative;
}
.cta-wrap .cta-balloon.long{
  width: min(85%, 25em);
  font-size: clamp(0.563rem, 0.477rem + 1.45vw, 1.563rem);
}
.cta-wrap .cta-balloon::before, .cta-wrap .cta-balloon::after {
  content: "";
  width: min(15px, 8vw);
  aspect-ratio: 1/.65;
  clip-path: polygon(0 0, 44% 100%, 100% 0);
  position: absolute;
  left: 50%;
  translate: -50% 100%;
}
.cta-wrap .cta-balloon::before {
  background: #cf3f3c;
  bottom: 0;
}
.cta-wrap .cta-balloon::after {
  background: #fff;
  bottom: 4px;
}
.cta-wrap .cta-btn {
  width: 95%;
  aspect-ratio: 1/.22;
  border-radius: 5px;
  background: linear-gradient(#fe564b, #ff7070);
  display: grid;
  place-content: center;
  place-items: center;
  font-size: min(25px, calc(100vw/24));
  line-height: calc(21/14);
  padding-top: .5em;
  margin-top: -.5em;
  animation: dokidoki 1s ease-in-out infinite;
  box-shadow: 5px 4px 7px -2px rgba(0, 0, 0, 0.4);
}
.cta-wrap .cta-btn .cta-sub-text {
  color: #FCFF00;
  font-size: clamp(0.688rem, 0.602rem + 1.45vw, 1.688rem);
  letter-spacing: .05em;
  font-weight: 600;
}
.cta-wrap .cta-btn .cta-sub-text_s {
  color: #FCFF00;
  font-size: clamp(0.688rem, 0.655rem + 0.54vw, 1.063rem);
  letter-spacing: 0;
  font-weight: 600;
}
.cta-wrap .cta-btn .cta-sub-text_s small{
  font-size: 0.7em;
}
.cta-wrap .cta-btn .cta-main-text {
  font-size: min(40px, calc(100vw/20));
  color: #fff;
  letter-spacing: .025em;
  font-weight: 700;
}
.cta-wrap .cta-btn::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  translate: -30% -50%;
  width: 1.25em;
  aspect-ratio: 1;
  background: url("../images/icon-btn_arrow.webp") no-repeat center/contain;
}
a.cta-link {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 1;
}

/* ===== Q&Aセクション ===== */
.qa-section {
  padding: 24px 14px;
  background-image: url('../images/back-hougan.webp');
  background-size: cover;
  background-repeat: repeat;
  position: relative;
}
.qa-title-wrap {
  text-align: center;
  margin-bottom: 20px;
}
.qa-title-badge {
  display: inline-block;
  background: #5182e6;
  color: #fff;
  font-size: clamp(1.125rem, 1.071rem + 0.9vw, 1.75rem);
  font-weight: bold;
  padding: 8px 28px;
  border-radius: 30px;
  position: relative;
  box-shadow: 0 2px 8px rgba(100,130,220,0.3);
  width: 90%;
}
.qa-title-badge::after {
  content: '';
  position: absolute;
  bottom: -10px; left: 50%;
  transform: translateX(-50%);
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 11px solid #5182e6;
}

/* Q&Aアコーディオン */
.qa-accordion {
  background: #fff;
  border-radius: 12px;
  margin-bottom: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.07);
}
.qa-trigger {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 14px 14px 12px;
  cursor: pointer;
  user-select: none;
  background: #eaeaea;
}
.qa-accordion.open .acc-trigger {
  background: #eaeaea;
}
.qa-q-badge {
  width: clamp(28px, 6.5vw, 38px);
  height: clamp(28px, 6.5vw, 38px);
  border-radius: 50%;
  border: 1px solid #5182e6;
  color: #5182e6;
  font-size: clamp(0.938rem, 0.921rem + 0.27vw, 1.125rem);
  font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  background: #fff;
}
.qa-trigger .qa-question {
  flex: 1;
  font-size: clamp(0.75rem, 0.707rem + 0.72vw, 1.25rem);
  font-weight: bold;
  color: #222;
  line-height: 1.5;
}
.qa-trigger .qa-icon {
  font-size: clamp(18px, 4vw, 24px);
  font-weight: 300;
  color: #888;
  flex-shrink: 0;
  transition: transform 0.3s;
  line-height: 1;
}

.qa-body {
  display: none;
  padding: 14px 14px 16px;
  background: #f5f7fc;
}
.qa-accordion.open .qa-body {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: #e7f0ff;
}
.qa-a-badge {
  width: clamp(28px, 6.5vw, 38px);
  height: clamp(28px, 6.5vw, 38px);
  border-radius: 50%;
  background: #5182e6;
  border: 1px solid #fff;
  color: #fff;
  font-size: clamp(0.938rem, 0.921rem + 0.27vw, 1.125rem);
  font-weight: 900;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}
.qa-answer {
  font-size: clamp(0.813rem, 0.791rem + 0.36vw, 1.063rem);
  line-height: 1.7;
  color: #333;
  flex: 1;
}

/* ===== 30秒診断・検索ブロック ===== */
.search-section {
  background: #f5f5f5;
  padding: 0 0 24px;
}
.search-header {
  position: relative;
  display: inline-block;
  margin: 0 0 1.5em;
  padding: 1em 0;
  color: #555;
  font-size: 16px;
  background: #1f4994;
  width: 100%;
  text-align: center;
  border: 1px solid #1f4994;
}
.search-header:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -15px;
  border: 15px solid transparent;
  border-top: 15px solid #1f4994;
}
.search-header-title {
  color: #fff;
  font-size: clamp(1.5rem, 1.436rem + 1.09vw, 2.25rem);
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1.2;
}
.search-header-title .icon {
  width: clamp(1.75rem, 1.739rem + 0.18vw, 1.875rem);
  height: auto;
}
.search-header-sub {
  color: #fff;
  font-size: clamp(13px, 3.2vw, 16px);
  margin-top: 4px;
  opacity: 0.95;
  font-weight: bold;
}

.search-body {
  padding: 10px 16px 0;
}

/* 質問グループ */
.search-group { margin-bottom: 16px; }
.search-group-label {
  background: #5083e5;
  color: #fff;
  font-size: clamp(13px, 3.2vw, 16px);
  font-weight: bold;
  padding: 7px 14px;
  margin-bottom: 10px;
  display: block;
}

/* セレクトボックス */
.search-select {
  width: 55%;
  padding: 9px 12px;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  font-size: clamp(13px, 3vw, 15px);
  background: #fff;
  color: #333;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23555' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

/* トグルボタングループ */
.search-btn-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.search-toggle {
  background: #fff;
  border: 1.5px solid #ccc;
  border-radius: 6px;
  padding: 10px 8px;
  font-size: clamp(12px, 3vw, 15px);
  color: #333;
  cursor: pointer;
  text-align: center;
  transition: all 0.15s;
  font-weight: bold;
}
.search-toggle.selected {
  background: #eef3ff;
  border-color: #4a7ce8;
  color: #2a5acc;
}

/* 検索ボタン */
.search-submit-btn {
  display: block;
  width: 90%;
  background: #fc8822;
  color: #fff;
  font-size: clamp(17px, 4.5vw, 24px);
  font-weight: 900;
  padding: .5em;
  border-radius: 5px;
  border: none;
  cursor: pointer;
  margin: 20px auto 0;
  box-shadow: 0 4px 0 #a04000;
  letter-spacing: 0.5px;
}
.search-submit-btn:active {
  transform: translateY(2px);
  box-shadow: 0 2px 0 #a04000;
}

/* 検索結果エリア */
.search-results {
  padding: 0 16px;
  margin-top: 20px;
  display: none;
}
.search-results.visible { display: block; }
.search-results-title {
  font-size: clamp(13px, 3.2vw, 16px);
  font-weight: bold;
  color: #333;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid #5b8fd4;
}
.search-results-title span { color: #e00; }
/* 検索結果 サイトイメージ */
.result-card {
  border: 3px solid #1f4994;
  border-radius: 5px;
  background: #fff;
  overflow: hidden;
  margin-bottom: 1em;
  padding: 14px 14px 0;
}
.result-card-inner {
  display: flex;
  gap: 2vw;
  align-items: flex-start;
  margin-bottom: 1em;
}
.result-card-img {
  width: clamp(8.125rem, 7.641rem + 8.14vw, 13.75rem);
  flex-shrink: 0;
  overflow: hidden;
  line-height: 0;
}
.result-card-img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}
.result-card-info {
  flex: 1;
  min-width: 0;
}
/*.result-card-rank {
  font-size: clamp(10px, 2.2vw, 12px);
  color: #888;
  margin-bottom: 2px;
}*/
.result-card-name {
  font-size: clamp(18px, 4.8vw, 28px);
  font-weight: 900;
  color: #2a5acc;
  text-decoration: underline;
  text-underline-offset: 3px;
  margin-bottom: .5em;
  line-height: 1.2;
}
.result-card-score {
  display: flex;
  gap: 10px;
  margin-bottom: .1em;
  flex-wrap: wrap;
}
.result-card-score-label {
  background: #1f4994;
  color: #fff;
  font-size: clamp(0.5rem, 0.446rem + 0.9vw, 1.125rem);
  font-weight: bold;
  padding: 0 8px;
  white-space: nowrap;
  text-align: center;
}
.result-card-stars img {
  width: clamp(3.75rem, 3.374rem + 6.33vw, 8.125rem);
  margin-top: 2px;
}
.result-card-score-num {
  font-size: clamp(1.625rem, 1.496rem + 2.17vw, 3.125rem);
  font-weight: 900;
  color: #e00;
  line-height: 1;
}
.result-card-score-num span { font-size: 0.6em; }
.result-card-desc {
  font-size: clamp(0.5rem, 0.436rem + 1.09vw, 1.25rem);
  line-height: 1.4;
}
.result-cta {
  display: block;
  background: #e8604a;
  color: #fff;
  text-align: center;
  padding: 9px;
  border-radius: 6px;
  font-weight: bold;
  font-size: clamp(12px, 3vw, 14px);
  text-decoration: none;
  box-shadow: 0 3px 0 #a03020;
}

/* 検索結果なし */
.no-result {
  text-align: center;
  padding: 20px;
  color: #666;
  font-size: clamp(13px, 3vw, 15px);
  background: #fff;
  border-radius: 8px;
  border: 1.5px dashed #ccc;
}

/* ===== まとめCTAブロック ===== */
.summary-section {
  padding: 20px 16px 28px;
  background-image: url('../images/back-hougan.webp');
  background-size: cover;
}
.summary-lead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: clamp(0.875rem, 0.827rem + 0.81vw, 1.438rem);
  font-weight: bold;
  color: #333;
  margin-bottom: .5em;
  text-align: center;
}
.summary-lead .arrow-down {
  color: #4a7cc7;
  font-size: clamp(16px, 4vw, 22px);
}
.summary-card {
  border: 3px solid #1f4994;
  border-radius: 5px;
  background: #fff;
  overflow: hidden;
  padding: 14px 14px 0;
}
.summary-card-inner {
  display: flex;
  gap: 2vw;
  align-items: flex-start;
  margin-bottom: 1em;
}
.summary-card-img {
  width: clamp(8.125rem, 7.641rem + 8.14vw, 13.75rem);
  flex-shrink: 0;
  overflow: hidden;
  line-height: 0;
}
.summary-card-img img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
  }

.summary-card-info {
  flex: 1;
  min-width: 0;
}
.summary-clinic-name {
  font-size: clamp(18px, 4.8vw, 28px);
  font-weight: 900;
  color: #2a5acc;
  text-decoration: underline;
  text-underline-offset: 3px;
  margin-bottom: .5em;
  line-height: 1.2;
}
.summary-score {
  display: flex;
  gap: 10px;
  margin-bottom: .1em;
  flex-wrap: wrap;
}
.summary-score-label {
  background: #1f4994;
  color: #fff;
  font-size: clamp(0.5rem, 0.446rem + 0.9vw, 1.125rem);
  font-weight: bold;
  padding: 0 8px;
  white-space: nowrap;
  text-align: center;
}
.summary-stars img {
  width: clamp(3.75rem, 3.374rem + 6.33vw, 8.125rem);
  margin-top: 2px;
}
.summary-score-num {
  font-size: clamp(1.75rem, 1.632rem + 1.99vw, 3.125rem);
  font-weight: 900;
  color: #e00;
  line-height: 1;
}
.summary-score-num span { font-size: 0.6em; }
.summary-desc {
  font-size: clamp(0.5rem, 0.436rem + 1.09vw, 1.25rem);
  line-height: 1.4;
}

/* ===== フッター ===== */
.footer {
  background: #575757;
  padding: 14px 16px;
  text-align: center;
  margin-bottom: 2em;
}
.footer-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
.footer-links a {
  color: #fff;
  font-size: clamp(11px, 2.6vw, 13px);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
}
.footer-links a::before {
  content: '▶';
  font-size: 0.7em;
  opacity: 0.8;
}
.footer-links a:hover { text-decoration: underline; }
.footer-sep {
  color: rgba(255,255,255,0.4);
  font-size: 12px;
}


@keyframes dokidoki {
  0% {
    filter: brightness(1);
    transform: scale(1)
  }
  50% {
    filter: brightness(1);
    transform: scale(1.025)
  }
  51% {
    filter: brightness(1.3);
    transform: scale(1.05)
  }
  75% {
    filter: brightness(1.1);
    transform: scale(1.025)
  }
  100% {
    filter: brightness(1);
    transform: scale(1)
  }
}


  /* ===== サブページ ===== */
.page-header {
  background: #5182e6;
  min-height: min(120px, 25vw);
  display: flex;
  overflow: hidden;
  padding: min(40px, 6vw);
  justify-content: left;
  align-items: center;
}

.page-title {
  color: #fff;
  font-size: clamp(1.063rem, 0.949rem + 0.57vw, 1.375rem);;
  font-weight: 900;
  text-align: left;
}

/* ===== コンテンツ ===== */
#sub.content {
  padding: 28px 20px 40px;
}

/* セクション */
#sub .section {
  margin-bottom: 36px;
}
#sub .section-title {
  font-size: clamp(0.813rem, 0.786rem + 0.45vw, 1.125rem);
  font-weight: bold;
  color: #222;
  padding-bottom: 8px;
  border-bottom: 2px solid #2a5bbf;
  margin-bottom: 14px;
}

/* テーブル */
.info-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #2a5bbf;
  overflow: hidden;
}
.info-table tr {
  border-bottom: 1px solid #2a5bbf;
}
.info-table tr:last-child {
  border-bottom: none;
}
.info-table th {
  background: #1f4994;
  color: #fff;
  font-size: clamp(12px, 3vw, 15px);
  font-weight: normal;
  padding: 12px 14px;
  width: 35%;
  vertical-align: middle;
  border-bottom: 1px solid #2a5bbf;
  text-align: left;
}
.info-table tr:last-child th,
.info-table tr:last-child td {
  border-bottom: none;
}
.info-table td {
  font-size: clamp(12px, 3vw, 15px);
  padding: 12px 14px;
  vertical-align: middle;
  line-height: 1.7;
  border-left: 1px solid #2a5bbf;
  border-bottom: 1px solid #2a5bbf;
}
/* サイトリスト */
.info-table.site td {
  border-left: none;
}

.info-table.site tr td:first-child {
  width: 60%;
}

.info-textarea p {
  line-height: 1.6em;
}


/* ===== フォーム ===== */
.form {
  margin-top: 2em;
}
.form-group {
  margin-bottom: 24px;
}
.form-label {
  display: block;
  font-size: clamp(13px, 3.2vw, 15px);
  font-weight: bold;
  color: #333;
  margin-bottom: 8px;
}
.form-label .required {
  display: inline-block;
  background: #e00;
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  padding: 1px 6px;
  border-radius: 3px;
  margin-left: 6px;
  vertical-align: middle;
}
.form-input,
.form-textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid #d0d8ee;
  border-radius: 6px;
  font-size: clamp(13px, 3.2vw, 15px);
  font-family: inherit;
  background: #f8f9ff;
  color: #222;
  transition: border-color 0.2s, background 0.2s;
  outline: none;
  -webkit-appearance: none;
}
.form-input:focus,
.form-textarea:focus {
  border-color: #2a5bbf;
  background: #fff;
}
.form-textarea {
  height: 160px;
  resize: vertical;
  line-height: 1.7;
}

/* 送信ボタン */
.btn-wrap {
  margin-top: 32px;
}
.btn-confirm {
  display: block;
  width: 100%;
  padding: 16px;
  border: 2px solid #2a5bbf;
  border-radius: 50px;
  background: #fff;
  color: #2a5bbf;
  font-size: clamp(15px, 3.8vw, 18px);
  font-weight: bold;
  font-family: inherit;
  cursor: pointer;
  text-align: center;
  transition: background 0.2s, color 0.2s;
}
.btn-confirm:hover {
  background: #2a5bbf;
  color: #fff;
}

/* エラーメッセージ */
.error-msg {
  color: #e00;
  font-size: clamp(11px, 2.6vw, 13px);
  margin-top: 5px;
  display: none;
}
.form-input.error,
.form-textarea.error {
  border-color: #e00;
  background: #fff5f5;
}

.confirm-note {
  font-size: clamp(12px, 2.8vw, 14px);
  color: #666;
  margin-bottom: 24px;
}

/* 確認テーブル */
.confirm-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #d0d8ee;
  overflow: hidden;
  margin-bottom: 32px;
}
.confirm-table tr { border-bottom: 1px solid #d0d8ee; }
.confirm-table tr:last-child { border-bottom: none; }
.confirm-table th {
  background: #2a5bbf;
  color: #fff;
  font-size: clamp(12px, 3vw, 15px);
  font-weight: bold;
  padding: 12px 14px;
  width: 35%;
  vertical-align: top;
  text-align: left;
  border-bottom: 1px solid #3a6bcf;
}
.confirm-table tr:last-child th { border-bottom: none; }
.confirm-table td {
  font-size: clamp(12px, 3vw, 15px);
  padding: 12px 14px;
  vertical-align: top;
  line-height: 1.7;
  border-left: 1px solid #d0d8ee;
  border-bottom: 1px solid #d0d8ee;
  word-break: break-all;
}

/* ボタン */
.btn-wrap {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.btn-submit {
  display: block;
  width: 100%;
  padding: 16px;
  border: none;
  border-radius: 50px;
  background: #2a5bbf;
  color: #fff;
  font-size: clamp(15px, 3.8vw, 18px);
  font-weight: bold;
  font-family: inherit;
  cursor: pointer;
  text-align: center;
  transition: opacity 0.2s;
}
.btn-submit:hover { opacity: 0.85; }
.btn-back {
  display: block;
  width: 100%;
  padding: 14px;
  border: 2px solid #aaa;
  border-radius: 50px;
  background: #fff;
  color: #666;
  font-size: clamp(13px, 3.2vw, 16px);
  font-weight: bold;
  font-family: inherit;
  cursor: pointer;
  text-align: center;
  transition: background 0.2s;
}
.btn-back:hover { background: #f5f5f5; }

.thanks-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #2a5bbf;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-size: 30px;
  color: #fff;
}
.thanks-textbox {
  text-align: center;
  }
.thanks-title {
  font-size: clamp(18px, 4.5vw, 24px);
  font-weight: 900;
  color: #2a4a8c;
  margin-bottom: 16px;
}
.thanks-text {
  font-size: clamp(13px, 3.2vw, 15px);
  color: #555;
  line-height: 1.9;
  margin-bottom: 36px;
}
.btn-top {
  display: inline-block;
  padding: 14px 40px;
  border: none;
  border-radius: 50px;
  background: #2a5bbf;
  color: #fff;
  font-size: clamp(13px, 3.2vw, 16px);
  font-weight: bold;
  font-family: inherit;
  text-decoration: none;
  transition: opacity 0.2s;
}
.btn-top:hover { opacity: 0.85; }
