/* ═══════════════════════════════════════════════════════
   GOcacao — Shared Stylesheet  |  go-cacao.com
   Part of the de'Finnitive Cacao ecosystem
   ═══════════════════════════════════════════════════════ */

:root {
  /* Shared with de'Finnitive */
  --cream:     #f7f2eb;
  --parchment: #ede5d8;
  --brown:     #3b1f0f;
  --mid:       #6b3a22;
  --copper:    #a0522d;
  --gold:      #d4a853;
  --warm:      #faf8f5;

  /* GOcacao primary palette */
  --g-dark:    #182e1e;
  --g-mid:     #2d5a3d;
  --g-light:   #6fa882;
  --g-faint:   rgba(24,46,30,0.06);
  --g-glow:    rgba(111,168,130,0.18);
  --g-border:  rgba(111,168,130,0.2);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--cream);
  color:var(--brown);
  font-family:'Outfit', sans-serif;
  font-weight:300;
  overflow-x:hidden;
  line-height:1.7;
}

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; justify-content:space-between; align-items:center;
  padding:1rem 5rem;
  background:rgba(247,242,235,0.96); backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(24,46,30,0.08);
}
.nav-logo img { height:34px; object-fit:contain; }
.nav-links { display:flex; gap:2.2rem; list-style:none; align-items:center; }
.nav-links a {
  text-decoration:none;
  color:var(--g-dark);
  font-family:'DM Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:500;
  transition:color 0.2s;
}
.nav-links a:hover { color:var(--g-light); }
.nav-links a.active { color:var(--g-light); border-bottom:1.5px solid var(--g-light); padding-bottom:2px; }
.nav-cta {
  background:var(--g-dark) !important;
  color:var(--cream) !important;
  padding:0.5rem 1.3rem;
  transition:background 0.2s !important;
  border-bottom:none !important;
}
.nav-cta:hover { background:var(--g-mid) !important; }


/* ── MOBILE NAV HAMBURGER ── */
.nav-mobile-btn {
  display:none; background:none; border:none; cursor:pointer;
  padding:0.3rem; flex-direction:column; gap:5px;
}
.nav-mobile-btn span {
  display:block; width:22px; height:1.5px; background:var(--g-dark);
  transition:transform 0.3s, opacity 0.3s;
}
.nav-mobile-btn.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.nav-mobile-btn.open span:nth-child(2) { opacity:0; }
.nav-mobile-btn.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* ── SECTION BASE ── */
section { padding:6rem 5rem; }
hr {
  border:none; height:1px;
  background:linear-gradient(to right, transparent, rgba(24,46,30,0.12), transparent);
  margin:0 5rem;
}

/* ── LABELS ── */
.slabel {
  font-family:'DM Mono', monospace;
  font-size:0.65rem;
  letter-spacing:0.25em;
  text-transform:uppercase;
  color:var(--g-light);
  display:block;
  margin-bottom:1rem;
}
.slabel-copper { color:var(--copper); }
.slabel-gold   { color:var(--gold); }

/* ── HEADINGS ── */
h2 {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(2rem, 3.5vw, 3.2rem);
  font-weight:700;
  line-height:1.15;
  margin-bottom:1.5rem;
}
h2 em { font-style:italic; color:var(--g-light); }
p { color:var(--mid); margin-bottom:1.2rem; font-size:0.95rem; }
p:last-child { margin-bottom:0; }

/* ── DARK SECTION ── */
.section-dark { background:var(--g-dark); }
.section-dark h2 { color:var(--cream); }
.section-dark h2 em { color:var(--g-light); }
.section-dark p { color:rgba(247,242,235,0.6); }
.section-dark .slabel { color:var(--g-light); }

/* ── PAGE HERO ── */
.page-hero {
  min-height:55vh;
  display:flex; align-items:flex-end;
  padding:8rem 5rem 5rem;
  position:relative; overflow:hidden;
  background:var(--g-dark);
}
.page-hero::before {
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(ellipse at 80% 30%, rgba(111,168,130,0.08) 0%, transparent 60%);
  pointer-events:none;
}
.page-hero-content { position:relative; z-index:2; max-width:740px; }
.page-hero h1 {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(3.5rem, 6vw, 6rem);
  font-weight:700;
  line-height:0.95;
  color:var(--cream);
  margin-bottom:1.5rem;
}
.page-hero h1 em { font-style:italic; color:var(--g-light); display:block; }
.page-hero p { color:rgba(247,242,235,0.6); font-size:1rem; max-width:560px; }
.page-hero .slabel { color:var(--g-light); margin-bottom:1.5rem; }

/* ── BUTTONS ── */
.btn {
  display:inline-block; padding:0.9rem 2.2rem;
  background:var(--g-dark); color:var(--cream);
  text-decoration:none;
  font-family:'DM Mono', monospace;
  font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase;
  font-weight:500; border:1.5px solid var(--g-dark);
  transition:background 0.25s, border-color 0.25s, transform 0.2s;
}
.btn:hover { background:var(--g-mid); border-color:var(--g-mid); transform:translateY(-2px); }
.btn-o { background:transparent; color:var(--g-dark); border-color:var(--g-dark); }
.btn-o:hover { background:var(--g-dark); color:var(--cream); }
.btn-light { background:var(--cream); color:var(--g-dark); border-color:var(--cream); }
.btn-light:hover { background:var(--g-light); border-color:var(--g-light); }

/* ── MEGA STAT ── */
.stat-mega {
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(5rem, 10vw, 10rem);
  font-weight:700; line-height:0.88;
  color:var(--g-dark);
  letter-spacing:-0.02em;
}
.stat-mega-light { color:var(--cream); }
.stat-mega-green { color:var(--g-light); }
.stat-unit {
  font-family:'DM Mono', monospace;
  font-size:0.62rem; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--g-light); display:block; margin-top:0.6rem;
}
.stat-unit-dim { color:rgba(247,242,235,0.45); }

/* ── DATA PANEL ── */
.data-panel {
  background:var(--g-faint);
  border:1px solid var(--g-border);
  padding:2rem;
}
.data-panel-dark {
  background:rgba(24,46,30,0.85);
  border:1px solid rgba(111,168,130,0.15);
  padding:2rem;
}
.data-label {
  font-family:'DM Mono', monospace;
  font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--g-light); margin-bottom:0.5rem; display:block;
}

/* ── REVEAL ── */
.reveal { opacity:0; transform:translateY(22px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ── FOOTER ── */
footer { background:var(--g-dark); color:var(--cream); padding:5rem 5rem 3rem; }
.footer-grid {
  display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr;
  gap:4rem; margin-bottom:4rem;
}
.footer-brand img { height:34px; opacity:0.9; display:block; margin-bottom:1.5rem; object-fit:contain; }
.footer-brand p { font-size:0.85rem; color:rgba(247,242,235,0.4); max-width:280px; }
.footer-brand .back-link {
  display:inline-flex; align-items:center; gap:0.4rem;
  font-family:'DM Mono', monospace; font-size:0.6rem;
  letter-spacing:0.15em; text-transform:uppercase;
  color:var(--g-light); text-decoration:none;
  border-bottom:1px solid var(--g-border);
  padding-bottom:1px; margin-top:1.2rem;
  transition:color 0.2s;
}
.footer-brand .back-link:hover { color:var(--cream); }
.fc h4 {
  font-family:'DM Mono', monospace; font-size:0.6rem;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--g-light); margin-bottom:1.5rem;
}
.fc a {
  display:block; text-decoration:none;
  color:rgba(247,242,235,0.4); font-size:0.85rem;
  margin-bottom:0.75rem; transition:color 0.2s;
}
.fc a:hover { color:var(--cream); }
.footer-patent {
  font-family:'DM Mono', monospace; font-size:0.58rem;
  letter-spacing:0.06em; color:rgba(247,242,235,0.22);
  margin-top:1rem; line-height:1.8;
}
.footer-bottom {
  display:flex; justify-content:space-between; padding-top:2rem;
  border-top:1px solid rgba(247,242,235,0.06);
  flex-wrap:wrap; gap:0.5rem;
}
.footer-bottom p {
  font-family:'DM Mono', monospace; font-size:0.58rem;
  letter-spacing:0.08em; color:rgba(247,242,235,0.22); margin-bottom:0;
}

/* ── MOBILE ── */
@media(max-width:900px) {
  nav { padding:1rem 1.5rem; }
  .nav-mobile-btn { display:flex; }
  .nav-links { display:none; }
  .nav-links.mobile-open {
    display:flex; flex-direction:column;
    position:fixed; top:57px; left:0; right:0;
    background:rgba(247,242,235,0.98); backdrop-filter:blur(14px);
    padding:2rem 1.5rem; border-bottom:1px solid rgba(24,46,30,0.08);
    gap:1.5rem; z-index:199; list-style:none;
  }
  .nav-links.mobile-open a { font-size:0.8rem; }
  section { padding:4rem 1.5rem; }
  hr { margin:0 1.5rem; }
  .page-hero { padding:6rem 1.5rem 3rem; min-height:45vh; }
  .footer-grid { grid-template-columns:1fr; gap:2.5rem; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  footer { padding:4rem 1.5rem 2.5rem; }
}

/* ── GALLERY CTA BAR ── */
.gallery-cta-bar {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--g-dark); padding:2.5rem 5rem;
  text-decoration:none; border-top:1px solid rgba(111,168,130,0.08);
  transition:background 0.2s;
}
.gallery-cta-bar:hover { background:#1a3322; }
.gcb-label {
  font-family:'DM Mono',monospace; font-size:0.58rem;
  letter-spacing:0.22em; text-transform:uppercase;
  color:rgba(111,168,130,0.6); display:block; margin-bottom:0.4rem;
}
.gcb-heading {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.4rem,2.5vw,2rem);
  font-weight:700; color:var(--cream); line-height:1.2;
}
.gcb-sub {
  font-family:'DM Mono',monospace; font-size:0.6rem;
  letter-spacing:0.1em; color:rgba(247,242,235,0.35);
  display:block; margin-top:0.3rem;
}
.gcb-btn {
  font-family:'DM Mono',monospace; font-size:0.72rem;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--g-light); border:1px solid rgba(111,168,130,0.35);
  padding:1rem 2.2rem; display:flex; align-items:center; gap:0.8rem;
  transition:background 0.2s, border-color 0.2s; white-space:nowrap; flex-shrink:0;
}
.gallery-cta-bar:hover .gcb-btn { background:rgba(111,168,130,0.08); border-color:rgba(111,168,130,0.6); }

/* ── GALLERY PAGE ── */
.gal-section { padding:0; }
.gal-header { padding:5rem 5rem 2.5rem; }
.gal-header-dark { padding:5rem 5rem 2.5rem; background:var(--g-dark); }
.gal-masonry { columns:4 200px; column-gap:3px; }
.gal-item { break-inside:avoid; margin-bottom:3px; overflow:hidden; position:relative; }
.gal-item img { width:100%; display:block; transition:transform 0.6s ease; cursor:zoom-in; }
.gal-item:hover img { transform:scale(1.03); }
@media(max-width:900px) {
  .gal-masonry { columns:2 140px; }
  .gal-header, .gal-header-dark { padding:3rem 1.5rem 2rem; }
  .gallery-cta-bar { padding:2rem 1.5rem; flex-direction:column; align-items:flex-start; gap:1.5rem; }
}

/* ── LIGHTBOX ── */
#lightbox {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,0.93); z-index:9999;
  align-items:center; justify-content:center;
}
#lightbox.lb-open { display:flex; }
#lightbox-img {
  max-width:92vw; max-height:92vh;
  display:block; object-fit:contain; cursor:default;
}
#lightbox-close {
  position:absolute; top:1.2rem; right:1.8rem;
  background:none; border:none;
  color:rgba(255,255,255,0.5); font-size:2rem;
  cursor:pointer; line-height:1; padding:0.5rem;
  transition:color 0.2s; font-family:sans-serif;
}
#lightbox-close:hover { color:#fff; }
img.lb-trigger { cursor:zoom-in; }
