/* Shared useful widths for native Voucher and Minha Conta.
 * Widths are caps, not forced viewport sizes. Smaller parents remain respected.
 * Landscape/portrait describes the viewport, not a guessed device model.
 */
.axp-public-voucher,
.axionpass-account.axp-client-form {
    --axp-customer-content-max:1280px;
    --axp-customer-page-gutter:16px;
    box-sizing:border-box;
    width:min(100%, calc(100vw - 2 * var(--axp-customer-page-gutter)));
    max-width:var(--axp-customer-content-max);
    min-width:0;
    height:auto;
    min-height:0;
    align-self:start;
    flex-grow:0;
    margin-inline:auto;
}
/* Native controls own their interaction colors. Only palette/decoration is
 * protected against theme/Elementor states; geometry stays in each component.
 * No global button reset and no dependency on internal panel tokens.
 */
.axp-public-voucher,
.axionpass-account.axp-client-form {
    --axp-control-bg:#fff;
    --axp-control-color:#196747;
    --axp-control-border:#dce5e2;
    --axp-control-hover-bg:#edf6f0;
    --axp-control-hover-color:#165b3d;
    --axp-control-hover-border:#9fc3ac;
    --axp-control-active-bg:#dcefe3;
    --axp-control-focus:#196747;
    --axp-link-color:#12644e;
}
:is(.axp-public-voucher,.axionpass-account.axp-client-form) :is(button,.axp-voucher-account-link,.axp-client-voucher-primary,.axionpass-account-logout,.axp-help-hub-grid a) {
    background:var(--axp-control-bg) !important;
    color:var(--axp-control-color) !important;
    border-color:var(--axp-control-border) !important;
    box-shadow:none !important;
    text-decoration:none !important;
    filter:none !important;
}
:is(.axp-public-voucher,.axionpass-account.axp-client-form) :is(button,.axp-voucher-account-link,.axp-client-voucher-primary,.axionpass-account-logout,.axp-help-hub-grid a):is(:hover,:focus,.active,.is-active,[aria-pressed="true"]):not(:disabled) {
    background:var(--axp-control-hover-bg) !important;
    color:var(--axp-control-hover-color) !important;
    border-color:var(--axp-control-hover-border) !important;
}
:is(.axp-public-voucher,.axionpass-account.axp-client-form) :is(button,.axp-voucher-account-link,.axp-client-voucher-primary,.axionpass-account-logout,.axp-help-hub-grid a):active:not(:disabled) {
    background:var(--axp-control-active-bg) !important;
    color:var(--axp-control-hover-color) !important;
    border-color:var(--axp-control-hover-border) !important;
}
:is(.axp-public-voucher,.axionpass-account.axp-client-form) a:not(.axp-voucher-account-link,.axp-client-voucher-primary,.axionpass-account-logout,.axp-help-hub-grid a) {
    color:var(--axp-link-color) !important;
    background:transparent !important;
    border-color:var(--axp-link-color) !important;
    box-shadow:none !important;
    text-decoration:underline !important;
    text-decoration-color:currentColor !important;
}
:is(.axp-public-voucher,.axionpass-account.axp-client-form) :is(a,button,input,textarea,select,summary):focus-visible {
    outline:2px solid var(--axp-control-focus) !important;
    outline-offset:3px;
}
/* A query container has inline-size containment. In a wrapping column flex
 * layout, an auto-width Elementor widget can contribute its zero-width content
 * height before stretching to the final width, leaving a very tall empty box.
 * Give only the native voucher's shortcode widget a definite available width.
 * Support both optimized Elementor DOM and the older widget-container wrapper.
 * No height/padding reset: page layout and custom widget widths remain site-owned.
 */
.elementor-widget-shortcode:has(> .elementor-shortcode > .axp-public-voucher),
.elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode > .axp-public-voucher),
.elementor-widget-shortcode:has(> .axp-public-voucher) {
    width:100%;
    min-width:0;
}
/* Laptop: 1200–1439px; desktop starts at 1440px. */
@media (max-width:1439px) {
    .axp-public-voucher, .axionpass-account.axp-client-form { --axp-customer-content-max:1100px; }
}
/* Tablet landscape: 1024–1199px. */
@media (max-width:1199px) {
    .axp-public-voucher, .axionpass-account.axp-client-form { --axp-customer-content-max:925px; }
}
/* Tablet portrait: 768–1199px. */
@media (max-width:1199px) and (orientation:portrait) {
    .axp-public-voucher, .axionpass-account.axp-client-form { --axp-customer-content-max:780px; }
}
/* Mobile landscape: up to 1023px, fluid if 728px do not fit. */
@media (max-width:1023px) and (orientation:landscape) {
    .axp-public-voucher, .axionpass-account.axp-client-form { --axp-customer-content-max:728px; }
}
/* Mobile portrait: up to 767px, fluid below 350px plus gutters. */
@media (max-width:767px) and (orientation:portrait) {
    .axp-public-voucher, .axionpass-account.axp-client-form { --axp-customer-content-max:350px; }
}
