
:root{--navy:#061743;--navy-deep:#020817;--navy-mid:#092258;--cream:#fff8ee;--cream-2:#f0dfc5;--gold:#c99b35;--gold-light:#f2d17d;--burgundy:#6d0d29;--ink:#132044;--line:rgba(201,155,53,.72);--shadow:0 18px 44px rgba(2,8,23,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--navy-deep);font-family:"Cormorant Garamond",Georgia,serif;font-size:19px;line-height:1.45}img{display:block;max-width:100%}a{color:inherit}.site-header{background:var(--navy-deep);border-bottom:2px solid var(--gold)}.gate-art{width:100%;height:auto;max-height:280px;object-fit:cover;object-position:center top;background:var(--navy-deep)}.site-nav{margin:0;min-height:51px;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0;background:linear-gradient(180deg,#071d4c,#04132f);border-bottom:1px solid var(--gold);padding:5px 14px}.site-nav a{font-family:"Cinzel",Georgia,serif;color:var(--cream);font-size:11px;font-weight:600;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;padding:10px 16px;border-bottom:2px solid transparent}.site-nav a:hover,.site-nav a.is-active{color:var(--gold-light);border-bottom-color:var(--gold-light)}
.home-hero{background:linear-gradient(90deg,#03102c 0%,#071a47 52%,#061743 100%);position:relative;overflow:hidden;border-bottom:2px solid var(--gold)}.home-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 15%,rgba(201,155,53,.15),transparent 22%),radial-gradient(circle at 25% 88%,rgba(109,13,41,.18),transparent 24%);pointer-events:none}.home-hero-grid{position:relative;z-index:1;width:min(1240px,100%);margin:0 auto;display:grid;grid-template-columns:47% 53%;min-height:660px}.hero-photo{margin:0;display:flex;align-items:stretch;justify-content:center;min-width:0;border-right:1px solid rgba(201,155,53,.72);background:linear-gradient(90deg,#061743,rgba(6,23,67,.25))}.hero-photo img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.hero-copy{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--cream);padding:42px 48px 35px;position:relative}.hero-copy:before,.hero-copy:after{content:"";position:absolute;bottom:0;width:205px;height:178px;background-image:url('../brand/footer-florals-transparent.png');background-repeat:no-repeat;background-size:contain;opacity:.72;pointer-events:none}.hero-copy:before{left:-24px}.hero-copy:after{right:-30px;transform:scaleX(-1)}.eyebrow{font-family:"Cinzel",Georgia,serif;color:var(--gold-light);font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px}.eyebrow.dark{color:#78591e}.couple-names{max-width:700px;margin:0;font-family:"Great Vibes","Brush Script MT",cursive;font-size:clamp(62px,7vw,102px);font-weight:400;line-height:.79;color:#fff}.couple-names span{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-size:.57em;font-weight:600;line-height:.8;color:var(--gold-light);margin:8px 0}.gold-ornament{font-size:25px;color:var(--gold-light);margin:20px 0 13px}.hero-date{font-family:"Cinzel",Georgia,serif;letter-spacing:.14em;text-transform:uppercase;font-size:21px;font-weight:600;margin:0 0 8px}.hero-venue{font-family:"Cinzel",Georgia,serif;color:var(--gold-light);font-size:25px;letter-spacing:.04em;margin:0}.hero-city{font-size:25px;font-style:italic;margin:0 0 20px}.count-label{font-family:"Cinzel",Georgia,serif;text-transform:uppercase;font-size:12px;letter-spacing:.13em;color:var(--cream);margin:7px 0 7px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);width:min(540px,100%);border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);margin:0 auto 20px}.countdown div{padding:10px 6px 8px;border-right:1px solid rgba(201,155,53,.72)}.countdown div:last-child{border:0}.countdown b{font-size:42px;line-height:1;font-weight:600;color:#fff;display:block}.countdown span{display:block;font-family:"Cinzel",Georgia,serif;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-light);margin-top:5px}.hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;position:relative;z-index:1}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:1px solid var(--gold);border-radius:5px;text-decoration:none;cursor:pointer;font-family:"Cinzel",Georgia,serif;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;transition:transform .15s ease,filter .15s ease}.button:hover{transform:translateY(-1px);filter:brightness(1.08)}.button-cream{background:linear-gradient(180deg,#fff6dd,#e9ca8c);color:var(--ink);box-shadow:0 4px 0 #a57722}.button-gold{background:linear-gradient(180deg,#d6a843,#aa7517);color:#fff;box-shadow:0 4px 0 #70490a}.hero-quote{position:relative;z-index:1;font-size:27px;line-height:1.16;margin:23px 0 0}.hero-quote em{color:var(--gold-light)}
.home-cream-band{background:linear-gradient(180deg,#fffaf0,#f1dfc5);padding:46px 18px;border-bottom:2px solid var(--gold)}.home-band-grid{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:42% 58%;gap:45px;align-items:start}.invitation-feature h2,.quick-links h2{font-family:"Cinzel",Georgia,serif;text-align:center;font-size:20px;letter-spacing:.05em;text-transform:uppercase;margin:0;color:var(--navy)}.thin-rule{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);width:min(400px,82%);margin:8px auto 19px;position:relative}.thin-rule:after{content:"◆";position:absolute;left:50%;top:-8px;transform:translateX(-50%);font-size:13px;color:var(--gold);background:transparent}.invitation-feature img{width:min(430px,100%);margin:0 auto;border:1px solid var(--gold);box-shadow:var(--shadow);background:var(--navy)}.quick-links{padding-top:2px}.quick-link{display:grid;grid-template-columns:85px 1fr 24px;align-items:center;gap:16px;min-height:118px;margin:0 0 18px;padding:18px 20px;border:1px solid var(--gold);background:linear-gradient(90deg,#071b46,#04132f);color:var(--cream);border-radius:11px;text-decoration:none;box-shadow:0 9px 20px rgba(2,8,23,.13)}.quick-link:hover{background:#0a275f}.quick-icon{width:70px;height:70px;border:1px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold-light);font-size:44px;font-family:Georgia}.quick-link strong{display:block;font-family:"Cinzel",Georgia,serif;color:#fff;font-size:18px;text-transform:uppercase;letter-spacing:.04em}.quick-link em{display:block;font-size:20px;line-height:1.1;margin-top:6px}.quick-link b{font-size:40px;color:var(--gold-light);font-weight:400}
.inner-page{min-height:800px;background:radial-gradient(circle at 4% 9%,rgba(109,13,41,.1),transparent 14%),radial-gradient(circle at 96% 92%,rgba(201,155,53,.13),transparent 16%),linear-gradient(180deg,#fffaf1,#f1dfc4);padding:52px max(18px,4vw) 70px}.page-intro{width:min(900px,100%);text-align:center;margin:0 auto 36px}.page-intro h1{font-family:"Cinzel",Georgia,serif;font-size:clamp(34px,5vw,56px);font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin:0}.page-intro p:last-child{font-size:23px;margin:0 auto;max-width:750px}.rsvp-layout{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:42% 58%;gap:42px;align-items:start}.rsvp-invite-side{background:var(--navy);border:1px solid var(--gold);padding:23px;box-shadow:var(--shadow);text-align:center}.rsvp-invite-side img{width:min(420px,100%);margin:0 auto}.rsvp-invite-side p{color:var(--cream);font-size:22px;margin:18px 0 0}.rsvp-form-panel{background:rgba(255,252,244,.94);border:1px solid var(--gold);box-shadow:var(--shadow);padding:clamp(22px,4vw,45px)}.rsvp-form-panel h2{font-family:"Cinzel",Georgia,serif;font-size:clamp(25px,3vw,35px);color:var(--navy);margin:0 0 12px}.rsvp-form-panel p{font-size:21px}.rsvp-form-panel form{margin-top:23px}.rsvp-form-panel fieldset{border:1px solid var(--line);margin:18px 0;padding:18px}.rsvp-form-panel legend{font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:15px;letter-spacing:.08em;text-transform:uppercase;padding:0 8px}.field-grid{display:grid;gap:14px}.field-grid.two{grid-template-columns:1fr 1fr}.rsvp-form-panel label{display:flex;flex-direction:column;gap:6px;font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin:13px 0}.rsvp-form-panel input,.rsvp-form-panel select,.rsvp-form-panel textarea{font:inherit;font-size:18px;color:var(--ink);border:1px solid #cba65b;border-radius:4px;background:#fffdf9;padding:10px}.rsvp-form-panel textarea{resize:vertical}.microcopy{font-size:17px!important;color:#665c48}.guest-name-fields{display:grid;gap:16px}.guest-card{padding:15px;border-left:4px solid var(--gold);background:#fff8e9}.guest-card h3{font-family:"Cinzel",Georgia,serif;font-size:15px;color:var(--navy);margin:0}.same-name{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-family:"Cormorant Garamond",Georgia,serif!important;font-size:18px!important;text-transform:none!important;letter-spacing:0!important}.same-name input{width:auto}.form-status{font-size:18px!important;margin:14px 0 0;color:#175a2a}.signoff{text-align:center;font-style:italic;margin-top:24px!important}
.story-layout,.venue-host-layout{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:42% 58%;gap:42px;align-items:start}.story-photo,.host-photo{margin:0;background:var(--navy);padding:14px;border:1px solid var(--gold);box-shadow:var(--shadow)}.story-photo img,.host-photo img{width:100%;height:auto;object-fit:contain}.story-text,.host-welcome{background:rgba(255,252,244,.92);border:1px solid var(--gold);box-shadow:var(--shadow);padding:clamp(25px,4vw,44px)}.story-text h2,.host-welcome h2{font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:28px;letter-spacing:.04em;margin:0 0 14px}.story-text p,.host-welcome p{font-size:22px;margin:0 0 15px}.story-timeline{list-style:none;margin:25px 0 0;padding:0;border-left:2px solid var(--gold)}.story-timeline li{position:relative;padding:0 0 18px 27px}.story-timeline li:before{content:"";position:absolute;width:13px;height:13px;border:2px solid var(--gold-light);background:var(--burgundy);border-radius:50%;left:-8px;top:5px}.story-timeline strong{display:block;font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:16px}.story-timeline span{font-size:19px}.family-photo-reserve{width:min(1120px,100%);margin:36px auto 0;text-align:center;padding:32px;border:1px solid var(--gold);background:rgba(255,252,244,.84);box-shadow:var(--shadow)}.family-photo-reserve h2{font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:25px;margin:0}.family-photo-reserve p{font-size:21px}.photo-placeholders{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:23px}.photo-placeholders span{height:150px;border:2px dashed #cba65b;background:var(--cream-2);display:flex;align-items:center;justify-content:center;font-family:"Cinzel",Georgia,serif;color:#815d1c;font-size:14px;text-transform:uppercase}
.event-grid{width:min(1120px,100%);margin:0 auto;display:grid;grid-template-columns:60% 40%;gap:28px}.timeline-card,.games-card{background:rgba(255,252,244,.93);border:1px solid var(--gold);box-shadow:var(--shadow);padding:30px}.timeline-card h2,.tap-it-card h2,.games-card h2,.messages-band h2,.calendar-callout h2,.directions-copy h2,.venue-features h2{font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:25px;margin:0 0 18px}.day-timeline{margin:0}.day-timeline div{display:grid;grid-template-columns:100px 1fr;gap:15px;padding:18px 0;border-bottom:1px solid rgba(201,155,53,.42)}.day-timeline div:last-child{border-bottom:0}.day-timeline dt{font-family:"Cinzel",Georgia,serif;color:#805b18;font-size:15px;font-weight:700}.day-timeline dd{margin:0}.day-timeline dd strong{display:block;font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:16px}.day-timeline dd span{display:block;font-size:19px}.event-side{display:grid;gap:28px}.tap-it-card{background:linear-gradient(180deg,#0a2861,#041330);color:var(--cream);border:1px solid var(--gold);padding:30px;box-shadow:var(--shadow);text-align:center}.tap-it-card h2{color:var(--gold-light)}.tap-it-card p{font-size:20px}.tap-icon{font-family:Georgia;font-size:84px;line-height:1;color:var(--gold-light);margin:8px}.games-card ul{margin:0;padding-left:22px;font-size:20px;columns:2}.messages-band{width:min(1120px,100%);margin:30px auto 0;text-align:center;background:rgba(255,252,244,.92);border:1px solid var(--gold);padding:34px;box-shadow:var(--shadow)}.messages-band p{font-size:21px;margin:0 0 22px}.message-options{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.message-options a{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--gold);background:linear-gradient(180deg,#fff8ec,#edd4a8);padding:15px}.message-options strong{font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:15px;text-transform:uppercase}.message-options span{font-size:18px;color:var(--ink);margin-top:8px}.calendar-callout{width:min(850px,100%);margin:30px auto 0;text-align:center;background:linear-gradient(180deg,#0a2861,#041330);border:1px solid var(--gold);padding:30px;color:var(--cream);box-shadow:var(--shadow)}.calendar-callout h2{color:var(--gold-light)}.calendar-callout p{font-size:22px}.calendar-callout div{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.directions-panel{width:min(1120px,100%);margin:32px auto 0;display:grid;grid-template-columns:45% 55%;background:rgba(255,252,244,.92);border:1px solid var(--gold);box-shadow:var(--shadow)}.directions-copy{padding:36px}.directions-copy p{font-size:21px}.directions-panel iframe{border:0;width:100%;min-height:390px}.map-actions{display:flex;gap:10px;flex-wrap:wrap}.venue-features{width:min(1120px,100%);margin:30px auto 0;text-align:center}.venue-features h2{font-size:28px}.venue-features>div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.venue-features span{border:1px solid var(--gold);background:#fff8eb;padding:12px 16px;font-family:"Cinzel",Georgia,serif;font-size:13px;color:var(--navy);text-transform:uppercase;letter-spacing:.04em}
.album-grid{width:min(1180px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.album-card{display:flex;flex-direction:column;min-height:265px;border:1px solid var(--gold);background:rgba(255,252,244,.92);box-shadow:var(--shadow);overflow:hidden;text-align:left;cursor:pointer;padding:0}.album-card:hover{transform:translateY(-2px)}.album-card .album-image{height:153px;background:linear-gradient(145deg,#061743,#0a2861);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.album-card .album-image img{width:100%;height:100%;object-fit:cover}.album-card .album-image .folder-mark{font-family:"Cinzel",Georgia,serif;font-size:16px;color:var(--gold-light);letter-spacing:.09em;text-align:center}.album-card .album-body{padding:18px}.album-card strong{display:block;font-family:"Cinzel",Georgia,serif;font-size:15px;color:var(--navy);text-transform:uppercase;letter-spacing:.05em}.album-card span{display:block;font-size:18px;color:#5f543b;margin-top:7px;line-height:1.15}.gallery-note{width:min(900px,100%);margin:35px auto 0;background:var(--navy);border:1px solid var(--gold);padding:30px;text-align:center;color:var(--cream);box-shadow:var(--shadow)}.gallery-note h2{font-family:"Cinzel",Georgia,serif;color:var(--gold-light);font-size:24px;margin:0}.gallery-note p{font-size:21px;margin:10px 0 0}.album-modal{position:fixed;inset:0;z-index:30;background:rgba(2,8,23,.78);padding:30px;overflow:auto}.album-modal[hidden]{display:none}.modal-dialog{position:relative;width:min(1120px,100%);margin:0 auto;background:#fff9ef;border:1px solid var(--gold);padding:35px;box-shadow:var(--shadow)}.modal-dialog h2{font-family:"Cinzel",Georgia,serif;color:var(--navy);margin:0}.modal-dialog p{font-size:20px}.modal-close{position:absolute;right:16px;top:11px;border:0;background:transparent;color:var(--navy);font-size:38px;line-height:1;cursor:pointer}.album-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.album-photos figure{margin:0;border:1px solid var(--gold);background:#fff}.album-photos img{width:100%;height:260px;object-fit:cover}.album-photos figcaption{padding:8px 10px;font-size:17px}.empty-album{grid-column:1/-1;padding:35px;text-align:center;border:2px dashed #cba65b;background:#f8e8ca;font-size:21px}
.registry-page{display:flex;flex-direction:column;align-items:center}.registry-card{width:min(700px,100%);text-align:center;background:rgba(255,252,244,.93);border:1px solid var(--gold);box-shadow:var(--shadow);padding:55px 35px}.registry-card p{font-size:25px}.messages-page .message-page-grid{width:min(1050px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.message-page-grid article{text-align:center;background:rgba(255,252,244,.93);border:1px solid var(--gold);box-shadow:var(--shadow);padding:35px 20px}.message-page-grid h2{font-family:"Cinzel",Georgia,serif;color:var(--navy);font-size:22px}.message-page-grid p{font-size:21px}.message-page-grid button:disabled{filter:grayscale(.25);cursor:not-allowed}
.site-footer{position:relative;min-height:230px;background:linear-gradient(180deg,#061a46,#020817);border-top:2px solid var(--gold);color:var(--cream);padding:42px max(24px,8vw) 28px;display:grid;grid-template-columns:1fr 320px 1fr;gap:25px;align-items:center;text-align:center;overflow:hidden}.site-footer:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 25%,rgba(201,155,53,.12),transparent 25%)}.site-footer>*{position:relative;z-index:1}.footer-florals{width:290px;max-width:100%;justify-self:center;align-self:center}.footer-hosts,.footer-venue{display:flex;flex-direction:column;gap:3px;font-size:21px}.footer-hosts span:first-child{font-style:italic}.footer-hosts strong,.footer-venue strong{font-family:"Cinzel",Georgia,serif;color:var(--gold-light);font-size:17px;letter-spacing:.06em;text-transform:uppercase}.site-footer small{grid-column:1/-1;font-size:15px;opacity:.85}
@media(max-width:850px){body{font-size:17px}.gate-art{max-height:none}.site-nav{gap:0;padding:2px 4px}.site-nav a{font-size:8px;padding:8px 8px;letter-spacing:.04em}.home-hero-grid{min-height:520px;grid-template-columns:45% 55%}.hero-copy{padding:25px 10px 25px}.couple-names{font-size:clamp(38px,10.2vw,68px)}.eyebrow{font-size:9px}.hero-date{font-size:13px;letter-spacing:.08em}.hero-venue{font-size:17px}.hero-city{font-size:17px;margin-bottom:12px}.count-label{font-size:8px}.countdown b{font-size:26px}.countdown span{font-size:7px}.button{min-height:38px;padding:9px 9px;font-size:8px;letter-spacing:.03em}.hero-actions{gap:8px}.hero-quote{font-size:18px;margin-top:17px}.hero-copy:before,.hero-copy:after{width:120px;height:90px;opacity:.42}.home-cream-band{padding:28px 10px}.home-band-grid{grid-template-columns:42% 58%;gap:12px}.invitation-feature h2,.quick-links h2{font-size:11px}.thin-rule{margin:5px auto 11px}.quick-link{grid-template-columns:39px 1fr 12px;gap:8px;min-height:77px;margin-bottom:9px;padding:10px 9px;border-radius:7px}.quick-icon{width:34px;height:34px;font-size:23px}.quick-link strong{font-size:10px}.quick-link em{font-size:13px;line-height:1.0;margin-top:3px}.quick-link b{font-size:25px}.inner-page{padding:33px 15px 45px}.page-intro{margin-bottom:25px}.page-intro h1{font-size:28px}.page-intro p:last-child{font-size:18px}.rsvp-layout,.story-layout,.venue-host-layout,.directions-panel{grid-template-columns:1fr;gap:20px}.rsvp-invite-side{max-width:430px;margin:0 auto;width:100%}.rsvp-form-panel{padding:20px}.rsvp-form-panel h2{font-size:24px}.rsvp-form-panel p{font-size:19px}.field-grid.two{grid-template-columns:1fr}.story-text,.host-welcome{padding:25px}.story-text h2,.host-welcome h2{font-size:24px}.story-text p,.host-welcome p{font-size:19px}.photo-placeholders{grid-template-columns:repeat(2,1fr)}.photo-placeholders span{height:110px}.event-grid{grid-template-columns:1fr;gap:20px}.event-side{grid-template-columns:1fr 1fr;gap:16px}.tap-it-card,.games-card,.timeline-card{padding:20px}.games-card ul{columns:1;font-size:18px}.day-timeline div{grid-template-columns:80px 1fr;padding:13px 0}.day-timeline dd span{font-size:17px}.message-options{grid-template-columns:1fr;gap:10px}.message-options a{min-height:92px}.calendar-callout{padding:23px 15px}.directions-panel iframe{min-height:290px}.album-grid{grid-template-columns:repeat(2,1fr);gap:12px}.album-card{min-height:210px}.album-card .album-image{height:104px}.album-card .album-body{padding:12px}.album-card strong{font-size:10px}.album-card span{font-size:14px}.album-photos{grid-template-columns:repeat(2,1fr)}.album-photos img{height:190px}.site-footer{grid-template-columns:1fr;min-height:0;padding:30px 14px 21px;gap:13px}.footer-florals{width:240px;order:-1}.footer-hosts,.footer-venue{font-size:18px}.site-footer small{grid-column:auto;font-size:12px}.messages-page .message-page-grid{grid-template-columns:1fr}.hero-photo img{object-position:center center}}
@media(max-width:420px){.site-nav a{font-size:7px;padding:7px 6px}.hero-date{font-size:11px}.hero-venue{font-size:15px}.hero-city{font-size:15px}.countdown b{font-size:22px}.countdown span{font-size:6px}.couple-names{font-size:37px}.home-hero-grid{min-height:480px}.album-grid{grid-template-columns:1fr}.event-side{grid-template-columns:1fr}.album-photos{grid-template-columns:1fr}}


/* ---------------------------------------------------------
   CORRECTIONS ONLY — RSVP fit, original invitation actions,
   Our Story layout, and Wedding Tap-It Experience
   --------------------------------------------------------- */
/* Prevent any page grid, field, or panel from exposing a black edge on small screens. */
html, body { max-width:100%; overflow-x:clip; }
body { background:var(--navy); }

/* The old 42% + 58% grids plus a gap exceeded 100% width. Fr units keep the gap inside the page width. */
.rsvp-layout { grid-template-columns:minmax(0,42fr) minmax(0,58fr); }
.story-layout, .venue-host-layout { grid-template-columns:minmax(0,42fr) minmax(0,58fr); }
.event-grid { grid-template-columns:minmax(0,60fr) minmax(0,40fr); align-items:start; }
.directions-panel { grid-template-columns:minmax(0,45fr) minmax(0,55fr); }
.rsvp-layout > *, .story-layout > *, .event-grid > *, .directions-panel > * { min-width:0; }

/* RSVP — keep the form within the cream panel at every viewport width. */
.rsvp-page { overflow-x:clip; }
.rsvp-invite-side, .rsvp-form-panel { width:100%; max-width:100%; min-width:0; }
.rsvp-form-panel { overflow:hidden; }
.rsvp-form-panel fieldset { min-width:0; max-width:100%; }
.field-grid, .field-grid > *, .rsvp-form-panel label { min-width:0; max-width:100%; }
.rsvp-form-panel input, .rsvp-form-panel select, .rsvp-form-panel textarea {
  width:100%; max-width:100%; min-width:0;
}
.rsvp-invite-side {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  overflow:hidden;
  min-height:100%;
  background:linear-gradient(180deg,#092258 0%,#061743 66%,#082052 100%);
}
.invitation-download-image {
  display:block;
  width:min(420px,100%);
  border:1px solid rgba(242,209,125,.88);
  transition:transform .15s ease, filter .15s ease;
}
.invitation-download-image:hover, .invitation-download-image:focus-visible {
  transform:translateY(-2px);
  filter:brightness(1.06);
  outline:2px solid var(--gold-light);
  outline-offset:4px;
}
.invitation-download-image img { width:100%; margin:0; }
.invitation-actions {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  width:100%;
  margin:18px 0 4px;
  position:relative;
  z-index:1;
}
.button-outline-cream {
  color:var(--cream);
  background:transparent;
  border-color:var(--gold-light);
  box-shadow:none;
}
.button-outline-cream:hover { background:rgba(242,209,125,.15); }
.rsvp-invite-floral {
  width:min(315px,100%);
  height:146px;
  margin-top:auto;
  background:url('../brand/footer-florals-transparent.png') center bottom / contain no-repeat;
  opacity:.96;
  pointer-events:none;
}

/* Our Story — fills the old empty left column without inventing people or altering a photo. */
.story-layout-expanded { align-items:start; }
.story-photo-column { display:grid; gap:24px; min-width:0; }
.story-highschool-slot { min-height:260px; display:grid; place-items:center; overflow:hidden; }
.highschool-photo-placeholder {
  width:100%; min-height:260px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:var(--cream);
  background:
    linear-gradient(180deg,rgba(6,23,67,.7),rgba(6,23,67,.85)),
    url('../brand/footer-florals-transparent.png') center bottom / 84% auto no-repeat,
    linear-gradient(135deg,#0a2861,#061743);
  padding:28px 22px 72px;
}
.highschool-photo-placeholder span {
  font-family:"Cinzel",Georgia,serif;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--gold-light);
  font-size:18px;
}
.highschool-photo-placeholder small {
  margin-top:10px;
  max-width:230px;
  color:var(--cream);
  font-size:18px;
  line-height:1.2;
}
.story-text p { font-size:21px; }
.story-timeline li { padding-bottom:17px; }

/* Event Details — keep the itinerary naturally sized and make Tap-It clear, fun, and wedding-elegant. */
.timeline-card { align-self:start; }
.tap-it-card { text-align:left; background:linear-gradient(180deg,#0d3474 0%,#061743 100%); }
.tap-it-card h2 { font-size:clamp(22px,2.3vw,29px); line-height:1.18; margin:0 0 11px; text-align:center; }
.tap-it-kicker {
  margin:0 0 7px;
  text-align:center;
  color:var(--gold-light);
  font-family:"Cinzel",Georgia,serif;
  font-size:11px!important;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.tap-it-card .tap-icon { text-align:center; font-size:62px; margin:2px 0 7px; }
.tap-it-card .tap-it-lead, .tap-it-card .tap-it-close { font-size:19px; line-height:1.36; margin:12px 0; }
.tap-it-features {
  margin:15px 0;
  padding:14px 0 12px 20px;
  border-top:1px solid rgba(242,209,125,.55);
  border-bottom:1px solid rgba(242,209,125,.55);
  columns:1;
  font-size:18px;
  line-height:1.42;
}
.tap-it-features li { margin:5px 0; }
.tap-it-close { color:var(--gold-light); font-style:italic; }

@media (max-width:960px) {
  .rsvp-layout, .story-layout, .venue-host-layout, .event-grid, .directions-panel { grid-template-columns:1fr; gap:22px; }
  .rsvp-invite-side { min-height:0; }
  .rsvp-invite-floral { height:118px; margin-top:12px; }
}
@media (max-width:560px) {
  .rsvp-form-panel { padding:18px 16px; }
  .rsvp-form-panel fieldset { padding:14px 12px; }
  .invitation-actions { flex-direction:column; }
  .invitation-actions .button { width:min(100%,300px); }
  .story-highschool-slot, .highschool-photo-placeholder { min-height:220px; }
  .tap-it-card { padding:23px 19px; }
  .tap-it-card .tap-it-lead, .tap-it-card .tap-it-close { font-size:18px; }
  .tap-it-features { font-size:17px; }
}


/* Our Story photo order: exact Middle School Sweet Hearts image first, engagement image second. */
.story-photo figcaption {
  padding:10px 8px 2px;
  color:var(--gold-light);
  text-align:center;
  font-family:"Cinzel",Georgia,serif;
  font-size:12px;
  letter-spacing:.10em;
  text-transform:uppercase;
}


/* Locked home hero restoration — original couple photograph fills the portrait panel with no navy gap above it. */
.home-hero {
  background:
    radial-gradient(circle at 72% 16%, rgba(201,155,53,.16), transparent 22%),
    linear-gradient(90deg, #041330 0%, #071d4d 48%, #061743 100%);
}
.home-hero-grid {
  width:min(1440px,100%);
  min-height:720px;
  grid-template-columns:45% 55%;
}
.hero-photo {
  position:relative;
  overflow:hidden;
  background:#061743;
  border-right:1px solid rgba(201,155,53,.82);
}
.hero-photo::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(2,8,23,.10), transparent 25%, transparent 72%, rgba(6,23,67,.16));
}
.hero-photo img {
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
}
.hero-copy {
  min-width:0;
  padding:48px clamp(20px,4vw,72px) 39px;
  background:
    radial-gradient(circle at 80% 20%, rgba(242,209,125,.08), transparent 26%),
    linear-gradient(180deg, rgba(11,39,92,.97), rgba(3,17,49,.99));
}
.hero-copy::before,
.hero-copy::after {
  width:240px;
  height:150px;
  bottom:-4px;
  background-image:url('../brand/footer-florals-transparent.png');
  opacity:1;
}
.hero-copy::before { left:-20px; }
.hero-copy::after { right:-20px; }
.hero-copy .gold-ornament {
  margin:16px 0 12px;
  text-shadow:0 0 12px rgba(242,209,125,.18);
}
.hero-copy .hero-actions { margin-top:1px; }
.hero-copy .hero-quote { margin-top:26px; }

/* The flower asset has true transparency; this prevents a gray/black rectangle behind florals on every footer and floral accent. */
.footer-florals,
.rsvp-invite-floral,
.hero-copy::before,
.hero-copy::after { background-color:transparent; }
.footer-florals { mix-blend-mode:normal; }

/* Event Details — locked itinerary note, Tap-It device experience, Margarita Bar, and Celebration Hour order. */
.itinerary-note {
  margin:20px 0 0;
  padding:12px 14px;
  border-left:3px solid var(--gold);
  background:rgba(240,223,197,.48);
  color:#665c48;
  font-size:17px;
  line-height:1.3;
}
.tapit-device-mark {
  display:flex;
  justify-content:center;
  color:var(--gold-light);
  margin:2px auto 8px;
  width:132px;
}
.tapit-device-mark svg { width:100%; height:auto; display:block; }
.tap-it-card .tap-it-lead { margin:9px 0 14px; }
.tap-it-flow {
  list-style:none;
  counter-reset:tapstep;
  padding:0;
  margin:16px 0 17px;
  border-top:1px solid rgba(242,209,125,.55);
  border-bottom:1px solid rgba(242,209,125,.55);
}
.tap-it-flow li {
  position:relative;
  counter-increment:tapstep;
  padding:13px 0 13px 42px;
  border-bottom:1px solid rgba(242,209,125,.22);
  font-size:18px;
  line-height:1.28;
}
.tap-it-flow li:last-child { border-bottom:0; }
.tap-it-flow li::before {
  content:counter(tapstep);
  position:absolute;
  left:0;
  top:13px;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border:1px solid var(--gold-light);
  border-radius:50%;
  color:var(--gold-light);
  font-family:"Cinzel",Georgia,serif;
  font-size:12px;
}
.tap-it-flow strong { display:block; color:#fff; font-family:"Cinzel",Georgia,serif; font-size:13px; letter-spacing:.035em; }
.tap-it-flow span { display:block; color:var(--cream); margin-top:3px; }
.margarita-bar-card {
  display:flex;
  align-items:center;
  gap:14px;
  padding:19px 21px;
  background:linear-gradient(135deg,#fffaf1,#edd4a5);
  border:1px solid var(--gold);
  box-shadow:var(--shadow);
}
.margarita-bar-card .margarita-icon {
  flex:0 0 42px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid var(--gold);
  border-radius:50%;
  color:#875f18;
  font-size:22px;
}
.margarita-bar-card h2 {
  margin:0 0 3px;
  color:var(--navy);
  font-family:"Cinzel",Georgia,serif;
  font-size:19px;
}
.margarita-bar-card p { margin:0; color:var(--ink); font-size:18px; line-height:1.22; }
.games-card ul { columns:2; }

@media (max-width:850px) {
  .home-hero-grid { min-height:620px; grid-template-columns:45% 55%; }
  .hero-photo img { object-position:center center; }
  .hero-copy { padding:31px 13px 30px; }
  .hero-copy::before,
  .hero-copy::after { width:135px; height:95px; bottom:-4px; opacity:.95; }
  .hero-copy::before { left:-18px; }
  .hero-copy::after { right:-18px; }
  .tap-it-flow li { font-size:17px; padding-left:38px; }
  .tap-it-flow li::before { width:24px; height:24px; }
  .margarita-bar-card { padding:16px; }
}
@media (max-width:560px) {
  .home-hero-grid { min-height:570px; }
  .tapit-device-mark { width:112px; }
  .tap-it-flow li { font-size:16px; }
  .tap-it-flow strong { font-size:12px; }
  .games-card ul { columns:1; }
}


/* ========================= FINAL LOCKED PAGE CORRECTIONS =========================
   Keep the original public layout. These rules only implement the approved refinements. */
html, body { background:var(--navy); overflow-x:clip; }
.site-header, .gate-art { background:var(--navy) !important; }
.site-nav { background:linear-gradient(180deg,#092258,#061743) !important; }
.site-footer { background:linear-gradient(180deg,#0b2a63 0%,#061743 100%) !important; }
.footer-florals { background:transparent !important; mix-blend-mode:normal; }

/* Home hero: preserve the exact photograph but give the quote a high-contrast navy field over the florals. */
.hero-quote {
  color:#fff !important;
  font-weight:700;
  text-shadow:0 2px 4px rgba(0,0,0,.70), 0 0 11px rgba(0,0,0,.55);
  background:rgba(6,23,67,.82);
  border:1px solid rgba(242,209,125,.60);
  border-radius:999px;
  padding:8px 18px 9px;
  max-width:calc(100% - 28px);
}
.hero-quote em { color:#fff !important; font-weight:700; }
.quick-icon { font-family:inherit; }
.quick-icon svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.quick-icon svg circle { fill:none; }

/* RSVP heading is intentionally fuller and more inviting, while the existing RSVP layout remains unchanged. */
.rsvp-page-intro {
  position:relative;
  overflow:hidden;
  min-height:174px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:30px clamp(22px,6vw,86px);
  background:linear-gradient(135deg,#0a2861 0%,#061743 58%,#0a2861 100%);
  border:1px solid var(--gold);
  box-shadow:var(--shadow);
}
.rsvp-page-intro::before,
.rsvp-page-intro::after {
  content:"";
  position:absolute;
  bottom:-10px;
  width:250px;
  height:150px;
  background:url('../brand/footer-florals-transparent.png') center / contain no-repeat;
  pointer-events:none;
  opacity:.96;
}
.rsvp-page-intro::before { left:-36px; }
.rsvp-page-intro::after { right:-36px; transform:scaleX(-1); }
.rsvp-page-intro > * { position:relative; z-index:1; }
.rsvp-page-intro .eyebrow.dark { color:var(--gold-light); }
.rsvp-page-intro h1 { color:#fff; }
.rsvp-page-intro .thin-rule { margin-bottom:8px; }
.rsvp-intro-copy { margin:0; color:var(--cream); font-size:21px; font-style:italic; }

/* Make every RSVP control stay within the cream panel at phone widths. */
.rsvp-layout, .rsvp-layout > *, .rsvp-form-panel, .rsvp-form-panel fieldset,
.rsvp-form-panel label, .field-grid, .field-grid > * { min-width:0; max-width:100%; }
.rsvp-form-panel input, .rsvp-form-panel select, .rsvp-form-panel textarea { width:100%; min-width:0; max-width:100%; }

/* Floating, accessible return-to-top control on long event/story/RSVP pages. */
.back-to-top {
  position:fixed;
  right:max(18px,3vw);
  bottom:max(18px,3vw);
  z-index:50;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid var(--gold-light);
  border-radius:50%;
  background:linear-gradient(180deg,#123778,#061743);
  color:var(--gold-light);
  box-shadow:0 8px 18px rgba(2,8,23,.35);
  text-decoration:none;
  opacity:0;
  transform:translateY(14px);
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease,filter .15s ease;
}
.back-to-top.is-visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.back-to-top:hover,.back-to-top:focus-visible { filter:brightness(1.18); outline:2px solid #fff; outline-offset:3px; }
.back-to-top svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }

/* Event Details internal navigation, new condensed experience card, and seating-chart link. */
.event-subnav {
  width:min(1120px,100%);
  margin:0 auto 26px;
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  padding:9px;
  border:1px solid rgba(201,155,53,.72);
  background:rgba(255,252,244,.70);
  box-shadow:0 7px 18px rgba(2,8,23,.10);
}
.event-subnav a {
  padding:9px 14px;
  border:1px solid transparent;
  font-family:"Cinzel",Georgia,serif;
  font-size:12px;
  letter-spacing:.045em;
  color:var(--navy);
  text-decoration:none;
  text-transform:uppercase;
}
.event-subnav a:hover,.event-subnav a.is-active { border-color:var(--gold); background:var(--navy); color:var(--gold-light); }
.event-main-column { min-width:0; display:grid; gap:22px; }
.event-grid-overview { grid-template-columns:minmax(0,60fr) minmax(0,40fr); }
.event-side { min-width:0; }
.tap-it-preview-card,.seating-preview-card {
  display:block;
  text-decoration:none;
  min-width:0;
  padding:26px;
  border:1px solid var(--gold);
  box-shadow:var(--shadow);
  transition:transform .15s ease, filter .15s ease;
}
.tap-it-preview-card:hover,.seating-preview-card:hover { transform:translateY(-2px); filter:brightness(1.04); }
.tap-it-preview-card { background:linear-gradient(180deg,#0d3474 0%,#061743 100%); color:var(--cream); }
.tap-it-preview-card h2 { color:var(--gold-light); font-family:"Cinzel",Georgia,serif; font-size:24px; line-height:1.16; text-align:center; margin:0 0 10px; }
.tap-it-preview-card p { font-size:19px; line-height:1.32; margin:8px 0 12px; }
.tap-it-preview-card .tapit-device-mark { color:var(--gold-light); margin:0 auto 6px; }
.seating-preview-card { background:linear-gradient(180deg,#fffaf1,#f0d7aa); color:var(--ink); }
.seating-preview-card h2 { color:var(--navy); font-family:"Cinzel",Georgia,serif; font-size:22px; line-height:1.16; text-align:center; margin:0 0 10px; }
.seating-preview-card p:not(.tap-it-kicker) { font-size:18px; line-height:1.3; margin:8px 0 12px; }
.seating-map-icon { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 6px; color:#875f18; border:1px solid var(--gold); border-radius:50%; }
.seating-map-icon svg { width:37px; height:37px; fill:none; stroke:currentColor; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
.card-action { display:flex; justify-content:space-between; align-items:center; padding-top:11px; border-top:1px solid rgba(242,209,125,.46); font-family:"Cinzel",Georgia,serif; color:var(--gold-light); font-size:12px; letter-spacing:.05em; text-transform:uppercase; }
.seating-preview-card .card-action { border-color:rgba(135,95,24,.36); color:#805b18; }
.card-action b { font-size:24px; line-height:.6; }
.margarita-bar-card.itinerary-margarita-card { margin:0; min-height:0; }
.margarita-kicker { margin:0 0 3px !important; color:#805b18 !important; font-family:"Cinzel",Georgia,serif; font-size:10px !important; letter-spacing:.09em; text-transform:uppercase; }
.margarita-bar-card .margarita-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }

/* Wedding Tap-It Experience subpage. */
.tapit-page-intro { margin-bottom:22px; }
.tapit-full-layout { width:min(1120px,100%); margin:0 auto; display:grid; grid-template-columns:minmax(0,68fr) minmax(250px,32fr); gap:28px; align-items:start; }
.tapit-full-card { padding:clamp(24px,4vw,42px); border:1px solid var(--gold); background:linear-gradient(180deg,#0d3474,#061743); color:var(--cream); box-shadow:var(--shadow); }
.tapit-title-row { display:flex; gap:16px; align-items:center; border-bottom:1px solid rgba(242,209,125,.45); padding-bottom:14px; }
.tapit-title-row .tapit-device-mark { flex:0 0 112px; margin:0; color:var(--gold-light); }
.tapit-title-row h2 { margin:0; color:var(--gold-light); font-family:"Cinzel",Georgia,serif; font-size:clamp(22px,3vw,34px); line-height:1.15; }
.tapit-lead { font-size:22px; line-height:1.36; margin:20px 0 8px; }
.tap-it-flow-large li { padding-top:17px; padding-bottom:17px; }
.tapit-side-stack { display:grid; gap:20px; }
.tapit-side-note { padding:25px; border:1px solid var(--gold); background:rgba(255,252,244,.94); box-shadow:var(--shadow); }
.tapit-side-note h2 { margin:0 0 10px; color:var(--navy); font-family:"Cinzel",Georgia,serif; font-size:21px; }
.tapit-side-note p { margin:0; font-size:19px; line-height:1.35; }
.tapit-messages-band { margin-top:30px; }

/* Upcoming seating chart subpage—interactive now, final assignments are intentionally held until confirmed. */
.seating-chart-shell { width:min(1120px,100%); margin:0 auto; display:grid; grid-template-columns:minmax(250px,31fr) minmax(0,69fr); gap:28px; align-items:start; }
.seating-info-card { padding:clamp(24px,4vw,40px); border:1px solid var(--gold); background:rgba(255,252,244,.94); box-shadow:var(--shadow); }
.seating-info-card h2 { margin:0 0 12px; color:var(--navy); font-family:"Cinzel",Georgia,serif; font-size:26px; }
.table-selection-text { margin:0 0 13px; font-size:22px; color:var(--navy); font-weight:700; }
.table-location-details { min-height:112px; padding:15px; border-left:3px solid var(--gold); background:var(--cream-2); color:var(--ink); font-size:19px; line-height:1.3; }
.seating-disclaimer { margin:18px 0 0; color:#665c48; font-size:17px; line-height:1.3; }
.seating-map { position:relative; min-height:645px; padding:26px 22px 72px; border:1px solid var(--gold); background:linear-gradient(135deg,#fffaf1,#efd6a8); box-shadow:var(--shadow); overflow:hidden; }
.seating-map::before { content:""; position:absolute; inset:18px; border:1px solid rgba(201,155,53,.45); pointer-events:none; }
.map-entry,.map-ceremony,.map-dance,.map-bar { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; font-family:"Cinzel",Georgia,serif; text-transform:uppercase; letter-spacing:.055em; }
.map-entry { width:min(260px,65%); min-height:44px; margin:0 auto 18px; border:1px solid var(--gold); background:var(--navy); color:var(--gold-light); font-size:12px; }
.map-ceremony { width:min(330px,75%); min-height:61px; margin:0 auto 20px; border:1px solid var(--gold); background:linear-gradient(180deg,#0d3474,#061743); color:#fff; font-size:14px; }
.map-dance { position:absolute; left:50%; top:50%; transform:translate(-50%,-17%); width:178px; height:178px; border:2px solid var(--gold); border-radius:50%; background:rgba(6,23,67,.90); color:var(--gold-light); font-size:13px; text-align:center; }
.map-bar { position:absolute; right:32px; bottom:82px; width:165px; min-height:48px; border:1px solid var(--gold); background:#0d3474; color:var(--gold-light); font-size:11px; text-align:center; }
.map-table-grid { position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,minmax(58px,1fr)); gap:20px 24px; max-width:600px; margin:45px auto 0; padding:0 18px; }
.seating-table { width:100%; aspect-ratio:1; display:grid; place-items:center; border:2px solid var(--gold); border-radius:50%; background:#fffaf1; color:var(--navy); box-shadow:0 5px 9px rgba(2,8,23,.13); font-family:"Cinzel",Georgia,serif; font-size:17px; font-weight:700; cursor:pointer; transition:transform .14s ease, background .14s ease, color .14s ease; }
.seating-table:hover,.seating-table:focus-visible,.seating-table.is-selected { transform:scale(1.07); background:var(--navy); color:var(--gold-light); outline:0; }
.map-key { position:absolute; left:30px; right:30px; bottom:20px; z-index:1; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 14px; color:#665c48; font-size:14px; }
.map-key span { display:inline-flex; align-items:center; gap:6px; }
.map-key i { width:11px; height:11px; display:inline-block; border-radius:50%; }
.key-table { border:1px solid var(--gold); background:#fffaf1; }.key-head{background:var(--navy);}.key-dance{background:#0d3474;}

@media (max-width:960px) {
  .rsvp-page-intro { min-height:152px; padding-left:26px; padding-right:26px; }
  .event-grid-overview,.tapit-full-layout,.seating-chart-shell { grid-template-columns:1fr; }
  .event-side { grid-template-columns:1fr; }
  .tapit-title-row .tapit-device-mark { flex-basis:96px; }
  .seating-map { min-height:610px; }
}
@media (max-width:560px) {
  .hero-quote { font-size:18px; line-height:1.12; padding:7px 12px 8px; }
  .quick-icon svg { width:30px; height:30px; }
  .rsvp-page-intro { min-height:142px; padding:24px 18px; }
  .rsvp-page-intro::before,.rsvp-page-intro::after { width:150px; height:100px; bottom:-10px; opacity:.82; }
  .rsvp-page-intro::before { left:-50px; }.rsvp-page-intro::after { right:-50px; }
  .rsvp-intro-copy { font-size:18px; }
  .event-subnav { gap:4px; padding:6px; }
  .event-subnav a { padding:8px 7px; font-size:9px; }
  .tap-it-preview-card,.seating-preview-card { padding:21px 18px; }
  .tapit-title-row { align-items:flex-start; gap:10px; }
  .tapit-title-row .tapit-device-mark { flex-basis:72px; }
  .tapit-lead { font-size:19px; }
  .seating-map { min-height:575px; padding-left:12px; padding-right:12px; }
  .map-table-grid { grid-template-columns:repeat(3,minmax(52px,1fr)); gap:14px; padding:0; margin-top:36px; }
  .map-dance { width:134px; height:134px; top:53%; font-size:11px; }
  .map-bar { right:15px; bottom:63px; width:128px; min-height:40px; font-size:9px; }
  .map-key { left:15px; right:15px; bottom:14px; font-size:11px; gap:5px 8px; }
}

/* ================= RSVP TOP REFINEMENT — LOCKED =================
   Only changes the mobile browser navy theme and the RSVP title treatment. */
html {
  background:#061743 !important;
  color-scheme:dark;
}
body {
  background:#061743 !important;
}

/* Replace the heavy navy RSVP rectangle with a formal cream-and-floral title treatment.
   It keeps the same RSVP content and layout below it unchanged. */
.rsvp-page-intro {
  position:relative;
  isolation:isolate;
  min-height:178px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:30px clamp(96px,13vw,190px) 33px;
  background:
    radial-gradient(circle at 7% 53%, rgba(109,13,41,.14), transparent 22%),
    radial-gradient(circle at 93% 53%, rgba(201,155,53,.16), transparent 23%),
    linear-gradient(90deg,#fffaf1 0%,#f5e1c1 50%,#fffaf1 100%);
  border-top:1px solid rgba(201,155,53,.82);
  border-bottom:1px solid rgba(201,155,53,.82);
  box-shadow:0 12px 28px rgba(2,8,23,.09);
}
.rsvp-page-intro::before,
.rsvp-page-intro::after {
  content:"";
  position:absolute;
  z-index:-1;
  top:50%;
  bottom:auto;
  width:205px;
  height:145px;
  background:url('../brand/footer-florals-transparent.png') center / contain no-repeat;
  opacity:1;
  pointer-events:none;
}
.rsvp-page-intro::before { left:-27px; transform:translateY(-50%); }
.rsvp-page-intro::after { right:-27px; transform:translateY(-50%) scaleX(-1); }
.rsvp-page-intro .eyebrow.dark {
  color:#8a621e !important;
  text-shadow:none;
}
.rsvp-page-intro h1 {
  color:#061743 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.8);
}
.rsvp-page-intro .thin-rule {
  margin:7px auto 8px;
  max-width:330px;
}
.rsvp-intro-copy {
  color:#061743 !important;
  font-size:22px;
  font-weight:600;
  text-shadow:0 1px 0 rgba(255,255,255,.9);
}

@media(max-width:560px){
  .rsvp-page-intro {
    min-height:156px;
    padding:24px 76px 26px;
  }
  .rsvp-page-intro::before,
  .rsvp-page-intro::after {
    width:146px;
    height:112px;
    opacity:.96;
  }
  .rsvp-page-intro::before { left:-42px; }
  .rsvp-page-intro::after { right:-42px; }
  .rsvp-intro-copy { font-size:18px; }
}


/* ================= FINAL HEADER + RSVP + FOOTER FIX =================
   This block only corrects:
   1) the website-controlled top/navy browser theme on every page,
   2) RSVP's title treatment so it matches the other inner pages,
   3) the requested footer credit.
*/
html,
body {
  background:#061743 !important;
  color-scheme:light !important;
}
.site-header,
.gate-art {
  background:#061743 !important;
}
.site-nav {
  background:linear-gradient(180deg,#0a2861 0%,#061743 100%) !important;
}

/* RSVP now uses the same calm, elegant title treatment as Event Details,
   Venue, Gallery, and the other inner pages — no oversized separate banner. */
.rsvp-page-intro {
  position:relative !important;
  isolation:isolate;
  width:min(900px,100%) !important;
  min-height:0 !important;
  margin:0 auto 36px !important;
  padding:3px 118px 17px !important;
  overflow:visible !important;
  display:block !important;
  text-align:center !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.rsvp-page-intro::before,
.rsvp-page-intro::after {
  content:"";
  position:absolute;
  z-index:-1;
  top:50%;
  bottom:auto;
  width:118px;
  height:88px;
  background:url('../brand/footer-florals-transparent.png') center / contain no-repeat;
  opacity:.72;
  pointer-events:none;
}
.rsvp-page-intro::before {
  left:-3px;
  transform:translateY(-38%);
}
.rsvp-page-intro::after {
  right:-3px;
  transform:translateY(-38%) scaleX(-1);
}
.rsvp-page-intro .eyebrow.dark {
  color:#78591e !important;
  text-shadow:none !important;
}
.rsvp-page-intro h1 {
  color:var(--navy) !important;
  text-shadow:none !important;
}
.rsvp-page-intro .thin-rule {
  margin:8px auto 9px !important;
  max-width:360px !important;
}
.rsvp-intro-copy {
  margin:0 !important;
  color:var(--ink) !important;
  font-size:21px !important;
  font-weight:500 !important;
  font-style:italic;
  text-shadow:none !important;
}
@media(max-width:560px){
  .rsvp-page-intro {
    margin-bottom:26px !important;
    padding:2px 72px 14px !important;
  }
  .rsvp-page-intro::before,
  .rsvp-page-intro::after {
    width:90px;
    height:70px;
    opacity:.68;
  }
  .rsvp-page-intro::before { left:-16px; }
  .rsvp-page-intro::after { right:-16px; }
  .rsvp-intro-copy { font-size:18px !important; }
}

/* Footer credit requested by the user. */
.site-footer small {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  line-height:1.25;
}
.site-footer .footer-credit {
  display:block;
  color:var(--gold-light);
  font-family:"Cinzel",Georgia,serif;
  font-size:11px;
  font-weight:600;
  letter-spacing:.045em;
}
@media(max-width:560px){
  .site-footer .footer-credit {
    font-size:10px;
    letter-spacing:.025em;
  }
}


/* RSVP Turnstile container — stays within the existing RSVP form width. */
.rsvp-form-panel .turnstile-slot{margin:17px 0 5px;min-height:0}


/* RSVP confirmation visibility fix only */
.form-status.is-loading,
.form-status.is-success,
.form-status.is-error {
  display:block;
  width:100%;
  margin:18px 0 0 !important;
  padding:16px 18px;
  border-radius:8px;
  border:2px solid var(--gold);
  background:#fff8e9;
  color:var(--navy);
  line-height:1.45;
  box-shadow:0 10px 25px rgba(6,23,67,.12);
}
.form-status.is-loading {
  border-color:#cba65b;
  background:#fff3d6;
}
.form-status.is-success {
  border-color:#2f7a4b;
  background:#e9f6ed;
  color:#16452d;
}
.form-status.is-error {
  border-color:#8a1735;
  background:#fff1f3;
  color:#64152b;
}
.rsvp-confirm-code {
  display:inline-block;
  margin:5px 0 10px;
  padding:7px 10px;
  border-radius:6px;
  background:#061743;
  color:#f2d17c;
  font-family:"Cinzel",Georgia,serif;
  font-size:clamp(20px,4vw,30px);
  letter-spacing:.05em;
}
.rsvp-form-panel button[disabled] {
  opacity:.7;
  cursor:wait;
}

/* Front-end image protection deterrents. Browser-delivered media cannot be made technically impossible to capture,
   but normal right-click, dragging, long-press, and direct download controls are disabled. */
img {
  -webkit-user-drag:none;
  user-drag:none;
  -webkit-touch-callout:none;
  -webkit-user-select:none;
  user-select:none;
}
.images-locked img { pointer-events:none; }
.invitation-protected-image {
  display:block;
  width:min(420px,100%);
  border:1px solid rgba(242,209,125,.88);
  overflow:hidden;
}
.invitation-protected-image img { width:100%; margin:0; display:block; }
.story-engagement-photo img {
  width:100%;
  aspect-ratio:4 / 5;
  object-fit:cover;
  object-position:center center;
}


/* Official invitation actions: the invitation is the only image intentionally offered for download/share. */
.invitation-actions-home { margin-top:18px; }
.button-outline-navy {
  background:transparent;
  color:var(--navy);
  border-color:var(--navy);
  box-shadow:none;
}
.button-outline-navy:hover { background:rgba(6,23,67,.08); }
.invitation-download-allowed { pointer-events:auto; }
