/* Simulatore di acquisto: stessa logica del sito attuale, nuovo aspetto */
.purchase-tools { display: grid; gap: 28px; }
.purchase-tools [hidden] { display: none !important; }
.calculator-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 20px; padding-bottom: 24px; border-bottom: 1px solid var(--linea-forte); }
.calculator-toolbar h2 { font-size: clamp(26px, 2.6vw, 36px); font-weight: 300; margin-top: 6px; }
.app-tool-kicker { font-size: 15px; font-weight: 500; color: var(--acciaio-scuro); }
.calculator-mode { display: inline-flex; border: 1px solid var(--inchiostro); border-radius: 2px; padding: 3px; gap: 3px; }
.calculator-mode button { min-height: 44px; padding: 0 22px; border: 0; background: transparent; font-size: 16px; cursor: pointer; color: var(--inchiostro); border-radius: 1px; }
.calculator-mode button[aria-pressed="true"] { background: var(--inchiostro); color: var(--carta); }
.app-note { font-size: 15px; color: var(--grafite); line-height: 1.55; }
#purchase-form { display: grid; gap: 28px; }
.app-tool-card { background: var(--bianco); border: 1px solid var(--linea); padding: clamp(22px, 3vw, 40px); display: grid; gap: 22px; align-content: start; }
.app-tool-header h2 { font-size: clamp(24px, 2.2vw, 30px); font-weight: 400; margin-top: 4px; }
.app-tools-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: start; }
.app-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.app-form-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.app-form-grid--1 { grid-template-columns: minmax(0, 1fr); }
.app-form-grid label { display: grid; gap: 8px; align-content: start; font-size: 15px; font-weight: 500; color: var(--inchiostro); }
.app-form-grid small { font-weight: 400; color: var(--grafite); font-size: 13px; line-height: 1.45; }
.app-form-grid input, .app-form-grid select {
  width: 100%; min-height: 50px; padding: 12px 14px; font-size: 17px; font-family: var(--mono); color: var(--inchiostro);
  background: var(--carta); border: 1px solid var(--linea-forte); border-radius: 2px;
}
.app-form-grid select { font-family: var(--sans); appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%231E2629' stroke-width='1.5'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 38px; }
.app-form-grid input:focus, .app-form-grid select:focus { outline: none; border-color: var(--petrolio); box-shadow: 0 0 0 3px rgba(53, 84, 97, 0.18); }
.app-form-grid input:disabled, .app-form-grid select:disabled { color: var(--grafite); background: #E8EEF1; }
.app-form-grid input[aria-invalid="true"] { border-color: #A5392B; }
.app-result { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px; padding-block: 20px; border-top: 1px solid var(--linea-forte); border-bottom: 1px solid var(--linea-forte); }
.app-result span { font-size: 17px; color: var(--inchiostro); }
.app-result strong { font-family: var(--mono); font-weight: 500; font-size: clamp(28px, 3vw, 40px); color: var(--petrolio); overflow-wrap: anywhere; }
.app-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin: 0; }
.app-metrics div { display: grid; gap: 2px; }
.app-metrics dt { font-size: 14px; color: var(--grafite); }
.app-metrics dd { margin: 0; font-family: var(--mono); font-size: 18px; color: var(--inchiostro); overflow-wrap: anywhere; }
.cost-breakdown { display: grid; margin: 0; font-size: 16px; }
.cost-breakdown > div { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding-block: 10px; border-bottom: 1px solid var(--linea); }
.cost-breakdown dt { color: var(--testo); }
.cost-breakdown dd { margin: 0; font-family: var(--mono); color: var(--inchiostro); text-align: right; white-space: nowrap; }
.calculator-error { padding: 16px 18px; background: #F6E3DF; color: #7A2A1D; }
.purchase-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 64px); padding: clamp(24px, 3.4vw, 48px); background: var(--petrolio); color: #DCE8ED; }
.purchase-summary .app-tool-kicker { color: var(--cielo); }
.purchase-summary h2 { color: var(--carta); font-size: 22px; font-weight: 400; margin-top: 4px; }
.cash-total { display: block; margin: 14px 0; font-family: var(--mono); font-weight: 500; font-size: clamp(34px, 4.4vw, 58px); color: var(--carta); line-height: 1.05; overflow-wrap: anywhere; }
.purchase-summary p { font-size: 15px; color: #C9D9E0; }
.purchase-summary .cost-breakdown dt, .purchase-summary .cost-breakdown dd { color: var(--carta); }
.purchase-summary .cost-breakdown > div { border-color: rgba(242, 246, 248, 0.16); }
.calculator-details { border-top: 1px solid var(--linea); padding-top: 14px; }
.calculator-details summary { cursor: pointer; font-weight: 500; color: var(--inchiostro); min-height: 44px; display: flex; align-items: center; }
.calculator-details[open] summary { margin-bottom: 14px; }
.calculator-details p + p { margin-top: 12px; }
.calculation-notes { font-size: 15px; color: var(--grafite); }
.calculation-notes a { color: var(--acciaio-scuro); }
.calculator-table-wrap { overflow-x: auto; margin-top: 16px; }
.calculator-table-wrap table { width: 100%; border-collapse: collapse; font-size: 15px; text-align: right; white-space: nowrap; font-family: var(--mono); }
.calculator-table-wrap th, .calculator-table-wrap td { padding: 10px 12px; border-bottom: 1px solid var(--linea); }
.calculator-table-wrap th { font-family: var(--sans); font-weight: 500; color: var(--inchiostro); background: var(--cielo-chiaro); }
.calculator-table-wrap caption { text-align: left; padding-bottom: 10px; font-family: var(--sans); font-size: 14px; color: var(--grafite); }
.calculator-table-wrap th:first-child, .calculator-table-wrap td:first-child { text-align: left; }
/* Notaio: tasse e onorario separati */
.notary-block { display: grid; gap: 10px; }
.notary-block h3 { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 19px; font-weight: 500; color: var(--inchiostro); padding-bottom: 6px; border-bottom: 1px solid var(--linea-forte); }
.notary-block h3 span { font-size: 13px; font-weight: 400; color: var(--grafite); }
.cost-breakdown .is-total dt, .cost-breakdown .is-total dd { font-weight: 500; color: var(--inchiostro); }
.cost-breakdown .is-total { border-bottom: 0; }

/* Le due torte: il prezzo e il costo vero */
.pies-headline { font-size: clamp(19px, 1.8vw, 24px); color: var(--testo); }
.pies-headline strong { font-family: var(--mono); font-weight: 500; color: var(--petrolio); }
.pies-chart { position: relative; }
.pies-chart svg { display: block; width: 100%; height: auto; max-width: 760px; margin-inline: auto; overflow: visible; }
.pies-chart path { cursor: default; transition: opacity .15s; }
.pies-chart.is-hovering path:not(.is-active) { opacity: .45; }
.pies-tip { position: absolute; pointer-events: none; z-index: 2; padding: 8px 12px; background: var(--inchiostro); color: var(--carta); font-size: 14px; line-height: 1.35; border-radius: 2px; white-space: nowrap; transform: translate(-50%, calc(-100% - 12px)); }
.pies-tip b { font-family: var(--mono); font-weight: 500; }
.pie-legend { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 28px; }
.pie-legend li { display: grid; grid-template-columns: 12px minmax(0, 1fr); align-items: center; gap: 2px 10px; padding-block: 10px; border-bottom: 1px solid var(--linea); font-size: 16px; color: var(--testo); }
.pie-legend i { width: 12px; height: 12px; border-radius: 2px; }
.pie-legend b { grid-column: 2; font-family: var(--mono); font-weight: 400; color: var(--inchiostro); white-space: nowrap; }
.pies-captions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 16px; max-width: 760px; margin: 4px auto 0; text-align: center; }
.pies-captions span { display: block; font-size: 15px; color: var(--grafite); line-height: 1.35; }
.pies-captions b { display: block; margin-top: 4px; font-family: var(--mono); font-weight: 500; font-size: clamp(18px, 2vw, 24px); color: var(--inchiostro); }
.pies-headline b { font-family: var(--mono); font-weight: 500; color: var(--petrolio); }
.pie-legend small { color: var(--grafite); font-size: 13px; margin-left: 6px; }

@media (max-width: 900px) { .app-tools-grid, .purchase-summary { grid-template-columns: minmax(0, 1fr); } .app-form-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .app-form-grid, .app-form-grid--3, .app-metrics { grid-template-columns: minmax(0, 1fr); } .cost-breakdown dd { white-space: normal; } }
