/* =====================================
   Ejova Design – main.css
   - CSP-sicher (keine Inline-Styles nötig)
   - Self-hosted Script-Font (Great Vibes)
   ===================================== */

/* === Script-Font (self-hosted) ===
   Lege die Datei unter:
   /assets/fonts/GreatVibes-Regular.woff2
*/
@font-face {
  font-family: "Great Vibes";
  src: url("/assets/fonts/GreatVibes-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  /* Optional: nur lateinischer Bereich laden
     unicode-range: U+0000-00FF, U+0100-017F, U+0180-024F; */
}

/* === Design Tokens === */
:root { --brand:#C3002F; --bg:#f7f1ec; --ink:#2b2b2b; --gold:#E5A86C; --border:#e8e8e8; }

/* === Normalize / Base === */
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: Georgia, "Times New Roman", Times, serif;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.scriptish {
  font-family: "Great Vibes", "Apple Chancery", "URW Chancery L", cursive;
  font-weight: 400;
  letter-spacing: .1px;
  line-height: 1.2;
}

.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

/* === Header === */
.site-header {
  padding: 40px 0 10px;
  text-align: center;
  background: #fff;
  border-bottom: 3px solid var(--brand);
}
.brand-logo { max-width: 220px; height: auto; display: block; margin: 0 auto 10px; }
.main-nav { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; margin-top: 10px; }
.main-nav a {
  color: var(--ink);
  text-decoration: none;
  font-weight: 700;
  border: 2px solid transparent;
  padding: 6px 12px;
  border-radius: 999px;
  transition: .25s;
}
.main-nav a:hover { border-color: var(--brand); color: var(--brand); }

/* === Hero === */
.hero { padding: 60px 0 30px; text-align: center; }
.hero h1 {
  font-size: clamp(32px, 4.5vw, 56px);
  margin: 0 0 6px;
  color: var(--brand);
  font-weight: 700;
  letter-spacing: .2px;
}
.accent { font-size: clamp(20px, 2.6vw, 28px); color: #8A001F; }

/* Contact chips */
.contact-bar { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 12px; }
.contact-bar--spaced { margin-top: 14px; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--brand);
  color: #fff;
  border-radius: 999px;
  padding: 10px 16px;
  text-decoration: none;
  font-weight: 700;
  transition: .25s;
}
.chip.secondary { background: #222; }
.chip:hover { filter: brightness(.95); }
.chip--ig { background: #8A001F; }

/* === Sections === */
section { padding: 50px 0; }
.section-title {
  font-size: clamp(28px, 3.4vw, 40px);
  color: var(--brand);
  margin: 0 0 18px;
  text-align: center;
}
.lead { max-width: 780px; margin: 0 auto 18px; text-align: center; }

/* === Cards === */
.card {
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 8px 30px rgba(0,0,0,.06);
  padding: 26px;
  border: 1px solid var(--border);
}

/* === Buttons === */
.btn-brand {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--gold);
  color: #fff;
  padding: 12px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  transition: filter .25s;
  border: 0;
  cursor: pointer;
}
.btn-brand:hover { filter: brightness(.95); }
.btn-brand--ml { margin-left: 8px; }
.btn-submit {
  font-size: 16px;
  font-weight: 700;
  color: #FFFFFF;
  background-color: var(--brand);
  border-radius: 999px;
  border-width: 0;
  padding: .9rem 1.4rem;
}
.centered { text-align: center; }
.mt-14 { margin-top: 14px; }

/* === Cookie-Fallback Box === */
.cookie-fallback {
  background: #fff;
  border: 2px dashed var(--brand);
  color: #444;
  padding: 24px;
  border-radius: 16px;
  text-align: center;
  font-size: 1rem;
  max-width: 560px;
  margin: 20px auto;
  box-shadow: 0 4px 20px rgba(0,0,0,.05);
}

/* === Instagram Embed === */
.ig-embed {
  background: #FFF;
  border: 0;
  margin: 0 auto;
  max-width: 540px;
  min-width: 326px;
  padding: 0;
  width: 99%;
}

/* === SIB/Brevo Form === */
.sib-form--bg { background-color: #EFF2F7; text-align: center; }
.sib-container {
  background-color: #fff;
  max-width: 540px;
  border-radius: 18px;
  border: 1px solid #C0CCD9;
  direction: ltr;
  margin: 0 auto;
}
.block { padding: 8px 0; }
.block--heading { padding-top: 8px; }
.heading .heading__title {
  margin: .2rem 0;
  font-size: 32px;
  font-weight: 700;
  color: var(--brand);
  text-align: left;
}
.textblock { font-size: 16px; color: #3C4858; text-align: left; }
.entry__label { font-weight: 700; font-size: 16px; color: #3c4858; }
.entry__error.entry__error--primary {
  font-size: 16px;
  color: #661d1d;
  background-color: #ffeded;
  border-radius: 3px;
  border: 1px solid #ff4949;
}
.entry__specification { font-size: 12px; color: #8390A4; }
.checkbox__text { font-size: 14px; color: #3C4858; }
.submit-row { text-align: left; }

/* Panels */
.panel {
  font-size: 16px;
  text-align: left;
  font-family: Helvetica, Arial, sans-serif;
  border-radius: 3px;
  max-width: 540px;
  margin: 0 auto 8px;
}
.panel--error { color: #661d1d; background-color: #ffeded; border: 1px solid #ff4949; }
.panel--success { color: #085229; background-color: #e7faf0; border: 1px solid #13ce66; }
.panel__icon { font-size: 18px; margin-right: 8px; }

/* === Footer === */
.site-footer {
  padding: 40px 0;
  text-align: center;
  opacity: .9;
  background: #fff;
  margin-top: 40px;
  border-top: 1px solid #ddd;
}
.site-footer nav { margin-top: 12px; }
.site-footer nav a { margin: 0 10px; color: var(--ink); text-decoration: none; font-weight: 500; }
.site-footer nav a:hover { color: var(--brand); }
.footer-actions { margin-top: 12px; }

/* === Noscript === */
.noscript-box {
  padding: 12px;
  margin: 12px auto;
  max-width: 600px;
  background: #fff3cd;
  border: 1px solid #ffeeba;
  border-radius: 8px;
  text-align: center;
}
