/*
-----------------------------------------------
	www.andre250.de
by  www.lichtsignale.de
----------------------------------------------- */


/*		V A R I A B L E N
----------------------------------------------- */

:root {
	--text: #333;
	--dunkel: #4e277f;
	--mittel: #9b86b9;
	--hell: #cfc8df;
	--hintergrund: #f9f3eb;
	--weiss: #fff;
	--grau: #999;
	--fokusring: var(--dunkel);
	--color-text: var(--text);
	--schrift-fliess: "Andre Sectra", "Georgia", "Times New Roman", serif;
	--schrift-fein: "Andre Sectra Fine", "Georgia", "Times New Roman", serif;
	--schrift-display: "Andre Display", "Helvetica Neue", "Helvetica", sans-serif;
	--schrift-grund: 1.125rem;
	--schrift-klein: 85%;
	--abstand: 1.5rem;
	--polster-pille: calc(var(--abstand) * 0.2) calc(var(--abstand) * 0.45) calc(var(--abstand) * 0.15) calc(var(--abstand) * 0.45);
	--radius-pille: 50px;
	--breite-inhalt: 1144px;
	--breite-intro: 895px;
	--breite-logo: 900px;
	--breite-logo-klein: 250px;
	--breite-kasten: 400px;
	--breite-fusslogo: 100px;
	--kachel: 269px;
}


/*		R E S E T
----------------------------------------------- */

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, nav, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

html {
	height: 100%;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content: "";
	content: none;
}

a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

input, select {
	vertical-align: middle;
}


/*		W E B F O N T S
----------------------------------------------- */

@font-face {
	font-family: "Andre Display";
	src: url("fonts/andre-display.woff2");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Andre Sectra";
	src: url("fonts/GT-Sectra-Regular.woff2") format("woff2"),
		url("fonts/GT-Sectra-Regular.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Andre Sectra";
	src: url("fonts/GT-Sectra-Regular-Italic.woff2") format("woff2"),
		url("fonts/GT-Sectra-Regular-Italic.woff") format("woff");
	font-weight: normal;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Andre Sectra Fine";
	src: url("fonts/GT-Sectra-Fine-Regular.woff2") format("woff2"),
		url("fonts/GT-Sectra-Fine-Regular.woff") format("woff");
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Andre Sectra Fine";
	src: url("fonts/GT-Sectra-Fine-Regular-Italic.woff2") format("woff2"),
		url("fonts/GT-Sectra-Fine-Regular-Italic.woff") format("woff");
	font-weight: normal;
	font-style: italic;
	font-display: swap;
}


/*		B A S I C S
----------------------------------------------- */

body {
	color: var(--dunkel);
	background: var(--weiss);
	font-family: var(--schrift-fliess);
	font-size: var(--schrift-grund);
	line-height: var(--abstand);
	letter-spacing: 0.015em;
	text-align: left;
	text-rendering: optimizeLegibility;
}

a:link, a:visited {
	color: var(--text);
	text-decoration: none;
}

:focus-visible {
	outline: 2px solid var(--fokusring);
	outline-offset: 2px;
}

:focus:not(:focus-visible) {
	outline: none;
}

header :focus-visible {
	outline-color: var(--weiss);
}

img, video {
	max-width: 100%;
	height: auto;
	object-fit: contain;
	object-position: left top;
}

h1, h2, h3, h4, h5, h6, strong, b, th {
	font-weight: normal;
}

.interlude h2, .heroimg h2, h4, h5, .txtlink figure {
	font-family: var(--schrift-fein);
	line-height: 1.1;
	word-spacing: -2px;
}

a[data-fancybox] {
	cursor: zoom-in;
}

.wrapper {
	margin-left: var(--abstand);
	margin-right: var(--abstand);
}

.button:link, .button:visited, .interlude .button {
	color: var(--weiss);
	background: var(--dunkel);
	font-size: var(--schrift-klein);
	font-family: var(--schrift-display);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: var(--polster-pille);
	border-radius: var(--radius-pille);
}

.button:hover, .button:active, .interlude:hover .button {
	background: var(--mittel);
}

.center {
	text-align: center;
}


/*		H E A D E R / F O O T E R
----------------------------------------------- */

header {
	padding-top: calc(var(--abstand) * 0.75);
	margin-bottom: calc(var(--abstand) * 1);
	background: var(--dunkel);
	background-image: url("lines-top.svg");
	background-repeat: no-repeat;
	background-size: 125%;
	background-position-y: center;
}

header li {
	list-style: none;
	display: inline-block;
	margin-bottom: calc(var(--abstand) * 0.5);
}

header nav a:link, header nav a:visited {
	color: var(--dunkel);
	background: var(--hell);
	font-size: var(--schrift-klein);
	font-family: var(--schrift-display);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: var(--polster-pille);
	border-radius: var(--radius-pille);
	margin-right: calc(var(--abstand) * 0.1);
}

.active a:link, .active a:visited, header nav a:hover, header nav a:active {
	background: var(--weiss);
}

header h1 {
	position: relative;
	bottom: calc(var(--abstand) * -0.45);
	margin-top: calc(var(--abstand) * 2);
}

header#smol h1 {
	width: var(--breite-logo-klein);
	bottom: calc(var(--abstand) * -0.35);
	margin-left: auto;
	margin-right: auto;
}

footer {
	margin-top: calc(var(--abstand) * 4);
	padding-top: calc(var(--abstand) * 1);
	padding-bottom: calc(var(--abstand) * 1);
	background: var(--hintergrund);
	background-image: url("lines-top.svg");
	background-repeat: no-repeat;
	background-size: 125%;
	background-position-y: center;
}

footer .wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
}

footer .wrapper div {
	width: var(--breite-fusslogo);
}

footer ul {
	padding-bottom: calc(var(--abstand) * 0.25);
}

footer li {
	list-style: none;
	margin: calc(var(--abstand) * 0.5) 0;
}

footer a:link, footer a:visited {
	color: var(--dunkel);
}

footer a:hover, footer a:active {
	color: var(--mittel);
}


/*		G A L L E R Y
----------------------------------------------- */

#intro {
	margin-bottom: calc(var(--abstand) * 4);
}

main {
	padding-top: calc(var(--abstand) * 0.15);
}

.gallery {
	text-align: center;
	background-image: url("lines-body.svg");
	background-position: center top;
	background-repeat: repeat-y;
	background-size: 125%;
	padding-bottom: calc(var(--abstand) * 4);
	margin-bottom: calc(var(--abstand) * -4);
}

.nobg {
	background-image: none;
}

.gallery .wrap {
	display: grid;
	row-gap: calc(var(--abstand) * 2);
	margin-bottom: calc(var(--abstand) * 2);
	margin-left: calc(var(--abstand) * 2);
	margin-right: calc(var(--abstand) * 2);
}

.gallery figure {
	margin-bottom: calc(var(--abstand) * 0.75);
	display: flex;
	justify-content: center;
	align-items: center;
}

.gallery img {
	max-width: 60vw;
	max-height: 60vw;
}

.gallery a:link, .gallery a:visited {
	color: var(--dunkel);
	display: block;
}

.gallery a:hover, .gallery a:active {
	color: var(--mittel);
}

.gallery a.interlude:link, .gallery a.interlude:visited, .gallery a.interlude:hover, .gallery a.interlude:active {
	color: var(--text);
	margin-left: 0;
	margin-right: 0;
}

.gallery date, .gallery time {
	color: var(--mittel);
	display: block;
}

.interlude {
	background: var(--hintergrund);
	padding-top: calc(var(--abstand) * 2);
	padding-bottom: calc(var(--abstand) * 2.5);
	margin-bottom: calc(var(--abstand) * 3);
}

.interlude h2 {
	font-style: italic;
	font-size: 200%;
	margin-bottom: calc(var(--abstand) * 0.5);
}

.interlude p {
	margin-bottom: calc(var(--abstand) * 1.5);
}


/*		O B J E C T
----------------------------------------------- */

.heroimg {
	margin-bottom: calc(var(--abstand) * 3);
}

.heroimg h2 {
	font-size: 200%;
	margin-bottom: calc(var(--abstand) * 1.5);
	margin-top: calc(var(--abstand) * 1);
}

.heroimg h2 date, .heroimg h2 time {
	color: var(--mittel);
	display: block;
}

.heroimg p span {
	color: var(--hell);
}

.heroimg figure img {
	max-height: 65vh;
	object-position: center center;
}

.heroimg .box {
	max-width: var(--breite-kasten);
	margin-left: auto;
	margin-right: auto;
}

h3 {
	font-family: var(--schrift-display);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-align: center;
	margin-bottom: calc(var(--abstand) * 2);
}

h4 {
	font-style: italic;
	font-size: 200%;
	margin-bottom: calc(var(--abstand) * 0.5);
	color: var(--text);
}

h5 {
	font-size: 133%;
	margin-bottom: calc(var(--abstand) * 2);
	color: var(--text);
}

.txtlink figure {
	font-size: 133%;
	margin-bottom: calc(var(--abstand) * 0.5);
}

.gallery a.txtlink:link, .gallery a.txtlink:visited {
	color: var(--text);
}

.gallery a.txtlink:hover, .gallery a.txtlink:active {
	color: var(--grau);
}

.txtlink date, .txtlink time {
	color: var(--grau);
}

.textauthor {
	display: grid;
	row-gap: calc(var(--abstand) * 2);
	margin-bottom: calc(var(--abstand) * 2);
}

#text {
	color: var(--text);
}

#text p {
	margin-bottom: var(--abstand);
}

.double {
	color: var(--dunkel);
	display: grid;
	row-gap: var(--abstand);
	margin-bottom: calc(var(--abstand) * 3);
	padding-top: calc(var(--abstand) * 2);
}

.text {
	margin-bottom: calc(var(--abstand) * 2);
}


/*		R E S P O N S I V E
----------------------------------------------- */

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

.gallery .wrap {
	grid-template-columns: 1fr 1fr;
	margin-left: calc(var(--abstand) * 1);
	margin-right: calc(var(--abstand) * 1);
}

.gallery figure {
	margin-bottom: calc(var(--abstand) * 0.75);
	width: calc(50vw - var(--abstand) * 3);
	height: calc(50vw - var(--abstand) * 3);
	margin-left: calc(var(--abstand) * 1);
	margin-right: calc(var(--abstand) * 1);
}

.gallery img {
	max-width: calc(50vw - var(--abstand) * 3);
	max-height: calc(50vw - var(--abstand) * 3);
}

.gallery span strong {
	padding-left: calc(var(--abstand) * 1);
	padding-right: calc(var(--abstand) * 1);
	font-weight: normal;
	display: block;
}

.heroimg p {
	margin-left: 25%;
}

.interlude h2, .heroimg h2, h4 {
	font-size: 250%;
}

h5 {
	font-size: 150%;
}

}


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

.wrapper {
	margin-left: calc(var(--abstand) * 2);
	margin-right: calc(var(--abstand) * 2);
}

}


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

.interlude h2, .heroimg h2, h4 {
	font-size: 300%;
}

h5 {
	font-size: 175%;
}

header, .gallery, footer {
	background-size: 100%;
}

}


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

.gallery .wrap {
	grid-template-columns: 1fr 1fr 1fr;
	margin-left: calc(var(--abstand) * 1);
	margin-right: calc(var(--abstand) * 1);
	row-gap: calc(var(--abstand) * 4);
	margin-bottom: calc(var(--abstand) * 4);
}

.gallery figure {
	width: calc(100vw / 3 - var(--abstand) * 2.67);
	height: calc(100vw / 3 - var(--abstand) * 2.67);
	margin-left: calc(var(--abstand) * 1);
	margin-right: calc(var(--abstand) * 1);
}

.gallery img {
	max-width: calc(100vw / 3 - var(--abstand) * 2.67);
	max-height: calc(100vw / 3 - var(--abstand) * 2.67);
}

.interlude {
	margin-bottom: calc(var(--abstand) * 4);
}

.heroimg p {
	margin-left: calc(100% / 3 + var(--abstand) - 8px);
}

.textautor, .text {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: calc(var(--abstand) * 2);
}

.textautor div:nth-child(2), .text p {
	grid-column-start: 2;
	grid-column-end: 4;
}

.double {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: calc(var(--abstand) * 2);
}

footer .wrapper {
	grid-template-columns: 1fr 1fr 1fr;
	column-gap: calc(var(--abstand) * 2);
}

header h1 {
	bottom: calc(var(--abstand) * -0.5);
}

#intro {
	margin-top: calc(var(--abstand) * 2);
}

}


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

:root {
	--abstand: 1.75rem;
	--schrift-grund: 1.3125rem;
	--breite-logo-klein: 300px;
}

header h1.wrapper {
	max-width: var(--breite-logo);
	margin-left: auto;
	margin-right: auto;
}

header#smol h1 {
	bottom: calc(var(--abstand) * -0.3);
}

header ul {
	text-align: center;
}

#intro {
	max-width: var(--breite-intro);
	margin-left: auto;
	margin-right: auto;
}

.gallery figure {
	width: calc(100vw / 3 - var(--abstand) * 4.67);
	height: calc(100vw / 3 - var(--abstand) * 4.67);
	margin-left: calc(var(--abstand) * 2);
	margin-right: calc(var(--abstand) * 2);
}

.gallery img {
	max-width: calc(100vw / 3 - var(--abstand) * 4.67);
	max-height: calc(100vw / 3 - var(--abstand) * 4.67);
}

.interlude h2, .heroimg h2, h4 {
	font-size: 400%;
}

h5 {
	font-size: 200%;
	margin-bottom: calc(var(--abstand) * 5);
}

}


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

.wrapper, .wrap, .gallery .wrap {
	width: var(--breite-inhalt);
	margin-left: auto;
	margin-right: auto;
}

.gallery figure {
	width: var(--kachel);
	height: var(--kachel);
	margin-left: calc(var(--abstand) * 2);
	margin-right: calc(var(--abstand) * 2);
}

.gallery img {
	max-width: var(--kachel);
	max-height: var(--kachel);
}

}


@media (prefers-reduced-motion: reduce) {

*, *::before, *::after {
	animation: none;
	transition: none;
}

}


/*		V O R L A G E N
----------------------------------------------- */

.skip {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip:focus {
	position: fixed;
	top: calc(var(--abstand) * 0.5);
	left: calc(var(--abstand) * 0.5);
	z-index: 10;
	outline-offset: -3px;
	width: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	clip-path: none;
	color: var(--dunkel);
	background: var(--weiss);
	font-size: var(--schrift-klein);
	font-family: var(--schrift-display);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: var(--polster-pille);
	border-radius: var(--radius-pille);
}

.intro {
	color: var(--text);
	margin-bottom: calc(var(--abstand) * 2);
}

.seitentitel {
	font-family: var(--schrift-fein);
	line-height: 1.1;
	word-spacing: -2px;
	font-style: italic;
	font-size: 200%;
	margin-bottom: calc(var(--abstand) * 0.5);
	color: var(--text);
}

.untertitel {
	font-family: var(--schrift-fein);
	line-height: 1.1;
	word-spacing: -2px;
	font-size: 133%;
	margin-bottom: calc(var(--abstand) * 2);
	color: var(--text);
}

.textseite {
	color: var(--text);
}

.textseite p {
	margin-bottom: var(--abstand);
}


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

.seitentitel {
	font-size: 250%;
}

.untertitel {
	font-size: 150%;
}

}


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

.seitentitel {
	font-size: 300%;
}

.untertitel {
	font-size: 175%;
}

}


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

.seitentitel {
	font-size: 400%;
}

.untertitel {
	font-size: 200%;
	margin-bottom: calc(var(--abstand) * 5);
}

}

/* -----------------------------------------------
   B A R R I E R E F R E I H E I T   N A C H T R A G
   ----------------------------------------------- */

.text p, .textseite p, #inhalt p {
	overflow-wrap: anywhere;
}

.seitentitel, h2.wrapper, h4.wrapper {
	overflow-wrap: anywhere;
}

.text a:link, .text a:visited,
.textseite a:link, .textseite a:visited {
	text-decoration: underline;
	text-underline-offset: 0.15em;
	text-decoration-thickness: from-font;
}
