/* Shared source-backed region layout, confined to authorized preview pages. */
@font-face{font-family:"CP Source Sans";src:url(preview-source-sans-regular.woff2) format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"CP Source Sans";src:url(preview-source-sans-700.woff2) format('woff2');font-style:normal;font-weight:700;font-display:swap}
body:is(.cp-preview-region,.cp-preview-content) #body{font-family:"CP Source Sans","Segoe UI",Arial,sans-serif;color:#373a3c;font-size:16px;line-height:1.65}
body:is(.cp-preview-region,.cp-preview-content) #body #layout{width:calc(100% - 40px);max-width:1140px;margin-inline:auto}
body:is(.cp-preview-region,.cp-preview-content) #body #content{width:100%;padding-top:30px;padding-bottom:48px}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text p{margin:0 0 1em}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text p.text-justify{text-align:left}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text h1{color:#16395e;font-size:clamp(28px,3vw,35px);font-weight:700;line-height:1.3;margin:0 0 24px;text-transform:none;letter-spacing:normal}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text h2{color:#16395e;font-size:clamp(23px,2.4vw,30px);font-weight:700;line-height:1.3;margin:0 0 16px;text-transform:none;letter-spacing:normal}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text h3{color:#16395e;font-size:22px;line-height:1.35;margin:0 0 12px}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:32px;align-items:start;width:100%;max-width:none}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner>.module_column{width:auto;min-width:0;margin:0;padding:0;float:none}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner::before,
body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner::after{display:none}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner>.module_column>.module{margin-bottom:26px}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-aside>.module-text>.tb_text_wrap>h2{font-size:20px;line-height:1.35;margin-bottom:16px}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text a:not(.btn){color:#16395e;text-decoration:underline;text-underline-offset:3px}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text a:not(.btn):hover{color:#087ca8}
body:is(.cp-preview-region,.cp-preview-content) #content a:focus-visible,
body:is(.cp-preview-region,.cp-preview-content) #content button:focus-visible{outline:3px solid #087ca8;outline-offset:4px}
body:is(.cp-preview-region,.cp-preview-content) #content .module-image .image-wrap img{display:block;max-width:100%;height:auto;border-radius:6px}
body:is(.cp-preview-region,.cp-preview-content) #content .module-image .image-content{font-size:14px;line-height:1.45;margin-top:8px;color:#555}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery-cols-1{--cp-gallery-columns:1;--cp-gallery-mobile-columns:1}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery-cols-2{--cp-gallery-columns:2;--cp-gallery-mobile-columns:2}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery-cols-3{--cp-gallery-columns:3;--cp-gallery-mobile-columns:2}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery-cols-4{--cp-gallery-columns:4;--cp-gallery-mobile-columns:2}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery .tb_text_wrap>:is([class*="cp-gallery-"],.typo3-gallery-2218){display:grid;grid-template-columns:repeat(var(--cp-gallery-columns,4),minmax(0,1fr));gap:10px}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery .tb_text_wrap>:is([class*="cp-gallery-"],.typo3-gallery-2218)>a{display:block;aspect-ratio:3/2;border-radius:6px;overflow:hidden}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery .tb_text_wrap>:is([class*="cp-gallery-"],.typo3-gallery-2218)>a img{display:block;width:100%;height:100%;object-fit:cover}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text :is(button.cp-weather-open,a.builder_button,a.btn),
body:is(.cp-preview-region,.cp-preview-content) #content .module-buttons a.ui{
    display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
    width:100%;max-width:100%;min-height:64px;margin:0;padding:12px 14px;
    color:#fff;background:#16395e;background-image:none;border:1px solid #16395e;
    border-radius:6px;box-shadow:none;text-shadow:none;text-decoration:none;
    font-family:"CP Source Sans","Segoe UI",Arial,sans-serif!important;
    font-size:15px!important;font-weight:700!important;font-style:normal!important;
    line-height:1.4!important;letter-spacing:normal!important;text-transform:none!important;
    font-variant:normal;font-synthesis:none;text-align:center;white-space:normal;overflow-wrap:anywhere;vertical-align:middle;
}
body:is(.cp-preview-region,.cp-preview-content) #content .module-text :is(button.cp-weather-open,a.builder_button,a.btn):hover,
body:is(.cp-preview-region,.cp-preview-content) #content .module-buttons a.ui:hover{color:#fff;background:#0c2035;border-color:#0c2035}
body:is(.cp-preview-region,.cp-preview-content){overflow-x:clip}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-top:-30px;margin-bottom:28px}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero>.row_inner{width:100%;max-width:none;padding:0}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero .module_column{padding:0}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-inner-wrap{position:relative}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-image{margin:0;aspect-ratio:var(--cp-region-hero-ratio,37/12);overflow:hidden}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-image img{display:block;width:100%;height:100%;object-fit:cover}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-image>a{display:block;width:100%;height:100%}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider.slider-overlay .slide-content{background:rgba(255,255,255,.6);color:#16395e;padding:10px 12%;text-align:center}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-content ul{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 18px;list-style:none;margin:0;padding:0}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-content li{flex:0 1 auto;width:auto;float:none;list-style:none;margin:0;padding:0;line-height:1.4}
body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-content a{color:#16395e;font-weight:700;text-decoration:none}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-aside>.cp-region-card>.tb_text_wrap{box-sizing:border-box;padding:14px;background:#f8f9fa;border:1px solid #adb5bd;border-radius:6px}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-aside>.cp-region-card>.tb_text_wrap>h2{display:flex;align-items:center;gap:9px;margin:0 0 14px;padding:0;color:#16395e;background:transparent;border-radius:0;font-size:20px;line-height:1.35;overflow-wrap:anywhere}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-aside>:is(.cp-region-icon-steuer,.cp-region-icon-muetze,.cp-region-icon-leuchtturm)>.tb_text_wrap>h2::before{content:"";display:block;flex:0 0 24px;width:24px;height:24px;background:url(preview-icon-steuer.gif) center/contain no-repeat}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-icon-muetze>.tb_text_wrap>h2::before{background-image:url(preview-icon-muetze.gif)}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-icon-leuchtturm>.tb_text_wrap>h2::before{background-image:url(preview-icon-leuchtturm.gif)}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-card>.tb_text_wrap>:last-child{margin-bottom:0}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-preview-marina-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-preview-marina-images>.module-image{width:100%;min-width:0;margin:0}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-preview-marina-images .image-wrap{width:100%;margin:0}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-preview-marina-images .image-wrap img{width:100%;max-width:100%;height:auto}
body:is(.cp-preview-region,.cp-preview-content) #content .cp-preview-marina-images .image-content{font-size:14px;line-height:1.4}
@media(min-width:768px) and (max-width:1199px){body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}}
@media(max-width:767px){
    body:is(.cp-preview-region,.cp-preview-content) #body #layout{width:calc(100% - 32px)}
    body:is(.cp-preview-region,.cp-preview-content) #body #content{padding-top:22px;padding-bottom:32px}
    body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner{grid-template-columns:minmax(0,1fr);gap:8px}
    body:is(.cp-preview-region,.cp-preview-content) .cp-region-columns>.row_inner>.module_column>.module{margin-bottom:22px}
    body:is(.cp-preview-region,.cp-preview-content) #content .cp-region-gallery .tb_text_wrap>:is([class*="cp-gallery-"],.typo3-gallery-2218){grid-template-columns:repeat(var(--cp-gallery-mobile-columns,2),minmax(0,1fr))!important}
    body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero{margin-top:-22px;margin-bottom:22px}
    body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-image{aspect-ratio:16/9}
}

/* Form layout and submission behaviour remain native; these are presentation rules. */
body.cp-preview-content #content .module-text .cp-original-form{max-width:100%;margin:16px 0 28px;font:400 16px/1.6 "CP Source Sans","Segoe UI",Arial,sans-serif}
body.cp-preview-content #content .module-text .cp-original-form h2{font-size:22px;margin:26px 0 14px}
body.cp-preview-content #content .cp-original-form fieldset{box-sizing:border-box;background:#f8f9fa;border:1px solid #d7e0e7;border-radius:6px;padding:18px;margin:0 0 24px}
body.cp-preview-content #content .cp-original-form legend{color:#16395e;font-weight:700}
body.cp-preview-content #content .cp-original-form .control-label{color:#16395e;font-weight:700}
body.cp-preview-content #content .cp-original-form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){border:1px solid #aabcc9;border-radius:6px;padding:10px 12px;min-height:44px;background:#fff;color:#373a3c;font:inherit;max-width:100%}
body.cp-preview-content #content .cp-original-form :is(input,select,textarea):focus{outline:2px solid #087ca8;outline-offset:2px}
body.cp-preview-content #content .cp-original-form .help-block{display:block;color:#535f69;font-size:14px;line-height:1.5;margin-top:8px}
body.cp-preview-content #content .cp-original-form .required{color:#a82020}
body.cp-preview-content #content .cp-original-form button[type=submit]{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:64px;min-width:220px;max-width:100%;padding:12px 20px;border:1px solid #16395e;border-radius:6px;background:#16395e;color:#fff;font:700 15px/1.4 "CP Source Sans","Segoe UI",Arial,sans-serif;letter-spacing:normal;text-transform:none;cursor:pointer}
body.cp-preview-content #content .cp-original-form button[type=submit]:hover{background:#0c2035;border-color:#0c2035}
body.cp-preview-downloads #content .module-text table{width:100%;border-collapse:collapse}
body.cp-preview-downloads #content .module-text :is(th,td){padding:12px;border-bottom:1px solid #dce5ed;vertical-align:top;text-align:left}
body.cp-preview-downloads #content .module-text th{background:#f8f9fa;color:#16395e}
body.cp-preview-content #content .module-text a[href*="/uploads/"]:is([href$=".pdf"],[href$=".doc"],[href$=".docx"],[href$=".xls"],[href$=".xlsx"]){font-weight:700;text-underline-offset:3px}
@media(max-width:767px){
    body.cp-preview-content #content .cp-original-form fieldset{padding:14px}
    body.cp-preview-content #content .cp-original-form button[type=submit]{width:100%;min-width:0}
    body.cp-preview-downloads #content .module-text :is(th,td){padding:9px 6px;overflow-wrap:anywhere}
}

/* Retain source ratios for native rows and native subrows. */
body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row)>.row_inner,body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row).module_subrow{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;width:100%;max-width:none}
@media(min-width:768px){body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row)>.row_inner,body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row).module_subrow{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}body:is(.cp-preview-region,.cp-preview-content) .cp-source-thirds>.row_inner,body:is(.cp-preview-region,.cp-preview-content) .cp-source-thirds.module_subrow{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1200px){body:is(.cp-preview-region,.cp-preview-content) .cp-source-main-wide>.row_inner,body:is(.cp-preview-region,.cp-preview-content) .cp-source-main-wide.module_subrow{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}body:is(.cp-preview-region,.cp-preview-content) .cp-source-aside-wide>.row_inner,body:is(.cp-preview-region,.cp-preview-content) .cp-source-aside-wide.module_subrow{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row)>.row_inner>.module_column,body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row).module_subrow>.module_column{width:auto;min-width:0;margin:0;padding:0;float:none}
body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row)>.row_inner::before,body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row).module_subrow::before{display:none}
body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row)>.row_inner::after,body:is(.cp-preview-region,.cp-preview-content) :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row).module_subrow::after{display:none}

/* Small screens: readable content and touch targets without changing module order. */
@media(max-width:767px){
    body:is(.cp-preview-region,.cp-preview-content) #content .module-text .tb_text_wrap{overflow-wrap:anywhere}
    body:is(.cp-preview-region,.cp-preview-content) #content .module-text :is(h1,h2,h3){hyphens:auto}
    body.cp-preview-content #content .cp-original-form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){
        box-sizing:border-box;width:100%;min-width:0;font-size:16px;
    }
    body.cp-preview-content #content .cp-original-form .form-check-label{
        display:flex;align-items:flex-start;gap:10px;box-sizing:border-box;
        min-height:44px;padding:9px 0;line-height:1.5;cursor:pointer;
    }
    body.cp-preview-content #content .cp-original-form :is(input[type=checkbox],input[type=radio]){
        flex:0 0 auto;width:20px;height:20px;margin:2px 0 0;
    }
    body.cp-preview-content #content .cp-original-form legend{max-width:100%;white-space:normal;overflow-wrap:anywhere}
    body:is(.cp-preview-region,.cp-preview-content) #content .module-text table{
        display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
    }
}
@media(max-width:359px){
    body:is(.cp-preview-region,.cp-preview-content) #content .cp-preview-marina-images{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:767px){
    /* Long destination lists stay below the photo rather than covering it. */
    body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider.slider-overlay .slide-content{
        position:static;inset:auto;transform:none;box-sizing:border-box;width:100%;
        padding:8px 16px;background:#edf2f6;
    }
    body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-content ul{gap:4px 12px}
    body:is(.cp-preview-region,.cp-preview-content) .cp-region-hero-slider .slide-content a{
        display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
        min-height:44px;max-width:100%;font-size:16px;line-height:1.35;overflow-wrap:anywhere;
    }
}

/* Phone portrait and landscape: finish the left column before the right one. */
@media(max-width:1023px){
    body:is(.cp-preview-region,.cp-preview-content) #content :is(.cp-region-columns,.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row)>.row_inner,
    body:is(.cp-preview-region,.cp-preview-content) #content :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row).module_subrow{
        grid-template-columns:minmax(0,1fr)!important;grid-template-areas:none!important;gap:20px;
    }
    body:is(.cp-preview-region,.cp-preview-content) #content :is(.cp-region-columns,.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row)>.row_inner>.module_column,
    body:is(.cp-preview-region,.cp-preview-content) #content :is(.cp-source-equal,.cp-source-main-wide,.cp-source-aside-wide,.cp-source-thirds,.cp-text-image-row).module_subrow>.module_column{
        grid-area:auto;grid-column:1;grid-row:auto;min-width:0;max-width:100%;
    }
}
