/*
Theme Name: Freiraum Hideaway Divi Child
Theme URI: https://www.freiraum-hideaway.de/
Description: Divi Child Theme im ruhigen Freiraum-Hideaway Look: warmes Off-White, Olivgrün, elegante Serif-Typografie und hochwertige Karten-/Hero-Optik.
Author: Freiraum Hideaway
Template: Divi
Version: 1.0.0
*/

:root {
  --fr-olive: #59613b;
  --fr-olive-dark: #3f4729;
  --fr-olive-light: #7a8353;
  --fr-cream: #f7f3ea;
  --fr-sand: #e8ddcc;
  --fr-warm-white: #fffdf8;
  --fr-charcoal: #1d2118;
  --fr-muted: #6f705f;
  --fr-border: rgba(89, 97, 59, 0.18);
  --fr-shadow: 0 18px 45px rgba(29, 33, 24, 0.12);
  --fr-radius: 18px;
}

body {
  background: var(--fr-warm-white);
  color: var(--fr-charcoal);
  font-weight: 400;
}

h1, h2, h3, h4, h5, h6,
.et_pb_text h1, .et_pb_text h2, .et_pb_text h3 {
  color: var(--fr-charcoal);
  letter-spacing: -0.035em;
  line-height: 1.05;
}

h1, .fr-hero-title {
  font-size: clamp(44px, 6vw, 86px);
}

h2 {
  font-size: clamp(34px, 4vw, 58px);
}

p, li, .et_pb_text_inner {
  color: var(--fr-charcoal);
  line-height: 1.75;
}

/* Header */
#main-header, .et-l--header .et_pb_section {
  box-shadow: none !important;
  background: rgba(255, 253, 248, 0.92) !important;
  backdrop-filter: blur(18px);
}

#top-menu li a, .et-menu a {
  color: var(--fr-charcoal) !important;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

#top-menu li.current-menu-item > a, .et-menu li.current-menu-item > a,
#top-menu li a:hover, .et-menu a:hover {
  color: var(--fr-olive) !important;
  opacity: 1 !important;
}

/* Divi Buttons */
.et_pb_button, .fr-button-primary {
  background: var(--fr-olive) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 8px !important;
  padding: 14px 26px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 12px 28px rgba(89, 97, 59, 0.25);
}

.et_pb_button:hover, .fr-button-primary:hover {
  background: var(--fr-olive-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 18px 38px rgba(89, 97, 59, 0.32);
}

.fr-button-secondary, .et_pb_button.fr-button-secondary {
  background: rgba(255,255,255,0.78) !important;
  color: var(--fr-charcoal) !important;
  border: 1px solid var(--fr-border) !important;
  box-shadow: none;
}

/* Hero Section */
.fr-hero {
  min-height: 78vh;
  display: flex;
  align-items: center;
  background-color: var(--fr-cream);
  overflow: hidden;
}

.fr-hero .et_pb_row {
  width: min(92%, 1480px);
}

.fr-hero-kicker {
  color: var(--fr-olive);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 18px;
}

.fr-hero-copy {
  max-width: 620px;
  font-size: 18px;
}

.fr-image-rounded img,
.fr-image-rounded .et_pb_image_wrap {
  border-radius: var(--fr-radius);
  overflow: hidden;
  box-shadow: var(--fr-shadow);
}

/* Feature bar */
.fr-feature-bar {
  background: rgba(255, 253, 248, 0.9);
  border: 1px solid var(--fr-border);
  border-radius: 22px;
  box-shadow: var(--fr-shadow);
  padding: 24px 30px;
  margin-top: -55px;
  position: relative;
  z-index: 5;
}

.fr-feature-item {
  border-right: 1px solid var(--fr-border);
  padding: 0 24px;
}

.fr-feature-item:last-child { border-right: 0; }

.fr-icon-circle {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(89, 97, 59, 0.12);
  color: var(--fr-olive);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Accommodation cards */
.fr-card, .et_pb_module.fr-card {
  background: #fff;
  border: 1px solid rgba(89, 97, 59, 0.10);
  border-radius: var(--fr-radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(29, 33, 24, 0.08);
  transition: transform .25s ease, box-shadow .25s ease;
}

.fr-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 46px rgba(29, 33, 24, 0.14);
}

.fr-card img {
  border-radius: var(--fr-radius) var(--fr-radius) 0 0;
}

.fr-card h3 {
  font-size: 24px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.fr-card-meta {
  color: var(--fr-muted);
  font-size: 14px;
  letter-spacing: 0.02em;
}

.fr-link {
  color: var(--fr-olive) !important;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Split location panel */
.fr-panel-soft {
  background: var(--fr-cream);
  border-radius: var(--fr-radius);
  padding: clamp(34px, 5vw, 72px);
}

.fr-section-kicker {
  color: var(--fr-olive);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* Footer benefit strip */
.fr-benefit-strip {
  background: linear-gradient(135deg, var(--fr-olive), var(--fr-olive-dark));
  color: #fff;
  padding: 28px 0;
}

.fr-benefit-strip p,
.fr-benefit-strip h4,
.fr-benefit-strip .et_pb_text_inner {
  color: #fff !important;
}

/* Forms */
.et_pb_contact_form input,
.et_pb_contact_form textarea,
.et_pb_newsletter_field input {
  border: 1px solid var(--fr-border) !important;
  background: #fff !important;
  border-radius: 10px !important;
  padding: 16px !important;
}

/* Mobile */
@media (max-width: 980px) {
  .fr-hero { min-height: auto; padding: 80px 0; }
  .fr-feature-bar { margin-top: 0; }
  .fr-feature-item { border-right: 0; border-bottom: 1px solid var(--fr-border); padding: 18px 0; }
  .fr-feature-item:last-child { border-bottom: 0; }
}
