/*
Theme Name: Nina & Björn Boho
Theme URI: https://example.com/
Author: OpenAI
Description: Boho Wedding Theme for Nina & Björn
Version: 2.0.0
Text Domain: nina-bjoern-boho
*/

:root{
  --bg:#ece8e0;
  --paper:#f7f4ed;
  --paper-2:#fbf9f4;
  --sage:#8e9c86;
  --sage-dark:#6f7b67;
  --olive:#75836d;
  --dust:#d6cdbf;
  --rose:#c8a59e;
  --ink:#44423d;
  --muted:#6c6b67;
  --line:#dfd7cb;
  --white:#fffdf9;
  --shadow:0 18px 48px rgba(77,72,61,.12);
  --radius:24px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at top right,#f6f3ec 0,#ece7df 45%,#e7e1d8 100%);color:var(--ink);font-family:var(--sans);line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
img{max-width:100%;display:block}
.skip-link{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:20px;top:20px;width:auto;height:auto;background:#fff;padding:10px 12px;z-index:9999}

.site-shell{padding:32px 18px 44px}
.site-frame{max-width:1200px;margin:0 auto;background:var(--paper);border-radius:28px;box-shadow:var(--shadow);overflow:hidden;position:relative}
.site-frame::before,
.site-frame::after{content:"";position:absolute;width:150px;height:150px;pointer-events:none;opacity:.55;background-repeat:no-repeat;background-size:contain}
.site-frame::before{left:20px;top:18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23b9b1a2' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M109 18c-19 0-28 12-31 31-4-13-13-25-33-26 12 10 20 19 24 33-9-7-20-10-35-10 16 10 28 19 32 41 4-14 9-22 21-29 4 10 12 18 23 23-8-11-11-22-9-36 5-12 11-20 23-27-7 0-11 0-15 0z'/%3E%3C/g%3E%3C/svg%3E")}
.site-frame::after{right:20px;top:18px;transform:scaleX(-1);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23b9b1a2' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M109 18c-19 0-28 12-31 31-4-13-13-25-33-26 12 10 20 19 24 33-9-7-20-10-35-10 16 10 28 19 32 41 4-14 9-22 21-29 4 10 12 18 23 23-8-11-11-22-9-36 5-12 11-20 23-27-7 0-11 0-15 0z'/%3E%3C/g%3E%3C/svg%3E")}

.site-header{padding:18px 28px;border-bottom:1px solid #ece6da;background:rgba(250,248,243,.9);backdrop-filter:blur(4px)}
.site-header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:48px}
.brand-mark{display:flex;align-items:center;gap:10px;min-width:220px}
.brand-floral{color:#b0ab9d;font-size:1.15rem}
.brand-text{font-family:var(--serif);font-size:1.25rem;letter-spacing:.02em}
.brand-text span{font-style:italic;color:var(--rose)}
.nav{display:flex;align-items:center;justify-content:center;gap:28px;flex:1}
.nav a{text-decoration:none;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:#67645d}
.nav a:hover{color:var(--sage-dark)}
.nav-toggle{display:none;border:0;background:transparent;padding:8px;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:#5d5a54;margin:4px 0}

.hero{display:grid;grid-template-columns:1fr 1.18fr;min-height:520px}
.hero-copy{background:linear-gradient(180deg,#f8f6f1,#f3eee6);display:flex;align-items:center;justify-content:center;position:relative}
.hero-copy::before{content:"";position:absolute;left:32px;bottom:28px;width:110px;height:160px;opacity:.35;background-repeat:no-repeat;background-size:contain;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 150'%3E%3Cg fill='none' stroke='%23b7aea0' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M18 148c2-34 3-57 0-78M16 70c11-10 16-19 15-34M16 92c9-4 19-2 29 6M16 114c12-2 20 3 26 12M30 39c-10-14-12-25-8-35 9 8 12 20 8 35zM45 108c3-20 5-40 4-61M44 47c8-8 12-17 11-29M44 70c10-5 17-4 25 3M44 91c11-2 20 2 28 11M44 114c10 0 18 5 25 15M54 17c-7-10-9-14-8-17 5 5 8 10 8 17z'/%3E%3C/g%3E%3C/svg%3E")}
.hero-copy-inner{width:min(88%,380px);text-align:center;position:relative;z-index:1}
.hero-crest{width:84px;height:84px;border:1px solid #d8d0c3;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px;color:#a6a08f;font-size:1.5rem}
.hero h1{margin:0;font-family:var(--serif);font-size:clamp(3rem,4vw,4.4rem);font-weight:400;line-height:1.02;letter-spacing:-.03em}
.hero-divider{width:120px;height:1px;background:#d8cdbd;margin:18px auto}
.hero-subtitle{margin:0;font-family:var(--serif);font-size:1.45rem;font-style:italic;color:#756f64}
.hero-meta{margin:18px 0 8px;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:#8a8478}
.hero-note{margin:0 auto 26px;max-width:320px;color:var(--muted)}
.button-primary,.button-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 22px;border-radius:999px;text-decoration:none;font-size:.84rem;letter-spacing:.08em;text-transform:uppercase;transition:all .2s ease}
.button-primary{background:var(--sage);color:#fff;border:1px solid var(--sage)}
.button-primary:hover{background:var(--sage-dark);border-color:var(--sage-dark)}
.button-secondary{border:1px solid #d0c8bb;background:transparent;color:#4d4b45}
.button-secondary:hover{background:#f3eee6}
.submit-button{width:100%}
.hero-image{position:relative;min-height:420px;background:
  linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.14)),
  radial-gradient(circle at 62% 22%, rgba(255,245,220,.7), transparent 20%),
  linear-gradient(135deg,#b8b09f 0%,#8c947b 30%,#dde0d8 50%,#9e8f7f 100%)}
.hero-image::before{content:"";position:absolute;inset:0;background:
  radial-gradient(circle at 50% 55%, rgba(255,255,255,.34) 0, rgba(255,255,255,0) 34%),
  linear-gradient(transparent 73%, rgba(112,135,108,.33) 73%, rgba(112,135,108,.33) 100%)}
.hero-image::after{content:"";position:absolute;left:22%;right:22%;bottom:19%;height:48%;border:10px solid rgba(243,236,227,.8);border-bottom:none;border-radius:180px 180px 0 0;box-shadow:0 0 0 5px rgba(129,152,121,.35) inset}
.hero-image-overlay{position:absolute;inset:auto 18px 18px auto;background:rgba(255,252,247,.88);padding:8px 12px;border-radius:99px;font-size:.75rem;letter-spacing:.06em;color:#6a675f}

.feature-nav{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f7f5f0}
.feature-card{padding:30px 18px 26px;text-align:center;text-decoration:none;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;min-height:140px}
.feature-card:last-child{border-right:none}
.feature-card strong{font-family:var(--serif);font-size:1.3rem;font-weight:400}
.feature-card:hover{background:#fbfaf6}
.feature-card-accent strong,.feature-card-accent .feature-icon{color:var(--rose)}
.feature-icon{font-size:1.7rem;color:#929183}

.content-section,.countdown-panel{padding:78px 38px}
.sage-section{background:var(--sage);color:#fff}
.section-heading{margin-bottom:28px}
.section-heading.centered{text-align:center}
.section-kicker{margin:0 0 8px;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:#948e82}
.sage-section .section-kicker,.light .section-kicker{color:#eef1ec}
.section-heading h2{margin:0;font-family:var(--serif);font-size:clamp(2.25rem,4vw,3.6rem);font-weight:400;line-height:1.05}
.section-ornament{margin-top:10px;font-size:1.3rem;color:#b7b2a8}
.sage-section .section-ornament,.light .section-ornament{color:#e8ece6}
.centered .section-ornament{display:flex;justify-content:center}

.countdown{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin-top:34px}
.countdown>div{min-width:110px;text-align:center}
.countdown strong{display:block;font-family:var(--serif);font-size:clamp(2.8rem,5vw,4.8rem);font-weight:400;line-height:1}
.countdown span{display:block;margin-top:6px;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem}
.countdown-finished{text-align:center;margin-top:18px}

.schedule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.schedule-card{background:var(--paper-2);border:1px solid var(--line);padding:28px 24px;min-height:220px}
.schedule-card .time{display:block;margin-bottom:14px;color:var(--sage-dark);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase}
.schedule-card h3{margin:0 0 10px;font-family:var(--serif);font-size:1.6rem;font-weight:400}
.schedule-card p{margin:0;color:var(--muted)}

.two-column{display:grid;grid-template-columns:1.02fr .98fr;gap:34px;align-items:stretch}
.image-panel{border-radius:22px;overflow:hidden;min-height:390px;position:relative;background:linear-gradient(140deg,#d8d4c9,#c1c7b5 45%,#a28e7b 100%)}
.venue-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 65% 24%, rgba(255,240,213,.72), transparent 20%),linear-gradient(transparent 68%, rgba(91,117,85,.42) 68%, rgba(91,117,85,.42) 100%)}
.venue-panel::after{content:"";position:absolute;left:27%;right:27%;bottom:18%;height:46%;border:8px solid rgba(246,240,233,.86);border-bottom:none;border-radius:160px 160px 0 0;box-shadow:0 0 0 4px rgba(113,136,104,.4) inset}
.image-panel-overlay{position:absolute;left:18px;bottom:18px;padding:9px 12px;background:rgba(255,251,245,.87);border-radius:999px;font-size:.74rem;color:#65625b}
.text-panel{padding:12px 6px}
.text-panel p{color:var(--muted);margin:0 0 16px}

.travel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.info-box,.registry-card,.rsvp-panel{background:var(--paper-2);border:1px solid var(--line);border-radius:20px}
.info-box{padding:28px}
.info-box h3{margin:0 0 12px;font-family:var(--serif);font-size:1.65rem;font-weight:400}
.info-box p,.registry-card p,.rsvp-copy p{margin:0;color:var(--muted)}
.registry-card{padding:32px;max-width:760px;margin:0 auto;text-align:center}
.registry-card .muted{margin-top:10px}

.rsvp-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:28px;align-items:start}
.rsvp-copy{padding:10px 8px 0 4px}
.rsvp-panel{padding:30px;background:#fcfaf6}
.rsvp-panel h3{margin:0 0 4px;font-family:var(--serif);font-size:1.8rem;font-weight:400}
.form-note{margin:0 0 18px;font-size:.82rem;color:var(--muted)}
.form-field{margin-bottom:18px}
.form-field>label,.form-field legend{display:block;font-size:.84rem;font-weight:600;margin-bottom:8px;color:#55524d}
.form-field input:not([type=radio]),.form-field select,.form-field textarea{width:100%;padding:12px 13px;border:1px solid #d8d2c7;border-radius:12px;background:#fffdf9;font-family:var(--sans);font-size:.95rem;color:var(--ink);outline:none}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--sage-dark);box-shadow:0 0 0 3px rgba(142,156,134,.12)}
.form-field textarea{min-height:76px;resize:vertical}
.attendance{padding:0;border:0;margin:0 0 18px}
.choice{display:flex;align-items:flex-start;gap:10px;margin:8px 0;cursor:pointer;color:#5e5a53}
.choice input,.privacy-check input{accent-color:var(--sage-dark)}
.privacy-check{display:flex;align-items:flex-start;gap:10px;font-size:.78rem;color:var(--muted);margin:8px 0 20px;cursor:pointer}
.privacy-check input{margin-top:3px}
.honey{position:absolute;left:-9999px}
.form-feedback{padding:12px 14px;background:#e4eee0;color:#365133;border-radius:12px;margin-bottom:16px}
.form-feedback.error{background:#f7e8df;color:#844230}
.privacy-note{margin:14px 0 0;font-size:.75rem;color:var(--muted)}

.site-footer{padding:56px 24px;text-align:center;background:#f3eee6;border-top:1px solid var(--line)}
.footer-monogram{margin:0 0 4px;font-family:var(--serif);font-size:1.2rem;letter-spacing:.22em;color:#8d887d}
.site-footer h2{margin:0;font-family:var(--serif);font-size:2.2rem;font-weight:400}
.site-footer>p{margin:8px 0 0;color:var(--muted)}
.footer-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:20px 0 16px}
.footer-links a{text-decoration:none;font-size:.86rem}
.footer-links a:hover{text-decoration:underline}
.site-footer small{display:block;max-width:680px;margin:0 auto;color:#8d877c;font-size:.76rem;line-height:1.6}

.nb-page{max-width:900px;padding:120px 28px 80px;margin:auto;min-height:65vh}
.nb-page h1{font-family:var(--serif);font-size:3rem;font-weight:400;margin-top:0}
.nb-page p{line-height:1.8}
.screen-reader-text{position:absolute;left:-10000px}

@media (max-width: 980px){
  .hero{grid-template-columns:1fr}
  .hero-copy{order:2;padding:24px 0}
  .hero-image{min-height:360px}
  .feature-nav{grid-template-columns:repeat(3,1fr)}
  .schedule-grid{grid-template-columns:repeat(2,1fr)}
  .two-column,.rsvp-layout{grid-template-columns:1fr}
  .travel-grid{grid-template-columns:1fr}
}

@media (max-width: 760px){
  .site-shell{padding:14px 10px 28px}
  .site-frame{border-radius:20px}
  .site-frame::before,.site-frame::after{width:88px;height:88px}
  .site-header{padding:12px 16px}
  .brand-mark{min-width:auto}
  .brand-text{font-size:1.05rem}
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:72px;background:#faf7f2;border-top:1px solid var(--line);padding:10px 18px 18px;flex-direction:column;align-items:flex-start;gap:0;z-index:20}
  .nav.open{display:flex}
  .nav a{display:block;width:100%;padding:12px 0;font-size:.83rem}
  .hero h1{font-size:3rem}
  .feature-nav{grid-template-columns:1fr 1fr}
  .feature-card{min-height:110px}
  .content-section,.countdown-panel{padding:54px 18px}
  .schedule-grid{grid-template-columns:1fr}
  .countdown{gap:16px}
  .countdown>div{min-width:72px}
  .countdown strong{font-size:2.4rem}
  .rsvp-panel{padding:22px}
  .image-panel{min-height:290px}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
}

/* Hochzeitsbilder: bewusst nach den bisherigen Theme-Regeln eingefügt */
.hero-image{background:#b7b49e url("assets/trauung-garten.jpg") center center / cover no-repeat!important}
.hero-image::before,.hero-image::after{display:none!important}
.hero-image-overlay{background:rgba(255,252,247,.86);max-width:calc(100% - 36px)}
.venue-panel{background:#b9a58d url("assets/landhaus-innen.jpg") center center / cover no-repeat!important}
.venue-panel::before,.venue-panel::after{display:none!important}

/* Bildergalerie und Gästefelder */
.wedding-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.wedding-gallery figure{margin:0;background:#f5efe6;border-radius:16px;overflow:hidden;box-shadow:0 8px 25px rgba(60,50,36,.09)}
.wedding-gallery img{width:100%;height:260px;object-fit:cover;display:block}
.wedding-gallery figcaption{padding:14px 18px;text-align:center;color:#655d50}
.child-age-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.child-age-inputs label{display:flex;flex-direction:column;gap:5px}
.child-age-inputs input{width:100%;padding:12px;border:1px solid #d5cbbb;border-radius:8px}
@media(max-width:760px){.wedding-gallery{grid-template-columns:1fr}.wedding-gallery img{height:240px}.child-age-inputs{grid-template-columns:1fr}}

/* Dynamische Angaben fuer einzelne Hochzeitsgaeste */
.person-fields{display:grid;gap:18px;margin:22px 0}
.person-card{min-width:0;padding:20px;border:1px solid #d8cbb6;border-radius:16px;background:#fbf8f2}
.person-card legend{padding:0 10px;font-weight:700;color:#58634c}
.person-card .form-field{margin:12px 0}
.person-card input,.person-card select{width:100%;max-width:100%;box-sizing:border-box}
