:root{--linen:#efecdf;--paper:#f8f5ed;--sage:#b0b295;--sage-light:#e2e3d5;--ink:#464d40;--muted:#68705e;--gold:#b7a16a;--line:rgba(76,82,65,.21);--serif:'Libre Baskerville',Georgia,serif;--body:'Libre Baskerville',Georgia,serif;--texture:url('images/save-the-date.png')}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--texture),var(--linen);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}h1,h2,h3,h4,p{margin:0}img{display:block;width:100%}button{cursor:pointer}::selection{background:#cdd0b5}[hidden]{display:none!important}
.site-header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:0 6vw;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{text-decoration:none;white-space:nowrap}.brand span{color:inherit;margin:0 .2em}.main-nav{display:flex;gap:32px;align-items:center}.main-nav a{text-decoration:none;padding:9px 0;border-bottom:1px solid transparent;transition:border-color .2s}.main-nav a:hover{border-color:var(--gold)}.menu-toggle{display:none;background:none;border:0;width:38px;height:40px;padding:8px}.menu-toggle span{display:block;height:1px;background:var(--ink);margin:7px 0}
.hero{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(45px,8vw,130px);padding:90px 7vw 100px;position:relative}.invitation-card{isolation:isolate;position:relative;width:100%;max-width:415px;padding:114px 34px 33px;border-radius:220px 220px 0 0;background:var(--texture),var(--paper);box-shadow:0 15px 36px rgba(69,70,46,.13);text-align:center;justify-self:center}.invitation-card::before{content:'';position:absolute;z-index:-2;inset:-15px -38px 28px 35px;border-radius:210px 210px 0 0;background:var(--texture),var(--sage);transform:rotate(5deg)}.invitation-border{pointer-events:none;position:absolute;inset:17px;border:1px solid rgba(183,161,106,.72);border-bottom:0;border-radius:210px 210px 0 0;z-index:-1}.invitation-label{position:absolute;top:60px;left:0;right:0;text-transform:uppercase;color:var(--gold)}.hero-image{overflow:hidden;border-radius:180px 180px 0 0;height:426px}.hero-image img{height:100%;object-fit:cover;object-position:center 66%}.invitation-date{margin:23px 0 13px}.invitation-place{}.hero-copy{max-width:450px}.eyebrow{text-transform:uppercase;color:var(--muted);margin-bottom:22px}.hero h1{margin-bottom:19px}.hero h1 span{margin:0 .06em}.hero-date{margin-bottom:26px}.hero-note{max-width:410px;color:var(--muted);margin-bottom:33px}.countdown{color:var(--muted);margin-top:32px}.countdown span{font-variant-numeric:tabular-nums}.button{display:inline-flex;align-items:center;gap:26px;justify-content:space-between;min-height:48px;padding:0 22px;border:1px solid var(--ink);background:none;color:var(--ink);text-decoration:none;border-radius:0;transition:background .2s,color .2s}.button span{}.button:hover{background:var(--ink);color:var(--paper)}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#59614f;border-color:#59614f}.simple-link{text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:4px;display:inline-block}.simple-link span{margin-left:14px}.simple-link:hover{color:var(--muted)}
.section-wrap{padding:100px max(6vw,24px)}.section-heading{max-width:650px;text-align:center;margin:0 auto 58px}.section-heading h2,.travel-copy h2,.gift h2{margin-bottom:23px}.section-heading>p:last-child{color:var(--muted);max-width:590px;margin:auto}.section-heading .eyebrow{margin-bottom:15px}.week{background:var(--texture),var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.timeline{display:grid;grid-template-columns:repeat(3,1fr);max-width:1160px;margin:auto}.timeline-item{padding:0 34px;border-left:1px solid var(--line)}.timeline-item:first-child{border-left:0}.timeline-date{margin-bottom:30px;display:flex;flex-direction:column;align-items:center;text-align:center}.timeline-date span,.timeline-date small{text-transform:uppercase;color:var(--muted)}.timeline-date b{color:var(--ink);margin:8px 0}.timeline-dot{display:none}.timeline-card{padding:0;text-align:center}.event-time{display:block;color:var(--muted);min-height:28px}.timeline-card h3{margin:13px 0 18px}.timeline-card p{color:var(--muted);margin-bottom:24px}.schedule-note{text-align:center;color:var(--muted);margin:55px 0 0}
.travel{padding:105px max(9vw,24px) 70px;max-width:1440px;margin:auto}.travel-copy{display:grid;grid-template-columns:1fr 1.1fr;column-gap:9vw;position:relative}.travel-copy>.eyebrow,.travel-copy>h2,.travel-copy>p{grid-column:1}.travel-copy>h2{margin-bottom:22px}.travel-copy>p:not(.eyebrow){color:var(--muted);max-width:410px}.travel-copy>.eyebrow{align-self:end;margin-top:30px}.travel-notes{grid-column:2;grid-row:1/5}.travel-notes article{padding:21px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:25px 1fr;gap:13px}.travel-notes article:first-child{border-top:1px solid var(--line)}.travel-notes article>span{color:var(--gold)}.travel-notes h3{margin-bottom:8px;}.travel-notes p{color:var(--muted)}.stay-section{padding-top:20px;padding-bottom:100px}.stay-section .section-heading{text-align:left;max-width:1160px;margin-bottom:35px}.stay-section .section-heading h2{margin-bottom:16px}.stay-section .section-heading>p:last-child{max-width:650px;margin:0}.stay-section .section-heading>.eyebrow{display:none}.hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;max-width:1160px;margin:auto}.hotel-card{background:var(--texture),var(--paper);border:1px solid var(--line);padding:31px 27px 25px;display:flex;flex-direction:column}.hotel-area,.guide-type{color:var(--muted)}.hotel-card h3{margin:18px 0}.hotel-card p{color:var(--muted);margin-bottom:28px}.hotel-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:auto;border-top:1px solid var(--line);padding-top:17px}.hotel-actions a,.guide-card>a{text-decoration:none}.hotel-actions a span{margin-left:8px;color:var(--muted)}.hotel-actions a:hover,.guide-card>a:hover{color:var(--muted)}.hotel-note{max-width:1160px;margin:22px auto 0;color:var(--muted);}
.city{background:var(--texture),var(--sage-light);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.city .section-heading{margin-bottom:43px}.guide-tabs{display:flex;justify-content:center;gap:35px;margin:0 auto 46px;border-bottom:1px solid var(--line);max-width:1160px}.guide-tabs button{border:0;border-bottom:2px solid transparent;background:none;padding:15px 0 17px;white-space:nowrap;transition:border-color .2s,color .2s}.guide-tabs button[aria-selected=true]{border-color:var(--ink);color:var(--ink)}.guide-tabs button[aria-selected=false]{color:var(--muted)}.guide-tabs button:hover{border-bottom-color:var(--gold)}.guide-tabs span{display:none}.guide-panel{max-width:1160px;margin:auto;min-height:240px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:36px;row-gap:36px}.guide-card{display:flex;flex-direction:column;padding:7px 0 26px;border-bottom:1px solid var(--line);min-height:240px}.guide-card h3{margin:16px 0}.guide-card p{color:var(--muted);margin-bottom:23px}.guide-card>a{margin-top:auto;display:flex;justify-content:space-between;align-items:center;width:100%}.guide-card>a span{color:var(--muted)}.explore-intro{max-width:720px;text-align:center;margin:0 auto 45px}.explore-intro .eyebrow{margin-bottom:15px}.explore-intro h3{margin-bottom:19px}.explore-intro>p:last-child{color:var(--muted);}.explore-places{grid-template-columns:repeat(2,1fr);column-gap:65px}.explore-places .guide-card{min-height:220px}.guide-footer{max-width:1160px;margin:43px auto 0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:30px;border-top:1px solid var(--line)}.guide-footer p{color:var(--muted)}
.gift{display:grid;grid-template-columns:.8fr 1fr;gap:9vw;align-items:center;max-width:1200px;margin:auto;padding-top:115px;padding-bottom:115px}.gift-photo{padding:18px;border:1px solid rgba(183,161,106,.6);border-radius:220px 220px 0 0;background:var(--texture),var(--paper)}.gift-photo img{height:430px;object-fit:cover;object-position:center 55%;border-radius:210px 210px 0 0}.gift-copy{max-width:470px}.gift-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:29px}.gift-copy .gift-note{margin:25px 0 0}.gift-dialog{max-width:560px;width:calc(100% - 36px);padding:55px 42px 42px;background:var(--texture),var(--paper);border:1px solid var(--gold);color:var(--ink);box-shadow:0 25px 80px #20291e33}.gift-dialog::backdrop{background:rgba(42,49,36,.48);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:21px;top:15px;padding:5px;background:none;border:0;display:flex;align-items:center;gap:14px}.dialog-close span{}.gift-dialog h2{margin-bottom:19px}.gift-dialog-intro{color:var(--muted);margin-bottom:28px}.gift-pending{padding-top:24px;border-top:1px solid var(--line);color:var(--muted)}.gift-method{padding:22px 0;border-top:1px solid var(--line)}.gift-method h3{margin-bottom:9px}.gift-method p{margin-bottom:8px}.gift-detail-label{display:block;text-transform:uppercase;color:var(--muted);margin-top:13px}.gift-copy-button{border:0;border-bottom:1px solid var(--gold);padding:0 0 3px;margin-left:10px;background:none;}.gift-bank-value{overflow-wrap:anywhere}.gift-method .button{margin-top:12px}
.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;padding:36px 6vw;background:var(--texture),var(--paper)}.footer p{color:var(--muted)}.back-top{text-decoration:none}.back-top span{margin-left:10px}.reveal{opacity:1;transform:none}
@media(min-width:1450px){.hero{padding-left:80px;padding-right:80px}.travel{padding-left:140px;padding-right:140px}}
@media(max-width:1000px){.main-nav{gap:22px}.main-nav a{}.hero{gap:55px;padding:70px 7vw 80px}.invitation-card{padding:105px 27px 29px}.invitation-card::before{right:-23px}.invitation-label{top:54px;}.hero-image{height:370px}.hero h1{}.hero-note{}.section-wrap{padding:85px 6vw}.section-heading h2,.travel-copy h2,.gift h2{}.timeline-item{padding:0 20px}.timeline-card h3{}.timeline-card p{}.travel{padding:85px 6vw 60px}.travel-copy{gap:7vw}.hotel-grid{gap:18px}.hotel-card{padding:25px 22px}.guide-grid{grid-template-columns:repeat(2,1fr)}.gift{gap:7vw}.gift-photo img{height:365px}.stay-section{padding-top:10px}}
@media(max-width:680px){html{scroll-padding-top:20px}.site-header{height:76px;padding:0 24px}.brand{}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:75px;left:0;right:0;background:var(--texture),var(--paper);padding:14px 24px 22px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}.main-nav.open{display:flex}.main-nav a{padding:15px 0;border-bottom:1px solid var(--line)}.hero{grid-template-columns:1fr;padding:57px 34px 70px;gap:61px}.invitation-card{max-width:330px;padding:97px 28px 30px}.invitation-card::before{inset:-13px -15px 21px 26px;transform:rotate(4deg)}.invitation-border{inset:14px}.invitation-label{top:52px;}.hero-image{height:345px}.invitation-date{}.invitation-place{}.hero-copy{text-align:center;justify-self:center;max-width:410px}.hero h1{}.eyebrow{margin-bottom:17px}.hero-date{margin-bottom:22px}.hero-note{margin-bottom:28px}.hero-copy .button{gap:35px}.countdown{margin-top:25px}.section-wrap{padding:70px 26px}.section-heading{margin-bottom:42px}.section-heading h2,.travel-copy h2,.gift h2{}.section-heading>p:last-child{}.timeline{grid-template-columns:1fr;gap:0}.timeline-item{padding:33px 0;display:grid;grid-template-columns:80px 1fr;gap:20px;border-left:0;border-top:1px solid var(--line)}.timeline-item:last-child{padding-bottom:0}.timeline-date{margin:0;align-items:center}.timeline-date b{margin:6px 0}.timeline-date span,.timeline-date small{}.timeline-card{text-align:left}.event-time{min-height:0;}.timeline-card h3{margin:10px 0 12px}.timeline-card p{margin-bottom:17px}.schedule-note{margin-top:35px}.travel{padding:70px 26px 46px}.travel-copy{display:block}.travel-copy>.eyebrow{margin-top:0}.travel-copy>p:not(.eyebrow){margin-bottom:31px}.travel-notes article{padding:21px 0}.travel-notes p{}.stay-section{padding-top:0}.stay-section .section-heading h2{}.stay-section .section-heading{margin-bottom:28px}.hotel-grid{grid-template-columns:1fr;gap:16px}.hotel-card{padding:25px}.hotel-card h3{margin:15px 0}.hotel-card p{margin-bottom:20px}.hotel-note{}.guide-tabs{gap:0;justify-content:space-between;margin-bottom:29px}.guide-tabs button{padding:12px 0 15px}.guide-grid,.explore-places{grid-template-columns:1fr;gap:25px}.guide-card{min-height:0;padding-bottom:23px}.guide-card h3{margin:13px 0}.guide-card p{margin-bottom:19px;}.guide-panel{min-height:200px}.guide-footer{display:block;margin-top:34px;padding-top:27px}.guide-footer p{margin-bottom:18px}.guide-footer .button{gap:32px}.explore-intro{margin-bottom:30px;text-align:left}.explore-intro h3{}.explore-intro>p:last-child{}.explore-places .guide-card{min-height:0}.gift{grid-template-columns:1fr;gap:40px;padding:76px 33px;max-width:500px}.gift-photo{max-width:290px;padding:14px;justify-self:center}.gift-photo img{height:315px}.gift-copy{text-align:center}.gift-copy>p:not(.eyebrow){margin-bottom:27px}.gift-copy .gift-note{margin:23px 0 0}.gift-dialog{padding:58px 27px 30px}.gift-dialog h2{}.footer{display:grid;grid-template-columns:1fr auto;padding:28px 25px;gap:15px}.footer p{grid-column:1/-1;grid-row:2;}.back-top{}}
@media(max-width:370px){.hero{padding-left:26px;padding-right:26px}.hero h1{}.hero-image{height:315px}.guide-tabs button{}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Separate the sage backing from the ivory face of the invitation. */
.invitation-card{background:none;box-shadow:none}.invitation-card::after{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--texture),var(--paper);box-shadow:0 15px 36px rgba(69,70,46,.13)}.invitation-border{z-index:0}.hero-image{position:relative;z-index:1}.invitation-label,.invitation-date,.invitation-place{z-index:1}.invitation-date,.invitation-place{position:relative}

.timeline-card p.venue-note{margin-bottom:0;color:var(--muted)}

/* The invitation is the untouched artwork supplied by Cami. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Fine linen at a consistent physical scale, softened to match the invitation. */
:root{--linen:#efede1;--texture:url('images/ivory-fine-linen.png');--linen-size:680px 680px}
body{background-color:var(--linen);background-image:linear-gradient(#efede1b8,#efede1b8),var(--texture);background-size:auto,var(--linen-size);background-position:left top;background-repeat:repeat}
.site-header,.footer{background-color:var(--linen);background-image:linear-gradient(#efede1b8,#efede1b8),var(--texture);background-size:auto,var(--linen-size);background-position:left top;background-repeat:repeat}
.hero{max-width:1380px;grid-template-columns:1.3fr 1fr;gap:40px;padding:35px 4vw 65px}.save-date-art{overflow:hidden;width:100%;margin:0}.save-date-art img{width:200%;max-width:none;height:auto;transform:translateX(-24%)}.hero-copy{padding-right:20px;max-width:450px}.hero-copy h2{margin-bottom:27px}.hero-note{}
.week{background-color:var(--paper);background-image:linear-gradient(#f8f5edc7,#f8f5edc7),var(--texture);background-size:auto,var(--linen-size);background-position:left top;background-repeat:repeat}
.hotel-card,.gift-photo,.gift-dialog{background-color:var(--paper);background-image:linear-gradient(#f8f5edd6,#f8f5edd6),var(--texture);background-size:auto,var(--linen-size);background-position:left top;background-repeat:repeat}
.city{background-color:var(--sage-light);background-image:linear-gradient(#e2e3d5df,#e2e3d5df),var(--texture);background-size:auto,var(--linen-size);background-position:left top;background-repeat:repeat}
.timeline-card h3 strong{}.event-optional{display:inline-block;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:2px;margin:-6px 0 17px;color:var(--muted)}
.guide-links{display:flex;justify-content:space-between;gap:25px;padding-top:5px;margin-top:auto}.guide-links a{text-decoration:none}.guide-links a span{margin-left:10px}.guide-links a:hover{color:var(--muted)}
.more-hotels{max-width:1160px;margin:27px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.more-hotels summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;padding:22px 0;}.more-hotels summary::-webkit-details-marker{display:none}.more-hotels summary>span{color:var(--gold);transition:transform .2s}.more-hotels[open] summary>span{transform:rotate(45deg)}.more-hotel-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:10px 0 32px}.more-hotel-grid h3{margin:12px 0 16px}.more-hotel-grid article>p:not(.hotel-area){color:var(--muted);margin-bottom:23px}.more-hotel-grid .hotel-actions{margin-top:0}
.gift-dialog{max-width:580px}.gift-detail-label{margin-top:0}.gift-method h3{margin-bottom:13px}.bank-alias{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:12px 0 19px}.gift-bank-value{}.gift-copy-button{min-height:32px;margin:0;padding:4px 0}.gift-method p.gift-transfer-note{color:var(--muted);margin:0}.gift-feedback{color:var(--muted);min-height:18px;}.gift-method .gift-detail-label{margin-bottom:10px}.gift-method .button{margin-top:0}
@media(max-width:1000px){.hero{gap:25px;padding:35px 3vw 60px}.hero-copy h2{}.hero-note{}}
@media(max-width:800px){.hero{grid-template-columns:1fr;padding:18px 0 66px;gap:12px}.save-date-art{max-width:680px;justify-self:center}.save-date-art img{width:170%;transform:translateX(-20%)}.hero-copy{padding:0 30px;max-width:490px;justify-self:center;text-align:center}.hero-copy h2{}.hero-note{margin-bottom:28px}.hero-copy .eyebrow{margin-bottom:17px}}
@media(max-width:680px){.main-nav{background-image:linear-gradient(#f8f5edc7,#f8f5edc7),var(--texture);background-size:auto,var(--linen-size)}.save-date-art img{width:250%;transform:translateX(-25%)}.hero{gap:25px;padding-top:17px}.hero-copy{padding:0 29px;max-width:460px}.hero-copy h2{margin-bottom:23px}.more-hotel-grid{grid-template-columns:1fr;gap:35px}.more-hotels summary{}.event-optional{margin:-2px 0 12px;}.gift-dialog{padding-top:52px}.gift-dialog h2{}.gift-method{padding:20px 0}.gift-bank-value{}}


/* Ceremony and reception share one wedding-day entry. */
.wedding-venues>div+div{margin-top:23px;padding-top:21px;border-top:1px solid var(--line)}.timeline-card p.venue-step{text-transform:uppercase;margin:0 0 9px}.wedding-venues h4{margin-bottom:12px}.timeline-card p.wedding-venue-note{margin-bottom:14px}
/* A city guide with the same typography and quiet gold detail as the invitation. */
.city .section-heading{margin-bottom:34px}
.guide-tabs{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;column-gap:38px;row-gap:0;max-width:1050px;margin:0 auto 48px;border-bottom:1px solid var(--line)}
.guide-tabs button{display:block;min-width:0;padding:14px 0 17px;border-bottom:1px solid transparent;color:var(--muted)}
.guide-tabs button[aria-selected=true]{border-color:var(--gold);color:var(--ink)}
.guide-tabs button:hover{color:var(--ink);border-color:var(--gold)}
.guide-panel{max-width:1050px}
.guide-intro{max-width:660px;margin:0 auto 48px;text-align:center}
.guide-ornament{display:flex;align-items:center;justify-content:center;gap:21px;margin-bottom:23px;color:var(--gold)}
.guide-ornament::before,.guide-ornament::after{content:'';height:1px;width:43px;background:var(--gold);opacity:.4}
.guide-illustration{display:block;width:42px;height:42px;color:var(--gold);opacity:.85}
.guide-intro .eyebrow{margin-bottom:12px;}
.guide-intro h3{margin-bottom:18px;}
.guide-intro>p:last-child{color:var(--muted);max-width:610px;margin:auto}
.guide-grid,.explore-places{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:65px;row-gap:13px}
.guide-card,.explore-places .guide-card{min-height:0;padding:25px 0 29px;border-bottom:1px solid var(--line)}
.guide-card h3{margin:14px 0 15px;}
.guide-card p{margin-bottom:24px;max-width:440px}
.guide-type{}
.guide-links{justify-content:flex-start;align-items:center;gap:27px;padding-top:0}
.guide-links a{text-decoration:none;border-bottom:1px solid #b7a16a80;padding-bottom:3px}
.guide-links a span{margin-left:10px;color:var(--gold)}
.guide-links a:hover{border-color:var(--ink);color:var(--ink)}
.guide-footer{max-width:1050px;margin-top:40px;border-top:0;padding-top:13px}
@media(max-width:800px){.guide-tabs{column-gap:25px}.guide-grid,.explore-places{column-gap:35px}}
@media(max-width:680px){.city .section-heading{margin-bottom:25px}.guide-tabs{display:flex;column-gap:24px;row-gap:0;margin-bottom:35px;justify-content:center}.guide-tabs button{width:auto;min-width:0;padding:11px 0 13px}.guide-intro{text-align:center;margin-bottom:25px}.guide-ornament{margin-bottom:17px;gap:17px}.guide-illustration{width:36px;height:36px}.guide-ornament::before,.guide-ornament::after{width:32px}.guide-intro h3{margin-bottom:15px}.guide-intro>p:last-child{}.guide-grid,.explore-places{grid-template-columns:1fr;gap:0}.guide-card,.explore-places .guide-card{padding:25px 0 27px}.guide-card h3{}.guide-card p{}.guide-footer{padding-top:0}.timeline-card p.venue-step{}}

/* A concise first selection, with additional addresses tucked into a disclosure. */
.guide-intro{max-width:610px;margin-bottom:26px}
.guide-ornament{margin-bottom:16px}
.guide-illustration{width:34px;height:34px}
.guide-intro h3{margin-bottom:12px}
.guide-intro>p:last-child{max-width:540px}
.guide-card h3{margin:11px 0 12px;}
.guide-card p{margin-bottom:19px}
.guide-type{}
.guide-links a{}
.guide-more{margin-top:32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.guide-more summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:23px 0;}
.guide-more summary::-webkit-details-marker{display:none}
.guide-more summary span{color:var(--gold);transition:transform .2s}
.guide-more[open] summary span{transform:rotate(45deg)}
.guide-more>.guide-grid{padding:4px 0 18px}
.guide-more .guide-card{padding:19px 0 22px}
.guide-more .guide-card h3{}
.guide-more .guide-card:nth-last-child(-n+2){border-bottom:0}
.guide-practical{margin-top:22px;color:var(--muted)}
summary:focus-visible,.guide-tabs button:focus-visible,.guide-links a:focus-visible{outline:1px solid var(--gold);outline-offset:6px}
@media(max-width:680px){.guide-intro h3{}.guide-intro>p:last-child{}.guide-card p{}.guide-card h3{}.guide-more summary{padding:21px 0}.guide-more .guide-card:nth-last-child(2){border-bottom:1px solid var(--line)}.guide-practical{}}

/* Invitation-led wedding day, with the surrounding gatherings as quieter notes. */
.week{padding-top:90px;padding-bottom:88px}
.week .section-heading{margin-bottom:45px}
.wedding-day{position:relative;max-width:1000px;margin:0 auto;text-align:center;padding:42px 50px 30px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}
.wedding-day-heading .eyebrow{margin-bottom:13px}
.wedding-day-heading h3{margin-bottom:13px}
.wedding-day-heading>p:last-child{color:var(--muted)}
.wedding-moments{display:grid;grid-template-columns:1fr 1fr;margin:25px 0 28px}
.wedding-moment{padding:0 30px}
.wedding-moment+.wedding-moment{border-left:1px solid #b7a16a66}
.wedding-art{height:98px;display:flex;align-items:center;justify-content:center;margin-bottom:13px}
.wedding-art img{width:160px;height:90px;object-fit:contain}
.moment-label{text-transform:uppercase;color:var(--muted);margin-bottom:13px}
.wedding-moment h4{margin-bottom:6px}
.moment-place{color:var(--muted)}
.moment-time{margin:14px 0 18px}
.wedding-moment .simple-link{padding-bottom:4px}
.wedding-timing-note{color:var(--muted);max-width:580px;margin:0 auto}
.week-gatherings{display:grid;grid-template-columns:1fr 1fr;column-gap:90px;max-width:1000px;margin:43px auto 0}
.week-gathering{padding:0 8px}
.gathering-date{text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.week-gathering h3{margin-bottom:10px}
.gathering-time{margin-bottom:16px;color:var(--ink)}
.week-gathering>p:not(.gathering-date):not(.gathering-time):not(.gathering-detail){color:var(--muted);max-width:390px}
.gathering-detail{margin-top:15px;color:var(--muted)}
/* A compact address book, with clear labels and no repeated category headings. */
.city{padding-top:88px;padding-bottom:80px}
.city .section-heading{margin-bottom:30px}
.guide-tabs{max-width:1100px;margin-bottom:30px}
.guide-panel{max-width:1100px}
.guide-intro{max-width:680px;text-align:center;margin:0 auto 20px}
.guide-intro>p:last-child{max-width:680px;color:var(--muted)}
.guide-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 40px}
#guide-panel-drink .guide-grid,#guide-panel-night .guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:65px}
.guide-more .guide-card{border-bottom:1px solid var(--line)}
.guide-more .guide-card:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
.guide-card{padding:24px 0 26px}
.guide-card h3{margin:11px 0 13px}
.guide-card p{margin-bottom:20px}
.guide-type{}
.guide-footer{max-width:1100px}
.explore-places{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:65px}
.hotel-card h3,.more-hotel-grid h3{}
.hotel-card p,.more-hotel-grid article>p:not(.hotel-area),.travel-notes p{}
.hotel-actions a{}
@media(max-width:960px){.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}.wedding-day{padding-left:25px;padding-right:25px}.wedding-moment{padding:0 20px}.wedding-moment h4{}.week-gatherings{column-gap:45px}}
@media(max-width:680px){.week{padding-top:65px;padding-bottom:65px}.week .section-heading{margin-bottom:35px}.wedding-day{padding:31px 0 25px}.wedding-day-heading h3{}.wedding-day-heading .eyebrow{}.wedding-day-heading>p:last-child{}.wedding-moments{grid-template-columns:1fr;gap:26px;margin-top:15px}.wedding-moment{padding:0 15px}.wedding-moment+.wedding-moment{border-left:0;border-top:1px solid var(--line);padding-top:21px}.wedding-art{height:84px;margin-bottom:8px}.wedding-art img{width:145px;height:82px}.wedding-moment h4{}.moment-time{margin:9px 0 13px}.moment-label{margin-bottom:9px}.wedding-timing-note{max-width:280px;}.week-gatherings{grid-template-columns:1fr;gap:30px;margin-top:32px}.week-gathering{padding:0}.week-gatherings .week-gathering+article{border-top:1px solid var(--line);padding-top:30px}.week-gathering h3{}.gathering-time{margin-bottom:12px}.city{padding-top:65px;padding-bottom:65px}.guide-grid,.explore-places{grid-template-columns:1fr;gap:0}.guide-tabs{margin-bottom:25px;column-gap:22px}.guide-intro>p:last-child{}.guide-card h3{}.guide-more .guide-card:nth-last-child(2){border-bottom:1px solid var(--line)}}
@media(max-width:680px){#guide-panel-drink .guide-grid,#guide-panel-night .guide-grid{grid-template-columns:1fr}}
.wedding-moment:nth-child(2) .wedding-art img{height:106px}
@media(max-width:680px){.wedding-moment:nth-child(2) .wedding-art img{height:96px}}


/* Typography: one shared size per role, across every section. */
:root {
  --type-display: 39px;
  --type-heading: 19px;
  --type-time: 11px;
  --type-body: 12px;
  --type-note: 11px;
  --type-label: 10px;
  --type-control: 10px;
  --type-tab: 13px;
  --serif: 'Libre Baskerville', Georgia, serif;
  --caps: 'Forum', Georgia, serif;
  --body: 'Libre Baskerville', Georgia, serif;
}
body {font:400 var(--type-body)/1.65 var(--body)}
h1,h2,h3,h4 {font-family:var(--serif);letter-spacing:0;font-weight:400;line-height:1.2}
.hero-copy h2,.section-heading h2,.stay-section .section-heading h2,.travel-copy h2,.gift h2,.gift-dialog h2 {
  font:400 var(--type-display)/1.08 var(--serif);
  letter-spacing:-.015em;
}
.wedding-day-heading h3,.week-gathering h3,.wedding-moment h4,
.guide-card h3,.guide-more .guide-card h3,.hotel-card h3,.more-hotel-grid h3,
.travel-notes h3,.gift-method h3 {
  font:400 var(--type-heading)/1.2 var(--serif);
  letter-spacing:0;
}
.wedding-day-heading h3,.week-gathering h3 {font-family:var(--body);font-weight:700}
.hero-note,.section-heading>p:last-child,.travel-copy>p:not(.eyebrow),
.travel-notes p,.hotel-card p,.more-hotel-grid article>p:not(.hotel-area),
.guide-card p,.guide-intro>p:last-child,.gift-copy>p:not(.eyebrow):not(.gift-note),
.gift-dialog-intro,.gift-method p:not(.gift-detail-label):not(.gift-transfer-note),
.wedding-day-heading>p:last-child,.moment-place,.week-gathering>p:not(.gathering-date):not(.gathering-time):not(.gathering-detail),
.guide-footer p {
  font:400 var(--type-body)/1.65 var(--body);
  letter-spacing:0;
}
.eyebrow,.wedding-day-heading .eyebrow,.gathering-date,.moment-label,
.hotel-area,.guide-type,.gift-detail-label,.gift-method .gift-detail-label,.footer>p {
  font:400 var(--type-label)/1.6 var(--body);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.moment-time,.gathering-time {
  font:400 var(--type-time)/1.4 var(--serif);
  letter-spacing:0;
}
.wedding-timing-note,.gathering-detail,.guide-practical,.hotel-note,
.gift-copy .gift-note,.gift-method p.gift-transfer-note {
  font:italic 400 var(--type-note)/1.6 var(--body);
  letter-spacing:0;
}
.countdown,.gift-feedback {font:400 var(--type-note)/1.5 var(--body)}
.brand {font:400 var(--type-control)/1.5 var(--serif);letter-spacing:.09em}
.brand span {font-style:normal;font-size:1em}
.main-nav a,.simple-link,.wedding-moment .simple-link,.guide-links a,.hotel-actions a,
.back-top,.dialog-close,.gift-copy-button {
  font:400 var(--type-control)/1.4 var(--body);
  letter-spacing:0;
}
.guide-tabs button,.guide-more summary,.more-hotels summary {
  font:400 var(--type-tab)/1.35 var(--serif);letter-spacing:0;
}
.guide-more summary>span,.more-hotels summary>span,.dialog-close span {
  font:400 var(--type-heading)/1 var(--serif);
}
.travel-notes article>span {font:400 var(--type-control)/1.65 var(--serif)}
.gift-bank-value {font:700 var(--type-body)/1.5 var(--body);letter-spacing:.04em}

/* Soft invitation silhouettes, with the sage of the envelope. */
.button {
  font:400 var(--type-control)/1.4 var(--serif);
  letter-spacing:.015em;
  border-radius:999px;
  padding:11px 27px;
  min-height:46px;
  border-color:#a7ac8d;
  gap:27px;
  transition:background .2s,color .2s,border-color .2s;
}
.button span {font:400 var(--type-tab)/1 var(--serif)}
.button-dark {background:var(--sage);color:var(--ink);border-color:var(--sage)}
.button-dark:hover {background:#a3a889;border-color:#a3a889;color:var(--ink)}
.button-outline:hover {background:#d9dcc8;border-color:#a7ac8d;color:var(--ink)}
.hero-copy .button {min-width:225px;gap:25px}
.button:active {background:#a3a889;color:var(--ink)}

/* Spacing follows the larger, more readable text. */
.wedding-day-heading h3 {margin-bottom:12px}
.wedding-day-heading .eyebrow {margin-bottom:13px}
.wedding-moment h4 {margin-bottom:7px}
.week-gathering h3 {margin-bottom:12px}
.gathering-time {margin-bottom:0}
.week-gathering .gathering-place {margin-bottom:16px;color:var(--muted)}
.guide-card h3 {margin:11px 0 13px}
.guide-type,.hotel-area {display:block}
.guide-tabs {column-gap:38px}
.guide-grid {row-gap:12px}
.hotel-actions {gap:15px;flex-wrap:wrap}
.guide-links {gap:24px;flex-wrap:wrap}
.gift-dialog {max-width:650px}
.gift-dialog h2 {margin-bottom:20px}
@media(max-width:1000px) {
  :root {--type-display:35px}
  .main-nav {gap:24px}
}
@media(max-width:680px) {
  :root {
    --type-display:29px;
    --type-heading:17px;
    --type-time:12px;
    --type-body:13px;
    --type-note:12px;
    --type-label:10px;
    --type-control:11px;
    --type-tab:13px;
  }
  .guide-tabs {column-gap:23px}
  .main-nav a {padding:14px 0}
  .brand {font-size:13px}
  .gift-dialog {padding:52px 24px 26px}
  .hero-copy .button {gap:25px}
  .gift-bank-value {letter-spacing:.025em}
}

/* Event days stand above the quieter time and location details. */
:root {--type-date:13px}
.wedding-day-heading .eyebrow,.gathering-date {
  font:700 var(--type-date)/1.5 var(--body);
  color:var(--ink);
  letter-spacing:.055em;
  text-transform:uppercase;
}
.moment-time {margin:11px 0 15px}
@media(max-width:680px) {
  :root {--type-date:13px}
  .moment-time {margin:9px 0 13px}
}

/* Forum headlines and Libre Baskerville text share the same role-based scale. */
.moment-time,.gathering-time {font-family:var(--body)}
.button {font-family:var(--body)}
.brand {font-family:var(--body);font-weight:400;letter-spacing:.09em}
.hero-copy .button {min-width:205px}
:root {--type-brand:12px}
.brand {font-size:var(--type-brand)}
@media(max-width:680px) {:root {--type-brand:12px}}

/* Forum is reserved for uppercase text; everything else uses Libre Baskerville. */
.eyebrow,.wedding-day-heading .eyebrow,.gathering-date,.moment-label,
.hotel-area,.guide-type,.gift-detail-label,.gift-method .gift-detail-label,
.footer>p,.brand,.gift-bank-value,.caps-text {font-family:var(--caps)}
.hero-copy h2,.section-heading h2,.travel-copy h2,.gift h2,.gift-dialog h2 {line-height:1.22}
.guide-card h3.caps-text {font-family:var(--caps)}

/* Shorter reading lines and restrained rules throughout the page. */
.hero-note {max-width:40ch}
.section-heading>p:last-child {max-width:46ch}
.travel-copy>p:not(.eyebrow) {max-width:40ch}
.travel-notes {max-width:440px}
.travel-notes p {max-width:40ch}
.stay-section .section-heading,.hotel-grid,.more-hotels,.hotel-note {max-width:1040px}
.stay-section .section-heading>p:last-child {max-width:46ch}
.hotel-card p,.more-hotel-grid article>p:not(.hotel-area) {max-width:37ch}
.wedding-day {max-width:780px;padding-left:30px;padding-right:30px}
.week-gatherings {max-width:780px;column-gap:65px}
.week-gathering>p:not(.gathering-date):not(.gathering-time):not(.gathering-place):not(.gathering-detail) {max-width:35ch}
.wedding-timing-note {max-width:50ch}
.wedding-moment {padding-left:20px;padding-right:20px;position:relative}
.wedding-moment+.wedding-moment {border-left:0}
.wedding-moment+.wedding-moment::before {content:'';position:absolute;left:0;top:15%;height:70%;width:1px;background:#b7a16a66}
.guide-tabs {max-width:780px;column-gap:30px}
.guide-panel,.guide-footer {max-width:1040px}
.guide-intro>p:last-child {max-width:56ch}
.guide-card p {max-width:37ch}
#guide-panel-drink .guide-card p,#guide-panel-night .guide-card p,.explore-places .guide-card p {max-width:43ch}
.guide-more {max-width:780px;margin-left:auto;margin-right:auto}
.more-hotels {max-width:780px}
.guide-card,.explore-places .guide-card,.guide-more .guide-card,
.guide-more .guide-card:nth-last-child(-n+2),.guide-more .guide-card:nth-last-child(2) {border-bottom:0;position:relative}
.guide-card::after {content:'';position:absolute;bottom:0;left:0;height:1px;width:78%;background:var(--line)}
.gift-copy>p:not(.eyebrow):not(.gift-note) {max-width:42ch}
.week,.city {border-top:0;border-bottom:0}
.site-header {border-bottom:0}
.footer {border-top:0;position:relative}
.site-header::after,.footer::before {content:'';position:absolute;left:50%;transform:translateX(-50%);width:88%;max-width:1040px;height:1px;background:var(--line)}
.site-header::after {bottom:0}
.footer::before {top:0}
@media(max-width:680px) {
  .wedding-day {padding-left:0;padding-right:0;border-top:0;border-bottom:0;background-image:linear-gradient(var(--gold),var(--gold)),linear-gradient(var(--gold),var(--gold));background-size:80% 1px;background-repeat:no-repeat;background-position:50% top,50% bottom}
  .wedding-moment {padding-left:10px;padding-right:10px}
  .wedding-moment+.wedding-moment {border-top:0}
  .wedding-moment+.wedding-moment::before {left:10%;top:0;height:1px;width:80%}
  .guide-tabs {column-gap:20px}
  .guide-card::after {width:75%}
  .hero-note,.gift-copy>p:not(.eyebrow):not(.gift-note) {margin-left:auto;margin-right:auto}
  .week-gatherings .week-gathering+article {border-top:0;position:relative}
  .week-gatherings .week-gathering+article::before {content:'';position:absolute;top:0;left:0;width:75%;height:1px;background:var(--line)}
}

/* A chronological invitation: Wednesday, the main celebration on Friday, Saturday. */
.week>.week-gathering {max-width:540px;margin-left:auto;margin-right:auto;padding:0;text-align:center}
.week>.week-gathering-before {margin-bottom:40px}
.week>.week-gathering-after {margin-top:40px}
.week>.week-gathering p:not(.gathering-date):not(.gathering-time):not(.gathering-place):not(.gathering-detail) {max-width:42ch;margin-left:auto;margin-right:auto}
.week>.week-gathering .gathering-place {margin:0 auto 15px}
.week>.week-gathering .gathering-date {margin-bottom:10px}
.wedding-day-heading>p:last-child {max-width:46ch;margin-left:auto;margin-right:auto}
.moment-description {font:400 var(--type-note)/1.6 var(--body);color:var(--muted);margin-top:10px}

/* Quiet secondary links; the map and registry actions retain a clear presence. */
.simple-link,.wedding-moment .simple-link,.guide-links a,.hotel-actions a,.back-top,.gift-copy-button {
  font-size:9.5px;
  color:#79806d;
  border-bottom-color:#b7a16a66;
}
.main-nav a {font-size:10px;color:#68705e}
.simple-link:hover,.guide-links a:hover,.hotel-actions a:hover,.back-top:hover,.gift-copy-button:hover,.main-nav a:hover {color:var(--ink)}
.guide-links a span,.hotel-actions a span,.simple-link span {color:#a49c7f}
.guide-map {
  max-width:780px;
  flex-direction:column;
  justify-content:center;
  text-align:center;
  gap:19px;
  margin:0 auto 34px;
  padding:0;
  border-top:0;
}
.guide-map p {font:400 var(--type-heading)/1.4 var(--body);color:var(--ink);margin:0}
.guide-map .button {
  font-size:12px;
  background:#677456;
  border-color:#677456;
  color:var(--paper);
  min-height:50px;
  padding:13px 29px;
  gap:26px;
}
.guide-map .button:hover {background:#566246;border-color:#566246;color:var(--paper)}
.gift h2 {color:#5b644e}
.gift-copy .button {background:#d9ddc6;border-color:#a3ab8d;color:var(--ink)}
.gift-copy .button:hover {background:#cbd2b7;border-color:#929d7b;color:var(--ink)}
@media(max-width:680px) {
  .week>.week-gathering-before {margin-bottom:32px}
  .week>.week-gathering-after {margin-top:32px}
  .main-nav a {font-size:11px}
  .guide-map {display:flex;gap:17px;padding-top:0;margin-bottom:28px}
  .guide-map .button {font-size:12px;padding-left:24px;padding-right:24px;gap:20px}
}

/* An open, left-aligned itinerary with one quiet thread through each day. */
.week-itinerary {max-width:780px;margin:0 auto;text-align:left}
.itinerary-day + .itinerary-day {margin-top:72px}
.itinerary-date {font:700 var(--type-date)/1.5 var(--caps);letter-spacing:.15em;text-transform:uppercase;color:var(--ink);margin:0 0 28px}
.itinerary-day-title {font:700 var(--type-heading)/1.3 var(--body);margin:-15px 0 26px}
.itinerary-events {margin-left:12px;border-left:1px solid #b1b69c66;padding:0 0 8px}
.itinerary-event {position:relative;padding:0 0 0 38px}
.itinerary-event + .itinerary-event {margin-top:40px}
.itinerary-event::before {content:'';position:absolute;left:-5px;top:3px;width:9px;height:9px;border:1.5px solid #68705e;border-radius:50%;background:var(--paper)}
.itinerary-event-heading {display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:660px}
.itinerary-event-heading>div {min-width:0}
.itinerary-time {font:400 var(--type-time)/1.5 var(--body);color:var(--muted);margin:0 0 12px}
.itinerary-event h3,.itinerary-event h4 {font:400 var(--type-heading)/1.35 var(--body);margin:0 0 16px}
.itinerary-event h3 {font-weight:700}
.itinerary-place {font:400 var(--type-note)/1.65 var(--body);color:var(--muted);margin:0 0 12px}
.itinerary-description {font:400 var(--type-body)/1.8 var(--body);max-width:60ch;margin:0 0 10px}
.itinerary-detail,.itinerary-timing-note {font:italic 400 var(--type-note)/1.7 var(--body);color:var(--muted);max-width:60ch;margin:0}
.itinerary-timing-note {margin:20px 0 0 50px}
.itinerary-art {display:block;flex-shrink:0;width:125px;height:70px;object-fit:contain;margin:0}
.itinerary-main .itinerary-events {border-color:#b7a16a88}
.itinerary-main .itinerary-event::before {border-color:#9c895c}
@media(max-width:680px) {
  .week-itinerary {max-width:500px}
  .itinerary-day + .itinerary-day {margin-top:52px}
  .itinerary-date {letter-spacing:.1em;margin-bottom:24px}
  .itinerary-events {margin-left:5px}
  .itinerary-event {padding-left:23px}
  .itinerary-event + .itinerary-event {margin-top:30px}
  .itinerary-event-heading {gap:10px}
  .itinerary-art {width:77px;height:52px}
  .itinerary-time {margin-bottom:9px}
  .itinerary-event h3,.itinerary-event h4 {margin-bottom:13px}
  .itinerary-timing-note {margin-left:29px}
  .simple-link,.guide-links a,.hotel-actions a,.back-top,.gift-copy-button {font-size:11px}
  .itinerary-description {max-width:40ch}
}

/* Artwork introduces each Friday moment; location pins are the map action. */
.itinerary-event-heading {display:block}
.itinerary-art {width:110px;height:62px;margin:0 0 9px;object-fit:contain}
.itinerary-event-with-art::before {top:74px}
.itinerary-location {display:inline-flex;align-items:flex-start;gap:8px;color:var(--muted);text-decoration:none;max-width:100%}
.itinerary-location .map-pin {width:16px;height:18px;flex-shrink:0;margin-top:0}
.itinerary-location span {border-bottom:1px solid #b7a16a44;transition:border-color .2s,color .2s}
.itinerary-location:hover {color:var(--ink)}
.itinerary-location:hover span {border-bottom-color:var(--gold)}
.itinerary-location:focus-visible {outline:2px solid var(--gold);outline-offset:5px;border-radius:2px}
@media(max-width:680px) {
  .itinerary-art {width:90px;height:52px}
  .itinerary-event-with-art::before {top:64px}
  .itinerary-location {gap:7px}
  .itinerary-location .map-pin {width:15px;height:18px;margin-top:1px}
}

/* Small illustrations sit beside the timeline dot on the time row. */
.itinerary-event-with-art::before {top:3px}
.itinerary-event-with-art .itinerary-art {position:absolute;left:8px;top:-10px;width:64px;height:36px;margin:0;object-fit:contain}
.itinerary-event-with-art .itinerary-time {padding-left:44px}
@media(max-width:680px) {
  .itinerary-event-with-art .itinerary-art {top:-9px}
  .itinerary-event-with-art .itinerary-time {padding-left:55px}
}

/* Four matching ornaments introduce the events, with the time directly below. */
.itinerary-event-with-art .itinerary-art {position:static;display:block;width:140px;height:84px;margin:0 0 6px -26px;object-fit:contain}
.itinerary-event-with-art::before {top:37.5px}
.itinerary-event-with-art .itinerary-time {padding-left:0}
.itinerary-event[aria-labelledby="day-after-title"] .itinerary-art {width:122px}
@media(max-width:680px) {
  .itinerary-event-with-art .itinerary-art {width:125px;height:78px;margin-left:-11px}
  .itinerary-event-with-art::before {top:34.5px}
  .itinerary-event[aria-labelledby="day-after-title"] .itinerary-art {width:112px}
}

/* Website and Map remain quiet text links without underlines. */
.guide-links a.link-plain,.hotel-actions a.link-plain {text-decoration:none;border-bottom:0}
.guide-links a.link-plain:hover,.hotel-actions a.link-plain:hover {text-decoration:none;border-bottom:0}



/* Invitation hierarchy: Forum for capitals, Libre Baskerville for the welcome. */
.site-header .brand {font-size:var(--type-heading)}
.hero-copy .eyebrow {
  font:400 var(--type-display)/1.22 var(--caps);
  color:var(--ink);
  letter-spacing:.02em;
  margin-bottom:22px;
}
.hero-copy h2 {
  font:700 var(--type-body)/1.65 var(--body);
  letter-spacing:0;
  margin-bottom:17px;
}
.week .section-heading .eyebrow,.travel-copy>.eyebrow {
  font-size:var(--type-date);
  line-height:1.5;
  letter-spacing:.15em;
}
@media(max-width:680px) {
  .hero-copy .eyebrow {margin-bottom:18px}
  .week .section-heading .eyebrow,.travel-copy>.eyebrow {letter-spacing:.1em}
}

/* Shared arrow artwork prevents platform emoji substitutions. */
.ui-arrow {
  display:inline-block;
  width:1.05em;
  height:1.05em;
  vertical-align:-.12em;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.button .ui-arrow {width:13px;height:13px;vertical-align:middle}

/* Dress code stays within the welcome, using the shared body scale. */
.hero-note {margin-bottom:17px}
.hero-dress-code {font:400 var(--type-body)/1.65 var(--body);color:var(--ink);margin:0 0 29px}
.hero-dress-code strong {font-weight:700}

/* The supplied linen image is the single canvas behind the whole website. */
:root {--texture:url('images/save-date-linen-background.png');--linen:#efeadd}
body {position:relative;isolation:isolate;background-color:var(--linen);background-image:none}
body::before {
  content:'';
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:var(--texture) center center / cover no-repeat;
}
.site-header,.footer,.week,.city,.hotel-card,.gift-photo {
  background-color:transparent;
  background-image:none;
}
.gift-dialog {
  background-color:var(--linen);
  background-image:var(--texture);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
@media(max-width:680px) {
  .main-nav {
    background-color:var(--linen);
    background-image:var(--texture);
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
  }
}

/* Subtle section tones keep the same linen visible from start to finish. */
:root {--card-paper:url('images/ivory-card-paper-smooth.png')}
.week {background-color:rgba(255,253,247,.62)}
.travel-stay-surface {background-color:rgba(247,241,228,.24)}
.city {background-color:rgba(137,150,112,.20)}
.registry-surface {background-color:rgba(255,252,246,.54)}
.footer {background-color:rgba(113,126,91,.16)}

/* Supplied ivory paper sits inside each recommendation card. */
.hotel-card,.more-hotel-grid>article,.guide-card,
.explore-places .guide-card,.guide-more .guide-card {
  background-color:#f6f1e8;
  background-image:var(--card-paper);
  background-size:627px 627px;
  background-repeat:repeat;
  border:1px solid rgba(165,150,113,.22);
  padding:25px 23px 39px;
}
.hotel-card {padding-bottom:25px}
.more-hotel-grid>article {padding-bottom:25px}
.guide-grid,.explore-places {column-gap:22px;row-gap:22px}
.more-hotel-grid {gap:22px}
.guide-card::after {left:23px;bottom:18px;width:calc(100% - 46px)}
.guide-more .guide-card:nth-last-child(-n+2),
.guide-more .guide-card:nth-last-child(2) {border-bottom:1px solid rgba(165,150,113,.22)}
.gift-dialog {background-image:var(--card-paper)}

/* Original gold-lined paper arch, fitted around the portrait. */
.gift-photo {
  position:relative;
  width:100%;
  max-width:370px;
  aspect-ratio:1122 / 1402;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
  justify-self:center;
}
.gift-photo .registry-paper-frame {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border-radius:0;
  object-fit:contain;
}
.gift-photo .registry-portrait {
  position:absolute;
  left:12%;
  top:20%;
  width:76%;
  height:68%;
  border-radius:160px 160px 0 0;
  object-fit:cover;
  object-position:center 50%;
}
@media(max-width:680px) {
  .guide-grid,.explore-places {row-gap:17px}
  .hotel-card,.more-hotel-grid>article {padding:23px 21px}
  .guide-card,.explore-places .guide-card,.guide-more .guide-card {padding:24px 21px 38px}
  .guide-card::after {left:21px;bottom:18px;width:calc(100% - 42px)}
  .gift-photo {max-width:330px}
}

/* Supplied olive branch closes the registry before the footer. */
.gift {row-gap:36px}
.registry-signoff {
  grid-column:1 / -1;
  width:min(320px,75%);
  justify-self:center;
  margin:14px auto -46px;
}
.registry-signoff img {display:block;width:100%;height:auto}
@media(max-width:680px) {
  .registry-signoff {width:min(260px,85%);margin:2px auto -20px}
}
