:root{--pink:#d72d70;--ink:#342b32;--muted:#685a62;--blush:#fbe8ee;--cream:#fffaf5;--line:#efd7df;--deep:#6b2948;--white:#fff;--gold:#9b7341;--radius:20px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--cream);font-family:'DM Sans',Arial,sans-serif;font-size:17px;line-height:1.7}img{display:block;max-width:100%;height:auto}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--deep);text-underline-offset:4px}a:hover{color:var(--pink)}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--deep);outline-offset:4px}[hidden]{display:none!important}.wrap{width:min(1160px,calc(100% - 64px));margin:auto}.narrow{max-width:800px}.center{text-align:center}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.16;overflow-wrap:break-word;margin:0 0 20px}h1{font-size:clamp(2.7rem,5.7vw,4.7rem);letter-spacing:-.04em}h2{font-size:clamp(1.8rem,3.5vw,2.8rem);letter-spacing:-.025em}h3{font-size:1.45rem}em{color:var(--pink);font-weight:400}p{margin:0 0 20px}p:last-child{margin-bottom:0}.lead{font-size:1.15rem;line-height:1.65}.small,.fine{font-size:.88rem;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--deep);margin-bottom:15px}.brand{font-family:'Playfair Display',Georgia,serif;font-size:1.9rem;line-height:1.2;text-decoration:none;white-space:nowrap;color:var(--ink)}.brand span{color:var(--pink)}.site-header{position:sticky;top:0;z-index:20;background:#fffaf5f5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.site-nav{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:90px}.site-menu{display:flex;align-items:center;gap:22px}.site-menu>a{font-size:.84rem;font-weight:600;text-decoration:none;color:var(--ink);padding:12px 0}.site-menu>a[aria-current=page]{color:var(--pink);text-decoration:underline}.menu-toggle{display:none;min-height:46px;border:1px solid var(--line);background:white;border-radius:28px;padding:8px 18px;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--pink);border-radius:32px;padding:13px 24px;min-height:48px;background:var(--pink);color:white!important;text-decoration:none;font-weight:700;font-size:.91rem;line-height:1.4;text-align:center;transition:background .15s}.btn:hover{background:#b51c59;border-color:#b51c59}.btn.secondary{color:var(--deep)!important;border-color:var(--deep);background:transparent}.btn.secondary:hover{background:var(--blush)}.actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.text-link{font-weight:700;display:inline-block;padding:10px 0;min-height:44px}.skip-link{position:fixed;top:-100px;left:12px;z-index:100;background:white;padding:12px}.skip-link:focus{top:8px}section{padding:76px 0}.band{background:var(--blush)}.section-heading{max-width:760px;text-align:center;margin:0 auto 35px}.hero{padding:64px 0 78px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}.hero-image{margin:0;border-radius:160px 160px 24px 24px;overflow:hidden;border:6px solid white;box-shadow:14px 14px 0 #f0bfce}.hero-image img{width:100%;height:auto;max-height:620px;object-fit:contain;background:#f5e5db}.page-intro{padding:60px 0 34px}.page-intro h1{font-size:clamp(2.5rem,4.8vw,3.8rem)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.photo-grid figure{margin:0;min-width:0}.photo-button{display:block;width:100%;padding:0;border:0;background:#f3e8e4;border-radius:var(--radius);overflow:hidden;cursor:zoom-in}.photo-button img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;transition:transform .2s}.photo-button:hover img{transform:scale(1.025)}figcaption{font-size:.86rem;line-height:1.5;padding:13px 4px;color:var(--muted)}.birthday-order{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:32px;padding:30px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.birthday-order h3{font-size:1.7rem}.beverage-choice{padding-left:30px;border-left:1px solid var(--line)}dl{margin:0 0 25px}dl>div{display:flex;gap:20px;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}dt{font-weight:600;line-height:1.5}dt small{font-size:.83rem;font-weight:400}dd{margin:0;white-space:nowrap;font-weight:700;font-size:.94rem}.event-price{padding:28px 32px;border:1px solid #dca3b9;border-radius:var(--radius);background:white;margin:0 auto 30px;max-width:1000px}.event-price>strong{display:block;font-family:'Playfair Display',Georgia,serif;font-size:1.75rem;line-height:1.3;margin-bottom:12px}.event-price h2{font-size:1.8rem}.event-price p{font-size:.94rem}.occasion-grid,.three-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.occasion-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:white}.occasion-card>img{height:280px;width:100%;object-fit:contain;background:#f5e9e3}.occasion-card>div{padding:25px}.occasion-card p{font-size:.95rem}.occasion-card a{font-size:.9rem}.testimonial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.featured-reviews{grid-template-columns:repeat(3,minmax(0,1fr))}.boi-testimonial{margin:0;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:white;min-width:0}.boi-testimonial blockquote{margin:0 0 24px;font-size:.96rem;white-space:pre-line;line-height:1.75;overflow-wrap:anywhere}.boi-testimonial figcaption{padding:0;display:flex;flex-direction:column;gap:4px}.boi-testimonial strong{color:var(--deep)}.boi-testimonial-source{font-size:.78rem}.steps span{display:inline-block;color:var(--pink);font-size:1rem;font-weight:700;margin-bottom:18px}.steps p{font-size:.96rem}.delivery-band{background:var(--deep);color:white;text-align:center;padding:45px 0}.delivery-band .wrap{max-width:900px}.delivery-band .small{color:#f6dce6}.delivery-band h2{font-size:2rem}details{border-bottom:1px solid var(--line);padding:19px 0}summary{font-weight:700;line-height:1.5;cursor:pointer;padding:5px 32px 5px 0;min-height:44px;position:relative;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:2px;top:0;color:var(--pink);font-size:1.5rem}details[open]>summary:after{content:'−'}details p{margin:15px 0 5px;font-size:.97rem}.inquiry-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;align-items:start}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px}input,select,textarea{width:100%;min-width:0;min-height:48px;border:1px solid #bda6b0;background:white;color:var(--ink);border-radius:9px;padding:11px 12px;font-size:16px}textarea{resize:vertical;min-height:120px}form{min-width:0}form .small{margin:15px 0 0}form input[type=checkbox]{width:22px;height:22px;min-height:22px;flex-shrink:0}form .check{display:flex;gap:12px;margin:22px 0;align-items:flex-start}form .check label{font-size:.88rem;font-weight:400}.review-form{padding:34px;border:1px solid var(--line);background:white;border-radius:var(--radius)}.review-form>input,.review-form>select,.review-form>textarea{margin-bottom:16px}.review-form h2{font-size:2rem}.form-status{margin-top:16px;font-weight:600}.form-status.error{color:#9c233b}.form-status.success{color:#226044}.story-teaser{padding:50px 0}.story-teaser h2{font-size:2rem}.story-hero{text-align:center}.story-lead{font-size:1.2rem}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:55px}.story-photo{margin:0}.story-photo img{width:100%;max-height:630px;object-fit:contain;border-radius:var(--radius)}.story-prose p,.story-text p,.ollie-copy p{line-height:1.85}.story-prose h2{font-size:2.3rem}.ollie-section{background:#fff3f7}.ollie-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.ollie-grid img{max-height:580px;object-fit:contain;border-radius:var(--radius)}.ollie-photo{margin:0}.story-prose strong{color:var(--deep)}.photos-first{padding:24px 0 0}.feature-photo{max-width:720px}.feature-photo img{width:100%;max-height:620px;object-fit:contain;border-radius:var(--radius);background:#f5e9e3}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.info-grid article{padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:white}.info-grid h2{font-size:1.65rem}.site-footer{padding:48px 0 24px;background:#fff4f7;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}.footer-grid a:not(.brand){display:block;padding:4px 0;overflow-wrap:anywhere;font-size:.9rem}.footer-grid .brand{display:inline-block;margin-bottom:16px}.footer-grid p{font-size:.9rem}.footer-bottom{border-top:1px solid var(--line);margin-top:35px;padding-top:20px;font-size:.82rem;color:var(--muted)}.footer-bottom p{margin-bottom:6px}dialog{border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:var(--cream);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 20px 90px #20101b66}dialog::backdrop{background:#25131dd9}.contact-dialog{padding:35px;width:min(460px,calc(100% - 32px))}.contact-dialog h2{font-size:2rem;padding-right:20px}.dialog-close{position:absolute;top:8px;right:10px;width:44px;height:44px;padding:0;background:var(--cream);color:var(--deep);border:0;border-radius:50%;font-size:1.8rem;z-index:1}.contact-options{display:grid;gap:12px;margin:22px 0}.contact-options a{display:flex;flex-direction:column;text-decoration:none;text-align:center;padding:14px;border:1px solid var(--line);border-radius:12px;background:white;min-height:60px}.contact-options a:hover{background:var(--blush)}.contact-options span{font-size:.88rem;overflow-wrap:anywhere}.photo-dialog{padding:42px 16px 16px;width:fit-content;max-width:calc(100% - 24px)}.photo-dialog img{max-height:calc(100dvh - 140px);max-width:100%;width:auto;object-fit:contain;margin:auto}.photo-dialog p{margin:10px 0 0;font-size:.85rem;max-width:700px;text-align:center}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){.site-nav{gap:20px}.site-menu{gap:15px}.site-menu>a{font-size:.78rem}.wrap{width:calc(100% - 48px)}.brand{font-size:1.65rem}.hero-grid{gap:40px}.occasion-card>img{height:240px}}
@media(max-width:900px){html{scroll-padding-top:90px}.site-nav{min-height:76px;flex-wrap:wrap;gap:0}.menu-toggle{display:inline-flex;gap:12px;align-items:center}.site-menu{display:none;flex-basis:100%;padding:12px 0 20px;gap:0;flex-direction:column;align-items:stretch}.site-menu.open{display:flex}.site-menu>a{font-size:.95rem;padding:13px 0;border-top:1px solid var(--line)}.site-menu .btn{margin-top:10px}.hero-grid{gap:28px}.hero h1{font-size:3.5rem}.hero .lead{font-size:1.05rem}.hero-image{border-radius:100px 100px 20px 20px}.occasion-grid{grid-template-columns:1fr}.occasion-card{display:grid;grid-template-columns:40% 1fr}.occasion-card>img{height:100%;min-height:260px}.featured-reviews{grid-template-columns:1fr}.inquiry-layout{grid-template-columns:1fr;gap:30px}.photo-grid{gap:16px}.birthday-order{gap:24px;padding:24px}.beverage-choice{padding-left:24px}.footer-grid{gap:25px}.split,.ollie-grid{gap:30px}}
@media(max-width:650px){body{font-size:16px}.wrap{width:calc(100% - 36px)}section{padding:48px 0}.hero{padding:34px 0 55px}.hero-grid{grid-template-columns:1fr;gap:35px}.hero h1{font-size:3.3rem}.hero-image{max-width:410px;width:100%;margin:auto;box-shadow:9px 10px 0 #f0bfce}.hero-image img{max-height:480px}.actions{gap:10px}.actions .btn{flex:1;min-width:140px;padding:13px 14px}.page-intro{padding:38px 0 22px}.page-intro h1{font-size:2.65rem}.section-heading{margin-bottom:25px}.photo-grid{grid-template-columns:1fr}.photo-button{max-width:460px;margin:auto}.photo-button img{aspect-ratio:auto;max-height:620px}.photo-grid figcaption{text-align:center}.birthday-order{grid-template-columns:1fr;padding:23px}.beverage-choice{padding:23px 0 0;border-left:0;border-top:1px solid var(--line)}.birthday-order h3{font-size:1.55rem}.event-price{padding:23px}.event-price>strong{font-size:1.5rem}.occasion-card{display:block}.occasion-card>img{height:280px;min-height:0;object-fit:contain;background:#f5e9e3}.occasion-card>div{padding:23px}.testimonial-grid{grid-template-columns:1fr}.boi-testimonial{padding:24px}.three-columns,.split,.ollie-grid,.info-grid,.footer-grid{grid-template-columns:1fr}.steps{gap:25px}.steps span{margin-bottom:10px}.steps h3{margin-bottom:12px}.form-grid{grid-template-columns:1fr}.review-form{padding:23px}.site-footer{padding-top:35px}.footer-grid{gap:25px}.photo-dialog{padding:48px 10px 12px}.contact-dialog{padding:30px 23px 23px}.story-prose h2{font-size:1.9rem}.story-photo img{max-height:530px}.delivery-band{padding:35px 0}.footer-bottom{margin-top:25px}.story-teaser{padding:38px 0}.feature-photo img{max-height:530px}.info-grid article{padding:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.mobile-nav-actions{display:none}@media(max-width:900px){.mobile-nav-actions{display:flex;gap:10px;align-items:center}.mobile-nav-actions .btn{padding:11px 18px}.site-nav>.site-menu{order:3}}@media(max-width:380px){.brand{font-size:1.4rem}.mobile-nav-actions{gap:6px}.menu-toggle{padding:8px 11px}.mobile-nav-actions .btn{padding:11px 13px}.wrap{width:calc(100% - 28px)}}

.ollie-card{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.ollie-mark{min-width:0}.ollie-mark img{width:100%;max-height:660px;object-fit:contain;border-radius:20px}@media(max-width:650px){.ollie-card{grid-template-columns:1fr;gap:30px}.ollie-mark img{max-height:560px}}
.birthday-price-line{margin:20px 0 0;font-size:1.1rem;color:var(--deep)}.birthday-price-line strong{font-size:1.55rem}.birthday-price-line span{font-size:.88rem}.beverage-choice dt a{display:inline-block;min-height:44px}.photo-grid figcaption a{line-height:1.5}.gift-guidance{padding:30px;border:1px solid var(--line);border-radius:20px;background:#fff;margin-bottom:30px}.gift-guidance h2{font-size:1.9rem}.info-grid .btn{margin-top:12px}.quantity-field .small{margin-top:8px}.site-menu{gap:17px}.site-menu>a{font-size:.8rem}.form-status:empty{display:none}@media(max-width:1100px){.site-nav{gap:12px}.site-menu{gap:12px}.site-menu>a{font-size:.75rem}}@media(max-width:1000px){.mobile-nav-actions{display:flex;gap:10px;align-items:center}.menu-toggle{display:inline-flex;gap:10px;align-items:center}.site-nav{min-height:76px;flex-wrap:wrap}.site-menu{display:none;flex-basis:100%;order:3;padding:12px 0 20px;gap:0;flex-direction:column;align-items:stretch}.site-menu.open{display:flex}.site-menu>a{font-size:.95rem;padding:13px 0;border-top:1px solid var(--line)}.site-menu .btn{margin-top:10px}}@media(max-width:650px){.birthday-price-line{font-size:1rem}.birthday-price-line strong{font-size:1.35rem}.gift-guidance{padding:23px}}
@media(max-width:380px){.site-nav>.brand{font-size:1.25rem}.mobile-nav-actions{gap:6px}.menu-toggle{padding:8px 10px;font-size:.85rem}.mobile-nav-actions .btn{padding:11px 12px;font-size:.85rem}}

/* Readable accent text while preserving the bright brand buttons. */
em,.site-menu>a[aria-current=page],.steps span{color:#b51c59}a:hover{color:#b51c59}.package-comparison{margin:0 auto 48px}.package-comparison>h2{text-align:center;font-size:2rem}.package-comparison .info-grid article{padding:24px}.package-comparison p{font-size:.95rem}.photo-disclosure{padding:0 25px 24px;margin:0}.hero-image figcaption{padding:12px 18px;background:var(--cream)}#known-quantity{margin-top:18px}.birthday-order+.wrap{width:100%;margin-top:40px}

.photo-note{display:block;font-size:.8rem;line-height:1.5;margin-top:3px}.package-comparison .info-grid h3{font-size:1.5rem}

/* Matching gallery photo sizes on desktop and mobile; full images remain in the viewer. */
#gallery .photo-grid{align-items:start}
#gallery .photo-button{aspect-ratio:4/5}
#gallery .photo-button img{width:100%;height:100%;aspect-ratio:4/5;max-height:none;object-fit:cover;object-position:center}

/* Curated photo pairs use the same image frames throughout service pages. */
.curated-photo-grid.two-photos{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.curated-photo-grid .photo-button{aspect-ratio:4/5}
.curated-photo-grid .photo-button img{width:100%;height:100%;aspect-ratio:4/5;max-height:none;object-fit:cover;object-position:center}
#proposals figure{margin:0 0 24px}#proposals .photo-button{aspect-ratio:4/3}#proposals .photo-button img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;max-height:none}
@media(max-width:650px){.curated-photo-grid.two-photos{grid-template-columns:1fr}}

.gallery-more{border:0;margin-top:18px;padding:0}.gallery-more>summary{text-align:center;padding:12px 35px;max-width:300px;margin:0 auto 22px;color:var(--deep);border:1px solid var(--deep);border-radius:28px}.gallery-more>summary:after{right:14px;top:6px}

/* Final shared design pass: readable type, steady spacing and predictable controls. */
:root{--accent-text:#b51c59;--control-border:#917881;--space-section:72px;--space-grid:24px}
body{line-height:1.65;-webkit-text-size-adjust:100%;text-size-adjust:100%}
h1,h2,h3{text-wrap:balance}h1{letter-spacing:-.03em}h2{letter-spacing:-.02em}
.hero h1{font-size:clamp(2.25rem,4.9vw,4.35rem);line-height:1.12}
.page-intro h1{font-size:clamp(2.1rem,4.2vw,3.6rem);line-height:1.15}
.eyebrow{font-size:.75rem;letter-spacing:.12em;line-height:1.5}
.lead{max-width:62ch}.center>.lead,.section-heading>.lead{margin-left:auto;margin-right:auto}
section{padding-top:var(--space-section);padding-bottom:var(--space-section)}
.hero{padding-top:56px;padding-bottom:72px}.page-intro{padding-top:56px;padding-bottom:28px}
.section-heading{margin-bottom:32px}.section-heading>p:not(.eyebrow){max-width:64ch;margin-left:auto;margin-right:auto}
.section-heading h2{margin-bottom:16px}
.photo-grid,.occasion-grid,.three-columns,.testimonial-grid,.info-grid{gap:var(--space-grid)}
.photo-grid figcaption{font-size:.875rem;line-height:1.55;padding-top:12px}
#birthday .photo-button{aspect-ratio:3/4}
#birthday .photo-button img{width:100%;height:100%;aspect-ratio:3/4;max-height:none;object-fit:contain}
.occasion-card{display:flex;flex-direction:column}
.occasion-card>div{display:flex;flex-direction:column;flex:1}
.occasion-card>div>.text-link{margin-top:auto;align-self:flex-start}
.boi-testimonial{display:flex;flex-direction:column}
.boi-testimonial blockquote{flex:1;line-height:1.65}.boi-testimonial figcaption{margin-top:auto}
.event-example{grid-column:1/-1}
.btn,.menu-toggle{min-height:50px}.btn{border-radius:999px}
.site-menu{gap:18px}.site-menu>a{font-size:.875rem}
.form-grid{gap:20px}label{font-size:.94rem;line-height:1.5;margin-bottom:8px}
input,select,textarea{min-height:52px;border-color:var(--control-border);border-radius:12px;line-height:1.5;font-size:16px}
textarea{min-height:144px}input[type=checkbox]{accent-color:var(--deep)}
.form-grid>.check{margin:0;padding:4px 0}.form-grid>.check label{margin:0}
.small,.fine{line-height:1.6}.beverage-choice dl>div{align-items:center;gap:16px}
.beverage-choice dt{min-width:0}.beverage-choice dd{font-variant-numeric:tabular-nums}
button:disabled{cursor:wait;opacity:.65}
.footer-grid a:not(.brand){min-height:44px;padding-top:8px;padding-bottom:8px}
.story-width{max-width:850px}.centered-actions{justify-content:center}
@media(max-width:1120px){
 .mobile-nav-actions{display:flex;gap:10px;align-items:center}
 .menu-toggle{display:inline-flex;gap:10px;align-items:center}
 .site-nav{min-height:76px;flex-wrap:wrap;gap:0}
 .site-menu{display:none;flex-basis:100%;order:3;padding:12px 0 20px;gap:0;flex-direction:column;align-items:stretch}
 .site-menu.open{display:flex}.site-menu>a{font-size:1rem;padding:13px 0;border-top:1px solid var(--line)}
 .site-menu .btn{margin-top:10px}.mobile-nav-actions .btn{padding:11px 18px}
}
@media(min-width:651px) and (max-width:900px){
 .occasion-card{display:grid;grid-template-columns:40% 1fr}
}
@media(max-width:800px){
 .hero-grid{grid-template-columns:1fr;gap:32px}.hero-image{max-width:410px;width:100%;margin-left:auto;margin-right:auto}
 .hero h1{font-size:clamp(2.25rem,6.2vw,3.5rem);max-width:18ch}
}
@media(max-width:650px){
 :root{--space-section:48px;--space-grid:20px}
 .hero{padding-top:32px;padding-bottom:48px}
 .hero h1{font-size:clamp(2.15rem,8.4vw,3.1rem);max-width:none}
 .page-intro{padding-top:36px;padding-bottom:24px}
 .page-intro h1{font-size:clamp(2.05rem,7.8vw,2.65rem)}
 .section-heading{margin-bottom:24px}.hero .actions{flex-direction:column;align-items:stretch}
 .hero .actions .btn{width:100%;min-width:0}.birthday-order{padding:22px;gap:22px}
 .birthday-order h3,.beverage-choice h3{font-size:1.5rem}
 .occasion-card{display:flex}.info-grid article,.review-form,.boi-testimonial{padding:24px}
 .event-example{grid-column:auto}.site-footer{padding-top:36px;padding-bottom:24px}
 .photos-first{padding-top:24px;padding-bottom:0}.story-teaser{padding-top:36px;padding-bottom:36px}
}
@media(max-width:380px){
 .site-nav>.brand{font-size:1.25rem}.mobile-nav-actions{gap:6px}
 .menu-toggle{padding:8px 10px;font-size:.85rem}.mobile-nav-actions .btn{padding:11px 12px;font-size:.85rem}
 .birthday-order{padding:18px}.beverage-choice dl>div{gap:12px}
}

/* Center the event pricing heading and its supporting details consistently. */
.event-price{text-align:center}
.event-price>p{max-width:78ch;margin-left:auto;margin-right:auto}

/* Center each beverage choice beneath its corresponding gift photo at every width. */
#birthday .photo-grid figcaption{text-align:center;width:100%}
#birthday .photo-grid figcaption .text-link{display:inline-flex;align-items:center;justify-content:center;text-align:center;max-width:100%}

/* Center main-content headlines and short promotional cards consistently. */
main h1,main h2,main h3{text-align:center}
.hero-grid>div{text-align:center}.hero .lead{margin-left:auto;margin-right:auto}.hero .actions{justify-content:center}
.occasion-card>div,.info-grid article,.steps article,.birthday-order>div:first-child{text-align:center}
.occasion-card>div>.text-link{align-self:center;text-align:center}

/* Matching wedding and proposal detail photos, with full images available on tap. */
.occasion-detail-photo{margin:24px 0 0;text-align:center}
.occasion-detail-photo .photo-button{aspect-ratio:4/3}
.occasion-detail-photo .photo-button img{width:100%;height:100%;aspect-ratio:4/3;max-height:none;object-fit:cover}

/* Consistent homepage gallery captions across screen sizes. */
#gallery .photo-grid figure{margin:0;min-width:0}
#gallery .photo-grid figcaption{width:100%;margin:0;padding:14px 8px 0;text-align:center;font-size:.875rem;line-height:1.55;text-wrap:balance}

/* Site-wide alignment: photo captions, short introductions and action groups. */
.photo-grid figcaption,.story-photo figcaption,.ollie-photo figcaption,.occasion-detail-photo figcaption{text-align:center;text-wrap:balance;padding:14px 8px 0;margin:0;line-height:1.55}
.hero h1{margin-left:auto;margin-right:auto}
.inquiry-layout>div:first-child{text-align:center}
.inquiry-layout>div:first-child>p{max-width:58ch;margin-left:auto;margin-right:auto}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin-top:28px}
.review-form>p:not(.form-status){text-align:center}
.contact-dialog>h2{padding-left:24px;padding-right:24px;text-align:center}
.contact-dialog>p{text-align:center}
.contact-dialog>.text-link{display:block;text-align:center}
@media(max-width:650px){.hero-actions>.btn{flex:1;min-width:140px}}

/* Mobile resilience: keep content within its column and menus usable on short screens. */
.hero-grid>*,.inquiry-layout>*,.split>*,.ollie-grid>*,.ollie-card>*,.footer-grid>*,.birthday-order>*,.info-grid>*,.occasion-grid>*,.three-columns>*{min-width:0}
main p,main figcaption,.form-status{overflow-wrap:break-word}
@media(max-width:1120px){
 .site-menu.open{max-height:calc(100vh - 76px);max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain}
}
@media(max-width:650px){
 .photo-grid figcaption{max-width:460px;margin-left:auto;margin-right:auto}
 .form-grid>.full,.form-grid>div{min-width:0}
 .contact-dialog{max-width:calc(100% - 24px)}
}
