/*
Theme Name: Rapp.pro
Theme URI: https://rapp.pro/
Author: Rapp.pro
Description: Thème de blocs personnalisé pour Rapp.pro : six pages Gutenberg, design épuré et navigation responsive. Aucune extension obligatoire.
Version: 1.1.0
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: rapp-pro
Tags: full-site-editing, block-patterns, custom-colors, wide-blocks, accessibility-ready
*/

/* =============================================================
   RAPP.PRO — FEUILLE DE STYLE PERSONNALISABLE
   Le contenu des pages est éditable depuis Pages > Modifier.
   Les éléments globaux sont modifiables depuis Apparence > Éditeur.
   Couleurs : bleu #182B3A, ivoire #F7F5F0, terre #A65338.
   ============================================================= */

:root { --rapp-ink:#182B3A; --rapp-paper:#F7F5F0; --rapp-terra:#A65338; --rapp-soft:#EBECE8; --rapp-line:#DDDDD6; --rapp-muted:#46515C; --rapp-max:1160px; }
*, *::before, *::after { box-sizing:border-box; }
html {scroll-behavior:smooth;}
body { margin:0; background:var(--rapp-paper); color:var(--rapp-ink); font-family:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif; -webkit-font-smoothing:antialiased; line-height:1.65; }
a {color:inherit; text-underline-offset:5px;}
a:hover {color:var(--rapp-terra);}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {outline:3px solid var(--rapp-terra);outline-offset:3px;}
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3 {font-weight:500; letter-spacing:-.052em; line-height:1.12;}
h1 {font-size:clamp(3.15rem,6.2vw,6.1rem);}
h2 {font-size:clamp(2.15rem,3.9vw,3.7rem);}
h3 {font-size:clamp(1.3rem,2vw,1.85rem);letter-spacing:-.038em;}
p {font-size:1rem;line-height:1.78;}
.wp-site-blocks, .rapp-main, .wp-block-post-content {min-width:0;}
.wp-block-post-content > * {margin-block-start:0;margin-block-end:0;}
.wp-block-post-content a {text-decoration:none;}
.wp-block-post-content a:hover {text-decoration:underline;}
.wp-block-post-content .wp-block-columns {margin-bottom:0;}
.wp-block-column {min-width:0;}

/* Navigation commune aux six pages. */
.rapp-site-header { position:relative;z-index:10;background:var(--rapp-paper);border-bottom:1px solid var(--rapp-line); }
.rapp-nav-shell {max-width:var(--rapp-max);margin:0 auto;padding:21px 30px;min-height:84px;gap:30px;display:flex;align-items:center;justify-content:space-between;}
.rapp-logo, .rapp-logo a {font-size:1.85rem!important;font-weight:800!important;letter-spacing:-.075em!important;text-decoration:none!important;color:var(--rapp-ink)!important;white-space:nowrap;line-height:1.1;}
.rapp-site-nav {font-size:.83rem;letter-spacing:-.01em;}
.rapp-site-nav .wp-block-navigation__container {align-items:center;gap:clamp(10px,1.65vw,25px);}
.rapp-site-nav .wp-block-navigation-item__content {text-decoration:none;}
.rapp-site-nav .rapp-nav-cta .wp-block-navigation-item__content {display:inline-block;border:1px solid var(--rapp-ink);padding:12px 16px;text-decoration:none;transition:background .2s,color .2s;}
.rapp-site-nav .rapp-nav-cta .wp-block-navigation-item__content:hover {background:var(--rapp-ink);color:#fff;}
.rapp-site-nav .wp-block-navigation__responsive-container.is-menu-open {padding:24px;background:var(--rapp-paper);color:var(--rapp-ink);}

/* Sections réutilisées dans Gutenberg. */
.rapp-hero, .rapp-section {padding:clamp(74px,8.5vw,126px) max(30px,calc((100vw - var(--rapp-max))/2));}
.rapp-hero {padding-top:clamp(74px,8vw,115px);padding-bottom:clamp(70px,8vw,114px);}
.rapp-hero-simple {padding-bottom:clamp(78px,9vw,128px);border-bottom:1px solid var(--rapp-line);}
.rapp-hero-simple .rapp-display {max-width:950px;}
.rapp-kicker {font-size:.7rem!important;text-transform:uppercase;font-weight:800;line-height:1.4;letter-spacing:.19em; color:var(--rapp-terra);margin-bottom:27px!important;}
.rapp-hero .rapp-display {font-size:clamp(3.0rem,5.3vw,5.8rem);margin:0 0 28px;line-height:1.11;letter-spacing:-.058em;}
.rapp-display em {font-family:Georgia,"Times New Roman",serif;font-weight:400;color:var(--rapp-terra);font-style:italic;letter-spacing:-.05em;}
.rapp-lead {font-size:clamp(1.1rem,1.4vw,1.35rem)!important;line-height:1.72;color:var(--rapp-muted);max-width:760px;margin-bottom:0!important;}
.rapp-home-lead {font-size:1.06rem!important;max-width:560px;}
.rapp-section .rapp-section-title {margin-bottom:40px;font-size:clamp(2rem,3.25vw,3.25rem);}
.rapp-subhead {font-size:clamp(1.3rem,2vw,1.85rem);letter-spacing:-.035em;margin-bottom:28px;}
.rapp-section > .rapp-kicker, .rapp-section > .rapp-section-title, .rapp-section > .rapp-subhead {max-width:1100px;}
.rapp-section-tall {padding-top:clamp(95px,11vw,158px);padding-bottom:clamp(100px,11vw,165px);}
.rapp-section-tight {padding-top:clamp(62px,6vw,90px);padding-bottom:clamp(62px,6vw,90px);}
.rapp-dark-section {background:var(--rapp-ink);color:#fff;}
.rapp-dark-section p,.rapp-dark-section .rapp-lead {color:#e7e9e9;}
.rapp-dark-section .rapp-kicker {color:#d99b85;}
.rapp-muted-section {background:#EEEFEA;}
.rapp-section .wp-block-columns {gap:clamp(25px,4.3vw,68px);}
.rapp-rule-grid {margin-top:38px;}
.rapp-single-feature > .wp-block-column {flex:0 1 calc(33.333% - 22px);}
.rapp-rule-grid .wp-block-column {border-top:1px solid var(--rapp-line);padding-top:20px;}
.rapp-rule-grid h3 {font-size:1.42rem;margin:12px 0 17px;}
.rapp-rule-grid p:not(.rapp-index) {font-size:.98rem;color:var(--rapp-muted);}
.rapp-index {font-size:.79rem!important;color:var(--rapp-terra);font-weight:600;letter-spacing:.045em;margin-bottom:17px!important;}
.rapp-index-dark {color:#e0a38f!important;}
.rapp-small {font-size:.9rem!important;line-height:1.65;}
.rapp-dim {color:var(--rapp-muted)!important;}
.rapp-button-row {display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:32px;}
.rapp-button-row .wp-block-button__link,.rapp-primary-button .wp-block-button__link {border-radius:0;color:#fff!important;background:var(--rapp-ink);border:1px solid var(--rapp-ink);padding:15px 23px;font-size:.86rem;font-weight:700;text-decoration:none;}
.rapp-button-row .wp-block-button__link:hover,.rapp-primary-button .wp-block-button__link:hover {background:var(--rapp-terra);border-color:var(--rapp-terra);}
.rapp-secondary-link .wp-block-button__link {border-radius:0;border:0;border-bottom:1px solid var(--rapp-terra);padding:8px 0;color:var(--rapp-ink);background:transparent;font-size:.88rem;font-weight:600;}
.rapp-secondary-link .wp-block-button__link:hover {color:var(--rapp-terra);background:transparent;}
.rapp-light-button .wp-block-button__link {border-radius:0;background:var(--rapp-paper);color:var(--rapp-ink)!important;padding:16px 25px;font-size:.85rem;font-weight:700;}
.rapp-light-button .wp-block-button__link:hover {background:#fff;color:var(--rapp-terra)!important;}

/* Accueil. */
.rapp-hero-grid {align-items:center;gap:clamp(42px,8vw,125px)!important;}
.rapp-hero-grid > .wp-block-column:first-child {flex-basis:61%;}
.rapp-hero-grid > .wp-block-column:last-child {flex-basis:39%;}
.rapp-signature {border:1px solid #D4D7D1;background:#EBECE8;padding:38px 36px;min-height:420px;display:flex;flex-direction:column;justify-content:center;}
.rapp-big-r {font-family:Georgia,serif!important;font-size:clamp(6rem,10vw,10rem)!important;line-height:1!important;letter-spacing:-.09em;}
.rapp-big-r span, .rapp-fr span {color:var(--rapp-terra);}
.rapp-signature-title {font-size:.68rem!important;text-transform:uppercase;letter-spacing:.15em;font-weight:800;margin-top:20px!important;}
.rapp-signature .rapp-signature-row {display:flex;gap:20px;border-bottom:1px solid #d2d4ce;padding:14px 0;margin-bottom:0;font-size:.88rem;}
.rapp-signature-row strong {color:var(--rapp-terra);min-width:24px;font-size:.78rem;}
.rapp-signature .rapp-small {padding-top:24px;margin-bottom:0!important;}
.rapp-reference-strip {border-top:1px solid var(--rapp-line);border-bottom:1px solid var(--rapp-line);padding:28px max(30px,calc((100vw - var(--rapp-max))/2));}
.rapp-reference-strip .rapp-kicker {color:var(--rapp-muted);margin-bottom:18px!important;}
.rapp-reference-strip .wp-block-columns {gap:20px;align-items:center;}
.rapp-ref {font-size:1.05rem!important;font-weight:700;letter-spacing:-.025em;line-height:1.35;color:#748089;}
.rapp-ref-first {font-size:.86rem!important;color:var(--rapp-ink);}
.rapp-split {align-items:start;gap:clamp(45px,9vw,138px)!important;}
.rapp-split .rapp-section-title {margin-bottom:0;}
.rapp-dark-section .rapp-split p {font-size:1.02rem;}
.rapp-list-row {display:grid!important;grid-template-columns:50px 1fr 90px;gap:22px;align-items:center;padding:26px 0;border-top:1px solid var(--rapp-line);}
.rapp-list-row:last-of-type {border-bottom:1px solid var(--rapp-line);}
.rapp-list-row h3 {font-size:1.53rem;line-height:1.2;margin-bottom:3px;}
.rapp-list-row .rapp-small {margin-bottom:0!important;}
.rapp-list-row .rapp-more {justify-self:end;color:var(--rapp-terra);font-size:.85rem;}
.rapp-case-grid .wp-block-column {padding:40px 38px;border:1px solid var(--rapp-line);}
.rapp-case-grid .wp-block-column:first-child {background:#E9EBE7;border-color:#E9EBE7;}
.rapp-case-grid .rapp-kicker {margin-bottom:20px!important;}
.rapp-case-grid h3 {margin-bottom:20px;}
.rapp-case-grid p {font-size:.94rem;color:var(--rapp-muted);}
.rapp-case-grid p:last-child {margin-bottom:0;}

/* Présentation, méthode, grands aplats. */
.rapp-method-list {margin-top:30px;}
.rapp-method-list .rapp-method-row {border-top:1px solid var(--rapp-line);padding:25px 0;display:grid;grid-template-columns:62px 1fr;column-gap:20px;}
.rapp-method-row .rapp-index {font-family:Georgia,serif;font-size:2rem!important;line-height:1.2;}
.rapp-method-row h3 {margin-bottom:7px;}
.rapp-method-row p {margin-bottom:0!important;}
.rapp-note {margin-top:34px;border-left:2px solid var(--rapp-terra);padding:3px 0 3px 25px;color:var(--rapp-muted);font-size:.98rem;}
.rapp-quote {font-size:1.15rem!important;line-height:1.6;}
.rapp-feature-panel {background:#E9EBE7;padding:38px 34px;margin:38px 0;}
.rapp-feature-panel h3 {font-size:1.7rem;margin-bottom:15px;}
.rapp-feature-panel p {margin-bottom:0;}
.rapp-about-grid {gap:clamp(50px,7vw,110px)!important;}
.rapp-about-grid > .wp-block-column:first-child {flex-basis:37%;}
.rapp-about-grid > .wp-block-column:last-child {flex-basis:63%;}
.rapp-id-card {background:var(--rapp-ink);color:#fff;min-height:440px;padding:52px 44px;display:flex;flex-direction:column;justify-content:space-between;}
.rapp-fr {font-family:Georgia,serif!important;font-size:7.8rem!important;line-height:1;letter-spacing:-.09em;}
.rapp-id-card h3 {font-size:1.45rem;color:#fff;}
.rapp-id-card p {color:#ececec;font-size:.89rem;}
.rapp-about-bio p {margin-bottom:23px;}
.rapp-school-table {border-top:1px solid var(--rapp-line);}
.rapp-school-row {display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;border-bottom:1px solid var(--rapp-line);align-items:center;padding:26px 0;}
.rapp-school-row h3, .rapp-school-row p {margin:0;}
.rapp-school-row p {color:var(--rapp-muted);}

/* Bandeau de conclusion. */
.rapp-cta {padding-top:clamp(70px,8vw,110px);padding-bottom:clamp(70px,8vw,110px);}
.rapp-cta .wp-block-columns {align-items:center;}
.rapp-cta .wp-block-column:last-child {display:flex;justify-content:flex-end;align-items:center;}
.rapp-cta .rapp-section-title {max-width:700px;margin-bottom:22px;}
.rapp-cta .rapp-small {max-width:480px;margin-bottom:0;}

/* Contact. Envoi WordPress via admin-post.php (avec CSRF et anti-spam). */
.rapp-contact-columns {gap:clamp(48px,9vw,115px)!important;}
.rapp-contact-columns > .wp-block-column:first-child {flex-basis:38%;}
.rapp-contact-columns > .wp-block-column:last-child {flex-basis:62%;}
.rapp-contact-aside h2 {font-size:clamp(2rem,3vw,3rem);}
.rapp-contact-aside p {max-width:400px;color:var(--rapp-muted);}
.rapp-contact-form {background:#fff;border:1px solid var(--rapp-line);padding:clamp(23px,4vw,45px);}
.rapp-fields {display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;}
.rapp-form-field {display:flex;flex-direction:column;gap:8px;}
.rapp-form-field.rapp-full {grid-column:1/-1;}
.rapp-form-field label {font-weight:700;font-size:.9rem;}
.rapp-form-field input,.rapp-form-field textarea {background:#fcfcfb;border:1px solid #cbd1d0;border-radius:0;color:var(--rapp-ink);padding:13px 12px;font:inherit;min-height:49px;width:100%;}
.rapp-form-field textarea {min-height:155px;resize:vertical;}
.rapp-form-note {font-size:.84rem!important;color:var(--rapp-muted);line-height:1.6;margin:24px 0!important;}
.rapp-contact-form button {background:var(--rapp-ink);border:1px solid var(--rapp-ink);color:#fff;padding:16px 24px;font-weight:700;cursor:pointer;font:inherit;font-size:.9rem;}
.rapp-contact-form button:hover {background:var(--rapp-terra);border-color:var(--rapp-terra);}
.rapp-contact-status {font-size:.85rem;color:var(--rapp-muted);margin:10px 0 0;}

/* Pied de page éditable dans l'éditeur de site. */
.rapp-site-footer {border-top:1px solid var(--rapp-line);}
.rapp-footer-inner {max-width:var(--rapp-max);margin:0 auto;padding:75px 30px 60px;}
.rapp-footer-inner .wp-block-columns {gap:clamp(28px,6vw,95px);}
.rapp-footer-inner .rapp-logo {font-size:1.8rem!important;margin-bottom:16px;}
.rapp-footer-inner .rapp-kicker {margin-bottom:24px!important;}
.rapp-footer-inner p {font-size:.92rem;color:var(--rapp-muted);margin-bottom:7px;}
.rapp-footer-inner a {text-decoration:none;color:var(--rapp-muted);}
.rapp-footer-inner a:hover {color:var(--rapp-terra);}
.rapp-footer-bottom {border-top:1px solid var(--rapp-line);padding:22px max(30px,calc((100vw - var(--rapp-max))/2));}
.rapp-footer-bottom p {font-size:.75rem!important;color:var(--rapp-muted);margin:0!important;}

/* Gutenberg : les contenus restent faciles à travailler dans l'éditeur. */
.editor-styles-wrapper {background:var(--rapp-paper)!important;color:var(--rapp-ink);}
.editor-styles-wrapper .rapp-hero,.editor-styles-wrapper .rapp-section {padding-inline:28px;}
.editor-styles-wrapper .wp-block {max-width:none;}

@media (max-width:950px) {
 .rapp-nav-shell {padding:17px 22px;min-height:76px;}
 .rapp-site-nav .wp-block-navigation__container {gap:12px;}
 .rapp-hero-grid {gap:35px!important;}
 .rapp-hero-grid > .wp-block-column:first-child {flex-basis:58%;}
 .rapp-hero-grid > .wp-block-column:last-child {flex-basis:42%;}
 .rapp-signature {padding:30px 25px;}
 .rapp-hero,.rapp-section,.rapp-reference-strip {padding-left:35px;padding-right:35px;}
}
@media (max-width:781px) {
 .rapp-hero-grid, .rapp-split,.rapp-about-grid,.rapp-contact-columns,.rapp-cta .wp-block-columns {display:flex!important;flex-direction:column!important;}
 .rapp-hero-grid > .wp-block-column, .rapp-about-grid > .wp-block-column, .rapp-contact-columns > .wp-block-column {flex-basis:auto!important;width:100%;}
 .rapp-signature {max-width:560px;min-height:340px;}
 .rapp-hero,.rapp-section,.rapp-reference-strip {padding-left:26px;padding-right:26px;}
 .rapp-reference-strip .wp-block-columns {display:grid!important;grid-template-columns:repeat(3,1fr);gap:16px;}
 .rapp-reference-strip .wp-block-column {min-width:0;}
 .rapp-cta .wp-block-column:last-child {justify-content:flex-start;}
 .rapp-site-nav {font-size:1rem;}
 .rapp-rule-grid {gap:30px!important;}
 .rapp-single-feature > .wp-block-column {flex-basis:100%;}
}
@media (max-width:620px) {
 .rapp-hero,.rapp-section {padding-top:64px;padding-bottom:70px;}
 .rapp-hero .rapp-display {font-size:clamp(2.7rem,10.7vw,4rem);}
 .rapp-section .rapp-section-title {font-size:clamp(2rem,7.6vw,3rem);}
 .rapp-rule-grid,.rapp-case-grid {display:flex!important;flex-direction:column!important;}
 .rapp-rule-grid > .wp-block-column,.rapp-case-grid > .wp-block-column {width:100%;flex-basis:auto!important;}
 .rapp-case-grid .wp-block-column {padding:26px;}
 .rapp-reference-strip .wp-block-columns {grid-template-columns:repeat(2,1fr);}
 .rapp-list-row {grid-template-columns:32px 1fr;gap:10px;}
 .rapp-list-row .rapp-more {grid-column:2;justify-self:start;}
 .rapp-school-row {grid-template-columns:1fr;gap:5px;}
 .rapp-id-card {min-height:350px;padding:34px;}
 .rapp-fields {grid-template-columns:1fr;}
 .rapp-footer-inner {padding:55px 25px 35px;}
 .rapp-footer-inner .wp-block-columns {gap:30px;}
 .rapp-footer-bottom {padding-left:25px;padding-right:25px;}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{transition:none!important;animation:none!important;}}


/* =============================================================
   Version 1.1 — identité visuelle et interactions du menu
   L'accent coloré du logo est généré côté PHP par le filtre du
   bloc site-title. On peut toujours éditer le titre du site.
   ============================================================= */
.rapp-logo .rapp-logo-dot { color:var(--rapp-terra) !important; }
.rapp-site-header .rapp-logo a,
.rapp-site-footer .rapp-logo a { letter-spacing:-.065em !important; }

/* Hover terracotta + filet sous la navigation comme sur la maquette Work. */
.rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta) > .wp-block-navigation-item__content {
  position:relative;
  transition:color .2s ease;
}
.rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta) > .wp-block-navigation-item__content::after {
  position:absolute;
  content:"";
  height:2px;
  background:var(--rapp-terra);
  left:0;
  right:0;
  bottom:-6px;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .22s ease;
  pointer-events:none;
}
.rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta) > .wp-block-navigation-item__content:focus-visible,
.rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta).current-menu-item > .wp-block-navigation-item__content,
.rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta) > .wp-block-navigation-item__content[aria-current="page"] {
  color:var(--rapp-terra) !important;
}
.rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta).current-menu-item > .wp-block-navigation-item__content::after,
.rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta) > .wp-block-navigation-item__content:focus-visible::after {
  transform:scaleX(1);
}
@media (hover:hover) and (pointer:fine) {
  .rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta) > .wp-block-navigation-item__content:hover {
    color:var(--rapp-terra) !important;
  }
  .rapp-site-nav .wp-block-navigation-item:not(.rapp-nav-cta) > .wp-block-navigation-item__content:hover::after {
    transform:scaleX(1);
  }
  .rapp-site-nav .rapp-nav-cta > .wp-block-navigation-item__content:hover {
    border-color:var(--rapp-terra) !important;
    background:var(--rapp-terra) !important;
    color:white !important;
  }
}
/* Retour du formulaire et champ anti-robots dissimulé. */
.rapp-honeypot { position:absolute !important; left:-10000px !important; top:auto !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.rapp-contact-feedback { border-left:3px solid var(--rapp-ink); padding:15px 18px; margin:0 0 20px !important; font-size:.94rem !important; background:#EBECE8; }
.rapp-contact-error { border-left-color:var(--rapp-terra); }
.rapp-contact-feedback a {text-decoration:underline;}
.rapp-contact-form button:disabled { opacity:.7; cursor:wait; }
