:root{
  --g-bordeaux: #780000;
  --g-bordeaux-deep: color-mix(in srgb, var(--g-bordeaux) 80%, black);
  --g-cream: #FAF3EC;
  --g-cream-deep: color-mix(in srgb, var(--g-cream) 92%, var(--g-bordeaux));
  --g-ink: color-mix(in srgb, var(--g-bordeaux) 88%, black);
  --g-rose: #DB8181;
  --g-rose-deep: color-mix(in srgb, var(--g-rose) 65%, black);
  --g-line-dark: rgba(255,255,255,0.16);
  --g-line-light: color-mix(in srgb, var(--g-bordeaux) 14%, var(--g-cream));
  --g-white: #ffffff;

  /* legacy aliases (kept so any old reference still resolves) */
  --g-green: var(--g-bordeaux);
  --g-green-deep: var(--g-bordeaux-deep);

  --g-font-script: 'Playfair Display', serif;
  --g-font-sub: 'Libre Baskerville', serif;
  --g-font-body: 'DM Sans', sans-serif;

  --g-container: 1160px;
  --g-radius: 22px;
}

html{ margin: 0 !important; }

.golf-theme{
  font-family: var(--g-font-body);
  background: var(--g-cream);
  color: var(--g-ink);
  line-height: 1.6;
  overflow-x: hidden;
  margin: 0 !important;
}
.golf-theme *{ box-sizing: border-box; }
.golf-theme img{ max-width:100%; display:block; }
.golf-theme a{ color: inherit; text-decoration:none; }
.golf-theme ul{ list-style:none; margin:0; padding:0; }
.golf-theme section{ position:relative; }
.golf-theme *[id]{ scroll-margin-top: 110px; }

.g-wrap{
  max-width: var(--g-container);
  margin: 0 auto;
  padding: 0 24px;
}

.golf-theme h1, .golf-theme h2, .golf-theme h3{
  font-family: var(--g-font-script);
  font-weight: 700;
  line-height: 1.1;
  color: var(--g-ink);
}

/* ---------- Header / pill nav over hero ---------- */
.g-header{
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 50;
  padding: 26px 0;
}
.g-nav-wrap{ display:flex; justify-content:center; }
.g-pill-nav{
  display:flex; align-items:center; gap: 4px;
  background: rgba(250,243,236,0.94);
  border-radius: 999px;
  padding: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
}
.g-pill-nav a{
  padding: 10px 20px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.86rem;
  color: var(--g-ink);
  white-space: nowrap;
  transition: background .2s ease, color .2s ease;
}
.g-pill-nav a:hover{ background: var(--g-bordeaux); color: var(--g-cream); }
.g-pill-nav a.g-cta{ background: var(--g-bordeaux); color: var(--g-cream); }
.g-pill-nav a.g-cta:hover{ background: var(--g-bordeaux-deep); }
.g-pill-nav a[aria-current="page"]{ border: 2px solid var(--g-bordeaux); }
.g-pill-nav a[aria-current="page"].g-cta{ border-color: var(--g-cream); }

.g-burger{
  display:none;
  position: fixed; top: 26px; right: 24px; z-index: 1100;
  flex-direction:column; gap:5px;
  background: rgba(250,243,236,0.94); border:none; cursor:pointer;
  padding: 12px; border-radius: 999px;
}
.g-burger span{ width:22px; height:2px; background: var(--g-ink); display:block; transition: all .25s ease; }
.g-burger.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.g-burger.open span:nth-child(2){ opacity:0; }
.g-burger.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

.g-mobile-menu{
  position: fixed; inset:0; background: var(--g-bordeaux-deep);
  z-index: 1050;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap: 26px;
  transform: translateX(100%);
  transition: transform .3s ease;
}
.g-mobile-menu.open{ transform: translateX(0); }
.g-mobile-menu a{ color: var(--g-cream); font-family: var(--g-font-script); font-size: 1.4rem; font-weight:700; }
.g-mobile-menu a[aria-current="page"]{ border: 2px solid var(--g-rose); border-radius: 999px; padding: 4px 18px; }

/* ---------- Hero ---------- */
.g-hero{
  position: relative;
  min-height: 92vh;
  display:flex;
  flex-direction: column;
  align-items:center;
  justify-content:center;
  padding: 120px 0 40px;
  background-size: cover;
  background-position: center 30%;
  overflow: hidden;
}
.g-hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(35,8,8,0.55) 0%, rgba(35,8,8,0.35) 35%, rgba(35,8,8,0.55) 75%, rgba(35,8,8,0.82) 100%);
}
.g-hero-content{
  position:relative; z-index:2;
  text-align:center;
  padding: 0 24px;
  max-width: 760px;
}
.g-hero-flank{
  display:flex; align-items:center; justify-content:center; gap: 22px;
  margin-bottom: 14px;
  font-family: var(--g-font-sub);
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  color: rgba(250,243,236,0.75);
}
.g-hero-flank::before, .g-hero-flank::after{
  content:''; width: 46px; height:1px; background: rgba(250,243,236,0.45);
}
.g-hero h1{
  font-style: italic;
  font-size: clamp(2.6rem, 6.4vw, 4.6rem);
  color: var(--g-cream);
  margin-bottom: 10px;
  text-shadow: 0 2px 30px rgba(0,0,0,0.3);
}
.g-hero .g-sub{
  font-family: var(--g-font-sub);
  font-style: italic;
  font-size: 1.05rem;
  color: rgba(250,243,236,0.88);
  margin-bottom: 34px;
  letter-spacing: 0.02em;
}
.g-btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--g-font-body);
  font-weight:700; font-size:0.92rem;
  padding: 15px 32px;
  border-radius: 999px;
  background: var(--g-cream);
  color: var(--g-ink);
  border: 2px solid transparent;
  cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.g-btn:hover{ transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,0.28); }
.g-btn-outline{
  background: transparent; border-color: rgba(250,243,236,0.7);
  color: var(--g-cream) !important;
}
.g-btn-outline:hover{ background: rgba(250,243,236,0.12); }
.g-btn-solid-green{ background: var(--g-bordeaux); color: var(--g-cream) !important; }
.g-btn-solid-green:hover{ background: var(--g-bordeaux-deep); }

.g-hero-tagline{
  position:relative; z-index:2;
  margin-top: 56px;
  text-align:center;
  font-family: var(--g-font-sub);
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(250,243,236,0.6);
}

/* ---------- Sections communes ---------- */
.g-section{ padding: 108px 0; }
.g-section-head{ max-width: 620px; margin: -30px auto 50px; text-align:center; }
.g-eyebrow{
  font-family: var(--g-font-sub);
  font-style: italic;
  font-size: 0.92rem;
  color: var(--g-rose-deep);
  display:block;
  margin-bottom: 14px;
}
.g-eyebrow-lg{ font-size: 1.4rem; }
.g-section-head h2{
  font-size: clamp(2rem, 4vw, 2.9rem);
  letter-spacing: 0.01em;
}
.g-section-head p{
  margin-top: 18px;
  font-size: 1.02rem;
  color: color-mix(in srgb, var(--g-ink) 68%, transparent);
}

/* ---------- Arrow cards (À propos) ---------- */
.g-arrow-cards{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.g-arrow-card{
  position: relative;
  border-radius: var(--g-radius);
  overflow:hidden;
  aspect-ratio: 3/4;
  background: var(--g-bordeaux);
}
.g-arrow-card img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition: transform .5s ease;
}
.g-arrow-card:hover img{ transform: scale(1.06); }
.g-arrow-card::after{
  content:'';
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(35,8,8,0) 45%, rgba(35,8,8,0.75) 100%);
}
.g-arrow-card .g-card-label{
  position:absolute; left:20px; right: 70px; bottom: 22px; z-index:2;
  color: var(--g-cream);
  font-weight:600; font-size: 0.98rem;
  line-height: 1.3;
}
.g-arrow-btn{
  position:absolute; right:16px; bottom:16px; z-index:2;
  width:42px; height:42px; border-radius:50%;
  background: var(--g-cream); color: var(--g-ink);
  display:flex; align-items:center; justify-content:center;
  transition: background .2s ease, transform .2s ease;
}
.g-arrow-btn svg{ width:18px; height:18px; }
.g-arrow-card:hover .g-arrow-btn{ background: var(--g-bordeaux); color: var(--g-cream); transform: scale(1.08); }
.g-arrow-card.g-static{ cursor: default; }

/* ---------- Bloc bordeaux plein (feature / contact) ---------- */
.g-feature-block{
  background: var(--g-bordeaux);
  border-radius: 40px;
  padding: 72px 44px;
  margin: 0 24px;
  max-width: calc(var(--g-container) + 48px);
  margin-left:auto; margin-right:auto;
}
.g-feature-block .g-section-head h2, .g-feature-block .g-eyebrow{ color: var(--g-cream); }
.g-feature-block .g-section-head{ text-align:left; margin-bottom: 56px; max-width: 560px; }
.g-icon-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px 24px;
}
.g-icon-item{ text-align:center; color: var(--g-cream); }
.g-icon-item .g-icon{
  width: 56px; height:56px; margin: 0 auto 16px;
  border: 1.5px solid rgba(250,243,236,0.5);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.g-icon-item .g-icon svg{ width:24px; height:24px; }
.g-icon-item span{ font-size: 0.85rem; font-weight:500; color: rgba(250,243,236,0.9); }

/* ---------- Photo + texte teaser (evenements) ---------- */
.g-teaser{
  display:grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items:center;
}
.g-teaser .g-visual{ border-radius: var(--g-radius); overflow:hidden; aspect-ratio: 4/3; }
.g-teaser .g-visual img{ width:100%; height:100%; object-fit:cover; }
.g-teaser .g-copy h2{ font-size: clamp(2.1rem, 4vw, 3rem); font-style: italic; margin-bottom: 18px; }
.g-teaser .g-copy p{ color: color-mix(in srgb, var(--g-ink) 70%, transparent); margin-bottom: 30px; max-width: 460px; }

/* ---------- Calendrier Luma ---------- */
.g-luma-wrap{
  max-width: 640px;
  margin: 0 auto;
  background: var(--g-white);
  border: 1px solid var(--g-line-light);
  border-radius: var(--g-radius);
  padding: 10px;
}
.g-luma-wrap iframe{ width: 100%; height: 450px; border-radius: 12px; display:block; }
@media (max-width: 640px){ .g-luma-wrap iframe{ height: 380px; } }

/* ---------- Info cards (visual + texte sous l'image) ---------- */
.g-info-cards{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.g-info-card{
  background: var(--g-white);
  border: 1px solid var(--g-line-light);
  border-radius: var(--g-radius);
  overflow:hidden;
  transition: border-color .2s ease, transform .2s ease;
}
.g-info-card:hover{ border-color: var(--g-rose); transform: translateY(-3px); }
.g-info-card .g-visual{ position:relative; aspect-ratio: 4/3; overflow:hidden; }
.g-info-card .g-visual img{ width:100%; height:100%; object-fit:cover; }
.g-info-card .g-body{ padding: 28px 26px; }
.g-info-card .g-body h3{ font-size: 1.3rem; margin-bottom: 12px; font-style: italic; }
.g-info-card .g-body p{ font-size: 0.92rem; color: color-mix(in srgb, var(--g-ink) 72%, transparent); }

/* ---------- Bloc contact (bordeaux plein) ---------- */
.g-contact-block{
  background: var(--g-bordeaux);
  border-radius: var(--g-radius);
  padding: 64px 56px;
  max-width: 640px; margin: 0 auto; text-align:center;
}
.g-contact-block .g-eyebrow{ color: rgba(250,243,236,0.75); }
.g-contact-block h2{ color: var(--g-cream); font-style: italic; }
.g-contact-block p{ color: rgba(250,243,236,0.8); margin: 18px 0 30px; }

.g-mail-pill{
  display:inline-flex; align-items:center; gap:10px;
  background: var(--g-cream);
  border-radius: 999px;
  padding: 14px 26px;
  font-weight:700; font-size: 0.92rem;
  color: var(--g-ink);
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.g-mail-pill svg{ width:19px; height:19px; color: var(--g-rose-deep); transition: color .2s ease; }
.g-mail-pill:hover{ background: var(--g-bordeaux-deep); color: var(--g-cream); transform: translateY(-2px); }
.g-mail-pill:hover svg{ color: var(--g-cream); }

/* ---------- Bloc de contact multi-canal (page "Nous contacter") ---------- */
.g-contact-methods{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
  max-width: 1100px; margin: 0 auto;
}
.g-contact-method{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  background: var(--g-white);
  border: 1px solid var(--g-line-light);
  border-radius: var(--g-radius);
  padding: 30px 20px;
  text-align:center;
  transition: border-color .2s ease, transform .2s ease;
}
.g-contact-method:hover{ border-color: var(--g-rose); transform: translateY(-3px); }
.g-contact-method .g-icon{
  width: 48px; height:48px; border-radius:50%;
  background: var(--g-cream-deep);
  color: var(--g-bordeaux);
  display:flex; align-items:center; justify-content:center;
}
.g-contact-method .g-icon svg{ width:22px; height:22px; }
.g-contact-method span{ font-weight:600; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.04em; color: color-mix(in srgb, var(--g-ink) 60%, transparent); }
.g-contact-method strong{ font-size:0.94rem; word-break: break-word; }

/* ---------- Join cards (rejoindre) ---------- */
.g-join-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.g-join-card{
  background: var(--g-white);
  border: 1px solid var(--g-line-light);
  border-radius: var(--g-radius);
  overflow:hidden;
  padding-bottom: 34px;
  display:flex;
  flex-direction:column;
}
.g-join-card .g-mail-pill{ margin-top:auto; align-self:flex-start; }
.g-join-card .g-visual{ aspect-ratio: 4/3; overflow:hidden; margin-bottom: 26px; }
.g-join-card .g-visual img{ width:100%; height:100%; object-fit:cover; }
.g-join-card .g-tag-num,
.g-join-card h3,
.g-join-card p,
.g-join-card .g-round-list,
.g-join-card .g-mail-pill{ margin-left: 32px; margin-right: 32px; }
.g-join-card .g-tag-num{
  display:block;
  font-family: var(--g-font-sub); font-style: italic; font-size: 0.8rem;
  color: var(--g-rose-deep); margin-bottom: 10px;
}
.g-join-card h3{ font-size: 1.4rem; margin-bottom: 12px; font-style: italic; }
.g-join-card p{ color: color-mix(in srgb, var(--g-ink) 75%, transparent); margin-bottom: 20px; }
.g-round-list{ margin-bottom: 26px; }
.g-round-list li{
  position:relative; padding-left: 22px; margin-bottom: 10px;
  font-size: 0.9rem; color: color-mix(in srgb, var(--g-ink) 80%, transparent);
}
.g-round-list li::before{
  content:''; position:absolute; left:0; top:8px; width:8px; height:8px;
  background: var(--g-rose); border-radius:50%;
}

/* ---------- Page "Le projet" ---------- */
.g-quote-block{
  max-width: 720px; margin: 0 auto; text-align:center;
}
.g-quote-block blockquote{
  font-family: var(--g-font-sub);
  font-style: italic;
  font-size: clamp(1.2rem, 2.4vw, 1.5rem);
  color: var(--g-ink);
  line-height: 1.55;
  margin: 0 0 22px;
}
.g-quote-block cite{
  display:block; font-style: normal; font-weight:700; font-size: 0.9rem;
  color: var(--g-rose-deep);
}
.g-project-body{ max-width: 720px; margin: 0 auto; }
.g-project-body h3{
  font-size: 1.3rem; font-style: italic;
  margin: 46px 0 14px;
}
.g-project-body h3:first-child{ margin-top: 0; }
.g-project-body p{
  color: color-mix(in srgb, var(--g-ink) 78%, transparent);
  margin-bottom: 14px;
}

/* ---------- Mentions légales ---------- */
.g-legal{ max-width: 760px; margin: 0 auto; }
.g-legal h3{ font-size: 1.2rem; font-style: italic; margin: 40px 0 12px; }
.g-legal h3:first-child{ margin-top: 0; }
.g-legal p{ color: color-mix(in srgb, var(--g-ink) 80%, transparent); margin-bottom: 12px; font-size: 0.95rem; }
.g-legal a{ color: var(--g-rose-deep); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Footer ---------- */
.g-footer{ background: var(--g-bordeaux-deep); padding: 56px 0 28px; }
.g-footer .g-wrap{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap: 30px; }
.g-foot-brand{
  font-family: var(--g-font-script); font-style: italic; color: var(--g-cream); font-size: 1.3rem; max-width: 280px;
}
.g-foot-brand p{ font-family: var(--g-font-body); font-style: normal; font-size: 0.82rem; color: rgba(250,243,236,0.55); margin-top: 12px; }
.g-foot-nav{ display:flex; flex-wrap:wrap; gap: 22px; }
.g-foot-nav a{ font-size: 0.88rem; color: rgba(250,243,236,0.85); font-weight:500; }
.g-foot-nav a:hover{ color: var(--g-cream); text-decoration: underline; }
.g-foot-social{ display:flex; gap: 14px; }
.g-foot-social a{
  width: 38px; height: 38px; border-radius:50%;
  border: 1px solid rgba(250,243,236,0.3);
  display:flex; align-items:center; justify-content:center;
  color: var(--g-cream);
  transition: background .2s ease, border-color .2s ease;
}
.g-foot-social a:hover{ background: var(--g-cream); color: var(--g-bordeaux-deep); }
.g-foot-social svg{ width:16px; height:16px; }
.g-foot-bottom{
  margin-top: 44px; padding-top: 22px;
  border-top: 1px solid rgba(250,243,236,0.14);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size: 0.76rem; color: rgba(250,243,236,0.5);
}
.g-foot-bottom a{ color: rgba(250,243,236,0.65); }
.g-foot-bottom a:hover{ color: var(--g-cream); }

/* ---------- Reveal ---------- */
.g-reveal{ opacity:0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.g-reveal.g-in{ opacity:1; transform: translateY(0); }

.competence-title{
  margin: 0px 60px 70px;
}

/* ---------- Responsive ---------- */

/* Tablette : les grilles à 3 colonnes passent à 2 avant le point de rupture de la nav */
@media (max-width: 980px){
  .g-arrow-cards{ grid-template-columns: repeat(2, 1fr); }
  .g-info-cards{ grid-template-columns: repeat(2, 1fr); }
  .g-info-cards .g-info-card:last-child{ grid-column: 1 / -1; }
  .g-info-cards .g-info-card:last-child .g-visual{ aspect-ratio: 16/7; }
}

@media (max-width: 900px){
  .g-pill-nav{ display:none; }
  .g-burger{ display:flex; }
  .g-icon-grid{ grid-template-columns: repeat(2, 1fr); }
  .g-feature-block{ padding: 52px 26px; margin: 0 14px; border-radius: 28px; }
  .g-feature-block .g-section-head{ text-align:center; margin-left:auto; margin-right:auto; }
  .g-teaser{ grid-template-columns: 1fr; }
  .g-teaser .g-copy{ text-align:center; }
  .g-teaser .g-copy p{ margin-left:auto; margin-right:auto; }
  .g-join-grid{ grid-template-columns: 1fr; }
  .g-contact-block{ padding: 40px 28px; }
  .competence-title{ margin: 0 0 50px; }
}

/* Écran étroit ou bas (menu mobile qui doit tenir en hauteur) */
@media (max-width: 480px){
  .g-hero-flank::before, .g-hero-flank::after{ display:none; }
  .g-hero-flank{ gap: 0; }
  .g-mobile-menu{ gap: 20px; }
  .g-mobile-menu a{ font-size: 1.2rem; text-align:center; }
}
@media (max-height: 560px){
  .g-mobile-menu{ gap: 14px; overflow-y:auto; padding: 20px 0; }
  .g-mobile-menu a{ font-size: 1.1rem; }
}

@media (max-width: 640px){
  .g-arrow-cards{ grid-template-columns: 1fr; }
  .g-info-cards{ grid-template-columns: 1fr; }
  .g-info-cards .g-info-card:last-child .g-visual{ aspect-ratio: 4/3; }
  .g-contact-methods{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px){
  .g-section{ padding: 76px 0; }
  .g-icon-grid{ grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }
  .g-footer .g-wrap{ flex-direction:column; }
  .g-hero{ min-height: 100vh; }
  .g-quote-block blockquote{ text-align:left; }
  .g-contact-method{ padding: 24px 16px; }
  .g-contact-methods{ grid-template-columns: 1fr; }
}
