:root{--bean-yellow:#ffe600;--bean-pink:#ff3e9e;--bean-blue:#45c9ff;--bean-paper:#f5f1e8;--bean-ink:#080808}
.beans-shell{max-width:1380px;padding-bottom:0}
.topnav .beans-link{background:var(--bean-yellow);color:var(--bean-ink);border:2px solid var(--bean-ink);padding:7px 9px;text-decoration:none}
.beans-hero{min-height:610px;background:var(--bean-ink);color:#fffdf7;border:2px solid var(--bean-ink);display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,.7fr);gap:56px;align-items:center;padding:72px clamp(28px,6vw,92px);position:relative;overflow:hidden}
.beans-hero:before{content:"";position:absolute;width:420px;height:420px;border:58px solid var(--bean-pink);border-radius:50%;right:-170px;top:-210px;opacity:.72}
.beans-hero:after{content:"";position:absolute;width:190px;height:190px;background:var(--bean-blue);transform:rotate(19deg);left:-130px;bottom:-105px}
.beans-hero-copy,.match-explainer{position:relative;z-index:1}
.beans-hero .eyebrow{color:var(--bean-yellow)}
.beans-hero h1{font-size:clamp(44px,6.3vw,84px);line-height:.98;letter-spacing:-.06em;max-width:960px;margin:14px 0 26px}
.beans-hero h1 em{display:inline-block;background:var(--bean-yellow);color:var(--bean-ink);font-style:normal;padding:7px 12px 11px;line-height:1.05;margin-top:15px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.beans-hero-copy>p:not(.eyebrow){max-width:750px;color:#d4d0c8;font-size:18px;line-height:1.65}
.beans-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}
.beans-hero-actions a{text-decoration:none}
.match-explainer{background:var(--bean-paper);color:var(--bean-ink);border:2px solid var(--bean-ink);box-shadow:12px 12px 0 var(--bean-pink);padding:30px;transform:rotate(1.5deg)}
.match-explainer-kicker{display:inline-block;background:var(--bean-blue);border:1.5px solid var(--bean-ink);font-weight:900;font-size:12px;letter-spacing:.1em;padding:6px 9px}
.match-explainer>strong{display:block;font-size:98px;letter-spacing:-.08em;line-height:1;margin:20px 0 8px}
.match-explainer>strong small{font-size:36px}
.match-explainer p{font-size:16px;line-height:1.45;font-weight:700}
.match-explainer>small{display:block;border-top:1px solid var(--bean-ink);padding-top:14px;line-height:1.4;color:#55514b}
.beans-passport{margin:0;border:2px solid var(--bean-ink);border-top:0;background:var(--bean-yellow);padding:20px clamp(24px,5vw,72px);display:flex;justify-content:space-between;gap:20px;align-items:center}
.beans-passport>div{display:flex;gap:14px;align-items:center}
.beans-passport-dot{width:14px;height:14px;background:var(--bean-pink);border:2px solid var(--bean-ink);border-radius:50%;box-shadow:4px 4px 0 var(--bean-ink)}
.beans-passport strong{font-size:16px}
.beans-passport p{margin:4px 0 0;font-size:13px}
.beans-passport .secondary{white-space:nowrap;text-decoration:none}
.beans-catalog{background:var(--bean-paper);border-left:2px solid var(--bean-ink);border-right:2px solid var(--bean-ink);padding:72px clamp(24px,5vw,72px) 90px}
.beans-section-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:30px}
.beans-section-heading h2,.beans-methodology h2{font-size:clamp(34px,4.5vw,58px);line-height:1;letter-spacing:-.045em;margin:8px 0 0;max-width:760px}
.beans-section-heading>p{font-weight:900;background:#fff;border:2px solid var(--bean-ink);padding:10px 12px;box-shadow:5px 5px 0 var(--bean-blue)}
.beans-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(5,minmax(135px,1fr));gap:10px;margin-bottom:34px}
.beans-filters label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.beans-filters input,.beans-filters select{min-width:0;background:#fffdf7;border:2px solid var(--bean-ink);border-radius:0;padding:12px 11px;font:700 14px/1.2 inherit;color:var(--bean-ink);height:47px}
.beans-filters input:focus,.beans-filters select:focus{outline:3px solid var(--bean-blue);outline-offset:1px}
.beans-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.bean-card{background:#fffdf7;border:2px solid var(--bean-ink);display:flex;flex-direction:column;min-width:0;box-shadow:7px 7px 0 var(--bean-ink);transition:transform .18s ease,box-shadow .18s ease}
.bean-card:hover{transform:translate(-3px,-3px);box-shadow:11px 11px 0 var(--bean-pink)}
.bean-card-media{height:245px;background:linear-gradient(145deg,var(--bean-yellow),var(--bean-pink));border-bottom:2px solid var(--bean-ink);position:relative;overflow:hidden;display:grid;place-items:center}
.bean-card-media img{width:100%;height:100%;object-fit:cover}
.bean-card-placeholder{font-size:66px;font-weight:950;letter-spacing:-.08em;transform:rotate(-8deg);text-align:center;padding:20px;line-height:.85}
.bean-card-badges{position:absolute;left:12px;top:12px;right:12px;display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.bean-badge{background:#fff;border:1.5px solid var(--bean-ink);font-size:10px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;padding:6px 8px}
.bean-badge.featured{background:var(--bean-yellow)}
.bean-badge.soldout{background:#d7d2ca}
.bean-badge.soon{background:var(--bean-blue)}
.bean-match-ring{--score:0;position:absolute;right:14px;bottom:14px;width:88px;height:88px;border-radius:50%;background:conic-gradient(var(--bean-yellow) calc(var(--score)*1%),#fff calc(var(--score)*1%));border:2px solid var(--bean-ink);display:grid;place-items:center;box-shadow:4px 4px 0 var(--bean-ink)}
.bean-match-ring:after{content:"";position:absolute;width:62px;height:62px;border-radius:50%;background:var(--bean-ink)}
.bean-match-ring strong{position:relative;z-index:1;color:#fff;font-size:23px;letter-spacing:-.05em}
.bean-match-ring strong small{font-size:11px}
.bean-match-ring.no-score{background:#fff}
.bean-card-body{padding:20px;display:flex;flex-direction:column;flex:1}
.bean-card-brand{font-size:11px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;color:#6c6861;margin:0 0 5px}
.bean-card h3{font-size:28px;line-height:1;letter-spacing:-.04em;margin:0 0 10px}
.bean-card-origin{margin:0;font-size:14px;line-height:1.45;min-height:40px}
.bean-card-notes{font-size:14px;font-weight:800;margin:14px 0 12px;padding-left:11px;border-left:5px solid var(--bean-pink)}
.bean-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}
.bean-card-tags span{background:#efeae1;border:1px solid var(--bean-ink);padding:5px 7px;font-size:10px;font-weight:850}
.bean-card-data{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid var(--bean-ink);border-bottom:1px solid var(--bean-ink);margin:16px 0;padding:12px 0}
.bean-card-data div{display:flex;flex-direction:column;gap:2px}
.bean-card-data span{font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#6d6963}
.bean-card-data strong{font-size:14px}
.bean-price-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-bottom:14px}
.bean-price-row strong{font-size:25px;letter-spacing:-.04em}
.bean-price-row span{font-size:12px;color:#625e57}
.bean-card-actions{display:grid;grid-template-columns:1fr auto;gap:8px}
.bean-card-actions button,.bean-card-actions a{min-height:45px;display:flex;align-items:center;justify-content:center;text-decoration:none}
.bean-card-actions .bean-buy{padding-inline:14px}
.bean-card-actions .disabled{pointer-events:none;opacity:.45}
.beans-loading{border:2px dashed var(--bean-ink);background:#fffdf7;padding:56px;text-align:center}
.beans-loading i{display:inline-block;width:16px;height:16px;border:2px solid var(--bean-ink);background:var(--bean-yellow);margin:0 4px;animation:beanPulse 1s infinite alternate}
.beans-loading i:nth-child(2){background:var(--bean-pink);animation-delay:.18s}.beans-loading i:nth-child(3){background:var(--bean-blue);animation-delay:.36s}
@keyframes beanPulse{to{transform:translateY(-12px) rotate(15deg)}}
.beans-loading p{font-weight:850;margin:22px 0 0}
.beans-empty,.beans-error{text-align:center;background:#fffdf7;border:2px solid var(--bean-ink);padding:70px 24px}
.beans-empty>span{font-size:70px}.beans-empty h3,.beans-error h3{font-size:30px;margin:12px 0}.beans-empty p,.beans-error p{max-width:560px;margin:0 auto 24px;line-height:1.6}
.beans-methodology{background:var(--bean-ink);color:#fffdf7;border:2px solid var(--bean-ink);padding:72px clamp(24px,5vw,72px);display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}
.beans-methodology .eyebrow{color:var(--bean-yellow)}
.beans-methodology ol{list-style:none;margin:0;padding:0;display:grid;gap:13px}
.beans-methodology li{border:1px solid #817e78;padding:20px;display:grid;grid-template-columns:52px 1fr;gap:14px}
.beans-methodology li>span{font-size:14px;color:var(--bean-yellow);font-weight:950}
.beans-methodology li b{font-size:19px}.beans-methodology li p{color:#c9c5bd;line-height:1.5;margin:7px 0 0}
.bean-dialog{width:min(1060px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:2px solid var(--bean-ink);border-radius:0;background:var(--bean-paper);box-shadow:14px 14px 0 var(--bean-pink);overflow:auto}
.bean-dialog::backdrop{background:rgba(0,0,0,.78)}
.bean-dialog-close{position:sticky;float:right;top:12px;right:12px;z-index:5;width:44px;height:44px;background:#fff;border:2px solid var(--bean-ink);font-size:28px;font-weight:900;cursor:pointer}
.bean-detail-hero{display:grid;grid-template-columns:minmax(280px,.8fr) 1.2fr;border-bottom:2px solid var(--bean-ink)}
.bean-detail-media{min-height:390px;background:linear-gradient(145deg,var(--bean-yellow),var(--bean-pink));display:grid;place-items:center;border-right:2px solid var(--bean-ink);overflow:hidden}
.bean-detail-media img{width:100%;height:100%;object-fit:cover}.bean-detail-media .bean-card-placeholder{font-size:92px}
.bean-detail-copy{padding:48px 38px 34px}
.bean-detail-copy h2{font-size:clamp(38px,5vw,64px);line-height:.94;letter-spacing:-.055em;margin:8px 0 15px}
.bean-detail-copy>p{line-height:1.55}
.bean-detail-meta{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.bean-detail-meta span{border:1px solid var(--bean-ink);padding:6px 8px;background:#fff;font-size:12px;font-weight:800}
.bean-detail-price{display:flex;align-items:baseline;gap:10px;margin:20px 0}.bean-detail-price strong{font-size:31px}.bean-detail-price span{color:#666}
.bean-detail-actions{display:flex;gap:9px;flex-wrap:wrap}.bean-detail-actions a,.bean-detail-actions button{text-decoration:none}
.bean-detail-body{padding:34px 38px 50px;display:grid;gap:28px}
.bean-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.bean-detail-stat{background:#fff;border:2px solid var(--bean-ink);padding:18px}.bean-detail-stat span{display:block;font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.bean-detail-stat strong{display:block;font-size:34px;margin-top:6px}.bean-detail-stat small{color:#666}
.bean-detail-section{background:#fffdf7;border:2px solid var(--bean-ink);padding:24px}
.bean-detail-section h3{font-size:25px;margin:0 0 16px}
.bean-reasons{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bean-reasons li{padding:11px 13px 11px 38px;background:#f1ede4;position:relative;line-height:1.45}.bean-reasons li:before{content:"✓";position:absolute;left:13px;font-weight:950;color:#a40054}
.bean-sensory-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px}.bean-sensory-row{display:grid;grid-template-columns:95px 1fr 24px;gap:10px;align-items:center;font-size:12px;font-weight:850}.bean-sensory-track{height:12px;border:1px solid var(--bean-ink);background:#eee9df}.bean-sensory-fill{height:100%;background:var(--bean-yellow);border-right:1px solid var(--bean-ink)}
.bean-recipes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bean-recipe{border:1.5px solid var(--bean-ink);padding:16px;background:#fff}.bean-recipe h4{font-size:18px;margin:0 0 10px}.bean-recipe p{font-size:12px;line-height:1.45}.bean-recipe button{width:100%;margin-top:9px}
.bean-reviews{display:grid;gap:10px}.bean-review{border-left:6px solid var(--bean-blue);background:#f0ece3;padding:14px}.bean-review-head{display:flex;justify-content:space-between;gap:12px;font-size:11px;font-weight:900}.bean-review p{margin:8px 0 0;line-height:1.45}.bean-review em{font-style:normal;color:#7a3a5a;font-weight:800}
.bean-no-data{margin:0;color:#68645d;line-height:1.5}
.beans-demo-banner{background:var(--bean-blue);border:2px solid var(--bean-ink);padding:10px;text-align:center;font-weight:900;margin-bottom:20px}
.bean-reservation-dialog{width:min(620px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:0;border:2px solid var(--bean-ink);border-radius:0;background:var(--bean-paper);box-shadow:12px 12px 0 var(--bean-blue);overflow:auto}
.bean-reservation-dialog::backdrop{background:rgba(0,0,0,.78)}
.bean-reservation-content{padding:clamp(26px,5vw,48px)}
.bean-reservation-content h2{font-size:clamp(34px,5vw,54px);line-height:.94;letter-spacing:-.05em;margin:8px 0 20px}
.bean-reservation-summary{display:grid;grid-template-columns:90px 1fr;gap:15px;border:2px solid var(--bean-ink);background:#fff;padding:12px;margin:18px 0}
.bean-reservation-summary img,.bean-reservation-summary>span{width:90px;height:110px;object-fit:cover;background:linear-gradient(145deg,var(--bean-yellow),var(--bean-pink));display:grid;place-items:center;font-weight:950}
.bean-reservation-summary h3{margin:4px 0 8px;font-size:23px}.bean-reservation-summary p{margin:3px 0;color:#666;font-size:12px}
.bean-reservation-profile{background:#fff5a8;border:1.5px solid var(--bean-ink);padding:14px;margin:15px 0;line-height:1.5}
.bean-reservation-profile b{display:block}.bean-reservation-profile small{display:block}
.bean-reservation-form{display:grid;gap:14px}.bean-reservation-form label{display:grid;gap:7px;font-size:12px;font-weight:900}
.bean-reservation-form input{border:2px solid var(--bean-ink);border-radius:0;background:#fff;padding:11px;font:inherit}
.bean-reservation-actions{display:flex;gap:9px;flex-wrap:wrap}.bean-reservation-actions>*{text-decoration:none}
.bean-reservation-status{min-height:20px;font-size:12px;font-weight:850}.bean-reservation-status.error{color:#a0003c}.bean-reservation-status.success{color:#17631e}
.bean-reservation-success{border:2px solid var(--bean-ink);background:var(--bean-yellow);padding:20px}.bean-reservation-success h3{font-size:28px;margin:0 0 10px}.bean-reservation-success p{line-height:1.5}
@media(max-width:1050px){.beans-hero{grid-template-columns:1fr;gap:34px}.match-explainer{max-width:520px}.beans-filters{grid-template-columns:repeat(3,1fr)}.beans-search{grid-column:span 2}.beans-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.beans-methodology{grid-template-columns:1fr}.bean-recipes{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.beans-hero{padding:48px 22px;min-height:auto}.beans-hero h1{font-size:43px;line-height:1.02}.beans-hero h1 em{margin-top:12px;padding-top:8px;padding-bottom:10px}.match-explainer>strong{font-size:78px}.beans-passport{align-items:flex-start;flex-direction:column}.beans-catalog{padding:52px 18px 70px}.beans-section-heading{align-items:flex-start;flex-direction:column}.beans-filters{grid-template-columns:1fr 1fr}.beans-search{grid-column:1/-1}.beans-grid{grid-template-columns:1fr}.beans-methodology{padding:52px 20px;gap:34px}.bean-detail-hero{grid-template-columns:1fr}.bean-detail-media{min-height:280px;border-right:0;border-bottom:2px solid var(--bean-ink)}.bean-detail-copy,.bean-detail-body{padding-left:20px;padding-right:20px}.bean-detail-stats{grid-template-columns:1fr}.bean-sensory-grid{grid-template-columns:1fr}.bean-recipes{grid-template-columns:1fr}.bean-dialog{box-shadow:7px 7px 0 var(--bean-pink)}}
@media(max-width:450px){.beans-filters{grid-template-columns:1fr}.beans-search{grid-column:auto}.bean-card-media{height:220px}.bean-card-actions{grid-template-columns:1fr}.bean-detail-actions{display:grid}.bean-detail-actions>*{width:100%}.bean-reservation-summary{grid-template-columns:72px 1fr}.bean-reservation-summary img,.bean-reservation-summary>span{width:72px;height:96px}.bean-reservation-actions{display:grid}.bean-reservation-actions>*{width:100%}}
