/* =========================================================
   municipio-base.css
   Estilos generales centralizados.
   Las reglas específicas están separadas por clase de página
   para conservar exactamente la estética de cada ASP.
   ========================================================= */


/* ===== CtaCte.asp ===== */

		body.page-ctacte{
			--primary:#0b5c8f;
			--primary-dark:#083e66;
			--accent:#1c75bc;
			--accent-dark:#0f5f9f;
			--accent-soft:#e9f3fb;
			--bg:#eef3f8;
			--card:#ffffff;
			--text:#1d2939;
			--muted:#667085;
			--border:#d3dfeb;
			--success:#12715b;
			--shadow:0 12px 30px rgba(11, 92, 143, .10);
			--radius:18px;
		}

		body.page-ctacte *{box-sizing:border-box}
		html, body.page-ctacte{margin:0;padding:0}
		body.page-ctacte{
			font-family:"Inter",Arial,Helvetica,sans-serif;
			background:
				radial-gradient(circle at top left, rgba(15,76,129,.09), transparent 28%),
				linear-gradient(180deg, #f8fbff 0%, var(--bg) 100%);
			color:var(--text);
			line-height:1.5;
		}

		body.page-ctacte a{color:var(--primary);text-decoration:none}
		body.page-ctacte a:hover{text-decoration:underline}

		body.page-ctacte .page{
			width:100%;
			max-width:1180px;
			margin:0 auto;
			padding:24px 16px 40px;
		}

		body.page-ctacte .content-wrap{
			width:100%;
			max-width:980px;
			margin:0 auto;
		}

		body.page-ctacte .topbar{
			display:flex;
			align-items:center;
			justify-content:space-between;
			gap:16px;
			flex-wrap:wrap;
			margin-bottom:18px;
		}

		body.page-ctacte .brand{
			display:flex;
			align-items:center;
			gap:14px;
		}

		body.page-ctacte .brand img{
			width:210px;
			height:auto;
			display:block;
		}

		body.page-ctacte .brand-copy small{
			display:block;
			color:var(--muted);
			font-weight:600;
			letter-spacing:.04em;
			text-transform:uppercase;
			margin-bottom:4px;
		}

		body.page-ctacte .brand-copy h1{
			margin:0;
			font-size:clamp(1.5rem, 3vw, 2.35rem);
			line-height:1.15;
			color:var(--primary-dark);
		}

		body.page-ctacte .back-link{
			display:inline-flex;
			align-items:center;
			gap:8px;
			padding:12px 16px;
			border-radius:999px;
			background:#fff;
			border:1px solid var(--border);
			box-shadow:var(--shadow);
			font-weight:600;
		}

		body.page-ctacte .hero{
			background:linear-gradient(135deg, var(--primary-dark), var(--primary));
			color:#fff;
			border-radius:28px;
			padding:28px;
			box-shadow:0 18px 40px rgba(10,53,89,.24);
			margin-bottom:24px;
			position:relative;
			overflow:hidden;
		}

		body.page-ctacte .hero:after{
			content:"";
			position:absolute;
			right:-40px;
			top:-40px;
			width:180px;
			height:180px;
			background:rgba(255,255,255,.08);
			border-radius:50%;
		}

		body.page-ctacte .hero h2{
			margin:0 0 10px;
			font-size:clamp(1.4rem, 2.8vw, 2rem);
			line-height:1.2;
		}

		body.page-ctacte .hero p{
			margin:0;
			max-width:760px;
			color:rgba(255,255,255,.92);
			font-size:1rem;
		}

		body.page-ctacte .grid{
			display:grid;
			grid-template-columns:1fr;
			gap:24px;
			align-items:start;
			margin-bottom:24px;
		}

		body.page-ctacte .card{
			background:var(--card);
			border:1px solid rgba(219,228,238,.85);
			border-radius:var(--radius);
			box-shadow:var(--shadow);
		}

		body.page-ctacte .card-body{
			padding:24px;
		}

		body.page-ctacte .section-title{
			margin:0 0 8px;
			color:var(--primary-dark);
			font-size:1.3rem;
		}

		body.page-ctacte .section-text{
			margin:0 0 18px;
			color:var(--muted);
		}

		body.page-ctacte form .fields{
			display:grid;
			grid-template-columns:25ch 170px;
			column-gap:16px;
			row-gap:12px;
			align-items:end;
		}

		body.page-ctacte .field-tasa{
			grid-column:1 / -1;
		}

		body.page-ctacte .field-objeto input[type="text"]{
			width:25ch;
			max-width:100%;
		}

		body.page-ctacte .field{
			display:flex;
			flex-direction:column;
			gap:8px;
		}

		body.page-ctacte .field-objeto{
			align-self:end;
		}

		body.page-ctacte label{
			font-size:.96rem;
			font-weight:700;
			color:var(--primary-dark);
		}

		body.page-ctacte input[type="text"], body.page-ctacte select{
			width:100%;
			min-height:50px;
			padding:12px 14px;
			border:1px solid var(--border);
			border-radius:14px;
			background:#fff;
			font-size:1rem;
			color:var(--text);
			outline:none;
			transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
		}

		body.page-ctacte input[type="text"]:focus, body.page-ctacte select:focus{
			border-color:var(--primary);
			box-shadow:0 0 0 4px rgba(15,76,129,.12);
		}

		body.page-ctacte .actions{
			display:flex;
			align-items:flex-end;
			justify-content:flex-start;
			align-self:end;
			height:auto;
			padding-bottom:0;
		}

		body.page-ctacte .btn-primary, body.page-ctacte .btn-secondary{
			display:inline-flex;
			align-items:center;
			justify-content:center;
			height:50px;
			min-height:50px;
			padding:0 22px;
			border:none;
			border-radius:14px;
			cursor:pointer;
			font-size:1rem;
			font-weight:800;
			line-height:1;
			vertical-align:bottom;
			transition:transform .15s ease, box-shadow .2s ease, opacity .2s ease;
			text-decoration:none;
		}

		body.page-ctacte .btn-primary{
			width:170px;
			background:linear-gradient(135deg, var(--accent), var(--accent-dark));
			color:#fff;
			box-shadow:0 10px 22px rgba(28,117,188,.22);
		}

		body.page-ctacte .btn-primary:hover, body.page-ctacte .btn-secondary:hover{
			transform:translateY(-1px);
			text-decoration:none;
		}

		body.page-ctacte .btn-primary:disabled{
			opacity:.7;
			cursor:not-allowed;
			transform:none;
		}

		body.page-ctacte .btn-secondary{
			background:#fff4f1;
			color:#bb341f;
			border:1px solid #ffd6cf;
			padding:12px 18px;
		}

		body.page-ctacte .hint{
			margin-top:14px;
			font-size:.92rem;
			color:var(--muted);
		}

		body.page-ctacte .discount-card{
			height:100%;
			background:linear-gradient(180deg, #fff 0%, #fff9f8 100%);
		}

		body.page-ctacte .discount-badge{
			display:inline-flex;
			padding:6px 10px;
			border-radius:999px;
			background:#fff1ed;
			border:1px solid #ffd8d1;
			color:#bb341f;
			font-weight:800;
			font-size:.82rem;
			margin-bottom:12px;
		}

		body.page-ctacte .discount-card p{
			color:var(--muted);
			margin:0 0 16px;
		}

		body.page-ctacte .alert{
			margin:0 0 20px;
			padding:14px 16px;
			border-radius:14px;
			font-weight:600;
			border:1px solid;
		}

		body.page-ctacte .alert-error{
			background:#fff3f2;
			border-color:#ffd4cd;
			color:#b42318;
		}

		body.page-ctacte .summary{
			display:grid;
			grid-template-columns:repeat(2, minmax(0,1fr));
			gap:16px;
			margin-bottom:18px;
		}

		body.page-ctacte .summary-item{
			background:#f9fbfd;
			border:1px solid var(--border);
			border-radius:16px;
			padding:16px;
		}

		body.page-ctacte .summary-item strong{
			display:block;
			font-size:.84rem;
			text-transform:uppercase;
			letter-spacing:.04em;
			color:var(--muted);
			margin-bottom:8px;
		}

		body.page-ctacte .summary-item span{
			display:block;
			font-size:1.06rem;
			font-weight:800;
			color:var(--primary-dark);
		}

		body.page-ctacte .link-box{
			margin:18px 0 20px;
			padding:16px;
			border-radius:16px;
			background:linear-gradient(180deg,#f3f8fe 0%, #eef5fc 100%);
			border:1px solid #d5e5f5;
		}

		body.page-ctacte .link-box strong{
			color:var(--primary-dark);
		}

		body.page-ctacte .results-head{
			display:flex;
			align-items:center;
			justify-content:space-between;
			gap:12px;
			flex-wrap:wrap;
			margin-bottom:12px;
		}

		body.page-ctacte .results-head h3{
			margin:0;
			color:var(--primary-dark);
			font-size:1.2rem;
		}

		body.page-ctacte .results-count{
			color:var(--muted);
			font-weight:700;
			font-size:.92rem;
		}

		body.page-ctacte .result-table{
			width:100%;
			border-collapse:separate;
			border-spacing:0 10px;
		}

		body.page-ctacte .result-table thead th{
			position:sticky;
			top:0;
			z-index:30;
			text-align:center;
			vertical-align:middle;
			padding:12px 12px;
			color:#fff;
			font-size:.83rem;
			text-transform:uppercase;
			letter-spacing:.04em;
			background:linear-gradient(180deg, var(--accent) 0%, var(--accent-dark) 100%);
			box-shadow:0 2px 0 rgba(8,62,102,.12);
		}

		body.page-ctacte .result-table tbody td{
			padding:14px 12px;
			background:#fff;
			border-top:1px solid var(--border);
			border-bottom:1px solid var(--border);
			vertical-align:middle;
			text-align:center;
			font-size:.95rem;
		}


		body.page-ctacte .result-table thead th:first-child{
			border-radius:14px 0 0 14px;
		}

		body.page-ctacte .result-table thead th:last-child{
			border-radius:0 14px 14px 0;
		}

		body.page-ctacte .result-table tbody td:first-child{
			border-left:1px solid var(--border);
			border-radius:14px 0 0 14px;
		}

		body.page-ctacte .result-table tbody td:last-child{
			border-right:1px solid var(--border);
			border-radius:0 14px 14px 0;
		}

		body.page-ctacte .result-table tbody tr:hover td{
			background:#fbfdff;
		}

		body.page-ctacte .result-table tbody tr.row-juicio td{
			background:#fff3f1;
		}

		body.page-ctacte .result-table tbody tr.row-juicio:hover td{
			background:#ffe9e5;
		}

		body.page-ctacte .result-table tbody tr.row-intimado td{
			background:#fff7ee;
		}

		body.page-ctacte .result-table tbody tr.row-intimado:hover td{
			background:#ffefd9;
		}

		body.page-ctacte .amount{
			font-weight:800;
			color:var(--success);
			white-space:nowrap;
			text-align:right !important;
		}

		body.page-ctacte .result-table thead th.num-col{
			text-align:right;
		}

		body.page-ctacte .action-link{
			display:inline-flex;
			align-items:center;
			justify-content:center;
			padding:10px 14px;
			border-radius:12px;
			font-weight:700;
			border:1px solid var(--border);
			background:#fff;
			color:var(--primary-dark);
			text-decoration:none;
			white-space:nowrap;
		}

		body.page-ctacte .action-link:hover{
			background:#f7fbff;
			text-decoration:none;
		}

		body.page-ctacte .redlink-frame{
			width:220px;
			max-width:100%;
			height:60px;
			border:0;
			display:block;
			background:transparent;
		}

		body.page-ctacte .total-grid{
			display:grid;
			grid-template-columns:repeat(3, minmax(0,1fr));
			gap:16px;
			margin-top:16px;
		}

		body.page-ctacte .total-card{
			padding:18px;
			border-radius:16px;
			border:1px solid var(--border);
			background:#f9fbfd;
		}

		body.page-ctacte .total-card strong{
			display:block;
			color:var(--muted);
			font-size:.84rem;
			text-transform:uppercase;
			letter-spacing:.04em;
			margin-bottom:8px;
		}

		body.page-ctacte .total-card span{
			font-size:1.25rem;
			font-weight:800;
			color:var(--primary-dark);
		}

		body.page-ctacte .total-card.total-final{
			background:linear-gradient(135deg, var(--primary-dark), var(--primary));
			border-color:transparent;
		}

		body.page-ctacte .total-card.total-final strong, body.page-ctacte .total-card.total-final span{
			color:#fff;
		}

		body.page-ctacte .note{
			margin-top:16px;
			color:var(--muted);
			font-size:.9rem;
		}

		body.page-ctacte .footer{
			margin-top:34px;
			padding:22px;
			text-align:center;
			color:var(--muted);
			font-size:.95rem;
		}

		body.page-ctacte .footer img{
			width:74px;
			height:auto;
			display:block;
			margin:0 auto 12px;
		}

		body.page-ctacte .mobile-cards{
			display:none;
		}

		body.page-ctacte .mobile-card{
			border:1px solid var(--border);
			border-radius:16px;
			padding:14px;
			background:#fff;
			margin-bottom:12px;
		}

		body.page-ctacte .mobile-card.row-juicio{
			background:#fff3f1;
		}

		body.page-ctacte .mobile-card.row-intimado{
			background:#fff7ee;
		}

		body.page-ctacte .mobile-card-grid{
			display:grid;
			grid-template-columns:1fr 1fr;
			gap:10px 14px;
		}

		body.page-ctacte .mobile-card-item strong{
			display:block;
			font-size:.78rem;
			text-transform:uppercase;
			color:var(--muted);
			margin-bottom:4px;
		}

		body.page-ctacte .mobile-card-actions{
			display:flex;
			flex-wrap:wrap;
			gap:8px;
			margin-top:12px;
		}

		body.page-ctacte .info-col{
			width:58px;
			text-align:center;
		}

		body.page-ctacte .info-btn{
			display:inline-flex;
			align-items:center;
			justify-content:center;
			width:34px;
			height:34px;
			border-radius:50%;
			border:1px solid #b9d0e3;
			background:var(--accent-soft);
			color:var(--primary-dark);
			font-weight:800;
			font-size:1rem;
			cursor:pointer;
		}

		body.page-ctacte .info-btn:hover{
			background:#dcecf9;
		}

		body.page-ctacte .info-btn.is-empty{
			opacity:.45;
			cursor:default;
		}

		body.page-ctacte .modal-backdrop{
			position:fixed;
			inset:0;
			background:rgba(8,62,102,.48);
			display:none;
			align-items:center;
			justify-content:center;
			padding:18px;
			z-index:9999;
		}

		body.page-ctacte .modal-backdrop.open{
			display:flex;
		}

		body.page-ctacte .modal-card{
			width:100%;
			max-width:520px;
			background:#fff;
			border-radius:18px;
			box-shadow:0 22px 50px rgba(8,62,102,.24);
			border:1px solid var(--border);
			overflow:hidden;
		}

		body.page-ctacte .modal-head{
			display:flex;
			align-items:center;
			justify-content:space-between;
			gap:12px;
			padding:16px 18px;
			background:linear-gradient(135deg, var(--primary-dark), var(--primary));
			color:#fff;
		}

		body.page-ctacte .modal-head h4{
			margin:0;
			font-size:1.05rem;
		}

		body.page-ctacte .modal-close{
			border:none;
			background:rgba(255,255,255,.16);
			color:#fff;
			width:34px;
			height:34px;
			border-radius:50%;
			cursor:pointer;
			font-size:1.1rem;
		}

		body.page-ctacte .modal-body{
			padding:18px;
			color:var(--text);
			white-space:pre-line;
		}

		body.page-ctacte .hide{display:none!important}

		@media  (max-width: 980px){
			body.page-ctacte .grid{grid-template-columns:1fr}
			body.page-ctacte form .fields{grid-template-columns:minmax(220px, 1fr) 170px}
		}

		@media  (max-width: 760px){
			body.page-ctacte .page{padding:14px 12px 28px}
			body.page-ctacte .hero, body.page-ctacte .card-body{padding:18px}
			body.page-ctacte .topbar{align-items:flex-start}
			body.page-ctacte .brand img{width:147px}
			body.page-ctacte form .fields, body.page-ctacte .summary, body.page-ctacte .total-grid{grid-template-columns:1fr}
			body.page-ctacte .field-tasa{grid-column:auto}
			body.page-ctacte .field-objeto input[type="text"]{width:100%}
			body.page-ctacte .actions{display:block}
			body.page-ctacte .btn-primary{width:100%}
			body.page-ctacte .result-table{display:none}
			body.page-ctacte .mobile-cards{display:block}
			body.page-ctacte .back-link{width:100%;justify-content:center}
		}
	

/* ===== PagoOnline.asp ===== */

        body.page-pago-online *{
            box-sizing: border-box;
        }

        body.page-pago-online{
            font-family: Arial, sans-serif;
            background: #f4f6f9;
            margin: 0;
            color: #111827;
        }

        body.page-pago-online .container{
            width: 100%;
            max-width: 980px;
            margin: 0 auto;
            padding: 22px 18px;
        }

        body.page-pago-online .titulo{
            font-size: 22px;
            font-weight: 700;
            margin-bottom: 22px;
            text-align: center;
        }

        body.page-pago-online .grid{
            display: grid;
            grid-template-columns: 1fr;
            gap: 16px;
            width: 100%;
        }

        body.page-pago-online .card{
            background: #ffffff;
            border-radius: 10px;
            padding: 14px 14px 18px 14px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.10);
            border: 1px solid rgba(0,0,0,0.05);
            min-height: 170px;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-start;
        }

        body.page-pago-online .card-header{
            width: 100%;
            font-weight: 700;
            margin-bottom: 14px;
            font-size: 16px;
            text-align: center;
        }

        body.page-pago-online .card-body{
            width: 100%;
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        body.page-pago-online .card a{
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            text-decoration: none;
        }

        body.page-pago-online .card img{
            display: block;
            width: auto;
            height: auto;
            max-width: 115px;
            max-height: 115px;
            object-fit: contain;
        }

        body.page-pago-online .card.qr-card img{
            max-width: 105px;
            max-height: 105px;
        }

        body.page-pago-online .card:hover{
            transform: translateY(-1px);
            transition: transform 0.12s ease, box-shadow 0.12s ease;
            box-shadow: 0 4px 12px rgba(0,0,0,0.12);
        }

        /* Celulares: siempre una tarjeta debajo de la otra */
        @media  (max-width: 767px) {
            body.page-pago-online .container{
                padding: 16px 14px;
            }

            body.page-pago-online .titulo{
                font-size: 18px;
                margin-bottom: 16px;
            }

            body.page-pago-online .grid{
                grid-template-columns: 1fr !important;
                gap: 14px;
            }

            body.page-pago-online .card{
                width: 100%;
                min-height: 155px;
            }

            body.page-pago-online .card-header{
                font-size: 15px;
                margin-bottom: 10px;
            }

            body.page-pago-online .card img{
                max-width: 100px;
                max-height: 100px;
            }

            body.page-pago-online .card.qr-card img{
                max-width: 95px;
                max-height: 95px;
            }
        }
        /* Tablets y PC */
        @media  (min-width: 768px) {
            body.page-pago-online.pago-cols-3 .grid{
                grid-template-columns: repeat(3, 1fr);
            }

            body.page-pago-online.pago-cols-2 .grid{
                grid-template-columns: repeat(2, 1fr);
            }
        }
/* ===== Error.asp ===== */

        body.page-error{
            --bg:#f4f7fa;
            --card:#ffffff;
            --primary:#0b5c8f;
            --primary-dark:#083e66;
            --text:#1b2430;
            --muted:#5e6b78;
            --border:#d5e0e8;
            --alert-bg:#fff4f4;
            --alert-border:#f0b9b9;
            --alert-text:#9b1c1c;
            --shadow:0 10px 30px rgba(11,92,143,.10);
            --radius:16px;
        }

        body.page-error *{box-sizing:border-box}

        html, body.page-error{height:100%;margin:0;padding:0}

        body.page-error{
            font-family:Arial,Helvetica,sans-serif;
            background:linear-gradient(180deg,#eef4f8 0%, var(--bg) 100%);
            color:var(--text);
            display:flex;
            align-items:center;
            justify-content:center;
            padding:24px;
        }

        body.page-error .wrap{
            width:100%;
            max-width:760px;
        }

        body.page-error .card{
            background:var(--card);
            border:1px solid var(--border);
            border-radius:var(--radius);
            box-shadow:var(--shadow);
            overflow:hidden;
        }

        body.page-error .header{
            padding:22px 26px;
            background:linear-gradient(135deg,var(--primary-dark),var(--primary));
            color:#fff;
        }

        body.page-error .header h1{
            margin:0 0 6px;
            font-size:28px;
            line-height:1.1;
        }

        body.page-error .header p{
            margin:0;
            font-size:15px;
            color:rgba(255,255,255,.92);
        }

        body.page-error .body{
            padding:28px 26px 30px;
        }

        body.page-error .label{
            display:block;
            margin-bottom:10px;
            font-size:13px;
            font-weight:bold;
            text-transform:uppercase;
            letter-spacing:.06em;
            color:var(--muted);
        }

        body.page-error .respuesta{
            padding:20px 22px;
            border:2px solid var(--alert-border);
            border-radius:14px;
            background:var(--alert-bg);
            color:var(--alert-text);
            font-size:24px;
            font-weight:bold;
            line-height:1.35;
            text-align:center;
            word-wrap:break-word;
            overflow-wrap:anywhere;
        }

        @media  (max-width: 640px){
            body.page-error .header{padding:18px 20px}
            body.page-error .body{padding:22px 20px 24px}
            body.page-error .header h1{font-size:24px}
            body.page-error .respuesta{font-size:20px;padding:16px 18px}
        }
    

/* ===== redlink.asp ===== */

    body.page-redlink *{
        box-sizing: border-box;
    }

    html, body.page-redlink{
        margin: 0;
        padding: 0;
        width: 100%;
        min-height: 100%;
        font-family: Arial, Helvetica, sans-serif;
        background: transparent;
    }

    body.page-redlink{
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 76px;
        padding: 8px;
        color: #1f2937;
    }

    body.page-redlink b{
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 132px;
        min-height: 54px;
        padding: 10px 16px;
        border: 1px solid #d6e3f3;
        border-radius: 14px;
        background: linear-gradient(135deg, #ffffff 0%, #f3f8ff 100%);
        box-shadow: 0 8px 20px rgba(15, 23, 42, 0.10);
        color: #1d4ed8;
        font-size: 13px;
        line-height: 1.18;
        font-weight: 700;
        text-align: center;
        letter-spacing: 0.2px;
    }

    @media  (max-width: 480px) {
        body.page-redlink{
            min-height: 70px;
            padding: 6px;
        }

        body.page-redlink b{
            width: 100%;
            max-width: 180px;
            min-width: 0;
            min-height: 50px;
            padding: 9px 12px;
            border-radius: 12px;
            font-size: 12px;
        }
		
    }

/* ===== RL.asp ===== */
body.page-rl{
    margin:0;
    padding:8px;
    font-family:Arial, Helvetica, sans-serif;
    background:transparent;
    text-align:center;
}
body.page-rl p{margin:0;text-align:center;}
body.page-rl img{height:80%;width:50%;border:0;max-width:180px;}
body.page-rl a{display:inline-flex;align-items:center;justify-content:center;width:100%;}


/* =========================================================
   Estilos de facturas consolidados desde municipio-factura.css
   ========================================================= */

/* Las reglas de factura quedaron encapsuladas por body.factura-tasa, body.factura-convenio y body.factura-billetera para no pisar ctacte.asp ni las páginas generales. */

body.factura-tasa,
body.factura-convenio,
body.factura-billetera {
		--primary:#0b5c8f;
		--primary-dark:#083e66;
		--accent-soft:#edf5fb;
		--bg:#f4f7fa;
		--card:#ffffff;
		--text:#1b2430;
		--muted:#5e6b78;
		--border:#cfdbe6;
		--danger:#b42318;
		--danger-bg:#fff3f2;
		--danger-border:#f7cfc8;
		--shadow:0 4px 16px rgba(11,92,143,.08);
		--radius:12px;
	}
body.factura-tasa *,
body.factura-convenio *,
body.factura-billetera * {box-sizing:border-box}
body.factura-tasa,
body.factura-convenio,
body.factura-billetera {margin:0;padding:0}
body.factura-tasa,
body.factura-convenio,
body.factura-billetera {
		font-family:Arial,Helvetica,sans-serif;
		font-size:11px;
		line-height:1.22;
		background:var(--bg);
		color:var(--text);
	}
body.factura-tasa a,
body.factura-convenio a,
body.factura-billetera a {color:var(--primary);text-decoration:none}
body.factura-tasa .page,
body.factura-convenio .page,
body.factura-billetera .page {
		max-width:720px;
		margin:0 auto;
		padding:8px 10px 12px;
	}
body.factura-tasa .topbar,
body.factura-convenio .topbar,
body.factura-billetera .topbar {
		display:flex;
		justify-content:space-between;
		align-items:center;
		gap:12px;
		margin-bottom:8px;
	}
body.factura-tasa .brand,
body.factura-convenio .brand,
body.factura-billetera .brand {
		display:flex;
		align-items:center;
		gap:12px;
		min-width:0;
	}
body.factura-tasa .brand img,
body.factura-convenio .brand img,
body.factura-billetera .brand img {
		width:64px;
		height:auto;
		display:block;
	}
body.factura-tasa .brand-copy,
body.factura-convenio .brand-copy,
body.factura-billetera .brand-copy {
		min-width:0;
	}
body.factura-tasa .brand-copy .eyebrow,
body.factura-convenio .brand-copy .eyebrow,
body.factura-billetera .brand-copy .eyebrow {
		display:block;
		font-size:10px;
		font-weight:bold;
		letter-spacing:.08em;
		text-transform:uppercase;
		color:var(--muted);
		margin-bottom:2px;
	}
body.factura-tasa .brand-copy h1,
body.factura-convenio .brand-copy h1,
body.factura-billetera .brand-copy h1 {
		margin:0;
		font-size:15px;
		line-height:1.05;
		color:var(--primary-dark);
	}
body.factura-tasa .brand-copy .meta,
body.factura-convenio .brand-copy .meta,
body.factura-billetera .brand-copy .meta {
		margin-top:4px;
		font-size:11px;
		color:var(--muted);
	}
body.factura-tasa .print-btn,
body.factura-convenio .print-btn,
body.factura-billetera .print-btn {
		display:inline-flex;
		align-items:center;
		gap:8px;
		padding:6px 11px;
		border:1px solid var(--border);
		border-radius:999px;
		background:#fff;
		font-size:10px;
		font-weight:bold;
		white-space:nowrap;
	}
body.factura-tasa .print-btn img,
body.factura-convenio .print-btn img,
body.factura-billetera .print-btn img {
		display:block;
		width:18px;
		height:auto;
	}
body.factura-tasa .hero,
body.factura-convenio .hero,
body.factura-billetera .hero {
		background:linear-gradient(135deg,var(--primary-dark),var(--primary));
		color:#fff;
		border-radius:16px;
		padding:11px 13px;
		margin-bottom:8px;
	}
body.factura-tasa .hero-row,
body.factura-convenio .hero-row,
body.factura-billetera .hero-row {
		display:flex;
		justify-content:space-between;
		align-items:flex-end;
		gap:16px;
		flex-wrap:nowrap;
	}
body.factura-tasa .hero-main,
body.factura-convenio .hero-main,
body.factura-billetera .hero-main,
body.factura-tasa .hero-side,
body.factura-convenio .hero-side,
body.factura-billetera .hero-side {min-width:0}
body.factura-tasa .hero-badge,
body.factura-convenio .hero-badge,
body.factura-billetera .hero-badge {
		display:inline-block;
		padding:4px 8px;
		border-radius:999px;
		background:rgba(255,255,255,.14);
		border:1px solid rgba(255,255,255,.22);
		font-size:10px;
		font-weight:bold;
		text-transform:uppercase;
		letter-spacing:.06em;
		margin-bottom:6px;
	}
body.factura-tasa .hero h2,
body.factura-convenio .hero h2,
body.factura-billetera .hero h2 {
		margin:0 0 4px;
		font-size:16px;
		line-height:1.1;
	}
body.factura-tasa .hero p,
body.factura-convenio .hero p,
body.factura-billetera .hero p {
		margin:0;
		font-size:11px;
		color:rgba(255,255,255,.92);
	}
body.factura-tasa .hero-side,
body.factura-convenio .hero-side,
body.factura-billetera .hero-side {
		text-align:right;
		white-space:nowrap;
	}
body.factura-tasa .hero-side .label,
body.factura-convenio .hero-side .label,
body.factura-billetera .hero-side .label {
		display:block;
		font-size:10px;
		text-transform:uppercase;
		letter-spacing:.06em;
		color:rgba(255,255,255,.8);
	}
body.factura-tasa .hero-side .value,
body.factura-convenio .hero-side .value,
body.factura-billetera .hero-side .value {
		display:block;
		font-size:12px;
		font-weight:bold;
		margin-top:2px;
	}
body.factura-tasa .card,
body.factura-convenio .card,
body.factura-billetera .card {
		background:var(--card);
		border:1px solid var(--border);
		border-radius:var(--radius);
		box-shadow:var(--shadow);
		padding:9px;
		margin-bottom:8px;
		break-inside:avoid;
		overflow:hidden;
	}
body.factura-tasa .table-clean,
body.factura-convenio .table-clean,
body.factura-billetera .table-clean {
		width:100%;
		border-collapse:collapse;
		table-layout:fixed;
	}
body.factura-tasa .table-clean td,
body.factura-convenio .table-clean td,
body.factura-billetera .table-clean td {
		padding:3px 0;
		vertical-align:top;
	}
body.factura-tasa .table-clean td:last-child,
body.factura-convenio .table-clean td:last-child,
body.factura-billetera .table-clean td:last-child {
		text-align:right;
	}
body.factura-tasa .hr,
body.factura-convenio .hr,
body.factura-billetera .hr {
		height:1px;
		background:var(--border);
		margin:6px 0;
	}
body.factura-tasa .info-grid,
body.factura-convenio .info-grid,
body.factura-billetera .info-grid {
		display:grid;
		grid-template-columns:1.6fr 1.6fr 1.15fr;
		gap:8px;
		align-items:start;
	}
body.factura-tasa .info-card,
body.factura-convenio .info-card,
body.factura-billetera .info-card {
		flex:1 1 0;
		min-width:0;
		background:var(--accent-soft);
		border:1px solid #d7e6f3;
		border-radius:10px;
		padding:8px;
	}
body.factura-tasa .info-card.internal,
body.factura-convenio .info-card.internal,
body.factura-billetera .info-card.internal {
		width:auto;
		background:#f8fafc;
	}
body.factura-tasa .internal-top,
body.factura-convenio .internal-top,
body.factura-billetera .internal-top {
		padding:7px 8px;
		min-width:170px;
	}
body.factura-tasa .info-label,
body.factura-convenio .info-label,
body.factura-billetera .info-label {
		display:block;
		font-size:10px;
		font-weight:bold;
		text-transform:uppercase;
		letter-spacing:.04em;
		color:var(--muted);
		margin-bottom:3px;
	}
body.factura-tasa .info-value,
body.factura-convenio .info-value,
body.factura-billetera .info-value {
		display:block;
		font-size:12px;
		font-weight:bold;
		color:var(--primary-dark);
	}
body.factura-tasa .info-value.small,
body.factura-convenio .info-value.small,
body.factura-billetera .info-value.small {
		font-size:12px;
		font-weight:bold;
		color:var(--text);
	}
body.factura-tasa .compact-note,
body.factura-convenio .compact-note,
body.factura-billetera .compact-note {
		font-size:10px;
		color:var(--muted);
		margin-top:4px;
	}
body.factura-tasa .internal-wrap,
body.factura-convenio .internal-wrap,
body.factura-billetera .internal-wrap {
		text-align:center;
	}
body.factura-tasa .internal-title,
body.factura-convenio .internal-title,
body.factura-billetera .internal-title {
		font-size:9px;
		color:var(--muted);
		text-transform:uppercase;
		letter-spacing:.05em;
		margin-bottom:4px;
	}
body.factura-tasa .internal-wrap img,
body.factura-convenio .internal-wrap img,
body.factura-billetera .internal-wrap img {
		max-width:100%;
		height:26px !important;
	}
body.factura-tasa .alert,
body.factura-convenio .alert,
body.factura-billetera .alert {
		background:var(--danger-bg);
		border:1px solid var(--danger-border);
		border-left:5px solid var(--danger);
		border-radius:10px;
		padding:8px 10px;
		color:var(--danger);
		margin-bottom:8px;
	}
body.factura-tasa .alert h3,
body.factura-convenio .alert h3,
body.factura-billetera .alert h3 {
		margin:0 0 4px;
		font-size:15px;
	}
body.factura-tasa .alert p,
body.factura-convenio .alert p,
body.factura-billetera .alert p {
		margin:0;
		font-size:11px;
		line-height:1.35;
	}
body.factura-tasa .entities,
body.factura-convenio .entities,
body.factura-billetera .entities {
		text-align:center;
		padding:4px 0 0;
	}
body.factura-tasa .entities img,
body.factura-convenio .entities img,
body.factura-billetera .entities img {
		max-width:100%;
		height:auto;
		max-height:56px;
	}
body.factura-tasa .annual,
body.factura-convenio .annual,
body.factura-billetera .annual {
		text-align:center;
	}
body.factura-tasa .annual-title,
body.factura-convenio .annual-title,
body.factura-billetera .annual-title {
		font-size:12px;
		font-weight:bold;
		color:var(--primary-dark);
		margin-bottom:3px;
	}
body.factura-tasa .annual-subtitle,
body.factura-convenio .annual-subtitle,
body.factura-billetera .annual-subtitle {
		font-size:10px;
		margin-bottom:5px;
	}
body.factura-tasa .barcode-wrap,
body.factura-convenio .barcode-wrap,
body.factura-billetera .barcode-wrap {
		text-align:center;
	}
body.factura-tasa .barcode-wrap img,
body.factura-convenio .barcode-wrap img,
body.factura-billetera .barcode-wrap img {
		max-width:100%;
		height:42px !important;
	}
body.factura-tasa .barcode-code,
body.factura-convenio .barcode-code,
body.factura-billetera .barcode-code {
		margin-top:4px;
		font-size:10px;
		font-weight:bold;
		letter-spacing:.02em;
		word-break:break-all;
	}
body.factura-tasa .municipio-note,
body.factura-convenio .municipio-note,
body.factura-billetera .municipio-note {
		margin-top:6px;
		font-size:9px;
		text-align:right;
		color:var(--muted);
	}
body.factura-tasa .bottom-print,
body.factura-convenio .bottom-print,
body.factura-billetera .bottom-print {
		text-align:center;
		margin-top:8px;
	}
body.factura-tasa .qr-wrap,
body.factura-convenio .qr-wrap,
body.factura-billetera .qr-wrap {
		text-align:center;
	}
body.factura-tasa .qr-wrap img,
body.factura-convenio .qr-wrap img,
body.factura-billetera .qr-wrap img {
		max-width:100%;
		height:auto;
		max-height:150px;
	}
body.factura-tasa .qr-wrap canvas,
body.factura-convenio .qr-wrap canvas,
body.factura-billetera .qr-wrap canvas {
		max-width:100% !important;
		height:auto !important;
	}
@media print {
@page {
			size:A4 portrait;
			margin:6mm;
		}
body.factura-tasa,
body.factura-convenio,
body.factura-billetera {
			width:210mm;
			min-height:297mm;
			margin:0 !important;
			padding:0 !important;
			background:#fff !important;
			font-size:10px;
			-webkit-print-color-adjust:exact;
			print-color-adjust:exact;
		}
body.factura-tasa .page,
body.factura-convenio .page,
body.factura-billetera .page {
			max-width:none;
			width:100%;
			margin:0 auto;
			padding:0;
		}
body.factura-tasa .no-print,
body.factura-convenio .no-print,
body.factura-billetera .no-print,
body.factura-tasa .print-btn,
body.factura-convenio .print-btn,
body.factura-billetera .print-btn,
body.factura-tasa .bottom-print,
body.factura-convenio .bottom-print,
body.factura-billetera .bottom-print {
			display:none !important;
		}
body.factura-tasa .topbar,
body.factura-convenio .topbar,
body.factura-billetera .topbar {
			margin-bottom:5px;
		}
body.factura-tasa .brand img,
body.factura-convenio .brand img,
body.factura-billetera .brand img {
			width:54px;
		}
body.factura-tasa .brand-copy h1,
body.factura-convenio .brand-copy h1,
body.factura-billetera .brand-copy h1 {
			font-size:14px;
		}
body.factura-tasa .hero,
body.factura-convenio .hero,
body.factura-billetera .hero,
body.factura-tasa .card,
body.factura-convenio .card,
body.factura-billetera .card,
body.factura-tasa .info-card,
body.factura-convenio .info-card,
body.factura-billetera .info-card,
body.factura-tasa .alert,
body.factura-convenio .alert,
body.factura-billetera .alert {
			box-shadow:none !important;
			break-inside:avoid;
			page-break-inside:avoid;
		}
body.factura-tasa .hero,
body.factura-convenio .hero,
body.factura-billetera .hero {
			margin-bottom:6px;
			padding:9px 11px;
			border-radius:12px;
		}
body.factura-tasa .card,
body.factura-convenio .card,
body.factura-billetera .card {
			margin-bottom:6px;
			padding:8px;
		}
body.factura-tasa .info-grid,
body.factura-convenio .info-grid,
body.factura-billetera .info-grid {
			gap:6px;
		}
body.factura-tasa .info-card,
body.factura-convenio .info-card,
body.factura-billetera .info-card {
			padding:7px;
		}
body.factura-tasa .alert,
body.factura-convenio .alert,
body.factura-billetera .alert {
			margin-bottom:6px;
			padding:7px 9px;
		}
body.factura-tasa .entities img,
body.factura-convenio .entities img,
body.factura-billetera .entities img {
			max-height:48px;
			width:auto;
		}
body.factura-tasa .qr-wrap img,
body.factura-convenio .qr-wrap img,
body.factura-billetera .qr-wrap img,
body.factura-tasa .qr-wrap canvas,
body.factura-convenio .qr-wrap canvas,
body.factura-billetera .qr-wrap canvas {
			max-height:135px;
		}
body.factura-tasa .barcode-wrap img,
body.factura-convenio .barcode-wrap img,
body.factura-billetera .barcode-wrap img {
			height:38px !important;
		}
body.factura-tasa a,
body.factura-convenio a,
body.factura-billetera a {
			color:inherit;
			text-decoration:none;
		}
}
body.factura-convenio .hero h1 {
	margin:0 0 4px;
	font-size:18px;
	line-height:1.05;
}
body.factura-convenio .info-grid {
	display:grid;
	grid-template-columns:1fr 1fr 1fr;
	gap:8px;
	align-items:start;
}
body.factura-convenio .info-card {
	background:var(--accent-soft);
	border:1px solid #d7e6f3;
	border-radius:10px;
	padding:8px;
	min-width:0;
}
body.factura-convenio .info-card.internal {
	background:#f7fbff;
	border-style:dashed;
}
body.factura-convenio .internal-wrap {
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;
	height:100%;
}
body.factura-convenio .internal-title {
	font-size:10px;
	font-weight:bold;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:var(--muted);
	margin-bottom:6px;
}
body.factura-convenio .qr-wrap img {
	display:block;
	max-width:150px;
	height:auto;
	margin:0 auto;
	max-height:none;
}
body.factura-convenio .center-banner {
	text-align:center;
	padding:20px 10px 18px;
}
body.factura-convenio .center-banner-title {
	font-size:34px;
	font-weight:bold;
	letter-spacing:.08em;
	color:var(--primary-dark);
	margin:0;
}
body.factura-convenio .center-banner-subtitle {
	margin-top:8px;
	font-size:11px;
	color:var(--muted);
}
body.factura-convenio .barcode-wrap {
	text-align:center;
	padding-top:4px;
}
body.factura-convenio .no-print {display:block}
@media (max-width:760px) {
body.factura-convenio .info-grid {grid-template-columns:1fr}
}
@media print {
body.factura-convenio .page {padding:0}
body.factura-convenio .card {margin-bottom:6px}
body.factura-convenio .hero {margin-bottom:6px}
body.factura-convenio .alert {margin-bottom:6px}
body.factura-convenio .entities img {max-height:48px;width:auto}
body.factura-convenio .qr-wrap img {max-height:135px}
}

/* ===== Index.asp ===== */

body.page-index .content-wrap{
    max-width:980px;
}

body.page-index .services-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:24px;
    align-items:stretch;
}

body.page-index .service-card{
    display:block;
    min-width:0;
    height:100%;
    color:var(--text);
    text-decoration:none;
    overflow:hidden;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

body.page-index .service-card:hover,
body.page-index .service-card:focus-visible{
    transform:translateY(-3px);
    border-color:#b9d0e3;
    box-shadow:0 18px 38px rgba(11,92,143,.16);
    text-decoration:none;
    outline:none;
}

body.page-index .service-card .card-body{
    display:flex;
    flex-direction:column;
    height:100%;
    min-height:310px;
}

body.page-index .service-badge{
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:6px 10px;
    margin-bottom:16px;
    border:1px solid #d5e5f5;
    border-radius:999px;
    background:var(--accent-soft);
    color:var(--primary-dark);
    font-size:.8rem;
    font-weight:800;
    line-height:1.2;
}

body.page-index .service-card .section-title{
    min-height:3.15em;
    margin-bottom:12px;
    line-height:1.3;
}

body.page-index .service-card .section-text{
    flex:1;
    margin-bottom:22px;
}

body.page-index .service-button{
    width:100%;
    margin-top:auto;
    pointer-events:none;
}

@media (max-width:900px){
    body.page-index .services-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width:620px){
    body.page-index .services-grid{
        grid-template-columns:1fr;
        gap:16px;
    }

    body.page-index .service-card .card-body{
        min-height:0;
        padding:20px;
    }

    body.page-index .service-card .section-title{
        min-height:0;
    }
}
