
/* ==========================================================
   Mapresto – preise.cfm
   Ergänzungen zum bestehenden mapresto.css
   ========================================================== */

.pricing-hero{
    padding:110px 0 72px;
    background:
        radial-gradient(circle at 50% -20%, rgba(214,164,74,.14), transparent 34%),
        #fff;
    text-align:center;
}

.pricing-hero-inner{
    max-width:900px;
}

.pricing-hero h1{
    margin:18px 0 22px;
    font-size:clamp(46px,6vw,78px);
    line-height:.98;
    letter-spacing:-.045em;
}

.pricing-lead{
    max-width:720px;
    margin:0 auto;
    color:var(--muted,#6d7175);
    font-size:20px;
    line-height:1.6;
}

.pricing-trust{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px 28px;
    margin-top:30px;
    color:#6d7175;
    font-size:14px;
}

.pricing-trust span::before{
    content:"✓";
    margin-right:7px;
    color:#a97720;
    font-weight:900;
}

.pricing-section{
    padding:34px 0 88px;
    background:#fff;
}

.pricing-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
    align-items:stretch;
}

.plan-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-height:600px;
    padding:34px;
    border:1px solid #e6e1d7;
    border-radius:24px;
    background:#fff;
    box-shadow:0 10px 34px rgba(24,24,24,.045);
}

.plan-card-featured{
    border:2px solid #c58b2a;
    box-shadow:0 18px 48px rgba(156,108,29,.14);
    transform:translateY(-10px);
}

.popular-badge{
    position:absolute;
    top:-15px;
    left:50%;
    transform:translateX(-50%);
    padding:8px 15px;
    border-radius:999px;
    background:#111;
    color:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.04em;
    white-space:nowrap;
}

.plan-kicker{
    color:#a97720;
    font-size:12px;
    font-weight:900;
    letter-spacing:.11em;
    text-transform:uppercase;
}

.plan-card h2{
    margin:10px 0 7px;
    font-size:34px;
}

.plan-subtitle{
    min-height:68px;
    margin:0;
    color:#6f7377;
    line-height:1.5;
}

.plan-price{
    margin:26px 0 18px;
}

.plan-price strong{
    display:block;
    font-size:35px;
    line-height:1;
    letter-spacing:-.035em;
}

.plan-price span{
    display:block;
    margin-top:7px;
    color:#7a7e82;
    font-size:13px;
}

.plan-persons{
    display:inline-flex;
    width:max-content;
    margin-bottom:22px;
    padding:8px 12px;
    border-radius:999px;
    background:#f7f3eb;
    color:#5b5242;
    font-size:13px;
    font-weight:800;
}

.plan-features{
    display:grid;
    gap:13px;
    margin:0 0 30px;
    padding:0;
    list-style:none;
    color:#343638;
}

.plan-features li{
    position:relative;
    padding-left:25px;
    line-height:1.4;
}

.plan-features li::before{
    content:"✓";
    position:absolute;
    left:0;
    top:0;
    color:#a97720;
    font-weight:900;
}

.plan-features .muted-feature{
    color:#989b9e;
}

.plan-features .muted-feature::before{
    content:"–";
    color:#aaa;
}

.plan-features .concierge-feature{
    color:#8c6018;
    font-weight:900;
}

.plan-features .concierge-feature::before{
    display:none;
}

.plan-cta{
    width:100%;
    margin-top:auto;
    text-align:center;
}

.pricing-note{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px 18px;
    margin:30px auto 0;
    padding:18px 24px;
    border-radius:16px;
    background:#f8f5ef;
    color:#5d6063;
}

.pricing-note a{
    color:#9f6f1f;
    font-weight:800;
    text-decoration:none;
}

/* Vergleich */

.compare-section{
    padding:96px 0;
    background:#f7f5f0;
}

.compare-head{
    max-width:780px;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}

.audience-switch{
    display:grid;
    grid-template-columns:1fr 1fr;
    max-width:760px;
    margin:35px auto 54px;
    padding:6px;
    border:1px solid #ded8cc;
    border-radius:18px;
    background:#ece7de;
}

.audience-tab{
    border:0;
    border-radius:13px;
    padding:16px 20px;
    background:transparent;
    color:#6f7276;
    cursor:pointer;
    font:inherit;
    font-weight:900;
}

.audience-tab small{
    display:block;
    margin-top:4px;
    font-weight:500;
    opacity:.78;
}

.audience-tab.active{
    background:#fff;
    color:#161616;
    box-shadow:0 5px 16px rgba(0,0,0,.07);
}

.feature-view{
    display:none;
}

.feature-view.active{
    display:block;
}

.compare-group{
    overflow:hidden;
    margin:0 0 22px;
    border:1px solid #e2ddd3;
    border-radius:20px;
    background:#fff;
}

.compare-group-title{
    display:flex;
    gap:16px;
    align-items:center;
    padding:24px 26px;
    border-bottom:1px solid #eee8de;
}

.compare-icon{
    display:grid;
    place-items:center;
    flex:0 0 42px;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#f7f1e6;
    color:#a97720;
    font-size:21px;
}

.compare-group-title h3{
    margin:0 0 4px;
}

.compare-group-title p{
    margin:0;
    color:#7b7e81;
}

.compare-row{
    display:grid;
    grid-template-columns:minmax(0,1.7fr) repeat(3,minmax(90px,.45fr));
    min-height:54px;
    align-items:center;
    border-top:1px solid #f0ece5;
}

.compare-row > div{
    padding:14px 18px;
}

.compare-row > div:not(:first-child){
    text-align:center;
    font-weight:900;
}

.compare-row:not(.compare-header) > div:not(:first-child){
    color:#9f6f1f;
}

.compare-header{
    min-height:44px;
    background:#fbfaf7;
    color:#85888b;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
}

.compare-header > div:not(:first-child){
    color:#4f5255;
}

.concierge-group{
    border-color:#dec89c;
    box-shadow:0 8px 30px rgba(149,101,21,.06);
}

.tech-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.tech-card{
    padding:30px;
    border:1px solid #e2ddd3;
    border-radius:20px;
    background:#fff;
}

.tech-label{
    display:inline-block;
    margin-bottom:14px;
    color:#a97720;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
}

.tech-card h3{
    margin:0 0 12px;
    font-size:24px;
}

.tech-card p{
    color:#707477;
    line-height:1.6;
}

.tech-card ul{
    display:grid;
    gap:10px;
    margin:20px 0 0;
    padding:0;
    list-style:none;
}

.tech-card li{
    position:relative;
    padding-left:22px;
}

.tech-card li::before{
    content:"✓";
    position:absolute;
    left:0;
    color:#a97720;
    font-weight:900;
}

.tech-note{
    margin-top:22px;
    padding:25px 28px;
    border-radius:18px;
    background:#171717;
    color:#fff;
}

.tech-note p{
    margin:8px 0 0;
    color:#c8cbd0;
    line-height:1.6;
}

/* Concierge */

.pricing-concierge{
    padding:92px 0;
    background:#141414;
    color:#fff;
}

.concierge-inner{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:70px;
    align-items:center;
}

.pricing-concierge h2{
    margin:18px 0;
    font-size:clamp(36px,4vw,54px);
    line-height:1.05;
}

.pricing-concierge p{
    color:#c8cbd0;
    line-height:1.7;
    font-size:18px;
}

.concierge-example{
    display:grid;
    gap:12px;
    padding:28px;
    border:1px solid #343434;
    border-radius:22px;
    background:#1f1f1f;
}

.concierge-bubble{
    max-width:88%;
    padding:14px 16px;
    border-radius:16px;
    line-height:1.45;
}

.concierge-bubble.user{
    justify-self:end;
    background:#f0d39e;
    color:#24201a;
    border-bottom-right-radius:5px;
}

.concierge-bubble.bot{
    justify-self:start;
    background:#303030;
    color:#f5f5f5;
    border-bottom-left-radius:5px;
}

/* FAQ */

.pricing-faq{
    padding:92px 0;
    background:#fff;
}

.faq-wrap{
    max-width:900px;
}

.faq-list{
    margin-top:34px;
    border-top:1px solid #e5e1da;
}

.faq-list details{
    border-bottom:1px solid #e5e1da;
    padding:0;
}

.faq-list summary{
    padding:22px 4px;
    cursor:pointer;
    font-weight:850;
    font-size:18px;
}

.faq-list details p{
    margin:0;
    padding:0 4px 22px;
    color:#6f7377;
    line-height:1.65;
}

/* Final CTA */

.pricing-final{
    padding:0 0 96px;
    background:#fff;
}

.pricing-final-box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    padding:44px 48px;
    border-radius:24px;
    background:#f7f3eb;
}

.pricing-final-box h2{
    margin:12px 0 8px;
    font-size:38px;
}

.pricing-final-box p{
    margin:0;
    color:#707477;
}

/* Mobile */

@media (max-width: 980px){
    .pricing-grid{
        grid-template-columns:1fr;
        max-width:680px;
        margin:0 auto;
    }

    .plan-card{
        min-height:auto;
    }

    .plan-card-featured{
        transform:none;
    }

    .concierge-inner{
        grid-template-columns:1fr;
        gap:40px;
    }
}

@media (max-width: 760px){
    .pricing-hero{
        padding:80px 0 52px;
    }

    .pricing-hero h1{
        font-size:46px;
    }

    .pricing-note{
        align-items:flex-start;
        flex-direction:column;
    }

    .audience-switch{
        grid-template-columns:1fr;
    }

    .compare-group{
        overflow-x:auto;
    }

    .compare-row{
        min-width:680px;
    }

    .tech-grid{
        grid-template-columns:1fr;
    }

    .pricing-final-box{
        display:block;
        padding:34px 28px;
    }

    .pricing-final-box .btn{
        width:100%;
        margin-top:26px;
        text-align:center;
    }
}


@media (max-width: 640px) {

    .register-plan-grid {
        display: flex;
        gap: 16px;

        overflow-x: auto;
        overflow-y: visible;

        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;

        padding: 12px 12px 24px;
        margin-left: -12px;
        margin-right: -12px;

        scrollbar-width: none;
    }

    .register-plan-grid::-webkit-scrollbar {
        display: none;
    }

    .register-plan-grid .plan-card {
        flex: 0 0 calc(100% - 40px);
        min-width: 0;

        scroll-snap-align: center;
    }

}

@media (max-width: 640px) {

    .pricing-grid,
    .register-plan-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 18px !important;
        width: 100% !important;
        max-width: 100% !important;

        overflow: visible !important;
        padding: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .pricing-grid .plan-card,
    .register-plan-grid .plan-card {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

}