/* =============================================
   HHdeern.de – Clean Stylesheet
   ============================================= */

/* --- Reset & Base --- */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'Merriweather', Georgia, Cambria, Times, serif;
  font-size: 20px;
  font-size: 2rem;
  line-height: 1.7;
  color: #494e46;
}

figure, p {
  margin: 0;
}

a:link img, a:visited img {
  border: 0;
}

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

/* --- Background Area --- */
.background-area {
  position: fixed;
  height: 100vh;
  width: 100vw;
  top: 0;
  left: 0;
  z-index: -1;
  background-image: url("../images/image.jpg");
  background-position: 43.0466% 30.1429%;
  background-size: 100%;
  background-repeat: no-repeat;
}

@media only screen and (max-width: 800px) {
  .background-area {
    background-size: 150%;
  }
}

/* --- Navigation Toggle (Hamburger) --- */
.nav-toggle {
  display: none;
}

.nav-toggle-label {
  position: fixed;
  z-index: 100;
  left: 0;
  margin: 10px;
  padding: 16px;
  cursor: pointer;
  background-color: rgba(28, 31, 25, 0.8);
  border-radius: 1px;
  transition: left 0.2s ease-in-out, opacity 0.2s ease-in-out 0.2s;
  opacity: 1;
}

.hamburger,
.hamburger::before,
.hamburger::after {
  display: block;
  border-radius: 1000px;
  border-top: 3px solid #fff;
  transition: all 0.3s;
}

.hamburger {
  width: 35px;
  position: relative;
  margin: 9px 0;
}

.hamburger::before,
.hamburger::after {
  content: '';
  position: absolute;
  width: 100%;
}

.hamburger::before {
  top: -12px;
}

.hamburger::after {
  top: 6px;
}

/* Nav open state */
.nav-toggle:checked ~ .nav-toggle-label {
  left: auto;
  right: 70px;
  margin-right: 0;
}

.nav-toggle:checked ~ .nav-toggle-label .hamburger {
  border-color: transparent;
  margin: 8.5px 0;
}

.nav-toggle:checked ~ .nav-toggle-label .hamburger::before,
.nav-toggle:checked ~ .nav-toggle-label .hamburger::after {
  top: -3px;
  border-color: #fff;
}

.nav-toggle:checked ~ .nav-toggle-label .hamburger::before {
  transform: rotate(45deg) scaleX(1.1517511069);
}

.nav-toggle:checked ~ .nav-toggle-label .hamburger::after {
  transform: rotate(-45deg) scaleX(1.1517511069);
}

.nav-toggle:checked ~ .navigation {
  left: 0;
}

@media (min-width: 768px) {
  .nav-toggle:checked ~ .nav-toggle-label {
    left: 400px;
    right: auto;
  }
}

/* --- Navigation Panel --- */
.navigation {
  position: fixed;
  z-index: 9;
  left: -100%;
  top: 0;
  width: calc(100vw - 70px);
  height: 100%;
  overflow-y: auto;
  background-color: #1c1f19;
  font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;
  transition: left 0.2s ease-in-out;
}

@media (min-width: 768px) {
  .navigation {
    left: -400px;
    width: 400px;
  }
}

.navigation__inner {
  padding: 65px 10px 50px;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  position: relative;
}

@media (min-width: 768px) {
  .navigation__inner {
    padding: 25px 10px 50px;
  }
}

.nav-close-btn {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 48px;
  height: 48px;
  line-height: 48px;
  text-align: center;
  font-size: 28px;
  color: #fff;
  cursor: pointer;
  background-color: rgba(0, 0, 0, 0.1);
  border: none;
}

@media (min-width: 768px) {
  .nav-close-btn {
    display: none;
  }
}

.navigation ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.navigation li {
  padding: 0;
  margin: 0;
}

.navigation a:link,
.navigation a:visited {
  display: block;
  padding: 5px 20px;
  color: #b3b3b3;
  text-decoration: none;
  font-family: 'Merriweather', serif;
  font-size: 16px;
  font-weight: normal;
  transition: color 0.2s ease-in-out;
}

@media (max-width: 767px) {
  .navigation a:link,
  .navigation a:visited {
    font-size: 24px !important;
  }
}

.navigation a:hover,
.navigation a:active,
.navigation a:focus,
.navigation a.nav-current {
  color: #fff;
}

/* --- Main Section --- */
.main-section {
  position: relative;
  z-index: 5;
  left: 0;
  overflow: hidden;
  transition: left 0.2s ease-in-out;
}

/* --- Header --- */
.site-header {
  width: 100%;
  position: relative;
}

.header-inner {
  padding: 15px;
  width: 100%;
  margin: auto;
  color: #fff;
  font-family: 'Merriweather', Georgia, Cambria, Times, serif;
}

.header-inner::after {
  clear: both;
  content: "";
  display: table;
}

@media (min-width: 768px) {
  .header-inner {
    height: 400px;
    padding: 50px 25px;
    max-width: 1000px;
  }
}

/* --- Content --- */
/*
.content {
  background-color: rgba(255, 255, 255, 0.95);
  color: #494e46;
}
*/

.content-inner {
  padding: 15px;
  width: 100%;
  margin: auto;
}

.content-inner::after {
  clear: both;
  content: "";
  display: table;
}

@media (min-width: 768px) {
  .content-inner {
    padding: 15px 25px;
    max-width: 1000px;
  }
}

/* --- Breadcrumb --- */
.breadcrumb {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.5;
  margin: 1em 0;
  padding-left: 5px;
}

.breadcrumb ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

.breadcrumb li {
  display: inline;
}

.breadcrumb a {
  font-family: 'Merriweather', serif;
  font-size: 18px;
  color: #fff;
  text-decoration: none;
  padding: 5px 10px 5px 0;
  transition: color 0.2s ease-in-out;
}

.breadcrumb a:hover,
.breadcrumb a:focus {
  color: #fff;
}

/* --- Spacer --- */
.spacer {
  display: block;
}

/* --- Typography --- */
.content h1 {
  font-size: 60px;
  font-size: 6rem;
  line-height: 1.15;
  color: #95a18a;
  margin: 0;
}

.content h2 {
  font-size: 50px;
  font-size: 5rem;
  line-height: 1.3;
  color: #999b97;
  margin: 0;
}

.content h3 {
  font-size: 40px;
  font-size: 4rem;
  line-height: 1.4;
  color: #999b97;
  margin: 0;
}

@media (max-width: 767px) {
  .content h1 { font-size: 30px !important; }
  .content h2 { font-size: 26px !important; }
  .content h3 { font-size: 22px !important; }
}

/* --- Text colors for content area (white on transparent bg) --- */
.content .grid-col-right p,
.content .grid-col-right a:link,
.content .grid-col-right a:visited {
  color: #fff;
  font-family: 'Merriweather', serif;
  font-size: 18px;
}

.content .grid-col-right a:hover,
.content .grid-col-right a:active,
.content .grid-col-right a:focus {
  color: #cd1719;
}

/* --- Links --- */
a:link, a:visited {
  /* color: #95a18a; */
  color: #fff;
  text-decoration: none;
  transition: color 0.2s ease-in-out;
}

a:hover, a:active, a:focus {
  color: #968aa1;
}

/* --- Horizontal Rule --- */
hr {
  border: none;
  border-bottom: 2px solid #cccfc9;
  margin: 10px 0;
}

/* --- Image alignment --- */
.image-center {
  text-align: center;
}

.image-center img {
  display: inline-block;
}

/* --- Grid Row (two-column layout) --- */
.grid-row {
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
  align-items: flex-start;
  padding: 5px 0;
}

.grid-col {
  padding: 5px;
}

.grid-col-left {
  width: 49%;
}

.grid-col-right {
  width: 49%;
}

@media (max-width: 600px) {
  .grid-row {
    flex-direction: column;
  }
  .grid-col-left,
  .grid-col-right {
    width: 100%;
  }
}

/* --- Call to Action Button --- */
.cta-wrapper {
  text-align: center;
  padding: 40px 0;
}

.cta-button {
  display: inline-block;
  font-family: 'Merriweather', serif;
  font-size: 18px;
  line-height: 1.7;
  padding: 10px 20px;
  background-color: rgba(0, 0, 0, 0.5);
  border: 1px solid transparent;
  border-radius: 0;
  color: #fff;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

.cta-button:link,
.cta-button:visited {
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
}

.cta-button:hover,
.cta-button:active,
.cta-button:focus {
  background-color: rgba(255, 255, 255, 0.5);
  border-color: #fff;
  color: #444;
}

/* --- Footer --- */
.site-footer {
  background-color: #000;
  color: #cccfc9;
  font-weight: 300;
  font-family: 'Merriweather', serif;
}

.footer-inner {
  padding: 15px;
  width: 100%;
  margin: auto;
}

.footer-inner::after {
  clear: both;
  content: "";
  display: table;
}

@media (min-width: 768px) {
  .footer-inner {
    padding: 50px 25px;
    max-width: 1000px;
  }
}

.footer-content h1 {
  font-family: 'Merriweather', serif;
  font-size: 36px;
  font-weight: normal;
  font-style: normal;
  color: #cccfc9;
  margin: 0;
  text-align: left;
}

.footer-content p {
  font-size: 18px;
  color: #cccfc9;
}

.footer-meta {
  font-size: 0.8em;
  padding: 1em 0;
}

.footer-meta a:link,
.footer-meta a:visited,
.dialog-content a:link,
.dialog-content a:visited {
  color: #ccc;
  text-decoration: none;
  white-space: nowrap;
}

.footer-meta a:hover,
.footer-meta a:active,
.footer-meta a:focus,
.dialog-content a:hover,
.dialog-content a:active,
.dialog-content a:focus {
  color: #fff;
}

/* --- Clear helper --- */
.cc-clear {
  clear: both;
}

/* Dialog standardmäßig ausblenden und stylen */
.overlay-dialog {
  display: none;
  border: none;
  border-radius: 8px;
  padding: 30px;
  max-width: 760px;
  width: 90%;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
  position: fixed;
  top: 5%;
  font-size: 14px;
  /* left: 50%;
  transform: translate(-50%, -50%); */
}

/* Ueberschrift Position */
.dialog-content > h3:nth-child(1) {
	margin-top: -5px;
}

/* Wenn der Dialog das aktive Ziel (Target) ist */
.overlay-dialog:target {
  display: block;
}

/* Abgedunkelter Hintergrund (Backdrop) via CSS simuliert */
.overlay-dialog:target::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  z-index: -1;
  /* Zentrierung ausgleichen, damit Hintergrund alles bedeckt */
  transform: translate(-50%, -50%); 
  left: 50%;
  top: 50%;
}

/* Button-Styling */
.close-btn {
  display: inline-block;
  text-decoration: none;
  background-color: #cd1719;
  color: white;
  padding: 10px 20px;
  border-radius: 5px;
}


@media (max-width: 890px) {
 .dialog-content, a.cta-button:nth-child(12) {
    font-size: 11px;
  }
}

@media (max-height: 500px) {
 .dialog-content, a.cta-button:nth-child(12) {
    font-size: 9px;
  }
.overlay-dialog {
	top: -1%;
  }	
}
