/* ============================================================
   contact-funnel.css（contact_kaishu_20260716）
   お問い合わせ導線改修: フォーム7ページ共通の追加スタイル
   読込ページ: contact/form・contact/thanks・request系5ページ
   ============================================================ */

/* ---- 共通部品 ---- */
.u-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* MVの副動線ボタン（どの背景でも視認できる白地ピル） */
.funnel-btn-faq { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: #16181C;
    align-self: flex-start; width: fit-content; justify-self: start;
    border: 1px solid rgba(22, 24, 28, 0.12); border-radius: 999px; padding: 14px 30px;
    font-weight: 700; font-size: 14px; text-decoration: none; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16); }
.funnel-btn-faq::after { content: "→"; font-weight: 700; }
.funnel-btn-faq:hover { opacity: 0.88; }

/* ---- 統一フォーム（request型）共通調整 ---- */
/* 見出し帯（グラデ）を無効化し、薄グレー地にフォームカードだけを置く */
.request-form-section { background: #F6F7F7; padding: 72px 0 110px; }
.request-form-section::before { display: none; }
.request-form-section .request-form { margin-top: 0; }
/* グループ見出し下の空き適正化（fieldset仕様でpadding-topがlegend下に効くため） */
.request-form__group + .request-form__group { padding-top: 24px; }
.request-form__legend { margin-bottom: 20px; }
/* ページCSSのワイルドカードトラップ無効化（[class*="__label"] のフォント/字間/金線） */
.request-form [class*="__label"] { font-family: inherit; letter-spacing: normal; text-transform: none; }
.request-form [class*="__label"]::after { content: none; }
/* 連絡方法などの小型radio */
.request-form__radio-grid--inline .request-form__radio-label { min-height: 56px; padding: 12px 16px; }
/* サーバ側エラー表示 */
.request-form .form-error { margin: 6px 0 0; font-size: 12px; color: #C0392B; }
.request-form .form-error:empty { display: none; }
/* 送信結果フラッシュ */
.request-form .request-form__notice { display: none; margin-bottom: 20px; padding: 14px 16px;
    border-radius: 10px; font-size: 13px; text-align: center; }
.request-form .request-form__notice.is-visible { display: block; }
.request-form .request-form__notice.is-error { color: #7a2b25; background: #fff0ed; }
.request-form .request-form__notice.is-success { color: #0F4C30; background: #EDF6F1; }
/* 文字数カウンタ */
.request-form__count { float: right; }
/* conditional fields の hidden をgrid指定より優先 */
.conditional-fields[hidden], .request-form__row[hidden] { display: none; }

/* ---- 新設 /contact/form/（body#contact・ハブは本CSSを読み込まない） ---- */
body#contact .request-form-section { --u-theme: #1E8A58; --u-deep: #0F4C30; --u-tint: #EDF6F1; --u-gold: #F5B500;
    --u-ink: #16181C; --u-sub: #5A6270; --u-border: #E2E5E8; --u-text: #17614A; --u-lav: #ACDDCF; }
body#contact .contact-hero { min-height: 0; }
body#contact .contact-hero__inner { padding-top: 96px; padding-bottom: 80px; min-height: 0; }
body#contact .contact-hero__eyebrow::before { content: none; }
body#contact .contact-hero__media { position: absolute; inset: 0; }
body#contact .contact-hero__media picture { display: block; width: 100%; height: 100%; }
body#contact .contact-hero__media img { width: 100%; height: 100%; object-fit: cover; }
body#contact .request-form__radio-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body#contact .request-form__legend-number,
body#contact .request-form__progress-item.is-current { background: #1E8A58; }
body#contact .request-form__radio input:checked + .request-form__radio-label {
    border-color: #1E8A58; color: #0F4C30; background: #EDF6F1; box-shadow: inset 0 0 0 1px #1E8A58; }
body#contact .request-form input:focus, body#contact .request-form select:focus,
body#contact .request-form textarea:focus { border-color: #1E8A58; box-shadow: 0 0 0 4px rgba(30, 138, 88, 0.12); }
body#contact .request-form__privacy-check input { accent-color: #1E8A58; }
@media (max-width: 850px) {
    body#contact .request-form__radio-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    body#contact .request-form__radio-grid--four { grid-template-columns: 1fr; }
}

/* ---- /contact/thanks/（body#contact・page62の部品を流用） ---- */
.thanks-hero { padding: 120px 24px 88px; text-align: center; }
.thanks-hero__title { font-size: 34px; letter-spacing: 0.05em; margin: 12px 0 20px; }
.thanks-hero__lead { color: #5A6270; font-size: 15px; line-height: 2.1; }
body#contact .contact-flow__figure { display: none; }
body#contact .contact-flow { padding-top: 80px; padding-bottom: 80px; }
.thanks-links { padding: 72px 24px 96px; }
.thanks-links__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 960px; margin: 24px auto 0; }
.thanks-link-card { position: relative; display: block; border: 1px solid #E2E5E8; border-radius: 12px; padding: 20px 44px 20px 20px; background: #fff; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s; }
.thanks-link-card:hover { border-color: #1E7A5E; box-shadow: 0 4px 14px rgba(30, 122, 94, .14); }
.thanks-link-card__title { display: block; font-size: 15px; margin-bottom: 4px; }
.thanks-link-card__text { display: block; font-size: 12.5px; color: #5A6270; }
.thanks-link-card__arrow { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: #1E7A5E; }
@media (max-width: 850px) { .thanks-links__grid { grid-template-columns: 1fr; } }

/* ---- 低圧・土地オーナー request（body#landowner-request） ---- */
body#landowner-request .request-hero--compact { min-height: 0; }
body#landowner-request .request-hero--compact .request-hero__inner { padding-top: 96px; padding-bottom: 80px; min-height: 0; }
body#landowner-request .request-hero--compact .request-hero__lead { font-size: 16px; }
body#landowner-request .request-hero--compact .request-hero__title { font-size: 28px; }
@media (max-width: 850px) {
    /* SPのMV: 写真300px＋本文を-64px重ね＋深緑フェード（lvと同型） */
    body#landowner-request .request-hero--compact .request-hero__media { height: 52vw; min-height: 300px; }
    body#landowner-request .request-hero--compact .request-hero__media::after { content: ""; position: absolute; inset: 0; pointer-events: none;
        background: linear-gradient(180deg, rgba(21, 84, 66, 0) 0%, rgba(21, 84, 66, 0) 45%, rgba(21, 84, 66, 0.65) 78%, #155442 100%); }
    body#landowner-request .request-hero--compact .request-hero__inner { margin-top: -64px; padding-top: 0; padding-bottom: 58px; }
}

/* ---- 低圧・投資家 request（body#lv-inv-request） ---- */
/* page16.cssの同名 .request-form 系クラス衝突を打ち消す */
body#lv-inv-request .request-form { max-width: none; margin: 0; padding: 64px 78px; border: 0; border-radius: 28px; background: #fff; box-shadow: 0 38px 90px rgba(19, 44, 37, 0.16); }
body#lv-inv-request .request-form__label { display: block; margin: 0; padding-top: 13px; font-size: 16px; font-weight: 700; line-height: 1.6; }
body#lv-inv-request .request-form__legend { display: block; width: 100%; margin-bottom: 20px; font-size: 24px; font-weight: 700; line-height: 1.45; }
body#lv-inv-request .request-form__group { margin-bottom: 0; padding: 0; border: 0; }
body#lv-inv-request .request-form__privacy { margin-top: 46px; padding: 28px; border-radius: 16px; background: #f4f6f6; }
body#lv-inv-request .request-form__submit { display: grid; place-items: center; margin-top: 34px; min-width: 0; }
body#lv-inv-request .request-form__control { width: auto; min-width: 0; min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body#lv-inv-request .request-form__row { display: grid; grid-template-columns: 230px 1fr; align-items: start; gap: 34px; }
body#lv-inv-request .request-form-section::before { display: none; }
body#lv-inv-request .request-form-section { background: #F6F7F7; padding: 72px 0 110px; }
body#lv-inv-request .request-form__group + .request-form__group { padding-top: 24px; }
/* page09読込によるhero系漏洩の遮断＋統一MV */
body#lv-inv-request .request-hero { min-height: 0; background: #0F4C30; }
body#lv-inv-request .request-hero .request-hero__media::after { content: none; }
body#lv-inv-request .request-hero__inner { padding-top: 96px; padding-bottom: 80px; min-height: 0; }
body#lv-inv-request .request-hero__title { font-size: 28px; color: #fff; }
body#lv-inv-request .request-hero__lead { font-size: 16px; color: rgba(255, 255, 255, 0.9); }
body#lv-inv-request .request-hero__note { color: rgba(255, 255, 255, 0.75); }
@media (max-width: 1024px) {
    body#lv-inv-request .request-form__row { grid-template-columns: 200px 1fr; gap: 24px; }
}
@media (max-width: 850px) {
    body#lv-inv-request .request-form { padding: 38px 20px; border-radius: 20px; }
    body#lv-inv-request .request-form__label { padding-top: 0; }
    body#lv-inv-request .request-form__legend { font-size: 20px; margin-bottom: 14px; }
    body#lv-inv-request .request-form__row { grid-template-columns: 1fr; gap: 10px; }
    body#lv-inv-request .request-form__group + .request-form__group { padding-top: 12px; }
    /* SPのMV: 本文を写真に重ね、写真下端は深緑へ溶かす */
    body#lv-inv-request .request-hero__inner { margin-top: -80px; padding-top: 0; padding-bottom: 72px; }
    body#lv-inv-request .request-hero .request-hero__media::after { content: ""; position: absolute; inset: 0; pointer-events: none;
        background: linear-gradient(180deg, rgba(15, 76, 48, 0) 0%, rgba(15, 76, 48, 0) 45%, rgba(15, 76, 48, 0.65) 78%, #0F4C30 100%); }
}
@media (max-width: 480px) {
    body#lv-inv-request .request-hero__inner { margin-top: -54px; padding-bottom: 58px; }
}

/* ---- 高圧 request（body#hv-inv-request） ---- */
body#hv-inv-request .hv-request-hero { min-height: 0; }
body#hv-inv-request .hv-request-hero__inner { padding-top: 96px; padding-bottom: 80px; min-height: 0; }
body#hv-inv-request .hv-request-hero__title { font-size: 28px; color: #fff; }
body#hv-inv-request .hv-request-hero__lead { font-size: 16px; color: rgba(255, 255, 255, 0.9); }
body#hv-inv-request .hv-request-hero__note { color: rgba(255, 255, 255, 0.75); }
body#hv-inv-request .request-form__radio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body#hv-inv-request .request-form__radio-grid--inline { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body#hv-inv-request .request-form__legend-number,
body#hv-inv-request .request-form__progress-item.is-current { background: #0C2A4D; }
body#hv-inv-request .request-form__radio input:checked + .request-form__radio-label {
    border-color: #0C2A4D; color: #071A31; background: #F2F5F9; box-shadow: inset 0 0 0 1px #0C2A4D; }
body#hv-inv-request .request-form input:focus, body#hv-inv-request .request-form select:focus,
body#hv-inv-request .request-form textarea:focus { border-color: #0C2A4D; box-shadow: 0 0 0 4px rgba(12, 42, 77, 0.12); }
body#hv-inv-request .request-form__privacy-check input { accent-color: #0C2A4D; }
@media (max-width: 850px) {
    /* SPのMV: lvと同じ「写真上部→ネイビーに溶かして本文」パターン */
    body#hv-inv-request .hv-request-hero { background: #071A31; }
    body#hv-inv-request .hv-request-hero__media { position: relative; inset: auto; height: 52vw; min-height: 300px; }
    body#hv-inv-request .hv-request-hero__media img { width: 100%; height: 100%; object-fit: cover; }
    body#hv-inv-request .hv-request-hero__media::after { content: ""; position: absolute; inset: 0; pointer-events: none;
        background: linear-gradient(180deg, rgba(7, 26, 49, 0) 0%, rgba(7, 26, 49, 0) 45%, rgba(7, 26, 49, 0.65) 78%, #071A31 100%); }
    body#hv-inv-request .hv-request-hero__inner { margin-top: -64px; padding-top: 0; padding-bottom: 64px; min-height: 0; }
    body#hv-inv-request .request-form__radio-grid { grid-template-columns: 1fr; }
    body#hv-inv-request .request-form__radio-grid--inline { grid-template-columns: 1fr; }
}

/* ---- メディア連携（body#news-inquiry） ---- */
body#news-inquiry .news-hero__inner { min-height: 0; }
body#news-inquiry .news-hero__visual { min-height: 480px; }
body#news-inquiry .news-hero__content { padding-top: 48px; padding-bottom: 48px; }
body#news-inquiry .news-hero__title { font-size: 28px; color: #fff; }
body#news-inquiry .news-hero__lead { font-size: 16px; color: rgba(255, 255, 255, 0.9); margin-top: 20px; }
body#news-inquiry .request-form__legend-number,
body#news-inquiry .request-form__progress-item.is-current { background: #2A3442; }
body#news-inquiry .request-form__radio input:checked + .request-form__radio-label {
    border-color: #2A3442; color: #16181C; background: #F4F6F8; box-shadow: inset 0 0 0 1px #2A3442; }
body#news-inquiry .request-form input:focus, body#news-inquiry .request-form select:focus,
body#news-inquiry .request-form textarea:focus { border-color: #2A3442; box-shadow: 0 0 0 4px rgba(42, 52, 66, 0.12); }
body#news-inquiry .request-form__privacy-check input { accent-color: #2A3442; }
@media (max-width: 850px) {
    body#news-inquiry .news-hero__visual { min-height: 300px; }
    body#news-inquiry .news-hero__content { padding: 40px 24px 36px; }
}

/* ---- 代理店応募（body#ag-recruit） ---- */
body#ag-recruit .recruit-hero { padding-top: 0; }
body#ag-recruit .recruit-hero__content { padding: 72px 0 72px; }
body#ag-recruit .recruit-hero__visual { height: 440px; transform: none; align-self: center; border-radius: 120px 24px 24px 24px; }
body#ag-recruit .recruit-hero__title { font-size: 28px; color: #fff; margin-bottom: 20px; }
body#ag-recruit .recruit-hero__lead { font-size: 16px; color: rgba(255, 255, 255, 0.92); margin-bottom: 26px; }
body#ag-recruit .recruit-hero__note { color: rgba(255, 255, 255, 0.78); }
body#ag-recruit .application { background: #F6F7F7; padding: 72px 0 110px; }
body#ag-recruit .application__background { display: none; }
body#ag-recruit .request-form__legend-number,
body#ag-recruit .request-form__progress-item.is-current { background: #B24A3B; }
body#ag-recruit .request-form__radio input:checked + .request-form__radio-label {
    border-color: #B24A3B; color: #7E3227; background: #F8F5F4; box-shadow: inset 0 0 0 1px #B24A3B; }
body#ag-recruit .request-form input:focus, body#ag-recruit .request-form select:focus,
body#ag-recruit .request-form textarea:focus { border-color: #B24A3B; box-shadow: 0 0 0 4px rgba(178, 74, 59, 0.12); }
body#ag-recruit .request-form__privacy-check input { accent-color: #B24A3B; }
@media (max-width: 850px) {
    body#ag-recruit .recruit-hero__content { padding: 40px 0 12px; }
    body#ag-recruit .recruit-hero__visual { height: 300px; border-radius: 60px 16px 16px 16px; }
}
