/* Servicios: estilos propios de las tarjetas y controles.
   Rejillas en layout.css, paleta en base.css y animaciones en arx.css. */
.sv-shell {
    padding-top:42px;
    padding-bottom:56px}
.sv-shell,.sv-shell *,.sv-dialog,.sv-dialog * {
    box-sizing:border-box}
.sv-shell {
    --sv-border:var(--coepriso-gray-200);
    --sv-muted:var(--coepriso-gray-500)}
.sv-shell h1,.sv-shell h2,.sv-shell h3,.sv-dialog h2 {
    font-family:var(--font-titulo);
    margin:0}
.sv-shell p {
    margin:0}
.sv-shell button,.sv-dialog button {
    font-family:inherit;
    cursor:pointer}
.sv-shell [hidden] {
    display:none!important}
.sv-eyebrow {
    font-size:11px;
    font-weight:800;
    letter-spacing:.15em;
    color:var(--coepriso-guinda);
    margin-bottom:14px!important}
.sv-hero {
    padding:36px 40px;
    margin-bottom:38px;
    background:var(--coepriso-blanco);
    border:1px solid var(--coepriso-gray-200);
    border-radius:var(--radius-xl);
    box-shadow:var(--shadow-coepriso)}
.sv-hero h1 {
    font-size:clamp(32px,4vw,53px);
    line-height:1.23;
    letter-spacing:-.025em;
    color:var(--coepriso-guinda-900)}
.sv-hero h1 em {
    font-style:normal;
    color:var(--coepriso-guinda)}
.sv-lead {
    font-size:15px;
    line-height:1.9;
    max-width:630px;
    margin-top:19px!important;
    color:var(--coepriso-gray-700)}
.sv-text-link {
    display:inline-flex;
    gap:24px;
    align-items:center;
    text-decoration:none;
    font-size:13px;
    font-weight:700;
    color:var(--coepriso-guinda);
    margin-top:24px}
.sv-text-link span {
    font-size:21px}
.sv-hero-aside {
    align-self:center;
    padding:6px 0 6px 30px;
    border-left:1px solid var(--sv-border);
    display:grid;
    gap:26px}
.sv-step {
    display:flex;
    align-items:center;
    gap:20px;
    color:var(--coepriso-dorado-700);
    font-size:18px;
    font-weight:600}
.sv-step b {
    color:var(--coepriso-gray-700);
    font-size:13px;
    font-weight:600}
.sv-feature {
    border:2px solid var(--coepriso-verde-200);
    transition:translate .28s ease,box-shadow .28s ease,border-color .28s ease;
    background:var(--coepriso-verde);
    color:var(--coepriso-blanco);
    border-radius:var(--radius-xl);
    overflow:hidden;
    box-shadow:var(--shadow-coepriso);
    margin:0 0 52px}
.sv-feature-media {
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--coepriso-crema);
    padding:22px}
.sv-feature-media img {
    width:100%;
    height:100%;
    max-height:330px;
    object-fit:contain}
.sv-feature-copy {
    padding:35px 42px}
.sv-feature-labels {
    display:flex;
    gap:17px;
    align-items:center;
    flex-wrap:wrap;
    margin-bottom:20px}
.sv-badge {
    display:inline-block;
    padding:6px 11px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    background:var(--coepriso-crema);
    color:var(--coepriso-verde);
    line-height:1.5}
.sv-kicker {
    font-size:10px;
    letter-spacing:.13em;
    color:var(--coepriso-verde-100);
    font-weight:700}
.sv-feature h2 {
    font-size:clamp(27px,3vw,35px);
    line-height:1.25;
    color:var(--coepriso-blanco)}
.sv-feature-copy>p {
    font-size:13px;
    line-height:1.8;
    color:var(--coepriso-verde-100);
    margin-top:16px;
    max-width:470px}
.sv-feature-actions {
    display:flex;
    gap:24px;
    align-items:center;
    flex-wrap:wrap;
    margin-top:22px}
.sv-btn {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:15px;
    border:1px solid transparent;
    background:var(--coepriso-crema);
    color:var(--coepriso-verde);
    padding:13px 20px;
    border-radius:var(--radius-sm);
    font-size:12px;
    font-weight:800;
    text-decoration:none;
    line-height:1.5;
    transition:background .2s,transform .2s}
.sv-btn:hover {
    background:var(--coepriso-crema-2);
    transform:translateY(-2px)}
.sv-btn--outline {
    background:transparent;
    color:var(--coepriso-guinda);
    border-color:var(--coepriso-guinda-200)}
.sv-btn--outline:hover {
    background:var(--coepriso-guinda-50)}
.sv-btn--small {
    padding:10px 13px;
    font-size:11px;
    width:100%;
    margin-top:12px}
.sv-feature-link {
    font-size:11px;
    font-weight:600;
    color:var(--coepriso-blanco);
    text-underline-offset:5px}
.sv-feature-details {
    margin-top:19px;
    font-size:11px;
    color:var(--coepriso-verde-100)}
.sv-feature-details summary {
    cursor:pointer;
    padding:4px 0}
.sv-feature-details p {
    padding:10px 0;
    line-height:1.8}
.sv-section-intro {
    display:flex;
    justify-content:space-between;
    gap:25px;
    align-items:end;
    margin-bottom:24px}
.sv-section-intro h2 {
    font-size:29px;
    color:var(--coepriso-guinda-900)}
.sv-section-intro>p {
    font-size:11px;
    line-height:1.8;
    color:var(--sv-muted)}
.sv-controls {
    background:var(--coepriso-blanco);
    border:1px solid var(--sv-border);
    border-radius:var(--radius-lg);
    padding:13px;
    display:flex;
    gap:20px;
    align-items:center;
    box-shadow:0 5px 20px rgba(59,6,23,.025)}
.sv-search {
    display:flex;
    align-items:center;
    gap:13px;
    flex:1;
    min-width:0;
    padding:0 8px}
.sv-search>span {
    font-size:28px;
    color:var(--coepriso-guinda);
    line-height:1}
.sv-search input {
    width:100%;
    border:0;
    background:transparent;
    font:500 12px var(--font-base);
    padding:12px 0;
    color:var(--coepriso-texto);
    min-width:0}
.sv-search input:focus-visible {
    outline:2px solid var(--coepriso-guinda);
    outline-offset:4px;
    border-radius:3px}
.sv-search input::placeholder {
    color:var(--sv-muted)}
.sv-search button {
    border:0;
    background:var(--coepriso-guinda-50);
    font-size:20px;
    border-radius:50%;
    width:28px;
    height:28px;
    flex-shrink:0;
    color:var(--coepriso-guinda)}
.sv-filters {
    display:flex;
    gap:5px;
    border-left:1px solid var(--sv-border);
    padding-left:14px}
.sv-filters button {
    white-space:nowrap;
    background:transparent;
    border:0;
    padding:11px 14px;
    border-radius:10px;
    color:var(--coepriso-gray-700);
    font-size:11px;
    font-weight:700}
.sv-filters button[aria-pressed=true] {
    background:var(--coepriso-guinda);
    color:var(--coepriso-blanco)}
.sv-filters span {
    font-size:9px;
    margin-left:5px;
    opacity:.85}
.sv-result-row {
    display:flex;
    justify-content:space-between;
    gap:20px;
    margin:18px 2px 22px;
    color:var(--sv-muted);
    font-size:10px}
.sv-result-row>span {
    color:var(--coepriso-verde);
    font-weight:600}
.sv-grid {
    align-items:start}
.sv-card {
    background:var(--coepriso-blanco);
    border:2px solid var(--coepriso-guinda-200);
    border-radius:var(--radius-xl);
    overflow:hidden;
    box-shadow:var(--shadow-coepriso-sm);
    transition:translate .28s ease,box-shadow .28s ease,border-color .28s ease}
.sv-card:hover,
.sv-card:focus-within {
    translate:0 -6px;
    box-shadow:var(--shadow-coepriso-lg);
    border-color:var(--coepriso-guinda-500)}
.sv-card[data-scope="federal"] {
    border-color:var(--coepriso-azul-200)}
.sv-card[data-scope="federal"]:hover,
.sv-card[data-scope="federal"]:focus-within {
    border-color:var(--coepriso-azul-500)}
.sv-card-media {
    position:relative;
    height:180px;
    background:var(--coepriso-crema);
    overflow:hidden}
.sv-card-media img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block}
.sv-card-media .sv-badge {
    position:absolute;
    top:14px;
    left:14px;
    background:var(--coepriso-blanco);
    box-shadow:0 2px 8px #00000009}
.sv-badge--federal {
    color:var(--coepriso-azul)}
.sv-card-body {
    padding:24px}
.sv-code {
    font-size:9px;
    color:var(--coepriso-guinda);
    font-weight:700;
    line-height:1.7;
    margin-bottom:8px!important;
    overflow-wrap:anywhere}
.sv-card h3 {
    font-size:19px;
    line-height:1.4;
    color:var(--coepriso-guinda-900);
    overflow-wrap:anywhere}
.sv-description {
    margin:12px 0 20px!important;
    color:var(--sv-muted);
    font-size:11px;
    line-height:1.85;
    min-height:60px}
.sv-doc-heading {
    display:flex;
    align-items:center;
    gap:7px;
    font-size:10px;
    font-weight:800;
    color:var(--coepriso-verde)}
.sv-doc-heading>span:first-child {
    font-size:16px}
.sv-doc-count {
    margin-left:auto;
    font-size:9px;
    background:var(--coepriso-verde-50);
    padding:3px 7px;
    border-radius:6px}
.sv-doc-preview {
    padding-left:15px;
    margin:12px 0 16px;
    color:var(--coepriso-gray-700);
    font-size:10px;
    line-height:1.7}
.sv-doc-preview li {
    margin-bottom:7px}
.sv-doc-preview li::marker {
    color:var(--coepriso-dorado)}
.sv-details {
    border-top:1px solid var(--sv-border);
    font-size:11px}
.sv-details>summary {
    padding:14px 0;
    cursor:pointer;
    color:var(--coepriso-guinda);
    font-weight:700;
    list-style:none;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px}
.sv-details>summary::-webkit-details-marker {
    display:none}
.sv-details[open]>summary span {
    transform:rotate(45deg)}
.sv-details-content {
    font-size:11px;
    line-height:1.85}
.sv-details-content ol {
    padding-left:18px}
.sv-details-content li {
    margin-bottom:10px}
.sv-original {
    border-radius:8px;
    background:var(--coepriso-crema-3);
    padding:10px;
    border:1px solid var(--sv-border)}
.sv-original summary {
    font-size:10px;
    font-weight:600;
    cursor:pointer}
.sv-original p {
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    font-size:10px;
    line-height:1.8;
    margin-top:12px}
.sv-source {
    font-size:9px;
    color:var(--sv-muted);
    padding:12px 0;
    overflow-wrap:anywhere}
.sv-note {
    font-size:10px;
    line-height:1.8;
    background:var(--coepriso-guinda-50);
    padding:12px;
    border-radius:8px;
    color:var(--coepriso-guinda-900);
    margin-bottom:15px!important}
.sv-card-footer {
    border-top:1px solid var(--sv-border);
    padding-top:15px}
.sv-channel {
    font-size:9px;
    font-weight:600;
    color:var(--sv-muted)}
.sv-help {
    display:flex;
    justify-content:space-between;
    gap:26px;
    align-items:center;
    padding:32px;
    background:var(--coepriso-crema);
    border:1px solid var(--sv-border);
    border-radius:var(--radius-lg);
    margin-top:48px}
.sv-help h2 {
    font-size:22px;
    line-height:1.45;
    color:var(--coepriso-guinda-900)}
.sv-help p:last-child {
    font-size:11px;
    color:var(--sv-muted);
    margin-top:9px}
.sv-help .sv-btn {
    flex-shrink:0}
.sv-empty {
    padding:54px 20px;
    text-align:center;
    border:1px dashed var(--coepriso-guinda-200);
    border-radius:var(--radius-lg);
    background:var(--coepriso-blanco)}
.sv-empty>span {
    font-size:42px;
    color:var(--coepriso-guinda)}
.sv-empty h3 {
    font-size:21px;
    margin:10px 0}
.sv-empty p {
    font-size:12px;
    color:var(--sv-muted);
    margin-bottom:20px}
.sv-dialog {
    border:0;
    padding:36px;
    border-radius:20px;
    max-width:470px;
    width:calc(100% - 32px);
    box-shadow:var(--shadow-coepriso-xl);
    color:var(--coepriso-texto);
    font-family:var(--font-base)}
.sv-dialog::backdrop {
    background:#1f293380;
    backdrop-filter:blur(4px)}
.sv-dialog h2 {
    font-size:24px;
    line-height:1.4;
    color:var(--coepriso-guinda-900)}
.sv-dialog>p:not(.sv-eyebrow) {
    font-size:13px;
    line-height:1.85;
    margin:16px 0 24px}
.sv-dialog-close {
    position:absolute;
    top:12px;
    right:14px;
    border:0;
    background:var(--coepriso-guinda-50);
    color:var(--coepriso-guinda);
    width:30px;
    height:30px;
    border-radius:50%;
    font-size:22px}

@media(min-width:1300px) {
    .sv-card-media {
    height:195px}
}

@media(max-width:1024px) {
    .sv-feature-copy {
    padding:28px}
.sv-controls {
    gap:10px}
.sv-filters button {
    padding:10px}
.sv-hero {
    gap:25px}
.sv-help {
    align-items:start;
    flex-direction:column}
}

@media(max-width:600px) {
    .sv-shell {
    padding-top:20px}
.sv-hero {
    gap:26px;
    padding:25px 22px}
.sv-hero h1 {
    font-size:32px}
.sv-lead {
    font-size:13px}
.sv-hero-aside {
    display:none}
.sv-feature {
    margin-bottom:34px;
    border-radius:var(--radius-lg)}
.sv-feature-media {
    height:205px;
    padding:0}
.sv-feature-copy {
    padding:25px}
.sv-feature h2 {
    font-size:29px}
.sv-feature-labels {
    gap:10px}
.sv-feature-actions {
    gap:17px}
.sv-section-intro {
    display:block}
.sv-section-intro>p {
    margin-top:12px}
.sv-section-intro h2 {
    font-size:25px}
.sv-controls {
    flex-direction:column;
    align-items:stretch;
    padding:10px}
.sv-filters {
    border-left:0;
    border-top:1px solid var(--sv-border);
    padding:9px 0 0;
    gap:7px}
.sv-filters button {
    flex:1;
    padding:10px 7px}
.sv-search input {
    font-size:11px}
.sv-result-row>span {
    display:none}
.sv-card-media {
    height:200px}
.sv-description {
    min-height:0}
.sv-card-body {
    padding:23px}
.sv-card h3 {
    font-size:21px}
.sv-doc-preview {
    font-size:11px}
.sv-help {
    padding:25px;
    margin-top:32px}
.sv-help h2 {
    font-size:21px}
}

@media(prefers-reduced-motion:reduce) {
    .sv-shell * {
    transition:none!important;
    scroll-behavior:auto!important}
}


.sv-card-media, .sv-feature-media { position: relative; }
.sv-media-empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--coepriso-guinda-200); font-size: 3rem; }
[data-service-image] { position: relative; z-index: 1; }
.sv-feature-media .sv-media-empty { color: var(--coepriso-verde-200); }
.sv-card-media .sv-badge { z-index: 2; }

/* Motivo de esquina reutilizable entre secciones, basado en index.css. */
.sv-pattern-corner {
    position:relative;
    overflow:hidden;
    isolation:isolate;
}
.sv-pattern-corner > * {
    position:relative;
    z-index:1;
}
.sv-pattern-corner::after {
    content:"";
    position:absolute;
    right:-44px;
    bottom:-60px;
    width:230px;
    height:230px;
    z-index:0;
    opacity:.08;
    background:
        linear-gradient(45deg,transparent 46%,var(--coepriso-azul) 47%,var(--coepriso-azul) 53%,transparent 54%),
        linear-gradient(-45deg,transparent 46%,var(--coepriso-naranja) 47%,var(--coepriso-naranja) 53%,transparent 54%);
    background-size:46px 46px;
    pointer-events:none;
}
.sv-feature:hover,
.sv-feature:focus-within {
    translate:0 -4px;
    border-color:var(--coepriso-verde);
    box-shadow:var(--shadow-coepriso-lg);
}
.sv-card-media img {
    transition:scale .35s ease;
}
.sv-card:hover .sv-card-media img,
.sv-card:focus-within .sv-card-media img {
    scale:1.04;
}
/* translate permite el hover sin interferir con transform de las animaciones ARX. */
@media (hover:none) {
    .sv-card:hover,.sv-feature:hover { translate:none; }
    .sv-card:hover .sv-card-media img { scale:1; }
}
@media (prefers-reduced-motion:reduce) {
    .sv-card:hover,.sv-card:focus-within,
    .sv-feature:hover,.sv-feature:focus-within { translate:none; }
    .sv-card:hover .sv-card-media img,
    .sv-card:focus-within .sv-card-media img { scale:1; }
}
