body,form,figure{margin:0;padding:0}img{border:0}header,footer,nav,section,aside,article,figure,figcaption{display:block}body{font-size:100.01%}select,input,textarea{font-size:99%}#container,.inside{position:relative}#main,#left,#right{float:left;position:relative}#main{width:100%}#left{margin-left:-100%}#right{margin-right:-100%}#footer{clear:both}#main .inside{min-height:1px}.ce_gallery>ul,.content-gallery>ul{margin:0;padding:0;overflow:hidden;list-style:none}.ce_gallery>ul li,.content-gallery>ul li{float:left}.ce_gallery>ul li.col_first,.content-gallery>ul li.col_first{clear:left}.float_left,.media--left>figure{float:left}.float_right,.media--right>figure{float:right}.block{overflow:hidden}.media{display:flow-root}.clear,#clear{height:.1px;font-size:.1px;line-height:.1px;clear:both}.invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.custom{display:block}#container:after,.custom:after{content:"";display:table;clear:both}
@media (max-width:767px){#wrapper{margin:0;width:auto}#container{padding-left:0;padding-right:0}#main,#left,#right{float:none;width:auto}#left{right:0;margin-left:0}#right{margin-right:0}}img{max-width:100%;height:auto}.audio_container audio{max-width:100%}.video_container video{max-width:100%;height:auto}.aspect,.responsive{position:relative;height:0}.aspect iframe,.responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%}.aspect--16\:9,.responsive.ratio-169{padding-bottom:56.25%}.aspect--16\:10,.responsive.ratio-1610{padding-bottom:62.5%}.aspect--21\:9,.responsive.ratio-219{padding-bottom:42.8571%}.aspect--4\:3,.responsive.ratio-43{padding-bottom:75%}.aspect--3\:2,.responsive.ratio-32{padding-bottom:66.6666%}.aspect--9\:16,.responsive.ratio-916{padding-bottom:177.7777%}.aspect--1\:1,.responsive.ratio-11{padding-bottom:100%}
/*
 * Pferdezentrum Katschberg – Theme für Contao 5.7
 * Neu aufgebaut aus den Contao-3-Stylesheets style, navigation, style-ipad, style-mobi (Stand live 10/2026).
 */

@font-face {
    font-family: 'belwe_bd_btbold';
    src: url('../../files/theme/fonts/belweb-webfont.woff2') format('woff2'), url('../../files/theme/fonts/belweb-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --pz-braun: #8b6743;
    --pz-braun-hell: #9e7a59;
    --pz-creme: #ece5d8;
    --pz-rot: #960001;
    --pz-rot-dunkel: #8d0301;
    --pz-schrift: 'Roboto', Arial, Tahoma, sans-serif;
    --pz-deko: 'belwe_bd_btbold', Georgia, serif;
}

/* ---------- Grundlagen (ersetzt Contao-3-Framework layout.css/responsive.css) ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font: 300 16px/30px var(--pz-schrift);
    color: #fff;
    background: #5e452d var(--pz-bg, none) center top / cover no-repeat fixed;
}
img { max-width: 100%; height: auto; border: 0; }
figure { margin: 0; padding: 0; }
p { margin: 0 0 1em; }
.invisible { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.invisible:focus { position: static !important; width: auto; height: auto; clip: auto; }

/* ---------- Seitenaufbau ---------- */
#container { background: url('../../files/nav/bg-main.png') left top repeat-x; }
#header { background: url('../../files/nav/hg-header.png') left top repeat-x; }
#header .inside, #footer .inn { position: relative; width: 1000px; max-width: 100%; margin: 0 auto; }
#header .inside { min-height: 500px; }
#header *, #footer * { transition: all .4s ease-in-out; }

#main { position: relative; float: none; width: 980px; max-width: 100%; margin: 0 auto; padding: 10px 10px 50px; background-color: var(--pz-braun); }
#main .inside { margin: 0 auto; padding: 20px; border: 1px dashed #e7ded5; }
#main .mod_article:first-child { background: url('../../files/nav/hg-main.png') center center no-repeat; }
#main a { color: #fff; }

/* ---------- Überschriften ---------- */
#main h1 { margin: 10px 0 30px 10px; font: 50px/55px var(--pz-deko); color: #fff; }
#main h1 .ue { margin-left: -10px; padding-left: 10px; border-left: 3px solid var(--pz-rot); color: var(--pz-rot); }
#main h3 { margin: 15px 0 0; padding-left: 20px; border-left: 3px solid var(--pz-rot); font: 30px/30px var(--pz-deko); color: var(--pz-rot); }
#main table h4 { margin: 0; padding: 0 0 0 20px; border-left: 3px solid var(--pz-rot); font: 22px/25px var(--pz-deko); color: var(--pz-rot); }
#main #impressum h3 { font-size: 20px; line-height: 23px; }

/* ---------- Texte, Listen, Tabellen ---------- */
#main .content-text li, #main .mod_sitemap li {
    margin-left: 0; padding-left: 20px; list-style: none;
    background: url('../../files/nav/li.png') left top no-repeat;
}
#main .content-text ul, #main .mod_sitemap ul { padding-left: 0; }
#main table { border-collapse: separate; max-width: 100%; }
#main table td { padding: 7px; border: 1px dashed var(--pz-creme); }
#main .mod_sitemap a { font: 20px var(--pz-schrift); text-decoration: none; }
#main .mod_sitemap a:hover { text-decoration: underline; }

/* Text mit Bild (C3: floating) */
#main .content-text.media--right > figure, #main .content-text .media--right figure { float: right; margin: 0 0 15px 20px; }
#main .content-text::after { content: ''; display: table; clear: both; }

#main .ornament { height: 55px; margin: 40px 0; background: url('../../files/nav/ornament.png') center center no-repeat; }

#main .banner { float: right; }
#main .banner a {
    display: inline-block; padding-top: 33px;
    background: url('../../files/nav/blume-weiss.png') center top no-repeat;
    font: 20px/25px var(--pz-deko); text-decoration: none; color: #fff;
}
#main .pz-col::after { content: ''; display: table; clear: both; }

#main .pferd { margin-bottom: 25px; padding-bottom: 5px; border-bottom: 1px dashed var(--pz-creme); }
#main .buttons .content-text p { padding-left: 20px; }
#main .buttons h3 { font-size: 22px; }

/* ---------- Spalten (ersetzt Subcolumns) ---------- */
.pz-cols { display: grid; gap: 0 4%; grid-template-columns: 1fr 1fr; }
.pz-cols--33-33-33 { grid-template-columns: repeat(3, 1fr); gap: 0 2%; }
.pz-col { min-width: 0; }

/* ---------- Galerien ---------- */
#main .content-gallery ul { display: grid; gap: 8px 14px; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(var(--pz-gallery-cols, 4), auto); justify-content: start; }
#main .content-gallery li { margin: 8px 0 0; padding: 0; background: none; }
#main .content-gallery--cols-1 { --pz-gallery-cols: 1; }
#main .content-gallery--cols-2 { --pz-gallery-cols: 2; }
#main .content-gallery--cols-3 { --pz-gallery-cols: 3; }
#main .content-gallery--cols-4 { --pz-gallery-cols: 4; }
#main .content-gallery.gal ul { grid-template-columns: repeat(4, 1fr); gap: 0 1.5%; }
#main .content-gallery img { display: block; }

/* ---------- YouTube ---------- */
#main .content-youtube figure { position: relative; aspect-ratio: 16 / 9; }
#main .content-youtube iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Reiter (ersetzt tabcontrol) ---------- */
.pz-tabs__list { display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 0 10px; }
.pz-tabs__list[hidden] { display: none; }
.pz-tabs__tab {
    margin-top: 5px; padding: 9px; border: 0; cursor: pointer;
    background-color: var(--pz-creme); color: var(--pz-braun);
    font: 23px/30px var(--pz-deko);
}
.pz-tabs__tab:hover { background-color: #a38160; color: var(--pz-creme); }
.pz-tabs__tab[aria-selected='true'] { color: var(--pz-rot-dunkel); }
.pz-tabs__tab:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.pz-tabs__panel[hidden] { display: none; }
.pz-tabs__panel { padding: 20px; background-color: var(--pz-braun-hell); }
.pz-tabs__panel + .pz-tabs__panel { margin-top: 20px; }
.pz-tabs--ready .pz-tabs__panel + .pz-tabs__panel { margin-top: 0; }
.pz-tabs--ready .pz-tabs__fallback-title { display: none; }
.pz-tabs__fallback-title { margin: 0 0 10px; font: 23px/30px var(--pz-deko); color: var(--pz-creme); }

/* ---------- Header: Betriebe, Logo, Social ---------- */
#betriebe { margin-left: -15px; }
#betriebe a { text-decoration: none; }
#betriebe .pony, #betriebe .pferd {
    float: left; margin-top: -8px; padding: 15px 25px; text-align: center;
    background: url('../../files/nav/hg-betriebe.png') center top / 100% 130px no-repeat;
}
#betriebe .pony:hover, #betriebe .pferd:hover { margin-top: 0; }
#betriebe .betriebe__kurz {
    display: block; margin: 0; padding-top: 35px;
    background: url('../../files/nav/blume-betriebe.png') center top no-repeat;
    font: 300 18px/20px var(--pz-schrift); color: #2a2017;
}
#betriebe .betriebe__name { display: block; margin: 0; padding-top: 5px; font: 23px var(--pz-deko); color: var(--pz-rot-dunkel); }

#header #logo { position: absolute; top: 60px; right: 0; }
#header #links { position: absolute; right: 0; bottom: 20px; width: 350px; }
#header #links .social a {
    float: right; display: inline-block; margin-left: 30px; padding-right: 40px;
    font: 300 20px/40px var(--pz-schrift); text-decoration: none; color: #fff;
    background: right center no-repeat;
}
#header #links .social.youtube a { background-image: url('../../files/nav/youtube.png'); }
#header #links .social.facebook a { background-image: url('../../files/nav/facebook.png'); }
#header #links .social.youtube:hover a { color: #900; background-image: url('../../files/nav/youtube-hover.png'); }
#header #links .social.facebook:hover a { color: #425f9c; background-image: url('../../files/nav/facebook-hover.png'); }

#butt a {
    position: fixed; top: 250px; right: 0; z-index: 2; display: block; box-sizing: content-box; width: 120px; padding: 10px;
    text-align: right; background-color: var(--pz-rot);
    font: 17px/23px var(--pz-deko); text-decoration: none; color: #fff;
}
#butt a:hover { padding-right: 20px; }

#butt2 a {
    position: fixed; top: 330px; right: 0; z-index: 2; display: block; box-sizing: content-box; width: 120px; padding: 10px;
    text-align: right; background-color: var(--pz-rot);
    font: 17px/23px var(--pz-deko); text-decoration: none; color: #fff;
}
#butt2 a:hover { padding-right: 20px; }

/* ---------- Navigationen ---------- */
#nav { position: absolute; top: 160px; left: 0; width: 50%; }
#nav ul { margin: 0; padding: 0; }
#nav li { margin: 13px 0; padding-left: 30px; border-left: 4px solid #fff; list-style: none; }
#nav a, #nav strong { font: 700 25px/35px var(--pz-schrift); text-decoration: none; color: #fff; }
#nav li.trail, #nav li.active { border-left-color: var(--pz-rot-dunkel); }
#nav li:hover { border-left-color: var(--pz-braun); }

#header .verli { position: absolute; top: 3px; right: 0; }
#header .verli ul { margin: 0; padding: 0; }
#header .verli li { float: right; margin: 0 0 0 10px; padding: 0; list-style: none; }
#header .verli a, #header .verli strong { font: 17px/20px var(--pz-schrift); text-decoration: none; color: #fff; }
#header .verli a:hover, #header .verli strong { text-decoration: underline; }

.navigationMain3 { position: absolute; bottom: 10px; left: 0; }
.navigationMain3 ul { margin: 0; padding: 0; }
.navigationMain3 li { float: left; margin: 0 30px 0 0; padding: 0; list-style: none; }
.navigationMain3 a, .navigationMain3 strong { font: 300 25px/30px var(--pz-schrift); text-decoration: none; color: #900; }
.navigationMain3 strong, .navigationMain3 a.trail { font-weight: 700; }

.nav-toggle { display: none; }

/* ---------- Kontakt und Footer ---------- */
#logo-kl { text-align: center; }
#main #br {
    width: 460px; max-width: 100%; margin: 0 auto 60px; padding: 60px 0 80px;
    background: url('../../files/nav/hg-main.png') center center no-repeat;
}
#main #br a { color: #9e0004; }
#footer { position: relative; margin-top: -155px; }
#footer #copy { position: absolute; right: 0; bottom: 20px; }
#tischtuch { width: 100%; }
#tischtuch img { display: block; width: 100%; height: auto; }

/* ---------- Tablet (C3: style-ipad) ---------- */
@media (min-width: 767px) and (max-width: 1020px) {
    #header .inside, #footer .inn { width: 95%; }
    #main { width: 96%; padding: 2%; }
    #main .inside { width: 95%; }
    #butt a { position: absolute; top: 270px; margin-right: -2.5%; }
    #butt a, #butt2 a { position: absolute; margin-right: -2.5%; }
    #betriebe .pferd { margin-left: -10px; }
    #betriebe .pony, #betriebe .pferd { padding-right: 17px; padding-left: 17px; }
    #betriebe .betriebe__kurz { font-size: 16px; line-height: 20px; }
    #betriebe .betriebe__name { font-size: 18px; line-height: 20px; }
    #header #logo { top: 50px; width: 280px; }
    #nav { width: 100%; }
    #nav a, #nav strong { font-size: 22px; line-height: 25px; }
    #main h1 { font-size: 40px; line-height: 45px; }
    .navigationMain3 a, .navigationMain3 strong { font-size: 20px; line-height: 20px; }
    #main .buttons h3 { font-size: 18px; line-height: 18px; }
    #main .content-gallery.gal ul { grid-template-columns: repeat(2, 1fr); gap: 0 4%; }
}

/* ---------- Handy (C3: style-mobi) ---------- */
@media (max-width: 768px) {
    body { font-size: 15px; line-height: 20px; padding-bottom: 70px; background-attachment: scroll; }
    #header .inside, #footer .inn { width: 90%; padding: 0; }
    #main { width: 96%; padding: 2%; }
    #main .inside { padding: 12px; }
    #main h1 { margin-top: 30px; font-size: 35px; line-height: 35px; }
    #main h3 { font-size: 22px; line-height: 30px; }

    #betriebe, .navigationMain3 { display: none; }
    #header #logo { position: relative; top: 60px; z-index: 1; width: 100%; text-align: center; }
    #header #logo img { width: 90%; max-width: 260px; }
    #header #links { bottom: 15px; }
    #header .verli { right: 0; }
    #butt a { position: absolute; top: 270px; margin-right: -5%; }
    #butt a, #butt2 a { position: absolute; margin-right: -5%; }

    .pz-cols, .pz-cols--33-33-33 { grid-template-columns: 1fr; }
    #main .content-gallery ul, #main .content-gallery.gal ul { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    #main .content-gallery img { width: 100%; }
    #main .content-image img, #main .content-text figure img { width: 100%; }
    #main .content-text.media--right > figure { float: none; margin: 0 0 15px; }
    #main .content-youtube { margin-bottom: 20px; }
    #main .ornament { background-size: 230px auto; }
    #main #br { width: 100%; background-size: 100% auto; }
    #main #br .inn { width: 60%; margin: 0 auto; }
    #main .buttons .content-text p { padding-bottom: 25px; }
    #logo-kl img { width: 100%; }
    #main table, #main tbody, #main tr, #main td { display: block; width: 100% !important; }

    .pz-tabs__tab { font-size: 18px; line-height: 20px; }
    .pz-tabs__panel { padding: 12px; }

    #footer { margin: -135px 0 60px; }

    /* Mobilmenü wie bisher dk_mmenu: Leiste unten mit rotem Knopf, Menü fährt von oben herein */
    .nav-toggle {
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
        display: flex; align-items: center; justify-content: flex-end;
        width: 100%; padding: 10px 3% 11px 0;
        border: 0; border-top: 2px dashed #900; cursor: pointer;
        background: #5e452d url('../../files/nav/hg-mmenu.jpg') left bottom repeat-x;
    }
    .nav-toggle__bar { display: block; width: 45px; height: 44px; background: url('../../files/nav/mbutton.gif') center / contain no-repeat; }
    .nav-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .nav-toggle:focus-visible { outline: 3px solid #fff; outline-offset: -4px; }

    #nav {
        position: fixed; top: 0; left: 0; z-index: 1001;
        width: 100%; height: 80vh; overflow-y: auto; overscroll-behavior: contain;
        padding: 20px 0 0; background-color: #5e452d;
        transform: translateY(-100%); visibility: hidden;
        transition: transform .4s ease, visibility 0s linear .4s;
    }
    .nav-open #nav { transform: none; visibility: visible; transition: transform .4s ease, visibility 0s; }
    #nav li, #nav li.trail, #nav li.active, #nav li:hover {
        position: relative; margin: 0; padding: 0 0 1px; border: 0; transition: none;
    }
    #nav li::after { content: ''; position: absolute; left: 20px; right: 0; bottom: 0; border-bottom: 1px solid rgba(0, 0, 0, .15); }
    #nav a, #nav strong {
        display: block; padding: 10px 10px 10px 20px;
        font: 400 16px/20px var(--pz-schrift); color: rgba(255, 255, 255, .6); transition: none;
    }
    #nav strong { background-color: rgba(0, 0, 0, .1); }
    #nav a:hover, #nav a:focus-visible { color: #fff; }
    #nav a:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
    #nav:focus { outline: none; }
}

@media (prefers-reduced-motion: reduce) {
    #header *, #footer *, #nav { transition: none !important; }
}

/* Bereich ohne Reiter (tabcontrol zeigte ihn dauerhaft unter den Reitern) */
.pz-tabs-anhang { padding: 0 20px 20px; background-color: var(--pz-braun-hell); }
@media (max-width: 768px) { .pz-tabs-anhang { padding: 0 12px 12px; } }

/* FAQ-Chat (Paket netcontact/contao-faq-chat): Kopf im Theme-Braun, Titel in der Zierschrift */
.faq-fenster .faq-kopf { background-color: var(--pz-braun); border-bottom: 2px dashed var(--pz-creme); color: #fff; }
.faq-fenster .faq-titel { font: 22px/26px var(--pz-deko); font-weight: normal; }
.faq-fenster .faq-zu:focus-visible { outline-color: #fff; }

.layout-booking #header .inside { min-height: 320px; }

