/* =========================
   TIPO SERVICIO (Página)
   ========================= */
:root{
  --green:#1f7a4a;
  --text:#111111;
  --line:#e7e7e7;

  --card-bg:#f6f6f8;
  --card-border:#e6e6e6;
  --shadow:0 10px 28px rgba(0,0,0,0.10);

  --radius:16px;
  --font:"Montserrat",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}

/* Reset */
*{ box-sizing:border-box; }
body{ margin:0; font-family:var(--font); color:var(--text); }

/* ===== HERO (idéntico) ===== */
.ps-hero{
  max-width:1200px;
  margin:46px auto 8px auto;
  padding:0 18px;
  text-align:center;
}
.ps-hero h1{
  margin:0;
  line-height:1.08;
  letter-spacing:-0.6px;
  font-weight:400;
  font-size:52px;
  white-space:nowrap;
}
.ps-hero .ps-accent{
  color:var(--green);
  font-weight:800;
  font-size:74px;
  letter-spacing:-1px;
}
/* ===== STEPS (mismo estilo, aunque no se use aquí) ===== */
.ps-steps-wrap{
  position:relative;
  max-width:980px;
  margin:28px auto 64px auto;
  padding:0 18px;
}
.ps-steps{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
}
.ps-step{
  width:160px;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  color:#bcbcbc;
  font-size:16px;
  font-weight:400;
}
.ps-step-text{ margin-top:10px; line-height:1.1; }

.ps-step-icon{
  width:92px; height:92px;
  border-radius:50%;
  background:#fff;
  border:none;
  box-shadow:0 10px 22px rgba(0,0,0,0.10);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:3;
}
.ps-step-icon svg{ width:50px; height:50px; color:#cfcfcf; }
.ps-step-icon i{ font-size:44px; color:#cfcfcf; }

.ps-step.active{ color:var(--green); font-weight:500; }
.ps-step.active .ps-step-icon{ background:var(--green); box-shadow:0 12px 28px rgba(0,0,0,0.12); }
.ps-step.active svg, .ps-step.active i{ color:#fff; }

.ps-step.done{ color:var(--green); font-weight:500; }
.ps-step.done svg, .ps-step.done i{ color:var(--green); }

.ps-step-line{
  position:absolute;
  left:calc(18px + 46px);
  right:calc(18px + 46px);
  top:46px;
  height:2px;
  background:var(--line);
  border-radius:999px;
  z-index:1;
}

/* ===== CONTENIDO TIPO SERVICIO ===== */
.ps-tipo-full{
  min-height:calc(100vh - 120px);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.ps-tipo-grid{
  display:flex;
  gap:48px;
  justify-content:center;
  align-items:center;
  min-height:60vh;
  padding:0 18px 60px 18px;
  flex-wrap:wrap;
}

.ps-tipo-card{
  position:relative;
  overflow:hidden;
  background:var(--bg-card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:120px 100px;
  min-width:520px;
  min-height:420px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  text-decoration:none;
  border:1.5px solid var(--border);
  transition:box-shadow .18s, transform .18s, color .18s, background .18s, border-color .18s;
}

.ps-tipo-card-title{
  display:block;
  font-size:2.7rem;
  font-weight:500;
  color:var(--green);
  opacity:1;
  transition:opacity .18s;
}

.ps-tipo-card-hover{
  opacity:0;
  pointer-events:none;
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  font-size:2rem;
  font-weight:400;
  padding:0 24px;
  transition:opacity .18s;
}

.ps-tipo-card-desc{
  display:block;
  font-size:1.1rem;
  color:#e0eede;
  margin-top:1.2em;
  font-weight:300;
}

.ps-tipo-card:hover{
  background:#2d7a4a;
  box-shadow:var(--shadow-hover);
  transform:translateY(-4px) scale(1.03);
  border-color:#b6e2c6;
}
.ps-tipo-card:hover .ps-tipo-card-title{ opacity:0; }
.ps-tipo-card:hover .ps-tipo-card-hover{ opacity:1; pointer-events:auto; }

/* Responsive común */
@media (max-width:1200px){
  .ps-hero h1{ font-size:46px; white-space:normal; }
  .ps-hero .ps-accent{ font-size:66px; }
}
@media (max-width:1100px){
  .ps-tipo-grid{ gap:24px; }
  .ps-tipo-card{
    min-width:320px;
    padding:70px 20px;
    min-height:220px;
  }
  .ps-tipo-card-title{ font-size:2.2rem; }
  .ps-tipo-card-hover{ font-size:1.35rem; }
}
@media (max-width:980px){
  .ps-step-line{ display:none; }
  .ps-steps{ justify-content:center; flex-wrap:wrap; gap:26px 22px; }
}
@media (max-width:700px){
  .ps-tipo-card{ width:98%; min-width:0; padding:40px 10px; }
  .ps-tipo-card-hover{ font-size:1.2rem; }
}
@media (max-width:520px){
  .ps-hero h1{ font-size:34px; }
  .ps-hero .ps-accent{ font-size:48px; }
}
