/* ==================================================
   RM SERVICE PAGES
   Template condiviso Forfettario / Semplificato
   ================================================== */

.rm-service-page,
.rm-service-page * {
    box-sizing:border-box;
}

.rm-service-page {
    width:100%;
}

.rm-service-inner {
    width:100%;
    max-width:1120px;
    margin:0 auto;
}

.rm-service-hero {
    padding:64px 0 74px;
}

.rm-service-kicker {
    margin:0 0 18px !important;
    color:var(--rm-color-primary);
    font-size:13px;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.rm-service-hero h1 {
    max-width:850px;
    margin:0 0 22px !important;
    font-size:clamp(42px,5vw,64px);
    line-height:.98;
    letter-spacing:-.045em;
}

.rm-service-lead {
    max-width:760px;
    margin:0 !important;
    color:#586579;
    font-size:20px;
    line-height:1.55;
}

.rm-service-hero-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
    margin-top:52px;
}

.rm-service-price-card,
.rm-service-summary {
    padding:38px;
    border:1px solid #dce2ea;
    border-radius:16px;
    background:#fff;
}

.rm-service-price-card {
    border-color:var(--rm-color-primary);
}

.rm-service-card-label {
    display:inline-block;
    margin-bottom:22px;
    padding:6px 11px;
    border-radius:7px;
    background:#eef5ff;
    color:var(--rm-color-primary);
    font-size:12px;
    font-weight:700;
    letter-spacing:.04em;
}

.rm-service-price {
    margin-bottom:20px;
}

.rm-service-price strong {
    display:block;
    font-size:48px;
    line-height:1;
    letter-spacing:-.04em;
}

.rm-service-price span {
    display:block;
    margin-top:7px;
    color:#667085;
    font-size:15px;
}

.rm-service-price-card p {
    margin:0 0 26px !important;
    color:#586579;
}

.rm-service-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:12px 20px;
    border:1px solid var(--rm-color-primary);
    border-radius:8px;
    background:var(--rm-color-primary);
    color:#fff !important;
    font-size:15px;
    font-weight:650;
    line-height:1;
    text-decoration:none !important;
}

.rm-service-summary h2 {
    margin:0 0 22px !important;
    font-size:28px;
}

.rm-service-summary ul,
.rm-service-app-card ul {
    margin:0;
    padding:0;
    list-style:none;
}

.rm-service-summary li,
.rm-service-app-card li {
    padding:12px 0;
    border-bottom:1px solid #e3e7ed;
}

.rm-service-summary li:last-child,
.rm-service-app-card li:last-child {
    border-bottom:0;
}

.rm-service-section {
    padding:88px 0;
    border-top:1px solid #e2e6ec;
}

.rm-service-section h2,
.rm-service-note h2,
.rm-service-final h2 {
    max-width:800px;
    margin:0 0 22px !important;
    font-size:40px;
    line-height:1.08;
    letter-spacing:-.035em;
}

.rm-service-feature-grid,
.rm-service-steps {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:0;
    margin-top:48px;
    border-top:1px solid #dfe3e8;
}

.rm-service-feature-grid article,
.rm-service-steps article {
    padding:32px 40px 32px 0;
    border-bottom:1px solid #dfe3e8;
}

.rm-service-feature-grid article:nth-child(even),
.rm-service-steps article:nth-child(even) {
    padding-left:40px;
    border-left:1px solid #dfe3e8;
}

.rm-service-feature-grid article > span,
.rm-service-steps article > span {
    display:block;
    margin-bottom:15px;
    color:var(--rm-color-primary);
    font-size:13px;
    font-weight:700;
}

.rm-service-feature-grid h3,
.rm-service-steps h3 {
    margin:0 0 10px !important;
    font-size:24px;
}

.rm-service-feature-grid p,
.rm-service-steps p,
.rm-service-two-columns p,
.rm-service-note p,
.rm-service-final p {
    color:#586579;
    line-height:1.65;
}

.rm-service-app-section {
    background:#f7f8fa;
}

.rm-service-two-columns {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center;
}

.rm-service-app-card {
    padding:38px;
    border:1px solid #dce2ea;
    border-radius:16px;
    background:#fff;
}

.rm-service-rm {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    margin-right:10px;
    border-radius:8px;
    background:var(--rm-color-primary);
    color:#fff;
    font-size:12px;
    font-weight:700;
}

.rm-service-app-card strong {
    font-size:18px;
}

.rm-service-app-card ul {
    margin-top:28px;
}

.rm-service-note {
    padding:64px 0;
    border-top:1px solid #e2e6ec;
}

.rm-service-final {
    padding:78px 0;
    border-top:1px solid #e2e6ec;
}

.rm-service-final p {
    max-width:680px;
    margin-bottom:26px;
}

@media (max-width:959px) {

    .rm-service-inner {
        max-width:none;
    }

    .rm-service-hero {
        padding:44px 0 58px;
    }

    .rm-service-hero-grid,
    .rm-service-two-columns {
        grid-template-columns:1fr;
        gap:24px;
    }

    .rm-service-feature-grid,
    .rm-service-steps {
        grid-template-columns:1fr;
    }

    .rm-service-feature-grid article,
    .rm-service-feature-grid article:nth-child(even),
    .rm-service-steps article,
    .rm-service-steps article:nth-child(even) {
        padding:28px 0;
        border-left:0;
    }

    .rm-service-section {
        padding:64px 0;
    }
}


/* ==================================================
   SERVICE PAGE — REFINEMENT V2
   ================================================== */


/* HERO: leggermente più compatta */
.rm-service-hero {
    padding-bottom:62px;
}

.rm-service-hero-grid {
    margin-top:44px;
    align-items:start;
}


/* Le due card NON devono essere forzate alla stessa altezza */
.rm-service-price-card,
.rm-service-summary {
    align-self:start;
}

.rm-service-price-card {
    padding:34px 38px 36px;
}

.rm-service-summary {
    padding:34px 38px;
}


/* Riduce il vuoto generale tra le sezioni */
.rm-service-section {
    padding-top:74px;
    padding-bottom:74px;
}


/* ==================================================
   APP
   ================================================== */

.rm-service-app-section {
    padding-top:68px;
    padding-bottom:68px;
}

.rm-service-two-columns {
    gap:58px;
}

.rm-service-app-card {
    padding:34px 36px;
    box-shadow:0 10px 30px rgba(16,24,40,.035);
}

.rm-service-app-card li {
    position:relative;
    padding:13px 0 13px 22px;
}

.rm-service-app-card li::before {
    content:"";
    position:absolute;
    left:0;
    top:20px;
    width:6px;
    height:6px;
    border-radius:50%;
    background:var(--rm-color-primary);
}


/* ==================================================
   COME FUNZIONA — 3 PASSAGGI SULLA STESSA RIGA
   ================================================== */

.rm-service-steps {
    grid-template-columns:repeat(3,1fr);
}

.rm-service-steps article,
.rm-service-steps article:nth-child(even) {
    padding:30px 32px;
    border-left:1px solid #dfe3e8;
    border-bottom:1px solid #dfe3e8;
}

.rm-service-steps article:first-child {
    padding-left:0;
    border-left:0;
}

.rm-service-steps article:last-child {
    padding-right:0;
}


/* ==================================================
   SERVIZI AGGIUNTIVI
   ================================================== */

.rm-service-note {
    padding:58px 0;
}

.rm-service-note .rm-service-inner {
    padding:34px 38px;
    border:1px solid #dfe3e8;
    border-radius:14px;
    background:#f7f8fa;
}

.rm-service-note h2 {
    margin-bottom:12px !important;
    font-size:30px;
}

.rm-service-note p {
    max-width:820px;
    margin:0 !important;
}


/* ==================================================
   CTA FINALE
   ================================================== */

.rm-service-final {
    padding:72px 0 84px;
}

.rm-service-final .rm-service-inner {
    padding:46px 50px;
    border:1px solid #dce2ea;
    border-radius:16px;
    background:#f7f8fa;
}

.rm-service-final h2 {
    max-width:720px;
}

.rm-service-final p {
    margin-bottom:26px !important;
}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width:959px) {

    .rm-service-steps {
        grid-template-columns:1fr;
    }

    .rm-service-steps article,
    .rm-service-steps article:nth-child(even),
    .rm-service-steps article:first-child,
    .rm-service-steps article:last-child {
        padding:26px 0;
        border-left:0;
    }

    .rm-service-note .rm-service-inner,
    .rm-service-final .rm-service-inner {
        padding:30px 24px;
    }
}


/* ==================================================
   APP CARD — V2
   ================================================== */

.rm-service-app-card {
    position:relative;
    overflow:hidden;

    padding:38px 40px;

    border:0 !important;
    border-radius:16px;

    background:#103d73;
    color:#fff;

    box-shadow:none;
}


/* piccole linee decorative */
.rm-service-app-card::before {
    content:"";
    position:absolute;
    top:34px;
    right:34px;

    width:48px;
    height:1px;

    background:rgba(255,255,255,.38);

    box-shadow:
        0 8px 0 rgba(255,255,255,.22),
        0 16px 0 rgba(255,255,255,.12);
}


/* marchio RM invertito */
.rm-service-app-card .rm-service-rm {
    background:#fff;
    color:#103d73;
}

.rm-service-app-card strong {
    color:#fff;
}


/* elimina DEFINITIVAMENTE i doppi pallini */
.rm-service-app-card ul {
    margin:28px 0 0 !important;
    padding:0 !important;
    list-style:none !important;
}

.rm-service-app-card li {
    position:relative;

    margin:0 !important;
    padding:14px 0 14px 20px !important;

    list-style:none !important;

    color:#fff;

    border-bottom:1px solid rgba(255,255,255,.20);
}

.rm-service-app-card li::marker {
    content:"";
}

.rm-service-app-card li::before {
    content:"";

    position:absolute;
    left:0;
    top:21px;

    width:5px;
    height:5px;

    border-radius:50%;
    background:#fff;
}

.rm-service-app-card li:last-child {
    border-bottom:0;
}


/* leggero contrasto della fascia APP */
.rm-service-app-section {
    background:#f4f6f9;
}


/* === RM SERVICE VISUAL FIX V3 === */


/* ==================================================
   DUE CARD PRINCIPALI — STESSA ALTEZZA
   ================================================== */

.rm-service-hero-grid {
    align-items:stretch !important;
}

.rm-service-price-card,
.rm-service-summary {
    align-self:stretch !important;
    height:100%;
}

/* sinistra: pulsante ancorato in basso */
.rm-service-price-card {
    display:flex;
    flex-direction:column;
    padding:32px 38px 34px !important;
}

.rm-service-price-card .rm-service-button {
    margin-top:auto;
    align-self:flex-start;
}

/* destra: leggermente più compatta */
.rm-service-summary {
    padding:30px 36px !important;
}

.rm-service-summary h2 {
    margin-bottom:14px !important;
}

.rm-service-summary li {
    padding:10px 0 !important;
}


/* ==================================================
   SEZIONE APP — NIENTE FASCIA GRIGIA
   ================================================== */

.rm-service-app-section {
    background:#fff !important;
    padding-top:74px !important;
    padding-bottom:74px !important;
}

.rm-service-app-section .rm-service-two-columns {
    grid-template-columns:1fr 1fr;
    gap:72px;
    align-items:center;
}

.rm-service-app-copy {
    padding:0 !important;
    background:transparent !important;
}

.rm-service-app-copy h2 {
    margin-top:0 !important;
    margin-bottom:20px !important;
}

.rm-service-app-copy > p:last-child {
    max-width:470px;
    margin-bottom:0 !important;
}


/* ==================================================
   CARD APP — STILE HOME
   ================================================== */

.rm-service-app-card-home {
    position:relative;
    justify-self:end;

    width:100%;
    max-width:470px;
    min-height:405px;

    display:flex;
    flex-direction:column;

    padding:40px 40px 34px !important;

    border:0 !important;
    border-radius:22px !important;

    background:#103d73 !important;
    color:#fff !important;

    box-shadow:none !important;
    overflow:hidden;
}


/* elimina vecchie decorazioni */
.rm-service-app-card-home::before,
.rm-service-app-card-home::after {
    content:none !important;
}


/* testata */
.rm-service-app-brand {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    width:100%;
}

.rm-service-app-name {
    color:rgba(255,255,255,.62);
    font-size:14px;
    font-weight:500;
    line-height:1.2;
}

.rm-service-app-rm {
    display:flex;
    align-items:center;
    justify-content:center;

    width:44px;
    height:44px;

    border:1px solid rgba(255,255,255,.28);
    border-radius:10px;

    color:#fff;
    font-size:15px;
    font-weight:600;
}


/* frase grande come card Home */
.rm-service-app-message {
    margin-top:auto;
    margin-bottom:30px;

    color:#fff;
    font-size:38px;
    font-weight:700;
    line-height:1.03;
    letter-spacing:-.04em;
}


/* tre linee decorative */
.rm-service-app-lines {
    display:flex;
    align-items:center;
    gap:8px;
    width:100%;
}

.rm-service-app-lines span {
    display:block;
    height:4px;
    border-radius:10px;
}

.rm-service-app-lines span:nth-child(1) {
    width:55%;
    background:#fff;
}

.rm-service-app-lines span:nth-child(2) {
    width:27%;
    background:rgba(255,255,255,.55);
}

.rm-service-app-lines span:nth-child(3) {
    width:14%;
    background:rgba(255,255,255,.30);
}


/* ==================================================
   MOBILE
   ================================================== */

@media (max-width:959px) {

    .rm-service-app-section .rm-service-two-columns {
        grid-template-columns:1fr;
        gap:38px;
    }

    .rm-service-app-card-home {
        justify-self:start;
        max-width:470px;
        min-height:360px;
    }

    .rm-service-app-message {
        font-size:34px;
    }
}


/* === /RM SERVICE VISUAL FIX V3 === */


/* ==================================================
   SERVIZI AGGIUNTIVI — V2
   ================================================== */

/* elimina le righe inutili sopra/sotto */
.rm-service-note {
    border-top:0 !important;
    padding:58px 0 64px !important;
}

.rm-service-note + .rm-service-final {
    border-top:0 !important;
}

.rm-service-note .rm-service-inner {
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
}

.rm-service-note h2 {
    margin:0 0 14px !important;
    font-size:36px !important;
}

.rm-service-note-intro {
    max-width:720px;
    margin:0 0 34px !important;
}

.rm-service-extra-grid {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:16px;
}

.rm-service-extra-grid > div {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;

    min-height:76px;
    padding:20px 24px;

    border:1px solid #dce2ea;
    border-radius:12px;
    background:#fff;
}

.rm-service-extra-grid span {
    color:var(--rm-color-heading);
    font-size:16px;
}

.rm-service-extra-grid strong {
    flex:0 0 auto;
    color:var(--rm-color-heading);
    font-size:16px;
    font-weight:700;
}

.rm-service-extra-more {
    max-width:820px;
    margin:26px 0 0 !important;
    color:#586579;
    font-size:15px;
    line-height:1.6;
}

@media (max-width:959px) {

    .rm-service-extra-grid {
        grid-template-columns:1fr;
    }

    .rm-service-extra-grid > div {
        min-height:68px;
    }
}

/* CARD PREZZO — label editoriale V2 */
.rm-service-price-card .rm-service-card-label {
    display:flex !important;
    align-items:center !important;
    gap:12px !important;

    width:auto !important;
    max-width:max-content !important;

    margin:0 0 26px !important;
    padding:0 !important;

    border:0 !important;
    background:transparent !important;

    color:var(--rm-color-primary) !important;

    font-size:14px !important;
    font-weight:750 !important;
    line-height:1.1 !important;
    letter-spacing:.045em !important;
    text-transform:uppercase !important;
}

.rm-service-price-card .rm-service-card-label::before {
    content:"" !important;

    display:block !important;
    width:30px !important;
    height:3px !important;

    flex:0 0 30px !important;

    border-radius:999px !important;
    background:var(--rm-color-primary) !important;
}

/* CARD PREZZO — badge definitivo */
.rm-service-price-card .rm-service-card-label {
    display:inline-flex !important;
    align-items:center !important;

    width:auto !important;
    max-width:max-content !important;

    margin:0 0 26px !important;
    padding:10px 14px !important;

    border:0 !important;
    border-radius:8px !important;

    background:var(--rm-color-primary) !important;
    color:#fff !important;

    font-size:13px !important;
    font-weight:700 !important;
    line-height:1 !important;
    letter-spacing:.055em !important;
    text-transform:uppercase !important;
}

.rm-service-price-card .rm-service-card-label::before {
    content:none !important;
    display:none !important;
}

/* CARD PREZZO — titolo servizio come heading */
.rm-service-price-card .rm-service-card-label {
    display:block !important;

    width:auto !important;
    max-width:420px !important;

    margin:0 0 24px !important;
    padding:0 !important;

    border:0 !important;
    border-radius:0 !important;

    background:transparent !important;
    color:var(--rm-color-primary) !important;

    font-size:28px !important;
    font-weight:700 !important;
    line-height:1.05 !important;
    letter-spacing:-.035em !important;

    text-transform:none !important;
}

.rm-service-price-card .rm-service-card-label::before,
.rm-service-price-card .rm-service-card-label::after {
    content:none !important;
    display:none !important;
}

/* ==================================================
   SERVICE FAQ
   ================================================== */

.rm-service-faq h2 {
    margin-bottom:38px !important;
}

.rm-service-faq-list {
    border-top:1px solid #dce2ea;
}

.rm-service-faq-list details {
    margin:0;
    padding:0;
    border-bottom:1px solid #dce2ea;
}

.rm-service-faq-list summary {
    position:relative;
    padding:22px 44px 22px 0;

    color:var(--rm-color-heading);
    font-size:18px;
    font-weight:650;
    line-height:1.35;

    cursor:pointer;
    list-style:none;
}

.rm-service-faq-list summary::-webkit-details-marker {
    display:none;
}

.rm-service-faq-list summary::after {
    content:"+";
    position:absolute;
    right:4px;
    top:18px;

    color:var(--rm-color-primary);
    font-size:25px;
    font-weight:400;
}

.rm-service-faq-list details[open] summary::after {
    content:"−";
}

.rm-service-faq-list details p {
    max-width:820px;
    margin:0 !important;
    padding:0 40px 22px 0;

    color:#586579;
    line-height:1.65;
}

.rm-service-faq-list a,
.rm-service-related a {
    color:var(--rm-color-primary);
    font-weight:600;
}

.rm-service-related {
    margin:26px 0 0 !important;
    color:#586579;
    font-size:15px;
}

