@font-face{font-family:"EB Garamond";src:url("/assets/fonts/eb-garamond-latin.woff2") format("woff2");font-style:normal;font-weight:400 600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

@font-face{font-family:"EB Garamond";src:url("/assets/fonts/eb-garamond-latin-ext.woff2") format("woff2");font-style:normal;font-weight:400 600;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

@font-face{font-family:"EB Garamond";src:url("/assets/fonts/eb-garamond-italic-latin.woff2") format("woff2");font-style:italic;font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

@font-face{font-family:"EB Garamond";src:url("/assets/fonts/eb-garamond-italic-latin-ext.woff2") format("woff2");font-style:italic;font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{--paper:#fbfaf7;--paper-deep:#f4f2ed;--white:#fff;--ink:#232528;--muted:#67696b;--blue:#a6bad2;--blue-deep:#607f98;--line:#d9d7d1;--serif:"Cormorant Garamond","EB Garamond",Garamond,Georgia,serif}

*{box-sizing:border-box}
main,section,article,.venue-copy,.rsvp-card,.information-list article>div{min-width:0}
h1,h2,h3,p,address,a{overflow-wrap:anywhere}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit}
button{font:inherit}
.skip-link{position:fixed;top:-60px;left:18px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;text-decoration:none}
.skip-link:focus{top:14px}

.site-header{height:88px;display:flex;align-items:center;padding:0 clamp(22px,5vw,76px);background:rgba(251,250,247,.96);border-bottom:1px solid var(--line);position:relative;z-index:30}
.monogram{position:absolute;left:50%;transform:translateX(-50%);font-size:1.28rem;letter-spacing:.21em;text-decoration:none;text-transform:uppercase}
.monogram i,.footer-mark i{font-style:italic;color:var(--blue-deep);margin:0 .1em}
.desktop-nav{display:flex;align-items:center;gap:clamp(20px,2.4vw,42px)}
.desktop-nav a,.language-switch a{font-size:.74rem;letter-spacing:.17em;text-transform:uppercase;text-decoration:none;padding:8px 0;border-bottom:1px solid transparent}
.desktop-nav a:hover,.language-switch a:hover,.language-switch a.active{border-bottom-color:currentColor}
.language-switch{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:.7rem}
.language-switch span{color:#aaa}
.language-switch a{color:#858585}
.language-switch a.active{color:var(--ink)}

.menu-button{display:none;width:44px;height:44px;border:0;background:none;place-content:center;gap:7px;color:var(--ink);cursor:pointer}
.menu-button span{display:block;width:28px;height:1px;background:currentColor;transition:.2s}
.menu-button[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-button[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu-panel{position:fixed;inset:88px 0 0;z-index:25;background:rgba(251,250,247,.99);display:grid;place-items:center;visibility:hidden;opacity:0;transition:.22s}
.menu-panel.open{visibility:visible;opacity:1}
.menu-panel nav{display:flex;flex-direction:column;align-items:center;gap:12px}
.menu-panel a{font-size:clamp(2rem,8vw,3.8rem);line-height:1.12;text-decoration:none}

.hero{min-height:calc(100svh - 88px);position:relative;display:grid;grid-template-rows:minmax(290px,48vh) 1fr;background:var(--white);overflow:hidden}
.liner{background-color:var(--blue);background-image:url("/assets/rose-hydrangea-toile-color-matched.png");background-position:center;background-size:cover;border-bottom:1px solid #d4e0e8}
.hero-card{width:min(940px,calc(100% - 44px));min-height:360px;margin:-58px auto 0;background:var(--white);position:relative;z-index:2;text-align:center;padding:68px 0 54px;box-shadow:0 16px 44px rgba(41,48,54,.09)}
.eyebrow{margin:0;font-size:.75rem;font-weight:500;letter-spacing:.24em;line-height:1.65;text-transform:uppercase}
.hero-card>.eyebrow{padding:0 26px;margin-bottom:48px}
.name-band{background:var(--blue);padding:29px 24px 26px;margin-bottom:32px}
.name-band h1{margin:0;display:flex;align-items:center;justify-content:center;gap:clamp(13px,2vw,28px);font-weight:400;font-size:clamp(2rem,4vw,4rem);line-height:1;letter-spacing:.13em;text-transform:uppercase}
.name-band h1 i{font-size:.58em;font-weight:400}
.name-band h1 span{white-space:nowrap}
.hero-details{display:flex;justify-content:center;align-items:center;gap:22px;padding:0 26px}
.hero-details p{margin:0;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase}
.hero-details span{width:3px;height:3px;border-radius:50%;background:var(--ink)}
.scroll-cue{display:inline-block;margin-top:35px;font-size:.82rem;font-style:italic;text-underline-offset:5px;text-decoration-thickness:1px}

.paper-section{padding:clamp(100px,12vw,180px) clamp(22px,6vw,90px);background:var(--paper)}
.section-heading{text-align:center;max-width:760px;min-width:0;container-type:inline-size;margin:0 auto clamp(65px,8vw,110px)}
.section-heading h2,.venue-copy h2,.rsvp-card h2{font-weight:400;font-size:clamp(3.5rem,7vw,7.6rem);letter-spacing:.12em;line-height:.88;text-transform:uppercase;margin:24px 0 32px}
.section-note{max-width:560px;margin:0 auto;color:var(--muted);font-size:1.12rem;line-height:1.65}
.event-grid{width:min(1060px,100%);margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,4vw,54px)}
.detail-card{min-height:460px;padding:60px 54px;background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 13px 34px rgba(35,37,40,.04)}
.detail-card.blue-card{background:var(--blue);border-color:var(--blue);box-shadow:none}
.card-number,.info-index{font-size:.7rem;letter-spacing:.2em}
.detail-card h3{font-size:2.25rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;margin:19px 0 4px}
.italic{font-style:italic;font-size:1.15rem}
.detail-card p{margin:6px 0}
.hairline{width:56px;height:1px;background:currentColor;opacity:.45;margin:27px 0}
.small-note{max-width:320px;color:#4d555a;font-size:.92rem;margin-top:22px!important}

.venue{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);min-height:820px;background:var(--white)}
.venue-image{background-color:var(--blue);background-image:url("/assets/zamek-rzucewo-toile-photo-matched.png");background-position:center;background-size:contain;background-repeat:no-repeat;min-height:620px}
.venue-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 55px}
.venue-copy h2{letter-spacing:.08em;font-size:clamp(3.4rem,6vw,6.8rem)}
.venue-copy .italic{max-width:370px;color:var(--blue-deep)}
.venue-copy address{font-style:normal;font-size:.82rem;letter-spacing:.17em;line-height:1.8;text-transform:uppercase;margin:34px 0 24px}
.text-link{display:inline-block;font-size:.82rem;letter-spacing:.17em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:5px}

.section-heading.compact{margin-bottom:65px}
.travel{background:var(--paper-deep)}
.travel .section-heading{container-type:inline-size;min-width:0}
.travel .section-heading h2{font-size:clamp(1.25rem,6cqi,3.5rem);line-height:1.15;letter-spacing:.07em;overflow-wrap:anywhere;text-wrap:balance}
.information-list{width:min(990px,100%);margin:auto;border-top:1px solid var(--ink)}
.information-list article{display:grid;grid-template-columns:90px minmax(0,1fr);gap:36px;padding:38px 0;border-bottom:1px solid var(--line)}
.info-index{padding-top:5px;color:var(--blue-deep)}
.information-list h3{font-size:1rem;font-weight:500;letter-spacing:.19em;text-transform:uppercase;margin:0 0 9px}
.information-list p{margin:0;max-width:720px;color:#4b4d4f;line-height:1.7}
.travel-links{display:flex;justify-content:center;gap:40px;margin-top:56px}

.rsvp{min-height:720px;background:var(--white);display:grid;grid-template-columns:minmax(0,1fr);position:relative}
.rsvp-card{width:100%;max-width:760px;justify-self:center;align-self:center;text-align:center;padding:80px clamp(35px,6vw,100px)}
.rsvp-card h2{margin:25px 0}
.rsvp-card>p:not(.eyebrow):not(.italic){max-width:470px;margin:0 auto}
.rsvp-card .hairline{margin:30px auto}
.status{display:inline-block;margin-top:34px;border:1px solid var(--ink);padding:12px 36px;font-size:.74rem;letter-spacing:.19em;text-transform:uppercase}

footer{min-height:230px;background:var(--blue);display:grid;place-items:center;text-align:center;padding:50px 24px}
.footer-mark{font-size:2rem;letter-spacing:.23em;text-transform:uppercase}
footer p{margin:10px 0 0;font-size:.72rem;letter-spacing:.19em;text-transform:uppercase}

@media(max-width:900px){.desktop-nav{display:none}
.menu-button{display:grid}
.site-header{height:76px;padding:0 18px}
.menu-panel{inset:76px 0 0}
.hero{min-height:calc(100svh - 76px);grid-template-rows:minmax(280px,43vh) 1fr}
.hero-card{margin:-38px auto 32px;padding:54px 0 43px}
.hero-card>.eyebrow{margin-bottom:38px}
.name-band h1{flex-direction:column;gap:8px;font-size:clamp(2rem,10vw,3.4rem)}
.name-band h1 i{font-size:.48em}
.hero-details{flex-direction:column;gap:7px}
.hero-details span{display:none}
.event-grid{grid-template-columns:1fr}
.venue{grid-template-columns:1fr}
.venue-image{min-height:0;aspect-ratio:4/3}
.rsvp{grid-template-columns:1fr}
}

@media(max-width:560px){body{font-size:17px}
.monogram{font-size:1.08rem}
.language-switch{gap:6px}
.language-switch a{font-size:.68rem}
.hero{grid-template-rows:270px 1fr}
.liner{background-position:44% center}
.hero-card{width:calc(100% - 28px);margin:-30px auto 26px}
.hero-card>.eyebrow{font-size:.67rem;letter-spacing:.18em}
.name-band{padding:25px 12px 23px}
.name-band h1{font-size:2.15rem;letter-spacing:.12em}
.paper-section{padding-left:18px;padding-right:18px}
.section-heading h2,.rsvp-card h2{font-size:3.35rem;letter-spacing:.08em}
.detail-card{min-height:420px;padding:50px 25px}
.detail-card h3{font-size:1.8rem;letter-spacing:.16em}
.venue-copy{padding:76px 24px}
.venue-copy h2{font-size:3.3rem}
.information-list article{grid-template-columns:46px 1fr;gap:16px}
.travel-links{flex-direction:column;align-items:center;gap:22px}
.rsvp-card{padding:80px 24px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.menu-panel,.menu-button span{transition:none}
}

/* Keep invitation typography inside its own column at every viewport width. */
.section-heading h2{font-size:clamp(1.5rem,8cqi,4rem);line-height:1.12;letter-spacing:.08em;text-wrap:balance}
.venue-copy,.rsvp-card,.detail-card{container-type:inline-size}
.venue-copy h2{font-size:clamp(1.75rem,15cqi,5rem);line-height:1.08;max-width:100%}
.rsvp-card h2{font-size:clamp(2rem,20cqi,5rem);line-height:1.08;max-width:100%}
.detail-card h3{font-size:clamp(1.25rem,9cqi,2.25rem);line-height:1.2;max-width:100%}
.detail-card>*,.venue-copy>*,.rsvp-card>*{max-width:100%}
.menu-panel{padding:24px;overflow-y:auto;text-align:center}
.menu-panel nav{min-width:0;max-width:100%}
.desktop-nav{max-width:calc(50% - 75px);flex-wrap:wrap;column-gap:24px;row-gap:0}
.travel-links{flex-wrap:wrap;text-align:center}
@media(max-width:1100px){.desktop-nav{display:none}.menu-button{display:grid}}
@media(max-width:560px){
 .name-band h1{font-size:clamp(1.5rem,7.5vw,2.15rem)}
 .information-list article{grid-template-columns:30px minmax(0,1fr);gap:16px}
}

/* Full names stay inside the invitation band on narrow screens. */
.name-band{container-type:inline-size}
.name-band h1{font-size:clamp(1.1rem,4cqi,2.5rem);line-height:1.2;letter-spacing:.09em}
.name-band h1 span{white-space:normal;max-width:100%;text-wrap:balance}
@media(max-width:900px){.name-band h1{font-size:clamp(1.1rem,7cqi,2.7rem)}}

/* Comfortable summer celebration attire. */
.attire .section-heading{margin-bottom:32px}
.attire-subtitle{color:var(--blue-deep);font-size:clamp(1.45rem,3vw,1.9rem);line-height:1.35}
.attire-copy{max-width:640px;margin:0 auto;text-align:center;color:var(--muted);font-size:1.12rem;line-height:1.7}
.attire-copy p{margin:0}
.attire-copy p+p{margin-top:24px}
