html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}
body {
    line-height: 1;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}
table {
    border-collapse: collapse;
    border-spacing: 0;
}

body{
    font-family: Georgia, Times, 'Times New Roman', serif;
    color: rgba(46,53,133,1.0);
    background-color: rgba(242,242,255,1);
    font-size: 1.1em;
}

h1{
    font-size: 2em;
    font-weight: bold;
    text-align: center;
    display: none;
}
h2{
    font-size: 1.5em;
    font-weight: bold;
    border-bottom: 2px solid;
    margin-bottom: 0.1em;
    margin-top: 0.5em;
}
h3{
    font-size: 1.0em;
    font-weight: bold;
    margin-bottom: 0.2em;;
}
ul, ol{
    margin-top: 0.2em;
}
li{
    line-height: 1.2em;
}

.edu{
    margin-bottom: 0.5em;
    margin-top: 0.1em;
    font-style: oblique;
}

header{
    background-color: rgba(46,53,133,0.9);
    background-image: url('logo-breit-inv.gif');
    background-repeat: no-repeat;
    background-position-x: center;
    background-size: 30em;
    color: rgba(242,242,255,1);
    text-align: center;
    padding: 4.2em 1em 0.5em 1em;
    position: sticky;
    top: 0;
    z-index: 88;
}
header .slogan{
    max-width: 60em;
    margin: 0 auto;
    border-top: 1px rgba(242,242,255,1) dotted;
    padding-top: 0.2em;
    font-size: 0.8em;
}

section>div{
    padding-top: 1em;
    margin: 1em 2em;
    display: grid;
    grid-template-columns: 1fr 2fr;
    background-color: rgba(242,242,255,1);
    min-height: 70vh;
}
section .sideimage img{
    margin: 0 1em 0 0;
    border-radius: .5em;
    z-index: 2;
    width: 100%;
    position: sticky;
    top: 8rem;
}
section .sideimage{
    margin-right: 1em;
}
section dl{
    display: grid;
    grid-template-columns: max-content auto;
    margin: 0.5em 0;
}
section dt{
    margin-right: 1em;
    text-align: center;
}
section .oeffnungszeiten{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1em;
    row-gap: 0.2em;
}
section .oeffnungszeiten>div:first-child{
    grid-column: 1 / 1;
}
section .oeffnungszeiten>div:nth-child(2){
    grid-column: 2 / 2;
}
section .oeffnungszeiten>div:nth-child(3){
    grid-column: 1 / span 2;
    font-style: oblique;
}
section .links{
    margin-top: 1em;
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
}
section .links a{
    background-color: rgba(46,53,133,0.1);
    padding: 0.5em 1em;
    border-radius: 0.5em;
    margin: 0.5em 1em;
    color: rgba(46,53,133,1);
    text-decoration: none;
    cursor: pointer;
    border: 2px rgba(46,53,133,0.5) solid;
    font-weight: bold;
    font-family: Arial, Helvetica, sans-serif;
    min-width: 15em;
    text-align: center;
}
section .links a:hover{
    color: rgba(184,0,26,1.0);
    border-color: rgba(184,0,26,1.0);
}
.swisstravelsecurity, .instagram{
    z-index: 99;
    position: fixed;
    right: 1em;
    bottom: 1em;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.instagram{
    left: 1em;
    right: auto;
}
p, h3{
    line-height: 1.2em;
}

.swisstravelsecurity a img, .instagram a img{
    padding: 0.5em;
    background-color: white;
    border-radius: 0.5em;
    border: 2px white solid;
    height: 2em;
}
.swisstravelsecurity a:hover img, .instagram a:hover img{
    border-color: rgba(184,0,26,1.0);
    cursor: pointer;
}

main{
    margin-top: 1em;
    margin-bottom: 5em;
}
footer{
    width: 100vw;
    background-color: rgba(46,53,133,0.9);
    color: rgba(242,242,255,1);
    text-align: center;
    padding: 0.5em 1em 0.2em;
    position: fixed;
    bottom: 0;
    z-index: 88;
    font-size: 0.8em;
    height: 1.5em;
}

.announce{
    color: rgba(184,0,26,1.0);
    margin: 1em 2em;
    border: 1px rgba(184,0,26,1.0) solid;
    border-radius: 0.2em;
    padding: 0.5em 1em;
    text-align: center;
}
.announce a{
    color: rgba(184,0,26,1.0);
}

pre{
    display: none;
}
.active, .active h3{
    color: rgba(184,0,26,1.0);
}
.hidden{
    display:none;
}

.contact a:link{
    text-decoration-style: dotted;
    font-family: Georgia, Times, 'Times New Roman', serif;
    color: rgba(46,53,133,1.0);
}
.contact a:hover{
    text-decoration-color: red;
    font-family: Georgia, Times, 'Times New Roman', serif;
    color: rgba(46,53,133,1.0);
}

@keyframes ticker {
    0% {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        visibility: visible;
    }
    100% {
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0);
    }
}
.tickercontainer.hidden{
    display: none
}
.tickercontainer{
    margin: 1em 0;
    margin-left: auto;
    margin-right: auto;
    padding: 0 1em 0 2em;
    overflow: hidden;
}
.tickercontainer .ticker-wrap {
    display: inline-block;
    margin-top: 0;
    width: calc(100% - 1em);
    overflow: hidden;
    height: 2.7rem;
    background-color: rgba(242,242,255,1);
    box-sizing: content-box;
}
.tickercontainer .ticker-wrap .ticker {
    display: inline-block;
    height: 2.7rem;
    line-height: 2.7rem;
    white-space: nowrap;
    padding-right: 100%;
    box-sizing: content-box;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    animation-timing-function: linear;
    -webkit-animation-name: ticker;
    animation-name: ticker;
    -webkit-animation-duration: 10s;
    animation-duration: 30s;
}
.tickercontainer .ticker-wrap .ticker .ticker__item {
    display: inline-block;
    padding: 0 2rem;
    font-size: 1.5rem;
    font-weight: bold;
    color: rgba(46,53,133,1.0);
    font-family: Arial, sans-serif;
}
.tickercontainer .ticker-wrap .ticker .ticker__item.important {
    color: rgba(184,0,26,1.0);
}

:root {
	--card-height: 40vw;
	--card-margin: 4vw;
	--card-top-offset: 1em;
	--numcards: 4;
	--outline-width: 0px;
}

#buero {
	--index: 1;
}

#inhaber {
	--index: 2;
}

#mitarbeiter {
	--index: 3;
}

#presseundlinks {
	--index: 4;
}
#presseundlinks>div {
    min-height: fit-content;
}

.card {
	position: sticky;
	top: 8em;
    padding-top: 0;
}

.card_content>div{
    overflow-y: scroll;
    height: calc(100vh - 10em);
}

.mobileonly{
    display: none;
}

@supports (animation-timeline: works) {

	@scroll-timeline cards-element-scrolls-in-body {
		source: selector(body);
		scroll-offsets:
			/* Start when the start edge touches the top of the scrollport */
			selector(#cards) start 1,
			/* End when the start edge touches the start of the scrollport */
			selector(#cards) start 0
		;
		start: selector(#cards) start 1; /* Start when the start edge touches the top of the scrollport */
		end: selector(#cards) start 0; /* End when the start edge touches the start of the scrollport */
		time-range: 4s;
	}

	.card {
		--index0: calc(var(--index) - 1); /* 0-based index */
		--reverse-index: calc(var(--numcards) - var(--index0)); /* reverse index */
		--reverse-index0: calc(var(--reverse-index) - 1); /* 0-based reverse index */
	}
	
	.card_content {
		transform-origin: 50% 0%;
		will-change: transform;

		--duration: calc(var(--reverse-index0) * 1s);
		--delay: calc(var(--index0) * 1s);

		animation: var(--duration) linear scale var(--delay) forwards;
		animation-timeline: cards-element-scrolls-in-body;
	}

	@keyframes scale {
		to {
			transform:
				scale(calc(
					1.1
					-
					calc(0.1 * var(--reverse-index))
				));
		}
	}
}


@media only screen and (max-width: 1300px) {
    section .oeffnungszeiten{
        grid-template-columns: 1fr;
    }
    section .oeffnungszeiten>div:nth-child(2){
        grid-column: 1 / 1;
    }
    section .oeffnungszeiten>div:nth-child(3){
        grid-column: 1 / span 1;
    }
}

@media only screen and (max-width: 1100px) {
    section>div{
        grid-template-columns: 1fr 1fr;
    }
}
@media only screen and (max-width: 600px) {
    .mobileonly{
        display: initial;
    }
    header{
        background-size: calc(min(80vw, 300px));
        padding-top: 2.8em;
    }
    main{
        margin-top: -0.5em;
    }
    section>div{
        grid-template-columns: 1fr;
        margin-top: 0;
        margin-left: 0;
        margin-right: 0;
        padding-right: 0;
    }
    section h2{
        position: relative;
        width: 86vw;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-top: -2em;
        height: 1em;
        margin-bottom: 0.5em;
        padding: 0.5em 1em;
        z-index: 15;
        background-color: rgba(240,240,240,0.7);
        border-bottom: 0;
    }
    section h2:not(.mobileonly){
        display: none;
    }

    section>div>div:not(.sideimage)>p, section .oeffnungszeiten{
        margin-left: 1.5em;
        margin-right: 1em;
    }
    section .sideimage{
        margin-right: 0;
        max-height: 30vh;
        overflow: hidden;
    }
    section .sideimage img{
        border-radius: 0;
    }
    .edu{
        margin-top: -0.5em;
    }
    section dl{
        margin-left: 1.5em;
    }
    section .links a{
        margin-left: auto;
        margin-right: auto;
        padding-top: 1em;
        padding-bottom: 1em;
    }
    footer{
        right: -1em;
        font-size: 0.7em;
        height: 1.5em;
    }

    .card{
        margin-top: -1em;
        top: 2em;
    }
    .card_content>div{
        overflow-y: scroll;
        height: calc(100vh - 18em);
    }

    .swisstravelsecurity, .instagram{
        bottom: 1.6em;
    }

    .slogan{
        display: none;
    }

}
