.suscripcion {
    max-width: 1080px;
    margin: 28px auto 18px;
    padding: 0 24px;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.suscripcion form#form-suscripcion {
    display: flex;
    gap: 30px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
    padding: 32px 36px;
    background: #fff;
    border: 1px solid rgba(27, 19, 13, 0.1);
    border-radius: 28px;
    box-shadow: 0 24px 70px -18px rgba(27, 19, 13, 0.35);
}
.nl-copy { flex: 1 1 300px; }
.nl-titulo {
    margin: 0;
    font-family: Sora, Manrope, sans-serif;
    font-weight: 800;
    font-size: 1.45rem;
    letter-spacing: -0.02em;
    line-height: 1.3;
}
.nl-titulo strong { color: #F35C14; }
.nl-nota { margin: 12px 0 0; font-size: 0.85rem; color: #8a7a6b; line-height: 1.5; }
.planes { display: flex; gap: 8px; flex-wrap: wrap; }
.planes label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1.5px solid rgba(243, 92, 20, 0.35);
    border-radius: 999px;
    background: #fff;
    font-weight: 700;
}
.planes input { width: auto; margin: 0; }
#caja-palabras { display: flex; flex-direction: column; gap: 8px; }
#caja-palabras input, .panel-suscripcion input[name="palabras_lista[]"] {
    width: 100%;
    padding: 12px 14px;
    border: 1.5px solid rgba(27, 19, 13, 0.12);
    border-radius: 12px;
}
.nl-form-row { display: flex; gap: 12px; align-items: center; }
.suscripcion input[type="email"] {
    flex: 1;
    min-width: 180px;
    padding: 15px 16px;
    border: 1.5px solid #F35C14;
    border-radius: 14px;
    box-shadow: 0 0 0 3px rgba(243, 92, 20, 0.05);
}
.suscripcion form#form-suscripcion > .nl-form-col button[type="submit"],
.nl-form-row button[type="submit"] {
    height: 54px;
    padding: 15px 28px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(120deg, #F35C14, #ff8a3d);
    color: #fff;
    font-family: Sora, Manrope, sans-serif;
    font-weight: 700;
    box-shadow: 0 12px 34px -8px rgba(243, 92, 20, 0.45);
    cursor: pointer;
}
.accept { display: flex; align-items: flex-start; gap: 8px; font-size: 0.82rem; color: #8a7a6b; line-height: 1.4; }
.accept input { flex: none; width: 16px; height: 16px; margin: 2px 0 0; }
.accept a { color: #F35C14; font-weight: 700; }
.envoltorio .suscripcion {
    max-width: 1080px;
    margin: 36px auto 12px;
    padding: 0;
}
.pie { background: #fff; color: #1b130d; border-top: 1px solid rgba(27, 19, 13, 0.1); margin-top: 60px; }
.pie-franja {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    width: min(1180px, calc(100% - 48px));
    max-width: none;
    margin: 0 auto;
    padding: 0;
    transform: translateY(-50%);
    background: transparent;
    color: #1b130d;
}
.pie-franja p {
    margin: 0;
    padding: 18px 22px;
    background: #fff;
    border: 1px solid rgba(27, 19, 13, 0.1);
    border-radius: 16px;
    box-shadow: 0 2px 6px rgba(27, 19, 13, 0.06), 0 16px 40px -12px rgba(27, 19, 13, 0.18);
    font-family: Sora, Manrope, sans-serif;
    font-weight: 700;
    font-size: 0.92rem;
}
.pie h2 { color: #F35C14; letter-spacing: 0.22em; }
.pie-cta, .pie a:hover { color: #F35C14; }
.contacto { align-items: stretch; }
.foto-ambiente { position: relative; min-height: 480px; border-radius: 28px; overflow: hidden; }
.foto-ambiente img { width: 100%; height: 100%; object-fit: cover; min-height: 480px; }
.contacto-chip {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 16px;
    box-shadow: 0 2px 6px rgba(27, 19, 13, 0.06), 0 16px 40px -12px rgba(27, 19, 13, 0.18);
}
.contacto-chip-a { top: 26px; left: 22px; }
.contacto-chip-b { right: 22px; bottom: 26px; }
.contacto-chip strong, .contacto-chip span { display: block; }
.contacto-chip strong { font-size: 0.8rem; }
.contacto-chip span { font-size: 0.7rem; color: #8a7a6b; font-weight: 600; }
.contacto-caja {
    display: flex;
    flex-direction: column;
    background: #fff;
    padding: 28px;
    border-radius: 28px;
    border: 1px solid rgba(27, 19, 13, 0.1);
    box-shadow: 0 2px 6px rgba(27, 19, 13, 0.06), 0 16px 40px -12px rgba(27, 19, 13, 0.18);
}
.contacto-caja form {
    display: flex;
    flex-direction: column;
    flex: 1;
}
.contacto-caja form > button[type="submit"] { margin-top: 8px; }
.acceso-logo { display: block; height: 78px; width: auto; margin: 0 auto 8px; }
.clave-caja { position: relative; display: block; margin-top: 6px; margin-bottom: 12px; }
.contacto-caja .clave-caja input { margin: 0; padding-right: 46px; }
.ver-clave {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #8a7a6b;
    cursor: pointer;
}
.ver-clave svg { width: 20px; height: 20px; display: block; margin: 0 auto; }
.ver-clave .ojo-cerrado { display: none; }
.ver-clave[aria-pressed="true"] .ojo-abierto { display: none; }
.ver-clave[aria-pressed="true"] .ojo-cerrado { display: block; }
.contacto-caja h1 { font-family: Sora, Manrope, sans-serif; font-weight: 800; letter-spacing: -0.03em; }
.ceja {
    display: block;
    margin-bottom: 8px;
    color: #F35C14;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}
.contacto-caja form > button[type="submit"] {
    width: 100%;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(120deg, #F35C14, #ff8a3d);
    color: #fff;
    font-family: Sora, Manrope, sans-serif;
    font-weight: 700;
}
@media (max-width: 860px) {
    .suscripcion { padding: 0 16px; margin: 16px auto; }
    .suscripcion form#form-suscripcion { padding: 20px 16px; }
    .suscripcion form#form-suscripcion, .nl-form-row { flex-direction: column; align-items: stretch; }
    .pie-franja { grid-template-columns: 1fr; transform: none; width: auto; margin: 16px 16px 0; padding-top: 0; }
    .pie-rejilla, .pie-base { width: auto; margin-left: 16px; margin-right: 16px; }
    .contacto { width: auto; margin: 16px 16px 32px; }
    .foto-ambiente, .foto-ambiente img { min-height: 340px; }
}
.pasarelas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pasarelas[hidden] { display: none; }
.pasarelas button, .panel-suscripcion button, .btn-solido {
    background: #F35C14;
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: 10px 16px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
}
.aviso-suscripcion { width: 100%; margin: 0; color: #F35C14; font-size: 0.85rem; }
.pie { margin-top: auto; }
.pie-rejilla {
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr 0.8fr 1fr 1fr;
    gap: 28px 32px;
}
.pie-modelo {
    width: 88px;
    height: 110px;
    object-fit: cover;
    object-position: center top;
    border-radius: 18px;
    margin-bottom: 12px;
}
.pie h2 {
    margin: 0 0 12px;
    font-size: 0.72rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #ff3b00;
    font-weight: 700;
}
.pie p { margin: 0 0 10px; line-height: 1.5; font-size: 0.92rem; }
.pie-nota { color: #8a7b72; font-size: 0.84rem; }
.pie-logo { height: 64px; width: auto; display: block; margin-bottom: 12px; }
.pie nav, .pie-rejilla > div { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.pie nav a, .pie-rejilla > div > a {
    color: #2a2420;
    text-decoration: none;
    font-size: 0.92rem;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.pie nav a:hover, .pie-rejilla > div > a:hover { color: #ff3b00; }
.pie-cta {
    margin-top: 4px;
    color: #ff3b00;
    font-weight: 700;
}
.pie-base {
    width: min(1180px, 100%);
    margin: 28px auto 0;
    padding-top: 16px;
    border-top: 1px solid #f0e6df;
    color: #a89890;
    font-size: 0.82rem;
}
.legal, .panel-suscripcion { max-width: 820px; margin: 28px auto 60px; padding: 0 18px; }
.legal h1, .panel-suscripcion h1 { font-size: 2rem; margin: 0 0 8px; }
.legal h2 { font-size: 1.15rem; margin: 22px 0 8px; }
.legal p, .legal li { line-height: 1.55; color: #3a322e; }
.legal ul { margin: 8px 0 12px; padding-left: 1.2rem; }
.legal .fecha-legal { color: #8a7b72; font-size: 0.88rem; }
.campana { position: relative; }
.campana summary {
    list-style: none;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    color: #8a756c;
}
.campana summary::-webkit-details-marker { display: none; }
.campana summary svg { width: 18px; height: 18px; }
.campana[open] summary, .campana summary:hover { background: #fff6f2; color: #ff3b00; }
.campana-cuenta {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: #ff3b00;
    color: #fff;
    font-size: 0.68rem;
    line-height: 18px;
    text-align: center;
}
.campana-lista {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 260px;
    padding: 12px;
    background: #fffdf9;
    border: 1px solid rgba(212, 180, 131, 0.55);
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(26, 18, 16, 0.08);
    z-index: 40;
}
.campana-lista p { margin: 0 0 8px; font-size: 0.88rem; }
.campana-lista a { color: #ff3b00; font-weight: 700; }
.barra .campana summary { color: #fff; }
.barra .campana[open] summary,
.barra .campana summary:hover { background: #F35C14; color: #fff; }
.bloque-suscriptor { margin-top: 28px; }
.bloque-suscriptor h2 { font-size: 1.15rem; margin: 0 0 8px; }
.lista-suscriptor { margin: 0; padding-left: 18px; display: grid; gap: 8px; }
.bloque-suscriptor details { margin-top: 8px; }
.bloque-suscriptor summary { cursor: pointer; color: #ff3b00; font-weight: 700; }
.panel-suscripcion input[type="text"],
.panel-suscripcion input:not([type="hidden"]) {
    display: block;
    width: min(420px, 100%);
    margin: 8px 0 14px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #e7d3c4;
    font: inherit;
}
.guardar-luego {
    margin-top: 8px;
    border: 0;
    background: #fff1eb;
    color: #ff3b00;
    border-radius: 999px;
    padding: 6px 10px;
    font-weight: 700;
    cursor: pointer;
}
.panel-suscripcion select {
    display: block;
    margin: 8px 0 14px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid #e7d3c4;
    min-width: 160px;
}
.aviso { background: #fff; border-left: 4px solid #ff3b00; padding: 10px 12px; }
.banda {
    width: 92px;
    height: 92px;
    object-fit: cover;
    border-radius: 22px;
    float: right;
    margin: 0 0 12px 16px;
    animation: flotar 7s ease-in-out infinite;
}
.contacto .contacto-caja:only-child {
    grid-column: 1 / -1;
    justify-self: center;
    width: 100%;
    max-width: 440px;
}
.contacto {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 28px;
    align-items: center;
    width: min(1100px, calc(100% - 32px));
    margin: 28px auto 120px;
}
.foto-ambiente { perspective: 800px; }
.foto-ambiente img {
    width: 100%;
    height: 100%;
    min-height: 480px;
    object-fit: cover;
    object-position: center 18%;
    display: block;
    border-radius: 28px;
}
.contacto-caja h1 { margin: 0 0 8px; font-size: 2rem; }
.contacto-caja p { color: #5c463c; }
.contacto-caja label, .contacto-caja input, .contacto-caja textarea {
    display: block;
    width: 100%;
}
.contacto-caja input, .contacto-caja textarea {
    margin-top: 6px;
    margin-bottom: 12px;
    padding: 12px 14px;
    border: 1px solid #eadfd6;
    border-radius: 12px;
    background: #fff;
    font: inherit;
}
.contacto-caja form > button[type="submit"] {
    background: #ff3b00;
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: 12px 18px;
    font-weight: 700;
    cursor: pointer;
}
@keyframes flotar {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
.contacto-datos { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 8px; }
.contacto-datos li {
    background: #fffdf9;
    border: 1px solid rgba(212, 180, 131, 0.45);
    border-radius: 12px;
    padding: 10px 12px;
    color: #3a322e;
    font-size: 0.9rem;
}
.contacto-caja select {
    display: block;
    width: 100%;
    margin-top: 6px;
    margin-bottom: 12px;
    padding: 12px 14px;
    border: 1px solid #eadfd6;
    border-radius: 12px;
    background: #fff;
    font: inherit;
}
@media (max-width: 900px) {
    .pie-rejilla { grid-template-columns: 1fr 1fr; }
    .pie-franja { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
    .contacto { grid-template-columns: 1fr; }
    .pie-rejilla { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
    .suscripcion { padding: 0 16px; margin: 10px auto 8px; }
    .suscripcion form#form-suscripcion {
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 10px;
        padding: 14px 14px;
        border-radius: 18px;
    }
    .nl-titulo { font-size: 1.05rem; line-height: 1.2; }
    .nl-nota { margin: 6px 0 0; font-size: 0.75rem; line-height: 1.35; }
    .nl-copy, .nl-form-col { flex: 0 1 auto; }
    .nl-form-col { gap: 8px; }
    .nl-form-row { flex-direction: column; align-items: stretch; gap: 8px; }
    .suscripcion input[type="email"] { min-width: 0; width: 100%; padding: 10px 12px; }
    .nl-form-row button[type="submit"] { height: 44px; padding: 10px 16px; }
    .pie { padding: 0 16px 24px; }
    .pie-franja { width: auto; margin: 16px 0 0; transform: none; }
    .pie-rejilla { width: auto; margin-left: 0; margin-right: 0; }
    .pie .pie-base { margin-left: 0; margin-right: 0; }
    .contacto { width: auto; margin: 16px 16px 32px; }
    .legal, .panel-suscripcion { margin: 16px 16px 40px; padding: 0; }
}
.btn-gmail {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: fit-content;
    margin-top: 12px;
    padding: 12px 16px;
    border-radius: 14px;
    background: #fff;
    color: #1b130d;
    border: 1.5px solid rgba(27, 19, 13, 0.15);
    font-weight: 700;
    text-decoration: none;
}
.btn-gmail svg { width: 18px; height: 18px; flex: none; }
#registro-pago { display: grid; gap: 8px; }
#registro-pago[hidden] { display: none; }
#registro-pago p { margin: 0; color: #5c463c; }
.contacto-caja label.accept {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: 100%;
    margin: 4px 0 14px;
    text-align: left;
}
.contacto-caja label.accept input {
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    flex: none;
}
.nl-flotante.suscripcion {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 30;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: min(440px, calc(100% - 24px));
    max-width: none;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}
.nl-flotante[open] { align-items: stretch; }
.nl-flotante > summary { margin-bottom: 0; }
.nl-flotante[open] > summary { margin-bottom: 8px; }
.nl-anuncio {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 30;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    max-width: calc(100vw - 24px);
}
.nl-anuncio .nl-flotante.suscripcion {
    position: static;
    right: auto;
    bottom: auto;
    width: max-content;
    max-width: min(440px, calc(100vw - 24px));
}
.nl-anuncio .nl-flotante.suscripcion[open] {
    width: min(440px, calc(100vw - 24px));
}
.nl-anuncio:has(.nl-flotante[open]) .nl-guia img,
.nl-anuncio:has(.nl-flotante[open]) .nl-dialogo { display: none; }
body.catalogo > main { z-index: 4; }
.nl-anuncio { z-index: 50; }
.panel-suscripcion {
    width: min(1080px, calc(100% - 32px));
    max-width: none;
    margin: 32px auto 64px;
    padding: 0;
}
.panel-hero h1 {
    margin: 0;
    font-family: Sora, Manrope, sans-serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.04em;
}
.panel-kicker {
    margin: 0 0 6px;
    color: #F35C14;
    font-family: Sora, Manrope, sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.panel-correo { margin: 8px 0 0; color: #5c514a; font-size: 1.05rem; }
.panel-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0 0;
}
.panel-chips span {
    padding: 6px 12px;
    border-radius: 999px;
    background: #1b130d;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: capitalize;
}
.panel-suscripcion .aviso {
    margin: 16px 0 0;
    padding: 12px 14px;
    border-radius: 14px;
    background: #fff4ec;
    color: #1b130d;
}
.panel-tarjeta {
    margin-top: 18px;
    padding: 22px;
    background: #fff;
    border: 1px solid rgba(27, 19, 13, 0.08);
    border-radius: 24px;
    box-shadow: 0 16px 40px -28px rgba(27, 19, 13, 0.55);
}
.panel-suscripcion .pago-panel.suscripcion {
    max-width: none;
    margin: 0;
    padding: 0;
}
.panel-suscripcion .pago-panel > summary {
    list-style: none;
    cursor: pointer;
    font-family: Sora, Manrope, sans-serif;
    font-size: 1.2rem;
    font-weight: 800;
}
.panel-suscripcion .pago-panel > summary::-webkit-details-marker { display: none; }
.panel-suscripcion .pago-panel form#form-suscripcion {
    margin-top: 16px;
    padding: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
}
.panel-palabras h2,
.panel-tarjeta h2 {
    margin: 0 0 8px;
    font-family: Sora, Manrope, sans-serif;
    font-size: 1.2rem;
    font-weight: 800;
}
.panel-palabras .meta { margin: 0 0 12px; color: #8a7a6b; }
.panel-palabras button { margin-top: 4px; }
.panel-columnas {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    align-items: start;
}
.panel-columnas .bloque-suscriptor { margin-top: 0; }
.panel-columnas .lista-suscriptor {
    margin: 0;
    padding: 0;
    list-style: none;
}
.panel-columnas .lista-suscriptor li {
    padding: 12px 0;
    border-top: 1px solid rgba(27, 19, 13, 0.08);
}
.panel-columnas .lista-suscriptor a { font-weight: 700; }
@media (max-width: 800px) {
    .panel-columnas { grid-template-columns: 1fr; }
    .panel-suscripcion .pago-panel form#form-suscripcion { display: block; }
}
.panel-suscripcion .pago-panel form#form-suscripcion {
    display: grid;
    grid-template-columns: minmax(220px, 0.85fr) minmax(280px, 1.15fr);
    gap: 28px 36px;
    align-items: start;
    margin-top: 18px;
    padding: 4px 2px 2px;
}
.panel-suscripcion .pago-panel .nl-form-col {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}
.panel-suscripcion .pago-panel .planes { width: 100%; }
.panel-suscripcion .pago-panel input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):not([hidden]) {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 14px 16px;
    border: 1.5px solid rgba(27, 19, 13, 0.14);
    border-radius: 14px;
    background: #fff;
}
.panel-suscripcion .pago-panel .planes input,
.panel-suscripcion .pago-panel .accept input {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
.panel-suscripcion .pago-panel .nl-form-row {
    display: flex;
    gap: 10px;
    align-items: stretch;
    width: 100%;
}
.panel-suscripcion .pago-panel .nl-form-row input { flex: 1 1 auto; min-width: 0; }
.panel-suscripcion .pago-panel .nl-form-row button { flex: none; height: 52px; }
.panel-suscripcion .pago-panel .accept { margin: 0; }
@media (max-width: 800px) {
    .panel-suscripcion .pago-panel form#form-suscripcion { grid-template-columns: 1fr; }
    .panel-suscripcion .pago-panel .nl-form-row { flex-direction: column; }
    .panel-suscripcion .pago-panel .nl-form-row button { width: 100%; }
}
