/*
Theme Name: PELAGRA Moçambique
Theme URI: https://pelagramz.com
Author: Geraldo Félix Pita Duarte
Author URI: https://pelagramz.com
Description: Tema oficial da PELAGRA Moçambique — consultoria agro-empresarial e inovação agrícola em Tete.
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: pelagra
*/

/* ── Reset & Base ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:        #003366;
  --navy-dark:   #002244;
  --green:       #76b82a;
  --green-dark:  #5a8f1e;
  --cream:       #f9f7f2;
  --gray-50:     #f9fafb;
  --gray-100:    #f3f4f6;
  --gray-200:    #e5e7eb;
  --gray-400:    #9ca3af;
  --gray-500:    #6b7280;
  --gray-600:    #4b5563;
  --gray-700:    #374151;
  --gray-900:    #111827;
  --gray-950:    #030712;
  --white:       #ffffff;
  --shadow-xl:   0 20px 60px rgba(0,0,0,0.12);
  --radius-2xl:  1rem;
  --radius-3xl:  1.5rem;
  --radius-full: 9999px;
}

html { scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', sans-serif;
  color: var(--gray-900);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1,h2,h3,h4,h5,h6 {
  font-family: 'Sora', sans-serif;
  line-height: 1.1;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }

/* ── Utilities ────────────────────────────────────────────── */
.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.section-rule {
  width: 48px; height: 3px;
  background: var(--green);
  border-radius: 99px;
  margin-bottom: 1rem;
}
.section-rule.centered { margin-left: auto; margin-right: auto; }

.section-label {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--green);
  margin-bottom: .75rem;
}

/* Reveal animations */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-left  { opacity:0; transform:translateX(-40px); transition:opacity .7s ease,transform .7s ease; }
.reveal-left.visible  { opacity:1; transform:translateX(0); }
.reveal-right { opacity:0; transform:translateX(40px);  transition:opacity .7s ease,transform .7s ease; }
.reveal-right.visible { opacity:1; transform:translateX(0); }
.delay-1 { transition-delay:.1s; }
.delay-2 { transition-delay:.2s; }
.delay-3 { transition-delay:.3s; }
.delay-4 { transition-delay:.4s; }

/* ── NAVBAR ───────────────────────────────────────────────── */
#pelagra-nav {
  position: fixed; top:0; left:0; right:0; z-index:1000;
  transition: background .3s, box-shadow .3s, border-color .3s;
  border-bottom: 1px solid transparent;
  height: 80px; display:flex; align-items:center;
}
#pelagra-nav.scrolled {
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 24px rgba(118,184,42,.08);
  border-color: #e9f5d4;
}
#pelagra-nav .nav-inner {
  display:flex; align-items:center; justify-content:space-between; width:100%;
}
.nav-logo { display:flex; align-items:center; gap:.75rem; }
.nav-logo-icon { position:relative; width:36px; height:36px; }
.nav-logo-icon svg.leaf { color:var(--green); width:32px; height:32px; transform:rotate(12deg); }
.nav-logo-text { display:flex; flex-direction:column; line-height:1; }
.nav-logo-text .brand { font-family:'Sora',sans-serif; font-size:1.4rem; font-weight:900; letter-spacing:-.04em; color:var(--navy); }
.nav-logo-text .sub   { font-size:.6rem; font-weight:700; letter-spacing:.2em; color:var(--green); margin-top:2px; }

.nav-links { display:flex; align-items:center; gap:1.75rem; }
.nav-links a {
  font-size:.875rem; font-weight:600; color:var(--gray-600);
  position:relative; transition:color .2s;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-2px; left:0; width:0; height:2px;
  background:var(--green); transition:width .3s; border-radius:2px;
}
.nav-links a:hover { color:var(--green); }
.nav-links a:hover::after { width:100%; }
.nav-cta {
  background:var(--navy); color:var(--white) !important;
  padding:.625rem 1.5rem; border-radius:var(--radius-full);
  font-size:.875rem; font-weight:700;
  transition:background .3s, transform .2s !important;
}
.nav-cta:hover { background:var(--green) !important; }
.nav-cta::after { display:none !important; }

.nav-burger { display:none; background:none; border:none; cursor:pointer; padding:.5rem; }
.nav-burger span { display:block; width:24px; height:2px; background:var(--gray-700); margin:5px 0; border-radius:2px; transition:.3s; }

.nav-mobile {
  display:none; position:fixed; top:80px; left:0; right:0; z-index:999;
  background:var(--white); border-bottom:1px solid #e9f5d4;
  box-shadow: 0 8px 32px rgba(0,0,0,.08); padding:1rem;
}
.nav-mobile.open { display:block; }
.nav-mobile a {
  display:block; padding:.75rem 1rem; font-weight:600; color:var(--gray-700);
  border-radius:.75rem; transition:color .2s, background .2s; margin-bottom:.25rem;
}
.nav-mobile a:hover { color:var(--green); background:#f0fae4; }
.nav-mobile .nav-cta-mobile {
  display:block; margin-top:.5rem; padding:.75rem; background:var(--navy);
  color:var(--white); text-align:center; border-radius:.75rem; font-weight:700;
}

@media(max-width:768px) {
  .nav-links { display:none; }
  .nav-burger { display:block; }
}

/* ── HERO ─────────────────────────────────────────────────── */
#hero {
  position:relative; min-height:100vh; display:flex; align-items:center;
  padding-top:80px; overflow:hidden; background:var(--cream);
}
.hero-dot-grid {
  position:absolute; inset:0; opacity:.07;
  background-image: radial-gradient(#003366 1px, transparent 1px);
  background-size: 36px 36px;
}
.hero-blob-1 {
  position:absolute; top:80px; right:0; width:384px; height:384px;
  background:rgba(118,184,42,.1); border-radius:50%; filter:blur(60px);
}
.hero-blob-2 {
  position:absolute; bottom:0; left:0; width:288px; height:288px;
  background:rgba(0,51,102,.05); border-radius:50%; filter:blur(40px);
}
.hero-inner {
  position:relative; z-index:10; padding:5rem 0;
  display:grid; gap:4rem; align-items:center;
}
@media(min-width:1024px){ .hero-inner { grid-template-columns:1fr 1fr; } }

.hero-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.375rem 1rem; border-radius:var(--radius-full);
  background:rgba(118,184,42,.1); border:1px solid rgba(118,184,42,.2);
  color:#5a8f1e; font-size:.875rem; font-weight:600; margin-bottom:1.5rem;
}
.hero-badge svg { width:16px; height:16px; }

.hero-title {
  font-size:clamp(2.5rem,5vw,4.5rem); font-weight:800;
  color:var(--gray-900); line-height:1.08; margin-bottom:1.5rem; letter-spacing:-.02em;
}
.hero-title .accent {
  color:var(--green); position:relative; display:inline-block;
}
.hero-title .accent svg {
  position:absolute; bottom:-.5rem; left:0; width:100%;
}

.hero-desc { font-size:1.125rem; color:var(--gray-600); line-height:1.75; margin-bottom:2.5rem; max-width:560px; }

.hero-btns { display:flex; flex-wrap:wrap; gap:1rem; }
.btn-primary {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--navy); color:var(--white);
  padding:1rem 2rem; border-radius:var(--radius-full);
  font-weight:700; font-size:1rem; transition:background .3s, transform .2s;
  box-shadow: 0 8px 32px rgba(0,51,102,.2);
}
.btn-primary:hover { background:var(--green); transform:translateY(-2px); }
.btn-outline {
  display:inline-flex; align-items:center; gap:.5rem;
  background:var(--white); color:var(--navy);
  border:2px solid var(--navy); padding:1rem 2rem;
  border-radius:var(--radius-full); font-weight:700; font-size:1rem;
  transition:border-color .3s, color .3s, transform .2s;
}
.btn-outline:hover { border-color:var(--green); color:var(--green); transform:translateY(-2px); }

.hero-stats {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1.5rem; margin-top:3.5rem; padding-top:2.5rem;
  border-top:1px solid var(--gray-200);
}
.hero-stat-n { font-family:'Sora',sans-serif; font-size:1.875rem; font-weight:900; color:var(--navy); }
.hero-stat-l { font-size:.875rem; color:var(--gray-500); margin-top:.125rem; }

/* Hero image side */
.hero-img-wrap {
  position:relative;
  animation: heroFadeIn .9s ease .2s both;
}
@keyframes heroFadeIn { from{opacity:0;transform:scale(.92)} to{opacity:1;transform:scale(1)} }

.hero-img-frame {
  border-radius:2rem; overflow:hidden;
  box-shadow:var(--shadow-xl); ring:1px solid rgba(0,0,0,.05);
  position:relative;
}
.hero-img-frame img { width:100%; height:500px; object-fit:cover; display:block; }
.hero-img-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,51,102,.5), transparent);
}
.hero-img-badges {
  position:absolute; bottom:1.25rem; left:1.25rem; right:1.25rem;
  display:flex; justify-content:space-between; align-items:flex-end;
}
.hero-location-badge {
  background:rgba(255,255,255,.92); backdrop-filter:blur(8px);
  padding:.5rem 1rem; border-radius:.75rem;
}
.hero-location-badge .lbl { font-size:.7rem; color:var(--gray-500); font-weight:500; }
.hero-location-badge .val { font-size:.875rem; font-weight:700; color:var(--navy); }
.hero-est-badge {
  background:var(--green); color:var(--white);
  padding:.375rem .75rem; border-radius:.75rem; font-size:.75rem; font-weight:700;
}

/* Floating cards */
.float-card {
  position:absolute; background:var(--white); border-radius:1rem;
  box-shadow:0 8px 40px rgba(0,0,0,.12); border:1px solid #f0fae4;
}
.float-card-1 {
  bottom:-1.5rem; left:-1.5rem; padding:1.25rem; max-width:220px;
  animation: float1 4s ease-in-out infinite;
}
.float-card-2 {
  top:-1rem; right:-1rem; padding:1rem; max-width:180px;
  background:var(--navy); animation: float2 3.5s ease-in-out infinite;
}
@keyframes float1 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes float2 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} }

.float-card-1 .fc-icon { background:#eff6ff; padding:.5rem; border-radius:.5rem; width:fit-content; margin-bottom:.5rem; }
.float-card-1 .fc-icon svg { width:20px; height:20px; color:var(--navy); }
.float-card-1 .fc-title { font-weight:700; font-size:.875rem; color:var(--gray-900); margin-bottom:.25rem; }
.float-card-1 .fc-desc  { font-size:.75rem; color:var(--gray-500); line-height:1.5; }

.float-card-2 .fc2-head { display:flex; align-items:center; gap:.5rem; margin-bottom:.25rem; }
.float-card-2 .fc2-head svg { width:16px; height:16px; color:var(--green); }
.float-card-2 .fc2-head span { font-weight:700; color:var(--white); font-size:.75rem; }
.float-card-2 .fc2-sub  { color:var(--green); font-size:.75rem; font-weight:600; }
.float-card-2 .fc2-mini { color:rgba(255,255,255,.5); font-size:.625rem; margin-top:.125rem; }

/* ── ABOUT ────────────────────────────────────────────────── */
#about { padding:7rem 0; background:var(--white); }
.about-grid { display:grid; gap:5rem; align-items:center; }
@media(min-width:1024px){ .about-grid { grid-template-columns:1fr 1fr; } }

.about-img-wrap { position:relative; }
.about-img-frame { border-radius:2rem; overflow:hidden; box-shadow:0 12px 48px rgba(0,0,0,.1); position:relative; }
.about-img-frame img { width:100%; height:480px; object-fit:cover; }
.about-img-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,51,102,.3),transparent); }

.about-exp-badge {
  position:absolute; bottom:-1.5rem; right:-1.5rem;
  background:var(--green); color:var(--white);
  padding:1.5rem; border-radius:1rem; box-shadow:var(--shadow-xl); text-align:center;
}
.about-exp-badge .num { font-family:'Sora',sans-serif; font-size:2.5rem; font-weight:900; }
.about-exp-badge .lbl { font-size:.875rem; font-weight:600; opacity:.9; margin-top:.125rem; }

.about-active-badge {
  position:absolute; top:-1.25rem; left:-1.25rem;
  background:var(--white); border:1px solid #e9f5d4;
  padding:1rem; border-radius:1rem; box-shadow:0 4px 24px rgba(0,0,0,.08);
  display:flex; align-items:center; gap:.5rem;
}
.about-active-badge .dot { width:8px; height:8px; border-radius:50%; background:var(--green); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.4} }
.about-active-badge span { font-size:.75rem; font-weight:700; color:var(--gray-700); white-space:nowrap; }

.about-copy { padding-right:0; }
.about-copy h2 { font-size:clamp(2rem,4vw,3rem); font-weight:700; color:var(--gray-900); margin-bottom:1.5rem; }
.about-copy p { font-size:1.0625rem; color:var(--gray-600); line-height:1.75; margin-bottom:1.25rem; }

.about-pillars { list-style:none; margin-bottom:2.5rem; }
.about-pillars li {
  display:flex; align-items:center; gap:.75rem;
  font-size:.9375rem; font-weight:500; color:var(--gray-700);
  margin-bottom:.75rem;
}
.about-pillars li svg { width:20px; height:20px; color:var(--green); flex-shrink:0; }

.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.value-card {
  background:var(--cream); padding:1rem; border-radius:1rem;
  border:1px solid var(--gray-100); transition:border-color .2s;
}
.value-card:hover { border-color:rgba(118,184,42,.3); }
.value-card svg { width:24px; height:24px; color:var(--green); margin-bottom:.5rem; }
.value-card h4 { font-weight:700; font-size:.875rem; color:var(--gray-900); margin-bottom:.25rem; }
.value-card p  { font-size:.75rem; color:var(--gray-500); line-height:1.6; }

/* ── SERVICES ─────────────────────────────────────────────── */
#services { padding:7rem 0; background:var(--cream); }
.section-header { text-align:center; margin-bottom:4rem; }
.section-header h2 { font-size:clamp(2rem,4vw,3rem); font-weight:700; color:var(--gray-900); margin-bottom:1rem; }
.section-header p  { font-size:1.0625rem; color:var(--gray-600); max-width:640px; margin:0 auto; }

.services-grid { display:grid; gap:1.5rem; }
@media(min-width:768px)  { .services-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .services-grid { grid-template-columns:repeat(3,1fr); } }

.service-card {
  background:var(--white); padding:1.75rem; border-radius:1.5rem;
  box-shadow:0 2px 12px rgba(0,0,0,.04); border-bottom:4px solid transparent;
  transition:box-shadow .3s, transform .3s; display:flex; flex-direction:column; height:100%;
}
.service-card:hover { box-shadow:0 12px 48px rgba(0,0,0,.12); transform:translateY(-6px); }
.service-card.accent-green  { border-color:var(--green); }
.service-card.accent-navy   { border-color:var(--navy); }
.service-card.accent-purple { border-color:#9333ea; }
.service-card.accent-orange { border-color:#f97316; }
.service-card.accent-yellow { border-color:#eab308; }
.service-card.accent-teal   { border-color:#14b8a6; }

.service-icon {
  width:48px; height:48px; border-radius:1rem;
  display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem;
}
.service-icon svg { width:24px; height:24px; }
.icon-green  { background:#f0fae4; color:var(--green); }
.icon-navy   { background:#eff6ff; color:var(--navy); }
.icon-purple { background:#f5f3ff; color:#7c3aed; }
.icon-orange { background:#fff7ed; color:#ea580c; }
.icon-yellow { background:#fefce8; color:#ca8a04; }
.icon-teal   { background:#f0fdfa; color:#0d9488; }

.service-card h3 { font-size:1.0625rem; font-weight:700; color:var(--gray-900); margin-bottom:.75rem; }
.service-card p  { font-size:.875rem; color:var(--gray-600); line-height:1.7; margin-bottom:1.25rem; flex:1; }
.service-features { list-style:none; }
.service-features li {
  display:flex; align-items:center; gap:.5rem;
  font-size:.75rem; color:var(--gray-500); margin-bottom:.375rem;
}
.service-features li::before {
  content:''; display:block; width:6px; height:6px;
  border-radius:50%; background:var(--green); flex-shrink:0;
}

/* ── PORTFOLIO ────────────────────────────────────────────── */
#portfolio { padding:7rem 0; background:var(--white); }
.portfolio-grid { display:grid; gap:1.5rem; }
@media(min-width:768px)  { .portfolio-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .portfolio-grid { grid-template-columns:repeat(3,1fr); } }

.portfolio-card {
  border:1px solid transparent; border-radius:1.5rem; padding:1.5rem;
  cursor:pointer; transition:box-shadow .3s, transform .3s;
  display:flex; flex-direction:column; height:100%;
}
.portfolio-card:hover { box-shadow:0 12px 48px rgba(0,0,0,.1); transform:translateY(-4px); }
.portfolio-card.bg-yellow { background:#fefce8; border-color:#fde68a; }
.portfolio-card.bg-orange { background:#fff7ed; border-color:#fed7aa; }
.portfolio-card.bg-blue   { background:#eff6ff; border-color:#bfdbfe; }
.portfolio-card.bg-green  { background:#f0fae4; border-color:#bbf7d0; }
.portfolio-card.bg-purple { background:#f5f3ff; border-color:#ddd6fe; }
.portfolio-card.bg-teal   { background:#f0fdfa; border-color:#99f6e4; }

.pc-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:1rem; }
.pc-icon { background:rgba(255,255,255,.7); padding:.625rem; border-radius:.75rem; }
.pc-icon svg { width:24px; height:24px; color:var(--navy); }
.pc-year { font-size:.75rem; color:var(--gray-400); font-weight:500; }
.pc-cat  { font-size:.625rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--green); margin-bottom:.5rem; }
.portfolio-card h3 { font-size:1rem; font-weight:700; color:var(--gray-900); margin-bottom:.75rem; line-height:1.35; }
.portfolio-card p  { font-size:.8125rem; color:var(--gray-600); line-height:1.65; margin-bottom:1rem; flex:1;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.pc-tags { display:flex; flex-wrap:wrap; gap:.375rem; margin-bottom:1rem; }
.pc-tag  { font-size:.625rem; font-weight:600; background:rgba(255,255,255,.7); color:var(--gray-600);
  padding:.25rem .625rem; border-radius:var(--radius-full); border:1px solid rgba(255,255,255,.8); }
.pc-result { font-size:.75rem; font-weight:700; color:var(--navy); display:flex; align-items:center; gap:.375rem; }
.pc-result::before { content:''; display:block; width:6px; height:6px; border-radius:50%; background:var(--green); flex-shrink:0; }

.portfolio-cta { text-align:center; margin-top:3rem; }

/* ── IMPACT ───────────────────────────────────────────────── */
#impact {
  padding:5rem 0; background:var(--navy); position:relative; overflow:hidden;
}
#impact .dot-grid {
  position:absolute; inset:0; opacity:.1;
  background-image:radial-gradient(#76b82a 1px,transparent 1px);
  background-size:28px 28px;
}
.impact-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; position:relative; z-index:10; }
@media(min-width:1024px) { .impact-grid { grid-template-columns:repeat(4,1fr); } }
.impact-item { text-align:center; }
.impact-num { font-family:'Sora',sans-serif; font-size:clamp(2.5rem,5vw,3.75rem); font-weight:900; color:var(--green); margin-bottom:.5rem; }
.impact-label { color:var(--white); font-weight:700; font-size:1.0625rem; margin-bottom:.25rem; }
.impact-sub   { color:#93c5fd; font-size:.875rem; }

/* ── COMMUNITY ────────────────────────────────────────────── */
#community { padding:7rem 0; background:var(--cream); overflow:hidden; }
.community-box {
  background:var(--navy); border-radius:3rem; overflow:hidden; position:relative;
}
.community-box-bg {
  position:absolute; top:0; right:0; width:50%; height:100%; opacity:.1; pointer-events:none;
}
.community-box-bg img { width:100%; height:100%; object-fit:cover; }
.community-dot-grid {
  position:absolute; inset:0; opacity:.05;
  background-image:radial-gradient(#76b82a 1px,transparent 1px);
  background-size:24px 24px; pointer-events:none;
}
.community-inner { position:relative; z-index:10; padding:2.5rem; }
@media(min-width:1024px){ .community-inner { padding:5rem; } }

.community-tag { display:flex; align-items:center; gap:.5rem; color:var(--green); font-weight:600; margin-bottom:1.5rem; }
.community-tag svg { width:20px; height:20px; }
.community-box h2 { font-size:clamp(1.75rem,4vw,3rem); font-weight:700; color:var(--white); margin-bottom:1.5rem; max-width:540px; line-height:1.15; }
.community-box > .community-inner > p { color:#bfdbfe; font-size:1.0625rem; margin-bottom:3rem; max-width:640px; line-height:1.75; }

.community-pillars { display:grid; gap:1.5rem; }
@media(min-width:640px)  { .community-pillars { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .community-pillars { grid-template-columns:repeat(4,1fr); } }

.pillar-card {
  background:rgba(255,255,255,.1); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.1); border-radius:1rem; padding:1.25rem;
  transition:background .2s;
}
.pillar-card:hover { background:rgba(255,255,255,.15); }
.pillar-icon { background:rgba(118,184,42,.2); width:40px; height:40px; border-radius:.75rem;
  display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
.pillar-icon svg { width:20px; height:20px; color:var(--green); }
.pillar-card h4 { font-family:'Sora',sans-serif; color:var(--white); font-weight:700; margin-bottom:.5rem; }
.pillar-card p  { color:#bfdbfe; font-size:.875rem; line-height:1.6; }

/* ── CONTACT ──────────────────────────────────────────────── */
#contact { padding:7rem 0; background:var(--white); }
.contact-grid { display:grid; gap:4rem; align-items:start; }
@media(min-width:1024px){ .contact-grid { grid-template-columns:1fr 1fr; } }

.contact-info-item { display:flex; align-items:center; gap:1.25rem; margin-bottom:1.5rem; }
.contact-info-icon { background:#f0fae4; padding:1rem; border-radius:1rem; flex-shrink:0; }
.contact-info-icon svg { width:20px; height:20px; color:var(--green); }
.contact-info-lbl { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--gray-400); margin-bottom:.25rem; }
.contact-info-val { font-weight:600; color:var(--gray-800); }

.btn-whatsapp {
  display:inline-flex; align-items:center; gap:.75rem;
  background:#25D366; color:var(--white);
  padding:1rem 1.5rem; border-radius:1rem; font-weight:700;
  transition:background .2s, transform .2s;
  box-shadow:0 8px 32px rgba(37,211,102,.25);
}
.btn-whatsapp:hover { background:#1aad52; transform:translateY(-2px); }
.btn-whatsapp svg { width:24px; height:24px; }

.contact-form-wrap {
  background:var(--cream); padding:2.5rem; border-radius:2rem; border:1px solid var(--gray-100);
}
.form-row { display:grid; gap:1.25rem; margin-bottom:1.25rem; }
@media(min-width:640px){ .form-row { grid-template-columns:1fr 1fr; } }

.form-group { margin-bottom:1.25rem; }
.form-group label { display:block; font-size:.875rem; font-weight:600; color:var(--gray-700); margin-bottom:.375rem; }
.form-group input,
.form-group select,
.form-group textarea {
  width:100%; padding:.75rem 1rem; border-radius:.75rem;
  border:1px solid var(--gray-200); background:var(--white);
  font-family:'DM Sans',sans-serif; font-size:.875rem; color:var(--gray-900);
  outline:none; transition:box-shadow .2s, border-color .2s;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color:var(--green); box-shadow:0 0 0 3px rgba(118,184,42,.15);
}
.form-group textarea { resize:none; }
.btn-submit {
  width:100%; background:var(--navy); color:var(--white);
  padding:1rem; border-radius:.75rem; border:none; cursor:pointer;
  font-family:'Sora',sans-serif; font-size:1rem; font-weight:700;
  transition:background .3s, transform .2s;
}
.btn-submit:hover { background:var(--green); transform:translateY(-2px); }
.form-success { text-align:center; padding:3rem 0; }
.form-success svg { width:64px; height:64px; color:var(--green); margin:0 auto 1rem; }
.form-success h3 { font-size:1.25rem; font-weight:700; color:var(--gray-900); margin-bottom:.5rem; }
.form-success p  { color:var(--gray-600); }

/* ── FOOTER ───────────────────────────────────────────────── */
footer { background:var(--gray-950); color:var(--gray-400); }
.footer-inner { padding:4rem 0 2rem; }
.footer-grid { display:grid; gap:2.5rem; margin-bottom:3rem; }
@media(min-width:768px)  { .footer-grid { grid-template-columns:1fr 1fr 1fr; } }
@media(min-width:1024px) { .footer-grid { grid-template-columns:1.5fr 1fr 1fr 1fr; } }

.footer-brand { }
.footer-logo { display:flex; align-items:center; gap:.75rem; margin-bottom:1.25rem; }
.footer-logo .brand { font-family:'Sora',sans-serif; font-size:1.25rem; font-weight:900; letter-spacing:-.03em; color:var(--white); }
.footer-logo .sub   { font-size:.55rem; font-weight:700; letter-spacing:.2em; color:var(--green); }
.footer-brand p { font-size:.875rem; line-height:1.7; margin-bottom:1.25rem; }
.footer-socials { display:flex; gap:.75rem; }
.footer-social {
  background:#1f2937; width:36px; height:36px; border-radius:.5rem;
  display:flex; align-items:center; justify-content:center;
  font-size:.75rem; font-weight:700; color:var(--gray-400);
  transition:background .2s, color .2s;
}
.footer-social:hover { background:var(--green); color:var(--white); }

.footer-col h4 { font-family:'Sora',sans-serif; color:var(--white); font-weight:700; font-size:.875rem; margin-bottom:1.25rem; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:.75rem; }
.footer-col ul li a { font-size:.875rem; transition:color .2s; }
.footer-col ul li a:hover { color:var(--green); }
.footer-col ul li span { font-size:.875rem; }

.footer-bottom {
  border-top:1px solid #1f2937; padding-top:2rem;
  display:flex; flex-direction:column; gap:1rem; align-items:center; text-align:center;
}
@media(min-width:768px){
  .footer-bottom { flex-direction:row; justify-content:space-between; text-align:left; }
}
.footer-bottom p { font-size:.875rem; }
.footer-bottom .love { font-size:.75rem; color:#374151; }

/* ── WHATSAPP FLOAT ───────────────────────────────────────── */
#wa-float {
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:9999;
  background:#25D366; color:var(--white);
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 24px rgba(37,211,102,.4);
  transition:transform .2s, opacity .3s;
  opacity:0; pointer-events:none;
  animation: pulseWA 2.5s infinite;
}
#wa-float.show { opacity:1; pointer-events:auto; }
#wa-float:hover { transform:scale(1.1); }
#wa-float svg { width:28px; height:28px; }
@keyframes pulseWA {
  0%,100%{ box-shadow:0 0 0 0 rgba(37,211,102,.5); }
  50%    { box-shadow:0 0 0 12px rgba(37,211,102,0); }
}

/* ── Responsive tweaks ────────────────────────────────────── */
@media(max-width:640px){
  .values-grid { grid-template-columns:1fr; }
  .hero-stats  { grid-template-columns:1fr 1fr; }
  .about-exp-badge { bottom:-.75rem; right:-.75rem; padding:1rem; }
  .float-card-1, .float-card-2 { display:none; }
}
