/**
 * DSGN Recesso Online — Stylesheet
 *
 * Foglio di stile del modulo di recesso, completamente scoped a .dsgn-recesso
 * e progettato per restare leggibile su qualsiasi tema WordPress.
 *
 * @package DSGN\Recesso
 * @author  DSGN S.r.l.
 * @version 1.2.1
 * @license GPL-2.0-or-later
 * Copyright (C) 2026 DSGN S.r.l. — https://dsgngroup.it
 */

.dsgn-recesso{
 --dsgn-accent:#15161a;--dsgn-accent-fg:#ffffff;
 --dsgn-surface:#ffffff;--dsgn-surface-2:#f6f7f9;
 --dsgn-fg:#15161a;--dsgn-muted:#6a7180;--dsgn-line:#e6e8ec;
 --dsgn-radius:16px;
 max-width:620px;margin:48px auto;padding:32px 34px;
 background:var(--dsgn-surface);color:var(--dsgn-fg);
 border:1px solid var(--dsgn-line);border-radius:var(--dsgn-radius);
 box-shadow:0 1px 2px rgba(16,24,40,.04),0 28px 56px -32px rgba(16,24,40,.32);
 font-size:16px;line-height:1.55;text-align:left;-webkit-font-smoothing:antialiased;
}

/* Reset difensivo: azzera ciò che i temi iniettano (decorazioni, ombre, float, pseudo) */
.dsgn-recesso *,.dsgn-recesso *::before,.dsgn-recesso *::after{box-sizing:border-box;text-shadow:none;background-image:none;float:none;max-width:none;font-style:normal}
.dsgn-recesso *{text-decoration:none;list-style:none}
.dsgn-recesso *::before,.dsgn-recesso *::after{content:none;background:none;box-shadow:none}
.dsgn-recesso span:not(.n){background:transparent!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;text-decoration:none!important;padding:0}

.dsgn-recesso .dsgn-head{display:flex;align-items:center;gap:9px;margin-bottom:22px}
.dsgn-recesso .dsgn-head svg{width:20px;height:20px;flex:none;color:var(--dsgn-accent)}
.dsgn-recesso .dsgn-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dsgn-muted)}
.dsgn-recesso h2{font-size:1.5rem;font-weight:700;letter-spacing:-.015em;line-height:1.2;margin:0 0 .35em;color:var(--dsgn-fg)}
.dsgn-recesso p{margin:.2em 0 1.3em;color:var(--dsgn-muted)}
.dsgn-recesso a:not(.dsgn-btn){color:var(--dsgn-accent);text-decoration:underline}

.dsgn-recesso .dsgn-steps{display:flex;align-items:center;gap:12px;margin:0 0 26px;padding:0;list-style:none}
.dsgn-recesso .dsgn-steps li{display:flex;align-items:center;gap:9px;font-size:.82rem;color:var(--dsgn-muted);white-space:nowrap}
.dsgn-recesso .dsgn-steps li .n{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--dsgn-line);font-size:.82rem;font-weight:600;background:var(--dsgn-surface)}
.dsgn-recesso .dsgn-steps li.active{color:var(--dsgn-fg);font-weight:600}
.dsgn-recesso .dsgn-steps li.active .n{background:var(--dsgn-accent);border-color:var(--dsgn-accent);color:var(--dsgn-accent-fg)}
.dsgn-recesso .dsgn-steps .sep{flex:1;height:1.5px;background:var(--dsgn-line);max-width:60px}

.dsgn-recesso .dsgn-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.dsgn-recesso .dsgn-field{min-width:0}
.dsgn-recesso label{display:block;font-weight:600;font-size:.9rem;color:var(--dsgn-fg);margin:18px 0 8px}
.dsgn-recesso .dsgn-grid .dsgn-field>label:first-child{margin-top:0}
.dsgn-recesso .dsgn-req{color:#d92d20;margin-left:3px;font-weight:700}

.dsgn-recesso input[type=text],.dsgn-recesso input[type=email],.dsgn-recesso textarea{width:100%!important;padding:13px 14px!important;border:1px solid var(--dsgn-line)!important;border-radius:10px!important;background:var(--dsgn-surface)!important;color:var(--dsgn-fg)!important;font:inherit;line-height:1.4;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.dsgn-recesso input::placeholder,.dsgn-recesso textarea::placeholder{color:#9aa1ad}
.dsgn-recesso input:focus,.dsgn-recesso textarea:focus{outline:none;border-color:var(--dsgn-accent)!important;box-shadow:0 0 0 3px rgba(21,22,26,.10)}
.dsgn-recesso textarea{resize:vertical;min-height:92px}

/* Checkbox di consenso: reset blindato sul LABEL stesso (text-decoration del genitore non
   si toglie dal figlio) + descendants + pseudo. Doppia classe per alzare la specificità. */
.dsgn-recesso .dsgn-check.dsgn-check{display:flex!important;align-items:flex-start;flex-wrap:nowrap;gap:12px;font-weight:400!important;font-size:.92rem;color:var(--dsgn-fg);margin:0 0 22px 0!important;line-height:1.5;text-transform:none!important;letter-spacing:0;float:none!important;width:auto!important;text-align:left;text-decoration:none!important;background:none!important;background-image:none!important;background-color:transparent!important;box-shadow:none!important;border:0!important}
.dsgn-recesso .dsgn-check.dsgn-check:first-of-type{margin-top:28px!important}
.dsgn-recesso .dsgn-check.dsgn-check:last-of-type{margin-bottom:8px!important}
.dsgn-recesso .dsgn-check.dsgn-check *{text-decoration:none!important;background:none!important;background-image:none!important;background-color:transparent!important;box-shadow:none!important;border-bottom:0!important}
.dsgn-recesso .dsgn-check.dsgn-check::before,.dsgn-recesso .dsgn-check.dsgn-check::after,.dsgn-recesso .dsgn-check.dsgn-check *::before,.dsgn-recesso .dsgn-check.dsgn-check *::after{display:none!important;content:none!important;background:none!important;border:0!important;box-shadow:none!important}
.dsgn-recesso .dsgn-check.dsgn-check input[type=checkbox]{flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;margin:3px 0 0!important;accent-color:var(--dsgn-accent)}
.dsgn-recesso .dsgn-check.dsgn-check span{flex:1 1 auto;min-width:0;display:inline!important}

.dsgn-recesso a.dsgn-btn,.dsgn-recesso button.dsgn-btn{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;margin-top:26px;padding:15px 30px;background:var(--dsgn-accent)!important;color:var(--dsgn-accent-fg)!important;border:1px solid var(--dsgn-accent)!important;border-radius:10px;cursor:pointer;font:inherit;font-weight:600!important;text-decoration:none!important;line-height:1;width:auto;transition:opacity .15s,transform .04s}
.dsgn-recesso a.dsgn-btn:hover,.dsgn-recesso button.dsgn-btn:hover{opacity:.88;color:var(--dsgn-accent-fg)!important}
.dsgn-recesso .dsgn-btn:active{transform:translateY(1px)}
.dsgn-recesso .dsgn-btn:focus-visible{outline:3px solid rgba(21,22,26,.30);outline-offset:2px}
.dsgn-recesso a.dsgn-btn-ghost,.dsgn-recesso button.dsgn-btn-ghost{background:transparent!important;color:var(--dsgn-accent)!important;margin-top:14px}
.dsgn-recesso .dsgn-btn-ghost:hover{background:rgba(21,22,26,.05)!important;color:var(--dsgn-accent)!important}

.dsgn-recesso .dsgn-card{background:var(--dsgn-surface-2);border:1px solid var(--dsgn-line);border-radius:12px;padding:6px 18px;margin:18px 0}
.dsgn-recesso .dsgn-card.dsgn-order{padding:18px 20px;margin-bottom:14px}
.dsgn-recesso .dsgn-card .dsgn-order-no{font-size:1.1rem;font-weight:700;color:var(--dsgn-fg)}
.dsgn-recesso .dsgn-card .dsgn-meta{display:block;color:var(--dsgn-muted);font-size:.92rem;margin-top:3px}
.dsgn-recesso .dsgn-card .dsgn-btn{margin-top:14px}
.dsgn-recesso .dsgn-dl{margin:0}
.dsgn-recesso .dsgn-dl>div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--dsgn-line)}
.dsgn-recesso .dsgn-dl>div:last-child{border-bottom:0}
.dsgn-recesso .dsgn-dl dt{color:var(--dsgn-muted);font-size:.9rem;margin:0}
.dsgn-recesso .dsgn-dl dd{margin:0;font-weight:600;text-align:right;word-break:break-word}

.dsgn-recesso .dsgn-notice{padding:14px 16px;border-radius:10px;margin:16px 0;border:1px solid;font-size:.95rem}
.dsgn-recesso .dsgn-notice strong{font-weight:700}
.dsgn-recesso .dsgn-notice.ok{background:#ecfdf3;border-color:#a6f0c6;color:#0a5d39}
.dsgn-recesso .dsgn-notice.info{background:#eff8ff;border-color:#b2ddff;color:#0b4a6f}
.dsgn-recesso .dsgn-notice.warn{background:#fffaeb;border-color:#fedf89;color:#93370d}

.dsgn-recesso .dsgn-foot{margin-top:26px;padding-top:16px;border-top:1px solid var(--dsgn-line);display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--dsgn-muted)}
.dsgn-recesso .dsgn-foot svg{width:14px;height:14px;flex:none}

@media(max-width:520px){.dsgn-recesso{margin:24px auto;padding:24px 20px}.dsgn-recesso .dsgn-grid{grid-template-columns:1fr}.dsgn-recesso .dsgn-dl>div{flex-direction:column;gap:2px}.dsgn-recesso .dsgn-dl dd{text-align:left}.dsgn-recesso .dsgn-btn{width:100%}}
