
/* ══════════════════════════════════════════
   ESTILOS ADICIONALES – PÁGINAS INTERNAS
   Añadir al final de global.css
   ══════════════════════════════════════════ */

/* CONTACT PAGE */
.contact-grid { display:grid; grid-template-columns:1fr 360px; gap:3rem; align-items:start; }
@media(max-width:900px){ .contact-grid { grid-template-columns:1fr; } }
.contact-form-wrap { background:white; border-radius:1.5rem; padding:2.5rem; box-shadow:0 4px 24px rgba(10,36,99,.08); border:1px solid #f1f5f9; }
.form-header { margin-bottom:2rem; }
.form-header h2 { font-size:1.5rem; color:var(--navy); margin:.5rem 0; }
.form-header p { color:var(--muted); }
.form-alert { padding:1rem 1.5rem; border-radius:.75rem; margin-bottom:1.5rem; font-weight:500; }
.form-alert-success { background:#f0fdf9; border:1px solid rgba(0,201,167,.4); color:#065f46; }
.form-alert-error { background:#fef2f2; border:1px solid rgba(239,68,68,.3); color:#991b1b; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media(max-width:600px){ .form-row { grid-template-columns:1fr; } }
.form-group { margin-bottom:1.25rem; }
.form-group label { display:block; font-size:.875rem; font-weight:600; color:var(--navy); margin-bottom:.4rem; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; padding:.7rem 1rem; border:2px solid #e2e8f0; border-radius:.625rem;
  font-family:var(--font-body); font-size:.95rem; color:var(--text); background:white;
  transition:border-color .2s; box-sizing:border-box;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline:none; border-color:var(--accent); }
.form-group input.error, .form-group select.error, .form-group textarea.error { border-color:#ef4444; }
.field-error { font-size:.8rem; color:#ef4444; margin-top:.25rem; display:block; }
.form-check { display:flex; gap:.75rem; align-items:flex-start; margin-bottom:1.5rem; }
.form-check input[type=checkbox] { flex-shrink:0; width:18px; height:18px; margin-top:2px; accent-color:var(--accent); }
.form-check label { font-size:.875rem; color:var(--muted); line-height:1.5; }
.form-check label a { color:var(--navy); text-decoration:underline; }
.form-disclaimer { text-align:center; font-size:.8rem; color:var(--muted); margin-top:.75rem; }
.btn-full { width:100%; justify-content:center; }
.contact-card { background:white; border-radius:1rem; padding:1.5rem; margin-bottom:1.25rem; box-shadow:0 1px 3px rgba(0,0,0,.08); border:1px solid #f1f5f9; }
.contact-card h3 { font-family:var(--font-head); color:var(--navy); font-size:1.1rem; margin:0 0 1rem; }
.contact-card-accent { background:linear-gradient(135deg,rgba(0,201,167,.05),rgba(10,36,99,.03)); border-color:rgba(0,201,167,.2); }
.contact-card-dark { background:var(--navy); }
.contact-list { list-style:none; padding:0; margin:0; }
.contact-list li { display:flex; gap:.75rem; padding:.75rem 0; border-bottom:1px solid #f8fafc; }
.contact-list li:last-child { border:none; }
.contact-icon { font-size:1.25rem; flex-shrink:0; margin-top:2px; }
.contact-list strong { display:block; font-size:.85rem; color:var(--navy); margin-bottom:.15rem; }
.contact-list a, .contact-list span { font-size:.9rem; color:var(--muted); }
.contact-list a:hover { color:var(--accent); }
.check-list { list-style:none; padding:0; margin:0; }
.check-list li { padding:.4rem 0; font-size:.9rem; color:#374151; }
.testimonial-mini .stars { color:#f59e0b; font-size:1.1rem; margin-bottom:.75rem; }
.testimonial-mini p { color:rgba(255,255,255,.85); font-style:italic; font-size:.9rem; line-height:1.6; }
.testimonial-mini strong { color:rgba(255,255,255,.6); font-size:.8rem; display:block; margin-top:.5rem; }
.btn-whatsapp { background:#25D366; color:white; display:inline-flex; align-items:center; gap:.5rem; justify-content:center; }
.btn-whatsapp:hover { background:#1ebe5a; }
.faq-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(400px,1fr)); gap:1rem; }
@media(max-width:500px){ .faq-grid { grid-template-columns:1fr; } }

/* CALCULADORAS HUB */
.calc-hub-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(440px,1fr)); gap:2rem; }
@media(max-width:560px){ .calc-hub-grid { grid-template-columns:1fr; } }
.calc-hub-card { display:flex; gap:1.5rem; background:white; border-radius:1.25rem; padding:1.75rem; box-shadow:0 2px 12px rgba(10,36,99,.07); border:1px solid #f1f5f9; text-decoration:none; transition:transform .2s, box-shadow .2s; }
.calc-hub-card:hover { transform:translateY(-4px); box-shadow:0 8px 30px rgba(10,36,99,.13); }
.calc-hub-icon { width:64px; height:64px; border-radius:1rem; display:flex; align-items:center; justify-content:center; font-size:1.75rem; flex-shrink:0; }
.calc-hub-content { flex:1; }
.calc-hub-content h2 { font-size:1.15rem; color:var(--navy); margin:.3rem 0 .5rem; line-height:1.3; }
.calc-hub-content p { font-size:.9rem; color:var(--muted); line-height:1.6; margin:0 0 .75rem; }
.calc-features { list-style:none; padding:0; margin:0 0 1rem; display:grid; grid-template-columns:1fr 1fr; gap:.2rem; }
.calc-features div { font-size:.82rem; color:#374151; }
.btn-sm { padding:.45rem .9rem; font-size:.85rem; }
.btn-accent { background:var(--accent); color:var(--navy); font-weight:700; }
.btn-accent:hover { background:#00a68a; color:white; }
.info-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.5rem; }
.info-card { background:white; border-radius:1rem; padding:1.5rem; border:1px solid #f1f5f9; }
.info-card h3 { font-family:var(--font-head); color:var(--navy); font-size:1rem; margin:0 0 .75rem; }
.info-card p { font-size:.9rem; color:var(--muted); line-height:1.6; margin:0; }
.cta-section { background:linear-gradient(135deg,var(--navy) 0%,#1a3a7c 100%); }
.cta-box { text-align:center; color:white; }
.cta-box h2 { font-size:clamp(1.75rem,3.5vw,2.5rem); color:white; }
.cta-box p { color:rgba(255,255,255,.8); font-size:1.1rem; max-width:600px; margin:1rem auto 2rem; }
.cta-actions { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.btn-outline-white { border:2px solid rgba(255,255,255,.5); color:white; background:transparent; }
.btn-outline-white:hover { background:white; color:var(--navy); }

/* SERVICIOS */
.service-detail-card { display:flex; gap:2rem; background:white; border-radius:1.25rem; padding:2rem; margin-bottom:2rem; box-shadow:0 2px 12px rgba(10,36,99,.06); border:1px solid #f1f5f9; }
@media(max-width:700px){ .service-detail-card { flex-direction:column; } }
.service-detail-icon { width:72px; height:72px; background:linear-gradient(135deg,var(--navy),#1a3a7c); border-radius:1.25rem; display:flex; align-items:center; justify-content:center; font-size:2rem; flex-shrink:0; }
.service-detail-content h3 { font-size:1.35rem; color:var(--navy); margin:.25rem 0 .75rem; }
.service-detail-content > p { color:#374151; line-height:1.7; margin-bottom:1rem; }
.service-includes { background:#f8fafc; border-radius:.75rem; padding:1.25rem; margin-top:1rem; }
.service-includes h4 { font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin:0 0 .75rem; }
.includes-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:.4rem; }
.includes-grid div { font-size:.875rem; color:#374151; padding:.15rem 0; }
.pricing-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1.5rem; }
.pricing-card { background:white; border-radius:1.25rem; padding:2rem; border:2px solid #f1f5f9; position:relative; }
.pricing-card-featured { border-color:var(--accent); background:linear-gradient(135deg,rgba(0,201,167,.03),white); }
.pricing-badge { position:absolute; top:-12px; left:50%; transform:translateX(-50%); background:var(--accent); color:var(--navy); font-size:.75rem; font-weight:700; padding:.25rem .75rem; border-radius:2rem; white-space:nowrap; }
.pricing-header { text-align:center; margin-bottom:1.5rem; }
.pricing-icon { font-size:2.5rem; display:block; margin-bottom:.5rem; }
.pricing-header h3 { font-family:var(--font-head); color:var(--navy); font-size:1.5rem; margin:0 0 .25rem; }
.pricing-sub { color:var(--muted); font-size:.9rem; }
.pricing-features { margin-bottom:1.5rem; }
.pricing-features div { padding:.4rem 0; font-size:.875rem; color:#374151; border-bottom:1px solid #f8fafc; }
.pricing-features .feat-no { color:#94a3b8; }
.process-steps { display:flex; align-items:flex-start; gap:1rem; flex-wrap:wrap; }
.process-step { flex:1; min-width:180px; text-align:center; }
.step-num { width:48px; height:48px; border-radius:50%; background:var(--navy); color:white; font-family:var(--font-head); font-weight:800; font-size:1.1rem; display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; }
.process-step h4 { font-family:var(--font-head); color:var(--navy); margin:0 0 .5rem; }
.process-step p { font-size:.875rem; color:var(--muted); line-height:1.6; }
.process-arrow { font-size:1.5rem; color:var(--accent); margin-top:14px; flex-shrink:0; }
@media(max-width:600px){ .process-arrow { display:none; } }
.bg-navy-gradient { background:linear-gradient(135deg,var(--navy),#1a3a7c); }
.guarantee-box { display:flex; gap:2rem; align-items:flex-start; color:white; }
@media(max-width:600px){ .guarantee-box { flex-direction:column; } }
.guarantee-icon { font-size:4rem; flex-shrink:0; }
.guarantee-box h2 { color:white; font-size:1.75rem; }
.guarantee-box p { color:rgba(255,255,255,.85); line-height:1.7; }

/* NOSOTROS */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
@media(max-width:800px){ .about-grid { grid-template-columns:1fr; } }
.about-story h2 { font-size:1.75rem; color:var(--navy); margin:.75rem 0 1.25rem; }
.about-story p { color:#374151; line-height:1.8; margin-bottom:1rem; }
.about-values { display:flex; flex-direction:column; gap:1.25rem; }
.value-card { background:white; border-radius:1rem; padding:1.5rem; border:1px solid #f1f5f9; box-shadow:0 1px 4px rgba(0,0,0,.06); display:flex; gap:1rem; align-items:flex-start; }
.value-icon { font-size:1.75rem; flex-shrink:0; }
.value-card h4 { font-family:var(--font-head); color:var(--navy); margin:0 0 .4rem; }
.value-card p { color:var(--muted); font-size:.9rem; line-height:1.6; margin:0; }
.cert-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1.5rem; }
.cert-card { background:white; border-radius:1rem; padding:1.5rem; text-align:center; border:1px solid #f1f5f9; box-shadow:0 1px 4px rgba(0,0,0,.06); }
.cert-icon { font-size:2.5rem; display:block; margin-bottom:.75rem; }
.cert-card h4 { font-family:var(--font-head); color:var(--navy); font-size:.95rem; margin:0 0 .5rem; }
.cert-card p { color:var(--muted); font-size:.85rem; line-height:1.5; margin:0; }
