html {
    font-size:62.5%;
}
@media (max-width:1600px) {
    html {
        font-size:50%;
    }
}
/*@media (max-width:1024px) {*/
@media (max-width:1200px) {
    html {
        font-size:40%;
    }
}
@media (max-width:600px) {
    html {
        font-size:30%;
    }
}

html {
    -webkit-text-size-adjust: 100%; /* Prevent font scaling in landscape while allowing user zoom */
}
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body {
    font-size:2rem;
    font-family: 'Work Sans', sans-serif;
}

html, body {
    margin:0;
    padding:0;
}

header {
    position:sticky;
    top:0;
    z-index: 10;
    background-color: white;
}
header,
.heroheadercopy {
    padding-top:5rem;
    padding-bottom:5rem;
}
header .wconstrain,
.heroheadercopy .wconstrain {
    display: flex;
    justify-content:space-between;
    align-items:center;
}
header .logo,
.heroheadercopy .logo {
    height:18.4rem;
}
header .dummy,
.heroheadercopy .dummy {
    width:6.8rem;
}


header {
    transition:padding 0.2s;
}
header .logo {
    transition:height 0.2s;
}
header.compact {
    padding-top: 2rem;
    padding-bottom: 2rem;
}
header.compact .logo {
    height:12rem;
}



footer {
    color:#EDF2E9;
    background-color: #36483A;

    padding-top:4rem;
    padding-bottom:4rem;
}
footer a {
    color:inherit;
    text-decoration: none;
    transition: color 0.2s;
}
footer a:hover {
    color:#9EB189;
}
footer a.active {
    font-weight: 700;
}
footer .maillink {
    text-decoration: underline;
    text-decoration-thickness: 1px;
}
footer .links a {
    display: block;
}
footer .links a.disabled {
    /*
    opacity:0.3;
    pointer-events: none;
    */
    display:none;
}
footer .address {
    font-size: 2.2rem;
    font-weight: 300;
    letter-spacing: 0.01em; 
    line-height: 1.36;
}
footer .links {
    font-size: 2.2rem;
    font-weight: 300;
    letter-spacing: 0.06em;
    line-height: 1.36; 
    text-transform: uppercase;
}
@media (min-width:1024px) {
    footer .wconstrain {
        display:flex;
        justify-content: space-between;
        align-items: flex-start;
    }
}
@media (min-width:1024px) {
    footer .links {
        display: flex;
        gap:10rem;
        align-items: flex-start;
    }
}
@media (max-width:1023px) {
    footer .links {
        line-height: 1.75; 
    }
    footer .links .col {
        margin-top:2.5em;
    }
}
@media (max-width:600px) {
    footer {
        padding-top:8rem;
        padding-bottom:12rem;
    }
    footer .address {
        font-size:4rem;
    }
    footer .links {
        font-size:4rem;
    }
}


main {
    margin-bottom:17rem;
}
.ct_home main,
.ct_pflegeunterhalt main {
    margin-bottom:0;
}


#menu {
    position: fixed;
    left:0;
    width:78rem;
    top:0;
    bottom:0;
    z-index:30;

    background-color: #EFEFEC;

    box-shadow: 0 0 1.5rem rgba(0, 0, 0, 0.3);

    font-size: 3rem;
    font-weight: 300;
    letter-spacing: 0.07em;

    color:#345A47;

    overflow:auto;
    scrollbar-width: thin;
}
#menu::-webkit-scrollbar {
    width:5px;
}
::-webkit-scrollbar-thumb {
    background-color: rgba(155, 155, 155, 0.5);
}

#menu a {
    color:inherit;
    text-decoration: none;
    transition: color 0.2s;
}
#menu a:hover {
    color:black;
}
#menu .menuitems {
    text-transform: uppercase;
}
#menu .menuitems a {
    display: block;
    margin-left: 22rem;
    line-height: 1.75;
}
#menu .menuitems a.disabled {
    display: none;
}
#menu .langchooser {
    margin-top:4rem;
    margin-bottom:4rem;
    /*visibility: hidden;*/
}
#menu .address {
    margin-top:calc(min(20rem, 30vh));
    margin-left: 22rem;
    margin-bottom: 2em;

    font-size: 2.6rem;
    line-height: 1.38;
    letter-spacing: 0.01em;
}
#menu .address a {
    text-decoration: underline;
    text-decoration-thickness: 1px;
}
#menu .closebutton {
    width: 3.8rem;
    height: 3.8rem;
    cursor: pointer;

    background-image: url('/images/icons/menuclose_green.svg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;

    margin:4rem 0 4rem 14rem;
}

#menu {
    transition:transform 0.2s;
}
#menu.hidden {
    transform: translateX(-110%); /*100% + shadow*/
}

@media (max-width:1024px) {
    #menu {
        width: 70rem;
    }
    #menu .closebutton {
        margin-left: 10rem;
    }
    #menu .menuitems a,
    #menu .address {
        margin-left: 18rem;
    }
}
@media (max-width:600px) {
    #menu {
        width:100%;
        font-size: 4rem;
    }
    #menu .address {
        font-size: 4rem;
    }

    #menu .closebutton {
        margin-left: 6rem;
    }
    #menu .menuitems a,
    #menu .address {
        margin-left: 6rem;
    }
}


.wconstrain {
    margin-left: auto;
    margin-right: auto;
}

.wconstrain_w_xl {
    width: calc(100% - 12rem);
}
.wconstrain_w_l {
    width: calc(100% - 24rem);
}
.wconstrain_w_m {
    width: min(144rem, calc(100% - 24rem));
}
@media (max-width:600px) {
    .wconstrain_w_xl,
    .wconstrain_w_l,
    .wconstrain_w_m 
    {
        width: calc(100% - 6rem);
    }
}

.pagesegment {
    /*outline:3px solid red;*/
    padding-top:4rem;
    padding-bottom:4rem;
}
.pagesegment_color0 {
    background-color: #EDF2E9;
}
.pagesegment_color1 {
    background-color: #FDFFF8;
}
.pagesegment_padd1 {
    padding-top:18.1rem;
    padding-bottom:18.1rem;
}
.pagesegment_padd2 {
    padding-bottom:13rem;
}
.pagesegment_padd3 {
    padding-top:1rem;
    padding-bottom:1rem;
}
.pagesegment_padd4 {
    padding-top:12rem;
    padding-bottom:12rem;
}
.pagesegment_padd5 {
    padding-top:8rem;
    padding-bottom:8rem;
}
.pagesegment_padd6 {
    padding-bottom:8rem;
}
.pagesegment_paddt0 {
    padding-top:0;
}
.pagesegment_paddb0 {
    padding-bottom:0;
}


#ctruparrow {
    height:0;
    overflow:visible;
    position:sticky;
    bottom:0;
}
#uparrow {
    width:4.5rem;
    height:4.5rem;
    position:absolute;
    right:12rem;
    bottom:3.5rem;
    cursor: pointer;

    /*
    background-image: url('/images/icons/uparrow.svg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    */
}
#uparrow .outercircle {
    position: absolute;
    width:100%;
    height:100%;
    border-radius: 100%;
    background:#D1D1D1;
    transition:all 0.2s;
}
#uparrow .innercircle {
    position: absolute;
    left:7.5%;
    top:7.5%;
    width:85%;
    height:85%;
    border-radius: 100%;
    background-color:white;

    background-image: url('/images/icons/uparrowonly.svg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
}
@media (max-width:600px) {
    #uparrow {
        width:6rem;
        height:6rem;
    }
}

.hero {
    /*opacity:0.9;*/
    height:100vh;
    z-index:20;
    position: relative;
    
    background-color: #2B4A37;
    background-image: url('/images/herostart.jpg');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}

.herostart .logo {
    display: block;
    object-fit: contain;
    position:absolute;
    top:15vh;
    width:calc(100vw - 16rem);
    height:30vh;

    left:0;
    right:0;
    margin-left: auto;
    margin-right: auto;
}

.scrolldownarrow {
    height:8rem;
    width:3rem;
    bottom: 2.5rem;
    bottom:calc(2.5rem + 100vh - 100svh);
    left:50%;
    background-color: #898989;
    position:absolute;
    transform: translateX(-50%);

    mask-size:contain;
    mask-position: center center;
    mask-repeat: no-repeat;
    mask-image:url('/images/icons/scrolldownarrow.svg');

    -webkit-mask-size:contain;
    -webkit-mask-position: center center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-image:url('/images/icons/scrolldownarrow.svg');
}
.scrolldownarrowfill {
    position: absolute;
    width: 100%;
    background-color: white;
    animation: scrolldownarrowfill 4000ms infinite cubic-bezier(0.4,0,0,1) both;
}
@keyframes scrolldownarrowfill {
    0% {
        height:0%;
        top:0;
        bottom:auto;
    }
    40%{
        height:100%;
        top:0;
        bottom:auto;
    }
    60%{
        height:100%;
        top:auto;
        bottom:0;
    }
    100% {
        height:0%;
        top:auto;
        bottom:0;
    }
}

.menubutton {
    position:relative;
    user-select: none;
    cursor: pointer;

    width:6.8rem;
    height:4.1rem;
}
.menubutton .line {
    background-color: #435441;
    height:12%;
    position: absolute;
    width: 100%;
    transition:width 0.2s;
}
.menubutton .line3 {
    bottom:0;
    width:78%;
}
.menubutton .line2 {
    top:44%; /*50%-6%*/
    width:53%;
}
.menubutton:hover .line {
    width:100%;
}

.herostart .menubutton {
    position: absolute;
    left:12rem;
    bottom:20vh;
}
.hero .menubutton .line {
    background-color: white;
}

.herostart nav {
    /*background-color: darkgreen;*/

    font-size: 2.4rem;
    letter-spacing: 0.08em;
    font-weight: 500;
}
.herostart nav a {
    text-decoration: none;
    text-transform: uppercase;
    color:white;
    display: block;
    transition: color 0.2s;
}
.herostart nav a:hover {
    color:#B4FFBA;
}
@media (min-width:601px) {
    .herostart nav {
        display:flex;
        justify-content:center;
        gap:8rem;
    
        position: absolute;
        bottom:calc(20vh + 0.6rem);
        width:100%;
    }
}
@media (max-width:600px) {
    .herostart nav {
        font-size: 4rem;
        line-height: 2em;

        position: absolute;
        width: calc(100vw - 16rem);
        left:0;
        right:0;
        margin-left: auto;
        margin-right: auto;
        bottom:calc(22rem + 8rem);
        bottom:calc(22rem + 100vh - 100svh);
    }
    .herostart .menubutton {
        width:10rem;
        height:6rem;
        left:8rem;
        bottom:calc(10rem + 8rem);
        bottom:calc(10rem + 100vh - 100svh);
    }
    .herostart .scrolldownarrow {
        display:none;
    }
}


.ct_home header,
.ct_weinbau header {
    position:fixed;
    left:0;
    top:0;
    right:0;
}

.ct_home .herostart + .pagesegment {
    /*margin-top:30rem; (= header height) */
}

.bl-bigpics .item img {
    display: block;
    width:100%;
    /*
    height:40rem;
    object-fit: cover;
    object-position: center center;
    */
}
@media (min-width:1024px) {
    .bl-bigpics {
        display:grid;
        grid-template-columns: repeat(2, 1fr);
        justify-content: stretch;    
        gap:2rem;
    }
}
@media (max-width:1023px) {
    .bl-bigpics .item {
        margin-top:1rem;
    }
    .bl-bigpics .item:first-child {
        margin-top:0;
    }

    /* show only first image */
    .bl-bigpics .item {
        display:none;
    }
    .bl-bigpics .item1 {
        display:block;
    }
}


@media (min-width:1024px) {
	.la-multicol .linner {
		display:grid;
		justify-content: stretch;
		gap:2rem;
	}
}
@media (max-width:1023px) {
	.la-multicol .col {
		margin-top:8rem;
	}
    .la-multicol .col:first-child {
        margin-top: 0;
    }
}

.la-multicol .col.vcenter {
    display: flex;
    align-items:center;
}

.la-multicol-sty-default {
}

.la-multicol-seg-11 > .linner { grid-template-columns: 1fr 1fr; }
.la-multicol-seg-31 > .linner { grid-template-columns: 3fr 1fr; }
.la-multicol-seg-111 > .linner { grid-template-columns: 1fr 1fr 1fr; }
.la-multicol-seg-211 > .linner { grid-template-columns: 2fr 1fr 1fr; }
.la-multicol-seg-112 > .linner { grid-template-columns: 1fr 1fr 2fr; }
.la-multicol-seg-1111 > .linner { grid-template-columns: 1fr 1fr 1fr 1fr; }
.la-multicol-seg-21 > .linner { grid-template-columns: 2fr 1fr; }
.la-multicol-seg-12 > .linner { grid-template-columns: 1fr 2fr; }


.bl-imgblock img {
    display: block;
    width:100%;
}


.bl-ansprechpartner .photo {
    display: block;
    width: 100%;
}
.bl-ansprechpartner .text {
    font-size: 2.6rem;
    margin-top: 0.75em;
}
@media (max-width:600px) {
    .bl-ansprechpartner .text {
        font-size: 4rem;
    }
}
.bl-ansprechpartner .text h2 {
    margin-bottom: 0;
}
.bl-ansprechpartner .text a {
    text-decoration: none;
    color:#D8AB56;
    transition: color 0.2s;
}
.bl-ansprechpartner .text a:hover {
    color:#847343;
}

@media (min-width:1024px) {
    .bl-ansprechpartner {
        display:grid;
        grid-template-columns: repeat(4, 1fr);
        justify-content: stretch;    
        column-gap:4rem;
        row-gap:8rem;
    }
}
@media (max-width:1023px) {
    .bl-ansprechpartner .item {
        margin-top:4rem;
    }
    .bl-ansprechpartner .item:first-child {
        margin-top:0;
    }
}


.arrow_link_tr {
    width:0.7em;
    height:0.7em;
    margin-left:0.75em;
    transition: transform 0.2s;
}
a:hover .arrow_link_tr {
    transform: rotateZ(45deg);
}

.arrowlink.bold {
    font-size: 2.4rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-weight: 600;
}

.bl-button {
    margin-top:10rem;
	display:flex;
	flex-wrap:wrap;
	gap:1em;
}
.button {
    display:inline-block;
    background-color: #FFEECE;
    padding:0.75em 1.5em;
    border-radius: 999px;
    text-decoration: none;

    font-size: 2.4rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-weight: 600;
    color:#B19C58;
}
.button:hover {
    background-color: #EAEAEA;
    color:#847343;
}
.button .arrow_link_tr {
    width:0.65em;
    height:0.65em;
}


.bl-maps {
    filter:grayscale(1);
    /*padding-top:56.25%;*/
    height:calc(100vh - 35rem);
    min-height:300px;
    position: relative;
}
.bl-maps iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}


.bl-textwithicon .icon {
    margin-bottom: 4rem;
    width:15rem;
}
@media (min-width:601px) {
    .bl-textwithicon .icon {
        margin-left:-2.5rem;
    }
}


@media (min-width:1024px) {
    .bl-planungbaurubrik .col2 {
        padding-left:4rem;
    }
}
@media (max-width:1023px) {
    .bl-planungbaurubrik {
        margin-bottom:8rem;
    }
    .bl-planungbaurubrik .la-multicol .col2 {
        margin-top:4rem;
    }
}


.infohint {
    background-color: #FFEECE;
    padding:1em 2em;
    border-radius: 999px;
    font-weight: 400;

    font-size:2.2rem;
    letter-spacing: 0.01em;
    line-height:1.3;
    color:#B19C58;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}
.infohint + .bl-textblock {
    margin-top: 8rem;
}


.herowein {
    background-image: url('/images/heroweinbau.jpg');
}
.herowein .logo {
    height:18.4rem;
}
.herowein .text {
    position:absolute;
    left:0;
    right:0;
    /*bottom:22rem;*/
    bottom:16rem;
    bottom: calc(16rem + 100vh - 100svh);
}
.herowein .text .maincontent {
    color:white;
}
/*<responive optimization>*/
.herowein .text .maincontent {
    font-size:min(4rem, 5vh);
}
@media (max-height:700px) {
    .herowein .text {
        /*bottom:14rem;*/
        bottom:10rem;
        bottom: calc(10rem + 100vh - 100svh);    
    }
    .herowein .text .maincontent {
        font-size:min(4rem, 4vh);
    }
}
/*</responive optimization>*/

.bl-slider img {
    display:block;
    width:100%;
}
@media (hover: hover) {
    .lcursor .bl-slider {
        cursor:url('/images/cursor/left.svg') 19 36, auto; /*0 36*/
    }
    .rcursor .bl-slider {
        cursor:url('/images/cursor/right.svg') 19 36, auto; /*38 36*/
    }
    .bl-slider .swiper-button-prev,
    .bl-slider .swiper-button-next {
        display:none;
    }
}

.bl-form form {
    font-size:3.2rem;
}
.bl-form input[type=checkbox] {
    appearance: none;
    margin:0;
    cursor: pointer;
    width:3.5rem; /*iPad bug*/
}
.bl-form input[type=checkbox]:before {
    content:"";
    border:1px solid #707070;
    display:inline-block;
    vertical-align: -0.15em;
    width:3.5rem;
    height:3.5rem;
}
.bl-form input[type=checkbox]:checked:before {
    background-color: #B19C58;
}
.bl-form label.checkbox {
    user-select: none;
    display: block;
    margin-bottom: 2rem;
}

@media (min-width:700px) {
	.bl-form .checkboxcols {
		display: flex;
		gap:12.5rem;
	}
}
@media (max-width:699px) {
	.bl-form .checkboxcols .col {
		margin-bottom:2em;
	}
}

.bl-form .formsection {
    margin-bottom:2em;
}

.bl-form .formrow {
    margin-bottom:2.5rem;
}
.bl-form .formrow-plzort {
    display:flex;
    gap:2rem;
}
.bl-form .formrow-plzort .plz {
    flex:0 0 5em;
}
.lang_en .bl-form .formrow-plzort .plz {
    flex:0 0 7em;
}
.bl-form .formrow-plzort .ort {
    flex:1 1 0;
}

.bl-form.maincontent h2 {
    margin-bottom: 0.25em;
}
.bl-form input,
.bl-form textarea,
.bl-form button {
    font:inherit;
}
.bl-form input[type=text],
.bl-form input[type=email],
.bl-form textarea {
    background-color: #EDF2E9;
    border:none;
    width: 100%;
    box-sizing: border-box;
    padding:0.25em 0.6em;
    color:#000;

    outline:none;
}
.bl-form input[type=text]::placeholder,
.bl-form input[type=email]::placeholder,
.bl-form textarea::placeholder {
    color:#345A47;
    opacity: 0.8;
}
.bl-form textarea {
    height: 44.5rem;
}
.bl-form button {
    color:white;
    border:none;
    border-radius: 999px;
    background-color: #B19C58;
    padding:0.4em 0.6em;
    cursor: pointer;
}

.bl-form .message-success,
.bl-form .message-error {
    display:none;
    padding:0.5em;
}

.bl-form .message-success {
    border:2px solid #345A47;
    background-color: #ebeeed;
}

.bl-form .message-error {
    border:2px solid #bc0000;
    color:#bc0000;
    background-color: #f8e6e6;
}

.bl-form.showvalidation input[type=text]:invalid,
.bl-form.showvalidation input[type=email]:invalid {
    outline:2px solid #bc0000;
}

.swal2-popup {
    font-size:inherit !important;
}

@media (min-width:1024px) {
	.mobileonly {
		display:none;
	}
}