/* AACV Servicio — Frontend layout (3-column) */
* { box-sizing: border-box; }
html, body { margin:0; padding:0; }
body.aacv-srv-body {
    font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    background: #103070;
    color: #1a1a2e;
    min-height: 100vh;
}

.aacv-srv-wrap {
    display: grid;
    grid-template-columns: 1fr minmax(360px, 540px) 1fr;
    min-height: 100vh;
    position: relative;
}

/* Aside columns */
.aacv-srv-aside {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    text-align: center;
}
.aacv-srv-aside-inner p { font-size: 28px; font-weight: 400; margin: 0 0 14px; line-height: 1.2; }
.aacv-srv-aside-inner b { font-weight: 900; }
.aacv-srv-aside-cta {
    display: inline-block;
    background: #c89a2e;
    color: #fff !important;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 4px;
    font-weight: 700;
    transition: background 0.2s;
}
.aacv-srv-aside-cta:hover { background: #b1851f; }

/* Center column */
.aacv-srv-center {
    background: #fff;
    padding: 32px 36px 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    overflow: hidden;
}
.aacv-srv-center::after {
    content: "";
    position: absolute;
    bottom: 0; left: 0;
    width: 0; height: 0;
    border-style: solid;
    border-width: 0 0 100px 540px;
    border-color: transparent transparent #f0f3f9 transparent;
    z-index: 0;
}
.aacv-srv-center > * { position: relative; z-index: 1; }

.aacv-srv-center-head { width: 100%; padding-bottom: 18px; border-bottom: 1px solid #e5e7eb; text-align: center; }
.aacv-srv-logo img { max-height: 90px; max-width: 280px; height: auto; width: auto; }

.aacv-srv-center-body { padding: 28px 0 14px; width: 100%; text-align: center; }
.aacv-srv-need { font-size: 22px; font-weight: 600; margin: 0 0 22px; color: #1a1a2e; }
.aacv-srv-help { display: block; color: #777; margin: 4px 0 22px; font-size: 13px; }

/* Buttons */
.aacv-srv-btn {
    display: inline-block;
    background: #c89a2e;
    color: #fff !important;
    text-decoration: none;
    padding: 14px 28px;
    margin: 6px 0;
    border-radius: 4px;
    font-weight: 700;
    font-size: 16px;
    border: none;
    cursor: pointer;
    transition: background 0.2s, transform 0.15s;
    min-width: 240px;
}
.aacv-srv-btn:hover { background: #b1851f; transform: translateY(-1px); }
.aacv-srv-btn-ghost { background: transparent; color: #c89a2e !important; border: 2px solid #c89a2e; }
.aacv-srv-btn-ghost:hover { background: #c89a2e; color: #fff !important; }

/* Tools icons strip */
.aacv-srv-tools-icons {
    display: flex;
    justify-content: center;
    gap: 18px;
    margin: 28px 0 0;
    font-size: 32px;
    opacity: 0.5;
    filter: grayscale(0.5);
}

/* Form */
.aacv-srv-form-title {
    font-size: 18px;
    color: #103070;
    margin: 0 0 18px;
    text-align: center;
    font-weight: 600;
    line-height: 1.4;
}
.aacv-srv-form { width: 100%; text-align: left; }
.aacv-srv-form label {
    display: block;
    margin-bottom: 14px;
    font-size: 13px;
    color: #444;
    font-weight: 600;
}
.aacv-srv-form input[type=text],
.aacv-srv-form input[type=tel],
.aacv-srv-form input[type=email],
.aacv-srv-form input[type=file],
.aacv-srv-form select,
.aacv-srv-form textarea {
    width: 100%;
    padding: 10px 12px;
    margin-top: 4px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-size: 14px;
    font-family: inherit;
    background: #fff;
    color: #1a1a2e;
    transition: border-color 0.2s;
}
.aacv-srv-form input:focus,
.aacv-srv-form select:focus,
.aacv-srv-form textarea:focus {
    outline: none;
    border-color: #103070;
    box-shadow: 0 0 0 3px rgba(16,48,112,0.1);
}
.aacv-srv-check { display: flex; align-items: flex-start; gap: 8px; font-weight: normal; }
.aacv-srv-check input { margin-top: 4px; }
.aacv-srv-check a { color: #103070; font-weight: 700; cursor: pointer; }

/* Messages */
.aacv-srv-msg {
    padding: 14px 18px;
    border-radius: 4px;
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 1.5;
}
.aacv-srv-msg-ok    { background: #d1fae5; border-left: 4px solid #15803d; color: #065f46; }
.aacv-srv-msg-error { background: #fee2e2; border-left: 4px solid #dc2626; color: #7f1d1d; }

/* Result table (consultar) */
.aacv-srv-result h3 { font-size: 18px; color: #103070; margin: 0 0 14px; text-align: center; }
.aacv-srv-result-table { width: 100%; border-collapse: collapse; margin-bottom: 18px; }
.aacv-srv-result-table th, .aacv-srv-result-table td { padding: 10px 12px; border-bottom: 1px solid #eee; text-align: left; font-size: 14px; }
.aacv-srv-result-table th { background: #f6f7f9; color: #444; font-weight: 600; width: 40%; }
.aacv-srv-estado {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.aacv-srv-estado-recibido   { background:#dbeafe; color:#1e40af; }
.aacv-srv-estado-revision   { background:#fef3c7; color:#92400e; }
.aacv-srv-estado-cotizado   { background:#e0e7ff; color:#3730a3; }
.aacv-srv-estado-reparacion { background:#fde68a; color:#7c2d12; }
.aacv-srv-estado-listo      { background:#bbf7d0; color:#15803d; }
.aacv-srv-estado-entregado  { background:#d1fae5; color:#065f46; }
.aacv-srv-estado-rechazado  { background:#fecaca; color:#991b1b; }

/* Footer */
.aacv-srv-footer {
    background: #103070;
    color: #fff;
    padding: 50px 30px 30px;
    text-align: center;
    font-size: 14px;
    line-height: 1.7;
}
.aacv-srv-footer-inner { max-width: 760px; margin: 0 auto; }
.aacv-srv-footer h3 { color: #fff; font-size: 18px; margin: 22px 0 10px; font-weight: 700; }
.aacv-srv-footer p { margin: 0 0 14px; }

/* Responsive */
@media (max-width: 1024px) {
    .aacv-srv-wrap { grid-template-columns: 1fr; }
    .aacv-srv-aside { padding: 50px 30px; min-height: 220px; }
    .aacv-srv-aside.aacv-srv-left  { order: 2; }
    .aacv-srv-center               { order: 1; }
    .aacv-srv-aside.aacv-srv-right { order: 3; }
    .aacv-srv-center::after { display: none; }
}
@media (max-width: 480px) {
    .aacv-srv-center { padding: 24px 18px 40px; }
    .aacv-srv-need { font-size: 20px; }
    .aacv-srv-btn { min-width: 100%; padding: 14px 20px; font-size: 15px; }
    .aacv-srv-tools-icons { font-size: 24px; gap: 12px; }
    .aacv-srv-aside-inner p { font-size: 22px; }
}

/* ===== Action buttons row ===== */
.aacv-srv-actions {
    display: flex;
    gap: 12px;
    margin-top: 18px;
    flex-wrap: wrap;
    justify-content: center;
}
.aacv-srv-actions .aacv-srv-btn {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

/* ===== Contract modal ===== */
.aacv-srv-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(15, 30, 80, 0.55);
    backdrop-filter: blur(3px);
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.aacv-srv-modal-overlay.aacv-srv-modal-open { display: flex; }
.aacv-srv-modal {
    background: #fff;
    border-radius: 6px;
    max-width: 880px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    padding: 36px 42px 32px;
    position: relative;
    box-shadow: 0 12px 50px rgba(0,0,0,0.3);
    color: #1a1a2e;
    font-size: 15px;
    line-height: 1.6;
}
.aacv-srv-modal h2 {
    color: #103070;
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 18px;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 14px;
}
.aacv-srv-modal p { margin: 0 0 14px; }
.aacv-srv-contract-list {
    list-style: none;
    counter-reset: aacv-srv-contract;
    padding: 0;
    margin: 0 0 24px;
}
.aacv-srv-contract-list li {
    counter-increment: aacv-srv-contract;
    padding: 8px 0 8px 38px;
    position: relative;
    border-bottom: 1px solid #f3f4f6;
}
.aacv-srv-contract-list li:last-child { border-bottom: none; }
.aacv-srv-contract-list li::before {
    content: counter(aacv-srv-contract) .;
    position: absolute;
    left: 0;
    top: 8px;
    color: #103070;
    font-weight: 800;
    font-size: 16px;
}
.aacv-srv-modal .aacv-srv-modal-accept {
    display: block;
    margin: 0 auto;
    min-width: 200px;
}
.aacv-srv-modal-close {
    position: absolute;
    top: 14px; right: 16px;
    width: 34px; height: 34px;
    border: none;
    background: transparent;
    color: #444;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    border-radius: 50%;
    transition: background 0.15s;
}
.aacv-srv-modal-close:hover { background: #eaecf0; }

@media (max-width: 600px) {
    .aacv-srv-modal { padding: 28px 18px 22px; font-size: 13.5px; }
    .aacv-srv-modal h2 { font-size: 18px; }
    .aacv-srv-actions { flex-direction: column; }
}

/* ===== v1.0.2 fixes ===== */
.aacv-srv-modal { text-align: left !important; }
.aacv-srv-modal h2 { text-align: left !important; }
.aacv-srv-modal .aacv-srv-modal-accept { text-align: center; }
/* Force button color (theme overrides for <button> elements) */
.aacv-srv-form button.aacv-srv-btn,
.aacv-srv-actions button.aacv-srv-btn,
.aacv-srv-modal button.aacv-srv-btn {
    background: #c89a2e !important;
    color: #fff !important;
    border: 2px solid transparent !important;
}
.aacv-srv-form button.aacv-srv-btn:hover,
.aacv-srv-actions button.aacv-srv-btn:hover,
.aacv-srv-modal button.aacv-srv-btn:hover {
    background: #b1851f !important;
    color: #fff !important;
}
a.aacv-srv-btn-ghost,
button.aacv-srv-btn-ghost,
.aacv-srv-actions a.aacv-srv-btn-ghost {
    background: transparent !important;
    color: #c89a2e !important;
    border: 2px solid #c89a2e !important;
}
a.aacv-srv-btn-ghost:hover,
button.aacv-srv-btn-ghost:hover {
    background: #c89a2e !important;
    color: #fff !important;
}
/* Ensure contract list numbers visible */
.aacv-srv-modal .aacv-srv-contract-list { list-style: none !important; padding-left: 0 !important; text-align: left !important; }
.aacv-srv-modal .aacv-srv-contract-list li {
    padding: 10px 0 10px 42px !important;
    text-align: left !important;
    list-style: none !important;
}
.aacv-srv-modal .aacv-srv-contract-list li::before {
    content: counter(aacv-srv-contract) "." !important;
    display: block !important;
    color: #103070 !important;
    font-weight: 800 !important;
    font-size: 16px !important;
}

/* ===== v1.0.4: modal wider + numbers inline ===== */
.aacv-srv-modal {
    max-width: 1200px !important;
    width: 95vw !important;
    padding: 32px 40px 28px !important;
}
.aacv-srv-modal .aacv-srv-contract-list li {
    padding: 6px 0 !important;
    border-bottom: none !important;
    text-indent: 0 !important;
}
.aacv-srv-modal .aacv-srv-contract-list li::before {
    display: inline !important;
    margin-right: 8px !important;
}
.aacv-srv-modal .aacv-srv-contract-list { padding-left: 0 !important; }
@media (min-width: 1024px) {
    .aacv-srv-modal { padding: 38px 48px 34px !important; }
}

/* ===== v1.0.5 — clean inline numbering, no absolute positioning ===== */
.aacv-srv-modal .aacv-srv-contract-list li {
    padding: 8px 0 !important;
    border-bottom: none !important;
    position: static !important;
    text-align: left !important;
}
.aacv-srv-modal .aacv-srv-contract-list li::before {
    content: counter(aacv-srv-contract) ". " !important;
    display: inline !important;
    position: static !important;
    margin: 0 6px 0 0 !important;
    color: #103070 !important;
    font-weight: 800 !important;
    font-size: inherit !important;
    top: auto !important;
    left: auto !important;
}

/* ===== v1.0.6 — formulario más compacto ===== */
.aacv-srv-center { padding: 18px 30px 36px !important; }
.aacv-srv-center-head { padding-bottom: 10px !important; }
.aacv-srv-logo img { max-height: 56px !important; max-width: 200px !important; }
.aacv-srv-center-body { padding: 14px 0 8px !important; }
.aacv-srv-form-title {
    font-size: 15px !important;
    margin: 0 0 12px !important;
    line-height: 1.35 !important;
}
.aacv-srv-form label {
    margin-bottom: 9px !important;
    font-size: 12px !important;
}
.aacv-srv-form input[type=text],
.aacv-srv-form input[type=tel],
.aacv-srv-form input[type=email],
.aacv-srv-form input[type=file],
.aacv-srv-form select,
.aacv-srv-form textarea {
    padding: 7px 10px !important;
    margin-top: 3px !important;
    font-size: 13px !important;
}
.aacv-srv-form textarea { min-height: 56px !important; }
.aacv-srv-form .aacv-srv-check { margin: 8px 0 4px !important; font-size: 12px !important; }
.aacv-srv-actions { margin-top: 10px !important; gap: 8px !important; }
.aacv-srv-actions .aacv-srv-btn { padding: 10px 18px !important; font-size: 14px !important; }
.aacv-srv-tools-icons { margin: 16px 0 0 !important; font-size: 22px !important; gap: 14px !important; }

/* ===== v1.0.7 — iconos herramientas: más grandes y negros ===== */
.aacv-srv-tools-icons {
    font-size: 40px !important;
    gap: 24px !important;
    opacity: 1 !important;
    filter: none !important;
    color: #000 !important;
    margin-top: 22px !important;
}
.aacv-srv-tools-icons span { color: #000 !important; }

/* v1.0.8 — emojis a negro mediante filter (los emoji son glyphs coloreados por el SO) */
.aacv-srv-tools-icons span {
    filter: grayscale(1) brightness(0) !important;
}

/* v1.0.9 — texto botones siempre blanco (override theme link color) */
a.aacv-srv-btn,
button.aacv-srv-btn,
.aacv-srv-btn {
    color: #fff !important;
}
a.aacv-srv-btn:hover,
button.aacv-srv-btn:hover,
.aacv-srv-btn:hover { color: #fff !important; }

/* v1.1.0 — refuerzo blanco en TODOS los botones (asides + form) */
.aacv-srv-aside-cta,
.aacv-srv-aside-cta:hover,
.aacv-srv-aside-cta:visited,
.aacv-srv-aside-cta:link,
a.aacv-srv-btn,
a.aacv-srv-btn:hover,
a.aacv-srv-btn:visited,
a.aacv-srv-btn:link,
button.aacv-srv-btn,
button.aacv-srv-btn:hover,
.aacv-srv-modal-accept,
.aacv-srv-modal-accept:hover {
    color: #ffffff !important;
    text-shadow: none !important;
}

/* v1.1.1 — logo central más grande (solo en /servicio*) */
.aacv-srv-center .aacv-srv-logo img {
    max-height: 110px !important;
    max-width: 320px !important;
}
.aacv-srv-center-head { padding-bottom: 14px !important; }

/* v1.1.2 — Volver al inicio: texto dorado (ghost) supera la regla blanca anterior */
a.aacv-srv-btn.aacv-srv-btn-ghost,
button.aacv-srv-btn.aacv-srv-btn-ghost,
.aacv-srv-actions a.aacv-srv-btn.aacv-srv-btn-ghost,
.aacv-srv-actions button.aacv-srv-btn.aacv-srv-btn-ghost {
    color: #c89a2e !important;
    background: transparent !important;
}
a.aacv-srv-btn.aacv-srv-btn-ghost:hover,
button.aacv-srv-btn.aacv-srv-btn-ghost:hover {
    color: #ffffff !important;
    background: #c89a2e !important;
}

/* v1.1.3 — solicitar: logo más pequeño + RUC y Teléfono en una fila */
body.aacv-srv-page-solicitar .aacv-srv-center .aacv-srv-logo img {
    max-height: 64px !important;
    max-width: 200px !important;
}
body.aacv-srv-page-solicitar .aacv-srv-form-title { font-size: 14px !important; margin: 0 0 10px !important; }
body.aacv-srv-page-solicitar .aacv-srv-center { padding: 14px 28px 30px !important; }
body.aacv-srv-page-solicitar .aacv-srv-center-head { padding-bottom: 8px !important; }
body.aacv-srv-page-solicitar .aacv-srv-center-body { padding: 10px 0 6px !important; }

/* Two-column row for grouped fields */
.aacv-srv-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-bottom: 9px !important;
}
.aacv-srv-row label { margin-bottom: 0 !important; }
@media (max-width: 480px) {
    .aacv-srv-row { grid-template-columns: 1fr !important; }
}
