/* ============================================================
   ABC DANSE - Newsletter
   ============================================================ */

.newsletter-page{
    margin:0;
    background:#f6f4f5;
    color:#302b2e;
}

.newsletter-shell{
    width:min(1080px, calc(100% - 40px));
    margin:0 auto;
}


/* Hero */

.newsletter-hero{
    padding:52px 0 44px;
    background:
        radial-gradient(circle at 85% 15%, rgba(238,61,131,.15), transparent 30%),
        linear-gradient(135deg,#221226,#61194b);
    color:#fff;
}

.newsletter-kicker{
    color:#ff91bd;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.13em;
}

.newsletter-hero h1{
    margin:8px 0 12px;
    color:#fff;
    font-size:clamp(2.4rem,6vw,4.8rem);
    line-height:1;
    text-transform:none;
}

.newsletter-hero p{
    max-width:720px;
    margin:0;
    color:rgba(255,255,255,.82);
    line-height:1.65;
}

.newsletter-version{
    margin-top:14px;
    color:rgba(255,255,255,.3);
    font-size:10px;
    text-align:right;
}


/* Content */

.newsletter-content{
    padding:42px 0 64px;
}

.newsletter-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.25fr) minmax(260px, .75fr);
    gap:28px;
    align-items:start;
}

.newsletter-form-card,
.newsletter-info{
    background:#fff;
    border:1px solid rgba(0,0,0,.07);
    border-radius:18px;
    box-shadow:0 8px 25px rgba(0,0,0,.045);
}

.newsletter-form-card{
    padding:30px;
}

.newsletter-info{
    padding:26px;
}

.newsletter-form-card h2,
.newsletter-info h2{
    margin:0 0 12px;
    text-transform:none;
}

.newsletter-form-intro,
.newsletter-info p{
    color:#696168;
    line-height:1.65;
}

.newsletter-info p:last-child{
    margin-bottom:0;
}


/* Messages */

.newsletter-message{
    margin-bottom:22px;
    padding:15px 17px;
    border-radius:10px;
    line-height:1.55;
}

.newsletter-message.error{
    background:#fff0f0;
    border-left:4px solid #b74747;
}

.newsletter-message.info{
    background:#f2f0f7;
    border-left:4px solid #765a8d;
}

.newsletter-message.success{
    background:#eef8f0;
    border-left:4px solid #478558;
}


/* Form */

.newsletter-row{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    gap:14px;
}

.newsletter-field{
    margin-top:17px;
}

.newsletter-field label{
    display:block;
    margin-bottom:6px;
    font-weight:600;
}

.newsletter-field input,
.newsletter-field select{
    width:100%;
    box-sizing:border-box;
    min-height:46px;
    padding:10px 12px;
    border:1px solid #cfc7cc;
    border-radius:8px;
    background:#fff;
    color:#302b2e;
    font:inherit;
}

.newsletter-field input:focus,
.newsletter-field select:focus{
    outline:none;
    border-color:#8b4774;
    box-shadow:0 0 0 3px rgba(139,71,116,.10);
}

.newsletter-field small{
    display:block;
    margin-top:6px;
    color:#777;
    line-height:1.4;
}

.newsletter-field small.is-warning{
    color:#9b5b22;
    font-weight:600;
}

.newsletter-consent{
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-top:22px;
    color:#565055;
    font-size:.9rem;
    line-height:1.5;
}

.newsletter-consent input{
    margin-top:4px;
    flex:0 0 auto;
}

.newsletter-consent a{
    color:inherit;
    text-decoration:underline;
    text-underline-offset:2px;
}

.newsletter-submit,
.newsletter-home{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    margin-top:22px;
    min-height:46px;
    padding:11px 20px;
    border:0;
    border-radius:999px;
    background:#6c2455;
    color:#fff !important;
    font:inherit;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}


/* Success */

.newsletter-success{
    text-align:center;
    padding:18px 6px 8px;
}

.newsletter-success > i{
    color:#478558;
    font-size:3.2rem;
}

.newsletter-success h2{
    margin-top:12px;
}

.newsletter-small-note{
    color:#746d72;
    font-size:.9rem;
    line-height:1.55;
}


/* Mobile */

@media(max-width:760px){

    .newsletter-shell{
        width:calc(100% - 24px);
    }

    .newsletter-hero{
        padding:38px 0 34px;
    }

    .newsletter-content{
        padding:26px 0 46px;
    }

    .newsletter-layout{
        grid-template-columns:1fr;
    }

    .newsletter-form-card,
    .newsletter-info{
        padding:21px 18px;
        border-radius:13px;
    }

    .newsletter-row{
        grid-template-columns:1fr;
        gap:0;
    }

    .newsletter-submit{
        width:100%;
    }
}
