/* ===== FRANJA DE LOGOS INSTITUCIONALES ===== */
.partners-strip { background: #fff; border-bottom: 1px solid rgba(45,106,45,0.08); padding: 1rem 5%; }
.partners-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.partners-lbl { font-size: 0.7rem; font-weight: 700; color: #9ca3af; text-transform: uppercase; letter-spacing: 1.5px; white-space: nowrap; flex-shrink: 0; }
.partners-logos { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
.partner-logo { display: flex; align-items: center; justify-content: center; gap: 0.6rem; padding: 0.5rem 1.1rem; border-radius: 10px; background: #fff; border: 1px solid rgba(0,0,0,0.08); white-space: nowrap; transition: transform 0.2s ease, box-shadow 0.2s ease; cursor: default; }
.partner-logo:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.partner-logo img { height: 30px; width: auto; max-width: 130px; object-fit: contain; display: block; }
.partner-logo-txt { font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 0.72rem; letter-spacing: 0.3px; color: #1b5e20; }
.partner-divider { width: 1px; height: 20px; background: rgba(0,0,0,0.1); flex-shrink: 0; }
@media (max-width: 768px) {
  .partners-inner { gap: 1rem; }
  .partners-lbl { width: 100%; }
  .partner-logo { padding: 0.4rem 0.8rem; }
  .partner-logo img { height: 24px; }
}

/* ===== MAPA DEL PROYECTO ===== */
.project-map { margin-top: 2.5rem; }
.project-map-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8rem; flex-wrap: wrap; gap: 0.5rem; }
.project-map-header span:first-child { font-size: 0.85rem; color: rgba(255,255,255,0.7); font-weight: 600; }
.project-map-coords { font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 0.75rem; color: #e8b84b; letter-spacing: 0.5px; background: rgba(200,164,39,0.12); border: 1px solid rgba(200,164,39,0.3); padding: 0.25rem 0.8rem; border-radius: 12px; }
.project-map iframe { border-radius: 14px; display: block; width: 100%; height: 300px; border: 2px solid rgba(255,255,255,0.1); }
@media (max-width: 768px) { .project-map iframe { height: 220px; } }

/* ===== BANNER DE COOKIES GDPR ===== */
.cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 3000; background: #1a1a1a; border-top: 1px solid rgba(255,255,255,0.08); padding: 1.2rem 5%; transform: translateY(110%); transition: transform 0.4s cubic-bezier(0.34,1.2,0.64,1); box-shadow: 0 -4px 30px rgba(0,0,0,0.25); }
.cookie-banner.show { transform: translateY(0); }
.cookie-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.cookie-text { flex: 1; min-width: 280px; }
.cookie-text strong { display: block; color: #fff; font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 0.88rem; margin-bottom: 0.3rem; }
.cookie-text p { font-size: 0.8rem; color: rgba(255,255,255,0.55); line-height: 1.6; margin: 0; }
.cookie-text a { color: #7ab57a; text-decoration: underline; }
.cookie-actions { display: flex; gap: 0.8rem; flex-shrink: 0; flex-wrap: wrap; }
.cookie-btn-ess { background: transparent; border: 1.5px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.65); font-family: 'Montserrat',sans-serif; font-weight: 600; font-size: 0.8rem; padding: 0.6rem 1.2rem; border-radius: 20px; cursor: pointer; transition: all 0.2s ease; white-space: nowrap; }
.cookie-btn-ess:hover { border-color: rgba(255,255,255,0.5); color: #fff; }
.cookie-btn-acc { background: #2d6a2d; border: none; color: #fff; font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 0.8rem; padding: 0.6rem 1.4rem; border-radius: 20px; cursor: pointer; transition: all 0.2s ease; white-space: nowrap; }
.form-consent { display: flex; align-items: flex-start; gap: 0.6rem; margin: 0.2rem 0 1.1rem; font-size: 0.8rem; line-height: 1.5; color: rgba(255,255,255,0.7); }
.form-consent input { width: auto; margin-top: 0.2rem; accent-color: #c8a427; flex-shrink: 0; }
.form-consent a { color: #e8b84b; }
.footer-nit a { color: inherit; text-decoration: underline; }
.cookie-btn-acc:hover { background: #4a8c4a; transform: translateY(-1px); }
@media (max-width: 600px) {
  .cookie-inner { flex-direction: column; gap: 1rem; }
  .cookie-actions { width: 100%; }
  .cookie-btn-ess, .cookie-btn-acc { flex: 1; text-align: center; }
}

/* ===== FAQ ACCORDION ===== */
.faq-section { background: #f8faf8; padding: 6rem 5%; }
.faq-grid { max-width: 780px; margin: 3rem auto 0; display: flex; flex-direction: column; gap: 0.75rem; }
.faq-item { background: #fff; border-radius: 12px; border: 1px solid rgba(45,106,45,0.12); overflow: hidden; transition: box-shadow 0.2s ease; }
.faq-item:hover { box-shadow: 0 4px 16px rgba(45,106,45,0.08); }
.faq-question { width: 100%; background: none; border: none; padding: 1.25rem 1.5rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; cursor: pointer; text-align: left; font-family: 'Montserrat',sans-serif; font-weight: 600; font-size: 0.95rem; color: #1a2e1a; line-height: 1.4; }
.faq-icon { font-size: 1.3rem; color: #2d6a2d; flex-shrink: 0; transition: transform 0.3s ease; line-height: 1; }
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.38s ease; }
.faq-answer p { font-size: 0.9rem; color: #4a5568; line-height: 1.8; padding: 0 1.5rem 1.25rem; margin: 0; }
.faq-item.open .faq-answer { max-height: 400px; }
@media (max-width: 600px) {
  .faq-question { font-size: 0.88rem; padding: 1rem 1.2rem; }
  .faq-answer p { padding: 0 1.2rem 1rem; font-size: 0.85rem; }
}

/* ===== SECCIÓN DE AVANCES / TIMELINE ===== */
.progress-section { background: var(--cream); }
.timeline { max-width: 760px; margin: 3rem auto 0; }
.timeline-item { display: flex; gap: 1.3rem; padding-bottom: 2.2rem; }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-marker { display: flex; flex-direction: column; align-items: center; flex: none; }
.timeline-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--forest-mid); flex: none; margin-top: 0.35rem; box-shadow: 0 0 0 4px rgba(74,140,74,0.15); }
.timeline-line { width: 2px; flex: 1; background: rgba(74,140,74,0.25); margin-top: 6px; }
.timeline-item:last-child .timeline-line { display: none; }
.timeline-content { flex: 1; padding-top: 0.1rem; }
.timeline-date { display: block; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 0.75rem; color: var(--carbon-gold); text-transform: uppercase; letter-spacing: 1px; margin-bottom: 0.35rem; }
.timeline-content h4 { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1.05rem; color: var(--forest-dark); margin: 0 0 0.4rem; }
.timeline-content p { font-size: 0.92rem; color: #55605a; line-height: 1.6; margin: 0; }
@media (max-width: 600px) {
  .timeline { margin-top: 2rem; }
  .timeline-content h4 { font-size: 0.98rem; }
  .timeline-content p { font-size: 0.88rem; }
}

/* Paquete Juriepe: proyecto completo, tarjeta ancha */
.carbon-card.carbon-full { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 2rem; text-align: left; padding: 1.8rem 2.2rem; background: linear-gradient(135deg, #F1F8E9 0%, #fff 70%); border-color: var(--forest-light); }
.carbon-full-main { display: flex; align-items: center; gap: 1.4rem; }
.carbon-full-main .carbon-emoji { margin: 0; font-size: 2.6rem; }
.carbon-full-main .carbon-tons { margin-bottom: 0; max-width: 520px; }
.carbon-full-tag { display: inline-block; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--forest-main); margin-bottom: 0.2rem; }
.carbon-full-side { min-width: 230px; text-align: center; }
.carbon-full-side .carbon-price-per { margin-bottom: 1rem; }
@media (max-width: 768px) {
  .carbon-card.carbon-full { flex-direction: column; text-align: center; padding: 2rem 1.5rem; gap: 1.2rem; }
  .carbon-full-main { flex-direction: column; gap: 0.6rem; }
  .carbon-full-side { min-width: 0; width: 100%; }
}
