/* Explicit text colours per surface: avoids inherited colours losing contrast. */
body,.site-header,.hero,.today,.upload-section,.coffee-hub,.tips,.deals-section,.archive{color:#163547}
.hero h1,.hero p,.hero-scroll,.section-heading h2,.section-heading time,.archive-count,.upload-copy h2,.upload-copy p,.drop-zone strong,.drop-zone small,.name-field,.upload-message,.today-coffee-copy h3,.today-coffee-copy time,.calculator-card,.calculator-card h3,.calculator-card p,.calculator-card label,.freshness-card,.freshness-card h3,.freshness-card p,.tips-grid h3,.tips-grid p,.deal-copy h3,.deal-price,.deals-empty,.empty-state{color:#163547}
.hero .eyebrow,.section-heading .eyebrow,.upload-copy .eyebrow,.calculator-card .eyebrow,.freshness-card .eyebrow,.tips .eyebrow,.deals-section .eyebrow{color:#a34f35}
.today-coffee-copy p,.hub-intro,.section-heading time,.archive-count{color:#355b6a}
.guide-card,.guide-card h3,.guide-card p,.guide-card li{color:#fffdf9!important}.guide-card .eyebrow{color:#ffc077!important}.guide-card .guide-rule{color:#e3f0f0!important}
.taste-section,.taste-section .section-heading h2,.taste-section .bean-card,.taste-section .bean-card h3,.taste-section .bean-card p,.taste-section .bean-card li{color:#fffdf9}.taste-section .eyebrow,.taste-section .bean-card .eyebrow{color:#ffc077}.taste-section .hub-intro{color:#d9edf1}.taste-section .section-heading{border-color:rgba(255,255,255,.38)}
.taste-choice{color:#fffdf9}.taste-choice.active,.taste-choice:hover{color:#163547}
.bean-visual{overflow:hidden;background:#efaa5a}.bean-visual img{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .2s ease,transform .35s ease}.bean-visual img.changing{opacity:.35;transform:scale(1.06)}
.deal-store,.tips-grid span,.name-field b{color:#a34f35}
.lightbox,.lightbox-caption,.lightbox-caption strong,.lightbox-caption p,.lightbox-caption span{color:#fffdf9}

/* A compact daily gallery that keeps the focus above the fold. */
 .today{padding-top:16px;padding-bottom:48px;overflow:hidden;animation:today-main-box-open .24s cubic-bezier(.2,.75,.15,1) both}.today.is-empty-today{padding-top:12px;padding-bottom:18px}.today .section-heading{margin-bottom:16px}.today-gallery{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));justify-content:start;gap:17px}.today-coffee{width:100%;max-width:420px}.today-coffee-photo{aspect-ratio:4/3}.today-coffee-copy{padding:18px}.today-coffee-copy h3{font-size:27px;line-height:1.12;overflow-wrap:anywhere}.today-coffee-copy p{min-height:0;margin:9px 0;font-size:16px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.today-coffee-copy time{padding-top:10px;font-size:14px}.today-gallery .featured-placeholder{grid-column:1/-1;width:100%;max-width:none}
@keyframes today-main-box-open { from { opacity:0; transform:translateY(14px) scaleY(.985);} to { opacity:1; transform:translateY(0) scaleY(1);} }
@media(max-width:700px){.today{padding-top:20px;padding-bottom:36px}.today-gallery{grid-template-columns:1fr;gap:14px}.today-coffee{display:grid;grid-template-columns:42% 58%}.today-coffee-photo{aspect-ratio:auto;min-height:178px}.today-coffee-copy{display:flex;flex-direction:column;justify-content:center}.today-coffee-copy h3{font-size:22px}.today-coffee-copy p{font-size:14px}.today-coffee-copy time{margin-top:4px}.featured-placeholder{display:block}.featured-placeholder .featured-photo{display:none}}

/* Compact hero: text sits on the bright side of the image, not over the photo. */
.hero{min-height:160px;background:none}.hero:before{content:'';position:absolute;inset:0;z-index:-2;background-image:url('greek-morning-coffee.png');background-repeat:no-repeat;background-position:right bottom;background-size:min(70vw,1000px) auto;transform:scaleX(-1);transform-origin:center}.hero-shade{background:linear-gradient(90deg,rgba(246,239,227,.08) 0%,rgba(246,239,227,.36) 18%,rgba(246,239,227,.72) 42%,rgba(246,239,227,.93) 58%,rgba(246,239,227,.99) 100%)}.hero-copy{width:min(480px,42vw);margin-right:clamp(32px,10vw,160px);margin-left:auto;padding:10px 0;text-align:right}.hero h1{margin:3px 0 5px;color:#163547;font-size:clamp(40px,4.5vw,60px)}.hero h1 i{color:#2b6e8f}.hero p{margin:0;color:#163547;font-size:16px;font-weight:700;line-height:1.2}.hero-scroll{display:none}
.upload-section{scroll-margin-top:82px}
@media(max-width:700px){.hero{min-height:165px;background-position:32% center}.hero-shade{background:linear-gradient(90deg,rgba(246,239,227,.7),rgba(246,239,227,.94))}.hero-copy{width:100%;margin:0;padding:14px 0}.hero h1{font-size:37px;margin:0 0 5px}.hero p{max-width:280px;font-size:14px}}

/* Keep the daily image, its caption, and its like action compact at every size. */
.today-coffee > .like-control{min-width:0!important;margin:9px 12px 12px!important;padding:6px 10px!important;font-size:13px!important;box-shadow:none!important}.today-coffee > .like-control .like-heart{font-size:17px}
.today-gallery,.today-coffee,.today-coffee > button,.today-coffee-photo,.today-coffee-copy{min-width:0;max-width:100%}.today-coffee-photo{overflow:hidden}

/* Show the complete selected image immediately, without a conversion/loading state. */
.drop-zone[hidden]{display:none}.drop-mobile-label{display:none}.preview:not([hidden]){display:grid;place-items:center;min-height:230px;margin-top:0;border:2px dashed rgba(43,110,143,.3);background:#fffdf9}.preview:not([hidden]) img{width:100%;max-height:320px;object-fit:contain}.preview:not([hidden]) + .name-field{margin-top:14px}
.drop-zone.is-processing{pointer-events:none;opacity:.72}.drop-zone.is-processing .drop-icon{animation:upload-pulse .8s ease-in-out infinite alternate}.drop-zone.is-processing strong,.drop-zone.is-processing small,.drop-zone.is-processing .drop-mobile-label{visibility:hidden}@keyframes upload-pulse{to{transform:scale(1.12);opacity:.45}}

/* Mobile header and daily cards: reserve space for every line of copy. */
.menu-toggle{display:none}
@media(max-width:700px){.drop-zone strong,.drop-zone small{display:none}.drop-zone .drop-mobile-label{display:block;margin-top:7px;color:#58717d;font:800 17px/1.3 Assistant,Arial,sans-serif}}
.deal-coupon{display:block;width:100%;margin-top:12px;padding:9px 10px;border:1px dashed #a34f35;border-radius:6px;background:#fff7ec;color:#7b3927;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;transition:.18s}.deal-coupon:hover{background:#f3dfc5;transform:translateY(-1px)}
.deal-image-link{display:block;color:inherit;text-decoration:none}.deal-store{display:block;width:100%;text-align:left;direction:ltr}
.deals-load-more{grid-column:1/-1;justify-self:center;margin-top:10px;padding:12px 22px;border:1px solid var(--blue);border-radius:999px;background:#fffdf9;color:var(--blue);font:800 16px Assistant,Arial,sans-serif;cursor:pointer;transition:.18s}.deals-load-more:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
.deals-loading-animated{display:flex;align-items:center;justify-content:center;gap:11px;min-height:90px}.deals-loader{width:26px;height:26px;border:3px solid rgba(43,110,143,.2);border-top-color:var(--blue);border-radius:50%;animation:deals-spin .75s linear infinite}@keyframes deals-spin{to{transform:rotate(360deg)}}
 .site-header nav a.deals-fresh{position:relative;color:var(--terracotta);animation:deals-nav-glow 1.65s ease-in-out infinite}.site-header nav a.deals-fresh:after{content:'';position:absolute;top:-5px;left:-9px;width:8px;height:8px;border-radius:50%;background:#efaa5a;box-shadow:0 0 0 0 rgba(239,170,90,.7);animation:deals-new-dot 1.65s ease-out infinite}.deals-header-link.deals-fresh{position:relative;color:var(--terracotta);animation:deals-nav-glow 1.65s ease-in-out infinite}.deals-header-link.deals-fresh:after{content:'';position:absolute;top:-5px;left:-9px;width:8px;height:8px;border-radius:50%;background:#efaa5a;box-shadow:0 0 0 0 rgba(239,170,90,.7);animation:deals-new-dot 1.65s ease-out infinite}@keyframes deals-nav-glow{0%,100%{text-shadow:0 0 0 rgba(201,110,77,0)}50%{text-shadow:0 0 12px rgba(201,110,77,.7)}}@keyframes deals-new-dot{0%{box-shadow:0 0 0 0 rgba(239,170,90,.68)}75%,100%{box-shadow:0 0 0 8px rgba(239,170,90,0)}}@media(prefers-reduced-motion:reduce){.site-header nav,.today,.site-header nav a.deals-fresh,.site-header nav a.deals-fresh:after,.deals-header-link.deals-fresh,.deals-header-link.deals-fresh:after{animation:none!important;transition:none!important}}
.deals-header-link{display:none}
@media(max-width:700px){
  .site-header{height:58px;position:sticky;padding-inline:14px;gap:8px}
  .brand{gap:7px}.brand-mark{font-size:25px}.brand strong{font-size:14px}.brand em{font-size:11px}
  .upload-link{padding:8px 10px;font-size:12px}
  .site-header .upload-link{margin-right:auto}
  .menu-toggle{display:inline-grid;place-items:center;flex:0 0 auto;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:9px;background:#fffdf9;color:var(--ink);font-size:24px;cursor:pointer}
  .deals-header-link{display:inline-grid;align-items:center;justify-content:center;height:40px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fffdf9;color:var(--ink);font:800 14px Assistant,Arial,sans-serif;text-decoration:none}
  #dealsNavLink{display:none}
  .site-header nav{
    display:flex;
    position:absolute;
    top:calc(100% + 8px);
    right:16px;
    left:16px;
    z-index:2;
    flex-direction:column;
    gap:0;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:12px;
    background:#fffdf9;
    box-shadow:0 12px 30px rgba(22,53,71,.16);
    max-height:0;
    opacity:0;
    pointer-events:none;
    visibility:hidden;
    transform:translateY(-7px) scaleY(.96);
    transform-origin:top;
    transition:max-height .25s ease, opacity .2s ease, transform .2s ease, visibility .2s linear;
    will-change:max-height, opacity, transform;
  }
  .site-header nav.is-open{
    max-height:420px;
    opacity:1;
    pointer-events:auto;
    visibility:visible;
    transform:translateY(0) scaleY(1);
    animation: header-mainbox-open .2s ease-out;
  }
  @keyframes header-mainbox-open {
    from { opacity:0; transform:translateY(-7px) scaleY(.96); }
    to { opacity:1; transform:translateY(0) scaleY(1); }
  }
  .site-header nav a{padding:13px 16px;border-bottom:1px solid var(--line)}
  .site-header nav a:last-child{border-bottom:0}
  .upload-section{scroll-margin-top:58px}
  .hero{min-height:78px}
  .hero:before{background-position:right bottom}
  .hero-copy{width:100%;margin:0;padding:5px 18px}
  .hero h1{font-size:28px;line-height:.9;margin:0}
  .hero p{display:none}
  .today{padding-top:12px}
  .today.is-empty-today{padding-top:8px;padding-bottom:16px}
  .today .section-heading{margin-bottom:12px;padding-bottom:10px}
  .today-coffee{display:block}
  .today-coffee > button{display:grid;width:100%;grid-template-columns:42% minmax(0,1fr)}
  .today-coffee-photo{min-height:164px;aspect-ratio:auto}
  .today-coffee-copy{min-width:0;padding:15px}
  .today-coffee-copy h3{font-size:21px;line-height:1.12;overflow-wrap:anywhere}
  .today-coffee-copy p{display:block;margin:7px 0;font-size:14px;line-height:1.35}
  .today-coffee-copy time{font-size:12px}
  .today-coffee > .like-control{margin:8px 10px 10px!important}
  .preview:not([hidden]){min-height:205px}
  .preview:not([hidden]) img{max-height:250px}
}

/* Per-photo social actions and the threaded discussion panel. */
.photo-actions{display:flex;align-items:center;gap:8px;padding:9px 12px 12px}.photo-actions .like-control,.comment-control{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;margin:0!important;padding:6px 10px!important;border:1px solid rgba(22,53,71,.18);border-radius:999px;background:#fffdf9;color:#163547;font:800 13px Assistant,Arial,sans-serif;box-shadow:none!important;cursor:pointer;transition:.18s}.photo-actions .like-control:hover,.comment-control:hover{border-color:var(--blue);transform:translateY(-1px)}.photo-actions .like-control .like-heart{font-size:17px}.comment-icon{font-size:15px;line-height:1}.gallery-item .photo-actions{padding:9px 0 0}.gallery-item .photo-actions .like-control,.gallery-item .comment-control{background:var(--paper)}
.lightbox{overflow-y:auto;align-content:start;grid-template-rows:auto auto auto;padding-top:56px;padding-bottom:28px}.lightbox img{max-height:min(55vh,620px)}.lightbox-comments{width:min(680px,92vw);padding:19px 20px;border-radius:12px;background:#fffdf9;color:#163547;box-shadow:0 12px 28px rgba(0,0,0,.18)}.lightbox-comments h3{margin:0 0 14px;color:#163547;font:800 24px/1 Rubik,Arial,sans-serif}.comments-list{display:grid;gap:10px;max-height:360px;overflow:auto;padding-inline-end:4px}.comment-item{padding:12px;border-radius:8px;background:#edf5f4}.comment-item.comment-reply{margin-right:22px;background:#f8eee0}.comment-meta{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.comment-meta strong{color:#163547;font:800 15px Assistant,Arial,sans-serif}.comment-meta time{color:#55707d;font:600 12px Assistant,Arial,sans-serif;white-space:nowrap}.comment-item p{margin:7px 0;color:#163547;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.comment-reply-button,.comment-cancel-reply{padding:0;border:0;background:transparent;color:#2b6e8f;font:800 13px Assistant,Arial,sans-serif;cursor:pointer}.comments-empty{margin:0;color:#55707d}.comment-form{display:grid;grid-template-columns:1fr 1fr auto;gap:9px;margin-top:16px;padding-top:15px;border-top:1px solid rgba(22,53,71,.15)}.comment-form-title{grid-column:1/-1;margin:0;color:#163547;font-weight:800}.comment-cancel-reply{justify-self:start}.comment-form input,.comment-form textarea{width:100%;border:1px solid rgba(43,110,143,.32);border-radius:7px;background:#fff;color:#163547;padding:10px 11px;font:600 15px Assistant,Arial,sans-serif;outline:none}.comment-form textarea{grid-column:1/-1;resize:vertical}.comment-form input:focus,.comment-form textarea:focus{border-color:#2b6e8f;box-shadow:0 0 0 3px rgba(43,110,143,.12)}.comment-form button[type="submit"]{justify-self:start;border:0;border-radius:7px;background:#2b6e8f;color:#fff;padding:9px 14px;font:800 14px Assistant,Arial,sans-serif;cursor:pointer}.comment-form button[disabled]{opacity:.65;cursor:wait}.comment-status{grid-column:1/-1;min-height:18px;margin:0;color:#a34f35;font-size:13px}
.lightbox-brew-details{width:min(620px,92vw);margin:10px auto 0;padding:10px 12px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(12,35,52,.32)}
.lightbox-brew-details-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;color:#f4b56c;font:800 16px Rubik,Assistant,Arial,sans-serif;cursor:pointer;list-style:none}.lightbox-brew-details-title::-webkit-details-marker{display:none}.lightbox-brew-details-title::after{content:'+';display:grid;place-items:center;width:22px;height:22px;border:1px solid rgba(244,181,108,.5);border-radius:50%;font:800 18px/1 Assistant,Arial,sans-serif}.lightbox-brew-details[open] .lightbox-brew-details-title::after{content:'−'}
.lightbox-brew-details-title{margin:0;color:#f4b56c;font:800 16px Rubik,Assistant,Arial,sans-serif}
.lightbox-brew-details[open] .lightbox-brew-details-title{margin-bottom:8px}
.lightbox-brew-details-list{margin:0;padding:0;list-style:none;display:grid;gap:7px;color:#dbe8ec;font:600 14px Assistant,Arial,sans-serif}
.lightbox-brew-details-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;line-height:1.4}
.lightbox-brew-details-list li:not(:last-child){padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.15)}
.lightbox-brew-key{font-weight:800;color:#f4c67b;white-space:nowrap}
.lightbox-brew-value{text-align:right}
@media(max-width:700px){.photo-actions{padding:8px 10px 10px}.lightbox{place-items:start center;padding:52px 12px 20px}.lightbox img{max-height:42vh}.lightbox-comments{width:min(100%,600px);padding:16px}.comments-list{max-height:none}.comment-item.comment-reply{margin-right:12px}.comment-meta{align-items:flex-start;flex-direction:column;gap:2px}.comment-form{grid-template-columns:1fr}.comment-form input,.comment-form textarea,.comment-form button[type="submit"]{grid-column:1/-1}}

/* The daily gallery uses the full page width, while its desktop card stays comfortably short. */
@media(min-width:701px){.today.section-wrap{width:100%;max-width:none;padding-inline:max(5vw,28px)}.today-gallery{width:100%;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.today-coffee{max-width:none}.today-coffee>button{display:grid;grid-template-columns:minmax(320px,42%) minmax(0,1fr);text-align:right}.today-coffee-photo{aspect-ratio:auto;min-height:280px}.today-coffee-copy{display:flex;flex-direction:column;justify-content:center}.today-coffee-copy time{margin-top:10px}}

/* Multiple daily photos need room for their full captions. Keep each card vertical
   instead of squeezing its text beside the image at every viewport size. */
.today-gallery.has-multiple .today-coffee>button{display:block}.today-gallery.has-multiple .today-coffee-photo{min-height:0;aspect-ratio:4/3}.today-gallery.has-multiple .today-coffee-copy{display:block}.today-gallery.has-multiple .today-coffee-copy p{display:block;overflow:visible;-webkit-line-clamp:unset}

/* Small daily prompt at the top, plus an expandable coffee troubleshooting guide. */
.tip-of-day{display:inline-block;max-width:520px;margin:14px 0 0!important;padding:7px 10px;border-radius:999px;background:rgba(255,253,249,.8);color:#2b6e8f!important;font-size:14px!important;font-weight:800;line-height:1.25!important}.troubleshooting{padding:82px 0}.qa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.qa-question{border:1px solid rgba(22,53,71,.16);border-radius:10px;background:#fffdf9;padding:16px 18px;box-shadow:5px 6px 0 rgba(22,53,71,.07)}.qa-question summary{color:#163547;cursor:pointer;font:800 19px/1.2 Rubik,Arial,sans-serif;list-style-position:inside}.qa-question summary::marker{color:#2b6e8f}.qa-question[open]{border-color:rgba(43,110,143,.45);background:#edf5f4}.qa-answer-list{display:grid;gap:0;margin-top:12px;border-top:1px solid rgba(22,53,71,.13)}.qa-answer{border-bottom:1px solid rgba(22,53,71,.13)}.qa-answer-toggle{display:block;width:100%;padding:10px 0;border:0;background:transparent;color:#2b6e8f;text-align:right;font:800 15px Assistant,Arial,sans-serif;cursor:pointer;text-decoration:underline;text-decoration-color:rgba(43,110,143,.35);text-underline-offset:3px}.qa-answer-toggle[aria-expanded="true"]{color:#a34f35;text-decoration:none}.qa-answer-body{margin:0 0 12px;color:#355b6a;line-height:1.5}.qa-answer-body[hidden]{display:none}
@media(max-width:700px){.hero .tip-of-day{display:block!important;position:absolute;right:18px;bottom:4px;left:18px;max-width:none;margin:0!important;padding:0;background:transparent;color:#2b6e8f!important;font-size:10px!important;line-height:1.15!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.troubleshooting{padding:54px 0}.qa-grid{grid-template-columns:1fr;gap:10px}.qa-grid details{padding:14px}.qa-grid summary{font-size:17px}}

/* Keep the daily tip a real, readable component on mobile instead of overlaying the logo text. */
@media(max-width:700px){
  .hero{min-height:118px}
  .hero-copy{padding:9px 18px 10px}
  .hero .tip-of-day{display:block!important;position:static;max-width:none;margin:8px 0 0!important;padding:5px 8px;border:1px solid rgba(43,110,143,.2);border-radius:8px;background:rgba(255,253,249,.86);box-shadow:0 2px 0 rgba(22,53,71,.07);color:#2b6e8f!important;font-size:11px!important;line-height:1.3!important;white-space:normal;overflow:visible;text-overflow:clip}
}

/* Comments: keep the name on the right, reply cancellation on the left, and
   make common coffee reactions available without relying on a device keyboard. */
.comment-form-top{display:flex;align-items:center;justify-content:space-between;gap:10px;grid-column:1/-1;direction:rtl}
.comment-form-top input{flex:1 1 auto;min-width:0;text-align:right;direction:rtl}
.comment-form-top .comment-cancel-reply{flex:0 0 auto;justify-self:auto;margin:0}
.comment-emoji-picker{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:5px;grid-column:1/-1;direction:ltr}
.comment-emoji-button{display:inline-grid;place-items:center;width:34px;height:32px;padding:0;border:1px solid rgba(43,110,143,.2);border-radius:8px;background:#fff;color:#163547;font-size:19px;line-height:1;cursor:pointer;transition:.18s}
.comment-emoji-button:hover,.comment-emoji-button:focus-visible{border-color:#2b6e8f;background:#edf5f4;transform:translateY(-1px)}
.comments-list.is-collapsed .comment-item:nth-child(n+7){display:none}
.comments-list.is-expanded{max-height:none}
.comments-toggle{display:block;margin:11px auto 0;padding:6px 12px;border:1px solid rgba(43,110,143,.26);border-radius:999px;background:#edf5f4;color:#2b6e8f;font:800 13px Assistant,Arial,sans-serif;cursor:pointer}
.comments-toggle:hover,.comments-toggle:focus-visible{background:#d9edf1;border-color:#2b6e8f}

/* Searchable coffee problem library. It remains compact even with 1,000 answers. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.qa-tools{display:grid;gap:12px;margin-bottom:12px}.qa-search input{width:100%;min-height:48px;padding:12px 15px;border:1px solid rgba(43,110,143,.34);border-radius:9px;background:#fffdf9;color:#163547;font:700 16px Assistant,Arial,sans-serif;outline:none}.qa-search input:focus{border-color:#2b6e8f;box-shadow:0 0 0 3px rgba(43,110,143,.13)}.qa-filters{display:flex;flex-wrap:wrap;gap:8px}.qa-filter{padding:8px 12px;border:1px solid rgba(22,53,71,.2);border-radius:999px;background:#fffdf9;color:#163547;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;transition:.18s}.qa-filter:hover,.qa-filter.active{border-color:#2b6e8f;background:#2b6e8f;color:#fff}.qa-summary{min-height:22px;margin:0 0 14px;color:#355b6a;font-weight:800}.qa-grid details{min-height:0}.qa-grid details p{white-space:pre-line}.qa-category{display:inline-block;margin-bottom:7px;color:#a34f35;font:800 12px Rubik,Arial,sans-serif;letter-spacing:.04em}.qa-load-more{grid-column:1/-1;justify-self:center;padding:11px 20px;border:1px solid #2b6e8f;border-radius:999px;background:#fffdf9;color:#2b6e8f;font:800 15px Assistant,Arial,sans-serif;cursor:pointer}.qa-load-more:hover{background:#2b6e8f;color:#fff}.qa-empty{grid-column:1/-1;margin:0;padding:25px;border-radius:10px;background:#fffdf9;color:#355b6a;text-align:center;font-weight:700}@media(max-width:700px){.qa-filter{padding:7px 10px;font-size:13px}.qa-search input{min-height:45px;font-size:15px}}
.calculator-note{margin:12px 0 0;color:#355b6a;font-size:14px;font-weight:700;line-height:1.4}

/* Account gate for uploading: the gallery stays public, publishing does not. */
.upload-auth{padding:22px;border:1px solid rgba(43,110,143,.23);border-radius:10px;background:#eef6f6;text-align:right}.upload-auth h3{margin:7px 0;font:900 27px/.98 Rubik,Arial,sans-serif;letter-spacing:-.055em}.upload-auth p{margin:10px 0;color:#355b6a;font-weight:700;line-height:1.45}.auth-provider-button,.auth-email-toggle,.email-auth-form button:not(.auth-text-button){display:flex;align-items:center;justify-content:center;width:100%;min-height:47px;margin-top:13px;border:1px solid rgba(22,53,71,.23);border-radius:7px;background:#fffdf9;color:#163547;font:800 16px Assistant,Arial,sans-serif;cursor:pointer}.google-mark{width:18px;height:18px;margin-left:10px;flex:0 0 auto}.auth-provider-button:hover,.auth-email-toggle:hover,.email-auth-form button:not(.auth-text-button):hover{border-color:#2b6e8f;background:#fff}.auth-email-toggle{background:transparent;color:#2b6e8f}.email-auth-form{display:grid;gap:11px;margin-top:13px}.email-auth-form label{font-weight:800}.email-auth-form input{display:block;width:100%;margin-top:5px;padding:10px 11px;border:1px solid rgba(43,110,143,.32);border-radius:7px;background:#fff;color:#163547;font:600 16px Assistant,Arial,sans-serif}.auth-text-button{display:block;margin:12px auto 0;padding:0;border:0;background:transparent;color:#2b6e8f;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.auth-message{min-height:20px!important;margin:12px 0 0!important;color:#a34f35!important;font-size:14px!important}.upload-account{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:9px 11px;border-radius:7px;background:#edf5f4;color:#355b6a;font-weight:800}.upload-account button{border:0;background:transparent;color:#2b6e8f;font:800 14px Assistant,Arial,sans-serif;cursor:pointer;text-decoration:underline}.upload-card.auth-required>:not(.upload-auth){display:none}.upload-card.auth-required .upload-auth{display:block}.upload-brew-details{margin-top:14px;padding:0;border:1px solid rgba(43,110,143,.28);border-radius:10px;background:#f2f8fb}
.upload-brew-details summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;font:800 15px Rubik,Arial,sans-serif;color:var(--ink);position:relative}
.upload-brew-details summary::-webkit-details-marker{display:none}
.upload-brew-details summary::marker{display:none}
.upload-brew-details .brew-details-caret{
  width:10px;height:10px;
  position:relative;display:inline-block;
  border-inline-start:2px solid currentColor;
  border-inline-end:2px solid transparent;
  border-top:2px solid transparent;
  border-bottom:2px solid currentColor;
  transform:rotate(225deg);
  transition:transform .2s ease;
}
.upload-brew-details[open] .brew-details-caret{transform:rotate(135deg)}
.upload-brew-details-content{padding:0 14px 14px}
.upload-brew-details .upload-brew-details-content select,
.upload-brew-details .brew-detail input,
.upload-brew-details .brew-detail select{width:100%;margin-top:7px;padding:10px;border:1px solid rgba(22,53,71,.24);border-radius:7px;background:#fffdf9;color:var(--ink);font:600 16px Assistant}
.upload-brew-details .brew-details-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.upload-brew-details .brew-detail{display:block}
.upload-brew-details select[name=\"coffeeMachine\"][name], .upload-brew-details input[name=\"coffeeMachine\"]{max-width:100%}
.brew-number-stepper{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:stretch;margin-top:7px;border:1px solid rgba(22,53,71,.24);border-radius:7px;overflow:hidden;background:#fffdf9;direction:ltr}.brew-number-stepper input{width:100%!important;min-width:0;margin:0!important;border:0!important;border-radius:0!important;text-align:center;direction:ltr;appearance:textfield;-moz-appearance:textfield}.brew-number-stepper input::-webkit-outer-spin-button,.brew-number-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.brew-number-stepper button{border:0;background:#e3f0f0;color:#163547;font:900 22px/1 Rubik,Arial,sans-serif;cursor:pointer}.brew-number-stepper button:hover,.brew-number-stepper button:focus-visible{background:#2b6e8f;color:#fff;outline:0}
@media(max-width:700px){.upload-brew-details .brew-details-fields{grid-template-columns:1fr}}
@media(max-width:700px){.upload-auth{padding:18px}.upload-auth h3{font-size:24px}.upload-account{font-size:14px}}
.amount-stepper{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:stretch;direction:ltr;margin-top:6px;border:1px solid rgba(22,53,71,.24);border-radius:7px;overflow:hidden;background:#fffdf9}.calculator-fields .amount-stepper input{width:100%;min-width:0;margin:0;padding:10px 4px;border:0;border-radius:0;background:transparent;text-align:center;direction:ltr;appearance:textfield;-moz-appearance:textfield}.calculator-fields .amount-stepper input::-webkit-outer-spin-button,.calculator-fields .amount-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.amount-stepper button{border:0;background:#e3f0f0;color:#163547;font:900 22px/1 Rubik,Arial,sans-serif;cursor:pointer;transition:.18s}.amount-stepper button:hover,.amount-stepper button:focus-visible{background:#2b6e8f;color:#fff;outline:0}.amount-stepper button:first-child{border-left:1px solid rgba(22,53,71,.18)}.amount-stepper button:last-child{border-right:1px solid rgba(22,53,71,.18)}
.auth-text-button[hidden]{display:none!important}

/* The wordmark follows the hero heading: bold Rubik, tight tracking, and a
   blue second line. The cup stays large enough to read in the header. */
.site-header .brand-mark{width:42px;height:42px;flex:0 0 42px;object-fit:contain}
.site-header .brand>span:not(.brand-mark){display:block;min-width:0}
.site-header .brand strong{font:900 18px/.84 Rubik,Arial,sans-serif;letter-spacing:-.06em}
.site-header .brand em{margin-top:3px;color:#2b6e8f;font:900 14px/.9 Rubik,Arial,sans-serif;letter-spacing:-.05em}
@media(max-width:700px){
  .site-header .brand-mark{width:37px;height:37px;flex-basis:37px}
  .site-header .brand strong{font-size:16px}
  .site-header .brand em{font-size:12px}
}
