/*
Theme Name:VOYAGE child
Theme URI:https://tcd-theme.com/tcd121
Description:WordPressテーマ「VOYAGE」の子テーマ
Template:voyage_tcd121
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.0
*/

/*
  LAMPS Corporate Site Custom Styles
*/

/* ========================================
   Service Pages - 3 Column Layout
   ======================================== */

/* Service parent page - card styling */
.page-template-default .wp-block-columns {
  gap: 2em;
  margin-top: 2em;
}

.page-template-default .wp-block-column {
  background: #f8f9fa;
  padding: 2em 1.5em;
  border-radius: 8px;
  transition: box-shadow 0.3s ease;
}

.page-template-default .wp-block-column:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.page-template-default .wp-block-column h3 {
  font-size: 1.3em;
  margin-bottom: 0.8em;
  color: #10829c;
}

/* ========================================
   Service Child Pages - Detail Styling
   ======================================== */

/* Background styling for h3 headings on service pages */
.parent-pageid .entry-content h3 {
  border-left: 4px solid #10829c;
  padding-left: 0.8em;
  margin-top: 2em;
}

/* Value list items */
.parent-pageid .wp-block-list li {
  padding: 0.4em 0;
  line-height: 1.8;
}

.parent-pageid .wp-block-list li strong {
  color: #10829c;
}

/* ========================================
   About / Statement Page
   ======================================== */

.page-id-22 .entry-content {
  max-width: 720px;
  margin: 0 auto;
  line-height: 2.2;
  font-size: 1.05em;
}

.page-id-22 .entry-content h2 {
  font-size: 1.8em;
  line-height: 1.5;
  margin-bottom: 0.5em;
  color: #333;
}

.statement-english {
  font-size: 1.2em;
  font-style: italic;
  color: #10829c;
  margin-bottom: 2em !important;
  letter-spacing: 0.05em;
}

.statement-note {
  font-size: 0.85em;
  color: #888;
  margin-top: 3em !important;
}

/* ========================================
   Project (Contents1) Single Page
   ======================================== */

.single-contents1 .wp-block-quote {
  border-left: 3px solid #10829c;
  padding: 1em 1.5em;
  margin: 1.5em 0;
  background: #f8fafb;
  border-radius: 0 8px 8px 0;
}

.single-contents1 .wp-block-quote cite {
  display: block;
  margin-top: 0.8em;
  font-size: 0.9em;
  color: #10829c;
  font-style: normal;
  font-weight: bold;
}

.single-contents1 .wp-block-table table {
  border-collapse: collapse;
  width: 100%;
}

.single-contents1 .wp-block-table td {
  padding: 0.8em 1em;
  border-bottom: 1px solid #eee;
}

.single-contents1 .wp-block-table td:first-child {
  width: 30%;
  background: #f8f9fa;
  font-weight: bold;
  color: #555;
}

/* ========================================
   Voice Single Page
   ======================================== */

.single-voice .entry-content p {
  line-height: 2;
  font-size: 1.05em;
}

/* ========================================
   Information (News) Archive
   ======================================== */

.post-type-archive-news .p-news-list__item {
  border-bottom: 1px solid #eee;
  padding-bottom: 1em;
}

/* ========================================
   Responsive Adjustments
   ======================================== */

@media (max-width: 767px) {
  .page-id-22 .entry-content {
    padding: 0 1em;
    font-size: 0.95em;
    line-height: 2;
  }

  .page-id-22 .entry-content h2 {
    font-size: 1.4em;
  }

  .statement-english {
    font-size: 1em;
  }

  .single-contents1 .wp-block-table td:first-child {
    width: 35%;
  }

  .contact-form-table th,
  .contact-form-table td {
    display: block;
    width: 100%;
  }

  .contact-form-table th {
    padding-bottom: 0.3em;
  }
}

/* ========================================
   Contact Form — LAMPS Design
   ======================================== */
.lamps-form {
  max-width: 820px;
  margin: 0 auto;
  font-family: inherit;
}

/* 案内文 */
.lamps-form-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #fdf6e3;
  border-left: 3px solid #e39a00;
  padding: 20px 24px;
  margin-bottom: 40px;
  font-size: 0.9rem;
  line-height: 1.9;
  color: #4a4840;
}
.lamps-form-notice i {
  color: #e39a00;
  font-size: 1.1rem;
  margin-top: 3px;
  flex-shrink: 0;
}
.required-note {
  display: block;
  margin-top: 4px;
  font-size: 0.82rem;
  color: #8a8680;
}

/* グループ */
.lamps-form-group {
  margin-bottom: 28px;
}

/* 2カラム行 */
.lamps-form-row--half {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* ラベル */
.lamps-form-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1a1a18;
  margin-bottom: 8px;
  letter-spacing: 0.03em;
}
.lamps-form-label .req {
  color: #e39a00;
  font-weight: 700;
}

/* Input / Select / Textarea */
.lamps-form input[type="text"],
.lamps-form input[type="email"],
.lamps-form input[type="tel"],
.lamps-form select,
.lamps-form textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #e5e2db;
  border-radius: 0;
  font-size: 0.95rem;
  font-family: inherit;
  color: #1a1a18;
  background: #fff;
  transition: border-color 0.3s, box-shadow 0.3s;
  -webkit-appearance: none;
}
.lamps-form input::placeholder,
.lamps-form textarea::placeholder {
  color: #c4c0b8;
}
.lamps-form input:focus,
.lamps-form select:focus,
.lamps-form textarea:focus {
  border-color: #e39a00;
  outline: none;
  box-shadow: 0 0 0 3px rgba(227, 154, 0, 0.1);
}
.lamps-form textarea {
  min-height: 200px;
  resize: vertical;
  line-height: 1.8;
}
.lamps-form select {
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8680' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}

/* プライバシーポリシー */
.lamps-form-privacy {
  text-align: center;
  margin: 32px 0 24px;
  font-size: 0.85rem;
  color: #8a8680;
}
.lamps-form-privacy a {
  color: #e39a00;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.lamps-form-privacy a:hover {
  color: #c98800;
}

/* 送信ボタン */
.lamps-form-submit {
  text-align: center;
}
.lamps-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 280px;
  padding: 18px 48px;
  font-size: 1.05rem;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: 0.1em;
  color: #fff;
  background: #e39a00;
  border: none;
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
  overflow: hidden;
}
.lamps-submit-btn:hover {
  background: #c98800;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(227, 154, 0, 0.3);
}
.lamps-submit-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(227, 154, 0, 0.2);
}

/* バリデーション */
.lamps-form .wpcf7-not-valid {
  border-color: #e74c3c !important;
  box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.1) !important;
}
.lamps-form .wpcf7-not-valid-tip {
  color: #e74c3c;
  font-size: 0.82rem;
  margin-top: 6px;
}

/* 送信結果メッセージ */
.lamps-form .wpcf7-response-output {
  margin-top: 24px;
  padding: 16px 24px;
  font-size: 0.9rem;
  text-align: center;
}
.lamps-form .wpcf7 form.sent .wpcf7-response-output {
  border: 1px solid #e39a00;
  background: #fdf6e3;
  color: #c98800;
}
.lamps-form .wpcf7 form.failed .wpcf7-response-output,
.lamps-form .wpcf7 form.invalid .wpcf7-response-output {
  border: 1px solid #e74c3c;
  background: #fdf0ef;
  color: #e74c3c;
}

/* レスポンシブ */
@media (max-width: 600px) {
  .lamps-form-row--half {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .lamps-form-field {
    margin-bottom: 20px;
  }
  .lamps-form-notice {
    flex-direction: column;
    gap: 8px;
    padding: 16px 18px;
  }
  .lamps-submit-btn {
    width: 100%;
    min-width: auto;
  }
}

/* ========================================
   Service 親ページ — 導線デザイン
   (page-id-89)
   ======================================== */
/* sv-topを含むcb_freeのpadding-bottom除去 */
.cb_free:last-child:has(.sv-top) {
  padding-bottom: 0 !important;
}

.sv-top > p:empty,
.sv-top p:empty {
  display: none;
  margin: 0;
  padding: 0;
  height: 0;
  line-height: 0;
  font-size: 0;
}
.sv-top {
  --amber: #e39a00;
  --teal: #10829c;
  --ink: #1a1a18;
  --ink-mid: #4a4840;
  --ink-light: #8a8680;
  --border: #e5e2db;
  font-family: inherit;
}

/* ヒーロー */
.sv-hero {
  text-align: center;
  padding: 60px 0 48px;
}
.sv-hero-label {
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 16px;
}
.sv-hero-title,
.post_content .sv-hero-title {
  font-size: clamp(1.6rem, 3vw, 2.2rem) !important;
  font-weight: 600 !important;
  line-height: 1.6 !important;
  color: var(--ink) !important;
  margin-bottom: 20px !important;
  margin-top: 0 !important;
  position: static !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  text-align: center !important;
  width: auto !important;
}
.sv-hero-title::after,
.post_content .sv-hero-title::after {
  display: none !important;
}
.sv-hero-title em {
  font-style: normal;
  color: var(--amber);
}
.sv-hero-body {
  font-size: 0.92rem;
  color: var(--ink-mid);
  line-height: 2.0;
}

/* 3カードグリッド */
.sv-cards {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 1px !important;
  background: #10829c;
  border: 1px solid #10829c;
  margin-bottom: 56px;
}
.sv-card {
  background: #fff;
  padding: 48px 36px 40px;
  text-decoration: none;
  color: inherit;
  position: relative;
  transition: background 0.3s;
  display: flex;
  flex-direction: column;
}
.sv-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--amber);
  transform: scaleX(0);
  transition: transform 0.4s;
}
.sv-card:hover {
  background: #fdf6e3;
}
.sv-card:hover::before {
  transform: scaleX(1);
}

/* カードアイコン */
.sv-card-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1.5px solid #d6eef3;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--teal);
  font-size: 1.4rem;
  margin-bottom: 24px;
  transition: background 0.3s, border-color 0.3s;
}
.sv-card:hover .sv-card-icon {
  background: #d6eef3;
  border-color: var(--teal);
}

/* カードラベル */
.sv-card-label {
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 8px;
}

/* カードタイトル — テーマh3スタイルリセット */
.sv-card-title,
.post_content .sv-card-title {
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  margin-top: 0 !important;
  margin-bottom: 4px !important;
  position: static !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  border-radius: 0 !important;
}
.sv-card-title::after,
.post_content .sv-card-title::after {
  display: none !important;
}

/* カードキャッチ */
.sv-card-catch {
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--ink-light);
  font-style: italic;
  margin-bottom: 7px !important;
}

/* カード本文 */
.sv-card-body {
  font-size: 0.88rem;
  color: var(--ink-mid);
  line-height: 1.9;
  flex: 1;
  margin-bottom: 0 !important;
}

/* カードタグ */
.sv-card-tags {
  list-style: none !important;
  padding: 0 !important;
  margin: 20px 0 24px !important;
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px;
}
.sv-card-tags li {
  font-size: 0.72rem;
  padding: 4px 12px;
  border: 1px solid var(--border);
  color: var(--ink-mid);
  letter-spacing: 0.03em;
  list-style: none !important;
}
.sv-card-tags li::before {
  display: none !important;
}

/* カードボタン */
.sv-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--amber);
  letter-spacing: 0.04em;
  margin-top: auto;
}
.sv-card-btn i {
  transition: transform 0.3s;
}
.sv-card:hover .sv-card-btn i {
  transform: translateX(6px);
}

/* CTA */
.sv-cta {
  text-align: center;
  padding: 48px 0 60px;
  border-top: 1px solid var(--border);
}
.sv-cta-text {
  font-size: 0.92rem;
  color: var(--ink-mid);
  margin-bottom: 24px;
}
.sv-cta-buttons {
  display: flex;
  justify-content: center;
  gap: 16px;
}
.sv-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 36px;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: all 0.3s;
}
.sv-cta-btn--mail {
  background: var(--amber);
  color: #fff;
}
.sv-cta-btn--mail:hover {
  background: #c98800;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(227,154,0,0.3);
}
.sv-cta-btn--line {
  background: #06C755;
  color: #fff;
}
.sv-cta-btn--line:hover {
  background: #05a948;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(6,199,85,0.3);
}

/* レスポンシブ */
@media (max-width: 900px) {
  .sv-cards {
    grid-template-columns: 1fr !important;
  }
  .sv-card {
    padding: 36px 28px 32px;
  }
  .sv-hero-body br {
    display: none;
  }
}
@media (max-width: 600px) {
  .sv-hero {
    padding: 40px 0 32px;
  }
  .sv-cta-buttons {
    flex-direction: column;
    gap: 12px;
  }
  .sv-cta-btn {
    justify-content: center;
  }
}

/* ========================================
   Service 子ページ共通
   (parent-pageid-89 = /service/ の子ページ)
   ======================================== */

/* --- ページヘッダー（アイキャッチ + h1.title）を非表示 --- */
.parent-pageid-89 #page_header,
.page-id-89 #page_header {
  display: none !important;
}

/* --- 本文内の最初の見出しを h1 相当にする（SEO対応） ---
   .sc-wrap 内の最初の .sc-catch-en を視覚的にはそのまま維持しつつ
   テンプレート側でなくCSS側で h1 を付与する方法は取れないので、
   functions.php 側で対応する                               */

/* ========================================
   Service 子ページ共通 — .sc-wrap デザイン
   (インラインCSS → 外部CSS化)
   ======================================== */

/* ============================================================
  スコープ: .sc-wrap 内にのみ適用
============================================================ */
.sc-wrap {
  --amber:       #e39a00;
  --amber-light: #f5d078;
  --amber-pale:  #fdf6e3;
  --teal:        #10829c;
  --teal-light:  #d6eef3;
  --teal-dark:   #0a5f73;
  --ink:         #1a1a18;
  --ink-mid:     #4a4840;
  --ink-light:   #8a8680;
  --border:      #e5e2db;
  --bg-pale:     #ffffff;
  font-family: inherit;
  color: var(--ink);
  line-height: 1.8;
}
.sc-wrap *, .sc-wrap *::before, .sc-wrap *::after {
  box-sizing: border-box;
}
/* wpautopが生成する空pタグを排除 */
.sc-wrap > p:empty,
.sc-section--pale > p:empty,
.sc-section--pale p:empty {
  display: none;
  margin: 0;
  padding: 0;
  line-height: 0;
  font-size: 0;
  height: 0;
}

/* ============================================================
  テーマ既存の h3 スタイルをリセット
  (.post_content h3 の黒背景・吹き出しを上書き)
  ※ h2 はテーマのデザインをそのまま踏襲
============================================================ */
.sc-wrap h3,
.sc-wrap h3::after {
  all: revert;
}
.sc-wrap h3,
.post_content .sc-wrap h3 {
  position: static !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  color: var(--ink, #1a1a18) !important;
  border-radius: 0 !important;
  margin: 0 !important;
  margin-bottom: 0 !important;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.sc-wrap h3::after {
  display: none !important;
  content: none !important;
  position: static !important;
  border: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* h2: コンテンツ幅100% + margin-top縮小 */
.sc-wrap h2 {
  width: 100% !important;
  box-sizing: border-box !important;
}
/* TCDCEのh2 margin-top 100px → 10px に上書き */
.sc-wrap .custom_h2,
.sc-wrap h2 {
  --tcdce-h2-margin-top-pc: 10px !important;
  margin-top: 10px !important;
}

/* 2カラム → 1カラムに変更（h2が含まれるセクション） */
.sc-problem-inner {
  grid-template-columns: 1fr !important;
  gap: 48px;
}

/* ---- 共通 ---- */
.sc-section {
  padding: 0;
}
.sc-section--pale {
  background: var(--bg-pale);
}
.sc-section--pale > p:empty {
  display: none;
}

/* 各セクション個別の上余白（PC） */
.sc-problem-inner  { padding-top: 48px; }  /* Background */
.sc-vision-header  { padding-top: 24px; }  /* Vision */
.sc-value-header   { padding-top: 48px; }  /* Value */
.sc-service-header { padding-top: 48px; }  /* Service */
.sc-flow-header    { padding-top: 48px; }  /* Flow */

/* 各セクション下余白（PC）— 次セクションとのバランス */
.sc-vision-pillars { margin-bottom: 0; }
.sc-value-grid     { margin-bottom: 0; }
.sc-service-list   { margin-bottom: 0; }
.sc-label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 10px;
}
.sc-label::after {
  content: '';
  flex: 1;
  max-width: 40px;
  height: 1px;
  background: var(--amber);
}
.sc-h2 {
  font-family: inherit;
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  font-weight: 600;
  line-height: 1.6;
  color: var(--ink);
  letter-spacing: 0.04em;
}
.sc-h2 em {
  font-style: normal;
  color: var(--amber);
}
.sc-body-text {
  font-size: 0.92rem;
  color: var(--ink-mid);
  line-height: 2.0;
}
.sc-divider {
  width: 48px;
  height: 2px;
  background: var(--amber);
  margin: 32px 0;
}
.sc-btn {
  display: inline-block;
  padding: 14px 36px;
  font-family: inherit;
  font-size: 0.88rem;
  letter-spacing: 0.08em;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.25s;
  cursor: pointer;
  border: none;
}
.sc-btn--primary {
  background: var(--amber);
  color: #fff;
}
.sc-btn--primary:hover {
  background: #c98800;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(227,154,0,0.3);
}
.sc-btn--outline {
  border: 1.5px solid var(--teal);
  color: var(--teal);
  background: transparent;
}
.sc-btn--outline:hover {
  background: var(--teal);
  color: #fff;
}

/* ============================================================
  1. キャッチ
============================================================ */
.sc-catch {
  padding: 80px 0 60px;
  border-top: 3px solid var(--amber);
  position: relative;
}
.sc-catch-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.sc-catch-en,
h1.sc-catch-en {
  font-family: "Josefin Sans", sans-serif !important;
  font-size: clamp(2.8rem, 5vw, 4.5rem) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
  color: var(--ink) !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
}
.sc-catch-en span {
  color: var(--amber);
}
.sc-catch-jp {
  font-family: inherit;
  font-size: 0.85rem;
  color: var(--ink-light);
  letter-spacing: 0.12em;
  margin-top: 12px;
}
.sc-catch-right p {
  font-size: 0.9rem;
  line-height: 2.1;
  color: var(--ink-mid);
  border-left: 2px solid var(--teal-light);
  padding-left: 24px;
}
.sc-catch-right p + p {
  margin-top: 20px;
}
.sc-catch-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 32px;
}
.sc-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1px solid var(--border);
  font-size: 0.72rem;
  color: var(--ink-mid);
  letter-spacing: 0.05em;
}
.sc-tag i {
  color: var(--teal);
  font-size: 0.75rem;
}
.sc-catch-tags p {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1;
}

/* ============================================================
  2. 課題提起
============================================================ */
.sc-problem-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}
.sc-problem-quote {
  position: relative;
  padding: 40px 40px 40px 48px;
  border-left: 3px solid var(--amber);
  background: #fff;
  box-shadow: 0 2px 24px rgba(0,0,0,0.06);
}
.sc-problem-quote::before {
  content: '\201C';
  font-family: "Josefin Sans", sans-serif;
  font-size: 7rem;
  line-height: 1;
  color: var(--amber-light);
  opacity: 0.35;
  position: absolute;
  top: 4px;
  left: 12px;
}
.sc-problem-quote p {
  font-family: inherit;
  font-size: 1.02rem;
  line-height: 2.0;
  color: var(--ink);
  position: relative;
  z-index: 1;
  margin-bottom: 0;
}
.sc-problem-list {
  list-style: none;
  padding: 0;
  margin: 32px 0 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sc-problem-list li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-size: 0.88rem;
  color: var(--ink-mid);
  line-height: 1.7;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}
.sc-problem-list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.sc-problem-list li i {
  color: var(--teal);
  font-size: 1rem;
  margin-top: 3px;
  flex-shrink: 0;
}

/* ============================================================
  3. ビジョン
============================================================ */
.sc-vision-header {
  text-align: center;
  max-width: 100%;
  margin: 0 auto 64px;
}
.sc-vision-header .sc-label {
  justify-content: center;
}
.sc-vision-header .sc-label::after {
  display: none;
}
.sc-vision-header .sc-label::before {
  content: '';
  flex: 1;
  max-width: 40px;
  height: 1px;
  background: var(--amber);
}
.sc-vision-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #10829c;
  border: 1px solid #10829c;
}
.sc-pillar {
  background: #fff;
  padding: 48px 36px;
  text-align: center;
  position: relative;
  transition: background 0.3s;
}
.sc-pillar:hover {
  background: var(--bg-pale);
}
.sc-pillar-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1.5px solid var(--teal-light);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  color: var(--teal);
  font-size: 1.3rem;
  transition: border-color 0.3s, background 0.3s;
}
.sc-pillar:hover .sc-pillar-icon {
  border-color: var(--teal);
  background: var(--teal-light);
}
.sc-pillar-title {
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 12px;
}
.sc-pillar-en {
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--amber);
  display: block;
  margin-bottom: 16px;
}
.sc-pillar-body {
  font-size: 0.85rem;
  color: var(--ink-mid);
  line-height: 1.85;
}
.sc-pillar::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--amber);
  transform: scaleX(0);
  transition: transform 0.4s;
}
.sc-pillar:hover::before {
  transform: scaleX(1);
}

/* ============================================================
  4. 提供価値
============================================================ */
.sc-value-header {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
  margin-bottom: 20px;
}
.sc-value-header-right {
  padding-top: 8px;
  margin-bottom: 0;
}
.sc-value-header-right .sc-body-text {
  margin-bottom: 12px;
}
.sc-value-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #10829c;
  border: 1px solid #10829c;
}
.sc-value-card {
  background: #fff;
  padding: 40px 32px;
  position: relative;
  overflow: hidden;
  transition: background 0.3s;
}
.sc-value-card:hover {
  background: var(--amber-pale);
}
.sc-value-num {
  font-family: "Josefin Sans", sans-serif;
  font-size: 4.5rem;
  font-weight: 700;
  color: var(--ink);
  opacity: 0.04;
  position: absolute;
  bottom: -8px;
  right: 12px;
  line-height: 1;
  pointer-events: none;
  letter-spacing: -0.03em;
}
.sc-value-icon {
  color: var(--teal);
  font-size: 1.4rem;
  margin-bottom: 20px;
  display: block;
}
.sc-value-card h3 {
  font-family: inherit;
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.65;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.sc-value-card h3 {
  margin-bottom: 15px !important;
}
.sc-value-card p {
  font-size: 0.85rem;
  color: var(--ink-mid);
  line-height: 1.9;
  margin: 0;
}

/* ============================================================
  5. サービス
============================================================ */
.sc-service-header {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px;
  margin-bottom: 20px;
}
.sc-service-intro {
  max-width: 100%;
  margin-bottom: 28px;
  font-size: 0.85rem;
  color: var(--ink-mid);
  line-height: 1.9;
}
.sc-service-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border);
}
.sc-service-item {
  display: grid;
  grid-template-columns: 72px 1fr;
  border-bottom: 1px solid var(--border);
  transition: background 0.25s;
}
.sc-service-item:last-child {
  border-bottom: none;
}
.sc-service-item:hover {
  background: var(--amber-pale);
}
.sc-service-num {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 36px 0;
  border-right: 1px solid var(--border);
  gap: 6px;
}
.sc-service-num-en {
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.15em;
  color: var(--amber);
  text-transform: uppercase;
}
.sc-service-num-digit {
  font-family: "Josefin Sans", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
}
.sc-service-body {
  padding: 36px 40px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 40px;
  align-items: start;
}
.sc-service-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--teal-light);
  color: var(--teal);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  padding: 3px 10px;
  text-transform: uppercase;
  font-family: "Josefin Sans", sans-serif;
  margin-bottom: 10px;
}
.sc-service-body h3 {
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.55;
  margin: 8px 0 10px;
}
.sc-service-body p {
  font-size: 0.88rem;
  color: var(--ink-mid);
  line-height: 1.9;
  margin: 0;
}
.sc-service-details {
  min-width: 180px;
  padding-top: 4px;
}
.sc-service-detail-label {
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-family: "Josefin Sans", sans-serif;
  font-weight: 600;
  color: var(--ink, #1a1a18);
  margin-bottom: 10px;
  color: var(--ink-light);
  margin-bottom: 10px;
}
.sc-service-details ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sc-service-details ul li {
  font-size: 0.82rem;
  color: var(--ink-mid);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  line-height: 1.5;
}
.sc-service-details ul li::before {
  content: '\2014';
  color: var(--amber);
  font-size: 0.7rem;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ============================================================
  6. 導入の流れ
============================================================ */
.sc-flow-header {
  text-align: center;
  margin-bottom: 72px;
}
.sc-flow-header .sc-label {
  justify-content: center;
}
.sc-flow-header .sc-label::after { display: none; }
.sc-flow-header .sc-label::before {
  content: '';
  flex: 1;
  max-width: 40px;
  height: 1px;
  background: var(--amber);
}
.sc-flow-steps {
  display: grid;
  grid-template-columns: 1fr 40px 1fr 40px 1fr;
  gap: 0;
  align-items: start;
}
.sc-flow-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 48px;
  color: var(--amber);
  font-size: 1.1rem;
  opacity: 0.6;
}
.sc-flow-step {
  background: #fff;
  border: 1px solid var(--border);
  padding: 40px 32px;
  text-align: center;
  position: relative;
}
.sc-flow-step-num {
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  color: var(--amber);
  text-transform: uppercase;
  margin-bottom: 10px !important;
  margin-bottom: 20px;
  display: block;
}
.sc-flow-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  border: 1.5px solid var(--teal-light);
  color: var(--teal);
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  margin: 0 auto 20px;
}
.sc-flow-step-title {
  font-family: inherit;
  font-size: 1rem;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 14px;
  line-height: 1.5;
}
.sc-flow-step-body {
  font-size: 0.85rem;
  color: var(--ink-mid);
  line-height: 1.85;
}
.sc-flow-note {
  margin-top: 48px;
  padding: 24px 32px;
  border-left: 3px solid var(--teal);
  background: var(--teal-light);
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 0.85rem;
  color: var(--teal-dark);
}
.sc-flow-note i {
  font-size: 1.2rem;
  flex-shrink: 0;
}

/* ============================================================
  7. CTA
============================================================ */
.sc-cta {
  padding: 80px 0;
  border-top: 1px solid var(--border);
}
.sc-cta-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 72px;
  align-items: center;
}
.sc-cta-title {
  font-family: inherit;
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  font-weight: 600;
  color: var(--ink);
  line-height: 1.65;
  margin-bottom: 16px;
}
.sc-cta-body {
  font-size: 0.88rem;
  color: var(--ink-mid);
  line-height: 2.0;
  max-width: 520px;
}
.sc-cta-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 200px;
}

/* ============================================================
  アニメーション
============================================================ */
.sc-fade {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.sc-fade.sc-visible {
  opacity: 1;
  transform: translateY(0);
}
.sc-fade-d1 { transition-delay: 0.1s; }
.sc-fade-d2 { transition-delay: 0.2s; }
.sc-fade-d3 { transition-delay: 0.3s; }
.sc-fade-d4 { transition-delay: 0.4s; }
.sc-fade-d5 { transition-delay: 0.5s; }

/* ============================================================
  レスポンシブ
============================================================ */
@media (max-width: 900px) {
  .sc-catch-inner       { grid-template-columns: 1fr; gap: 40px; }
  .sc-problem-inner     { grid-template-columns: 1fr; gap: 48px; }
  .sc-value-header      { grid-template-columns: 1fr; gap: 24px; }
  .sc-value-grid        { grid-template-columns: 1fr 1fr; }
  .sc-vision-pillars    { grid-template-columns: 1fr; }
  .sc-flow-steps        { grid-template-columns: 1fr; gap: 24px; }
  .sc-flow-arrow        { display: none; }
  .sc-service-body      { grid-template-columns: 1fr; gap: 20px; }
  .sc-service-details   { display: none; }
  .sc-service-header    { flex-direction: column; align-items: flex-start; gap: 16px; }
  .sc-cta-inner         { grid-template-columns: 1fr; gap: 32px; }
  .sc-cta-actions       { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .sc-section           { padding: 0; }
  .sc-value-grid        { grid-template-columns: 1fr; }
  .sc-catch-en          { font-size: 2.4rem; }

  /* タグ周りのpマージン排除 */
  .sc-catch-tags p {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 各セクション上余白（SP版） */
  .sc-problem-inner  { padding-top: 20px; }
  .sc-vision-header  { padding-top: 10px; }
  .sc-value-header   { padding-top: 20px; }
  .sc-service-header { padding-top: 20px; }
  .sc-flow-header    { padding-top: 20px; }
}

/* ========================================
   Service 子ページ — カルーセル（デバイス幅100%）
   .lamps_carousel = 親テーマ .sc_image_carousel をリネームしたもの。
   親テーマと同等のサイズ・角丸を再現する。
   ======================================== */
.sc-carousel-wrap {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
}
.sc-carousel-wrap .lamps_carousel .item {
  width: 450px !important;
  height: auto;
  aspect-ratio: 450 / 300;
  position: relative;
  overflow: hidden;
  border-radius: 15px;
}
.sc-carousel-wrap .lamps_carousel .item img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sc-carousel-wrap .lamps_carousel .splide__list {
  will-change: transform;
}
.sc-carousel-wrap .splide__spinner {
  display: none !important;
}
@media (max-width: 1200px) {
  .sc-carousel-wrap .lamps_carousel .item { width: 350px !important; }
}
@media (max-width: 1100px) {
  .sc-carousel-wrap .lamps_carousel .item { border-radius: 10px; }
}
@media (max-width: 767px) {
  .sc-carousel-wrap .lamps_carousel .item { width: 240px !important; border-radius: 7px; }
  .sc-carousel-wrap .lamps_carousel .item img { border-radius: 10px; }
}

/* ========================================
   Service h3 — 全セクションの白文字対策
   (.post_content h3 { color: #fff } を上書き)
   ======================================== */
.post_content .sc-value-card h3,
.post_content .sc-service-body h3 {
  color: var(--ink, #1a1a18) !important;
  background: none !important;
}
.post_content .sc-value-card h3::after,
.post_content .sc-service-body h3::after {
  display: none !important;
}

/* ========================================
   CTA — お問い合わせ・LINE 2カラムボタン
   ======================================== */
.sc-cta-new {
  padding: 60px 0;
  border-top: 1px solid var(--border, #e5e2db);
}
.sc-cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.sc-cta-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border, #e5e2db);
  padding: 48px 36px;
  text-align: center;
  transition: box-shadow 0.4s, transform 0.4s;
}
.sc-cta-card:hover {
  box-shadow: 0 12px 40px rgba(0,0,0,0.08);
  transform: translateY(-4px);
}
.sc-cta-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  transform: scaleX(0);
  transition: transform 0.4s;
}
.sc-cta-card:hover::before {
  transform: scaleX(1);
}
.sc-cta-card--mail::before {
  background: #e39a00;
}
.sc-cta-card--line::before {
  background: #06C755;
}
.sc-cta-card-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-size: 1.4rem;
  transition: background 0.3s, color 0.3s;
}
.sc-cta-card--mail .sc-cta-card-icon {
  border: 1.5px solid #e39a00;
  color: #e39a00;
}
.sc-cta-card--mail:hover .sc-cta-card-icon {
  background: #e39a00;
  color: #fff;
}
.sc-cta-card--line .sc-cta-card-icon {
  border: 1.5px solid #06C755;
  color: #06C755;
}
.sc-cta-card--line:hover .sc-cta-card-icon {
  background: #06C755;
  color: #fff;
}
.sc-cta-card-sub {
  font-size: 0.82rem;
  color: #8a8680;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
}
.sc-cta-card-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 40px;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: all 0.3s;
  position: relative;
  overflow: hidden;
}
.sc-cta-card-btn::after {
  content: '\2192';
  transition: transform 0.3s;
}
.sc-cta-card-btn:hover::after {
  transform: translateX(4px);
}
.sc-cta-card--mail .sc-cta-card-btn {
  background: #e39a00;
  color: #fff;
  border: none;
}
.sc-cta-card--mail .sc-cta-card-btn:hover {
  background: #c98800;
  box-shadow: 0 6px 24px rgba(227,154,0,0.35);
}
.sc-cta-card--line .sc-cta-card-btn {
  background: #06C755;
  color: #fff;
  border: none;
}
.sc-cta-card--line .sc-cta-card-btn:hover {
  background: #05a948;
  box-shadow: 0 6px 24px rgba(6,199,85,0.35);
}
@media (max-width: 600px) {
  .sc-cta-grid {
    grid-template-columns: 1fr;
  }
  .sc-cta-card {
    padding: 36px 24px;
  }
  .sc-cta-card-btn {
    padding: 14px 28px;
    font-size: 0.88rem;
  }
}

/* ========================================
   strong タグ — 斜線アンダーライン + アニメーション
   ======================================== */
.sc-wrap strong {
  font-weight: 700;
  position: relative;
  display: inline;
  background-image: repeating-linear-gradient(
    -45deg,
    #e39a00,
    #e39a00 1px,
    transparent 1px,
    transparent 4px
  );
  background-size: 200% 4px;
  background-repeat: no-repeat;
  background-position: left bottom;
  padding-bottom: 2px;
}

/* アニメーション：左から右に走る斜線 */
@keyframes sc-underline-slide {
  from { background-size: 0% 4px; }
  to   { background-size: 200% 4px; }
}

.sc-wrap strong.sc-line-visible {
  animation: sc-underline-slide 0.6s ease-out forwards;
}

/* 初期状態: 非表示 → IntersectionObserverで発火 */
.sc-wrap strong {
  background-size: 0% 4px;
}

/* ========================================
   Page Header — アイキャッチ画像未登録時のフォールバック
   （Contact等、アイキャッチを設定していない固定ページ用）
   ======================================== */
#page_header:not(:has(.image)) {
  background: #e39a00;
}
#page_header:not(:has(.image)) .content h1.title {
  line-height: 1.4;
  color: #ffe0b8;
}
#page_header:not(:has(.image)) .content h1.title span {
  display: block;
  color: #fff;
  font-size: 42px;
}

/* レスポンシブ */
@media (max-width: 767px) {
  #page_header:not(:has(.image)) {
    margin-top: 50px;
  }
  #page_header:not(:has(.image)) .content h1.title {
    font-size: 0.8em;
  }
  #page_header:not(:has(.image)) .content h1.title span {
    font-size: 28px;
    margin-top: 3px;
  }
}

/* ========================================
   CF7 送信・戻るボタン
   ======================================== */
.wpcf7 .wpcf7-submit,
.wpcf7 .wpcf7-previous {
  border-radius: 40px;
  background: #e39a00;
}
.wpcf7 .wpcf7-submit:hover,
.wpcf7 .wpcf7-previous:hover {
  background: #e37300;
}

/* ========================================
   CF7 Form Refinement (v2)
   - プライバシー文中央寄せ / 必須タグ化 / 余白とホバー強化
   ======================================== */

/* プライバシー文（pタグで直書きされた末尾の文を中央寄せ） */
.lamps-form > p:last-of-type {
  text-align: center;
  margin: 24px 0 8px;
  font-size: 0.85rem;
  color: #8a8680;
}
.lamps-form > p:last-of-type a {
  color: #e39a00;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.lamps-form > p:last-of-type a:hover {
  color: #c98800;
}

/* 必須マーク：<span class="req">*</span> を「必須」タグに置換
   labelの直下のみが対象。.required-note 内の * には影響しない。 */
.lamps-form-label > .req {
  display: inline-block;
  margin-left: 8px;
  padding: 3px 9px;
  font-size: 0;          /* 元の "*" を非表示 */
  background: #e39a00;
  border-radius: 3px;
  vertical-align: middle;
  line-height: 1.3;
}
.lamps-form-label > .req::before {
  content: '必須';
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.08em;
}

/* グループ間とラベルの余白を上品に */
.lamps-form-group {
  margin-bottom: 32px;
}
.lamps-form-label {
  margin-bottom: 10px;
  font-weight: 600;
  letter-spacing: 0.03em;
}

/* フィールドホバー時の視覚フィードバック */
.lamps-form input[type="text"]:hover,
.lamps-form input[type="email"]:hover,
.lamps-form input[type="tel"]:hover,
.lamps-form select:hover,
.lamps-form textarea:hover {
  border-color: #c4c0b8;
}

/* 案内文を少し落ち着いたトーンに */
.lamps-form-notice {
  border-radius: 4px;
}

/* ========================================
   親テーマ Page Header — 縦書き設定の打ち消し
   （body.page_header_catch_vertical で writing-mode と text-align が
     強制されているため、子テーマ側で解除）
   ======================================== */
body.page_header_catch_vertical #page_header .content {
  writing-mode: horizontal-tb;
  text-align: center;
}

/* ========================================
   サイト全体 — 日本語本文の最小フォントサイズ保証（老眼配慮）
   p / li / dd / dt / td / th / ラベル類 が 18px を下回らないようにする。
   英字フォント（Josefin Sans 等）と FontAwesome アイコンは min を上回るのでそのまま。
   ======================================== */
body p,
body li,
body dd,
body dt,
body td,
body th,
body label,
body input,
body select,
body textarea,
body figcaption,
body blockquote {
  font-size: max(18px, 1em);
}
/* アイコン用 i タグはそのまま（サイズ変更しない） */
body p i.fa-solid,
body p i.fa-regular,
body p i.fa-brands,
body li i.fa-solid,
body li i.fa-regular,
body li i.fa-brands {
  font-size: inherit;
}
/* キャプション系の極小ラベル（デザイン上意図的に小さい）は対象外 */
body .lamps-author-card__caption,
body .lamps-author-card__org,
body .lamps-meta-label,
body .lamps-tag,
body .c-date,
body .c-date *,
body .lamps-form-label .req::before,
body .breadcrumb,
body .c-breadcrumb,
body .c-breadcrumb * {
  font-size: revert;
}

/* 本文相当のクラス指定 (.sv-card-body 等) は specificity が p/li ルールに勝つので、
   ここで明示的に 18px に底上げする */
body .sv-card-body,
body .sv-hero-body,
body .sc-body-text,
body .sc-catch-right p,
body .sc-problem-quote p,
body .sc-problem-list li,
body .sc-pillar-body,
body .sc-value-card p,
body .sc-service-intro,
body .sc-service-body p,
body .sc-service-details ul li,
body .sc-flow-step-body,
body .sc-cta-body,
body .single-contents1 .lamps-step__body p,
body .single-contents1 .tcdce-sb-content p,
body .single-contents1 .lamps-meta-value,
body .single-contents1 .post_content p,
body .single-voice .post_content p,
body .lamps-author-card__bio,
body .lamps-form-notice {
  font-size: 18px !important;
}

/* ========================================
   Project (contents1) シングル詳細 — デザイン刷新
   ======================================== */

/* 本文全体の読みやすさ */
.single-contents1 .post_content {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 24px;
  color: #2a2a28;
}
.single-contents1 .post_content p {
  font-size: 0.96rem;
  line-height: 2.0;
  letter-spacing: 0.04em;
  margin: 1em 0;
  color: #3a3a38;
}

/* ---- h3 レイヤード見出し（テーマh3スタイル完全リセット） ---- */
.post_content h3.lamps-h3 {
  position: relative;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 16px;
  padding: 0 0 14px 0;
  margin: 4em 0 1.2em;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-bottom: 2px solid #e5e2db !important;
  border-radius: 0 !important;
  color: #1a1a18 !important;
  font-family: inherit;
  letter-spacing: 0.02em;
  width: auto !important;
}
.post_content h3.lamps-h3::before,
.post_content h3.lamps-h3::after {
  display: none !important;
  content: none !important;
}
.post_content h3.lamps-h3 i {
  flex-shrink: 0;
  font-size: 1.1rem;
  color: #e39a00;
  align-self: center;
}
.post_content h3.lamps-h3 .lamps-h3__en {
  font-family: "Josefin Sans", sans-serif;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 700;
  color: #e39a00;
  letter-spacing: 0.02em;
  line-height: 1;
}
.post_content h3.lamps-h3 .lamps-h3__jp {
  font-size: 1.0rem;
  font-weight: 600;
  color: #4a4840;
  letter-spacing: 0.06em;
}
/* セクション別アクセント色 */
.post_content h3.lamps-h3--vision .lamps-h3__en,
.post_content h3.lamps-h3--vision i { color: #10829c !important; }
.post_content h3.lamps-h3--harvest .lamps-h3__en,
.post_content h3.lamps-h3--harvest i { color: #1a8b5a !important; }
.post_content h3.lamps-h3--voice .lamps-h3__en,
.post_content h3.lamps-h3--voice i { color: #9b59b6 !important; }
.post_content h3.lamps-h3--process .lamps-h3__en,
.post_content h3.lamps-h3--process i { color: #c0392b !important; }

/* h4 — Vision/Harvest のキャッチコピー */
.single-contents1 .post_content h4 {
  font-size: clamp(1.15rem, 2.4vw, 1.45rem);
  font-weight: 700;
  line-height: 1.7;
  margin: 1.6em 0 1em;
  color: #1a1a18;
}

/* マーカー強調（custom_marker の上書き） */
.single-contents1 .tcdce-marker.custom_marker {
  background: linear-gradient(transparent 60%, rgba(227,154,0,0.4) 60%) !important;
  font-weight: 700;
  padding: 0 4px;
}
/* マーカー span 内の冒頭 <br>（HTMLに紛れ込んだ余計な改行）を非表示 */
.tcdce-marker > br:first-child {
  display: none;
}

/* ---- Process ステップカード ---- */
.single-contents1 .lamps-step {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 0;
  background: #fff;
  border: 1px solid #e5e2db;
  border-radius: 8px;
  margin: 0 0 16px;
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.3s;
}
.single-contents1 .lamps-step:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,0.06);
  transform: translateY(-2px);
}
.single-contents1 .lamps-step__num {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Josefin Sans", sans-serif;
  font-size: 2rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #e39a00, #c98800);
  letter-spacing: 0.02em;
}
.single-contents1 .lamps-step__body {
  padding: 22px 28px;
}
.post_content .single-contents1 .lamps-step__body h6.lamps-step__title,
.single-contents1 .lamps-step__body h6.lamps-step__title {
  font-size: 1.05rem !important;
  font-weight: 700 !important;
  color: #1a1a18 !important;
  margin: 0 0 8px !important;
  line-height: 1.5 !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  position: static !important;
}
.single-contents1 .lamps-step__body p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.9;
  color: #4a4840;
}

/* ---- Voice 吹き出し再設計 ----
   親プラグイン(tcd-classic-editor) が --tcdce-sb-direction:row で
   横並びにレイアウトしているため、子テーマで縦組み（user上・content下）に
   強制的に切り替える */
.single-contents1 .tcdce-sb {
  display: block !important;
  flex-direction: column !important;
  background: #fdf6e3;
  border-left: 3px solid #e39a00;
  padding: 32px 36px 28px 36px;
  margin: 1.4em 0 2em;
  border-radius: 0 10px 10px 0;
  position: relative;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
  --tcdce-sb-direction: column;
}
.single-contents1 .tcdce-sb::before {
  content: '\201C';
  position: absolute;
  top: 6px;
  right: 22px;
  font-family: serif;
  font-size: 4rem;
  color: rgba(227,154,0,0.3);
  line-height: 1;
  pointer-events: none;
}
.single-contents1 .tcdce-sb-user {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 16px !important;
  margin: 0 0 18px 0 !important;
  padding: 0 0 16px 0 !important;
  border-bottom: 1px dashed #e5d8b8 !important;
  width: auto !important;
  max-width: none !important;
  flex-wrap: nowrap !important;
}
.single-contents1 .tcdce-sb-user-image {
  width: 56px !important;
  height: 56px !important;
  flex-shrink: 0 !important;
  border-radius: 50% !important;
  background-color: #e5e2db !important;
  background-image: url('https://lampshkd.xsrv.jp/corp/wp-content/uploads/2026/04/671338745_955547483833287_7400998345056146921_n.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  margin: 0 !important;
}
.single-contents1 .tcdce-sb-user-image::before {
  display: none !important;
  content: none !important;
}
.single-contents1 .tcdce-sb-user-name {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  font-weight: 700 !important;
  color: #1a1a18 !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
  letter-spacing: 0.02em !important;
  white-space: normal !important;
  word-break: break-word !important;
}
.single-contents1 .tcdce-sb-content {
  width: 100% !important;
  max-width: none !important;
}
.single-contents1 .tcdce-sb-content p {
  margin: 0 !important;
  font-size: 0.95rem !important;
  line-height: 2.0 !important;
  color: #2a2a28 !important;
}

/* ---- Client情報カード ---- */
.single-contents1 .lamps-meta-card {
  margin: 4em 0 0;
  padding: 32px;
  background: #fafaf8;
  border: 1px solid #e5e2db;
  border-radius: 8px;
}
.single-contents1 .lamps-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 24px;
  margin-bottom: 24px;
}
.single-contents1 .lamps-meta-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.single-contents1 .lamps-meta-label {
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #e39a00;
  text-transform: uppercase;
}
.single-contents1 .lamps-meta-value {
  font-size: 0.92rem;
  color: #2a2a28;
  line-height: 1.6;
}
.single-contents1 .lamps-meta-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 20px;
  border-top: 1px solid #e5e2db;
}
.single-contents1 .lamps-tag {
  font-size: 0.78rem;
  padding: 5px 12px;
  background: #fff;
  border: 1px solid #e5e2db;
  border-radius: 999px;
  color: #4a4840;
  letter-spacing: 0.04em;
  cursor: default; /* ホバーでカーソル変化なし → 押せない印象 */
}

/* ---- レスポンシブ ---- */
@media (max-width: 767px) {
  .single-contents1 .post_content {
    padding: 0 16px;
  }
  /* h3 はPC同様、横一直線で維持。サイズだけ縮める */
  .post_content h3.lamps-h3 {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: baseline;
    gap: 10px;
    padding: 0 0 12px 0;
    margin: 3em 0 1em;
    min-width: 0;
  }
  .post_content h3.lamps-h3 i {
    position: static;
    font-size: 0.9rem;
    align-self: center;
  }
  .post_content h3.lamps-h3 .lamps-h3__en {
    font-size: 1.5rem;
    flex-shrink: 0;
  }
  .post_content h3.lamps-h3 .lamps-h3__jp {
    font-size: 0.78rem;
    min-width: 0;
    word-break: keep-all;
  }
  .single-contents1 .lamps-step {
    grid-template-columns: 64px 1fr;
  }
  .single-contents1 .lamps-step__num {
    font-size: 1.5rem;
  }
  .single-contents1 .lamps-step__body {
    padding: 18px 20px;
  }
  .single-contents1 .tcdce-sb {
    padding: 26px 20px 22px 20px;
  }
  .single-contents1 .tcdce-sb::before {
    right: 14px;
    font-size: 3rem;
  }
  .single-contents1 .tcdce-sb-user-image {
    width: 48px !important;
    height: 48px !important;
  }
  .single-contents1 .tcdce-sb-user-name {
    font-size: 0.92rem !important;
  }
  .single-contents1 .lamps-meta-card {
    padding: 24px 20px;
  }
  .single-contents1 .lamps-meta-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ========================================
   Voice (他己紹介) シングル詳細 — デザイン刷新
   ======================================== */

/* ---- ヘッダー: プロフィール（名前・肩書き）名刺風 ---- */
body.single-voice #voice_header .content_inner .title {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  margin-top: 28px;
  margin-bottom: 8px;
  padding: 6px 0 6px 18px;
  border-left: 3px solid #e39a00;
  font-size: clamp(1.05rem, 2.2vw, 1.3rem) !important;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #1a1a18;
  line-height: 1.5;
}
body.single-voice #voice_header .content_inner .info {
  position: relative;
  margin: 0 0 0 21px;
  padding-left: 0;
  font-size: 0.88rem !important;
  color: #6a6862;
  letter-spacing: 0.04em;
  line-height: 1.85;
  font-weight: 500;
}
body.single-voice #voice_header .content_inner .info::before {
  content: '\f0b1';
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  margin-right: 8px;
  color: #e39a00;
  font-size: 0.78rem;
}
body.single-voice #voice_header .content_inner .category_button {
  letter-spacing: 0.18em;
}

/* ---- 本文 (.post_content) ---- */
body.single-voice .post_content {
  max-width: 880px;
  margin: 0 auto;
  padding: 60px 24px 40px;
}
body.single-voice .post_content p {
  font-size: 0.97rem;
  line-height: 2.05;
  letter-spacing: 0.04em;
  margin: 1.2em 0;
  color: #2e2e2c;
}

/* h3.custom_h4 を Q&A 風に */
body.single-voice .post_content h3.custom_h4 {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-bottom: 2px solid #e5e2db !important;
  border-radius: 0 !important;
  padding: 0 0 18px 56px !important;
  margin: 0 0 1.6em !important;
  color: #1a1a18 !important;
  font-size: clamp(1.15rem, 2.4vw, 1.45rem) !important;
  font-weight: 700 !important;
  width: auto !important;
  line-height: 1.5 !important;
  min-height: 44px;
}
body.single-voice .post_content h3.custom_h4::after {
  display: none !important;
  content: none !important;
}
body.single-voice .post_content h3.custom_h4::before {
  display: inline-flex !important;
  content: 'Q.' !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-family: "Josefin Sans", sans-serif !important;
  font-size: 1.3rem !important;
  font-weight: 700 !important;
  color: #fff !important;
  background: #e39a00 !important;
  border-radius: 50%;
  letter-spacing: 0;
}

/* マーカー上書き */
body.single-voice .tcdce-marker.custom_marker {
  background: linear-gradient(transparent 58%, rgba(227,154,0,0.35) 58%) !important;
  font-weight: 700;
  padding: 0 6px;
}

/* 太字を上品にハイライト */
body.single-voice .post_content p b,
body.single-voice .post_content p strong {
  position: relative;
  font-weight: 700;
  color: #b87800;
  background: linear-gradient(transparent 72%, rgba(227,154,0,0.22) 72%);
  padding: 0 3px;
}

/* "一覧に戻る" ボタン
   親テーマの .design_button は ::after の擬似要素でオレンジ全面を被せる構造のため、
   ::after を完全に殺してから自前のスタイルを当てる。
   span は親で position:relative; z-index:2 が指定されているため、
   span を実際のテキストレイヤーとして扱う。 */
body.single-voice .design_button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: auto !important;
  line-height: 1 !important;
  margin: 0 auto 6em !important;
  padding: 16px 44px !important;
  min-width: 280px;
  background: #fff !important;
  border: 1.5px solid #e39a00 !important;
  color: #e39a00 !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
  border-radius: 999px !important;
  overflow: visible !important;
  transition: all 0.3s !important;
}
body.single-voice .design_button::after {
  display: none !important;
  content: none !important;
  background: none !important;
}
body.single-voice .design_button span {
  position: static !important;
  color: #e39a00 !important;
  z-index: auto !important;
  transition: color 0.3s;
}
body.single-voice .design_button:hover {
  background: #e39a00 !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(227,154,0,0.3);
}
body.single-voice .design_button:hover span {
  color: #fff !important;
}
body.single-voice .design_button::before {
  content: '\f060';
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 0.85rem;
  transition: transform 0.3s;
}
body.single-voice .design_button:hover::before {
  transform: translateX(-3px);
}

/* 他己紹介アーカイブのパンくず下余白を縮小（page_header削除に伴う調整） */
body.post-type-archive-voice .c-breadcrumb {
  margin-block-end: 25px;
}
@media (max-width: 767px) {
  body.post-type-archive-voice .c-breadcrumb {
    margin-block-end: 12px;
  }
}

/* ========================================
   トップページ WORKS セクション — 文字色読みやすさ調整
   親テーマは .cb_post_list:has(.overlay) で文字色を白(#fff)にしているが、
   オーバーレイが薄いオレンジで背景が明るいため白文字が見えにくい。
   見出し・タイトル・日付・カテゴリーボタンを黒系に上書き。
   ======================================== */
body .cb_post_list:has(.overlay) .design_headline,
body .cb_post_list:has(.overlay) .design_headline .headline {
  color: #e39a00 !important; /* 「取り組み実績のご紹介」サブタイトル */
}
body .cb_post_list:has(.overlay) .design_headline .headline span {
  color: #1a1a18 !important; /* 「WORKS」英字 */
}

/* design_headline (SERVICE/WORKS/COLUMN) はテーマ親のスタイルに任せる。
   ただし WORKS は元が白文字なので、別途下記 .cb_post_list:has(.overlay) で対応済み。 */
body .cb_post_list:has(.overlay) .index_post_carousel .blog_list a,
body .cb_post_list:has(.overlay) .index_post_carousel .blog_list .title,
body .cb_post_list:has(.overlay) .index_post_carousel .blog_list .title a {
  color: #1a1a18 !important;
}
body .cb_post_list:has(.overlay) .index_post_carousel .blog_list .c-date,
body .cb_post_list:has(.overlay) .index_post_carousel .blog_list .c-date time {
  color: #4a4840 !important;
}
body .cb_post_list:has(.overlay) .index_post_carousel .blog_list a:hover {
  color: #4a4840 !important;
}

/* ========================================
   カテゴリーボタン — 全ページ共通の色分け
   URL の `_local`/`_school`/`_org` で判定して
   「地域」「学校」「組織」を別の色で表示する。
   通常時：色背景 + 白文字  /  ホバー時：白背景 + 色文字
   ======================================== */

/* 共通：transition と base は a.category_button に直接当てて specificity を高める */
body a.category_button,
body .blog_list a.category_button,
body .index_post_carousel a.category_button {
  transition: background-color 0.25s, color 0.25s, border-color 0.25s;
}

/* --- 地域（_local） --- */
body a.category_button[href*="_local"],
body .blog_list a.category_button[href*="_local"],
body .index_post_carousel a.category_button[href*="_local"] {
  background: #e39a00 !important;
  border-color: #e39a00 !important;
  color: #fff !important;
}
body a.category_button[href*="_local"]:hover,
body .blog_list a.category_button[href*="_local"]:hover,
body .index_post_carousel a.category_button[href*="_local"]:hover {
  background: #fff !important;
  border-color: #e39a00 !important;
  color: #e39a00 !important;
}

/* --- 学校（_school） --- */
body a.category_button[href*="_school"],
body .blog_list a.category_button[href*="_school"],
body .index_post_carousel a.category_button[href*="_school"] {
  background: #10829c !important;
  border-color: #10829c !important;
  color: #fff !important;
}
body a.category_button[href*="_school"]:hover,
body .blog_list a.category_button[href*="_school"]:hover,
body .index_post_carousel a.category_button[href*="_school"]:hover {
  background: #fff !important;
  border-color: #10829c !important;
  color: #10829c !important;
}

/* --- 組織（_org） --- */
body a.category_button[href*="_org"],
body .blog_list a.category_button[href*="_org"],
body .index_post_carousel a.category_button[href*="_org"] {
  background: #1a8b5a !important;
  border-color: #1a8b5a !important;
  color: #fff !important;
}
body a.category_button[href*="_org"]:hover,
body .blog_list a.category_button[href*="_org"]:hover,
body .index_post_carousel a.category_button[href*="_org"]:hover {
  background: #fff !important;
  border-color: #1a8b5a !important;
  color: #1a8b5a !important;
}

/* ========================================
   ドロワーメニュー（SP）— sub_title（日本語表記）を強制表示
   PC では「for School / 学校向けサービス」と2段構成だが、
   SP のドロワーメニューでは sub_title が見えない状態のため、
   子テーマで明示的に表示を有効化する。
   ======================================== */
#drawer_menu_nav a .sub_title {
  display: block !important;
  visibility: visible !important;
  height: auto !important;
  overflow: visible !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  margin-top: 4px !important;
  letter-spacing: 0.04em !important;
  white-space: normal !important;
  /* 色指定なし → 親テーマの #000 を継承（PC=白背景で黒文字に見える） */
}
#drawer_menu_nav a .title {
  display: block !important;
  visibility: visible !important;
}
/* SP時はオレンジ背景になるため白文字に */
@media (max-width: 767px) {
  #drawer_menu_nav a .sub_title {
    color: rgba(255, 255, 255, 0.88) !important;
  }
}

/* ========================================
   トップページ Voice セクション — コンパクトカード4列
   親テーマの voice_list_design_type2（大写真+縦書きキャッチ）を、
   上に見出し横書き／下に4列グリッドの小カードレイアウトへ再構成。
   ======================================== */

/* セクション全体のレイアウト：横並び→縦積み */
body.home .cb_voice {
  padding: 80px 60px !important;
}
body.home .cb_voice_inner.layout_type1,
body.home .cb_voice_inner.layout_type2 {
  display: block !important;
  width: 100% !important;
}

/* セクション全体を中央揃えに */
body.home .cb_voice {
  text-align: center;
}

/* 見出しエリア — WORKS同様のレイアウト（英字大＋日本語小） */
body.home .cb_voice .headline_area {
  width: 100% !important;
  padding: 0 0 40px !important;
  text-align: center;
  display: block !important;
}
body.home .cb_voice .headline_area_inner {
  text-align: center !important;
  display: block !important;
  width: auto !important;
  margin: 0 auto !important;
}
body.home .cb_voice .headline_area {
  text-align: center !important;
  width: 100% !important;
  padding: 0 0 40px !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  position: static !important;
  left: auto !important;
  transform: none !important;
}
body.home .cb_voice .headline_area_inner {
  text-align: center !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  position: static !important;
  left: auto !important;
  transform: none !important;
}
/* INTRODUCTION (cb_voice の headline_area) を SERVICE 見出しと完全一致させる。
   SERVICE 側は本番インライン<style>で
     .design_headline.horizontal .headline { font-size:18px; font-weight:300; ...}
     .design_headline.horizontal .headline span { font-family:"Josefin Sans"; font-size:50px; font-weight:600; }
     .design_headline.horizontal .headline span.black { color:#333; }
   が当たっている。同じ値を Voice 側にも明示する。 */
body.home .cb_voice .headline_area .headline,
body.home .cb_voice .headline_area.vertical .headline,
body.home.home .cb_content_2 .headline_area .headline {
  writing-mode: horizontal-tb !important;
  margin: 0 !important;
  font-size: 18px !important;
  font-family: var(--tcd-base-font-type, sans-serif) !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
  color: #e39a00 !important;
  letter-spacing: 1px !important;
  text-align: center !important;
}
body.home .cb_voice .headline_area .headline span,
body.home.home .cb_content_2 .headline_area .headline span {
  display: inline-block !important;
  font-family: "Josefin Sans", sans-serif !important;
  font-optical-sizing: auto;
  font-size: clamp(28px, 5.8vw, 50px) !important;
  font-weight: 600 !important;
  font-style: normal !important;
  color: #333 !important;
  letter-spacing: inherit !important;
  margin: 0 !important;
}

/* 他の見出し英字span (SERVICE/WORKS/COLUMN等) も同様にレスポンシブ化
   親テーマインライン<style>の font-size:50px を上書き */
body .design_headline.horizontal .headline span,
body .design_headline .headline span {
  font-size: clamp(28px, 5.8vw, 50px) !important;
}

/* SP時の英字spanは上の統合ブロックで対応済み */
body.home .cb_voice .headline_area.vertical .desc,
body.home .cb_voice .headline_area .desc {
  display: none !important;
}

/* "他己紹介を見る" ボタンは JS で .design_button 化されるため、
   親テーマの design_button スタイル（COLUMN一覧と同じ）がそのまま当たる。
   ここでは margin の上書きだけ調整し、他のセクションと位置を揃える。 */
body.home .cb_voice .voice_list_carousel ~ .design_button {
  margin: 70px auto 0 !important;
}

/* カルーセル領域をフル幅、グリッドに */
body.home .cb_voice .voice_list_carousel {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}
body.home .cb_voice .voice_list_carousel .voice_list,
body.home .cb_voice .voice_list {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
  margin: 0 !important;
  flex-wrap: wrap !important;
}
body.home .cb_voice .voice_list_carousel .voice_list:after {
  display: none !important;
}

/* 各記事カード */
body.home .cb_voice .voice_list .item {
  width: auto !important;
  flex: none !important;
  margin: 0 !important;
  background: #fff;
  border: 1px solid #e5e2db;
  border-radius: 8px;
  overflow: hidden;
  transition: box-shadow 0.3s, transform 0.3s;
}
body.home .cb_voice .voice_list .item:hover {
  box-shadow: 0 8px 28px rgba(0,0,0,0.08);
  transform: translateY(-3px);
}
body.home .cb_voice .voice_list .item a {
  display: block !important;
  padding: 0 !important;
  background: none !important;
}

/* 写真エリア：縦書き解除、catch を画像下部にオーバーレイ */
body.home .cb_voice .voice_list .top_area {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  overflow: hidden !important;
  display: block !important;
  flex-direction: unset !important;
  gap: 0 !important;
}
body.home .cb_voice .voice_list .top_area .c-thumbnail,
body.home .cb_voice .voice_list .top_area picture {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: auto !important;
  display: block !important;
  margin: 0 !important;
}
body.home .cb_voice .voice_list .top_area img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
body.home .cb_voice .voice_list .top_area .catch {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  margin: 0 !important;
  padding: 28px 14px 12px !important;
  background: linear-gradient(to top, rgba(0,0,0,0.8), rgba(0,0,0,0)) !important;
  writing-mode: horizontal-tb !important;
  width: auto !important;
  height: auto !important;
  text-align: left !important;
}
body.home .cb_voice .voice_list .top_area .catch h3 {
  margin: 0 !important;
  font-size: 0.82rem !important;
  line-height: 1.5 !important;
  color: #fff !important;
  font-weight: 600 !important;
  width: auto !important;
  max-width: none !important;
  writing-mode: horizontal-tb !important;
}
body.home .cb_voice .voice_list .top_area .catch h3 span {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  writing-mode: horizontal-tb !important;
  color: #fff !important;
}

/* 名前・肩書きエリア（写真との余白を半減＋デザイン性を強化） */
body.home .cb_voice .voice_list .bottom_area {
  padding: 8px 16px 16px !important; /* 写真直下の余白を半分に */
  display: block !important;
  width: auto !important;
  align-items: stretch !important;
  background: #fff;
}
body.home .cb_voice .voice_list .bottom_area .title {
  position: relative;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1a1a18 !important;
  margin: 0 0 8px !important;
  padding: 4px 0 4px 12px !important;
  line-height: 1.5 !important;
  text-align: left !important;
  border-left: 3px solid #e39a00;
  letter-spacing: 0.02em;
}
body.home .cb_voice .voice_list .bottom_area .info {
  font-size: 18px !important;
  color: #6a6862 !important;
  line-height: 1.6 !important;
  margin: 0 !important;
  padding: 8px 0 0 12px !important;
  border-top: 1px dashed #e5e2db;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-align: left !important;
  word-break: keep-all;
}

/* レスポンシブ */
@media (max-width: 1024px) {
  body.home .cb_voice .voice_list_carousel .voice_list,
  body.home .cb_voice .voice_list {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 480px) {
  body.home .cb_voice {
    padding: 60px 20px !important;
  }
  body.home .cb_voice .voice_list_carousel .voice_list,
  body.home .cb_voice .voice_list {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}

/* ========================================
   コラム (post) シングル — 目次（.p-toc）に最小限のアイコン追加
   テーマ親のデフォルトデザインを基本に、
   「目次」見出しと第2階層（親リスト項目）の左にアイコンだけ付与する。
   ======================================== */
.p-toc-headline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.p-toc-headline::before {
  content: '\f03a'; /* fa-list */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #e39a00;
  font-size: 0.95em;
}
.p-toc > ul > li {
  position: relative;
  list-style: none !important;
  padding-left: 22px;
}
.p-toc > ul > li::before {
  content: '\f0da'; /* fa-caret-right */
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: #e39a00;
  position: absolute;
  left: 4px;
  top: 0.35em;
  font-size: 0.85em;
}

/* ========================================
   コラム (post) シングル — 既存の著者プロフィール非表示
   wordpress@lamps.co.jp の Gravatar/名前ボックスを隠す
   ======================================== */
body.single-post #author_profile {
  display: none !important;
}

/* ========================================
   著者プロフィールカード（清水明夫）
   ショートコード [lamps_author] / Gutenbergパターン共通スタイル
   ======================================== */
.lamps-author-card {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 28px;
  background: #fafaf8;
  border: 1px solid #e5e2db;
  border-left: 4px solid #e39a00;
  border-radius: 6px;
  padding: 32px;
  margin: 60px 0 40px;
  font-family: inherit;
  align-items: start;
}
.lamps-author-card__photo {
  width: 140px;
}
.lamps-author-card__photo img {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}
.lamps-author-card__role {
  margin: 0 0 16px !important;
  padding: 0 0 12px !important;
  border-bottom: 1px solid #e5e2db;
}
.lamps-author-card__caption {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px !important;
  padding: 4px 12px 4px 10px;
  background: #fff;
  border: 1px solid #e5e2db;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 500;
  color: #6a6862;
  letter-spacing: 0.06em;
}
.lamps-author-card__caption i {
  color: #e39a00;
  font-size: 0.78rem;
}
.lamps-author-card__org {
  display: block;
  font-family: "Josefin Sans", sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  color: #e39a00;
  margin-bottom: 0;
}
.lamps-author-card__name {
  display: block;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1a1a18;
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.lamps-author-card__bio {
  margin: 0 !important;
  font-size: 0.88rem !important;
  line-height: 1.95 !important;
  color: #4a4840 !important;
  letter-spacing: 0.02em;
}

@media (max-width: 600px) {
  .lamps-author-card {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 24px 20px;
    margin: 40px 0 30px;
  }
  .lamps-author-card__photo {
    width: 110px;
    margin: 0 auto;
  }
  .lamps-author-card__caption {
    display: flex !important;
    width: fit-content;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .lamps-author-card__role {
    text-align: center;
  }
  .lamps-author-card__name {
    font-size: 1.1rem;
  }
  .lamps-author-card__bio {
    font-size: 0.84rem !important;
  }
}

body.single-voice #voice_article {
  text-align: center;
}
body.single-voice #voice_article > #voice_header,
body.single-voice #voice_article > .post_content {
  text-align: left;
}

/* 関連記事カルーセル — 名前・肩書きのデザインを記事ページのカードと統一 */
.voice_carousel .item .bottom_area,
#related_voice .voice_carousel .bottom_area {
  padding-top: 12px !important;
}
.voice_carousel .item .bottom_area .title,
#related_voice .voice_carousel .bottom_area .title {
  position: relative;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: #1a1a18 !important;
  margin: 0 0 10px !important;
  padding: 4px 0 4px 12px !important;
  line-height: 1.5 !important;
  text-align: left !important;
  border-left: 3px solid #e39a00;
  letter-spacing: 0.02em;
}
.voice_carousel .item .bottom_area .info,
#related_voice .voice_carousel .bottom_area .info {
  font-size: 0.78rem !important;
  color: #6a6862 !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  padding: 10px 0 0 12px !important;
  border-top: 1px dashed #e5e2db;
  text-align: left !important;
}

/* 関連記事 */
body.single-voice #related_voice .headline {
  font-size: clamp(1.3rem, 2.5vw, 1.7rem) !important;
  font-weight: 700 !important;
  text-align: center;
  letter-spacing: 0.06em;
  position: relative;
  padding-bottom: 14px;
  margin-bottom: 32px;
}
body.single-voice #related_voice .headline::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 2px;
  background: #e39a00;
}

/* レスポンシブ */
@media (max-width: 767px) {
  body.single-voice .post_content {
    padding: 40px 18px 30px;
  }
  body.single-voice .post_content h3.custom_h4 {
    padding-left: 48px !important;
    font-size: 1.1rem !important;
    min-height: 36px;
  }
  body.single-voice .post_content h3.custom_h4::before {
    width: 36px !important;
    height: 36px !important;
    font-size: 1.05rem !important;
  }
  /* 親テーマの 767px時 #voice_header .title { float:left } を解除し、
     .info がタイトル本文に回り込むのを防ぐ */
  body.single-voice #voice_header .content_inner .title {
    float: none !important;
    clear: both !important;
    width: auto !important;
    margin-top: 20px !important;
    margin-right: 0 !important;
    font-size: 1.05rem !important;
  }
  body.single-voice #voice_header .content_inner .info {
    clear: both !important;
    width: auto !important;
    margin-left: 18px !important;
    margin-top: 4px !important;
    font-size: 0.82rem !important;
  }
  body.single-voice .design_button {
    width: calc(100% - 32px);
    padding: 14px 24px !important;
  }
}