/* ================================================================
 * CF7 上書きCSS
 *
 * 静的版のフォームは <div class="form"> の直下に
 *   <label>
 *   <input>
 *   <label>
 *   <textarea>
 *   <button>
 *   <p class="copy">
 * が並ぶ構造。CF7 が挿入する要素で見た目が変わらないように、
 * このファイル 1 枚だけで最小限の打消しを行う。
 *
 * すべて .form (= <form class="form wpcf7-form ...>) 配下でスコープしてある。
 * ================================================================ */

/* CF7 は各入力欄を <span class="wpcf7-form-control-wrap"> で包む。
   span はインラインなので <label>(block-flex) の間に置かれると
   意図しない改行やベースライン差が生じる。ブロック化して静的版と同じ縦積みにする。 */
.form .wpcf7-form-control-wrap {
    display: block;
}

/* ─── エントリーセクションを可視領域の真ん中に寄せる ───
   静的版の .fit は padding: var(--gap) 0 (= 上下 8vh) を持ち、その状態で
   #pages > section {height:100svh; overflow:hidden;} の中に入る。
   CF7 で <form>・<span class="wpcf7-form-control-wrap"> 等の
   数〜十数 px の高さ増分が乗ると autoFit() の scale=0.86 下限に張り付いても
   収まり切らず、モバイルで上下端（<h2 class="entry__head"> の上・
   <p class="copy"> の下）が切れる報告があった。
   エントリーセクションの .fit の上下パディングだけを詰めて
   scrollHeight を viewport ぶんに寄せることで、autoFit の縮小に頼らず
   自然に真ん中寄せで収まるようにする。
   .fit 全体の base 実装 (var(--gap)) には触らず、他13ページには影響させない。 */
.entry > .fit {
    padding-top: 8vh;    /* 静的 --gap と同値。前ページとの境界に余白を確保 */
    padding-bottom: 4vh; /* CF7 のフォームで増える分だけ下側を詰めて収まりを維持 */
}

/* エントリー内フォームの Copyright 行の上マージンを詰める。
   静的版は margin-top:5vh だが、CF7 込みだと <button "応募する"> が
   セクション下端で切れることがあったため、静的版の 5vh → 1vh に落として
   ボタンより下の空間を確保する。フォームの視覚的な余白感は
   .fit の padding-bottom:4vh 側で担保する。 */
.entry .form .copy {
    margin-top: 1vh;
}

/* CF7 が action 直前に生成する隠しフィールド用の div。念のため余白を潰す。 */
.form > div[style*="display: none"] {
    margin: 0;
}

/* スピナー: 送信中に submit の横へ inline-block で出現するとレイアウトが伸びるため、
   送信ボタンからは切り離してフローに影響させない。可視性は CF7 標準どおり visibility 制御を維持。 */
.form .wpcf7-spinner {
    position: absolute;
    margin: 0;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

/* submit ボタンは position:relative でスピナーの絶対配置基準になるようにする。
   静的版の .form button に position 指定がないため、ここで relative を付与。
   width/padding/背景色などは触らない。 */
.form button[type="submit"] {
    position: relative;
}

/* CF7 の応答表示。初期状態は CF7 標準CSS 側で display:none。
   エラー・送信成功時に見えるが、上下余白が過剰だと static の .copy 位置に影響するため
   ごく短い上下マージンに揃える。border/padding などは CF7 標準を維持。 */
.form .wpcf7-response-output {
    margin: 1em 0 0;
}

/* バリデーションエラー時のツールチップは input 直下に block 表示。
   .form input の margin-bottom:16px と重ならないよう、
   ツールチップにも同等の余白を持たせて位置ズレを最小化。 */
.form .wpcf7-not-valid-tip {
    display: block;
    margin: -12px 0 12px;
    font-size: 11px;
    font-weight: 700;
    color: var(--accent);
}

/* スクリーンリーダ向けリストは視覚に出ないが、
   ブラウザによっては空 <ul> にわずかな余白が出るケースがあるため上書き。 */
.wpcf7 .screen-reader-response {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    border: 0;
}

/* ================================================================
 * 送信結果オーバーレイ
 *   .entry セクションは overflow:hidden + autoFit で 1 画面に収まる構造上、
 *   CF7 標準の .wpcf7-response-output は画面外へ押し出されて見えないため、
 *   assets/js/cf7-feedback.js が挿入する固定オーバーレイでフィードバックを保証する。
 *   フォーム本体のスタイルには一切干渉しない。
 * ================================================================ */
.entry-result {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6vh 5vw;
    background: rgba(51,51,51,.86);
    opacity: 0;
    transition: opacity .24s ease;
    font-family: "Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
}
.entry-result.is-in {
    opacity: 1;
}
.entry-result__card {
    position: relative;
    width: 100%;
    max-width: 420px;
    padding: 40px 28px 32px;
    background: var(--base);
    color: var(--ink);
    border-top: 6px solid var(--accent);
    box-shadow: 0 20px 60px rgba(0,0,0,.35);
    transform: translateY(12px);
    transition: transform .28s cubic-bezier(.2,.7,.2,1);
    text-align: center;
}
.entry-result.is-in .entry-result__card {
    transform: translateY(0);
}
.entry-result__close {
    position: absolute;
    top: 6px;
    right: 8px;
    width: 32px;
    height: 32px;
    padding: 0;
    background: transparent;
    border: none;
    color: var(--ink);
    font-family: inherit;
    font-size: 22px;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
    opacity: .6;
}
.entry-result__close:hover,
.entry-result__close:focus {
    opacity: 1;
    outline: none;
}
.entry-result__title {
    margin: 0 0 12px;
    font-size: 20px;
    font-weight: 900;
    letter-spacing: .02em;
    line-height: 1.4;
    color: var(--ink);
}
.entry-result__body {
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.7;
    color: var(--ink);
    opacity: .8;
}
.entry-result--ok .entry-result__title {
    color: var(--accent);
}
.entry-result--ng .entry-result__card {
    border-top-color: var(--ink);
}
.entry-result--ng .entry-result__title {
    color: var(--ink);
}
