/* ===================================================
   RentabIA - Estilos Globales v2
=================================================== */
:root {
  --rib-blue: #003580;
  --rib-blue-dark: #002060;
  --rib-red: #FF5A5F;
  --rib-red-dark: #e04848;
  --rib-gray-light: #f6f8ff;
  --rib-gray: #5a6378;
  --rib-dark: #0d1117;
}
*, *::before, *::after { box-sizing: border-box; }
body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--rib-dark); line-height: 1.6; }

/* ---- Header compacto ---- */
.main-header-bar { padding-top: 6px !important; padding-bottom: 6px !important; min-height: unset !important; }
.ast-logo-img { max-height: 52px !important; width: auto !important; }
@media (max-width: 768px) {
  .main-header-bar { padding-top: 4px !important; padding-bottom: 4px !important; }
  .ast-logo-img { max-height: 38px !important; }
}

/* ---- Utilidades ---- */
.rib-container { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.rib-text-red { color: var(--rib-red); }
.rib-text-blue { color: var(--rib-blue); }
.rib-tag { display: inline-block; background: rgba(0,53,128,.08); color: var(--rib-blue); border: 1px solid rgba(0,53,128,.2); padding: 5px 18px; border-radius: 50px; font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; margin-bottom: 14px; }
.rib-section-head { text-align: center; max-width: 660px; margin: 0 auto 56px; }
.rib-h2 { font-size: clamp(26px,3.2vw,42px); font-weight: 800; color: var(--rib-dark); line-height: 1.2; margin: 10px 0 16px; }
.rib-subtitle { font-size: 17px; color: var(--rib-gray); line-height: 1.75; margin: 0; }

/* ---- Botones ---- */
.rib-btn { display: inline-flex; align-items: center; gap: 8px; padding: 15px 34px; border-radius: 50px; font-weight: 700; font-size: 15px; text-decoration: none !important; background: var(--rib-red); color: #fff !important; box-shadow: 0 8px 28px rgba(255,90,95,.35); transition: all .28s ease; }
.rib-btn:hover { background: var(--rib-red-dark); transform: translateY(-2px); color: #fff !important; }
.rib-btn-ghost { display: inline-flex; align-items: center; gap: 8px; padding: 15px 34px; border-radius: 50px; font-weight: 700; font-size: 15px; text-decoration: none !important; background: transparent; color: #fff !important; border: 2px solid rgba(255,255,255,.45); transition: all .28s ease; }
.rib-btn-ghost:hover { background: rgba(255,255,255,.1); border-color: #fff; }
.rib-btn-white { background: #fff; color: var(--rib-red) !important; box-shadow: 0 8px 36px rgba(0,0,0,.18); }
.rib-btn-white:hover { transform: translateY(-3px); color: var(--rib-red-dark) !important; }

/* ---- Hero ---- */
.rib-hero { background: linear-gradient(140deg,#001a4a 0%,#003580 55%,#004494 100%); padding: 110px 0 80px; text-align: center; position: relative; overflow: hidden; }
.rib-hero-inner { position: relative; z-index: 1; }
.rib-hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,90,95,.15); color: #FF8A8E; border: 1px solid rgba(255,90,95,.4); padding: 7px 20px; border-radius: 50px; font-size: 13px; font-weight: 600; margin-bottom: 28px; }
.rib-hero h1 { color: #fff; font-size: clamp(32px,5.5vw,68px); font-weight: 800; line-height: 1.1; margin: 0 auto 24px; max-width: 820px; }
.rib-hero-lead { color: rgba(255,255,255,.8); font-size: clamp(16px,1.8vw,20px); max-width: 580px; margin: 0 auto 42px; line-height: 1.75; }
.rib-hero-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-bottom: 64px; }
.rib-stats { display: flex; gap: 52px; justify-content: center; flex-wrap: wrap; padding-top: 40px; border-top: 1px solid rgba(255,255,255,.12); }
.rib-stat-n { display: block; font-size: 38px; font-weight: 800; color: var(--rib-red); line-height: 1; }
.rib-stat-l { display: block; font-size: 13px; color: rgba(255,255,255,.6); margin-top: 6px; }

/* ---- Servicios ---- */
.rib-services { padding: 100px 0; background: var(--rib-gray-light); }
.rib-services-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(320px,1fr)); gap: 26px; }
.rib-svc-card { background: #fff; border-radius: 16px; padding: 36px; border: 1px solid rgba(0,53,128,.07); box-shadow: 0 4px 18px rgba(0,0,0,.05); transition: all .28s ease; }
.rib-svc-card:hover { transform: translateY(-6px); box-shadow: 0 14px 44px rgba(0,53,128,.12); }
.rib-svc-icon { width: 56px; height: 56px; background: var(--rib-gray-light); border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 26px; margin-bottom: 22px; }
.rib-svc-card h3 { font-size: 19px; font-weight: 700; color: var(--rib-dark); margin: 0 0 10px; }
.rib-svc-card p { font-size: 14px; color: var(--rib-gray); line-height: 1.7; margin: 0 0 20px; }
.rib-svc-link { font-size: 13px; font-weight: 700; color: var(--rib-blue); text-decoration: none; }
.rib-svc-link:hover { color: var(--rib-red); }

/* ---- Cómo funciona ---- */
.rib-how { padding: 100px 0; background: #fff; }
.rib-steps { display: grid; grid-template-columns: 1fr 40px 1fr 40px 1fr; align-items: start; max-width: 900px; margin: 0 auto; }
.rib-step { text-align: center; padding: 40px 24px; background: var(--rib-gray-light); border-radius: 16px; }
.rib-step-num { font-size: 48px; font-weight: 800; color: var(--rib-red); line-height: 1; margin-bottom: 14px; display: block; }
.rib-step h3 { font-size: 18px; font-weight: 700; margin: 0 0 10px; }
.rib-step p { font-size: 14px; color: var(--rib-gray); line-height: 1.7; margin: 0; }
.rib-step-sep { display: flex; align-items: center; justify-content: center; padding-top: 60px; color: #ccd4e8; font-size: 22px; }

/* ---- Por qué nosotros ---- */
.rib-why { padding: 100px 0; background: var(--rib-blue); }
.rib-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.rib-why .rib-tag { background: rgba(255,255,255,.1); color: rgba(255,255,255,.85); border-color: rgba(255,255,255,.2); }
.rib-why .rib-h2 { color: #fff; text-align: left; margin-bottom: 36px; }
.rib-features { display: flex; flex-direction: column; gap: 22px; }
.rib-feat { display: flex; gap: 16px; align-items: flex-start; }
.rib-feat-check { width: 28px; height: 28px; flex-shrink: 0; background: var(--rib-red); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 800; margin-top: 2px; }
.rib-feat strong { display: block; color: #fff; font-size: 15px; margin-bottom: 5px; }
.rib-feat p { font-size: 14px; color: rgba(255,255,255,.68); line-height: 1.65; margin: 0; }
.rib-why-cards { display: flex; flex-direction: column; gap: 18px; }
.rib-why-card { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.15); border-radius: 16px; padding: 30px; }
.rib-why-card.accent { background: var(--rib-red); border-color: var(--rib-red); margin-left: 32px; }
.rib-why-card-n { font-size: 44px; font-weight: 800; color: #fff; line-height: 1; margin-bottom: 8px; }
.rib-why-card-l { font-size: 14px; color: rgba(255,255,255,.78); line-height: 1.5; }

/* ---- Sectores ---- */
.rib-sectors { padding: 100px 0; background: #fff; }
.rib-sectors-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.rib-sector-card { text-align: center; padding: 48px 30px; background: var(--rib-gray-light); border-radius: 20px; border: 2px solid transparent; transition: all .28s ease; }
.rib-sector-card:hover { border-color: var(--rib-blue); background: #fff; box-shadow: 0 8px 44px rgba(0,53,128,.1); }
.rib-sector-icon { font-size: 52px; display: block; margin-bottom: 18px; }
.rib-sector-card h3 { font-size: 20px; font-weight: 700; margin: 0 0 12px; }
.rib-sector-card p { font-size: 14px; color: var(--rib-gray); line-height: 1.7; margin: 0; }

/* ---- CTA ---- */
.rib-cta-section { background: linear-gradient(135deg,var(--rib-red) 0%,#d94444 100%); padding: 100px 0; text-align: center; }
.rib-cta-section h2 { font-size: clamp(26px,3.5vw,44px); font-weight: 800; color: #fff; line-height: 1.2; margin-bottom: 18px; }
.rib-cta-section p { font-size: 18px; color: rgba(255,255,255,.82); line-height: 1.7; margin-bottom: 36px; }
.rib-cta-note { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 18px !important; margin-bottom: 0 !important; }

/* ---- Page hero ---- */
.rib-page-hero { background: linear-gradient(135deg,#001a4a 0%,var(--rib-blue) 100%); padding: 90px 0 70px; text-align: center; }
.rib-page-hero h1 { color: #fff; font-size: clamp(28px,4vw,52px); font-weight: 800; margin: 12px 0 18px; }
.rib-page-hero p { color: rgba(255,255,255,.78); font-size: 18px; max-width: 560px; margin: 0 auto; }

/* ---- Servicios full ---- */
.rib-services-full { padding: 100px 0; background: #fff; }
.rib-svc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; padding: 64px 0; border-bottom: 1px solid #edf0f8; }
.rib-svc-row:last-child { border-bottom: none; }
.rib-svc-row.reverse { direction: rtl; }
.rib-svc-row.reverse > * { direction: ltr; }
.rib-svc-big-icon { background: var(--rib-gray-light); border-radius: 24px; height: 280px; display: flex; align-items: center; justify-content: center; font-size: 100px; border: 2px solid rgba(0,53,128,.07); }
.rib-svc-content h2 { font-size: clamp(22px,2.5vw,32px); font-weight: 800; margin: 10px 0 16px; line-height: 1.25; }
.rib-svc-content p { font-size: 15px; color: var(--rib-gray); line-height: 1.75; margin-bottom: 20px; }
.rib-svc-list { list-style: none; padding: 0; margin: 0 0 28px; }
.rib-svc-list li { font-size: 14px; color: var(--rib-gray); padding: 8px 0; border-bottom: 1px solid #f0f3fa; display: flex; align-items: center; gap: 10px; }
.rib-svc-list li::before { content: '✓'; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; background: rgba(0,53,128,.08); color: var(--rib-blue); border-radius: 50%; font-size: 11px; font-weight: 800; flex-shrink: 0; }

/* ---- Nosotros ---- */
.rib-about-story { padding: 100px 0; background: #fff; }
.rib-about-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.rib-about-visual { background: linear-gradient(135deg,var(--rib-blue) 0%,#001a4a 100%); border-radius: 24px; padding: 48px; display: flex; flex-direction: column; gap: 20px; }
.rib-about-stat-card { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.15); border-radius: 14px; padding: 24px 28px; }
.rib-about-stat-card.red { background: var(--rib-red); border-color: var(--rib-red); }
.rib-about-stat-card .n { font-size: 40px; font-weight: 800; color: #fff; line-height: 1; }
.rib-about-stat-card .l { font-size: 14px; color: rgba(255,255,255,.72); margin-top: 6px; }
.rib-about-text p { font-size: 15px; color: var(--rib-gray); line-height: 1.8; margin-bottom: 18px; }
.rib-values { padding: 90px 0; background: var(--rib-gray-light); }
.rib-values-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 24px; }
.rib-value-card { background: #fff; border-radius: 16px; padding: 36px; border: 1px solid rgba(0,53,128,.07); box-shadow: 0 4px 16px rgba(0,0,0,.05); text-align: center; }
.rib-value-icon { font-size: 40px; display: block; margin-bottom: 16px; }
.rib-value-card h3 { font-size: 17px; font-weight: 700; margin: 0 0 10px; }
.rib-value-card p { font-size: 14px; color: var(--rib-gray); line-height: 1.7; margin: 0; }

/* ---- Contacto ---- */
.rib-contact { padding: 100px 0; background: #fff; }
.rib-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.rib-contact-info h2 { font-size: clamp(24px,3vw,36px); font-weight: 800; margin: 0 0 16px; }
.rib-contact-info p { font-size: 16px; color: var(--rib-gray); line-height: 1.75; margin-bottom: 36px; }
.rib-contact-items { display: flex; flex-direction: column; gap: 20px; }
.rib-contact-item { display: flex; gap: 16px; align-items: flex-start; padding: 20px; background: var(--rib-gray-light); border-radius: 12px; }
.rib-contact-item-icon { width: 46px; height: 46px; flex-shrink: 0; background: #fff; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.rib-contact-item strong { display: block; font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.rib-contact-item span { font-size: 14px; color: var(--rib-gray); }
.rib-contact-box { background: var(--rib-gray-light); border-radius: 20px; padding: 48px; }
.rib-contact-box h3 { font-size: 22px; font-weight: 700; margin: 0 0 8px; }
.rib-wa-btn { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid rgba(0,53,128,.12); border-radius: 14px; padding: 18px 22px; text-decoration: none !important; color: var(--rib-dark) !important; font-size: 15px; font-weight: 600; transition: all .25s ease; margin-bottom: 14px; }
.rib-wa-btn:hover { border-color: #25D366; box-shadow: 0 4px 20px rgba(37,211,102,.15); transform: translateY(-2px); }
.rib-wa-btn-icon { font-size: 26px; flex-shrink: 0; }
.rib-wa-btn small { display: block; font-size: 12px; font-weight: 400; color: var(--rib-gray); margin-top: 2px; }
.rib-wa-main-btn { display: flex; align-items: center; justify-content: center; gap: 12px; background: #25D366; color: #fff !important; padding: 18px; border-radius: 14px; margin-top: 20px; font-weight: 700; font-size: 16px; text-decoration: none !important; box-shadow: 0 6px 28px rgba(37,211,102,.35); transition: all .28s ease; }
.rib-wa-main-btn:hover { background: #1ab855; transform: translateY(-2px); color: #fff !important; }

/* ---- Responsive ---- */
@media (max-width: 900px) {
  .rib-steps { grid-template-columns: 1fr; gap: 20px; }
  .rib-step-sep { display: none; }
  .rib-why-grid { grid-template-columns: 1fr; gap: 44px; }
  .rib-sectors-grid { grid-template-columns: 1fr; }
  .rib-svc-row { grid-template-columns: 1fr; gap: 32px; }
  .rib-svc-row.reverse { direction: ltr; }
  .rib-about-story-grid { grid-template-columns: 1fr; gap: 40px; }
  .rib-contact-grid { grid-template-columns: 1fr; gap: 44px; }
}
@media (max-width: 640px) {
  .rib-hero { padding: 80px 0 60px; }
  .rib-hero-btns { flex-direction: column; align-items: center; }
  .rib-services, .rib-how, .rib-why, .rib-sectors, .rib-cta-section, .rib-contact, .rib-services-full, .rib-about-story, .rib-values { padding: 60px 0; }
  .rib-services-grid { grid-template-columns: 1fr; }
  .rib-contact-box { padding: 28px 20px; }
  .rib-sectors-grid { grid-template-columns: 1fr; }
}
