.quote-hero::after { content: "OFFERTA"; font-size: clamp(7rem, 18vw, 21rem); }
.quote-promise { padding: 90px 0; color: #fff; background: linear-gradient(135deg,#050505,#252525); }
.quote-promise-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; }
.quote-promise h2 { margin: 12px 0 0; font-size: clamp(2.4rem,4.5vw,4.9rem); line-height: .94; letter-spacing: -.05em; text-transform: uppercase; }
.quote-promise p { margin-top: 0; color: #bbb; line-height: 1.8; }
.quote-promise ul { margin: 24px 0 0; padding: 0; list-style: none; border-top: 1px solid #444; }
.quote-promise li { padding: 13px 0 13px 24px; color: #ddd; border-bottom: 1px solid #444; font-size: .78rem; position: relative; }
.quote-promise li::before { content: "✓"; position: absolute; left: 0; color: #ffe100; }
.quote-form-section { padding: 95px 0 120px; background: #f2f2f2; }
.form-progress { position: sticky; top: 78px; z-index: 35; display: grid; grid-template-columns: repeat(6,1fr); margin-bottom: 22px; color: #fff; background: #080808; box-shadow: 0 15px 30px rgba(0,0,0,.14); }
.form-progress a { min-height: 64px; display: flex; align-items: center; justify-content: center; gap: 9px; padding: 10px; border-right: 1px solid #333; font-size: .61rem; text-transform: uppercase; }
.form-progress a:last-child { border: 0; }
.form-progress a b { color: #ffe100; }
.form-progress a.is-active { color: var(--cta-blue); background: #ffe100; }
.form-progress a.is-active b { color: var(--cta-blue); }
.quote-form { display: grid; gap: 22px; }
.form-panel { scroll-margin-top: 165px; padding: clamp(28px,5vw,62px); background: #fff; border: 1px solid #ddd; box-shadow: 0 22px 45px rgba(0,0,0,.055); }
.form-panel > header { display: grid; grid-template-columns: 75px 1fr; gap: 25px; margin-bottom: 38px; padding-bottom: 28px; border-bottom: 1px solid #ddd; }
.form-panel > header > span { color: #b6b6b6; font-size: 3.2rem; font-weight: 200; line-height: 1; }
.form-panel header small { color: #777; font-size: .62rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.form-panel header h2 { margin: 7px 0; color: #111; font-size: clamp(1.8rem,3vw,3.2rem); line-height: 1; text-transform: uppercase; }
.form-panel header p { margin: 0; color: #777; font-size: .78rem; line-height: 1.65; }
.form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; }
.form-grid.three { grid-template-columns: repeat(3,1fr); }
.form-grid label, .conditional-field { display: grid; gap: 9px; color: #333; font-size: .68rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid input, .form-grid textarea, .conditional-field input, .conditional-field textarea {
  width: 100%; min-height: 54px; padding: 13px 15px; color: #111; background: #fafafa; border: 1px solid #c9c9c9; border-radius: 0; font: inherit; font-size: .85rem; font-weight: 400; letter-spacing: 0; text-transform: none; outline: none;
}
.form-grid textarea, .conditional-field textarea { min-height: 120px; resize: vertical; }
.form-grid input:focus, .form-grid textarea:focus, .conditional-field input:focus, .conditional-field textarea:focus { border-color: #111; box-shadow: 0 0 0 3px rgba(255,225,0,.42); background: #fff; }
fieldset { margin: 34px 0 0; padding: 0; border: 0; }
fieldset legend { margin-bottom: 14px; color: #333; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.choice-grid { display: grid; gap: 10px; }
.choice-grid.two { grid-template-columns: repeat(2,1fr); }.choice-grid.three { grid-template-columns: repeat(3,1fr); }.choice-grid.four { grid-template-columns: repeat(4,1fr); }
.choice-grid label { position: relative; min-height: 82px; cursor: pointer; }
.choice-grid input { position: absolute; opacity: 0; }
.choice-grid span { height: 100%; display: grid; align-content: center; gap: 4px; padding: 15px 17px; color: #333; background: #f8f8f8; border: 1px solid #ccc; transition: .2s; }
.choice-grid small { color: #888; font-size: .65rem; }
.choice-grid input:checked + span { color: var(--cta-blue); background: #ffe100; border-color: #d9bb00; box-shadow: 0 0 16px rgba(255,225,0,.35); }
.choice-grid input:focus + span { outline: 3px solid rgba(255,225,0,.4); }
.conditional-field { margin-top: 14px; }
.conditional-field[hidden] { display: none; }
.upload-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.upload-grid label { display: grid; gap: 12px; padding: 20px; color: #222; background: #f7f7f7; border: 1px dashed #aaa; font-size: .72rem; font-weight: 800; line-height: 1.45; }
.upload-grid label span small { display: inline-block; margin-left: 7px; padding: 3px 6px; color: #666; background: #e7e7e7; font-size: .52rem; letter-spacing: .06em; text-transform: uppercase; }
.upload-grid input { width: 100%; font-size: .68rem; }
.optional-badge { display: inline-block; vertical-align: middle; margin-left: 10px; padding: 5px 9px; color: var(--cta-blue); background: #ffe100; box-shadow: 0 0 14px rgba(255,225,0,.52); font-size: .62rem; font-style: normal; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.optional-notice { display: flex; align-items: center; gap: 18px; margin: 0 0 24px; padding: 16px 18px; color: #111; background: linear-gradient(90deg,#ffe100,#fff2a0); border-left: 4px solid #111; }
.optional-notice strong { flex: 0 0 auto; font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; }
.optional-notice span { color: #3b3b3b; font-size: .72rem; line-height: 1.5; }
.technical-warning { margin-top: 24px; padding: 24px; color: #ddd; background: #151515; border-left: 4px solid #ffe100; }
.technical-warning strong { color: #ffe100; font-size: .72rem; text-transform: uppercase; }
.technical-warning p { margin: 8px 0 0; font-size: .73rem; line-height: 1.7; }
.subform-title { margin: 38px 0 22px; padding: 12px 0; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; color: #666; font-size: .66rem; font-weight: 900; text-transform: uppercase; }
.form-submit { padding: clamp(28px,4vw,48px); color: #fff; background: linear-gradient(135deg,#050505,#292929); }
.privacy-check { display: grid; grid-template-columns: 22px 1fr; gap: 13px; align-items: start; color: #ccc; font-size: .73rem; line-height: 1.6; }
.privacy-check input { width: 18px; height: 18px; accent-color: #ffe100; }
.submit-quote { width: 100%; min-height: 62px; margin-top: 26px; border: 0; cursor: pointer; }
.form-submit > p { margin: 16px 0 0; color: #777; font-size: .62rem; line-height: 1.6; text-align: center; }
.form-errors { margin-bottom: 25px; padding: 22px 25px; color: #6d1111; background: #fff0f0; border-left: 4px solid #c73434; }
.form-errors ul { margin-bottom: 0; }
.quote-success { padding: clamp(40px,8vw,100px); color: #fff; background: linear-gradient(135deg,#050505,#292929); text-align: center; }
.quote-success > span { color: #ffe100; font-size: .67rem; font-weight: 900; letter-spacing: .18em; }
.quote-success h2 { margin: 14px auto 22px; max-width: 900px; font-size: clamp(2.4rem,5vw,5.5rem); line-height: .92; text-transform: uppercase; }
.quote-success > strong { display: inline-block; margin: 10px; padding: 14px 18px; color: #ffe100; border: 1px solid #ffe100; font-family: monospace; font-size: 1.15rem; }
.quote-success p { color: #aaa; }
.quote-success .nav-cta { display: inline-flex; margin-top: 20px; }
.honey-field { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.field-help-wrap { position: relative; display: inline-flex; vertical-align: middle; margin: 0 5px; }
.field-help {
  width: 18px; height: 18px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  padding: 0; color: #fff; background: #8a8a8a; border: 0; border-radius: 50%;
  font-family: Georgia, "Times New Roman", serif; font-size: .68rem; font-style: italic; font-weight: 700;
  line-height: 1; letter-spacing: 0; text-transform: none; cursor: pointer; transition: .2s;
}
.field-help:hover, .field-help:focus-visible { background: var(--cta-blue); outline: 3px solid rgba(255,225,0,.45); }
.field-help[aria-expanded="true"] { background: var(--cta-blue); }
.field-help-box {
  position: absolute; z-index: 60; top: 26px; left: 0; width: 250px; max-width: 78vw;
  padding: 13px 15px; color: #292929; background: #fff; border: 1px solid #cfcfcf;
  box-shadow: 0 16px 34px rgba(0,0,0,.2); font-size: .72rem; font-weight: 400; font-style: normal;
  line-height: 1.55; letter-spacing: 0; text-transform: none; display: none;
}
.field-help-box::before {
  content: ""; position: absolute; top: -6px; left: 8px; width: 10px; height: 10px;
  background: #fff; border-left: 1px solid #cfcfcf; border-top: 1px solid #cfcfcf; transform: rotate(45deg);
}
.field-help-box.is-open { display: block; }
legend .field-help-wrap { margin: 0 0 0 7px; }
.upload-grid label span .field-help-wrap { margin: 0 0 0 5px; }
@media (max-width: 600px) {
  .field-help-box { width: 230px; }
}
@media (max-width: 900px) {
  .quote-promise-grid { grid-template-columns: 1fr; gap: 35px; }
  .form-progress { top: 70px; grid-template-columns: repeat(6,minmax(72px,1fr)); overflow-x: auto; }
  .form-progress a span { display: none; }
  .form-grid.three, .choice-grid.four { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 600px) {
  .quote-form-section { padding-block: 70px; }
  .form-panel > header { grid-template-columns: 1fr; gap: 12px; }
  .form-panel > header > span { font-size: 2rem; }
  .form-grid, .form-grid.three, .choice-grid.two, .choice-grid.three, .choice-grid.four, .upload-grid { grid-template-columns: 1fr; }
  .optional-notice { align-items: flex-start; flex-direction: column; gap: 6px; }
}


/* LMT — PRIMA DI INIZIARE: fascia senza angoli arrotondati */
html body main section.quote-promise,
html body section.quote-promise,
html body .quote-promise,
html body .quote-promise > .shell,
html body .quote-promise-grid {
  border-radius: 0 !important;
}
