
.jp { font-family: Mukta, sans-serif; }
.jp-display { font-family: Marcellus, serif; }
body { background: #fff6e6; }
.jp { --cream:#fff6e6; --maroon:#8c1d3f; --marigold:#e8a021; --green:#186a52; --fuchsia:#c2185b;
  background: var(--cream); color: var(--maroon); min-height: 100vh; overflow-x: hidden; }
.jp-wrap { max-width: 1040px; margin: 0 auto; padding: 0 1.5rem; }
.jp-hero { position: relative; text-align: center; padding: 4rem 0 5rem; }
.jp-arch { max-width: 520px; margin: 0 auto; border: 2px solid var(--marigold); border-radius: 260px 260px 12px 12px;
  padding: 4.5rem 2rem 3rem; position: relative; background: rgba(255,255,255,0.5); }
.jp-arch::before { content: ""; position: absolute; inset: 9px; border: 1px solid rgba(140,29,63,0.28); border-radius: 250px 250px 8px 8px; pointer-events: none; }
.jp-om { font-size: 0.7rem; letter-spacing: 0.4em; text-transform: uppercase; color: var(--green); }
.jp-names { font-size: clamp(2.6rem, 8vw, 4rem); line-height: 1.1; margin: 1.4rem 0 0; }
.jp-amp { display: block; color: var(--fuchsia); font-size: 0.42em; margin: 0.3rem 0; }
.jp-date { margin-top: 1.6rem; font-size: 0.86rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--green); }
.jp-place { margin-top: 0.5rem; font-size: 0.92rem; color: rgba(140,29,63,0.72); }
.jp-band { background: var(--maroon); color: var(--cream); padding: 0.9rem 0; overflow: hidden; white-space: nowrap;
  font-size: 0.72rem; letter-spacing: 0.34em; text-transform: uppercase; text-align: center; }
.jp-section { padding: 4.5rem 0; }
.jp-eyebrow { text-align: center; font-size: 0.7rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--marigold); }
.jp-h2 { text-align: center; font-size: clamp(1.9rem, 4.5vw, 2.6rem); margin-top: 0.9rem; }
.jp-lede { max-width: 60ch; margin: 1.8rem auto 0; text-align: center; font-size: 1rem; line-height: 1.95; color: rgba(140,29,63,0.82); }
.jp-days { display: grid; gap: 1.4rem; margin-top: 3rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.jp-day { border: 1px solid rgba(140,29,63,0.18); border-radius: 200px 200px 10px 10px; padding: 2.6rem 1.6rem 2rem; text-align: center; background: #fff; }
.jp-daytag { display: inline-block; padding: 0.35rem 1rem; border-radius: 99px; font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: #fff; }
.jp-dayname { font-size: 1.45rem; margin: 1.1rem 0 0.6rem; }
.jp-daybody { font-size: 0.88rem; line-height: 1.8; color: rgba(140,29,63,0.72); }
.jp-daydress { margin-top: 1.1rem; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--green); }
.jp-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2.6rem; }
@media (max-width: 720px) { .jp-gallery { grid-template-columns: 1fr 1fr; } }
.jp-frame { position: relative; aspect-ratio: 3 / 4; border-radius: 180px 180px 8px 8px; overflow: hidden; border: 1px solid var(--marigold); }
.jp-cta { background: var(--green); color: var(--cream); text-align: center; padding: 5rem 1.5rem 5.5rem; }
.jp-btn { display: inline-block; margin-top: 2rem; background: var(--marigold); color: #4a2000; text-decoration: none;
  padding: 1rem 3rem; border-radius: 99px; font-size: 0.74rem; letter-spacing: 0.24em; text-transform: uppercase; }
.jp-foot { text-align: center; padding: 3rem 1.5rem; font-size: 0.76rem; letter-spacing: 0.2em; color: rgba(140,29,63,0.6); }

