@charset "UTF-8";
/* =========================================================
   t-photo LP 一括CSS（SWELLブロック用） 完全版
   ※このファイルを子テーマ style.css にそのまま貼り付け
========================================================= */

/* ==== tokens ==== */
:root{
  --tphoto-brand:#3992C1;
  --tphoto-brand-strong:#1F506A;
  --tphoto-brand-light:#47B6F1;
  --tphoto-text:#1b1b1b;
  --tphoto-muted:#5D6B75;
}

/* ==== section base ==== */
.tphoto-section{ background:#F5FAFD; padding:42px 0; color:var(--tphoto-text); }
.tphoto-section .wp-block-heading{ margin:0 0 12px; font-weight:800; font-size:clamp(22px,3.4vw,30px); }
.tphoto-section p{ margin-top:.25em; color:var(--tphoto-muted); }

/* ==== Value Props ==== */
.tphoto-section--value .wp-block-columns{ gap:16px; }
@media (max-width:719px){ .tphoto-section--value .wp-block-columns{ gap:24px; } }
.wp-block-group.tphoto-card,.tphoto-card{
  background:#fff; border:1px solid #D9E9F4; border-radius:14px; padding:18px;
  box-shadow:0 6px 20px rgba(15,67,97,.06);
}
.wp-block-group.tphoto-card .wp-block-heading,.tphoto-card .wp-block-heading,
.wp-block-group.tphoto-card h3,.tphoto-card h3{ margin:6px 0 8px; font-size:18px; color:var(--tphoto-text); }

/* ①②③ badge */
p.tphoto-icon,.tphoto-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; border-radius:8px; background:var(--tphoto-brand); color:#fff;
  font-weight:700; margin-bottom:6px; line-height:1;
}

/* ==== How it works (steps) ==== */
.tphoto-steps{ background:#F5FAFD; }
.tphoto-steps .wp-block-columns{ gap:16px; }
@media (max-width:719px){ .tphoto-steps .wp-block-columns{ gap:24px; } }
.tphoto-step{
  background:#fff; border:1px solid #D9E9F4; border-radius:14px; padding:18px;
  box-shadow:0 6px 20px rgba(15,67,97,.06);
}
.tphoto-step .step-num{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:999px; background:var(--tphoto-brand); color:#fff;
  font-weight:900; margin-bottom:8px; line-height:1; font-variant-numeric:tabular-nums;
}
.tphoto-step .wp-block-heading,.tphoto-step h3{ margin:6px 0 8px; font-size:18px; color:var(--tphoto-text); }
.tphoto-step p{ color:var(--tphoto-text); margin:.4em 0 0; }

/* ==== Instructor ==== */
.tphoto-instructor{ background:#F5FAFD; }
.tphoto-instructor .wp-block-columns{ gap:20px; }
@media (min-width:720px){ .tphoto-instructor .wp-block-columns{ gap:24px; } }
.instructor-portrait{
  display:block; border-radius:12px; overflow:hidden; box-shadow:0 8px 24px rgba(15,67,97,.10);
  border:1px solid #D9E9F4; max-width:420px;
}
@media (max-width:719px){ .instructor-portrait{ margin-bottom:10px; max-width:100%; } }
.instructor-body p{ margin:.5em 0; color:var(--tphoto-text); line-height:1.85; }
.tphoto-instructor .wp-block-list{ margin-top:.5em; padding-left:1.1em; }
.tphoto-instructor .wp-block-list li{ margin:.4em 0; }
.tphoto-instructor .wp-block-heading{ margin-bottom:10px; }

/* ==== Pricing ==== */
.tphoto-pricing{ background:#EFF7FC; text-align:center; }
.tphoto-pricing .wp-block-heading{ margin-bottom:8px; }
.tphoto-pricing p{ color:var(--tphoto-muted); }
.price-card{
  border:2px solid var(--tphoto-brand-light); background:#fff; border-radius:16px; padding:22px;
  position:relative; max-width:560px; margin:14px auto; box-shadow:0 6px 20px rgba(15,67,97,.06); text-align:left;
}
.price-card .ribbon{
  position:absolute; top:-14px; right:16px; background:#ffd86b; color:#2c2c2c;
  padding:6px 10px; border-radius:8px; font-weight:800; font-size:14px;
}
.price-card .big{ font-size:34px; font-weight:900; color:var(--tphoto-brand); margin:6px 0; }
.price-card ul{ margin:10px 0 0; padding-left:18px; color:var(--tphoto-text); }
.price-card ul li{ margin:.4em 0; }
.price-card .btn{
  display:inline-block; margin-top:14px; padding:12px 18px; border-radius:10px;
  background:var(--tphoto-brand); color:#fff; text-decoration:none; font-weight:800; text-align:center;
}
.price-card .btn:hover{ background:var(--tphoto-brand-strong); color:#fff; }
.tphoto-pricing > p:last-child{ margin-top:10px; font-size:14px; color:var(--tphoto-muted); }

/* ==== Voices（お客様の声） ==== */
.tphoto-voices{ background:#F5FAFD !important; }
.tphoto-voices .wp-block-columns{ gap:16px; }
@media (max-width:719px){ .tphoto-voices .wp-block-columns{ gap:20px; } }
.tphoto-voices .voice-card{
  background:#fff; border:1px solid #D9E9F4; border-radius:14px; padding:20px;
  box-shadow:0 6px 20px rgba(15,67,97,.06);
  display:flex; flex-direction:column; justify-content:flex-start; height:100%;
}
.tphoto-voices .voice-title{ font-size:18px; font-weight:700; line-height:1.6; color:var(--tphoto-text); }
.tphoto-voices .voice-excerpt{ margin:10px 0 0; color:#27323a; line-height:1.8; font-size:16px; }
.tphoto-voices .voice-more{
  display:inline-block; margin-top:10px; font-weight:700;
  color:var(--tphoto-brand,#3992C1) !important; text-decoration:none;
}
.tphoto-voices .voice-more:hover{ text-decoration:underline; }

/* ==== FAQ（よくある質問） ==== */
.tphoto-faq{ background:#F5FAFD !important; }
.tphoto-faq .wp-block-columns{ gap:24px; }
@media (max-width:719px){ .tphoto-faq .wp-block-columns{ gap:16px; } }
.tphoto-faq .wp-block-column{
  background:#fff; border:1px solid #D9E9F4; border-radius:12px; padding:18px;
  box-shadow:0 6px 18px rgba(15,67,97,.05);
}
.tphoto-faq .wp-block-column p{ color:var(--tphoto-text); line-height:1.75; }
.tphoto-faq .wp-block-column strong{ color:var(--tphoto-brand-strong); }

/* FAQ 見出し帯：文字色を白で固定（SWELL帯スタイルの上書き） */
.tphoto-faq .wp-block-heading,
.tphoto-faq .wp-block-heading a{
  color:#fff !important;
}

/* （任意）万一「帯」が狭く見える場合の応急処置：H2を画面幅に広げる */
.tphoto-faq .wp-block-heading.tphoto-faq--fullband{
  display:block;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding-left:24px; padding-right:24px;
}

/* FAQ フッターリンク（他の質問→問い合わせ） */
.tphoto-faq-footer{ text-align:center; margin-top:20px; }
.tphoto-faq-footer a{
  font-weight:700; color:var(--tphoto-brand); text-decoration:none; font-size:17px;
}
.tphoto-faq-footer a:hover{ text-decoration:underline; }

/* ==== サブ説明文（各セクション見出し直後） ==== */
.tphoto-section h2 + p.wp-block-paragraph,
.tphoto-steps h2 + p.wp-block-paragraph,
.tphoto-instructor h2 + p.wp-block-paragraph,
.tphoto-pricing h2 + p.wp-block-paragraph,
.tphoto-voices h2 + p.wp-block-paragraph,
.tphoto-faq h2 + p.wp-block-paragraph,
.tphoto-section > .wp-block-paragraph:first-of-type,
.tphoto-steps > .wp-block-paragraph:first-of-type,
.tphoto-instructor > .wp-block-paragraph:first-of-type,
.tphoto-pricing > .wp-block-paragraph:first-of-type,
.tphoto-voices > .wp-block-paragraph:first-of-type,
.tphoto-faq > .wp-block-paragraph:first-of-type,
.tphoto-section > .wp-block-group > .wp-block-paragraph:first-of-type,
.tphoto-steps > .wp-block-group > .wp-block-paragraph:first-of-type,
.tphoto-instructor > .wp-block-group > .wp-block-paragraph:first-of-type,
.tphoto-pricing > .wp-block-group > .wp-block-paragraph:first-of-type,
.tphoto-voices > .wp-block-group > .wp-block-paragraph:first-of-type,
.tphoto-faq > .wp-block-group > .wp-block-paragraph:first-of-type{
  font-size: clamp(18px, 2vw, 20px) !important;
  line-height: 1.9 !important;
  color: var(--tphoto-muted) !important;
  margin-top: 8px !important;
  margin-bottom: 18px !important;
  font-weight: 400;
}

/* ==== mobile ==== */
@media (max-width:719px){
  .tphoto-section{ padding:28px 0; }
  .tphoto-instructor .wp-block-columns{ gap:16px; }
  .tphoto-faq .wp-block-column{ padding:14px; }
  .tphoto-voices .voice-card{ padding:16px; }
  .tphoto-section h2 + p.wp-block-paragraph{ font-size:18px !important; }
}
