/* =========================================================
   SERVICIOS PÚBLICOS · sección CMS (12.C)
   ========================================================= */
.svc-cms{ position:relative; padding:64px 0 24px; margin-top:24px; }
.svc-cms::before{ content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(700px 360px at 88% 0%, rgba(255,106,0,.10), transparent 62%);
}
.svc-cms-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:28px; flex-wrap:wrap; margin-bottom:26px; }
.svc-kicker{ display:inline-flex; align-items:center; gap:8px; font-size:12px; letter-spacing:2.5px; text-transform:uppercase; font-weight:700; color:var(--orange);
  border:1px solid rgba(255,106,0,.32); background:rgba(255,106,0,.06); padding:6px 14px; border-radius:999px; margin-bottom:14px; }
.svc-h2{ font-family:'Space Grotesk','Montserrat',sans-serif; font-size:clamp(30px,4.4vw,52px); line-height:1; font-weight:700; color:#fff; margin:0 0 12px; letter-spacing:-1px; }
.svc-lead{ color:#9a9a9a; font-size:15px; line-height:1.6; max-width:520px; margin:0; }
.svc-cms-tools{ display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.svc-search{ position:relative; width:300px; max-width:80vw; }
.svc-search i{ position:absolute; left:14px; top:50%; transform:translateY(-50%); color:#666; font-size:14px; }
.svc-search input{ width:100%; padding:13px 16px 13px 42px; background:#121212; border:1px solid rgba(255,255,255,.1); border-radius:12px; color:#fff; font-family:'Montserrat',sans-serif; font-size:14px; outline:none; transition:.2s; }
.svc-search input:focus{ border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,106,0,.12); }
.svc-count{ font-size:12px; color:#777; letter-spacing:.5px; }

/* chips de tipo */
.svc-chips{ display:flex; gap:10px; overflow-x:auto; padding-bottom:8px; margin-bottom:30px; scrollbar-width:thin; }
.svc-chips::-webkit-scrollbar{ height:6px; } .svc-chips::-webkit-scrollbar-thumb{ background:rgba(255,106,0,.3); border-radius:3px; }
.svc-chip{ flex:0 0 auto; cursor:pointer; background:#121212; border:1px solid rgba(255,255,255,.1); color:#bbb; padding:9px 18px; border-radius:999px; font-size:13px; font-weight:600; white-space:nowrap; transition:.22s; font-family:'Montserrat',sans-serif; }
.svc-chip:hover{ border-color:rgba(255,106,0,.5); color:#fff; transform:translateY(-2px); }
.svc-chip.on{ background:linear-gradient(135deg,var(--orange),#ff8533); border-color:transparent; color:#fff; box-shadow:0 8px 20px rgba(255,106,0,.32); }

.svc-loading{ text-align:center; padding:50px; color:var(--orange); font-size:26px; }

/* card destacada (horizontal) */
.svc-feature{ display:grid; grid-template-columns:1.1fr 1fr; gap:0; background:#101010; border:1px solid rgba(255,106,0,.22); border-radius:20px; overflow:hidden; margin-bottom:26px; cursor:pointer; transition:.3s; position:relative; }
.svc-feature:hover{ transform:translateY(-5px); border-color:var(--orange); box-shadow:0 26px 60px rgba(0,0,0,.55),0 0 0 1px rgba(255,106,0,.35); }
.svc-feature .svc-f-media{ position:relative; min-height:300px; background:#0c0c0c; overflow:hidden; }
.svc-feature .svc-f-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.svc-feature:hover .svc-f-media img{ transform:scale(1.06); }
.svc-feature .svc-f-media .svc-play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.svc-f-body{ padding:34px 36px; display:flex; flex-direction:column; justify-content:center; }
.svc-tag{ display:inline-flex; align-items:center; gap:7px; align-self:flex-start; font-size:11px; font-weight:800; letter-spacing:1px; text-transform:uppercase; color:var(--orange); background:rgba(255,106,0,.1); padding:5px 12px; border-radius:8px; margin-bottom:14px; }
.svc-f-title{ font-family:'Space Grotesk',sans-serif; font-size:clamp(24px,3vw,34px); font-weight:700; color:#fff; line-height:1.08; margin:0 0 8px; letter-spacing:-.5px; }
.svc-f-meta{ color:#888; font-size:13px; margin-bottom:14px; }
.svc-f-desc{ color:#a8a8a8; font-size:14px; line-height:1.65; margin:0 0 20px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.svc-f-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.svc-price{ font-family:'Space Grotesk',sans-serif; font-size:30px; font-weight:700; color:#fff; }
.svc-price .from{ font-size:13px; font-weight:600; color:var(--orange); display:block; line-height:1; margin-bottom:2px; font-family:'Montserrat',sans-serif; letter-spacing:.5px; }
.svc-f-cta{ display:inline-flex; align-items:center; gap:9px; background:linear-gradient(135deg,var(--orange),#ff8533); color:#fff; font-weight:700; font-size:14px; padding:12px 22px; border-radius:12px; transition:.22s; }
.svc-feature:hover .svc-f-cta{ transform:translateX(3px); box-shadow:0 10px 24px rgba(255,106,0,.4); }

/* grid del resto */
.svc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:20px; }
.svc-card{ background:#101010; border:1px solid rgba(255,255,255,.07); border-radius:18px; overflow:hidden; cursor:pointer; transition:.3s cubic-bezier(.2,.8,.2,1); display:flex; flex-direction:column; position:relative; }
.svc-card:hover{ transform:translateY(-7px); border-color:rgba(255,106,0,.45); box-shadow:0 22px 48px rgba(0,0,0,.55),0 0 0 1px rgba(255,106,0,.3); }
.svc-card-media{ position:relative; aspect-ratio:16/10; background:#0c0c0c; overflow:hidden; }
.svc-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.8,.2,1); }
.svc-card:hover .svc-card-media img{ transform:scale(1.08); }
.svc-card-media .svc-noimg{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#3a3a3a; font-size:40px; }
.svc-badges{ position:absolute; top:12px; left:12px; display:flex; gap:7px; flex-wrap:wrap; }
.svc-mini-badge{ font-size:10px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; padding:4px 9px; border-radius:7px; backdrop-filter:blur(6px); }
.svc-mini-badge.feat{ background:var(--orange); color:#fff; }
.svc-mini-badge.type{ background:rgba(0,0,0,.6); color:#ddd; border:1px solid rgba(255,255,255,.12); }
.svc-card-icons{ position:absolute; bottom:12px; right:12px; display:flex; gap:7px; }
.svc-card-icons span{ width:30px; height:30px; border-radius:50%; background:rgba(0,0,0,.62); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; backdrop-filter:blur(6px); }
.svc-card-body{ padding:18px 20px 22px; display:flex; flex-direction:column; flex:1; }
.svc-card-title{ font-size:17px; font-weight:700; color:#fff; margin:0 0 6px; line-height:1.25; }
.svc-card-meta{ color:#888; font-size:12.5px; margin-bottom:14px; }
.svc-card-foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.svc-card-price{ font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:700; color:#fff; }
.svc-card-price .from{ font-size:11px; color:var(--orange); font-weight:600; display:block; font-family:'Montserrat',sans-serif; }
.svc-card-price.consult{ font-size:15px; color:var(--orange); font-family:'Montserrat',sans-serif; font-weight:700; }
.svc-card-go{ width:40px; height:40px; border-radius:50%; background:rgba(255,106,0,.12); color:var(--orange); display:flex; align-items:center; justify-content:center; transition:.25s; flex:0 0 auto; }
.svc-card:hover .svc-card-go{ background:var(--orange); color:#fff; transform:rotate(-45deg); }

.svc-empty{ text-align:center; padding:60px 20px; color:#777; }
.svc-empty i{ font-size:40px; color:#444; margin-bottom:14px; }

/* scroll reveal */
.svc-reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.svc-reveal.in{ opacity:1; transform:none; }
.svc-card.svc-in, .svc-feature.svc-in{ animation:svcRise .55s cubic-bezier(.2,.8,.2,1) both; }
@keyframes svcRise{ from{ opacity:0; transform:translateY(24px) scale(.985);} to{ opacity:1; transform:none; } }

@media (max-width:820px){
  .svc-feature{ grid-template-columns:1fr; }
  .svc-feature .svc-f-media{ min-height:220px; }
  .svc-cms-head{ align-items:flex-start; }
  .svc-cms-tools{ align-items:flex-start; width:100%; }
  .svc-search{ width:100%; max-width:none; }
}
