/* ══════════════════════════════════════
   A Coffee Thing — Main Stylesheet
   ══════════════════════════════════════ */

:root {
  --black:  #080808;
  --white:  #F5F0E8;
  --lime:   #C8F135;
  --orange: #FF5C00;
  --sky:    #4DCFFF;
  --pink:   #FF3D7F;
  --yellow: #FFD600;
  --purple: #7B2FFF;
  --teal:   #00E5C3;
  --cream:  #F5F0E8;
  --dark:   #0E0A05;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background: var(--black);
  color: var(--white);
  font-family: 'DM Sans', sans-serif;
  overflow-x: hidden;
  cursor: none;
}
body.woo-page { cursor: auto; }
a { color: inherit; text-decoration: none; }
img { max-width:100%; display:block; }

::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background: #080808; }
::-webkit-scrollbar-thumb { background: var(--lime); }

/* ── CURSOR ── */
#cursor {
  width:18px; height:18px;
  background: var(--lime);
  border-radius:50%;
  position:fixed; z-index:9999;
  pointer-events:none;
  transform:translate(-50%,-50%);
  transition: width .3s, height .3s, background .3s;
  mix-blend-mode: difference;
}
#cursor.big { width:56px; height:56px; }

/* ── NAV ── */
#site-nav {
  position: fixed; top:0; left:0; right:0; z-index:1000;
  padding: 1.2rem 3rem;
  display: flex; justify-content:space-between; align-items:center;
}
#site-nav::after {
  content:''; position:absolute; inset:0;
  background: rgba(8,8,8,.8);
  backdrop-filter: blur(18px);
  z-index:-1;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.nav-logo { display:flex; flex-direction:column; line-height:1; }
.nav-logo-a { font-size:.6rem; letter-spacing:.35em; text-transform:uppercase; color:rgba(245,240,232,.4); }
.nav-logo-main { font-family:'Black Han Sans',sans-serif; font-size:1.4rem; letter-spacing:.06em; }
.nav-logo-main .nl { color:var(--lime); }
.nav-logo-main .no { color:var(--orange); }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a {
  font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(245,240,232,.5);
  position:relative; transition:color .25s;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0;
  height:2px; background:var(--lime);
  transform:scaleX(0); transform-origin:left; transition:transform .3s;
}
.nav-links a:hover { color:var(--lime); }
.nav-links a:hover::after { transform:scaleX(1); }
.nav-shop {
  font-family:'Syne',sans-serif; font-size:.7rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--black); background:var(--lime);
  padding:.65rem 1.5rem;
  transition: background .3s, transform .2s;
}
.nav-shop:hover { background:var(--orange); color:var(--white); transform:translateY(-2px); }
.nav-cart-count {
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border-radius:50%;
  background:var(--orange); color:#fff; font-size:.6rem;
  margin-left:.4rem;
}
.nav-cart-count:empty { display:none; }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; flex-direction:column; gap:5px; }
.nav-toggle span { display:block; width:24px; height:2px; background:var(--white); transition:.3s; }

/* ── MOBILE MENU ── */
.mobile-menu {
  display:none; position:fixed; inset:0; background:var(--black);
  z-index:999; flex-direction:column;
  align-items:center; justify-content:center; gap:2rem;
}
.mobile-menu.open { display:flex; }
.mobile-menu ul { list-style:none; text-align:center; }
.mobile-menu li { margin:1.5rem 0; }
.mobile-menu a { font-family:'Black Han Sans',sans-serif; font-size:2.5rem; letter-spacing:.06em; }
.mobile-menu a:hover { color:var(--lime); }
.mobile-shop-btn { color:var(--lime) !important; }

/* ── HERO ── */
.hero {
  min-height:100vh; display:flex; flex-direction:column;
  justify-content:flex-end;
  padding: 8rem 3rem 5rem 5rem;
  position:relative; overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%, rgba(200,241,53,.11) 0%, transparent 55%),
    radial-gradient(ellipse 60% 60% at 10% 80%, rgba(255,92,0,.09) 0%, transparent 55%),
    radial-gradient(ellipse 50% 50% at 90% 10%, rgba(77,207,255,.07) 0%, transparent 50%);
  pointer-events:none;
  animation: bgPulse 9s ease-in-out infinite alternate;
}
@keyframes bgPulse { from{opacity:.7} to{opacity:1} }
.blob {
  position:absolute; border-radius:50%;
  filter:blur(70px); pointer-events:none;
}
.blob-1 { width:500px; height:500px; background:rgba(200,241,53,.12); top:-100px; right:5%; }
.blob-2 { width:380px; height:380px; background:rgba(255,92,0,.10); bottom:-50px; left:-80px; }
.blob-3 { width:300px; height:300px; background:rgba(77,207,255,.08); top:35%; right:20%; }

.hero-content { position:relative; z-index:2; }
.hero-eyebrow {
  display:inline-flex; align-items:center; gap:.8rem;
  font-size:.65rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--lime); margin-bottom:1.5rem;
  opacity:0; animation: slideUp .8s .3s forwards;
}
.hero-eyebrow::before { content:''; display:block; width:28px; height:2px; background:var(--lime); }
.hero-brand-a {
  font-family:'DM Sans',sans-serif;
  font-size:clamp(1.2rem,2.5vw,2.2rem);
  font-style:italic; font-weight:300;
  letter-spacing:.15em;
  color:rgba(245,240,232,.5); display:block;
  opacity:0; animation:slideUp .8s .4s forwards;
  margin-bottom:.3rem;
}
.hero-title {
  font-family:'Black Han Sans',sans-serif;
  font-size:clamp(5rem,13vw,13rem);
  line-height:.85; letter-spacing:-.01em;
  opacity:0; animation:slideUp .8s .5s forwards;
}
.hero-title-row1, .hero-title-row2 { display:block; }
.hero-title-row2 { margin-top:.1em; }
.t-lime   { color:var(--lime); }
.t-orange { color:var(--orange); }
.t-sky    { -webkit-text-stroke:2px var(--sky); color:transparent; }
.t-outline{ -webkit-text-stroke:2px rgba(245,240,232,.5); color:transparent; }
.t-pink   { color:var(--pink); }
.t-purple { color:var(--purple); }
.t-teal   { color:var(--teal); }

.hero-bottom {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-top:3rem;
  opacity:0; animation:slideUp .8s .7s forwards;
}
.hero-desc { max-width:380px; font-size:1rem; line-height:1.8; font-style:italic; font-weight:300; color:rgba(245,240,232,.6); }
.hero-actions { display:flex; flex-direction:column; align-items:flex-end; gap:1rem; }
.hero-note { font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(245,240,232,.3); }

@keyframes slideUp { from{opacity:0; transform:translateY(30px)} to{opacity:1; transform:translateY(0)} }

/* ── BUTTONS ── */
.btn-primary {
  display:inline-flex; align-items:center; gap:.8rem;
  background:var(--lime); color:var(--black);
  font-family:'Syne',sans-serif; font-size:.82rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase;
  padding:1.1rem 2.4rem;
  position:relative; overflow:hidden; transition:transform .3s;
}
.btn-primary::before {
  content:''; position:absolute; inset:0;
  background:var(--orange);
  transform:translateX(-100%); transition:transform .35s cubic-bezier(.4,0,.2,1);
}
.btn-primary:hover::before { transform:translateX(0); }
.btn-primary:hover { transform:translateY(-3px); color:var(--white); }
.btn-primary span, .btn-arr { position:relative; z-index:1; }
.btn-primary:hover .btn-arr { transform:translateX(5px); }

/* ── MARQUEE ── */
.marquee-wrap { padding:1rem 0; overflow:hidden; background:var(--lime); }
.marquee-track { display:flex; width:max-content; animation:marquee 22s linear infinite; }
.marquee-item {
  font-family:'Black Han Sans',sans-serif;
  font-size:1rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--black); padding:0 2.5rem;
  display:flex; align-items:center; gap:2.5rem; white-space:nowrap;
}
.mi-dot { color:var(--orange); }
@keyframes marquee { from{transform:translateX(0)} to{transform:translateX(-33.333%)} }

/* ── SECTION SHARED ── */
section { padding:7rem 5rem; }
.s-head { text-align:center; margin-bottom:4rem; }
.s-eyebrow {
  display:inline-block; font-size:.65rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--lime);
  margin-bottom:1rem; border:1px solid rgba(200,241,53,.3);
  padding:.3rem .8rem;
}
.s-title {
  font-family:'Black Han Sans',sans-serif;
  font-size:clamp(2.5rem,5vw,5rem);
  line-height:1; letter-spacing:.02em;
  margin-bottom:1.5rem;
}
.s-sub { font-size:1rem; line-height:1.8; color:rgba(245,240,232,.55); max-width:560px; margin:0 auto; }

/* ── SHOP GRID ── */
.shop-section { background:var(--dark); }
.act-shop-grid {
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:2px;
  max-width:1400px; margin:0 auto;
}
.act-product-card {
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  transition: border-color .3s, transform .3s;
  overflow:hidden;
}
.act-product-card:hover { border-color:var(--lime); transform:translateY(-4px); }
.apc-inner { display:block; height:100%; }
.apc-img { aspect-ratio:1; overflow:hidden; background:rgba(14,10,5,1); display:flex; align-items:center; justify-content:center; }
.apc-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.act-product-card:hover .apc-img img { transform:scale(1.04); }
.apc-img-placeholder {
  width:100%; aspect-ratio:1;
  display:flex; align-items:center; justify-content:center;
  background:var(--dark);
}
.api-a {
  font-family:'Black Han Sans',sans-serif;
  font-size:8rem; color:var(--acc, var(--lime));
  opacity:.3;
}
.apc-body { padding:1.5rem; }
.apc-roast { font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--lime); display:block; margin-bottom:.5rem; }
.apc-name { font-family:'Black Han Sans',sans-serif; font-size:1.4rem; letter-spacing:.04em; margin-bottom:.5rem; }
.apc-notes { font-size:.85rem; font-style:italic; color:rgba(245,240,232,.55); line-height:1.6; margin-bottom:1.2rem; }
.apc-footer { display:flex; justify-content:space-between; align-items:center; }
.apc-price { font-family:'Syne',sans-serif; font-weight:800; font-size:1.1rem; color:var(--lime); }
.apc-btn {
  font-size:.65rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--black); background:var(--lime);
  padding:.4rem .9rem; transition:background .2s;
}
.act-product-card:hover .apc-btn { background:var(--orange); color:var(--white); }
.shop-cta { text-align:center; margin-top:3rem; }

/* ── STORY ── */
.story-section { background:var(--black); }
.story-inner { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; max-width:1200px; margin:0 auto; }
.story-title { font-family:'Black Han Sans',sans-serif; font-size:clamp(2rem,4vw,4rem); line-height:1.05; margin:1rem 0 1.5rem; }
.story-text p { font-size:1rem; line-height:1.9; color:rgba(245,240,232,.65); margin-bottom:1rem; }
.story-stats { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.stat-card {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07);
  padding:2rem; display:flex; flex-direction:column; gap:.5rem;
}
.stat-num { font-family:'Black Han Sans',sans-serif; font-size:3rem; line-height:1; }
.stat-label { font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(245,240,232,.4); }

/* ── SUBSCRIPTIONS ── */
.sub-section { background:var(--dark); }
.sub-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:1100px; margin:0 auto; }
.sub-card {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07);
  padding:2.5rem; position:relative; transition:border-color .3s;
}
.sub-card:hover { border-color:rgba(200,241,53,.4); }
.sub-featured { border-color:var(--lime) !important; }
.sub-badge {
  position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  background:var(--lime); color:var(--black);
  font-family:'Syne',sans-serif; font-size:.6rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.25rem .8rem;
}
.sub-name { font-family:'Black Han Sans',sans-serif; font-size:1.4rem; margin-bottom:.5rem; }
.sub-freq { font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--lime); }
.sub-price { font-family:'Syne',sans-serif; font-size:2.5rem; font-weight:800; color:var(--white); margin:1rem 0 .5rem; }
.sub-per { font-size:.7rem; font-weight:400; color:rgba(245,240,232,.4); display:block; }
.sub-note { font-size:.85rem; color:rgba(245,240,232,.5); margin-bottom:1.5rem; }
.sub-btn {
  display:block; text-align:center;
  font-family:'Syne',sans-serif; font-size:.75rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase;
  padding:.9rem; border:1px solid rgba(255,255,255,.2);
  transition:all .3s;
}
.sub-btn:hover { border-color:var(--lime); color:var(--lime); }
.sub-btn-featured { background:var(--lime); color:var(--black); border-color:var(--lime); }
.sub-btn-featured:hover { background:var(--orange); border-color:var(--orange); color:var(--white); }

/* ── HOW IT WORKS ── */
.how-section { background:var(--black); }
.how-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; max-width:1200px; margin:0 auto; }
.how-step { padding:2rem 0; border-top:2px solid rgba(200,241,53,.25); }
.how-num { font-family:'Black Han Sans',sans-serif; font-size:3rem; color:rgba(200,241,53,.2); display:block; margin-bottom:1rem; }
.how-title { font-family:'Syne',sans-serif; font-size:1rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; margin-bottom:.75rem; }
.how-desc { font-size:.9rem; line-height:1.7; color:rgba(245,240,232,.55); }

/* ── NEWSLETTER ── */
.newsletter-section { background:var(--lime); padding:5rem; }
.nl-inner { text-align:center; max-width:600px; margin:0 auto; }
.nl-title { font-family:'Black Han Sans',sans-serif; font-size:clamp(2.5rem,5vw,5rem); color:var(--black); margin-bottom:1rem; }
.nl-title .t-lime { color:var(--orange); }
.nl-sub { font-size:1rem; color:rgba(10,8,4,.65); margin-bottom:2rem; }
.nl-form { display:flex; gap:0; max-width:460px; margin:0 auto; }
.nl-form input {
  flex:1; padding:1rem 1.5rem;
  background:var(--black); color:var(--white);
  border:none; font-family:'DM Sans',sans-serif; font-size:.9rem;
  outline:none;
}
.nl-form input::placeholder { color:rgba(245,240,232,.3); }
.nl-form .btn-primary { flex-shrink:0; }
.nl-form .btn-primary::before { background:var(--black); }
.nl-form .btn-primary:hover { color:var(--white); }

/* ── FOOTER ── */
.site-footer { background:#050505; padding:5rem 5rem 2rem; }
.footer-top { display:grid; grid-template-columns:1fr 2fr; gap:4rem; margin-bottom:4rem; }
.footer-logo { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; }
.fl-a { font-family:'Black Han Sans',sans-serif; font-size:3rem; color:var(--lime); }
.fl-main { font-family:'Black Han Sans',sans-serif; font-size:1.1rem; line-height:1; }
.fl-lime { color:var(--lime); }
.fl-orange { color:var(--orange); }
.footer-tagline { font-size:.85rem; line-height:1.7; color:rgba(245,240,232,.4); margin-bottom:1.5rem; }
.footer-socials { display:flex; gap:1rem; }
.footer-socials a {
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.12);
  font-size:.65rem; letter-spacing:.1em;
  transition:all .3s;
}
.footer-socials a:hover { background:var(--lime); color:var(--black); border-color:var(--lime); }
.footer-cols { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.footer-col h4 { font-family:'Syne',sans-serif; font-size:.7rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--lime); margin-bottom:1rem; }
.footer-col ul { list-style:none; }
.footer-col li { margin-bottom:.5rem; }
.footer-col a { font-size:.85rem; color:rgba(245,240,232,.45); transition:color .2s; }
.footer-col a:hover { color:var(--lime); }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:2rem; border-top:1px solid rgba(255,255,255,.06); }
.footer-legal { font-size:.7rem; color:rgba(245,240,232,.25); }
.footer-legal a { color:rgba(245,240,232,.4); }
.footer-legal a:hover { color:var(--lime); }
.footer-est { font-family:'Black Han Sans',sans-serif; font-size:1rem; color:rgba(200,241,53,.15); }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .act-shop-grid { grid-template-columns:repeat(2,1fr); }
  .how-steps { grid-template-columns:repeat(2,1fr); }
  .story-inner { grid-template-columns:1fr; }
}
@media (max-width: 768px) {
  section { padding:5rem 1.5rem; }
  #site-nav { padding:1rem 1.5rem; }
  .nav-links { display:none; }
  .nav-toggle { display:flex; }
  .act-shop-grid { grid-template-columns:1fr; }
  .sub-grid { grid-template-columns:1fr; }
  .how-steps { grid-template-columns:1fr; }
  .hero { padding:7rem 1.5rem 4rem; }
  .hero-bottom { flex-direction:column; gap:2rem; align-items:flex-start; }
  .footer-top { grid-template-columns:1fr; }
  .footer-cols { grid-template-columns:1fr 1fr; }
  .footer-bottom { flex-direction:column; gap:1rem; text-align:center; }
  .nl-form { flex-direction:column; }
}
