/*
Theme Name: Fellnerpage
Author: Custom Theme
Description: Sehr schlankes individuelles Theme für Fortbildung Fellner & Fellner.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: fellnerpage
*/

:root {
	--content-width: 1420px;
	--text: #252525;
	--muted: #777;
	--line: #ddd;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	margin: 0;
	padding: 0;
}

body {
	margin: 0;
	background: #fff;
	color: var(--text);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 20px;
	font-weight: 400;
	line-height: 1.25;
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover,
a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ==============================
   TYPOGRAFIE – HEADINGS
   ============================== */

h1,
h2,
h3 {
  font-family: inherit;
  font-weight: bold;
  color: #111;
  letter-spacing: -0.03em;
  margin-top: 0;
}

/* H1 – Hauptüberschrift */
h1 {
  font-size: 24px;
  line-height: 1.2;
  margin-bottom: 24px;
}

/* H2 – Abschnittsüberschrift */
h2 {
  font-size: 22px;
  line-height: 1.25;
  margin-bottom: 20px;
}

/* H3 – Unterüberschrift */
h3 {
  font-size: 18px;
  line-height: 1.3;
  margin-bottom: 16px;
}

/* ==============================
   TABLET – ab 680px
   ============================== */

@media (min-width: 680px) {
  h1 {
    font-size: 28px;
  }

  h2 {
    font-size: 28px;
  }

  h3 {
    font-size: 22px;
  }
}


/* ==============================
   DESKTOP – ab 1024px
   ============================== */

@media (min-width: 1024px) {
  h1 {
    font-size: 32px;
  }

  h2 {
    font-size: 32px;
  }

  h3 {
    font-size: 24px;
  }
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}


.site {
	width: min(calc(100% - 56px), var(--content-width));
	margin-inline: auto;
}

p > a {
	text-decoration: underline;
}


/* =================================
   HEADER
================================= */

header {
	width: 100%;
	height: 82px;
	background: #333;
}

.header-inner {
	position: relative;
	width: min(calc(100% - 56px), var(--content-width));
	height: 6vw;
	margin-inline: auto;
}


/* Logo */

#logo {
	position: absolute;
	top: 0;
	left: 0;

	display: block;

	width: 80px;
	height: 80px;
	margin: 0;
}

#logo img {
	display: block;
	width: 80px;
	height: 80px;
	max-width: none;
	object-fit: contain;
}

#title {
	position: absolute;
	top: 10px;
	left: 95px;
	margin: 0;
	font-size: 1.35em;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
}

#title a {
	color: #fff;
}

#title a:hover {
	text-decoration: none;
}

/* Navigation */

header .bar {
	position: absolute;
	top: 1vw;
	right: 0;
	margin: 0;
	padding: 0;
}

header .bar .entries {
	display: flex;
	align-items: center;
	gap: 2vw;
	margin: 0;
	padding: 0;
}

header .bar .entry {
	display: block;
	margin: 0;
	padding: 0;

	font-size: 1.25em;
	font-weight: 500;
	line-height: 1.2;
	color: #fff;
	white-space: nowrap;
}

header .bar .entry:hover,
header .bar .entry.active {
	color: #aaa;
	text-decoration: none;
}

.sub-navigation {
	display: flex;
	flex-wrap: wrap;
	gap: 0 2vw;
	justify-content: flex-end;
}

.sub-navigation a {
	font-size: 1em;
	font-weight: 400;
	color: #555;
}

.sub-navigation a:hover,
.sub-navigation a.active {
	color: #333;
	text-decoration: none;
}

.subnavigation-wrapper {
    height: 40px;
    background: #aaa;
	text-align: right;
	padding-top: 6px;

	@media (max-width: 900px) {
		padding-top: 0;
	}
}


/* =================================
   MOBILE NAVIGATION
================================= */

#nav {
	background-image: url('img/icons/nav.png');
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}


.page-hero {
	width: 100vw;
	height: 500px;
	margin-left: calc(50% - 50vw);
	overflow: hidden;

	@media (max-width: 680px) {
		height: 400px;
	}
}

.page-hero.frontpage {
	height: 800px;

	@media (max-width: 680px) {
		height: 500px;
	}
}



.page-hero img {
	width: 100%;
	height: 100vh;
	max-width: none;
	object-fit: cover;
	object-position: center;
}

.frontpage-title {
	position: absolute;
	left: 50%;
	top: 60%;
	width: 500px;
	max-width: 100%;
	margin-left: -250px;
	z-index: 99;
	background: white;
    opacity: 0.8;
    text-align: center;
	padding-top: 20px;
}

@media (max-width: 680px) {
  .frontpage-title {
	width: 300px;
  	margin-left: -150px;
  }
}

/* Buttons */
.btn {
	display: inline-block;
    font-size: 1.25em;
    color: rgb(255, 255, 255);
    text-align: center;
    cursor: pointer;
    padding: 3vw 0px 0px;
    margin: 2vw 5vw 0px 0px;
    border-radius: 5px;
    text-decoration: none;
    transition: background 1s;
	padding: 32px 34px;
}

.btn.gelb     {
	background: rgb(221, 170, 51);
}

.btn.braun {
	background: rgb(170, 68, 34);
}

.btn.grey {
	background: rgb(170, 170, 170);
}

/* Footer */
footer {
	margin-top: 80px;
	padding: 25px 0 40px;
	border-top: 1px solid #ddd;
	color: #777;
	font-size: 14px;
}

footer nav.bar {
	margin: 0;
	padding: 0;
}

footer nav.bar .entries {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	margin: 0;
	padding: 0;
}

footer nav.bar .entry {
	font-size: 14px;
}

footer nav.bar .entry:hover {
	color: #252525;
	text-decoration: none;
}

.view {
	padding-top: 80px;

	@media (max-width: 900px) {
		padding-top: 40px;
	}
}

/* =================================
   MOBILE MENU
================================= */

.menu-toggle {
	display: none;
}


/* =================================
   MOBILE
================================= */

@media (max-width: 900px) {

	header {
		height: 80px;
	}

	.header-inner {
		width: calc(100% - 36px);
		height: 80px;
	}

	#logo {
		width: 60px;
		height: 60px;
		top: 10px;
	}

	#logo img {
		width: 60px;
		height: 60px;
	}

	#title {
		top: 15px;
		left: 72px;
		width: auto;
		font-size: 1.15em;
		line-height: 1.15;
	}


	/* Hamburger */

	.menu-toggle {
		position: absolute;
		top: 22px;
		right: 0;

		display: flex;
		flex-direction: column;
		justify-content: space-between;

		width: 32px;
		height: 26px;

		margin: 0;
		padding: 0;

		border: 0;
		background: transparent;

		cursor: pointer;
		z-index: 1001;
	}

	.menu-toggle span:not(.screen-reader-text) {
		display: block;
		width: 100%;
		height: 2px;
		background: #fff;
		transition:
			transform 0.25s ease,
			opacity 0.25s ease;
	}


	/* Navigation */

	header .bar {
		position: fixed;

		top: 80px;
		left: 0;
		right: 0;

		display: none;

		margin: 0;
		padding: 30px 18px 35px;

		background: #333;

		z-index: 1000;
	}

	header .bar.is-open {
		display: block;
	}

	header .bar .entries {
		display: flex;
		flex-direction: column;
		align-items: stretch;

		gap: 0;
	}

	header .bar .entry {
		padding: 14px 0;

		font-size: 1.15em;
		font-weight: 500;

		border-bottom: 1px solid #555;
		color: #fff;
	}

	header .bar .entry:first-child {
		border-top: 1px solid #555;
	}

	header .bar .entry:hover,
	header .bar .entry.active {
		color: #aaa;
	}


	/* Hamburger → X */

	.menu-toggle.is-open span:nth-child(1) {
		transform: translateY(12px) rotate(45deg);
	}

	.menu-toggle.is-open span:nth-child(2) {
		opacity: 0;
	}

	.menu-toggle.is-open span:nth-child(3) {
		transform: translateY(-12px) rotate(-45deg);
	}


	/* Subnavigation */

	.subnavigation-wrapper {
		width: 100%;
	}

	.subnavigation-wrapper .header-inner {
		width: calc(100% - 36px);
		height: auto;
	}

	.sub-navigation {
		display: flex;
		flex-wrap: wrap;
		gap: 8px 18px;

		padding: 12px 0;
	}

	.sub-navigation a {
		font-size: 14px;
	}


	/* Wenn Menü geöffnet ist, Subnavigation ebenfalls ins Menü */

	header .bar.is-open + #nav {
		display: block;
	}
}

.is-layout-flex {
    display: flex;
    flex-direction: row;
    gap: 40px;
}

.is-layout-flex > * {
    flex: 1;
}

@media (max-width: 767px) {
    .is-layout-flex {
        flex-direction: column;
    }
}

