/* =========================================================
   area-page.css
   ラビット探偵社 エリアページ用（市区町村LPテンプレ対応）
   ========================================================= */

/* ---------- Base / Reset ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: #222;
  background: #fff;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  line-height: 1.7;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

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

ul,
ol {
  margin: 0;
  padding: 0;
}

p {
  margin: 0;
  font-size: 18px;
}

.ser_under_box3 .box5_list .txt {
  font-size: 18px;
}

table {
  border-collapse: collapse;
  width: 100%;
}

details summary {
  cursor: pointer;
}

.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ---------- Variables ---------- */
:root {
  --container: 1120px;
  --gutter: 16px;

  --c-text: #222;
  --c-muted: #666;
  --c-line: #e5e7eb;
  --c-bg-soft: #f7f8fa;
  --c-bg-accent: #f2f7ff;

  --c-primary: #1f4e79;
  --c-primary-dark: #173a5b;
  --c-primary-soft: #eaf2fb;

  --c-line-btn: #06c755;
  --c-line-btn-dark: #05a847;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;

  --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.08);

  --space-1: 8px;
  --space-2: 12px;
  --space-3: 16px;
  --space-4: 20px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 40px;
  --space-8: 56px;
}

/* ---------- Common Layout ---------- */
.head{
  background-image:  linear-gradient(rgb(0 0 0 / 16%), rgba(0, 0, 0,0.5)), url('https://rabbit-tantei.com/wp-content/themes/ravit/img/area/mainvisual.jpg');
  background-repeat: no-repeat;  
  background-size: cover;
  background-position: center;
  width: 100%;
  border-radius: 0;
  height: 500px;
}

.container {
  width: min(calc(100% - (var(--gutter) * 2)), var(--container));
  margin-inline: auto;
}

.section {
  padding: var(--space-8) 0;
}


.section h3 {
  margin: 40px 0;
  font-size: 24px;
  line-height: 1.5;
  max-width: 100%;
}

.section h4 {
  margin: 0 0 var(--space-1);
  font-size: 20px;
}

.section__lead {
  margin-bottom: var(--space-4);
}

.notice {
  margin-top: var(--space-2);
  font-size: 12px;
  color: var(--c-muted);
}

/* ---------- Breadcrumb ---------- */
.breadcrumb {
  border-bottom: 1px solid var(--c-line);
  background: #fff;
}

.breadcrumb ol {
  width: min(calc(100% - (var(--gutter) * 2)), var(--container));
  margin-inline: auto;
  padding: 10px 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 0.86rem;
  color: var(--c-muted);
}

.breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.breadcrumb li + li::before {
  content: "›";
  color: #999;
}

.breadcrumb a {
  color: var(--c-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ---------- Hero ---------- */
.hero {
  padding: clamp(28px, 5vw, 56px) 0;
  background:
    linear-gradient(180deg, var(--c-bg-accent) 0%, #fff 100%);
  border-bottom: 1px solid var(--c-line);
}
h1 {
  color: #fff;
  font-size: 46px;
}

.hero__inner {
  width: min(calc(100% - (var(--gutter) * 2)), var(--container));
  margin-inline: auto;
  padding: clamp(20px, 4vw, 36px);
}

.hero__label {
  display: inline-block;
  margin-bottom: var(--space-2);
  font-size: 0.82rem;
  color: var(--c-primary);
  background: var(--c-primary-soft);
  border: 1px solid #cfe0f3;
  border-radius: 999px;
  padding: 4px 10px;
}

.hero h1 {
  margin: 0 0 var(--space-3);
  font-size: clamp(1.45rem, 2.8vw, 2rem);
  line-height: 1.35;
}

.hero__lead {
  color: #fff;
  margin-bottom: var(--space-4);
}

.hero__notes {
  margin-top: var(--space-3);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  list-style: none;
}

.hero__notes li {
  font-size: 12px;
  color: var(--c-muted);
  padding: 4px 10px;
  border: 1px solid var(--c-line);
  border-radius: 999px;
  background: #fff;

}

/* ---------- Buttons ---------- */
.hero__cta,
.branch-card__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.hero__cta {
  margin-top: 147px;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 16px 24px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-weight: 700;
  line-height: 1.2;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  margin: 0;
  font-size: 18px;
}

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

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

.btn--primary:hover {
  background: var(--c-primary-dark);
}

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

.btn--line:hover {
  background: var(--c-line-btn-dark);
}

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

.btn--secondary:hover {
  background: #f8fbff;
}

/* ---------- Cards ---------- */
.cards {
  display: grid;
  gap: var(--space-3);
}

.cards--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cards--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card {
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  box-shadow: var(--shadow-sm);
}

.card p {
  color: #333;
}

.area-voice-card {
  position: relative;
  padding-top: 44px;
}

.area-voice-card::before {
  content: "“";
  position: absolute;
  top: 8px;
  left: 18px;
  color: #F477A7;
  font-family: Georgia, serif;
  font-size: 52px;
  line-height: 1;
  opacity: 0.28;
}

.area-voice-card p {
  font-size: 16px;
  line-height: 1.9;
}

/* ---------- Grid ---------- */
.grid {
  display: grid;
  gap: var(--space-4);
}

.grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ---------- Tags / Lists ---------- */
.tag-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: var(--space-3);
}

.tag-list li {
  padding: 6px 30px;
  border-radius: 999px;
  border: 1px solid var(--c-line);
  background: #fff;
  font-size: 14px;
  margin-bottom: 10px;
}

.check-list {
  list-style: none;
  margin-top: var(--space-3);
  display: grid;
  gap: 10px;
  font-size: 18px;
}

.check-list li {
  position: relative;
  padding-left: 1.7em;
}

.check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--c-primary);
  font-weight: 700;
}

/* ---------- Table ---------- */
.table-wrap {
  overflow-x: auto;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  background: #fff;
  margin: var(--space-3) 0;
}

.pricing-table th,
.pricing-table td {
  border-bottom: 1px solid var(--c-line);
  padding: 12px;
  text-align: left;
  vertical-align: top;
  font-size: 18px;
}

.pricing-table th {
  background: #f8fafc;
  color: var(--c-primary);
  font-weight: 700;
}

.pricing-table tr:last-child td {
  border-bottom: none;
}

.area-case-example {
  margin: var(--space-7) 0 var(--space-5);
  padding: clamp(20px, 4vw, 32px);
  border: 1px solid #f5c4d7;
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(244, 119, 167, 0.1), rgba(255, 255, 255, 0) 46%),
    #fff;
  box-shadow: var(--shadow-sm);
}

.area-case-example h3 {
  margin: 0 0 var(--space-4);
  color: #273136;
  font-size: clamp(22px, 3vw, 28px);
  line-height: 1.5;
}

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

.area-case-example__item {
  padding: 16px;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.9);
}

.area-case-example__item--wide {
  grid-column: span 3;
}

.area-case-example__item--price {
  border-color: #F477A7;
  background: #fff7fb;
}

.area-case-example__item p {
  font-size: 16px;
}

.area-case-example__label {
  display: inline-block;
  margin-bottom: 8px;
  padding: 2px 12px;
  border-radius: 999px;
  color: #fff;
  background: #F477A7;
  font-size: 14px !important;
  font-weight: 700;
  line-height: 1.8;
}

/* ---------- Flow / Steps ---------- */
.step-list {
  counter-reset: step;
  list-style: none;
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-3);
}

.step-list li {
  position: relative;
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  padding-left: 60px;
  box-shadow: var(--shadow-sm);
}

.step-list li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 16px;
  top: 16px;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-weight: 700;
  color: #fff;
  background: var(--c-primary);
}

.step-list h3 {
  margin-bottom: 6px;
  font-size: 1rem;
}

.box {
  margin-top: var(--space-4);
  padding: var(--space-4);
  border: 1px solid #dbe6f2;
  background: #fbfdff;
  border-radius: var(--radius-md);
}

.box h3 {
  margin-bottom: 8px;
  color: var(--c-primary);
  text-align: left;
    margin-left: 14px;
    font-size: 20px;
}

.box ul {
  padding-left: 1.2em;
}

.box li + li {
  margin-top: 4px;
}


.interview_box5 .box5_list1 li div .list1_txt {
  font-size: 18px;
}
.interview_box5 .box5_list1 li div .list1_title {
  font-size: 22px;
}

/* ---------- FAQ ---------- */
h2#faq-title,h2#branch-title,h2#trust-title {
  font-size: 32px;
}
.faq-list {
  display: grid;
  gap: 10px;
  margin-top: var(--space-3);
  font-size: 18px;
}

.faq-list details {
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  background: #fff;
  overflow: hidden;
}

.faq-list summary {
  list-style: none;
  position: relative;
  padding: 18px 44px 18px 14px;
  font-weight: 700;
  color: #1f2937;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary::after {
  content: "+";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.1rem;
  color: var(--c-primary);
}

.faq-list details[open] summary::after {
  content: "−";
}

.faq-list details p {
  padding: 14px;
  color: #333;
  border-top: 1px solid #f0f2f5;
}

/* ---------- Branch Card ---------- */
.branch-card {
  background: #fff;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-lg);
  padding: var(--space-5);
  box-shadow: var(--shadow-sm);
}

.branch-card h3 {
  margin-bottom: 10px;
  font-size: 24px;
  text-align: left;
}

.branch-card h3 a {
  color: var(--c-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.branch-card p + p {
  margin-top: 6px;
}

.branch-card__cta {
  margin-top: var(--space-4);
}

/* ---------- Trust / Related ---------- */
.trust .check-list {
  margin-top: 0;
}

.related-links ul {
  list-style: none;
  display: grid;
  gap: 10px;
}

.related-links li a {
  display: block;
  padding: 12px 14px;
  border: 1px solid var(--c-line);
  border-radius: var(--radius-md);
  background: #fff;
  color: var(--c-primary);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.related-links li a:hover {
  background: #f8fbff;
}

/* ---------- Focus (Accessibility) ---------- */
a:focus-visible,
button:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(31, 78, 121, 0.35);
  outline-offset: 2px;
  border-radius: 6px;
}

/* ---------- Footer placeholders ---------- */
.site-header,
.site-footer {
  min-height: 1px;
}
/* 本文 */
.section.reasons .card p{
  margin: 0 0 16px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.9;
}

/* 余白調整：長文でも読みやすい段落間（必要なら） */
.section.reasons .card p + p{
  margin-top: 12px;
}
.section.reasons .card .card__btn:hover{
  filter: brightness(1.02);
  transform: translateY(-1px);
}

.section.reasons .card .card__btn:active{
  transform: translateY(0);
}

article.card img {
  margin: 0 auto;
}

.final-cta {
  background: url('https://rabbit-tantei.com/wp-content/themes/ravit/img/service/under/under_content2.jpg');
  padding: 100px 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.final-cta p {
  color: #fff;
  margin-bottom: 18px;
}
h2#final-cta-title {
  color: #fff;
  text-align: left;
  margin: 20px 0;
}


.box5_list1 .box {
  padding: 8px;
}

/* カード一覧（2列→1列） */
.section.reasons .cards.cards--3{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.4vw, 28px);
  align-items: stretch;
}

/* 3枚目は横幅いっぱい（スクショの下段大カード感） */
.section.reasons .cards.cards--3 > .card:nth-child(3){
  grid-column: 1 / -1;
}

/* レスポンシブ：タブレット以下は1列 */
@media (max-width: 820px){
  .section.reasons .cards.cards--3{
    grid-template-columns: 1fr;
  }
  .section.reasons .cards.cards--3 > .card:nth-child(3){
    grid-column: auto;
  }
  .section.reasons .card .card__btn{
    width: 100%;
    min-width: 0;
  }
}

/* ほんの少しだけカード間の「余白感」を強めたい場合 */
@media (min-width: 821px){
  .section.reasons .card{
    min-height: 260px;
  }
}


/* ---------- Responsive ---------- */
@media (max-width: 960px) {
  .cards--3 {
    grid-template-columns: 1fr 1fr;
  }

  .area-case-example__body {
    grid-template-columns: repeat(2, 1fr);
  }

  .area-case-example__item--wide {
    grid-column: span 2;
  }

  .cards--2,
  .grid--2 {
    grid-template-columns: 1fr;
  }

  .section {
    padding: 40px 0;
  }
}

@media (max-width: 640px) {
  :root {
    --gutter: 12px;
  }
  p{
    font-size: 14px;
  }
  .head{
    margin-top: 60px;
    height: auto;
  }
  .hero__inner {
    padding: 16px;
    border-radius: 12px;
  }
  h1#hero-title {
    font-size: 28px;
    line-height: 1.3;
    margin-bottom: 30px;
    margin-top: 40px;
}

  .hero__cta,
  .branch-card__cta {
    flex-direction: column;
    align-items: stretch;
  }
  .hero__cta{
    margin-top: 0;
  }

  .btn {
    max-width: 100%;
  }

  .cards--3 {
    grid-template-columns: 1fr;
  }

  .breadcrumb ol {
    font-size: 0.8rem;
    gap: 4px;
  }

  .tag-list li {
    font-size: 12px;
  }

  .step-list li {
    padding: 14px 12px 14px 48px;
  }

  .step-list li::before {
    left: 12px;
    top: 12px;
    width: 26px;
    height: 26px;
    font-size: 0.9rem;
  }

  .section h2 {
    margin-bottom: 40px;
  }
  .section h3 {
    font-size: 20px;
    width: 100%;
    margin: 10px 0;
}
.section.reasons .card p {
  font-size: 14px;
}
.box h3 {
  font-size: 14px;
  text-align: left;
}
.box ul {
  padding-left: 0;
}
.box5_list1 .box {
  padding: 20px;
  font-size: 12px;
}
.section.reasons .card p {
  line-height: 1.7;
}
span.sp-br {
  display: block;
}
.check-list li {
  font-size: 14px;
}
  .pricing-table th, .pricing-table td {
    font-size: 14px;
  }
  .area-case-example {
    padding: 18px;
  }
  .area-case-example__body {
    grid-template-columns: 1fr;
  }
  .area-case-example__item--wide {
    grid-column: auto;
  }
  .area-case-example__item p {
    font-size: 14px;
  }
	.interview_box5 .box5_list1 li div .list1_txt,.ser_under_box3 .box5_list .txt {
  font-size: 14px;
}
h2#branch-title, h2#trust-title{
  font-size: 28px;
}
}

/* ---------- Print (optional) ---------- */
@media print {
  .hero__cta,
  .branch-card__cta,
  .breadcrumb {
    display: none !important;
  }

  .section {
    padding: 16px 0;
    background: #fff !important;
  }

  .card,
  .branch-card,
  .step-list li,
  .faq-list details {
    box-shadow: none;
  }
}
/* ---------------------------------------
  「選ばれる理由」セクション（添付デザイン寄せ）
  使い方：
  - そのまま貼るだけで .reasons 配下に適用されます
  - ボタンを付けたい場合は <a class="card__btn">〜</a> を card 内に追加
--------------------------------------- */

.section.reasons{
  --bg: #ffffff;
  --text: #333;
  --muted: #555;
  --accent: #ff4fa3;          /* 見出しのピンク */
  --shadow: 0 14px 30px rgba(0,0,0,.08);
  --radius: 24px;

  padding: clamp(40px, 6vw, 72px) 0;
  background: var(--bg);
}

.section.reasons .container{
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

/* セクション見出し */
.section.reasons h2{
  margin: 0 0 60px;
  line-height: 1.35;
  color: var(--text);
  letter-spacing: .02em;
}


/* カード本体 */
.section.reasons .card{
  background: #fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(22px, 3vw, 34px);
  position: relative;
  overflow: hidden;
}

/* ほんのり縁取り（スクショの柔らかい輪郭感） */
.section.reasons .card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  border: 1px solid rgba(0,0,0,.04);
  pointer-events:none;
}
.btn-contact {
  margin-top: 45px;
}
