/* 電影場景結束後的冰白表單；所有覆寫限制在聯絡頁，保持其他頁面的共用表單樣式。 */
.contact_page .project_brief {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    gap: clamp(50px, 8vw, 150px);
    padding: clamp(85px, 9vw, 160px) clamp(28px, 7vw, 140px) clamp(90px, 9vw, 170px);
    color: #0f4c5c;
    background: radial-gradient(ellipse at 2% 22%, #d5eeee80, transparent 47%), #f4fafc;
    border-top: 0;
    scroll-margin-top: 95px;
}
@media (min-width: 2100px) {
    .contact_page .project_brief { padding-inline: max(140px, calc((100vw - 1900px) / 2)); }
}
@media (max-width: 1050px) {
    .contact_page .project_brief { grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: 40px; padding-inline: 5vw; }
}
@media (max-width: 760px) {
    .contact_page .project_brief { display: block; padding: 75px 6vw 85px; }
}

/* 左側文案固定在自然內容流內，不對表單使用 pin 或 transform。 */
.contact_page .project_brief_heading { min-width: 0; padding: 0; }
.contact_page .project_brief_heading .digital_eyebrow { margin-bottom: 45px; color: #20808a; font-size: 11px; letter-spacing: .22em; }
.contact_page .project_brief_heading h2 { font-size: clamp(34px, 3.45vw, 66px); font-weight: 400; letter-spacing: .035em; line-height: 1.55; margin: 0 0 30px; }
.contact_page .project_brief_heading h2 > span { color: #087c83; white-space: nowrap; }
.contact_page .project_brief_heading > p:not(.digital_eyebrow) { color: #526f7a; font-size: 14px; line-height: 2.2; letter-spacing: .035em; }
.contact_page .project_brief_connections { margin: 60px 0 30px; width: 145px; }
.contact_page .project_brief_connections > i { width: 6px; height: 6px; background: #11979b; box-shadow: 0 0 0 6px #00a8a80b; }
.contact_page .project_brief_connections > span { background: #97c7cf; }
.contact_page .project_brief_heading .project_brief_note { font-size: 10px !important; line-height: 1.9; letter-spacing: .18em; }
@media (max-width: 1050px) {
    .contact_page .project_brief_heading h2 { font-size: 34px; }
    .contact_page .project_brief_heading > p:not(.digital_eyebrow) { font-size: 13px; }
    .contact_page .project_brief_heading > p:not(.digital_eyebrow) br { display: none; }
}
@media (max-width: 760px) {
    .contact_page .project_brief_heading { margin-bottom: 50px; }
    .contact_page .project_brief_heading .digital_eyebrow { margin-bottom: 25px; }
    .contact_page .project_brief_heading h2 { font-size: clamp(31px, 6.3vw, 44px); }
    .contact_page .project_brief_heading > p:not(.digital_eyebrow) { max-width: 34em; }
    .contact_page .project_brief_connections, .contact_page .project_brief_note { display: none; }
}

/* 編輯式分隔線、可讀標籤與充足的觸控尺寸。 */
.contact_page .project_form_intro { margin: 0 0 40px; padding-bottom: 23px; border-color: #bfd2d9; }
.contact_page .project_form_intro > span { font-size: 10px; letter-spacing: .14em; }
.contact_page .project_form_intro > small { color: #617d87; font-size: 11px; }
.contact_page .project_form_grid { gap: 28px 30px; }
.contact_page .project_field > label, .contact_page .project_service_field > legend { font-size: 14px; color: #214f5c; }
.contact_page .project_field > label > span, .contact_page .project_service_field > legend > span { color: #597782; font-size: 9px; letter-spacing: .1em; }
.contact_page .project_field > input:not([type=file]), .contact_page .project_field > textarea {
    min-height: 53px;
    padding: 12px 0;
    color: #173e4a;
    border-bottom-color: #a8c2cc;
    font-size: 15px;
    background: transparent;
    box-shadow: none;
    transition: border-color .25s, background-color .25s;
}
.contact_page .project_field > textarea { min-height: 155px; }
.contact_page .project_field > :is(input,textarea)::placeholder { color: #637f8a; font-size: 12px; }
.contact_page .project_field > :is(input,textarea):hover { border-bottom-color: #4f99a1; }
.contact_page .project_field > :is(input,textarea):focus { background: #e2f4f640; border-bottom-color: #008b91; outline: 1px solid #008b9160; outline-offset: 5px; }
.contact_page .project_field_hint, .contact_page .project_service_field > p:first-of-type, .contact_page .project_service_count { color: #577580; font-size: 11px; }
@media (max-width: 1050px) {
    .contact_page .project_field > label > span { display: block; margin: 4px 0 0; }
}
@media (max-width: 760px) {
    .contact_page .project_form_intro { margin-bottom: 30px; }
    .contact_page .project_form_grid { gap: 27px 20px; }
    .contact_page .project_field > input:not([type=file]), .contact_page .project_field > textarea { font-size: 16px; }
}
@media (max-width: 480px) {
    .contact_page .project_form_grid { grid-template-columns: minmax(0, 1fr); }
    .contact_page .project_field > label > span { display: inline-block; margin: 0 0 0 8px; }
}

/* 服務依既有 CMS 公開資料呈現，多選狀態以實際 checkbox 管理。 */
.contact_page .project_service_field { margin-block: 12px 2px; }
.contact_page .project_service_chips { gap: 10px; }
.contact_page .project_service_chip > span { min-height: 45px; padding: 11px 17px; border-color: #a4c5cc; border-radius: 3px; background: #ffffff50; color: #305d69; font-size: 12px; transition: border-color .2s, background .2s, color .2s, transform .2s; }
.contact_page .project_service_chip > input:checked + span { background: #0f4c5c; color: #f4fafc; border-color: #0f4c5c; }
.contact_page .project_service_chip > input:checked + span > i { background: #2dd4bf; border-color: #2dd4bf; box-shadow: 0 0 0 3px #2dd4bf20; }
.contact_page .project_service_chip:hover > span { transform: translateY(-2px); border-color: #008b91; }
.contact_page .project_service_chip > input:focus-visible + span { outline: 2px solid #008b91; outline-offset: 4px; }
@media (hover: none) {
    .contact_page .project_service_chip:hover > span { transform: none; }
}

/* 附件仍使用原生選檔控制項，沿用私有儲存與格式驗證。 */

/* 隱私同意為可聚焦的原生控制項，未勾選時前後端皆阻擋送出。 */
.contact_page .project_privacy { padding-top: 28px; }
.contact_page .project_privacy_choice { display: flex; align-items: flex-start; gap: 12px; color: #305967; cursor: pointer; font-size: 12px; line-height: 1.9; }
.contact_page .project_privacy_choice input { flex: 0 0 auto; margin: 3px 0 0; width: 18px; height: 18px; accent-color: #0c8589; }
.contact_page .project_privacy_choice input:focus-visible { outline: 2px solid #008b91; outline-offset: 4px; }
.contact_page .project_privacy_choice input[aria-invalid=true] { outline: 2px solid #a33d3d; outline-offset: 3px; }
.contact_page .project_privacy > p:not(.project_field_error) { color: #627d86; font-size: 11px; line-height: 1.9; margin: 12px 0 0 30px; }

/* 送出、錯誤與成功訊息保持獨立於場景動畫，避免被透明度狀態隱藏。 */
.contact_page .project_submit_row { margin-top: 32px; padding-top: 30px; border-color: #bed4dc; }
.contact_page .project_submit_row > p { color: #536f7b; line-height: 1.9; }
.contact_page .project_submit { gap: 40px; min-height: 58px; padding: 16px 25px; border: 1px solid #1b6778; border-radius: 2px; background: #0f4c5c; box-shadow: 0 8px 25px #0f4c5c0c; }
.contact_page .project_submit > i { color: #70e0d4; transition: transform .25s; }
.contact_page .project_submit:hover:not(:disabled) { background: #126474; transform: translateY(-2px); }
.contact_page .project_submit:hover:not(:disabled) > i { transform: translate(2px,-2px); }
.contact_page .project_submit:focus-visible { outline: 2px solid #00a8a8; outline-offset: 5px; }
.contact_page .project_result { padding: 30px 0 70px; }
.contact_page .project_result h3 { color: #0f4c5c; line-height: 1.5; }
.contact_page .project_result .project_result_icon { background: #e7f7f7; }
@media (max-width: 480px) {
    .contact_page .project_submit_row { align-items: stretch; flex-direction: column; gap: 20px; }
    .contact_page .project_submit { width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
    .contact_page .project_brief *, .contact_page .project_brief *::before, .contact_page .project_brief *::after { transition: none !important; animation: none !important; }
    .contact_page .project_service_chip:hover > span, .contact_page .project_submit:hover:not(:disabled), .contact_page .project_submit:hover:not(:disabled) > i { transform: none; }
}
