/* Stage one retains Free's layout and the site's prepared styles. These small
   rules supply native Woo/Fluent/WordPress structure formerly supplied by Pro. */
.al-pro-retired .al-native-location { width: 100%; min-width: 0; }
/* Astra's #content gallery rule otherwise shrinks the nested native gallery
   to 48% of its already-sized Elementor column. */
body.al-pro-retired #content div.product .elementor-widget-woocommerce-product-images.elementor-widget-al-native-slot .woocommerce-product-gallery { width: 100%; float: none; }
.al-pro-retired .elementor-widget-woocommerce-product-images .flex-control-thumbs { display: flex; flex-wrap: wrap; list-style: none; padding: 0; }
.al-pro-retired .elementor-widget-woocommerce-product-images .flex-control-thumbs li { width: 25%; }
.al-pro-retired .elementor-widget-woocommerce-product-add-to-cart .cart { margin: 0; }
.al-pro-retired .e-atc-qty-button-holder { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
.al-pro-retired .elementor-widget-woocommerce-product-related .related > h2 { display: none; }
.al-pro-retired .elementor-widget-woocommerce-product-related ul.products.elementor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grid-row-gap, 1rem) var(--grid-column-gap, 1rem); }
.al-pro-retired .elementor-widget-woocommerce-product-related ul.products.elementor-grid::before,
.al-pro-retired .elementor-widget-woocommerce-product-related ul.products.elementor-grid::after { display: none; }
.al-pro-retired .elementor-widget-woocommerce-product-related ul.products li.product { width: auto; float: none; margin: 0; }
body.al-pro-retired .elementor-widget-form.elementor-widget-al-native-slot { width: 100%; }
.al-pro-retired .al-native-contact form > fieldset { display: flex; flex-direction: column; gap: 18px; }
.al-pro-retired .al-native-contact form > fieldset > legend { position: absolute; }
.al-pro-retired .al-native-contact .ff-el-group { margin-bottom: 0; }
.al-pro-retired .al-native-contact .ff-el-form-control { width: 100%; }
.al-pro-retired .al-native-contact .elementor-field-textual { font-family: var(--e-global-typography-text-font-family, inherit); }
.al-pro-retired .elementor-button-align-center .al-native-contact .ff_submit_btn_wrapper { text-align: center; }
/* Fluent v3 CAPTCHA has no visible row. Preserve the authored contact gap:
   the former 1px CAPTCHA row + 18px gutter + 8px button-row margin. */
body.al-pro-retired .al-native-contact form .ff_submit_btn_wrapper { margin-top: 27px; }
body.al-pro-retired .al-native-contact form .ff-el-group .ff-el-input--label { display: flex; flex-direction: column; margin-bottom: 0; }
body.al-pro-retired .al-native-contact form .ff-el-input--label.ff-el-is-required label::after { content: none; }
body.al-pro-retired .al-native-contact select.ff-el-form-control {
    -webkit-appearance: none !important;
    appearance: none !important;
    padding-right: 40px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f172a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
    background-position: right 14px center !important;
    background-repeat: no-repeat !important;
    background-size: 16px 16px !important;
}
.al-pro-retired .al-native-contact .ff-el-is-error .ff-el-form-control { border-color: #b42318; }
/* Keep Google's existing badge fully visible beside the form's submission
   controls. The widget/token implementation remains Google's, not a replica. */
.al-native-contact .al-contact-captcha-slot { min-width: 0; min-inline-size: 0; }
.al-native-contact .al-contact-captcha-slot:empty { display: none; }
body.page-id-401.al-pro-retired .al-contact-captcha-slot .grecaptcha-badge {
    position: relative !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateX(-50%);
    transition: none !important;
    margin-block: 4px;
}
@media (max-width: 767px) {
    .al-pro-retired .elementor-widget-woocommerce-product-related ul.products.elementor-grid { grid-template-columns: minmax(0, 1fr); }
    /* One page gutter, rather than Elementor + HTML section + widget gutters. */
    body.page-id-401.al-pro-retired .elementor-401 > .elementor-element.e-con { padding-inline: 16px; }
    body.page-id-401.al-pro-retired .elementor-401 .al-contact-page,
    body.page-id-401.al-pro-retired .elementor-401 .al-contact-form-intro,
    body.page-id-401.al-pro-retired .elementor-401 .elementor-widget-form { padding-inline: 0; }
    body.page-id-401.al-pro-retired .al-contact-hero,
    body.page-id-401.al-pro-retired .al-contact-cards { grid-template-columns: minmax(0, 1fr); }
    body.page-id-401.al-pro-retired .al-contact-hero > * { min-width: 0; }
    body.page-id-401.al-pro-retired .elementor-401 .al-contact-page h1 {
        font-size: clamp(30px, 8.2vw, 40px);
        overflow-wrap: anywhere;
    }
    body.page-id-401.al-pro-retired .elementor-401 .al-native-contact form { padding: 16px; }
    body.page-id-401.al-pro-retired .elementor-401 .elementor-widget-form .al-native-contact form > fieldset {
        min-inline-size: 0;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0;
    }
    body.page-id-401.al-pro-retired .al-native-contact .ff-el-group { padding-inline: 0; }
}
