﻿@charset "utf-8";

/* =========================================================
   ESG / Contact
   版型參考根目錄 Contact/Index.aspx：
   - 說明圖示 + 文字
   - 左側固定欄名、右側表單控制項
   - 清楚分隔線
   - 桌面寬版、手機直向排列
   ========================================================= */

.esg-contact-page {
    width: 100%;
    min-width: 0;
    color: #3d4653;
    font-family: Arial, "Microsoft JhengHei", "Noto Sans TC", sans-serif;
    font-size: 15px;
    line-height: 1.7;
}

    /* ---------- 上方說明 ---------- */
    .esg-contact-page .contact-intro {
        display: flex;
        width: 100%;
        margin: 0 0 24px;
        padding: 18px 22px;
        align-items: center;
        gap: 22px;
        border-bottom: 1px solid #dfe3ee;
        background: #fff;
    }

    .esg-contact-page .contact-intro-image {
        flex: 0 0 114px;
        text-align: center;
    }

        .esg-contact-page .contact-intro-image img {
            display: block;
            width: 114px;
            height: auto;
            margin: 0 auto;
        }

    .esg-contact-page .contact-intro-copy {
        min-width: 0;
        flex: 1;
    }

        .esg-contact-page .contact-intro-copy p {
            margin: 0;
            color: #333;
            font-size: 16px;
            line-height: 1.75;
        }

        .esg-contact-page .contact-intro-copy .contact-required-note {
            margin-top: 5px;
            color: #c25a1b;
            font-size: 14px;
        }

    .esg-contact-page .contact-required-note strong,
    .esg-contact-page .contact-required {
        color: #d94b35;
    }

    /* ---------- 表單外框 ---------- */
    .esg-contact-page .contact-form-panel {
        width: 100%;
        overflow: hidden;
        border: 1px solid #d8deea;
        border-radius: 4px;
        background: #fff;
    }

    .esg-contact-page .contact-form-heading {
        display: flex;
        min-height: 46px;
        padding: 0 20px;
        align-items: center;
        gap: 10px;
        border-bottom: 1px solid #d8deea;
        background: #f5f7fc;
    }

    .esg-contact-page .contact-form-heading-icon {
        display: block;
        width: 5px;
        height: 18px;
        border-radius: 2px;
        background: #2e3289;
    }

    .esg-contact-page .contact-form-heading h3 {
        margin: 0;
        color: #2e3289;
        font-size: 17px;
        font-weight: 700;
        line-height: 1.4;
    }

    /* ---------- 欄位 ---------- */
    .esg-contact-page .contact-form-body {
        width: 100%;
    }

    .esg-contact-page .contact-field-row {
        display: grid;
        grid-template-columns: 145px minmax(0, 1fr);
        width: 100%;
        min-height: 64px;
        border-bottom: 1px solid #e5e8ef;
    }

        .esg-contact-page .contact-field-row:last-child {
            border-bottom: 0;
        }

        .esg-contact-page .contact-field-row > label {
            display: flex;
            margin: 0;
            padding: 14px 18px;
            align-items: center;
            justify-content: flex-end;
            gap: 4px;
            border-right: 1px solid #e5e8ef;
            background: #fafbfe;
            color: #4d5663;
            font-size: 15px;
            font-weight: 600;
            text-align: right;
            white-space: nowrap;
        }

    .esg-contact-page .contact-field-row-top > label {
        align-items: flex-start;
        padding-top: 18px;
    }

    .esg-contact-page .contact-field-control {
        min-width: 0;
        padding: 12px 20px;
    }

    .esg-contact-page .contact-input,
    .esg-contact-page .contact-textarea {
        display: block;
        width: 100%;
        max-width: 520px;
        margin: 0;
        border: 1px solid #b9c2d0;
        border-radius: 4px;
        background: #fff;
        color: #222;
        font-family: inherit;
        font-size: 15px;
        box-sizing: border-box;
        transition: border-color .18s ease, box-shadow .18s ease;
    }

    .esg-contact-page .contact-input {
        height: 38px;
        padding: 7px 10px;
    }

    .esg-contact-page .contact-textarea {
        min-height: 150px;
        padding: 9px 10px;
        line-height: 1.65;
        resize: vertical;
    }

        .esg-contact-page .contact-input:hover,
        .esg-contact-page .contact-textarea:hover {
            border-color: #8897ac;
        }

        .esg-contact-page .contact-input:focus,
        .esg-contact-page .contact-textarea:focus {
            border-color: #2e3289;
            outline: 0;
            box-shadow: 0 0 0 3px rgba(46, 50, 137, .12);
        }

    .esg-contact-page .contact-inline-field {
        display: flex;
        min-width: 0;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
    }

    .esg-contact-page .contact-input-userno {
        width: 190px;
        max-width: 190px;
        flex: 0 0 190px;
    }

    .esg-contact-page .contact-field-help {
        color: #c25a1b;
        font-size: 13px;
        line-height: 1.55;
    }

    /* ---------- 驗證碼 ---------- */
    .esg-contact-page .contact-captcha-line {
        display: flex;
        min-height: 40px;
        align-items: center;
        gap: 10px;
        flex-wrap: wrap;
    }

    .esg-contact-page .contact-captcha-input {
        width: 120px;
        max-width: 120px;
        flex: 0 0 120px;
        text-align: center;
        letter-spacing: 2px;
    }

    .esg-contact-page .contact-captcha-image {
        display: block;
        width: auto;
        max-width: 150px;
        height: 42px;
        cursor: pointer;
        border: 1px solid #d4d9e3;
        background: #fff;
    }

    .esg-contact-page .contact-captcha-refresh {
        color: #2e3289;
        font-size: 14px;
        text-decoration: underline;
    }

        .esg-contact-page .contact-captcha-refresh:hover,
        .esg-contact-page .contact-captcha-refresh:focus {
            color: #5c64d8;
        }

    .esg-contact-page .contact-captcha-help {
        margin-top: 5px;
    }

    /* ---------- 按鈕 ---------- */
    .esg-contact-page .contact-actions {
        display: flex;
        min-height: 74px;
        padding: 16px 20px;
        align-items: center;
        justify-content: center;
        gap: 12px;
        border-top: 1px solid #d8deea;
        background: #fafbfe;
    }

    .esg-contact-page .contact-button {
        min-width: 118px;
        height: 42px;
        padding: 0 22px;
        border-radius: 5px;
        cursor: pointer;
        font-family: inherit;
        font-size: 15px;
        font-weight: 600;
        transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .1s ease;
    }

    .esg-contact-page .contact-button-primary {
        border: 1px solid #2e3289;
        background: #2e3289;
        color: #fff;
    }

        .esg-contact-page .contact-button-primary:hover,
        .esg-contact-page .contact-button-primary:focus {
            border-color: #454cb5;
            background: #454cb5;
            outline: 0;
        }

    .esg-contact-page .contact-button-secondary {
        border: 1px solid #aeb8c7;
        background: #fff;
        color: #505a68;
    }

        .esg-contact-page .contact-button-secondary:hover,
        .esg-contact-page .contact-button-secondary:focus {
            border-color: #2e3289;
            color: #2e3289;
            outline: 0;
        }

    .esg-contact-page .contact-button:active {
        transform: translateY(1px);
    }

    .esg-contact-page .contact-button:disabled {
        cursor: not-allowed;
        opacity: .65;
    }

/* ---------- RWD ---------- */
@media screen and (max-width: 768px) {
    .esg-contact-page .contact-intro {
        padding: 16px;
        align-items: flex-start;
        gap: 14px;
    }

    .esg-contact-page .contact-intro-image {
        flex-basis: 74px;
    }

        .esg-contact-page .contact-intro-image img {
            width: 74px;
        }

    .esg-contact-page .contact-intro-copy p {
        font-size: 15px;
    }

    .esg-contact-page .contact-field-row {
        display: block;
        min-height: 0;
    }

        .esg-contact-page .contact-field-row > label {
            display: block;
            padding: 11px 14px 3px;
            border-right: 0;
            background: #fff;
            text-align: left;
        }

    .esg-contact-page .contact-field-row-top > label {
        padding-top: 11px;
    }

    .esg-contact-page .contact-field-control {
        padding: 5px 14px 13px;
    }

    .esg-contact-page .contact-input,
    .esg-contact-page .contact-textarea {
        max-width: none;
    }

    .esg-contact-page .contact-input-userno {
        width: 100%;
        max-width: none;
        flex: 1 1 180px;
    }
}

@media screen and (max-width: 500px) {
    .esg-contact-page .contact-intro {
        display: block;
    }

    .esg-contact-page .contact-intro-image {
        display: none;
    }

    .esg-contact-page .contact-form-heading {
        padding: 0 14px;
    }

    .esg-contact-page .contact-captcha-line {
        align-items: flex-start;
    }

    .esg-contact-page .contact-captcha-input {
        width: 104px;
        max-width: 104px;
        flex-basis: 104px;
    }

    .esg-contact-page .contact-actions {
        padding: 14px;
    }

    .esg-contact-page .contact-button {
        min-width: 0;
        flex: 1;
        padding: 0 12px;
    }
}
