/* Pagine dei servizi (/servizi/{slug}): apertura a colori del servizio, testo ordinato, richiesta sempre a portata di mano */
.sv { max-width: 1180px; }
.sv-hero { grid-template-columns: 1.1fr 1fr; background: linear-gradient(135deg, color-mix(in srgb, var(--sv, #00D185) 82%, #06161a) 0%, color-mix(in srgb, var(--sv, #00D185) 38%, #06161a) 100%); color: #fff; }
.sv-hero .pt-badge { background: rgba(5, 20, 24, 0.85); }
.sv-hero h1 { text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25); }
.sv-hero-media { border-radius: 28px; overflow: hidden; aspect-ratio: 4 / 3; border: 4px solid rgba(255, 255, 255, 0.35); box-shadow: 0 20px 44px rgba(0, 0, 0, 0.4); background: #0b1418; }
.sv-hero-media img, .sv-hero-media video { width: 100%; height: 100%; object-fit: cover; display: block; }
.sv-from { margin-top: 1rem !important; font-size: 1.05rem; color: #eafff7; font-weight: 700; }
.sv-from b { font-size: 2rem; color: #FFD93D; font-weight: 900; margin-inline-start: 0.2rem; }
.pt-btn-wa { background: #25D366; color: #06301a; gap: 0.5rem; box-shadow: 0 6px 0 rgba(0, 0, 0, 0.25); }

.sv-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr); gap: 2rem; margin-top: 2.5rem; align-items: start; }
.sv-aside .action-box { top: 6.5rem; padding: 1.7rem; border-radius: 28px; border: 1px solid color-mix(in srgb, var(--sv, #00D185) 60%, transparent); background: linear-gradient(180deg, color-mix(in srgb, var(--sv, #00D185) 12%, transparent), rgba(255, 255, 255, 0.03)); }
.sv-aside .icon-hero svg, .sv-req .icon-hero svg { width: 46px; height: 46px; }
.sv-wa-link { display: block; margin-top: 1rem; text-align: center; font-weight: 700; color: #25D366; text-decoration: none; }
.sv-wa-link:hover { text-decoration: underline; }

/* Testo del servizio */
.sv-article { min-width: 0; }
.sv-article > *:first-child { margin-top: 0; }
.sv-article h2 { font-size: clamp(1.5rem, 3.6vw, 2.1rem); line-height: 1.2; margin: 0 0 1rem; border: 0; padding: 0; color: var(--m35-ink); }
.sv-article h3 { font-size: 1.3rem; margin: 2rem 0 0.8rem; color: var(--m35-ink); padding-inline-start: 0.8rem; border-inline-start: 5px solid var(--sv, #00D185); line-height: 1.25; }
.sv-article h4 { font-size: 1.05rem; color: var(--m35-ink); margin: 0 0 0.5rem; }
.sv-article p { font-size: 1.05rem; line-height: 1.75; color: var(--m35-slate); margin: 0 0 1rem; }
.sv-article ul { list-style: none; padding: 0; margin: 0.8rem 0 1.4rem; display: grid; gap: 0.6rem; }
.sv-article ul li { position: relative; padding-inline-start: 1.9rem; font-size: 1.02rem; line-height: 1.55; color: var(--m35-ink); }
.sv-article ul li::before { content: ""; position: absolute; inset-inline-start: 0; top: 0.28em; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--sv, #00D185) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='4'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/70% no-repeat; }
.sv-article ol { padding-inline-start: 1.4rem; color: var(--m35-ink); line-height: 1.7; }
.sv-article a { color: var(--sv, #00D185); }
.sv-article table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.6rem; font-size: 0.98rem; }
.sv-article th, .sv-article td { border-bottom: 1px solid var(--m35-border); padding: 0.7rem 0.6rem; text-align: start; color: var(--m35-ink); }
.sv-article .m35-engineering-notice { background: rgba(0, 209, 133, 0.08); border: 1px solid #00D185; border-inline-start: 4px solid #00D185; padding: 1rem 1.25rem; border-radius: 12px; margin-bottom: 1.6rem; font-size: 0.93rem; color: var(--m35-slate); line-height: 1.6; }

/* Card dei prezzi dentro il testo: tutte uguali, prezzo sempre allo stesso punto */
.sv-article .pricing-grid { grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1rem 0 2rem; align-items: stretch; }
.sv-article .pricing-card { padding: 1.4rem 1.2rem; border-radius: 22px; }
.sv-article .pricing-card h4 { min-height: 2.6em; font-size: 1.08rem; }
.sv-article .pricing-card .price { font-size: clamp(1.35rem, 2.2vw, 1.75rem); font-weight: 900; color: #FFD93D; line-height: 1.1; margin-bottom: 1rem; min-height: 2.2em; white-space: nowrap; }
.sv-article .pricing-card .price span { display: block; font-size: 0.82rem; font-weight: 600; color: var(--m35-slate); }
.sv-article .pricing-card ul { margin: 0; padding-top: 1rem; border-top: 1px solid var(--m35-border); gap: 0.5rem; }
.sv-article .pricing-card ul li { font-size: 0.93rem; line-height: 1.4; padding-inline-start: 1.6rem; color: var(--m35-ink); margin: 0; }
.sv-article .pricing-card ul li::before { width: 1rem; height: 1rem; top: 0.2em; }
.sv-article .pricing-card.featured { border-color: rgba(0, 209, 133, 0.6); background: rgba(0, 209, 133, 0.08); }

.sv-share { margin-top: 1.4rem !important; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.6rem; color: var(--m35-slate); font-size: 0.95rem; }
.sv-share a { border: 1px solid var(--m35-border); background: var(--m35-panel); border-radius: 999px; padding: 0.35rem 0.9rem; color: var(--m35-ink); text-decoration: none; font-weight: 700; font-size: 0.9rem; }
.sv-share a:hover { border-color: #00D185; color: #00D185; }
.sv .related-services { margin-top: 3.5rem; }

@media (max-width: 980px) {
    .sv-hero { grid-template-columns: 1fr; }
    .sv-hero-media { order: -1; max-width: 520px; margin-inline: auto; width: 100%; }
    .sv-grid { grid-template-columns: 1fr; }
    .sv-aside .action-box { position: static; }
}
@media (max-width: 700px) {
    .sv-article .pricing-grid { grid-template-columns: 1fr; }
    .sv-article .pricing-card h4, .sv-article .pricing-card .price { min-height: 0; }
}

/* ---- Pagina servizio con scheda testi: sezioni ariose, una dopo l'altra ---- */
.sv > section { margin-top: 3.6rem; }
.sv-intro { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 2.4rem; align-items: start; }
.sv-gets { background: linear-gradient(180deg, color-mix(in srgb, var(--sv, #00D185) 14%, transparent), rgba(255, 255, 255, 0.03)); border: 1px solid color-mix(in srgb, var(--sv, #00D185) 55%, transparent); border-radius: 28px; padding: 1.7rem; }
.sv-gets h3 { font-size: 1.25rem; margin: 0 0 0.4rem; color: var(--m35-ink); }
.sv-gets .pt-list { gap: 0.8rem; margin-top: 1rem; }
.sv-gets .pt-list li { font-size: 1.02rem; }
.sv-gets .pt-list li::before { background-color: var(--sv, #00D185); }

.sv-evid { display: grid; grid-template-columns: 64px 1fr; gap: 1.3rem; align-items: start; padding: 1.8rem; border-color: color-mix(in srgb, var(--sv, #00D185) 60%, transparent); background: color-mix(in srgb, var(--sv, #00D185) 9%, transparent); }
.sv-evid .pt-icon { width: 64px; height: 64px; margin: 0; border-radius: 20px; }
.sv-evid p { font-size: 1.05rem; line-height: 1.7; margin-bottom: 0.6rem; }
.sv-evid-link { color: var(--sv, #00D185); font-weight: 800; text-decoration: none; }
.sv-evid-link:hover { text-decoration: underline; }

.sv-tiles { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

/* Card dei prezzi: tutte uguali, prezzo sempre allo stesso punto, pulsante in fondo */
.sv-prices { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 340px)); gap: 1.2rem; justify-content: center; margin-top: 1.4rem; align-items: stretch; }
.sv-prices .pt-price h3 { min-height: 2.6em; }
.sv-prices .pt-unit { color: var(--m35-slate); font-size: 0.92rem; min-height: 1.4em; margin: 0 0 0.2rem !important; }
.sv-prices p.pt-amount-text { font-size: 1.45rem; padding-top: 0.45rem; }
.sv-prices .pt-list { flex: 1; }
.sv-prices .sv-pick { margin-top: 1.3rem; text-align: center; justify-content: center; }
.sv-more-prices { margin-top: 1rem !important; text-align: center; }
.sv-more-prices a { color: var(--sv, #00D185); font-weight: 700; text-decoration: none; }
.sv-more-prices a:hover { text-decoration: underline; }
.sv .pt-note { text-align: center; }

/* Richiesta in fondo: testo e fiducia a sinistra, modulo a destra */
.sv-req { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 1.05fr); gap: 2.4rem; align-items: start; background: linear-gradient(135deg, color-mix(in srgb, var(--sv, #00D185) 16%, transparent), rgba(255, 255, 255, 0.03)); border: 1px solid color-mix(in srgb, var(--sv, #00D185) 55%, transparent); border-radius: 32px; padding: 2.4rem; scroll-margin-top: 6rem; }
.sv-req .pt-list { margin: 1.2rem 0 1.5rem; gap: 0.7rem; }
.sv-req .pt-list li b { color: var(--m35-ink); }
.sv-req .action-box { position: static; padding: 1.7rem; border-radius: 24px; background: var(--m35-panel); }
.sv-req .sv-share { justify-content: flex-start; }

/* Barra fissa su telefono */
.sv-bar { display: none; }
@media (max-width: 760px) {
    .sv > section { margin-top: 2.6rem; }
    .sv-intro, .sv-req { grid-template-columns: 1fr; gap: 1.6rem; }
    .sv-req { padding: 1.3rem; border-radius: 24px; }
    .sv-evid { grid-template-columns: 1fr; padding: 1.3rem; }
    .sv-prices { grid-template-columns: 1fr; }
    .sv-prices .pt-price h3, .sv-prices .pt-for { min-height: 0; }
    .sv-bar { display: flex; gap: 0.6rem; position: fixed; inset-inline: 0; bottom: 0; z-index: 90; padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom)); background: rgba(8, 16, 20, 0.94); border-top: 1px solid var(--m35-border); backdrop-filter: blur(10px); transition: transform 0.25s ease; }
    .sv-bar .pt-btn { margin: 0; justify-content: center; text-align: center; }
    .sv-bar .pt-btn-main { flex: 1; font-size: 0.95rem; padding-inline: 0.8rem; }
    .sv-bar .pt-btn-wa { flex: 0 0 auto; width: auto; padding-inline: 1rem; }
    .sv-bar.sv-bar-hidden { transform: translateY(110%); }
    body.m35-page-body { padding-bottom: 5rem; }
}
