/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://tomusborne.com
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the new block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS and is translated into over 25 languages by our amazing community of users. A few of our many features include microdata integration, 9 widget areas, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover) and navigation color presets. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.0.2.1605182915
Updated: 2020-11-12 13:08:35
*/

/* automatische Silbentrennung */
p {
    hyphens: auto;
}

/* deaktiviert:
body {
    font-family: Calibri,Candara,Segoe,Segoe UI,Optima,Arial,sans-serif;
    font-weight: 400;
}
*/

/* deaktiviert (war bisher durch einen offenen Kommentar ausgeschaltet).
   Würde die Breadcrumb auf /lk/ (15281), allen Unterseiten von /lk/ und /ergebnis/ (15779) ausblenden.
.parent-pageid-15281 nav.breadcrumb,
.page-id-15281 nav.breadcrumb,
.page-id-15779 nav.breadcrumb {
	display:none!important;
}
*/

/* open-sans-regular - latin */
@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-regular.eot');
    /* IE9 Compat Modes */
    src: local('Open Sans Regular'), local('OpenSans-Regular'),
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-regular.eot?#iefix') format('embedded-opentype'),
        /* IE6-IE8 */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-regular.woff2') format('woff2'),
        /* Super Modern Browsers */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-regular.woff') format('woff'),
        /* Modern Browsers */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-regular.ttf') format('truetype'),
        /* Safari, Android, iOS */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-regular.svg#OpenSans') format('svg');
    /* Legacy iOS */
	font-display:swap;
}

/* open-sans-700 - latin */
@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 700;
    src: url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-700.eot');
    /* IE9 Compat Modes */
    src: local('Open Sans Bold'), local('OpenSans-Bold'),
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-700.eot?#iefix') format('embedded-opentype'),
        /* IE6-IE8 */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-700.woff2') format('woff2'),
        /* Super Modern Browsers */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-700.woff') format('woff'),
        /* Modern Browsers */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-700.ttf') format('truetype'),
        /* Safari, Android, iOS */
        url('//www.rohprog.de/wp-content/themes/generatepress-child/fonts/open-sans-v18-latin-700.svg#OpenSans') format('svg');
    /* Legacy iOS */
	font-display:swap;
}



.element-is-sticky .inside-header {
    padding-top: 10px;
    padding-bottom: 7px;
}

.entry-content:not(:first-child),
.entry-summary:not(:first-child),
.page-content:not(:first-child) {
    margin-top: 1em !important;
}

.main-navigation {
    border-bottom: 1px solid #dcdcdc;
    font-weight: 700;
}

.main-navigation ul {
    margin-left: 5px;
}

.dropdown-menu-toggle {
    display: none !important;
}

.main-navigation .main-nav ul li.menu-item-has-children > a {
    padding-right: 10px;
}

#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-megamenu > ul.mega-sub-menu {
    border-top: 1px solid #dcdcdc !important;
}

.widget_media_image img {
    padding-bottom: 20px !important;
}

.mega-current-menu-item .mega-menu-link,
.mega-current_page_ancestor > .mega-menu-link {
    color: #4a630e !important;
}

ul li a.mega-menu-link:hover {
    border-bottom: 2px solid #000 !important;
}

ul li li a.mega-menu-link,
ul li li a.mega-menu-link:hover {
    border-bottom: 0px !important;
}

ul li li a.mega-menu-link:hover {
    text-decoration: underline !important;
}

.button,
.wp-block-button .wp-block-button__link {
    padding: 2px 15px;
    border-radius: 0;
}

.wp-block-cover .wp-block-cover__inner-container {
    max-width: 1200px;
    padding-top: 40px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: 'Open Sans',sans-serif!important;
}



.altpapiersorten th {
    text-align: left;
}

.altpapiersorten th:first-child,
.altpapiersorten td:first-child {
    width: 120px !important;
}


#nav-below {
    margin-top: 50px;
}

.paging-navigation {
    text-align: center;
}

.paging-navigation .current {
    background: #88ab32;
    color: #fff;
    padding: 5px 10px;
}

.paging-navigation a.page-numbers {
    background: #3f4047;
    color: #fff;
    padding: 5px 10px;
}

.paging-navigation a.page-numbers:hover {
    background: #88ab32;
}

.nav-previous,
.nav-next {
    margin-bottom: 20px;
}


.nav-previous a,
.nav-next a {
    background: #88ab32;
    color: #fff;
    padding: 5px 10px;
}

.nav-previous a:hover {
    background: #3f4047;
}

.rechtsbuendig {
    text-align: right;
}

.wp-block-buttons .wp-block-button {
    display: inline-block;
    margin-right: 0px !important;
    margin-bottom: 20px;
}

.sidebar .widget,
.footer-widgets .widget {
    font-family: 'Open Sans';
    font-weight: 400;
    color: #f7f7f7;
}

.sidebar .widget,
.footer-widgets .widget li {
    margin-bottom: 20px;
}

.footer-widgets .footer-widget-1 .widget {
    font-size: 15px;
    font-weight: 400;
    padding-left: 20px;
}

.site-info {
    display: none !important;
}

.links {
    font-size: 17px;
}

.links .wp-block-group__inner-container {
    padding: 0 0 40px 0;
}

/* breadcrumb */

.breadcrumb {
    font-size: 15px;
    font-weight: 700;
    font-family: 'Open Sans', sans-serif;
    line-height: 1.4em;
}
.breadcrumb .current-page {
    color: #88ab32;
}

.breadcrumb a {
    text-decoration: none;
    color: inherit;
}
.breadcrumb a:hover {
    text-decoration: underline;
}

.ansprechpartner p {
    margin-bottom: 5px;
    font-size: 17px;
    line-height: 1.9em;
}

.ansprechpartner a {
    text-decoration: underline;
}

.formlink {
    font-size: 18px;
    margin-bottom: 1em;
    margin-left: 25px;
    font-weight: 700 !important;
    margin-top:-20px;
}


.wp-block-column a {
    text-decoration: underline;
}

.wp-block-column .mysubmenu a,
#post-9 a {
    text-decoration: none;
}

.wp-block-column .wp-block-button a {
    text-decoration: none;
}

.wpcf7-list-item {
    margin:0;
}
.wpcf7-list-item-label {
    margin-left:5px;
    margin-right:20px;
}


input.wpcf7-submit {
	font-size:17px!important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

input[type="text"], input[type="email"] {
    border:0;
    border-bottom: 1px solid #ccc;
    width:100%;
    color:#333;
    padding-top:12px;
    outline:none;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
    background:#f5f5f5;
}

textarea.wpcf7-textarea {
    background:#fff;
    border-radius: 3px;
    border-color: #ccc;
    outline: none;
}

::placeholder { /* Chrome, Firefox, Opera, Safari 10.1+ */
    color: #333;
    opacity: 1; /* Firefox */
  }
  
  :-ms-input-placeholder { /* Internet Explorer 10-11 */
    color: #333;
  }
  
  ::-ms-input-placeholder { /* Microsoft Edge */
    color: #333;

}    

#cf7md-form .mdc-button--raised,
#cf7md-form .mdc-button--raised:hover {
    border-radius: 0;
    box-shadow: none;
    text-transform: lowercase;
    font-weight: 700;
}

label.cf7md-checkbox-label {
    font-weight: 700 !important;
}

label.cf7md-accept-label {
    font-size: 14px !important;
}


/* Submenu Links */

.mysubmenu ul,
.mypostparent {
    font-size: 17px;
    font-weight: 500;
}

.mypostparent {
    font-size: 19px;
    font-weight: 700;
}

.mysubmenu ul {
    margin: 10px 0 0 0;
}


.mysubmenu li {
    list-style: none;
    margin-left: 10px;
    line-height: 1.9em;
}

.mysubmenu li a {
    font-size: 17px;
    font-weight: 600;
}

.mysubmenu li a:hover {
    text-decoration: underline;
}


#mystickyelement {
    border-top: 2px solid #88ab32;
    z-index: 99999 !important;
}

/* Seite Downloads */

.page-id-57 .wp-block-getwid-table a:hover,
.page-id-57 .wp-block-getwid-table a:visited,
.page-id-57 .wp-block-getwid-table a:link {
    text-decoration: underline;
}

.entry-content a {
    text-decoration: underline;
}

.entry-content a.wp-block-button__link {
    text-decoration: none !important;
}

.page-item-8426 ul {
	display:none;
}

.page-id-8426 .page-item-8426 ul {
	display:block;
}

@media screen and (min-width:768px) {

    #footerlogo {
        margin-left: -95px;
        display: block;
        margin-bottom: 1em;
    }

}

@media screen and (max-width:767px) {

    .custom-widget {
        display: none;
    }
}

@media screen and (max-width:768px) {

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        font-family: 'Open Sans' !important;
    }

    h1,
    .h1 {
        font-size: 26px;
        font-weight: 700;
        margin-bottom: 19px;
    }

    .blog h1 {
        font-size: 26px;
        font-weight: 700;
        margin-top: 20px;
        margin-bottom: 0px;
        padding: 20px;
    }

    .h1,
    .h1 h2,
    .h1 h3,
    .h1 h4,
    .h1 h5 {
        font-size: 26px;
    }

    .h2,
    .h2 h3,
    .h2 h4,
    .h2 h5 {
        font-size: 24px;
    }

    .h3,
    .h3 h2,
    .h3 h4,
    .h3 h5 {
        font-size: 22px;
    }

    .h4,
    .h4 h2,
    .h4 h3,
    .h4 h5 {
        font-size: 20px;
    }

    .h5,
    .h5 h2,
    .h5 h3,
    .h5 h4 {
        font-size: 18px;
    }

    .footer-widgets .widget li {
        margin-bottom: 0px;
    }



    .wprt-container .wp-block-column ul.page-list,
    .mypostparent {
        display: none;
    }


    .wp-block-column {
        flex-basis: 100% !important;
    }
    
    .wp-block-column:nth-child(2n) {
        margin-left: 0px; }

    .umsortieren .wp-block-column:nth-child(1) {
        order: 2;
    }
    .umsortieren .wp-block-column:nth-child(2) {
        order: 1;
    }

    .links:nth-child(1) {
        order: 2!important;
    }
    
}

/* Print Style Sheet */
@media print {
    * {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    body {
        background: white;
        color: black;
        margin: 0;
        width: 100%;
    }

    .wprt-container .wp-block-column ul.page-list,
    .mypostparent {
        display: none;
    }

    #site-navigation,
    #menu-footermenu-1,
    #menu-footermenu-2,
    #menu-footermenu-3,
    .wpsisac-slick-carousal-wrp,
    .custom-widget,
    .top-bar,
    .wp-block-buttons,
    iframe,
    footer.entry-meta,
    .wpcf7,
    #nav-below {
        display: none !important;
    }

    .footer-widget-1 {
        display: block;
        width: 100%;
    }


    .wprt-container .wp-block-column ul.page-list,
    .mypostparent {
        display: none;
    }

    .sidebar .widget,
    .footer-widgets .widget,
    .footer-widgets a {
        color: #000;
        background-color: #fff;
    }

    .footer-widgets a {
        text-decoration: none;
    }

    .footer-widgets {
        color: #000 !important;
        background-color: #fff;
        border-top: 2px solid #88ab32;
        border-bottom: 2px solid #88ab32;
        margin-bottom: 40px;
        padding-bottom: 20px;
        padding-top: 20px;
    }


    .entry-content a {
        text-decoration: none;
    }

    .wp-block-getwid-accordion__icon.is-passive,
    .wp-block-getwid-accordion__icon.is-active {
        display: none !important;
    }

    .wp-block-getwid-accordion__header-title {
        font-weight: 700;
    }

    .wp-block-getwid-accordion__content-wrapper {
        overflow: visible;
        position: static;
        display: block;
        height: 100%;
    }

    .wp-block-getwid-accordion__content {
        display: block !important;
        position: static;
        display: block;
    }

    h1,
    h2,
    h3,
    h4,
    h5 {
        text-align: left !important;
    }

    .wp-block-getwid-accordion {
        margin-top: 40px;
    }

    .single-post #left-sidebar {
        display: none;
    }

    .single-post .site-content .content-area {
        width: 100%;
    }

    .blog .read-more-container {
        display: none;
    }
}

.mytable tr, .mytable td, table.mytable {
	border:0;
	padding:0;
	margin:0;
}

.alternative {
	margin-top:50px;
}

.alternative p {
	margin:0;
}

.mytable p {margin:0;}

.mytable td:first-child {
	max-width:90px;
}

.mytable td.s {
	max-width:40px;
}

.mytable td {
	vertical-align:middle;
}

.mytable input {
	border:1px solid #999;
	padding:5px 10px;
}

.auswahl input[type=checkbox] {
    box-sizing: border-box;
    width: 20px;
    height: 20px;
}

.auswahl {
    position: relative;
    display: block;
    padding-left:20px;
}

.auswahl label {
    position: absolute;
    left:55px;
    margin-top:-3px;
}
.auswahl label span{
    font-size: 20px;
    line-height: 27px;
    display: inline-block;
    margin-left: 0px;
    color: #000;
    font-weight: bold;
    vertical-align: top;
}
.entry-content a.mybutton {
	margin-left:55px;
    margin-top:40px;
    font-size:inherit;
    padding:2px 15px;
    text-decoration: none;
}
.entry-content a.mybutton2 {
    font-size:inherit;
    padding:2px 15px;
    text-decoration: none;
}

.page-template-page-mammut-iframe .footer-widgets {
    margin-top:40px!important;
}


.page-template-page-mammut-iframe a.btn {
    margin-left:20px!important;
    color: #f7f7f7;
    background-color: #ec9e2f;
    padding:2px 15px;
    font-weight:700;
    font-size:26px;
}

.wp-block-button__link.button-schrift-weiss, 
.wp-block-button__link.button-schrift-weiss:visited, 
.wp-block-button__link.button-schrift-weiss:hover, 
.wp-block-button__link.button-schrift-weiss:active, 
.wp-block-button__link.button-schrift-weiss:focus {
    color: white !important;
    text-decoration: none !important;
}

html {
    overflow-x: hidden !important;
}

/* USP Selbstanlieferung / hero */
.feature-list {
  display: flex;
  flex-direction: column;
  gap: 0.8em;
}

.feature-item {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
}

.feature-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
}

.feature-text {
  margin: 0;
  font-size: 1em;
  line-height: 1.35;
  flex: 1 1 auto;
}		

/* barrierefreiheit */

.entry-content a {
    text-decoration: underline;
}

.entry-content a:hover,
.entry-content a:focus,
.entry-content a:focus-visible {
    text-decoration: none!important;
}

a.hero-button {
  color: #000 !important;
}

a.hero-button:hover,
a.hero-button:focus,
a.hero-button:focus-visible {
  color: #fff !important;
}

a.hero-button:active {
  color: #fff !important;
}

#aktuelles a.gb-button-text:hover,
#aktuelles a.gb-button-text:focus,
#aktuelles a.gb-button-text:focus-visible {
    text-decoration: underline!important;
}

#stellenangebote .gb-grid-column > .gb-container:has(> a.gb-container-link) {
  transition: border-color 0.2s ease, border-width 0.2s ease;
  border: 1px solid transparent;
}

#stellenangebote .gb-grid-column > .gb-container:has(> a.gb-container-link):hover,
#stellenangebote .gb-grid-column > .gb-container:has(> a.gb-container-link):focus-within {
  border: 1px solid #000000;
}

#aktuelles .gb-block-image {
  overflow: visible !important;   /* lässt Rahmen rausstehen */
}

#aktuelles .gb-block-image a {
  outline: 3px solid transparent;
  outline-offset: 0;
  transition: outline-color 0.2s ease;
}

#aktuelles .gb-block-image a:hover,
#aktuelles .gb-block-image a:focus {
  outline-color: #000;
}

.footer-widgets .custom-html-widget {
    color:#000;
}

#mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link, #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link, #mega-menu-wrap-primary #mega-menu-primary > li.mega-menu-item.mega-current-page-ancestor > a.mega-menu-link {
    color:#3a5300!important;
}

.wp-block-getwid-accordion__header a{
    pointer-events:none;
}

.quform-field-text,
.quform-field-text::placeholder {
    color: #222 !important;
}

.quform-spacer span {
    color:#222!important
}

.quform input[type="text"],
.quform input[type="email"],
.quform textarea,
.quform .quform-field-text {
	color: #222 !important;
}

.quform input[type="text"]::placeholder,
.quform input[type="email"]::placeholder,
.quform textarea::placeholder {
	color: #444 !important;
}

mark[style*="#ffca28"]{
    color:#a36b00 !important;
}

#nachhaltigkeitsrechner input{
    color:#222222 !important;
    background:#ffffff !important;
}

#nachhaltigkeitsrechner input::placeholder{
    color:#444444 !important;
}

.parent-pageid-8426 a[href*="google"],
.parent-pageid-8426 a[href*="google"] mark,
.parent-pageid-8426 a[href*="google"] .has-inline-color,
.parent-pageid-8426 a[href*="google"] .has-rohprog-gruen-color,
.parent-pageid-8426 a[href*="google"]:hover,
.parent-pageid-8426 a[href*="google"]:hover mark,
.parent-pageid-8426 a[href*="google"]:hover .has-inline-color,
.parent-pageid-8426 a[href*="google"]:hover .has-rohprog-gruen-color {
    color: #000 !important;
}


.nav-previous a, .nav-next a {
    color:#000!important;
    background:#88ab32!important;
}
.nav-previous a:hover,
.nav-next a:hover,
.nav-previous a:focus,
.nav-next a:focus  {
    color:#fff!important;
    background:#222!important;
}

.inside-top-bar a:hover,
.inside-top-bar a:focus {
    text-decoration: underline!important;
    color:#000;
}

/* ==========================================================================
   ROHPROG Landingpages – Fassung 0.12 · 06.10.2026
   0.12: Abschnitt 11 neu – Orte-Übersicht (.lp-ou) ersetzt .lp-gebiete.
   0.10: Typoskala ruhiger – H1 38 px (mobil 28), Gewicht 700; H2 30 px;
         Preise in Hero und Produktblock 32 px.
   0.9: Vertrauenszeile unter den Hero-Buttons (.lp-vertrauen), Zusatzzeile
        im Infofeld (.lp-infofeld__zusatz), Leiste ohne Wortbruch: Spalten nie
        schmaler als ihr längstes Wort.
   0.8: Hero mit Bild (Text | Bild 50/50), Infofeld als Leiste unter dem
        Hero-Raster (.lp-infofeld--leiste), Hero-Band oben schmaler.
   0.7: Bewertungen ab 72em: Summary nur so hoch wie die erste Kartenreihe,
        darunter Weißraum (gemeinsames Raster, Kartenliste display: contents).
   0.6: Bewertungen ab 72em Summary/Karten 50/50, Karten 2 × 2 mit gleichen
        Reihenhöhen, keine Silbentrennung in den Bewertungen.
   0.5: Bewertungen ab 64em zweispaltig (Summary links, drei Karten rechts),
        Kartenreihe füllt die Breite.
   0.4: Abstände der Bänder (oben/unten, Seitenrand) zentral hier statt
        je GB-Container; .lp-kachel h3 fett.
   0.3: .lp-aktionen (Hero-Buttons), .lp-kacheln (Raster im Custom-HTML-Block,
        schließt sich bei 2–4 Kacheln), .lp-kachel__link, .lp-ausserdem,
        .lp-infofeld a, .lp-bewertungen mit Abstand, .lp-kontakt.
   0.2: Abschnitt 8 neu – Produktblock .lp-produkt (mpg-produktblock-rohprog
        1.0.0) ersetzt .lp-empfehlung. Der GB-Container um den Shortcode
        braucht keine eigene Klasse mehr.
   Gilt für: Stadt-, Kreis-, Hybrid- und reduziertes Template
   Präfix: lp-   (in rohprog-style-29-09-2026.css nicht belegt)
   Aufteilung: GenerateBlocks = Layout (Container, Grids, Abstände)
               diese Datei    = Gestaltung (Farben, Schrift, Komponenten)
   Alles ist unter .lp gekapselt. Die Klasse .lp sitzt am äußersten
   GB-Container des Templates; ohne sie greift keine Regel dieser Datei.
   Schrift: keine eigene – Theme-Schrift wird geerbt.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
.lp {
    /* Marke */
    --lp-gruen:          #88ab32;   /* Akzent: Balken, Linien – nicht für Text/Buttons (Kontrast) */
    --lp-gruen-dunkel:   #4a630e;   /* Buttons, Links – wie aktive Menüpunkte auf rohprog.de */
    --lp-gruen-hover:    #3a5300;

    /* Neutral */
    --lp-text:           #20261f;
    --lp-text-2:         #4a5446;   /* Nebentext, erfüllt 4,5:1 auf Weiß und Grau */
    --lp-bg-grau:        #f1f3ec;
    --lp-linie:          #d6dccd;

    /* Leistungsfarben (Portal) – nur Flächen/Balken, nie Schrift */
    --lp-preiswert:          #f6a428;
    --lp-komfortabel:        #53bdbf;
    --lp-nachhaltig:         #96c45b;
    --lp-regelmaessig:       #ec5f64;
    --lp-selbstanlieferung:  #b68cbf;
    --lp-vorort:             #6b8fc9;

    /* Maße */
    --lp-radius:   8px;
    --lp-radius-s: 6px;
    --lp-balken:   5px;

    color: var(--lp-text);
}


/* --------------------------------------------------------------------------
   2. Neutralisieren, was rohprog.css global setzt
   -------------------------------------------------------------------------- */

/* .entry-content a { text-decoration: underline } – Links im Fließtext bleiben
   unterstrichen, Buttons und Kacheln nicht (Spezifität 0,2,0 > 0,1,1) */
.lp .lp-btn,
.lp .lp-querlinks a {
    text-decoration: none;
}

/* h1 { font-size: 26px } unter 768 px aus rohprog.css – eigene Stufung:
   28 px mobil bis 38 px Desktop (wie die übrigen Ortsseiten), Gewicht 700 */
.lp h1 {
    font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.375rem);
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--lp-text);
    margin: 0 0 0.5em;
}

/* p { hyphens: auto } bleibt, aber nicht bei Preisen und Telefonnummern */
.lp .lp-preis,
.lp .lp-tel {
    hyphens: manual;
    white-space: nowrap;
}


/* --------------------------------------------------------------------------
   3. Kapitel (Bänder) und Überschriften
   -------------------------------------------------------------------------- */
.lp-band          { background: #fff; }
.lp-band--grau    { background: var(--lp-bg-grau); }

/* Abstände: Band = äußerer GB-Container (volle Breite, Hintergrund),
   darin der innere GB-Container (max. 1400 px wie Header und Footer).
   Oben/unten 48 px mobil bis 80 px Desktop, Seitenrand 20 bis 40 px.
   In GB an diesen Containern keine Abstände setzen. */
.lp .lp-band {
    padding-block: clamp(3rem, 2.2rem + 3.2vw, 5rem);
}
.lp .lp-band > .gb-container {
    padding-inline: clamp(1.25rem, 0.75rem + 2vw, 2.5rem);
}

/* Dachzeile über dem Kapitelanfang */
.lp .lp-dach {
    margin: 0 0 0.5rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--lp-text-2);
}

/* H2 mit Akzentbalken (Standard). Ausnahme: .lp-h2--mittig ohne Balken */
.lp .lp-h2 {
    margin: 0 0 1.75rem;
    font-size: clamp(1.5rem, 1.3rem + 0.8vw, 1.875rem);
    line-height: 1.2;
    font-weight: 700;
    color: var(--lp-text);
}
.lp .lp-h2::before {
    content: "";
    display: block;
    width: 56px;
    height: var(--lp-balken);
    margin-bottom: 0.75rem;
    border-radius: 3px;
    background: var(--lp-gruen);
}
.lp .lp-h2--mittig          { text-align: center; }
.lp .lp-h2--mittig::before  { display: none; }


/* --------------------------------------------------------------------------
   4. Buttons
   -------------------------------------------------------------------------- */
.lp .lp-btn {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0 1.6rem;
    border: 2px solid var(--lp-gruen-dunkel);
    border-radius: var(--lp-radius-s);
    background: var(--lp-gruen-dunkel);
    color: #fff;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.2;
}
.lp .lp-btn:hover,
.lp .lp-btn:focus-visible {
    background: var(--lp-gruen-hover);
    border-color: var(--lp-gruen-hover);
    color: #fff;
}
.lp .lp-btn--sekundaer {
    background: transparent;
    color: var(--lp-gruen-dunkel);
}
.lp .lp-btn--sekundaer:hover,
.lp .lp-btn--sekundaer:focus-visible {
    background: var(--lp-gruen-dunkel);
    color: #fff;
}
.lp .lp-btn:focus-visible {
    outline: 3px solid var(--lp-text);
    outline-offset: 2px;
}


/* --------------------------------------------------------------------------
   5. Hero: Einleitung, Preisanker, Infofeld
   -------------------------------------------------------------------------- */
.lp .lp-intro {
    font-size: 1.15rem;
    line-height: 1.6;
    max-width: 38em;
}

.lp .lp-preisanker          { display: flex; flex-direction: column; gap: 0.2rem; }
.lp .lp-preisanker__menge   { font-size: 1rem; color: var(--lp-text-2); }
.lp .lp-preisanker__betrag  { font-size: clamp(1.75rem, 1.55rem + 0.8vw, 2rem); font-weight: 800; line-height: 1.15; font-variant-numeric: tabular-nums; }
.lp .lp-preisanker__hinweis { font-size: 0.95rem; color: var(--lp-text-2); }

/* Infofeld als <dl> */
.lp .lp-infofeld {
    margin: 0;
    padding: 0.5rem 1.75rem 0.75rem;
    border-radius: var(--lp-radius);
    background: var(--lp-bg-grau);
}
.lp .lp-infofeld__zeile     { padding: 0.85rem 0; border-top: 1px solid var(--lp-linie); }
.lp .lp-infofeld__zeile:first-child { border-top: 0; }
.lp .lp-infofeld dt         { font-size: 0.9rem; color: var(--lp-text-2); }
.lp .lp-infofeld dd         { margin: 0.1rem 0 0; font-size: 1.1rem; font-weight: 600; }

/* [mammut_rating] im Infofeld an die Umgebung angleichen */
.lp .lp-infofeld .mammut-widget.mammut-rating {
    padding: 0;
    border-radius: 0;
    background: transparent;
    font-family: inherit;
    color: inherit;
}


/* Buttons im Hero: nebeneinander, unter 30em untereinander */
.lp .lp-aktionen {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

/* Link „je nach Ort, siehe Tourtage“ im Infofeld */
.lp .lp-infofeld a { color: var(--lp-gruen-dunkel); }


/* Hero mit Bild (ab 0.8)
   GB-Grid 50/50: links Text, rechts GB-Bildblock mit Klasse lp-hero-bild.
   Das Infofeld steht als Leiste unter dem Grid (lp-infofeld--leiste),
   ab 64em fünf bzw. sechs Felder nebeneinander, darunter gestapelt. */
.lp .lp-band:first-child { padding-top: clamp(2rem, 1.4rem + 2.4vw, 3.5rem); }
.lp .lp-hero-bild { margin: 0; }
.lp .lp-hero-bild img,
.lp img.lp-hero-bild {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    object-position: 45% 35%;
    border-radius: var(--lp-radius);
}
.lp .lp-infofeld--leiste { margin-top: 2rem; }

/* Keine Wortbrüche im Infofeld; Trennung nur an &shy; */
.lp .lp-infofeld dd {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}
/* Zweite, kleinere Zeile im Feld (Wunschtermin, Schutzklasse 3) */
.lp .lp-infofeld__zusatz {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--lp-text-2);
}

/* Vertrauen unter den Buttons: Zeile 1 [mammut_rating], Zeile 2 Betrieb.
   Bewusst zweizeilig: nebeneinander passt es bei 50/50 nicht sicher. */
.lp .lp-vertrauen {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
    margin-top: 1.25rem;
    font-size: 0.95rem;
}
.lp .lp-vertrauen .mammut-widget.mammut-rating {
    display: inline-flex;
    width: auto;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    font-family: inherit;
    color: inherit;
}
.lp .lp-vertrauen__betrieb { color: var(--lp-text-2); }
@media (min-width: 64em) {
    .lp .lp-infofeld--leiste {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(min-content, 1fr);
        padding: 1.1rem 1.75rem;
    }
    .lp .lp-infofeld--leiste .lp-infofeld__zeile {
        padding: 0.15rem 1.25rem;
        border-top: 0;
        border-left: 1px solid var(--lp-linie);
    }
    .lp .lp-infofeld--leiste .lp-infofeld__zeile:first-child {
        padding-left: 0;
        border-left: 0;
    }
    .lp .lp-infofeld--leiste dd { font-size: 1rem; }
}


/* --------------------------------------------------------------------------
   6. Leistungskacheln (Grid kommt aus GenerateBlocks)
   -------------------------------------------------------------------------- */
.lp .lp-kachel {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    height: 100%;
    padding: 1.5rem 1.5rem 1.6rem;
    border: 1px solid var(--lp-linie);
    border-top: 8px solid var(--lp-kachel-farbe, var(--lp-linie));
    border-radius: var(--lp-radius);
    background: #fff;
}
.lp .lp-kachel--preiswert         { --lp-kachel-farbe: var(--lp-preiswert); }
.lp .lp-kachel--komfortabel       { --lp-kachel-farbe: var(--lp-komfortabel); }
.lp .lp-kachel--nachhaltig        { --lp-kachel-farbe: var(--lp-nachhaltig); }
.lp .lp-kachel--regelmaessig      { --lp-kachel-farbe: var(--lp-regelmaessig); }
.lp .lp-kachel--selbstanlieferung { --lp-kachel-farbe: var(--lp-selbstanlieferung); }
.lp .lp-kachel--vorort            { --lp-kachel-farbe: var(--lp-vorort); }

.lp .lp-kachel h3                 { margin: 0; font-size: 1.35rem; font-weight: 700; }
.lp .lp-kachel p                  { margin: 0; flex-grow: 1; line-height: 1.55; }
.lp .lp-kachel__preis             { padding-top: 0.75rem; border-top: 1px solid var(--lp-linie); }
.lp .lp-kachel__menge             { display: block; font-size: 0.9rem; color: var(--lp-text-2); }
.lp .lp-kachel__betrag            { display: block; font-size: 1.75rem; font-weight: 800; font-variant-numeric: tabular-nums; }

/* Raster im Custom-HTML-Block <div class="lp-kacheln">. auto-fit schließt die
   Reihe bei 2, 3 oder 4 Kacheln; leere Platzhalter erzeugen keine Spalte. */
.lp .lp-kacheln {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14.5rem, 1fr));
    gap: 1.25rem;
}
.lp .lp-kachel__link {
    font-weight: 700;
    color: var(--lp-gruen-dunkel);
    text-underline-offset: 0.2em;
}
.lp .lp-kachel__link:hover,
.lp .lp-kachel__link:focus-visible { color: var(--lp-gruen-hover); }

/* Satz „Außerdem buchbar: …“ unter den Kacheln */
.lp .lp-ausserdem {
    margin: 1.75rem 0 0.5rem;
    line-height: 1.6;
}
.lp .lp-ausserdem a { color: var(--lp-gruen-dunkel); font-weight: 600; }

/* Hinweis „Angebot für Unternehmen, netto zzgl. MwSt.“ */
.lp .lp-hinweis {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--lp-text-2);
}


/* --------------------------------------------------------------------------
   7. Tour und Ortsliste
   -------------------------------------------------------------------------- */
.lp .lp-orte {
    margin: 0;
    padding: 0;
    list-style: none;
}
.lp .lp-orte li {
    padding: 0.75rem 0;
    border-top: 1px solid var(--lp-linie);
    font-size: 1.1rem;
}
/* Kreise mit mehreren Touren: Tabelle Ort | Tourtag */
.lp .lp-tourtabelle            { width: 100%; border-collapse: collapse; }
.lp .lp-tourtabelle th,
.lp .lp-tourtabelle td         { padding: 0.7rem 0; border: 0; border-top: 1px solid var(--lp-linie); text-align: left; }
.lp .lp-tourtabelle th         { font-size: 0.9rem; color: var(--lp-text-2); font-weight: 600; }


/* --------------------------------------------------------------------------
   8. Produktblock (Shortcode [mpg_produktblock]) und Bewertungen
   Rahmen, Raster und Leistungsfarbe liegen hier, weil das Markup aus dem
   Plugin kommt und kein GB-Layout hat.
   -------------------------------------------------------------------------- */
.lp .lp-produkt {
    --lp-produkt-farbe: var(--lp-gruen);
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 1.5rem;
    border: 1px solid var(--lp-linie);
    border-top: 8px solid var(--lp-produkt-farbe);
    border-radius: var(--lp-radius);
    background: #fff;
}
.lp .lp-produkt--preiswert   { --lp-produkt-farbe: var(--lp-preiswert); }
.lp .lp-produkt--komfortabel { --lp-produkt-farbe: var(--lp-komfortabel); }
.lp .lp-produkt--vorort      { --lp-produkt-farbe: var(--lp-vorort); }

@media (min-width: 48em) {
    .lp .lp-produkt {
        grid-template-columns: minmax(14rem, 20rem) 1fr;
        gap: 2.5rem;
        padding: 2rem;
        align-items: stretch;
    }
    .lp .lp-produkt--ohne-bild { grid-template-columns: 1fr; }
}

/* Freigestellte PNGs auf grauer Fläche */
.lp .lp-produkt__bild {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    border-radius: var(--lp-radius-s);
    background: var(--lp-bg-grau);
}
.lp .lp-produkt__bild img {
    display: block;
    width: 100%;
    max-width: 20rem;
    height: auto;
}

.lp .lp-produkt__inhalt  { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.lp .lp-produkt__titel {
    margin: 0;
    font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.65rem);
    line-height: 1.25;
    font-weight: 700;
    color: var(--lp-text);
}
.lp .lp-produkt__liste {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    padding-left: 1.2em;
    line-height: 1.5;
}
.lp .lp-produkt__liste li { margin: 0; }
.lp .lp-produkt__optionen { font-size: 0.95rem; color: var(--lp-text-2); }

/* Preis links, Button rechts; unter 48em untereinander, Button volle Breite */
.lp .lp-produkt__kasse {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--lp-linie);
}
.lp .lp-produkt__preis   { display: flex; flex: 1 1 16rem; flex-direction: column; gap: 0.15rem; }
.lp .lp-produkt__cta     { flex: 0 0 auto; }
.lp .lp-produkt__menge   { font-size: 0.95rem; color: var(--lp-text-2); }
.lp .lp-produkt__betrag  {
    font-size: clamp(1.75rem, 1.55rem + 0.8vw, 2rem);
    line-height: 1.15;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--lp-text);
}
.lp .lp-produkt__hinweis { font-size: 0.9rem; line-height: 1.45; color: var(--lp-text-2); }
.lp .lp-produkt__weitere { flex-basis: 100%; font-size: 0.95rem; color: var(--lp-text-2); }

@media (max-width: 47.99em) {
    .lp .lp-produkt__cta,
    .lp .lp-produkt__cta { flex-basis: 100%; }
    .lp .lp-produkt__cta .lp-btn { width: 100%; box-sizing: border-box; justify-content: center; }
}

/* Ziel des Links „bei X Bewertungen“ aus [mammut_rating]: id="bewertungen" */
.lp .lp-bewertungen { margin-top: 2.5rem; scroll-margin-top: 6rem; }

/* Bewertungen (Plugin-Markup .mammut-widget > .mammut-summary + .mammut-reviews-list)
   4 Karten 2 × 2, Reihen gleich hoch; ab 72em Summary links, Karten rechts (je 50 %).
   Unter 32.5em eine Karte pro Zeile, Höhe nach Inhalt. */
.lp .lp-bewertungen p { hyphens: manual; }
.lp .lp-bewertungen .mammut-reviews-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    padding-inline: 0;
}
@media (max-width: 32.49em) {
    .lp .lp-bewertungen .mammut-reviews-list {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }
}
@media (min-width: 72em) {
    /* Ein gemeinsames Raster: Summary | Karte | Karte. Die Kartenliste löst
       sich auf (display: contents), die Karten liegen direkt im Raster.
       Summary nur in Reihe 1, darunter Weißraum. */
    .lp .lp-bewertungen .mammut-widget {
        display: grid;
        grid-template-columns: 2fr 1fr 1fr;
        grid-auto-rows: 1fr;
        gap: 1.5rem;
        overflow: visible;
        background: transparent;
    }
    .lp .lp-bewertungen .mammut-summary {
        grid-column: 1;
        grid-row: 1;
        border-bottom: 0;
        border-radius: var(--lp-radius);
    }
    .lp .lp-bewertungen .mammut-reviews-list { display: contents; }
    .lp .lp-bewertungen .mammut-review-card:nth-child(odd)  { grid-column: 2; }
    .lp .lp-bewertungen .mammut-review-card:nth-child(even) { grid-column: 3; }
}



/* --------------------------------------------------------------------------
   9. Kontakt und Querlinks
   -------------------------------------------------------------------------- */
.lp .lp-kontakt {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 1.25rem 3rem;
}
.lp .lp-kontakt p { margin: 0; }
.lp .lp-kontakt__label { display: block; font-size: 0.9rem; color: var(--lp-text-2); }
.lp .lp-kontakt__wert  { font-size: 1.35rem; font-weight: 700; color: var(--lp-text); }

.lp .lp-querlinks {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.lp .lp-querlinks a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 1rem;
    border: 1px solid var(--lp-linie);
    border-radius: 22px;
    color: var(--lp-text);
}
.lp .lp-querlinks a:hover,
.lp .lp-querlinks a:focus-visible {
    border-color: var(--lp-gruen-dunkel);
    color: var(--lp-gruen-dunkel);
}


/* --------------------------------------------------------------------------
   11. Orte-Übersicht (.lp-ou) – alle Orts-Landingpages
   Städte als Kacheln, Landkreise als <details>-Akkordeon mit Gemeindeseiten.
   Kreise ohne Gemeindeseiten erscheinen als Kachel mit direktem Link.
   Ein geöffneter Kreis nimmt die ganze Zeile ein (Gemeinden in Spalten).
   -------------------------------------------------------------------------- */
.lp .lp-ou__titel {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0 0 1rem;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--lp-text-2);
}
.lp .lp-ou__titel::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--lp-linie);
}
.lp .lp-ou__kacheln {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
    gap: 0.6rem;
    margin: 0 0 2.75rem;
    padding: 0;
    list-style: none;
}
.lp .lp-ou__kacheln li { margin: 0; }

/* Kachel (Link) und Kreiszeile (summary) teilen die Grundform */
.lp .lp-ou__kachel,
.lp .lp-ou__kreis > summary {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 3.25rem;
    box-sizing: border-box;
    padding: 0.6rem 1rem;
    border: 1px solid var(--lp-linie);
    border-radius: var(--lp-radius-s);
    background: #fff;
    color: var(--lp-text);
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}
.lp .lp-ou__kachel { justify-content: space-between; height: 100%; }
.lp .lp-ou__kachel::after {
    content: "→";
    color: var(--lp-text-2);
    font-weight: 400;
}
.lp .lp-ou__kachel:hover,
.lp .lp-ou__kachel:focus-visible,
.lp .lp-ou__kreis > summary:hover,
.lp .lp-ou__kreis > summary:focus-visible {
    border-color: var(--lp-gruen-dunkel);
    color: var(--lp-gruen-dunkel);
}
.lp .lp-ou__kachel:hover::after { color: var(--lp-gruen-dunkel); }

.lp .lp-ou__kreise {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 0.6rem;
    align-items: start;
}
.lp .lp-ou__kachel--kreis,
.lp .lp-ou__kreis > summary { background: var(--lp-bg-grau); }

.lp .lp-ou__kreis > summary {
    cursor: pointer;
    list-style: none;
}
.lp .lp-ou__kreis > summary::-webkit-details-marker { display: none; }
.lp .lp-ou__anzahl {
    margin-left: auto;
    font-size: 0.85rem;
    font-weight: 400;
    color: var(--lp-text-2);
}
.lp .lp-ou__kreis > summary::after {
    content: "+";
    width: 1rem;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1;
    font-weight: 700;
    color: var(--lp-gruen-dunkel);
}
.lp .lp-ou__kreis[open] { grid-column: 1 / -1; }
.lp .lp-ou__kreis[open] > summary::after { content: "–"; }

.lp .lp-ou__liste {
    columns: 4 11rem;
    column-gap: 2rem;
    margin: 0.75rem 0 1.25rem;
    padding: 0 1rem;
    list-style: none;
}
.lp .lp-ou__liste li {
    margin: 0;
    padding: 0.3rem 0;
    break-inside: avoid;
}
.lp .lp-ou__liste a {
    color: var(--lp-text);
    text-decoration: none;
}
.lp .lp-ou__liste a:hover,
.lp .lp-ou__liste a:focus-visible {
    color: var(--lp-gruen-dunkel);
    text-decoration: underline;
}


/* --------------------------------------------------------------------------
   10. Reserviert für das Voll- und Hybrid-Template (noch ohne Regeln)
   .lp-textbild, .lp-karten / .lp-karte, .lp-zertifikate, .lp-behaelter,
   .lp-container, .lp-ortsbereich / .lp-ortsblock
   Template-Varianten am Wrapper: .lp--stadt, .lp--kreis, .lp--hybrid, .lp--reduziert
   -------------------------------------------------------------------------- */