/* Styles des pages au design sur mesure (gabarits page-*.php).
   Chargé uniquement sur les pages (is_page) via functions.php. */

/* ——— Le Studio ——— */
/* vision (proche du manifeste) */
.vision h2{font-size:clamp(1.9rem,5.4vw,4.4rem);line-height:1.6;max-width:18ch}
.vision .col{display:grid;grid-template-columns:1fr;gap:clamp(26px,4vw,48px);margin-top:clamp(36px,5vw,64px)}
.vision p{font-size:clamp(16px,1.5vw,18px);line-height:1.65;max-width:62ch}
@media(min-width:860px){.vision .col{grid-template-columns:1fr 1fr;align-items:start}}

/* fondateur */
.founder-grid{display:grid;grid-template-columns:1fr;gap:clamp(34px,5vw,64px);align-items:start}
@media(min-width:920px){.founder-grid{grid-template-columns:0.85fr 1.15fr}}
.founder-grid .portrait{position:sticky;top:110px}
.founder-body p{font-size:clamp(15px,1.45vw,17px);line-height:1.7;margin-bottom:20px;max-width:60ch}
.pullquote{font-family:'Tallica';font-weight:700;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.6;margin:clamp(30px,4vw,44px) 0;padding-left:24px;border-left:3px solid var(--rouge)}
.pullquote cite{display:block;font-family:'Inter';font-weight:500;font-style:normal;font-size:13px;letter-spacing:.04em;color:var(--gris-noir);margin-top:16px}

/* distinctions */
.feature-grid{display:grid;grid-template-columns:1fr;gap:clamp(26px,3.6vw,44px);margin-top:clamp(40px,5vw,64px)}
@media(min-width:760px){.feature-grid{grid-template-columns:1fr 1fr}}
.feature{border-top:2px solid var(--rouge);padding-top:22px}
.feature h3{font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:600;margin-bottom:10px}
.feature p{font-size:15px;line-height:1.6;color:var(--gris-noir);max-width:42ch}

/* domaines (réutilise .svc-row de main.css) */
.domaines-intro{font-size:clamp(15px,1.4vw,17px);line-height:1.65;max-width:58ch;color:var(--gris-noir);margin-top:-20px;margin-bottom:clamp(30px,4vw,48px)}

/* ——— Contact ——— */
.contact-grid{display:grid;grid-template-columns:1fr;gap:clamp(44px,6vw,84px)}
@media(min-width:920px){.contact-grid{grid-template-columns:.82fr 1.18fr}}
.col-head{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--rouge);margin-bottom:clamp(24px,3vw,34px)}
.coords{display:flex;flex-direction:column;gap:28px}
.coord .k{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-blanc);margin-bottom:8px}
.coord .k .ico{width:15px;height:15px;opacity:.8}
.coord .v,.coord a{font-size:clamp(16px,1.5vw,18px);line-height:1.5;color:inherit;text-decoration:none}
.coord a{border-bottom:1px solid var(--rouge);padding-bottom:2px}
.coord .v.small{font-size:15px;color:var(--gris-blanc);border:0}
.form{display:flex;flex-direction:column;gap:20px}
.row2{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:560px){.row2{grid-template-columns:1fr 1fr}}
.field label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:500;margin-bottom:9px;color:var(--gris-blanc)}
.field input,.field select,.field textarea{width:100%;background:transparent;border:1px solid rgba(128,128,128,.45);border-radius:8px;padding:14px 16px;font-family:inherit;font-size:15px;color:var(--noir);transition:border-color .3s}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23C03A2B' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--rouge)}
.field textarea{min-height:150px;resize:vertical}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.55;color:var(--gris-blanc)}
.consent input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:var(--rouge)}
.consent a{color:inherit;border-bottom:1px solid var(--rouge)}
.form-note{font-size:12.5px;color:var(--gris-blanc);margin-top:2px}
.form-sent{border:1px solid var(--rouge);border-radius:10px;padding:clamp(32px,5vw,56px);text-align:center}
.form-sent .mk{width:54px;height:54px;border-radius:50%;background:var(--rouge);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 22px}
.form-sent h3{font-family:'Tallica';font-weight:700;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.4;margin-bottom:12px}
.form-sent p{font-size:15px;line-height:1.6;color:var(--gris-blanc);max-width:40ch;margin:0 auto}

/* étapes "et après" (Contact) */
.steps{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid rgba(128,128,128,.22)}
.step{display:grid;grid-template-columns:auto 1fr;gap:clamp(18px,3vw,40px);padding:clamp(22px,3vw,32px) 0;border-bottom:1px solid rgba(128,128,128,.22);align-items:baseline}
.step .num{font-family:'Tallica';font-weight:700;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.4;color:var(--rouge)}
.step h3{font-size:clamp(1.05rem,1.5vw,1.3rem);font-weight:600;margin-bottom:8px}
.step p{font-size:15px;line-height:1.62;color:var(--gris-noir);max-width:60ch}

/* ——— Pages services ——— */
.cards{display:grid;grid-template-columns:1fr;gap:clamp(24px,3vw,40px)}
@media(min-width:760px){.cards.c3{grid-template-columns:repeat(3,1fr)}.cards.c2{grid-template-columns:1fr 1fr}}
.card{border-top:2px solid var(--rouge);padding-top:22px}
.card h3{font-size:clamp(1.1rem,1.7vw,1.4rem);font-weight:600;margin-bottom:12px}
.card p{font-size:15px;line-height:1.62;color:var(--gris-noir);max-width:42ch}
/* pictos des étapes de méthode et des cartes */
.card-ico{display:block;line-height:0;margin-bottom:14px;color:var(--rouge)}
.card-ico .ico{width:30px;height:30px}
.step-ico{display:block;line-height:0;margin-bottom:12px;color:var(--rouge)}
.step-ico .ico{width:26px;height:26px}
.card-link{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-size:13.5px;font-weight:600;text-decoration:none;color:inherit;transition:color .35s}
.card-link:hover{color:var(--rouge)}
.card-link svg{color:var(--rouge);transition:transform .4s var(--ease)}
.card-link:hover svg{transform:translateX(6px)}
/* témoignage client */
.cl-intro{font-size:clamp(15px,1.4vw,17px);line-height:1.65;max-width:60ch;color:var(--gris-noir);margin-bottom:clamp(30px,4vw,44px)}
.cl-quote{font-family:'Tallica';font-weight:700;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.6;max-width:24ch}
.cl-quote .qmark{color:var(--rouge)}
.cl-quote cite{display:block;font-family:'Inter';font-style:normal;font-weight:500;font-size:13px;color:var(--gris-noir);margin-top:20px}
.cl-link{display:inline-flex;align-items:center;gap:9px;margin-top:30px;font-size:13.5px;font-weight:600;text-decoration:none;color:inherit;transition:color .35s}
.cl-link:hover{color:var(--rouge)}.cl-link svg{color:var(--rouge);transition:transform .4s var(--ease)}.cl-link:hover svg{transform:translateX(6px)}
/* FAQ accordéon */
.faq{max-width:880px}
.faq details{border-bottom:1px solid rgba(128,128,128,.22)}
.faq summary{list-style:none;cursor:pointer;padding:clamp(20px,2.4vw,28px) 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:500}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pl{flex:none;width:20px;height:20px;position:relative;transition:transform .4s var(--ease)}
.faq summary .pl::before,.faq summary .pl::after{content:"";position:absolute;background:var(--rouge);transition:opacity .3s}
.faq summary .pl::before{left:0;top:9px;width:20px;height:2px}
.faq summary .pl::after{left:9px;top:0;width:2px;height:20px}
.faq details[open] summary .pl::after{opacity:0}
.faq details[open] summary .pl{transform:rotate(180deg)}
.faq .ans{padding:0 0 clamp(22px,2.6vw,30px);font-size:15.5px;line-height:1.65;color:var(--gris-noir);max-width:70ch}
/* preuve / réalisation mise en avant (services) */
.proof{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,52px);align-items:center}
@media(min-width:860px){.proof{grid-template-columns:1.1fr 1fr}}
.proof-media{overflow:hidden;border-radius:8px;display:block;aspect-ratio:3/2}
.proof-media img{width:100%;height:100%;object-fit:cover;display:block}
.proof .name{font-family:'Tallica';font-weight:700;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.6}
.proof .lab{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-blanc);margin-bottom:14px}
.proof .desc{font-size:15.5px;line-height:1.65;margin:16px 0 22px;color:var(--gris-noir);max-width:48ch}
.proof blockquote{font-family:'Tallica';font-weight:700;font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.6;border-left:3px solid var(--rouge);padding-left:18px}
.proof cite{display:block;font-family:'Inter';font-style:normal;font-weight:500;font-size:13px;color:var(--gris-noir);margin-top:14px}
.proof .go{display:inline-flex;align-items:center;gap:9px;margin-top:24px;font-size:14px;font-weight:500;color:inherit;text-decoration:none}
.proof .go span{border-bottom:1px solid var(--rouge);padding-bottom:3px}.proof .go svg{color:var(--rouge)}
.proof+.proof{margin-top:clamp(48px,7vw,96px)}
/* formules (création web) */
.formules{display:grid;grid-template-columns:1fr;gap:clamp(20px,2.4vw,28px)}
@media(min-width:820px){.formules{grid-template-columns:repeat(3,1fr)}}
.formule{border:1px solid rgba(128,128,128,.3);border-radius:8px;padding:clamp(26px,3vw,36px);display:flex;flex-direction:column;gap:22px;transition:border-color .4s,transform .4s var(--ease)}
.formule:hover{border-color:var(--rouge);transform:translateY(-4px)}
.formule .tier{font-family:'Tallica';font-weight:700;font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:1.4}
.formule .blk h4{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge);font-weight:600;margin-bottom:9px}
.formule .blk p{font-size:14.5px;line-height:1.6;color:var(--gris-blanc)}
.formule-intro{font-size:clamp(15px,1.4vw,17px);line-height:1.62;max-width:60ch;color:var(--gris-blanc);margin-bottom:clamp(34px,4vw,52px)}
.formule-notes{margin-top:clamp(30px,3.5vw,44px);display:grid;grid-template-columns:1fr;gap:18px;max-width:78ch}
.formule-notes p{font-size:14.5px;line-height:1.62;color:var(--gris-blanc)}
.formule-notes strong{color:var(--noir);font-weight:600}
.formule-notes .devis{border-left:3px solid var(--rouge);padding-left:16px}

/* ——— Landing établissements scolaires ——— */
.prose{max-width:66ch}
.prose p{font-size:clamp(16px,1.5vw,18px);line-height:1.72;margin-bottom:22px}
.prose p:last-child{margin-bottom:0}
.prose .big{font-family:'Tallica';font-weight:700;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.5;margin-bottom:24px;max-width:24ch}
.blanc .prose p{color:var(--noir)}.noir .prose p{color:var(--blanc)}

/* ——— Pages légales ——— */
.legal{max-width:760px}
.legal h2{font-family:'Tallica';font-weight:700;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.5;margin:clamp(40px,5vw,64px) 0 16px}
.legal h2:first-child{margin-top:0}
.legal h3{font-size:16px;font-weight:600;margin:22px 0 8px}
.legal p,.legal li{font-size:15.5px;line-height:1.72;margin-bottom:14px;color:var(--gris-blanc)}
.legal ul{margin:0 0 14px 20px}.legal li{margin-bottom:6px}
.legal a{color:inherit;border-bottom:1px solid var(--rouge)}
.legal .updated{font-size:13px;color:var(--gris-noir);margin-top:10px}
.todo{color:var(--rouge)}

/* ——— Contact Form 7 (intégration au design du thème) ——— */
.wpcf7-form{display:flex;flex-direction:column;gap:20px}
.field .wpcf7-form-control-wrap{display:block;width:100%}
.consent .wpcf7-form-control-wrap{display:inline;width:auto}
.consent .wpcf7-list-item{margin:0}
.consent .wpcf7-list-item-label{display:none}
.wpcf7 input[type="submit"]{cursor:pointer;border:0;font-family:inherit}
.wpcf7 input[type="submit"].btn-dark{background:var(--noir);color:var(--blanc);transition:opacity .35s,background .35s}
.wpcf7 input[type="submit"].btn-dark:hover{opacity:.85}
.wpcf7-not-valid{border-color:var(--rouge)!important}
.wpcf7 .wpcf7-not-valid-tip{color:var(--rouge);font-size:12.5px;margin-top:6px;font-weight:500}
.wpcf7-response-output{margin:18px 0 0!important;padding:14px 18px!important;border-radius:8px;font-size:14px;line-height:1.5;border-width:1px}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--rouge);color:var(--noir)}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:var(--rouge);color:var(--rouge)}
.wpcf7-spinner{margin-left:12px}

/* ——— Page contact : héro compact sur mobile, le formulaire arrive plus vite ——— */
@media(max-width:919px){
  .hero-compact{min-height:auto;padding-top:140px;padding-bottom:56px}
}
