:root {
  --gtp-navy:#15224A;
  --gtp-red:#D63A3A;
  --gtp-blue:#4B93D0;
  --gtp-green:#82A83E;
  --gtp-purple:#9B65C1;
  --gtp-yellow:#F2C84B;
  --gtp-cream:#FFF8EF;
  --gtp-soft:#F7F8FC;
  --gtp-shadow:0 18px 50px rgba(27,43,78,.10);
  --gtp-radius:28px;
}
html { scroll-behavior:smooth; scroll-padding-top:94px; }
body { overflow-x:hidden; }
[id] { scroll-margin-top:94px; }

/* Header */
.gtp-header {
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  box-shadow:0 7px 28px rgba(20,35,70,.07);
  position:sticky;
  top:0;
  z-index:999;
}
.gtp-header .alignwide { min-height:62px; }
.gtp-logo-link { display:flex; align-items:center; flex:0 0 auto; }
.gtp-logo-img { width:190px; max-width:24vw; height:auto; display:block; }
.gtp-header .wp-block-navigation { gap:clamp(.65rem,1.25vw,1.35rem); }
.gtp-header .wp-block-navigation-item__content { font-weight:700; font-size:.94rem; color:var(--gtp-navy); text-decoration:none; transition:color .2s ease; }
.gtp-header .wp-block-navigation-item__content:hover { color:var(--gtp-red); }
.gtp-header .wp-block-button__link { white-space:nowrap; }

/* General */
.gtp-section { padding-top:clamp(58px,6vw,88px); padding-bottom:clamp(58px,6vw,88px); }
#mission.gtp-section { padding-top:clamp(42px,4.5vw,68px); }
.gtp-card { border-radius:var(--gtp-radius); box-shadow:var(--gtp-shadow); overflow:hidden; }
.gtp-soft-card { border:1px solid rgba(21,34,74,.06); border-radius:26px; box-shadow:0 14px 38px rgba(27,43,78,.08); }
.gtp-eyebrow { font-weight:850; color:var(--gtp-red) !important; letter-spacing:.01em; font-size:1.05rem; }
.gtp-section h2 { font-size:clamp(2rem,3.2vw,3.15rem); letter-spacing:-.035em; }
.gtp-section h3 { font-size:clamp(1.2rem,1.6vw,1.55rem); }

/* Hero */
.gtp-hero { position:relative; min-height:650px; overflow:hidden; border-radius:0 0 44px 44px; }
.gtp-hero:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(255,248,239,.995) 0%, rgba(255,248,239,.96) 31%, rgba(255,248,239,.77) 48%, rgba(255,248,239,.22) 70%, rgba(255,248,239,.03) 100%);
  pointer-events:none;
}
.gtp-hero > .wp-block-cover__inner-container { position:relative; z-index:2; }
.gtp-hero h1 { color:var(--gtp-navy) !important; font-size:clamp(2.6rem,4.8vw,5rem) !important; line-height:1.03; letter-spacing:-.045em; max-width:760px; text-shadow:none; }
.gtp-hero .wp-block-column:first-child > p:not(.gtp-eyebrow) { color:#46516a !important; max-width:660px; font-size:clamp(1rem,1.25vw,1.15rem); }
.gtp-hero .wp-block-buttons { margin-top:1.75rem; gap:.85rem; }
.gtp-cta .wp-block-button__link { background:var(--gtp-red); color:white; padding:.95rem 1.35rem; box-shadow:0 8px 22px rgba(214,58,58,.18); transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
.gtp-cta .wp-block-button__link:hover { background:#bd3030; transform:translateY(-2px); box-shadow:0 12px 28px rgba(214,58,58,.24); }
.gtp-outline .wp-block-button__link { background:rgba(255,255,255,.9); color:var(--gtp-blue); border:2px solid var(--gtp-blue); padding:.82rem 1.25rem; transition:all .2s ease; }
.gtp-outline .wp-block-button__link:hover { background:var(--gtp-blue); color:white; transform:translateY(-2px); }
.gtp-factbox {
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  border:1px solid rgba(21,34,74,.06);
  border-radius:22px;
  box-shadow:0 14px 34px rgba(27,43,78,.12);
  padding:.3rem .5rem;
  margin-top:2.1rem;
  max-width:760px;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 !important;
}
.gtp-factbox p { margin:0; padding:1rem 1.15rem; color:var(--gtp-navy); text-align:center; font-size:.95rem; border-right:1px solid rgba(21,34,74,.08); }
.gtp-factbox p:last-child { border-right:0; }

/* Cards / programme */
.gtp-feature { min-height:100%; padding:38px 32px; text-align:center; border-radius:26px; transition:transform .2s ease, box-shadow .2s ease; }
.gtp-feature:hover { transform:translateY(-5px); box-shadow:0 18px 38px rgba(27,43,78,.09); }
.gtp-feature-purple { background:linear-gradient(180deg,#FBF5FF,#F3ECFA); }
.gtp-feature-green { background:linear-gradient(180deg,#FAFDF3,#F1F6E7); }
.gtp-feature-blue { background:linear-gradient(180deg,#F7FCFF,#EAF4FB); }
.gtp-icon { width:70px; height:70px; border-radius:20px; margin:0 auto 18px; display:grid; place-items:center; background:white; font-size:32px; box-shadow:0 9px 24px rgba(21,34,74,.09); }
.gtp-feature p { font-size:1rem; line-height:1.7; }

/* Gallery */
.gtp-gallery .wp-block-gallery { gap:18px !important; }
.gtp-gallery img { border-radius:22px; width:100%; height:100%; object-fit:cover; min-height:240px; transition:transform .35s ease, filter .35s ease; }
.gtp-gallery figure { overflow:hidden; border-radius:22px; }
.gtp-gallery figure:hover img { transform:scale(1.035); filter:saturate(1.04); }

/* Benefits */
.gtp-benefit { text-align:center; padding:30px 20px; }
.gtp-benefit .gtp-icon { width:68px; height:68px; font-size:30px; }
.gtp-benefit h4 { font-size:1.08rem; margin-top:.85rem; }
.gtp-benefit p { font-size:.96rem !important; line-height:1.65; color:#536079; max-width:250px; margin-left:auto; margin-right:auto; }
.gtp-pills { gap:10px !important; margin-top:1.25rem; }
.gtp-pill { border-radius:999px; padding:.55rem 1rem; border:1px solid currentColor; background:#fff; font-weight:750; box-shadow:0 4px 12px rgba(21,34,74,.035); }

/* Contact */
.gtp-contact { background:linear-gradient(135deg,#FFF7EE 0%,#FFFDFC 100%); border-radius:32px; box-shadow:var(--gtp-shadow); padding:clamp(30px,4vw,58px); }
.gtp-contact p { line-height:1.75; }
.gtp-map { min-height:390px; border-radius:26px; overflow:hidden; background:#dfe9ee; position:relative; box-shadow:inset 0 0 0 1px rgba(21,34,74,.06); }
.gtp-map iframe { width:100%; height:100%; min-height:390px; border:0; display:block; }
.gtp-map-noscript { position:absolute; inset:auto 1rem 1rem 1rem; padding:.8rem 1rem; border-radius:14px; background:rgba(255,255,255,.94); color:var(--gtp-navy); font-weight:750; text-align:center; box-shadow:0 8px 22px rgba(21,34,74,.12); }

/* Legacy text-logo fallback */
.gtp-logo-text { font-size:1.35rem; font-weight:800; letter-spacing:-.02em; }
.gtp-logo-text .r { color:var(--gtp-red); } .gtp-logo-text .b { color:var(--gtp-blue); } .gtp-logo-text .g { color:var(--gtp-green); } .gtp-logo-text .p { color:var(--gtp-purple); }

/* Footer */
.gtp-footer { border-top:1px solid rgba(21,34,74,.08); background:#fff; }
.gtp-footer .gtp-logo-img { width:170px; max-width:42vw; }
.gtp-footer a { color:var(--gtp-navy); }

@media (max-width: 1050px) {
  .gtp-logo-img { width:165px; }
  .gtp-header .wp-block-navigation-item__content { font-size:.88rem; }
  .gtp-header .wp-block-buttons.gtp-cta { display:none; }
}
@media (max-width: 781px) {
  html { scroll-padding-top:76px; }
  [id] { scroll-margin-top:76px; }
  .gtp-header .alignwide { min-height:48px; }
  .gtp-logo-img { width:150px; max-width:60vw; }
  .gtp-hero { min-height:720px; border-radius:0 0 30px 30px; }
  .gtp-hero:after { background:linear-gradient(180deg, rgba(255,248,239,.99) 0%, rgba(255,248,239,.94) 44%, rgba(255,248,239,.48) 68%, rgba(255,248,239,.10) 100%); }
  .gtp-hero h1 { font-size:clamp(2.35rem,10vw,3.65rem) !important; }
  .gtp-factbox { grid-template-columns:1fr; max-width:100%; }
  .gtp-factbox p { border-right:0; border-bottom:1px solid rgba(21,34,74,.08); padding:.8rem 1rem; }
  .gtp-factbox p:last-child { border-bottom:0; }
  .gtp-gallery img { min-height:190px; }
  .gtp-map, .gtp-map iframe { min-height:310px; }
  .gtp-feature { padding:32px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *:before, *:after { transition:none !important; animation:none !important; }
}


/* ===== v0.3 refinements ===== */
/* Slightly more generous branding in the navigation. */
.gtp-header .alignwide { min-height:72px; }
.gtp-header .gtp-logo-img { width:225px; max-width:27vw; }
.gtp-header { border-bottom:1px solid rgba(21,34,74,.045); }

/* A little more character without turning the page into a playground. */
.gtp-hero:before {
  content:"";
  position:absolute;
  z-index:2;
  left:clamp(24px,6vw,96px);
  top:clamp(74px,9vw,126px);
  width:86px;
  height:34px;
  opacity:.8;
  pointer-events:none;
  background:
    radial-gradient(circle at 8px 17px,var(--gtp-yellow) 0 4px,transparent 5px),
    radial-gradient(circle at 30px 7px,var(--gtp-red) 0 4px,transparent 5px),
    radial-gradient(circle at 53px 24px,var(--gtp-blue) 0 4px,transparent 5px),
    radial-gradient(circle at 78px 10px,var(--gtp-green) 0 4px,transparent 5px);
}
.gtp-eyebrow { display:inline-flex; align-items:center; gap:.45rem; }
.gtp-eyebrow:before { content:"●"; color:var(--gtp-red); font-size:.7em; }

/* Make the three main value cards feel less generic. */
.gtp-feature { border:1px solid rgba(21,34,74,.045); }
.gtp-feature .gtp-icon { width:78px; height:78px; font-size:36px; border-radius:24px; }
.gtp-feature h3 { margin-top:.15rem; }
.gtp-feature p { color:#495772; max-width:390px; margin-left:auto; margin-right:auto; }

/* Benefit row: larger, card-like and easier to scan on desktop. */
.gtp-benefit {
  min-height:220px;
  border-radius:24px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(21,34,74,.045);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.gtp-benefit:hover { transform:translateY(-4px); background:#fff; box-shadow:0 14px 32px rgba(27,43,78,.07); }
.gtp-benefit .gtp-icon { width:76px; height:76px; font-size:33px; }
.gtp-benefit h4 { font-size:1.12rem; line-height:1.2; }

/* Give the section headings a tiny playful underline. */
.gtp-section > h2,
.gtp-gallery > h2 { position:relative; width:max-content; max-width:100%; margin-left:auto; margin-right:auto; }
.gtp-section > h2:after,
.gtp-gallery > h2:after {
  content:"";
  display:block;
  width:54px;
  height:5px;
  border-radius:99px;
  margin:12px auto 0;
  background:linear-gradient(90deg,var(--gtp-red) 0 33%,var(--gtp-yellow) 33% 66%,var(--gtp-blue) 66%);
}

/* Contact block polish. */
.gtp-contact { border:1px solid rgba(214,58,58,.045); }
.gtp-contact h2 { margin-bottom:.25rem; }
.gtp-map { transition:transform .25s ease, box-shadow .25s ease; }
.gtp-map:hover { transform:translateY(-3px); box-shadow:0 16px 36px rgba(27,43,78,.12); }

/* Footer becomes a real closing section. */
.gtp-footer {
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#FFFDF8 0%,#FFF8EF 100%);
  border-top:1px solid rgba(21,34,74,.06);
}
.gtp-footer:before,
.gtp-footer:after {
  content:"";
  position:absolute;
  width:280px;
  height:140px;
  border-radius:50%;
  opacity:.18;
  pointer-events:none;
}
.gtp-footer:before { background:#BFE8FA; left:-80px; bottom:-90px; }
.gtp-footer:after { background:#DCECB7; right:-100px; bottom:-84px; }
.gtp-footer-grid { position:relative; z-index:1; gap:clamp(28px,5vw,72px); }
.gtp-footer .gtp-logo-img { width:205px; max-width:70vw; margin-bottom:14px; }
.gtp-footer h4 { margin-top:0; margin-bottom:.7rem; color:var(--gtp-navy); font-size:1.05rem; }
.gtp-footer p { color:#4f5b73; line-height:1.7; }
.gtp-footer a { font-weight:650; text-underline-offset:3px; }
.gtp-footer a:hover { color:var(--gtp-red); }
.gtp-footer-bottom {
  position:relative;
  z-index:1;
  margin-top:34px;
  padding-top:22px;
  border-top:1px solid rgba(21,34,74,.08);
  color:#68738a;
}
.gtp-footer-bottom p { margin:0; }

@media (max-width: 1050px) {
  .gtp-header .gtp-logo-img { width:190px; }
}
@media (max-width: 781px) {
  .gtp-header .alignwide { min-height:52px; }
  .gtp-header .gtp-logo-img { width:165px; max-width:62vw; }
  .gtp-hero:before { display:none; }
  .gtp-benefit { min-height:auto; padding:28px 18px; }
  .gtp-footer-grid { gap:18px; }
  .gtp-footer-bottom { gap:8px; }
}

/* v0.3.1 — footer simplifié */
.gtp-footer-simple .gtp-footer-main {
  gap: 32px;
}
.gtp-footer-simple .gtp-footer-brand {
  max-width: 430px;
}
.gtp-footer-simple .gtp-footer-brand p {
  margin-top: 12px;
  margin-bottom: 0;
}
.gtp-footer-simple .gtp-footer-links {
  margin: 0;
  font-weight: 650;
  text-align: right;
}
@media (max-width: 781px) {
  .gtp-footer-simple .gtp-footer-main {
    align-items: flex-start !important;
  }
  .gtp-footer-simple .gtp-footer-links {
    text-align: left;
  }
}

/* v0.3.4 — menu mobile plein écran
 * Le backdrop-filter du header crée un containing block sur Safari/iOS et peut
 * emprisonner le panneau responsive de Gutenberg dans la hauteur du header.
 * Sur mobile, on le désactive et on force le panneau de navigation à occuper
 * tout le viewport avec une liste verticale lisible.
 */
@media (max-width: 781px) {
  .gtp-header {
    overflow: visible !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .gtp-header .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    max-height: none !important;
    z-index: 100000 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: #fff !important;
    padding:
      max(22px, env(safe-area-inset-top))
      26px
      max(28px, env(safe-area-inset-bottom)) !important;
  }

  .gtp-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    padding-top: 68px !important;
  }

  .gtp-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    gap: 0 !important;
  }

  .gtp-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(21,34,74,.08);
  }

  .gtp-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 17px 4px !important;
    color: var(--gtp-navy) !important;
    font-size: 1.28rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-align: left !important;
  }

  .gtp-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content:hover,
  .gtp-header .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content:focus {
    color: var(--gtp-red) !important;
  }

  .gtp-header .wp-block-navigation__responsive-container-close {
    position: absolute !important;
    top: max(22px, env(safe-area-inset-top)) !important;
    right: 26px !important;
    z-index: 100001 !important;
  }

  .gtp-header .wp-block-navigation__responsive-container-close svg,
  .gtp-header .wp-block-navigation__responsive-container-open svg {
    width: 30px !important;
    height: 30px !important;
  }

  body.admin-bar .gtp-header .wp-block-navigation__responsive-container.is-menu-open {
    top: 46px !important;
    height: calc(100dvh - 46px) !important;
    min-height: calc(100vh - 46px) !important;
  }
}
