:root {
  --orange: #F26522;
  --yellow: #F99D1C;
  --green: #2DA44A;
  --accent-color: #EB1C24;
  --text-dark: #232323;
  --text-light: #888;
  --section-padding: 3.5rem;
  --content-max-width: 800px;
  --card-spacing: 1.5rem;
  --highlight-bg: #fef7f2;
}

/* Base */
body {
  font-family: 'Montserrat', Arial, sans-serif;
  background: #fff;
}
.content-container {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0 1rem;
  position: relative;
}

/* Hero */
.hero-section {
  background: #fff !important;
  min-height: auto !important;
  padding-top: 2.2rem !important;
  padding-bottom: 1.3rem !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.hero-title { margin-bottom: 0.3em !important; }
.hero-subtitle { margin-bottom: 1.2em !important; }

/* General */
.section-wrapper { padding: var(--section-padding) 0 2.2rem 0; }
.section-title {
  font-size: 2.1rem;
  font-weight: 600;
  color: var(--orange);
  margin-bottom: .2em;
}
.section-subtitle { color: var(--text-light); font-size: 1.05rem; }
.highlight-section {
  background: linear-gradient(90deg, var(--orange) 80%, var(--yellow) 100%);
  border-radius: 14px;
  padding: 2rem 1.5rem;
  color: #fff;
  text-align: center;
  margin: 2rem 0 2.2rem 0;
  font-size: 1.13rem;
  box-shadow: 0 8px 32px 0 rgba(242, 101, 34, 0.09);
  position: relative;
}

/* Modalidades */
.modalidades-bg-wave {
  background: #fff;
  position: relative;
  overflow: hidden;
  padding-bottom: 3.5rem;
}
.modalidades-bg-solid {
  background: #F6F6F6;
  position: relative;
  padding-bottom: 3.5rem;
}
.modalidades-bg-svg {
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  width: 100%; height: 150px; z-index: 0; pointer-events: none;
}
.modalidades-center-flow {
  margin: 0 auto;
  position: relative;
  display: flex;
  justify-content: center;
  max-width: 600px;
  z-index: 2;
}
.modalidades-cards {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1.05rem;
  position: relative;
  z-index: 2;
}
/* Solo mostrar la línea vertical si hay cards */
.vertical-line {
  position: absolute;
  left: 32px;
  top: 8px; bottom: 8px;
  width: 6px;
  border-radius: 4px;
  background: linear-gradient(180deg, #F26522, #F99D1C 90%);
  z-index: 1;
  display: none; /* Ocultar por defecto */
}
/* Mostrar la línea solo cuando hay modalidades */
.has-modalidades .vertical-line {
  display: block;
}
.process-card {
  background: #fff;
  border-radius: 13px;
  padding: 1.45rem 1.45rem 1.15rem 3.7rem;
  border: 1.5px solid #f8e9e2;
  box-shadow: 0 2px 12px 0 rgba(249, 157, 28, 0.05);
  position: relative;
  min-height: 124px;
  transition: box-shadow .25s, transform .25s;
  display: flex;
  align-items: flex-start;
}
.process-card:hover {
  box-shadow: 0 8px 32px 0 rgba(242, 101, 34, 0.09);
  transform: translateY(-3px) scale(1.012);
  border-color: #fae3d3;
}
.card-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.45rem;
  position: absolute;
  left: -24px;
  top: 24px;
  z-index: 2;
  box-shadow: 0 2px 10px 0 rgba(242, 101, 34, 0.07);
}
.icon-orange { background: #fdeee6; color: var(--orange);}
.icon-yellow { background: #fff6e4; color: var(--yellow);}
.icon-green { background: #ebf7ed; color: var(--green);}
.icon-red { background: #f8e6e7; color: var(--accent-color);}
.icon-blue { background: #e7eefc; color: #1a64d6;}
.process-card h4 {
  margin-bottom: .5em;
  font-weight: 600;
  color: var(--orange);
}
.process-card ul { padding-left: 1.2em; margin-bottom: 0; font-size: 1.04rem;}
.process-card ul li { margin-bottom: .3em; }

/* Beneficios */
.benefits-section {
  background: var(--highlight-bg);
  border-radius: 14px;
  padding: 2rem 1.2rem 1.3rem 1.2rem;
  margin: 2.5rem auto 2.3rem auto;
  max-width: 680px;
  text-align: center;
  box-shadow: 0 2px 12px 0 rgba(242, 101, 34, 0.03);
}
.benefits-section h4 { font-weight: 600; color: var(--orange); margin-bottom: .8em; }
.benefits-section ul {
  list-style: none;
  padding-left: 0;
  margin: 0 auto;
  max-width: 410px;
  text-align: left;
}
.benefits-section ul li {
  padding-left: 1.5em;
  position: relative;
  margin-bottom: .75em;
  font-size: 1.04rem;
}
.benefits-section ul li:before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 2px;
  color: var(--green);
  font-size: 1.13em;
}

/* Botones */
.cta-buttons {
  display: flex;
  justify-content: center;
  gap: 1.2rem;
  margin: 1.5rem 0 0 0;
  flex-wrap: wrap;
}
.btn-brand {
  background: var(--orange);
  color: #fff;
  border: none;
  padding: 0.8em 2em;
  font-weight: 600;
  font-size: 1.13em;
  border-radius: 28px;
  transition: background .23s, box-shadow .22s;
  box-shadow: 0 2px 14px 0 rgba(242, 101, 34, 0.13);
}
.btn-brand:hover, .btn-brand:focus { background: #d84f15; color: #fff; }
.btn-outline-brand {
  border: 2px solid var(--orange);
  background: transparent;
  color: var(--orange);
  padding: 0.8em 2em;
  border-radius: 28px;
  font-weight: 600;
  font-size: 1.13em;
  transition: background .22s, color .22s;
}
.btn-outline-brand:hover, .btn-outline-brand:focus {
  background: var(--orange);
  color: #fff;
}

/* Scroll reveal */
[data-sr] {
  opacity: 0;
  transform: translateY(38px);
  transition: all .77s cubic-bezier(.24, .82, .28, 1.01);
}
[data-sr].visible {
  opacity: 1;
  transform: none;
}

/* Responsive */
@media (max-width: 768px) {
  :root { --section-padding: 2rem; }
  .hero-title { font-size: 1.65rem; }
  .section-title { font-size: 1.25rem; }
  .hero-section { min-height: 48vh; }
  .modalidades-center-flow, .modalidades-cards { max-width: 98vw;}
  .process-card { padding: 1.1rem 1.1rem 1rem 2.7rem; min-height: 110px;}
  .vertical-line { left: 14px; width: 4px;}
  .card-icon { width: 34px; height: 34px; font-size: 1.02rem; left: -13px; top: 18px;}
}
@media (max-width: 520px) {
  .modalidades-center-flow, .modalidades-cards { max-width: 100vw;}
  .modalidades-center-flow { flex-direction: column;}
  .vertical-line { display: none;}
  .card-icon { left: 0; position: static; margin-bottom: .3em;}
  .process-card { padding-left: 1.1rem;}
}

.servicio-card.modern .servicio-icon {
  width: 60px;
  height: 60px;
  font-size: 2.25rem;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.45rem;
  margin-top: 0.1rem;
  box-shadow: 0 4px 14px 0 rgba(242,101,34,0.09);
}

.icon-orange    { background: #fdeee6; color: #F26522; }
.icon-red       { background: #fae2e2; color: #EB1C24; }
.icon-yellow    { background: #fff6e4; color: #F99D1C; }
.icon-green     { background: #ebf7ed; color: #2DA44A; }
.icon-blue      { background: #e7eefc; color: #1a64d6; }


