/* Arvsportalen Form UI – design tokens. Scoped values används i #gform_wrapper_21. */
#gform_wrapper_21 {
    --ap-green-700: #0d5f49;
    --ap-green-650: #116b52;
    --ap-green-100: #edf6f2;
    --ap-green-050: #f6faf8;

    --ap-ink: #1f2925;
    --ap-text: #34413b;
    --ap-muted: #66736d;
    --ap-border: #b8c5bf;
    --ap-border-soft: #e1e8e4;
    --ap-surface: #ffffff;
    --ap-surface-soft: #f7f9f8;

    --ap-warning-bg: #fff9ec;
    --ap-warning-border: #e7c66a;
    --ap-warning-text: #574315;

    --ap-error: #b42318;
    --ap-error-bg: #fff7f6;
    --ap-error-border: #f0b8b3;

    --ap-radius-sm: 7px;
    --ap-radius-md: 10px;
    --ap-radius-lg: 13px;

    --ap-shadow-focus: 0 0 0 3px rgba(17, 107, 82, 0.13);
    --ap-shadow-soft: 0 1px 2px rgba(17, 35, 28, 0.035);

    --ap-space-1: 6px;
    --ap-space-2: 10px;
    --ap-space-3: 16px;
    --ap-space-4: 24px;
    --ap-space-5: 34px;
    --ap-space-6: 48px;
}
/* Baseline – medvetet scoped till Enskilt testamente (form 21). */
#gform_wrapper_21 {
    color: var(--ap-text);
}

#gform_wrapper_21 .gform_fields {
    row-gap: 30px;
}

#gform_wrapper_21 .gfield_label,
#gform_wrapper_21 .gform-field-label,
#gform_wrapper_21 legend.gfield_label {
    color: var(--ap-ink);
    font-size: 0.94rem;
    font-weight: 675;
    line-height: 1.35;
}

#gform_wrapper_21 .gfield_required,
#gform_wrapper_21 .gfield_required_text {
    color: #9e3b32;
    font-size: 0.82em;
    font-weight: 600;
}

#gform_wrapper_21 .gfield_description,
#gform_wrapper_21 .ginput_complex label,
#gform_wrapper_21 .gform-field-label--type-sub {
    color: var(--ap-muted);
    font-size: 0.82rem;
    line-height: 1.5;
}

#gform_wrapper_21 input[type="text"],
#gform_wrapper_21 input[type="email"],
#gform_wrapper_21 input[type="tel"],
#gform_wrapper_21 input[type="number"],
#gform_wrapper_21 input[type="date"],
#gform_wrapper_21 input[type="url"],
#gform_wrapper_21 select,
#gform_wrapper_21 textarea {
    min-height: 46px;
    border: 1px solid var(--ap-border) !important;
    border-radius: var(--ap-radius-sm) !important;
    background: var(--ap-surface) !important;
    color: var(--ap-ink);
    box-shadow: var(--ap-shadow-soft);
    padding: 9px 12px !important;
    transition: border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
}

#gform_wrapper_21 textarea {
    min-height: 120px;
}

#gform_wrapper_21 input[type="text"]:hover,
#gform_wrapper_21 input[type="email"]:hover,
#gform_wrapper_21 input[type="tel"]:hover,
#gform_wrapper_21 input[type="number"]:hover,
#gform_wrapper_21 input[type="date"]:hover,
#gform_wrapper_21 input[type="url"]:hover,
#gform_wrapper_21 select:hover,
#gform_wrapper_21 textarea:hover {
    border-color: #899a92 !important;
}

#gform_wrapper_21 input[type="text"]:focus,
#gform_wrapper_21 input[type="email"]:focus,
#gform_wrapper_21 input[type="tel"]:focus,
#gform_wrapper_21 input[type="number"]:focus,
#gform_wrapper_21 input[type="date"]:focus,
#gform_wrapper_21 input[type="url"]:focus,
#gform_wrapper_21 select:focus,
#gform_wrapper_21 textarea:focus {
    outline: none !important;
    border-color: var(--ap-green-650) !important;
    box-shadow: var(--ap-shadow-focus) !important;
}

/* Progress */
#gform_wrapper_21 .gf_progressbar_wrapper {
    margin-bottom: 34px;
}

#gform_wrapper_21 .gf_progressbar_title {
    color: var(--ap-muted);
    font-size: 0.86rem;
    font-weight: 650;
    margin-bottom: 8px;
}

#gform_wrapper_21 .gf_progressbar {
    height: 8px !important;
    background: #e7ece9 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    overflow: hidden;
}

#gform_wrapper_21 .gf_progressbar_percentage {
    height: 100% !important;
    background: var(--ap-green-650) !important;
    border-radius: 999px !important;
    box-shadow: none !important;
}

#gform_wrapper_21 .gf_progressbar_percentage span {
    display: none !important;
}

/* Navigation */
#gform_wrapper_21 .gform_page_footer,
#gform_wrapper_21 .gform_footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding-top: 28px;
    margin-top: 14px;
    border-top: 1px solid var(--ap-border-soft);
}

#gform_wrapper_21 .gform_next_button,
#gform_wrapper_21 .gform_button,
#gform_wrapper_21 input[type="submit"] {
    min-height: 45px !important;
    padding: 10px 20px !important;
    border: 1px solid var(--ap-green-700) !important;
    border-radius: var(--ap-radius-sm) !important;
    background: var(--ap-green-700) !important;
    color: #fff !important;
    font-size: 0.94rem !important;
    font-weight: 675 !important;
    line-height: 1.2 !important;
    box-shadow: none !important;
    transition: background-color 140ms ease, transform 80ms ease, box-shadow 140ms ease;
}

#gform_wrapper_21 .gform_next_button:hover,
#gform_wrapper_21 .gform_button:hover,
#gform_wrapper_21 input[type="submit"]:hover {
    background: #0a513f !important;
}

#gform_wrapper_21 .gform_previous_button {
    min-height: 45px !important;
    padding: 10px 18px !important;
    border: 1px solid var(--ap-green-650) !important;
    border-radius: var(--ap-radius-sm) !important;
    background: #fff !important;
    color: var(--ap-green-700) !important;
    font-size: 0.94rem !important;
    font-weight: 675 !important;
    box-shadow: none !important;
}

#gform_wrapper_21 .gform_previous_button:hover {
    background: var(--ap-green-050) !important;
}

#gform_wrapper_21 .gform_next_button:focus-visible,
#gform_wrapper_21 .gform_previous_button:focus-visible,
#gform_wrapper_21 .gform_button:focus-visible,
#gform_wrapper_21 input[type="submit"]:focus-visible {
    outline: none !important;
    box-shadow: var(--ap-shadow-focus) !important;
}

/* Validation */
#gform_wrapper_21 .gfield_error {
    padding: 16px !important;
    border: 1px solid var(--ap-error-border) !important;
    border-radius: var(--ap-radius-md);
    background: var(--ap-error-bg) !important;
}

#gform_wrapper_21 .gfield_error .gfield_label,
#gform_wrapper_21 .gfield_error .gform-field-label {
    color: #7a271f;
}

#gform_wrapper_21 .gfield_error input:not([type="radio"]):not([type="checkbox"]),
#gform_wrapper_21 .gfield_error select,
#gform_wrapper_21 .gfield_error textarea {
    border-color: var(--ap-error) !important;
}

#gform_wrapper_21 .validation_message,
#gform_wrapper_21 .gfield_validation_message {
    color: var(--ap-error) !important;
    background: transparent !important;
    border: 0 !important;
    padding: 4px 0 0 !important;
    font-weight: 600;
}
/* Sektioner – typografi och luft, utan dekorativa linjer eller etikettkänsla. */
#gform_wrapper_21 .ap-section,
#gform_wrapper_21 .ap-section.gsection {
    margin-top: 10px;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

#gform_wrapper_21 .ap-section .gsection_title {
    color: var(--ap-ink);
    font-size: clamp(1.2rem, 1.1rem + 0.3vw, 1.42rem);
    line-height: 1.3;
    font-weight: 700;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-decoration: none !important;
}

#gform_wrapper_21 .ap-section--major {
    margin-bottom: 2px;
}

#gform_wrapper_21 .ap-subsection {
    margin-top: 28px;
    padding: 0 !important;
    border: 0 !important;
}

#gform_wrapper_21 .ap-subsection .gsection_title {
    font-size: 1.12rem;
}

/* HTML-paneler. Många befintliga HTML-fält har inline-CSS; !important används bara här för att centralisera UI:t. */
#gform_wrapper_21 .ap-panel > div,
#gform_wrapper_21 .ap-panel > .gfield_html,
#gform_wrapper_21 .ap-panel .gfield_html > div {
    padding: 20px 22px !important;
    margin: 0 !important;
    border-radius: var(--ap-radius-md) !important;
    border: 1px solid var(--ap-border-soft) !important;
    background: var(--ap-surface-soft) !important;
    color: var(--ap-text) !important;
    box-shadow: none !important;
}

#gform_wrapper_21 .ap-panel p,
#gform_wrapper_21 .ap-panel li {
    line-height: 1.62;
}

#gform_wrapper_21 .ap-panel h2,
#gform_wrapper_21 .ap-panel h3,
#gform_wrapper_21 .ap-panel h4,
#gform_wrapper_21 .ap-panel strong {
    color: var(--ap-ink);
}

#gform_wrapper_21 .ap-panel h2 {
    font-size: 1.42rem !important;
    line-height: 1.3 !important;
}

#gform_wrapper_21 .ap-panel h3 {
    font-size: 1.05rem !important;
    line-height: 1.35 !important;
}

#gform_wrapper_21 .ap-panel--intro > div,
#gform_wrapper_21 .ap-panel--intro > .gfield_html,
#gform_wrapper_21 .ap-panel--intro .gfield_html > div {
    border-left: 4px solid var(--ap-green-650) !important;
    background: #f8faf9 !important;
}

#gform_wrapper_21 .ap-panel--info > div,
#gform_wrapper_21 .ap-panel--info > .gfield_html,
#gform_wrapper_21 .ap-panel--info .gfield_html > div {
    background: var(--ap-green-050) !important;
    border-color: #dce8e2 !important;
}

#gform_wrapper_21 .ap-panel--warning > div,
#gform_wrapper_21 .ap-panel--warning > .gfield_html,
#gform_wrapper_21 .ap-panel--warning .gfield_html > div {
    background: var(--ap-warning-bg) !important;
    border-color: var(--ap-warning-border) !important;
    color: var(--ap-warning-text) !important;
}

#gform_wrapper_21 .ap-panel--warning h2,
#gform_wrapper_21 .ap-panel--warning h3,
#gform_wrapper_21 .ap-panel--warning h4,
#gform_wrapper_21 .ap-panel--warning strong {
    color: #4b3b12 !important;
}

#gform_wrapper_21 .ap-panel--review > div,
#gform_wrapper_21 .ap-panel--review > .gfield_html,
#gform_wrapper_21 .ap-panel--review .gfield_html > div {
    background: #f7faf8 !important;
    border-left: 4px solid var(--ap-green-650) !important;
}

/* Vanliga val */
#gform_wrapper_21 .ap-choice-compact .gfield_radio,
#gform_wrapper_21 .ap-choice-compact .gfield_checkbox {
    display: grid;
    gap: 8px;
}

#gform_wrapper_21 .ap-choice-compact .gchoice {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

#gform_wrapper_21 .ap-choice-compact input[type="radio"],
#gform_wrapper_21 .ap-choice-compact input[type="checkbox"] {
    margin-top: 2px;
    width: 18px;
    height: 18px;
    accent-color: var(--ap-green-650);
}

#gform_wrapper_21 .ap-choice-compact .gchoice label {
    line-height: 1.48;
    max-width: none;
}

/* Valkort */
#gform_wrapper_21 .ap-choice-cards .ginput_container_radio,
#gform_wrapper_21 .ap-choice-cards .ginput_container_checkbox {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
}

#gform_wrapper_21 .ap-choice-cards .gfield_radio,
#gform_wrapper_21 .ap-choice-cards .gfield_checkbox {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 12px !important;
}

/* Bestämda varianter får konsekventa, lika breda valkort. */
#gform_wrapper_21 .ap-choice-cards--two .gfield_radio,
#gform_wrapper_21 .ap-choice-cards--two .gfield_checkbox,
#gform_wrapper_21 .ap-choice-cards--multi .gfield_radio,
#gform_wrapper_21 .ap-choice-cards--multi .gfield_checkbox {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

#gform_wrapper_21 .ap-choice-cards--three .gfield_radio,
#gform_wrapper_21 .ap-choice-cards--three .gfield_checkbox {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

#gform_wrapper_21 .ap-choice-cards .gchoice {
    position: relative;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    align-self: stretch !important;
}

#gform_wrapper_21 .ap-choice-cards .gchoice input[type="radio"],
#gform_wrapper_21 .ap-choice-cards .gchoice input[type="checkbox"] {
    position: absolute;
    top: 17px;
    left: 16px;
    width: 19px;
    height: 19px;
    margin: 0;
    z-index: 2;
    accent-color: var(--ap-green-650);
}

#gform_wrapper_21 .ap-choice-cards .gchoice label {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 58px;
    height: 100% !important;
    margin: 0 !important;
    padding: 15px 16px 15px 46px !important;
    border: 1px solid #b3c0ba;
    border-radius: var(--ap-radius-md);
    background: var(--ap-surface);
    color: var(--ap-ink);
    line-height: 1.45;
    cursor: pointer;
    box-shadow: var(--ap-shadow-soft);
    transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease, transform 80ms ease;
}

#gform_wrapper_21 .ap-choice-cards .gchoice label:hover {
    border-color: #879990;
    background: #fbfcfb;
}

#gform_wrapper_21 .ap-choice-cards .gchoice input:checked + label {
    border-color: var(--ap-green-650);
    background: var(--ap-green-100);
    box-shadow: 0 0 0 1px var(--ap-green-650);
}

#gform_wrapper_21 .ap-choice-cards .gchoice input:focus-visible + label {
    outline: none;
    box-shadow: var(--ap-shadow-focus);
}

/* Bekräftelse/samtycke */
#gform_wrapper_21 .ap-acknowledgement,
#gform_wrapper_21 .ap-consent {
    padding: 14px 16px;
    border: 1px solid var(--ap-border-soft);
    border-radius: var(--ap-radius-md);
    background: #fbfcfb;
}

#gform_wrapper_21 .ap-acknowledgement .gchoice,
#gform_wrapper_21 .ap-consent .gchoice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

#gform_wrapper_21 .ap-acknowledgement input[type="checkbox"],
#gform_wrapper_21 .ap-consent input[type="checkbox"] {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    margin-top: 1px;
    accent-color: var(--ap-green-650);
}

#gform_wrapper_21 .ap-acknowledgement .gchoice label,
#gform_wrapper_21 .ap-consent .gchoice label {
    max-width: none;
    line-height: 1.5;
}

/* List / datagrid */
#gform_wrapper_21 .ap-data-grid {
    --gf-field-list-btn-size: 32px;
    --gf-field-list-btn-radius: 8px;
    --gf-field-list-btns-gap: 6px;
}

#gform_wrapper_21 .ap-data-grid .gfield_label,
#gform_wrapper_21 .ap-data-grid legend.gfield_label {
    font-size: 1rem;
    margin-bottom: 10px;
}

#gform_wrapper_21 .ap-data-grid .ginput_container_list {
    padding: 14px;
    border: 1px solid var(--ap-border-soft);
    border-radius: var(--ap-radius-md);
    background: #fbfcfb;
    overflow-x: auto;
}

#gform_wrapper_21 .ap-data-grid .gfield_list_header {
    padding: 0 0 8px;
    border-bottom: 1px solid var(--ap-border-soft);
    margin-bottom: 8px;
}

#gform_wrapper_21 .ap-data-grid .gfield_header_item {
    color: var(--ap-muted) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    line-height: 1.3;
}

#gform_wrapper_21 .ap-data-grid .gfield_list_group {
    padding: 8px 0;
    border-bottom: 1px solid var(--ap-border-soft);
    align-items: flex-end;
}

#gform_wrapper_21 .ap-data-grid .gfield_list_group:last-child {
    border-bottom: 0;
}

#gform_wrapper_21 .ap-data-grid .gfield_list_group_item input,
#gform_wrapper_21 .ap-data-grid .gfield_list_group_item select,
#gform_wrapper_21 .ap-data-grid .gfield_list_group_item textarea {
    min-height: 40px !important;
    padding: 7px 9px !important;
    font-size: 0.92rem !important;
}

#gform_wrapper_21 .ap-data-grid .gfield_list_icons {
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    gap: 6px;
    padding-bottom: 4px;
}

#gform_wrapper_21 .ap-data-grid .add_list_item,
#gform_wrapper_21 .ap-data-grid .delete_list_item,
#gform_wrapper_21 .ap-data-grid .remove_list_item {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    border-radius: 8px !important;
    border: 1px solid #b3c0ba !important;
    background-color: #fff !important;
    box-shadow: none !important;
    transition: border-color 140ms ease, background-color 140ms ease;
}

#gform_wrapper_21 .ap-data-grid .add_list_item:hover,
#gform_wrapper_21 .ap-data-grid .delete_list_item:hover,
#gform_wrapper_21 .ap-data-grid .remove_list_item:hover {
    border-color: var(--ap-green-650) !important;
    background-color: var(--ap-green-050) !important;
}

#gform_wrapper_21 .ap-data-grid .add_list_item:focus-visible,
#gform_wrapper_21 .ap-data-grid .delete_list_item:focus-visible,
#gform_wrapper_21 .ap-data-grid .remove_list_item:focus-visible {
    outline: none !important;
    border-color: var(--ap-green-650) !important;
    box-shadow: var(--ap-shadow-focus) !important;
}

#gform_wrapper_21 .ap-data-grid .add_list_item,
#gform_wrapper_21 .ap-data-grid .delete_list_item,
#gform_wrapper_21 .ap-data-grid .remove_list_item {
    background-size: 14px 14px !important;
}

#gform_wrapper_21 .ap-data-grid .gfield_description {
    margin-top: 10px;
    font-size: 0.86rem;
}

/* 0.2.2 – hårdlås symmetrin direkt på de tre referensfälten.
   Gravity Forms/temat kan annars låta choice-elementen krympa efter textinnehållet. */
#gform_wrapper_21 #field_21_24 .ginput_container,
#gform_wrapper_21 #field_21_54 .ginput_container,
#gform_wrapper_21 #field_21_71 .ginput_container {
    width: 100% !important;
    max-width: none !important;
}

#gform_wrapper_21 #field_21_24 .gfield_radio {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
}

#gform_wrapper_21 #field_21_54 .gfield_radio {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
}

#gform_wrapper_21 #field_21_71 .gfield_checkbox {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: none !important;
    gap: 12px !important;
}

#gform_wrapper_21 #field_21_24 .gchoice,
#gform_wrapper_21 #field_21_54 .gchoice,
#gform_wrapper_21 #field_21_71 .gchoice {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    flex: none !important;
    grid-column: auto !important;
    box-sizing: border-box !important;
}

#gform_wrapper_21 #field_21_24 .gchoice label,
#gform_wrapper_21 #field_21_54 .gchoice label,
#gform_wrapper_21 #field_21_71 .gchoice label {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    box-sizing: border-box !important;
}

/* Mellansteg: Föregående och Nästa får samma visuella mått. */
#gform_wrapper_21 .gform_page_footer .gform_previous_button,
#gform_wrapper_21 .gform_page_footer .gform_next_button {
    width: 112px !important;
    min-width: 112px !important;
    justify-content: center !important;
    text-align: center !important;
}
@media (max-width: 760px) {
    #gform_wrapper_21 .gform_fields {
        row-gap: 22px;
    }

    #gform_wrapper_21 .ap-panel > div,
    #gform_wrapper_21 .ap-panel > .gfield_html,
    #gform_wrapper_21 .ap-panel .gfield_html > div {
        padding: 17px 16px !important;
    }

    #gform_wrapper_21 .ap-choice-cards .gfield_radio,
    #gform_wrapper_21 .ap-choice-cards .gfield_checkbox,
    #gform_wrapper_21 .ap-choice-cards--two .gfield_radio,
    #gform_wrapper_21 .ap-choice-cards--two .gfield_checkbox,
    #gform_wrapper_21 .ap-choice-cards--multi .gfield_radio,
    #gform_wrapper_21 .ap-choice-cards--multi .gfield_checkbox,
    #gform_wrapper_21 .ap-choice-cards--three .gfield_radio,
    #gform_wrapper_21 .ap-choice-cards--three .gfield_checkbox {
        grid-template-columns: 1fr;
    }

    #gform_wrapper_21 .gform_page_footer,
    #gform_wrapper_21 .gform_footer {
        gap: 8px;
    }

    #gform_wrapper_21 .gform_next_button,
    #gform_wrapper_21 .gform_previous_button,
    #gform_wrapper_21 .gform_button,
    #gform_wrapper_21 input[type="submit"] {
        min-height: 46px !important;
    }

    /* Orbital-listfält blir kort per rad i stället för ett hoptryckt kalkylblad. */
    #gform_wrapper_21 .ap-data-grid .ginput_container_list {
        padding: 0;
        border: 0;
        background: transparent;
        overflow: visible;
    }

    #gform_wrapper_21 .ap-data-grid .gfield_list_header {
        display: none !important;
    }

    #gform_wrapper_21 .ap-data-grid .gfield_list_group {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 14px !important;
        margin-bottom: 12px !important;
        border: 1px solid var(--ap-border-soft) !important;
        border-radius: var(--ap-radius-md);
        background: #fbfcfb;
    }

    #gform_wrapper_21 .ap-data-grid .gfield_list_group_item,
    #gform_wrapper_21 .ap-data-grid .gfield_list_cell,
    #gform_wrapper_21 .ap-data-grid .gform-grid-col {
        width: 100% !important;
        max-width: none !important;
        flex: 0 0 100% !important;
    }

    #gform_wrapper_21 .ap-data-grid .gfield_list_group_item::before {
        display: block;
        margin-bottom: 5px;
        color: var(--ap-muted);
        font-size: 0.78rem;
        font-weight: 700;
        line-height: 1.3;
    }

    #gform_wrapper_21 .ap-data-grid .gfield_list_icons {
        display: flex !important;
        width: auto !important;
        flex: 0 0 auto !important;
        justify-content: flex-start;
        gap: 8px;
        padding-top: 2px;
    }
}

@media (max-width: 480px) {
    #gform_wrapper_21 input[type="text"],
    #gform_wrapper_21 input[type="email"],
    #gform_wrapper_21 input[type="tel"],
    #gform_wrapper_21 input[type="number"],
    #gform_wrapper_21 input[type="date"],
    #gform_wrapper_21 input[type="url"],
    #gform_wrapper_21 select,
    #gform_wrapper_21 textarea {
        min-height: 48px;
        font-size: 16px !important; /* undviker iOS-zoom */
    }

    #gform_wrapper_21 .gform_page_footer,
    #gform_wrapper_21 .gform_footer {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    #gform_wrapper_21 .gform_next_button,
    #gform_wrapper_21 .gform_previous_button,
    #gform_wrapper_21 .gform_button,
    #gform_wrapper_21 input[type="submit"] {
        width: 100% !important;
        margin: 0 !important;
    }
}

/* 0.2.2 – mobil ska alltid vinna över desktopens hårdlåsta choice-grid. */
@media (max-width: 760px) {
    #gform_wrapper_21 #field_21_24 .gfield_radio,
    #gform_wrapper_21 #field_21_54 .gfield_radio,
    #gform_wrapper_21 #field_21_71 .gfield_checkbox {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 480px) {
    #gform_wrapper_21 .gform_page_footer .gform_previous_button,
    #gform_wrapper_21 .gform_page_footer .gform_next_button {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* =========================================================
   0.2.3 CRITICAL LAYOUT GUARD
   Intentionally duplicated at the END of a versioned file.
   This defeats stale per-file/CDN caches and wins against
   Gravity Forms/theme intrinsic sizing rules.
   ========================================================= */

/* All semantic choice-card groups must own the full row. */
#gform_wrapper_21 .ap-choice-cards,
#gform_wrapper_21 .ap-choice-cards .ginput_container,
#gform_wrapper_21 .ap-choice-cards .ginput_container_radio,
#gform_wrapper_21 .ap-choice-cards .ginput_container_checkbox,
#gform_wrapper_21 .ap-choice-cards .gfield_radio,
#gform_wrapper_21 .ap-choice-cards .gfield_checkbox {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Exact equal-width layouts. */
#gform_wrapper_21 .ap-choice-cards--two .gfield_radio,
#gform_wrapper_21 .ap-choice-cards--two .gfield_checkbox,
#gform_wrapper_21 .ap-choice-cards--multi .gfield_radio,
#gform_wrapper_21 .ap-choice-cards--multi .gfield_checkbox,
#gform_wrapper_21 #field_21_24 .gfield_radio,
#gform_wrapper_21 #field_21_71 .gfield_checkbox {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

#gform_wrapper_21 .ap-choice-cards--three .gfield_radio,
#gform_wrapper_21 .ap-choice-cards--three .gfield_checkbox,
#gform_wrapper_21 #field_21_54 .gfield_radio {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-auto-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: stretch !important;
}

/* GF sometimes gives the individual choice/label intrinsic widths. Kill them. */
#gform_wrapper_21 .ap-choice-cards .gchoice,
#gform_wrapper_21 .ap-choice-cards .gchoice label {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

#gform_wrapper_21 .ap-choice-cards .gchoice {
    display: block !important;
    flex: 0 0 auto !important;
}

#gform_wrapper_21 .ap-choice-cards .gchoice label {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
}

/* Page navigation – visually equal previous/next buttons on desktop. */
#gform_wrapper_21 .gform_page_footer .gform_previous_button,
#gform_wrapper_21 .gform_page_footer .gform_next_button {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    box-sizing: border-box !important;
    text-align: center !important;
}

@media (max-width: 760px) {
    #gform_wrapper_21 .ap-choice-cards--two .gfield_radio,
    #gform_wrapper_21 .ap-choice-cards--two .gfield_checkbox,
    #gform_wrapper_21 .ap-choice-cards--multi .gfield_radio,
    #gform_wrapper_21 .ap-choice-cards--multi .gfield_checkbox,
    #gform_wrapper_21 .ap-choice-cards--three .gfield_radio,
    #gform_wrapper_21 .ap-choice-cards--three .gfield_checkbox,
    #gform_wrapper_21 #field_21_24 .gfield_radio,
    #gform_wrapper_21 #field_21_54 .gfield_radio,
    #gform_wrapper_21 #field_21_71 .gfield_checkbox {
        grid-template-columns: 1fr !important;
    }
}

/* =========================================================
   0.2.4 PAGE NAVIGATION LOCK
   Directly targets Gravity Forms' generated button IDs as well
   as classes. JS applies the same values inline as a fallback.
   ========================================================= */
#gform_wrapper_21 .gform_page_footer input[id^="gform_previous_button_21"],
#gform_wrapper_21 .gform_page_footer input[id^="gform_next_button_21"],
#gform_wrapper_21 .gform_page_footer button[id^="gform_previous_button_21"],
#gform_wrapper_21 .gform_page_footer button[id^="gform_next_button_21"],
#gform_wrapper_21 .gform_page_footer input.gform_previous_button,
#gform_wrapper_21 .gform_page_footer input.gform_next_button,
#gform_wrapper_21 .gform_page_footer button.gform_previous_button,
#gform_wrapper_21 .gform_page_footer button.gform_next_button {
    width: 112px !important;
    min-width: 112px !important;
    max-width: 112px !important;
    inline-size: 112px !important;
    flex: 0 0 112px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

@media (max-width: 480px) {
    #gform_wrapper_21 .gform_page_footer input[id^="gform_previous_button_21"],
    #gform_wrapper_21 .gform_page_footer input[id^="gform_next_button_21"],
    #gform_wrapper_21 .gform_page_footer button[id^="gform_previous_button_21"],
    #gform_wrapper_21 .gform_page_footer button[id^="gform_next_button_21"] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        inline-size: 100% !important;
        flex: 1 1 auto !important;
    }
}


/* =========================================================
   0.2.5 NAVIGATION TEXT ALIGNMENT
   GF uses input controls for page navigation. Inputs are replaced
   elements, so flex centering is not dependable across browsers.
   Normalize both controls with identical fixed height, padding,
   line-height and native appearance reset.
   ========================================================= */
#gform_wrapper_21 .gform_page_footer input.gform_previous_button,
#gform_wrapper_21 .gform_page_footer input.gform_next_button,
#gform_wrapper_21 .gform_page_footer input[id^="gform_previous_button_21"],
#gform_wrapper_21 .gform_page_footer input[id^="gform_next_button_21"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-block !important;
    height: 45px !important;
    min-height: 45px !important;
    max-height: 45px !important;
    padding: 0 16px !important;
    line-height: 43px !important;
    font-family: inherit !important;
    font-size: 0.94rem !important;
    font-weight: 675 !important;
    vertical-align: middle !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* If GF outputs <button> instead of <input>, center its content with flex. */
#gform_wrapper_21 .gform_page_footer button.gform_previous_button,
#gform_wrapper_21 .gform_page_footer button.gform_next_button,
#gform_wrapper_21 .gform_page_footer button[id^="gform_previous_button_21"],
#gform_wrapper_21 .gform_page_footer button[id^="gform_next_button_21"] {
    height: 45px !important;
    min-height: 45px !important;
    max-height: 45px !important;
    padding: 0 16px !important;
    line-height: 1 !important;
    font-family: inherit !important;
    font-size: 0.94rem !important;
    font-weight: 675 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

@media (max-width: 480px) {
    #gform_wrapper_21 .gform_page_footer input.gform_previous_button,
    #gform_wrapper_21 .gform_page_footer input.gform_next_button,
    #gform_wrapper_21 .gform_page_footer button.gform_previous_button,
    #gform_wrapper_21 .gform_page_footer button.gform_next_button {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

/* =========================================================
   0.4.6 CHOICE TEXT / CONTROL ALIGNMENT
   Radio/checkbox ska ligga i höjd med första textraden även när
   ett syskonkort innehåller fler textrader. Flex-centrering gjorde
   annars enkelradiga labels vertikalt centrerade medan kontrollen
   låg kvar nära överkanten.
   ========================================================= */
#gform_wrapper_21 .ap-choice-cards .gchoice label {
    display: block !important;
    align-items: initial !important;
    justify-content: initial !important;
    padding-top: 15px !important;
    padding-bottom: 15px !important;
}

#gform_wrapper_21 .ap-choice-cards .gchoice input[type="radio"],
#gform_wrapper_21 .ap-choice-cards .gchoice input[type="checkbox"] {
    top: 16px !important;
}
