.ap-listing-photo { display:block; min-width:0; width:100%; }
.ap-listing-photo gmp-place-details-compact { display:block; width:100%; max-width:300px; margin-inline:auto; color-scheme:light; }
.ap-listing-photo [data-ap-photo-fallback] img { max-width:100%; height:auto; }
.ap-listing-photo[data-ap-photo-loaded="1"] > [data-ap-photo-fallback] { display:none; }
.ap-listing-photo-hero { display:block; padding:24px; background:#f5f7f9; }
.ap-listing-photo-hero:has([data-ap-photo-state="unavailable"]) { display:none; }
.ap-listing-photo-hero:has([data-ap-photo-loaded="1"]) + .elementor-element { background-image:none !important; }
.ap-popup__media:has(.ap-listing-photo) { height:auto; aspect-ratio:auto; overflow:visible; }
.ap-popup__media:has(.ap-listing-photo) .ap-popup__img { position:static; }

/* Legacy UE cards must leave the native attribution fully visible. */
.ue_post_blocks_image:has(.ap-listing-photo[data-ap-photo-loaded="1"]) { height:auto !important; max-height:none !important; aspect-ratio:auto !important; }

/* Native club composition: match the 4px Elementor detail panels. */
.ap-club-premium .ap-listing-photo gmp-place-details-compact { border-radius:4px; }
.ap-club-premium .ap-listing-photo-contact { display:block; width:100%; min-width:0; margin-block-start:16px; }
.ap-club-premium .ap-listing-photo-contact:has([data-ap-photo-state="unavailable"]) { display:none; }

/* Opt-in comparison: preserve the complete Google component and original hero. */
.ap-club-premium .ap-photo-hero-compare { display:grid; grid-template-columns:minmax(0, 3fr) minmax(0, 2fr); width:100%; max-width:1400px; flex:0 0 auto; align-self:stretch; gap:24px; margin-block:24px; padding:24px; border-radius:4px; background:#171b21; color:#fff; }
/* Second comparison reuses the club's existing image, including owner media. */
.ap-club-premium .ap-photo-hero-compare--layered {
    grid-template-columns:minmax(0, 13fr) minmax(0, 7fr);
    background-image:linear-gradient(180deg, rgba(23,27,33,.25) 0%, rgba(23,27,33,.78) 45%, #171b21 78%), var(--ap-photo-hero-background, none);
    background-size:cover; background-position:var(--ap-photo-hero-position, center); background-repeat:no-repeat;
}
.ap-photo-hero-compare__copy { display:flex; flex-direction:column; justify-content:center; min-width:0; padding:clamp(8px, 3vw, 40px); }
.ap-club-premium .ap-photo-hero-compare__label { margin:0 0 20px; color:#f4c430; font:700 14px/1.5 Oxygen,sans-serif; }
.ap-club-premium .ap-photo-hero-compare h2 { margin:0; color:#fff; font:700 clamp(28px, 3.5vw, 52px)/1.1 'Encode Sans Condensed',sans-serif; overflow-wrap:anywhere; }
/* Documented native theme/spacing only; keep the complete photo and credits. */
.ap-club-premium .ap-photo-hero-compare__photo gmp-place-details-compact,
.ap-detail-hero .ap-photo-hero-compare__photo gmp-place-details-compact {
    max-width:none; border:0; background-color:#171b21; color-scheme:dark;
    --gmp-mat-color-surface:#171b21;
    --gmp-mat-color-on-surface:#fff;
    --gmp-mat-color-on-surface-variant:#d3d8df;
    --gmp-mat-color-primary:#f4c430;
    --gmp-mat-color-secondary-container:#303943;
    --gmp-mat-color-on-secondary-container:#fff;
    --gmp-mat-color-outline-decorative:#45515f;
    --gmp-mat-spacing-extra-small:2px;
    --gmp-mat-spacing-small:3px;
    --gmp-mat-spacing-medium:6px;
    --gmp-mat-spacing-large:8px;
    --gmp-mat-font-family:Oxygen,sans-serif;
    --gmp-mat-font-title-small:600 12px/16px Oxygen,sans-serif;
    --gmp-mat-font-body-small:400 11px/14px Oxygen,sans-serif;
    --gmp-mat-font-label-large:600 11px/14px Oxygen,sans-serif;
}
.ap-club-premium .ap-photo-hero-compare__facts { display:flex; flex-wrap:wrap; gap:12px 20px; margin:0 0 20px; }
.ap-club-premium .ap-photo-hero-compare__fact { display:inline-flex; align-items:center; gap:8px; color:#fff; font:700 14px/1.5 Oxygen,sans-serif; }
.ap-club-premium .ap-photo-hero-compare__intro { margin:20px 0 0; color:#fff; font:400 16px/1.6 Oxygen,sans-serif; overflow-wrap:anywhere; }
.ap-photo-hero-compare__actions { display:flex; flex-wrap:wrap; gap:12px; margin-block-start:28px; }
.ap-photo-hero-compare__actions > div { min-width:0; max-width:100%; }
.ap-club-premium .ap-photo-hero-compare__actions a.elementor-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:12px 16px; border-radius:4px; font:700 14px/1.4 Oxygen,sans-serif; text-decoration:none; }
.ap-photo-hero-compare__actions .elementor-button-content-wrapper { display:flex; align-items:center; justify-content:center; gap:8px; }
.ap-photo-hero-compare__actions .elementor-button-text { overflow-wrap:anywhere; }
.ap-photo-hero-compare__actions .elementor-button-icon { display:inline-flex; }
.ap-club-premium .ap-photo-hero-compare__actions .ap-club-action--secondary a { background:#fff; color:#04233a; border:1px solid #d7dfe5; }
.ap-club-premium .ap-photo-hero-compare__actions a:focus-visible { outline:2px solid #f4c430; outline-offset:4px; }
.ap-photo-hero-compare__fact :is(svg, i), .ap-photo-hero-compare__actions :is(svg, i) { width:18px; height:18px; flex:0 0 18px; fill:currentColor; }
.ap-photo-hero-compare__photo > [data-ap-photo-fallback] { min-height:220px; display:grid; place-items:center; padding:24px; margin:0; border-radius:4px; background:#f5f7f9; color:#04233a; }
@media (max-width:767px) {
    .ap-club-premium .ap-photo-hero-compare { grid-template-columns:minmax(0, 1fr); gap:20px; padding:16px; }
    .ap-photo-hero-compare__copy { padding:12px 8px; }
}

/* Approved normal detail hero, keeping native Elementor content and identity. */
body .ap-detail-hero {
    display:grid !important; grid-template-columns:minmax(0, 13fr) minmax(0, 7fr) !important;
    gap:24px !important; padding:24px !important; min-height:0 !important; width:100%; max-width:1400px;
    position:relative; border-radius:4px; background-color:#171b21; background-size:cover; overflow:hidden; isolation:isolate;
}
body .ap-detail-hero::before,
body .ap-club-premium .ap-club-hero.ap-detail-hero::before {
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none; border-radius:inherit; opacity:1 !important;
    background:linear-gradient(180deg, rgba(23,27,33,.25) 0%, rgba(23,27,33,.78) 45%, #171b21 78%) !important;
}
body .ap-detail-hero .ap-detail-hero__copy {
    display:flex; flex-direction:column; justify-content:center !important; align-items:flex-start;
    position:relative; z-index:1; width:100% !important; max-width:none; min-width:0;
    padding:clamp(8px, 3vw, 40px) !important;
}
body .ap-detail-hero h1 { color:#fff; font:700 clamp(28px, 3.5vw, 52px)/1.1 'Encode Sans Condensed',sans-serif; overflow-wrap:anywhere; }
body .ap-detail-hero .ap-club-meta { display:flex; flex-flow:row wrap; align-items:center; gap:10px; }
body .ap-detail-hero .ap-detail-badge { display:inline-flex; width:auto !important; min-width:0; padding:6px 10px !important; border-radius:4px; background:rgba(0,0,0,.65); color:#fff; }
body .ap-detail-hero .ap-club-meta .ap-detail-courts { background:transparent !important; color:#fff !important; }
body .ap-detail-hero .ap-club-meta .ap-detail-courts :is(p, span, i, svg, .elementor-icon-box-title, .elementor-icon-box-description) { color:#fff !important; }
body .ap-detail-badge a { display:inline-flex; align-items:center; gap:8px; color:inherit; text-decoration:none; }
body .ap-detail-badge p { margin:0; }
body .ap-detail-hero .ap-detail-region { align-items:center; gap:8px; font:700 14px/1.5 Oxygen,sans-serif; text-decoration:none !important; }
body .ap-detail-region svg { width:18px; height:18px; flex:0 0 18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
body .ap-detail-hero .ap-detail-badge:is(a:hover, :has(a:hover)) { background:#f4c430 !important; color:#04233a !important; }
/* Override the native photo hero’s explicit white Elementor text/icon colors. */
body .ap-detail-hero .ap-club-meta .ap-detail-badge a:hover,
body .ap-detail-hero .ap-club-meta .ap-detail-badge a:hover * { color:#04233a !important; text-decoration:none !important; }
body .ap-detail-hero .ap-detail-badge a { text-decoration:none !important; }
/* Remove additive Elementor heading/action margins; gaps only separate visible groups. */
body .ap-club-premium .ap-club-booking-content { gap:16px !important; justify-content:flex-start; }
body .ap-club-premium .ap-club-booking-content > :is(.ap-club-section-title, .ap-club-actions, .ap-club-contact-group) { margin-block:0 !important; }
body .ap-club-premium .ap-club-booking-content .ap-club-section-title :is(.block-h, .heading-inner, h2) { margin-block:0 !important; }
body .ap-club-premium .ap-club-booking-content .ap-detail-empty { display:none !important; }
/* Project focus policy: retain native focus and activation; no decorative ring. */
body.single-annuaire :is(a, button, summary, input, select, textarea, [tabindex]):is(:focus, :focus-visible),
body .ap-detail-hero :is(a, button, summary, [tabindex]):is(:focus, :focus-visible) { outline:none !important; box-shadow:none !important; }

body .ap-detail-hero__cover { display:none; }
body .ap-detail-photo--below { margin-block-start:16px; }
body .ap-detail-photo--below[data-ap-photo-state="unavailable"] { display:none; }
body .ap-detail-hero > .ap-listing-photo { position:relative; z-index:1; align-self:center; }
body .ap-detail-hero > [data-ap-photo-state="unavailable"] { display:none; }
body .ap-detail-hero:not(:has(> .ap-listing-photo)), body .ap-detail-hero:has(> [data-ap-photo-state="unavailable"]) { grid-template-columns:minmax(0, 1fr) !important; min-height:320px !important; }
body .ap-detail-hero .ap-club-actions { flex-wrap:wrap; }
@media (max-width:767px) {
    body .ap-detail-hero { grid-template-columns:minmax(0, 1fr) !important; padding:0 !important; gap:0 !important; }
    body .ap-detail-hero::before,
    body .ap-club-premium .ap-club-hero.ap-detail-hero::before { display:none; }
    body .ap-detail-hero > .ap-detail-hero__cover { display:block; width:100%; height:clamp(200px, 56vw, 320px); background:inherit; background-size:cover; background-position:inherit; }
    body .ap-detail-hero .ap-detail-hero__copy { padding:20px 16px !important; gap:12px !important; background:#fff; color:#04233a !important; }
    body .ap-detail-hero .ap-detail-hero__copy :is(h1, .elementor-heading-title, p),
    body .ap-club-premium .ap-club-hero--photo.ap-detail-hero .ap-detail-hero__copy :is(h1, .elementor-heading-title, .ap-club-intro, .ap-club-intro *) { color:#04233a !important; }
    body .ap-detail-hero .ap-detail-hero__copy .ap-detail-badge { background:#f5f7f9 !important; color:#04233a !important; }
    body .ap-detail-hero .ap-detail-hero__copy .ap-club-meta .ap-detail-courts { background:transparent !important; }
    body .ap-detail-hero .ap-detail-hero__copy .ap-club-meta :is(a, p, span, i, svg, .elementor-icon-box-title, .elementor-icon-box-description) { color:#04233a !important; }
    body .ap-detail-hero .ap-detail-hero__copy .ap-detail-badge:is(a:hover, :has(a:hover)) { background:#f4c430 !important; }
    body .ap-detail-hero .ap-detail-hero__copy > .elementor-element { margin-block:0 !important; }
    body .ap-detail-hero .ap-club-meta { gap:6px !important; }
    body .ap-detail-hero .ap-detail-badge { padding:5px 8px !important; font-size:12px !important; line-height:1.4; }
    body .ap-detail-hero .ap-detail-badge :is(p, span, .elementor-icon-box-description) { font-size:12px !important; }
    body .ap-detail-hero .ap-detail-region { font-size:12px; gap:6px; }
    body .ap-detail-hero .ap-club-meta :is(svg, i) { width:14px; height:14px; flex-basis:14px; font-size:14px !important; }
    body .ap-detail-hero h1 { margin-block:0 !important; font-size:clamp(28px, 7vw, 36px); }
    body .ap-detail-hero .ap-club-actions { display:flex; width:100%; gap:8px !important; margin-block:0 !important; }
    body .ap-detail-hero .ap-club-actions > .elementor-element { flex:1 1 130px; width:auto !important; min-width:0; margin:0 !important; }
    body .ap-detail-hero .ap-club-actions a.elementor-button { display:flex; align-items:center; justify-content:center; width:100%; min-height:44px; padding:10px 12px !important; font-size:14px !important; line-height:1.4; }
    body .ap-detail-hero .ap-club-actions .elementor-button-content-wrapper { gap:6px; }
    body .ap-detail-hero .ap-club-actions :is(svg, i) { width:18px; height:18px; font-size:18px !important; }
}

/* Older directory entries use the native theme header, with the same controls. */
body .ap-detail-hero--legacy { color:#fff; }
body .ap-detail-hero--legacy .ap-detail-hero__copy a { color:inherit; }

/* Club body columns remain independent of the full-width courts section. */
body .ap-club-premium .ap-club-body { display:grid !important; gap:32px !important; align-items:start; min-width:0; width:100%; }
body .ap-club-premium .ap-club-main { width:100% !important; max-width:none; min-width:0; overflow-wrap:anywhere; }
body .ap-club-premium .ap-club-booking { box-sizing:border-box; min-width:0; align-self:start; }
@media (min-width:1025px) {
    body .ap-club-premium .ap-club-body { grid-template-columns:minmax(0, 1fr) 360px !important; }
    body .ap-club-premium .ap-club-booking { width:360px !important; max-width:360px !important; }
}
@media (max-width:1024px) {
    body .ap-club-premium .ap-club-body { grid-template-columns:minmax(0, 1fr) !important; }
    body .ap-club-premium .ap-club-booking { width:100% !important; max-width:none !important; }
}
body .ap-club-premium .ap-club-courts-section { width:100% !important; max-width:none; }
body .ap-club-premium .ap-club-courts-section .ap-club-facts { display:flex !important; flex-direction:row !important; align-items:stretch; flex-wrap:wrap; gap:16px !important; width:100%; min-width:0; }
body .ap-club-premium .ap-club-courts-section .ap-club-facts > .ap-club-fact { flex:1 1 0 !important; width:auto !important; min-width:0; box-sizing:border-box; overflow-wrap:anywhere; }
@media (max-width:650px) {
    body .ap-club-premium .ap-club-courts-section .ap-club-facts > .ap-club-fact { flex-basis:calc(50% - 8px) !important; }
}
body .ap-detail-hero .ap-club-meta .ap-detail-courts { order:-1; }
body .ap-detail-hero .ap-club-actions a.ap-detail-hours { background:#f4c430 !important; border-color:#f4c430 !important; color:#04233a !important; }
body .ap-detail-hero .ap-club-actions a.ap-detail-hours :is(.elementor-button-text, .elementor-button-icon, svg, i) { color:inherit !important; }
body .ap-detail-hero .ap-club-actions a.ap-detail-hours:hover { background:#04233a !important; border-color:#04233a !important; color:#fff !important; }
