/*
 Theme Name:   Kumiko Tsukamoto Theme
 Author:       Kumiko Tsukamoto
 Description:  A custom theme for Voice & Communication website.
 Version:      1.0.0
*/

/* この下に既存のCSSを貼り付けます */

/* Reset & Base */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial;line-height:1.7;color:#334b4c}
.container{width:90%;max-width:1200px;margin:0 auto}
html, body {overflow-x: hidden;}
body.no-scroll { overflow-y: hidden; }

hr {
  border: none; /* ブラウザのデフォルトの線を消す */
  height: 1px; /* 高さを1pxに設定 */
  background-color: #e0e0e0; /* 背景色を薄いグレーに設定 */
  margin: 40px 0; /* 上下の余白を追加 */
}

/* Header */
.site-header{position:fixed;left:0;right:0;top:0;z-index:50;padding:10px 0;background-color:transparent;transition:background-color .3s ease,box-shadow .3s ease}
.site-header.scrolled{background-color:rgba(255,255,255,.95);box-shadow:0 2px 10px rgba(0,0,0,.05);backdrop-filter:blur(5px)}
.header-inner{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:12px;font-weight:normal;letter-spacing:1px;line-height:1.4;font-family:'Playfair Display',serif;font-size:20px}
.logo-link {
  text-decoration: none;
  color: inherit; /* 親要素の文字色を継承する */
}
.logo-text{display:flex;flex-direction:column;line-height:1.2;font-size:22px;}
.logo-image{height:40px;width:auto;}
.logo-sub{font-size:10px;letter-spacing:0.4px;margin-top:3px}
.main-nav a{margin-left:18px;text-decoration:none;color:rgba(0,0,0,0.6);font-size:14px}
.main-nav{display:flex;align-items:center}
.main-nav .main-menu-list{display:flex;list-style:none;margin:0;padding:0}
.main-nav .main-menu-list li:not(:first-child){margin-left:18px}
.main-nav .main-menu-list a{text-decoration:none;color:rgba(0,0,0,0.6);font-size:14px;display:block}
 
/* ハンバーガーメニュー（デフォルトは非表示） */
.hamburger-menu { display: none; }

/* HERO */
.hero{position:relative;height:100vh;min-height:520px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(0.9)}
.hero-overlay{position:relative;z-index:2;text-align:center;color:#fff}
.hero-title{font-family:'Playfair Display',serif;font-weight:normal; font-size :90px; letter-spacing:15px; margin:0; line-height:1.5}
.hero-title span{font-size:60px;display:block;letter-spacing:8px}

/* ヒーロータイトルのアニメーション */
.animate-hero-title {
  opacity: 0;
  transform: translateY(20px);
  animation: fadeInUpHero 1s ease-out 0.3s forwards;
}

.animate-hero-title span {
  display: inline-block; /* transformを適用するため */
  opacity: 0;
  transform: translateY(20px);
  animation: fadeInUpHero 1s ease-out 0.6s forwards;
}

@keyframes fadeInUpHero {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


/* Catchphrase */
.catch{padding:110px 0;text-align:center;color:#3b4b4b}
.catch-kv{font-family:'Playfair Display',serif;font-size:50px;margin-bottom:30px}
.catch-sub{max-width:760px;margin:0 auto;color:#66787b}

/* スクロールアニメーション */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-on-scroll {
  opacity: 0; /* アニメーション実行前の状態 */
}
.animate-on-scroll.is-visible {
  animation: fadeInUp 0.8s ease-out forwards; /* 画面に入ったらアニメーションを実行 */
}

/* 左からフェードイン */
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-on-scroll-left {
  opacity: 0;
}
.animate-on-scroll-left.is-visible {
  animation: fadeInLeft 0.8s ease-out forwards;
}

/* 右からフェードイン */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.animate-on-scroll-right {
  opacity: 0;
}
.animate-on-scroll-right.is-visible {
  animation: fadeInRight 0.8s ease-out 0.2s forwards;
}

/* Section title */
.section-title{font-family:'Playfair Display',serif;color:#8fbec0;font-size:20px;text-align:center;margin-bottom:36px}
.section-title span{display:block;color:#a7d0d1;font-size:18px;margin-top:0;font-family: 'Noto Sans JP', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial;}


/* Profile */
.profile{padding:60px 0 60px}
.profile-inner{display:flex;justify-content:space-between;align-items:flex-start}
.profile .section-title,
.service .section-title,
.achievements .section-title,
.sns .section-title,
.voice-media .section-title {
  font-size: 53px;
  font-weight: normal;
}
.contact .section-title {
  font-size: 40px; /* フォントサイズを調整 */
  font-weight: normal;
  font-weight: 300; /* フォントの太さを細くする */
}
.profile-photo{width:40%}
.profile-photo img{width:100%;height:auto;object-fit:cover;border-radius:6px;box-shadow:0 8px 20px rgba(0,0,0,0.08)}
.profile-photo figcaption{margin-top:15px;color:#6a6a6a;line-height:1.4;}
.profile-photo .caption-jp {
  font-size: 28px;
  font-weight: 400 !important; /* font-weightを数値で指定し、!importantで強制適用 */
}
.profile-photo .caption-en {
  font-size: 14px;
}
.profile-text{width:50%;color:#66787b}
.profile-text p {
  margin-bottom: 25px;
}

.book-link {
  color: #8db4af; /* テキストの色 */
  text-decoration: none; /* 下線を削除 */
  transition: color 0.3s ease;
}
.book-link:visited {
  color: #8db4af; /* 訪問済みのリンクの色 */
}
.book-link:hover {
  color: #8db4af; /* ホバー時の色 */
}

/* Service grid */
.service{padding:90px 0}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px}
.service-card{background:#f9f8f6;border-radius:12px;box-shadow:0 8px 20px rgba(19,38,44,0.04);border:1px solid rgba(19,38,44,0.03);transition:box-shadow 0.3s ease; cursor: pointer;padding: 30px 1px 30px 1px;}
.service-card:hover {
  box-shadow: 0 12px 28px rgba(19, 38, 44, 0.08);
}
.service-card-inner {
  display: flex;
  flex-direction: column;
  height: 100%; overflow: hidden;
}
.service-card-image-wrap {overflow: hidden; margin-bottom: 20px;}
.service-card img{width:100%;height:360px;object-fit:cover;border-radius:0;transition:transform 0.3s ease}
.service-card:hover .service-card-image-wrap img {
  transform: scale(1.05);
}
.service-card h3{font-family:'Playfair Display',serif;margin-bottom:8px}
.service-card-text {
  padding: 24px;
  background-color: #FFFFFF;
  flex-grow: 1;
  color: #66787b;
}
.service-card-text p {
  margin-bottom: 30px;
  font-size: 15px;
}

/* サービスカード内のリスト */
.service-card ul {
  list-style: none; /* デフォルトのマーカーを非表示 */
  padding-left: 0; /* デフォルトのパディングをリセット */
}
.service-card li {
  display: flex;
  align-items: flex-start; /* 上揃えで配置 */
  font-size: 14px; /* リストの文字サイズを小さく */
  margin-bottom: 8px; /* リスト項目間の余白 */
}
.service-card li::before {
  content: '•'; /* カスタムマーカー */
  color: #8db4af;
  font-size: 48px;
  line-height: 0.4; /* マーカーの垂直位置を調整 */
  margin-right: 8px; /* マーカーとテキストの間隔 */
}

.program-title {
  margin-bottom: 10px;
}

.service-card-clients h4 {
  font-size: 14px;
}
.service-card-clients p {
  font-size: 13px;
}
/* Achievements */
.achievements{padding:90px 0}
.ach-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px}
.ach-grid .service-card-text h3 {
  font-size: 22px;
  font-family: 'Noto Sans JP', system-ui, -apple-system, Segoe UI, Roboto, 'Helvetica Neue', Arial;
  color: #8db4af;
  font-weight: normal;
  border-bottom: 1px solid #e8e8e8;
  padding-bottom: 12px;
  margin-bottom: 12px;
}
.career-table th, .career-table td {
  text-align: left;
  padding: 8px 4px;
}
.career-table th { font-weight: normal; color: #334b4c; width: 45%; }
.career-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

/* NEWS */
.news {
  padding: 60px 0 90px;
}
.news .section-title {
  font-size: 53px;
  font-weight: normal;
}
.news-list {
  max-width: 800px; /* 中央寄せにするための最大幅 */
  margin: 0 auto;
  border-top: 1px solid #e8e8e8; /* 上の境界線 */
}
.news-item {
  border-bottom: 1px solid #e8e8e8; /* 下の境界線 */
}
.news-item a {
  display: block;
  padding: 24px 10px;
  text-decoration: none;
  color: #334b4c;
  transition: background-color 0.3s ease;
}
.news-item-content {
  display: flex;
  align-items: center;
}
.news-item a:hover {
  background-color: #fcfcfc;
}
.news-date {
  font-size: 15px;
  color: #66787b;
  margin-right: 24px; /* 日付とタイトルの間隔 */
  min-width: 110px; /* 日付の幅を固定してレイアウトを安定させる */
  font-family: 'Playfair Display', serif;
}
.news-thumbnail {
  width: 60px;
  height: 60px;
  margin-right: 16px;
  flex-shrink: 0;
}
.news-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 4px;
}


.news-title {
  font-size: 16px;
  font-weight: normal;
  line-height: 1.6;
  color: #66787b;
  flex-grow: 1;
}

.news-more {
  text-align: center;
  margin-top: 40px;
}

.btn-more {
  display: inline-block;
  padding: 12px 48px;
  border: 1px solid #8fbec0;
  border-radius: 50px;
  text-decoration: none;
  color: #8fbec0;
  transition: all 0.3s ease;
}

.btn-more:hover {
  background-color: #8fbec0;
  color: #fff;
}

/* SNS */
.sns{padding:90px 0;text-align:center}
.sns-icons{display:flex;gap:35px;justify-content:center;align-items:flex-start;}
.sns-button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:115px;text-decoration:none;color:#567;background:transparent;border:none;}
.sns-button img {
  width: 115px;
  height: auto;
  margin-bottom: 8px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border-radius: 50%; /* 影をきれいに表示するため */
}
.sns-button:hover img {
  transform: scale(1.05);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}
.sns-button span {
  font-size: 14px;
  color: #a7b8ba;
  font-weight: 300;
}


/* Voice media */
.voice-media{padding:90px 0}
.voice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px}
.voice-grid .service-card h3 {
  font-weight: normal;
  font-size: 28px;
  line-height: 1.2;
}
.voice-grid .service-card-text {
  text-align: center;
}
.voice-grid .service-card-text p {
  max-width: 66%;
  margin-left: auto;
  margin-right: auto;
}

.voice-grid .voice-media-logo {
  width: 95px;
  height: auto; /* 縦横比を維持 */
  object-fit: contain; /* アスペクト比を維持してコンテナに収める */
  margin-bottom: 16px;
  transition: transform 0.3s ease; /* アニメーションを追加 */
}

.voice-media-btn {
  display: inline-block;
  margin-top: 16px;
  padding: 10px 28px;
  border: 1px solid #e0e0e0;
  background-color: #fff;
  color: #66787b;
  border-radius: 8px; /* 角丸を調整 */
  text-decoration: none;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  font-size: 14px; /* 文字サイズを調整 */
}

.voice-media-footer {
  margin-top: 40px;
  text-align: center;
  color: #66787b;
}

/* Contact */
.contact{padding:56px 0}
.contact-sub{
  text-align:center;
  color: #66787b;margin-bottom:40px;
  font-size: 18px; /* フォントサイズを調整 */
}
.contact-form, .wpcf7-form{max-width:700px;margin:0 auto}
.form-row-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
.form-row-grid .form-row {
  margin-bottom: 0; /* グリッド内の要素のmarginをリセット */
}
.form-row{margin-bottom:20px}
.form-row label{display:block;font-size:14px;color:#334}
.form-row label span {
  color: #d9534f; /* 赤色 */
  margin-left: 4px;
}
.form-row input,.form-row textarea{width:100%;padding:12px;border-radius:8px;border:1px solid #e6efef;background:#fff}
.submit-btn{display:block;margin:18px auto 0;padding:12px 28px;border-radius:999px;background:#8fbec0;color:#fff;border:none}
.submit-btn .dashicons {
  font-size: 1.2em;
  height: 1em;
  width: 1em;
  line-height: 1;
  font-family: 'dashicons'; /* フォントを明示的に指定 */
  color: #fff; /* アイコンの色を白に指定 */
}

/* --- Contact Form 7 Styles --- */
.submit-button-wrapper {
  text-align: center;
}

/* 送信ボタンのスタイル（JSで置換後） */
.wpcf7-form button.wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  /* 元のボタンのスタイルを継承 */
  padding: 12px 28px;
}

/* Footer */
.site-footer {
  padding: 60px 0;
  background-color: #f9f8f6;
  border-top: 1px solid #e8e8e8;
}
.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.footer-inner .logo {
  font-size: 18px; /* フッター用に少し小さく調整 */
  color: #334b4c;
}
.footer-sns {
  display: flex;
  gap: 20px;
}
.footer-sns a {
  color: #334b4c;
  font-size: 22px;
  transition: color 0.3s ease;
}
.footer-sns a:hover {
  color: #8fbec0;
}


.footer-nav .footer-menu-list {
  display: flex;
  gap: 24px;
  list-style: none;
}
.footer-nav a {
  text-decoration: none;
  color: #66787b;
  font-size: 14px;
}
.footer-copyright {
  font-size: 12px;
  color: #8fa6a6;
}

/* Responsive */
@media (max-width:900px){
/* PC用のナビゲーションを非表示にする */
.main-nav { display: none; }

/* ハンバーガーメニューで開かれるモーダルナビゲーションのスタイル */
.main-nav.is-open{display:flex;position:fixed;top:0;left:0;width:100%;height:100vh;background-color:rgba(255,255,255,0.98);z-index:90;justify-content:center;align-items:center;opacity:1;visibility:visible;transition:opacity 0.4s ease, visibility 0.4s ease;backdrop-filter:blur(5px);}
.main-nav .main-menu-list{flex-direction:column;text-align:center}
.main-nav .main-menu-list li{margin:0 0 20px}
.main-nav .main-menu-list li:not(:first-child){margin-left:0}
.main-nav .main-menu-list a{font-size:20px;color:#334b4c;font-weight:500}
.hamburger-menu{display:block;position:relative;z-index:100;width:30px;height:22px;cursor:pointer;border:none;background:transparent;padding:0}
.hamburger-line{display:block;width:100%;height:2px;background-color:#334b4c;border-radius:2px;transition:transform 0.3s ease, opacity 0.3s ease, top 0.3s ease}
.hamburger-line:nth-child(1){position:absolute;top:0}
.hamburger-line:nth-child(2){position:absolute;top:10px}
.hamburger-line:nth-child(3){position:absolute;top:20px}
.is-open .hamburger-line:nth-child(1){top:10px;transform:rotate(45deg)}
.is-open .hamburger-line:nth-child(2){opacity:0}
.is-open .hamburger-line:nth-child(3){top:10px;transform:rotate(-45deg)}
.hero{height: 70vh; min-height:420px}
.hero-title{font-size:36px}
.hero-title span{font-size:22px}
.service-grid{grid-template-columns:1fr}
.profile-inner{flex-direction:column;align-items:center;text-align:center}
.profile-photo img{width:180px;height:180px}
.profile-photo,
.profile-text {
  width: 100%; /* 横幅を100%に */
  text-align: left; /* テキストを左揃えに戻す */
}
.catch-kv {
  font-size: 2rem; /* スマートフォン用のフォントサイズ */
}
.profile .section-title,
.service .section-title,
.achievements .section-title,
.sns .section-title,
.news .section-title,
.voice-media .section-title {
  font-size: 32px; /* スマートフォン用のフォントサイズ */
}
.contact .section-title {
  font-size: 24px; /* スマートフォン用のフォントサイズ */
}
.contact .contact-sub {
  font-size: 14px; /* スマートフォン用のフォントサイズ */
}
.form-row-grid {
  grid-template-columns: 1fr; /* 1列レイアウトに変更 */
}
.content-wrapper {
  flex-direction: column;
  gap: 40px;
}
.news-item-content {
  flex-wrap: wrap;
}
.news-item-text {
  flex: 1;
}
.news-thumbnail {
  margin-right: 16px;
  margin-bottom: 0;
}
.news-date {
  margin-bottom: 4px;
  width: auto;
  order: 0;
}
.news-title {
  flex-grow: 0;
  flex-basis: auto;
}
.ach-grid{grid-template-columns:1fr}
.voice-grid{grid-template-columns:1fr}
}

/* Pagination */
.pagination {
  margin-top: 60px;
}
.nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}
.nav-links .page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #e0e0e0;
  border-radius: 50%;
  text-decoration: none;
  color: #66787b;
  transition: all 0.3s ease;
}
.nav-links .page-numbers:hover,
.nav-links .page-numbers.current {
  background-color: #8fbec0;
  border-color: #8fbec0;
  color: #fff;
}
.nav-links .page-numbers.current {
  font-weight: bold;
}

/* Single Post */
.post-single {
  max-width: 800px;
  margin: 0 auto 60px;
}
.post-header {
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 1px solid #e8e8e8;
}
.post-title {
  font-size: 28px;
  font-weight: bold;
  line-height: 1.5;
  color: #334b4c;
  margin-bottom: 10px;
}
.post-date {
  font-size: 15px;
  color: #66787b;
  font-family: 'Playfair Display', serif;
}
.post-thumbnail {
  margin-bottom: 40px;
}
.post-thumbnail img {
  width: 100%;
  height: auto;
  border-radius: 6px;
}
.post-content {
  line-height: 1.8;
  color: #334b4c;
}
.post-content h2, .post-content h3, .post-content h4 {
  margin-top: 2.5em;
  margin-bottom: 1em;
  font-weight: bold;
  color: #334b4c;
}
.post-content p {
  margin-bottom: 1.5em;
}
.post-navigation {
  text-align: center;
}


@media (max-width:480px){
.site-header{padding:12px 0}
.hero{height:70vh;min-height:360px}
.hero-title{font-size:26px;letter-spacing:3px}
.hero-title span{font-size:16px}
.container{width:94%}
.sns-icons { gap: 15px; /* アイコン間の余白を調整 */ }
.sns-button {
  width: 90px; /* ボタンの幅を調整 */
}
.sns-button img {
  width: 90px; /* 画像の幅を調整 */
}
}

/* 1920px以上の画面用のスタイル */
@media (min-width: 1920px) {
  .br-large-hidden { display: none; }
}
