/*
Theme Name: HANA Corporation
Theme URI: https://example.com/
Author: HANA corporation LLC
Description: 合同会社はな・コーポレーション コーポレートサイト用テーマ。幾何学的モノクロデザイン。
Version: 1.11.2
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: hana-corporation
*/

/* ===== シグネチャー: ピンホイールの回転 ===== */
.spin-slow { animation: spin 48s linear infinite; transform-origin: center; }
.spin-hover:hover .spin-target { animation: spin 6s linear infinite; transform-origin: center; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ===== スクロールリビール ===== */
.rv { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.rv.show { opacity: 1; transform: none; }
.rv-d1 { transition-delay: .1s; } .rv-d2 { transition-delay: .2s; } .rv-d3 { transition-delay: .3s; }

/* ===== 見出しの行アニメーション ===== */
.line-mask { overflow: hidden; display: block; }
.line-in { display: inline-block; transform: translateY(110%); animation: lineUp 1s cubic-bezier(.22,1,.36,1) forwards; }
.line-in.d1 { animation-delay: .15s; } .line-in.d2 { animation-delay: .3s; }
@keyframes lineUp { to { transform: translateY(0); } }

/* ===== マーキー ===== */
.marquee { animation: marquee 28s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ===== 事業カードの反転 ===== */
.flip-card { transition: background .45s ease, color .45s ease; }
.flip-card:hover { background: #0A0A0A; color: #fff; }
.flip-card:hover .flip-sub { color: rgba(255,255,255,.6); }
.flip-card:hover .flip-num { -webkit-text-stroke-color: rgba(255,255,255,.35); }
.flip-num { -webkit-text-stroke: 1px rgba(10,10,10,.3); color: transparent; transition: -webkit-text-stroke-color .45s ease; }

/* ===== 記事本文（お知らせ詳細） ===== */
.prose-hana { line-height: 2; font-size: 15px; color: rgba(10,10,10,.8); }
.prose-hana h2 { font-weight: 900; font-size: 1.5rem; color: #0A0A0A; margin: 2.5em 0 1em; padding-left: .8em; border-left: 4px solid #0A0A0A; }
.prose-hana h3 { font-weight: 700; font-size: 1.2rem; color: #0A0A0A; margin: 2em 0 .8em; }
.prose-hana p { margin: 1.2em 0; }
.prose-hana a { text-decoration: underline; text-underline-offset: 3px; }
.prose-hana ul, .prose-hana ol { margin: 1.2em 0; padding-left: 1.5em; }
.prose-hana ul li { list-style: square; margin: .4em 0; }
.prose-hana ol li { list-style: decimal; margin: .4em 0; }
.prose-hana img { margin: 2em 0; }
.prose-hana blockquote { border-left: 2px solid #E2E2E2; padding-left: 1.2em; color: rgba(10,10,10,.55); margin: 1.6em 0; }

/* ===== Contact Form 7 をテーマトーンに ===== */
.hana-form .wpcf7 { font-size: 14px; }
.hana-form .wpcf7 form > p { margin: 0 0 1.6em; }
.hana-form .wpcf7 label { display:block; font-weight:700; font-size:13px; letter-spacing:.02em; margin-bottom:.5em; }
.hana-form .wpcf7 input[type="text"],
.hana-form .wpcf7 input[type="email"],
.hana-form .wpcf7 input[type="tel"],
.hana-form .wpcf7 input[type="url"],
.hana-form .wpcf7 input[type="number"],
.hana-form .wpcf7 input[type="date"],
.hana-form .wpcf7 textarea,
.hana-form .wpcf7 select {
  display:block; width:100%; border:1px solid #E2E2E2; border-radius:0; background:#fff;
  padding:.95em 1.1em; font-size:14px; font-family:inherit; color:#0A0A0A;
  transition: border-color .25s;
  -webkit-appearance:none; appearance:none;
}
.hana-form .wpcf7 ::placeholder { color:#B5B5B5; }
.hana-form .wpcf7 input:hover, .hana-form .wpcf7 textarea:hover, .hana-form .wpcf7 select:hover { border-color:#8A8A8A; }
.hana-form .wpcf7 input:focus, .hana-form .wpcf7 textarea:focus, .hana-form .wpcf7 select:focus { outline:2px solid #0A0A0A; outline-offset:-1px; border-color:#0A0A0A; }
.hana-form .wpcf7 textarea { min-height: 12em; resize: vertical; }
.hana-form .wpcf7 select {
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%230A0A0A'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1.1em center; padding-right:2.8em;
}
.hana-form .wpcf7 input[type="checkbox"], .hana-form .wpcf7 input[type="radio"] {
  width:1.05em; height:1.05em; accent-color:#0A0A0A; margin-right:.5em; vertical-align:-.12em; display:inline-block;
}
.hana-form .wpcf7-list-item { display:inline-block; margin:0 1.4em .4em 0; }
.hana-form .wpcf7-list-item-label { font-weight:400; }
.hana-form .wpcf7 input[type="submit"], .hana-form .wpcf7 button[type="submit"] {
  display:inline-block; width:auto; background:#0A0A0A; color:#fff; border:1px solid #0A0A0A; border-radius:0;
  font-weight:700; font-size:15px; letter-spacing:.05em; padding:1.05em 3.6em; cursor:pointer;
  transition: background .3s, color .3s; -webkit-appearance:none; appearance:none;
}
.hana-form .wpcf7 input[type="submit"]:hover, .hana-form .wpcf7 button[type="submit"]:hover { background:#fff; color:#0A0A0A; }
.hana-form .wpcf7-spinner { margin-left:.8em; }
/* バリデーション・送信結果メッセージ */
.hana-form .wpcf7-not-valid { border-color:#0A0A0A !important; background:#F4F4F4; }
.hana-form .wpcf7-not-valid-tip { color:#0A0A0A; font-size:12px; font-weight:700; margin-top:.45em; }
.hana-form .wpcf7 form .wpcf7-response-output {
  margin:2em 0 0; padding:1.1em 1.3em; border:1px solid #0A0A0A; background:#F4F4F4;
  font-size:13px; font-weight:700; color:#0A0A0A;
}
.hana-form .wpcf7 form.sent .wpcf7-response-output { background:#0A0A0A; color:#fff; }

@media (prefers-reduced-motion: reduce){
  .spin-slow, .spin-hover:hover .spin-target, .marquee { animation: none !important; }
  .rv { opacity:1; transform:none; transition:none; }
  .line-in { transform:none; animation:none; }
}

/* ===== 写真（モノクロ基調に馴染ませ、ホバーでカラー） ===== */
.photo-mono { filter: grayscale(1); transition: filter .6s ease; display:block; width:100%; height:100%; object-fit:cover; }
a:hover .photo-mono, .photo-mono:hover { filter: grayscale(0); }
@media (prefers-reduced-motion: reduce){ .photo-mono { transition:none; } }
