/* ==========================================================================
   ATTESTA — design system
   Palette istituzionale: verde bottiglia + ottone/oro + neutri caldi (avorio).
   Tipografia: Playfair Display (serif, titoli) + Inter (sans, corpo/UI).
   ========================================================================== */

:root {
    /* Colori */
    --ink:        #17201b;   /* testo principale, verde-nero caldo */
    --ink-soft:   #3c463e;   /* testo secondario */
    --muted:      #6d7469;   /* testo attenuato (>=4.5:1 su avorio) */

    --green:      #123c2c;   /* primario — verde bottiglia */
    --green-700:  #0e2f22;
    --green-600:  #1b4e39;
    --green-tint: #e7efe9;   /* sfondo tenue accento */
    --green-line: #cddcd2;

    --gold:       #9a7524;   /* accento ottone (>=4.5:1 su avorio per testo) */
    --gold-soft:  #c2a15a;   /* filetti/sigilli decorativi */

    --bg:         #f4f1e9;   /* avorio caldo di fondo */
    --surface:    #ffffff;
    --surface-2:  #fbf9f3;
    --border:     #e5ded0;   /* bordo caldo */
    --border-2:   #efe9dc;

    --danger:     #8c2f2a;
    --danger-tint:#f7ecea;
    --success:    #1c6b45;
    --success-tint:#e6f1ea;
    --amber:      #8a5a12;
    --amber-tint: #f8efdd;

    --ring:       rgba(18, 60, 44, .34);

    /* Tipografia */
    --serif: "Playfair Display", "Iowan Old Style", Georgia, "Times New Roman", serif;
    --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    /* Raggi e ombre */
    --r-sm: 8px;
    --r-md: 12px;
    --r-lg: 18px;
    --shadow-sm: 0 1px 2px rgba(23, 32, 27, .05), 0 1px 3px rgba(23, 32, 27, .04);
    --shadow-md: 0 4px 14px rgba(23, 32, 27, .07), 0 2px 6px rgba(23, 32, 27, .05);
    --shadow-lg: 0 18px 48px rgba(23, 32, 27, .12), 0 6px 16px rgba(23, 32, 27, .07);

    --maxw: 1120px;
}

/* --- Reset gentile -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--sans);
    font-size: 16px;
    line-height: 1.6;
    color: var(--ink);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: var(--green-600); text-decoration: none; }
a:hover { color: var(--green); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; color: var(--ink); line-height: 1.15; margin: 0; }
p { margin: 0; }

/* --- Focus visibile (accessibilità) -------------------------------------- */
:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--ring);
    border-radius: var(--r-sm);
}

/* --- Layout --------------------------------------------------------------- */
.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.stack > * + * { margin-top: var(--gap, 16px); }

/* --- Top bar admin -------------------------------------------------------- */
.topbar {
    position: sticky; top: 0; z-index: 30;
    background: rgba(244, 241, 233, .86);
    backdrop-filter: saturate(140%) blur(8px);
    border-bottom: 1px solid var(--border);
}
.topbar__inner {
    display: flex; align-items: center; gap: 20px;
    height: 68px; max-width: var(--maxw); margin: 0 auto; padding: 0 24px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand__mark { width: 34px; height: 34px; flex: none; }
.brand__name { font-family: var(--serif); font-weight: 600; font-size: 20px; letter-spacing: .2px; color: var(--ink); }
.brand__sub { font-size: 12px; color: var(--muted); letter-spacing: .12em; text-transform: uppercase; }
.topbar__nav { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.topbar__user { font-size: 14px; color: var(--muted); margin-right: 8px; }

/* --- Bottoni -------------------------------------------------------------- */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    font-family: var(--sans); font-size: 14.5px; font-weight: 500; line-height: 1;
    padding: 11px 18px; border-radius: var(--r-sm); border: 1px solid transparent;
    cursor: pointer; transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
    white-space: nowrap; text-decoration: none;
}
.btn svg { width: 17px; height: 17px; }
.btn--primary { background: var(--green); color: #fff; }
.btn--primary:hover { background: var(--green-700); color: #fff; }
.btn--ghost { background: transparent; color: var(--ink-soft); border-color: var(--border); }
.btn--ghost:hover { background: var(--surface-2); border-color: var(--green-line); color: var(--ink); }
.btn--soft { background: var(--green-tint); color: var(--green); }
.btn--soft:hover { background: #dbe8df; color: var(--green-700); }
.btn--danger { background: transparent; color: var(--danger); border-color: #e6cfcc; }
.btn--danger:hover { background: var(--danger-tint); }
.btn--sm { padding: 8px 12px; font-size: 13px; }
.btn--block { width: 100%; }
.btn:disabled { opacity: .55; cursor: not-allowed; }

/* --- Card ----------------------------------------------------------------- */
.card {
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--r-lg); box-shadow: var(--shadow-sm);
}
.card__pad { padding: 28px; }

/* --- Page heading --------------------------------------------------------- */
.page-head { margin: 40px 0 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.page-head h1 { font-size: clamp(28px, 4vw, 38px); letter-spacing: -.01em; }
.page-head .eyebrow { font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: 8px; }
.page-head p { color: var(--muted); margin-top: 6px; }

/* --- Stat tiles ----------------------------------------------------------- */
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 28px; }
.stat { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 18px 20px; }
.stat__n { font-family: var(--serif); font-size: 30px; font-weight: 600; color: var(--green); line-height: 1; }
.stat__l { font-size: 13px; color: var(--muted); margin-top: 8px; }
.stat--gold .stat__n { color: var(--gold); }
.stat--muted .stat__n { color: var(--ink-soft); }

/* --- Tabella storico ------------------------------------------------------ */
.table-wrap { overflow-x: auto; border-radius: var(--r-lg); border: 1px solid var(--border); background: var(--surface); box-shadow: var(--shadow-sm); }
table.records { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 820px; }
.records thead th {
    text-align: left; font-weight: 600; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase;
    color: var(--muted); padding: 15px 18px; border-bottom: 1px solid var(--border); background: var(--surface-2);
    white-space: nowrap;
}
.records tbody td { padding: 15px 18px; border-bottom: 1px solid var(--border-2); vertical-align: middle; }
.records tbody tr:last-child td { border-bottom: 0; }
.records tbody tr:hover { background: var(--surface-2); }
.records .num { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--green); white-space: nowrap; }
.records .name { font-weight: 500; color: var(--ink); }
.records .corso { color: var(--ink-soft); }
.records .muted { color: var(--muted); white-space: nowrap; }
.records .actions { display: flex; gap: 6px; justify-content: flex-end; }
.icon-btn {
    display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px;
    border-radius: var(--r-sm); border: 1px solid var(--border); background: var(--surface); color: var(--ink-soft);
    cursor: pointer; transition: all .16s ease;
}
.icon-btn:hover { border-color: var(--green-line); background: var(--green-tint); color: var(--green); }
.icon-btn svg { width: 16px; height: 16px; }
.icon-btn--danger:hover { border-color: #e6cfcc; background: var(--danger-tint); color: var(--danger); }
.icon-btn:disabled { opacity: .4; cursor: not-allowed; }
.icon-btn:disabled:hover { border-color: var(--border); background: var(--surface); color: var(--ink-soft); }

/* --- Badge ---------------------------------------------------------------- */
.badge { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; }
.badge--active { background: var(--success-tint); color: var(--success); }
.badge--active::before { background: var(--success); }
.badge--purged { background: var(--surface-2); color: var(--muted); border: 1px solid var(--border); }
.badge--purged::before { background: var(--muted); }

/* --- Form ----------------------------------------------------------------- */
.field { margin-bottom: 20px; }
.field label { display: block; font-size: 13.5px; font-weight: 500; color: var(--ink-soft); margin-bottom: 7px; }
.field .req { color: var(--gold); }
.input, .textarea {
    width: 100%; font-family: var(--sans); font-size: 15px; color: var(--ink);
    padding: 11px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-sm);
    transition: border-color .16s ease, box-shadow .16s ease;
}
.input::placeholder { color: #a7a99f; }
.input:focus, .textarea:focus { border-color: var(--green-600); box-shadow: 0 0 0 3px var(--ring); outline: none; }
.input[aria-invalid="true"] { border-color: var(--danger); }
.field .error { display: block; font-size: 12.5px; color: var(--danger); margin-top: 6px; }
.field .hint { display: block; font-size: 12.5px; color: var(--muted); margin-top: 6px; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }

/* --- Nuovo attestato: form + anteprima dal vivo --------------------------- */
.new-layout { display: grid; grid-template-columns: minmax(400px, 1fr) minmax(440px, 1.05fr); gap: 28px; align-items: start; }
.preview-col { position: sticky; top: 88px; }
.preview-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }
.preview-head .eyebrow { font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
.preview-status { font-size: 12px; color: var(--muted); }
.preview-frame {
    position: relative; width: 100%; aspect-ratio: 297 / 210;
    background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-md);
    box-shadow: var(--shadow-md); overflow: hidden;
}
.preview-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #fffefb; }
.preview-note { font-size: 12.5px; color: var(--muted); margin-top: 12px; line-height: 1.5; }

@media (max-width: 1024px) {
    .new-layout { grid-template-columns: 1fr; }
    .preview-col { position: static; }
}

/* --- Sezione firme + controllo segmentato ---------------------------------- */
.sig-section { border-top: 1px solid var(--border-2); margin-top: 10px; padding-top: 18px; }
.sig-section__title { font-size: 12.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: 14px; }
.seg { display: inline-flex; border: 1px solid var(--border); border-radius: var(--r-sm); overflow: hidden; background: var(--surface-2); }
.seg__opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.seg__opt span { display: block; padding: 9px 18px; font-size: 13.5px; color: var(--ink-soft); cursor: pointer; transition: background-color .16s ease, color .16s ease; }
.seg__opt:not(:last-child) span { border-right: 1px solid var(--border); }
.seg__opt input:checked + span { background: var(--green); color: #fff; }
.seg__opt input:focus-visible + span { box-shadow: inset 0 0 0 2px var(--ring); }
input[type="file"].input { padding: 8px 10px; font-size: 13.5px; cursor: pointer; }
input[type="file"].input::file-selector-button { font-family: var(--sans); font-size: 13px; margin-right: 10px; padding: 6px 12px; border-radius: 6px; border: 1px solid var(--border); background: var(--surface); color: var(--ink-soft); cursor: pointer; transition: background-color .16s ease; }
input[type="file"].input::file-selector-button:hover { background: var(--green-tint); }

/* Select stilizzato come .input */
select.input {
    appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236d7469' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 12px center; padding-right: 38px;
}

/* --- Impostazioni: sidebar + pannello ------------------------------------- */
.settings-wrap { max-width: 940px; }
.settings-layout { display: grid; grid-template-columns: 214px minmax(0, 1fr); gap: 30px; align-items: start; }
.settings-side { position: sticky; top: 88px; display: flex; flex-direction: column; gap: 4px; }
.settings-navlink {
    display: flex; align-items: center; gap: 11px; padding: 10px 13px; border-radius: var(--r-sm);
    font-size: 14.5px; font-weight: 500; color: var(--ink-soft);
    transition: background-color .16s ease, color .16s ease;
}
.settings-navlink svg { width: 18px; height: 18px; color: var(--muted); flex: none; }
.settings-navlink:hover { background: var(--surface-2); color: var(--ink); }
.settings-navlink.is-active { background: var(--green-tint); color: var(--green); }
.settings-navlink.is-active svg { color: var(--green); }

.settings-panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); overflow: hidden; }
.settings-section { padding: 26px 28px; }
.settings-section + .settings-section { border-top: 1px solid var(--border-2); }
.settings-section__title { font-family: var(--serif); font-size: 18px; font-weight: 600; margin-bottom: 4px; }
.settings-section__desc { color: var(--muted); font-size: 13.5px; line-height: 1.5; margin-bottom: 20px; }
.settings-section--muted { background: var(--surface-2); }

/* Tabella dentro il pannello (senza doppio bordo/card) */
.settings-panel .table-inner { overflow-x: auto; }
.settings-panel table.records { min-width: 640px; }

@media (max-width: 820px) {
    .settings-layout { grid-template-columns: 1fr; }
    .settings-side { position: static; flex-direction: row; flex-wrap: wrap; gap: 6px; }
    .settings-navlink { border: 1px solid var(--border); }
}

/* --- Alert ---------------------------------------------------------------- */
.alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r-md); font-size: 14px; margin-bottom: 20px; border: 1px solid transparent; }
.alert svg { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.alert--success { background: var(--success-tint); color: #145034; border-color: #bfe0cd; }
.alert--error { background: var(--danger-tint); color: #6e2521; border-color: #e6cfcc; }
.alert--warn { background: var(--amber-tint); color: var(--amber); border-color: #ecd9b0; }

/* --- Modale di conferma --------------------------------------------------- */
.modal-overlay {
    position: fixed; inset: 0; z-index: 50;
    display: flex; align-items: center; justify-content: center; padding: 20px;
    background: rgba(23, 32, 27, .48);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
    animation: modal-fade .16s ease;
}
.modal-overlay[hidden] { display: none; }
.modal {
    width: 100%; max-width: 440px; padding: 30px 28px 24px;
    background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--r-lg); box-shadow: var(--shadow-lg); text-align: center;
    animation: modal-pop .18s cubic-bezier(.16,1,.3,1);
}
.modal__icon {
    width: 54px; height: 54px; margin: 0 auto 16px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: var(--danger-tint); color: var(--danger);
}
.modal__icon svg { width: 26px; height: 26px; }
.modal__title { font-size: 21px; margin-bottom: 8px; }
.modal__message { font-size: 14px; line-height: 1.6; color: var(--ink-soft); margin-bottom: 24px; }
.modal__actions { display: flex; gap: 10px; justify-content: center; }
.modal__actions .btn { min-width: 120px; }
.btn--danger-solid { background: var(--danger); color: #fff; }
.btn--danger-solid:hover { background: #732521; color: #fff; }

@keyframes modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes modal-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }

/* --- Auth screen ---------------------------------------------------------- */
.auth { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.auth__card { width: 100%; max-width: 400px; }
.auth__logo { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-bottom: 28px; }
.auth__logo svg, .auth__logo img { width: 52px; height: 52px; }
.auth__logo .brand__name { font-size: 26px; }
.auth__logo .brand__sub { text-align: center; }

/* --- Footer --------------------------------------------------------------- */
.foot { text-align: center; color: var(--muted); font-size: 13px; padding: 40px 24px 48px; }

/* ==========================================================================
   PAGINE PUBBLICHE (verifica / download) — sfondo caldo, layout centrato
   ========================================================================== */
.public-bg {
    min-height: 100vh;
    background:
        radial-gradient(1100px 520px at 50% -10%, #ffffff 0%, rgba(255,255,255,0) 60%),
        var(--bg);
    display: flex; flex-direction: column;
}
.public-main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 20px; }
.public-head { text-align: center; margin-bottom: 26px; }
.public-head .brand { justify-content: center; }
.public-head .brand__name { font-size: 22px; }

/* Certificato digitale (verifica) */
.certcard { width: 100%; max-width: 560px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--shadow-lg); overflow: hidden; }
.certcard__top { position: relative; padding: 40px 40px 28px; text-align: center; background: linear-gradient(180deg, var(--surface-2), var(--surface)); border-bottom: 1px solid var(--border-2); }
.certcard__rule { height: 3px; background: linear-gradient(90deg, var(--green), var(--gold-soft), var(--green)); }
.seal { width: 76px; height: 76px; margin: 0 auto 18px; }
.certcard h1 { font-size: 15px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-family: var(--sans); font-weight: 600; }
.verified { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; padding: 7px 15px; background: var(--success-tint); color: var(--success); border-radius: 999px; font-size: 13.5px; font-weight: 600; }
.verified svg { width: 17px; height: 17px; }
.certcard__body { padding: 32px 40px 38px; }
.cert-name { font-family: var(--serif); font-size: clamp(28px, 6vw, 38px); font-weight: 600; text-align: center; color: var(--ink); letter-spacing: -.01em; }
.cert-formula { text-align: center; color: var(--muted); font-size: 14.5px; margin: 6px 0 26px; }
.cert-rows { border-top: 1px solid var(--border-2); }
.cert-row { display: flex; justify-content: space-between; gap: 16px; padding: 15px 2px; border-bottom: 1px solid var(--border-2); }
.cert-row dt { font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.cert-row dd { margin: 0; font-weight: 500; color: var(--ink); text-align: right; }
.cert-row dd.serif { font-family: var(--serif); font-size: 18px; }
.cert-foot { text-align: center; margin-top: 22px; font-size: 12.5px; color: var(--muted); }
.cert-foot code { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12px; color: var(--ink-soft); background: var(--surface-2); padding: 2px 7px; border-radius: 6px; border: 1px solid var(--border-2); }

/* Stato "non trovato" */
.notice-card { width: 100%; max-width: 460px; text-align: center; }
.notice-card .icon-xl { width: 64px; height: 64px; margin: 0 auto 18px; color: var(--danger); }
.notice-card .icon-xl.warn { color: var(--amber); }
.notice-card h1 { font-size: 26px; margin-bottom: 10px; }
.notice-card p { color: var(--muted); }

/* Pagina download */
.dl-card { width: 100%; max-width: 540px; }
.dl-card .cert-mini { text-align: center; margin-bottom: 24px; }
.dl-card .cert-mini .num { font-variant-numeric: tabular-nums; color: var(--gold); font-weight: 600; font-size: 13px; letter-spacing: .05em; }
.dl-card .cert-mini h1 { font-size: 30px; margin: 6px 0 4px; }
.dl-card .cert-mini .corso { color: var(--muted); }
.warn-box { background: var(--amber-tint); border: 1px solid #ecd9b0; border-radius: var(--r-md); padding: 18px 18px 18px 16px; display: flex; gap: 13px; margin: 22px 0; }
.warn-box svg { width: 22px; height: 22px; color: var(--amber); flex: none; margin-top: 1px; }
.warn-box strong { color: #6b4610; display: block; margin-bottom: 4px; font-size: 14.5px; }
.warn-box p { color: #7a5518; font-size: 13.5px; line-height: 1.55; }
.dl-divider { height: 1px; background: var(--border-2); margin: 24px 0; }
.delete-zone { text-align: center; }
.delete-zone p { font-size: 13px; color: var(--muted); margin-bottom: 12px; }

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 720px) {
    .grid-2 { grid-template-columns: 1fr; }
    .stats { grid-template-columns: 1fr; }
    .page-head { margin: 28px 0 20px; }
    .card__pad { padding: 22px; }
    .certcard__top, .certcard__body { padding-left: 24px; padding-right: 24px; }
    .brand__sub { display: none; }
    .topbar__user { display: none; }
}

/* ==========================================================================
   LANDING PAGE PUBBLICA
   ========================================================================== */
html { scroll-behavior: smooth; }

.lp { background: var(--bg); }
.lp-container { width: 100%; max-width: 1080px; margin: 0 auto; padding: 0 24px; }

.lp-header {
    position: sticky; top: 0; z-index: 30;
    background: rgba(244, 241, 233, .86);
    -webkit-backdrop-filter: saturate(140%) blur(8px); backdrop-filter: saturate(140%) blur(8px);
    border-bottom: 1px solid var(--border);
}
.lp-header__inner { display: flex; align-items: center; justify-content: space-between; height: 68px; max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.lp-header__nav { display: flex; align-items: center; gap: 22px; }
.lp-header__nav a:not(.btn) { font-size: 14.5px; font-weight: 500; color: var(--ink-soft); }
.lp-header__nav a:not(.btn):hover { color: var(--green); }

/* Hero */
.lp-hero {
    text-align: center; padding: 88px 0 74px;
    background: radial-gradient(1100px 520px at 50% -12%, #ffffff 0%, rgba(255,255,255,0) 62%), var(--bg);
}
.lp-hero__eyebrow { font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); font-weight: 600; margin-bottom: 20px; }
.lp-hero__title { font-size: clamp(34px, 6vw, 58px); line-height: 1.08; letter-spacing: -.015em; color: var(--ink); max-width: 15ch; margin: 0 auto; }
.lp-hero__title em { font-style: italic; color: var(--green); }
.lp-hero__lead { max-width: 630px; margin: 22px auto 0; font-size: 17.5px; line-height: 1.62; color: var(--ink-soft); }
.lp-hero__cta { display: flex; gap: 12px; justify-content: center; margin-top: 34px; flex-wrap: wrap; }

/* Sezioni */
.lp-section { padding: 74px 0; scroll-margin-top: 80px; }
.lp-section--alt { background: var(--surface-2); border-top: 1px solid var(--border-2); border-bottom: 1px solid var(--border-2); }
.lp-section__head { text-align: center; max-width: 640px; margin: 0 auto 46px; }
.lp-section__head .eyebrow { font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
.lp-section__head h2 { font-size: clamp(26px, 4vw, 36px); margin: 10px 0 0; letter-spacing: -.01em; }
.lp-section__head p { margin-top: 12px; color: var(--muted); font-size: 16px; line-height: 1.6; }

/* Come funziona — step */
.lp-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lp-step { position: relative; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 30px 26px; box-shadow: var(--shadow-sm); }
.lp-step__num { position: absolute; top: 18px; right: 22px; font-family: var(--serif); font-size: 30px; color: var(--border); font-weight: 600; }
.lp-step__icon { width: 48px; height: 48px; border-radius: 12px; background: var(--green-tint); color: var(--green); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.lp-step__icon svg { width: 24px; height: 24px; }
.lp-step h3 { font-size: 19px; margin-bottom: 8px; }
.lp-step p { color: var(--ink-soft); font-size: 14.5px; line-height: 1.6; }

/* Verifica */
.lp-verify { display: grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items: center; }
.lp-verify h2 { font-size: clamp(26px, 4vw, 36px); margin: 10px 0 0; letter-spacing: -.01em; }
.lp-verify__lead { margin-top: 16px; font-size: 16.5px; line-height: 1.65; color: var(--ink-soft); }
.lp-checklist { list-style: none; margin: 22px 0 0; display: flex; flex-direction: column; gap: 12px; }
.lp-checklist li { display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--ink); }
.lp-checklist svg { width: 18px; height: 18px; color: var(--success); flex: none; }
.lp-verify__note { margin-top: 22px; font-size: 14px; color: var(--muted); line-height: 1.6; padding-left: 14px; border-left: 3px solid var(--gold-soft); }

.lp-badge-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--shadow-lg); padding: 34px 30px; text-align: center; max-width: 360px; margin: 0 auto; }
.lp-badge-card .seal { width: 82px; height: 82px; margin: 0 auto 16px; }
.lp-badge-card__label { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.lp-badge-card .verified { margin-top: 12px; }
.lp-badge-card__rows { margin-top: 22px; border-top: 1px solid var(--border-2); text-align: left; }
.lp-badge-card__rows div { display: flex; justify-content: space-between; gap: 12px; padding: 12px 2px; border-bottom: 1px solid var(--border-2); font-size: 14px; }
.lp-badge-card__rows span { color: var(--muted); }
.lp-badge-card__rows b { color: var(--ink); font-weight: 500; }

/* Privacy */
.lp-privacy { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 860px; margin: 0 auto; }
.lp-privacy__card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 28px; box-shadow: var(--shadow-sm); }
.lp-privacy__icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 16px; }
.lp-privacy__icon svg { width: 22px; height: 22px; }
.lp-privacy__icon--keep { background: var(--green-tint); color: var(--green); }
.lp-privacy__icon--del { background: var(--amber-tint); color: var(--amber); }
.lp-privacy__card h3 { font-size: 18px; margin-bottom: 8px; }
.lp-privacy__card p { color: var(--ink-soft); font-size: 14.5px; line-height: 1.6; }

/* Footer */
.lp-footer { background: var(--green); color: #cfe0d5; padding: 42px 0; }
.lp-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: 22px; flex-wrap: wrap; }
.lp-footer .brand__name { color: #fff; }
.lp-footer .brand__sub { color: #9dbcab; }
.lp-footer__meta { text-align: right; }
.lp-footer__meta p { font-size: 13.5px; color: #9dbcab; margin-bottom: 6px; }
.lp-footer__meta a { color: #fff; font-size: 14px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 860px) {
    .lp-steps { grid-template-columns: 1fr; }
    .lp-verify { grid-template-columns: 1fr; gap: 34px; }
    .lp-privacy { grid-template-columns: 1fr; }
    .lp-footer__inner { flex-direction: column; align-items: flex-start; }
    .lp-footer__meta { text-align: left; }
}
@media (max-width: 640px) {
    .lp-header__nav a:not(.btn) { display: none; }
    .lp-hero { padding: 60px 0 54px; }
    .lp-section { padding: 56px 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; animation: none !important; }
}
