/* Pagina pubblica Prezzi (pricing.html). Si appoggia alle variabili e ai componenti di home-public.css. */

/* ---------- hero + configuratore ---------- */
.dhpr-hero {
    padding-bottom: clamp(9rem, 16vw, 12rem);
    text-align: center;
}

.dhpr-hero-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.dhpr-hero-title {
    max-width: 52rem;
    font-size: clamp(2.1rem, 6vw, 3.6rem);
}

.dhpr-hero-lead {
    max-width: 40rem;
    margin-inline: auto;
}

.dhpr-config {
    display: grid;
    gap: 1.25rem;
    width: min(100%, 44rem);
    margin-top: .5rem;
    padding: 1.25rem;
    border-radius: 1.4rem;
    border: 1px solid rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .07);
    backdrop-filter: blur(10px);
    text-align: left;
}

/* interruttore mensile / annuale */
.dhpr-period {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-self: center;
    width: min(100%, 22rem);
    padding: .3rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, .22);
}

.dhpr-period button {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.6rem;
    padding: .45rem 1rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: rgba(255, 255, 255, .78);
    font-weight: 800;
    transition: color .3s;
}

.dhpr-period button[aria-checked="true"] { color: #1c1406; }
.dhpr-period button:focus-visible { outline: 3px solid var(--dhp-gold-soft); outline-offset: 2px; }

.dhpr-period-pill {
    position: absolute;
    top: .3rem;
    bottom: .3rem;
    left: .3rem;
    width: calc(50% - .3rem);
    border-radius: 999px;
    background: var(--dhp-gold);
    box-shadow: 0 8px 22px rgba(217, 155, 69, .35);
    transition: transform .35s var(--dhp-ease);
}

.dhpr-period[data-active="yearly"] .dhpr-period-pill { transform: translateX(100%); }

.dhpr-save-pill {
    padding: .1rem .45rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    font-size: .72rem;
    letter-spacing: .02em;
    transition: background-color .3s, color .3s;
}

.dhpr-period button[aria-checked="true"] .dhpr-save-pill {
    background: #1c1406;
    color: var(--dhp-gold-soft);
}

/* numero di strutture */
.dhpr-count-label {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .6rem;
    color: #fff;
    font-weight: 800;
}

.dhpr-count-out {
    min-width: 2.5ch;
    color: var(--dhp-gold-soft);
    font-size: 1.9rem;
    font-weight: 800;
    line-height: 1;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.dhpr-range {
    --fill: 0%;
    width: 100%;
    height: 2rem;
    margin: 0;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

.dhpr-range::-webkit-slider-runnable-track {
    height: .5rem;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--dhp-gold) var(--fill), rgba(255, 255, 255, .2) var(--fill));
}

.dhpr-range::-moz-range-track {
    height: .5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .2);
}

.dhpr-range::-moz-range-progress {
    height: .5rem;
    border-radius: 999px;
    background: var(--dhp-gold);
}

.dhpr-range::-webkit-slider-thumb {
    width: 1.6rem;
    height: 1.6rem;
    margin-top: -.55rem;
    border: 4px solid var(--dhp-gold);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .3);
    -webkit-appearance: none;
    transition: transform .2s var(--dhp-ease);
}

.dhpr-range::-moz-range-thumb {
    width: 1.1rem;
    height: 1.1rem;
    border: 4px solid var(--dhp-gold);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 6px 16px rgba(0, 0, 0, .3);
}

.dhpr-range:active::-webkit-slider-thumb { transform: scale(1.12); }
.dhpr-range:focus-visible { outline: 3px solid var(--dhp-gold-soft); outline-offset: 4px; border-radius: 999px; }

.dhpr-range-scale {
    display: flex;
    justify-content: space-between;
    margin-top: .2rem;
    color: rgba(255, 255, 255, .55);
    font-size: .78rem;
    font-weight: 700;
}

.dhpr-count-hint {
    margin: .55rem 0 0;
    color: rgba(255, 255, 255, .6);
    font-size: .84rem;
}

/* ---------- piani ---------- */
.dhpr-plans-wrap {
    position: relative;
    z-index: 2;
    margin-top: clamp(-9rem, -13vw, -6.5rem);
}

.dhpr-plans {
    display: grid;
    gap: 1.25rem;
    align-items: stretch;
}

.dhpr-plan {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: clamp(1.5rem, 3vw, 2rem);
    border-radius: var(--dhp-radius);
    border: 1px solid var(--dhp-line);
    background: #fff;
    box-shadow: 0 24px 50px -34px rgba(10, 64, 56, .5);
    transition: transform .35s var(--dhp-ease), box-shadow .35s var(--dhp-ease);
}

.dhpr-plan:hover {
    transform: translateY(-4px);
    box-shadow: 0 30px 60px -30px rgba(10, 64, 56, .55);
}

.dhpr-plan header { margin-bottom: 1.1rem; }

.dhpr-plan-name {
    margin: 0 0 .3rem;
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: -.01em;
}

.dhpr-plan-for {
    margin: 0;
    min-height: 3em;
    color: var(--dhp-muted);
    font-size: .95rem;
    line-height: 1.5;
}

.dhpr-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .15rem .45rem;
    margin-bottom: .35rem;
}

.dhpr-price-num {
    font-size: clamp(2.5rem, 5vw, 3rem);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.dhpr-price-text { font-size: clamp(2rem, 4vw, 2.4rem); }

.dhpr-price-unit {
    flex-basis: 100%;
    color: var(--dhp-muted);
    font-size: .92rem;
    font-weight: 700;
}

.dhpr-price-detail {
    margin: 0 0 .35rem;
    color: var(--dhp-muted);
    font-size: .86rem;
    line-height: 1.5;
}

.dhpr-price-save {
    display: inline-flex;
    align-self: flex-start;
    margin: .2rem 0 0;
    padding: .2rem .6rem;
    border-radius: 999px;
    background: #e5f3ec;
    color: #0f5b4f;
    font-size: .8rem;
    font-weight: 800;
}

.dhpr-price-save[hidden] { display: none; }

.dhpr-plan-cta {
    width: 100%;
    margin: 1.3rem 0 1.4rem;
}

.dhpr-plan-plus {
    margin: 0 0 .6rem;
    color: var(--dhp-green);
    font-size: .88rem;
    font-weight: 800;
}

.dhpr-plan-list {
    display: grid;
    gap: .65rem;
    margin: 0 0 1.25rem;
    padding: 0;
    list-style: none;
    font-size: .95rem;
    line-height: 1.45;
}

.dhpr-plan-list li {
    position: relative;
    padding-left: 1.75rem;
}

.dhpr-plan-list li::before {
    content: "";
    position: absolute;
    top: .2rem;
    left: 0;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    background: #e5f3ec url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%230f5b4f' d='M6.2 11.3 3.1 8.2l1-1 2.1 2.1 5.7-5.7 1 1z'/%3E%3C/svg%3E") center / .8rem no-repeat;
}

.dhpr-plan-more {
    margin-top: auto;
    color: var(--dhp-green);
    font-size: .9rem;
    font-weight: 800;
    text-decoration: none;
}

.dhpr-plan-more::after { content: " ↓"; }
.dhpr-plan-more:hover { text-decoration: underline; }

.dhpr-plan.is-featured {
    border: 2px solid var(--dhp-green);
    background: linear-gradient(180deg, #f1f8f4 0%, #fff 38%);
    box-shadow: 0 34px 70px -34px rgba(10, 64, 56, .65);
}

.dhpr-plan-badge {
    position: absolute;
    top: -.9rem;
    left: 50%;
    transform: translateX(-50%);
    max-width: calc(100% - 2rem);
    padding: .35rem .85rem;
    border-radius: 999px;
    background: var(--dhp-gold);
    color: #1c1406;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: 0 10px 24px rgba(217, 155, 69, .4);
}

.dhpr-plan.is-dark {
    border-color: transparent;
    background: linear-gradient(160deg, #0d4f45, var(--dhp-green-deep));
    color: #fff;
}

.dhpr-plan.is-dark .dhpr-plan-for,
.dhpr-plan.is-dark .dhpr-price-detail { color: rgba(255, 255, 255, .72); }
.dhpr-plan.is-dark .dhpr-plan-list li::before { background-color: rgba(243, 199, 127, .2); filter: none; }
.dhpr-plan.is-dark .dhpr-plan-list li::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23f3c77f' d='M6.2 11.3 3.1 8.2l1-1 2.1 2.1 5.7-5.7 1 1z'/%3E%3C/svg%3E");
}

/* numero che cambia: piccolo scatto */
.dhpr-bump { animation: dhpr-bump .35s var(--dhp-ease); }

@keyframes dhpr-bump {
    0% { opacity: .35; transform: translateY(.18em); }
    100% { opacity: 1; transform: none; }
}

[data-price] { display: inline-block; }
.dhpr-price-unit[data-price],
.dhpr-price-detail[data-price],
.dhpr-price-save[data-price] { display: block; }
.dhpr-price-save[data-price] { display: inline-flex; }
.dhpr-price-save[data-price][hidden] { display: none; }

/* garanzie sotto i piani */
.dhpr-trust {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: .75rem;
    margin: 2rem 0 0;
    padding: 0;
    list-style: none;
}

.dhpr-trust li {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    padding: 1rem 1.1rem;
    border-radius: 1rem;
    border: 1px solid var(--dhp-line);
    background: #fff;
    font-size: .88rem;
    line-height: 1.4;
    color: var(--dhp-muted);
}

.dhpr-trust i {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: .75rem;
    background: #e5f3ec;
    color: var(--dhp-green);
    font-size: 1.1rem;
}

.dhpr-trust strong {
    display: block;
    color: var(--dhp-ink);
    font-size: .95rem;
}

/* ---------- vetrina video ---------- */
.dhpr-show {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 3vw, 2rem) clamp(.9rem, 2.5vw, 1.75rem);
}

.dhpr-show-card { margin: 0; }

.dhpr-show-phone {
    max-width: 230px;
    padding: .4rem;
    border-radius: 1.8rem;
    transition: transform .5s var(--dhp-ease);
}

.dhpr-show-phone .dhp-video { border-radius: 1.45rem; }
.dhpr-show-card:hover .dhpr-show-phone { transform: translateY(-6px) rotate(-1deg); }

.dhpr-show-card figcaption {
    display: grid;
    gap: .25rem;
    max-width: 230px;
    margin: 1rem auto 0;
    font-size: .88rem;
    line-height: 1.45;
    color: var(--dhp-muted);
}

.dhpr-show-card figcaption strong {
    color: var(--dhp-ink);
    font-size: 1rem;
    line-height: 1.3;
}

.dhpr-tag {
    justify-self: start;
    margin-bottom: .2rem;
    padding: .15rem .55rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .03em;
}

.dhpr-tag.is-both { background: #e5f3ec; color: var(--dhp-green); }
.dhpr-tag.is-full { background: #fbecd5; color: #8a5a17; }

/* ---------- confronto ---------- */
.dhpr-compare-wrap { background: linear-gradient(180deg, #f1f6f3, #f7f4ec); }
.dhpr-compare-wrap .dhp-head-split { align-items: flex-end; }

.dhpr-diff-toggle {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .55rem 1rem .55rem .6rem;
    border: 1px solid var(--dhp-line);
    border-radius: 999px;
    background: #fff;
    color: var(--dhp-ink);
    font-size: .9rem;
    font-weight: 800;
}

.dhpr-diff-toggle:focus-visible { outline: 3px solid var(--dhp-gold); outline-offset: 3px; }

.dhpr-switch {
    position: relative;
    width: 2.4rem;
    height: 1.4rem;
    border-radius: 999px;
    background: #cfd8d4;
    transition: background-color .25s;
}

.dhpr-switch::after {
    content: "";
    position: absolute;
    top: .2rem;
    left: .2rem;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .2);
    transition: transform .25s var(--dhp-ease);
}

.dhpr-diff-toggle[aria-pressed="true"] .dhpr-switch { background: var(--dhp-green); }
.dhpr-diff-toggle[aria-pressed="true"] .dhpr-switch::after { transform: translateX(1rem); }

.dhpr-table-card {
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 24px 50px -36px rgba(10, 64, 56, .5);
}

.dhpr-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .95rem;
}

.dhpr-table th,
.dhpr-table td {
    padding: .85rem 1rem;
    border-bottom: 1px solid var(--dhp-line);
    vertical-align: middle;
}

.dhpr-table tbody th {
    font-weight: 600;
    line-height: 1.45;
}

.dhpr-table td {
    width: 22%;
    text-align: center;
}

.dhpr-table td.is-featured,
.dhpr-table thead .is-featured { background: rgba(15, 91, 79, .045); }

/* intestazione che resta visibile mentre scorri la tabella */
.dhpr-table thead th {
    position: sticky;
    top: var(--dhpr-sticky-top, 0px);
    z-index: 2;
    background: #fff;
    box-shadow: 0 1px 0 var(--dhp-line);
}

.dhpr-table thead th:first-child { border-top-left-radius: 1.25rem; }
.dhpr-table thead th:last-child { border-top-right-radius: 1.25rem; }
.dhpr-table thead .is-featured { background: #f1f8f4; }

.dhpr-th-feature {
    color: var(--dhp-muted);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-align: left;
    text-transform: uppercase;
}

.dhpr-th-plan { text-align: center; }

.dhpr-th-name {
    display: block;
    font-size: 1.05rem;
    font-weight: 800;
}

.dhpr-th-plan.is-featured .dhpr-th-name { color: var(--dhp-green); }

.dhpr-th-price {
    display: block;
    color: var(--dhp-muted);
    font-size: .8rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.dhpr-group th {
    padding-top: 1.4rem;
    padding-bottom: .6rem;
    background: transparent;
    color: var(--dhp-green);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.dhpr-yes {
    display: inline-grid;
    place-items: center;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    background: #e5f3ec;
    color: var(--dhp-green);
    font-size: 1rem;
}

.dhpr-no { color: #b5c0bb; font-weight: 800; }

.dhpr-table tbody tr:not(.dhpr-group):hover th,
.dhpr-table tbody tr:not(.dhpr-group):hover td { background: rgba(217, 155, 69, .06); }

.dhpr-table tfoot th,
.dhpr-table tfoot td { border-bottom: 0; padding-block: 1.25rem; }
.dhpr-table tfoot th { font-weight: 800; }

.dhpr-table-cta {
    min-height: 2.5rem;
    padding: .5rem 1rem;
    font-size: .9rem;
}

[data-compare-table].is-diff-only tr[data-same] { display: none; }

/* ---------- scaglioni ---------- */
.dhpr-tiers {
    display: grid;
    gap: 2.5rem;
    align-items: center;
}

.dhpr-bars {
    display: flex;
    align-items: flex-end;
    gap: .4rem;
    height: 8rem;
    margin-top: 2rem;
}

.dhpr-bar {
    position: relative;
    flex: 1;
    min-width: 0;
    border-radius: .55rem .55rem .2rem .2rem;
    background: linear-gradient(180deg, #2e8c76, var(--dhp-green));
    transform-origin: bottom;
    transition: transform .8s var(--dhp-ease), background-color .3s;
}

.dhpr-bar.is-active { background: linear-gradient(180deg, var(--dhp-gold-soft), var(--dhp-gold)); }

.dhpr-bar span {
    position: absolute;
    bottom: calc(100% + .3rem);
    left: 50%;
    transform: translateX(-50%);
    color: var(--dhp-muted);
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
}

.dhpr-bar small {
    position: absolute;
    top: calc(100% + .35rem);
    left: 50%;
    transform: translateX(-50%);
    color: var(--dhp-muted);
    font-size: .7rem;
    font-weight: 700;
}

.dhp-js .dhp-reveal:not(.is-visible) .dhpr-bar { transform: scaleY(.1); }

.dhpr-tiers-table .dhpr-table {
    border-radius: 1.25rem;
    border: 1px solid var(--dhp-line);
    overflow: hidden;
}

.dhpr-table-compact thead th {
    position: static;
    background: var(--dhp-cream);
    color: var(--dhp-muted);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-align: right;
    box-shadow: none;
}

.dhpr-table-compact thead th:first-child,
.dhpr-table-compact tbody th { text-align: left; }

.dhpr-table-compact td {
    width: auto;
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dhpr-table-compact td small { color: var(--dhp-muted); font-weight: 700; }
.dhpr-table-compact tbody tr:last-child th,
.dhpr-table-compact tbody tr:last-child td { border-bottom: 0; }
.dhpr-table-compact .is-highlight th,
.dhpr-table-compact .is-highlight td { background: #fdf4e6; }

.dhpr-tiers-note {
    margin: .75rem 0 0;
    color: var(--dhp-muted);
    font-size: .84rem;
}

/* ---------- responsive ---------- */
/* Su telefono e tablet il piano consigliato viene per primo. */
@media (max-width: 991.98px) {
    .dhpr-plan.is-featured { order: -1; margin-top: .6rem; }
    .dhpr-plan-for { min-height: 0; }
}

@media (max-width: 575.98px) {
    .dhpr-hero { padding-bottom: 7.5rem; }
    .dhpr-table th,
    .dhpr-table td { padding: .75rem .55rem; }
    .dhpr-table { font-size: .88rem; }
    .dhpr-th-price { display: none; }
    .dhpr-table td { width: 4.1rem; padding-inline: .3rem; }
    .dhpr-th-plan { width: 4.1rem; padding-inline: .2rem; }
    .dhpr-th-name { font-size: .78rem; }
    .dhpr-th-feature { font-size: .68rem; letter-spacing: .06em; }
    .dhpr-table tbody th { font-size: .86rem; }
    .dhpr-yes { width: 1.5rem; height: 1.5rem; font-size: .85rem; }
    .dhpr-table-cta { padding-inline: .6rem; font-size: .8rem; }
    .dhpr-table-compact th,
    .dhpr-table-compact td { font-size: .82rem; }
}

@media (min-width: 768px) {
    .dhpr-config {
        grid-template-columns: auto 1fr;
        align-items: center;
        gap: 2rem;
        padding: 1.4rem 1.75rem;
    }
    .dhpr-period { width: 17rem; }
    .dhpr-show { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 992px) {
    .dhpr-plans { grid-template-columns: 1fr 1.08fr 1fr; }
    .dhpr-plan.is-featured { margin-block: -.9rem; padding-block: 2.6rem 2.4rem; }
    .dhpr-tiers { grid-template-columns: 1fr 1fr; gap: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
    .dhpr-period-pill,
    .dhpr-bar,
    .dhpr-show-phone,
    .dhpr-plan { transition: none; }
    .dhpr-bump { animation: none; }
}

[data-compare-table].is-diff-only tbody[data-same-group] { display: none; }

.dhp-js .dhp-reveal[data-delay="3"] { transition-delay: .36s; }

/* ---------- richiesta di informazioni ---------- */
.dhpr-contact-wrap { background: linear-gradient(180deg, #f7f4ec, #f1f6f3); }

.dhpr-contact {
    display: grid;
    gap: 2rem;
    align-items: start;
}

.dhpr-contact-points {
    display: grid;
    gap: .75rem;
    margin: 1.75rem 0 0;
    padding: 0;
    list-style: none;
    font-size: .98rem;
}

.dhpr-contact-points li {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.dhpr-contact-points i {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: .75rem;
    background: #e5f3ec;
    color: var(--dhp-green);
}

.dhpr-contact-points a { color: var(--dhp-green); font-weight: 800; }

.dhpr-contact-card {
    padding: clamp(1.3rem, 3vw, 2rem);
    border: 1px solid var(--dhp-line);
    border-radius: var(--dhp-radius);
    background: #fff;
    box-shadow: 0 24px 50px -36px rgba(10, 64, 56, .5);
}

.dhpr-contact-grid {
    display: grid;
    gap: .9rem 1rem;
    margin-bottom: 1rem;
}

.dhpr-contact-card .form-label {
    margin-bottom: .3rem;
    font-size: .88rem;
    font-weight: 800;
}

.dhpr-contact-card .form-control,
.dhpr-contact-card .form-select {
    min-height: 2.9rem;
    border-radius: .8rem;
    border-color: #d5ddd9;
}

.dhpr-contact-card .form-control:focus,
.dhpr-contact-card .form-select:focus {
    border-color: var(--dhp-green);
    box-shadow: 0 0 0 .2rem rgba(15, 91, 79, .15);
}

.dhpr-contact-card .form-check { font-size: .88rem; }
.dhpr-contact-card .form-check a { color: var(--dhp-green); }

.dhpr-contact-submit { width: 100%; }

/* campo trappola per i bot: fuori dallo schermo, non nascosto con display:none */
.dhpr-hp {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.dhpr-plan-alt {
    display: block;
    margin: -.6rem 0 1.3rem;
    color: var(--dhp-gold-soft);
    font-size: .88rem;
    font-weight: 800;
    text-align: center;
}

@media (min-width: 576px) {
    .dhpr-contact-grid { grid-template-columns: 1fr 1fr; }
    .dhpr-span-2 { grid-column: 1 / -1; }
}

@media (min-width: 992px) {
    .dhpr-contact { grid-template-columns: 1fr 1.1fr; gap: 4rem; }
}

/* esito dei moduli pubblici: conferma al posto del modulo, errore in cima */
.dhpr-sent {
    display: grid;
    justify-items: center;
    gap: .5rem;
    padding: 1.5rem .5rem;
    text-align: center;
    outline: none;
}

.dhpr-sent-icon {
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: .4rem;
    border-radius: 50%;
    background: #e5f3ec;
    color: var(--dhp-green);
    font-size: 1.8rem;
    animation: dhpr-sent-pop .45s var(--dhp-ease);
}

@keyframes dhpr-sent-pop {
    0% { transform: scale(.6); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}

.dhpr-sent h3 { margin: 0; font-size: 1.35rem; font-weight: 800; }
.dhpr-sent p { margin: 0; max-width: 28rem; color: var(--dhp-muted); line-height: 1.55; }
.dhpr-sent p strong { color: var(--dhp-ink); word-break: break-all; }
.dhpr-sent-hint { font-size: .88rem; }
.dhpr-sent-hint a { color: var(--dhp-green); font-weight: 800; }
.dhpr-sent .dhp-btn { margin-top: .75rem; }

.dhpr-error {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    margin-bottom: 1.1rem;
    padding: .85rem 1rem;
    border: 1px solid #f1b8b4;
    border-radius: .9rem;
    background: #fdf0ef;
    color: #8a2620;
    font-size: .92rem;
    line-height: 1.45;
    outline: none;
}

.dhpr-error i { margin-top: .1rem; color: #c8372d; }
.dhpr-error strong { display: block; color: #6e1c17; }

.dhpr-contact-submit[disabled] { opacity: .7; cursor: progress; transform: none; }

@media (prefers-reduced-motion: reduce) {
    .dhpr-sent-icon { animation: none; }
}
