/* ===== Premium layer: foil, crest, hero couple, invitation, itinerary ===== */
.foil{
  background:linear-gradient(100deg,#8C6420 0%,#C9A14A 20%,#F6E3A8 36%,#B8862F 50%,#EED9A0 66%,#9E7424 100%);
  background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent;
  animation:foil 8s ease-in-out infinite;
}
@keyframes foil{ 50%{ background-position:100% 0 } }
.cinzel{ font-family:"Cinzel", var(--serif) }

/* crest monogram */
.crest{ position:relative; display:block; width:96px; height:96px; margin:0 auto }
.crest svg{ position:absolute; inset:0; width:100%; height:100% }
.crest span{ position:absolute; top:50%; transform:translateY(-52%); font-family:"Cinzel", var(--serif); font-size:30px; font-weight:500; line-height:1 }
.crest .c-l{ right:calc(50% + 7px) } .crest .c-r{ left:calc(50% + 7px) }

/* filigree corners */
.corner{ position:absolute; width:clamp(56px,9vw,92px); height:clamp(56px,9vw,92px); color:var(--gold); pointer-events:none; opacity:.9 }
.corner.tl{ top:16px; left:16px } .corner.tr{ top:16px; right:16px; transform:scaleX(-1) }
.corner.bl{ bottom:16px; left:16px; transform:scaleY(-1) } .corner.br{ bottom:16px; right:16px; transform:scale(-1,-1) }

/* ---------- gate refinements ---------- */
.env-names{ margin:2px 0 0; font-family:"Cinzel", var(--serif); font-size:12.5px; letter-spacing:.24em; color:var(--maroon) }
.envelope .corner{ width:54px; height:54px; opacity:.75 }
.envelope .corner.bl{ bottom:18px; left:18px } .envelope .corner.br{ bottom:18px; right:18px }
.seal span{ font-family:"Cinzel", var(--serif); font-size:24px; letter-spacing:.02em }
.env-flap-names{ position:absolute; left:0; right:0; top:20%; text-align:center; font-family:"Cinzel", var(--serif); font-size:14px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-l) }
.env-flap-names small{ display:block; margin-top:8px; font-size:10.5px; letter-spacing:.36em; opacity:.8 }

/* ---------- hero couple ---------- */
.arch{ padding-top:70px }
.arch .crest{ width:84px; height:84px; margin-top:-8px }
.arch .crest span{ font-size:26px }
.hero-eyebrow{ margin:14px 0 0; font-size:11px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold-d); font-weight:500 }
.hero-couple{ margin:2px 0 0; font-family:var(--script); font-weight:400; font-size:clamp(46px,5.3vw,70px); line-height:1.15; letter-spacing:0; white-space:nowrap }
.hero-couple i{ font-style:normal; font-size:.72em; margin:0 .06em }
@media (max-width:560px){
  .hero-couple{ white-space:normal; font-size:62px; line-height:1 }
  .hero-couple i{ display:block; font-size:.6em; line-height:.9 }
}
.hero-when{ margin:4px 0 0; font-family:"Cinzel", var(--serif); font-size:13.5px; letter-spacing:.26em; color:var(--maroon) }
.orn-rule{ display:block; width:200px; height:16px; margin:20px auto 16px }
.hero-sub{ margin:0; font-family:var(--serif); font-size:clamp(24px,2.6vw,30px); line-height:1.15; color:var(--maroon); font-weight:500 }
.arch .title-script{ font-size:clamp(34px,3.8vw,46px) }
.arch .hero-copy{ font-size:18.5px; margin-top:12px }
.arch .hero-hook{ font-size:14px }

/* ---------- invitation card ---------- */
.invite{ max-width:1000px; padding:74px clamp(20px,6vw,86px) 64px; background:
  radial-gradient(120% 70% at 50% 0%, #FFFDF7 0%, #FFF8EA 60%, #FBF0DB 100%) }
.invite .crest{ margin-bottom:10px }
.couple{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:clamp(12px,3vw,30px); margin:26px 0 8px }
.person .p-name{ margin:0; font-family:"Cinzel", var(--serif); font-weight:500; font-size:clamp(22px,2.6vw,31px); line-height:1.2; letter-spacing:.07em; color:var(--maroon) }
.person .p-parents{ margin:8px 0 0; font-family:var(--serif); font-style:italic; font-size:18px; line-height:1.35; color:var(--ink-2) }
.weds{ margin:0; font-family:var(--script); font-size:64px; line-height:1 }
.invite .inv-req{ margin:14px 0 0 }
.muhurtham{ max-width:520px; margin:30px auto 0; padding:22px 20px 20px; border-top:1px solid rgba(201,161,74,.55); border-bottom:1px solid rgba(201,161,74,.55) }
.muhurtham .inv-time{ margin:4px 0 0; font-family:"Cinzel", var(--serif); font-size:21px; letter-spacing:.16em; color:var(--maroon) }
.muhurtham .inv-venue{ margin:6px 0 0; font-family:var(--serif); font-size:20px; font-style:italic; letter-spacing:0; text-transform:none; color:var(--ink) }
.signoff{ margin:40px 0 0; font-family:var(--script); font-size:clamp(32px,4vw,44px); line-height:1.2 }

/* ---------- itinerary: Kerala | Gujarat ---------- */
.itinerary{ display:grid; grid-template-columns:1.4fr 1fr; gap:22px; align-items:start; margin:44px 0 34px; text-align:left }
.place{ overflow:hidden; border-radius:22px; border:1px solid rgba(201,161,74,.55); background:#FFFBF3; box-shadow:0 20px 40px rgba(90,40,20,.08) }
.place-head{ position:relative; padding:22px 24px 26px }
.place-head::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:10px }
.place.kerala .place-head{ background:#F6EEDC }
.place.kerala .place-head::after{ background:linear-gradient(var(--gold) 0 2px, #F6EEDC 2px 4px, var(--gold) 4px 10px) }
.place.gujarat .place-head{ color:#FBEFD8; background:radial-gradient(circle,rgba(244,227,195,.55) 1.3px,transparent 1.9px) 0 0/14px 14px, radial-gradient(circle,rgba(244,227,195,.55) 1.3px,transparent 1.9px) 7px 7px/14px 14px, linear-gradient(160deg,#7A1426,#4A0D18) }
.place.gujarat .place-head::after{ background:radial-gradient(circle,#FFF 0 2.4px,#C0C6CC 2.8px 3.8px,var(--gold) 4.2px 5px,transparent 5.4px) 0 50%/14px 10px, #4A0D18 }
.place-line{ margin:0; font-family:var(--script); font-size:30px; line-height:1; color:var(--gold-d) }
.place.gujarat .place-line{ color:var(--gold-l) }
.place-head h4{ margin:6px 0 2px; font-family:"Cinzel", var(--serif); font-size:24px; font-weight:600; letter-spacing:.18em; line-height:1.1 }
.place-head h4 .native{ margin-right:12px; font-size:19px; letter-spacing:0; font-weight:500 }
.place-head small{ font-size:12px; letter-spacing:.16em; text-transform:uppercase; opacity:.85 }
.ev{ display:grid; grid-template-columns:64px 1fr; gap:16px; padding:20px 24px; border-top:1px dashed rgba(201,161,74,.45) }
.place-head + .ev{ border-top:0 }
.ev.main{ background:linear-gradient(90deg, rgba(201,161,74,.16), rgba(201,161,74,0) 80%) }
.ev-date{ text-align:center; padding-top:2px }
.ev-ic{ display:block; width:30px; height:30px; margin:0 auto 6px; color:var(--gold-d) }
.ev-date b{ display:block; font-family:var(--serif); font-size:36px; line-height:1; font-weight:500; color:var(--maroon) }
.ev-date small{ display:block; margin-top:4px; font-size:10.5px; line-height:1.3; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-d) }
.ev h5{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 4px; font-family:var(--serif); font-size:26px; line-height:1.1; font-weight:600; color:var(--maroon) }
.ev .tag{ padding:3px 9px 2px; border-radius:999px; background:var(--maroon); color:#F6E7C8; font-family:var(--sans); font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:500 }
.ev p{ margin:1px 0; font-size:14.5px; line-height:1.5 }
.ev .time{ font-weight:500; color:var(--ink) }
.ev .venue{ margin-top:6px; font-family:var(--serif); font-size:19px; font-style:italic; line-height:1.3; color:var(--ink) }
.ev .addr{ font-size:13px; color:var(--ink-2) }
.ev .note{ margin-top:4px; font-size:13px; font-style:italic; color:var(--gold-d) }
.ev .dir{ display:inline-block; margin-top:8px; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); text-decoration:none; border-bottom:1px solid var(--gold) }
.ev .dir:hover{ color:var(--gold-d) }

/* ---------- footer ---------- */
.foot .crest{ margin-bottom:6px }
.foot-names{ font-family:"Cinzel", var(--serif); letter-spacing:.2em; font-size:14px }

/* ---------- Lenis smooth scroll ---------- */
html.lenis, html.lenis body{ height:auto }
.lenis.lenis-smooth{ scroll-behavior:auto !important }
.lenis.lenis-stopped{ overflow:hidden }

@media (max-width:820px){
  .couple{ grid-template-columns:1fr; gap:6px }
  .weds{ font-size:52px }
  .itinerary{ grid-template-columns:1fr }
  .invite{ padding-top:64px }
  .ev{ grid-template-columns:52px 1fr; padding:18px 18px }
}
@media (max-width:420px){ .hero-couple{ font-size:54px } }
