:root{
  --bg: #f6efe7;
  --card: rgba(255,255,255,.62);
  --ink: #1f1a16;
  --muted: rgba(31,26,22,.72);
  --green: #3e6b4e;
  --green2:#2f5a41;
  --brown:#7a4f2a;
  --gold:#caa35b;
  --rose:#cf7f89;
  --shadow: 0 18px 45px rgba(31,26,22,.12);
  --ring: 0 0 0 4px rgba(62,107,78,.18);
  --radius: 24px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  color:var(--ink);
  background: radial-gradient(1200px 650px at 50% 0%, rgba(207,127,137,.24), transparent 60%),
              radial-gradient(900px 650px at 5% 25%, rgba(62,107,78,.16), transparent 60%),
              radial-gradient(900px 650px at 95% 40%, rgba(122,79,42,.14), transparent 60%),
              var(--bg);
  font-family: Poppins, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  overflow-x:hidden;
}

/* subtle floral pattern overlay */
.pattern{
  position:fixed; inset:0;
  pointer-events:none;
  opacity:.10;
  background-image:
    url('data:image/svg+xml;utf8,\
      <svg xmlns="http://www.w3.org/2000/svg" width="160" height="160" viewBox="0 0 160 160">\
        <defs>\
          <linearGradient id="g" x1="0" y1="0" x2="1" y2="1">\
            <stop stop-color="%233e6b4e" offset="0"/>\
            <stop stop-color="%237a4f2a" offset="1"/>\
          </linearGradient>\
        </defs>\
        <g fill="none" stroke="url(%23g)" stroke-width="2" opacity="0.65">\
          <path d="M80 18c18 18 18 46 0 64-18-18-18-46 0-64Z"/>\
          <path d="M80 82c18 18 18 46 0 64-18-18-18-46 0-64Z"/>\
          <path d="M18 80c18-18 46-18 64 0-18 18-46 18-64 0Z"/>\
          <path d="M82 80c18-18 46-18 64 0-18 18-46 18-64 0Z"/>\
          <circle cx="80" cy="80" r="10"/>\
        </g>\
      </svg>');
  background-size: 220px 220px;
}

.wrap{max-width:1080px; margin:0 auto; padding:28px 18px 70px; position:relative}

header{
  position:relative;
  border-radius: calc(var(--radius) + 10px);
  padding:42px 26px 24px;
  background:
    radial-gradient(900px 320px at 50% 0%, rgba(202,163,91,.26), transparent 62%),
    linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.44));
  box-shadow: var(--shadow);
  overflow:hidden;
  border: 1px solid rgba(31,26,22,.08);
  backdrop-filter: blur(8px);
}

.topline{
  display:flex; align-items:center; justify-content:center; gap:14px;
  color:var(--green2);
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-size:.82rem;
}

.monogram{
  display:grid; place-items:center;
  width:56px; height:56px; border-radius:16px;
  background: linear-gradient(135deg, rgba(62,107,78,.18), rgba(122,79,42,.14));
  border: 1px solid rgba(31,26,22,.10);
  box-shadow: 0 10px 24px rgba(31,26,22,.08);
}

h1{
  margin:14px 0 6px;
  text-align:center;
  font-family: Great Vibes, cursive;
  font-weight:400;
  font-size: clamp(2.3rem, 4.3vw, 3.6rem);
  color: var(--brown);
}

.subtitle{
  text-align:center;
  margin:0;
  font-family: Playfair Display, serif;
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  color: var(--green2);
  letter-spacing:.02em;
}

.dates{
  margin: 14px auto 0;
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px;
  color: var(--muted);
}

.pill{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(31,26,22,.08);
  backdrop-filter: blur(6px);
  box-shadow: 0 10px 18px rgba(31,26,22,.06);
  font-size:.92rem;
}

.pill svg{width:18px; height:18px; opacity:.85}

/* Decorative peacocks + lotus */
.deco{
  position:absolute; inset:auto 0 0 0;
  height:130px;
  pointer-events:none;
  opacity:.95;
}

.peacock{
  position:absolute; top:14px; width:180px; height:180px;
  opacity:.85;
  filter: drop-shadow(0 10px 14px rgba(31,26,22,.10));
}
.peacock.left{left:-22px; transform: rotate(-1deg)}
.peacock.right{right:-22px; transform: scaleX(-1) rotate(-1deg)}

main{margin-top:22px}

.controls{
  display:flex; flex-wrap:wrap; gap:10px;
  align-items:center; justify-content:space-between;
  margin: 14px 0 18px;
}

.status{
  flex: 1 1 100%;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.64);
  border: 1px solid rgba(31,26,22,.10);
  color: var(--muted);
  font-size: .92rem;
  box-shadow: 0 12px 26px rgba(31,26,22,.06);
}

.search{
  flex: 1 1 320px;
  display:flex; gap:10px; align-items:center;
  background: rgba(255,255,255,.64);
  border: 1px solid rgba(31,26,22,.10);
  border-radius: 14px;
  padding: 10px 12px;
  box-shadow: 0 12px 26px rgba(31,26,22,.06);
  backdrop-filter: blur(8px);
}

.search input{
  width:100%;
  border:none; outline:none; background:transparent;
  font-size: .98rem;
  color: var(--ink);
}

.toggle{
  flex: 0 0 auto;
  display:flex; gap:10px; align-items:center;
}

.btn{
  border:none;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(62,107,78,.12);
  color: var(--green2);
  font-weight:600;
  cursor:pointer;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
  box-shadow: 0 12px 24px rgba(31,26,22,.06);
}

.btn:hover{transform: translateY(-1px); box-shadow: 0 14px 28px rgba(31,26,22,.08)}
.btn:focus-visible{outline:none; box-shadow: var(--ring)}

.grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 14px;
}

.day{
  grid-column: span 12;
  border-radius: var(--radius);
  padding: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.46));
  border: 1px solid rgba(31,26,22,.08);
  box-shadow: var(--shadow);
  backdrop-filter: blur(8px);
  overflow:hidden;
  position:relative;
}

.day:before{
  content:"";
  position:absolute; inset:-40px -40px auto auto;
  width:160px; height:160px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(207,127,137,.28), rgba(202,163,91,.10) 55%, transparent 70%);
  transform: rotate(20deg);
  pointer-events: none;
}

.dayhead{
  display:flex; flex-wrap:wrap; gap:10px;
  align-items:baseline; justify-content:space-between;
  padding-bottom: 10px;
  border-bottom: 1px dashed rgba(31,26,22,.16);
  margin-bottom: 12px;
  position: relative;
  z-index: 1;
}

.daytitle{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
}

.dayactions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.daytitle h2{
  margin:0;
  font-family: Playfair Display, serif;
  font-size: 1.6rem;
  color: var(--green2);
}

.date{
  color: var(--muted);
  font-weight:500;
}

.day-toggle{
  border: 1px solid rgba(31,26,22,.16);
  background: rgba(255,255,255,.62);
  color: var(--green2);
  border-radius: 999px;
  padding: 7px 12px;
  font-weight: 600;
  cursor: pointer;
}

.day-toggle:focus-visible{
  outline: none;
  box-shadow: var(--ring);
}

.day.is-collapsed .daybody{
  display:none;
}

.sections{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 12px;
  margin-top: 12px;
}

.slot{
  grid-column: span 12;
  border-radius: 20px;
  padding: 14px 14px 12px;
  background: rgba(246,239,231,.56);
  border: 1px solid rgba(31,26,22,.08);
  position:relative;
}

.slot h3{
  margin: 0 0 8px;
  font-size: 1rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color: var(--brown);
  font-weight:700;
  display:flex; align-items:center; gap:8px;
}

.slot ul{margin:0; padding-left: 18px}
.slot li{margin: 6px 0; color: var(--ink)}
.slot li small{color: var(--muted)}
.slot li > ul{margin-top: 6px; padding-left: 18px}

.next-event{
  background: rgba(202,163,91,.16);
  border-radius: 10px;
  outline: 1px solid rgba(122,79,42,.26);
  padding: 6px 10px;
  margin-left: -10px;
}

.day.next-day{
  box-shadow: 0 18px 45px rgba(122,79,42,.20);
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius: 999px;
  background: rgba(202,163,91,.14);
  color: var(--brown);
  border: 1px solid rgba(122,79,42,.18);
  font-weight:600;
  font-size:.92rem;
}

.footer{
  margin-top: 18px;
  color: var(--muted);
  font-size: .92rem;
  text-align:center;
}

.faq{
  margin-top: 18px;
  border-radius: var(--radius);
  padding: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.46));
  border: 1px solid rgba(31,26,22,.08);
  box-shadow: var(--shadow);
}

.faq h2{
  margin: 0 0 12px;
  font-family: Playfair Display, serif;
  color: var(--green2);
}

.faq-list{
  display:grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.faq-item{
  border-radius: 16px;
  padding: 12px;
  background: rgba(246,239,231,.56);
  border: 1px solid rgba(31,26,22,.08);
}

.faq-item summary{
  cursor: pointer;
  font-weight: 600;
  color: var(--brown);
}

.faq-item p{
  margin: 10px 0 0;
  color: var(--ink);
}

.faq-item a{
  color: var(--green2);
  font-weight: 700;
  text-decoration: none;
}

.faq-item a:hover{
  text-decoration: underline;
}

.contacts{
  margin-top: 18px;
  border-radius: var(--radius);
  padding: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.46));
  border: 1px solid rgba(31,26,22,.08);
  box-shadow: var(--shadow);
}

.contacts h2{
  margin: 0 0 12px;
  font-family: Playfair Display, serif;
  color: var(--green2);
}

.contacts-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.contact-card{
  border-radius: 16px;
  padding: 12px;
  background: rgba(246,239,231,.56);
  border: 1px solid rgba(31,26,22,.08);
}

.contact-card h3{
  margin: 0 0 6px;
  font-size: 1rem;
  color: var(--brown);
}

.contact-card p{
  margin: 0 0 8px;
  color: var(--muted);
}

.contact-card a{
  color: var(--green2);
  font-weight: 700;
  text-decoration: none;
}

.contact-card a:hover{
  text-decoration: underline;
}

.hint{
  margin-top: 12px;
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap;
}

@media (min-width: 760px){
  .day{padding: 20px 22px}
  .slot{grid-column: span 4}
  .slot.span6{grid-column: span 6}
  .slot.span12{grid-column: span 12}
  .contacts-grid{grid-template-columns: repeat(2, 1fr)}
}

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

/* Print styling */
@media print{
  body{background:#fff}
  .pattern,.controls,.hint{display:none !important}
  header{box-shadow:none; border:1px solid #ddd}
  .day{box-shadow:none; border:1px solid #ddd}
  .faq{box-shadow:none; border:1px solid #ddd}
  .contacts{box-shadow:none; border:1px solid #ddd}
  .slot{background:#fff}
}
