* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    background: #ffffff;
    color: #111;
    font-family: "Cormorant Garamond", serif;
    line-height: 1.8;
    font-size:16px;
}

.wrapper {
    max-width: 700px;
    margin: 0 auto;
    padding: 5%;
    text-align: center;
}

.hero {
    position: relative;
    text-align: center;
    padding: 10%;
}

.hero h1 {
    font-family: "Parisienne", cursive;
    font-size: 3.2rem;
    letter-spacing: 2px;
    position: relative;
    z-index: 2;
    color:#a88e05;
    font-weight:300;
}

/* Cvijet osnovno */
.flower {
    position: absolute;
    width: 150px;
    opacity: 0.15; /* lagano, elegantno */
    z-index: 1;
}

/* Lijevo */
.flower-left {
    left: -60px;
    top: 50%;
    transform: translateY(-50%) rotate(-8deg);
}

/* Desno (zrcaljeno) */
.flower-right {
    right: -60px;
    top: 50%;
    transform: translateY(-50%) scaleX(-1) rotate(-8deg);
}


/* Typography */

h2{
    color:#a88e05;
    font-family:'Cormorant Garamond', serif;
}

.subtitle {
    margin-top: 15px;
    font-size: 1rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color:#000;
}

.date {
    margin-top: 20px;
    font-size: 1.5rem;
}

.location {
    margin-top: 5px;
    font-size: 1.5rem;
    letter-spacing: 2px;
}

/* Divider */

.heart-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 1em auto;
    max-width: 320px;
}

.heart-divider .line {
    flex: 1;
    height: 0.05em;
    background: #000;
    opacity:0.15;
}

.heart-divider .heart {
    font-size: 14px;     
    color: #a88e05 !important;
    transform: translateY(-1px); 
}

.schedule {
    padding: 0 5%;
    font-family: 'Cormorant Garamond', serif;
}

/* Datum s linijama */

.date-title {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 80px;
}

.date-title h2 {
    font-size: 2.5rem;
    font-style: italic;
    color: #000;
    margin: 0 20px;
}

.date-title .line {
    height: 1px;
    width: 120px;
    background: #000;
}

/* Timeline */

.timeline {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
}

/* Vertikalna linija */
.timeline::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    width: 1px;
    height: 100%;
    background: #b1b1b1;
    transform: translateX(-50%);
}


/* Stavke */

.title-timeline h2{
    color:#a88e05;
    font-size:3em;
}

.timeline-item {
    display: grid;
    grid-template-columns: 1fr 40px 1fr;
    align-items: center;
    margin-bottom: 70px;
    position: relative;
}

.time {
    text-align: right;
    font-size: 1.4rem;
    color: #000;
    padding-right: 20px;
}

.dot {
    width: 10px;
    height: 10px;
    background: #a88e05;
    border-radius: 50%;
    margin: 0 auto;
}

.content {
    padding-left: 20px;
}

.content h3 {
    font-size: 1.5rem;
    margin-bottom: 5px;
    color:#a88e05;
}

.content p {
    font-size: 1rem;
    color: #444;
}

/* FAQ */
.faq {
    margin-top: 60px;
    text-align: left;
}

.faq h2 {
    text-align: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.8rem;
    margin-bottom: 30px;
}

.faq-item {
    margin-bottom: 20px;
    cursor: pointer;
    border: 1px solid #a88e05;
    padding: 2%;
    background-color: #fbfbfb;
    border-radius: 10px;
    position: relative;
    overflow: hidden; /* za glatku animaciju visine */
    transition: background-color 0.3s;
}

.faq-question {
    font-weight: 400;
    position: relative;
    padding-right: 30px; /* prostor za strelicu */
}

/* Strelica */
.faq-question::after {
    content: "";
    position: absolute;
    right: 15px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-right: 2px solid #a88e05;
    border-bottom: 2px solid #a88e05;
    transform: translateY(-50%) rotate(45deg); 
    transition: transform 0.3s;
}

/* Rotacija strelice kada je otvoreno */
.faq-question.active::after {
    transform: translateY(-50%) rotate(-135deg); 
}

/* Odgovor - animirano otvaranje */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.4s ease;
    font-size: 0.9rem;
    margin-top: 0;
    color: #444;
    padding: 0 0;
}

/* Kada je otvoreno */
.faq-answer.open {
    padding: 5px 0;
    margin-top: 5px;
}
/*rsvp*/

.rsvp{
    padding:5%;
}

.rsvp a{
    text-decoration:none;
    color:#000;
    
}
.btn-class {
    padding: 10px 30px;
    background: transparent;
    border: 1px solid #a88e05;
    cursor: pointer;
    letter-spacing: 2px;
    transition: all .5s ease;
    font-size:1em;
    font-family: "Cormorant Garamond", serif;
}

.btn-class:hover {
    background: #a88e05;
    color: white;
}


/* Mobile prilagodba */
@media(max-width: 768px){
    .flower {
        width: 200px;
        opacity: 0.12;
    }

    .flower-left {
        left: -80px;
    }

    .flower-right {
        right: -80px;
    }

    .hero h1 {
        font-size: 2.2rem;
    }

    .hero{
        overflow:hidden;
    }
}

@media(max-width: 600px){
    h1 {
        font-size: 2.2rem;
    }
}


/* RSVP PAGE */

/* RSVP page spacing */
.rsvp-page { padding-top: 40px; padding-bottom: 80px; }

/* Headline RSVP */
.rsvp-headline{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 22px;
  margin: 10px auto 20px;
  max-width: 520px;
}
.rsvp-headline .line{
  flex:1;
  height: 1px;
  background: #000;
  opacity: .18;
}
.rsvp-headline h1{
  font-family: "Cormorant Garamond", serif; 
  font-weight: 300;
  font-size: 4rem;
  color: #000;
  line-height: 1;
}

.rsvp-subtitle{
  text-align:center;
  margin-top: 6px;
  color: #a88e05;
  font-family: "Parisienne", cursive;
  font-size: 2em;
}
.rsvp-meta{
  text-align:center;
  margin-top: 6px;
  color: #000;
  opacity: .9;
  font-family: "Cormorant Garamond", serif;
  font-size: 1.5rem;
}

/* Card */
.rsvp-card{
  margin: 40px auto 0;
  background: #fff;
  border-radius: 12px;
  padding: 40px 38px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
  text-align:left;
  max-width: 760px;
}
.rsvp-card h2{
  text-align:center;
  margin-bottom: 26px;
  color:#000;
  font-size: 1.5rem;
  font-family:"Cormorant Garamond", serif;
  font-weight: 600;
}

/* Fields */
.field{ margin-bottom: 22px; }
.label{
  display:block;
  font-family:"Cormorant Garamond", serif;
  font-size: 1.15rem;
  margin-bottom: 10px;
  color:#1f3a5b;
}
.req{ color:#a33; }

input[type="text"], textarea{
  width:100%;
  border:1px solid #d7dde6;
  border-radius:10px;
  padding: 16px 16px;
  font-family:"Cormorant Garamond", serif;
  font-size: .95rem;
  outline:none;
  background:#fff;
  transition: border-color .2s ease, box-shadow .2s ease;
}
input[type="text"]:focus, textarea:focus{
  border-color: rgba(31,58,91,.45);
  box-shadow: 0 0 0 4px rgba(31,58,91,.08);
}
textarea{ min-height: 160px; resize: vertical; }

/* Note box (elegantna napomena) */
.note-box{
    background: #f8f6f2;
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 14px;
  }
  
  .note-title{
    font-family: "Cormorant Garamond", serif;
    font-size: 1.05rem;
    color: #7a2e2e;
    margin-bottom: 4px;
  }
  
  .note-text{
    font-family: "Cormorant Garamond", serif;
    font-size: .9rem;
    color: #555;
    line-height: 1.6;
  }

/* Toggle buttons */
.toggle{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  background: #f3f4f6;
  padding: 10px;
  border-radius: 12px;
}
.toggle.small{ grid-template-columns: 1fr 1fr; }

.toggle button{
  width:100%;
  padding: 14px 14px;
  border-radius: 10px;
  border: 1px solid transparent;
  background: transparent;
  letter-spacing: .3px;
  font-family:"Cormorant Garamond", serif;
  font-size: 1.15rem;
  color:#000;
  transition: all .2s ease;
}
.toggle button.active{
  background:#a88e05;
  color:#fff;
  box-shadow: 0 6px 14px rgba(0,0,0,.12);
}

/* Only if YES section */
.only-if-yes{ display:none; }
.only-if-yes.anim{
  animation: sectionIn .25s ease-out both;
}
@keyframes sectionIn{
  from{ opacity:0; transform: translateY(8px); }
  to{ opacity:1; transform: translateY(0); }
}

/* Guests header row */
.row-between{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 12px;
}
.link-btn{
  background:none;
  border:none;
  cursor:pointer;
  font-family:"Cormorant Garamond", serif;
  font-size: 1.1rem;
  color:#a88e05;
  padding: 6px 8px;
  border-radius: 10px;
  transition: background .2s ease;
}
.link-btn:hover{
  background: rgba(122,46,46,.06);
}

.muted-italic{
  font-style: italic;
  opacity: .65;
  margin-top: 6px;
}

/* Guest cards + animation */
.guest-list{
  margin-top: 12px;
  display:flex;
  flex-direction:column;
  gap: 12px;
}

.guest-card{
  border: 1px solid rgba(0,0,0,.08);
  background:#fff;
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.05);
  display:flex;
  align-items:center;
  gap: 10px;

  opacity:0;
  transform: translateY(10px);
  animation: guestIn .28s ease-out forwards;
}

.guest-card input{
  flex:1;
  border:1px solid #d7dde6;
  border-radius:10px;
  padding: 12px 12px;
  font-family: "Cormorant Garamond", serif;
  font-size: .95rem;
  outline:none;
}

.guest-card .remove-guest{
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.08);
  background:#f5f5f5;
  cursor:pointer;
  font-size: 18px;
  line-height: 1;
  transition: transform .15s ease, background .2s ease;
}
.guest-card .remove-guest:hover{
  background:#eee;
  transform: scale(1.03);
}

.guest-card.is-invalid input{
  border-color: rgba(163,51,51,.55);
  box-shadow: 0 0 0 4px rgba(163,51,51,.08);
}

.guest-card.removing{
  animation: guestOut .22s ease-in forwards;
}

@keyframes guestIn{
  to{ opacity:1; transform: translateY(0); }
}
@keyframes guestOut{
  to{
    opacity:0;
    transform: translateY(-8px);
    height:0;
    padding-top:0;
    padding-bottom:0;
    margin:0;
    border-width:0;
  }
}

/* Actions */
.actions{
  display:flex;
  gap: 12px;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  margin-top: 18px;
}

.btn-submit{
  border: 1px solid #a88e05;
  background:#a88e05;
  color:#fff;
  padding: 10px 30px;
  cursor:pointer;
  letter-spacing: 1px;
  transition: all .5s ease;
  font-family: "Cormorant Garamond", serif;
  font-size:1em;
}

.btn-submit:hover{
    background:#fff;
    color:#000;
}

.btn-back{
  border: 1px solid rgba(0,0,0,.18);
  background: transparent;
  color:#333;
  padding: 12px 18px;
  border-radius: 10px;
  cursor:pointer;
  font-family: "Cormorant Garamond", serif;
  text-decoration:none;
  display:inline-block;
}


/* Messages */
.status{
  margin-top: 14px;
  font-family: "Cormorant Garamond", serif;
  font-size: .95rem;
  color:#2d6a4f;
  display:none;
}
.error{
  margin-top: 10px;
  font-size: .95rem;
  color:#a33;
  display:none;
}

/* Responsive */
@media (max-width: 700px){
  .rsvp-headline h1{ font-size: 3.2rem; }
  .rsvp-card{ padding: 28px 18px; }
}