:root{
    --seafoam:#4C8577;
    --seafoam-light:#A9CFC1;
    --seafoam-pale:#EAF2EC;
    --sunset:#E8622D;
    --sunset-soft:#F2A26B;
    --gold:#C0952E;
    --gold-pale:#EFDDAF;
    --ink:#12332C;
    --navy:#0E2A26;
    --cream:#FAF6EC;
    --blush:#F5C7B0;
    --white:#FFFFFF;
    --shadow: 0 10px 30px rgba(15,42,38,0.12);
    --radius: 2px;
    --img-hero: url("../images/hero-bg.jpg");
    --img-venue: url("../images/venue-banner.jpg");
    --img-couple1: url("../images/couple-1.jpg");
    --img-couple2: url("../images/couple-2.jpg");
    /* Event card art */
    --img-ev-mehendi: url('../images/events/mehendi.jpg');
    --img-ev-lunch: url('../images/events/welcome-lunch.jpg');
    --img-ev-sangeet: url('../images/events/sangeet.jpg');
    --img-ev-haldi: url('../images/events/haldi-roce.jpg');
    --img-ev-sunset: url('../images/events/sunset-soiree.jpg');
    --img-ev-afterparty: url('../images/events/after-party.jpg');
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Manrope', sans-serif;
    font-weight:400;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  .site-bg{
    position:fixed;inset:0;z-index:-1;
    background:url('../images/background.jpg') center/cover no-repeat;
    background-color:var(--cream);
  }
  h1,h2,h3,h4{
    font-family:'Fraunces', serif;
    font-weight:450;
    margin:0 0 .4em;
    color:var(--navy);
    letter-spacing:.01em;
  }
  .script{
    font-family:'Petit Formal Script', cursive;
    color:var(--sunset);
    font-weight:400;
  }
  a{color:inherit;}
  p{margin:0 0 1em;}
  .eyebrow{
    text-transform:uppercase;
    letter-spacing:.28em;
    font-size:.72rem;
    color:var(--seafoam);
    font-weight:700;
    margin-bottom:.9em;
    display:block;
  }
  .container{max-width:1040px;margin:0 auto;padding:0 24px;}
  img{max-width:100%;display:block;}

  /* ===== Ambient marigold garland ===== */
  .garland{
    position:relative;
    width:100%;
    height:46px;
    overflow:hidden;
    background:linear-gradient(180deg, var(--navy), transparent);
  }
  .garland svg{position:absolute;top:-6px;left:0;width:200%;height:60px;animation:swayGarland 7s ease-in-out infinite;}
  @keyframes swayGarland{
    0%,100%{transform:translateY(0) rotate(0.2deg);}
    50%{transform:translateY(4px) rotate(-0.2deg);}
  }
  @media (prefers-reduced-motion: reduce){
    .garland svg{animation:none;}
    html{scroll-behavior:auto;}
  }

  /* ===== Top Nav ===== */
  header.site-nav{
    position:sticky;top:0;z-index:100;
    background:rgba(250,246,236,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid rgba(76,133,119,0.18);
  }
  .nav-inner{
    max-width:1100px;margin:0 auto;padding:10px 24px;
    display:flex;align-items:center;justify-content:space-between;
  }
  .nav-mono{
    position:relative;
    height:40px;width:84px;
    display:flex;align-items:center;
    text-decoration:none;
  }
  .nav-logo{
    position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:84px;height:84px;object-fit:contain;display:block;
    filter:brightness(0);
  }
  nav.tabs{display:flex;gap:2px;flex-wrap:wrap;}
  nav.tabs a{
    font-family:'Manrope',sans-serif;
    text-decoration:none;
    background:none;border:none;cursor:pointer;
    font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
    padding:10px 14px;color:var(--ink);opacity:.65;
    border-bottom:2px solid transparent;
    transition:opacity .2s, border-color .2s, color .2s;
    display:inline-block;
  }
  nav.tabs a:hover{opacity:1;}
  nav.tabs a.active{opacity:1;color:var(--sunset);border-bottom-color:var(--sunset);}
  .hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;}
  .hamburger span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;}

  @media (max-width:860px){
    nav.tabs{
      display:none;
      position:absolute;top:100%;left:0;right:0;
      background:var(--cream);
      flex-direction:column;
      box-shadow:var(--shadow);
      padding:6px 0;
    }
    nav.tabs.open{display:flex;}
    nav.tabs a{text-align:left;padding:14px 24px;border-bottom:1px solid rgba(76,133,119,0.12);border-left:3px solid transparent;}
    nav.tabs a.active{border-bottom-color:rgba(76,133,119,0.12);border-left-color:var(--sunset);}
    .hamburger{display:block;}
  }

  /* ===== Scroll sections ===== */
  section.page-section{scroll-margin-top:64px;}
  .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.in-view{opacity:1;transform:translateY(0);}

  /* ===== HERO ===== */
  .hero{
    position:relative;
    min-height:96vh;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;
    color:var(--gold-pale);
    padding:70px 24px 90px;
    overflow:hidden;
  }
  .hero-bg{
    position:absolute;inset:0;
    background-image:var(--img-hero);
    background-size:cover;background-position:center;
    filter:saturate(1.05) brightness(0.85);
    transform:scale(1.08);
    animation:heroDrift 26s ease-in-out infinite alternate;
  }
  @keyframes heroDrift{from{transform:scale(1.08) translateY(0);}to{transform:scale(1.14) translateY(-2%);}}
  .hero-overlay{
    position:absolute;inset:0;
    background:
      radial-gradient(ellipse at 50% -10%, rgba(192,149,46,0.28), transparent 55%),
      linear-gradient(180deg, rgba(14,42,38,0.78) 0%, rgba(18,59,52,0.72) 45%, rgba(76,133,119,0.62) 100%);
  }
  .hero > *:not(.hero-bg):not(.hero-overlay){position:relative;z-index:2;}
  .hero .bird{position:absolute;opacity:.6;animation:driftBird 22s linear infinite;z-index:2;}
  @keyframes driftBird{ from{transform:translateX(-10vw) translateY(0);} to{transform:translateX(110vw) translateY(-30px);} }
  .hero-logo{
    width:clamp(170px, 22vw, 260px);height:clamp(170px, 22vw, 260px);object-fit:contain;
    margin-bottom:20px;
    filter:drop-shadow(0 2px 18px rgba(0,0,0,0.35));
    animation:breathe 6s ease-in-out infinite;
  }
  @keyframes breathe{0%,100%{transform:scale(1);}50%{transform:scale(1.03);}}
  .hero .greet{
    font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;color:var(--seafoam-light);
    margin-bottom:18px;min-height:1.3em;
  }
  .hero h1{
    color:var(--white);
    font-size:clamp(2.6rem, 7vw, 4.6rem);
    font-weight:450;
    margin:0;
    line-height:1.05;
    text-shadow:0 2px 24px rgba(0,0,0,0.25);
  }
  .hero .weds{display:block;font-size:clamp(1.6rem,5vw,2.4rem);margin:6px 0;color:var(--sunset-soft);}
  .hero .datebar{
    margin-top:34px;display:flex;gap:22px;flex-wrap:wrap;justify-content:center;
    font-family:'Fraunces', serif;font-size:1.05rem;color:var(--gold-pale);
  }
  .hero .datebar span{padding:8px 18px;border:1px solid rgba(239,221,175,0.4);border-radius:100px;background:rgba(14,42,38,0.25);}
  .hero .place{margin-top:20px;font-size:1rem;color:var(--seafoam-light);letter-spacing:.03em;}
  .countdown{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;justify-content:center;}
  .cd-unit{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    width:74px;height:74px;border-radius:50%;
    background:rgba(14,42,38,0.4);border:1px solid rgba(239,221,175,0.35);
    backdrop-filter:blur(2px);
  }
  .cd-num{font-family:'Fraunces',serif;font-size:1.5rem;color:var(--gold-pale);line-height:1;}
  .cd-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--seafoam-light);margin-top:4px;}
  @media (max-width:480px){.cd-unit{width:62px;height:62px;}.cd-num{font-size:1.2rem;}}
  .scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:1px;height:46px;background:rgba(239,221,175,0.5);z-index:2;}
  .scroll-cue:after{content:"";position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--sunset-soft);animation:cueMove 2s ease-in-out infinite;}
  @keyframes cueMove{0%{bottom:100%;opacity:0;}20%{opacity:1;}100%{bottom:0;opacity:0;}}

  .wave{display:block;width:100%;height:60px;margin-top:-2px;position:relative;z-index:2;}

  /* ===== Generic section framing ===== */
  .section-pad{padding-top:80px;padding-bottom:90px;}
  .section-head{text-align:center;max-width:640px;margin:0 auto 50px;}
  .section-head h2{font-size:clamp(1.9rem,4vw,2.6rem);}
  .divider{width:64px;height:2px;background:var(--sunset);margin:18px auto 0;position:relative;}
  .divider:before,.divider:after{content:"✦";color:var(--gold);position:absolute;top:-9px;font-size:.7rem;}
  .divider:before{left:-18px;}
  .divider:after{right:-18px;}

  /* ===== Our Story ===== */
  /* ===== Our Story — journey map ===== */
  .story-journey{max-width:1000px;margin:0 auto;position:relative;}

  /* Stage grid — desktop */
  .sj-stage{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:40px 80px;
    align-items:center;
  }
  .sj-text-left  .sj-text {order:1;}
  .sj-text-left  .sj-image{order:2;}
  .sj-text-right .sj-image{order:1;}
  .sj-text-right .sj-text {order:2;}

  .sj-label{
    display:inline-block;font-size:.68rem;text-transform:uppercase;
    letter-spacing:.22em;color:var(--seafoam);font-weight:700;margin-bottom:.65em;
  }
  .sj-text h3{font-size:1.45rem;margin-bottom:.5em;line-height:1.25;}
  .sj-text p{font-size:.95rem;line-height:1.8;color:var(--ink);opacity:.85;margin:0;}

  /* Images — 30% smaller than full-column width */
  .sj-image{
    display:flex;
    justify-content:center;
  }
  .sj-text-left  .sj-image{justify-content:flex-start;}
  .sj-text-right .sj-image{justify-content:flex-end;}
  .sj-image img{
    width:72%;
    aspect-ratio:4/5;
    object-fit:cover;object-position:center top;
    box-shadow:0 14px 44px rgba(14,42,38,0.14);
    display:block;
  }
  .sj-text-left  .sj-image img{border-radius:4px 56px 4px 56px;}
  .sj-text-right .sj-image img{border-radius:56px 4px 56px 4px;}

  /* ---- Flight-path connectors ---- */
  .sj-connector{
    position:relative;width:100%;
    height:110px;
    overflow:visible;
    margin:4px 0;
  }
  .sj-connector svg{
    position:absolute;top:0;left:0;
    width:100%;height:100%;
    overflow:visible;
  }
  /* animated plane along path */
  .sj-plane{font-size:16px;animation:none;}
  .path-anim{
    stroke-dashoffset:1000;
    animation:drawPath 2.4s ease forwards;
  }
  @keyframes drawPath{to{stroke-dashoffset:0;}}

  /* ---- Tablet (≤900px) ---- */
  @media (max-width:900px){
    .sj-stage{
      grid-template-columns:minmax(0,1fr) minmax(0,1fr);
      gap:28px 40px;
    }
    .sj-text{padding:0 8px;}
    .sj-image img{width:85%;}
    .sj-connector{height:80px;}
  }

  /* ---- Mobile (≤640px) ---- */
  @media (max-width:640px){
    .sj-stage{
      grid-template-columns:1fr;
      gap:20px;
    }
    /* always: label/heading/copy on top, image below */
    .sj-text-left  .sj-text,
    .sj-text-right .sj-text {order:1;}
    .sj-text-left  .sj-image,
    .sj-text-right .sj-image{order:2;}

    .sj-image{justify-content:center;}
    .sj-image img{
      width:90%;
      aspect-ratio:3/2;
      object-position:center 25%;
    }
    .sj-text-left  .sj-image img,
    .sj-text-right .sj-image img{border-radius:4px 32px 4px 32px;}
    .sj-text h3{font-size:1.25rem;}

    .sj-connector{height:56px;}
  }

  /* ===== Events cards (flip) ===== */
  .events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;}
  .event-card{position:relative;perspective:1600px;}
  .ec-inner{
    position:relative;width:100%;height:410px;
    transition:transform .7s cubic-bezier(.4,.15,.2,1);
    transform-style:preserve-3d;cursor:pointer;
  }
  .event-card.flipped .ec-inner{transform:rotateY(180deg);}
  .ec-face{
    position:absolute;inset:0;
    display:flex;flex-direction:column;
    background:var(--white);border-radius:20px;box-shadow:var(--shadow);
    overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;
    padding:14px 14px 18px;
  }
  .ec-back{transform:rotateY(180deg);}
  .ec-image{
    position:relative;flex:1 1 auto;min-height:0;
    background-image:var(--ev-img);background-size:cover;background-position:center;
    border-radius:14px;overflow:hidden;
    display:flex;align-items:flex-start;justify-content:space-between;padding:10px;
  }
  .ec-back .ec-image{flex:0 0 32%;}
  .ec-image:after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(14,42,38,0.04), rgba(14,42,38,0.32));
    pointer-events:none;
  }
  .ec-image .day-tag{
    position:relative;z-index:1;
    font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;
    color:var(--gold-pale);background:rgba(14,42,38,0.78);
    padding:5px 11px;border-radius:100px;backdrop-filter:blur(2px);
  }
  .flip-btn{
    position:relative;z-index:1;flex-shrink:0;
    width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;
    background:rgba(250,246,236,0.92);color:var(--navy);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 2px 8px rgba(14,42,38,0.25);
  }
  .ec-front-info{flex-shrink:0;padding:14px 4px 0;}
  .ec-front-info h3{margin:0 0 .3em;font-size:1.2rem;line-height:1.25em;min-height:2.5em;}
  .ec-front-info .ec-time{
    display:flex;align-items:center;gap:6px;
    font-size:.82rem;color:var(--ink);opacity:.6;
  }
  .ec-back-info{flex:1 1 auto;padding:12px 4px 0;overflow-y:auto;display:flex;flex-direction:column;}
  .ec-back-info h3{margin:0 0 .35em;font-size:1.05rem;}
  .ec-back-info p{font-size:.82rem;line-height:1.5;opacity:.78;margin:0 0 .5em;}
  .ec-meta{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;}
  .ec-meta-row{display:flex;align-items:flex-start;gap:7px;font-size:.8rem;color:var(--ink);opacity:.85;}
  .ec-meta-row svg{flex-shrink:0;margin-top:2px;color:var(--seafoam);}
  .ec-meta-row b{font-weight:700;opacity:1;}
  .dresscode-pill{display:inline-block;align-self:flex-start;padding:5px 12px;background:var(--seafoam-pale);color:var(--ink);border-radius:100px;font-size:.76rem;font-weight:600;}
  @media (max-width:640px){.ec-inner{height:390px;}}


  /* ===== Dress code planner ===== */
  .wardrobe-embed{display:flex;justify-content:center;}
  .wardrobe-embed iframe{box-shadow:var(--shadow);}
  .dresscode-note{
    max-width:520px;margin:30px auto 0;text-align:center;
    font-family:'Fraunces',serif;font-style:italic;font-weight:450;
    font-size:1.02rem;color:var(--seafoam);opacity:.9;line-height:1.6;
  }

  /* ===== Travel ===== */
  .venue-banner{
    position:relative;height:320px;border-radius:2px;overflow:hidden;margin-bottom:44px;box-shadow:var(--shadow);
  }
  .venue-banner .vb-img{
    position:absolute;inset:0;background-image:var(--img-venue);background-size:cover;background-position:center;
    transform:scale(1.02);
  }
  .venue-banner .vb-overlay{
    position:absolute;inset:0;background:linear-gradient(0deg, rgba(14,42,38,0.82) 0%, rgba(14,42,38,0.1) 55%);
    display:flex;align-items:flex-end;padding:26px 30px;
  }
  .venue-banner h4{color:var(--gold-pale);margin:0;font-size:1.3rem;}

  /* ---- Travel arch cards (postcard/window style) ---- */
  .travel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px 26px;}
  .travel-arch{
    position:relative;min-height:410px;
    background:linear-gradient(180deg, #FFFFFF 0%, var(--seafoam-pale) 100%);
    border:1.5px solid var(--gold);
    border-radius:50% 50% 10px 10px / 150px 150px 10px 10px;
    box-shadow:
      inset 0 0 0 6px var(--cream),
      inset 0 0 0 7px var(--gold),
      0 14px 30px rgba(28,26,20,0.12);
    padding:142px 28px 32px;
    text-align:center;
    display:flex;flex-direction:column;
  }
  .ta-icon{position:absolute;top:38px;left:50%;transform:translateX(-50%);}
  div.ta-icon{
    font-size:3rem;line-height:1;
    filter:drop-shadow(0 3px 6px rgba(0,0,0,0.18));
  }
  img.ta-icon{width:120px;height:80px;object-fit:contain;border-radius:4px;}
  .travel-arch h4{
    font-family:'Fraunces',serif;font-style:italic;font-weight:450;
    font-size:1.2rem;color:var(--ink);margin:0 0 .5em;
  }
  .travel-arch p{font-size:.85rem;line-height:1.6;opacity:.82;margin:0;}

  @media (max-width:900px){
    .travel-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:640px){
    .travel-grid{grid-template-columns:1fr;gap:40px;}
    .travel-arch{
      min-height:390px;
      border-radius:50% 50% 10px 10px / 140px 140px 10px 10px;
      padding:126px 26px 30px;
    }
    div.ta-icon{font-size:2.6rem;top:36px;}
    img.ta-icon{width:105px;height:70px;top:34px;}
  }

  /* ===== Rituals (illustrated notecards) ===== */
  #rituals .section-pad{
    background-image:
      radial-gradient(circle, rgba(192,149,46,0.55) 0 2.5px, transparent 2.5px),
      radial-gradient(circle, rgba(232,98,45,0.4) 0 2px, transparent 2px),
      radial-gradient(circle, rgba(76,133,119,0.4) 0 2px, transparent 2px),
      radial-gradient(circle, rgba(192,149,46,0.4) 0 2px, transparent 2px);
    background-repeat:no-repeat;
    background-position:5% 14%, 92% 22%, 10% 88%, 90% 82%;
  }
  .ritual-mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:40px 28px;}
  .ritual-card{
    position:relative;grid-column:span 4;
    background:#FFFEFA;border-radius:4px;
    box-shadow:0 16px 36px rgba(28,26,20,0.16);
    padding:22px 22px 26px;
    display:flex;flex-direction:column;
    transform:rotate(var(--tilt,0deg));
    transition:transform .4s ease, box-shadow .4s ease;
  }
  .ritual-card:hover{transform:rotate(0deg) translateY(-5px);box-shadow:0 22px 46px rgba(28,26,20,0.2);}
  .ritual-card:before{
    content:"";position:absolute;top:-11px;left:50%;
    width:58px;height:20px;margin-left:-29px;
    background:rgba(239,221,175,0.6);border:1px solid rgba(192,149,46,0.25);
    transform:rotate(-2.5deg);box-shadow:0 3px 6px rgba(28,26,20,0.1);
  }
  .rc-sehrabandi{--tilt:-1.3deg;grid-column:span 4;}
  .rc-jaimala{--tilt:1deg;grid-column:span 4;}
  .rc-sangeet{--tilt:-0.6deg;grid-column:span 4;}
  .rc-pheras{--tilt:0.9deg;grid-column:span 4;}
  .rc-haldi{--tilt:-1deg;grid-column:span 4;}
  .rc-roce{--tilt:1.2deg;grid-column:span 4;}

  .ritual-art{
    border-radius:3px;display:flex;align-items:center;justify-content:center;
    width:100%;aspect-ratio:4/3;margin-bottom:16px;
  }
  .ritual-emoji{font-size:2.6rem;filter:drop-shadow(0 2px 6px rgba(0,0,0,0.15));}
  .ritual-art img{width:100%;height:100%;object-fit:cover;border-radius:3px;}
  .ritual-art.gold{background:linear-gradient(135deg,var(--gold-pale),var(--gold));}
  .ritual-art.blush{background:linear-gradient(135deg,var(--blush),var(--sunset-soft));}
  .ritual-art.navy{background:linear-gradient(135deg,var(--seafoam),var(--navy));}
  .ritual-art.fire{background:linear-gradient(135deg,var(--sunset-soft),var(--sunset));}
  .ritual-art.turmeric{background:linear-gradient(135deg,var(--gold),var(--sunset-soft));}
  .ritual-art.coconut{background:linear-gradient(135deg,var(--seafoam-pale),var(--seafoam-light));}

  .ritual-copy{flex:1;display:flex;flex-direction:column;text-align:center;align-items:center;}
  .ritual-copy h4{
    font-family:'Fraunces',serif;font-style:italic;font-weight:450;
    font-size:1.35rem;color:var(--ink);margin:0 0 .4em;
  }
  .ritual-copy p{font-size:.88rem;line-height:1.65;opacity:.8;margin:0;}

  @media (max-width:820px){
    .ritual-mosaic{grid-template-columns:1fr 1fr;gap:30px 22px;}
    .rc-sehrabandi,.rc-jaimala,.rc-sangeet,.rc-pheras,.rc-haldi,.rc-roce{grid-column:span 1;}
  }
  @media (max-width:640px){
    .ritual-mosaic{grid-template-columns:1fr;gap:26px;}
  }

  /* ===== FAQ ===== */
  .faq-item{border-bottom:1px solid rgba(76,133,119,0.22);}
  .faq-q{
    width:100%;text-align:left;background:none;border:none;cursor:pointer;
    padding:20px 4px;font-family:'Fraunces',serif;font-size:1.08rem;color:var(--navy);
    display:flex;justify-content:space-between;align-items:center;gap:16px;
  }
  .faq-q .plus{color:var(--sunset);font-size:1.3rem;transition:transform .25s;flex-shrink:0;}
  .faq-item.open .plus{transform:rotate(45deg);}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;font-size:.95rem;}
  .faq-a-inner{padding:0 4px 22px;color:var(--ink);opacity:.85;}
  .weather-strip{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin:34px 0 48px;
    text-align:center;
  }
  .weather-strip div{background:var(--white);box-shadow:var(--shadow);padding:20px 10px;}
  .weather-strip b{display:block;font-family:'Fraunces',serif;font-size:1.5rem;color:var(--sunset);}
  .weather-strip span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--seafoam);}
  @media (max-width:600px){.weather-strip{grid-template-columns:repeat(2,1fr);}}

  /* ===== RSVP (botanical frame card) ===== */
  .rsvp-card{
    position:relative;max-width:600px;margin:0 auto;
    background:var(--white);
    border:1px solid var(--gold);
    border-radius:4px;
    box-shadow:
      inset 0 0 0 6px var(--cream),
      inset 0 0 0 7px var(--gold),
      0 16px 36px rgba(28,26,20,0.14);
    padding:56px 44px 48px;
    text-align:center;
  }
  .rsvp-corner{position:absolute;width:60px;height:60px;}
  .rsvp-corner.tl{top:16px;left:16px;}
  .rsvp-corner.tr{top:16px;right:16px;transform:scaleX(-1);}
  .rsvp-corner.bl{bottom:16px;left:16px;transform:scaleY(-1);}
  .rsvp-corner.br{bottom:16px;right:16px;transform:scale(-1,-1);}
  .rsvp-card .eyebrow{display:block;}
  .rsvp-card h2{margin:0 0 .3em;}
  .rsvp-card .divider{margin:18px auto 22px;}
  .rsvp-card p{font-size:.95rem;line-height:1.7;opacity:.85;margin:0 auto;max-width:420px;}

  @media (max-width:640px){
    .rsvp-card{padding:50px 26px 40px;}
    .rsvp-corner{width:46px;height:46px;}
    .rsvp-corner.tl,.rsvp-corner.tr{top:12px;}
    .rsvp-corner.bl,.rsvp-corner.br{bottom:12px;}
    .rsvp-corner.tl,.rsvp-corner.bl{left:12px;}
    .rsvp-corner.tr,.rsvp-corner.br{right:12px;}
  }

  footer{background:var(--navy);color:var(--seafoam-light);text-align:center;padding:44px 24px 30px;font-size:.85rem;}
  footer .fmono{font-family:'Fraunces',serif;color:var(--gold-pale);font-size:1.3rem;margin-bottom:10px;}

  .placeholder-flag{
    display:inline-block;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;
    color:var(--gold);border:1px dashed var(--gold);padding:2px 8px;margin-left:8px;border-radius:100px;vertical-align:middle;
  }

  hr.section-rule{border:none;border-top:1px solid rgba(76,133,119,0.18);max-width:1040px;margin:0 auto;}
