@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Description: Cocoon専用の子テーマ
Theme URI: https://wp-cocoon.com/
Author: わいひら
Author URI: https://nelog.jp/
Template:   cocoon-master
Version:    1.1.3
*/

/************************************
** 子テーマ用のスタイルを書く
************************************/
/*必要ならばここにコードを書く*/

/************************************
** レスポンシブデザイン用のメディアクエリ
************************************/
/*1023px以下*/
@media screen and (max-width: 1023px){
  /*必要ならばここにコードを書く*/
}

/*834px以下*/
@media screen and (max-width: 834px){
  /*必要ならばここにコードを書く*/
}

/*480px以下*/
@media screen and (max-width: 480px){
  /*必要ならばここにコードを書く*/
}
/* キャッチコピーのデフォルトボタンを非表示 */
.catch-copy .btn-wrap {
  display: none;
}

/* ヒーロー画像内にボタンを配置 */
.header-image-wrapper {
  position: relative;
}

.hero-custom-btn {
  position: absolute;
  bottom: 60px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

.hero-custom-btn a {
  display: inline-block;
  background: #E87722;
  color: #fff;
  padding: 18px 60px;
  border-radius: 4px;
  font-size: 18px;
  font-weight: bold;
  text-decoration: none;
  white-space: nowrap;
}

.hero-custom-btn a:hover {
  background: #d06610;
  color: #fff;
}

.wpcf7 {
    max-width: 640px;
    margin: 0 auto;
}

.contact-lead {
    background: #f0f7fb;
    border-left: 4px solid #2E86AB;
    padding: 16px 20px;
    margin-bottom: 32px;
    border-radius: 4px;
    font-size: 0.95rem;
    line-height: 1.8;
}

.cf7-row {
    margin-bottom: 12px;
    padding-bottom: 32px;
}

.cf7-row:last-of-type {
    border-bottom: none;
}

.cf7-row label,
.cf7-row > label {
    display: block;
    font-weight: bold;
    font-size: 1.2rem;
    margin-bottom: 2px;
    color: #333;
}
.cf7-row p {
    margin: 0;
    padding: 0;
}
.cf7-row input[type="text"],
.cf7-row input[type="email"],
.cf7-row input[type="tel"],
.cf7-row select,
.cf7-row textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 1rem;
    box-sizing: border-box;
    background: #fafafa;
    transition: border 0.2s;
}

.cf7-row input[type="text"]:focus,
.cf7-row input[type="email"]:focus,
.cf7-row input[type="tel"]:focus,
.cf7-row select:focus,
.cf7-row textarea:focus {
    border-color: #2E86AB;
    outline: none;
    background: #fff;
}

.wpcf7-checkbox {
    display: block;
    margin-top: 4px;
}

.wpcf7-checkbox .wpcf7-list-item {
    display: block !important;
    margin: 4px 0 !important;
    line-height: 1.2 !important;
}

.wpcf7-checkbox .wpcf7-list-item label {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 1rem !important;
    font-weight: normal !important;
    color: #333 !important;
    cursor: pointer;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.wpcf7-checkbox .wpcf7-list-item input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #2E86AB;
    flex-shrink: 0;
    margin: 0 !important;
}

.wpcf7-radio {
    display: block;
    margin-top: 4px;
}

.wpcf7-radio .wpcf7-list-item {
    display: inline-block !important;
    margin-right: 24px !important;
    line-height: 1.4 !important;
}

.wpcf7-radio .wpcf7-list-item label {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-weight: normal !important;
    color: #333 !important;
}

.cf7-agree {
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    gap: 10px;
}

.wpcf7-submit {
    background: #2E86AB !important;
    color: #fff !important;
    padding: 16px 0 !important;
    border: none !important;
    border-radius: 4px !important;
    font-size: 1.05rem !important;
    font-weight: bold !important;
    cursor: pointer !important;
    display: block !important;
    width: 100% !important;
    margin: 32px auto 0 !important;
    letter-spacing: 0.05em !important;
    transition: background 0.2s !important;
}

.wpcf7-submit:hover {
    background: #1A5276 !important;
}
.wpcf7 p {
    margin: 0 !important;
    padding: 0 !important;
}
.entry-content .wpcf7 p {
    margin: 0 !important;
    padding: 0 !important;
}
.article .wpcf7 p,
.entry-content .wpcf7 p,
.wpcf7 form p {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

.contact-lead .lead-main {
    margin-bottom: 0.5em !important;
}

.contact-lead .lead-sub {
    margin-top: 1em !important;
    margin-bottom: 0 !important;
}

.lead-main {
    font-size: 1.15rem;
    font-weight: bold;
    color: #2E86AB;
    margin-bottom: 8px !important;
}

.lead-sub {
    font-size: 0.9rem;
    color: #666;
}

.contact-lead .lead-sub {
    margin-top: 1em !important;
    margin-bottom: 0 !important;
}

/* ========================================
   Custom CSS - 2026-04-12
   ======================================== */

body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.front-top-page, body.single, body.page, body.category {
  background-color: #f5f6f8;
}
.header-container {
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  position: relative;
}
.header-container::before {
  content: '';
  display: block;
  height: 4px;
  background: linear-gradient(90deg, #2E86AB 0%, #1a6d8e 50%, #e67e22 100%);
}
.appeal { margin-bottom: 0 !important; }
#content { margin-top: 0; }
.ect-entry-card .entry-card-wrap {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
  transition: all 0.25s ease;
  border: 1px solid #eee;
  overflow: hidden;
}
.ect-entry-card .entry-card-wrap:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,0.12);
  transform: translateY(-2px);
}
.entry-card-thumb img { transition: transform 0.3s ease; }
.entry-card-wrap:hover .entry-card-thumb img { transform: scale(1.03); }
.entry-card-content { padding: 12px 16px 16px; }
.entry-card-title { font-size: 15px; font-weight: 700; line-height: 1.5; color: #1a3a4a; }
.entry-card-snippet { font-size: 13px; color: #666; line-height: 1.6; }
.cat-label { font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 3px; }
.sidebar .widget {
  background: #fff; border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  border: 1px solid #eee; overflow: hidden; margin-bottom: 20px;
}
.sidebar h3, .sidebar .widget-title {
  background: linear-gradient(135deg, #2E86AB 0%, #1a5c7a 100%) !important;
  color: #fff !important; font-size: 15px; font-weight: 700;
  padding: 14px 18px; margin: 0; border: none !important;
}
.sidebar .widget ul { padding: 8px 0; margin: 0; list-style: none; }
.sidebar .widget ul li { border-bottom: 1px solid #f0f0f0; }
.sidebar .widget ul li:last-child { border-bottom: none; }
.sidebar .widget ul li a {
  display: block; padding: 10px 18px; color: #333;
  text-decoration: none; transition: all 0.2s ease; font-size: 14px;
}
.sidebar .widget ul li a:hover { background: #f8fbfd; color: #2E86AB; padding-left: 22px; }
.search-edit { border: 2px solid #ddd; border-radius: 6px; padding: 10px 14px; transition: border-color 0.2s ease; }
.search-edit:focus { border-color: #2E86AB; outline: none; }
.article h2 {
  background: linear-gradient(135deg, #2E86AB 0%, #1a6d8e 100%) !important;
  color: #fff !important; padding: 18px 24px !important;
  border-radius: 6px !important; font-size: 22px !important;
  font-weight: 700 !important; line-height: 1.5 !important;
  margin: 2.5em 0 1.2em !important; border: none !important;
  box-shadow: 0 2px 8px rgba(46,134,171,0.15);
}
.article h3 {
  background: #f8fbfd !important; color: #1a3a4a !important;
  border-left: 4px solid #2E86AB !important;
  border-bottom: none !important; border-top: none !important; border-right: none !important;
  padding: 14px 18px !important; border-radius: 0 4px 4px 0 !important;
  font-size: 19px !important; font-weight: 700 !important; margin: 2em 0 1em !important;
}
.article h4 {
  color: #2c3e50 !important; border-left: 3px solid #e67e22 !important;
  padding: 8px 14px !important; font-size: 17px !important;
  font-weight: 700 !important; margin: 1.8em 0 0.8em !important;
  background: transparent !important; border-bottom: none !important;
}
.article p { line-height: 2; color: #333; }
.article a { color: #2E86AB; text-decoration: underline; text-underline-offset: 3px; }
.article a:hover { color: #1a5c7a; }
.article table { border-collapse: collapse; width: 100%; border-radius: 6px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,0.06); }
.article table th { background: #2E86AB !important; color: #fff !important; padding: 12px 16px; font-weight: 700; font-size: 14px; border: 1px solid #2678a0; }
.article table td { padding: 12px 16px; font-size: 14px; border: 1px solid #e8e8e8; }
.article table tr:nth-child(even) { background: #f9fbfc; }
.article blockquote { background: #f9fbfc; border-left: 4px solid #2E86AB; border-radius: 0 6px 6px 0; padding: 20px 24px; margin: 1.5em 0; }
.article blockquote p { color: #555; }
.toc { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; padding: 24px; box-shadow: 0 2px 8px rgba(0,0,0,0.04); }
.pagination .current { background: #2E86AB; color: #fff; border-radius: 6px; }
.pagination-next-link { border: 2px solid #2E86AB; border-radius: 8px; color: #2E86AB; font-weight: 700; transition: all 0.2s ease; }
.pagination-next-link:hover { background: #2E86AB; color: #fff; }
.go-to-top .go-to-top-button { background: #2E86AB; border-radius: 50%; width: 48px; height: 48px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.footer { background: #1a2a3a !important; color: #ccc; }
.footer a { color: #8bb8cc; }
.footer a:hover { color: #fff; }
.footer h3, .footer .widget-title { color: #fff !important; border-bottom: 2px solid #2E86AB; padding-bottom: 10px; }
.copyright { background: #0f1a24 !important; color: #888; font-size: 13px; }
@media screen and (max-width: 834px) {
  .entry-card-thumb img { border-radius: 6px 6px 0 0; }
  .article h2 { font-size: 19px !important; padding: 15px 18px !important; }
  .article h3 { font-size: 17px !important; }
  .article h1 { font-size: 22px; }
}

/* ===== フルワイド1カラムレイアウト ===== */
#sidebar {
  display: none !important;
}
.content-in {
  display: block !important;
  max-width: 100% !important;
}
#main {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  float: none !important;
}
/* 外側コンテナを全幅に（ヒーロー・フッター背景が画面端まで届くように） */
#container.wrap {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* 内側の.wrap要素を中央揃え制約 */
.header-container-in.wrap,
#content-in.wrap,
.footer-in.wrap {
  max-width: 1800px !important;
  width: 96% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ヘッダー内部の二重.wrap制約を解除 */
.header-in.wrap {
  max-width: 100% !important;
  width: 100% !important;
}
/* 記事一覧2カラムグリッド */
#list.ect-entry-card {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 24px !important;
}
#list.ect-entry-card .a-wrap {
  margin-bottom: 0 !important;
}
#list.ect-entry-card .pickup-posts,
#list.ect-entry-card .recommended {
  grid-column: 1 / -1;
}
/* 個別記事ページの本文幅 */
.article {
  max-width: 860px;
  margin: 0 auto;
}
@media (max-width: 768px) {
  #list.ect-entry-card {
    grid-template-columns: 1fr !important;
  }
}
.mn-float-cta {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, #e67e22, #f39c12);
  color: #fff !important;
  text-decoration: none !important;
  padding: 16px 28px;
  border-radius: 50px;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(230,126,34,0.45);
  transition: all 0.3s;
  letter-spacing: 0.5px;
}
.mn-float-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(230,126,34,0.55);
  color: #fff !important;
}
.mn-float-cta svg {
  flex-shrink: 0;
}

@media (max-width: 768px) {
  .mn-float-cta {
    bottom: 16px;
    right: 16px;
    padding: 14px 22px;
    font-size: 14px;
  }
}

/* カテゴリータブ非表示（サムネイル上の重複防止） */
.entry-card .cat-label,
.related-entry-card .cat-label,
.popular-entry-card .cat-label {
  display: none !important;
}

/* ========== ワイドレイアウト調整 ========== */

/* 記事グリッド: 広い画面では3カラム */
@media (min-width: 1200px) {
  #list.ect-entry-card {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px !important;
  }
}

/* ヘッダーナビ: 間隔を詰めてロゴ側に寄せる */
.navi-in > ul > li > a {
  padding: 0 20px !important;
  font-size: 15px !important;
}
.header-container-in.wrap {
  max-width: 1600px !important;
}

/* ヒーローセクション: テキスト大きく */
.mn-hero-title {
  font-size: 3rem !important;
  line-height: 1.3 !important;
  letter-spacing: 0.02em !important;
}
.mn-hero-sub {
  font-size: 1.15rem !important;
  line-height: 1.8 !important;
}
.mn-hero-label {
  font-size: 1rem !important;
  padding: 10px 28px !important;
}
.mn-hero-cta {
  font-size: 1.1rem !important;
  padding: 16px 36px !important;
}
#appeal-in.wrap {
  max-width: 1400px !important;
  padding: 80px 60px !important;
}

/* WHAT WE COVER セクション見出し */
.mn-features-heading span,
.mn-features-heading {
  font-size: 1.8rem !important;
}

/* 記事カード: パディング増 */
.entry-card-content {
  padding: 18px 22px !important;
}
.entry-card-title {
  font-size: 1.1rem !important;
  line-height: 1.6 !important;
  font-weight: 700 !important;
}
.entry-card-snippet {
  font-size: 0.9rem !important;
  line-height: 1.7 !important;
}

/* 人気記事サムネ: 大きく */
.popular-entry-card .entry-card-thumb {
  min-height: 180px !important;
}

/* フッター: 横幅制限 */
.footer-in.wrap {
  max-width: 1600px !important;
}

/* セクション間の余白を増やす */
.mn-stats-section,
.mn-categories-section,
.mn-bottom-cta {
  padding: 60px 40px !important;
}

/* 個別記事: 本文幅を少し広げる */
.article {
  max-width: 920px !important;
}