
/* =====================================================
   STADTPORTAL PHASE 11.2
   GLOBAL TYPOGRAPHY + SPACING FIX
   Für das komplette öffentliche Portal.
   Diese Datei NACH style.css einbinden.
===================================================== */

/* Globale Typografie */
body{
    font-size:14px !important;
    line-height:1.5 !important;
}

h1,
.page-title,
.detail-title,
.article-title,
.company-profile-title,
.event-detail-title{
    font-size:28px !important;
    line-height:1.15 !important;
    margin:0 0 12px !important;
    letter-spacing:-.4px !important;
}

h2,
.section-title,
.block-title,
.widget-title,
.page-section-title,
.archive-title{
    font-size:20px !important;
    line-height:1.2 !important;
    margin:0 0 10px !important;
    letter-spacing:-.2px !important;
}

h3,
.card-title,
.news-card h3,
.event-card h3,
.company-card h3,
.job-card h3,
.classified-card h3,
.club-card h3,
.tourism-card h3{
    font-size:16px !important;
    line-height:1.3 !important;
    margin:0 0 7px !important;
}

h4,
h5,
h6{
    font-size:14px !important;
    line-height:1.3 !important;
    margin:0 0 6px !important;
}

p,
li,
.card p,
.widget p,
.article-excerpt,
.news-excerpt,
.event-excerpt,
.company-excerpt{
    font-size:14px !important;
    line-height:1.5 !important;
}

/* Links und kleine Texte */
.meta,
.card-meta,
.news-meta,
.event-meta,
.company-meta,
small,
.badge,
.tag,
.category-label{
    font-size:12px !important;
    line-height:1.25 !important;
}

/* Hero / Startseitenkopf */
.premium-hero-v2,
.hero,
.home-hero,
.portal-hero{
    min-height:330px !important;
    padding:28px 0 !important;
}

.lead-story-v2 h1,
.hero h1,
.home-hero h1,
.portal-hero h1{
    font-size:clamp(22px,2.6vw,34px) !important;
    line-height:1.1 !important;
    margin:8px 0 10px !important;
    max-width:650px !important;
}

.lead-story-v2 p,
.hero p,
.home-hero p,
.portal-hero p{
    font-size:13px !important;
    line-height:1.45 !important;
    max-width:620px !important;
}

.hero-actions-v2,
.hero-actions{
    margin-top:14px !important;
}

/* Sektionen allgemein */
section,
.portal-section,
.content-section,
.home-section{
    margin-bottom:24px !important;
    padding-top:24px !important;
    padding-bottom:24px !important;
}

.section-header,
.block-header,
.widget-header{
    margin-bottom:14px !important;
}

/* Karten allgemein */
.card,
.news-card,
.event-card,
.company-card,
.job-card,
.classified-card,
.club-card,
.tourism-card,
.service-card,
.quick-card,
.portal-card{
    padding:14px !important;
    border-radius:14px !important;
}

.card + .card{
    margin-top:12px !important;
}

/* News */
.news-card h2,
.news-card h3,
.news-item h2,
.news-item h3,
.article-card h2,
.article-card h3{
    font-size:16px !important;
    line-height:1.32 !important;
}

.news-list,
.event-list,
.company-list,
.job-list{
    gap:14px !important;
}

/* Detailseiten */
.article-content h1,
.detail-content h1,
.page-content h1{
    font-size:28px !important;
}

.article-content h2,
.detail-content h2,
.page-content h2{
    font-size:20px !important;
    margin-top:22px !important;
}

.article-content h3,
.detail-content h3,
.page-content h3{
    font-size:16px !important;
    margin-top:18px !important;
}

.article-content p,
.detail-content p,
.page-content p{
    font-size:15px !important;
    line-height:1.65 !important;
}

/* Sidebar / Widgets */
.sidebar .widget,
.side-widget,
.portal-widget,
.home-widget{
    padding:14px !important;
    margin-bottom:14px !important;
}

.sidebar h2,
.sidebar h3,
.side-widget h2,
.side-widget h3,
.portal-widget h2,
.portal-widget h3{
    font-size:16px !important;
}

/* Event / Wetter / Feature Boxen */
.side-feature,
.hero-event-card,
.featured-event-card,
.weather-feature{
    padding:14px !important;
    border-radius:16px !important;
}

.side-feature b,
.hero-event-card b,
.featured-event-card b{
    font-size:17px !important;
    line-height:1.25 !important;
}

.weather-feature > span{
    font-size:26px !important;
}

/* Formulare */
input,
select,
textarea,
button,
.btn{
    font-size:14px !important;
}

.hero-search input,
.hero-search button,
.portal-search input,
.portal-search button,
.search-hero input,
.search-hero button{
    height:42px !important;
    min-height:42px !important;
    font-size:14px !important;
    padding:0 14px !important;
}

/* Tabellen */
table{
    font-size:13px !important;
}

th,
td{
    padding:9px 10px !important;
}

/* Footer */
footer,
.site-footer{
    font-size:13px !important;
}

footer h2,
footer h3,
.site-footer h2,
.site-footer h3{
    font-size:15px !important;
}

/* Mobile */
@media (max-width: 900px){
    h1,
    .page-title,
    .detail-title,
    .article-title{
        font-size:24px !important;
    }

    h2,
    .section-title,
    .block-title{
        font-size:18px !important;
    }

    .premium-hero-v2,
    .hero,
    .home-hero,
    .portal-hero{
        min-height:290px !important;
        padding:24px 0 !important;
    }
}

@media (max-width: 600px){
    body{
        font-size:13px !important;
    }

    h1,
    .page-title,
    .detail-title,
    .article-title{
        font-size:22px !important;
    }

    h2,
    .section-title,
    .block-title{
        font-size:17px !important;
    }

    h3,
    .card-title{
        font-size:15px !important;
    }

    .card,
    .news-card,
    .event-card,
    .company-card,
    .job-card,
    .classified-card,
    .club-card,
    .tourism-card{
        padding:12px !important;
    }
}
