/* ===== Shared styling for the individual event pages ===== */
:root{
  --pink:#F3D5DE; --pink-soft:#FAE7EC; --green:#D2E2CB; --green-soft:#E6EFDD;
  --gold:#BE972F; --gold-deep:#946C1C;
  --wine:#7A2A41; --wine-deep:#531B2C;
  --cream:#FCF5EE; --ink:#3A2A30; --ink-soft:#8A6873;
  --cream-text: #6a233b;
  --accent:#BE972F;
  --disp:'Aboreto', serif; --serif:'Cormorant', serif; --sans:'Manrope', sans-serif; --deva:'Gotu', serif;
  --damask:url("../assets/gfx/damask.svg");
  --marigold:url("../assets/gfx/marigold.svg");
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans);color:var(--ink);font-weight:300;line-height:1.7;-webkit-font-smoothing:antialiased;
  min-height:100vh;overflow-x:hidden;
  background-color:#F4DEE5;
  background-image:var(--damask),linear-gradient(180deg,#FAE7EC 0%,#F1DCE5 26%,#E7EBDC 55%,#F2DDE6 80%,#EBE4EC 100%);
  background-size:230px 230px,100% 100%;
  background-repeat:repeat,no-repeat;
}
::selection{background:var(--gold);color:#fff;}
sup{font-size:.5em;}
a{color:inherit;}

.wrap{max-width:900px;margin:0 auto;padding:0 24px;position:relative;z-index:1;}
.corner{position:absolute;width:clamp(64px,10vw,104px);height:clamp(64px,10vw,104px);background:var(--marigold) no-repeat center/contain;z-index:0;opacity:.9;pointer-events:none;}
.corner.tl{top:16px;left:16px;}
.corner.br{bottom:16px;right:16px;transform:scale(-1);}

.topbar{max-width:900px;margin:0 auto;padding:26px 24px 0;}
.back{display:inline-flex;align-items:center;gap:9px;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);text-decoration:none;font-weight:600;transition:gap .3s ease;}
.back:hover{gap:14px;}
.back svg{width:16px;height:16px;}

.flourish{display:flex;align-items:center;justify-content:center;gap:11px;margin:26px auto;}
.flourish .l{width:clamp(40px,10vw,70px);height:1px;background:linear-gradient(90deg,transparent,var(--accent));}
.flourish .l.r{background:linear-gradient(90deg,var(--accent),transparent);}
.flourish .d{width:8px;height:8px;background:var(--accent);transform:rotate(45deg);}
.flourish .o{width:5px;height:5px;border:1px solid var(--accent);border-radius:50%;}

.ev-hero{text-align:center;padding:clamp(40px,7vw,78px) 0 10px;}
.ev-eyebrow{font-family:var(--sans);font-size:.66rem;letter-spacing:.45em;text-transform:uppercase;color:var(--accent);margin-bottom:18px;font-weight:600;}
.ev-title{font-family:var(--disp);font-weight:400;font-size:clamp(2.4rem,8vw,4.4rem);letter-spacing:.05em;text-transform:uppercase;color:var(--wine);line-height:1.1;}
.ev-when{margin-top:18px;font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,3vw,1.6rem);color:var(--ink-soft);}

/* framed themed illustration */
.portrait{position:relative;width:clamp(360px,98vw,820px);aspect-ratio:852/609;margin:34px auto 6px;}
.portrait::before{content:'';position:absolute;inset:-8% -8% -6%;border-radius:50%;background:radial-gradient(ellipse at 50% 45%,var(--accent),transparent 68%);opacity:.32;filter:blur(26px);z-index:-1;}
.portrait .photo{position:absolute;left:20.4%;right:23%;top:23.3%;bottom:23%;background-size:cover;background-position:center 78%;box-shadow:inset 0 0 16px rgba(60,30,10,.3);}
.portrait .fr{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 12px 22px rgba(0,0,0,.22));}

/* details */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin:54px auto 0;max-width:820px;}
.detail{background:var(--cream);border-radius:16px;padding:26px 24px;text-align:center;box-shadow:0 20px 40px -34px rgba(122,42,65,.5);border:1px solid rgba(190,151,47,.18);}
.detail .lbl{font-family:var(--sans);font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-bottom:10px;}
.detail .val{font-family:var(--serif);font-size:1.2rem;color:var(--wine);line-height:1.35;}
.detail .val small{display:block;font-family:var(--sans);font-size:.82rem;color:var(--ink-soft);margin-top:4px;letter-spacing:.02em;}

.about{max-width:600px;margin:56px auto 0;text-align:center;}
.about h3{font-family:var(--disp);font-weight:400;font-size:1.1rem;letter-spacing:.12em;text-transform:uppercase;color:var(--wine);margin-bottom:18px;}
.about p{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,2.6vw,1.45rem);color:var(--ink-soft);line-height:1.75;}

/* venue map */
.venue-map{max-width:920px;margin:56px auto 0;text-align:center;}
.venue-map h3{font-family:var(--disp);font-weight:400;font-size:1.1rem;letter-spacing:.12em;text-transform:uppercase;color:var(--wine);margin-bottom:18px;}
.venue-map .map-frame{position:relative;}
.venue-map .map-frame img{display:block;width:100%;transform: translate3d(0, 0, 0);filter:drop-shadow(0 22px 40px rgba(122,42,65,.4)); aspect-ratio: auto;}
.venue-map .cap{margin-top:16px;font-family:var(--serif);font-style:italic;font-size:1.02rem;color:var(--ink-soft);}
.venue-map .cap b{font-style:normal;font-weight:600;color:var(--wine);}

.ev-foot{text-align:center;padding:clamp(60px,9vw,110px) 24px 60px;}
.ev-foot .nm{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:22px;}
.ev-foot .nm .n{font-family:var(--serif);font-weight:300;font-size:clamp(1.8rem,6vw,2.8rem);color:var(--wine);line-height:.95;}
.ev-foot .nm .w{font-family:var(--disp);font-size:.7rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold-deep);padding-left:.5em;}
.ev-foot .back{margin-top:6px;}

.stay-contact{font-family:var(--sans);font-style:normal;font-size:.95rem;color:var(--ink-soft);margin-top:18px;}
.stay-contact a{display:inline-flex;align-items:center;gap:7px;color:#1d8a4e;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(29,138,78,.35);white-space:nowrap;}
.stay-contact a svg{width:18px;height:18px;flex:none;}

/* ── stay & travel: by road / by train ── */
.travel{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:820px;margin:48px auto 0;text-align:left;align-items:start;}
.travel-col{background:var(--cream);border-radius:16px;padding:clamp(24px,3vw,34px);box-shadow:0 20px 40px -34px rgba(122,42,65,.5);border:1px solid rgba(190,151,47,.18);}
.travel-head{display:flex;align-items:center;gap:11px;font-family:var(--disp);font-weight:400;font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;color:var(--wine);margin-bottom:16px;}
.travel-head svg{width:26px;height:26px;color:var(--gold-deep);flex:none;}
.travel-col p{color:var(--ink-soft);font-size:.94rem;line-height:1.7;font-weight:400;margin-bottom:13px;}
.travel-link{display:inline-block;color:var(--gold-deep);text-decoration:none;font-size:.84rem;letter-spacing:.04em;border-bottom:1px solid rgba(154,115,39,.4);}
.trains{list-style:none;margin:4px 0 14px;padding:0;}
.trains li{display:grid;grid-template-columns:1fr auto;gap:1px 14px;padding:12px 0;border-top:1px solid rgba(154,115,39,.18);}
.trains li:first-child{border-top:0;padding-top:2px;}
.tr-name{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--wine);line-height:1.2;}
.tr-name span{font-family:var(--sans);font-weight:500;font-size:.66rem;letter-spacing:.08em;color:var(--gold-deep);margin-left:7px;}
.tr-time{grid-column:2;grid-row:1;font-variant-numeric:tabular-nums;font-size:.92rem;color:var(--ink);font-weight:500;text-align:right;white-space:nowrap;}
.tr-from{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);}
.travel-note{font-family:var(--serif);font-style:italic;font-size:.94rem;color:var(--ink-soft);margin-bottom:0;}

@media (max-width:560px){ .detail-grid{grid-template-columns:1fr 1fr;} .travel{grid-template-columns:1fr;} }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }

.invite-names {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 4px;
        margin: 6px auto;
        width: 100%;
        margin-bottom: 5em;
      }
      .invite-names .n {
        font-family: "Great Vibes", cursive;
        font-weight: 400;
        font-size: clamp(3.6rem, 14vw, 7.6rem);
        color: var(--cream-text);
        line-height: 1;
      }
      .invite-names .weds {
        font-family: var(--disp);
        font-size: clamp(0.8rem, 2vw, 1.1rem);
        letter-spacing: 0.5em;
        text-transform: uppercase;
        color: var(--gold-deep);
        padding-left: 2.42em;
      }