@charset "utf-8";
/* お問い合わせ。Codex のデザイン画（幅756→1024換算）を基準にする。フォームの送信の仕組みは変えず、見た目だけ */

/* ページタイトルの帯：左寄せ・大きい見出し・金の短い線。パンくずは淡い水色の帯 */

/* 共通 */
.ct .ct-pc { display: inline; }
.ct .ct-sp { display: none; }
.ct { background: linear-gradient(180deg, #fff, #F9FBFE 50%, #fff); }
.ct-in { position: relative; width: calc(1024 * var(--u)); margin: 0 auto; padding: 0 calc(55 * var(--u)); }
.ct-h2 { font-size: calc(38 * var(--u)); line-height: calc(52 * var(--u)); letter-spacing: .05em; gap: calc(36 * var(--u)); font-feature-settings: normal; }
.ct-h2.is-center::before, .ct-h2.is-center::after { width: calc(180 * var(--u)); height: calc(2 * var(--u)); }
.ct-msg { margin-top: calc(24 * var(--u)); text-align: center; font-size: calc(17 * var(--u)); line-height: 1.9; color: #273246; font-weight: 500; }

/* 導入の文 */
.ct-form-sec { padding-top: calc(56 * var(--u)); }
.ct-intro { text-align: center; font-family: var(--serif); font-weight: 700; font-size: calc(29 * var(--u)); line-height: calc(52 * var(--u)); letter-spacing: .08em; color: var(--navy); margin-bottom: calc(52 * var(--u)); }

/* フォームの表 */
.ct-table { width: calc(876 * var(--u)); margin: calc(28 * var(--u)) auto 0; border-collapse: collapse; background: #fff; border: 1px solid #C9DCEE; }
.ct-table th, .ct-table td { border-top: 1px solid #C9DCEE; vertical-align: middle; text-align: left; }
.ct-table th { position: relative; width: calc(261 * var(--u)); height: calc(88 * var(--u)); padding: 0 calc(80 * var(--u)) 0 calc(26 * var(--u)); background: linear-gradient(90deg, #DDEBF8, #E8F2FB); border-right: 1px solid #C9DCEE; font-family: var(--serif); font-weight: 700; font-size: calc(19 * var(--u)); line-height: 1.5; letter-spacing: .04em; color: var(--navy); }
.ct-table td { padding: calc(20 * var(--u)) calc(20 * var(--u)) calc(20 * var(--u)) calc(22 * var(--u)); }
.ct-req { position: absolute; right: calc(14 * var(--u)); top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: calc(52 * var(--u)); height: calc(28 * var(--u)); border-radius: calc(3 * var(--u)); background: linear-gradient(180deg, #E07D93, #D2607A); color: #fff; font-size: calc(15 * var(--u)); font-weight: 500; letter-spacing: .08em; font-family: var(--serif); }
.ct-table input[type="text"], .ct-table input[type="email"], .ct-table textarea { display: block; width: 100%; height: calc(46 * var(--u)); padding: 0 calc(14 * var(--u)); border: 1px solid #B5C8DE; border-radius: calc(4 * var(--u)); background: #fff; font: inherit; font-size: max(16px, calc(16 * var(--u))); color: #273246; box-shadow: inset 0 1px 2px rgba(30,53,96,.05); }
.ct-table textarea { height: calc(162 * var(--u)); padding: calc(10 * var(--u)) calc(14 * var(--u)); line-height: 1.7; resize: vertical; }
.ct-table input:focus, .ct-table textarea:focus { outline: none; border-color: #6F93C4; box-shadow: 0 0 0 3px rgba(111,147,196,.2); }
.ct-table-confirm td { font-size: calc(16 * var(--u)); line-height: 1.8; color: #273246; }
.ct-table-confirm th { padding-right: calc(26 * var(--u)); }
.ct .form-error { margin-top: calc(6 * var(--u)); font-size: max(13px, calc(14 * var(--u))); color: #C2334F; }
.ct .form-error-global { margin: calc(40 * var(--u)) auto 0; width: calc(876 * var(--u)); padding: calc(10 * var(--u)) calc(16 * var(--u)); border-radius: calc(4 * var(--u)); background: #FCE6EC; text-align: center; }

/* 送信ボタン（input はそのまま。右の矢印は外側の p に付ける） */
.ct-submit { position: relative; width: calc(400 * var(--u)); margin: calc(44 * var(--u)) auto 0; }
.ct-submit input { display: block; width: 100%; height: calc(68 * var(--u)); padding: 0 calc(44 * var(--u)) 0 calc(10 * var(--u)); border-radius: 999px; border: 1px solid rgba(255,255,255,.7); background: linear-gradient(180deg, #86A6D0 0%, #5C82B5 45%, #3E659A 100%); box-shadow: 0 calc(10 * var(--u)) calc(22 * var(--u)) rgba(46,85,140,.3), inset 0 1px 0 rgba(255,255,255,.4); color: #fff; font-family: var(--serif); font-weight: 600; font-size: calc(23 * var(--u)); letter-spacing: .08em; cursor: pointer; -webkit-appearance: none; appearance: none; transition: filter .2s; }
.ct-submit input:hover { filter: brightness(1.06); }
.ct-submit::after { content: ""; position: absolute; right: calc(40 * var(--u)); top: 50%; width: calc(11 * var(--u)); height: calc(11 * var(--u)); margin-top: calc(-5.5 * var(--u)); border-top: calc(2 * var(--u)) solid #fff; border-right: calc(2 * var(--u)) solid #fff; transform: rotate(45deg); pointer-events: none; }
.ct-table-confirm + .ct-submit { margin-top: calc(44 * var(--u)); }
.ct-back { width: calc(300 * var(--u)); margin: calc(18 * var(--u)) auto 0; }
.ct-back input { display: block; width: 100%; height: calc(52 * var(--u)); border-radius: 999px; border: calc(1.5 * var(--u)) solid var(--navy); background: linear-gradient(180deg, #fff, #EEF3FA); color: var(--navy); font-family: var(--serif); font-weight: 600; font-size: calc(17 * var(--u)); letter-spacing: .08em; cursor: pointer; -webkit-appearance: none; appearance: none; }
.contact-complete { margin-top: calc(40 * var(--u)); }

/* 会社の連絡先 */
.ct-company-sec { padding: calc(72 * var(--u)) 0 calc(64 * var(--u)); }
.ct-company { margin-top: calc(28 * var(--u)); padding: calc(36 * var(--u)) calc(32 * var(--u)) calc(36 * var(--u)); border-radius: calc(10 * var(--u)); background: linear-gradient(180deg, #E6F0FA, #EEF5FC 50%, #E9F2FB); box-shadow: 0 calc(8 * var(--u)) calc(20 * var(--u)) rgba(30,53,96,.05); }
.ct-company-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid #C9DCEE; }
.ct-company-table caption { height: calc(57 * var(--u)); padding: 0 calc(36 * var(--u)); text-align: left; vertical-align: middle; line-height: calc(57 * var(--u)); border: 1px solid #EBDDE6; border-bottom: 0; background: linear-gradient(90deg, #F8EAF1, #FBF1F6 60%, #F7EEF5); font-family: var(--serif); font-weight: 700; font-size: calc(24 * var(--u)); letter-spacing: .03em; color: var(--navy); font-feature-settings: normal; }
.ct-company-table th, .ct-company-table td { border-top: 1px solid #C9DCEE; vertical-align: middle; text-align: left; }
.ct-company-table th { width: calc(230 * var(--u)); padding: 0 calc(36 * var(--u)); background: linear-gradient(90deg, #DDEBF8, #E8F2FB); border-right: 1px solid #C9DCEE; font-size: calc(18 * var(--u)); font-weight: 500; letter-spacing: .06em; color: var(--navy); }
.ct-company-table td { height: calc(55 * var(--u)); padding: calc(13 * var(--u)) calc(40 * var(--u)); font-size: calc(19 * var(--u)); line-height: calc(34 * var(--u)); letter-spacing: .06em; color: #273246; font-weight: 500; }

/* ========== スマホ ========== */
@media (max-width: 1023px) {
	.ct .ct-pc { display: none; }
	.ct .ct-sp { display: inline; }

	.ct-in { width: auto; max-width: 560px; padding: 0 18px; }
	.ct-h2 { font-size: 24px; line-height: 1.45; gap: 12px; }
	.ct-h2.is-center::before, .ct-h2.is-center::after { width: auto; flex: 1; max-width: 80px; height: 1.5px; }
	.ct-msg { margin-top: 14px; font-size: 15px; }

	.ct-form-sec { padding-top: 30px; }
	.ct-intro { font-size: 18px; line-height: 1.75; letter-spacing: .05em; margin-bottom: 30px; }

	/* フォーム：見出しの帯の下に入力欄 */
	.ct-table, .ct-table tbody, .ct-table tr, .ct-table th, .ct-table td { display: block; width: 100%; }
	.ct-table { margin-top: 20px; border-radius: 4px; }
	.ct-table tr + tr { border-top: 1px solid #C9DCEE; }
	.ct-table th, .ct-table td { border-top: 0; }
	.ct-table th { height: auto; padding: 8px 14px; border-right: 0; font-size: 15.5px; }
	.ct-req { position: static; transform: none; margin-left: 12px; width: 46px; height: 22px; font-size: 12px; vertical-align: 1px; }
	.ct-table td { padding: 10px 14px 12px; }
	.ct-table input[type="text"], .ct-table input[type="email"] { height: 44px; font-size: 16px; }
	.ct-table textarea { height: 120px; font-size: 16px; }
	.ct-table-confirm td { font-size: 15px; }
	.ct .form-error { font-size: 13px; }
	.ct .form-error-global { width: auto; margin-top: 20px; }

	.ct-submit { width: min(300px, 80vw); margin-top: 28px; }
	.ct-submit input { height: 56px; font-size: 19px; padding-right: 30px; }
	.ct-submit::after { right: 26px; width: 9px; height: 9px; margin-top: -4.5px; border-width: 2px; }
	.ct-table-confirm + .ct-submit { margin-top: 28px; }
	.ct-back { width: min(260px, 72vw); margin-top: 14px; }
	.ct-back input { height: 46px; font-size: 15px; border-width: 1.5px; }

	.ct-company-sec { padding: 46px 0 40px; }
	.ct-company { margin-top: 18px; padding: 14px 14px; border-radius: 8px; }
	.ct-company-table, .ct-company-table tbody, .ct-company-table tr, .ct-company-table th, .ct-company-table td { display: block; width: 100%; }
	.ct-company-table caption { display: block; height: auto; line-height: 1.5; padding: 10px 16px; font-size: 19px; }
	.ct-company-table th, .ct-company-table td { border-top: 1px solid #C9DCEE; }
	.ct-company-table th { padding: 6px 16px; border-right: 0; font-size: 15px; font-weight: 700; }
	.ct-company-table td { height: auto; padding: 8px 16px; font-size: 14.5px; line-height: 1.75; letter-spacing: 0; }
}

/* ========== 英語表示（?lang=en）だけの調整。日本語表示には効かない ========== */
/* 「Required」の札を文字に合わせた幅にする */
html[lang="en"] .ct-req { width: auto; padding: 0 calc(8 * var(--u)); letter-spacing: .02em; }
@media (min-width: 1024px) {
	html[lang="en"] .ct-intro { font-size: calc(26 * var(--u)); letter-spacing: .03em; text-wrap: balance; }
	html[lang="en"] .ct-intro br { display: none; }
}
@media (max-width: 1023px) {
	html[lang="en"] .ct-req { width: auto; padding: 0 6px; }
}

/* ========== 「営業・宣伝のお問い合わせではありません」のチェック ========== */
.ct-not-sales { width: calc(876 * var(--u)); margin: calc(26 * var(--u)) auto 0; text-align: center; }
.ct-not-sales-note { font-size: max(13px, calc(15 * var(--u))); line-height: 1.7; color: #4A5568; }
.ct-not-sales-check { display: inline-flex; align-items: center; gap: calc(10 * var(--u)); margin-top: calc(12 * var(--u)); padding: calc(12 * var(--u)) calc(22 * var(--u)); border: 1px solid #C9DCEE; border-radius: calc(6 * var(--u)); background: #fff; cursor: pointer; font-family: var(--serif); font-weight: 700; font-size: max(15px, calc(18 * var(--u))); color: var(--navy); letter-spacing: .03em; }
.ct-not-sales-check input { width: calc(22 * var(--u)); height: calc(22 * var(--u)); min-width: 18px; min-height: 18px; margin: 0; accent-color: #D2607A; cursor: pointer; }
.ct-not-sales-check .ct-req { position: static; transform: none; flex: none; }
.ct-not-sales .form-error { margin-top: calc(8 * var(--u)); }
.ct-not-sales-confirm { width: calc(876 * var(--u)); margin: calc(18 * var(--u)) auto 0; text-align: center; font-family: var(--serif); font-weight: 700; font-size: max(14px, calc(17 * var(--u))); color: var(--navy); }
@media (max-width: 1023px) {
	.ct-not-sales, .ct-not-sales-confirm { width: 100%; margin-top: 18px; }
	.ct-not-sales-note, .ct-not-sales .form-error { font-size: 13px; text-align: left; }
	.ct-not-sales-check { display: flex; gap: 10px; margin-top: 10px; padding: 12px 14px; text-align: left; font-size: 15px; letter-spacing: 0; }
	.ct-not-sales-check input { width: 20px; height: 20px; flex: none; }
	.ct-not-sales-check .ct-req { margin-left: auto; }
	.ct-not-sales-confirm { font-size: 14.5px; }
}
