@font-face{
  font-family:'FormaDJRBanner';
  src:url('fonts/FormaDJRBanner-Bold.woff2') format('woff2'),
      url('fonts/FormaDJRBanner-Bold.woff') format('woff');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'FormaDJRDisplay';
  src:url('fonts/FormaDJRDisplay-Bold.woff2') format('woff2'),
      url('fonts/FormaDJRDisplay-Bold.woff') format('woff');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'FormaDJRText';
  src:url('fonts/FormaDJRText-Bold.woff2') format('woff2'),
      url('fonts/FormaDJRText-Bold.woff') format('woff');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

:root{
  --bg:#F7EFC7;
  --bg-2:#F1E7B8;
  --paper:#000000;
  --muted:#000000;
  --gold:#4B5D3F;
  --gold-dark:#37432D;
  --rust:#55503F;
  --line: rgba(34,31,27,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  background:var(--bg);
  color:var(--paper);
  font-family:'Inter', sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-wrap:break-word;
}
img,svg{max-width:100%; height:auto; display:block;}
h1,h2,h3,.serif{
  font-family:'FormaDJRDisplay', serif;
  font-weight:700;
  letter-spacing:-0.01em;
}
.hero-title{
  font-family:'FormaDJRBanner', serif;
}
a{color:inherit;}
.wrap{
  max-width:1080px;
  margin:0 auto;
  padding:0 32px;
}
.narrow{max-width:640px;}

/* NAV */
nav{
  position:sticky; top:0; z-index:20;
  background:rgba(247,239,199,0.86);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
nav .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:72px;
}
.logo{
  font-family:'FormaDJRDisplay', serif;
  font-size:1.25rem;
  font-weight:700;
  text-decoration:none;
  color:var(--paper);
}
.logo-accent{font-style:italic; color:var(--gold); margin-left:-0.05em;}
nav ul{
  list-style:none;
  display:flex;
  gap:36px;
}
nav a.navlink{
  text-decoration:none;
  font-size:0.95rem;
  color:var(--paper);
  opacity:0.65;
  transition:opacity 0.2s;
}
nav a.navlink:hover, nav a.navlink.active{opacity:1;}
.nav-cta{
  background:var(--gold);
  color:var(--bg) !important;
  opacity:1 !important;
  padding:10px 20px;
  border-radius:2px;
  font-size:0.9rem;
  font-weight:500;
}
.nav-cta:hover{background:var(--gold-dark);}
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:36px;
  height:36px;
  background:none;
  border:none;
  padding:0;
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  width:100%;
  height:2px;
  background:var(--paper);
  transition:transform 0.2s ease, opacity 0.2s ease;
}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media (max-width:760px){
  .nav-toggle{display:flex;}
  nav ul{
    display:none;
    position:absolute;
    top:72px;
    left:0;
    right:0;
    flex-direction:column;
    gap:0;
    background:var(--bg);
    border-bottom:1px solid var(--line);
    padding:8px 32px 24px;
    max-height:calc(100vh - 72px);
    overflow-y:auto;
  }
  nav ul.is-open{display:flex;}
  nav a.navlink{
    display:block;
    padding:16px 0;
    border-bottom:1px solid var(--line);
    opacity:0.85;
    font-size:1rem;
  }
  nav li:last-child a.navlink{border-bottom:none;}
}

/* HERO (homepage, large) */
.hero{
  padding:120px 0 100px;
  text-align:center;
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(34,31,27,0.05), transparent 70%),
    var(--bg);
}
.hero-label{
  font-size:0.85rem;
  letter-spacing:0.03em;
  color:var(--gold);
  margin-bottom:26px;
}
.hero-title{
  font-weight:500;
  font-size:clamp(2.4rem, 5.5vw, 4.1rem);
  line-height:1.12;
  max-width:840px;
  margin:0 auto;
  color:var(--paper);
}
header.hero.wrap{
  max-width:1320px;
}
.hero:not(.page-header) .hero-title{
  max-width:1180px;
  font-size:clamp(2.6rem, 6.2vw, 5.4rem);
}
.hero-sub{
  max-width:540px;
  margin:32px auto 0;
  font-size:1.05rem;
  color:var(--muted);
}
.hero-actions{
  margin-top:38px;
  display:flex;
  gap:16px;
  justify-content:center;
  flex-wrap:wrap;
}
.hero-quote{
  margin:76px auto 0;
  max-width:480px;
  padding-top:32px;
  border-top:1px solid var(--line);
}
.hero-quote p{
  font-family:'FormaDJRDisplay', serif;
  font-style:italic;
  font-size:1.15rem;
  color:var(--paper);
  line-height:1.5;
}
.hero-quote span{
  display:block;
  margin-top:14px;
  font-size:0.85rem;
  color:var(--muted);
}

/* HERO homepage split layout (text left, photo right) */
.hero.hero-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:center;
  text-align:left;
  padding:100px 0;
}
.hero-split .hero-title{
  margin:0;
  max-width:none;
  font-size:clamp(2.1rem, 4vw, 3.1rem);
}
.hero-split .hero-sub{
  margin:22px 0 0;
  max-width:460px;
}
.hero-emphasis{
  margin:18px auto 0;
  max-width:520px;
  text-align:center;
  font-size:1.05rem;
  font-weight:500;
  color:var(--paper);
}
.hero-split .hero-actions{
  justify-content:flex-start;
  margin-top:34px;
}
.hero-photo{
  width:100%;
  aspect-ratio:4/5;
  border-radius:2px;
  overflow:hidden;
  background:
    linear-gradient(160deg, var(--bg-2), var(--bg));
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
}
.hero-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hero-photo-placeholder{
  font-family:'FormaDJRDisplay', serif;
  font-style:italic;
  font-size:0.95rem;
  color:var(--muted);
}
.founder-photos{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  margin-top:32px;
}
@media (max-width:600px){
  .founder-photos{grid-template-columns:1fr;}
}

/* Wedding hero with full-bleed photo background + liquid-glass text card */
.hero.hero-bgphoto{
  position:relative;
  overflow:hidden;
  padding:150px 0 130px;
  background:var(--bg);
}
.hero.hero-bgphoto::before{
  content:"";
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center 38%;
  filter:grayscale(100%) contrast(1.05);
}
.hero.hero-bgphoto.bg-wedding::before{
  background-image:url('images/hero-hochzeit.jpg');
}
.hero.hero-bgphoto.bg-events::before{
  background-image:url('images/hero-events.jpg');
  filter:contrast(1.05);
}
.hero.hero-bgphoto::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(247,239,199,0.18);
}
.hero.hero-bgphoto .wrap{
  position:relative;
  z-index:1;
  max-width:1320px;
}
.hero.hero-bgphoto .hero-content{
  background:rgba(255,255,255,0.22);
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  border:1px solid rgba(255,255,255,0.4);
  border-radius:32px;
  padding:64px 56px;
  box-shadow:0 24px 70px rgba(20,18,15,0.15), inset 0 1px 0 rgba(255,255,255,0.4);
}
@media (max-width:700px){
  .hero.hero-bgphoto{padding:110px 0 90px;}
  .hero.hero-bgphoto .hero-content{padding:38px 26px; border-radius:22px;}
}
@media (max-width:480px){
  .hero.hero-bgphoto{padding:88px 0 64px;}
  .hero.hero-bgphoto .hero-content{padding:26px 18px; border-radius:16px;}
}
@media (max-width:600px){
  section{padding:64px 0;}
  .hero{padding:80px 0 60px;}
  .page-header{padding:64px 0 48px;}
}
@media (max-width:420px){
  .wrap{padding:0 20px;}
}
@media (max-width:860px){
  .hero.hero-split{grid-template-columns:1fr; text-align:center; padding:80px 0;}
  .hero-split .hero-sub, .hero-emphasis{margin-left:auto; margin-right:auto;}
  .hero-split .hero-actions{justify-content:center;}
  .hero-photo{order:-1; max-width:420px; margin:0 auto 44px; aspect-ratio:4/3;}
}

/* PAGE HEADER (subpages, smaller) */
.page-header{
  padding:90px 0 76px;
  text-align:center;
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(34,31,27,0.05), transparent 70%),
    var(--bg);
}
.page-header .hero-title{
  font-size:clamp(2rem, 4.4vw, 3.2rem);
}

.btn{
  display:inline-block;
  padding:14px 28px;
  border-radius:2px;
  text-decoration:none;
  font-size:0.95rem;
  font-weight:500;
  border:1px solid var(--gold);
  transition:all 0.2s;
  color:var(--gold);
}
.btn-primary{
  background:var(--gold);
  border-color:var(--gold);
  color:var(--bg);
}
.btn-primary:hover{background:var(--gold-dark); border-color:var(--gold-dark);}
.btn-ghost{background:transparent;}
.btn-ghost:hover{background:rgba(34,31,27,0.06);}

/* SECTION shared */
section{padding:100px 0; border-top:1px solid var(--line);}
.alt{background:var(--bg-2);}
.section-head{
  max-width:640px;
  margin-bottom:56px;
}
.section-head h2{
  font-size:clamp(1.7rem, 3vw, 2.3rem);
  margin-bottom:18px;
  color:var(--paper);
  text-transform:uppercase;
  letter-spacing:0.03em;
}
.section-head p{
  color:var(--muted);
  font-size:1.05rem;
}

/* KONZEPT two-column */
.konzept-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:start;
}
.konzept-grid p{margin-bottom:18px; color:var(--paper); opacity:0.88;}
.konzept-not{
  font-size:1.05rem;
  color:var(--muted);
}
.konzept-not strong{color:var(--gold); font-weight:600;}
@media (max-width:760px){
  .konzept-grid{grid-template-columns:1fr;}
}

/* PAKETE accordion (price list) */
.pakete-layout{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:64px;
  align-items:start;
}
.pakete-intro p{
  color:var(--muted);
  margin-bottom:18px;
  max-width:420px;
}
.pakete-list{
  border-top:1px solid var(--line);
}
.pakete-item{
  border-bottom:1px solid var(--line);
}
.pakete-toggle{
  width:100%;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  background:none;
  border:none;
  padding:28px 0;
  cursor:pointer;
  text-align:left;
  font-family:'FormaDJRDisplay', serif;
  font-size:1.3rem;
  font-weight:500;
  color:var(--paper);
}
.pakete-toggle .pakete-price{
  font-family:'Inter', sans-serif;
  font-size:0.9rem;
  font-weight:400;
  color:var(--muted);
  margin-left:12px;
}
.pakete-icon{
  font-family:'Inter', sans-serif;
  font-size:1.4rem;
  line-height:1;
  color:var(--gold);
  flex-shrink:0;
}
.pakete-body{
  display:none;
}
.pakete-item.is-open .pakete-body{
  display:block;
  min-height:240px;
  padding-bottom:28px;
}
.pakete-body p{
  color:var(--muted);
  max-width:560px;
  margin-bottom:16px;
}
.pakete-body p:last-child{margin-bottom:0;}
.pakete-cta{
  grid-column:1 / -1;
  margin-top:44px;
  text-align:center;
}
.pakete-intro .pakete-cta{
  grid-column:auto;
  margin-top:32px;
  text-align:left;
}
@media (max-width:800px){
  .pakete-layout{grid-template-columns:1fr; gap:36px;}
  .pakete-item.is-open .pakete-body{min-height:auto;}
}
@media (max-width:480px){
  .pakete-toggle{font-size:1.15rem;}
  .faq-toggle{font-size:1.02rem;}
}

/* WARUM */
.warum-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:48px;
}
.warum-item h3{
  font-size:1.15rem;
  margin-bottom:12px;
  min-height:3.3em;
  color:var(--paper);
}
.warum-item p{
  color:var(--muted);
  font-size:0.98rem;
}
@media (max-width:760px){
  .warum-grid{grid-template-columns:1fr; gap:36px;}
}

/* WARUM split (big stacked title left, list right) */
.warum-split{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:64px;
  align-items:start;
}
.warum-split-title h2{
  font-family:'FormaDJRDisplay', serif;
  font-weight:500;
  font-size:clamp(1.7rem, 3vw, 2.3rem);
  line-height:1.3;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--paper);
}
.warum-split-list{
  display:flex;
  flex-direction:column;
  gap:36px;
}
.warum-split-item h3{
  font-size:1.2rem;
  margin-bottom:10px;
  color:var(--paper);
}
.warum-split-item p{
  color:var(--muted);
  max-width:640px;
}
@media (max-width:800px){
  .warum-split{grid-template-columns:1fr; gap:32px;}
}

/* FAQ accordion */
.faq-list{
  max-width:720px;
  border-top:1px solid var(--line);
}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-toggle{
  width:100%;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  background:none;
  border:none;
  padding:24px 0;
  cursor:pointer;
  text-align:left;
  font-family:'FormaDJRDisplay', serif;
  font-size:1.1rem;
  font-weight:500;
  color:var(--paper);
}
.faq-icon{
  font-family:'Inter', sans-serif;
  font-size:1.3rem;
  line-height:1;
  color:var(--gold);
  flex-shrink:0;
}
.faq-body{display:none;}
.faq-item.is-open .faq-body{
  display:block;
  padding-bottom:24px;
}
.faq-body p{color:var(--muted); max-width:640px;}

/* KONTAKT — the one bold, light moment on the page */
.kontakt{
  background:var(--paper);
  color:var(--bg);
}
.kontakt h2{
  color:var(--bg);
  font-size:clamp(1.8rem, 3.4vw, 2.6rem);
  max-width:600px;
  margin-bottom:24px;
}
.kontakt p{
  color:#EDE8DE;
  max-width:480px;
  margin-bottom:36px;
}
.kontakt-details{
  display:flex;
  gap:48px;
  flex-wrap:wrap;
  margin-top:48px;
  padding-top:32px;
  border-top:1px solid rgba(250,247,242,0.2);
}
.kontakt-details div span{
  display:block;
  font-size:0.85rem;
  color:#C9C2B3;
  margin-bottom:6px;
}
.kontakt-details div a{
  text-decoration:none;
  color:var(--bg);
  font-size:1.05rem;
  font-weight:500;
}
.kontakt .btn-primary{
  background:var(--bg);
  border-color:var(--bg);
  color:var(--paper);
}
.kontakt .btn-primary:hover{background:#EAE3D5; border-color:#EAE3D5;}

footer{
  background:var(--bg);
  color:#766F60;
  font-size:0.85rem;
  padding:28px 0;
  border-top:1px solid var(--line);
}
footer .wrap{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}
footer a{
  color:inherit;
  text-decoration:none;
}
footer a:hover{
  text-decoration:underline;
}

/* KONTAKT FORM (standalone contact page) */
.kontakt-form-layout{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:64px;
  align-items:start;
}
.kontakt-form-single{
  max-width:640px;
  margin:0 auto;
}
.kontakt-form-intro p{
  color:var(--muted);
  margin-bottom:18px;
  max-width:420px;
}
.kontakt-form-intro .kontakt-details{
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:20px;
}
.kontakt-form-intro .kontakt-details div span{
  display:block;
  font-size:0.85rem;
  color:var(--muted);
  margin-bottom:4px;
}
.kontakt-form-intro .kontakt-details div a{
  text-decoration:none;
  color:var(--paper);
  font-size:1.05rem;
  font-weight:500;
}
.kontakt-form{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.form-row{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.form-split-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.kontakt-form label{
  font-size:0.85rem;
  color:var(--muted);
}
.kontakt-form input,
.kontakt-form select,
.kontakt-form textarea{
  font-family:'Inter', sans-serif;
  font-size:1rem;
  color:var(--paper);
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line);
  padding:10px 0;
  outline:none;
  transition:border-color 0.2s;
}
.kontakt-form input:focus,
.kontakt-form select:focus,
.kontakt-form textarea:focus{
  border-color:var(--gold);
}
.kontakt-form textarea{
  resize:vertical;
  min-height:120px;
}
.kontakt-form button[type="submit"]{
  align-self:flex-start;
  margin-top:8px;
  border:none;
  cursor:pointer;
}
.form-note{
  display:none;
  margin-top:8px;
  font-size:0.95rem;
  color:var(--gold);
}
.form-note.is-visible{
  display:block;
}
@media (max-width:800px){
  .kontakt-form-layout{grid-template-columns:1fr; gap:36px;}
  .form-split-row{grid-template-columns:1fr;}
}
