/* Apple-inspired product editorial: space, photographic scale, direct scroll response. */
:root{--gallery-surface:#f5f5f7;--gallery-ink:#1d1d1f}
body{background:var(--gallery-surface);color:var(--gallery-ink)}
.brand-header{background:rgba(255,255,255,.92);box-shadow:none;border-bottom:1px solid #1d1d1f12;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.header{min-height:88px}.identity img{width:76px;height:64px}.header nav{font-size:12px}
main{overflow:clip}
.section{padding-block:112px}.desserts{padding-top:96px}
.section-heading{padding-bottom:0;margin-bottom:48px;display:flex;align-items:baseline;justify-content:space-between;gap:24px}
.section-heading h2,.coffee-collection .section-heading h2,.venue .section-heading h2,.branches .section-heading h2{font-size:clamp(48px,6vw,80px);line-height:1.05;letter-spacing:-.04em;font-weight:600;color:var(--gallery-ink)}
.section-heading .text-link{color:var(--red);border:0;font-size:15px;gap:12px}
.sweet-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.sweet-photo,.coffee-photo{background:#fff;border-radius:24px;overflow:hidden;display:flex;flex-direction:column}
.sweet-photo figcaption,.coffee-photo figcaption{order:-1;border:0;margin:0;padding:28px 30px 24px;font-size:27px;font-weight:600;letter-spacing:-.03em;line-height:1.2}
.sweet-photo .photo-window{aspect-ratio:1.3;border-radius:0 0 24px 24px}
.photo-window{position:relative;background:#f1efed;isolation:isolate}
.photo-open,.photo-open img{opacity:1;transform:none;transition:none}
.photo-zoom{opacity:1;transform:none;background:rgba(255,255,255,.94);color:var(--gallery-ink);border:0;width:40px;height:40px;bottom:20px;right:20px;box-shadow:none}
.coffee.coffee-collection{background:#fff;padding-block:100px;margin-top:0;isolation:isolate}
.coffee.coffee-collection::before{background:#fff}
.coffee-gallery{gap:24px}.coffee-photo{background:var(--gallery-surface)}
.coffee-photo figcaption{font-size:23px;padding:25px 25px 22px}.coffee-photo .photo-window{aspect-ratio:1.08;border-radius:0 0 24px 24px}
.venue-gallery{grid-template-columns:1fr 1.3fr;gap:28px}.venue-gallery figure{border-radius:24px;height:600px}.venue-gallery .photo-window{border-radius:24px}
.branches{padding-top:40px}.branch-grid{border:0;display:grid;gap:24px}
.branch{border:0;background:#fff;border-radius:24px;padding:40px;gap:40px;overflow:hidden}
.branch h3{font-size:34px;color:var(--gallery-ink)}.branch-map,.branch-map iframe{border-radius:16px}.branch-map iframe{height:330px}
.button{border-radius:24px;padding-inline:23px}.header .nav-cta{border-radius:24px;gap:14px}
.footer{background:var(--gallery-surface);border-top:0}.footer-main{border-top:1px solid #1d1d1f1a}
.photo-modal{border-radius:24px}.photo-modal-inner{padding:20px}.photo-modal-image{border-radius:12px}.photo-modal-close{border-radius:22px}
@media(hover:hover) and (pointer:fine){.photo-open:hover img{transform:none}.photo-open:hover .photo-zoom{transform:scale(1.08);background:#fff}.photo-zoom{transition:transform 180ms var(--ease-out),background-color 180ms ease}}
@media(max-width:1100px){.section{padding-block:88px}.sweet-gallery{gap:22px}.venue-gallery figure{height:480px}.branch{padding:30px;gap:28px}}
@media(max-width:760px){
 .section{padding-block:64px}.desserts{padding-top:56px}.header{min-height:82px}.identity img{width:64px;height:56px}
 .section-heading{display:flex;align-items:center;margin-bottom:30px;gap:16px}.section-heading h2,.coffee-collection .section-heading h2,.venue .section-heading h2,.branches .section-heading h2{font-size:42px}.section-heading .text-link{font-size:13px;margin:0;white-space:nowrap}
 .sweet-gallery,.coffee-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
 .sweet-photo,.coffee-photo{border-radius:16px}.sweet-photo figcaption,.coffee-photo figcaption{font-size:17px;padding:18px 14px 15px}
 .sweet-photo .photo-window,.coffee-photo .photo-window{aspect-ratio:1;border-radius:0 0 16px 16px}
 .photo-zoom{width:30px;height:30px;bottom:10px;right:10px}.photo-zoom svg{width:17px;height:17px}
 .coffee.coffee-collection{padding-block:60px}.venue-gallery{grid-template-columns:1fr;gap:18px}.venue-gallery figure,.venue-gallery figure:first-child{height:420px;border-radius:20px}.venue-gallery figure:last-child{height:auto;aspect-ratio:4/3}.venue-gallery .photo-window{border-radius:20px}
 .branches{padding-top:24px}.branch{padding:26px 22px;border-radius:20px;gap:26px}.branch h3{font-size:29px}.branch-map iframe{height:250px}.branch-details .branch-actions{gap:17px}.branch-details .branch-info{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.photo-window{animation:none!important;transform:none!important}}
.sweet-photo .photo-window,.coffee-photo .photo-window,.venue-gallery .photo-window{transform-origin:center bottom;animation:none;transition:none}
/* Focal scene: the first product pair grows from 64% to its full photographic size. */
.showcase-chapter{grid-column:1/-1;min-width:0}
.showcase-stage{width:100%}
.showcase-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;transform-origin:center}
.showcase-chapter.is-motion .showcase-stage{height:calc(100svh - 88px);min-height:480px;display:flex;align-items:center}
.showcase-chapter.is-motion .showcase-pair{width:100%}
.showcase-chapter.is-motion .sweet-photo .photo-window{aspect-ratio:auto;height:min(49vw,calc(100svh - 230px));min-height:240px;max-height:580px}
.showcase-stage .photo-window{transform:none!important}
@media(max-width:760px){
 .showcase-pair{gap:12px}
 .showcase-chapter.is-motion .showcase-stage{height:calc(78svh - 82px);min-height:300px}
 .showcase-chapter.is-motion .sweet-photo .photo-window{height:clamp(180px,37svh,360px);min-height:180px}
}
@media(prefers-reduced-motion:reduce){.showcase-stage,.showcase-pair,.showcase-pair .sweet-photo{transform:none!important}.showcase-stage{height:auto!important;min-height:0!important}}
/* showcase2: the scene is bounded by its own section, never fixed to the window. */
main{position:relative;isolation:isolate;z-index:0}
.showcase-chapter{position:relative;contain:paint;background:var(--gallery-surface)}
.showcase-chapter.is-motion{height:calc(180svh - var(--showcase-top,88px))}
.showcase-chapter.is-motion .showcase-stage{position:sticky;top:var(--showcase-top,88px);height:calc(100svh - var(--showcase-top,88px));min-height:0}
@media(max-width:760px){
 .showcase-chapter.is-motion{height:calc(158svh - var(--showcase-top,82px))}
 .showcase-chapter.is-motion .showcase-stage{height:calc(78svh - var(--showcase-top,82px));min-height:0}
}
@media(prefers-reduced-motion:reduce){.showcase-chapter{height:auto!important}.showcase-stage{position:static!important}}
/* Five real branch images in one bounded editorial composition. */
.venue-gallery.venue-mosaic{grid-template-columns:1.1fr 1fr 1fr;grid-template-rows:290px 290px;gap:18px;align-items:stretch}
.venue-mosaic figure,.venue-mosaic figure:first-child,.venue-mosaic figure:last-child{height:auto;aspect-ratio:auto;grid-column:auto;grid-row:auto;border-radius:20px;min-height:0}
.venue-mosaic figure:first-child{grid-row:1/3}
.venue-mosaic .photo-window,.venue-mosaic .photo-open{height:100%;border-radius:20px}
.venue-mosaic figure img,.venue-mosaic figure:first-child img,.venue-mosaic figure:last-child img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.venue-mosaic figure:first-child img{object-position:52% center}
.venue-mosaic figure:nth-child(3) img{object-position:center 62%}
.branch-info>.branch-phone{color:var(--red);font-size:22px;font-weight:600;white-space:nowrap;letter-spacing:-.025em;margin-top:14px}
.footer-phones{display:flex;gap:36px;align-items:center}.footer-phones>a{min-height:44px;display:flex;flex-direction:column;justify-content:center;font-size:11px;line-height:1.7;color:var(--muted)}.footer-phones a span{font-size:15px;color:var(--ink);font-weight:500;white-space:nowrap}
@media(max-width:1100px){.venue-gallery.venue-mosaic{grid-template-rows:245px 245px;gap:14px}.branch-info>.branch-phone{font-size:20px;margin-top:0}}
@media(max-width:760px){
 .venue-gallery.venue-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:180px 180px 180px;gap:12px}
 .venue-mosaic figure,.venue-mosaic .photo-window{border-radius:16px}
 .venue-mosaic figure:first-child{grid-row:1/3;grid-column:1}
 .venue-mosaic figure:nth-child(2){grid-column:2;grid-row:1}
 .venue-mosaic figure:nth-child(3){grid-column:2;grid-row:2}
 .venue-mosaic figure:nth-child(4),.venue-mosaic figure:nth-child(5){grid-row:3}
 .branch-info>.branch-phone{font-size:21px}
 .footer-bottom{align-items:flex-start}.footer-phones{gap:20px;flex-wrap:wrap}.footer-phones a span{font-size:14px}
}