@charset "UTF-8";

/*!
Theme Name: Cocoon Child Kyutoki
Description: 給湯器エラー解決ナビ用のCocoon子テーマ（あたたかオレンジ）
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.2.0
*/

/************************************
** 色（あたたかオレンジ）
** 白い文字を乗せる背景には --kt-button を使う。
** --kt-accent（#e8692c）は白文字とのコントラストが足りないので、大きい数字・線・飾りだけに使う。
************************************/
:root {
  --kt-bg: #fffaf3;
  --kt-surface: #ffffff;
  --kt-hero: #ffe9d6;
  --kt-accent: #e8692c;
  --kt-button: #c2541b;
  --kt-accent-dark: #a8461a;
  --kt-text: #3d2c1e;
  --kt-ok-bg: #e6f5e9;
  --kt-ok: #2f7a3e;
  --kt-ng-bg: #ffe4e0;
  --kt-ng: #b8321f;
  --kt-warn-bg: #fff4cc;
  --kt-warn: #8a5a00;
  --kt-shadow: 0 2px 10px rgba(61, 44, 30, 0.08);
  --kt-radius: 16px;
  --kt-radius-s: 12px;

  /* Cocoon 本体の色をこのテーマの色にそろえる */
  --cocoon-text-color: var(--kt-text);
  --cocoon-basic-border-radius: var(--kt-radius);
}

/************************************
** ページ全体
************************************/
body {
  background-color: var(--kt-bg);
  color: var(--kt-text);
}

.header-container,
.main,
.sidebar,
.footer {
  background-color: var(--kt-bg);
}

.main,
.sidebar {
  border: none;
}

a {
  color: var(--kt-accent-dark);
}

/* ヘッダー：サイト名をオレンジの太字に */
.header-container {
  border-bottom: 1px solid #f1dcc8;
}

.site-name-text-link,
.site-name-text-link:hover {
  color: var(--kt-accent-dark);
  font-weight: bold;
}

.site-name-text-link::before {
  content: "♨ ";
}

.tagline {
  color: var(--kt-text);
}

/* カテゴリーメニュー：オレンジの帯に白い文字（外観→メニューで「ヘッダーメニュー」と「ヘッダーモバイルメニュー」に割り当てる） */
.navi,
.navi-in a {
  background-color: var(--kt-button);
  color: #ffffff;
  font-weight: bold;
}

.navi-in a:hover,
.navi-in a:focus-visible {
  background-color: var(--kt-accent-dark);
  color: #ffffff;
}

/* スマホ：Cocoon の2列×3段をやめて、1列に並べて横にスクロールさせる */
@media screen and (max-width: 1023px) {
  #navi .navi-in > .menu-mobile {
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 6px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 8px 10px;
  }

  #navi .navi-in > .menu-mobile li {
    flex: none;
    width: auto;
    height: auto;
    line-height: 1.4;
  }

  #navi .navi-in > .menu-mobile a {
    border-radius: 999px;
    /* 白い文字との比 約5.9:1（半透明の白だと約3.4:1で足りない） */
    background-color: var(--kt-accent-dark);
    padding: 7px 14px;
    font-size: 13px;
  }
}

/* パンくず */
.breadcrumb,
.breadcrumb a {
  color: var(--kt-accent-dark);
  font-size: 13px;
}

/************************************
** 白いカード：記事、トップの各段、サイドバーの各ウィジェット
************************************/
.article,
.sidebar .widget,
.kt-section {
  background-color: var(--kt-surface);
  border-radius: var(--kt-radius);
  box-shadow: var(--kt-shadow);
  padding: 20px;
}

.kt-section {
  margin: 0 0 20px;
}

/* 記事が0本でショートコードが何も出さなかったウィジェットは、白いカードごと隠す */
.sidebar .widget:empty {
  display: none;
}

/* トップページは段ごとに白いカードにするので、外側の記事は透明にする */
.home .article {
  background-color: transparent;
  box-shadow: none;
  padding: 0;
}

.kt-more {
  margin: 0;
  text-align: center;
}

.kt-more a {
  display: inline-block;
  background-color: var(--kt-button);
  color: #ffffff;
  font-weight: bold;
  text-decoration: none;
  border-radius: 999px;
  padding: 10px 22px;
}

.kt-more a:hover,
.kt-more a:focus-visible {
  background-color: var(--kt-accent-dark);
  color: #ffffff;
}

/* 記事一覧のカード */
.entry-card-wrap,
.related-entry-card-wrap,
.widget-entry-card-link {
  background-color: var(--kt-surface);
  border-radius: var(--kt-radius-s);
  box-shadow: var(--kt-shadow);
}

.cat-label {
  background-color: var(--kt-hero);
  color: var(--kt-accent-dark);
  border: none;
  border-radius: 999px;
  font-weight: bold;
  padding: 1px 8px;
}

/************************************
** 記事の見出し
************************************/
.entry-title {
  color: var(--kt-text);
}

.article h2 {
  background-color: transparent;
  border-left: 5px solid var(--kt-accent);
  border-radius: 0;
  padding: 6px 0 6px 14px;
  font-size: 22px;
}

.article h3 {
  border: none;
  border-bottom: 2px solid var(--kt-hero);
  padding: 6px 0;
  font-size: 19px;
}

.sidebar h2,
.sidebar h3 {
  background-color: var(--kt-hero);
  color: var(--kt-text);
  border-radius: var(--kt-radius-s);
}

.pr-note {
  color: var(--kt-text);
  opacity: 0.85;
}

/************************************
** ひと言でいうと（.kt-summary）と判定バッジ
************************************/
/* 記事は白いカードなので、中の箱は影ではなく枠線で区切る */
.kt-summary {
  background-color: var(--kt-surface);
  border-radius: var(--kt-radius);
  border: 2px solid #f3d2bb;
  padding: 16px 18px;
  margin: 1em 0 1.8em;
}

.kt-summary > * {
  margin-top: 0;
  margin-bottom: 0;
}

.article .kt-summary-label {
  font-size: 13px;
  font-weight: bold;
  color: var(--kt-accent-dark);
  margin-bottom: 2px;
}

.article .kt-summary-text {
  font-size: 19px;
  font-weight: bold;
  line-height: 1.5;
  margin-bottom: 10px;
}

.kt-summary .kt-summary-text:last-child {
  margin-bottom: 0;
}

.article .kt-badge {
  display: inline-block;
  font-size: 13px;
  font-weight: bold;
  border-radius: 999px;
  padding: 3px 12px;
}

.kt-badge.is-ok {
  background-color: var(--kt-ok-bg);
  color: var(--kt-ok);
}

.kt-badge.is-ng {
  background-color: var(--kt-ng-bg);
  color: var(--kt-ng);
}

.kt-badge.is-warn {
  background-color: var(--kt-warn-bg);
  color: var(--kt-warn);
}

/************************************
** 手順カード（.kt-step）：番号は CSS カウンターで自動
************************************/
.article {
  counter-reset: kt-step;
}

.kt-step {
  counter-increment: kt-step;
  position: relative;
  background-color: var(--kt-bg);
  border-radius: var(--kt-radius);
  padding: 16px 18px 16px 62px;
  margin: 0 0 14px;
}

.kt-step::before {
  content: counter(kt-step);
  position: absolute;
  left: 16px;
  top: 16px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background-color: var(--kt-button);
  color: #ffffff;
  font-size: 16px;
  font-weight: bold;
  line-height: 32px;
  text-align: center;
}

.article .kt-step h2,
.article .kt-step h3 {
  border: none;
  padding: 0;
  margin-top: 3px;
  font-size: 18px;
}

.kt-step > :last-child {
  margin-bottom: 0;
}

/* 見出しの言葉に合うイラストがある手順は、番号の丸の代わりにイラストを出す（inc/step-icons.php） */
.kt-step.has-icon::before {
  display: none;
}

.kt-step-icon {
  position: absolute;
  left: 12px;
  top: 12px;
  width: 40px;
  height: 40px;
}

.kt-step-icon img {
  display: block;
  width: 40px;
  height: 40px;
}

/************************************
** 画像つきカードの一覧（.kt-cards、inc/cards.php）
************************************/
.kt-cards.is-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 0 0 1.4em;
}

.kt-card {
  display: block;
  overflow: hidden;
  background-color: var(--kt-surface);
  border-radius: var(--kt-radius-s);
  box-shadow: var(--kt-shadow);
  color: var(--kt-text);
  text-decoration: none;
}

.kt-card:hover,
.kt-card:focus-visible {
  color: var(--kt-text);
  outline: 3px solid var(--kt-accent-dark);
  outline-offset: 0;
}

.kt-card-thumb {
  display: block;
  aspect-ratio: 1200 / 630;
  overflow: hidden;
  background-color: var(--kt-accent);
}

.kt-card-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kt-card-title {
  display: block;
  padding: 8px 10px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.45;
}

.kt-cards.is-list {
  display: grid;
  gap: 10px;
}

.kt-cards.is-list .kt-card {
  display: flex;
  gap: 10px;
  align-items: center;
  box-shadow: none;
}

.kt-cards.is-list .kt-card-thumb {
  flex: none;
  width: 110px;
  border-radius: 8px;
}

.kt-cards.is-list .kt-card-title {
  padding: 0;
  font-size: 13px;
}

@media screen and (min-width: 835px) {
  .kt-cards.is-grid:not(.kt-related) {
    grid-template-columns: repeat(3, 1fr);
  }
}

/************************************
** 見積もりの箱（.kt-cta）
************************************/
.kt-cta {
  color: var(--kt-text);
  background-color: var(--kt-hero);
  border-radius: var(--kt-radius);
  padding: 20px;
  margin: 2em 0;
}

.article .kt-cta h3 {
  border: none;
  padding: 0;
  margin-top: 0;
  color: var(--kt-text);
}

.kt-cta .cta-link a,
.kt-cta .wp-block-button__link {
  display: block;
  background-color: var(--kt-button);
  color: #ffffff;
  text-align: center;
  font-weight: bold;
  border-radius: 999px;
  padding: 14px 18px;
  text-decoration: none;
}

/************************************
** トップの「メーカー→番号」（.kt-finder）
** 表示の切り替えはメーカーごとに finder.php が出力する CSS で行う
************************************/
/* トップページでは「メーカー→番号」を最初に見せる */
.home .sns-share,
.home .date-tags,
.home .toc {
  display: none;
}

/* 見えなくするだけ（検索エンジン・読み上げソフト・キーボード操作には残す）
** トップの h1 と、メーカーのラジオボタンで使う */
.home .entry-title,
.kt-finder-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.kt-finder {
  background-color: var(--kt-hero);
  border-radius: 0 0 28px 28px;
  padding: 16px 16px 20px;
  margin-bottom: 2em;
}

.article .kt-finder-step {
  font-size: 14px;
  font-weight: bold;
  color: var(--kt-accent-dark);
  margin: 12px 0 8px;
}

.kt-finder-tabs {
  display: flex;
  gap: 6px;
}

.kt-finder-tabs label {
  flex: 1;
  text-align: center;
  background-color: var(--kt-surface);
  color: var(--kt-accent-dark);
  font-weight: bold;
  border-radius: 999px;
  padding: 10px 0;
  cursor: pointer;
}

.kt-finder-panel {
  display: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.kt-finder a.kt-code {
  display: block;
  background-color: var(--kt-surface);
  border-radius: var(--kt-radius-s);
  box-shadow: var(--kt-shadow);
  text-align: center;
  text-decoration: none;
  padding: 10px 4px;
}

/* 番号は大きい太字（大きい文字の基準 3:1 で #e8692c を使う） */
.kt-code b {
  display: block;
  font-size: 24px;
  line-height: 1.2;
  color: var(--kt-accent);
}

.kt-code small {
  display: block;
  font-size: 12px;
  color: var(--kt-text);
}

.kt-finder-symptoms {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 14px;
}

.kt-finder a.kt-symptom {
  background-color: var(--kt-surface);
  border-radius: var(--kt-radius-s);
  color: var(--kt-text);
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  padding: 10px 6px;
}

/************************************
** スマホ画面下の見積もりボタン（.kt-sticky-cta）
** スマホの記事ページでは Cocoon のフッターメニューの場所に置き換える
************************************/
#kt-cta {
  scroll-margin-top: 70px;
}

@media screen and (min-width: 768px) {
  .kt-sticky-cta {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .kt-has-sticky-cta .mobile-footer-menu-buttons {
    display: none;
  }

  .kt-sticky-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: var(--kt-bg);
    border-top: 1px solid #f1dcc8;
    box-shadow: 0 -2px 10px rgba(61, 44, 30, 0.08);
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    font-size: 13px;
    color: var(--kt-text);
  }

  .kt-sticky-cta span {
    flex: none;
  }

  .kt-sticky-cta a {
    flex: 1;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--kt-button);
    color: #ffffff;
    font-weight: bold;
    font-size: 15px;
    border-radius: 999px;
    text-decoration: none;
  }

  /* 画面下のバーで本文の最後が隠れないように余白を足す */
  .kt-has-sticky-cta.mblt-footer-mobile-buttons {
    margin-bottom: 0;
  }

  .kt-has-sticky-cta {
    padding-bottom: 72px;
  }
}

/************************************
** スマホ
************************************/
@media screen and (max-width: 834px) {
  .main {
    padding: 16px 16px;
  }

  .article h2 {
    font-size: 20px;
  }

  .kt-step {
    padding: 14px 14px 14px 56px;
  }

  .kt-step::before {
    left: 12px;
    top: 14px;
  }

  .kt-step-icon {
    left: 8px;
    top: 10px;
  }

  .article,
  .sidebar .widget,
  .kt-section {
    padding: 16px;
  }
}
