@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap');

:root {
  /* Light theme — clean ivory/white base with warm gold + navy accents */
  --bg:        #faf8f4;
  --bg2:       #f4f1eb;
  --surface:   #ffffff;
  --surface2:  #f8f6f1;
  --surface3:  #efe9de;
  --accent1:   #b8892a;   /* deeper gold — readable on light */
  --accent2:   #d4a853;   /* lighter gold */
  --accent3:   #2d5f82;   /* deep navy blue */
  --accent4:   #4a7fa5;   /* medium blue */
  --text:       #1a1a2e;
  --text-muted: #6b7280;
  --text-dim:   #9ca3af;
  --border:     rgba(0,0,0,0.08);
  --border-gold: rgba(184,137,42,0.25);
  --border-blue: rgba(45,95,130,0.2);
  --grad1: linear-gradient(135deg, #b8892a, #d4a853);
  --grad2: linear-gradient(135deg, #2d5f82, #4a7fa5);
  --grad3: linear-gradient(135deg, #b8892a, #d4a853, #2d5f82);
  --grad-bg: linear-gradient(135deg, rgba(184,137,42,0.06), rgba(45,95,130,0.04));
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.08), 0 2px 6px rgba(0,0,0,0.05);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.1), 0 4px 12px rgba(0,0,0,0.06);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 300;
  line-height: 1.7;
  overflow-x: hidden;
}
h1,h2,h3,h4,h5 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.01em;
}
a { text-decoration: none; color: inherit; }
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Subtle paper texture */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.018;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size: 128px;
  animation: grainShift 8s steps(2) infinite;
}
@keyframes grainShift {
  0%  { background-position: 0 0; }
  25% { background-position: -5% -10%; }
  50% { background-position: 10% 5%; }
  75% { background-position: -10% 10%; }
}

/* GEO BG */
.geo-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.grid-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(184,137,42,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(184,137,42,0.06) 1px, transparent 1px);
  background-size: 80px 80px;
  animation: gridDrift 40s linear infinite;
}
@keyframes gridDrift {
  0%   { background-position: 0 0; }
  100% { background-position: 80px 80px; }
}
.orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.18;
  animation: orbPulse 12s ease-in-out infinite alternate;
}
.orb1 { width:700px;height:700px;background:#d4a853;top:-300px;right:-200px; }
.orb2 { width:500px;height:500px;background:#4a7fa5;bottom:50px;left:-200px;animation-delay:-4s; }
.orb3 { width:350px;height:350px;background:#b8892a;top:40%;right:10%;animation-delay:-7s; }
@keyframes orbPulse {
  0%   { opacity:0.12;transform:scale(1) rotate(0deg); }
  100% { opacity:0.24;transform:scale(1.1) rotate(4deg); }
}

/* NAV */
nav {
  position: fixed;
  top:0;left:0;right:0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.1rem 4rem;
  background: rgba(250,248,244,0.88);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 1px solid var(--border);
  transition: background 0.4s, box-shadow 0.4s;
}
nav.scrolled {
  background: rgba(250,248,244,0.98);
  box-shadow: 0 1px 30px rgba(0,0,0,0.08);
  border-bottom-color: rgba(184,137,42,0.15);
}
.logo {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 1.5rem;
  color: var(--accent1);
  letter-spacing: -0.02em;
  z-index: 2001;
  position: relative;
}
.logo span { color: var(--text); }
.nav-links { display:flex;gap:2.5rem;list-style:none; }
.nav-links a {
  color: var(--text-muted);
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  transition: color 0.2s;
  position: relative;
}
.nav-links a::after {
  content:'';
  position:absolute;
  bottom:-4px;left:0;right:0;
  height:1px;
  background: var(--accent1);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.3s;
}
.nav-links a:hover,.nav-links a.active { color:var(--accent1); }
.nav-links a:hover::after,.nav-links a.active::after { transform:scaleX(1); }
.nav-cta {
  background: transparent;
  border: 1px solid var(--accent1);
  color: var(--accent1);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 600;
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.55rem 1.4rem;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s;
  display: inline-block;
  clip-path: polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
}
.nav-cta:hover {
  background: var(--accent1);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 8px 28px rgba(184,137,42,0.25);
}
.hamburger {
  display:none;flex-direction:column;gap:5px;
  cursor:pointer;background:none;border:none;padding:6px;z-index:2001;
}
.hamburger span {
  display:block;width:24px;height:2px;
  background:var(--text);border-radius:2px;
  transition:transform 0.3s,opacity 0.3s;
}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-menu {
  display:none;position:fixed;inset:0;z-index:1900;
  background:rgba(250,248,244,0.98);backdrop-filter:blur(24px);
  flex-direction:column;align-items:center;justify-content:center;
}
.mobile-menu.open{display:flex;}
.mobile-menu a {
  color:var(--text);font-family:'Playfair Display',serif;
  font-size:clamp(1.8rem,8vw,2.5rem);font-weight:700;
  padding:0.6rem 2rem;text-align:center;transition:color 0.2s;display:block;width:100%;
}
.mobile-menu a:hover,.mobile-menu a.active{color:var(--accent1);}
.mobile-divider{width:40px;height:1px;background:var(--border);margin:0.2rem auto;}
.mobile-cta {
  margin-top:2rem;background:var(--grad1);color:#fff;
  font-family:'Plus Jakarta Sans',sans-serif;font-size:0.95rem;font-weight:700;
  padding:0.9rem 3rem;clip-path:polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
  display:inline-block;
}

/* COMMON */
.section-label {
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent1);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  font-weight: 600;
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.section-label::before {
  content:'';display:block;width:2rem;height:1px;
  background:linear-gradient(90deg, var(--accent1), transparent);
}
.section-title { font-size:clamp(1.8rem,3.5vw,3.5rem);margin-bottom:2.5rem;max-width:700px; }

.btn-primary {
  background: var(--grad1);
  border: none;
  color: #fff;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 0.83rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.95rem 2.2rem;
  cursor: pointer;
  clip-path: polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
  transition: transform 0.2s, box-shadow 0.2s, filter 0.2s;
  display: inline-block;
  position: relative;
  overflow: hidden;
}
.btn-primary::before {
  content:'';position:absolute;inset:0;
  background:rgba(255,255,255,0.18);
  transform:translateX(-100%) skew(-15deg);
  transition:transform 0.45s;
}
.btn-primary:hover::before{transform:translateX(120%) skew(-15deg);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(184,137,42,0.3);filter:brightness(1.06);}

.btn-secondary {
  background: transparent;
  border: 1px solid rgba(184,137,42,0.4);
  color: var(--text);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 600;
  font-size: 0.83rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.95rem 2.2rem;
  cursor: pointer;
  clip-path: polygon(10px 0%,100% 0%,calc(100% - 10px) 100%,0% 100%);
  transition: border-color 0.2s, color 0.2s, transform 0.2s, background 0.2s;
  display: inline-block;
}
.btn-secondary:hover {
  border-color:var(--accent1);color:var(--accent1);
  background:rgba(184,137,42,0.06);transform:translateY(-2px);
}

.grad-text {
  color: var(--accent1);
}
.grad-text1 {
  color: var(--accent1);
}

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

/* MARQUEE */
.marquee-wrap {
  overflow:hidden;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:1.1rem 0;background:var(--surface2);position:relative;z-index:1;
}
.marquee-track {
  display:flex;gap:3rem;
  animation:marquee 32s linear infinite;white-space:nowrap;
}
.marquee-item {
  display:flex;align-items:center;gap:0.8rem;
  font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--text-muted);flex-shrink:0;font-weight:500;
}
.marquee-item .dot {
  width:4px;height:4px;background:var(--accent1);border-radius:50%;flex-shrink:0;
  box-shadow:0 0 5px rgba(184,137,42,0.4);
}
@keyframes marquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* FOOTER */
footer {
  background:#2c2416;border-top:3px solid var(--accent1);
  padding:4rem 4rem 2rem;position:relative;z-index:1;
}
.footer-inner {
  max-width:1400px;margin:0 auto;
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem;
}
.footer-brand .logo-ft {
  font-family:'Playfair Display',serif;font-weight:900;font-size:1.5rem;
  color:var(--accent1);letter-spacing:-0.02em;display:inline-block;margin-bottom:0.8rem;
}
.footer-brand .logo-ft span { color:#fff; }
.footer-brand p{font-size:0.82rem;color:rgba(255,255,255,0.5);line-height:1.75;max-width:260px;}
.footer-col h4 {
  font-family:'Plus Jakarta Sans',sans-serif;font-size:0.63rem;font-weight:700;
  letter-spacing:0.18em;text-transform:uppercase;color:var(--accent2);margin-bottom:1rem;
}
.footer-col a{display:block;font-size:0.82rem;color:rgba(255,255,255,0.5);margin-bottom:0.55rem;transition:color 0.2s;}
.footer-col a:hover{color:var(--accent2);}
.footer-bottom {
  border-top:1px solid rgba(255,255,255,0.1);padding-top:1.5rem;
  display:flex;justify-content:space-between;align-items:center;
  max-width:1400px;margin:0 auto;font-size:0.74rem;color:rgba(255,255,255,0.3);
  flex-wrap:wrap;gap:0.5rem;
}


/* FOOTER PARTNERS */
.footer-partners {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 2rem 4rem;
  max-width: 1400px;
  margin: 0 auto;
}
.fp-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; }
.fp-label { flex-shrink: 0; }
.fp-badge {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 0.3rem 0.8rem;
  border-radius: 2px;
}
.fp-badge.official {
  background: rgba(212,168,83,0.15);
  color: var(--accent2);
  border: 1px solid rgba(212,168,83,0.3);
}
.fp-badge.expert {
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.4);
  border: 1px solid rgba(255,255,255,0.1);
}
.fp-logos { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }
.fp-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.9rem;
  border-radius: 3px;
  transition: background 0.2s, border-color 0.2s;
}
.fp-logo svg { width: 20px; height: 20px; flex-shrink: 0; }
.fp-logo span {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  white-space: nowrap;
}
.fp-logo.official-logo {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(212,168,83,0.2);
  color: rgba(255,255,255,0.75);
}
.fp-logo.official-logo:hover {
  background: rgba(212,168,83,0.1);
  border-color: rgba(212,168,83,0.4);
}
.fp-logo.expert-logo {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  color: rgba(255,255,255,0.45);
}
.fp-logo.expert-logo:hover {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.12);
}
.fp-divider {
  width: 1px;
  height: 28px;
  background: rgba(255,255,255,0.1);
  flex-shrink: 0;
}
@media(max-width:1024px) {
  .footer-partners { padding: 1.5rem; }
  .fp-inner { gap: 1rem; }
  .fp-divider { width: 100%; height: 1px; }
}

/* WHATSAPP */
.wa-btn {
  position:fixed;bottom:2rem;right:2rem;z-index:1500;
  width:56px;height:56px;background:#25D366;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 24px rgba(37,211,102,0.35);
  transition:transform 0.2s, box-shadow 0.2s;cursor:pointer;text-decoration:none;
  animation:waPop 0.6s 1.5s cubic-bezier(0.34,1.56,0.64,1) both;
}
@keyframes waPop{from{transform:scale(0);opacity:0;}to{transform:scale(1);opacity:1;}}
.wa-btn:hover{transform:scale(1.12);box-shadow:0 8px 36px rgba(37,211,102,0.55);}
.wa-btn svg{width:30px;height:30px;fill:#fff;}
.wa-tooltip {
  position:absolute;right:66px;top:50%;transform:translateY(-50%);
  background:var(--surface);border:1px solid var(--border-gold);
  color:var(--text);font-size:0.73rem;white-space:nowrap;
  padding:0.4rem 0.9rem;opacity:0;pointer-events:none;transition:opacity 0.2s;
  font-family:'Plus Jakarta Sans',sans-serif;
  box-shadow: var(--shadow-sm);
}
.wa-btn:hover .wa-tooltip{opacity:1;}

/* SCROLL REVEAL */
.reveal {
  opacity:0;transform:translateY(24px);
  transition:opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1);
}
.reveal.visible{opacity:1;transform:translateY(0);}

/* SHIMMER */
@keyframes shimmer {
  0%{background-position:-200% 0;}100%{background-position:200% 0;}
}

/* RESPONSIVE */
@media(max-width:1024px){
  nav{padding:0.9rem 1.5rem;}
  .nav-links,.nav-cta{display:none;}
  .hamburger{display:flex;}
  footer{padding:2.5rem 1.5rem 1.5rem;}
  .footer-inner{grid-template-columns:1fr 1fr;gap:1.5rem;}
  .footer-bottom{flex-direction:column;align-items:flex-start;}
}
@media(max-width:480px){.footer-inner{grid-template-columns:1fr;}}
