/*
Theme Name: Crescom HP
Theme URI: https://crescom.co.jp/
Author: 株式会社クレスコム
Author URI: https://crescom.co.jp/
Description: 株式会社クレスコム コーポレートサイト用 Block Theme。Elementor 非依存、WordPress 標準ブロックエディタで構築。
Version: 0.2.0
Requires at least: 6.5
Requires PHP: 8.0
License: Proprietary
License URI: https://crescom.co.jp/
Text Domain: crescom-hp
Tags: full-site-editing, block-patterns, business
*/

/* ============================================================
   Crescom HP — Polish layer
   theme.json の上に被せる微調整 (hover / 装飾 / レスポンシブ)
   ============================================================ */

:root {
  --crescom-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --crescom-shadow-soft: 0 4px 16px rgba(26, 58, 95, 0.06);
  --crescom-shadow-hover: 0 12px 32px rgba(26, 58, 95, 0.12);
}

html { scroll-behavior: smooth; }

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

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

/* ─── ヘッダー ─── */
.wp-block-template-part header .wp-block-site-logo img {
  transition: opacity 0.2s var(--crescom-ease);
}
.wp-block-template-part header .wp-block-site-logo a:hover img {
  opacity: 0.75;
}
.wp-block-navigation .wp-block-navigation-item a {
  position: relative;
  padding-bottom: 0.25em;
  transition: color 0.2s var(--crescom-ease);
}
.wp-block-navigation .wp-block-navigation-item a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 1px;
  background: var(--wp--preset--color--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s var(--crescom-ease);
}
.wp-block-navigation .wp-block-navigation-item a:hover::after,
.wp-block-navigation .wp-block-navigation-item.current-menu-item a::after {
  transform: scaleX(1);
}

/* ─── 見出し装飾 (H2 のセクションタイトル下にゴールドの短い線) ─── */
main h2.wp-block-heading.has-text-align-center {
  position: relative;
  padding-bottom: 0.6em;
}
main h2.wp-block-heading.has-text-align-center::after {
  content: '';
  position: absolute;
  left: 50%; bottom: 0;
  width: 40px; height: 2px;
  background: var(--wp--preset--color--accent);
  transform: translateX(-50%);
}

/* CTAセクション(白背景)内の中央寄せH2は装飾を白に */
main .has-primary-background-color h2.wp-block-heading.has-text-align-center::after {
  background: rgba(255, 255, 255, 0.6);
}

/* ─── ボタン ─── */
.wp-block-button .wp-block-button__link {
  transition: transform 0.25s var(--crescom-ease),
              background-color 0.25s var(--crescom-ease),
              color 0.25s var(--crescom-ease),
              box-shadow 0.25s var(--crescom-ease);
  position: relative;
  overflow: hidden;
}
.wp-block-button .wp-block-button__link:hover {
  transform: translateY(-1px);
  box-shadow: var(--crescom-shadow-soft);
}
.wp-block-button .wp-block-button__link::after {
  content: '';
  position: absolute;
  left: -100%; top: 0;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
  transition: left 0.5s var(--crescom-ease);
}
.wp-block-button .wp-block-button__link:hover::after {
  left: 100%;
}

/* ─── カードホバー (3 valueカード / 4サービスカード / 3業種カード) ─── */
.wp-block-columns .wp-block-column.has-background,
.wp-block-columns .wp-block-column[style*="border-top"] {
  transition: transform 0.3s var(--crescom-ease),
              box-shadow 0.3s var(--crescom-ease);
}
.wp-block-columns .wp-block-column.has-background:hover,
.wp-block-columns .wp-block-column[style*="border-top"]:hover {
  transform: translateY(-3px);
  box-shadow: var(--crescom-shadow-hover);
}

/* ─── サービスカードの番号(01-04) を大きく、半透明にしてシンボリックに ─── */
.wp-block-columns .wp-block-column.has-background-background-color > p:first-child.has-accent-color {
  font-size: 2.4rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.05em !important;
  opacity: 0.85;
  margin-bottom: 0.5rem !important;
}

/* ─── 代表メッセージの引用感 ─── */
main .wp-block-group[style*="border-left"] {
  position: relative;
}
main .wp-block-group[style*="border-left"]::before {
  content: '"';
  position: absolute;
  top: 0.2rem;
  left: 1.5rem;
  font-family: var(--wp--preset--font-family--serif);
  font-size: 6rem;
  line-height: 1;
  color: var(--wp--preset--color--primary);
  opacity: 0.08;
  pointer-events: none;
}

/* ─── ヒーロー (Cover) のレスポンシブ調整 ─── */
.wp-block-cover.is-position-center-right {
  background-color: var(--wp--preset--color--surface);
}
.wp-block-cover .wp-block-group.has-background {
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  transition: transform 0.3s var(--crescom-ease);
}

/* タブレット以下: ヒーローのテキストパネルを下中央寄りにして幅広め */
@media (max-width: 900px) {
  .wp-block-cover.is-position-center-right {
    min-height: 70vh !important;
  }
  .wp-block-cover.is-position-center-right .wp-block-cover__inner-container {
    align-items: flex-end !important;
  }
  .wp-block-cover.is-position-center-right .wp-block-group.has-background {
    max-width: 100% !important;
    padding: 1.5rem !important;
  }
  .wp-block-cover.is-position-center-right h1 {
    font-size: clamp(1.4rem, 4.6vw, 1.9rem) !important;
    line-height: 1.6 !important;
  }
}

/* スマホ: 詰め気味、本文行間維持 */
@media (max-width: 600px) {
  main h2.wp-block-heading {
    font-size: clamp(1.5rem, 6vw, 2rem) !important;
  }
  main h3.wp-block-heading {
    font-size: clamp(1.05rem, 4.5vw, 1.25rem) !important;
  }
  .wp-block-columns {
    gap: var(--wp--preset--spacing--30) !important;
  }
  .wp-block-cover.is-position-center-right .wp-block-group.has-background {
    padding: 1.25rem !important;
  }
}

/* ─── ニュースセクション: タイトルとリストにアクセント ─── */
main .wp-block-query .wp-block-post-template > li,
main .wp-block-query .wp-block-post-template > .wp-block-group {
  transition: background-color 0.2s var(--crescom-ease);
}
main .wp-block-query .wp-block-post-template > li:hover,
main .wp-block-query .wp-block-post-template > .wp-block-group:hover {
  background-color: rgba(184, 146, 62, 0.04);
}
main .wp-block-query .wp-block-post-title a {
  text-decoration: none;
  transition: color 0.2s var(--crescom-ease);
}
main .wp-block-query .wp-block-post-title a:hover {
  color: var(--wp--preset--color--accent);
}

/* ─── フッター ─── */
.wp-block-template-part footer .wp-block-list a,
.wp-block-template-part footer .wp-block-paragraph a {
  transition: opacity 0.2s var(--crescom-ease);
}
.wp-block-template-part footer .wp-block-list li:hover,
.wp-block-template-part footer p a:hover {
  opacity: 0.7;
}

/* ─── 会社情報テーブル ─── */
.crescom-info-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  line-height: 1.85;
}
.crescom-info-table th,
.crescom-info-table td {
  padding: 1rem 0.5rem;
  border-bottom: 1px solid var(--wp--preset--color--border);
  text-align: left;
  vertical-align: top;
}
.crescom-info-table th {
  width: 28%;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--wp--preset--color--primary);
}
.crescom-info-table tr:last-child th,
.crescom-info-table tr:last-child td {
  border-bottom: none;
}
@media (max-width: 600px) {
  .crescom-info-table { font-size: 0.9rem; }
  .crescom-info-table th,
  .crescom-info-table td { padding: 0.75rem 0.25rem; }
  .crescom-info-table th { width: 35%; }
}

/* ─── タイムライン (沿革) ─── */
.crescom-timeline {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.crescom-timeline::before {
  content: '';
  position: absolute;
  left: 5.5rem;
  top: 0; bottom: 0;
  width: 1px;
  background: var(--wp--preset--color--border);
}
.crescom-timeline li {
  position: relative;
  padding: 0 0 2rem 8rem;
  font-size: 0.95rem;
  line-height: 1.85;
}
.crescom-timeline li::before {
  content: '';
  position: absolute;
  left: 5.32rem;
  top: 0.55rem;
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--wp--preset--color--accent);
  box-shadow: 0 0 0 3px var(--wp--preset--color--background);
}
.crescom-timeline .year {
  position: absolute;
  left: 0;
  top: 0;
  width: 5rem;
  font-family: var(--wp--preset--font-family--serif);
  font-weight: 700;
  color: var(--wp--preset--color--primary);
}
@media (max-width: 600px) {
  .crescom-timeline::before { left: 4rem; }
  .crescom-timeline li { padding-left: 6rem; }
  .crescom-timeline li::before { left: 3.82rem; }
  .crescom-timeline .year { width: 3.5rem; font-size: 0.95rem; }
}

/* ─── ページ単体のコンテンツ余白 ─── */
.wp-block-post-content > * + *:not(.alignfull):not(.alignwide) {
  margin-top: var(--wp--preset--spacing--30);
}
.wp-block-post-content h2,
.wp-block-post-content h3 {
  margin-top: var(--wp--preset--spacing--50);
}

/* ─── アクセシビリティ: 動きを抑える設定の尊重 ─── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ─── フォーカスリング (キーボード操作対応) ─── */
a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent);
  outline-offset: 2px;
}

/* ─── 印刷用 ─── */
@media print {
  .wp-block-template-part header,
  .wp-block-template-part footer,
  .wp-block-button,
  .wp-block-cover { display: none !important; }
  body { color: #000 !important; background: #fff !important; }
}
