
:root {
  --gfa-ink: #102130;
  --gfa-ink-2: #1d3446;
  --gfa-gold: #b58b52;
  --gfa-gold-light: #d7bb8a;
  --gfa-paper: #f5f3ef;
  --gfa-white: #ffffff;
  --gfa-muted: #63717c;
  --gfa-border: rgba(16, 33, 48, .13);
  --gfa-shadow: 0 24px 60px rgba(16, 33, 48, .12);
  --gfa-radius: 22px;
  --gfa-container: 1220px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--gfa-ink);
  background: var(--gfa-white);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
button, input, textarea { font: inherit; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.gfa-container { width: min(calc(100% - 40px), var(--gfa-container)); margin-inline: auto; }
.gfa-section { padding: 104px 0; }
.gfa-section--soft { background: var(--gfa-paper); }
.gfa-kicker { margin: 0 0 14px; color: var(--gfa-gold); font-size: .78rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.gfa-title { margin: 0; max-width: 820px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.25rem, 5vw, 4.8rem); font-weight: 500; line-height: 1.05; letter-spacing: -.035em; }
.gfa-section-title { margin: 0 0 22px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 4vw, 3.45rem); font-weight: 500; line-height: 1.1; letter-spacing: -.025em; }
.gfa-lead { max-width: 780px; margin: 24px 0 0; color: #dce4e9; font-size: clamp(1.05rem, 1.7vw, 1.28rem); }
.gfa-text-large { font-size: 1.14rem; color: var(--gfa-muted); }
.gfa-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 25px; border: 1px solid transparent; border-radius: 999px; background: var(--gfa-gold); color: var(--gfa-white); font-weight: 760; text-decoration: none; transition: .22s ease; cursor: pointer; }
.gfa-button:hover, .gfa-button:focus-visible { transform: translateY(-2px); background: #9f7743; }
.gfa-button--ghost { border-color: rgba(255,255,255,.44); background: transparent; }
.gfa-button--ghost:hover { background: rgba(255,255,255,.1); }
.gfa-button--dark { background: var(--gfa-ink); }
.gfa-button--dark:hover { background: var(--gfa-ink-2); }
.gfa-button-row { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 34px; }

.site-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid rgba(255,255,255,.11); background: rgba(9,24,37,.96); backdrop-filter: blur(15px); }
.admin-bar .site-header { top: 32px; }
.header-inner { display: flex; min-height: 86px; align-items: center; justify-content: space-between; gap: 24px; }
.site-branding { display: flex; align-items: center; gap: 13px; color: var(--gfa-white); text-decoration: none; }
.site-branding img { width: 50px; height: 50px; object-fit: contain; filter: invert(1); }
.site-branding__name { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1rem; line-height: 1.05; letter-spacing: .03em; text-transform: uppercase; }
.site-branding__tag { display: block; margin-top: 5px; color: #aebbc5; font-size: .68rem; letter-spacing: .11em; text-transform: uppercase; }
.primary-nav ul { display: flex; align-items: center; gap: 25px; margin: 0; padding: 0; list-style: none; }
.primary-nav a { color: #eef2f4; font-size: .91rem; font-weight: 650; text-decoration: none; }
.primary-nav a:hover, .primary-nav .current-menu-item > a { color: var(--gfa-gold-light); }
.menu-toggle { display: none; width: 46px; height: 42px; padding: 0; border: 1px solid rgba(255,255,255,.25); border-radius: 10px; background: transparent; color: white; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { display: block; width: 20px; height: 2px; margin: 5px auto; background: currentColor; content: ""; }

.gfa-hero { position: relative; min-height: 760px; display: grid; align-items: center; overflow: hidden; color: white; background: var(--gfa-ink); }
.gfa-hero::before { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,23,35,.97) 0%, rgba(7,23,35,.88) 42%, rgba(7,23,35,.42) 72%, rgba(7,23,35,.24) 100%), url('../images/hero.webp') center/cover no-repeat; content: ""; }
.gfa-hero::after { position: absolute; right: -140px; bottom: -220px; width: 580px; height: 580px; border: 1px solid rgba(215,187,138,.28); border-radius: 50%; box-shadow: 0 0 0 70px rgba(215,187,138,.04), 0 0 0 140px rgba(215,187,138,.03); content: ""; }
.gfa-hero__content { position: relative; z-index: 2; max-width: 900px; padding: 118px 0 136px; }
.gfa-hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 25px; color: var(--gfa-gold-light); font-size: .8rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.gfa-hero__eyebrow::before { width: 42px; height: 1px; background: currentColor; content: ""; }
.gfa-hero-stats { position: relative; z-index: 3; margin-top: -77px; }
.gfa-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; border-radius: var(--gfa-radius); background: white; box-shadow: var(--gfa-shadow); }
.gfa-stat { padding: 30px 34px; border-right: 1px solid var(--gfa-border); }
.gfa-stat:last-child { border-right: 0; }
.gfa-stat strong { display: block; color: var(--gfa-gold); font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; font-weight: 500; }
.gfa-stat span { color: var(--gfa-muted); font-size: .92rem; }

.gfa-intro-grid, .gfa-feature-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 78px; align-items: center; }
.gfa-image-card { position: relative; overflow: hidden; min-height: 540px; border-radius: var(--gfa-radius); box-shadow: var(--gfa-shadow); }
.gfa-image-card img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.gfa-image-card::after { position: absolute; inset: auto 0 0; height: 45%; background: linear-gradient(transparent, rgba(10,28,40,.45)); content: ""; }
.gfa-image-note { position: absolute; z-index: 2; right: 24px; bottom: 24px; left: 24px; padding: 22px 24px; border: 1px solid rgba(255,255,255,.3); border-radius: 15px; color: white; background: rgba(13,32,46,.68); backdrop-filter: blur(10px); }
.gfa-image-note strong { display: block; font-family: Georgia, serif; font-size: 1.25rem; }

.gfa-services-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 48px; }
.gfa-services-head p { max-width: 520px; margin: 0 0 7px; color: var(--gfa-muted); }
.gfa-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.gfa-card { position: relative; min-height: 390px; overflow: hidden; border-radius: var(--gfa-radius); color: white; background: var(--gfa-ink); box-shadow: 0 18px 40px rgba(16,33,48,.10); }
.gfa-card::before { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,24,36,.97) 0%, rgba(8,24,36,.62) 62%, rgba(8,24,36,.18) 100%); content: ""; z-index: 1; }
.gfa-card img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; transition: transform .45s ease; }
.gfa-card:hover img { transform: scale(1.045); }
.gfa-card__body { position: absolute; z-index: 2; inset: auto 0 0; padding: 30px; }
.gfa-card__number { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; margin-bottom: 50px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; font-size: .78rem; }
.gfa-card h3 { margin: 0 0 10px; font-family: Georgia, serif; font-size: 1.55rem; font-weight: 500; }
.gfa-card p { margin: 0 0 17px; color: #d5dee4; font-size: .94rem; line-height: 1.55; }
.gfa-card a { color: var(--gfa-gold-light); font-size: .87rem; font-weight: 750; text-decoration: none; }

.gfa-process { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 46px; overflow: hidden; border: 1px solid var(--gfa-border); border-radius: var(--gfa-radius); background: var(--gfa-border); }
.gfa-process__item { padding: 38px; background: white; }
.gfa-process__item span { color: var(--gfa-gold); font-family: Georgia, serif; font-size: 2rem; }
.gfa-process__item h3 { margin: 15px 0 9px; font-family: Georgia, serif; font-size: 1.35rem; }
.gfa-process__item p { margin: 0; color: var(--gfa-muted); font-size: .95rem; }

.gfa-cta { position: relative; overflow: hidden; padding: 85px 0; color: white; background: var(--gfa-ink); }
.gfa-cta::before { position: absolute; inset: 0; opacity: .13; background: url('../images/contact.webp') center/cover; content: ""; }
.gfa-cta__inner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 45px; }
.gfa-cta h2 { max-width: 760px; margin: 0; font-family: Georgia, serif; font-size: clamp(2rem, 4vw, 3.3rem); font-weight: 500; line-height: 1.12; }

.page-hero { padding: 105px 0 85px; color: white; background: linear-gradient(120deg, #0b2030, #1a3a4c); }
.page-hero h1 { margin: 0; font-family: Georgia, serif; font-size: clamp(2.4rem, 5vw, 4.6rem); font-weight: 500; line-height: 1.06; }
.page-hero p { max-width: 740px; margin: 24px 0 0; color: #d6e0e6; font-size: 1.15rem; }
.entry-content { padding: 88px 0 110px; }
.entry-content > * { max-width: 850px; margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: var(--gfa-container); }
.entry-content h2 { margin-top: 2.2em; margin-bottom: .65em; font-family: Georgia, serif; font-size: 2.1rem; font-weight: 500; line-height: 1.2; }
.entry-content h3 { margin-top: 1.8em; font-family: Georgia, serif; font-size: 1.45rem; }
.entry-content p, .entry-content li { color: #40515e; }
.entry-content blockquote { padding: 25px 28px; border-left: 4px solid var(--gfa-gold); background: var(--gfa-paper); }
.gfa-service-intro { display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px; align-items: start; max-width: var(--gfa-container) !important; }
.gfa-service-intro img { width: 100%; min-height: 420px; object-fit: cover; border-radius: var(--gfa-radius); box-shadow: var(--gfa-shadow); }
.gfa-checklist { display: grid; gap: 12px; padding: 0; list-style: none; }
.gfa-checklist li { position: relative; padding-left: 30px; }
.gfa-checklist li::before { position: absolute; left: 0; top: .48em; width: 12px; height: 12px; border: 3px solid var(--gfa-gold); border-radius: 50%; content: ""; }
.gfa-notice { padding: 19px 22px; border: 1px solid #dfd3bf; border-radius: 12px; background: #fbf7f0; color: #5c5143; font-size: .91rem; }

.gfa-contact-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 55px; max-width: var(--gfa-container) !important; }
.gfa-contact-panel { padding: 36px; border-radius: var(--gfa-radius); color: white; background: var(--gfa-ink); }
.gfa-contact-panel h2 { margin-top: 0; }
.gfa-contact-panel a { color: var(--gfa-gold-light); }
.gfa-contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.gfa-field--full { grid-column: 1 / -1; }
.gfa-contact-form label { display: block; margin-bottom: 6px; font-size: .86rem; font-weight: 750; }
.gfa-contact-form input, .gfa-contact-form textarea { width: 100%; padding: 13px 15px; border: 1px solid #cbd3d8; border-radius: 10px; background: white; color: var(--gfa-ink); }
.gfa-contact-form textarea { min-height: 170px; resize: vertical; }
.gfa-contact-form input:focus, .gfa-contact-form textarea:focus { outline: 3px solid rgba(181,139,82,.22); border-color: var(--gfa-gold); }
.gfa-form-message { grid-column: 1 / -1; padding: 13px 16px; border-radius: 9px; }
.gfa-form-message--success { background: #eaf5ed; color: #265e37; }
.gfa-form-message--error { background: #faeeee; color: #822d2d; }
.gfa-honeypot { position: absolute !important; left: -10000px !important; }

.site-footer { padding: 72px 0 28px; color: #d6dee4; background: #071722; }
.footer-grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 55px; }
.footer-brand { max-width: 450px; }
.footer-brand .site-branding { margin-bottom: 20px; }
.footer-brand p { color: #aab7c0; }
.footer-title { margin: 0 0 16px; color: white; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-links { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin: 7px 0; }
.footer-links a { color: #bdc8cf; text-decoration: none; }
.footer-links a:hover { color: var(--gfa-gold-light); }
.footer-legal { margin-top: 42px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); color: #aab7c0; font-size: .86rem; line-height: 1.7; }
.footer-legal p { margin: 3px 0; }
.footer-legal a { color: var(--gfa-gold-light); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 55px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); color: #83929d; font-size: .82rem; }

@media (max-width: 1000px) {
  .menu-toggle { display: block; }
  .primary-nav { position: absolute; top: 86px; right: 20px; left: 20px; display: none; padding: 18px; border-radius: 15px; background: #0b2131; box-shadow: var(--gfa-shadow); }
  .primary-nav.is-open { display: block; }
  .primary-nav ul { display: grid; gap: 4px; }
  .primary-nav a { display: block; padding: 10px; }
  .gfa-card-grid { grid-template-columns: repeat(2, 1fr); }
  .gfa-intro-grid, .gfa-feature-grid { gap: 45px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  body { font-size: 16px; }
  .admin-bar .site-header { top: 46px; }
  .gfa-container { width: min(calc(100% - 28px), var(--gfa-container)); }
  .gfa-section { padding: 76px 0; }
  .site-branding__tag { display: none; }
  .gfa-hero { min-height: 680px; }
  .gfa-hero__content { padding: 86px 0 125px; }
  .gfa-stat-grid { grid-template-columns: 1fr; }
  .gfa-stat { border-right: 0; border-bottom: 1px solid var(--gfa-border); }
  .gfa-stat:last-child { border-bottom: 0; }
  .gfa-hero-stats { margin-top: -52px; }
  .gfa-intro-grid, .gfa-feature-grid, .gfa-service-intro, .gfa-contact-grid { grid-template-columns: 1fr; }
  .gfa-image-card { min-height: 400px; }
  .gfa-services-head { display: block; }
  .gfa-card-grid, .gfa-process { grid-template-columns: 1fr; }
  .gfa-process { gap: 1px; }
  .gfa-card { min-height: 350px; }
  .gfa-cta__inner { display: block; }
  .gfa-cta .gfa-button { margin-top: 30px; }
  .gfa-contact-form { grid-template-columns: 1fr; }
  .gfa-field--full { grid-column: auto; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { display: block; }
  .footer-bottom > * + * { margin-top: 8px; }
}

/* Sélecteur de langues — traduction automatique via Google Traduction. */
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 18px; min-width: 0; }
.gfa-language-switcher { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; padding-left: 4px; }
.gfa-language-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 30px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 7px;
  background: rgba(255,255,255,.06);
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.gfa-language-link img { width: 28px; height: 19px; object-fit: cover; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.08); }
.gfa-language-link:hover,
.gfa-language-link:focus-visible { transform: translateY(-1px); border-color: var(--gfa-gold-light); background: rgba(255,255,255,.12); outline: none; }

@media (max-width: 1000px) {
  .header-actions { gap: 10px; }
  .primary-nav { order: 3; }
  .gfa-language-switcher { order: 1; margin-left: auto; }
  .menu-toggle { order: 2; }
}

@media (max-width: 520px) {
  .header-inner { gap: 10px; }
  .site-branding__name { font-size: .82rem; }
  .gfa-language-switcher { gap: 5px; }
  .gfa-language-link { width: 34px; height: 28px; }
  .gfa-language-link img { width: 25px; height: 17px; }
}
