/* CAM - Page 100 ans : styles extraits du thème enfant Blocksy (style.css + modeles.css)
   pour que la page soit identique quel que soit le thème du site. */

:root {
    --bleu-fonce: #293C54;
    --bleu-clair: #4DBBCE;
    --bleu-ciel: #EEF5FD;
}

/* ---------- Titres et boutons (modeles.css) ---------- */
.cam-100ans-page .cam-section__title {
    font-weight: 600 !important;
    line-height: 1.15 !important;
    font-size: clamp(28px, 3vw, 50px) !important;
    font-family: "Poppins", sans-serif !important;
}
.cam-100ans-page .cam-section__title--h2 {
    font-weight: 600 !important;
    font-size: clamp(24px, 3vw, 34px) !important;
    line-height: 1.2 !important;
}
.cam-100ans-page .cam-section__title--h3 {
    font-weight: 600 !important;
    font-size: clamp(18px, 2.5vw, 26px) !important;
    line-height: 1.3 !important;
}
.cam-100ans-page .cam-section__title--h4 {
    font-size: clamp(16px, 2vw, 22px) !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
}

.cam-100ans-page .cam-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: 999px;
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 16px !important;
    line-height: 1em;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
    border: 2px solid transparent;
}
.cam-100ans-page .cam-btn--primary {
    background: var(--bleu-clair, #4dbbce);
    color: #fff !important;
    border: 2px solid var(--bleu-clair, #4dbbce);
}
.cam-100ans-page .cam-btn--primary:hover {
    background: color-mix(in srgb, var(--bleu-clair, #4dbbce) 70%, transparent);
    color: #fff !important;
}
.cam-100ans-page .cam-btn--outline {
    background: transparent;
    color: var(--bleu-clair, #4dbbce) !important;
    border-color: var(--bleu-clair, #4dbbce);
}
.cam-100ans-page .cam-btn--outline:hover {
    background: var(--bleu-clair, #4dbbce);
    color: #fff !important;
}

@media (max-width: 991px) {
    .cam-100ans-page .cam-section__title { font-size: 34px !important; }
    .cam-100ans-page .cam-section__title--h2 { font-size: 30px !important; }
    .cam-100ans-page .cam-section__title--h3 { font-size: 24px !important; }
    .cam-100ans-page .cam-section__title--h4 { font-size: 20px !important; }
}
@media (max-width: 768px) {
    .cam-100ans-page .cam-section__title { font-size: 30px !important; }
    .cam-100ans-page .cam-section__title--h2 { font-size: 26px !important; }
    .cam-100ans-page .cam-section__title--h3 { font-size: 22px !important; }
    .cam-100ans-page .cam-section__title--h4 { font-size: 18px !important; }
}

/* ---------- Bloc ACCUEIL (style.css) ---------- */
.expertise__text, .tl-date p, .tl-card p, .hcard__text, .metiers__sub {
    font-size: 16px !important;
}

.metiers__inner h2, .relations-form-section h2, .timeline__scale h2, .relations__col--text p,
.metiers__sub, .tl-date p, .form-protection-demain h2 {
    color: #fff !important;
}

.form-protection-demain { padding: 0 !important; }

.relations__row, .hist-inner { padding: 75px 0 !important; }
.metiers__inner { padding: 75px 0 0 !important; }

/* Tablette */
@media only screen and (min-width: 769px) and (max-width: 1000px) {
    .relations__row, .hist-inner { padding: 60px 0 !important; }
    .metiers__inner { padding: 60px 0 0 !important; }
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
    .hist-row {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        align-items: stretch !important;
    }
    .hist-row--1 figure:last-child {
        grid-column: 1 / -1 !important;
        display: grid !important;
        max-width: 100% !important;
    }
    .tablet-dispo {
        display: flex;
        align-items: center;
        gap: 20px;
        padding-bottom: 15px;
    }
    .hcard.hcard--tilt-right { margin: 0 !important; }
    .hist-row--2 { margin-top: 20px !important; }
    .hcard h3 { margin-top: 20px !important; }
}

@media only screen and (max-width: 768px) {
    .relations__row, .hist-inner { padding: 40px 0 !important; }
    .hist-row { flex-direction: column; gap: 0 !important; }
    .metiers__cards, .hist-row--1 .hcard, .hist-row--2 .hcard { max-width: 100% !important; }
    .metiers__inner { padding: 40px 0 0 !important; }
    .hcard.hcard--tilt-right { margin: 20px 0 !important; }
    .hcard h3 { margin-top: 20px !important; }
}

.histoires h2 { text-align: center !important; }
.timeline__scale h2 { position: relative !important; }
.tl-date, .tl-card { font-family: "Poppins", sans-serif !important; }
.hero__title { font-family: "Poppins", sans-serif !important; }
.tablet h3 { margin-top: 17px !important; }

.hcard h3 {
    margin-top: 15px !important;
    margin-bottom: 15px !important;
}
.tl-date .cam-section__title--h2, .tl-card .cam-section__title--h2 {
    display: block !important;
}

/* ---------- Bouton du formulaire Gravity Forms ---------- */
.cam-100ans-page .gform_button, .cam-100ans-page #gform_submit_button_3 {
    border-radius: 999px !important;
    font-family: "Poppins", sans-serif !important;
    background: var(--bleu-clair) !important;
    font-weight: 700 !important;
    width: fit-content !important;
    color: #fff !important;
}
.cam-100ans-page .gform_button:hover, .cam-100ans-page #gform_submit_button_3:hover {
    background: color-mix(in srgb, var(--bleu-clair, #4dbbce) 70%, transparent) !important;
    color: #fff !important;
}

/* ---------- Robustesse vis-à-vis du thème hôte ---------- */
.cam-100ans-page { overflow-x: hidden; }
.cam-100ans-page .entry-header, .cam-100ans-page .page-title-section { display: none; }

/* ---------- Formulaire Contact Form 7 (page 100 ans) ---------- */
.form-protection-demain .wpcf7 { max-width: 1280px; width: calc(100% - 40px); margin: 0 auto; padding: 0; }
.form-protection-demain .wpcf7 form p { margin: 0; }
.form-protection-demain .cam100-frow { display: flex; gap: 25px; margin-bottom: 16px; }
.form-protection-demain .cam100-frow .wpcf7-form-control-wrap { flex: 1 1 0; display: block; min-width: 0; }
.form-protection-demain .wpcf7 input[type="text"],
.form-protection-demain .wpcf7 input[type="email"],
.form-protection-demain .wpcf7 input[type="tel"],
.form-protection-demain .wpcf7 textarea {
    width: 100%; box-sizing: border-box; border: 0; border-radius: 7px;
    background: #e7dccb; color: var(--bleu-fonce);
    font-family: "Poppins", sans-serif; font-size: 16px; line-height: 1.2; box-shadow: none;
}
.form-protection-demain .wpcf7 input[type="text"],
.form-protection-demain .wpcf7 input[type="email"],
.form-protection-demain .wpcf7 input[type="tel"] { height: 40px; padding: 0 8px; }
.form-protection-demain .wpcf7 textarea { height: 192px; padding: 8px; resize: vertical; display: block; margin: 0; }
.form-protection-demain .wpcf7 ::placeholder { color: var(--bleu-fonce); opacity: 1; }
.form-protection-demain .wpcf7 input:focus,
.form-protection-demain .wpcf7 textarea:focus { outline: 2px solid var(--bleu-clair); outline-offset: 0; }
.form-protection-demain .wpcf7-acceptance,
.form-protection-demain .wpcf7-acceptance label { color: #fff; font-family: "Poppins", sans-serif; font-size: 14px; line-height: 1.4; }
.form-protection-demain .wpcf7-acceptance input { margin-right: 8px; }
.form-protection-demain .wpcf7 input[type="submit"] {
    display: block; width: auto !important; max-width: none; height: 46px; margin: 22px auto 0; padding: 0 60px;
    border: 0; border-radius: 999px; background: var(--bleu-clair); color: #fff;
    font-family: "Poppins", sans-serif; font-weight: 700; font-size: 16px; line-height: 46px; cursor: pointer;
    transition: background-color .2s ease;
}
.form-protection-demain .wpcf7 input[type="submit"]:hover {
    background: color-mix(in srgb, var(--bleu-clair, #4dbbce) 70%, transparent);
}
.form-protection-demain .wpcf7-not-valid-tip { color: #fff; font-size: 13px; margin-top: 4px; }
.form-protection-demain .wpcf7 form .wpcf7-response-output { color: #fff; border-color: #fff; margin: 20px 0 0; text-align: center; }
.form-protection-demain .wpcf7-spinner { display: block; margin: 12px auto 0; }
@media (max-width: 768px) {
    .form-protection-demain .cam100-frow { flex-direction: column; gap: 16px; }
}

/* ---------- Correctif CF7 : les champs sont dans un <p> ---------- */
.form-protection-demain .cam100-frow { display: block; }
.form-protection-demain .cam100-frow > p { display: flex; gap: 25px; margin: 0; }
.form-protection-demain .cam100-frow > p > .wpcf7-form-control-wrap { flex: 1 1 0; min-width: 0; display: block; }
.form-protection-demain .cam100-frow > p > br { display: none; }

/* Case de consentement : à gauche, sur une ligne */
.form-protection-demain .wpcf7-acceptance { display: block; margin-top: 16px; text-align: left; }
.form-protection-demain .wpcf7-acceptance .wpcf7-list-item { margin: 0; display: block; }
.form-protection-demain .wpcf7-acceptance label { display: flex; align-items: center; gap: 8px; }
.form-protection-demain .wpcf7-acceptance input[type="checkbox"] { width: auto; height: auto; margin: 0; flex: 0 0 auto; }

@media (max-width: 768px) {
    .form-protection-demain .cam100-frow > p { flex-direction: column; gap: 16px; }
}