.cafe-about{padding-block:clamp(64px,7vw,180px);--cafe-gap:clamp(18px,1.8vw,48px)}
.cafe-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(32px,6vw,160px);align-items:end;margin-bottom:clamp(32px,3.5vw,90px)}
.cafe-intro .eyebrow{font-size:clamp(11px,.9vw,23px);margin-bottom:22px}
.cafe-intro h2{font-size:clamp(38px,3.7vw,100px);font-weight:500;line-height:1.08;letter-spacing:-.045em;margin:0}
.cafe-intro h2 span{color:var(--accent)}
.cafe-intro-copy{max-width:790px}
.cafe-intro-copy p{font-size:clamp(18px,1.45vw,38px);line-height:1.55;color:#c5c8cc;margin:0 0 24px}
.cafe-book{display:inline-flex;align-items:center;gap:24px;min-height:54px;padding:14px 22px;border-radius:14px;background:var(--accent);color:#202327;font-size:clamp(15px,1vw,26px);font-weight:500}
.cafe-book svg,.cafe-invitation svg{width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cafe-gallery-track{display:flex;gap:var(--cafe-gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:3px;scroll-padding-inline:3px;border-radius:clamp(20px,2vw,44px);overscroll-behavior-x:contain}
.cafe-gallery-track::-webkit-scrollbar{display:none}
.cafe-shot{display:flex;flex-direction:column;flex:0 0 min(42%,980px);min-width:0;padding:0;border:0;background:none;color:var(--text);text-align:left;scroll-snap-align:start;border-radius:20px;transform:none!important}
.cafe-shot-image{display:block;width:100%;aspect-ratio:1;position:relative;overflow:hidden;border-radius:clamp(20px,2vw,44px);background:#303438}
.cafe-shot-image>img,.cafe-original-photo{display:block;width:100%;height:100%;object-fit:cover}
.cafe-original-photo{background-image:url(/assets/cafe/avif/cafe-01.avif);background-size:200% 100%;background-position:right center}
.cafe-shot-image>img,.cafe-shot-image>.cafe-original-photo{transition:transform .6s cubic-bezier(.22,1,.36,1)}
.cafe-expand{display:grid;place-items:center;position:absolute;right:20px;bottom:20px;width:44px;height:44px;background:#202327;border-radius:12px;color:#ddd1bf;transition:background-color .2s,color .2s}
.cafe-expand svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cafe-shot-caption{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:20px 2px 4px;font-size:clamp(19px,1.5vw,38px);font-weight:500}
.cafe-shot-caption small{font-size:clamp(11px,.8vw,22px);font-weight:400;color:#9ea5ab;white-space:nowrap;letter-spacing:.06em}
.cafe-gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px}
.cafe-gallery-toolbar>p{margin:0;color:#959ea5;font-size:clamp(12px,.9vw,22px);line-height:1.6}
.cafe-gallery-navigation{display:flex;gap:10px;flex-shrink:0}
.cafe-arrow{display:grid;place-items:center;width:64px;height:56px;padding:12px;border:0;border-radius:16px;background:#363c42;color:#cfb28b;transition:background-color .2s,color .2s;transform:none!important}
.cafe-arrow svg{width:30px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cafe-arrow:disabled{background:#292e32;color:#626b72;cursor:default}
.cafe-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,100px);margin-top:clamp(48px,5vw,130px)}
.cafe-details article{border-top:1px solid #42484e;padding-top:26px}
.cafe-detail-number{color:var(--accent);font-size:clamp(10px,.8vw,20px);letter-spacing:.12em}
.cafe-details h3{font-size:clamp(25px,2vw,52px);line-height:1.18;font-weight:500;letter-spacing:-.025em;margin:24px 0 20px}
.cafe-details p{font-size:clamp(15px,1.1vw,28px);line-height:1.7;color:#b8bfc5;margin:0}
.cafe-details .cafe-detail-note{color:#dfc39d;margin-top:22px}
.cafe-inline-link{display:inline-flex;align-items:center;gap:28px;min-height:44px;margin-top:18px;font-size:clamp(15px,1.1vw,28px);color:var(--accent)}
.cafe-invitation{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:clamp(40px,4vw,100px);padding:clamp(24px,2.6vw,64px);background:#2c3136;border-radius:clamp(20px,2vw,40px)}
.cafe-invitation p{font-size:clamp(24px,2vw,48px);line-height:1.2;margin:0;letter-spacing:-.02em}
.cafe-invitation p span{display:block;font-size:clamp(14px,1vw,25px);line-height:1.5;color:#b8bfc5;margin-top:12px;letter-spacing:normal}
.cafe-invitation a{display:flex;align-items:center;gap:24px;font-size:clamp(22px,2vw,48px);font-weight:500;color:var(--accent);white-space:nowrap;min-height:48px}
.cafe-about :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.cafe-shot:focus-visible{outline-offset:-3px}
.cafe-gallery-open{overflow:hidden}
#cafe-gallery-dialog{position:fixed;inset:0;margin:0;width:100%;height:100dvh;max-width:none;max-height:none;padding:24px 32px;border:0;border-radius:0;background:#181c20;color:var(--text);overflow:auto;overscroll-behavior:contain}
#cafe-gallery-dialog[open]{display:flex;flex-direction:column;gap:16px}
#cafe-gallery-dialog::backdrop{background:#111519}
.cafe-view-top{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.12em;color:#b6bec4}
.cafe-view-close{display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:14px;background:#343b42;color:#c5cbd0;padding:12px;flex-shrink:0}
.cafe-view-close svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}
.cafe-view-layout{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;gap:32px;align-items:center;max-width:1240px;width:100%;margin:auto}
.cafe-view-figure{margin:0;min-width:0;justify-self:center;width:min(100%,calc(100dvh - 290px),1000px)}
.cafe-view-stage{position:relative;aspect-ratio:1;overflow:hidden;border-radius:24px;background:#272d31;touch-action:pan-y}
.cafe-view-stage img,.cafe-view-stage>.cafe-original-photo{display:block;width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}
.cafe-view-figure figcaption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:16px}
#cafe-gallery-dialog h2{font-size:22px;margin:0;line-height:1.25;letter-spacing:-.02em}
#cafe-view-counter{font-size:13px;white-space:nowrap;color:#b6bec4;font-variant-numeric:tabular-nums}
.cafe-view-thumbs{display:flex;justify-content:flex-start;gap:10px;margin:0 auto;width:fit-content;max-width:100%;overflow-x:auto;padding:4px;scrollbar-width:thin}
.cafe-view-thumbs button{flex-shrink:0}
.cafe-view-thumbs button{display:block;width:64px;height:64px;padding:3px;border:1px solid transparent;background:none;border-radius:12px}
.cafe-view-thumbs img,.cafe-view-thumbs .cafe-original-photo{width:100%;height:100%;border-radius:8px;object-fit:cover}
.cafe-view-thumbs button[aria-pressed=true]{border-color:var(--accent);background:#45413b}
#cafe-gallery-dialog .cafe-view-note{font-size:12px;margin:0;text-align:center;color:#909aa2;line-height:1.5}
#cafe-gallery-dialog :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(hover:hover) and (pointer:fine){
 .cafe-book:hover{background:#e3c59e}
 .cafe-shot:hover .cafe-shot-image>img,.cafe-shot:hover .cafe-shot-image>.cafe-original-photo{transform:scale(1.035)}
 .cafe-shot:hover .cafe-expand,.cafe-arrow:not(:disabled):hover{background:#cfb28b;color:#202327}
 .cafe-inline-link:hover,.cafe-invitation a:hover{color:#f1d6b4}
 .cafe-view-close:hover{background:#813a2c;color:#fff}
 .cafe-view-thumbs button:hover{background:#555046}
}
.cafe-arrow:not(:disabled):active,.cafe-book:active{background:#bea17a;color:#202327}
.cafe-view-close:active{background:#692f24;color:#fff}
@media(min-width:2400px){.cafe-arrow{width:88px;height:76px;border-radius:22px}.cafe-arrow svg{width:40px;height:32px}.cafe-book{padding:22px 32px;min-height:76px}.cafe-book svg,.cafe-invitation svg{width:32px;height:32px}.cafe-expand{width:64px;height:64px;right:30px;bottom:30px}.cafe-expand svg{width:30px;height:30px}}
@media(max-width:900px){.cafe-intro{grid-template-columns:1fr;gap:24px}.cafe-intro-copy{max-width:600px}.cafe-intro h2{font-size:clamp(36px,6vw,54px)}.cafe-shot{flex-basis:64%}.cafe-details{gap:24px}.cafe-details h3{font-size:23px}.cafe-invitation{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){
 .cafe-book{width:100%;box-sizing:border-box;justify-content:space-between}
 .cafe-about{padding-block:56px;--cafe-gap:14px}.cafe-intro{gap:22px;margin-bottom:28px}.cafe-intro .eyebrow{margin-bottom:16px;font-size:10px}.cafe-intro h2{font-size:clamp(30px,7.6vw,44px)}.cafe-intro-copy p{font-size:16px;margin-bottom:20px}.cafe-book{font-size:14px;min-height:52px}
 .cafe-shot{flex-basis:86%}.cafe-shot-caption{font-size:18px;padding-top:14px}.cafe-shot-caption small{font-size:10px}.cafe-expand{bottom:14px;right:14px}
 .cafe-gallery-toolbar{gap:16px;align-items:center;margin-top:18px}.cafe-gallery-toolbar>p{font-size:11px}.cafe-arrow{width:48px;height:48px;border-radius:14px;padding:10px}.cafe-arrow svg{width:26px;height:22px}.cafe-gallery-navigation{gap:8px}
 .cafe-details{grid-template-columns:1fr;gap:28px;margin-top:36px}.cafe-details article{padding-top:20px}.cafe-details h3{font-size:27px;margin:16px 0 14px}.cafe-details h3 br{display:none}.cafe-details p{font-size:15px}.cafe-details .cafe-detail-note{margin-top:14px}.cafe-inline-link{margin-top:12px}.cafe-invitation{padding:22px;gap:20px;margin-top:32px}.cafe-invitation a{font-size:21px;gap:12px}.cafe-invitation p{font-size:25px}
 #cafe-gallery-dialog{padding:12px 12px 20px}#cafe-gallery-dialog[open]{gap:14px}.cafe-view-top{font-size:9px;letter-spacing:.07em}.cafe-view-close{width:44px;height:44px}.cafe-view-layout{grid-template-columns:1fr 1fr;gap:14px}.cafe-view-figure{grid-row:1;grid-column:1/-1;width:min(100%,calc(100dvh - 310px))}.cafe-view-stage{border-radius:18px}.cafe-view-layout>.cafe-arrow:first-child{grid-row:2;grid-column:1;justify-self:end}.cafe-view-layout>.cafe-arrow:last-child{grid-row:2;grid-column:2;justify-self:start}#cafe-gallery-dialog h2{font-size:18px}#cafe-view-counter{font-size:12px}.cafe-view-thumbs{gap:8px}.cafe-view-thumbs button{width:52px;height:52px}#cafe-gallery-dialog .cafe-view-note{font-size:10px}
}
@media(max-height:600px){.cafe-view-figure{width:min(100%,400px)}.cafe-view-layout{max-width:650px}.cafe-view-top{position:sticky;top:0;z-index:2;background:#181c20}.cafe-view-thumbs{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.cafe-about *,.cafe-about *:before,#cafe-gallery-dialog *{transition:none!important;animation:none!important}.cafe-shot:hover .cafe-shot-image>img,.cafe-shot:hover .cafe-shot-image>.cafe-original-photo{transform:none}}
