/*
Theme Name:  Hochzeit Pro
Theme URI:
Author:      Hochzeit Pro Theme
Description: Professionelles Hochzeits-Theme mit vollem Customizer
Version:     4.0
License:     GNU General Public License v2 or later
Text Domain: hochzeit-pro
*/

/* ══════════════════════════════════════════════════════════
   RESET & BASIS
   ══════════════════════════════════════════════════════════ */
html, body { margin:0!important; padding:0!important; }
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family: var(--font-body, 'Montserrat', sans-serif);
  background: var(--color-cream, #f5f0e8)!important;
  color: var(--color-text, #2c2416);
  overflow-x: hidden;
  font-size: var(--font-size-base, 16px);
}
h1,h2,h3,h4,p { margin:0; padding:0; }
a { text-decoration:none; }
img { max-width:100%; display:block; }

/* ══════════════════════════════════════════════════════════
   CSS VARIABLEN (werden per PHP überschrieben)
   ══════════════════════════════════════════════════════════ */
:root {
  --color-sage:       #6b7c5c;
  --color-sage-dark:  #4e5d42;
  --color-gold:       #b89b6a;
  --color-gold-light: #d4b97e;
  --color-cream:      #f5f0e8;
  --color-cream-dark: #ede6d8;
  --color-brown:      #3a2e20;
  --color-text:       #2c2416;
  --color-text-light: #6b5e4a;
  --font-display:     'Cormorant Garamond', Georgia, serif;
  --font-body:        'Montserrat', sans-serif;
  --font-size-base:   16px;
}

/* ══════════════════════════════════════════════════════════
   NAVIGATION
   ══════════════════════════════════════════════════════════ */
.hoch-nav {
  position: fixed; top:0; left:0; right:0; z-index:9999;
  display: flex; align-items:center; justify-content:space-between;
  padding: 1rem 3rem;
  background: rgba(245,240,232,0.95)!important;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(184,155,106,0.2);
  transition: padding 0.3s;
}
.admin-bar .hoch-nav { top:32px; }
@media screen and (max-width:782px) { .admin-bar .hoch-nav { top:46px; } }

.hoch-nav.scrolled { padding:0.6rem 3rem; }

.hoch-nav-left, .hoch-nav-right {
  display: flex; gap:2rem; list-style:none; margin:0; padding:0; align-items:center;
}
.hoch-nav-left a, .hoch-nav-right a {
  font-family: var(--font-body); font-size:0.62rem; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color: var(--color-text-light)!important; transition:color 0.2s;
}
.hoch-nav-left a:hover, .hoch-nav-right a:hover,
.hoch-nav-left a.active, .hoch-nav-right a.active { color: var(--color-gold)!important; }

.hoch-nav-logo {
  font-family: var(--font-display); font-size:1.5rem; font-weight:600;
  color: var(--color-brown)!important; text-align:center; line-height:1;
  white-space: nowrap;
}
.hoch-nav-logo-img {
  height: 48px;
  width: auto;
  display: block;
}
.hoch-nav-logo .ornament { display:block; font-size:0.85rem; color:var(--color-gold); font-weight:300; letter-spacing:0.15em; margin-top:2px; }

/* Hamburger Mobile */
.hoch-hamburger {
  display:none; flex-direction:column; gap:5px; cursor:pointer;
  background:none; border:none; padding:4px;
}
.hoch-hamburger span { display:block; width:24px; height:2px; background:var(--color-brown); transition:all 0.3s; }
.hoch-hamburger.open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.hoch-hamburger.open span:nth-child(2) { opacity:0; }
.hoch-hamburger.open span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

.hoch-mobile-menu {
  display:none; position:fixed; top:0; left:0; right:0; bottom:0;
  background:rgba(245,240,232,0.98); z-index:9998;
  flex-direction:column; align-items:center; justify-content:center; gap:2rem;
}
.hoch-mobile-menu.open { display:flex; }
.hoch-mobile-menu a {
  font-family:var(--font-body); font-size:0.75rem; font-weight:500;
  letter-spacing:0.25em; text-transform:uppercase;
  color:var(--color-text-light)!important;
}
.hoch-mobile-menu a:hover { color:var(--color-gold)!important; }

/* ══════════════════════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════════════════════ */
.btn-outline {
  display:inline-block; font-family:var(--font-body); font-size:0.6rem;
  font-weight:600; letter-spacing:0.25em; text-transform:uppercase;
  color:#fff!important; border:1px solid rgba(255,255,255,0.6);
  padding:0.85rem 2rem; transition:background 0.25s; background:transparent;
}
.btn-outline:hover { background:rgba(255,255,255,0.15); border-color:#fff; }

.btn-solid {
  display:inline-block; font-family:var(--font-body); font-size:0.6rem;
  font-weight:600; letter-spacing:0.25em; text-transform:uppercase;
  color:#fff!important; background:var(--color-sage)!important;
  border:1px solid var(--color-sage); padding:0.85rem 2rem; transition:filter 0.2s; cursor:pointer;
}
.btn-solid:hover { filter:brightness(0.9); }

.btn-gold {
  display:inline-flex; align-items:center; gap:0.5rem;
  font-family:var(--font-body); font-size:0.6rem; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--color-brown)!important; background:var(--color-gold-light)!important;
  border:none; padding:0.9rem 2rem; cursor:pointer; transition:filter 0.2s;
}
.btn-gold:hover { filter:brightness(1.08); }

/* ══════════════════════════════════════════════════════════
   SECTION HELPERS
   ══════════════════════════════════════════════════════════ */
.section-label {
  font-family:var(--font-body); font-size:0.62rem; font-weight:500;
  letter-spacing:0.3em; text-transform:uppercase;
  color:var(--color-gold)!important; display:block; margin-bottom:0.4rem;
}
.section-title {
  font-family:var(--font-display); font-size:clamp(1.8rem,4vw,2.6rem);
  font-weight:400; color:var(--color-brown)!important; line-height:1.15;
}
.leaf-divider {
  display:flex; align-items:center; justify-content:center;
  gap:0.5rem; margin:1rem auto; color:var(--color-gold); font-size:1.1rem;
}
.leaf-divider::before, .leaf-divider::after {
  content:''; display:block; width:40px; height:1px;
  background:var(--color-gold); opacity:0.5;
}
.leaf-divider-left { justify-content:center; margin:1rem auto; }
.leaf-divider-left::before { display:block; }

.hoch-section-inner { max-width:860px; margin:0 auto; text-align:center; }

/* ══════════════════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════════════════ */
.hoch-sec-home {
  min-height:100vh; background-color:var(--color-sage)!important;
  background-size:cover!important; background-position:center top!important;
  display:flex; align-items:stretch; position:relative; overflow:hidden;
}
.hoch-sec-home::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(120deg,rgba(40,55,30,0.8) 0%,rgba(40,55,30,0.5) 55%,rgba(40,55,30,0.15) 100%);
}
.hero-content {
  position:relative; z-index:2; max-width:700px;
  display:flex; flex-direction:column; justify-content:space-between;
  height:100%; min-height:100vh;
  padding:9rem 6rem 4rem;
}
.hero-top { margin:0; }
.hero-bottom { margin:0; }.hero-eyebrow { font-size:0.7rem; font-weight:500; letter-spacing:0.3em; text-transform:uppercase; color:var(--color-gold-light)!important; margin-bottom:0.8rem; }
.hero-names { font-family:var(--font-display); font-size:clamp(3.2rem,7vw,5.5rem); font-weight:300; font-style:italic; color:#fff!important; line-height:1.05; margin-bottom:0.3rem; }
.hero-heart { color:var(--color-gold-light)!important; font-size:1rem; display:block; margin:0.6rem 0; }
.hero-heart.hero-heart-img {
  width:22px; height:22px;
  background-color:var(--color-gold-light)!important;
  -webkit-mask-image:var(--heart-icon); mask-image:var(--heart-icon);
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
  -webkit-mask-size:contain; mask-size:contain;
}
.hero-date { font-size:0.75rem; font-weight:400; letter-spacing:0.25em; text-transform:uppercase; color:rgba(255,255,255,0.85)!important; margin-bottom:1.5rem; }

/* Countdown */
.hero-countdown { display:flex; gap:1.5rem; margin-bottom:2.5rem; }
.countdown-item { text-align:center; }
.countdown-num { font-family:var(--font-display); font-size:2.5rem; font-weight:300; color:#fff!important; line-height:1; display:block; }
.countdown-label { font-size:0.55rem; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.6)!important; margin-top:0.2rem; }
.countdown-sep { font-family:var(--font-display); font-size:2rem; color:var(--color-gold-light)!important; align-self:flex-start; padding-top:0.2rem; }

/* ══════════════════════════════════════════════════════════
   GALERIE
   ══════════════════════════════════════════════════════════ */
.hoch-sec-galerie { padding:6rem 3rem; background:var(--color-cream)!important; }
.galerie-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:0.8rem;
  margin-top:2.5rem; max-width:1100px; margin-left:auto; margin-right:auto;
}
.galerie-item {
  position:relative; overflow:hidden; cursor:pointer;
  aspect-ratio:1; background:var(--color-cream-dark);
}
.galerie-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s ease; user-select:none; -webkit-user-drag:none; pointer-events:none; }
.galerie-item:hover img { transform:scale(1.05); }
.galerie-item::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,0); transition:background 0.3s; }
.galerie-item:hover::after { background:rgba(0,0,0,0.15); }

/* Lightbox */
.hoch-lightbox {
  display:none; position:fixed; inset:0; z-index:99999;
  background:rgba(0,0,0,0.92); align-items:center; justify-content:center;
}
.hoch-lightbox.open { display:flex; }
.hoch-lightbox img { max-width:90vw; max-height:85vh; object-fit:contain; user-select:none; -webkit-user-drag:none; pointer-events:none; }
.lightbox-close { position:absolute; top:1.5rem; right:2rem; color:#fff; font-size:2rem; cursor:pointer; background:none; border:none; line-height:1; }
.lightbox-prev, .lightbox-next { position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:1.5rem; cursor:pointer; background:rgba(255,255,255,0.1); border:none; padding:1rem 1.2rem; transition:background 0.2s; }
.lightbox-prev:hover, .lightbox-next:hover { background:rgba(255,255,255,0.2); }
.lightbox-prev { left:1rem; }
.lightbox-next { right:1rem; }

/* ══════════════════════════════════════════════════════════
   STORY
   ══════════════════════════════════════════════════════════ */
.hoch-sec-story { padding:8rem 3rem; background:var(--color-cream)!important; }
.story-body { font-family:var(--font-display); font-size:1.15rem; font-weight:300; font-style:italic; color:var(--color-text-light)!important; line-height:1.9; margin-top:2rem; }

/* ══════════════════════════════════════════════════════════
   ABLAUF
   ══════════════════════════════════════════════════════════ */
.hoch-sec-ablauf { background:var(--color-sage)!important; padding:6rem 3rem; text-align:center; }
.hoch-sec-ablauf .section-title { color:#fff!important; }
.hoch-sec-ablauf .section-label { color:var(--color-gold-light)!important; }
.hoch-sec-ablauf .leaf-divider { color:var(--color-gold-light); }
.hoch-sec-ablauf .leaf-divider::before, .hoch-sec-ablauf .leaf-divider::after { background:var(--color-gold-light); }

.timeline-vertical { display:flex; flex-direction:column; margin-top:3rem; max-width:520px; margin-left:auto; margin-right:auto; }
.tl-item { display:grid; grid-template-columns:56px 1fr; align-items:flex-start; gap:0 1.5rem; position:relative; }
.tl-item:not(:last-child) .tl-line { position:absolute; left:27px; top:56px; width:1px; bottom:0; background:rgba(255,255,255,0.2); }
.tl-icon { width:56px; height:56px; border:1px solid rgba(255,255,255,0.35); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; color:rgba(255,255,255,0.85); background:rgba(255,255,255,0.05); flex-shrink:0; }
.tl-text { padding:0.6rem 0 2.2rem; text-align:left; }
.tl-time { font-size:0.75rem; font-weight:600; letter-spacing:0.1em; color:var(--color-gold-light)!important; margin-bottom:0.2rem; }
.tl-label { font-size:0.65rem; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:#fff!important; margin-bottom:0.25rem; }
.tl-sub { font-size:0.7rem; font-weight:300; color:rgba(255,255,255,0.62)!important; line-height:1.5; }

/* ══════════════════════════════════════════════════════════
   INFORMATIONEN (Akkordeon)
   ══════════════════════════════════════════════════════════ */
.hoch-sec-info { display:grid!important; grid-template-columns:0.7fr 1.3fr; align-items:start; background:var(--color-cream)!important; }
.hoch-sec-info.hoch-sec-info-nophoto { grid-template-columns:1fr; }
.hoch-sec-info.hoch-sec-info-nophoto .info-content { max-width:860px; margin:0 auto; }
.info-photo { background-size:cover!important; background-position:center!important; min-height:380px; position:sticky; top:0; align-self:start; background-color:var(--color-cream-dark); }
.info-content { background:var(--color-cream)!important; padding:6rem 4rem; max-width:680px; }
.info-content .section-label,
.info-content .section-title { text-align:center; }

.info-accordion { margin-top:2rem; border-top:1px solid rgba(184,155,106,0.25); }
.info-acc-item { border-bottom:1px solid rgba(184,155,106,0.25); }
.info-acc-item > summary.info-acc-head {
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:0.9rem;
  padding:1.1rem 0; user-select:none;
}
.info-acc-item > summary.info-acc-head::-webkit-details-marker { display:none; }
.info-icon { font-size:1rem; color:var(--color-gold); min-width:24px; text-align:center; flex-shrink:0; }
.info-item-label { font-size:0.62rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--color-brown)!important; flex:1; }
.info-acc-chevron { font-size:0.7rem; color:var(--color-gold); flex-shrink:0; transition:transform 0.25s ease; }
.info-acc-item[open] > summary .info-acc-chevron { transform:rotate(180deg); }
.info-item-text { font-size:0.78rem; font-weight:300; color:var(--color-text-light)!important; line-height:1.7; padding:0 0 1.4rem 2.85rem; }
.info-item-text a { color:var(--color-gold)!important; }
.info-cta { margin-top:2.5rem; }
@media (max-width:900px) {
  .info-photo { position:static; min-height:260px; }
}

/* ══════════════════════════════════════════════════════════
   ANFAHRT
   ══════════════════════════════════════════════════════════ */
.hoch-sec-anfahrt { padding:6rem 3rem; background:var(--color-cream-dark)!important; }
.anfahrt-routen {
  display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;
  max-width:900px; margin:2.5rem auto 0; padding:0 3rem;
}
.anfahrt-route-item { text-align:center; }
.anfahrt-route-item img {
  width:100%; height:auto; display:block; border-radius:4px;
  border:1px solid var(--color-cream-dark);
}
.anfahrt-route-label {
  margin-top:0.7rem; font-size:0.8rem; font-weight:500;
  letter-spacing:0.05em; color:var(--color-brown)!important;
}
.anfahrt-route-label i { color:var(--color-gold); margin-right:0.4rem; }
.anfahrt-route-text {
  margin-top:0.6rem; font-size:0.85rem; line-height:1.7;
  color:var(--color-text-light)!important; text-align:left;
}
.anfahrt-wrap { display:grid; grid-template-columns:1fr 1.6fr; gap:3rem; align-items:center; max-width:1100px; margin:2.5rem auto 0; }
.anfahrt-info { text-align:left; }
.anfahrt-adresse { font-size:0.9rem; color:var(--color-text-light)!important; line-height:1.8; margin:1rem 0 1.5rem; }
.anfahrt-adresse strong { color:var(--color-brown)!important; font-weight:600; }
.anfahrt-map { border-radius:4px; overflow:hidden; height:380px; }
.anfahrt-map iframe { width:100%; height:100%; border:none; }

/* ══════════════════════════════════════════════════════════
   KONTAKT TRAUZEUG:INNEN
   ══════════════════════════════════════════════════════════ */
.hoch-sec-trauzeugen { padding:6rem 3rem; background:var(--color-sage)!important; text-align:center; }
.hoch-sec-trauzeugen .section-title { color:#fff!important; }
.hoch-sec-trauzeugen .section-label { color:var(--color-gold-light)!important; }
.hoch-sec-trauzeugen .leaf-divider { color:var(--color-gold-light); }
.hoch-sec-trauzeugen .leaf-divider::before, .hoch-sec-trauzeugen .leaf-divider::after { background:var(--color-gold-light); }
.trauz-intro { font-size:0.85rem; font-weight:300; color:rgba(255,255,255,0.8)!important; line-height:1.8; max-width:560px; margin:1.5rem auto 0; }
.trauz-wrap { display:grid; grid-template-columns:1fr 1fr; gap:2rem; max-width:760px; margin:3rem auto 0; }
.trauz-card {
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.25); border-radius:4px;
  padding:2.5rem 2rem; display:flex; flex-direction:column; align-items:center; gap:1.1rem;
}
.trauz-icon {
  width:56px; height:56px; border:1px solid rgba(255,255,255,0.35); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem; color:rgba(255,255,255,0.85); background:rgba(255,255,255,0.05); flex-shrink:0;
}
.trauz-adresse { font-style:normal; display:flex; flex-direction:column; gap:0.35rem; }
.trauz-name { font-family:var(--font-display); font-size:1.25rem; font-weight:600; color:#fff!important; }
.trauz-rolle { font-size:0.62rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:rgba(255,255,255,0.65)!important; }
.trauz-tel { font-size:0.85rem; font-weight:400; color:var(--color-gold-light)!important; text-decoration:none; margin-top:0.3rem; }
.trauz-tel:hover { text-decoration:underline; }
@media (max-width:640px) {
  .trauz-wrap { grid-template-columns:1fr; max-width:400px; }
}

/* ══════════════════════════════════════════════════════════
   GELDGESCHENKE
   ══════════════════════════════════════════════════════════ */
.hoch-sec-geschenke { background:var(--color-sage)!important; padding:6rem 3rem; text-align:center; }
.hoch-sec-geschenke .section-title { color:#fff!important; }
.hoch-sec-geschenke .section-label { color:var(--color-gold-light)!important; }
.hoch-sec-geschenke .leaf-divider { color:var(--color-gold-light); }
.hoch-sec-geschenke .leaf-divider::before, .hoch-sec-geschenke .leaf-divider::after { background:var(--color-gold-light); }

.geschenk-wrap { max-width:640px; margin:2rem auto 0; }
.geschenk-text { font-family:var(--font-display); font-size:1.1rem; font-style:italic; font-weight:300; color:rgba(255,255,255,0.85)!important; line-height:1.8; margin-bottom:2rem; }
.geschenk-iban-box { display:flex; align-items:center; gap:1.2rem; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.22); border-radius:8px; padding:1.2rem 1.5rem; margin-bottom:2rem; text-align:left; }
.geschenk-iban-box i { font-size:1.5rem; color:var(--color-gold-light); flex-shrink:0; }
.geschenk-iban-label { font-size:0.58rem; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--color-gold-light)!important; margin-bottom:0.2rem; }
.geschenk-iban-name { font-size:0.85rem; font-weight:500; color:#fff!important; margin-bottom:0.15rem; }
.geschenk-iban-nr { font-size:0.9rem; font-weight:600; color:#fff!important; font-family:monospace; letter-spacing:0.05em; }

.progress-section { margin-bottom:2rem; }
.progress-kopf { display:flex; justify-content:space-between; align-items:center; margin-bottom:0.6rem; }
.progress-kopf-label { font-size:0.62rem; font-weight:500; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.65)!important; }
.progress-betrag { font-size:0.85rem; font-weight:600; color:var(--color-gold-light)!important; }
.progress-bar { height:10px; background:rgba(255,255,255,0.15); border-radius:999px; overflow:hidden; }
.progress-fill { height:100%; background:var(--color-gold-light)!important; border-radius:999px; transition:width 1.2s ease; min-width:4px; }
.progress-pct { font-size:0.68rem; color:rgba(255,255,255,0.45)!important; margin-top:0.4rem; text-align:right; }

.geschenk-form-wrap { background:rgba(255,255,255,0.08); border-radius:10px; padding:2rem; margin-bottom:1.5rem; text-align:left; }
.geschenk-form-titel { font-family:var(--font-display); font-size:1.2rem; font-weight:400; color:#fff!important; margin-bottom:0.3rem; }
.geschenk-form-hint { font-size:0.73rem; color:rgba(255,255,255,0.55)!important; margin-bottom:1.2rem; line-height:1.6; }
.geschenk-form { display:grid; gap:0.75rem; }
.geschenk-form-row { display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; }
.geschenk-form input, .geschenk-form textarea { width:100%; padding:0.8rem 1rem; font-family:var(--font-body); font-size:0.82rem; background:rgba(255,255,255,0.92)!important; color:var(--color-text); border:none!important; border-radius:3px; outline:none; }
.geschenk-form textarea { min-height:75px; resize:vertical; }
.betrag-wrap { position:relative; }
.betrag-wrap input { padding-right:3rem; }
.betrag-currency { position:absolute; right:0.8rem; top:50%; transform:translateY(-50%); font-size:0.8rem; font-weight:600; color:var(--color-text-light); }
.geschenk-success { background:rgba(255,255,255,0.15); border-radius:8px; padding:1rem 1.5rem; color:#fff!important; font-size:0.85rem; display:flex; align-items:center; gap:0.6rem; margin-bottom:1.5rem; }

.geschenk-liste { text-align:left; margin-top:1.5rem; }
.geschenk-liste-titel { font-family:var(--font-display); font-size:1rem; font-weight:400; color:rgba(255,255,255,0.6)!important; margin-bottom:0.8rem; letter-spacing:0.05em; }
.geschenk-eintrag { display:flex; justify-content:space-between; align-items:center; padding:0.55rem 0; border-bottom:1px solid rgba(255,255,255,0.1); }
.geschenk-gast { font-size:0.82rem; color:rgba(255,255,255,0.82)!important; }
.geschenk-summe { font-size:0.88rem; font-weight:600; color:var(--color-gold-light)!important; }
.geschenk-msg-text { font-size:0.72rem; font-style:italic; color:rgba(255,255,255,0.45)!important; padding:0.25rem 0 0.6rem; }

/* ══════════════════════════════════════════════════════════
   RSVP
   ══════════════════════════════════════════════════════════ */
.hoch-sec-rsvp { background:var(--color-cream-dark)!important; padding:8rem 3rem; text-align:center; }
.rsvp-deadline { font-size:0.8rem; color:var(--color-text-light)!important; margin-top:0.5rem; }
.rsvp-form { max-width:540px; margin:2.5rem auto 0; display:grid; gap:0.85rem; }
.rsvp-form input, .rsvp-form select, .rsvp-form textarea {
  width:100%; padding:1rem 1.2rem; font-family:var(--font-body); font-size:0.82rem;
  color:var(--color-text); background:#fff!important;
  border:1px solid rgba(184,155,106,0.3)!important; outline:none; transition:border-color 0.2s;
}
.rsvp-form input:focus, .rsvp-form select:focus, .rsvp-form textarea:focus { border-color:var(--color-gold)!important; }
.rsvp-form textarea { min-height:90px; resize:vertical; }
.rsvp-form button { cursor:pointer; border:none; width:100%; }
.rsvp-form .rsvp-row { display:grid; grid-template-columns:1fr 1fr; gap:0.85rem; }
.rsvp-teile { text-align:left; background:#fff!important; border:1px solid rgba(184,155,106,0.3)!important; padding:1rem 1.2rem; display:grid; gap:0.6rem; }
.rsvp-teile-label { font-size:0.78rem; font-weight:600; color:var(--color-brown)!important; margin:0 0 0.2rem; }
.rsvp-teile-option { display:flex; align-items:center; gap:0.6rem; font-size:0.82rem; color:var(--color-text)!important; cursor:pointer; }
.rsvp-teile-option input[type="checkbox"] { width:auto; accent-color:var(--color-gold); cursor:pointer; }
.rsvp-success { color:var(--color-sage); font-size:0.9rem; margin-top:1.5rem; display:flex; align-items:center; justify-content:center; gap:0.5rem; }

/* ══════════════════════════════════════════════════════════
   FOOTER / ZITAT
   ══════════════════════════════════════════════════════════ */
footer.hoch-footer { background:var(--color-sage)!important; padding:5rem 3rem; text-align:center; }
.quote-mark { font-family:var(--font-display); font-size:3rem; color:var(--color-gold-light); line-height:0.5; display:block; margin-bottom:1.5rem; }
.quote-text { font-size:0.72rem; font-weight:400; letter-spacing:0.35em; text-transform:uppercase; color:rgba(255,255,255,0.85)!important; line-height:2; }
.quote-sig { font-family:var(--font-display); font-size:1.5rem; font-style:italic; font-weight:300; color:rgba(255,255,255,0.65)!important; margin-top:1.5rem; }
.footer-heart { color:var(--color-gold-light)!important; display:block; margin-top:0.5rem; font-size:1rem; }
.footer-heart.footer-heart-img {
  width:22px; height:22px; margin-left:auto; margin-right:auto;
  background-color:var(--color-gold-light)!important;
  -webkit-mask-image:var(--heart-icon); mask-image:var(--heart-icon);
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
  -webkit-mask-size:contain; mask-size:contain;
}

/* ══════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════ */
@media (max-width:900px) {
  .hoch-nav { padding:0.9rem 1.5rem; }
  .hero-content {
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
  }
  .hero-bottom {
    margin-top:auto;
  }
  .hero-eyebrow { margin-bottom:0.5rem; }
  .hero-names   { margin-bottom:0.2rem; }
  .hero-heart   { margin:0.4rem 0; }
  .hero-date    { margin-bottom:1rem; }
  .hero-countdown { margin-bottom:1.5rem; }
  .hoch-nav-left, .hoch-nav-right { display:none; }
  .hoch-hamburger { display:flex; }
  .hero-content { padding:9rem 2rem 6rem; }
  .hero-countdown { gap:1rem; }
  .countdown-num { font-size:1.8rem; }
  .galerie-grid { grid-template-columns:repeat(2,1fr); }
  .hoch-sec-info { grid-template-columns:1fr!important; }
  .info-photo { min-height:280px; }
  .info-content { padding:4rem 2rem; }
  .anfahrt-wrap { grid-template-columns:1fr; }
  .anfahrt-map { height:280px; }
  .anfahrt-routen { grid-template-columns:1fr; padding:0 1.5rem; gap:1.25rem; }
  .hoch-sec-story, .hoch-sec-galerie, .hoch-sec-ablauf, .hoch-sec-anfahrt, .hoch-sec-rsvp, .hoch-sec-geschenke { padding:5rem 1.5rem; }
}
@media (max-width:600px) {
  .hero-names { font-size:2.6rem; }
  .hero-countdown { gap:0.75rem; }
  .countdown-num { font-size:1.5rem; }
  .galerie-grid { grid-template-columns:repeat(2,1fr); gap:0.4rem; }
  .geschenk-form-row, .rsvp-form .rsvp-row { grid-template-columns:1fr; }
  .anfahrt-info { text-align:center; }
}