/*
Theme Name: Crescom HP
Theme URI: https://crescom.co.jp/
Author: 株式会社クレスコム
Author URI: https://crescom.co.jp/
Description: 株式会社クレスコム コーポレートサイト用 Block Theme。Elementor 非依存、WordPress 標準ブロックエディタで構築。
Version: 0.4.9
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 / 装飾 / レスポンシブ)

   TOC
     1. Tokens & resets         (root, html, body, img)
     2. Header & navigation     (logo, primary nav, mobile menu)
     3. Headings                (section h2 underline)
     4. Buttons & cards         (hover, sheen, lift)
     5. Hero                    (cover, panel, h1, scroll cue)
     6. Sections                (services, news)
     7. Footer
     8. Pages                   (info table, timeline, post content)
     9. Forms                   (CF7, Confirm Plus)
    10. Accessibility           (focus-visible, reduce-motion)
    11. Responsive              (≤900, ≤600, ≤380, print)

   !important ポリシー
     WP のブロックパターンが `style="..."` インラインを出力するため、
     モバイル等で上書きする際は !important が必須。
     プラグイン CSS（CF7 / Confirm Plus）の上書きにも局所的に使用。
     用途を明示するため、各 !important 群には直前にコメントを置く。
   ============================================================ */

: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; }

/* ─── ヘッダー ─── */
.crescom-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none;
  transition: opacity 0.2s var(--crescom-ease);
}
.crescom-logo:hover { opacity: 0.75; }
.crescom-logo img {
  height: 48px;
  width: auto;
  flex-shrink: 0;
}
@media (max-width: 600px) {
  .crescom-logo img { height: 38px; }
}
.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);
}

/* ─── モバイルメニュー (オーバーレイ) 整形 ─── */
.wp-block-navigation__responsive-container-open {
  color: var(--wp--preset--color--primary);
  padding: 0.5rem;
}
.wp-block-navigation__responsive-container-open svg {
  width: 28px;
  height: 28px;
}
.wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--wp--preset--color--surface);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 4rem;
  max-width: 480px;
  margin: 0 auto;
  width: 100%;
}
.wp-block-navigation__responsive-container-close {
  color: var(--wp--preset--color--primary);
  padding: 1.5rem;
  z-index: 10;
}
.wp-block-navigation__responsive-container-close svg {
  width: 32px;
  height: 32px;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  gap: 0;
  width: 100%;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  width: 100%;
  border-bottom: 1px solid var(--wp--preset--color--border);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:first-child {
  border-top: 1px solid var(--wp--preset--color--border);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation-item__content {
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  padding: 1.25rem 0.5rem;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--wp--preset--color--primary);
  position: relative;
  transition: color 0.2s ease;
}
/* オーバーレイメニュー内の下線アニメ ::after は無効化
   (基本ナビの ::after と特異性同じだが display:none で完全に消える) */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a::after {
  display: none;
  content: none;
}

/* ─── 見出し装飾 (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) を細い serif 数字で上品に ───
   services.php で .crescom-service-number クラスを使う方針に統一
   (旧: パターンインラインの font-size を !important で上書き) */
.crescom-service-number {
  font-family: var(--wp--preset--font-family--serif);
  font-size: 1.7rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1;
  color: var(--wp--preset--color--accent);
  opacity: 0.75;
  margin: 0 0 0.75rem;
}

/* ─── 代表メッセージの引用感 ─── */
main .wp-block-group[style*="border-left"] {
  position: relative;
}
main .wp-block-group[style*="border-left"]::before {
  content: '\201C';
  position: absolute;
  top: -0.5rem;
  left: 1rem;
  font-family: var(--wp--preset--font-family--serif);
  font-size: 4.5rem;
  font-weight: 500;
  line-height: 1;
  color: var(--wp--preset--color--accent);
  opacity: 0.6;
  pointer-events: none;
}

/* ─── ヒーロー (Cover) — hero.php の className ベース ───
   インライン style を排除し class でスタイル管理する方針なので !important 不要 */
.crescom-hero {
  min-height: 78vh;
  background-color: var(--wp--preset--color--surface);
  padding-block: var(--wp--preset--spacing--60);
  padding-inline: var(--wp--preset--spacing--40);
}
.crescom-hero-panel {
  padding: var(--wp--preset--spacing--60);
  border-radius: 4px;
  background: rgba(250,248,243,0.94);
  box-shadow: 0 8px 32px rgba(26,58,95,0.08);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  transition: transform 0.3s var(--crescom-ease);
}
.crescom-hero-eyebrow {
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  color: var(--wp--preset--color--accent);
}
.crescom-hero-h1 {
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.6;
  margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.crescom-hero-lede {
  font-size: 0.9rem;
  line-height: 2;
  margin-bottom: var(--wp--preset--spacing--40);
}

/* タブレット以下: テキストパネルを下中央寄りに、本文を圧縮 */
@media (max-width: 900px) {
  .crescom-hero { min-height: 70vh; }
  .crescom-hero .wp-block-cover__inner-container { align-items: flex-end; }
  .crescom-hero-panel {
    max-width: 100%;
    padding: 1.5rem;
  }
  .crescom-hero-h1 {
    font-size: clamp(1.4rem, 4.6vw, 1.9rem);
  }
}

/* スマホ: さらに詰める。h2/h3 の動的サイズも */
@media (max-width: 600px) {
  main h2.wp-block-heading {
    font-size: clamp(1.5rem, 6vw, 2rem);
  }
  main h3.wp-block-heading {
    font-size: clamp(1.05rem, 4.5vw, 1.25rem);
  }
  /* WP が wp-container-* クラスで blockGap を吐くため上書きに !important 必須 */
  .wp-block-columns {
    gap: var(--wp--preset--spacing--30) !important;
  }
  .crescom-hero-panel { padding: 1.25rem; }
}

/* ─── ニュースセクション: タイトルとリストにアクセント ─── */
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 {
  position: relative;
}
.wp-block-template-part footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--wp--preset--color--accent);
  opacity: 0.5;
}
.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;
}
.wp-block-template-part footer p.has-text-align-center:last-child {
  opacity: 0.6;
}

/* ─── 会社情報テーブル ─── */
.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;
}

/* ─── Contact Form 7 ─── */
.crescom-form .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.4rem;
}
.crescom-form label {
  display: block;
  font-size: 0.92rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--wp--preset--color--primary);
  margin-bottom: 0.5rem;
}
.crescom-form .cf7-required {
  color: var(--wp--preset--color--accent);
  font-weight: 700;
  font-size: 0.85em;
  margin-left: 0.3em;
}
.crescom-form input[type="text"],
.crescom-form input[type="email"],
.crescom-form input[type="tel"],
.crescom-form input[type="url"],
.crescom-form textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  background: var(--wp--preset--color--background);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 3px;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--wp--preset--color--foreground);
  font-family: inherit;
  transition: border-color 0.2s var(--crescom-ease),
              box-shadow 0.2s var(--crescom-ease);
}
.crescom-form input:focus,
.crescom-form textarea:focus {
  outline: none;
  border-color: var(--wp--preset--color--primary);
  box-shadow: 0 0 0 3px rgba(26, 58, 95, 0.08);
}
.crescom-form textarea {
  min-height: 200px;
  resize: vertical;
}
.crescom-form input.wpcf7-not-valid,
.crescom-form textarea.wpcf7-not-valid {
  border-color: #c4374a;
  background-color: #fdf6f7;
}
.crescom-form .wpcf7-not-valid-tip {
  color: #c4374a;
  font-size: 0.85rem;
  margin-top: 0.4rem;
  display: block;
}
.crescom-form .cf7-acceptance {
  font-size: 0.92rem;
  padding: 1rem 1.25rem;
  background: var(--wp--preset--color--surface);
  border-radius: 3px;
  margin-top: 1.5rem;
}
.crescom-form .cf7-acceptance label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--wp--preset--color--foreground);
  font-weight: 400;
  margin-bottom: 0;
}
.crescom-form .cf7-acceptance input[type="checkbox"] {
  width: 1.2em;
  height: 1.2em;
  accent-color: var(--wp--preset--color--primary);
  cursor: pointer;
}
.crescom-form .cf7-acceptance a {
  color: var(--wp--preset--color--primary);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.crescom-form .cf7-submit-wrap {
  margin-top: 2rem;
  text-align: center;
}
.crescom-form input[type="submit"].wpcf7-submit {
  background: var(--wp--preset--color--primary);
  color: #fff;
  border: none;
  padding: 1rem 3rem;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  border-radius: 2px;
  cursor: pointer;
  transition: background-color 0.2s var(--crescom-ease),
              transform 0.2s var(--crescom-ease);
  min-width: 200px;
}
.crescom-form input[type="submit"].wpcf7-submit:hover:not(:disabled) {
  background: var(--wp--preset--color--primary-soft);
  transform: translateY(-1px);
}
.crescom-form input[type="submit"].wpcf7-submit:disabled {
  opacity: 0.5;
  cursor: wait;
}
.wpcf7-response-output {
  margin: 2rem 0 0 !important;
  padding: 1rem 1.5rem !important;
  border-radius: 3px;
  font-size: 0.95rem;
  line-height: 1.7;
}
.wpcf7-mail-sent-ok {
  border: 1px solid #2c7a45 !important;
  background: #f0f8f3;
  color: #1f5132;
}
.wpcf7-validation-errors,
.wpcf7-acceptance-missing {
  border: 1px solid #c4374a !important;
  background: #fdf6f7;
  color: #8b1f30;
}
.wpcf7 .wpcf7-spinner {
  background-color: var(--wp--preset--color--accent);
}
@media (max-width: 600px) {
  .crescom-form input[type="submit"].wpcf7-submit {
    width: 100%;
    min-width: 0;
  }
}

/* ─── 修正依頼フォーム専用装飾 (CF7 id=2934) ─── */
.crescom-revision-form .revision-section {
  margin: 1.5rem 0 0;
  padding: 1.25rem 1.25rem 0.5rem;
  background: var(--wp--preset--color--surface);
  border-left: 3px solid var(--wp--preset--color--accent);
  border-radius: 3px;
}
.crescom-revision-form .revision-heading {
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  color: var(--wp--preset--color--primary);
  margin: 0 0 0.75rem;
}
.crescom-revision-form .revision-hr {
  margin: 2rem 0;
  border: none;
  border-top: 1px dashed var(--wp--preset--color--border);
}
.crescom-revision-form .revision-caution {
  background: #fff8ec;
  border: 1px solid #e8d59c;
  border-radius: 3px;
  padding: 1rem 1.25rem;
  font-size: 0.85rem;
  line-height: 1.85;
  color: #6e5a30;
  margin: 0.75rem 0 0;
}
.crescom-revision-form .revision-caution p {
  margin: 0 0 0.4em;
}
.crescom-revision-form .revision-caution p:last-child {
  margin-bottom: 0;
}
.crescom-revision-form .revision-confirmation {
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 3px;
  padding: 1.25rem 1.5rem;
  font-size: 0.92rem;
  line-height: 2;
  margin: 0 0 1.5rem;
}
.crescom-revision-form .revision-confirmation-heading {
  text-align: center;
  font-weight: 700;
  margin: 0 0 0.75rem;
}
.crescom-revision-form .revision-confirmation ul {
  list-style: disc;
  padding-left: 1.4em;
  margin: 0;
}
.crescom-revision-form .revision-confirmation li {
  margin-bottom: 0.5em;
}
.crescom-revision-form .cf7-emphasis {
  color: #c4374a;
  font-weight: 700;
}

/* ─── Confirm Plus (確認画面) ─── */
#wpcf7cpcnf {
  background: var(--wp--preset--color--surface) !important;
  padding: 2rem 1.75rem !important;
  border: 1px solid var(--wp--preset--color--border);
  border-radius: 4px;
  box-shadow: 0 4px 24px rgba(26, 58, 95, 0.08);
}
#wpcf7cpcnf p {
  margin: 0 0 1rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--wp--preset--color--border);
  font-size: 0.95rem;
  line-height: 1.85;
}
#wpcf7cpcnf p:last-of-type {
  border-bottom: none;
}
#wpcf7cpcnf p > strong,
#wpcf7cpcnf p > b {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--wp--preset--color--accent);
}
.wpcf7cp-progress-cover {
  background-color: var(--wp--preset--color--surface) !important;
  opacity: 0.65 !important;
}
.wpcf7cp-btns {
  margin-top: 2rem !important;
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}
button.wpcf7cp-cfm-edit-btn,
button.wpcf7cp-cfm-submit-btn {
  border: none;
  padding: 1rem 2.5rem;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  border-radius: 2px;
  cursor: pointer;
  transition: background-color 0.2s var(--crescom-ease),
              transform 0.2s var(--crescom-ease);
  min-width: 180px;
  margin: 0 !important;
}
button.wpcf7cp-cfm-edit-btn {
  background: transparent;
  color: var(--wp--preset--color--primary);
  border: 1px solid var(--wp--preset--color--primary);
}
button.wpcf7cp-cfm-edit-btn:hover {
  background: var(--wp--preset--color--surface-tint, rgba(26, 58, 95, 0.05));
  transform: translateY(-1px);
}
button.wpcf7cp-cfm-submit-btn {
  background: var(--wp--preset--color--primary);
  color: #fff;
}
button.wpcf7cp-cfm-submit-btn:hover {
  background: var(--wp--preset--color--primary-soft);
  transform: translateY(-1px);
}
@media (max-width: 600px) {
  button.wpcf7cp-cfm-edit-btn,
  button.wpcf7cp-cfm-submit-btn {
    width: 100%;
    min-width: 0;
  }
}

/* ─── Hero スクロール誘導 (パネル内、ボタン下に配置) ─── */
.hero-scroll-cue {
  margin: var(--wp--preset--spacing--40) 0 0 !important;
  padding: 0;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.25em;
  text-align: left;
}
.hero-scroll-cue a {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--wp--preset--color--foreground-soft);
  text-decoration: none;
  transition: color 0.25s var(--crescom-ease);
}
.hero-scroll-cue a:hover {
  color: var(--wp--preset--color--accent);
}
.hero-scroll-cue__label {
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
.hero-scroll-cue__arrow {
  display: inline-block;
  font-size: 1rem;
  line-height: 1;
  animation: hero-scroll-bounce 2.2s ease-in-out infinite;
}
@keyframes hero-scroll-bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-scroll-cue__arrow { animation: none; }
}

/* ─── モバイル全体最適化 ─── */
@media (max-width: 600px) {
  /* セクション間余白を圧縮 */
  main > .wp-block-group.alignfull {
    padding-top: var(--wp--preset--spacing--50) !important;
    padding-bottom: var(--wp--preset--spacing--50) !important;
  }

  /* services の 2x2 → 1x4 縦並びでカード間隔を詰める */
  #services .wp-block-columns {
    gap: var(--wp--preset--spacing--30) !important;
  }
  #services .wp-block-columns + .wp-block-columns {
    margin-top: var(--wp--preset--spacing--30) !important;
  }
  /* values の 3カラム、industries の 3カラムも同様 */
  #values .wp-block-columns,
  #clients .wp-block-columns {
    gap: var(--wp--preset--spacing--30) !important;
  }
  /* カード自身の上下padding も圧縮 */
  #services .wp-block-column.has-background,
  #values .wp-block-column.has-background,
  #clients .wp-block-column {
    padding-top: var(--wp--preset--spacing--40) !important;
    padding-bottom: var(--wp--preset--spacing--40) !important;
  }

  /* Hero: ボタン群を縦積み + 全幅 */
  .wp-block-cover .wp-block-buttons.is-layout-flex {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 0.75rem !important;
  }
  .wp-block-cover .wp-block-buttons .wp-block-button {
    width: 100% !important;
    margin: 0 !important;
  }
  .wp-block-cover .wp-block-buttons .wp-block-button__link {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }
  /* Hero スクロール誘導も中央寄せ */
  .hero-scroll-cue {
    text-align: center !important;
  }

  /* CTA セクションのボタン群も縦積み */
  #contact .wp-block-buttons.is-layout-flex {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 0.75rem !important;
  }
  #contact .wp-block-buttons .wp-block-button {
    width: 100% !important;
    margin: 0 !important;
  }
  #contact .wp-block-buttons .wp-block-button__link {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  /* お問い合わせページ PHONE/EMAIL 2カラム: padding 圧縮 */
  .wp-block-column.has-surface-background-color[style*="border-top"] {
    padding: var(--wp--preset--spacing--40) !important;
  }

  /* 内ページ先頭ヘッダー (CONTACT/ABOUT 等) の余白圧縮 + 中央寄せ */
  main .wp-block-post-content > .wp-block-group.has-surface-background-color.has-background:first-child {
    padding-top: var(--wp--preset--spacing--50) !important;
    padding-bottom: var(--wp--preset--spacing--40) !important;
    text-align: center;
  }
  main .wp-block-post-content > .wp-block-group.has-surface-background-color.has-background:first-child > p,
  main .wp-block-post-content > .wp-block-group.has-surface-background-color.has-background:first-child > h1 {
    text-align: center;
  }

  /* 内ページ h1 サイズ調整 */
  main h1.wp-block-heading {
    font-size: clamp(1.5rem, 6vw, 1.9rem) !important;
    line-height: 1.5 !important;
  }

  /* Footer: 1カラム積み、間隔詰める */
  .wp-block-template-part footer .wp-block-columns {
    gap: var(--wp--preset--spacing--40) !important;
  }
  .wp-block-template-part footer .wp-block-column {
    flex-basis: 100% !important;
  }

  /* alignwide のはみ出し防止 */
  main .wp-block-group.alignwide {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 代表メッセージ block: モバイルで上下padding 圧縮、margin-top も詰める */
  main .wp-block-group[style*="border-left"] {
    padding-top: var(--wp--preset--spacing--40) !important;
    padding-bottom: var(--wp--preset--spacing--40) !important;
    padding-left: var(--wp--preset--spacing--40) !important;
    padding-right: var(--wp--preset--spacing--40) !important;
    margin-top: var(--wp--preset--spacing--40) !important;
  }
  /* 代表メッセージの quote mark もスケール小さく */
  main .wp-block-group[style*="border-left"]::before {
    font-size: 3rem !important;
    top: -0.3rem !important;
    left: 0.5rem !important;
  }

  /* お問い合わせフォーム入力: iOS のズーム防止 (16px 以上) + タッチエリア確保 */
  .crescom-form input[type="text"],
  .crescom-form input[type="email"],
  .crescom-form input[type="tel"],
  .crescom-form input[type="url"],
  .crescom-form textarea {
    font-size: 16px !important;
    padding: 0.85rem 0.9rem !important;
  }

  /* メニュー項目のタッチターゲット最低 44px */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a {
    min-height: 44px;
    display: flex !important;
    align-items: center;
  }
}

/* ─── 極小スマホ (320-380px) ─── */
@media (max-width: 380px) {
  /* Hero h1 をさらに圧縮（class ベースで !important 不要） */
  .crescom-hero-h1 {
    font-size: 1.25rem;
    line-height: 1.65;
  }
  /* セクション横padding を緩める（インライン上書きで !important 必須） */
  main > .wp-block-group.alignfull {
    padding-left: var(--wp--preset--spacing--30) !important;
    padding-right: var(--wp--preset--spacing--30) !important;
  }
  /* カード内 padding 軽減（インライン上書き） */
  .wp-block-column.has-background {
    padding: var(--wp--preset--spacing--30) !important;
  }
}

/* ─── 印刷用 ─── */
@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; }
}
