/* ============================================================
   Ascend Collective Global — shared styles
   Copper / Slate / Montserrat system
   ============================================================ */

@font-face { font-family:'Montserrat'; font-style:normal; font-weight:300; src:url('assets/fonts/Montserrat-Light.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:400; src:url('assets/fonts/Montserrat-Regular.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:500; src:url('assets/fonts/Montserrat-Medium.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:600; src:url('assets/fonts/Montserrat-SemiBold.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:700; src:url('assets/fonts/Montserrat-Bold.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:800; src:url('assets/fonts/Montserrat-ExtraBold.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:normal; font-weight:900; src:url('assets/fonts/Montserrat-Black.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:italic; font-weight:400; src:url('assets/fonts/Montserrat-Italic.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Montserrat'; font-style:italic; font-weight:500; src:url('assets/fonts/Montserrat-MediumItalic.ttf') format('truetype'); font-display:swap; }

*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
html, body { margin:0; padding:0; }
body {
  font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;
  color:#1F262B;
  background:#FAF7F3;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img { max-width:100%; display:block; }
a { color:inherit; }

/* ---------- keyframes ---------- */
@keyframes acg-rise  { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
@keyframes acg-pulse { 0% { transform:scale(1); opacity:0.55; } 70% { transform:scale(3.4); opacity:0; } 100% { transform:scale(3.4); opacity:0; } }
@keyframes acg-pulse2{ 0% { transform:scale(1); opacity:0.45; } 70% { transform:scale(3); opacity:0; } 100% { opacity:0; } }
@keyframes acg-spin  { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }

/* ---------- nav (fixed, paper surface; condenses on scroll) ---------- */
.acg-nav {
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:#FAF7F3;
  border-bottom:1px solid transparent;
  transition:background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.acg-nav.scrolled {
  background:rgba(250,247,243,0.92);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:1px solid #D9D2C7;
  box-shadow:0 6px 24px rgba(31,38,43,0.06);
}

/* ---------- hover states (replace design-runtime style-hover) ---------- */
.nav-link { color:#4A555C; text-decoration:none; transition:color .2s ease; }
.nav-link:hover { color:#1F262B; }
.nav-link.active { color:#C28050; }

.btn-copper { background:#C28050; color:#fff; text-decoration:none; transition:background .2s ease; }
.btn-copper:hover { background:#9E6537; }

.btn-outline { background:transparent; color:#1F262B; border:1.5px solid #1F262B; text-decoration:none; transition:background .2s ease, color .2s ease; }
.btn-outline:hover { background:#1F262B; color:#FAF7F3; }

.footer-link { text-decoration:none; color:#94A4B0; transition:color .2s ease; }
.footer-link:hover { color:#FAF7F3; }

/* ---------- reveal-on-scroll ---------- */
[data-reveal] { transition:opacity .6s cubic-bezier(.4,0,.2,1), transform .6s cubic-bezier(.4,0,.2,1); }
[data-reveal].pre-hide { opacity:0; transform:translateY(22px); }

/* ============================================================
   Responsive — design is desktop-first (1280px). Stack on narrow.
   ============================================================ */
@media (max-width:900px){
  .acg-nav-links { display:none !important; }
}

@media (max-width:860px){
  .acg-hero-grid { grid-template-columns:1fr !important; gap:40px !important; padding-top:120px !important; }
  .acg-hero-globe { max-width:420px; margin:0 auto; width:100%; }
  .acg-proof-grid { grid-template-columns:1fr !important; }
  .acg-proof-grid > div { border-right:none !important; padding:34px 0 !important; border-bottom:1px solid rgba(217,210,199,0.16); }
  .acg-division-row { grid-template-columns:1fr !important; }
  .acg-division-row .acg-division-visual { min-height:220px !important; order:-1; }
  .acg-reach-grid { grid-template-columns:1fr !important; gap:44px !important; }
  .acg-leaders-grid { grid-template-columns:1fr !important; }
  .acg-leader-card { grid-template-columns:1fr !important; }
  .acg-leader-card .acg-leader-portrait { min-height:300px !important; }
  .acg-teams-grid { grid-template-columns:1fr !important; }
  .acg-footer-grid { grid-template-columns:1fr 1fr !important; }
  h1 { font-size:44px !important; }
  .acg-h2 { font-size:32px !important; }
  .acg-cta-h2 { font-size:38px !important; }
}

@media (max-width:520px){
  .acg-pad { padding-left:22px !important; padding-right:22px !important; }
  .acg-footer-grid { grid-template-columns:1fr !important; }
  h1 { font-size:36px !important; }
}
