:root{
  /* WDPB "dream purple & gold" palette - playful purple + warm gold,
     with bubblegum pink and lavender for a childlike touch */
  --brand-primary: #F0B429;  /* warm gold */
  --brand-accent:  #FF6F91;  /* bubblegum pink */
  --brand-teal:    #2EC4B6;  /* hope teal (sparingly) */
  --brand-dark:    #6B3FA0;  /* playful purple */
  --brand-deep:    #4A2380;  /* deep dream purple */
  --brand-muted:   #6E5A8C;  /* purple slate */
  --brand-light:   #F8F4FF;  /* soft lavender */
  --brand-white:   #FFFFFF;
  --brand-ink:     #2E2440;
}

body{ color: var(--brand-ink); background: var(--brand-white); }
a{ color: #6D28D9; }
a:hover{ color: var(--brand-accent); }

.site-header{
  background: linear-gradient(90deg, var(--brand-deep), var(--brand-dark) 60%, #8A4FBF);
  border-bottom: 4px solid var(--brand-primary);
}
.site-footer{
  background: var(--brand-deep);
  color: var(--brand-white);
}
.site-footer a{ color: var(--brand-primary); }
.site-footer a:hover{ color: var(--brand-accent); }
.site-footer hr{ border-color: rgba(255,255,255,.25); }
.footer-copyright{ color: rgba(255,255,255,.85); }

.btn-accent{
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--brand-deep) !important;
  font-weight: 600;
  border-radius: 999px;
}
.btn-accent:hover{
  background: var(--brand-deep);
  border-color: var(--brand-deep);
  color: var(--brand-primary) !important;
}

/* Hero (static replacement for the old Revolution Slider) */
.hero{
  background:
    radial-gradient(1100px 540px at 12% 8%, rgba(240,180,41,.38), transparent),
    radial-gradient(900px 480px at 88% 18%, rgba(255,111,145,.25), transparent),
    radial-gradient(800px 520px at 50% 100%, rgba(138,79,191,.45), transparent),
    linear-gradient(135deg, var(--brand-dark), var(--brand-deep));
  color: var(--brand-white);
}
.hero h1{ color: var(--brand-primary); }
.hero .lead{ color: rgba(255,255,255,.92); }

.skip-link{
  position:absolute; left:-999px; top:auto; width:1px;height:1px; overflow:hidden;
}
.skip-link:focus{
  left:1rem; top:1rem; width:auto; height:auto;
  padding:.5rem .75rem;
  background: var(--brand-white);
  color: var(--brand-ink);
  z-index:10000;
  border-radius:.5rem;
  box-shadow:0 6px 24px rgba(0,0,0,.2);
}

a:focus,button:focus,input:focus,textarea:focus,select:focus{
  outline: 3px solid rgba(240,180,41,.8);
  outline-offset: 2px;
}

/* Section heading underline */
.section-title{
  position:relative;
  padding-bottom:.5rem;
  margin-bottom:1rem;
}
.section-title:after{
  content:"";
  display:block;
  width:84px;
  height:4px;
  border-radius:99px;
  background: linear-gradient(90deg, var(--brand-primary), var(--brand-accent), var(--brand-dark));
  margin-top:.75rem;
}
.text-gold{ color: #a87800 !important; }
.card-accent{ border-top:4px solid var(--brand-primary); }

/* Call-to-action band (purple with gold accents) */
.bg-brand-gold{
  background: linear-gradient(120deg, var(--brand-dark), var(--brand-deep));
  color: var(--brand-white);
}
.bg-brand-gold .section-title,
.bg-brand-gold h1, .bg-brand-gold h2, .bg-brand-gold h3{ color: var(--brand-primary); }
.bg-brand-gold a:not(.btn){ color: var(--brand-primary); text-decoration: underline; }

/* Purple band */
.bg-brand-navy{
  background: var(--brand-dark);
  color: var(--brand-white);
}
.bg-brand-navy a:not(.btn){ color: var(--brand-primary); }
.bg-brand-navy .section-title{ color: var(--brand-primary); }

/* Dream quote / ceremony blocks */
.dream-quote{
  background: var(--brand-light);
  border-left: 4px solid var(--brand-primary);
  border-radius: .5rem;
  padding: 1.25rem 1.5rem;
  font-style: italic;
}
.ceremony-block{
  background: var(--brand-light);
  border: 2px dashed rgba(107,63,160,.45);
  border-radius: .75rem;
  padding: 2rem;
  text-align: center;
}

/* Gallery grid */
.gallery-grid img{
  width:100%;
  height:200px;
  object-fit:cover;
  border-radius:12px;
  background: var(--brand-light);
  transition: transform .2s ease, box-shadow .2s ease;
}
.gallery-grid a:hover img,
.gallery-grid a:focus img{
  transform: scale(1.04) rotate(-1deg);
  box-shadow: 0 10px 28px rgba(74,35,128,.3);
}

/* Lightbox */
.lightbox-overlay{
  position:fixed; inset:0;
  display:flex; align-items:center; justify-content:center;
  background: rgba(35,20,60,.93);
  z-index:10500;
  padding:2.5rem 1rem;
}
.lightbox-overlay img{
  max-width:92vw; max-height:84vh;
  border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.lightbox-caption{
  position:absolute; left:0; right:0; bottom:1rem;
  text-align:center;
  color: rgba(255,255,255,.92);
  font-size:.95rem;
  padding:0 4rem;
}
.lightbox-btn{
  position:absolute;
  background:none; border:0;
  color:#fff;
  font-size:2rem; line-height:1;
  padding:.5rem .9rem;
  cursor:pointer;
  border-radius:.5rem;
  opacity:.85;
}
.lightbox-btn:hover{ opacity:1; color: var(--brand-primary); }
.lightbox-close{ top:.75rem; right:.75rem; }
.lightbox-prev{ left:.5rem; top:50%; transform:translateY(-50%); }
.lightbox-next{ right:.5rem; top:50%; transform:translateY(-50%); }
body.lightbox-open{ overflow:hidden; }

/* Blog cards */
.post-card .card-body{ display:flex; flex-direction:column; }
.post-card .post-date{ color: var(--brand-muted); font-size:.85rem; }
.post-meta{ color: var(--brand-muted); font-size:.9rem; }

/* Article body */
.article-body img{ max-width:100%; height:auto; border-radius:.5rem; }
.article-body figure{ margin:1.5rem 0; }
.article-body figcaption{ font-size:.85rem; color: var(--brand-muted); margin-top:.4rem; }
.article-body blockquote{
  border-left: 4px solid var(--brand-primary);
  padding-left: 1rem;
  color: var(--brand-muted);
  font-style: italic;
}

/* Dreamer headshots */
.dreamer-photo{
  width:140px; height:140px;
  object-fit:cover;
  border-radius:50%;
  border:4px solid var(--brand-primary);
}

/* Header logo sizing */
.site-logo-header{ max-height: 64px; width: auto; }
@media (min-width: 992px){
  .site-logo-header{ max-height: 78px; }
}
@media (max-width: 375px){
  .site-logo-header{ max-height: 52px; }
}
.site-logo-footer{ max-width: 220px; height: auto; }
@media (max-width: 767.98px){
  .site-logo-footer{ display:block; margin:0 auto; }
}
