/* ======================================================================
   1. FOUNDATIONS
====================================================================== */

/* 1-a | Fonts -------------------------------------------------------- */
@font-face {
	font-family: Gesund;
	src: url(Gesund.otf);
}

/* 1-b | Keyframes ---------------------------------------------------- */
@keyframes fadeInScale {
	0%		{ opacity: 0; transform: scale(0.9); }
	100%	{ opacity: 1; transform: scale(1); }
}
@keyframes fadingIn {
	0%		{ opacity: 0; }
	100%	{ opacity: 1; }
}

/* 1-c | Global pseudo-elements -------------------------------------- */
::selection {
	color: black;
	background: #ffad19;
}

/* ======================================================================
   2. BASE ELEMENTS
====================================================================== */

body {
	background: #ffe3b0;
	font-size: clamp(1rem, 1.1vw, 2rem);
}
body.internal {
	background: #ffad19;
	font-size: clamp(1rem, 1.1vw, 2rem);
}

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
	font-family: Gesund !important;
}

#hero-bg {
	background:
		linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)),
		url("images/photos/Gesundheitswelt-Kinzigtal.jpg") center/cover no-repeat fixed;
	z-index: -2;
	pointer-events: none;
}

#hero-logo { height: 20rem; }

#cover {
	background: #ffe3b0;
}

.brandheader {
	color: #ffad19;
	font-family: Gesund !important;
	margin-top: 0;
	margin-bottom: 0.5rem;
	font-weight: 500;
	line-height: 1.2;
}

/* ======================================================================
   3. UTILITIES & ONE-LINERS
====================================================================== */

.inline-symbol		{ height: 1rem; }
.largeline-symbol	{ height: 4rem; }
.languageflag		{ height: 1rem; border: 1px solid black }
img					{ user-select: none; pointer-events: none; }

/* ======================================================================
   4. COMPONENT OVERRIDES  (α-order)
====================================================================== */

/* Accordion ---------------------------------------------------------- */
#coursesHausach.accordion,
#coursesZell.accordion {
	--bs-accordion-btn-color: white !important;
	--bs-accordion-btn-bg: var(--bs-primary) !important;
	--bs-accordion-active-bg: var(--bs-secondary-subtle) !important;
	--bs-accordion-active-color: dark !important;
	--bs-accordion-btn-focus-box-shadow: none !important;
	--bs-accordion-bg: #ffad19;
}

/* Buttons / displays ------------------------------------------------- */

button h2 { font-size: clamp(1rem, 1.5vw, 2rem) }

.btn-gesund {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: #ffad19;
  --bs-btn-border-color: #ffad19;
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: #ffb129;
  --bs-btn-hover-border-color: #f49d00;
  --bs-btn-focus-shadow-rgb: 255, 193, 53;
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: #f49d00;
  --bs-btn-active-border-color: #e09000;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #ffffff;
  --bs-btn-disabled-bg: #ffad19;
  --bs-btn-disabled-border-color: #ffad19;
}

.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
	color: #ffad19 !important;
}

.lead {
	font-family: Gesund;
}

/* Drop-start icon ---------------------------------------------------- */
.dropstart { color: #ffad19; }

/* Logos -------------------------------------------------------------- */
#footerlogo	{ height: 1rem; }
#smalllogo  { height: 4rem; }

/* Maps --------------------------------------------------------------- */
#maplink { --bs-bg-opacity: 0.5 !important; }

/* Navbar ------------------------------------------------------------- */
.navbar-collapse.collapsing, .navbar-collapse.show {
	padding-top: 1rem;
	border-top: 2px solid #ffad19;
	text-align: left !important;
}

/* Table fit columns -------------------------------------------------- */
.table td.fit,
.table th.fit {
	white-space: nowrap;
	width: 1%;
}

/* Thumbnails --------------------------------------------------------- */
.thumbnail {
	max-width: 100px;
	max-height: 100px;
	object-fit: cover;
}

/* ======================================================================
   5. ANIMATIONS
====================================================================== */

.headline,
.subtitle {
	opacity: 0;
	animation: fadeInScale 0.5s ease-in-out forwards;
}

.basecontainer {
	opacity: 0;
	animation: fadingIn 0.5s ease-in-out 0.5s forwards;
}

.fade-on-scroll {
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.4s ease-in-out;
}

.fade-on-scroll.is-visible {
	opacity: 1;
	visibility: visible;
}

/* ======================================================================
   6. TIMELINE
====================================================================== */

/* Vertical line */
.main-timeline {
	position: relative;
}

/* Vertical line */
.main-timeline::after {
	content: "";
	position: absolute;
	width: 3px;
	background-color: #0d6efd;
	top: 0;
	bottom: 0;
	left: 50%;
	margin-left: -3px;
}

/* Container */
.timeline {
	position: relative;
	width: 50%;
}

/* Circle */
.timeline::after {
	content: "";
	position: absolute;
	width: 25px;
	height: 25px;
	right: -11px;
	background-color: #ffad19;
	top: 15px;
	border-radius: 50%;
	z-index: 1;
}

/* Left container */
.container-left {
	padding: 0px 40px 20px 0px;
	left: 0;
}

/* Right container */
.container-right {
	padding: 0px 0px 20px 40px;
	left: 50%;
}

/* Left container arrow */
.container-left::before {
	content: "";
	position: absolute;
	top: 18px;
	z-index: 1;
	right: 30px;
	border: medium solid rgba(0, 101, 243, 1);
	border-width: 10px 0 10px 10px;
	border-color: transparent transparent transparent rgba(0, 101, 243, 1);
}

/* Right container arrow */
.container-right::before {
	content: "";
	position: absolute;
	top: 18px;
	z-index: 1;
	left: 30px;
	border: medium solid rgba(245, 87, 87, 1);
	border-width: 10px 10px 10px 0;
	border-color: transparent rgba(245, 87, 87, 1) transparent transparent;
}

/* Fix the circle for containers on the right side */
.container-right::after {
	left: -14px;
}

.gradient-left {
	background: #0d6efd;
	background: linear-gradient(
		to right,
		rgba(0, 101, 243, 0.75),
		rgba(13, 110, 253, 0.75)
	);
}

.gradient-right {
	background: #ffad19;
	background: linear-gradient(
		to left,
		rgba(255, 173, 25, 0.75),
		rgba(245, 87, 87, 0.75)
	);
}

/* ======================================================================
   7. RESPONSIVE TWEAKS
====================================================================== */

@media only screen {
	.hidden-screen { display: none !important; }
}

@media only screen and (max-width: 991px) {
	body { font-size: clamp(1rem, 2.5vw, 3rem); }

	h1 { font-size: clamp(2.5rem, 6.25vw, 7.5rem); }
	h2 { font-size: clamp(2rem, 5vw, 6rem); }
	h3 { font-size: clamp(1.75rem, 4.375vw, 5.25rem); }
	h4 { font-size: clamp(1.5rem, 3.75vw, 4.5rem); }
	h5 { font-size: clamp(1.25rem, 3.125vw, 3.75rem); }
	h6 { font-size: clamp(1rem, 2.5vw, 3rem); }

	.brandheader { font-size: clamp(2.5rem, 6.25vw, 7.5rem); }

	#brandtext { white-space: normal; }
}

@media only screen and (min-width: 992px) {
	#navmenu { min-height: 6rem; }
}