:root{
    --bg:#f5efe7;
    --text:#191919;
    --heading:#191919;
    --accent:#9b6c74;
    --blue:#8ca7ba;
    --olive:#7e8d68;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    color:var(--text);
    font-family:'Montserrat',system-ui,-apple-system,sans-serif;
    background:var(--bg);
    overflow-x:hidden;
}
body.intro-locked{overflow:hidden;height:100vh}
body::before{
    content:"";
    position:fixed;
    inset:0;
    background:url('assets/global_bg.png') center top/cover no-repeat;
    opacity:.85;
    z-index:-2;
    pointer-events:none;
}
body::after{
    content:"";
    position:fixed;
    inset:0;
    background:linear-gradient(to bottom, rgba(249,245,239,.15), rgba(247,241,233,.28));
    z-index:-1;
    pointer-events:none;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button,input,textarea{font:inherit}
button{cursor:pointer}
main,header,footer{position:relative;z-index:1}

/* opener - full screen only, no modal */
.entry-overlay{
    position:fixed;
    inset:0;
    z-index:1000;
    background:var(--bg);
    display:block;
    transition:opacity .8s ease, visibility .8s ease;
}
.entry-overlay.is-fading{opacity:0;visibility:hidden}
.entry-video-shell{
    display:block;
    width:100vw;
    height:100svh;
    padding:0;
    border:none;
    background:var(--bg);
    position:relative;
    overflow:hidden;
}
.entry-video{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    background:var(--bg);
}
.entry-video-overlay{
    position:absolute;
    left:0;right:0;bottom:44px;
    display:grid;
    gap:8px;
    justify-items:center;
    color:#fffdfb;
    text-shadow:0 2px 10px rgba(0,0,0,.28);
    transition:opacity .3s ease;
}
.entry-overlay.is-playing .entry-video-overlay{opacity:0;pointer-events:none}
.entry-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 18px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.5);
    background:rgba(255,255,255,.12);
    font-size:.8rem;
    letter-spacing:.18em;
    text-transform:uppercase;
}
.entry-video-overlay p{margin:0;font-size:1.05rem;font-weight:500}

.music-toggle{position:fixed;right:18px;bottom:18px;width:52px;height:52px;border:none;border-radius:50%;display:grid;place-items:center;background:rgba(155,108,116,.92);color:#fff;box-shadow:0 12px 30px rgba(84,56,64,.24);z-index:900}
.music-toggle .music-icon{width:22px;height:22px}.music-toggle .music-icon-off{display:none}.music-toggle.is-paused .music-icon-on{display:none}.music-toggle.is-paused .music-icon-off{display:block}

.hero,.section,footer{padding-inline:clamp(18px,4vw,42px)}
.section{padding-block:56px}
.section-heading{text-align:center;margin:0 auto 20px;max-width:760px}
.script.small,.section-kicker{margin:0 0 10px;color:#8d7074;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase}
.section-heading h2{margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;font-size:clamp(2.35rem,6vw,4.4rem);line-height:.95;color:var(--heading)}
.lead{max-width:760px;margin:0 auto 22px;text-align:center;line-height:1.8}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid transparent;border-radius:999px;transition:transform .25s ease,background .25s ease}
.button:hover{transform:translateY(-2px)}
.button.primary{background:var(--accent);color:#fff}
.button.secondary{background:rgba(255,255,255,.72);color:var(--heading);border-color:rgba(123,111,100,.16)}

/* hero */
.hero{min-height:100svh;position:relative;overflow:hidden;background:url('assets/hero_banner.png') center center/cover no-repeat}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(255,251,246,.82) 0%, rgba(255,251,246,.56) 38%, rgba(248,242,235,.16) 54%, rgba(248,242,235,.12) 68%, rgba(247,241,233,.28) 100%)}
.hero-inner{position:relative;z-index:1;min-height:100svh;display:flex;flex-direction:column;align-items:center;text-align:center;padding:84px 10px 80px}
.hero-overline{margin:0 0 12px;color:#765e61;letter-spacing:.34em;text-transform:uppercase;font-size:.84rem}
.hero-title{margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;color:#758fa5;line-height:.84;text-shadow:0 2px 10px rgba(255,255,255,.35)}
.hero-title span{display:block;font-size:clamp(3.6rem,11vw,6.6rem)}
.hero-title em{display:block;font-style:normal;font-weight:400;color:var(--accent);font-size:clamp(2rem,5vw,3rem);margin:.08em 0}
.hero-date-display{margin:18px 0 8px;color:#8f6f74;letter-spacing:.36em;text-transform:uppercase;font-size:.82rem;font-weight:500}
.hero-location{margin:0;color:#5b5550;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.7rem;font-weight:500;text-shadow:0 1px 8px rgba(255,255,255,.22)}
.hero-actions{margin-top:auto;display:flex;justify-content:center;gap:12px;flex-wrap:nowrap;padding-top:34px}
.hero .button{min-width:180px}

/* all sections blend; no cards */
.story-section,.details-section,.timeline-section,.dresscode-section,.gallery-section,.reminder-section,.rsvp-section{max-width:1200px;margin:0 auto;background:transparent;border:none;box-shadow:none}

/* date + curtain */
.curtain-date-section{padding-top:32px;padding-bottom:28px}
.curtain-stage{position:relative;min-height:360px;max-width:980px;margin:0 auto;display:grid;place-items:center}
.curtain{position:absolute;top:4px;width:min(148px,18vw);max-height:360px;object-fit:contain;transition:transform 1s cubic-bezier(.22,.61,.36,1);filter:drop-shadow(0 8px 12px rgba(95,79,72,.05))}
.curtain-left{left:-10px;transform:translateX(0)}
.curtain-right{right:-10px;transform:translateX(0)}
.curtain-stage.is-open .curtain-left{transform:translateX(-34px)}
.curtain-stage.is-open .curtain-right{transform:translateX(34px)}
.date-morph-card{position:relative;z-index:1;width:min(700px,100%);padding:86px 12px 8px;text-align:center;opacity:0;transform:translateY(24px);transition:opacity .8s ease .22s,transform .8s ease .22s}
.curtain-stage.is-open .date-morph-card{opacity:1;transform:none}
.date-morph-card h2{margin:0 0 6px;font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(3.2rem,8vw,5.2rem);line-height:.92;color:#7e9ab0;text-shadow:0 1px 0 rgba(255,255,255,.45)}
.date-time-line{margin:0 0 14px;color:#8f6f74;letter-spacing:.24em;text-transform:uppercase;font-size:.92rem;font-weight:500}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:end;margin-top:16px}
.countdown div{padding:0;background:none;border:none;border-radius:0;box-shadow:none}
.countdown strong{display:block;margin-bottom:4px;color:var(--blue);font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2.5rem,6vw,4rem);font-weight:600;line-height:.9}
.countdown span{display:block;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:#99877d}

/* story */
.story-layout{max-width:760px;margin:0 auto;text-align:center}
.single-story-layout{display:block}
.story-book{width:min(180px,42vw);margin:10px auto 18px;opacity:.98}
.story-copy,.story-copy-plain{padding:0;line-height:1.95;background:transparent;border:none;box-shadow:none;border-radius:0}
.story-copy p{margin:0 0 18px}
.story-copy p:last-child{margin-bottom:0}

/* details */
.detail-highlight{max-width:620px;margin:0 auto 34px;text-align:center}
.detail-highlight strong{display:block;color:var(--heading);font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.3rem)}
.detail-highlight span{display:block;letter-spacing:.16em;text-transform:uppercase;font-size:.82rem;color:#8c7469}
.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;align-items:start}
.detail-card{padding:0;text-align:center;background:transparent;border:none;box-shadow:none;border-radius:0}
.detail-card-icon-wrap{height:160px;display:grid;place-items:center;margin-bottom:8px}
.detail-card-icon{max-height:155px;width:auto}
.venue-type{margin:0 0 10px;letter-spacing:.24em;text-transform:uppercase;font-size:.73rem;color:#8d7074}
.detail-card h3{margin:0 0 8px;font-family:'Cormorant Garamond',serif;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.08;color:var(--heading)}
.venue-place{margin:0 0 14px;line-height:1.7}
.venue-qr{width:92px;height:92px;margin:0 auto 16px;background:#fff;padding:7px;border-radius:0}

/* timeline */
.timeline-shell{--timeline-line-left:84px;position:relative;padding:10px 0 0;display:grid;gap:10px;background:transparent;border:none;box-shadow:none;border-radius:0}
.timeline-line{position:absolute;top:42px;bottom:24px;left:var(--timeline-line-left);width:0;border-left:4px dotted var(--olive)}
.timeline-pearl{position:absolute;left:-19px;top:0;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 35%, #fffefb 0%, #f9efe4 44%, #d9cbbf 72%, #c7b6a8 100%);box-shadow:0 10px 22px rgba(119,95,83,.12);transition:top .18s linear}
.timeline-item{position:relative;display:grid;grid-template-columns:170px 1fr;gap:24px;align-items:start;min-height:140px;padding:10px 0}
.timeline-visual{display:flex;justify-content:flex-start;align-items:flex-start;padding-left:112px;padding-top:20px}
.timeline-visual img{max-width:78px;max-height:78px;object-fit:contain}
.timeline-copy{padding:8px 0}
.timeline-copy time{display:block;margin-bottom:6px;font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:700;color:var(--heading)}
.timeline-copy h3{margin:0 0 6px;font-family:'Cormorant Garamond',serif;font-size:clamp(1.7rem,3vw,2.6rem);color:#68746d}
.timeline-copy p{margin:0;line-height:1.8;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:#645a55;max-width:520px}

/* dress code */
.dresscode-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:34px;align-items:start}
.attire-note,.dresscode-board{padding:0;background:transparent;border:none;box-shadow:none;border-radius:0}
.attire-label{margin:0 0 12px;letter-spacing:.24em;text-transform:uppercase;color:#8d7074;font-size:.73rem}
.attire-note p{margin:0 0 14px;line-height:1.95;font-size:1.02rem}
.dresscode-board img{width:100%;box-shadow:none;border:none;border-radius:0}
.dresscode-board figcaption{text-align:center;margin-top:14px;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:#8d7074}

/* gallery */
.gallery-lead{margin-bottom:28px}
.photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.gallery-item{position:relative;padding:0;border:none;background:transparent;overflow:hidden;box-shadow:none;border-radius:0;transform:none;transition:transform .25s ease}
.gallery-item:hover{transform:translateY(-3px)}
.gallery-item img{width:100%;aspect-ratio:1/1.15;object-fit:cover;border-radius:0}
.gallery-zoom-hint{display:none}

/* reminders and dos/donts */
.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.info-card{padding:0;background:transparent;border:none;box-shadow:none;border-radius:0}
.info-card h3,.etiquette-card h3{margin:0 0 10px;font-family:'Cormorant Garamond',serif;color:var(--heading);font-size:2rem}
.info-card p,.info-card li,.etiquette-card li{line-height:1.9}
.reminders{padding-left:18px;margin:0}
.dos-donts-wrap{margin-top:36px}
.compact-heading h2{font-size:clamp(2rem,5vw,3.4rem)}
.dos-donts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.etiquette-card{padding:0;background:transparent;border:none;box-shadow:none;border-radius:0}
.etiquette-label{margin:0 0 12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#8d7074}
.etiquette-card ul{margin:0;padding-left:18px}

/* rsvp */
.rsvp-section{position:relative;overflow:hidden}
.rsvp-section::before{content:"";position:absolute;inset:0;background:url('assets/rsvp_bg.png') center/cover no-repeat;opacity:.16;pointer-events:none}
.rsvp-section > *{position:relative;z-index:1}
.rsvp-form{max-width:760px;margin:0 auto;padding:0;background:transparent;border:none;box-shadow:none;border-radius:0}
.rsvp-progress{display:flex;justify-content:center;gap:10px;margin-bottom:18px}.rsvp-progress span{width:12px;height:12px;border-radius:50%;background:#d7c9bf;display:block;transition:all .2s ease}.rsvp-progress span.is-active{width:30px;border-radius:999px;background:var(--accent)}
.rsvp-step-kicker{margin:0 0 8px;color:#8d7074;letter-spacing:.2em;text-transform:uppercase;font-size:.73rem}.rsvp-step h3{margin:0 0 20px;font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--heading)}
.form-group{display:grid;gap:10px;margin-bottom:16px}.form-group label,.form-group legend{font-weight:600;color:#665954}.form-group label span{font-weight:400;font-size:.9em;color:#877973}
input[type="text"],input[type="tel"],textarea{width:100%;padding:14px 16px;border:none;border-bottom:1px solid rgba(176,160,147,.48);background:rgba(255,255,255,.48);color:var(--text)}
textarea{resize:vertical;min-height:120px}fieldset.form-group{border:none;padding:0;margin:0 0 16px}.radio-row{display:grid;gap:10px}.radio-row label{display:flex;gap:12px;align-items:center;padding:12px 14px;background:rgba(255,255,255,.34);border-bottom:1px solid rgba(176,160,147,.42)}
.rsvp-wizard-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.form-message{margin:14px 0 0}.form-message.success{color:#3f6b49}.form-message.error{color:#8b4346}

footer{text-align:center;padding-block:42px 56px;color:#7f736c}.footer-small{font-size:.9rem;opacity:.9}

.lightbox{position:fixed;inset:0;background:rgba(17,11,10,.86);display:none;place-items:center;padding:24px;z-index:1200}.lightbox.is-open{display:grid}.lightbox-content{margin:0;max-width:min(900px,100%)}.lightbox-content img{max-width:100%;max-height:78vh;box-shadow:0 25px 80px rgba(0,0,0,.35)}.lightbox-content figcaption{margin-top:14px;text-align:center;color:#fff5ee}.lightbox-close,.lightbox-nav{position:absolute;border:none;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.7rem;display:grid;place-items:center}.lightbox-close{top:20px;right:20px}.lightbox-prev{left:18px;top:50%;transform:translateY(-50%)}.lightbox-next{right:18px;top:50%;transform:translateY(-50%)}

[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .75s ease, transform .75s ease}[data-reveal="fade-left"]{transform:translateX(28px)}[data-reveal="fade-right"]{transform:translateX(-28px)}[data-reveal="zoom-in"]{transform:scale(.96)}[data-reveal].is-visible{opacity:1;transform:none}

@media (max-width: 900px){
    .dresscode-layout,.info-grid,.dos-donts-grid{grid-template-columns:1fr}
}
@media (max-width: 680px){
    .hero-inner{padding-top:88px;padding-bottom:76px;justify-content:flex-start}
    .hero .button{min-width:0;flex:1}
    .countdown{gap:10px}
    .curtain-stage{min-height:200px !important}
    .curtain{width:min(110px,18vw);top:10px}
    .curtain-left{left:-14px}.curtain-right{right:-14px}
    .curtain-stage.is-open .curtain-left{transform:translateX(-20px)}
    .curtain-stage.is-open .curtain-right{transform:translateX(20px)}
    .date-morph-card{padding-top: 0px; margin-top: 0px;}
    .timeline-shell{--timeline-line-left:26px}.timeline-line{top:34px;bottom:24px}
    .timeline-pearl{left:-19px}
    .timeline-item{grid-template-columns:108px 1fr;gap:14px;min-height:122px}
    .timeline-visual{padding-left:50px;padding-top:20px}
    .timeline-visual img{max-width:56px;max-height:56px}
    .timeline-copy time{font-size:1.9rem}.timeline-copy h3{font-size:1.55rem}.timeline-copy p{font-size:.78rem}
    .photo-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}

@media (max-width: 680px){
    .details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
    .detail-card h3{font-size:1.28rem}
    .venue-place{font-size:.92rem}
    .detail-card .button{min-height:42px;padding:10px 14px;font-size:.92rem}
}
@media (max-width: 480px){
    .section{padding-block:50px}
    .hero-title span{font-size:3.95rem}
    .hero-actions{width:100%}
    .countdown{gap:6px}
    .countdown strong{font-size:2.15rem}
    .countdown span{font-size:.56rem}
    .music-toggle{right:14px;bottom:14px}
    .entry-video-overlay{bottom:34px}
}

/* 25 October final corrections — shared black typography and precise pearl center */
body{color:#181818}
main :is(h1,h2,h3,h4,p,span,strong,time,small,label,legend,li,figcaption),
header :is(h1,h2,h3,p,span,em),
footer :is(p,span){color:#181818 !important}
/* Buttons keep intentional contrast, unlike narrative text. */
.hero .button.primary{color:#fff !important}
.hero .button.secondary{color:#181818 !important}
/* The line itself is the coordinate container for the pearl. Its 4px border is centered at x=+2px. */
.timeline-line .timeline-pearl{
    left:-19px !important;
    right:auto !important;
    width:34px;
    height:34px;
    transform:none !important;
}


/* 26 October 2026 — refined story/reminder cards and cohesive floral RSVP */
:root{
    --wedding-date-blue:#83a4bb;
    --wedding-date-blue-soft:#8ca7ba;
    --wedding-card-ink:#252320;
    --wedding-card-border:rgba(179,151,133,.27);
}

/* Restore ONLY date/time numerals to the reference blue.
   The preceding universal black !important rule remains untouched elsewhere. */
main .date-morph-card h2,
main .detail-highlight strong,
header .hero-date-display,
.wedding-footer .footer-date{
    color:var(--wedding-date-blue) !important;
}
main .countdown strong{
    color:var(--wedding-date-blue-soft) !important;
}

/* Our Story — one gentle rounded parchment/glass panel around the whole story. */
.story-section .story-layout{
    width:min(760px,100%);
    padding:clamp(26px,5vw,54px) clamp(22px,5vw,60px);
    border-radius:26px;
    border:1px solid var(--wedding-card-border);
    background:linear-gradient(145deg,rgba(255,254,251,.88),rgba(255,249,244,.72));
    box-shadow:0 16px 45px rgba(111,82,77,.105),inset 0 1px 0 rgba(255,255,255,.92);
    backdrop-filter:blur(5px);
    -webkit-backdrop-filter:blur(5px);
}
.story-section .story-book{width:min(190px,46vw);margin:0 auto 22px;filter:drop-shadow(0 10px 12px rgba(96,81,68,.12))}
.story-section .story-copy{color:var(--wedding-card-ink);line-height:1.95}

/* Reminders — all information and ceremony etiquette panels share the same radius.
   Restrict cards to this section; venue/details/gallery remain as designed. */
.reminder-section .info-grid{gap:clamp(16px,2vw,26px);align-items:stretch}
.reminder-section .info-card,
.reminder-section .etiquette-card{
    border:1px solid var(--wedding-card-border);
    border-radius:22px;
    background:linear-gradient(155deg,rgba(255,254,251,.9),rgba(255,249,244,.78));
    box-shadow:0 12px 32px rgba(111,82,77,.095),inset 0 1px 0 rgba(255,255,255,.9);
    padding:clamp(22px,2.6vw,34px);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
}
.reminder-section .info-card h3{margin-bottom:14px;line-height:1.13}
.reminder-section .info-card p{margin:0}
.reminder-section .info-card li+li{margin-top:8px}
.reminder-section .etiquette-card li+li{margin-top:8px}
.reminder-section .etiquette-card.do-card{border-top:3px solid rgba(119,145,123,.57)}
.reminder-section .etiquette-card.dont-card{border-top:3px solid rgba(160,113,121,.53)}
.reminder-section .dos-donts-wrap{margin-top:clamp(44px,6vw,72px)}

/* A distinct, edge-to-edge RSVP ending. The backdrop belongs to the common
   parent rather than to the form, so it continues uninterrupted to the footer. */
.rsvp-experience{
    position:relative;
    isolation:isolate;
    width:100%;
    overflow:hidden;
    background:#f7e4d5 url('assets/rsvp_bg.png') center center / 100% 100% no-repeat;
    border-top:1px solid rgba(151,112,100,.3);
    box-shadow:0 -12px 38px rgba(111,82,77,.09);
}
.rsvp-experience::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(255,250,243,.09),rgba(255,254,249,.24) 45%,rgba(255,250,243,.09));
}
.rsvp-experience .rsvp-section{
    position:relative;
    z-index:1;
    width:100%;
    max-width:100%;
    margin:0;
    padding:clamp(80px,9vw,125px) clamp(20px,5vw,64px) 25px;
    overflow:visible;
    background:none;
}
.rsvp-experience .rsvp-section::before{content:none}
.rsvp-experience .rsvp-section .section-heading,
.rsvp-experience .rsvp-section .lead,
.rsvp-experience .rsvp-form{max-width:720px;margin-left:auto;margin-right:auto}
.rsvp-experience .rsvp-section .lead{margin-bottom:40px}
.rsvp-experience .rsvp-form{width:100%}
.rsvp-experience .form-group input,
.rsvp-experience .form-group textarea{
    border:1px solid rgba(146,113,98,.24);
    border-radius:11px;
    background:rgba(255,255,255,.72);
}
.rsvp-experience .radio-row label{
    border:1px solid rgba(146,113,98,.2);
    border-radius:11px;
    background:rgba(255,255,255,.62);
}
.rsvp-experience .rsvp-section :is(input,textarea):focus-visible{
    outline:2px solid var(--wedding-date-blue);
    outline-offset:2px;
}
.rsvp-experience .wedding-footer{
    position:relative;
    z-index:1;
    max-width:100%;
    margin:0;
    padding:clamp(55px,7vw,88px) 20px clamp(46px,6vw,74px);
    background:transparent;
    border:0;
    box-shadow:none;
    text-align:center;
}
.rsvp-experience .wedding-footer p{margin:0 0 14px;line-height:1.7}
.rsvp-experience .wedding-footer p:last-child{margin-bottom:0}

@media(max-width:900px){
    .reminder-section .info-grid{grid-template-columns:1fr;max-width:680px;margin-inline:auto}
    .reminder-section .dos-donts-grid{grid-template-columns:1fr;max-width:680px;margin-inline:auto}
}
@media(max-width:680px){
    .story-section .story-layout{border-radius:20px;padding:30px 23px}
    .reminder-section .info-card,.reminder-section .etiquette-card{border-radius:18px;padding:24px 22px}
    .rsvp-experience .rsvp-section{padding:75px clamp(20px,5vw,30px) 20px}
    .rsvp-experience .rsvp-section .lead{margin-bottom:34px}
    .rsvp-experience .wedding-footer{padding:58px 22px 54px}
}


/* 26 October — wedding details displayed as one elegant full-width row per venue.
   Date and title remain typography on the parchment background, NEVER cards. */
.details-section .section-heading,
.details-section .detail-highlight {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
}
.details-section .detail-highlight{
    max-width: 680px;
    margin: 12px auto clamp(26px,4vw,44px);
}
.details-section .details-grid{
    display: grid;
    grid-template-columns: minmax(0,1fr) !important;
    gap: clamp(18px,3vw,27px);
    max-width: 950px;
    margin-inline: auto;
    align-items: stretch;
}
.details-section .detail-card{
    position: relative;
    display: grid;
    grid-template-columns: minmax(135px, .75fr) minmax(0, 1.6fr) minmax(150px,.82fr);
    align-items: center;
    gap: clamp(20px,3vw,40px);
    width: 100%;
    padding: clamp(25px,3.5vw,40px);
    overflow: hidden;
    text-align: left;
    border: 1px solid rgba(166,143,126,.28);
    border-radius: 28px;
    background: linear-gradient(135deg,rgba(255,254,250,.94),rgba(255,249,243,.87));
    box-shadow: 0 16px 42px rgba(108,83,74,.11), inset 0 1px 0 rgba(255,255,255,.92);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
.details-section .detail-card::before{
    content: '';
    position: absolute;
    left: 32px;
    right: 32px;
    top: 0;
    height: 2px;
    background: linear-gradient(90deg,transparent,rgba(148,115,122,.37),transparent);
    pointer-events: none;
}
.details-section .detail-card-icon-wrap{
    height: auto;
    min-height: 168px;
    width: 100%;
    display: grid;
    place-items: center;
    margin: 0;
}
.details-section .detail-card-icon{
    width: min(100%, 185px);
    max-height: 180px;
    object-fit: contain;
    filter: drop-shadow(0 8px 10px rgba(85,82,65,.09));
}
.details-section .detail-card-content { min-width: 0; }
.details-section .detail-card .venue-type{
    margin-bottom: 11px;
    font-size: .78rem;
    letter-spacing: .22em;
}
.details-section .detail-card h3{
    margin: 0 0 10px;
    font-size: clamp(1.9rem,3.1vw,2.85rem);
    line-height: 1.07;
    overflow-wrap: break-word;
}
.details-section .detail-card .venue-place{
    font-size: 1rem;
    margin: 0;
}
.details-section .detail-card-action{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
    width: 100%;
}
.details-section .venue-qr{
    display: block;
    flex: none;
    width: 106px;
    height: 106px;
    margin: 0 auto;
    border-radius: 14px;
    padding: 10px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 5px 20px rgba(90,74,72,.075);
    object-fit: contain;
}
.details-section .detail-card .button.secondary{
    width: 100%;
    min-height: 45px;
    padding: 10px 14px;
    border-color: rgba(166,143,126,.25);
    background: rgba(255,255,255,.83);
    color: #272725;
    font-size: .92rem;
    white-space: nowrap;
}
.details-section .detail-card .button.secondary:hover{
    background: #fff;
    box-shadow: 0 5px 18px rgba(108,83,74,.08);
}
@media(max-width: 720px){
    .details-section .details-grid{gap: 20px}
    .details-section .detail-highlight{margin-bottom: 28px}
    .details-section .detail-card{
        grid-template-columns: minmax(0,1fr);
        gap: 10px;
        padding: 27px clamp(20px,5vw,32px) 25px;
        border-radius: 23px;
        text-align: center;
    }
    .details-section .detail-card-icon-wrap{min-height: 135px}
    .details-section .detail-card-icon{max-height: 145px; width: min(160px,55%)}
    .details-section .detail-card h3{font-size: clamp(1.95rem,6.2vw,2.65rem)}
    .details-section .detail-card .venue-place{font-size: .97rem}
    .details-section .detail-card-action{align-items:center; gap:14px; margin-top:10px}
    .details-section .venue-qr{width:100px; height:100px}
    .details-section .detail-card .button.secondary{max-width:380px;min-height:48px;font-size:1rem}
}
@media(prefers-reduced-motion:reduce){
    .details-section .detail-card .button.secondary{transition:none}
}

/* RSVP email input and anti-spam field (November 2026 database upgrade) */
.rsvp-email-note{font-size:.84rem;line-height:1.55;color:#766c67;margin:-4px 0 8px}
.rsvp-honeypot{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
#guest_email{width:100%}
.rsvp-message{max-width:720px;margin:20px auto 0;padding:0 6px;text-align:center;font-weight:500}
.rsvp-message:empty{display:none}
