/* =======================================================
   CCC — Cascavel Country Club
   style.css — CSS base compartilhado (todas as páginas)
   ======================================================= */

:root { --transition-theme: background 0.5s ease, color 0.5s ease, border-color 0.5s ease; }

[data-theme="dark"] {
  --bg-base:#080910; --bg-surface:#0f1018; --bg-card:#13141f; --bg-card-hover:#181929;
  --bg-nav:rgba(8,9,16,0.82); --border:rgba(255,255,255,0.07); --border-hover:rgba(255,255,255,0.18);
  --text-primary:#f0f2ff; --text-secondary:#8b8fa8; --text-muted:#4a4d65;
  --accent:#2ECC71; --accent-glow:rgba(46,204,113,0.25); --accent-subtle:rgba(46,204,113,0.08);
  --accent-2:#1abc9c; --danger:#e74c3c; --warning:#f39c12; --info:#3498db;
  --badge-bg:rgba(46,204,113,0.12);
  --card-shadow:0 4px 32px rgba(0,0,0,0.45); --noise-opacity:0.025; --grid-color:rgba(255,255,255,0.025);
  --gold:#f0c040; --silver:#b0b8c8; --bronze:#cd8040;
  --footer-bg:#0d1a12; --topbar-bg:#0d1a12;
}

[data-theme="light"] {
  --bg-base:#f4f6f2; --bg-surface:#eef0ec; --bg-card:#ffffff; --bg-card-hover:#f9faf8;
  --bg-nav:rgba(244,246,242,0.92); --border:rgba(0,0,0,0.08); --border-hover:rgba(0,0,0,0.2);
  --text-primary:#111318; --text-secondary:#545a6e; --text-muted:#a0a8b8;
  --accent:#1a9e52; --accent-glow:rgba(26,158,82,0.2); --accent-subtle:rgba(26,158,82,0.07);
  --accent-2:#16876f; --danger:#c0392b; --warning:#d68910; --info:#2980b9;
  --badge-bg:rgba(26,158,82,0.1);
  --card-shadow:0 4px 24px rgba(0,0,0,0.07); --noise-opacity:0.012; --grid-color:rgba(0,0,0,0.04);
  --gold:#c9a227; --silver:#7a8494; --bronze:#a05c20;
  --footer-bg:#0f2d1a; --topbar-bg:#0f2d1a;
}

*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'DM Sans',sans-serif;
  background:var(--bg-base);
  color:var(--text-primary);
  line-height:1.6;
  overflow-x:hidden;
  transition:var(--transition-theme);
}
body::before {
  content:''; position:fixed; inset:0; pointer-events:none; z-index:1000;
  opacity:var(--noise-opacity);
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.grid-bg {
  position:fixed; inset:0; z-index:0; pointer-events:none; transition:var(--transition-theme);
  background-image:linear-gradient(var(--grid-color) 1px,transparent 1px),
                   linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);
  background-size:64px 64px;
}
.scroll-progress {
  position:fixed; top:0; left:0; height:2px; width:0;
  background:var(--accent); z-index:201;
  box-shadow:0 0 8px var(--accent-glow);
}

/* =============================================
   TOP BAR
============================================= */
.topbar {
  background:var(--footer-bg); padding:8px 24px;
  display:flex; align-items:center; justify-content:space-between;
  position:relative; z-index:101;
}
.topbar-left  { display:flex; align-items:center; gap:6px; font-size:12px; color:rgba(255,255,255,0.85); }
.topbar-left svg { opacity:0.7; }
.topbar-right { display:flex; align-items:center; gap:14px; }
.topbar-social { color:rgba(255,255,255,0.7); transition:color 0.2s; cursor:pointer; text-decoration:none; display:flex; }
.topbar-social:hover { color:#fff; }

/* =============================================
   NAV
============================================= */
.nav { position:sticky; top:0; z-index:100; background:var(--bg-nav); backdrop-filter:blur(20px) saturate(180%); border-bottom:1px solid var(--border); transition:var(--transition-theme); }
.nav-inner { max-width:1280px; margin:0 auto; padding:0 24px; height:72px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.nav-logo { display:flex; align-items:center; gap:14px; text-decoration:none; }
.nav-logo-badge { width:42px; height:42px; background:var(--accent); border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:'Bebas Neue',sans-serif; font-size:19px; color:#fff; letter-spacing:1px; box-shadow:0 0 20px var(--accent-glow); transition:box-shadow 0.3s; }
.nav-logo:hover .nav-logo-badge { box-shadow:0 0 32px var(--accent-glow); }
.nav-logo-text { font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:2px; color:var(--text-primary); transition:var(--transition-theme); }
.nav-links { display:flex; gap:32px; list-style:none; }
.nav-links a { font-size:12px; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; color:var(--text-secondary); text-decoration:none; transition:color 0.2s; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--accent); transition:width 0.3s; }
.nav-links a:hover { color:var(--text-primary); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-links a.active { color:var(--accent); }
.nav-right { display:flex; align-items:center; gap:16px; }
.theme-toggle { width:48px; height:26px; background:var(--border); border-radius:13px; border:1px solid var(--border); cursor:pointer; position:relative; transition:background 0.3s,border-color 0.3s; flex-shrink:0; }
.theme-toggle:hover { border-color:var(--accent); }
.theme-toggle-knob { position:absolute; top:3px; left:3px; width:18px; height:18px; background:var(--text-primary); border-radius:50%; transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1),background 0.3s; display:flex; align-items:center; justify-content:center; font-size:10px; }
[data-theme="light"] .theme-toggle-knob { transform:translateX(22px); background:var(--accent); }
.btn-assoc { padding:9px 22px; background:var(--accent); color:#fff; border:none; border-radius:8px; font-size:12px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; text-decoration:none; cursor:pointer; transition:all 0.2s; white-space:nowrap; }
.btn-assoc:hover { transform:translateY(-1px); box-shadow:0 8px 24px var(--accent-glow); }

/* =============================================
   FOOTER
============================================= */
footer { background:var(--footer-bg); border-top:1px solid rgba(255,255,255,0.04); transition:var(--transition-theme); }
.footer-top { max-width:1280px; margin:0 auto; padding:56px 24px 40px; display:grid; grid-template-columns:280px 1fr 1fr 1fr; gap:48px; }
.footer-logo { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.footer-logo-badge { width:40px; height:40px; background:var(--accent); border-radius:10px; display:flex; align-items:center; justify-content:center; font-family:'Bebas Neue',sans-serif; font-size:17px; color:#fff; }
.footer-logo-text { font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:2px; color:#fff; }
.footer-tagline { font-size:13px; color:rgba(255,255,255,0.5); line-height:1.6; margin-bottom:20px; }
.footer-socials { display:flex; gap:12px; }
.footer-social-btn { width:36px; height:36px; border-radius:8px; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.6); transition:all 0.2s; cursor:pointer; text-decoration:none; }
.footer-social-btn:hover { background:var(--accent); border-color:var(--accent); color:#fff; }
.footer-col-title { font-size:11px; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.4); margin-bottom:16px; }
.footer-col-links { display:flex; flex-direction:column; gap:10px; }
.footer-col-links a { font-size:13px; color:rgba(255,255,255,0.6); text-decoration:none; transition:color 0.2s; display:flex; align-items:center; gap:6px; }
.footer-col-links a::before { content:'›'; color:var(--accent); }
.footer-col-links a:hover { color:#fff; }
.footer-contact-item { display:flex; align-items:center; gap:10px; font-size:13px; color:rgba(255,255,255,0.6); margin-bottom:10px; }
.footer-contact-item svg { color:var(--accent); flex-shrink:0; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.06); padding:20px 24px; text-align:center; max-width:1280px; margin:0 auto; font-size:12px; color:rgba(255,255,255,0.3); }

/* =============================================
   FADE-UP
============================================= */
.fade-up { opacity:0; transform:translateY(28px); transition:opacity 0.6s ease, transform 0.6s ease; }
.fade-up.visible { opacity:1; transform:translateY(0); }

/* =============================================
   SEÇÕES COMUNS
============================================= */
.section-wrap { padding:80px 24px; position:relative; z-index:1; }
.section-wrap.alt { background:var(--bg-surface); transition:var(--transition-theme); }
.section-inner { max-width:1280px; margin:0 auto; }
.section-head { text-align:center; margin-bottom:48px; }
.section-eyebrow { display:inline-flex; align-items:center; gap:8px; margin-bottom:12px; font-size:11px; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:var(--accent); }
.section-eyebrow::before,.section-eyebrow::after { content:''; width:20px; height:1px; background:var(--accent); }
.section-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(36px,5vw,56px); color:var(--text-primary); line-height:1; margin-bottom:10px; transition:var(--transition-theme); }
.section-sub { font-size:15px; color:var(--text-secondary); max-width:480px; margin:0 auto; transition:var(--transition-theme); }
.view-all-btn { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent); text-decoration:none; transition:gap 0.2s; }
.view-all-btn:hover { gap:10px; }
.view-all-btn svg { transition:transform 0.2s; }
.view-all-btn:hover svg { transform:translateX(3px); }

/* =============================================
   HAMBURGER + MOBILE MENU
============================================= */
.hamburger { display:none; flex-direction:column; justify-content:center; gap:5px; width:40px; height:40px; cursor:pointer; border:none; background:transparent; padding:6px; border-radius:8px; transition:background 0.2s; }
.hamburger:hover { background:var(--accent-subtle); }
.hamburger span { display:block; height:2px; background:var(--text-primary); border-radius:2px; transition:all 0.35s cubic-bezier(0.34,1.56,0.64,1); transform-origin:center; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

.mobile-menu { position:fixed; inset:0; z-index:99; background:var(--bg-base); display:flex; flex-direction:column; padding:0; pointer-events:none; transform:translateX(100%); transition:transform 0.4s cubic-bezier(0.77,0,0.175,1); }
.mobile-menu.open { transform:translateX(0); pointer-events:auto; }
.mobile-menu-header { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; border-bottom:1px solid var(--border); background:var(--bg-surface); min-height:72px; }
.mobile-menu-logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.mobile-menu-logo-badge { width:36px; height:36px; background:var(--accent); border-radius:9px; display:flex; align-items:center; justify-content:center; font-family:'Bebas Neue',sans-serif; font-size:16px; color:#fff; }
.mobile-menu-logo-text { font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:2px; color:var(--text-primary); }
.mobile-menu-body { flex:1; overflow-y:auto; padding:24px; display:flex; flex-direction:column; gap:8px; }
.mobile-menu-item { display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:12px; font-size:16px; font-weight:500; color:var(--text-primary); text-decoration:none; border:1px solid transparent; transition:all 0.2s; cursor:pointer; }
.mobile-menu-item:hover, .mobile-menu-item.active { background:var(--accent-subtle); border-color:rgba(46,204,113,0.2); color:var(--accent); }
.mobile-menu-item svg { color:var(--accent); flex-shrink:0; }
.mobile-menu-divider { height:1px; background:var(--border); margin:8px 0; }
.mobile-menu-footer { padding:20px 24px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.mobile-theme-row { display:flex; align-items:center; gap:10px; font-size:13px; color:var(--text-secondary); }
.mobile-assoc-btn { padding:11px 22px; background:var(--accent); color:#fff; border:none; border-radius:10px; font-size:13px; font-weight:700; font-family:'DM Sans',sans-serif; text-decoration:none; cursor:pointer; transition:all 0.2s; white-space:nowrap; }
.mobile-assoc-btn:hover { box-shadow:0 6px 20px var(--accent-glow); }

/* =============================================
   RESPONSIVE GERAL
============================================= */
@media (max-width:860px) {
  .hamburger { display:flex; }
  .nav-links { display:none !important; }
  .nav-right .btn-assoc { display:none; }
  .theme-toggle { display:none; }
}
@media (max-width:768px) {
  .footer-top { grid-template-columns:1fr !important; gap:28px !important; padding:36px 20px 24px !important; }
  .footer-bottom { padding:16px 20px !important; }
  .footer-brand { text-align:center; }
  .footer-socials { justify-content:center; }
}
@media (max-width:480px) {
  .topbar { display:none; }
  .section-wrap { padding:56px 16px; }
  .footer-top { padding:28px 16px 20px !important; }
}
