/* Surcharges propres au site (le thème Sandbox est dans public/dist/, à ne pas modifier) */

/* Vignettes de projets : même format pour toutes, image entière (pas de recadrage des logos) */
.project-thumb img {
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: contain;
    background: #fff;
}

/* Accueil : une entrée lisible et un appel à l'action immédiatement visible. */
.home-hero {
    background: radial-gradient(circle at 85% 20%, #e6f6ff 0, transparent 32%),
        linear-gradient(145deg, #fff 20%, #f2f8fc 100%);
}
.home-hero .hero-eyebrow,
.contact-eyebrow {
    color: #1474a8;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.home-hero h1 {
    font-size: clamp(2.55rem, 5vw, 4.6rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}
.home-hero h1 span {
    color: #277eaf;
}
.home-hero .hero-lead {
    max-width: 38rem;
}
.home-hero-visual {
    display: grid;
    place-items: center;
    min-height: 25rem;
    border: 1px solid #dcebf4;
    border-radius: 2rem;
    background: linear-gradient(155deg, #e6f5fd, #fff 55%, #d7edfa);
    box-shadow: 0 25px 60px rgba(31, 72, 105, .09);
}
.home-hero-visual img {
    width: min(60%, 17rem);
    height: auto;
    filter: drop-shadow(0 15px 20px rgba(28, 69, 95, .12));
}
.hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.4rem;
    padding: 0;
    list-style: none;
    color: #466174;
    font-size: .9rem;
}
.hero-points li::before {
    content: '✓';
    color: #1474a8;
    font-weight: 700;
    margin-right: .45rem;
}

/* Contact : une page courte, centrée sur l'échange et le formulaire. */
.contact-hero {
    background: radial-gradient(circle at 95% 10%, rgba(94, 185, 240, .22), transparent 34%),
        linear-gradient(130deg, #112d49, #194869);
}
.contact-hero .contact-eyebrow {
    color: #9bd9ff;
}
.contact-hero-intro {
    max-width: 47rem;
    opacity: .9;
}
.contact-hero-note {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid rgba(255, 255, 255, .24);
    border-radius: 1rem;
    color: #fff;
    background: rgba(255, 255, 255, .07);
}
.contact-hero-note i {
    color: #9bd9ff;
    font-size: 2rem;
}
.contact-section {
    background: #f6f9fc;
}
.contact-panel,
.contact-aside {
    border: 1px solid #e1eaf0;
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 18px 50px rgba(25, 62, 89, .06);
}
.contact-panel {
    padding: clamp(1.5rem, 4vw, 3rem);
}
.contact-aside {
    padding: 2rem;
}
.form-floating > .contact-message {
    height: 11rem;
    min-height: 11rem;
}
.contact-panel .form-control:focus,
.contact-panel .form-select:focus {
    border-color: #4a9dcb;
    box-shadow: 0 0 0 .2rem rgba(74, 157, 203, .18);
}
.contact-form-note {
    max-width: 17rem;
    color: #607384;
    font-size: .8rem;
    line-height: 1.45;
}
.contact-trap {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.contact-detail {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    overflow-wrap: anywhere;
}
.contact-detail-icon {
    display: grid;
    flex: 0 0 2.5rem;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .75rem;
    background: #e8f6ff;
    color: #1474a8;
    font-size: 1.25rem;
}
.contact-detail-label {
    margin-bottom: .15rem;
    color: #607384;
    font-size: .85rem;
}
@media (max-width: 991.98px) {
    .home-hero-visual {
        min-height: 17rem;
    }
}

/* Page projet : titre plus petit sur mobile (les noms longs passaient sous l'image) */
@media (max-width: 767.98px) {
    .project-hero h1 {
        font-size: 2rem;
    }
}
