/*
 * Distribuidores: extensión mínima del diseño corporativo existente.
 * Cabecera, pie, tipografía, paleta, botones, tarjetas, rejillas y formulario
 * proceden de assets/css/main.css. No redefine estilos globales.
 */
.swd-page .swd-hero-note {
    max-width: 42rem;
    margin: 1.25rem 0 0;
    color: var(--blue-200);
    font-size: .85rem;
    line-height: 1.6;
}
.swd-page .swd-hero-note a {
    color: var(--white);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.swd-page .swd-margin-panel { text-align: center; }
.swd-page .swd-margin {
    display: grid;
    gap: .1rem;
    margin: 1.25rem 0;
    color: var(--ink);
}
.swd-page .swd-margin > span:first-child {
    color: var(--text);
    font-size: .82rem;
    font-weight: 750;
    letter-spacing: .15em;
}
.swd-page .swd-margin > strong {
    color: var(--blue-600);
    font-size: clamp(5rem, 8vw, 7rem);
    font-weight: 850;
    line-height: 1;
    letter-spacing: -.045em;
}
.swd-page .swd-margin > strong > span { font-size: .52em; }
.swd-page .swd-margin > span:last-child { font-size: 1.05rem; }
.swd-page .swd-margin-promise {
    margin: 0 0 1.5rem;
    color: var(--text);
    font-size: .95rem;
}
.swd-page .swd-margin-promise strong { color: var(--ink); }
.swd-page .swd-catalog { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.swd-page .swd-product-card { display: flex; flex-direction: column; }
.swd-page .swd-card-actions {
    display: grid;
    gap: .6rem;
    justify-items: start;
    margin-top: auto;
    padding-top: 1.25rem;
}
.swd-page .swd-card-actions .text-link { flex-wrap: wrap; }
.swd-page .swd-solution-link {
    color: var(--text);
    font-size: .85rem;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.swd-page .swd-modes { align-items: stretch; }
.swd-page .swd-modes .content-panel { display: flex; flex-direction: column; }
.swd-page .swd-modes .check-list { margin-bottom: 1.5rem; }
.swd-page .swd-modes .button { align-self: flex-start; margin-top: auto; }
.swd-page .swd-condition-note { margin-top: .6rem; font-size: .85rem; }
.swd-page .swd-form-intro { margin: 0 0 1rem; font-size: .85rem; }
.swd-page .swd-field-error:empty { display: none; }
.swd-page #swd-status[hidden] { display: none; }
.swd-page .swd-products-field {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.swd-page .swd-products-field legend {
    max-width: 100%;
    padding: 0;
    color: var(--text-strong);
    font-size: .9rem;
    font-weight: 750;
}
.swd-page .swd-products-field > p {
    margin: .4rem 0 .65rem;
    color: var(--text);
    font-size: .82rem;
}
.swd-page .swd-product-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
.swd-page .swd-product-options label {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--surface-alt);
    color: var(--text-strong);
    font-size: .85rem;
    line-height: 1.5;
    cursor: pointer;
}
.swd-page .swd-product-options label:focus-within {
    outline: 2px solid var(--blue-600);
    outline-offset: 2px;
}
.swd-page .swd-product-options label:has(input:checked) {
    background: var(--blue-50);
    border-color: var(--blue-600);
}
.swd-page .swd-product-options input {
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    min-height: 0;
    margin: .15rem 0 0;
    accent-color: var(--blue-600);
}
.swd-page #swd-form [aria-invalid="true"] { outline: 2px solid var(--danger); outline-offset: 2px; }
.swd-page #swd-products-group[aria-invalid="true"] { border-radius: var(--radius-sm); }
.swd-page #swd-form [type="submit"]:disabled { opacity: .7; cursor: progress; }
@media (max-width: 980px) {
    .swd-page .swd-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .swd-page .swd-catalog { grid-template-columns: 1fr; }
    .swd-page .swd-product-options { grid-template-columns: 1fr; }
    .swd-page .swd-modes .button { width: 100%; justify-content: center; white-space: normal; }
    .swd-page #swd-form [type="submit"] { white-space: normal; }
}
