@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Poppins:wght@400;500;600;700&display=swap');

:root{
    --orange:#E59207;
    --brown:#A05D19;
    --ink:#17130F;
    --muted:#756D63;
    --paper:#F8F5EF;
    --line:#E5DED4;
    --white:#FFFFFF;
    --soft:#FFF8EA;
    --danger:#9A3F32;
    --radius:14px;
    --shadow:0 18px 55px rgba(45,34,20,.09);
}
*{box-sizing:border-box}
html{background:var(--paper);color:var(--ink);font-family:Poppins,Arial,sans-serif}
body{margin:0;background:linear-gradient(180deg,#fff 0,var(--paper) 320px);min-height:100vh}
button,input,textarea{font:inherit}
.page{width:min(820px,100%);margin:0 auto;padding:34px 24px 28px}
.brandbar{display:flex;align-items:center;gap:24px;padding:0 4px 24px;border-bottom:1px solid var(--line)}
.brandbar__logo{width:245px;height:auto;display:block}
.brandbar__copy{margin-left:auto;text-align:right}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--brown)}
.brandbar h1{font-family:'Playfair Display',Georgia,serif;font-size:27px;line-height:1.1;margin:5px 0 0}
.course-hero{padding:30px 0 22px}
.course-hero__label{display:block;font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--orange);margin-bottom:8px}
.course-hero h2{font-family:'Playfair Display',Georgia,serif;font-size:clamp(29px,4vw,42px);line-height:1.08;margin:0 0 10px;max-width:690px}
.course-hero p{margin:0;color:var(--muted);font-size:14px;line-height:1.65;max-width:650px}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 16px;padding:0;gap:8px}
.steps li{display:flex;align-items:center;gap:8px;color:#9C948A;font-size:12px;font-weight:600;padding:9px 10px;border-bottom:2px solid #ded8cf}
.steps li span{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ece6dd;font-size:11px}
.steps li.is-active{color:var(--brown);border-bottom-color:var(--orange)}
.steps li.is-active span,.steps li.is-done span{background:var(--orange);color:#fff}
.steps li.is-done{border-bottom-color:#f1c371}
.form-card{background:var(--white);border:1px solid #ece6dc;border-radius:var(--radius);box-shadow:var(--shadow);padding:30px}
.step{display:none}.step.is-active{display:block;animation:fade .18s ease}
@keyframes fade{from{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}
.section-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:25px}
.section-num{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:var(--soft);color:var(--brown);font-weight:700;font-size:12px}
.section-head h3{font-family:'Playfair Display',Georgia,serif;font-size:24px;margin:0 0 4px}.section-head p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}
.course-chip{display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--soft);border:1px solid #f3dbaf;border-radius:10px;padding:12px 14px;margin-bottom:22px}
.course-chip span{font-size:10px;color:var(--brown);font-weight:700;text-transform:uppercase;letter-spacing:.1em}.course-chip strong{font-size:13px;text-align:right}
.grid{display:grid;gap:15px;margin-bottom:15px}.grid.two{grid-template-columns:1fr 1fr}.grid.address{grid-template-columns:130px 1fr 92px}.field.full{grid-column:1/-1}
.field label{display:block;font-size:11.5px;font-weight:600;margin:0 0 6px;color:#342d26}.field label span{font-weight:400;color:#9c948a}
.field input,.field textarea{width:100%;border:1px solid #dcd5cb;border-radius:8px;background:#fff;padding:11px 12px;color:var(--ink);outline:none;transition:border .15s,box-shadow .15s}.field textarea{resize:vertical;min-height:80px}.field input:focus,.field textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(229,146,7,.11)}
.guardian{margin:26px 0 5px;padding:22px;background:#fbf9f5;border-left:3px solid var(--orange);border-radius:0 10px 10px 0}.guardian__title{font-family:'Playfair Display',Georgia,serif;font-size:20px;font-weight:700}.guardian>p{font-size:13px;color:var(--muted);margin:4px 0 18px}
.inline-check{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.45;color:#3f3831;cursor:pointer}.inline-check input{width:17px;height:17px;accent-color:var(--orange);margin-top:1px;flex:0 0 auto}
.privacy-note{padding:18px;border:1px solid #eee6d8;background:#fdfbf7;border-radius:10px;margin-bottom:8px}.privacy-note strong{font-size:13px}.privacy-note p{font-size:12px;color:var(--muted);line-height:1.55;margin:5px 0 13px}
.choice-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:18px 2px;border-bottom:1px solid var(--line)}.choice-row strong{font-size:13px}.choice-row p{font-size:11.5px;color:var(--muted);margin:4px 0 0;line-height:1.45}.choice-pills{display:flex;gap:7px}.choice-pills label{cursor:pointer}.choice-pills input{position:absolute;opacity:0;pointer-events:none}.choice-pills span{display:block;padding:8px 10px;border:1px solid #dcd5cb;border-radius:999px;font-size:10.5px;font-weight:600;white-space:nowrap}.choice-pills input:checked+span{border-color:var(--orange);background:var(--soft);color:var(--brown)}
.declaration{display:flex;gap:10px;padding:16px 0 3px;font-size:11.5px;line-height:1.5;color:#4d453d}.declaration input{width:17px;height:17px;accent-color:var(--orange);flex:0 0 auto;margin-top:2px}.legal-link{margin-top:18px;padding:12px 14px;border-radius:8px;background:#f4f1ec;color:var(--muted);font-size:11.5px;line-height:1.5}
.summary{border-top:1px solid var(--line)}.summary__row{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:12px 2px;border-bottom:1px solid var(--line);font-size:12.5px}.summary__row span{color:var(--muted)}.summary__row strong{font-weight:600;overflow-wrap:anywhere}.print-callout{display:flex;gap:12px;align-items:flex-start;margin-top:22px;padding:16px;background:var(--soft);border-radius:10px}.print-callout strong{color:var(--brown);white-space:nowrap;font-size:12px}.print-callout span{font-size:12px;line-height:1.5}
.actions{display:flex;justify-content:space-between;align-items:center;margin-top:28px}.btn{border:0;border-radius:8px;padding:11px 20px;font-weight:600;font-size:12.5px;cursor:pointer;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.primary{background:var(--ink);color:#fff}.btn.accent{background:var(--orange);color:#fff}.btn.ghost{background:transparent;color:var(--muted);padding-left:0}.spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;margin-right:8px;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}
.form-error{display:none;border:1px solid #dfb7ad;background:#fff7f5;color:var(--danger);padding:11px 13px;border-radius:8px;font-size:12px;margin-bottom:20px}.form-error.is-visible{display:block}.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.page-footer{text-align:center;color:#9a9288;font-size:10px;padding:20px 0 0}
.modal-overlay{display:none;position:fixed;inset:0;z-index:999;background:rgba(23,19,15,.55);backdrop-filter:blur(7px);align-items:center;justify-content:center;padding:20px}.modal-overlay.is-visible{display:flex}.modal{width:min(430px,100%);background:#fff;border-radius:14px;padding:30px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal__logo{width:190px;height:auto}.modal__kicker{font-size:9px;letter-spacing:.18em;font-weight:700;color:var(--brown);margin-top:16px}.modal h2{font-family:'Playfair Display',Georgia,serif;font-size:27px;margin:6px 0 10px}.modal p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 20px}
body.is-embedded{background:var(--paper)}body.is-embedded .page{padding-top:24px}body.is-embedded .brandbar{padding-right:50px}
@media(max-width:680px){.page{padding:18px 14px 20px}.brandbar{gap:14px;padding-bottom:17px}.brandbar__logo{width:175px}.brandbar__copy{display:none}.course-hero{padding:23px 2px 18px}.course-hero h2{font-size:30px}.form-card{padding:21px 17px}.grid.two,.grid.address{grid-template-columns:1fr}.field.full{grid-column:auto}.steps li{font-size:10px;padding:7px 3px;gap:5px}.steps li span{width:20px;height:20px}.section-head{gap:11px}.section-num{flex-basis:36px;height:36px}.section-head h3{font-size:21px}.course-chip{display:block}.course-chip strong{display:block;text-align:left;margin-top:4px}.choice-row{grid-template-columns:1fr}.choice-pills{justify-content:flex-start}.summary__row{grid-template-columns:1fr;gap:3px}.print-callout{display:block}.print-callout strong{display:block;margin-bottom:4px}.actions{gap:10px}.btn{padding:11px 15px}}

/* Validazione contestuale: l'errore resta visibile e indica il punto esatto da correggere. */
.validation-toast{
    position:fixed;left:50%;bottom:24px;z-index:2000;transform:translate(-50%,18px);
    width:min(520px,calc(100% - 28px));padding:12px 16px;border:1px solid #dfb7ad;
    border-radius:10px;background:#fff7f5;color:var(--danger);font-size:12.5px;font-weight:600;
    box-shadow:0 16px 46px rgba(52,27,20,.18);opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .18s ease,transform .18s ease,visibility .18s ease;text-align:center
}
.validation-toast.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
.has-error.field input,.has-error.field textarea{border-color:#c75f4d!important;box-shadow:0 0 0 3px rgba(199,95,77,.12)!important;background:#fffaf9}
.choice-row.has-error,.privacy-note.has-error,.declaration.has-error,.guardian.has-error{outline:1px solid #dfb7ad;outline-offset:7px;border-radius:7px}
.choice-row.has-error .choice-pills span{border-color:#dca99f}
.field-error{margin-top:6px;color:var(--danger);font-size:10.5px;font-weight:600;line-height:1.35}
.choice-row>.field-error,.privacy-note>.field-error,.guardian>.field-error{grid-column:1/-1;width:100%}
.declaration.has-error{flex-wrap:wrap}.declaration>.field-error{flex:0 0 100%;width:100%}
@media(max-width:680px){.validation-toast{bottom:14px;width:calc(100% - 20px);font-size:12px}.field-error{font-size:10px}}
