/* Pagina Preventivo: scelta immediata in hero e richiamata in modale. */
.quote-page .company-hero h1 {max-width: 10.5ch}
.quote-page .company-hero-lead {max-width: 34rem}
.quote-page .faq-chat-section {background: var(--color-ink)}
.quote-hero-actions {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: center; gap: clamp(.75rem, 1.7vw, 1.5rem); padding: clamp(1rem, 3vw, 3rem); background: var(--color-ink); color: var(--color-surface)}
.quote-actions-title {grid-column: 1 / -1; margin: 0; color: var(--color-surface-pure); font-family: var(--font-serif); font-size: clamp(1.75rem, 3vw, 2.75rem); line-height: 1; letter-spacing: -.025em}
.quote-action-tile {position: relative; display: flex; aspect-ratio: 1; min-width: 0; min-height: 0; overflow: hidden; flex-direction: column; justify-content: space-between; padding: clamp(1rem, 2.1vw, 2rem); border: 0; color: inherit; text-align: left; text-decoration: none; font: inherit; cursor: pointer; transition: transform .35s cubic-bezier(.16, 1, .3, 1), background-color .25s ease, color .25s ease}
.quote-action-form {border: 2px solid var(--color-action-border); background: var(--color-button-primary-bg-strong); color: var(--color-surface-pure); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px)}
.quote-action-callback {background: var(--color-surface); color: var(--color-ink)}
.quote-action-symbol {display: block; flex: none; width: clamp(2rem, 3vw, 2.75rem); height: clamp(2rem, 3vw, 2.75rem); fill: none; stroke: currentColor; stroke-width: 1; stroke-linecap: round; stroke-linejoin: round}
.quote-action-symbol-form {fill: currentColor; stroke: none}
.quote-action-tile strong {font-family: var(--font-serif); font-size: clamp(1.35rem, 2.25vw, 2.45rem); font-weight: 700; line-height: 1.03; letter-spacing: -.025em; text-wrap: balance}
.quote-action-arrow {align-self: flex-end; font-size: clamp(1.4rem, 2.2vw, 2.25rem); line-height: 1; transition: transform .3s cubic-bezier(.16, 1, .3, 1)}
.quote-action-tile:hover {transform: translateY(-.4rem)}
.quote-action-tile:hover .quote-action-arrow {transform: translate(.2rem, -.2rem)}
.quote-action-form:hover {border-color: var(--color-action-border-hover); background: var(--color-button-primary-hover)}
.quote-action-callback:hover {background: var(--color-surface-pure)}
.quote-action-tile:focus-visible {outline: 3px solid var(--color-surface-pure); outline-offset: 4px}
.quote-action-callback:focus-visible {outline-color: var(--color-brand-red)}

.quote-page #preventivo {display: block; min-height: 0; margin-top: 0 !important; padding-block: clamp(4rem, 8vw, 8rem); scroll-margin-top: var(--header-height)}
.quote-form-layout {display: grid; gap: clamp(3rem, 7vw, 7rem); align-items: start}
.quote-form-layout > [data-quote-form-picker] {width: 100%; max-width: 43.75rem; justify-self: start}
.quote-form-copy {display: grid; gap: 1.25rem; align-content: start}
.quote-form-label {color: var(--color-text-on-dark-muted); font-weight: 700}
.quote-form-copy h2 {max-width: 9ch; color: var(--color-surface); font-size: clamp(3rem, 6vw, 5.5rem); line-height: .98; letter-spacing: -.035em; text-wrap: balance}
.quote-form-copy > p:not(.quote-form-label) {max-width: 36ch; color: var(--color-text-on-dark-muted); font-size: clamp(1.1rem, 1.6vw, 1.35rem); line-height: 1.55}
.quote-form-guide {margin-top: clamp(1rem, 3vw, 2.5rem); border-top: 1px solid var(--color-border-on-dark)}
.quote-form-guide > div {display: grid; grid-template-columns: minmax(5.5rem, .35fr) minmax(0, 1fr); gap: 1rem; padding-block: 1.15rem; border-bottom: 1px solid var(--color-border-on-dark)}
.quote-form-guide dt {font-weight: 700}
.quote-form-guide dd {color: var(--color-text-on-dark-muted); line-height: 1.5}
.quote-form-picker {display: grid; min-width: 0; gap: clamp(1.75rem, 4vw, 3rem); scroll-margin-top: calc(var(--header-height) + 1.5rem)}
.quote-type-fieldset {min-width: 0; margin: 0; padding: 0; border: 0}
.quote-type-fieldset legend {max-width: 14ch; margin: 0 0 1.25rem; padding: 0; color: var(--color-surface-pure); font-family: var(--font-serif); font-size: clamp(1.8rem, 3vw, 2.7rem); font-weight: 700; line-height: 1.05; letter-spacing: -.025em; text-wrap: balance}
.quote-type-options {display: grid; gap: .75rem}
.quote-type-option {display: flex; width: 100%; min-width: 0; min-height: 5.5rem; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; padding: 1rem 1.125rem; border: 1px solid var(--color-border-on-dark-strong); border-radius: 0; background: var(--color-surface); box-shadow: none; color: var(--color-ink); font-family: var(--font-serif); font-size: clamp(1.35rem, 2.1vw, 1.8rem); font-weight: 700; line-height: 1.08; text-align: left; cursor: pointer; transition: transform .3s cubic-bezier(.16, 1, .3, 1), background-color .2s ease, border-color .2s ease, color .2s ease}
.quote-type-option > span:last-child {flex: 0 0 auto; font-family: var(--font-sans); font-size: 1.4rem; line-height: 1; transition: transform .25s cubic-bezier(.16, 1, .3, 1)}
.quote-type-option:hover {transform: translateY(-.25rem); background: var(--color-surface-pure)}
.quote-type-option[aria-expanded="true"] {border-color: var(--color-action-border); background: var(--color-button-primary-bg-strong); color: var(--color-surface-pure); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px)}
.quote-type-option[aria-expanded="true"] > span:last-child {transform: rotate(180deg)}
.quote-type-option:focus-visible {outline: 3px solid var(--color-surface-pure); outline-offset: 4px}
.quote-form-panel {min-width: 0; scroll-margin-top: calc(var(--header-height) + 1.5rem)}
.quote-form-panel[hidden] {display: none !important}
.quote-form-panel:focus {outline: 0}
.quote-form-section form {display: grid; gap: 1.5rem; min-width: 0}
.quote-form-section .company-form-grid {display: grid; gap: 1rem}
.quote-form-section .button {width: 100%}
.quote-form-section .form-note {color: var(--color-text-on-dark-muted)}

.quote-dialog {box-sizing: border-box; inset: 0; width: 100vw; max-width: none; height: 100svh; max-height: none; margin: 0; padding: clamp(1.25rem, 4vw, 4rem) max(clamp(1.25rem, 6vw, 6rem), calc((100vw - 96rem) / 2)); overflow: auto; overscroll-behavior: contain; border: 0; background: var(--color-brand-red); color: var(--color-surface-pure); box-shadow: none; clip-path: inset(0); transition: background-color .36s cubic-bezier(.16, 1, .3, 1), color .24s ease}
.quote-dialog[open] {display: grid; grid-template-rows: auto 1fr; align-content: start}
.quote-dialog::backdrop {background: color-mix(in srgb, var(--color-ink) 68%, transparent); opacity: 1}
.quote-dialog.is-form-active {background: var(--color-surface); color: var(--color-ink)}
:is(.quote-dialog, .callback-dialog).is-animating {overflow: hidden; will-change: clip-path}
:is(.quote-dialog, .callback-dialog).is-opening > * {animation: quote-dialog-content-in .3s .18s cubic-bezier(.22, 1, .36, 1) both}
:is(.quote-dialog, .callback-dialog).is-closing > * {animation: quote-dialog-content-out .18s ease both}
:is(.quote-dialog, .callback-dialog).is-opening::backdrop {animation: quote-dialog-backdrop-in .42s ease-out both}
:is(.quote-dialog, .callback-dialog).is-closing::backdrop {animation: quote-dialog-backdrop-out .28s ease-in both}
@keyframes quote-dialog-content-in {from {opacity: 0; transform: scale(.985)} to {opacity: 1; transform: scale(1)}}
@keyframes quote-dialog-content-out {to {opacity: 0; transform: scale(.99)}}
@keyframes quote-dialog-backdrop-in {from {opacity: 0} to {opacity: 1}}
@keyframes quote-dialog-backdrop-out {from {opacity: 1} to {opacity: 0}}
.quote-dialog .dialog-head {display: flex; min-height: 3rem; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: clamp(2rem, 5vw, 4rem)}
.quote-dialog .close-button {position: fixed; z-index: 2; top: clamp(1rem, 2.5vw, 2rem); right: max(clamp(1rem, 2.5vw, 2rem), calc((100vw - 96rem) / 2)); width: 3rem; height: 3rem; border: 1px solid var(--color-surface-pure); background: var(--color-brand-red); color: var(--color-surface-pure); box-shadow: none; cursor: pointer; transition: background-color .3s cubic-bezier(.16, 1, .3, 1), border-color .3s ease, color .3s ease}
.quote-dialog .close-button:hover {background: var(--color-surface-pure); color: var(--color-brand-red)}
.quote-dialog .close-button:focus-visible {outline: 3px solid var(--color-surface-pure); outline-offset: 3px}
.quote-dialog-back {display: inline-flex; min-height: 44px; align-items: center; gap: .75rem; padding: .5rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--color-surface-pure); font: inherit; font-weight: 700; cursor: pointer; transition: color .24s ease, opacity .2s ease}
.quote-dialog-back[hidden] {display: none}
.quote-dialog-back:hover {color: var(--color-surface-pure); opacity: .78}
.quote-dialog-back:focus-visible {outline: 3px solid var(--color-surface-pure); outline-offset: 4px}
.quote-dialog .quote-form-picker {align-self: start; width: min(100%, 54rem); margin-inline: auto}
.quote-dialog .quote-type-fieldset legend {max-width: 16ch; font-size: clamp(2.75rem, 6vw, 5.5rem); line-height: .96}
.quote-dialog .quote-type-fieldset h2 {max-width: 16ch; margin: 0; color: var(--color-surface-pure); font-family: var(--font-serif); font-size: clamp(2.75rem, 6vw, 5.5rem); line-height: .96; letter-spacing: -.025em; text-wrap: balance}
.quote-dialog .quote-type-options {grid-template-columns: minmax(0, 1fr); margin-top: clamp(2rem, 5vw, 4rem)}
.quote-dialog .quote-type-option {min-height: clamp(4.75rem, 7vw, 6.5rem); padding: clamp(.875rem, 1.75vw, 1.5rem) clamp(1.125rem, 3vw, 2rem); font-size: clamp(1.5rem, 3vw, 2.25rem); text-decoration: none}
.quote-dialog .quote-form-panel {width: 100%; max-width: 43.75rem; margin-inline: auto}
.quote-dialog.is-form-active .close-button {border-color: var(--color-ink); background: var(--color-surface); color: var(--color-ink)}
.quote-dialog.is-form-active .close-button:hover {background: var(--color-ink); color: var(--color-surface-pure)}
.quote-dialog.is-form-active .close-button:focus-visible {outline-color: var(--color-brand-red)}
.quote-dialog.is-form-active .quote-dialog-back {color: var(--color-ink)}
.quote-dialog.is-form-active .quote-dialog-back:hover {color: var(--color-brand-red); opacity: 1}
.quote-dialog.is-form-active .quote-dialog-back:focus-visible {outline-color: var(--color-brand-red)}
.quote-dialog.is-form-active .quote-form-panel {color: var(--color-ink); animation: quote-form-stage-in .38s .08s cubic-bezier(.22, 1, .36, 1) both}
@media (max-width: 699px) {
  /* Let iOS repaint Quform pages without a persistent animated layer. */
  .quote-dialog.is-form-active .quote-form-panel {animation: none}
  .quote-dialog:not(.is-animating) {clip-path: none}
}
@keyframes quote-form-stage-in {from {opacity: 0; transform: translateY(.75rem)} to {opacity: 1; transform: translateY(0)}}

.callback-dialog {--callback-field-height: 3.75rem; box-sizing: border-box; inset: 0; width: 100vw; max-width: none; height: 100svh; max-height: none; margin: 0; padding: clamp(1.25rem, 5vw, 5rem) max(clamp(1.25rem, 6vw, 6rem), calc((100vw - 96rem) / 2)); overflow: auto; overscroll-behavior: contain; border: 0; background: var(--color-surface); color: var(--color-ink); box-shadow: none; clip-path: inset(0)}
.callback-dialog[open] {display: grid; grid-template-columns: minmax(0, 1fr); align-content: start}
.callback-dialog::backdrop {background: color-mix(in srgb, var(--color-ink) 68%, transparent); opacity: 1}
.callback-dialog .dialog-head {margin: 0 0 clamp(2rem, 5vw, 4.5rem); padding-right: 4rem}
.callback-dialog .dialog-head p {font-size: clamp(1rem, 1.4vw, 1.2rem)}
.callback-dialog .close-button {position: fixed; z-index: 1; top: clamp(1rem, 2.5vw, 2rem); right: max(clamp(1rem, 2.5vw, 2rem), calc((100vw - 96rem) / 2)); width: 3rem; height: 3rem; border: 1px solid var(--color-ink); background: var(--color-surface); box-shadow: none; cursor: pointer}
.callback-dialog .close-button:hover {background: var(--color-ink); color: var(--color-surface-pure)}
.callback-dialog .close-button:focus-visible {outline: 3px solid var(--color-brand-red); outline-offset: 3px}
.callback-dialog h2 {max-width: 10ch; font-size: clamp(2.75rem, 6vw, 5.5rem); line-height: .95; letter-spacing: -.035em; text-wrap: balance}
.callback-dialog > p {max-width: 34ch; margin-top: clamp(1.25rem, 2.5vw, 2rem); color: var(--color-text-muted); font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.55; text-wrap: pretty}
.callback-dialog .lasicura-quform-callback {width: 100%; min-width: 0; margin-top: clamp(2.5rem, 6vw, 5rem)}
.callback-dialog .quform-form-7,
.callback-dialog .quform-form-7 .quform-form-inner,
.callback-dialog .quform-form-7 .quform-elements,
.callback-dialog .quform-form-7 .quform-element-page {width: 100%; min-width: 0; margin: 0; padding: 0; font-family: var(--font-sans); color: var(--color-ink)}
.callback-dialog .quform-form-7 .quform-page-7_1 > .quform-child-elements {display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem}
.callback-dialog .quform-form-7 .quform-element:not(.quform-sr-only) > .quform-spacer {margin: 0; padding: 0}
.callback-dialog .quform-form-7 .quform-element-row {width: 100% !important; max-width: none !important; margin: 0 !important}
.callback-dialog .quform-form-7 .quform-element-column {width: 100% !important; padding: 0 !important}
.callback-dialog .quform-form-7 .quform-label {margin: 0 0 .55rem}
.callback-dialog .quform-form-7 .quform-label-text {font-size: 1rem; font-weight: 700; line-height: 1.35}
.callback-dialog .quform-form-7 .quform-required {color: var(--color-brand-red)}
.callback-dialog .quform-form-7 :is(.quform-field-text, .quform-field-select) {box-sizing: border-box; display: block; width: 100%; min-width: 0; max-width: none; height: var(--callback-field-height); min-height: var(--callback-field-height); margin: 0; padding: .85rem 1rem; border: 1px solid var(--color-control-border); border-radius: 0; background: var(--color-surface-pure); box-shadow: none !important; color: var(--color-ink); font: inherit; line-height: 1.2}
.callback-dialog .quform-form-7 :is(.quform-field-text, .quform-field-select):focus {border-color: var(--color-brand-red); outline: 2px solid var(--color-brand-red); outline-offset: 2px; box-shadow: none !important}
.callback-dialog .quform-form-7 .quform-element-checkbox {grid-column: 1 / -1; padding-top: .25rem}
.callback-dialog .quform-form-7 .quform-element-checkbox .quform-label {max-width: 52ch; margin-bottom: .75rem}
.callback-dialog .quform-form-7 .quform-option {display: flex; align-items: center; gap: .75rem; margin: 0}
.callback-dialog .quform-form-7 .quform-field-checkbox {box-sizing: border-box; flex: 0 0 auto; width: 1.25rem; min-width: 1.25rem; height: 1.25rem; min-height: 1.25rem; margin: 0; padding: 0; border: 1px solid var(--color-control-border); border-radius: 0; background: var(--color-surface-pure); box-shadow: none; accent-color: var(--color-brand-red)}
.callback-dialog .quform-form-7 .quform-option-label {display: inline-flex; align-items: center; width: auto; max-width: none; margin: 0; color: var(--color-ink); font-size: 1rem; line-height: 1.4; white-space: nowrap}
.callback-dialog .quform-form-7 .quform-element-submit {grid-column: 1 / -1; margin-top: .25rem}
.callback-dialog .quform-form-7 .quform-button-submit {float: none; width: 100%; margin: 0}
.callback-dialog .quform-form-7 .quform-submit {display: flex; align-items: center; justify-content: center; width: 100%; min-height: var(--callback-field-height); padding: .85rem 1.25rem; border: 0; border-radius: 0; background: var(--color-brand-red); box-shadow: none; color: var(--color-surface-pure); font: inherit; font-weight: 800; cursor: pointer}
.callback-dialog .quform-form-7 .quform-submit:hover {background: var(--color-brand-red-hover)}
.callback-dialog .quform-form-7 .quform-submit:focus-visible {outline: 3px solid var(--color-ink); outline-offset: 3px}
.callback-dialog .button {width: 100%}
.callback-dialog .field-error {color: var(--color-brand-red)}
.callback-dialog .form-note {color: var(--color-text-muted); font-size: .9rem; line-height: 1.5}
.callback-dialog .quote-summary {white-space: pre-line}
.callback-dialog .actions {display: grid; gap: .75rem; margin-top: 1.5rem}
.callback-edit {margin-top: 1.25rem; padding: .25rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--color-ink); font: inherit; font-weight: 700; cursor: pointer}
.callback-edit:hover {color: var(--color-brand-red)}
.callback-edit:focus-visible {outline: 2px solid var(--color-brand-red); outline-offset: 4px}

@media (min-width: 700px) {
  .quote-type-options {grid-template-columns: repeat(2, minmax(0, 1fr))}
  .quote-form-section .company-form-grid {grid-template-columns: repeat(2, minmax(0, 1fr))}
  .callback-fields {grid-template-columns: repeat(2, minmax(0, 1fr))}
  .callback-fields .field:last-child {grid-column: 1 / -1}
  .callback-dialog .actions {grid-template-columns: repeat(2, minmax(0, 1fr))}
  .callback-dialog .quform-form-7 .quform-page-7_1 > .quform-child-elements {grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 1.5rem); row-gap: 1.5rem}
  .callback-dialog .quform-form-7 .quform-page-7_1 > .quform-child-elements > .quform-element-name {grid-column: 1}
  .callback-dialog .quform-form-7 .quform-page-7_1 > .quform-child-elements > .quform-element-select {grid-column: 2}
}

@media (min-width: 900px) {
  .quote-form-layout {grid-template-columns: minmax(0, 1fr) minmax(0, 1fr)}
  .callback-dialog[open] {grid-template-columns: minmax(18rem, .8fr) minmax(28rem, 1.2fr); grid-template-rows: auto auto 1fr; column-gap: clamp(3rem, 8vw, 9rem)}
  .callback-dialog .dialog-head {grid-column: 1 / -1}
  .callback-dialog h2 {grid-column: 1; grid-row: 2}
  .callback-dialog > p {grid-column: 1; grid-row: 3; align-self: start}
  .callback-dialog .lasicura-quform-callback {grid-column: 2; grid-row: 2 / 4; align-self: start; margin-top: 0}
}

@media (max-width: 699px) {
  .quote-form-layout {display: flex; flex-direction: column}
  .quote-form-layout > [data-quote-form-picker] {order: -1}
}

@media (max-width: 699px) {
  .quote-hero .company-hero-inner {grid-template-rows: auto auto}
  .quote-hero-actions {min-height: 18rem; margin-inline: calc(var(--gutter) * -1); padding: clamp(1rem, 4vw, 1.5rem)}
  .quote-action-tile strong {font-size: clamp(1.05rem, 5vw, 1.45rem)}
  .quote-page .company-hero-lead {font-size: 1.05rem}
  .quote-form-copy h2 {font-size: clamp(2.75rem, 13vw, 4rem)}
  .quote-form-guide > div {grid-template-columns: 5.5rem minmax(0, 1fr)}
  .quote-dialog {padding: 1.25rem var(--gutter) max(1.25rem, env(safe-area-inset-bottom))}
  .quote-dialog .dialog-head {margin-bottom: 2rem; padding-right: 3.75rem}
  .quote-dialog .quote-type-fieldset legend {font-size: clamp(2.5rem, 12vw, 4rem)}
  .quote-dialog .quote-type-fieldset h2 {font-size: clamp(2.5rem, 12vw, 4rem)}
  .quote-dialog .quote-type-options {grid-template-columns: 1fr}
}

@media (max-width: 699px) and (max-height: 700px) {
  .quote-page .company-hero-copy {padding-block: .75rem 1rem}
  .quote-page .company-breadcrumbs {margin-bottom: .35rem; font-size: .9rem}
  .quote-page .company-kicker {margin-bottom: .3rem; font-size: .9rem}
  .quote-page .company-hero h1 {font-size: clamp(2.15rem, 10.5vw, 2.8rem); line-height: .96}
  .quote-page .company-hero-lead {margin-top: .55rem; font-size: .9rem; line-height: 1.3}
  .quote-hero-actions {min-height: 14rem}
}

@media (max-width: 359px) {
  .quote-hero-actions {min-height: 16rem; gap: .65rem; padding: .75rem}
  .quote-action-tile {padding: .85rem}
  .quote-action-tile strong {font-size: 1rem}
}

@media (prefers-reduced-motion: reduce) {
  .quote-action-tile, .quote-action-arrow, .quote-type-option, .quote-type-option > span:last-child, .quote-dialog-back {transition: none}
  .quote-action-tile:hover, .quote-type-option:hover {transform: none}
  .quote-dialog, .quote-dialog::backdrop, .quote-dialog > *, .callback-dialog, .callback-dialog::backdrop, .callback-dialog > * {animation: none !important; transition: none !important}
}


/* Floating Quform navigation inside full-screen quote modals. */
.quote-dialog .quform-floating-nav,
.callback-dialog .quform-floating-nav {
  z-index: 50;
}
