@font-face{font-family:'1797';src:url('assets/fonts/1797-COMPRESSED.otf') format('opentype');font-display:swap}
@font-face{font-family:'Antwerp';src:url('assets/fonts/Antwerp-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Antwerp';src:url('assets/fonts/Antwerp-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'UNCAGE';src:url('assets/fonts/UNCAGE-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Athemi';src:url('assets/fonts/AthemiDEMOVERSION.otf') format('opentype');font-display:swap}
@font-face{font-family:'Humble';src:url('assets/fonts/HumbleNostalgia-Regular.otf') format('opentype');font-display:swap}

:root{
  --cream:#fffdf8;
  --green:#4ABC77;
  --green-dark:#4ABC77;
  --pink:#f35b96;
  --pink-soft:#fff0f5;
  --pink-line:#f4a2c0;
  --ink:#183f2f;
  --poster:1120px;
  --content:800px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#f5f2e9}
body{margin:0;background:#f5f2e9;color:var(--ink);font-family:'Antwerp',Georgia,serif;line-height:1.42}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea{font:inherit}
[hidden]{display:none!important}

.poster{position:relative;width:min(calc(100% - 28px),var(--poster));margin:18px auto;background:var(--cream);min-height:100vh;padding:70px 72px 54px;overflow:hidden;box-shadow:0 8px 30px rgba(31,51,38,.06)}
.frame-piece{position:absolute;z-index:20;pointer-events:none}
.frame-top{top:0;left:0;right:0;height:73px;background:url('assets/images/frame-top.png') center top/100% 100% no-repeat}
.frame-bottom{bottom:0;left:0;right:0;height:73px;background:url('assets/images/frame-bottom.png') center bottom/100% 100% no-repeat}
.frame-left{top:64px;bottom:64px;left:0;width:64px;background:url('assets/images/frame-left-tile.png') left top/64px 118px repeat-y}
.frame-right{top:64px;bottom:64px;right:0;width:64px;background:url('assets/images/frame-right-tile.png') right top/64px 118px repeat-y}

.nav{display:flex;justify-content:center;align-items:center;gap:58px;font-family:'UNCAGE',Arial,sans-serif;text-transform:uppercase;font-size:12px;line-height:1;margin:0 auto 34px;position:relative;z-index:5;white-space:nowrap}
.nav a{padding:8px 0;position:relative}
.nav a:hover,.nav a.active{color:var(--pink)}
.nav a.active:after{content:'';position:absolute;left:0;right:0;bottom:1px;height:2px;background:var(--pink);transform:rotate(-1deg)}
.nav .rsvp-link{border:1.4px solid var(--pink);color:var(--pink);padding:10px 26px}
.nav .rsvp-link:after{display:none}

.display{font-family:'1797',Impact,sans-serif;text-transform:uppercase;font-weight:400;line-height:.86;margin:0}
.script{font-family:'Humble','Athemi',cursive;color:var(--pink);font-weight:400;line-height:.9}
.kicker{font-family:'UNCAGE',Arial,sans-serif;text-transform:uppercase;letter-spacing:.02em}
.pink{color:var(--pink)}
.green{color:var(--green-dark)}
.center{text-align:center}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--pink);color:var(--pink);font-family:'UNCAGE',Arial,sans-serif;text-transform:uppercase;font-size:11px;letter-spacing:.02em;padding:12px 19px;background:transparent;cursor:pointer}
.btn:hover{background:var(--pink);color:white}
.btn.solid{background:var(--pink);color:white;border-color:var(--pink)}
.btn.green{border-color:var(--green-dark);color:var(--green-dark)}
.btn.green:hover{background:var(--green-dark);color:white}

.wiggle{height:13px;margin:18px 0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='8' viewBox='0 0 50 8'%3E%3Cpath d='M0 4 C7 0 11 8 18 4 S29 0 36 4 S43 8 50 4' fill='none' stroke='%23f35b96' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:repeat-x;background-position:center}
.decor-heart{position:absolute;width:52px;opacity:.95}
.decor-star{position:absolute;color:var(--pink);font-size:42px;font-family:Georgia,serif;line-height:1}

/* HOME */
.home-hero{text-align:center;position:relative;padding:0 0 18px}
.home-hero .eyebrow{font-family:'UNCAGE',Arial,sans-serif;color:var(--green);font-size:16px;line-height:1.12;text-transform:uppercase;margin:0 0 6px;letter-spacing:.01em}
.home-hero .title-stage{height:430px;position:relative;margin-top:0;overflow:visible}
.home-hero h1{font-family:'1797',Impact,sans-serif;color:var(--green);font-size:300px;font-weight:400;line-height:.7;white-space:nowrap;margin:0;position:absolute;z-index:1;left:50%;top:188px;transform:translateX(-50%) scaleX(1.40);transform-origin:center;letter-spacing:0}
.home-hero .couple{position:absolute;z-index:3;width:520px;height:auto;left:50%;top:0;transform:translateX(-50%)}
.home-hero .venue-name{font-family:'Antwerp',Georgia,serif;font-weight:700;font-size:29px;line-height:1.08;color:var(--green);margin:-4px 0 0;position:relative;z-index:4}
.home-hero .date{font-family:'1797',Impact,sans-serif;color:var(--green);font-size:32px;line-height:1;margin-top:7px}
.home-hero .scroll{display:inline-block;margin-top:18px;color:var(--pink);font-family:'UNCAGE',Arial,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.home-hero .heart-a{display:none}.home-hero .heart-b{right:18px;top:auto;bottom:52px;width:40px}

.home-weekend{padding:4px 0 30px}
.home-weekend h2{text-align:center;color:var(--pink);font-size:72px;line-height:.88;margin:0 0 30px}
.home-weekend-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.home-mini-day{text-align:center;padding:0 27px;min-height:180px;position:relative}
.home-mini-day+.home-mini-day{border-left:1.5px dotted var(--pink)}
.home-mini-day .script{font-size:30px;margin-bottom:10px}
.home-mini-day img{width:72px;height:72px;object-fit:contain;margin:0 auto 14px}
.home-mini-day p{font-size:17px;line-height:1.25;margin:0 auto;max-width:180px}
.home-mini-day .mini-heart{position:absolute;right:6px;top:-10px;width:36px;height:36px}

.home-venue{display:grid;grid-template-columns:215px 1fr;gap:30px;align-items:center;padding:22px 0 40px}
.home-venue-copy h2{font-size:62px;color:var(--green-dark)}
.home-venue-copy p{font-size:16px;line-height:1.42;margin:15px 0 18px}
.polaroid-stage{height:280px;position:relative}
.polaroid{position:absolute;background:white;padding:9px 9px 18px;box-shadow:0 10px 22px rgba(37,52,40,.16);border:1px solid rgba(28,52,40,.08)}
.polaroid img{width:100%;height:100%;object-fit:cover}
.tape{position:absolute;width:76px;height:23px;background:rgba(243,91,150,.67);top:-13px;left:50%;transform:translateX(-50%) rotate(-3deg);z-index:3}
.home-venue .p1{left:4px;top:30px;width:235px;height:215px;transform:rotate(-2deg)}
.home-venue .p2{left:225px;top:10px;width:198px;height:180px;transform:rotate(1.5deg)}
.home-venue .p3{right:0;bottom:4px;width:190px;height:164px;transform:rotate(2.5deg)}
.home-venue .heart-c{right:-8px;bottom:6px}

.home-wear{padding:16px 0 24px}
.home-wear h2{text-align:center;color:var(--pink);font-size:66px;margin-bottom:27px}
.wear-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.wear-card{text-align:center;padding:0 28px;min-height:178px}
.wear-card+.wear-card{border-left:1.5px dotted var(--pink)}
.wear-card .script{font-size:29px;margin-bottom:8px}.wear-card img{width:62px;height:62px;object-fit:contain;margin:0 auto 8px}.wear-card h3{font-family:'UNCAGE',Arial,sans-serif;font-size:18px;line-height:1.08;color:var(--green-dark);margin:0 0 8px;text-transform:uppercase}.wear-card p{font-size:15px;line-height:1.3;margin:0 auto;max-width:180px}
.faq-teaser{border:1.5px dashed var(--green);border-radius:18px;margin:24px 92px 22px;padding:16px 24px;display:flex;align-items:center;justify-content:center;gap:18px;position:relative}.faq-teaser .qmark{font-family:'1797',Impact,sans-serif;color:var(--pink);font-size:50px;line-height:.7}.faq-teaser strong{font-family:'1797',Impact,sans-serif;color:var(--green-dark);font-size:34px;font-weight:400}.faq-teaser .answer-script{font-family:'Humble','Athemi',cursive;font-size:27px}.faq-teaser a{font-family:'UNCAGE',Arial,sans-serif;color:var(--pink);font-size:11px;text-transform:uppercase}.faq-teaser .heart{position:absolute;right:18px;width:36px}
.home-cta{background:var(--pink);color:white;margin:0 0 16px;padding:25px 28px;display:grid;grid-template-columns:1.15fr 1fr auto;gap:25px;align-items:center;position:relative}.home-cta h2{font-size:56px;color:white}.home-cta p{text-align:center;font-size:15px;line-height:1.3;margin:0}.home-cta .btn{color:white;border-color:white;min-width:150px}.home-cta .mini-couple{position:absolute;right:-52px;bottom:-29px;width:145px;pointer-events:none}
.footer{text-align:center;font-family:'UNCAGE',Arial,sans-serif;color:var(--green-dark);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:9px 0 15px}

/* INNER PAGE HERO */
.page-hero{text-align:center;position:relative;padding:18px 0 30px}.page-hero h1{font-size:84px;color:var(--pink);margin:0 auto 16px}.page-hero p{font-size:18px;line-height:1.45;max-width:680px;margin:0 auto}.page-hero .heart{position:absolute;right:72px;top:65px;width:52px}.page-hero .star-left{left:35px;top:70px}.page-hero .spark-right{right:35px;top:73px}

/* WEEKEND */
.weekend-day{display:grid;grid-template-columns:125px 1fr 245px;gap:30px;align-items:center;padding:28px 18px}.weekend-day+.weekend-day{border-top:0}
.weekend-day .day-icon img{width:105px;height:105px;object-fit:contain;margin:auto}.weekend-day .day-date{font-family:'UNCAGE',Arial,sans-serif;font-size:17px;text-transform:uppercase;color:var(--green-dark);margin-bottom:8px}.weekend-day h2{font-family:'Humble','Athemi',cursive;color:var(--pink);font-size:55px;font-weight:400;line-height:.9;margin:0 0 13px}.timeline{list-style:none;margin:0;padding:0}.timeline li{display:grid;grid-template-columns:78px 1fr;gap:10px;font-size:16px;margin:3px 0}.timeline time{color:var(--pink);font-weight:700}.day-main .after{font-size:18px;line-height:1.35;margin:15px 0 0;max-width:390px}.wear-box{border:1.5px dashed var(--pink-line);padding:22px 20px;text-align:center;min-height:165px;display:flex;flex-direction:column;justify-content:center}.wear-box .label{font-family:'UNCAGE',Arial,sans-serif;color:var(--pink);font-size:11px;text-transform:uppercase;margin-bottom:8px}.wear-box h3{font-family:'UNCAGE',Arial,sans-serif;color:var(--green-dark);font-size:18px;line-height:1.1;text-transform:uppercase;margin:0 0 10px}.wear-box p{font-size:15px;line-height:1.35;margin:0}.weekend-note{margin:24px 22px 0;background:linear-gradient(90deg,#ffeef4,#fff9f8);border-radius:9px;padding:26px 36px;display:grid;grid-template-columns:120px 1fr 70px;gap:25px;align-items:center}.weekend-note img.main{width:120px;height:100px;object-fit:contain}.weekend-note h2{font-family:'1797',Impact,sans-serif;color:var(--pink);font-size:42px;font-weight:400;line-height:.9;margin:0 0 9px;text-transform:uppercase}.weekend-note p{font-size:16px;line-height:1.4;margin:0}.weekend-note img.heart{width:58px}.weekend-note.come{grid-template-columns:120px 1fr 85px}.weekend-bottom{text-align:center;padding:28px 0 10px}

/* VENUE */
.venue-top{display:grid;grid-template-columns:1fr 365px;gap:34px;align-items:start;padding:18px 0 35px}.venue-top h1{font-size:76px;color:var(--green-dark);margin:0 0 14px}.venue-top .sub{font-family:'1797',Impact,sans-serif;color:var(--pink);font-size:31px;text-transform:uppercase;line-height:.9;margin:0 0 20px}.venue-top p{font-size:16px;line-height:1.5;margin:0 0 20px}.venue-photo-stage{height:390px;position:relative}.venue-photo-stage .large{left:70px;top:0;width:270px;height:240px;transform:rotate(2deg)}.venue-photo-stage .small-a{left:0;bottom:8px;width:205px;height:170px;transform:rotate(-2deg)}.venue-photo-stage .small-b{right:0;bottom:0;width:205px;height:170px;transform:rotate(2deg)}.travel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:16px 0 28px}.travel-card{border:1.5px dashed var(--pink-line);padding:26px 22px;text-align:center;min-height:360px;display:flex;flex-direction:column;align-items:center}.travel-card img{width:66px;height:66px;object-fit:contain;margin:6px auto 14px}.travel-card h2{font-family:'1797',Impact,sans-serif;color:var(--green-dark);font-size:40px;font-weight:400;text-transform:uppercase;line-height:.9;margin:0 0 12px}.travel-card p{font-size:15px;line-height:1.45;margin:0 0 18px}.travel-card .btn{margin-top:auto}.stay-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;padding:12px 28px 22px}.stay-card{border:1.5px dashed var(--pink-line);padding:28px 30px;min-height:350px;position:relative}.stay-card .stay-head{display:flex;align-items:center;gap:18px;margin-bottom:20px}.stay-card .stay-head img{width:66px;height:66px;object-fit:contain}.stay-card h2{font-family:'1797',Impact,sans-serif;color:var(--green-dark);font-size:42px;line-height:.9;font-weight:400;text-transform:uppercase;margin:0}.stay-card p{font-size:16px;line-height:1.55;margin:0 0 16px}.stay-card .heart{position:absolute;right:18px;top:18px;width:35px}.stay-card .couple-corner{position:absolute;left:-52px;bottom:-35px;width:170px}.venue-footer-space{height:35px}

/* FAQ */
.faq-hero{padding-bottom:26px}.faq-hero h1{font-size:90px;line-height:.84;max-width:630px}.faq-hero p{font-size:21px;color:var(--green-dark);max-width:620px}.faq-hero .heart{right:125px;bottom:6px;top:auto;width:38px}.faq-list{padding:0 5px}.faq-item{border:1px solid #eadde2;border-radius:8px;margin:0 0 11px;overflow:hidden;background:rgba(255,255,255,.16)}.faq-q{width:100%;border:0;background:transparent;cursor:pointer;display:grid;grid-template-columns:72px 235px 1fr 26px;gap:15px;align-items:center;text-align:left;padding:15px 18px;color:var(--ink)}.faq-q .faq-icon{display:flex;align-items:center;justify-content:center}.faq-q .faq-icon img{width:46px;height:46px;object-fit:contain}.faq-q strong{font-family:'1797',Impact,sans-serif;color:var(--green-dark);font-size:27px;line-height:.92;font-weight:400;text-transform:uppercase}.faq-q .short{font-size:15px;line-height:1.35}.faq-q .arrow{font-size:27px;color:var(--pink);transform:rotate(0);transition:.2s}.faq-a{display:none;border-top:1px dashed var(--pink-line);margin:0 18px;padding:16px 50px 19px 322px;font-size:15px;line-height:1.5}.faq-item.open .faq-a{display:block}.faq-item.open .arrow{transform:rotate(180deg)}.faq-bottom-note{border:1.5px dashed var(--pink);border-radius:12px;padding:16px 22px;margin:24px 75px 18px;text-align:center;font-family:'UNCAGE',Arial,sans-serif;text-transform:uppercase;color:var(--green-dark);font-size:12px;position:relative}.faq-bottom-note em{font-family:'Humble','Athemi',cursive;color:var(--green-dark);font-size:25px;text-transform:none;font-style:normal;margin-left:8px}.faq-bottom-note .heart{position:absolute;right:18px;top:8px;width:37px}.faq-contact{background:var(--pink);color:white;margin:0 60px 6px;padding:19px 30px;display:flex;align-items:center;justify-content:center;gap:20px;font-family:'1797',Impact,sans-serif;font-size:34px;text-transform:uppercase}.faq-contact span{font-family:'UNCAGE',Arial,sans-serif;font-size:13px}.faq-couple{position:absolute;right:8px;bottom:18px;width:150px;z-index:2}

/* RSVP */
.rsvp-hero h1{font-size:82px}.rsvp-hero p{font-size:19px;max-width:650px}.rsvp-hero strong{color:var(--pink)}.rsvp-layout{display:grid;grid-template-columns:225px 1fr;gap:36px;align-items:start;padding:18px 28px 190px;position:relative}.rsvp-aside{background:linear-gradient(180deg,#fdebf2,#fff4f7);padding:30px 28px;min-height:505px;border-radius:9px;position:relative}.rsvp-aside h2{font-family:'1797',Impact,sans-serif;color:var(--pink);font-size:44px;font-weight:400;text-transform:uppercase;line-height:.9;margin:0 0 18px}.rsvp-aside p{font-size:16px;line-height:1.55;margin:0 0 19px}.rsvp-aside img{width:58px;margin:26px auto 0}.rsvp-form{position:relative}.field{margin:0 0 18px}.field label{display:block;font-family:'1797',Impact,sans-serif;color:var(--pink);font-size:28px;text-transform:uppercase;margin-bottom:8px}.field input,.field textarea{width:100%;border:1px solid #b8c0ba;background:#fff;padding:13px 15px;font-size:15px;color:var(--ink);outline:none}.field textarea{resize:vertical;min-height:115px}.field input:focus,.field textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(243,91,150,.09)}.event-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:15px 0;border-bottom:1.5px dashed var(--pink-line)}.event-copy{position:relative;padding-left:70px;min-height:52px;display:flex;flex-direction:column;justify-content:center}.event-icon{position:absolute;left:0;top:50%;transform:translateY(-50%);width:52px;height:52px;object-fit:contain}.event-name{font-family:'1797',Impact,sans-serif;color:var(--green-dark);font-size:27px;text-transform:uppercase;line-height:.9;margin-bottom:3px}.event-copy small{font-size:14px;font-style:italic}.choice{display:flex;gap:10px}.choice input{position:absolute;opacity:0;pointer-events:none}.choice label{font-family:'1797',Impact,sans-serif;color:var(--green-dark);font-size:24px;line-height:1;border:1px solid #8eb49c;padding:10px 13px;min-width:55px;text-align:center;cursor:pointer}.choice input:checked+label{background:var(--green-dark);color:white}.form-note{font-size:12px;opacity:.72;margin-top:6px}.rsvp-submit{margin-top:25px}.rsvp-submit .btn{font-size:16px;padding:17px 48px}.rsvp-couple{position:absolute;right:-30px;bottom:-10px;width:320px;z-index:2;pointer-events:none}.form-result{display:none;background:var(--pink-soft);padding:34px;text-align:center;margin:20px 35px 120px}.form-result.show{display:block}.form-result h2{font-family:'1797',Impact,sans-serif;color:var(--pink);font-size:58px;font-weight:400;text-transform:uppercase;line-height:.88;margin:0 0 10px}.form-result p{font-size:17px;margin:0}.rsvp-offsite-note{font-size:13px;line-height:1.4;margin-top:6px}

@media (max-width:900px){
  .poster{width:calc(100% - 10px);margin:5px auto;padding:67px 66px 52px}.nav{gap:34px;font-size:10px;margin-bottom:40px}.nav .rsvp-link{padding:8px 16px}.home-hero h1{font-size:245px;top:160px;transform:translateX(-50%) scaleX(1.38)}.home-hero .couple{width:450px;top:0}.home-hero .title-stage{height:365px}.home-hero .venue-name{font-size:25px}.home-weekend h2{font-size:62px}.home-venue{grid-template-columns:190px 1fr}.home-venue .p1{width:210px}.home-venue .p2{left:195px}.home-wear h2{font-size:58px}.faq-teaser{margin-left:25px;margin-right:25px}.weekend-day{grid-template-columns:100px 1fr 220px;gap:20px}.venue-top{grid-template-columns:1fr 320px}.faq-q{grid-template-columns:60px 210px 1fr 22px}.faq-a{padding-left:288px}.rsvp-layout{grid-template-columns:200px 1fr;gap:24px;padding-left:15px;padding-right:15px}.rsvp-couple{width:280px}
}

@media (max-width:680px){
  .poster{padding:58px 45px 44px}.frame-top,.frame-bottom{height:58px}.frame-left,.frame-right{width:44px;top:50px;bottom:50px;background-size:44px 82px}.nav{gap:15px;font-size:8px;margin-bottom:33px}.nav .rsvp-link{padding:6px 8px}.home-hero .eyebrow{font-size:12px}.home-hero .title-stage{height:250px}.home-hero h1{font-size:142px;top:112px;transform:translateX(-50%) scaleX(1.34)}.home-hero .couple{width:300px;top:0}.home-hero .venue-name{font-size:19px}.home-hero .date{font-size:25px}.home-weekend h2{font-size:48px}.home-weekend-grid,.wear-grid{grid-template-columns:1fr}.home-mini-day,.wear-card{padding:22px 0;min-height:0}.home-mini-day+.home-mini-day,.wear-card+.wear-card{border-left:0;border-top:1.5px dotted var(--pink)}.home-venue{grid-template-columns:1fr}.home-venue-copy{text-align:center}.polaroid-stage{height:255px}.home-venue .p1{width:190px;height:185px}.home-venue .p2{left:auto;right:10px;width:155px;height:145px}.home-venue .p3{width:150px;height:135px}.home-wear h2{font-size:49px}.faq-teaser{margin:20px 0;flex-wrap:wrap;gap:9px}.faq-teaser strong{font-size:28px}.faq-teaser .answer-script{font-size:23px}.home-cta{grid-template-columns:1fr;text-align:center}.home-cta h2{font-size:45px}.home-cta .mini-couple{display:none}.page-hero h1{font-size:58px}.page-hero p{font-size:15px}.weekend-day{grid-template-columns:70px 1fr;gap:15px;padding:24px 4px}.weekend-day .day-icon img{width:65px;height:65px}.weekend-day h2{font-size:42px}.weekend-day .day-date{font-size:14px}.wear-box{grid-column:1/-1;margin-left:85px}.timeline li{grid-template-columns:65px 1fr;font-size:14px}.weekend-note,.weekend-note.come{grid-template-columns:70px 1fr;padding:20px 18px;gap:16px}.weekend-note img.main{width:70px}.weekend-note img.heart{display:none}.weekend-note h2{font-size:34px}.weekend-note p{font-size:14px}.venue-top{grid-template-columns:1fr}.venue-top h1{font-size:58px}.venue-photo-stage{height:300px}.travel-grid,.stay-grid{grid-template-columns:1fr}.travel-card{min-height:0}.stay-grid{padding-left:0;padding-right:0}.stay-card{min-height:0}.faq-hero h1{font-size:56px}.faq-hero p{font-size:16px}.faq-q{grid-template-columns:42px 1fr 20px;gap:9px;padding:14px 8px}.faq-q .faq-icon img{width:34px;height:34px}.faq-q strong{font-size:22px}.faq-q .short{grid-column:2/3;font-size:13px}.faq-a{padding:12px 14px 15px 59px;font-size:13px}.faq-bottom-note{margin-left:0;margin-right:0}.faq-contact{margin:0;padding:16px 15px;font-size:28px}.faq-couple{display:none}.rsvp-hero h1{font-size:58px}.rsvp-layout{grid-template-columns:1fr;padding:10px 4px 185px}.rsvp-aside{min-height:auto}.rsvp-couple{width:230px;right:-45px}.event-copy{padding-left:58px}.event-icon{width:44px;height:44px}.event-name{font-size:23px}.event-row{grid-template-columns:1fr}.choice{padding-left:58px}.field label{font-size:24px}
}


/* =========================================================
   V7 BORDER TROUBLESHOOT
   Replaces four separately positioned frame images with
   one nine-slice border source, so every corner joins.
   Also removes the visible beige top/bottom page band.
   ========================================================= */

:root{
  --green:#4FC359;
  --green-dark:#4FC359;
}

/* Keep the page background visually continuous with the invitation. */
html,
body{
  background:var(--cream);
}

/* Remove the outer top/bottom gap that was showing as a beige strip. */
.poster{
  margin:0 auto;
}

/* The old four-piece border is the source of the broken joins. */
.frame-piece{
  display:none !important;
}

/* One border source = matching top, bottom, sides and corners. */
.poster::before{
  content:"";
  position:absolute;
  inset:0;
  box-sizing:border-box;
  pointer-events:none;
  z-index:20;

  border-style:solid;
  border-color:transparent;
  border-width:78px 68px;

  border-image-source:url("assets/images/border-frame.png");
  border-image-slice:220 170 220 170;
  border-image-width:78px 68px;
  border-image-repeat:stretch round;
}

/* Make all principal green typography use the invitation green. */
body,
.green,
.home-hero .eyebrow,
.home-hero h1,
.home-hero .venue-name,
.home-hero .date,
.home-venue-copy h2,
.wear-card h3,
.faq-teaser strong,
.footer,
.page-hero .green,
.weekend-day .day-date,
.wear-box h3,
.travel-card h2,
.stay-card h2,
.faq-q strong,
.event-name{
  color:var(--green) !important;
}

@media (max-width:680px){
  .poster::before{
    border-width:60px 47px;
    border-image-width:60px 47px;
  }
}


/* =========================================================
   V8 — MOBILE SAFE AREA + FAQ TIDY
   Requested changes only:
   - move nav down on mobile
   - keep mobile content clear of the invitation border
   - prevent hero artwork/title entering the border
   - FAQ closed state shows question only
   - less compressed FAQ question typography
   - centred "MESSAGE US →" pink CTA
   ========================================================= */

/* FAQ: no answer preview in the closed row. */
.faq-q .short{
  display:none !important;
}

/* With the preview removed, give the question the full usable width. */
.faq-q{
  grid-template-columns:72px minmax(0,1fr) 26px;
}

.faq-q strong{
  display:inline-block;
  font-size:30px;
  line-height:1;
  letter-spacing:.015em;
  transform:scaleX(1.07);
  transform-origin:left center;
  width:93%;
}

/* Full answer remains hidden until the existing dropdown JS opens the row. */
.faq-a{
  padding-left:105px;
  padding-right:56px;
}

/* Bottom pink CTA: only MESSAGE US →, centred. */
.faq-contact{
  justify-content:center;
  text-align:center;
  gap:0;
}
.faq-contact span{
  display:none;
}

/* ---------------- MOBILE ---------------- */
@media (max-width:680px){

  /*
    V7 border is ~47px wide at mobile.
    58px horizontal padding leaves a deliberate clear gap
    between the inner edge of the border and all page content.
  */
  .poster{
    padding:84px 58px 68px;
  }

  /* Navigation sits below the top border instead of touching it. */
  .nav{
    margin-top:8px;
    margin-bottom:38px;
    gap:14px;
  }

  /*
    Keep the homepage hero inside the mobile safe area.
    The artwork remains large, but can no longer cross the side border.
  */
  .home-hero .couple{
    width:min(300px, calc(100vw - 142px));
    max-width:100%;
  }

  .home-hero h1{
    font-size:clamp(88px,24vw,132px);
    transform:translateX(-50%) scaleX(1.22);
  }

  /* Decorative content shouldn't escape into the border on narrow phones. */
  .home-hero .heart-b,
  .page-hero .heart,
  .decor-heart{
    max-width:34px;
  }

  /* FAQ rows: question gets room to breathe; answer appears only after tap. */
  .faq-list{
    padding:0;
  }

  .faq-q{
    grid-template-columns:38px minmax(0,1fr) 18px;
    gap:12px;
    padding:17px 6px;
  }

  .faq-q .faq-icon img{
    width:32px;
    height:32px;
  }

  .faq-q strong{
    font-size:24px;
    line-height:1.03;
    letter-spacing:.018em;
    transform:scaleX(1.05);
    width:94%;
  }

  .faq-a{
    padding:15px 12px 18px 50px;
    font-size:14px;
    line-height:1.5;
  }

  .faq-bottom-note{
    margin-left:0;
    margin-right:0;
    padding-left:14px;
    padding-right:48px;
  }

  .faq-contact{
    margin:0;
    padding:18px 16px;
    font-size:31px;
  }

  /* Keep page headings and body copy away from the side frame too. */
  .page-hero,
  .home-weekend,
  .home-venue,
  .home-wear,
  .weekend-days,
  .weekend-note,
  .venue-top,
  .travel-grid,
  .stay-grid,
  .faq-list,
  .rsvp-layout{
    max-width:100%;
  }
}

/* Extra insurance for very narrow phones. */
@media (max-width:390px){
  .poster{
    padding-left:55px;
    padding-right:55px;
  }

  .nav{
    gap:10px;
    font-size:7.5px;
  }

  .nav .rsvp-link{
    padding:6px 7px;
  }

  .home-hero .couple{
    width:min(258px, calc(100vw - 132px));
  }

  .home-hero h1{
    font-size:clamp(82px,23vw,104px);
    transform:translateX(-50%) scaleX(1.18);
  }

  .faq-q strong{
    font-size:22px;
  }
}


/* =========================================================
   V9 — MOBILE WEEKEND PAGE CENTRING
   Requested change only:
   - make the weekend sections feel more centred on mobile
   - move the icon above the content
   - make the "What to wear" box stand out more on mobile
   ========================================================= */

@media (max-width:680px){

  /* Weekend page rows become poster-like stacked sections on mobile */
  .weekend-day{
    grid-template-columns:1fr !important;
    gap:14px;
    padding:28px 6px 32px;
    justify-items:center;
  }

  .weekend-day .day-icon{
    justify-self:center;
    margin:0 auto 2px;
  }

  .weekend-day .day-icon img{
    width:56px;
    height:56px;
  }

  .weekend-day .day-main{
    max-width:320px;
    margin:0 auto;
    text-align:center;
  }

  .weekend-day .day-date{
    text-align:center;
    margin-bottom:8px;
    font-size:16px;
  }

  .weekend-day h2{
    text-align:center;
    margin-bottom:10px;
  }

  .timeline{
    max-width:270px;
    margin:0 auto 14px;
  }

  .timeline li{
    grid-template-columns:1fr;
    gap:2px;
    text-align:center;
    justify-items:center;
    margin-bottom:10px;
  }

  .timeline li time{
    display:block;
  }

  .timeline li span{
    display:block;
  }

  .after{
    text-align:center;
    max-width:300px;
    margin:8px auto 0;
  }

  /* Dress-code card becomes a proper centred feature */
  .wear-box{
    grid-column:auto !important;
    margin:6px auto 0 !important;
    width:min(100%, 290px);
    max-width:290px;
    padding:18px 18px 20px;
    text-align:center;
    justify-self:center;
  }

  .wear-box .label{
    font-size:16px;
    margin-bottom:8px;
  }

  .wear-box h3{
    margin:0 0 8px;
    font-size:28px;
    line-height:.94;
  }

  .wear-box p{
    margin:0 auto;
    max-width:230px;
  }
}


/* =========================================================
   V10 — MOBILE WEEKEND SPACING + NAV CLEARANCE
   Requested changes only:
   - move mobile nav further down from top border
   - remove mobile horizontal drift/overflow on Weekend page
   - truly centre the What to Wear card
   - make What to Wear stand out slightly more
   ========================================================= */

@media (max-width:680px){

  /* Give the nav a visibly comfortable gap below the illustrated frame. */
  .nav{
    margin-top:30px !important;
    margin-bottom:40px;
  }

  /* Prevent any Weekend row from creating a wider-than-screen layout. */
  .weekend-day{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:hidden;
    grid-template-columns:minmax(0,1fr) !important;
    justify-items:center;
    padding-left:0;
    padding-right:0;
  }

  .weekend-day > *{
    min-width:0;
    max-width:100%;
  }

  .weekend-day .day-icon{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
  }

  .weekend-day .day-main{
    width:100%;
    max-width:320px;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }

  .timeline{
    width:100%;
    max-width:280px;
    margin-left:auto;
    margin-right:auto;
  }

  .after{
    width:100%;
    max-width:300px;
    margin-left:auto;
    margin-right:auto;
  }

  /* Make the dress-code card a centred visual feature. */
  .wear-box{
    position:relative;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    grid-column:1 !important;
    justify-self:center !important;

    width:min(100%, 300px) !important;
    max-width:300px !important;
    margin:12px auto 2px !important;
    padding:22px 20px 24px;

    background:rgba(243,91,150,.055);
    border:1.8px dashed var(--pink);
  }

  .wear-box .label{
    font-size:17px;
    margin-bottom:10px;
  }

  .wear-box h3{
    font-size:30px;
    line-height:.92;
    margin-bottom:12px;
  }

  .wear-box p{
    max-width:240px;
    margin:0 auto;
    text-align:center;
  }
}

@media (max-width:390px){
  .nav{
    margin-top:34px !important;
  }
}


/* =========================================================
   V11 — DESKTOP NAV + WEEKEND DRESS-CODE LAYOUT
   Fixes the desktop screenshots supplied by the user.
   Mobile V10 behaviour remains in place.
   ========================================================= */

/* The illustrated top frame is ~78px deep on desktop.
   Keep real content clearly beneath it rather than sitting inside it. */
@media (min-width:681px){

  .poster{
    padding-top:112px;
  }

  .nav{
    margin-top:0 !important;
    margin-bottom:46px;
  }

  /* Weekend day rows: balanced three-column composition. */
  .weekend-day{
    grid-template-columns:105px minmax(0,1fr) 270px;
    gap:34px;
    align-items:center;
    width:100%;
    max-width:900px;
    margin-left:auto;
    margin-right:auto;
    padding:34px 22px;
  }

  .weekend-day .day-icon{
    display:flex;
    justify-content:center;
    align-items:center;
  }

  .weekend-day .day-icon img{
    width:92px;
    height:92px;
  }

  .weekend-day .day-main{
    min-width:0;
  }

  /* Make the dress-code panel feel intentional instead of floating. */
  .wear-box{
    width:100%;
    max-width:270px;
    min-height:0;
    justify-self:center;
    align-self:center;
    margin:0 auto;
    padding:25px 23px 27px;
    background:rgba(243,91,150,.055);
    border:1.8px dashed var(--pink);
  }

  .wear-box .label{
    font-size:13px;
    margin-bottom:10px;
  }

  .wear-box h3{
    font-size:23px;
    line-height:1;
    margin-bottom:12px;
  }

  .wear-box p{
    max-width:220px;
    margin-left:auto;
    margin-right:auto;
    line-height:1.4;
  }
}

/* At narrower desktop/tablet widths, don't let the three-column row
   create horizontal overflow or push the dress card off-screen. */
@media (min-width:681px) and (max-width:980px){

  .poster{
    padding-top:104px;
  }

  .nav{
    gap:28px;
  }

  .weekend-day{
    grid-template-columns:85px minmax(0,1fr) 235px;
    gap:22px;
    padding-left:12px;
    padding-right:12px;
  }

  .weekend-day .day-icon img{
    width:75px;
    height:75px;
  }

  .wear-box{
    max-width:235px;
    padding:21px 17px 23px;
  }
}


/* =========================================================
   V12 — FINAL COPY + SMALL LAYOUT POLISH
   - Updated copy from Meg's revised copy deck
   - desktop home venue name nudged down
   - mobile homepage venue photo uses Spring Barn (circular lighting)
   - mobile Venue gallery is centred and contained
   - mobile FAQ helper line split
   ========================================================= */

/* Homepage updated intro */
.home-weekend-intro{
  max-width:720px;
  margin:-12px auto 28px;
  text-align:center;
  font-size:16px;
  line-height:1.45;
}
.home-mini-day p strong{
  display:block;
  font-family:'UNCAGE',Arial,sans-serif;
  color:var(--green);
  font-size:12px;
  line-height:1.15;
  text-transform:uppercase;
  margin-bottom:6px;
}
.home-mini-day p span{
  display:block;
}

/* Timeline supporting notes from revised copy */
.timeline li span small{
  display:block;
  font-size:12px;
  line-height:1.3;
  margin-top:2px;
  opacity:.9;
}

/* Taxi information on Weekend page */
.taxi-note{
  margin-top:18px;
  margin-bottom:18px;
}

/* Slightly lower venue line on desktop homepage */
@media (min-width:681px){
  .home-hero .venue-name{
    margin-top:10px !important;
  }
}

/* FAQ helper text and CTA */
.faq-bottom-note .faq-bottom-label{
  display:inline;
}
.faq-contact{
  text-align:center;
}

/* ---------------- MOBILE ---------------- */
@media (max-width:680px){

  .home-weekend-intro{
    margin:-6px auto 18px;
    font-size:14px;
    line-height:1.45;
    max-width:290px;
  }

  /* Homepage venue: use the Spring Barn circular-lighting image as the single main photo */
  .home-venue .polaroid-stage{
    height:285px;
    width:100%;
    max-width:300px;
    margin:8px auto 0;
  }
  .home-venue .p1,
  .home-venue .p3{
    display:none !important;
  }
  .home-venue .p2{
    display:block !important;
    position:absolute !important;
    left:50% !important;
    right:auto !important;
    top:18px !important;
    bottom:auto !important;
    width:250px !important;
    height:225px !important;
    transform:translateX(-50%) rotate(1.5deg) !important;
    margin:0 !important;
  }

  /* Venue page mobile gallery: centred, vertical, and always inside the green frame */
  .venue-photo-stage{
    height:auto !important;
    width:100% !important;
    max-width:285px !important;
    margin:18px auto 30px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    gap:14px !important;
    overflow:visible !important;
  }
  .venue-photo-stage .polaroid{
    position:relative !important;
    inset:auto !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    margin:0 auto !important;
  }
  .venue-photo-stage .large{
    width:250px !important;
    height:220px !important;
    transform:rotate(1deg) !important;
  }
  .venue-photo-stage .small-a,
  .venue-photo-stage .small-b{
    width:215px !important;
    height:175px !important;
  }
  .venue-photo-stage .small-a{transform:rotate(-1.5deg) !important;}
  .venue-photo-stage .small-b{transform:rotate(1.5deg) !important;}

  /* FAQ helper copy requested on its own line */
  .faq-bottom-note .faq-bottom-label{
    display:block;
  }
  .faq-bottom-note em{
    display:block !important;
    margin:7px auto 0 !important;
  }
}

/* extra containment on very narrow phones */
@media (max-width:390px){
  .venue-photo-stage{
    max-width:250px !important;
  }
  .venue-photo-stage .large{
    width:225px !important;
    height:198px !important;
  }
  .venue-photo-stage .small-a,
  .venue-photo-stage .small-b{
    width:195px !important;
    height:158px !important;
  }
}
