@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
*/

/************************************
** 子テーマ用の基本スタイル
************************************/

/* ヒーローエリア内のサイトタイトルテキストを非表示 */
.logo,
.logo-header,
.logo-text {
  display: none;
}

/* 固定ページの投稿日・更新日を非表示 */
.page .date-tags,
.page .post-date,
.page .update-date {
  display: none;
}

/* 固定ページ：先頭画像の余白調整 */
.page .entry-content > .wp-block-image:first-of-type {
  margin: 0;
}
.page .entry-content > .wp-block-image:first-of-type img {
  width: 100%;
  height: auto;
  display: block;
}


/****************************************************
 * TOPページ（home & page-id-10）ヒーローセクション
 ****************************************************/
body.home.page-id-10 {
  background: transparent !important;
}

/* ヘッダー透過 */
body.home.page-id-10 .wrap,
body.home.page-id-10 .l-header,
body.home.page-id-10 header,
body.home.page-id-10 #header,
body.home.page-id-10 #header-container,
body.home.page-id-10 .header-container,
body.home.page-id-10 .header-container-in,
body.home.page-id-10 #navi,
body.home.page-id-10 .navi,
body.home.page-id-10 #navi-in,
body.home.page-id-10 .navi-in {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* sticky 無効 */
body.home.page-id-10 .l-header,
body.home.page-id-10 #header,
body.home.page-id-10 #header-container,
body.home.page-id-10 #navi {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
}

/* appeal（ヒーロー） */
body.home.page-id-10 #appeal {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 600px !important;
  margin-top: -80px;
}

@media screen and (min-width: 783px) and (max-width: 1023px) {
  body.home.page-id-10 #appeal {
    min-height: 450px !important;
    margin-top: -100px !important;
  }
}

@media screen and (max-width: 782px) {
  body.home.page-id-10 #appeal {
    min-height: 350px !important;
    margin-top: -121px !important;
  }
}

/* appeal 背景 */
.appeal {
  background-image: url(https://portfoliosite.sawae.info/wp-content/uploads/2025/11/hero-img-pc1.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* appeal content */
body.home.page-id-10 #appeal .appeal-content {
  width: 740px;
  margin: 0 auto;
  padding: 1em;
  min-height: 75vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  background: transparent;
}

@media screen and (max-width: 1020px) {
  .appeal-content {
    width: min(500px, 90%);
    padding-bottom: 4em;
  }
}

@media screen and (max-width: 830px) {
  .appeal-content {
    width: 300px;
  }
}

/* タイピングタイトル */
.appeal-title {
  width: 15.9ch;
  font-size: 48px;
  font-weight: 200;
  color: #444;
  border-right: 3px solid #444;
  white-space: nowrap;
  overflow: hidden;
  margin: 0 auto;
  animation: typing 3s steps(16) .3s both,
             typingEffect .5s step-end infinite alternate 3.3s;
}

@keyframes typing { from { width: 0; } }
@keyframes typingEffect { 50% { border-color: transparent; } }

@media screen and (max-width: 830px) {
  .appeal-title {
    font-size: clamp(24px, calc(6.25vw + 4px), 48px);
  }
}

/* ヒーロー直下の白帯削除 */
body.home.page-id-10 .article {
  padding-top: 0 !important;
}

/************************************************************
 * Works 詳細ページ 共通スタイル
 * （/works/* の中で .works-entry グループに適用）
 ************************************************************/

/* Works ページ全体ラッパ */
.works-entry h2 {
  font-size: 1.4rem;
  font-weight: 600;
  border-bottom: 2px solid #333;
  padding-bottom: 0.6em;
  margin: 3.2em 0 1.6em;
}

.works-entry h3 {
  font-size: 1.2rem;
  font-weight: 600;
  border-bottom: 1px solid #ccc;
  padding-bottom: 0.4em;
  margin: 2.4em 0 1.2em;
}

/* 本文の行間と余白 */
.works-entry p {
  line-height: 1.9;
  margin-bottom: 1.6em;
}

/* 箇条書きの余白 */
.works-entry ul {
  margin: 0 0 1.6em 1.2em;
}

/* リード文ボックス（グレー背景） */
.works-entry .lead-box {
  background-color: #f7f7f7;
  padding: 1.5em 2em;
  border-radius: 4px;
  margin: 2em 0 2.5em;
}

/* Works セクション見出し強調（上位のセクションタイトル用） */
.works-section-title {
  border-bottom: 2px solid #333 !important;
}

/* リードボックスの最大幅調整（PCのみ） */
@media screen and (min-width: 1024px) {
  .works-lead-box {
    max-width: 780px;
  }
}

/* H1 とリードボックスの余白調整 */
.page h1 + .works-lead-box {
  margin-top: 20px;
}

/*******************************************************
 * Works 詳細ページ：タイトル見出しまわり
 *******************************************************/
.works-single__header {
  text-align: center;
  margin: 40px 0 32px;
}

.works-single__title {
  display: inline-block;
  padding: 0.4em 1.4em;
  background: #222;
  color: #fff;
  font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.4;
  margin-bottom: 40px;
}

/* アイキャッチ画像の上部余白（CareTec など共通） */
.works-single__thumb {
  margin-top: 32px;
}

/*******************************************************
 * マインドマップ・プロセス図の見た目用CSS
 *******************************************************/
.works-entry .works-process-map {
  margin: 2.5em auto 3em;
  text-align: center;
}

.works-entry .works-process-map img {
  max-width: 100%;
  height: auto;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  border-radius: 4px;
}

.works-entry .works-process-map figcaption {
  font-size: 0.9rem;
  color: #666;
  margin-top: 0.6em;
}

/*******************************************************
 * Works ページ：画像・ギャラリー・キャプション
 *******************************************************/

/* Works 内の画像は基本センター寄せ＆レスポンシブ */
.works-entry img {
  margin: 1.5em auto;
  display: block;
  max-width: 100%;
}

@media screen and (max-width: 768px) {
  .works-entry img {
    max-width: 92%;
  }
}

/* ギャラリーブロックの間隔 */
.works-entry .wp-block-gallery {
  gap: 16px !important;
}

/* 画像角丸 */
.works-entry figure img {
  border-radius: 4px;
}

/* ギャラリー画像・単体画像のキャプション（背景付きで視認性UP） */
.wp-block-gallery figcaption,
.wp-block-image figcaption,
.wp-block-gallery .wp-element-caption,
.wp-block-image .wp-element-caption {
  background: rgba(0, 0, 0, 0.65) !important;
  color: #fff !important;
  font-size: 0.95rem !important;
  font-weight: 600;
  padding: 6px 10px;
  border-radius: 6px;
  text-align: center;
  line-height: 1.4;
  margin-top: 8px;
}


/************************************************************
 * Laugh Maker など、Works 共通の余白微調整
 ************************************************************/

.works-entry h2 {
  margin-top: 3.2em;
  margin-bottom: 1.6em;
}

.works-entry h3 {
  margin-top: 2.4em;
  margin-bottom: 1.2em;
}

/************************************
 * Works アーカイブ一覧レイアウト
 ************************************/

/* cocoon標準の /works/ アーカイブ #list 調整 */
.post-type-archive-works #list {
  max-width: 1100px;
  margin: 0 auto 80px;
  padding: 0 20px;
}

.post-type-archive-works .entry-card-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 32px 24px;
}

/* カード本体 */
.post-type-archive-works .entry-card {
  background: #fff;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #e5e5e5;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* サムネイル */
.post-type-archive-works .entry-card-thumb {
  position: relative;
  overflow: hidden;
}

.post-type-archive-works .entry-card-thumb img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
}

/* テキスト部分 */
.post-type-archive-works .entry-card-content {
  padding: 14px 16px 16px;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

/* タイトル */
.post-type-archive-works .entry-card-title {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.5;
  margin: 0 0 6px;
}

/* 概要テキスト */
.post-type-archive-works .entry-card-snippet {
  font-size: 0.88rem;
  line-height: 1.7;
  color: #555;
  margin: 0 0 10px;
}

/* 下部メタ */
.post-type-archive-works .entry-card-meta {
  margin-top: auto;
  font-size: 0.78rem;
  color: #888;
}

/* ページタイトル（Works / 制作実績） */
.post-type-archive-works .entry-title,
.post-type-archive-works .page-title {
  font-size: 1.4rem;
  font-weight: 600;
  margin: 0 0 24px;
  text-align: left;
}

/* スマホ：1カラム */
@media screen and (max-width: 767px) {
  .post-type-archive-works #list {
    padding: 0 12px 40px;
  }

  .post-type-archive-works .entry-card-wrap {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .post-type-archive-works .entry-card-thumb img {
    height: 150px;
  }

  .post-type-archive-works .entry-card-title {
    font-size: 1rem;
  }

  .post-type-archive-works .entry-card-snippet {
    font-size: 0.86rem;
  }
}

/* Works 一覧ページ（独自 .works-archive-page） */
.works-archive-page .c-entry__title {
  font-size: 1.8rem;
  margin-bottom: 1.5em;
}

.works-archive-page .works-archive {
  max-width: 980px;
  margin: 0 auto 80px;
  padding: 0 20px;
}

.works-archive-page .works-card {
  margin-bottom: 48px;
}

.works-archive-page .works-card img {
  border-radius: 6px;
  margin-bottom: 16px;
}

.works-archive-page .works-card h2 {
  font-size: 1.3rem;
  line-height: 1.5;
  margin-bottom: 0.4em;
}

.works-archive-page .works-card p {
  font-size: 0.92rem;
  line-height: 1.9;
  margin-bottom: 0.6em;
}

/* Works 一覧：カードをグリッド化（3 → 2 → 1列） */
.works-archive-page .works-archive {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  max-width: 1080px;
  margin: 40px auto 80px;
  padding: 0 20px;
}

/* カード本体 */
.works-archive-page .works-card {
  background: #fff;
  padding: 0;
  border: none;
}

/* カード画像 */
.works-archive-page .works-card img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  margin-bottom: 12px;
}

/* スマホ（1カラム） */
@media screen and (max-width: 767px) {
  .works-archive-page .works-archive {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* タブレット（2カラム） */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .works-archive-page .works-archive {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
}

/* Works カードの内側デザイン */
.works-archive-page .works-card {
  padding: 14px 16px 18px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
  border-radius: 8px;
  border: 1px solid #eee;
}

/* タイトル */
.works-archive-page .works-card-title,
.works-archive-page .entry-title,
.works-archive-page .entry-card-title {
  font-size: 1rem;
  font-weight: 600;
  margin: 4px 0 6px;
}

/* 概要 */
.works-archive-page .works-card-excerpt,
.works-archive-page .entry-card-snippet {
  font-size: 0.9rem;
  line-height: 1.7;
  color: #555;
}

/* テキストエリア */
.works-archive-page .entry-card-content {
  margin-top: 4px;
}

/* PC表示での調整 */
@media screen and (min-width: 1024px) {

  .works-archive-page .works-card .entry-card-thumb img,
  .works-archive-page .entry-card-thumb img {
    width: 100%;
    height: auto;
    border-radius: 10px;
  }

  .works-archive-page .works-card {
    padding: 18px 20px 22px;
  }

  .works-archive-page .works-card-title,
  .works-archive-page .entry-title,
  .works-archive-page .entry-card-title {
    font-size: 1.2rem;
    font-weight: 700;
    margin: 8px 0 8px;
  }

  .works-archive-page .works-card-excerpt,
  .works-archive-page .entry-card-snippet {
    font-size: 1rem;
    line-height: 1.75;
  }
}

/*******************************************
 * Works一覧：カード高さ・余白の最終調整
 *******************************************/

/* グリッド余白 */
.works-archive-page .works-archive {
  gap: 36px 30px;
}

/* カードをflex化 */
.works-archive-page .works-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* 画像とテキスト間の余白 */
.works-archive-page .works-card img {
  margin-bottom: 14px;
}

/* カード内テキスト部分を伸ばせるように */
.works-archive-page .works-card-inner,
.works-archive-page .entry-card-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/*******************************************
 * タイトルリンクの色とホバー
 *******************************************/
.works-archive-page .works-card h2 a,
.works-archive-page .entry-card-title a {
  color: #333;
  text-decoration: none;
}

.works-archive-page .works-card h2 a:hover,
.works-archive-page .entry-card-title a:hover {
  color: #0074b8;
  text-decoration: underline;
}

/*******************************************
 * 概要文の行数をそろえる（max 3行）
 *******************************************/
.works-archive-page .works-card-excerpt,
.works-archive-page .entry-card-snippet {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/*******************************************
 * VIEW SITE ボタン風リンク
 *******************************************/
.works-archive-page .entry-card-readmore a,
.works-archive-page .more-link,
.works-archive-page .entry-card-footer a {
  display: inline-block;
  margin-top: 10px;
  padding: 6px 14px;
  font-size: 0.85rem;
  border-radius: 999px;
  border: 1px solid #0074b8;
  color: #0074b8;
  text-decoration: none;
  background: #fff;
  transition: 0.15s ease-in-out;
}

.works-archive-page .entry-card-readmore a:hover,
.works-archive-page .more-link:hover,
.works-archive-page .entry-card-footer a:hover {
  background: #0074b8;
  color: #fff;
  text-decoration: none;
}

/* PC表示時の微調整 */
@media screen and (min-width: 1024px) {
  .works-archive-page .works-card h2 a,
  .works-archive-page .entry-card-title a {
    font-size: 1.25rem;
  }

  .works-archive-page .works-card-excerpt,
  .works-archive-page .entry-card-snippet {
    font-size: 1.02rem;
  }
}

/* WORKS：リンクボタン化（別パターン） */
.works-archive .read-more a {
  display: inline-block;
  background: #0077cc;
  color: #fff;
  padding: 8px 14px;
  border-radius: 6px;
  font-size: 0.95rem;
  text-decoration: none;
  transition: background 0.2s ease;
}

.works-archive .read-more a:hover {
  background: #005fa3;
}

/* WORKS：リンク下の余白 */
.works-archive .read-more {
  margin-bottom: 10px;
}

/* Works一覧：VIEW SITEボタン */
.works-card__link {
  margin-top: 12px;
}

.works-card__link a {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 999px;
  border: 1px solid #006edc;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  color: #006edc;
}

.works-card__link a:hover {
  background-color: #006edc;
  color: #fff;
}

/* 概要と下端の余白 */
.works-card__excerpt {
  margin-bottom: 4px;
}

.works-card {
  padding-bottom: 18px;
}

/* Works カードの下余白 */
.works-card {
  margin-bottom: 30px !important;
  padding-bottom: 20px;
}

/* カード内ブロック下余白 */
.works-card_meta,
.works-card_title,
.works-card_excerpt {
  margin-bottom: 12px !important;
}

/* VIEW SITE ボタン下余白 */
.works-card_link {
  margin-bottom: 10px !important;
}

/* 一覧全体の行間（カード同士のスキマ） */
.works-archive {
  row-gap: 32px;
}

/* カードの下余白最終調整 */
.works-card {
  padding-bottom: 18px;
}

.works-card_link {
  margin-bottom: 8px;
}

@media (max-width: 768px) {
  .works-card_link {
    margin-top: 12px;
    margin-bottom: 12px;
  }
}

/* Works：サムネイルの縦横比を統一 */
.works-card_thumb {
  display: block;
  overflow: hidden;
  border-radius: 6px;
  aspect-ratio: 16 / 9;
}

.works-card_thumb img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.35s ease;
}

/* Works：タイトルを2行でそろえる */
.works-card_title {
  margin: 0 0 0.75em;
  font-size: 1.08rem;
  line-height: 1.4;
}

.works-card_title a {
  color: #222;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Works：カードホバーアニメーション */
.works-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.works-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.12);
}

/* ホバー時サムネイル拡大 */
.works-card:hover .works-card_thumb img {
  transform: scale(1.04);
}

/* Works一覧：ページタイトル中央寄せ */
.post-type-archive-works .c-entry__title {
  text-align: center;
  margin-bottom: 2.5rem;
}


/******************************
 * Works 個別ページ仕上げ調整
 ******************************/

/* 本文の横幅＆センタリング */
.single-works .works-entry {
  max-width: 900px;
  margin: 0 auto 4rem;
}

/* 段落の行間と余白 */
.single-works .works-entry p {
  line-height: 1.9;
  margin-bottom: 1.4em;
}

/* 箇条書き */
.single-works .works-entry ul,
.single-works .works-entry ol {
  margin-left: 1.4em;
  padding-left: 0;
  line-height: 1.8;
}

/* 画像周り */
.single-works .works-entry img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.5rem auto;
  border-radius: 4px;
}

/* 図版の見た目強調 */
.single-works .works-entry figure {
  margin: 2rem auto;
  text-align: center;
}
.single-works .works-entry figure img {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

/* H2・H3 微調整 */
.single-works .works-entry h2 {
  margin-top: 3rem;
  margin-bottom: 1.2rem;
}
.single-works .works-entry h3 {
  margin-top: 2rem;
  margin-bottom: 0.8rem;
}


/*--------------------------------------------------------
  TOP：Works セクション (.works-section)
---------------------------------------------------------*/

/* セクション全体 */
.works-section {
  padding: 3rem 0 4rem;
}

/* セクション見出し */
.works-section > .wp-block-heading {
  font-size: clamp(1.6rem, 1.4rem + 0.4vw, 2rem);
  font-weight: 700;
  text-align: center;
  margin: 0 0 2.4rem;
}

/* 投稿一覧をグリッド化 */
.works-section .wp-block-post-template {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2.5rem;
  margin: 0;
  padding: 0;
}

/* カード本体 */
.works-section .wp-block-post {
  list-style: none;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* ホバーアニメ */
.works-section .wp-block-post:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
}

/* サムネイル */
.works-section .wp-block-post-featured-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

/* タイトル（22px、padding 15px） */
.works-section .wp-block-post .wp-block-post-title,
.works-section .works-card-title {
  font-size: 22px;
  line-height: 1.45;
  padding: 15px 15px 5px;
  margin: 0;
  font-weight: 700;
}

/* 概要（16px・3行制限） */
.works-section .wp-block-post-excerpt__excerpt,
.works-section .wp-block-post-excerpt__excerpt p,
.works-section .works-card-summary,
.works-section .works-card-summary p {
  font-size: 16px;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  margin: 0;
  padding: 0 15px 15px;
  color: #444;
}

/* もっと読むリンク */
.works-section .wp-block-post-excerpt__more-link {
  display: inline-block;
  padding: 0 15px 15px;
  font-size: 0.9rem;
}

/* ボタン余白 */
.works-section .wp-block-buttons {
  margin-top: 2.4rem;
  justify-content: center;
}

/* スマホ調整 */
@media screen and (max-width: 767px) {
  .works-section {
    padding: 2.4rem 0 3rem;
  }
  .works-section > .wp-block-heading {
    margin-bottom: 1.8rem;
  }
  .works-section .wp-block-post {
    border-radius: 12px;
  }
  .works-section .wp-block-post-featured-image img {
    border-radius: 12px 12px 0 0;
  }
}

/* ===== Works：TOPセクション（.works-section）最終上書き ===== */

/* タイトル 22px + padding15px */
.works-section .wp-block-post .wp-block-post-title,
.works-section .works-card-title {
  font-size: 22px !important;
  line-height: 1.45 !important;
  padding: 15px 15px 5px !important;
  margin: 0 !important;
  font-weight: 700;
}

/* 概要 16px・3行で固定 */
.works-section .wp-block-post-excerpt,
.works-section .wp-block-post-excerpt p,
.works-section .wp-block-post-excerpt__excerpt,
.works-section .wp-block-post-excerpt__excerpt p,
.works-section .works-card-summary,
.works-section .works-card-summary p {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 15px 15px !important;
}


/* ===== Works：/works/ アーカイブ一覧 最終上書き ===== */

/* タイトル 22px（横幅に合わせて行折り返し） */
.post-type-archive-works .entry-card-title {
  font-size: 22px !important;
  line-height: 1.45 !important;
  margin: 0 0 0.4rem !important;
  font-weight: 700;
}

/* 概要 16px・3行で固定 */
.post-type-archive-works .entry-card-snippet {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  overflow: hidden !important;
  margin: 0 !important;
}

/* ===== HOME：Works セクション概要 最優先指定 ===== */
.home .works-section .wp-block-post-excerpt,
.home .works-section .wp-block-post-excerpt p {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;  /* ★3行でカット */
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 15px 15px !important;
}


/* ===== /works/ アーカイブ概要 最優先指定 ===== */
.post-type-archive-works .entry-card-snippet,
.post-type-archive-works .entry-card-snippet p {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;  /* ★3行でカット */
  overflow: hidden !important;
  margin: 0 !important;
}


/* 念のため：タイトルサイズもここで最終上書き */
.post-type-archive-works .entry-card-title {
  font-size: 22px !important;
  line-height: 1.45 !important;
  margin: 0 0 0.4rem !important;
  font-weight: 700 !important;
}
.home .works-section .wp-block-post-title {
  font-size: 22px !important;
  line-height: 1.45 !important;
}


/* ===== Works：タイトル共通（HOME＋/works/＋固定ページ） ===== */
.home .works-section .wp-block-post-title,
.post-type-archive-works .entry-card-title,
.works-archive .works-card-title {
  font-size: 22px !important;
  line-height: 1.45 !important;
  font-weight: 700 !important;
  margin: 0 0 0.4rem !important;
}

/* ===== Works：概要 共通3行固定（HOME＋/works/＋固定ページ） ===== */
.home .works-section .wp-block-post-excerpt,
.home .works-section .wp-block-post-excerpt p,
.home .works-section .wp-block-post-excerpt__excerpt,
.home .works-section .wp-block-post-excerpt__excerpt p,
.post-type-archive-works .entry-card-snippet,
.post-type-archive-works .entry-card-snippet p,
.works-archive .works-card-excerpt,
.works-archive .works-card-excerpt p {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important; /* 3行でカット */
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 15px 15px !important;
}

/************************************
** レスポンシブ用の空きメディアクエリ
************************************/

/*1023px以下*/
@media screen and (max-width: 1023px){
  /* 必要になればここへ */
}

/*834px以下*/
@media screen and (max-width: 834px){
  /* 必要になればここへ */
}

/*480px以下*/
@media screen and (max-width: 480px){
  /* 必要になればここへ */
}


/* ===== Works：TOPセクション概要（ホーム） Firefox対応 ===== */
.home .works-section p.wp-block-post-excerpt__excerpt {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important; /* Chrome系 */
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 15px 15px !important;

  /* Firefox 用 */
  max-height: calc(1.6em * 3) !important;
}


/* ===== Works：/works/ 一覧ページ概要 最終上書き（Firefox対応） ===== */
.post-type-archive-works .entry-card-snippet,
.post-type-archive-works .entry-card-snippet p {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important; /* Chrome系 */
  overflow: hidden !important;
  margin: 0 !important;

  /* Firefox 用 */
  max-height: calc(1.6em * 3) !important;
}


/* ===== HOME：Works カード概要 3行揃え（home-cards 用） ===== */
.home .home-cards p.wp-block-post-excerpt__excerpt {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important; /* 3行でカット（WebKit系） */
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 15px 15px !important;
  max-height: calc(1.6em * 3) !important; /* Firefox 用の高さ制限 */
}


/* ===== /works/ 一覧ページ概要 3行揃え ===== */
.post-type-archive-works .entry-card-snippet {
  font-size: 16px !important;
  line-height: 1.6 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important; /* 3行でカット（WebKit系） */
  overflow: hidden !important;
  margin: 0 !important;
  max-height: calc(1.6em * 3) !important; /* Firefox 用の高さ制限 */
}


/* ===== HOME：Works セクション概要（PC・スマホ共通確定版） ===== */
.home .works-section .wp-block-post-excerpt__excerpt,
.home .works-section .wp-block-post-excerpt__excerpt p {
  font-size: 16px !important;
  line-height: 1.6 !important;

  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;

  margin: 0 !important;
  padding: 0 15px 15px !important;

  /* Firefox 対応 */
  max-height: calc(1.6em * 3) !important;
}


/* ===== HOME：Works セクション概要 非表示 ===== */
.home .works-section .wp-block-post-excerpt,
.home .works-section .wp-block-post-excerpt p,
.home .works-section .wp-block-post-excerpt__excerpt,
.home .works-section .wp-block-post-excerpt__excerpt p {
  display: none !important;
}


.home .works-section .wp-block-post {
  align-items: start;
}

/* お問い合わせ（ID12）以外では reCAPTCHA バッジを非表示 */
body:not(.page-id-12) .grecaptcha-badge {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ===== TOP：プロフィール調整 ===== */

/* セクション全体の余白 */
.home .profile-section {
  margin: 60px auto 80px;
  max-width: 900px;
  text-align: center;
}

/* プロフィール画像（中央、サイズ調整） */
.home .profile-section .profile-image img {
  width: 180px;
  height: auto;
  border-radius: 50%;
  margin: 0 auto 25px;
  display: block;
}

/* 名前 */
.home .profile-section .profile-name {
  font-size: 26px;
  font-weight: 700;
  margin-bottom: 12px;
}

/* 自己紹介テキスト */
.home .profile-section .profile-text {
  font-size: 18px;
  line-height: 1.8;
  max-width: 760px;
  margin: 0 auto 40px;
  color: #444;
}

/* Worksセクションとの間に余白 */
.home .works-section {
  margin-top: 80px !important;
}


/* === TOPプロフィール横並び調整 === */
.profile-wrap {
  display: flex;
  align-items: center;
  gap: 32px;
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 20px;
}

.profile-wrap img {
  width: 260px;
  height: auto;
  border-radius: 8px;
}

.profile-text {
  flex: 1;
  font-size: 1.05rem;
  line-height: 1.85;
}

/* スマホ用縦並び */
@media screen and (max-width: 768px) {
  .profile-wrap {
    flex-direction: column;
    text-align: center;
    gap: 20px;
  }

  .profile-wrap img {
    width: 240px;
  }
}


/* ===== Aboutページ レイアウト ===== */

.about-profile {
  max-width: 960px;
  margin: 0 auto 4rem;
  padding: 0 16px;
  line-height: 1.8;
}

/* 上段：画像＋リード */
.about-profile-main {
  display: flex;
  gap: 32px;
  align-items: flex-start;
  margin: 3rem 0 2.5rem;
}

.about-profile-photo img {
  display: block;
  max-width: 220px;
  height: auto;
  border-radius: 8px;
}

.about-profile-lead {
  flex: 1 1 auto;
}

.about-heading-main {
  font-size: 1.8rem;
  margin: 0 0 0.4rem;
  font-weight: 700;
}

.about-name {
  font-weight: 600;
  margin: 0 0 1rem;
}

.about-lead-text {
  margin: 0 0 0.9rem;
}

/* セクション共通 */
.about-section {
  margin-bottom: 3rem;
}

.about-heading {
  font-size: 1.4rem;
  font-weight: 700;
  border-bottom: 2px solid #333;
  padding-bottom: 0.4rem;
  margin: 0 0 1.4rem;
}

.about-subheading {
  font-size: 1.1rem;
  margin: 1.6rem 0 0.6rem;
  font-weight: 600;
}

.about-list {
  margin: 0 0 1.2rem 1.2rem;
  padding: 0;
}

.about-list li {
  margin-bottom: 0.5rem;
}

/* ツール一覧だけ少し詰めて2カラムっぽく */
.about-list--columns {
  columns: 2;
  column-gap: 24px;
}
@media screen and (max-width: 767px) {
  .about-list--columns {
    columns: 1;
  }
}

.about-note {
  font-size: 0.95rem;
  color: #555;
}

/* 下部ボタン */
.about-section--center {
  text-align: center;
}

.about-button {
  display: inline-block;
  padding: 8px 22px;
  border-radius: 999px;
  background: #333;
  color: #fff;
  text-decoration: none;
  font-size: 0.95rem;
}

.about-button:hover {
  opacity: 0.9;
}

/* スマホ時：縦並びに崩す */
@media screen and (max-width: 767px) {
  .about-profile-main {
    flex-direction: column;
    align-items: center;
    text-align: left;
  }
  .about-profile-photo img {
    max-width: 180px;
  }
}


/* ============================
   Profile image standard style
============================ */
.profile-image {
  width: 100%;
  max-width: 350px;
  border-radius: 12px;
  border: 1px solid #e0e0e0;
  display: block;
}

/* Aboutページは少し大きく */
.about-profile-image {
  max-width: 600px;
}

/* レイアウト（PC：横並び / SP：縦） */
.profile-section {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-bottom: 60px;
}

@media screen and (max-width: 767px) {
  .profile-section {
    flex-direction: column;
    text-align: center;
  }
}


.service-items {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  margin: 40px 0 20px;
}
.service-item h3 {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 10px;
}
.service-item p {
  font-size: 15px;
  line-height: 1.7;
  color: #444;
}
.service-cta {
  text-align: center;
  margin-top: 32px;
}

/* ===== Services セクションのデザイン調整 ===== */
.services-section {
  max-width: 900px;
  margin: 50px auto;
  padding: 0 20px;
}

.services-section h2 {
  font-size: 28px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 30px;
}

.services-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}

.services-item {
  background: #fff;
  padding: 20px 24px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  text-align: left;
}

.services-item h3 {
  font-size: 20px;
  margin-bottom: 10px;
  font-weight: 700;
}

.services-item p {
  font-size: 16px;
  line-height: 1.7;
  color: #444;
  margin: 0;
}

/* ===== TOP：お問い合わせセクション ===== */
.top-contact-section {
  max-width: 800px;
  margin: 60px auto 80px;
  padding: 32px 24px;
  text-align: center;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.06);
}

.top-contact-title {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 12px;
}

.top-contact-text {
  font-size: 16px;
  line-height: 1.7;
  color: #444;
  margin-bottom: 20px;
}

.top-contact-button a {
  display: inline-block;
  padding: 10px 26px;
  border-radius: 999px;
  border: 1px solid #006edc;
  font-size: 0.95rem;
  font-weight: 600;
  color: #006edc;
  text-decoration: none;
  transition: 0.2s ease-in-out;
}

.top-contact-button a:hover {
  background: #006edc;
  color: #fff;
}

/* TOP：Services 説明文のフォントサイズを18pxに */
.home .service-item p {
  font-size: 18px !important;
  line-height: 1.8 !important;
}