/* ==========================================================================
   EXETIME 資料請求フォーム
   デザイントークンは creative/shared/theme.css と同期している。
   Worker は shared/ を読めないため写しを持っている。**変更時は両方直すこと。**
   ========================================================================== */

:root{
  --ivory:#F7F2E8; --ivory-2:#FBF8F1; --panel:#FFFFFF;
  --navy:#161F38; --navy-2:#1F2A47; --ink:#1E2436;
  --warm:#756A57; --warm-2:#8f8574; --line:#E6DDCB;
  --gold:#B4922F; --gold-2:#9C7E23; --gold-soft:#EAD9A6;
  --accent-wash:#F1E7CF;
  --error:#B3261E; --error-bg:#FCEFEE;
  --shadow:0 10px 30px -14px rgba(30,24,10,.28);
  --shadow-sm:0 4px 14px -8px rgba(30,24,10,.28);
  --radius:16px; --radius-sm:11px;
  --maxw:1120px;
  --ff-serif:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP","Songti SC",serif;
  --ff-sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,"Noto Sans JP",Meiryo,system-ui,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --ivory:#12172a; --ivory-2:#161d33; --panel:#1a2137; --accent-wash:#20294a;
    --navy:#0e1426; --navy-2:#161f38; --ink:#ECE7DA;
    --warm:#B7AE9C; --warm-2:#9c9384; --line:#2b3350;
    --gold:#D9B85A; --gold-2:#C9A63F; --gold-soft:#3a3a2c;
    --error:#F2B8B5; --error-bg:#2a1a1a;
    --shadow:0 14px 34px -16px rgba(0,0,0,.6);
    --shadow-sm:0 6px 16px -10px rgba(0,0,0,.6);
  }
}

*{box-sizing:border-box;}
body{margin:0;}
.exe{
  font-family:var(--ff-sans); color:var(--ink); background:var(--ivory);
  line-height:1.75; font-size:16px; letter-spacing:.01em;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 22px;}
.fm-narrow{max-width:760px;}
a{color:inherit;}
[hidden]{display:none !important;}

/* ---------- header / footer（LPと同じ見た目） ---------- */
.hd{position:sticky; top:0; z-index:60; background:color-mix(in srgb,var(--ivory) 88%, transparent);
    backdrop-filter:saturate(1.3) blur(10px); border-bottom:1px solid var(--line);}
.hd .wrap{display:flex; align-items:center; gap:18px; height:66px;}
.brand{display:flex; align-items:baseline; gap:9px; font-weight:800; letter-spacing:.14em; text-decoration:none;}
.brand .mark{font-family:var(--ff-serif); font-size:1.28rem; letter-spacing:.2em; color:var(--ink);}
.brand .sub{font-size:.66rem; letter-spacing:.22em; color:var(--gold-2); font-weight:700;}
.hd-cta{margin-left:auto; display:flex; gap:10px; align-items:center;}
.hd-tel{font-size:.82rem; color:var(--warm); display:flex; flex-direction:column; line-height:1.25; text-align:right; text-decoration:none;}
.hd-tel b{font-family:var(--ff-serif); font-size:1.02rem; color:var(--ink); letter-spacing:.04em;}
@media(max-width:820px){ .hd-tel{display:none;} .brand .sub{display:none;} }

.site-footer{background:var(--navy); color:#E8E2D5; margin-top:72px; padding:48px 0 28px;}
.site-footer a{color:#E8E2D5;}
.uf-grid{display:flex; flex-wrap:wrap; gap:36px; justify-content:space-between;}
.uf-logo{font-family:var(--ff-serif); letter-spacing:.08em; margin-bottom:12px;}
.uf-addr{font-style:normal; font-size:.86rem; line-height:1.9; color:#C9C2B4;}
.uf-links h5{margin:0 0 10px; font-size:.82rem; letter-spacing:.12em; color:var(--gold-soft);}
.uf-links a{display:block; font-size:.86rem; line-height:2; text-decoration:none; color:#C9C2B4;}
.uf-links a:hover{color:#fff; text-decoration:underline;}
.uf-copy{margin:32px 0 0; font-size:.76rem; color:#8F8878;}

/* ---------- buttons（LPと同じ） ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.5em;
     font-weight:700; text-decoration:none; border-radius:999px; padding:.86em 1.5em;
     font-size:.95rem; border:1.5px solid transparent; cursor:pointer;
     transition:transform .15s, box-shadow .2s, background .2s; white-space:nowrap;
     font-family:inherit;}
.btn:focus-visible{outline:3px solid var(--gold); outline-offset:2px;}
.btn-gold{background:linear-gradient(180deg,#c9a544,var(--gold)); color:#231a02; box-shadow:0 8px 20px -8px rgba(180,146,47,.7);}
.btn-gold:hover{transform:translateY(-2px); box-shadow:0 12px 26px -8px rgba(180,146,47,.85);}
.btn-nv{background:var(--navy); color:#F7F2E8; border-color:var(--navy);}
.btn-nv:hover{transform:translateY(-2px); background:var(--navy-2);}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--gold);}
.btn-ghost:hover{background:var(--accent-wash);}
.btn-sm{padding:.6em 1.05em; font-size:.84rem;}
.btn-lg{padding:1em 2.2em; font-size:1.02rem;}
.btn[disabled]{opacity:.55; cursor:not-allowed; transform:none; box-shadow:none;}

/* ---------- hero ---------- */
.fm-hero{background:var(--ivory-2); border-bottom:1px solid var(--line); padding:44px 0 36px;}
.fm-eyebrow{margin:0 0 6px; font-size:.72rem; letter-spacing:.22em; color:var(--gold-2); font-weight:700;}
.fm-h1{font-family:var(--ff-serif); font-size:clamp(1.55rem,4.2vw,2.2rem); margin:0 0 12px; line-height:1.4;}
.fm-h2{font-family:var(--ff-serif); font-size:clamp(1.2rem,3.2vw,1.5rem); margin:0 0 20px;
       padding-bottom:12px; border-bottom:2px solid var(--gold-soft);}
.fm-h3{font-family:var(--ff-serif); font-size:1.05rem; margin:0 0 8px;}
.fm-lead{margin:0 0 10px; color:var(--warm); font-size:.95rem;}
.fm-strong{color:var(--ink); font-weight:700;}
@media(max-width:640px){ .fm-br-pc{display:none;} }

/* ---------- step indicator ---------- */
.fm-steps{margin:28px 0 4px;}
.fm-steps ol{display:flex; gap:8px; list-style:none; margin:0; padding:0;}
.fm-step{flex:1; display:flex; align-items:center; gap:8px; padding:10px 8px;
         border-radius:var(--radius-sm); background:var(--ivory-2);
         border:1px solid var(--line); color:var(--warm); font-size:.84rem;}
.fm-step-no{display:inline-flex; align-items:center; justify-content:center;
            width:24px; height:24px; border-radius:50%; background:var(--line);
            color:var(--ink); font-weight:700; font-size:.8rem; flex:none;}
.fm-step[aria-current="step"]{background:var(--navy); border-color:var(--navy); color:#F7F2E8;}
.fm-step[aria-current="step"] .fm-step-no{background:var(--gold); color:#231a02;}
.fm-step[data-done="1"] .fm-step-no{background:var(--gold-soft); color:#231a02;}
.fm-step[data-done="1"] .fm-step-no::after{content:"✓";}
.fm-step[data-done="1"] .fm-step-no{font-size:.9rem;}
@media(max-width:520px){
  .fm-step-label{display:none;}
  .fm-step{justify-content:center; padding:10px 4px;}
  .fm-step[aria-current="step"] .fm-step-label{display:inline;}
}

/* ---------- panel ---------- */
.fm-panel{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
          padding:28px; margin:20px 0 40px; box-shadow:var(--shadow-sm);}
@media(max-width:640px){ .fm-panel{padding:20px 16px; border-radius:var(--radius-sm);} }

/* ---------- fields ---------- */
.fm-field{margin:0 0 22px;}
.fm-label{display:flex; align-items:center; gap:8px; flex-wrap:wrap;
          font-weight:700; font-size:.92rem; margin:0 0 6px; padding:0;}
.fm-req{background:var(--gold); color:#231a02; font-size:.66rem; font-weight:700;
        padding:2px 7px; border-radius:4px; letter-spacing:.06em;}
.fm-opt{background:var(--line); color:var(--warm); font-size:.66rem; font-weight:700;
        padding:2px 7px; border-radius:4px; letter-spacing:.06em;}
.fm-hint{margin:0 0 8px; font-size:.8rem; color:var(--warm);}
.fm-input{width:100%; font-family:inherit; font-size:16px; /* 16px 未満だと iOS が勝手にズームする */
          line-height:1.6; color:var(--ink); background:var(--ivory-2);
          border:1.5px solid var(--line); border-radius:var(--radius-sm);
          padding:.7em .85em; transition:border-color .15s, box-shadow .15s;}
.fm-input:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(180,146,47,.18);}
.fm-input:focus-visible{outline:2px solid var(--gold); outline-offset:1px;}
.fm-textarea{resize:vertical; min-height:110px;}
select.fm-input{appearance:none; background-image:
  linear-gradient(45deg,transparent 50%,var(--warm) 50%),
  linear-gradient(135deg,var(--warm) 50%,transparent 50%);
  background-position:calc(100% - 20px) calc(50% + 2px), calc(100% - 14px) calc(50% + 2px);
  background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:40px;}
.fm-row2{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:520px){ .fm-row2{grid-template-columns:1fr; gap:0;} }

/* エラーは色だけでなくテキストとアイコンでも示す */
.fm-field[data-invalid="1"] .fm-input{border-color:var(--error); background:var(--error-bg);}
.fm-error{margin:6px 0 0; font-size:.82rem; color:var(--error); font-weight:700; min-height:0;}
.fm-error:empty{display:none;}
.fm-error::before{content:"⚠ ";}
.fm-error-block{margin:16px 0; padding:12px 14px; background:var(--error-bg);
                border-radius:var(--radius-sm); border:1px solid var(--error);}

/* ---------- choices ---------- */
.fm-fieldset{border:0; margin:0; padding:0; min-width:0;}
.fm-fieldset > .fm-label{margin-bottom:10px;}
.fm-choices{display:flex; flex-direction:column; gap:8px;}
.fm-choices-2col{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
@media(max-width:560px){ .fm-choices-2col{grid-template-columns:1fr;} }

/* ラベル全体をタップ領域にする。最小 44px 高。 */
.fm-choice{display:flex; align-items:flex-start; gap:10px; min-height:44px;
           padding:10px 14px; border:1.5px solid var(--line); border-radius:var(--radius-sm);
           background:var(--ivory-2); cursor:pointer; font-size:.92rem; line-height:1.5;
           transition:border-color .15s, background .15s;}
.fm-choice:hover{border-color:var(--gold-soft); background:var(--accent-wash);}
.fm-choice input{position:absolute; opacity:0; width:1px; height:1px;}
.fm-choice-box{flex:none; width:20px; height:20px; margin-top:2px; border:2px solid var(--warm-2);
               background:var(--panel); transition:border-color .15s, background .15s;}
.fm-choice input[type="radio"] ~ .fm-choice-box{border-radius:50%;}
.fm-choice input[type="checkbox"] ~ .fm-choice-box{border-radius:5px;}
.fm-choice input:checked ~ .fm-choice-box{border-color:var(--gold); background:var(--gold);
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23231a02' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size:14px 14px; background-position:center; background-repeat:no-repeat;}
.fm-choice:has(input:checked){border-color:var(--gold); background:var(--accent-wash);}
.fm-choice input:focus-visible ~ .fm-choice-box{outline:3px solid var(--gold); outline-offset:2px;}
.fm-choice-text{flex:1;}
.fm-consent{background:var(--accent-wash); border-color:var(--gold-soft);}

/* ---------- 会社情報 ---------- */
.fm-company{margin:4px 0 24px;}
.fm-company-loading{display:flex; align-items:center; gap:10px; padding:14px 16px;
  background:var(--ivory-2); border:1px dashed var(--line); border-radius:var(--radius-sm);
  font-size:.9rem; color:var(--warm);}
.fm-card{border:1.5px solid var(--gold-soft); background:var(--accent-wash);
         border-radius:var(--radius); padding:20px; margin:4px 0 18px;}
.fm-card-actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:16px;}
.fm-warn{margin:0 0 10px; padding:8px 12px; background:var(--panel);
         border-left:4px solid var(--gold); border-radius:4px; font-size:.85rem;}
.fm-dl{display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:12px 0 0; font-size:.9rem;}
.fm-dl dt{color:var(--warm); font-weight:700; white-space:nowrap;}
.fm-dl dd{margin:0; word-break:break-word;}
.fm-dl .fm-dl-name{font-family:var(--ff-serif); font-size:1.1rem; font-weight:700;}
@media(max-width:520px){ .fm-dl{grid-template-columns:1fr; gap:2px;} .fm-dl dd{margin-bottom:8px;} }
.fm-company-edit{border-top:1px solid var(--line); padding-top:20px; margin-top:4px;}
.fm-link{background:none; border:0; padding:0; font:inherit; font-size:.88rem;
         color:var(--gold-2); text-decoration:underline; cursor:pointer;}
.fm-link:hover{color:var(--ink);}

/* ---------- actions ---------- */
.fm-actions{display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end;
            margin-top:28px; padding-top:22px; border-top:1px solid var(--line);}
.fm-actions .fm-back{margin-right:auto;}
@media(max-width:520px){
  .fm-actions{flex-direction:column-reverse;}
  .fm-actions .btn{width:100%;}
  .fm-actions .fm-back{margin-right:0;}
}

/* ---------- 確認画面 ---------- */
.fm-confirm-group{margin:0 0 26px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.fm-confirm-head{display:flex; align-items:center; justify-content:space-between; gap:12px;
  background:var(--ivory-2); padding:12px 18px; border-bottom:1px solid var(--line);}
.fm-confirm-head h3{margin:0; font-family:var(--ff-serif); font-size:1rem;}
.fm-confirm-table{width:100%; border-collapse:collapse; font-size:.9rem;}
.fm-confirm-table th{text-align:left; vertical-align:top; width:38%; padding:11px 18px;
  color:var(--warm); font-weight:700; background:var(--panel);}
.fm-confirm-table td{padding:11px 18px; white-space:pre-wrap; word-break:break-word;
  border-bottom:1px solid var(--line);}
.fm-confirm-table tr:last-child td, .fm-confirm-table tr:last-child th{border-bottom:0;}
.fm-empty{color:var(--warm-2);}
@media(max-width:560px){
  .fm-confirm-table, .fm-confirm-table tbody, .fm-confirm-table tr,
  .fm-confirm-table th, .fm-confirm-table td{display:block; width:auto;}
  .fm-confirm-table th{padding:12px 16px 0; background:transparent;}
  .fm-confirm-table td{padding:2px 16px 12px;}
}

/* ---------- 完了画面 ---------- */
.fm-complete{padding:56px 0 24px; text-align:center;}
.fm-complete .fm-lead{color:var(--ink);}
.fm-complete-mark{width:64px; height:64px; margin:0 auto 22px; border-radius:50%;
  background:var(--gold); color:#231a02; display:flex; align-items:center; justify-content:center;}
.fm-complete-mark svg{width:34px; height:34px;}
.fm-cta-wrap{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:28px 0 8px;}
.fm-cta-wrap:empty{display:none;}
.fm-cta-wrap .btn svg{width:1.05em; height:1.05em; flex:none;}
@media(max-width:520px){ .fm-cta-wrap{flex-direction:column;} .fm-cta-wrap .btn{width:100%;} }
.fm-inquiry-id{margin:20px 0 0; font-size:.86rem; color:var(--warm);}
.fm-complete-note{margin:26px 0 12px; font-size:.86rem; color:var(--warm);}

/* ---------- spinner / honeypot ---------- */
.fm-spinner{display:inline-block; width:15px; height:15px; flex:none;
  border:2px solid currentColor; border-right-color:transparent; border-radius:50%;
  animation:fm-spin .7s linear infinite;}
@keyframes fm-spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce){
  .fm-spinner{animation:none;}
  .btn{transition:none;}
  .btn:hover{transform:none;}
}

/* honeypot。表示せず、読み上げも Tab も届かない位置へ追い出す。 */
.fm-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

.fm-section{padding:64px 0;}
