/* Shared control geometry; keep every theme's colours, type and animation. */
select:not([multiple]):not([size]),select[size="1"]{
 -webkit-appearance:none!important;appearance:none!important;
 box-sizing:border-box;max-width:100%;min-width:0;
 padding-inline-end:44px!important;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23675b4b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
 background-repeat:no-repeat!important;background-size:12px 8px!important;background-position:right 16px center!important;
}
[dir="rtl"] select:not([multiple]):not([size]){background-position:left 16px center!important}
input:not([type="radio"]):not([type="checkbox"]),select,textarea{box-sizing:border-box;max-width:100%}
form,fieldset,label{min-width:0}
textarea{resize:vertical}
@media(forced-colors:active){select:not([multiple]):not([size]),select[size="1"]{appearance:auto!important;background-image:none!important;padding-inline-end:12px!important}}

/* Keep long attendance labels clear of the arrow on narrow invitations. */
@media(max-width:480px){.rsvp .row{grid-template-columns:minmax(0,1fr)!important}.rsvp .row>label{min-width:0}}
/* Radio-choice cards share a row height when one caption wraps. */
.choice .choice__opt{display:flex;align-items:stretch}
.choice .choice__opt>span{flex:1;box-sizing:border-box;width:100%;height:100%}
