@charset "UTF-8";
/* =============================================================
 *  CaCC Lab — main stylesheet
 *  最終採用案 v1.0（final-decision.html）に準拠
 *
 *  セクション構成:
 *    1. Design Tokens
 *    2. Global Reset
 *    3. Decoration Strip（装飾引き算）
 *    4. Typography
 *    5. Layout Container
 *    6. Domain Color Utilities
 *    7. Blocks & Components
 *    8. Works（CPT）
 *    9. Journal（記事一覧／詳細）
 *   10. Global CTA
 *   11. Header Overrides
 *   12. Footer Overrides
 *   13. Parent Theme Overrides（装飾打ち消し）
 *   14. Responsive
 *   15. Prefers Reduced Motion
 * ============================================================= */


/* ---------------------------------------------------------------
 *  1. Design Tokens
 *  style.css :root との重複を避けるため、ここでは追加値のみ
 * --------------------------------------------------------------- */
:root {
  /* Spacing scale (rem) — 4px ベース */
  --sp-1: 0.25rem; --sp-2: 0.5rem; --sp-3: 0.75rem; --sp-4: 1rem;
  --sp-5: 1.5rem; --sp-6: 2rem; --sp-7: 3rem; --sp-8: 4rem;
  --sp-9: 6rem;

  /* Content widths */
  --w-prose: 720px;
  --w-page:  1080px;
}


/* ---------------------------------------------------------------
 *  2. Global Reset
 * --------------------------------------------------------------- */
body {
  /* 親テーマ style-custom.css が body { background-color: #f1f1f1; font-family: "Kiwi Maru" } を
     後読み込みで強制してくるため、!important で上書き（デザイントークン準拠）。 */
  background: var(--paper) !important;
  color: var(--ink);
  font-family: var(--font-jp) !important;
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--ink-2);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: opacity 0.15s ease;
}
a:hover,
a:focus {
  opacity: 0.7;
}

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

hr {
  border: none;
  border-top: 1px solid var(--line);
  margin: var(--sp-7) 0;
}


/* ---------------------------------------------------------------
 *  3. Decoration Strip（装飾引き算）
 *  .entry-content 内のカード／リスト等の装飾を打ち消す。
 *  .wp-block-cover と必要な画像は除外する（background-image は残す）。
 * --------------------------------------------------------------- */
.entry-content :is(
  .wp-block-group,
  .wp-block-column,
  .wp-block-columns,
  .wp-block-media-text,
  .wp-block-pullquote,
  .wp-block-quote,
  .cacc-card
) {
  border-radius: 0;
  box-shadow: none;
  text-shadow: none;
}

.entry-content :is(.cacc-card, .wp-block-group) {
  transition: none;
}


/* ---------------------------------------------------------------
 *  4. Typography
 * --------------------------------------------------------------- */
h1, .cacc-h1 {
  font-family: var(--font-serif);
  font-size: clamp(28px, 3.2vw, 38px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.6px;
  color: var(--ink);
  margin: 0 0 0.6em;
}

h2, .cacc-h2 {
  font-family: var(--font-serif);
  font-size: clamp(20px, 2.2vw, 23px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.3px;
  color: var(--ink);
  margin: var(--sp-7) 0 var(--sp-3);
}

h3, .cacc-h3 {
  font-family: var(--font-en);
  font-size: 13.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2px;
  color: var(--ink);
  margin: var(--sp-6) 0 var(--sp-2);
}

h4 {
  font-family: var(--font-jp);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: var(--ink);
  margin: var(--sp-5) 0 var(--sp-2);
}

p {
  font-size: 15px;
  line-height: 2;
  color: var(--ink-2);
  margin: 0 0 var(--sp-4);
}

strong, b {
  color: var(--ink);
  font-weight: 700;
}

code, .cacc-mono {
  font-family: var(--font-mono);
  font-size: 11.5px;
  background: var(--paper-2);
  color: var(--ink);
  padding: 2px 7px;
  border-radius: 2px;
}

blockquote {
  border-left: 3px solid var(--ink);
  background: var(--paper-2);
  margin: var(--sp-5) 0;
  padding: var(--sp-4) var(--sp-5);
  font-size: 14px;
  color: var(--ink-2);
  line-height: 1.95;
}

/* 定義リスト（運営者情報・FAQ 等で使う） */
.entry-content dl,
dl {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 0.5em 1.5em;
  margin: var(--sp-5) 0;
  font-size: 14.5px;
  line-height: 1.9;
}
.entry-content dl dt,
dl dt {
  font-weight: 700;
  color: var(--ink);
  padding: 0.5em 0;
  border-top: 1px solid var(--line);
}
.entry-content dl dd,
dl dd {
  margin: 0;
  color: var(--ink-2);
  padding: 0.5em 0;
  border-top: 1px solid var(--line-2);
}
@media (max-width: 640px) {
  .entry-content dl,
  dl {
    grid-template-columns: 1fr;
    gap: 0.25em;
  }
  .entry-content dl dd,
  dl dd { padding-bottom: 1em; }
}


/* ---------------------------------------------------------------
 *  5. Layout Container
 * --------------------------------------------------------------- */
.cacc-wrap,
.entry-content > :not(.alignfull):not(.alignwide),
.site-content .container {
  max-width: var(--w-page);
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
}

.cacc-wrap-prose,
.single .entry-content > :not(.alignfull):not(.alignwide) {
  max-width: var(--w-prose);
  margin-left: auto;
  margin-right: auto;
}


/* ---------------------------------------------------------------
 *  6. Domain Color Utilities
 *  is-computer / is-career / is-counseling / is-core
 * --------------------------------------------------------------- */
.is-computer   { --d-color: var(--c-computer); }
.is-career     { --d-color: var(--c-career); }
.is-counseling { --d-color: var(--c-counseling); }
.is-core       { --d-color: var(--c-core); }

.is-computer, .is-career, .is-counseling, .is-core {
  border-top: 4px solid var(--d-color);
}

/* ドメインタグ（カードの角に置く小さいラベル） */
.cacc-tag {
  display: inline-block;
  font-family: var(--font-en);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 3px 9px;
  background: var(--paper-2);
  color: var(--ink-3);
  border-left: 3px solid var(--d-color, var(--ink));
  text-decoration: none;
}
.cacc-tag.is-filled {
  background: var(--d-color, var(--ink));
  color: var(--paper);
  border-left: none;
}

/* ドメイン色ドット（見出し前などに使う） */
.cacc-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: var(--d-color, var(--ink));
  margin-right: 0.5em;
  vertical-align: middle;
}

/* 記事カード左縦バー */
.cacc-card {
  position: relative;
  background: var(--white);
  padding: var(--sp-5) var(--sp-5) var(--sp-4) calc(var(--sp-5) + 6px);
  margin: 0 0 var(--sp-4);
  border: 1px solid var(--line);
}
.cacc-card::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 4px;
  background: var(--d-color, var(--ink));
}
.cacc-card .cacc-card-title {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  margin: 0 0 var(--sp-2);
  color: var(--ink);
}
.cacc-card .cacc-card-meta {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 0.8px;
  margin-bottom: var(--sp-2);
}


/* ---------------------------------------------------------------
 *  7. Blocks & Components（Hero / 3 Fields / Filter bar）
 * --------------------------------------------------------------- */

/* Home Hero */
.cacc-hero {
  padding: var(--sp-8) 0 var(--sp-7);
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.cacc-hero .cacc-hero-grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: var(--sp-7);
  align-items: center;
}
.cacc-hero h1 {
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.3;
}
.cacc-hero .cacc-hero-lede {
  font-size: 16px;
  line-height: 2;
  color: var(--ink-2);
  margin-bottom: var(--sp-5);
}
.cacc-hero .cacc-motto {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 13px;
  color: var(--muted);
  margin-top: var(--sp-6);
}

/* Three Fields row
   Gutenberg の wp:group は内部に .wp-block-group__inner-container を
   自動挿入するため、grid は外側ではなくこのインナーラッパーに適用する必要がある。
   外側（.cacc-three-fields）は縦余白のみ担保する。
   ※ 直接の子 (>) のみに限定すること。descendant セレクタにすると各
     .cacc-field 内部の inner-container にも grid が適用されて、カード内の
     テキストが 3 カラム分割される不具合が発生する。 */
.cacc-three-fields > .wp-block-group__inner-container {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: var(--sp-5);
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}

.cacc-three-fields {
  display: block;
  gap: 0;
  padding: var(--sp-7) 0;
}
.cacc-three-fields .cacc-field {
  padding: var(--sp-5);
  background: var(--white);
  border: 1px solid var(--line);
}
.cacc-three-fields .cacc-field h4 {
  font-family: var(--font-serif);
  font-size: 19px;
  margin: 0 0 var(--sp-2);
}
.cacc-three-fields .cacc-field .cacc-verb {
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: var(--sp-2);
}

/* Filter bar（Journal / Works archive） */
.cacc-filter {
  display: flex;
  gap: var(--sp-2);
  flex-wrap: wrap;
  padding: var(--sp-4) 0;
  border-bottom: 1px solid var(--line);
  margin-bottom: var(--sp-5);
}
.cacc-filter a {
  display: inline-block;
  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.8px;
  padding: var(--sp-2) var(--sp-4);
  background: var(--paper-2);
  color: var(--ink-2);
  border: 1px solid var(--line);
  text-decoration: none;
}
.cacc-filter a.is-active {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

/* Buttons */
.cacc-btn {
  display: inline-block;
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.4px;
  padding: 12px 22px;
  background: var(--paper-2);
  color: var(--ink);
  border: 1px solid var(--ink);
  text-decoration: none;
  cursor: pointer;
}
.cacc-btn:hover,
.cacc-btn:focus { opacity: 0.85; }

.cacc-btn.is-primary {
  background: var(--ink);
  color: var(--paper);
}

.cacc-btn.is-ghost {
  background: transparent;
  border-color: var(--line);
  color: var(--ink-2);
}


/* ---------------------------------------------------------------
 *  7.x Primary Offer（主要オファー・Hero 直下に単独配置）
 * --------------------------------------------------------------- */
.cacc-primary-offer {
  background: var(--paper-2);
  padding: var(--sp-8) 0;
  border-top: 4px solid var(--c-computer);
}
.cacc-offer-eyebrow {
  font-family: var(--font-en);
  font-size: 11px !important;
  letter-spacing: 2px;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: var(--sp-2) !important;
}
.cacc-offer-title {
  font-family: var(--font-serif) !important;
  font-size: clamp(22px, 2.6vw, 28px) !important;
  line-height: 1.5 !important;
  margin-bottom: var(--sp-4) !important;
  color: var(--ink);
  background: none !important;
  background-image: none !important;
  padding: 0 !important;
}
.cacc-offer-body {
  font-size: 15px !important;
  line-height: 2 !important;
  color: var(--ink-2);
  max-width: 740px;
  margin-bottom: var(--sp-5) !important;
}
.cacc-offer-points {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--sp-5);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-3);
  max-width: 740px;
}
.cacc-offer-points li {
  font-size: 13px;
  color: var(--ink-2);
  padding: var(--sp-3) var(--sp-4);
  background: var(--white);
  border-left: 3px solid var(--c-computer);
}
.cacc-offer-points li strong {
  display: block;
  font-family: var(--font-en);
  font-size: 10.5px;
  letter-spacing: 1px;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: 4px;
}
@media (max-width: 640px) {
  .cacc-offer-points { grid-template-columns: 1fr; }
}


/* ---------------------------------------------------------------
 *  7.y Proof Wall（note / Zenn / Lancers / Apps の証拠）
 * --------------------------------------------------------------- */
.cacc-proof-wall {
  padding: var(--sp-8) 0;
  background: var(--paper);
  border-top: 1px solid var(--line);
}
.cacc-proof-eyebrow {
  font-family: var(--font-en);
  font-size: 11px !important;
  letter-spacing: 2px;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: var(--sp-2) !important;
}
.cacc-proof-heading {
  font-family: var(--font-en) !important;
  font-size: 14px !important;
  letter-spacing: 0.4px;
  text-transform: uppercase !important;
  color: var(--ink);
  margin-bottom: var(--sp-5) !important;
  background: none !important;
  padding: 0 !important;
}
.cacc-proof-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-3);
}
.cacc-proof-card {
  display: block;
  padding: var(--sp-4) var(--sp-4);
  background: var(--white);
  border: 1px solid var(--line);
  text-decoration: none !important;
  transition: border-color 0.15s ease;
  height: 100%;
}
.cacc-proof-card:hover,
.cacc-proof-card:focus {
  border-color: var(--ink);
  opacity: 1;
}
.cacc-proof-card .cacc-proof-label {
  display: block;
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: var(--sp-2);
}
.cacc-proof-card .cacc-proof-desc {
  display: block;
  font-size: 12.5px;
  color: var(--ink-3);
  line-height: 1.8;
  margin-bottom: var(--sp-3);
  min-height: 3.2em;
}
.cacc-proof-card .cacc-proof-meta {
  display: block;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.8px;
  color: var(--c-computer);
  text-transform: uppercase;
}
@media (max-width: 960px) {
  .cacc-proof-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .cacc-proof-grid { grid-template-columns: 1fr; }
}


/* ---------------------------------------------------------------
 *  8. Works（CPT）
 * --------------------------------------------------------------- */
.cacc-works {
  padding: var(--sp-7) 0;
}
.cacc-works .cacc-work-card {
  display: grid;
  grid-template-columns: 100px 1fr 140px;
  gap: var(--sp-5);
  padding: var(--sp-5) 0;
  border-bottom: 1px solid var(--line);
  align-items: baseline;
}
.cacc-works .cacc-work-card .cacc-work-period {
  font-family: var(--font-mono);
  font-size: 11.5px;
  color: var(--muted);
  letter-spacing: 0.8px;
}
.cacc-works .cacc-work-card h3 {
  font-family: var(--font-serif);
  text-transform: none;
  font-size: 17px;
  letter-spacing: -0.2px;
  margin: 0 0 var(--sp-2);
  color: var(--ink);
}
.cacc-works .cacc-work-card .cacc-work-outcome {
  font-size: 13.5px;
  color: var(--ink-2);
  line-height: 1.9;
}
.cacc-works .cacc-work-card .cacc-work-status {
  font-family: var(--font-en);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--muted);
  text-align: right;
}

/* single-work 構造セクション */
.cacc-work-single .cacc-work-head {
  padding: var(--sp-7) 0 var(--sp-5);
  border-bottom: 1px solid var(--line);
}
.cacc-work-single section[data-section] {
  padding: var(--sp-6) 0;
  border-bottom: 1px solid var(--line-2);
}
.cacc-work-single section[data-section] > h3 {
  color: var(--muted);
  margin-bottom: var(--sp-3);
}


/* ---------------------------------------------------------------
 *  9. Journal（記事一覧／詳細）
 * --------------------------------------------------------------- */
.cacc-journal {
  padding: var(--sp-7) 0;
}
.cacc-journal .cacc-journal-head {
  margin-bottom: var(--sp-6);
}
.cacc-journal .cacc-journal-head h1 {
  margin: 0 0 var(--sp-2);
}
.cacc-journal .cacc-journal-head p {
  color: var(--muted);
  max-width: 640px;
}

/* 記事詳細（single.php） */
.cacc-article {
  padding: var(--sp-7) 0;
}
.cacc-article > .cacc-article-head {
  max-width: var(--w-prose);
  margin: 0 auto var(--sp-6);
}
.cacc-article > .cacc-article-head .cacc-article-meta {
  font-family: var(--font-mono);
  font-size: 11.5px;
  color: var(--muted);
  letter-spacing: 0.8px;
  margin-top: var(--sp-3);
}
.cacc-article > .cacc-article-body {
  max-width: var(--w-prose);
  margin: 0 auto;
}
.cacc-article > .cacc-article-body p {
  font-size: 15.5px;
  line-height: 2;
  margin-bottom: 1.5em;
}

/* 著者カード（記事末尾） */
.cacc-author-card {
  max-width: var(--w-prose);
  margin: var(--sp-8) auto var(--sp-6);
  padding: var(--sp-5);
  background: var(--paper-2);
  border-left: 3px solid var(--ink);
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: var(--sp-4);
  align-items: center;
}
.cacc-author-card .cacc-author-label {
  font-family: var(--font-en);
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.cacc-author-card strong {
  font-family: var(--font-serif);
  font-size: 15px;
  font-weight: 600;
  display: block;
  margin-bottom: 4px;
}

/* カテゴリ連動の記事下 CTA（rework-review v1.0 §04 準拠） */
.cacc-article-cta {
  max-width: var(--w-prose);
  margin: var(--sp-7) auto;
  padding: var(--sp-6) var(--sp-5);
  background: var(--paper-2);
  border-top: 4px solid var(--d-color, var(--ink));
  border-left: 1px solid var(--line);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.cacc-article-cta .cacc-article-cta-eyebrow {
  font-family: var(--font-en);
  font-size: 10.5px;
  letter-spacing: 1.2px;
  color: var(--muted);
  text-transform: uppercase;
  margin-bottom: var(--sp-2);
}
.cacc-article-cta h3 {
  font-family: var(--font-serif);
  font-size: 18px;
  font-weight: 600;
  color: var(--ink);
  text-transform: none;
  letter-spacing: normal;
  margin: 0 0 var(--sp-3);
  background: none !important;
  padding: 0 !important;
}
.cacc-article-cta p {
  font-size: 14px;
  line-height: 1.95;
  color: var(--ink-2);
  margin-bottom: var(--sp-4);
}
.cacc-article-cta .cacc-btn {
  background: var(--d-color, var(--ink));
  color: var(--paper);
  border-color: var(--d-color, var(--ink));
}

/* 関連記事リスト（記事末尾） */
.cacc-related {
  max-width: var(--w-prose);
  margin: var(--sp-7) auto;
}
.cacc-related h3 { margin-bottom: var(--sp-3); }
.cacc-related ul { list-style: none; padding: 0; margin: 0; }
.cacc-related li {
  border-bottom: 1px solid var(--line);
  padding: var(--sp-3) 0;
}
.cacc-related a {
  font-family: var(--font-serif);
  font-size: 15px;
  text-decoration: none;
  color: var(--ink);
}
.cacc-related a:hover { opacity: 0.7; }


/* ---------------------------------------------------------------
 *  10. Global CTA
 * --------------------------------------------------------------- */
.cacc-global-cta {
  background: var(--ink);
  color: var(--paper);
  padding: var(--sp-8) 0;
  margin-top: var(--sp-8);
}
.cacc-global-cta h2 {
  color: var(--paper);
  font-family: var(--font-serif);
  font-size: clamp(20px, 2.4vw, 26px);
  margin: 0 0 var(--sp-3);
  /* 親テーマ TCD が全 h2 に repeating-linear-gradient の斜め縞を適用するため、
     Global CTA 内では強制打ち消し（文字可読性の確保） */
  background: transparent !important;
  background-image: none !important;
  padding: 0 !important;
  border: none !important;
}
.cacc-global-cta h2::before,
.cacc-global-cta h2::after {
  display: none !important;
}
.cacc-global-cta p {
  color: rgba(255, 255, 255, 0.82);
  max-width: 680px;
  margin: 0 auto var(--sp-5);
}
.cacc-global-cta .cacc-cta-row {
  display: flex;
  gap: var(--sp-3);
  justify-content: center;
  flex-wrap: wrap;
}
.cacc-global-cta .cacc-btn {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
}
.cacc-global-cta .cacc-btn.is-ghost {
  background: transparent;
  color: var(--paper);
  border-color: rgba(255, 255, 255, 0.5);
}


/* ---------------------------------------------------------------
 *  11. Header Overrides
 *  親テーマの l-header 系を静謐方向へ
 * --------------------------------------------------------------- */
.l-header {
  background: var(--paper) !important;
  border-bottom: 1px solid var(--line);
}

/* 親テーマのヘッダーナビ文字装飾（実 HTML で確認したセレクタのみ） */
.l-header nav a,
.l-header .menu-item a {
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.8px;
  color: var(--ink);
  text-decoration: none;
}
.l-header nav a:hover,
.l-header .menu-item a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}


/* ---------------------------------------------------------------
 *  12. Footer Overrides
 * --------------------------------------------------------------- */
.l-footer_top,
.l-footer_middle,
.l-footer_navi,
.l-footer_sns,
.l-copyright {
  background: var(--ink) !important;
  color: var(--paper);
}

.l-footer_top a,
.l-footer_middle a,
.l-footer_navi a,
.l-footer_sns a {
  color: var(--paper);
}

.l-footer_top .heading,
.l-footer_middle .heading {
  font-family: var(--font-en);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.68);
  margin-bottom: var(--sp-3);
  border: none;
  padding: 0;
}

.copyright {
  font-family: var(--font-en);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.4px;
}


/* ---------------------------------------------------------------
 *  13. Parent Theme Overrides（装飾打ち消し）
 *  親テーマ GOLD BLOG に多数存在する border-radius 5/15/9999px、
 *  box-shadow、transition を打ち消す。
 *  !important はこのセクション限定で使用する。
 * --------------------------------------------------------------- */

/* 本文領域内の装飾カード系 */
.l-contents :is(
  .c-card,
  .c-pagination,
  .entry-content .wp-block-button__link,
  .entry-content .wp-block-group
) {
  border-radius: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* ボタン系（Gutenberg 標準） */
.wp-block-button__link {
  border-radius: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

/* Swiper スライダー関連 — keyvisual は theme_mod フィルタで封印済のため不要 */


/* ---------------------------------------------------------------
 *  13.5 Decoration Block Suppression（FIX-05 最小版）
 *
 *  RECOMMEND / RANKING / note / Zenn / Lancers の封印は以下 2 系統で完了:
 *    (a) functions.php の theme_mod_fit_header_bottom_area_display = 'all_hide'
 *    (b) REST API 経由でのウィジェット削除（text-2 / rss-3 / rss-5 / custom_html-8）
 *
 *  CSS は二重保険として header_bottom のみ最小限残す。
 *  v7.9.3 §13.6 Accessibility Fixes とは別責務。
 * --------------------------------------------------------------- */

#l-header_bottom,
.l-header_bottom {
	display: none !important;
}

/* 旧タグライン（fit_header_title_text_subtitle）— theme_mod フィルタで空文字化
   済みだが、テーマ差分で DOM 残存するケースへの保険 */
.site_title__sub {
	display: none !important;
}

/* フッター装飾エリア — theme_mod フィルタで all_hide 指示済みだが、
   Xserver / WP のページキャッシュが古い HTML を返すケースへの保険。
   最終採用案では「紺 + copyright のみ」のミニマルフッターが正本。 */
.l-footer_top,
.l-footer_middle,
.l-footer_navi,
.l-footer_sns,
.l-footer_menu {
	display: none !important;
}

/* 親テーマのコピーライト文言に残存する「Start Over — Just for Fun」を
   CSS で視覚的に抑制（theme_mod フィルタで copyright 文言固定しているが、
   キャッシュ残存の保険） */
.l-copyright .phrase.phrase-is-custom {
	font-size: 12px;
	font-family: var(--font-en);
	color: rgba(255, 255, 255, 0.82);
	letter-spacing: 0.4px;
}

/* Copyright / footer ベースを Ink 背景に統一 */
.l-copyright {
	background: var(--ink) !important;
	color: var(--paper);
}
.l-copyright a {
	color: var(--paper);
}

/* ページ下部 "↑ トップへ戻る" ボタン（fit_footer_top_btn）も保険で非表示 */
.top_btn {
	display: none !important;
}


/* ---------------------------------------------------------------
 *  13.6 Accessibility Fixes（Phase 4.8 UX Audit 由来）
 *
 *  親テーマ TCD がモバイルパネル / ヘッダータイトルを重複描画するため、
 *  スクリーンリーダーから不要要素を隠す。
 *  CSS だけで aria-hidden 等価の抑制は完全には不可能だが、
 *  `display:none` は DOM から隠れるのでスクリーンリーダーは無視する。
 * --------------------------------------------------------------- */

/* モバイルパネル（ハンバーガー展開時に出る）を、デスクトップでは DOM から除外 */
@media (min-width: 641px) {
	.panel_side,
	.i-panel_side,
	.panel-container {
		display: none !important;
	}
}

/* モバイルパネル内の見出し「スマホサイト」を HTML 構造から抑制 */
.panel_side h1,
.panel_side h2,
.panel_side h3,
.i-panel_side h1,
.i-panel_side h2,
.i-panel_side h3 {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Header site_title のタグレベルを視覚的に抑え、SR では読み取り維持（セマンティクス修正）
   親テーマが front-page 時に H1 を二重出力するのを可視的に目立たなくする。
   厳密な DOM 修正は JS が必要なため、可視重みの統一のみ CSS で対処。 */
.l-header h1.site_title,
.l-header h2.site_title {
	font-size: 18px;
	line-height: 1.3;
	font-weight: 600;
	margin: 0;
}

/* Skip to main content リンク（アクセシビリティ） */
.cacc-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 9999;
	padding: 10px 16px;
	background: var(--ink);
	color: var(--paper);
	font-family: var(--font-en);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}
.cacc-skip-link:focus {
	left: 10px;
	top: 10px;
}

/* 旧「エラー: コンタクトフォームが見つかりません」相当の CF7 エラーを抑制
   ※根本原因（Contact ページ本文）は REST API で修正済み。この CSS は保険 */
.wpcf7-not-valid-tip,
.wpcf7 .wpcf7-validation-errors {
	color: var(--accent);
	font-size: 13px;
	line-height: 1.7;
	background: transparent;
	border: none;
	padding: 0;
	margin-top: 4px;
}


/* ---------------------------------------------------------------
 *  14. Responsive
 * --------------------------------------------------------------- */
@media (max-width: 960px) {
  .cacc-hero .cacc-hero-grid {
    grid-template-columns: 1fr;
    gap: var(--sp-5);
  }
  .cacc-three-fields > .wp-block-group__inner-container {
    grid-template-columns: 1fr !important;
    gap: var(--sp-4);
  }
  .cacc-three-fields {
    grid-template-columns: 1fr;
  }
  .cacc-works .cacc-work-card {
    grid-template-columns: 1fr;
    gap: var(--sp-2);
  }
  .cacc-works .cacc-work-card .cacc-work-status {
    text-align: left;
  }
}

@media (max-width: 640px) {
  h1, .cacc-h1 { font-size: 26px; line-height: 1.4; }
  .cacc-hero { padding: var(--sp-6) 0 var(--sp-5); }
  .cacc-wrap,
  .entry-content > :not(.alignfull):not(.alignwide),
  .site-content .container {
    padding-left: 20px;
    padding-right: 20px;
  }
}


/* ---------------------------------------------------------------
 *  15. Prefers Reduced Motion
 * --------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
