body.has-announcement{--news-height:24.5px}
@media(min-width:640px){body.has-announcement{--news-height:26px}}
.announcement{position:fixed;top:0;left:0;right:0;height:var(--news-height);display:flex;background:#252a26;color:#fff;z-index:21;font-size:11px;letter-spacing:.04em;overflow:hidden}.announcement-window{flex:1;overflow:hidden}.announcement-track{display:flex;width:max-content;height:var(--news-height);animation:news-travel 24s linear infinite}.announcement-group{display:flex;align-items:center;gap:60px;padding-right:60px;flex:none}.announcement a{white-space:nowrap;display:flex;align-items:center;height:var(--news-height);padding:0}.announcement a::before{content:'•';margin-right:20px;opacity:.5}.announcement-toggle{width:44px;flex:none;background:#252a26;color:white;border-left:1px solid #ffffff30;font-size:16px}.announcement.paused .announcement-track,.announcement:focus-within .announcement-track,.announcement:hover .announcement-track{animation-play-state:paused}@keyframes news-travel{to{transform:translateX(-50%)}}body.has-announcement header{top:calc(0px + var(--news-height))}body.has-announcement main{padding-top:calc(88px + var(--news-height))}.product-picture{width:100%;padding:0;text-align:left;color:inherit}.product-copy .product-price{font-size:16px;letter-spacing:.01em;margin:12px 0 20px}.product-price small{font-size:10px;color:#686868}.product-copy .product-read{border:0;border-bottom:1px solid #ddd;border-radius:0;text-align:left;padding:12px 0;margin:0 0 16px;font-size:12px;width:100%;display:flex;justify-content:space-between}.coffee-result .action-button+.action-button{margin-top:8px}.coffee-result .taste-summary{display:flex;gap:8px;flex-wrap:wrap;font-size:11px}.product-dialog{inset:0;margin:auto;padding:0;width:min(960px,94vw);height:auto;max-height:90svh;border-radius:4px;overflow:auto;background:#fff}.product-dialog::backdrop{background:#17201bb3;backdrop-filter:blur(5px)}.product-dialog-close{position:sticky;top:0;margin-left:auto;display:block;padding:15px 22px;min-height:48px;background:#fff;z-index:2;font-size:12px}.product-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:0 36px 40px}.product-detail-grid>img{width:100%;aspect-ratio:1;object-fit:contain;background:#f4f3ef}.product-dialog h2{font-size:25px;line-height:1.5;margin:16px 0}.product-dialog p{font-size:14px;line-height:1.9;white-space:pre-line;margin:18px 0}.product-dialog dl{font-size:13px;line-height:1.8}.product-dialog dl>div{display:grid;grid-template-columns:80px 1fr;padding:10px 0;border-bottom:1px solid #eee}.product-dialog dd{margin:0}.product-dialog .action-button{font-size:13px;display:flex;width:100%;margin:12px 0}.product-dialog .detail-note{font-size:11px;color:#666}.product-dialog .detail-price{font-size:18px}.product-dialog .detail-story{max-height:300px;overflow:auto;padding-right:12px}.product-dialog .detail-story:empty{display:none}body.product-open{overflow:hidden}@media(max-width:700px){body.has-announcement main{padding-top:calc(72px + var(--news-height))}.announcement{font-size:10px}.announcement-group{gap:40px;padding-right:40px}.product-detail-grid{grid-template-columns:1fr;gap:20px;padding:0 22px 30px}.product-detail-grid>img{max-height:260px}.product-dialog{width:calc(100vw - 20px);max-height:92svh}.product-dialog h2{font-size:23px}.product-dialog .detail-story{max-height:none}.product-copy .product-price{font-size:14px}.product-copy .product-price small{display:block}.product-picture .photo-open{font-size:11px;width:auto;min-width:48px;border-radius:2px;padding:0 6px}}
@media(prefers-reduced-motion:reduce){.announcement-track{animation:none}.announcement-window{overflow-x:auto}.announcement-group[aria-hidden]{display:none}}

html{scroll-padding-top:145px}body.has-announcement .opening-pin,body.has-announcement .process-pin{top:calc(88px + var(--news-height));height:calc(100svh - 88px - var(--news-height))}body.has-announcement .choose-page{padding-top:calc(150px + var(--news-height))}body.has-announcement #chooser{scroll-margin-top:calc(110px + var(--news-height))}body.has-announcement.menu-open #menuButton{top:calc(22px + var(--news-height))}.product-dialog .detail-story{max-height:none;overflow:visible}.product-dialog h3{font-size:16px;font-weight:500;margin:26px 0 12px}.product-dialog .detail-story p{margin:12px 0}.product-dialog dl>div{grid-template-columns:85px minmax(0,1fr)}.product-dialog dd{overflow-wrap:anywhere}@media(max-width:700px){html{scroll-padding-top:125px}body.has-announcement .opening-pin,body.has-announcement .process-pin{top:calc(72px + var(--news-height));height:calc(100svh - 72px - var(--news-height))}body.has-announcement .choose-page{padding-top:calc(112px + var(--news-height))}body.has-announcement.menu-open #menuButton{top:calc(14px + var(--news-height))}}

/* Keep product details on one vertical scroll surface, including long API text. */
.product-dialog{box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior-x:none;touch-action:pan-y pinch-zoom;max-width:calc(100vw - 20px)}
.product-dialog *{box-sizing:border-box}
.product-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0}
.product-detail-grid>*{min-width:0;max-width:100%}
.product-dialog h2,.product-dialog p,.product-dialog dd,.product-dialog a{overflow-wrap:anywhere}
.product-dialog .action-button{white-space:normal;min-width:0;max-width:100%}
.product-dialog .detail-story{padding-right:0}
.coffee-result div.product-picture{cursor:default;transform:none}
@media(max-width:700px){.product-detail-grid{grid-template-columns:minmax(0,1fr)}}

/* Purchase choices start below the photo and follow the reading position. */
.product-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
.product-dialog .product-dialog-close{position:relative;flex:0 0 auto}
.product-detail-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;position:relative}
.product-detail-scroll>img{display:block;width:100%;height:300px;object-fit:contain;transform:none!important;margin:0 auto;background:#f4f3ef}
.product-dialog .product-detail-grid{display:block;padding:8px 36px 36px}
.product-purchase-bar{position:sticky;top:0;padding:14px 24px;background:#fff;border-bottom:1px solid #ddd;z-index:3}
.product-purchase-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.product-dialog .product-purchase-actions .action-button{margin:0;min-height:52px;padding:12px;justify-content:center;text-align:center;line-height:1.6}
@media(max-width:700px){.product-detail-scroll>img{height:240px}.product-dialog .product-detail-grid{padding:8px 22px 30px}.product-purchase-bar{padding:12px 14px}.product-purchase-actions{gap:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.product-dialog .product-purchase-actions .action-button{font-size:12px;padding:10px 6px}}


@media(max-width:639px){body.has-announcement{--news-height:24.5px}.announcement .announcement-group a{font-size:11px;font-weight:500;letter-spacing:.1em;line-height:1.5}.announcement-track{animation-duration:7.58s}}

@media(min-width:640px) and (max-width:700px){body.has-announcement{--news-height:26.0px}.announcement .announcement-group a{font-size:12px;font-weight:500;letter-spacing:.1em;line-height:1.5}.announcement-track{animation-duration:7.54s}}

@media(min-width:701px){body.has-announcement{--news-height:26.0px}.announcement .announcement-group a{font-size:12px;font-weight:500;letter-spacing:.1em;line-height:1.5}.announcement-track{animation-duration:8.09s}}

body.has-announcement .announcement{padding:0;margin:0;min-height:0;box-sizing:border-box;height:var(--news-height)}.announcement-window,.announcement-group{height:100%;padding-block:0;box-sizing:border-box}.announcement .announcement-group a{margin:0;padding:0;box-sizing:border-box}
