/* Coff & Co 2026 - site chrome: nav, notice, footer, cart drawer, Oracle button.
   Breakpoints follow the demo: nav/footer switch layouts at 768px (useMobile(768)),
   the cc-canvas gutter at 480px and 1449px. */

:root{--cc-ab:0px}
.admin-bar{--cc-ab:32px}
@media (max-width:782px){.admin-bar{--cc-ab:46px}}
@media (max-width:600px){.admin-bar{--cc-ab:0px}}
body{--cc-notice:0px}
body.cc-has-notice{--cc-notice:var(--notice-h)}

/* =========================================================================
   NAV
   ====================================================================== */
.cc-nav{position:sticky;top:var(--cc-ab);left:0;right:0;z-index:100}
.cc-nav__inner{position:relative;z-index:1;width:100%;max-width:1400px;margin:0 auto;padding:20px 24px 0}
@media (min-width:1449px){.cc-nav--default .cc-nav__inner{padding-left:0;padding-right:0}}
.cc-nav__bar{display:flex;align-items:center;justify-content:space-between;gap:20px}
.cc-nav__left{flex:1 1 0;display:flex;justify-content:flex-start;min-width:0}
.cc-nav__right{flex:1 1 0;display:flex;justify-content:flex-end}

.cc-switch{display:inline-flex}
.cc-switch__chip{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:2px 6px;background:var(--cream);color:#000;font-family:var(--font-mono);font-weight:400;font-size:14px;line-height:1;letter-spacing:1.4px;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer}
.cc-switch__chip.is-active{background:var(--amber);cursor:default}
.cc-switch__chip:hover{color:#000}

.cc-logo{line-height:0;flex:0 0 auto;display:inline-block;transform-origin:center}
.cc-logo:hover{animation:ccBeat .9s ease-in-out infinite}
.cc-logo__svg{display:block;width:179px;height:auto}

.cc-nav__pill{display:inline-flex;align-items:center;gap:16px;height:24px;background:var(--cream);padding:0 6px}
.cc-nav__link{display:inline-flex;align-items:center;font-family:var(--font-mono);font-weight:400;font-size:14px;line-height:1;letter-spacing:1.4px;text-transform:uppercase;text-decoration:none;color:#000;white-space:nowrap;padding:2px 0;background:var(--cc-nav-current-bg,transparent)}
.cc-nav__link:hover{color:#000}
/* The demo defines an active-link style (black on cream) but never applies it, so the current
   page is marked with aria-current only. To show it, set --cc-nav-current-bg/-fg on :root. */
.cc-nav__link.is-current{background:var(--cc-nav-current-bg,transparent);color:var(--cc-nav-current-fg,#000)}
.cc-nav__link:not(.is-current){background:transparent}

.cc-nav__menu{display:none;align-items:center;justify-content:center;height:24px;padding:2px 6px;background:var(--cream);color:#000;border:none;font-family:var(--font-mono);font-weight:400;font-size:14px;line-height:1;letter-spacing:1.4px;text-transform:uppercase;white-space:nowrap;cursor:pointer}
.cc-nav__menu-close{display:none}
.cc-nav__backdrop{position:fixed;inset:0;z-index:0;background:var(--blue);opacity:0;transition:opacity .25s var(--ease-expo)}
.cc-nav.is-open .cc-nav__backdrop{opacity:1}
.cc-mmenu{display:flex;flex-direction:column;align-items:center;gap:20px}
.cc-mmenu__link{font-family:var(--font-mono);font-weight:400;font-size:16px;line-height:1;letter-spacing:1.6px;text-transform:uppercase;color:var(--cream);text-decoration:none;white-space:nowrap}
.cc-mmenu__link:hover{color:var(--cream)}
.cc-nav.is-open .cc-mmenu{animation:ccMenuIn .25s var(--ease-expo) .05s both}
@keyframes ccMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

.cc-cart-count{display:inline}

/* ---- Home variant (index.html Nav): fixed over the hero. The demo scales a 1400px canvas
   below 1400px wide and counter-scales the chip type (capped at 1.5x); these min() values are
   the same numbers expressed in vw, so the bar matches without any transform. ---- */
.cc-nav--home{position:fixed;top:calc(var(--cc-ab) + var(--cc-notice))}
.cc-nav--home .cc-nav__inner{padding:min(20px,1.4286vw) min(40px,2.857vw) 0}
.cc-nav--home .cc-nav__bar{gap:0}
.cc-nav--home .cc-logo{margin:0 min(28px,2vw)}
.cc-nav--home .cc-logo__svg{width:min(179px,12.786vw)}
.cc-nav--home .cc-switch__chip,.cc-nav--home .cc-nav__link{font-size:min(14px,1.5vw);letter-spacing:min(1.4px,.15vw)}
.cc-nav--home .cc-switch__chip{height:min(24px,2.5714vw);padding:min(2px,.2143vw) min(6px,.6429vw)}
.cc-nav--home .cc-nav__pill{gap:min(16px,1.7143vw);height:min(24px,2.5714vw);padding:0 min(6px,.6429vw)}
.cc-nav--home .cc-nav__link{padding:min(2px,.2143vw) 0}

/* ---- Mobile nav (<=768, NavMobile) ---- */
@media (max-width:768px){
  .cc-nav__inner{display:flex;flex-direction:column;gap:40px;padding:16px 24px 0}
  .cc-nav--home .cc-nav__inner{padding:12px 16px 0}
  .cc-nav.is-open .cc-nav__inner{padding-bottom:40px}
  .cc-nav__bar,.cc-nav--home .cc-nav__bar{gap:8px}
  .cc-nav__left,.cc-nav__right{flex:0 0 auto}
  .cc-switch__chip,.cc-nav--home .cc-switch__chip{height:24px;padding:2px 6px;font-size:14px;letter-spacing:1.4px}
  .cc-switch__chip:not(.is-active){display:none}
  .cc-switch__chip.is-active{order:-1}
  .cc-nav.is-open .cc-switch__chip{display:inline-flex}
  .cc-logo,.cc-nav--home .cc-logo{margin:0}
  .cc-logo__svg,.cc-nav--home .cc-logo__svg{width:136px}
  .cc-nav.is-open .cc-logo{visibility:hidden}
  .cc-nav__pill{display:none}
  .cc-nav__menu{display:inline-flex}
  .cc-nav.is-open .cc-nav__menu-open{display:none}
  .cc-nav.is-open .cc-nav__menu-close{display:inline}
  .cc-nav--home .cc-nav__backdrop{top:calc(var(--cc-ab) + var(--cc-notice))}
}
@media (max-width:480px){.cc-nav--default .cc-nav__inner{padding-left:16px;padding-right:16px}}
@media (min-width:769px){.cc-mmenu,.cc-nav__backdrop{display:none !important}}

/* =========================================================================
   NOTICE BANNER (index.html NoticeBanner)
   ====================================================================== */
.cc-notice{position:relative;z-index:110;height:var(--notice-h);background:var(--pink);color:var(--cream);display:flex;align-items:center;overflow:hidden;text-decoration:none}
.cc-notice:hover{color:var(--cream)}
.cc-variant-home .cc-notice{position:fixed;top:var(--cc-ab);left:0;right:0}
.cc-notice__track{display:flex;white-space:nowrap;animation:ccMarquee 30s linear infinite;will-change:transform}
.cc-notice__seg{display:inline-block;white-space:nowrap;font-family:var(--font-mono);font-weight:600;font-size:12px;letter-spacing:2.5px;text-transform:uppercase}

/* =========================================================================
   FOOTER (common.jsx Footer / index.html Section9)
   ====================================================================== */
.cc-footer{position:relative;width:100%;min-height:100dvh;background:var(--cream);color:#000;overflow:hidden;isolation:isolate}
.cc-footer__photo{position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(1000px,52vw);height:100%;z-index:0}
.cc-footer__img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;user-select:none;-webkit-user-select:none}
.cc-footer--home .cc-footer__img{transform:translate3d(0,var(--cc-rise,0%),0);will-change:transform}
.cc-footer__cols{position:absolute;top:clamp(60px,15vh,160px);left:0;right:0;padding:0 clamp(24px,5vw,80px);display:flex;justify-content:space-between;align-items:flex-start;z-index:2;pointer-events:none}
.cc-footer--home .cc-footer__cols{top:50%;transform:translateY(calc(-50% - 60px))}
.cc-footer__col{display:flex;flex-direction:column;pointer-events:auto}
.cc-footer__col--left{align-items:flex-start;text-align:left}
.cc-footer__col--right{align-items:flex-end;text-align:right}
.cc-footer__label{margin:0 0 22px;font-family:var(--font-mono);font-weight:500;font-size:18px;letter-spacing:0.04em;color:#000}
.cc-footer--home .cc-footer__label{margin-bottom:26px}
.cc-footer__link{display:block;white-space:nowrap;font-family:var(--font-display);font-weight:700;font-size:clamp(26px,3.3vw,48px);line-height:1.08;letter-spacing:-0.05em;text-transform:uppercase;color:#000;text-decoration:none}
.cc-footer__link:hover{color:#000}
.cc-footer__bottom{position:absolute;left:clamp(24px,5vw,80px);right:clamp(24px,5vw,80px);bottom:56px;display:flex;align-items:center;justify-content:space-between;gap:24px;z-index:2}
.cc-footer__legal{display:flex;align-items:center;gap:12px}
.cc-footer__legal-link,.cc-footer__copy{font-family:var(--font-mono);font-weight:500;font-size:14px;letter-spacing:0.04em;text-transform:uppercase;color:#000;text-decoration:none}
.cc-footer__legal-link:hover{color:#000}
.cc-footer__dot{color:#000;font-size:14px}

@media (max-width:768px){
  .cc-footer{min-height:0;display:flex;flex-direction:column;gap:32px;padding:48px 20px 0}
  .cc-footer__cols,.cc-footer--home .cc-footer__cols{position:static;transform:none;padding:0;order:1;gap:24px;pointer-events:auto}
  .cc-footer__col{display:block}
  .cc-footer__label,.cc-footer--home .cc-footer__label{margin:0 0 22px}
  .cc-footer--home .cc-footer__label{font-size:clamp(13px,3.2vw,16px);text-transform:uppercase}
  .cc-footer__link{white-space:normal}
  .cc-footer--home .cc-swap--mixed .cc-a{line-height:inherit}
  .cc-footer__photo{position:static;transform:none;order:2;width:min(76%,420px);height:auto;align-self:center;margin-bottom:-2px}
  .cc-footer__img,.cc-footer--home .cc-footer__img{position:static;display:block;width:100%;height:auto;transform:none}
  .cc-footer__bottom{position:relative;left:auto;right:auto;bottom:auto;order:3;margin:-64px -20px 0;background:var(--blue);padding:24px 16px 28px;flex-direction:column;justify-content:flex-start;gap:10px;text-align:center}
  .cc-footer__legal{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:6px 10px}
  .cc-footer__legal-link,.cc-footer__copy,.cc-footer__legal-link:hover{color:var(--cream);font-size:12px}
  .cc-footer__dot{color:var(--cream);font-size:16px}
}

/* =========================================================================
   CART DRAWER (common.jsx CartDrawer)
   ====================================================================== */
.cc-drawer{position:fixed;inset:0;z-index:300}
.cc-drawer__backdrop{position:absolute;inset:0;width:100%;height:100%;background:rgba(0,0,0,0.45);border:none;padding:0;cursor:pointer;opacity:0;transition:opacity .3s ease}
.cc-drawer__panel{position:absolute;top:0;right:0;bottom:0;z-index:1;width:min(500px,100vw);background:var(--cream);color:#000;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .4s var(--ease-expo);outline:none}
.cc-drawer.is-open .cc-drawer__backdrop{opacity:1}
.cc-drawer.is-open .cc-drawer__panel{transform:none}
.cc-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:20px}
.cc-drawer__title{margin:0;font-family:var(--font-display);font-weight:800;font-size:36px;letter-spacing:-0.04em;text-transform:uppercase;line-height:1;color:#000}
.cc-drawer__close{background:var(--amber);color:#000;font-family:var(--font-mono);font-weight:500;font-size:14px;letter-spacing:1.4px;text-transform:uppercase;padding:6px;border:none;cursor:pointer;line-height:1}
.cc-drawer__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:20px;display:flex;flex-direction:column;gap:40px}
.cc-drawer__empty{font-family:var(--font-mono);font-weight:400;font-size:14px;text-transform:uppercase;color:#000;padding:12px 0}
.cc-drawer__error{margin:0;padding:0 20px 8px;font-family:var(--font-mono);font-weight:500;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--red)}
.cc-drawer__foot{display:flex;flex-direction:column}
.cc-drawer__subtotal{display:flex;justify-content:space-between;align-items:baseline;padding:20px 20px 10px;font-family:var(--font-mono);font-weight:700;font-size:18px;letter-spacing:0.02em}
.cc-drawer__actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px}
.cc-drawer__view{font-family:var(--font-mono);font-weight:500;font-size:14px;letter-spacing:1.4px;text-transform:uppercase;color:#000;text-decoration:underline;text-underline-offset:4px}
.cc-drawer__view:hover{color:#000}
.cc-drawer.is-busy .cc-drawer__body{opacity:.6;transition:opacity .2s}

.cc-line{display:flex;gap:12px;align-items:flex-start}
.cc-line__img{width:100px;height:100px;overflow:hidden;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.cc-line__img img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.cc-line__main{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-line__name{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-0.03em;text-transform:uppercase;line-height:1.05;color:#000;text-decoration:none}
.cc-line__name:hover{color:#000}
.cc-line__meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px;font-family:var(--font-mono);font-weight:400;font-size:14px;letter-spacing:0.04em;text-transform:uppercase}
.cc-line__dot{width:3px;height:3px;border-radius:50%;background:#000;flex:0 0 auto}
.cc-line__row{display:flex;align-items:center;gap:16px;margin-top:12px}
.cc-line__price{font-family:var(--font-mono);font-weight:500;font-size:14px;letter-spacing:0.02em}
.cc-line__remove{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:0;color:#000;flex:0 0 auto}
.cc-qty{display:inline-flex;align-items:center;gap:10px;border:1.5px solid #000;border-radius:100px;padding:5px 10px}
.cc-qty__btn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:0;color:#000}
.cc-qty__n{font-family:var(--font-mono);font-weight:500;font-size:14px;min-width:20px;text-align:center;line-height:1}

html.cc-locked,html.cc-locked body{overflow:hidden}

/* =========================================================================
   ORACLE BUTTON (common.jsx OracleFab)
   ====================================================================== */
.cc-oracle{position:fixed;right:-30px;bottom:-50px;width:131px;height:163px;z-index:250;cursor:pointer;display:block;padding:0;border:none;background:none;opacity:1}
.cc-oracle__ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;transform:translateX(-10px)}
.cc-oracle__text{font-family:var(--font-hand);font-size:13px;letter-spacing:2.6px;text-transform:uppercase}
.cc-oracle__icon{position:absolute;top:50%;left:50%;width:124px;height:134px;max-width:none;transform:translate(-50%,-50%);z-index:1;pointer-events:none}
.cc-oracle__icon--hover{display:none}
.cc-oracle:hover .cc-oracle__icon{display:none}
.cc-oracle:hover .cc-oracle__icon--hover{display:block}
@media (max-width:768px){.cc-oracle{transform:scale(.7);transform-origin:right bottom}}

@media (prefers-reduced-motion:reduce){
  .cc-logo:hover{animation:none}
  .cc-notice__track{animation:none}
  .cc-drawer__panel,.cc-drawer__backdrop,.cc-nav__backdrop{transition:none}
  .cc-nav.is-open .cc-mmenu{animation:none}
}
