/*
Theme Name: Golf Marrakech
Theme URI: https://golf-marrakech.fr
Author: Golf Marrakech
Description: Thème premium pour Golf Marrakech — parcours, séjours golf et cours d'initiation à Marrakech.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: golf-marrakech
Tags: golf, marrakech, travel, sports, custom-menu, featured-images
*/

/* ============================================================ RESET */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
    --ink: #0e1009; --paper: #f7f5ef; --white: #ffffff;
    --green-deep: #1a2e16; --green: #2a4a22; --green-mid: #3a6430;
    --green-light: #4e8040; --green-pale: #edf2ea;
    --gold: #b8943a; --gold-light: #d4af62; --gold-pale: #f5edda;
    --gray: #888078; --gray-light: #d8d4ca;
    --font-serif: 'Playfair Display', Georgia, serif;
    --font-sans: 'DM Sans', system-ui, sans-serif;
    --font-mono: 'DM Mono', monospace;
    --pad: clamp(20px,5vw,64px); --max: 1320px;
}
html { scroll-behavior: smooth; }
body { font-family: var(--font-sans); background: var(--paper); color: var(--ink); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
a { text-decoration: none; color: inherit; }
img { display: block; max-width: 100%; height: auto; }
ul, ol { list-style: none; }

/* ============================================================ TYPOGRAPHY */
.t-hero { font-family: var(--font-serif); font-size: clamp(54px,8.5vw,128px); font-weight: 400; line-height: .92; letter-spacing: -.02em; }
.t-section { font-family: var(--font-serif); font-size: clamp(32px,4.5vw,62px); font-weight: 400; line-height: 1.05; letter-spacing: -.01em; }
.t-label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .13em; text-transform: uppercase; color: var(--gold); }
.t-body { font-size: clamp(15px,1.5vw,17px); font-weight: 300; line-height: 1.8; color: var(--gray); }
.rule { display: block; width: 32px; height: 1px; background: var(--gold); margin: 16px 0; }
.rule.c { margin: 16px auto; }

/* ============================================================ LAYOUT */
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--pad); }
.section { padding: clamp(60px,8vw,110px) 0; }

/* ============================================================ BUTTONS */
.btn { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; padding: 13px 26px; border: 1px solid currentColor; cursor: pointer; background: transparent; transition: all .26s ease; }
.btn svg { width: 13px; height: 13px; transition: transform .26s; }
.btn:hover svg { transform: translateX(3px); }
.btn-gold { color: var(--gold); } .btn-gold:hover { background: var(--gold); color: var(--ink); }
.btn-white { color: var(--white); } .btn-white:hover { background: var(--white); color: var(--ink); }
.btn-fill { background: var(--green); color: var(--white); border-color: var(--green); } .btn-fill:hover { background: var(--green-mid); }
.btn-gold-fill { background: var(--gold); color: var(--ink); border-color: var(--gold); } .btn-gold-fill:hover { background: var(--gold-light); }

/* ============================================================ NAV */
#gm-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 300; height: 64px; display: flex; align-items: center; padding: 0 var(--pad); justify-content: space-between; transition: background .4s, box-shadow .4s; }
#gm-nav.solid { background: rgba(10,16,8,.97); backdrop-filter: blur(16px); box-shadow: 0 1px 0 rgba(184,148,58,.12); }
.nav-logo { font-family: var(--font-serif); font-size: 20px; color: var(--white); letter-spacing: .02em; flex-shrink: 0; }
.nav-logo em { color: var(--gold); font-style: italic; }
.nav-logo:hover { opacity: .85; }
.nav-menu { display: flex; gap: 4px; align-items: center; }
.nav-item { position: relative; }
.nav-link { display: flex; align-items: center; gap: 5px; font-family: var(--font-mono); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: rgba(255,255,255,.6); padding: 10px 12px; transition: color .2s; cursor: pointer; white-space: nowrap; background: none; border: none; }
.nav-link:hover, .nav-item:hover > .nav-link { color: var(--gold); }
.nav-link svg { width: 8px; height: 8px; transition: transform .2s; opacity: .5; }
.nav-item:hover > .nav-link svg { transform: rotate(180deg); opacity: 1; }
.nav-drop { position: absolute; top: calc(100% + 8px); left: 50%; transform: translateX(-50%) translateY(-6px); background: rgba(10,16,8,.97); backdrop-filter: blur(20px); border: 1px solid rgba(184,148,58,.15); padding: 8px 0; min-width: 220px; opacity: 0; pointer-events: none; transition: opacity .22s, transform .22s; z-index: 400; }
.nav-item:hover .nav-drop { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.nav-drop-wide { min-width: 540px; display: grid; grid-template-columns: 1fr 1fr; padding: 16px; left: 0; transform: translateY(-6px); }
.nav-item:hover .nav-drop-wide { transform: translateY(0); }
.nav-drop-col-title { font-family: var(--font-mono); font-size: 8px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); padding: 6px 12px 10px; grid-column: 1/-1; }
.nav-drop a { display: block; font-family: var(--font-sans); font-size: 13px; font-weight: 300; color: rgba(255,255,255,.55); padding: 7px 14px; transition: all .18s; white-space: nowrap; }
.nav-drop a:hover { color: var(--white); background: rgba(184,148,58,.08); padding-left: 20px; }
.nav-drop hr { border: none; border-top: 1px solid rgba(255,255,255,.06); margin: 6px 12px; }
.nav-right { display: flex; align-items: center; gap: 10px; }
.nav-book { font-family: var(--font-mono); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: var(--gold); border: 1px solid rgba(184,148,58,.35); padding: 9px 18px; transition: all .25s; white-space: nowrap; }
.nav-book:hover { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.gm-hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; background: none; border: none; }
.gm-hamburger span { display: block; width: 22px; height: 1.5px; background: rgba(255,255,255,.7); transition: all .3s; }
.gm-hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px,4px); }
.gm-hamburger.active span:nth-child(2) { opacity: 0; }
.gm-hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-4px); }
.mobile-menu { display: none; position: fixed; top: 64px; left: 0; right: 0; background: rgba(10,16,8,.98); backdrop-filter: blur(16px); border-top: 1px solid rgba(184,148,58,.1); padding: 20px var(--pad); z-index: 299; flex-direction: column; gap: 4px; max-height: calc(100vh - 64px); overflow-y: auto; }
.mobile-menu.open { display: flex; }
.mobile-menu a { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.6); padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.05); transition: color .2s; }
.mobile-menu a:hover { color: var(--gold); }
.mobile-menu-section { font-family: var(--font-mono); font-size: 8px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); padding: 16px 0 8px; opacity: .7; }
@media (max-width: 960px) { .nav-menu { display: none; } .gm-hamburger { display: flex; } }

/* ============================================================ HERO */
#gm-hero { min-height: 100vh; background: var(--green-deep); display: flex; flex-direction: column; justify-content: flex-end; position: relative; overflow: hidden; padding-bottom: clamp(48px,6vw,80px); }
.hero-texture { position: absolute; inset: 0; background: repeating-linear-gradient(0deg,transparent,transparent 79px,rgba(255,255,255,.02) 80px), repeating-linear-gradient(90deg,transparent,transparent 79px,rgba(255,255,255,.02) 80px); }
.hero-glow { position: absolute; top: -20%; right: -10%; width: 70%; aspect-ratio: 1; background: radial-gradient(ellipse,rgba(42,74,34,.55) 0%,transparent 70%); pointer-events: none; }
.hero-atlas { position: absolute; bottom: 0; left: 0; right: 0; height: 38%; opacity: .09; }
.hero-body { position: relative; z-index: 2; }
.hero-flag { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 26px; color: var(--gold); }
.hero-flag::before { content: ''; width: 24px; height: 1px; background: var(--gold); }
.hero-flag span { font-family: var(--font-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; }
.hero-h1 { color: var(--white); margin-bottom: 4px; }
.hero-h1 em { color: var(--gold-light); font-style: italic; display: block; }
.hero-sub { max-width: 450px; margin: 22px 0 34px; font-size: clamp(14px,1.5vw,17px); font-weight: 300; color: rgba(255,255,255,.48); line-height: 1.85; }
.hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-bar { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.06); margin-top: clamp(36px,5vw,60px); }
.hstat { background: rgba(255,255,255,.02); padding: 20px 18px; transition: background .2s; }
.hstat:hover { background: rgba(255,255,255,.05); }
.hstat-n { font-family: var(--font-serif); font-size: clamp(20px,2.5vw,30px); color: var(--gold-light); line-height: 1; margin-bottom: 4px; }
.hstat-l { font-family: var(--font-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.28); }
@media (max-width: 580px) { .hero-bar { grid-template-columns: repeat(2,1fr); } }

/* ============================================================ FEATURED */
#gm-featured { background: var(--green-deep); padding-bottom: clamp(40px,6vw,72px); }
.feat-label { display: flex; align-items: center; gap: 12px; padding-top: clamp(36px,5vw,60px); margin-bottom: 18px; }
.feat-label span { font-family: var(--font-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.feat-label::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,.08); }
.feat-dot-pulse { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); flex-shrink: 0; animation: blink 2s ease-in-out infinite; }
@keyframes blink { 0%,100%{opacity:1}50%{opacity:.35} }
.feat-card { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid rgba(255,255,255,.07); min-height: 360px; }
@media (max-width: 760px) { .feat-card { grid-template-columns: 1fr; } }
.feat-visual { background: var(--green); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; min-height: 280px; }
.feat-visual-art { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.feat-visual-art svg { width: 70%; opacity: .07; }
.feat-badge { position: absolute; top: 22px; left: 22px; background: var(--gold); color: var(--ink); font-family: var(--font-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; padding: 6px 13px; max-width: calc(100% - 44px); }
.feat-info { padding: clamp(28px,3.5vw,48px); display: flex; flex-direction: column; justify-content: center; }
.feat-specs { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; }
.fspec { font-family: var(--font-mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); display: flex; align-items: center; gap: 5px; }
.fspec::before { content: ''; width: 2px; height: 2px; background: var(--gold); border-radius: 50%; }
.feat-name { font-family: var(--font-serif); font-size: clamp(26px,3.2vw,42px); font-weight: 400; color: var(--white); line-height: 1.1; margin-bottom: 14px; }
.feat-desc { font-size: 13px; font-weight: 300; color: rgba(255,255,255,.45); line-height: 1.85; margin-bottom: 24px; }
.feat-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.feat-nav-row { display: flex; align-items: center; gap: 8px; margin-top: 20px; }
.fnav { width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.14); background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.45); transition: all .2s; font-size: 13px; }
.fnav:hover { border-color: var(--gold); color: var(--gold); }
.fdots { display: flex; gap: 5px; align-items: center; margin-left: 10px; }
.fdot { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,.18); cursor: pointer; transition: all .2s; border: none; padding: 0; }
.fdot.on { background: var(--gold); width: 16px; border-radius: 3px; }

/* ============================================================ GOLFS GRID */
#gm-golfs { background: var(--paper); }
.golfs-hdr { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: clamp(36px,5vw,60px); }
@media (max-width: 700px) { .golfs-hdr { grid-template-columns: 1fr; gap: 18px; } }
.golfs-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--gray-light); border: 1px solid var(--gray-light); }
@media (max-width: 1060px) { .golfs-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .golfs-grid { grid-template-columns: 1fr; } }
.gcard { background: var(--white); padding: 30px 26px; position: relative; overflow: hidden; transition: background .25s; }
.gcard:hover { background: var(--green-pale); }
.gcard::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .32s; }
.gcard:hover::after { transform: scaleX(1); }
.gcard.span2 { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .gcard.span2 { grid-column: span 1; display: block; } }
.gcard.span2 .gcard-visual { background: var(--green); display: flex; align-items: center; justify-content: center; min-height: 100%; position: relative; overflow: hidden; }
.gcard.span2 .gcard-visual svg { width: 60%; opacity: .07; }
.gcard.span2 .gcard-body { padding: 30px 26px; }
.gcard-num { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; color: var(--gray-light); margin-bottom: 9px; }
.gcard-tag { font-family: var(--font-mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.gcard-name { font-family: var(--font-serif); font-size: clamp(16px,1.7vw,21px); font-weight: 400; line-height: 1.2; margin-bottom: 10px; }
.gcard-specs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.gspec { font-family: var(--font-mono); font-size: 8px; letter-spacing: .07em; text-transform: uppercase; color: var(--green); background: var(--green-pale); padding: 3px 8px; }
.gcard-desc { font-size: 13px; font-weight: 300; color: var(--gray); line-height: 1.72; margin-bottom: 16px; }
.gcard-cta { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); border: 1px solid rgba(184,148,58,.35); padding: 9px 16px; transition: all .22s; cursor: pointer; background: transparent; }
.gcard-cta:hover { background: var(--gold); color: var(--ink); }
.gcard-cta svg { width: 10px; height: 10px; transition: transform .22s; }
.gcard-cta:hover svg { transform: translateX(3px); }
.gcard-ghost { position: absolute; bottom: -10px; right: 8px; font-family: var(--font-serif); font-size: 74px; font-weight: 400; color: rgba(0,0,0,.03); line-height: 1; pointer-events: none; transition: color .25s; }
.gcard:hover .gcard-ghost { color: rgba(42,74,34,.07); }

/* ============================================================ MODAL */
#gm-modal-overlay { position: fixed; inset: 0; z-index: 500; background: rgba(5,10,4,.75); backdrop-filter: blur(6px); opacity: 0; pointer-events: none; transition: opacity .3s; display: flex; align-items: center; justify-content: center; padding: 20px; }
#gm-modal-overlay.open { opacity: 1; pointer-events: auto; }
.gm-modal { background: var(--white); max-width: 760px; width: 100%; max-height: 90vh; overflow-y: auto; position: relative; transform: translateY(16px); transition: transform .3s; }
#gm-modal-overlay.open .gm-modal { transform: translateY(0); }
.modal-close { position: absolute; top: 20px; right: 20px; width: 36px; height: 36px; background: var(--paper); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 18px; color: var(--gray); transition: background .2s; z-index: 2; }
.modal-close:hover { background: var(--gray-light); }
.modal-visual { height: 220px; background: var(--green); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; flex-shrink: 0; }
.modal-visual-art { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.modal-visual-art svg { width: 45%; opacity: .07; }
.modal-header-band { position: absolute; bottom: 0; left: 0; right: 0; padding: 20px 28px; background: linear-gradient(to top,rgba(10,16,8,.85),transparent); }
.modal-tag { font-family: var(--font-mono); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-bottom: 6px; }
.modal-title { font-family: var(--font-serif); font-size: clamp(22px,3vw,32px); color: var(--white); font-weight: 400; line-height: 1.15; }
.modal-body { padding: 28px 28px 36px; }
.modal-specs-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid var(--gray-light); }
.mspec { font-family: var(--font-mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--green); background: var(--green-pale); padding: 5px 10px; }
.modal-section-title { font-family: var(--font-mono); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.modal-desc { font-size: 14px; font-weight: 300; color: var(--gray); line-height: 1.85; margin-bottom: 24px; }
.modal-info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 24px; }
@media (max-width: 500px) { .modal-info-grid { grid-template-columns: 1fr; } }
.minfo { background: var(--paper); padding: 14px 16px; }
.minfo-label { font-family: var(--font-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: var(--gray); margin-bottom: 4px; }
.minfo-value { font-size: 13px; font-weight: 400; color: var(--ink); line-height: 1.5; }
.modal-highlight { background: var(--green-pale); border-left: 3px solid var(--gold); padding: 16px 18px; margin-bottom: 24px; font-size: 13px; font-weight: 300; color: var(--green); line-height: 1.75; font-style: italic; }
.modal-actions { display: flex; gap: 12px; flex-wrap: wrap; padding-top: 4px; }

/* ============================================================ SÉJOURS */
#gm-sejours { background: var(--green-deep); }
.sejours-hdr { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: clamp(36px,5vw,60px); }
@media (max-width: 700px) { .sejours-hdr { grid-template-columns: 1fr; } }
.sejours-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(255,255,255,.05); }
@media (max-width: 860px) { .sejours-grid { grid-template-columns: 1fr; } }
.scard { background: var(--green-deep); padding: 38px 34px; position: relative; border-top: 1px solid rgba(255,255,255,.05); transition: background .25s; }
.scard:hover { background: rgba(255,255,255,.03); }
.scard-line { position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .32s; }
.scard:hover .scard-line { transform: scaleX(1); }
.scard-badge { position: absolute; top: -1px; right: 30px; background: var(--gold); color: var(--ink); font-family: var(--font-mono); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; padding: 5px 11px; }
.scard-dur { font-family: var(--font-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.scard-title { font-family: var(--font-serif); font-size: clamp(22px,2.8vw,32px); font-weight: 400; color: var(--white); line-height: 1.15; margin-bottom: 12px; }
.scard-desc { font-size: 13px; font-weight: 300; color: rgba(255,255,255,.42); line-height: 1.8; margin-bottom: 20px; }
.scard-list { margin-bottom: 24px; border-top: 1px solid rgba(255,255,255,.06); }
.scard-list li { font-size: 12px; font-weight: 300; color: rgba(255,255,255,.42); padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.04); display: flex; align-items: flex-start; gap: 9px; }
.scard-list li::before { content: ''; width: 3px; height: 3px; background: var(--gold); border-radius: 50%; flex-shrink: 0; margin-top: 7px; }

/* ============================================================ INSTRUCTEUR */
#gm-instructeur { background: var(--paper); }
.instr-wrap { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(44px,6vw,96px); align-items: center; }
@media (max-width: 840px) { .instr-wrap { grid-template-columns: 1fr; } }
.instr-portrait { position: relative; background: var(--green); aspect-ratio: 3/4; max-width: 400px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.instr-portrait-bg { position: absolute; inset: 0; background: linear-gradient(160deg,var(--green-mid),var(--green-deep)); display: flex; align-items: center; justify-content: center; }
.instr-portrait-bg svg { width: 55%; opacity: .08; }
.instr-ribbon { position: absolute; bottom: 0; left: 0; right: 0; background: var(--gold); padding: 16px 22px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.instr-ribbon-t { font-family: var(--font-serif); font-size: 16px; font-weight: 400; color: var(--ink); line-height: 1.2; }
.instr-ribbon-s { font-family: var(--font-mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: rgba(0,0,0,.5); margin-top: 2px; }
.instr-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--gray-light); border: 1px solid var(--gray-light); margin: 22px 0 28px; }
.istat { background: var(--white); padding: 16px; text-align: center; }
.istat-n { font-family: var(--font-serif); font-size: 26px; color: var(--green); line-height: 1; margin-bottom: 3px; }
.istat-l { font-family: var(--font-mono); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: var(--gray); }
.formules-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 24px; }
.formule { background: var(--white); border: 1px solid var(--gray-light); padding: 20px 18px; transition: border-color .22s, background .22s; }
.formule:hover { border-color: var(--gold); background: var(--gold-pale); }
.formule-title { font-family: var(--font-serif); font-size: 17px; font-weight: 400; margin-bottom: 5px; }
.formule-desc { font-size: 12px; font-weight: 300; color: var(--gray); line-height: 1.6; margin-bottom: 8px; }
.formule-price { font-family: var(--font-mono); font-size: 11px; letter-spacing: .05em; color: var(--green); }

/* ============================================================ PULL QUOTE */
#gm-pullquote { background: var(--green); padding: clamp(52px,7vw,88px) 0; text-align: center; position: relative; overflow: hidden; }
.pq-text { font-family: var(--font-serif); font-size: clamp(20px,3.2vw,44px); font-weight: 400; font-style: italic; line-height: 1.38; max-width: 740px; margin: 0 auto; color: var(--white); opacity: .9; }
.pq-text strong { color: var(--gold-light); font-style: normal; }
.pq-bg { position: absolute; inset: 0; font-family: var(--font-serif); font-size: 200px; font-weight: 400; color: rgba(255,255,255,.025); display: flex; align-items: center; justify-content: center; pointer-events: none; white-space: nowrap; letter-spacing: .08em; }

/* ============================================================ POURQUOI */
#gm-why { background: var(--paper); }
.why-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; border: 1px solid var(--gray-light); background: var(--gray-light); }
@media (max-width: 880px) { .why-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 460px) { .why-grid { grid-template-columns: 1fr; } }
.why-card { background: var(--white); padding: 34px 26px; transition: background .22s; }
.why-card:hover { background: var(--green-pale); }
.why-icon { width: 34px; height: 34px; color: var(--gold); margin-bottom: 16px; }
.why-title { font-family: var(--font-serif); font-size: 17px; font-weight: 400; margin-bottom: 7px; }
.why-desc { font-size: 12px; font-weight: 300; color: var(--gray); line-height: 1.72; }

/* ============================================================ BLOG */
#gm-blog { background: var(--paper); border-top: 1px solid var(--gray-light); }
.blog-hdr { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: end; margin-bottom: clamp(32px,4vw,50px); }
@media (max-width: 700px) { .blog-hdr { grid-template-columns: 1fr; } }
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--gray-light); border: 1px solid var(--gray-light); }
@media (max-width: 860px) { .blog-grid { grid-template-columns: 1fr; } }
.blog-card { background: var(--white); padding: 28px 24px; transition: background .22s; }
.blog-card:hover { background: var(--green-pale); }
.blog-cat { font-family: var(--font-mono); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; }
.blog-title { font-family: var(--font-serif); font-size: clamp(17px,1.8vw,22px); font-weight: 400; line-height: 1.25; margin-bottom: 10px; transition: color .2s; }
.blog-card:hover .blog-title { color: var(--green); }
.blog-excerpt { font-size: 13px; font-weight: 300; color: var(--gray); line-height: 1.72; margin-bottom: 16px; }
.blog-read { font-family: var(--font-mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); display: inline-flex; align-items: center; gap: 5px; transition: gap .2s; }
.blog-card:hover .blog-read { gap: 9px; }
.blog-read svg { width: 10px; height: 10px; }
.blog-more { text-align: center; margin-top: 32px; }

/* ============================================================ CONTACT */
#gm-contact { background: var(--ink); }
.contact-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(36px,6vw,90px); align-items: start; }
@media (max-width: 840px) { .contact-grid { grid-template-columns: 1fr; } }
.cinfo-row { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 24px; }
.cicon { width: 15px; height: 15px; color: var(--gold); flex-shrink: 0; margin-top: 3px; }
.clabel { font-family: var(--font-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.28); margin-bottom: 3px; }
.cvalue { font-size: 13px; font-weight: 300; color: rgba(255,255,255,.65); line-height: 1.55; }
.cform { background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07); padding: clamp(24px,4vw,44px); }
.flabel { display: block; font-family: var(--font-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.32); margin-bottom: 7px; }
.finput,.fsel,.ftxt { width: 100%; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); color: var(--white); font-family: var(--font-sans); font-size: 13px; font-weight: 300; padding: 12px 14px; outline: none; transition: border-color .22s; border-radius: 0; -webkit-appearance: none; }
.finput::placeholder,.ftxt::placeholder { color: rgba(255,255,255,.16); }
.finput:focus,.fsel:focus,.ftxt:focus { border-color: var(--gold); background: rgba(184,148,58,.04); }
.fsel { cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23b8943a' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; padding-right: 34px; }
.fsel option { background: #0e1009; }
.ftxt { min-height: 96px; resize: vertical; }
.frow { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.fgroup { margin-bottom: 14px; }
@media (max-width: 560px) { .frow { grid-template-columns: 1fr; } }
.ffoot { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 4px; }
.fnote { font-family: var(--font-mono); font-size: 8px; letter-spacing: .08em; color: rgba(255,255,255,.18); }
.fsub { display: inline-flex; align-items: center; gap: 9px; background: var(--gold); color: var(--ink); font-family: var(--font-mono); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; padding: 14px 26px; border: none; cursor: pointer; transition: background .22s, transform .2s; }
.fsub:hover { background: var(--gold-light); transform: translateY(-1px); }
.fsub svg { width: 13px; height: 13px; transition: transform .22s; }
.fsub:hover svg { transform: translateX(3px); }

/* ============================================================ FOOTER */
#gm-footer { background: #070b06; padding: clamp(44px,6vw,68px) 0 26px; border-top: 1px solid rgba(184,148,58,.07); }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 36px; margin-bottom: 44px; }
@media (max-width: 840px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 460px) { .footer-grid { grid-template-columns: 1fr; } }
.flogo { font-family: var(--font-serif); font-size: 20px; color: var(--white); margin-bottom: 10px; }
.flogo em { color: var(--gold); font-style: italic; }
.ftagline { font-size: 12px; font-weight: 300; color: rgba(255,255,255,.28); line-height: 1.75; max-width: 210px; margin-bottom: 16px; }
.fcol-h { font-family: var(--font-mono); font-size: 8px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }
.flinks { display: flex; flex-direction: column; gap: 8px; }
.flinks a { font-size: 12px; font-weight: 300; color: rgba(255,255,255,.32); transition: color .18s; }
.flinks a:hover { color: var(--gold); }
.fbot { padding-top: 22px; border-top: 1px solid rgba(255,255,255,.04); display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; }
.fcopy { font-family: var(--font-mono); font-size: 8px; letter-spacing: .07em; color: rgba(255,255,255,.16); }
.flegal { display: flex; gap: 18px; }
.flegal a { font-family: var(--font-mono); font-size: 8px; letter-spacing: .06em; color: rgba(255,255,255,.16); transition: color .18s; }
.flegal a:hover { color: var(--gold); }

/* ============================================================ CONTENT PAGES */
.site-main { padding-top: 64px; }
.page-content { padding: clamp(48px,7vw,90px) 0; }
.entry-title { font-family: var(--font-serif); font-size: clamp(28px,4vw,52px); font-weight: 400; margin-bottom: 24px; line-height: 1.1; }
.entry-content { max-width: 720px; }
.entry-content p { font-size: 16px; font-weight: 300; color: var(--gray); line-height: 1.85; margin-bottom: 20px; }
.entry-content h2 { font-family: var(--font-serif); font-size: 26px; font-weight: 400; margin: 36px 0 14px; }
.entry-content h3 { font-family: var(--font-serif); font-size: 20px; font-weight: 400; margin: 28px 0 10px; }
.entry-content a { color: var(--gold); border-bottom: 1px solid rgba(184,148,58,.3); transition: border-color .2s; }
.entry-content a:hover { border-color: var(--gold); }
.entry-content ul { list-style: disc; padding-left: 20px; margin-bottom: 20px; }
.entry-content ul li { font-size: 15px; font-weight: 300; color: var(--gray); line-height: 1.8; margin-bottom: 6px; }

/* Archive / Blog listing */
.archive-header { padding: clamp(80px,8vw,120px) 0 clamp(40px,5vw,60px); background: var(--green-deep); }
.archive-title { font-family: var(--font-serif); font-size: clamp(32px,5vw,64px); font-weight: 400; color: var(--white); line-height: 1.05; }
.posts-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--gray-light); border: 1px solid var(--gray-light); }
@media (max-width: 860px) { .posts-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 580px) { .posts-grid { grid-template-columns: 1fr; } }
.post-card { background: var(--white); padding: 28px 24px; transition: background .22s; }
.post-card:hover { background: var(--green-pale); }
.post-card-cat { font-family: var(--font-mono); font-size: 8px; letter-spacing: .13em; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; }
.post-card-title { font-family: var(--font-serif); font-size: clamp(17px,1.8vw,22px); font-weight: 400; line-height: 1.25; margin-bottom: 10px; transition: color .2s; }
.post-card:hover .post-card-title { color: var(--green); }
.post-card-excerpt { font-size: 13px; font-weight: 300; color: var(--gray); line-height: 1.72; margin-bottom: 16px; }
.post-card-read { font-family: var(--font-mono); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); display: inline-flex; align-items: center; gap: 5px; transition: gap .2s; }
.post-card:hover .post-card-read { gap: 9px; }

/* ============================================================ REVEAL */
.rev { opacity: 0; transform: translateY(20px); transition: opacity .6s ease, transform .6s ease; }
.rev.in { opacity: 1; transform: none; }

/* ============================================================
   SINGLE GOLF PAGE
   ============================================================ */

/* Hero */
.golf-hero {
    min-height: 70vh;
    background: var(--green-deep);
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    padding-bottom: clamp(36px,5vw,64px);
    padding-top: 64px; /* nav height */
}
.golf-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(10,16,8,.85) 0%, rgba(10,16,8,.35) 50%, rgba(10,16,8,.2) 100%);
}
.golf-hero-placeholder {
    position: absolute; inset: 0;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    background: linear-gradient(160deg, var(--green-mid), var(--green-deep));
}
.golf-hero-placeholder svg { width: 60%; max-width: 500px; }
.golf-hero-placeholder-label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255,255,255,.25);
    text-align: center;
    line-height: 1.8;
    margin-bottom: 24px;
    border: 1px dashed rgba(255,255,255,.1);
    padding: 14px 24px;
}
.golf-hero-body { position: relative; z-index: 2; }
.golf-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.35);
    margin-bottom: 16px;
}
.golf-breadcrumb a { color: rgba(255,255,255,.35); transition: color .18s; }
.golf-breadcrumb a:hover { color: var(--gold); }
.golf-breadcrumb span:last-child { color: var(--gold); }
.golf-hero-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 12px;
}
.golf-hero-title {
    font-family: var(--font-serif);
    font-size: clamp(36px,6vw,80px);
    font-weight: 400;
    color: var(--white);
    line-height: 1;
    letter-spacing: -.02em;
}

/* Specs bar */
.golf-specs-bar {
    background: var(--green);
    padding: 0;
    border-bottom: 2px solid var(--gold);
}
.golf-specs-row {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
}
.golf-spec-item {
    flex: 1;
    min-width: 120px;
    padding: 20px 24px;
    border-right: 1px solid rgba(255,255,255,.08);
    transition: background .2s;
}
.golf-spec-item:hover { background: rgba(255,255,255,.05); }
.golf-spec-item:last-child { border-right: none; }
.golf-spec-val {
    font-family: var(--font-serif);
    font-size: clamp(18px,2.2vw,26px);
    color: var(--gold-light);
    line-height: 1.1;
    margin-bottom: 4px;
}
.golf-spec-label {
    font-family: var(--font-mono);
    font-size: 8px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255,255,255,.35);
}
@media (max-width: 640px) { .golf-spec-item { flex: 1 1 50%; } }

/* Content grid */
.golf-content { background: var(--paper); }
.golf-content-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: clamp(36px,5vw,72px);
    align-items: start;
}
@media (max-width: 960px) { .golf-content-grid { grid-template-columns: 1fr; } }

/* Highlight box */
.golf-highlight-box {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--green-pale);
    border-left: 3px solid var(--gold);
    padding: 20px 22px;
    margin-bottom: 28px;
}
.golf-highlight-icon { flex-shrink: 0; width: 20px; height: 20px; color: var(--gold); margin-top: 2px; }
.golf-highlight-text { font-size: 15px; font-weight: 300; color: var(--green); line-height: 1.8; font-style: italic; }

/* Description content */
.golf-description p { font-size: 16px; font-weight: 300; color: var(--gray); line-height: 1.9; margin-bottom: 20px; }
.golf-description h2 { font-family: var(--font-serif); font-size: 26px; font-weight: 400; margin: 36px 0 14px; color: var(--ink); }
.golf-description h3 { font-family: var(--font-serif); font-size: 20px; font-weight: 400; margin: 28px 0 10px; }
.golf-placeholder-text { font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; color: rgba(0,0,0,.18); border: 1px dashed rgba(0,0,0,.1); padding: 20px; text-align: center; }

/* Gallery */
.golf-gallery { margin-top: 40px; padding-top: 36px; border-top: 1px solid var(--gray-light); }
.golf-gallery-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin-top: 12px; }
@media (max-width: 500px) { .golf-gallery-grid { grid-template-columns: 1fr; } }
.golf-gallery-item { aspect-ratio: 4/3; overflow: hidden; }
.golf-gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; display: block; }
.golf-gallery-item:hover img { transform: scale(1.04); }
.golf-gallery-placeholder {
    background: var(--green-pale);
    display: flex; align-items: center; justify-content: center;
    border: 1px dashed rgba(42,74,34,.2);
}
.golf-gallery-placeholder span {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(42,74,34,.3);
    text-align: center;
    line-height: 1.7;
    padding: 10px;
}

/* Sidebar */
.golf-sidebar { position: sticky; top: 84px; display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 960px) { .golf-sidebar { position: static; } }
.golf-sidebar-card {
    background: var(--white);
    border: 1px solid var(--gray-light);
    padding: 28px 24px;
}
.golf-sidebar-title {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--gray-light);
}
.golf-info-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid var(--gray-light);
}
.golf-info-row--top { align-items: flex-start; }
.golf-info-row:last-of-type { border-bottom: none; }
.golf-info-row > svg { width: 15px; height: 15px; color: var(--gold); flex-shrink: 0; margin-top: 3px; }
.golf-info-label { font-family: var(--font-mono); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; color: var(--gray); margin-bottom: 3px; }
.golf-info-val { font-size: 13px; font-weight: 400; color: var(--ink); line-height: 1.55; }
.golf-info-val a { color: var(--green); transition: color .18s; }
.golf-info-val a:hover { color: var(--gold); }

/* Site + Maps links */
.golf-site-link,
.golf-maps-link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--green);
    padding: 12px 0;
    border-bottom: 1px solid var(--gray-light);
    transition: color .18s;
}
.golf-site-link:hover, .golf-maps-link:hover { color: var(--gold); }
.golf-site-link > svg:first-child, .golf-maps-link > svg { width: 13px; height: 13px; flex-shrink: 0; }
.golf-site-arrow { width: 11px; height: 11px; margin-left: auto; }

/* CTA box */
.golf-cta-box {
    background: var(--green-deep);
    padding: 28px 24px;
    border-top: 2px solid var(--gold);
}
.golf-cta-title {
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 400;
    color: var(--white);
    line-height: 1.2;
    margin-bottom: 6px;
}
.golf-cta-sub {
    font-size: 13px;
    font-weight: 300;
    color: rgba(255,255,255,.45);
    line-height: 1.65;
}

/* Autres golfs grid */
.golf-autres-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 1px;
    background: var(--gray-light);
    border: 1px solid var(--gray-light);
}
@media (max-width: 760px) { .golf-autres-grid { grid-template-columns: 1fr; } }
.gcard-thumb {
    height: 180px;
    background-size: cover;
    background-position: center;
    transition: transform .4s ease;
    overflow: hidden;
}
.gcard:hover .gcard-thumb { transform: scale(1.03); }
.gcard-thumb--placeholder {
    background: var(--green);
    display: flex; align-items: center; justify-content: center;
}
.gcard-thumb--placeholder span {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,255,255,.2);
    text-align: center;
    padding: 10px;
    line-height: 1.7;
    border: 1px dashed rgba(255,255,255,.1);
}
