@charset "utf-8";

/* =========================================================
   探す（千葉県内市町村別の支援一覧）
   ========================================================= */

/* ---------- 白カード ---------- */
.l-card {
  width: 100%;
  max-width: var(--w-content);
  margin: 2.3125rem auto 0;
  background: #fff;
  border-radius: 1.25rem;
}
.l-card--main { overflow: hidden; }

.p-town { margin-top: 9rem; }
.p-town img { display: block; width: 100%; }
.p-search-page .p-cta-split { margin-top: 3.75rem; }

/* ヒーロー（リード文なし・タイトルのみ） */
.p-hero-lower--search { padding: 5.625em 0 calc(3.1875em + var(--wave-h)); }

/* ヒーローの装飾（デザイン: deco x=372 / img x=808）。em = 1200px デザインの実寸 */
.p-hero-lower--search .p-hero-lower__deco {
  top: -4.25em;             /* デザイン y=112 */
  transform: translateX(-14.25em);   /* デザイン x=372 */
  width: 9.4375em;          /* 151px */
}
.p-hero-lower--search .p-hero-lower__img {
  top: -4em;                /* デザイン y=116 */
  transform: translateX(13.0625em);  /* デザイン x=808 */
  width: 17em;              /* 272px */
}

/* =========================================================
   検索セクション
   ========================================================= */
.p-finder { padding: 4.375rem 0 0; }

.p-finder__head { padding: 0 7.5rem; }
.p-finder__clinic {
  position: absolute;
  top: 1.5rem;
  right: 5rem;
  width: 7rem;   /* 112px */
}
.p-finder__lead {
  margin-top: 2.25rem;
  font-size: .9375rem;
  line-height: 1.85;
}

.p-finder__box {
  margin: 2.25rem 5rem 0;   /* デザイン: x=200〜1000 */
  padding: 3.125rem 2.5rem 3.75rem;
  border-radius: 1.25rem;
  background: var(--c-cream);
}

/* ---------- STEP ---------- */
.p-step__item + .p-step__item { margin-top: 3.5rem; }

.p-step__num {
  display: inline-block;
  padding: .125rem 1.125rem;
  border: .125rem solid var(--c-pink);
  border-radius: 3.125rem;
  background: #fff;
  color: var(--c-pink);
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.5;
}
.p-step__title {
  margin-top: .5rem;
  font-size: 1.25rem;   /* 20px */
  letter-spacing: .04em;
}
.p-step__note { margin-top: .25rem; font-size: .875rem; }

.p-select { margin-top: 1.5rem; max-width: 22.5rem; }
.p-select::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.125rem;
  width: .875rem;
  height: .875rem;
  transform: translateY(-50%);
  background: url("../img/common/arrow-down-gray.svg") no-repeat center / contain;
  pointer-events: none;
}
.p-select__control {
  padding: .875rem 3rem .875rem 1.5rem;
  border: .0625rem solid #c9c7c4;
  border-radius: .5rem;
  background: #fff;
  color: var(--c-text);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  appearance: none;
}

/* ---------- 状況の選択 ---------- */
.p-choice {
  --bs-gutter-x: .75rem;   /* カード間 12px（デザイン実測） */
  --bs-gutter-y: .75rem;
  margin-top: calc(1.75rem - var(--bs-gutter-y));
}
.p-choice__label { height: 100%; cursor: pointer; }
.p-choice__input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}
.p-choice__body {
  height: 100%;
  padding: 1.5rem 1rem 1.75rem;
  border: .125rem solid var(--c-pink);
  border-radius: 1rem;
  background: #fff;
  transition: background .25s, box-shadow .25s;
}
.p-choice__label:hover .p-choice__body { box-shadow: 0 .25rem .625rem rgba(0, 0, 0, .07); }
.p-choice__input:checked + .p-choice__body {
  background: #fdf1f0;
  box-shadow: 0 0 0 .125rem var(--c-pink) inset;
}
.p-choice__input:focus-visible + .p-choice__body { outline: .1875rem solid var(--c-teal); outline-offset: .125rem; }

.p-choice__title { font-size: 1rem; font-weight: 700; line-height: 1.6; }
.p-choice__icon { width: 8rem; margin: 1.25rem 0 auto; }   /* 128px */
.p-choice__desc { margin-top: 1.25rem; font-size: .875rem; line-height: 1.6; }

.p-step__submit { margin-top: 3.5rem; }
.p-step__error { margin-top: 1.5rem; color: #c33; font-weight: 700; text-align: center; }

/* =========================================================
   検索結果
   ========================================================= */
.p-result { margin-top: 5.5rem; }

.p-result__head { gap: 1.5rem; }
.p-result__title { font-size: 1.5rem; letter-spacing: .04em; }
.p-result__count { margin-top: .5rem; font-size: .875rem; }
.p-result__change { flex: 0 0 auto; }


.p-result__list { margin-top: 2rem; }
.p-result__item {
  padding: 1.875rem;
  border: .125rem solid var(--c-text);
  border-radius: 1rem;
  background: #fff;
}
.p-result__item + .p-result__item { margin-top: 1.5rem; }

.p-tags { gap: .5rem; }
.p-tag {
  display: inline-block;
  min-width: 4.5rem;
  padding: .0625rem .75rem;
  border: .0625rem solid currentColor;
  border-radius: 3.125rem;
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}
.p-tag--before-pregnancy { color: #F19C97; }
.p-tag--during-pregnancy { color: #45BDCF; }
.p-tag--postpartum { color: #F9C04B; }
.p-tag--category {
  color: #45BDCF;
  display: none; /* 分類タグはいったん非表示 */
}

.p-result__name {
  margin-top: 1.5rem;
  font-size: 1.125rem;
  line-height: 1.5;
}
.p-result__label {
  margin-top: 1.5rem;
  color: var(--c-pink);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-result__target { margin-top: .5rem; font-size: 1rem; line-height: 1.6; }
.p-result__desc { margin-top: 1.25rem; font-size: .875rem; line-height: 1.85; }

.p-result__btn { margin-top: 1.75rem; }
.p-result__btn .c-btn { width: auto; min-height: 2.75rem; padding: .25rem 1.75rem; border-radius: 1.375rem; font-size: 1.125rem; }
.p-result__btn .c-btn::after { right: .625rem; width: .75rem; height: .75rem; }
.p-result__contact { margin-top: 1.75rem; font-size: 1rem; }

/* ---------- 注意書き ---------- */
.p-alert {
  margin-top: 2.75rem;
  padding: 1.5rem 1.875rem;
  border-radius: .75rem;
  background: var(--c-gray-bg);
}
.p-alert__title {
  gap: .625rem;
  color: var(--c-pink);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-alert__title img { width: 1.125rem; }
.p-alert__text { margin-top: .625rem; font-size: .875rem; line-height: 1.85; }

.p-result__again { margin-top: 3.25rem; }

/* =========================================================
   レスポンシブ
   ========================================================= */
@media screen and (max-width: 1199px) {
  .l-card { max-width: min(var(--w-content), calc(100% - 2.5rem)); }   /* 左右 20px を空けたまま中央寄せ */
  .p-finder__head { padding-inline: 3.75rem; }
  .p-finder__clinic { right: 2rem; }
  .p-finder__box { margin-inline: 2.5rem; }
}

@media screen and (max-width: 991px) {
  .p-finder { padding-top: 3rem; }
  .p-finder__head { padding-inline: 2.5rem; }
  .p-finder__clinic { position: static; display: block; margin: 0 auto 1rem; }
  .p-finder__box { margin: 2.5rem 1.5rem 0; padding: 2rem 1.5rem 2.5rem; }

  .p-choice__body { gap: 1rem; padding: 1.25rem; }
  .p-choice__icon { width: 5.5rem; margin: 0; order: -1; }
  .p-choice__desc { margin-top: .375rem; }
  .p-choice__title { flex: 0 0 auto; }

  .p-result { margin-top: 3.5rem; }
  .p-result__item { padding: 1.5rem 1.25rem; }
}

@media screen and (max-width: 767px) {
  /* ヒーロー（PC と同じ deco 左 / img 右）。高さは learn ページと共通 */
  .p-hero-lower--search { padding: 2.4rem 0 calc(1.5rem + var(--wave-h)); }
  .p-hero-lower--search .p-hero-lower__inner { padding-left: 1.25rem; padding-right: 7rem; }
  .p-hero-lower--search .p-hero-lower__img {
    top: -1.25rem;
    bottom: auto;
    left: auto;
    right: .625rem;
    transform: none;
    width: 6.25rem;
  }
  /* イラストの逃げ幅を引いた幅でも 1 行に収まるところまで詰める */
  .p-hero-lower--search .p-hero-lower__title { font-size: min(1.0625rem, 4.2vw); letter-spacing: .05em; }

  .l-card { max-width: calc(100% - 1.875rem); border-radius: .875rem; }
  .p-finder__head { padding-inline: 1.25rem; }
  .p-finder__box { margin-inline: 1rem; padding: 1.5rem 1rem 2rem; }

  .p-finder__lead br { display: none; }
  .p-step__title { font-size: 1.0625rem; }
  .p-result__title { font-size: 1.25rem; }

  .p-step__item + .p-step__item,.p-step__submit {
    margin-top: 1.8rem;
  }
  .p-select {margin-top: 0.5rem;}
  .p-choice {margin-top: 0;}
  /* アイコン左 × テキスト右の 2 カラム。カード高さを 140〜150px に収める */
  .p-choice__body {
    display: grid !important;   /* .d-flex を上書き */
    grid-template-columns: 3.5rem 1fr;
    align-items: center;
    gap: .1rem .875rem;
    min-height: 7rem;
    padding: .7rem 1rem;
    text-align: left !important;   /* .text-center を上書き */
  }
  .p-choice__icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 3.8rem;
    height: auto;
    margin: 0;
  }
  .p-choice__title {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    font-size: .9375rem;
  }
  .p-choice__desc {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    margin-top: 0;
    font-size: .8125rem;
  }
  .p-choice__desc br { display: none; }   /* 幅に合わせて自然改行させる */

  .p-result__btn .c-btn { width: 100%; font-size: .9375rem; }
  .p-result__contact { font-size: .875rem; }
}
