/* ==========================================================================
   BASE — Reset, typography, global elements
   ========================================================================== */

*{ margin:0; padding:0; box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  -webkit-font-smoothing:antialiased;
}

body{
  font-family:var(--font-body);
  font-size:var(--fs-body);
  color:var(--cc-text-primary);
  background:var(--cc-cream);
  line-height:1.65;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }

a{ text-decoration:none; color:inherit; }

ul, ol{ list-style:none; }

button{ font-family:inherit; cursor:pointer; border:none; background:none; }

::selection{ background:var(--cc-gold); color:var(--cc-charcoal); }

/* ---- Typography ---- */

h1, h2, h3, h4{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:-0.01em;
  line-height:1.1;
  color:var(--cc-charcoal);
}

.eyebrow{
  font-family:var(--font-mono);
  font-size:var(--fs-caption);
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--cc-gold-deep);
  display:inline-flex;
  align-items:center;
  gap:var(--space-2xs);
  font-weight:600;
}

.eyebrow::before{
  content:'';
  width:18px;
  height:2px;
  background:var(--cc-gold);
  display:inline-block;
}

.eyebrow--light{ color:var(--cc-gold-bright); }

.lead{
  font-size:var(--fs-lead);
  color:var(--cc-text-muted);
  font-weight:400;
  line-height:1.6;
}

.text-mono{ font-family:var(--font-mono); }

/* ---- Layout utilities ---- */

.container-cc{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
  padding-inline:clamp(1.25rem, 4vw, 3rem);
}

.section{
  padding-block:var(--space-3xl);
  position:relative;
}

@media (max-width: 768px){
  .section{ padding-block:var(--space-2xl); }
}

.section-head{
  max-width:680px;
  margin-bottom:var(--space-xl);
}

.section-head.center{
  margin-inline:auto;
  text-align:center;
}

.section-head h2{
  margin-top:var(--space-sm);
}

/* ---- Buttons ---- */

.btn-cc{
  font-family:var(--font-mono);
  font-size:0.85rem;
  font-weight:600;
  letter-spacing:0.04em;
  text-transform:uppercase;
  padding:0.95rem 1.9rem;
  border-radius:var(--radius-pill);
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  transition:transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
  white-space:nowrap;
}

.btn-cc svg{ width:16px; height:16px; flex-shrink:0; transition:transform var(--dur-fast) var(--ease-out); }

.btn-cc:hover{ transform:translateY(-2px); }
.btn-cc:hover svg{ transform:translateX(3px); }
.btn-cc:active{ transform:translateY(0); }

.btn-gold{
  background:linear-gradient(135deg, var(--cc-gold-bright), var(--cc-gold-deep));
  color:var(--cc-charcoal);
  box-shadow:var(--shadow-gold);
}
.btn-gold:hover{ box-shadow:0 18px 40px rgba(232,172,31,0.4); }

.btn-dark{
  background:var(--cc-charcoal);
  color:var(--cc-cream);
}
.btn-dark:hover{ background:#000; }

.btn-outline-light{
  background:transparent;
  color:var(--cc-cream);
  border:1.5px solid var(--cc-border-dark);
}
.btn-outline-light:hover{ background:rgba(250,248,244,0.08); border-color:rgba(250,248,244,0.3); }

.btn-outline-dark{
  background:transparent;
  color:var(--cc-charcoal);
  border:1.5px solid var(--cc-border);
}
.btn-outline-dark:hover{ background:var(--cc-charcoal); color:var(--cc-cream); border-color:var(--cc-charcoal); }

.btn-block-mobile{ width:100%; justify-content:center; }

/* ---- Diagonal divider — signature structural device, lifted from the logo's cut ---- */

.diagonal-divider{
  position:relative;
  height:90px;
  overflow:hidden;
  z-index:2;
}

.diagonal-divider svg{ width:100%; height:100%; display:block; }

@media (max-width: 600px){
  .diagonal-divider{ height:54px; }
}

/* ---- Reveal on scroll ---- */

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-stagger > *{ transition-delay:calc(var(--i, 0) * 90ms); }

/* ---- Focus visibility (accessibility) ---- */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline:2.5px solid var(--cc-gold);
  outline-offset:3px;
  border-radius:4px;
}

/* ---- Scrollbar accent (progressive enhancement) ---- */

::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--cc-cream-dim); }
::-webkit-scrollbar-thumb{ background:var(--cc-gold); border-radius:10px; }