/* Complete layouts, contract v3 only. The v2 stylesheet supplies cover artwork. */
.site-preview:has(>.folio) { overflow:clip; }
.site-motion-ready .folio [data-site-section] { opacity:1; transform:none; transition:none; }
.folio { --folio-rule:color-mix(in srgb,var(--site-primary) 28%,transparent); --folio-soft:color-mix(in srgb,var(--site-secondary) 12%,var(--site-background)); overflow-wrap:anywhere; }
.folio *, .folio *:before, .folio *:after { box-sizing:border-box; }
.folio .folio-section { position:relative; display:block; min-height:0; margin:0; padding:clamp(4rem,8vw,8rem) clamp(1.5rem,6vw,6rem); background:var(--site-background); }
.folio .folio-section--hero { padding:4rem 6% 6rem; }
.folio h2 { font:400 clamp(2.6rem,4.7vw,5rem)/1.08 var(--site-heading-font); color:var(--site-primary); letter-spacing:-.03em; margin:0 0 1.5rem; text-wrap:balance; }
.folio h3,.folio h4 { color:var(--site-primary); font-weight:400; }
.folio p { line-height:1.85; }
.folio .folio-eyebrow { font-size:.64rem; letter-spacing:.17em; text-transform:uppercase; margin:0 0 1.25rem; }
.folio-section-heading { margin-bottom:3rem; }
.folio-section-heading>p:not(.folio-eyebrow) { max-width:38rem; font-size:.9rem; }
.folio-index { display:block; font:400 1.2rem var(--site-heading-font); margin-bottom:2rem; color:var(--site-primary); }
.folio-photo { margin:0; min-width:0; }
.folio-photo img { display:block; width:100%; height:100%; object-fit:cover; border-radius:0; }
.folio-photo img+img { margin-top:1rem; }
.folio-prose { min-width:0; }
.folio .site-rich-copy { font-size:.9rem; line-height:1.95; }
.folio .site-rich-copy p:first-child { margin-top:0; }
.folio-header { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.3rem 4%; border-bottom:1px solid var(--folio-rule); position:relative; z-index:30; background:var(--site-background); }
.folio-brand { text-decoration:none; display:flex; align-items:center; gap:1rem; font:400 1.25rem var(--site-heading-font); }
.folio-brand:has(.couple-monogram)>span { display:none; }
.folio-header-note { display:none; }
.folio-nav ul { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.4rem 1.4rem; padding:0; margin:0; list-style:none; }
.folio-nav a { display:block; padding:.6rem 0; text-decoration:none; font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; }
.folio-nav a:hover { text-decoration:underline; }
.folio-menu { display:none; }
.folio-nav--masthead .folio-header { display:grid; grid-template-columns:1fr auto 1fr; gap:.8rem 2rem; padding:1.4rem 5% 0; }
.folio-nav--masthead .folio-brand { grid-column:2; justify-content:center; }
.folio-nav--masthead .folio-header-note { display:block; grid-column:3; font-size:.6rem; max-width:12rem; justify-self:end; text-transform:uppercase; letter-spacing:.12em; }
.folio-nav--masthead .folio-nav { grid-column:1/-1; border-top:1px solid var(--folio-rule); padding:.8rem 0; }
.folio-nav--masthead .folio-nav ul { justify-content:center; gap:.5rem 2rem; }
.folio-nav--rail { display:grid; grid-template-columns:13rem minmax(0,1fr); align-items:start; }
.folio-nav--rail .folio-header { grid-column:1; grid-row:1/3; position:sticky; top:0; height:100svh; max-height:100svh; overflow-y:auto; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; padding:2.6rem 1.5rem; border:0; border-right:1px solid var(--folio-rule); gap:2rem; }
.folio-nav--rail .folio-brand { justify-content:center; text-align:center; }
.folio-nav--rail .folio-header-note { display:block; font-size:.61rem; letter-spacing:.09em; text-align:center; }
.folio-nav--rail .folio-nav ul { display:block; }
.folio-nav--rail .folio-nav a { border-bottom:1px solid var(--folio-rule); padding:.85rem .2rem; font-size:.64rem; }
.folio-nav--rail .folio-content,.folio-nav--rail .folio-footer { grid-column:2; min-width:0; }
.folio-nav--rail .folio-section { padding-inline:clamp(2rem,4vw,5rem); }
.folio-footer { padding:4rem 6%; border-top:1px solid var(--folio-rule); display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem 3rem; background:var(--folio-soft); }
.folio-footer .couple-monogram { grid-row:1/3; margin:0; }
.folio-footer p { font:400 clamp(2rem,3vw,3.5rem) var(--site-heading-font); margin:0; }
.folio-footer>span { font-size:.75rem; grid-column:2; }
.folio-footer>a { font-size:.65rem; text-transform:uppercase; grid-column:3; grid-row:1/3; }
/* Narrative structures: a chapter, a letter, a magazine spread, an immersive image. */
.folio-story { max-width:76rem; margin:auto; }
.folio-story--chapter { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); gap:6%; }
.folio-story--chapter .folio-section-heading { align-self:start; position:sticky; top:2rem; }
.folio-chapter-line { display:block; width:5rem; height:1px; background:var(--site-primary); margin-top:2.5rem; }
.folio-chapter-content .folio-photo { height:24rem; margin-bottom:2.5rem; }
.folio-story--letter { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:5%; }
.folio-letter-photo .folio-photo { height:32rem; padding:1rem; border:1px solid var(--folio-rule); transform:rotate(-3deg); }
.folio-handwritten { display:block; text-align:center; font:400 2rem Wedding Calligraphy,cursive; margin-top:2rem; color:var(--site-primary); }
.folio-letter-paper { padding:3.5rem; background:var(--site-surface); box-shadow:0 1.5rem 4rem #0000000a; border:1px solid var(--folio-rule); }
.folio-letter-paper h2 { font-size:clamp(2.5rem,3.7vw,4rem); }
.folio-seal { display:grid; place-items:center; width:3.5rem; height:3.5rem; border:1px solid var(--folio-rule); border-radius:50%; font-size:1.6rem; margin:0 0 2rem; color:var(--site-primary); }
.folio-story--letter:not(.has-photo) { display:block; max-width:55rem; }
.folio-story--letter:not(.has-photo) .folio-letter-photo { display:none; }
.folio-story--columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:3rem 5%; }
.folio-story--columns .folio-section-heading { grid-column:1/-1; display:grid; grid-template-columns:4rem 1fr; gap:2rem; align-items:baseline; margin:0; border-bottom:1px solid var(--folio-rule); padding-bottom:2rem; }
.folio-story--columns .folio-index { margin:0; }
.folio-story--columns h2 { max-width:15ch; margin:0; }
.folio-story--columns .folio-photo { min-height:26rem; }
.folio-story--columns:not(.has-photo) .folio-prose { grid-column:1/-1; columns:2; column-gap:4rem; }
.folio-story--columns .folio-prose>div>p:first-child:first-letter { float:left; font:400 4rem/.9 var(--site-heading-font); color:var(--site-primary); padding-right:.5rem; }
.folio-story--immersive { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; }
.folio-story--immersive .folio-photo { height:40rem; grid-column:1/3; grid-row:1; width:85%; }
.folio-story-panel { grid-column:2; grid-row:1; position:relative; background:var(--site-surface); padding:3.5rem; margin:5rem 0 -3rem; box-shadow:0 1rem 3rem #0000000a; }
.folio-story--immersive:not(.has-photo) { display:block; max-width:55rem; }
.folio-story--immersive:not(.has-photo) .folio-story-panel { margin:0; border-left:3px solid var(--site-primary); }
/* Event layouts deliberately have different reading patterns. */
.folio-event { max-width:74rem; margin:auto; }
.folio-event-facts { margin:0; }
.folio-event-facts dt { font-size:.64rem; letter-spacing:.13em; text-transform:uppercase; margin-bottom:.8rem; }
.folio-event-facts dd { margin:0; font:400 1.8rem/1.3 var(--site-heading-font); color:var(--site-primary); }
.folio-event-facts .folio-address { font:400 .83rem/1.8 var(--site-body-font); margin-top:.8rem; color:var(--site-text); }
.folio-event-notes { font-size:.85rem; }
.folio-event-map { min-width:0; }
.folio .site-location-card { border-radius:0; background:transparent; }
.folio-event--ledger { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); gap:2rem 7%; }
.folio-event--ledger .folio-event-heading { grid-row:1/3; }
.folio-event--ledger .folio-event-facts { grid-column:2; }
.folio-event--ledger .folio-event-facts>div { display:grid; grid-template-columns:9rem minmax(0,1fr); padding:1.6rem 0; border-top:1px solid var(--folio-rule); gap:.7rem 1.3rem; }
.folio-event--ledger .folio-address { grid-column:2; }
.folio-event--ledger .folio-event-map,.folio-event--ledger .folio-event-notes { grid-column:2; }
.folio-event--ledger .folio-photo { grid-column:1; grid-row:3/5; max-height:25rem; }
.folio-event--itinerary { display:grid; grid-template-columns:1fr 1fr; gap:2rem 10%; }
.folio-event--itinerary .folio-event-heading { grid-column:1; }
.folio-event--itinerary .folio-event-facts { grid-column:2; grid-row:1/4; border-left:1px solid var(--folio-rule); padding-left:2.5rem; }
.folio-event--itinerary .folio-event-facts>div { position:relative; padding:0 0 3rem; }
.folio-event--itinerary .folio-event-facts>div:before { content:''; position:absolute; width:.65rem; height:.65rem; border:1px solid var(--site-primary); border-radius:50%; top:.15rem; left:-2.85rem; background:var(--site-background); }
.folio-event--itinerary .folio-event-time dd { font-size:3.7rem; }
.folio-event--itinerary .folio-event-map { grid-column:1/-1; }
.folio-event--itinerary .folio-photo { max-height:21rem; }
.folio-event--invitation { max-width:53rem; padding:4rem; border:1px solid var(--folio-rule); outline:1px solid var(--folio-rule); outline-offset:-.65rem; background:var(--site-surface); text-align:center; }
.folio-event--invitation .folio-event-heading { max-width:35rem; margin:auto; }
.folio-event-flourish { display:block; font-size:2rem; margin:2rem 0; color:var(--site-primary); }
.folio-event--invitation .folio-event-facts { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem 1rem; }
.folio-event--invitation .folio-event-place { grid-column:1/-1; padding-top:2rem; border-top:1px solid var(--folio-rule); }
.folio-event--invitation .folio-photo { margin:2rem 0; max-height:25rem; }
.folio-event--invitation .folio-event-map { text-align:left; margin-top:2rem; }
.folio-event--bento { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:2rem; }
.folio-event--bento .folio-event-heading { padding:2rem 2rem 2rem 0; }
.folio-event--bento .folio-event-facts { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.folio-event--bento .folio-event-facts>div { background:var(--site-surface); padding:2rem; border:1px solid var(--folio-rule); }
.folio-event--bento .folio-event-place { grid-column:1/-1; }
.folio-event--bento .folio-event-time dd { font-size:3rem; }
.folio-event--bento .folio-event-map { grid-column:1/-1; }
.folio-event--bento .folio-photo { grid-column:1; grid-row:2; max-height:25rem; }
.folio-event--bento .folio-event-notes { align-self:center; }
/* The wedding party is never a repeated generic card grid. */
.folio-party { max-width:76rem; margin:auto; }
.folio-party-group { margin-top:3rem; }
.folio-party-group>h3 { font:400 .68rem var(--site-body-font); text-transform:uppercase; letter-spacing:.15em; border-bottom:1px solid var(--folio-rule); padding-bottom:1rem; margin-bottom:2rem; }
.folio-party-members { display:grid; gap:2.5rem; }
.folio-person { min-width:0; }
.folio-person-portrait { overflow:hidden; background:var(--folio-soft); display:grid; place-items:center; position:relative; aspect-ratio:1; }
.folio-person-portrait img { display:block; width:100%; height:100%; object-fit:cover; }
.folio-person-portrait>span { font:400 clamp(1.4rem,3.5vw,3.5rem) var(--site-heading-font); color:var(--site-primary); white-space:nowrap; }
.folio-person-copy h4 { font:400 1.8rem/1.15 var(--site-heading-font); margin:1.4rem 0 .7rem; }
.folio .folio-person-copy .site-rich-copy { font-size:.8rem; }
.folio-party--medallions .folio-party-members { grid-template-columns:repeat(3,minmax(0,1fr)); text-align:center; gap:3rem; }
.folio-party--medallions .folio-person-portrait { width:78%; margin:auto; border-radius:50%; outline:1px solid var(--folio-rule); outline-offset:.7rem; }
.folio-party--cameos .folio-party-members { grid-template-columns:repeat(3,minmax(0,1fr)); text-align:center; gap:3rem; }
.folio-party--cameos .folio-person-portrait { width:85%; aspect-ratio:3/4; border-radius:50%; margin:auto; border:.7rem solid var(--site-surface); outline:1px solid var(--folio-rule); }
.folio-party--cameos .folio-person:nth-child(2n) { padding-top:2.5rem; }
.folio-party--feature .folio-party-members { grid-template-columns:repeat(2,minmax(0,1fr)); }
.folio-party--feature .folio-person { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); align-items:center; background:var(--site-surface); }
.folio-party--feature .folio-person-portrait { aspect-ratio:3/4; }
.folio-party--feature .folio-person-copy { padding:1.5rem; }
.folio-party--feature .folio-person-copy h4 { margin-top:0; }
.folio-party--feature .folio-person:nth-child(4n+3) .folio-person-portrait,.folio-party--feature .folio-person:nth-child(4n+4) .folio-person-portrait { order:2; }
.folio-party--roster .folio-party-members { grid-template-columns:1fr; gap:0; }
.folio-party--roster .folio-person { display:grid; grid-template-columns:8rem minmax(0,1fr); gap:3rem; padding:1.8rem 0; border-bottom:1px solid var(--folio-rule); align-items:center; }
.folio-party--roster .folio-person-portrait>span { font-size:1.5rem; }
.folio-party--roster .folio-person-copy { display:grid; grid-template-columns:2rem minmax(0,1fr) minmax(0,1fr); align-items:center; gap:2rem; }
.folio-party--roster .folio-person-copy h4 { margin:0; font-size:2rem; }
.folio-person-index { font-size:.65rem; }
/* Real photo compositions, retaining the lightbox's accessible link contract. */
.folio-album { max-width:80rem; margin:auto; }
.folio-album-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.folio .folio-album-photo { padding:0; border:0; border-radius:0; margin:0; min-width:0; background:transparent; }
.folio .folio-album-photo a { display:block; height:auto; }
.folio .folio-album-photo img { display:block; width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; border-radius:0; }
.folio .folio-album-photo figcaption { display:flex; gap:.8rem; padding:.9rem 0; font-size:.7rem; line-height:1.6; text-align:left; }
.folio-photo-number { opacity:.7; }
.folio-album--mosaic .folio-album-photos { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:start; }
.folio-album--mosaic .folio-album-photo:nth-child(6n+1),.folio-album--mosaic .folio-album-photo:nth-child(6n+6) { grid-column:span 2; grid-row:span 2; }
.folio-album--mosaic .folio-album-photo:nth-child(6n+1) img,.folio-album--mosaic .folio-album-photo:nth-child(6n+6) img { aspect-ratio:4/4.6; }
.folio-album--mosaic .folio-album-photo:nth-child(6n+2),.folio-album--mosaic .folio-album-photo:nth-child(6n+5) { padding-top:3rem; }
.folio-album--polaroid .folio-album-photos { gap:3rem; padding:1.5rem; align-items:start; }
.folio-album--polaroid .folio-album-photo { padding:.8rem .8rem 1rem; background:var(--site-surface); box-shadow:0 .5rem 2rem #00000012; transform:rotate(-3deg); }
.folio-album--polaroid .folio-album-photo:nth-child(2n) { transform:rotate(3deg); margin-top:2rem; }
.folio-album--polaroid .folio-album-photo figcaption { padding-bottom:0; }
.folio-album--panorama .folio-album-photos { grid-template-columns:repeat(3,minmax(0,1fr)); }
.folio-album--panorama .folio-album-photo:nth-child(4n+1) { grid-column:1/-1; }
.folio-album--panorama .folio-album-photo:nth-child(4n+1) img { aspect-ratio:2.25; }
.folio-album--diptych .folio-album-photos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:3rem 5rem; }
.folio-album--diptych .folio-album-photo:nth-child(2n) { margin-top:5rem; }
.folio-album--diptych .folio-album-photo:nth-child(2n) img { aspect-ratio:1; }
.folio-album--filmstrip .folio-album-photos { display:flex; gap:1.5rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; padding:0 0 1.5rem; scrollbar-color:var(--site-primary) var(--folio-soft); }
.folio-album--filmstrip .folio-album-photo { flex:0 0 38%; scroll-snap-align:start; }
.folio-album--filmstrip .folio-album-photo:nth-child(2n) { flex-basis:52%; }
.folio-album--filmstrip .folio-album-photo img { height:26rem; aspect-ratio:auto; }
.folio-album-hint { font-size:.75rem!important; }
.folio-album-empty { grid-column:1/-1; border:1px dashed var(--folio-rule); padding:3rem; width:100%; }
/* Actions: split spread, paper envelope, ticket, postcard, or broad banner. */
.folio-callout { max-width:72rem; margin:auto; position:relative; }
.folio-callout-content { min-width:0; }
.folio-callout-content p { font-size:.9rem; }
.folio-callout-mark { display:block; font:400 3rem var(--site-heading-font); color:var(--site-primary); margin-bottom:1.5rem; }
.folio .folio-callout .site-gifts-link { gap:2rem; max-width:100%; white-space:normal; text-align:center; }
.folio .folio-callout-help { font-size:.75rem; opacity:.85; margin-top:1.5rem; }
.folio-callout--split { display:grid; grid-template-columns:1fr 1fr; gap:3rem 10%; align-items:center; }
.folio-callout--split .folio-callout-content { border-left:1px solid var(--folio-rule); padding-left:3rem; }
.folio-callout--split .folio-photo { grid-column:1/-1; height:22rem; }
.folio-callout--envelope { max-width:52rem; border:1px solid var(--folio-rule); padding:4rem; background:var(--site-surface); text-align:center; }
.folio-callout--envelope:before { content:''; display:block; position:absolute; inset:1rem; border:1px solid var(--folio-rule); pointer-events:none; }
.folio-callout--envelope .folio-callout-mark { border:1px solid var(--folio-rule); border-radius:50%; width:4.5rem; height:4.5rem; display:grid; place-items:center; margin:0 auto 2rem; font-size:2rem; }
.folio-callout--envelope .folio-photo { max-height:25rem; margin-bottom:2rem; }
.folio-callout--postcard { display:grid; grid-template-columns:1fr 1fr; gap:3rem; background:var(--site-surface); border:1px solid var(--folio-rule); padding:3.5rem; }
.folio-callout--postcard .folio-callout-heading { border-right:1px solid var(--folio-rule); padding-right:2rem; }
.folio-callout--postcard .folio-callout-content { align-self:center; }
.folio-callout--postcard .folio-callout-mark { display:inline-grid; place-items:center; width:4rem; height:4.5rem; border:1px dashed var(--folio-rule); font-size:2rem; }
.folio-callout--postcard .folio-photo { grid-column:1/-1; height:23rem; }
.folio-callout--ticket { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); border:1px solid var(--folio-rule); background:var(--site-surface); }
.folio-callout--ticket .folio-callout-heading { padding:3rem; }
.folio-callout--ticket .folio-callout-content { border-left:1px dashed var(--site-primary); padding:3rem; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.folio-callout--ticket .folio-photo { grid-column:1/-1; height:24rem; }
.folio-callout--banner { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:center; gap:5%; padding:1rem 0; }
.folio-callout--banner h2 { font-size:clamp(3rem,6vw,6rem); }
.folio-callout--banner .folio-photo { grid-column:1/-1; height:25rem; margin-bottom:3rem; }
.folio-callout--banner .folio-callout-mark { display:none; }
/* Secondary sections also follow the family's rhythm. */
.folio .folio-section--countdown { background:var(--site-surface); padding-block:3rem; border-block:1px solid var(--folio-rule); }
.folio-countdown { max-width:76rem; margin:auto; }
.folio .site-countdown { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:3rem; }
.folio .site-countdown__title { font-size:clamp(2rem,3vw,3rem); margin:0; text-align:left; }
.folio .site-countdown__units { width:100%; margin:0; gap:.7rem; }
.folio .site-countdown__unit strong { font-size:clamp(2rem,3vw,3.7rem); }
.folio-quote { max-width:65rem; margin:auto; display:grid; grid-template-columns:5rem minmax(0,1fr); gap:1rem 2rem; }
.folio-quote-media { max-width:12rem; margin:0 auto 2rem; }.folio-quote-media:empty { display:none; }.folio-quote-media img { aspect-ratio:1; border-radius:50%; }
.folio-quote>span { font:400 8rem/.9 var(--site-heading-font); color:var(--site-primary); }
.folio-quote blockquote { margin:0; font:400 clamp(2rem,3.5vw,3.7rem)/1.35 var(--site-heading-font); }
.folio-quote figcaption { grid-column:2; font-size:.75rem; }
.folio-image,.folio-subhero { max-width:70rem; margin:auto; }
.folio-image .folio-photo { max-height:45rem; }
.folio-image>p { font-size:.8rem; margin:1rem 0; }
.folio-subhero .folio-photo { height:25rem; margin-bottom:2rem; }
.folio-modules { max-width:76rem; margin:4rem auto 0; }
.folio-module { padding-top:3.5rem; margin-top:3.5rem; border-top:1px solid var(--folio-rule); }
.folio-module h2 { font-size:clamp(2rem,3.3vw,3.4rem); }
.folio .site-guest-guide { margin-top:1.5rem; }
.folio-story.has-guide { display:block; }
.folio-story.has-guide .folio-section-heading { position:static; }
.folio-story.has-guide .folio-prose { columns:auto; }
.folio-story.has-guide .folio-photo { max-height:30rem; margin-bottom:2rem; }
.folio-story.has-guide .folio-story-panel { margin:0; }
.folio .site-guest-cards { break-inside:avoid; }
.folio--editorial ul.site-guest-cards { display:block; }.folio--editorial .site-guest-cards>.site-guest-tip { border:0; border-top:1px solid var(--folio-rule); background:transparent; padding:1.5rem 0; }
.folio--papelaria .site-guest-cards>.site-guest-tip { background:var(--site-background); border:1px solid var(--folio-rule); border-radius:0; }
.folio--jornada .site-guest-cards>.site-guest-tip { border:0; border-left:2px solid var(--folio-rule); background:transparent; border-radius:0; }
.folio--galeria .site-guest-cards>.site-guest-tip { border:0; background:var(--folio-soft); border-radius:0; }
.folio--celebração ul.site-guest-cards { display:block; }.folio--celebração .site-guest-cards>.site-guest-tip { border:0; border-bottom:1px solid var(--folio-rule); background:transparent; border-radius:0; }
/* Family-wide differences reach footers, guidance, counters and section spacing. */
.folio--editorial .folio-section:not(.folio-section--hero) { border-top:1px solid var(--folio-rule); }
.folio--editorial .folio-section--text { padding-block:5rem; }
.folio--editorial .folio-section--details,.folio--editorial .folio-section--gifts { background:var(--folio-soft); }
.folio--editorial .folio-footer { background:var(--site-text); color:var(--site-surface); }
.folio--papelaria .folio-section--text,.folio--papelaria .folio-section--details,.folio--papelaria .folio-section--rsvp { background:var(--folio-soft); }
.folio--papelaria .folio-section-heading,.folio--celebração .folio-party>.folio-section-heading { text-align:center; }
.folio--papelaria .folio-section-heading>p,.folio--celebração .folio-party>.folio-section-heading>p { margin-inline:auto; }
.folio--papelaria .folio-footer { display:flex; flex-direction:column; gap:1rem; text-align:center; padding-block:5rem; }
.folio--papelaria .folio-footer>a { margin-top:1.5rem; }
.folio--papelaria .site-countdown { display:block; max-width:42rem; margin:auto; }
.folio--papelaria .site-countdown__title { text-align:center; margin-bottom:2rem; }
.folio--jornada .folio-section:nth-child(2n):not(.folio-section--hero) { background:var(--folio-soft); }
.folio--jornada .folio-party-group { border-left:1px solid var(--folio-rule); padding-left:2rem; }
.folio--jornada .folio-quote { border-left:2px solid var(--site-primary); padding-left:3rem; }
.folio--galeria .folio-section--gallery { padding-inline:2rem; background:var(--folio-soft); }
.folio--galeria .folio-album>.folio-section-heading { padding-inline:2rem; }
.folio--galeria .folio-section--rsvp { border-top:1px solid var(--folio-rule); }
.folio--celebração .folio-section--details,.folio--celebração .folio-section--gifts { background:var(--folio-soft); }
.folio--celebração .folio-section--quote { background:var(--site-surface); padding-block:7rem; }
.folio--celebração .folio-quote { display:block; text-align:center; }
.folio--celebração .folio-quote>span { font-size:5rem; display:block; }
.folio--celebração .folio-quote figcaption { margin-top:2rem; }
.folio--celebração .folio-footer { display:flex; flex-direction:column; text-align:center; gap:1rem; border-top:double 4px var(--folio-rule); }
.folio--celebração .site-countdown__units { padding:1.2rem; border:1px solid var(--folio-rule); }
@media (max-width:1100px) {
  .folio-nav { display:none; }.folio-menu { display:block; position:relative; }
  .folio-menu summary { padding:.7rem .2rem; font-size:.75rem; cursor:pointer; list-style:none; }.folio-menu summary::-webkit-details-marker { display:none; }
  .folio-menu nav { position:absolute; right:0; top:calc(100% + .5rem); width:min(20rem,calc(100vw - 3rem)); max-height:70svh; overflow:auto; padding:.7rem; border:1px solid var(--folio-rule); background:var(--site-surface); box-shadow:0 .5rem 2rem #0002; }
  .folio-menu ul { margin:0; padding:0; list-style:none; }.folio-menu a { display:block; padding:.8rem; text-decoration:none; font-size:.8rem; }
  .folio-nav--rail { display:block; }.folio-nav--rail .folio-header { position:relative; height:auto; max-height:none; overflow:visible; display:flex; flex-direction:row; align-items:center; justify-content:space-between; padding:1rem 4%; border-right:0; border-bottom:1px solid var(--folio-rule); }
  .folio-nav--rail .folio-header-note { display:none; }
  .folio-nav--masthead .folio-header { display:flex; padding:1rem 4%; }.folio-nav--masthead .folio-header-note { display:none; }
  .folio-story-panel,.folio-letter-paper { padding:2.5rem; }
  .folio-party--feature .folio-person-copy { padding:1rem; }.folio-person-copy h4 { font-size:1.5rem; }
  .folio-party--roster .folio-person-copy { gap:1rem; }
}
@media (max-width:720px) {
  .folio .folio-section { padding:3.5rem 1.5rem; }.folio .folio-section--hero { padding:3.5rem 1.5rem 5rem; }
  .folio h2 { font-size:clamp(2.2rem,9vw,3.2rem); }.folio .folio-eyebrow { font-size:.58rem; }
  .folio .site-rich-copy { font-size:.85rem; }.folio-section-heading { margin-bottom:2rem; }
  .folio-header,.folio-nav--rail .folio-header,.folio-nav--masthead .folio-header { gap:1rem; padding:.8rem 1.5rem; }
  .folio-brand { font-size:1rem; }.folio-brand .couple-monogram--header { width:3rem; height:3rem; }
  .folio-story--chapter,.folio-story--letter,.folio-story--columns,.folio-story--immersive { display:block; }
  .folio-story--chapter .folio-section-heading { position:static; }
  .folio-index { margin-bottom:1rem; }.folio-chapter-line { margin-top:1.5rem; }
  .folio-chapter-content .folio-photo { height:22rem; }
  .folio-letter-photo { padding:0 1rem 2rem; }.folio-letter-photo .folio-photo { height:25rem; }
  .folio-letter-paper { padding:2rem 1.5rem; }.folio-letter-paper h2 { font-size:2.5rem; }
  .folio-story--columns .folio-section-heading { grid-template-columns:2rem minmax(0,1fr); gap:1rem; margin-bottom:2rem; }
  .folio-story--columns .folio-photo { min-height:0; height:23rem; margin-bottom:2rem; }
  .folio-story--columns:not(.has-photo) .folio-prose { columns:auto; }
  .folio-story--immersive .folio-photo { height:27rem; width:100%; }.folio-story-panel { padding:2rem 1.5rem; margin:-4rem .6rem 0; }
  .folio-event--ledger,.folio-event--itinerary,.folio-event--bento { display:block; }
  .folio-event-heading { margin-bottom:2rem; }.folio-event--bento .folio-event-heading { padding:0; }
  .folio-event--ledger .folio-event-facts>div { grid-template-columns:1fr; gap:.5rem; }.folio-event--ledger .folio-address { grid-column:1; }
  .folio-event--itinerary .folio-event-facts { margin:2rem 0 2rem .4rem; padding-left:2rem; }.folio-event--itinerary .folio-event-facts>div:before { left:-2.35rem; }
  .folio-event--invitation { padding:2.5rem 1.5rem; }.folio-event--invitation .folio-event-facts { grid-template-columns:1fr; gap:2rem; }
  .folio-event--invitation .folio-event-place { grid-column:1; }.folio-event-facts dd { font-size:1.6rem; }
  .folio-event--bento .folio-event-facts { gap:.7rem; }.folio-event--bento .folio-event-facts>div { padding:1.4rem 1rem; }.folio-event--bento .folio-event-date dd { font-size:1.3rem; }
  .folio-event .folio-photo { height:20rem; margin-bottom:2rem; }.folio-event-map { margin-top:2rem; }
  .folio-party--cameos .folio-party-members,.folio-party--medallions .folio-party-members { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1.2rem; }
  .folio-person-copy h4 { font-size:1.4rem; }.folio .folio-person-copy .site-rich-copy { font-size:.75rem; }
  .folio-party--feature .folio-party-members { grid-template-columns:1fr; gap:1.5rem; }.folio-party--feature .folio-person-copy { padding:1.2rem; }
  .folio-party--roster .folio-person { grid-template-columns:5rem minmax(0,1fr); gap:1.2rem; padding:1.5rem 0; }
  .folio-party--roster .folio-person-copy { display:block; }.folio-person-index { display:none; }.folio-party--roster .folio-person-copy h4 { font-size:1.6rem; }
  .folio--jornada .folio-party-group { padding-left:1rem; }
  .folio-album-photos,.folio-album--mosaic .folio-album-photos,.folio-album--panorama .folio-album-photos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
  .folio-album--mosaic .folio-album-photo:nth-child(6n+2),.folio-album--mosaic .folio-album-photo:nth-child(6n+5) { padding-top:0; }
  .folio-album--panorama .folio-album-photo:nth-child(4n+1) img { aspect-ratio:1.5; }
  .folio-album--polaroid .folio-album-photos { padding:.5rem; gap:1.5rem .8rem; }.folio-album--polaroid .folio-album-photo { padding:.5rem; }
  .folio-album--diptych .folio-album-photos { gap:1rem; }.folio-album--diptych .folio-album-photo:nth-child(2n) { margin-top:2.5rem; }
  .folio .folio-album-photo figcaption { font-size:.64rem; gap:.4rem; }
  .folio-album--filmstrip .folio-album-photo { flex-basis:78%; }.folio-album--filmstrip .folio-album-photo:nth-child(2n) { flex-basis:88%; }.folio-album--filmstrip .folio-album-photo img { height:24rem; }
  .folio--galeria .folio-section--gallery { padding-inline:1rem; }.folio--galeria .folio-album>.folio-section-heading { padding-inline:.5rem; }
  .folio-callout--split,.folio-callout--postcard,.folio-callout--ticket,.folio-callout--banner { display:block; }
  .folio-callout--split .folio-callout-content { border-left:0; border-top:1px solid var(--folio-rule); padding:1.5rem 0 0; }
  .folio-callout--postcard,.folio-callout--envelope { padding:2.5rem 1.5rem; }.folio-callout--postcard .folio-callout-heading { padding-right:0; border:0; }
  .folio-callout--ticket .folio-callout-heading,.folio-callout--ticket .folio-callout-content { padding:2rem 1.5rem; }.folio-callout--ticket .folio-callout-content { border-left:0; border-top:1px dashed var(--site-primary); }
  .folio-callout .folio-photo { height:20rem; margin-bottom:2rem; }.folio-callout--ticket .folio-photo { margin-bottom:0; }
  .folio .site-countdown { display:block; }.folio .site-countdown__title { text-align:center; margin-bottom:2rem; }.folio .site-countdown__unit strong { font-size:2.2rem; }.folio .site-countdown__units { gap:.2rem; }
  .folio .site-countdown__unit span { font-size:.6rem; }.folio--celebração .site-countdown__units { padding:.8rem .4rem; }
  .folio-quote { grid-template-columns:2rem minmax(0,1fr); gap:.8rem; }.folio-quote>span { font-size:5rem; }.folio--jornada .folio-quote { padding-left:1rem; }
  .folio-footer { display:flex; flex-direction:column; text-align:center; gap:1.2rem; padding:3rem 1.5rem; }.folio-footer>a { margin-top:1rem; }
  .folio-modules { margin-top:3rem; }.folio-module { margin-top:2rem; padding-top:2rem; }
}
@media (prefers-reduced-motion:reduce) { .folio * { scroll-behavior:auto; } }
