/* Padres Digitales · Contacto */
.pd-contact-page { min-height: 100vh; background: #f5f5f7; }
.pd-contact-hero {
    position: relative;
    overflow: hidden;
    min-height: calc(100vh - 68px);
    padding: clamp(5rem, 9vw, 8rem) 0 clamp(4rem, 7vw, 6rem);
    background:
        radial-gradient(circle at 78% 18%, rgba(255,255,255,.72), rgba(255,255,255,0) 30%),
        linear-gradient(135deg, rgba(245,245,247,.98) 0%, rgba(255,255,255,.96) 48%, rgba(232,233,236,.94) 100%);
}
.pd-contact-hero::before {
    position: absolute;
    inset: -6%;
    content: "";
    background: url('../images/malla-apple-dense.svg') center / cover no-repeat;
    opacity: .46;
    filter: grayscale(1) contrast(1.02) brightness(.94);
    animation: pd-contact-mesh 7.5s ease-in-out infinite alternate;
    pointer-events: none;
}
@keyframes pd-contact-mesh { from { transform: translate3d(-4px,3px,0) scale(1.012); } to { transform: translate3d(7px,-5px,0) scale(1.024); } }
.pd-contact-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0,.92fr) minmax(340px,520px);
    gap: clamp(2rem,5vw,5rem);
    align-items: center;
}
.pd-contact-copy__eyebrow { margin: 0 0 .8rem; color: #6e6e73; font-size: .94rem; font-weight: 760; }
.pd-contact-copy h1 { max-width: 780px; margin: 0; color: #1d1d1f; font-size: clamp(3rem,6vw,6rem); line-height: .96; letter-spacing: -.055em; }
.pd-contact-copy p { max-width: 650px; margin: 1.35rem 0 0; color: #6e6e73; font-size: clamp(1.05rem,1.5vw,1.25rem); line-height: 1.48; }
.pd-contact-copy__notice { padding-left: 1rem; border-left: 1px solid rgba(29,29,31,.22); color: #8e8e93 !important; font-size: .95rem !important; }
.pd-contact-form {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 1rem;
    padding: clamp(1.25rem,3vw,2rem);
    color: #1d1d1f;
    background: rgba(255,255,255,.58);
    border: 1px solid rgba(210,210,215,.72);
    border-radius: 28px;
    box-shadow: 0 24px 70px rgba(29,29,31,.08);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
}

.pd-contact-form::before,
.pd-contact-form::after {
    position: absolute;
    content: "0101 1100 0011 1010 0110 1001 0101 0010 1110 0001 1011 0100 0101 1100 0011 1010";
    width: 150%;
    color: rgba(63,70,79,.13);
    font-family: "Courier New", monospace;
    font-size: clamp(.92rem, 1.45vw, 1.35rem);
    font-weight: 700;
    letter-spacing: .16em;
    line-height: 1.75;
    opacity: .72;
    pointer-events: none;
    white-space: pre-wrap;
    z-index: 0;
}

.pd-contact-form::before {
    left: -28%;
    top: 8%;
    transform: rotate(-8deg);
    animation: pd-form-binary-a 16s linear infinite;
}

.pd-contact-form::after {
    right: -35%;
    bottom: 4%;
    color: rgba(180,188,198,.22);
    transform: rotate(10deg);
    animation: pd-form-binary-b 19s linear infinite;
}

.pd-contact-form > * {
    position: relative;
    z-index: 1;
}

@keyframes pd-form-binary-a {
    from { translate: -5% -2%; }
    to { translate: 8% 4%; }
}

@keyframes pd-form-binary-b {
    from { translate: 8% 4%; }
    to { translate: -8% -4%; }
}

@media (prefers-reduced-motion: reduce) {
    .pd-contact-form::before,
    .pd-contact-form::after {
        animation: none;
    }
}
.pd-contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.pd-contact-form label { margin: 0; }
.pd-contact-form label > span:first-child { display: block; margin-bottom: .45rem; color: #1d1d1f; font-size: .9rem; font-weight: 760; }
.pd-contact-form input[type="text"], .pd-contact-form input[type="email"], .pd-contact-form select, .pd-contact-form textarea {
    width: 100%;
    padding: 0 .95rem;
    color: #1d1d1f;
    background: rgba(245,245,247,.92);
    border: 1px solid rgba(134,134,139,.34);
    border-radius: 14px;
    font-size: 1rem;
}
.pd-contact-form input[type="text"], .pd-contact-form input[type="email"], .pd-contact-form select { min-height: 48px; }
.pd-contact-form textarea { min-height: 150px; padding-block: .85rem; resize: vertical; }
.pd-contact-form :where(input,select,textarea):focus { outline: 2px solid rgba(134,168,255,.8); outline-offset: 1px; }
.pd-contact-form__privacy { display: grid; grid-template-columns: auto 1fr; gap: .55rem; align-items: start; color: #6e6e73; font-size: .82rem; line-height: 1.4; }
.pd-contact-form__privacy input { margin-top: .18rem; accent-color: #1d1d1f; }
.pd-contact-form__privacy a { color: #1d1d1f; text-decoration: underline; text-underline-offset: 3px; }
.pd-contact-form__legal { margin: 0; color: #8e8e93; font-size: .78rem; line-height: 1.45; }
.pd-contact-form button[type="submit"] {
    justify-self: start;
    min-height: 48px;
    padding: 0 1.25rem;
    color: #fff;
    background: #1d1d1f;
    border: 1px solid #1d1d1f;
    border-radius: 999px;
    font-weight: 760;
    transition: color 90ms ease, background 90ms ease, border-color 90ms ease, box-shadow 90ms ease, transform 90ms ease;
}
.pd-contact-form button[type="submit"]:hover, .pd-contact-form button[type="submit"]:focus, .pd-contact-form button[type="submit"]:active {
    color: #1d1d1f;
    background: #fff;
    border-color: #1d1d1f;
    box-shadow: 0 14px 34px rgba(29,29,31,.14);
    transform: translateY(-1px);
}
@media (max-width: 820px) {
    .pd-contact-hero { padding: 3.2rem 0 3rem; }
    .pd-contact-hero__inner, .pd-contact-form__row { grid-template-columns: 1fr; }
    .pd-contact-copy h1 { font-size: clamp(2.6rem,12vw,4rem); }
    .pd-contact-form { border-radius: 24px; }
}

.pd-contact-message { position: relative; z-index: 2; margin: 0 0 1rem; padding: .85rem 1rem; border-radius: 16px; font-size: .92rem; font-weight: 650; }
.pd-contact-message--ok { color: #0f5132; background: rgba(209,231,221,.72); border: 1px solid rgba(186,219,204,.9); }
.pd-contact-message--error { color: #842029; background: rgba(248,215,218,.72); border: 1px solid rgba(245,194,199,.9); }


/* 7.7.1: envío de contacto con logo y hover negativo real. */
.pd-contact-form__submit-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .15rem;
}

.pd-contact-form__submit-row button[type="submit"],
.pd-contact-form button[type="submit"] {
    color: #fff !important;
    background: #1d1d1f !important;
    border: 1px solid #1d1d1f !important;
    box-shadow: none !important;
    transition: color 90ms ease, background 90ms ease, border-color 90ms ease, box-shadow 90ms ease, transform 90ms ease !important;
}

.pd-contact-form__submit-row button[type="submit"]:hover,
.pd-contact-form__submit-row button[type="submit"]:focus,
.pd-contact-form__submit-row button[type="submit"]:active,
.pd-contact-form button[type="submit"]:hover,
.pd-contact-form button[type="submit"]:focus,
.pd-contact-form button[type="submit"]:active {
    color: #1d1d1f !important;
    background: #fff !important;
    border-color: #1d1d1f !important;
    box-shadow: inset 0 0 0 1px #1d1d1f, 0 14px 34px rgba(29,29,31,.14) !important;
    transform: translateY(-1px) !important;
}

.pd-contact-form__logo {
    display: block;
    width: clamp(145px, 36%, 210px);
    height: auto;
    opacity: .68;
    filter: grayscale(1) contrast(1.04);
}

@media (max-width: 520px) {
    .pd-contact-form__submit-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .pd-contact-form__logo {
        width: 170px;
        margin-inline: auto;
    }
}

/* 7.11.9: enlaces legales de formularios sin azul ni subrayado. */
.pd-contact-form__privacy a { color: currentColor !important; font-weight: 760 !important; font-style: normal !important; text-decoration: none !important; }

/* 7.12.0: binario visible dentro de la caja del formulario. */
.pd-contact-form::before,
.pd-contact-form::after {
    content: "0101 1100 0011 1010 0110 1001 0101 0010 1110 0001\A1011 0100 0101 1100 0011 1010 0110 1001 0101 0010\A0010 1110 0001 1011 0100 0101 1100 0011 1010 0110\A1001 0101 0010 1110 0001 1011 0100 0101 1100 0011" !important;
    color: rgba(92,98,108,.34) !important;
    font-size: clamp(1rem, 1.6vw, 1.5rem) !important;
    line-height: 1.42 !important;
    opacity: .9 !important;
}

.pd-contact-form::after {
    color: rgba(30,34,40,.18) !important;
}
