/* Celebrations: warm personality, a real portrait and space for the whole party. */
.celebrate-page { --celebrate-wine:#501327; --celebrate-ink:#281c19; --celebrate-paper:#fbf5eb; --celebrate-brass:#cfb18b; --celebrate-rule:#cbb39a; --celebrate-muted:#685346; background:var(--celebrate-paper); color:var(--celebrate-ink); font-family:var(--tn-sans,system-ui,sans-serif); }
.celebrate-page :is(h1,h2,h3) { font-family:var(--tn-display,Georgia,serif); font-weight:400; letter-spacing:-.04em; text-transform:none; text-wrap:balance; }
.celebrate-page h2 { margin:0; font-size:clamp(2.3rem,4.5vw,4.4rem); line-height:1.08; }
.celebrate-page h2 em { color:var(--celebrate-wine); font-weight:inherit; }
.celebrate-label { margin:0 0 1rem; color:#79243a; font-size:.7rem; font-weight:650; line-height:1.6; letter-spacing:.115em; text-transform:uppercase; }
.celebrate-button { display:inline-flex; justify-content:space-between; align-items:center; gap:1.4rem; width:fit-content; max-width:100%; min-height:50px; padding:.9rem 1.2rem; border:1px solid #b59a7d; background:var(--celebrate-wine); color:#fff8eb; font-size:.84rem; font-weight:600; line-height:1.5; text-decoration:none; }
.celebrate-button:hover { background:#32101c; }
.celebrate-button .tn-icon, .celebrate-text-link .tn-icon { flex:none; width:1.1em; height:1.1em; }
.celebrate-text-link { display:inline-flex; align-items:center; gap:.6rem; min-height:44px; margin-top:1.4rem; color:var(--celebrate-wine); font-size:.86rem; font-weight:600; text-decoration:underline; text-underline-offset:.22em; }
.celebrate-hero { display:grid; grid-template-columns:1.05fr 1fr; align-items:stretch; background:radial-gradient(ellipse at 100% 0,#752e42,transparent 65%),#2c111d; color:#fff7e9; }
.celebrate-hero-photo { position:relative; min-width:0; aspect-ratio:3/4; margin:0; overflow:hidden; }
.celebrate-hero-photo picture { position:absolute; inset:0; display:block; width:100%; height:100%; }
.celebrate-hero-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.celebrate-hero-photo figcaption { position:absolute; z-index:1; left:clamp(20px,3vw,44px); right:20px; top:16px; }
.celebrate-hero-photo figcaption a { display:inline-flex; align-items:center; gap:.45rem; max-width:100%; min-height:44px; padding:.45rem .7rem; color:#fff8ed; background:#2d1423e8; font-size:.68rem; line-height:1.5; text-decoration:underline; text-underline-offset:.2em; }
.celebrate-hero-copy { align-self:center; min-width:0; padding:clamp(32px,5vw,78px); }
.celebrate-hero .celebrate-label { color:#e0bf98; font-size:.67rem; }
.celebrate-hero h1 { margin:0; font-size:clamp(3.3rem,5.8vw,6.2rem); line-height:1.02; letter-spacing:-.05em; }
.celebrate-hero h1 em { color:#e5c6a0; font-weight:inherit; }
.celebrate-hero-copy > p:not(.celebrate-label) { max-width:39ch; margin:1.5rem 0; color:#eadbd0; font-size:1rem; line-height:1.75; }
.celebrate-hero .celebrate-button { background:#fff7e9; border-color:#fff7e9; color:#501327; }
.celebrate-hero .celebrate-button:hover { background:#ead1af; }
.celebrate-hero-note { display:block; margin-top:1.2rem; color:#d9bfa8; font-size:.73rem; line-height:1.6; }
.celebrate-occasions { padding-block:clamp(50px,7vw,100px); background:radial-gradient(ellipse at 0 0,#fffdf7,transparent 65%),#f6ede0; }
.celebrate-section-heading { display:grid; grid-template-columns:1.25fr 1fr; gap:.5rem clamp(25px,6vw,90px); align-items:end; }
.celebrate-section-heading .celebrate-label { grid-column:1/-1; }
.celebrate-section-heading > p:last-child { max-width:48ch; margin:0; color:var(--celebrate-muted); font-size:.97rem; line-height:1.75; }
.celebrate-occasion-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(28px,6vw,90px); margin:clamp(30px,5vw,65px) 0 0; padding:0; }
.celebrate-occasion-list > div { min-width:0; display:grid; grid-template-columns:1.1fr 1fr; gap:1.5rem; padding:1.6rem 0; border-top:1px solid var(--celebrate-rule); }
.celebrate-occasion-list dt { color:#4c2026; font:400 clamp(1.4rem,2vw,1.9rem)/1.25 var(--tn-display,Georgia,serif); letter-spacing:-.025em; }
.celebrate-occasion-list dt span { display:block; margin-bottom:.8rem; color:#795637; font:italic 400 1.1rem/1 var(--tn-display,Georgia,serif); }
.celebrate-occasion-list dd { margin:0; padding-top:1.8rem; color:var(--celebrate-muted); font-size:.9rem; line-height:1.7; }
.celebrate-feeling { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(30px,6vw,90px); align-items:center; padding-block:clamp(52px,8vw,110px); background:#eee1cf; }
.celebrate-feeling-copy { min-width:0; }
.celebrate-feeling-copy > p:not(.celebrate-label) { max-width:43ch; margin:1.4rem 0; color:#665044; font-size:.97rem; line-height:1.75; }
.celebrate-cue-card { position:relative; margin-top:2rem; padding:clamp(22px,3vw,36px); background:#fffaf0; border:1px solid #c9ad8d; box-shadow:.45rem .45rem 0 #d7bfa2,0 20px 35px -28px #3e1c1b80; transform:perspective(1300px) rotateY(2deg) rotateZ(-.5deg); }
.celebrate-cue-top { display:block; padding-bottom:1rem; border-bottom:1px solid #c9ad8d; color:#67432d; font-size:.67rem; font-weight:650; letter-spacing:.1em; line-height:1.5; text-transform:uppercase; }
.celebrate-wave { display:block; width:100%; height:60px; margin:1rem 0; fill:none; stroke:#7d2840; stroke-width:1.5; stroke-linecap:round; }
.celebrate-cue-card dl { margin:0; padding:0; }
.celebrate-cue-card dl > div { display:grid; grid-template-columns:5.2rem minmax(0,1fr); gap:1rem; border-top:1px solid #d3bda4; padding:.85rem 0; }
.celebrate-cue-card dt { color:#572332; font-size:.8rem; font-weight:650; line-height:1.6; }
.celebrate-cue-card dd { margin:0; color:#6a5544; font-size:.85rem; line-height:1.65; }
.celebrate-energy-photo { position:relative; min-width:0; margin:0 10px 0 0; padding:9px; border:1px solid #d3bda2; background:#fffaf0; box-shadow:0 23px 38px -26px #39201688; transform:rotate(1deg); }
.celebrate-energy-photo::before { position:absolute; z-index:-1; content:''; inset:12px -12px -12px 12px; border:1px solid #b9936c; background:#d8b98f; transform:rotate(-2deg); }
.celebrate-energy-photo img { display:block; width:100%; height:auto; aspect-ratio:.95; object-fit:cover; object-position:48% center; }
.celebrate-energy-photo figcaption { padding:.75rem .15rem .15rem; color:#715943; font-size:.68rem; line-height:1.6; }
.celebrate-team { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(28px,7vw,105px); padding-block:clamp(50px,7vw,100px); background:#371320; color:#fff7e9; }
.celebrate-team .celebrate-label { color:#daba95; }
.celebrate-team h2 em { color:#daba95; }
.celebrate-team > div > p:not(.celebrate-label) { max-width:43ch; color:#e6d2c5; margin:1.5rem 0 0; font-size:.96rem; line-height:1.75; }
.celebrate-wedding-note { padding-top:1.1rem; border-top:1px solid #9c7768; }
.celebrate-wedding-note strong { color:#fff7e9; }
.celebrate-wedding-note a { display:inline-flex; align-items:center; gap:.4rem; color:inherit; text-decoration:underline; text-underline-offset:.2em; }
.celebrate-wedding-note a svg { width:1em; height:1em; }
.celebrate-faq details { border-top:1px solid #9c7768; padding-block:.7rem; }
.celebrate-faq details:last-child { border-bottom:1px solid #9c7768; }
.celebrate-faq summary { min-height:44px; align-content:center; cursor:pointer; color:#f4e2d1; font-size:.91rem; font-weight:600; line-height:1.5; }
.celebrate-faq p { color:#e6d2c5; margin:.8rem 0 .4rem; font-size:.92rem; line-height:1.75; }
.celebrate-cta { padding-block:clamp(50px,7vw,100px); text-align:center; background:#fbf5eb; }
.celebrate-cta h2 { margin:0 auto; max-width:20ch; }
.celebrate-cta .celebrate-button { margin-top:2rem; }
@media(max-width:1050px) { .celebrate-hero-copy { padding:30px; } .celebrate-hero h1 { font-size:clamp(3rem,5.7vw,5rem); } .celebrate-occasion-list > div { grid-template-columns:1fr; gap:.6rem; } .celebrate-occasion-list dd { padding-top:0; } .celebrate-feeling { grid-template-columns:1fr 1fr; gap:2rem; } }
@media(max-width:720px) {
 .celebrate-hero { grid-template-columns:1fr; }
 .celebrate-hero-photo { aspect-ratio:4/5; }
 .celebrate-hero-photo img { object-position:center 52%; }
 .celebrate-hero-photo figcaption { left:16px; right:16px; top:10px; }
 .celebrate-hero-copy { padding:2.3rem var(--edge,22px) 2.8rem; }
 .celebrate-hero h1 { font-size:clamp(3rem,12vw,5rem); }
 .celebrate-hero-copy > p:not(.celebrate-label) { max-width:48ch; font-size:.96rem; margin:1.25rem 0; }
 .celebrate-section-heading, .celebrate-feeling, .celebrate-team { grid-template-columns:1fr; gap:1.8rem; }
 .celebrate-section-heading > p:last-child { max-width:60ch; }
 .celebrate-occasion-list { column-gap:1.5rem; }
 .celebrate-occasion-list > div { padding:1.25rem 0; }
 .celebrate-occasion-list dt { font-size:1.5rem; }
 .celebrate-occasion-list dd { font-size:.87rem; }
 .celebrate-cue-card { transform:none; margin-right:7px; }
 .celebrate-energy-photo { transform:none; margin-top:.75rem; }
 .celebrate-energy-photo img { aspect-ratio:1.4; object-position:48% center; }
}
@media(max-width:400px) { .celebrate-occasion-list { grid-template-columns:1fr; } .celebrate-occasion-list > div { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:1rem; } .celebrate-occasion-list dt { font-size:1.35rem; } .celebrate-occasion-list dd { padding-top:1.65rem; } .celebrate-cue-card { padding:20px; } .celebrate-cue-card dl > div { grid-template-columns:1fr; gap:.35rem; } }
@media(prefers-reduced-motion:reduce) { .celebrate-cue-card, .celebrate-energy-photo { transform:none; } }
@media print { .celebrate-hero, .celebrate-team { background:#fff; color:#281c19; } .celebrate-hero h1 em, .celebrate-hero .celebrate-label, .celebrate-hero-copy > p:not(.celebrate-label), .celebrate-hero-note, .celebrate-team .celebrate-label, .celebrate-team h2 em, .celebrate-team > div > p:not(.celebrate-label), .celebrate-faq summary, .celebrate-faq p { color:#281c19; } .celebrate-hero { grid-template-columns:1fr 1fr; } .celebrate-cue-card, .celebrate-energy-photo { transform:none; box-shadow:none; } }
