.analysis-contact-details { margin-top: 16px; padding-top: 0; border-top: 0; }
.analysis-contact-details h4 { margin: 0 0 4px; color: var(--sky-ink); font-size: 16px; }
.analysis-contact-details > p { margin: 0 0 10px; color: var(--sky-muted); font-size: 13px; line-height: 1.6; }
.analysis-form .analysis-contact-details .form-label { display: flex; align-items: baseline; gap: 4px; }
.analysis-form .analysis-contact-details .form-label small { display: inline; margin: 0; color: var(--sky-muted); font-size: 10px; font-weight: 400; white-space: nowrap; }
.analysis-form .analysis-contact-details .analysis-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; row-gap: 10px; }

/* =========================================================
   ANALYSIS FORM
   ========================================================= */

   .analysis-form {
    width: 100%;
    max-width: 860px;

    margin: 0 auto;
    padding: 36px 40px 32px;

    box-sizing: border-box;

    background: #ffffff;

    border: 1px solid var(--sky-line);
    border-radius: 16px;

    box-shadow:
        0 8px 28px rgba(var(--sky-ink-rgb), 0.06);
}


/* =========================================================
   HEADER
   ========================================================= */

.analysis-form .analysis-form-header {
    margin: 0 0 28px;
    padding: 0 0 22px;

    border-bottom: 1px solid var(--sky-highlight);
}

.analysis-form .analysis-form-header h3 {
    margin: 0 0 7px;
    padding: 0;

    color: var(--sky-ink);

    font-size: 28px;
    font-weight: 700;
    line-height: 1.35;
}

#analysis-start { scroll-margin-top: 110px; }

.analysis-form .analysis-form-header p {
    margin: 0;
    padding: 0;

    color: var(--sky-muted);

    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
}


/* =========================================================
   GRID
   ========================================================= */

.analysis-form .analysis-form-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    column-gap: 28px;
    row-gap: 22px;

    width: 100%;
    min-width: 0;
    max-width: 100%;

    box-sizing: border-box;
}


/* =========================================================
   FIELD
   ========================================================= */

.analysis-form .form-field {
    display: block;

    width: 100%;
    min-width: 0;
    max-width: 100%;

    margin: 0;
    padding: 0;

    box-sizing: border-box;
}

.analysis-form .form-field-full {
    grid-column: 1 / -1;
}


/* =========================================================
   LABEL
   ========================================================= */

.analysis-form .form-label {
    display: block;

    margin: 0 0 8px;
    padding: 0;

    color: var(--sky-ink);

    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}

.analysis-form .optional-text {
    display: inline;

    margin-left: 4px;
    padding: 0;

    color: var(--sky-muted);

    font-size: 11px;
    font-weight: 400;
}


/* =========================================================
   INPUT + SELECT
   ========================================================= */

.analysis-form input[type="text"],
.analysis-form input[type="email"],
.analysis-form input[type="tel"],
.analysis-form input[type="date"],
.analysis-form select {
    display: block;

    width: 100%;
    min-width: 0;
    max-width: 100%;

    height: 50px;

    margin: 0;
    padding: 0 15px;

    box-sizing: border-box;

    border: 1px solid var(--sky-line);
    border-radius: 8px;

    background-color: #ffffff;
    color: var(--sky-ink);

    font-family: inherit;
    font-size: 15px;
    font-weight: 400;
    line-height: normal;

    outline: none;

    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.analysis-form input[data-birth-datepicker] { cursor: pointer; }
.air-datepicker { z-index: 10000; font-family: inherit; }
.air-datepicker-overlay { z-index: 9999; }


/* =========================================================
   SELECT
   ========================================================= */

.analysis-form select {
    padding-left: 15px;
    padding-right: 36px;

    cursor: pointer;
}


/* =========================================================
   PLACEHOLDER
   ========================================================= */

.analysis-form input::placeholder {
    color: var(--sky-border);
    opacity: 1;
}


/* =========================================================
   FOCUS
   ========================================================= */

.analysis-form input[type="text"]:focus,
.analysis-form input[type="email"]:focus,
.analysis-form input[type="tel"]:focus,
.analysis-form input[type="date"]:focus,
.analysis-form select:focus {
    border-color: var(--sky-brand);

    box-shadow:
        0 0 0 3px rgba(var(--sky-brand-rgb), 0.16);
}


/* =========================================================
   DATE INPUT
   SAFARI / iOS FIX
   ========================================================= */

.analysis-form input[type="date"] {
    display: block;

    width: 100%;
    min-width: 0;
    max-width: 100%;

    min-inline-size: 0;

    height: 50px;

    margin: 0;
    padding: 0 12px;

    box-sizing: border-box;

    overflow: hidden;

    background-color: #ffffff;
    color: var(--sky-ink);

    font-family: inherit;
    font-size: 15px;

    /*
     * Desktop date input 高度 50px
     * 令日期文字垂直置中
     */
    line-height: 50px;

    -webkit-appearance: none;
    appearance: none;
}


/*
 * Safari / Chrome WebKit
 * date value 本身有自己嘅內部 element
 */

.analysis-form
input[type="date"]::-webkit-date-and-time-value {
    display: flex;
    align-items: center;

    width: 100%;
    min-height: 50px;

    margin: 0;
    padding: 0;

    box-sizing: border-box;

    text-align: left;
}


/* Calendar icon */

.analysis-form
input[type="date"]::-webkit-calendar-picker-indicator {
    margin: 0;
}


/* =========================================================
   ERRORS
   ========================================================= */

.analysis-form .form-errors {
    margin: 0 0 22px;
    padding: 12px 14px;

    box-sizing: border-box;

    border: 1px solid #e4bcbc;
    border-radius: 8px;

    background: #fff5f5;
    color: #8c4545;

    font-size: 13px;
    line-height: 1.6;
}

.analysis-form .form-errors strong {
    display: block;

    margin: 0 0 4px;
    padding: 0;
}


/* =========================================================
   FOOTER
   ========================================================= */

.analysis-form .analysis-form-footer {
    width: 100%;

    margin: 30px 0 0;
    padding: 0;

    box-sizing: border-box;
}


/* =========================================================
   SUBMIT BUTTON
   ========================================================= */

.analysis-form .analysis-submit {
    display: flex;

    align-items: center;
    justify-content: center;

    width: 100%;
    height: 54px;

    margin: 0;
    padding: 0 20px;

    box-sizing: border-box;

    border: 0;
    border-radius: 9px;

    background: var(--sky-action) !important;
    color: #ffffff !important;

    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;

    text-align: center;
    text-decoration: none;

    cursor: pointer;

    -webkit-appearance: none;
    appearance: none;

    box-shadow:
        0 4px 12px rgba(var(--sky-action-rgb), 0.18);

    transition:
        background 0.15s ease,
        transform 0.1s ease,
        box-shadow 0.15s ease;
}

.analysis-form .analysis-submit:hover {
    background: var(--sky-action-hover) !important;

    box-shadow:
        0 5px 15px rgba(var(--sky-action-rgb), 0.24);
}

.analysis-form .analysis-submit:active {
    transform: translateY(1px);

    box-shadow:
        0 2px 7px rgba(var(--sky-action-rgb), 0.18);
}

.analysis-form .analysis-submit:focus-visible {
    outline: 3px solid rgba(var(--sky-brand-rgb), 0.35);
    outline-offset: 3px;
}


/* =========================================================
   NOTE
   ========================================================= */

.analysis-form .form-note {
    display: block;

    margin: 10px 0 0;
    padding: 0;

    color: var(--sky-muted);

    font-size: 11px;
    font-weight: 400;
    line-height: 1.5;

    text-align: center;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .analysis-form {
        max-width: 100%;

        padding: 30px 28px 28px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    /*
     * 防止 Safari intrinsic width
     * 將 form / DOB 撐出 viewport
     */

    .analysis-form,
    .analysis-form .analysis-form-grid,
    .analysis-form .form-field {
        width: 100%;
        min-width: 0;
        max-width: 100%;

        box-sizing: border-box;
    }


    /* Form */

    .analysis-form {
        margin: 0;

        padding: 22px 18px 20px;

        border-radius: 12px;
    }


    /* Header */

    .analysis-form .analysis-form-header {
        margin: 0 0 21px;
        padding: 0 0 17px;
    }

    .analysis-form .analysis-form-header h3 {
        margin: 0 0 6px;

        font-size: 21px;
        line-height: 1.35;
    }

    .analysis-form .analysis-form-header p {
        font-size: 12px;
        line-height: 1.55;
    }


    /* Grid */

    .analysis-form .analysis-form-grid {
        grid-template-columns:
            minmax(0, 1fr);

        column-gap: 0;
        row-gap: 16px;
    }

    .analysis-form .form-field-full {
        grid-column: auto;
    }


    /* Label */

    .analysis-form .form-label {
        margin: 0 0 6px;

        font-size: 13px;
    }


    /* Normal inputs + selects */

    .analysis-form input[type="text"],
    .analysis-form input[type="email"],
    .analysis-form input[type="tel"],
    .analysis-form select {
        width: 100%;
        min-width: 0;
        max-width: 100%;

        height: 46px;

        /*
         * 16px 防止 iPhone Safari
         * focus 時自動 zoom
         */
        font-size: 16px;

        box-sizing: border-box;
    }


    /* =====================================================
       MOBILE DATE
       ===================================================== */

    .analysis-form input[type="date"] {
        display: block;

        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;

        min-inline-size: 0 !important;

        height: 46px;

        margin: 0;
        padding: 0 12px;

        box-sizing: border-box;

        overflow: hidden;

        font-size: 16px;

        /*
         * Mobile input height = 46px
         */
        line-height: 46px;
    }


    /*
     * iOS Safari 日期文字垂直置中
     */

    .analysis-form
    input[type="date"]::-webkit-date-and-time-value {
        display: flex;
        align-items: center;

        width: 100%;
        min-height: 46px;

        margin: 0;
        padding: 0;

        box-sizing: border-box;

        text-align: left;
    }


    /* Footer */

    .analysis-form .analysis-form-footer {
        margin-top: 22px;
    }


    /* Button */

    .analysis-form .analysis-submit {
        height: 50px;

        font-size: 15px;
    }


    /* Note */

    .analysis-form .form-note {
        margin-top: 9px;

        font-size: 11px;
    }

}
.analysis-form .birth-time-dialog { width: min(760px, calc(100vw - 32px)); max-height: 88vh; max-height: 88dvh; padding: 32px; border: 1px solid var(--line); border-radius: 24px; box-shadow: 0 24px 90px rgba(var(--sky-deep-rgb), 0.251); }
.birth-time-dialog::backdrop { background: rgba(var(--sky-deep-rgb), 0.6); backdrop-filter: blur(5px); }
.birth-time-dialog .birth-time-dismiss { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--soft); color: var(--muted); font-size: 28px; cursor: pointer; }
.birth-time-dialog .birth-time-eyebrow { margin: 0 44px 10px 0; color: var(--accent); font-size: 12px; letter-spacing: .12em; font-weight: 700; }
.analysis-form .birth-time-dialog h2 { margin: 0 32px 10px 0; font-size: clamp(25px, 4vw, 32px); line-height: 1.4; }
.birth-time-dialog .birth-time-intro { margin: 0 0 24px; font-size: 14px; color: var(--muted); }
.birth-time-dialog .birth-time-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.birth-time-options li { display: flex; flex-direction: column; min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.birth-time-options .birth-time-professional { background: var(--sky-highlight); border-color: var(--sky-border); }
.birth-time-tag { color: var(--accent); font-size: 11px; letter-spacing: .08em; font-weight: 700; }
.analysis-form .birth-time-options h3 { margin: 12px 0 0; font-size: 20px; line-height: 1.5; }
.birth-time-options p { margin: 12px 0 22px; font-size: 14px; line-height: 1.8; color: var(--muted); }
.birth-time-options .btn { margin-top: auto; width: 100%; border-radius: 12px; font-size: 13px; padding: 12px 10px; cursor: pointer; text-align: center; }
.birth-time-dialog .birth-time-footnote { margin: 20px 0 0; font-size: 12px; line-height: 1.7; color: var(--muted); }
.birth-time-dialog :is(button, a):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 600px) {
  .analysis-form .birth-time-dialog { padding: 24px 18px; border-radius: 20px; }
  .birth-time-dialog .birth-time-options { grid-template-columns: 1fr; gap: 12px; }
  .birth-time-options li { padding: 18px; }
  .birth-time-options p { margin: 10px 0 16px; }
}
