/* Styles scoped to Firmawebben Mail signup; no WooCommerce or theme form overrides */
.fwmail-signup, .fwmail-signup * { box-sizing:border-box; }
.fwmail-signup { max-width:660px; margin:0 auto; padding:25px; border-radius:14px; background:#faf5fb; color:#39253f; box-shadow:0 8px 24px rgba(55,22,65,.12); }
.fwmail-signup h2 { margin:0 0 9px; font-size:clamp(22px,3vw,30px); line-height:1.25; font-weight:700; color:#612d72; }
.fwmail-signup__description { font-size:16px; line-height:1.6; margin:0 0 17px; }
.fwmail-signup__offer { margin:8px 0 14px; font-size:15px; color:#6a3077; }
.fwmail-signup__row { display:flex; flex-wrap:wrap; gap:9px; align-items:stretch; }
.fwmail-signup__row input[type=email] { flex:1 1 210px; background:#fff; color:#332f38; padding:12px 14px; min-width:0; min-height:48px; font:inherit; border:1px solid #b6a3bb; border-radius:8px; }
.fwmail-signup__row button { flex:0 0 auto; border:0; border-radius:8px; background:#613072; color:white; cursor:pointer; padding:12px 18px; font-size:16px; font-weight:bold; min-height:48px; }
.fwmail-signup__row button:hover { background:#472252; }
.fwmail-signup__row button:disabled { opacity:.62; cursor:progress; }
.fwmail-signup__consent { display:flex; align-items:flex-start; gap:10px; margin:15px 0 10px; font-size:13px; line-height:1.5; cursor:pointer; }
.fwmail-signup__consent input { width:17px; height:17px; margin:2px 0 0; flex:none; accent-color:#613072; }
.fwmail-signup a { color:#613072; text-decoration:underline; }
.fwmail-signup small { font-size:12px; line-height:1.55; display:block; margin-top:10px; }
.fwmail-signup__feedback { padding:11px 13px; margin:12px 0 0; background:#edf7ef; color:#23512b; border-radius:8px; }
.fwmail-signup__feedback.is-error { background:#fff1f1; color:#9f2626; }
.fwmail-signup__trap { position:absolute!important; left:-99999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.fwmail-signup-overlay[hidden], .fwmail-signup__feedback[hidden] { display:none!important; }
.fwmail-signup-overlay { position:fixed; inset:0; z-index:999999; padding:20px; background:rgba(29,17,36,.70); display:flex; justify-content:center; align-items:center; overflow:auto; }
.fwmail-signup-dialog { position:relative; width:min(100%,590px); max-height:calc(100vh - 40px); overflow-y:auto; border-radius:16px; background:#faf5fb; box-shadow:0 14px 52px rgba(0,0,0,.32); }
.fwmail-signup-dialog .fwmail-signup { background:transparent; box-shadow:none; padding:40px 26px 27px; }
.fwmail-signup-dialog__close { position:absolute; right:10px; top:7px; z-index:3; width:42px; height:42px; border:0; background:transparent; color:#4b2759; font-size:31px; line-height:1; cursor:pointer; }
body.fwmail-signup-lock { overflow:hidden; }
.fwmail-signup :is(a,button,input):focus-visible, .fwmail-signup-dialog__close:focus-visible { outline:3px solid #a548c2; outline-offset:3px; }
@media(max-width:520px) { .fwmail-signup { padding:19px 16px; } .fwmail-signup__row { flex-direction:column; } .fwmail-signup__row button { width:100%; } .fwmail-signup-dialog .fwmail-signup { padding:38px 18px 22px; } }
@media(prefers-reduced-motion:reduce) { .fwmail-signup *, .fwmail-signup-dialog { transition:none!important; animation:none!important; } }

/* Optional personalisation fields in all signup form types. */
.fwmail-signup__names { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0 0 12px; }
.fwmail-signup__name-field { min-width:0; }
.fwmail-signup__name-field label { display:block; margin:0 0 6px; font-size:13px; font-weight:600; color:#442e4b; }
.fwmail-signup__name-field label span { font-weight:normal; color:#74697b; }
.fwmail-signup__name-field input { display:block; width:100%; min-width:0; height:46px; padding:11px 13px; border:1px solid #b6a3bb; border-radius:8px; font:inherit; color:#332f38; background:#fff; }
@media(max-width:520px) { .fwmail-signup__names { grid-template-columns:1fr; gap:10px; } }

.fwmail-signup__name-field:only-child { grid-column:1/-1; }
.fwmail-signup__name-note { margin:0 0 12px; font-size:12px; line-height:1.45; color:#6b6171; }
