:root {
    --ace-primary: #0B4F9C;
    --ace-secondary: #00A6B2;
    --ace-accent: #D5A326;
    --ace-dark: #0B1F33;
    --ace-bg: #F5F8FC;
    --ace-muted: #66768A;
    --ace-border: #E3EAF2;
    --ace-white: #FFFFFF;
    --ace-shadow: 0 18px 50px rgba(11,31,51,.10);
    --ace-radius: 20px;
    --ace-container: 1200px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--ace-dark);
    background: #fff;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ace-primary); text-decoration: none; }
a:hover { color: var(--ace-secondary); }
button, input, textarea, select { font: inherit; }
.ace-container { width: min(calc(100% - 40px), var(--ace-container)); margin-inline: auto; }
.screen-reader-text { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.screen-reader-text:focus { position: fixed!important; left: 20px!important; top: 20px!important; width:auto!important; height:auto!important; padding:12px 16px!important; margin:0!important; overflow:visible!important; clip:auto!important; background:#fff; z-index:99999; border-radius:8px; box-shadow:var(--ace-shadow); }

/* Header */
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.96); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(227,234,242,.9); transition: box-shadow .25s ease; }
.site-header.is-scrolled { box-shadow: 0 8px 32px rgba(11,31,51,.08); }
.site-header__accent { height: 4px; background: linear-gradient(90deg,var(--ace-primary) 0 46%,var(--ace-secondary) 46% 76%,var(--ace-accent) 76% 100%); }
.site-header__inner { min-height: 86px; display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; }
.site-branding .custom-logo { max-height: 64px; width: auto; }
.custom-logo-link { display: inline-flex; align-items: center; }
.brand-fallback { display: inline-flex; align-items: baseline; gap: 7px; color: var(--ace-dark); font-weight: 900; letter-spacing: -.04em; }
.brand-mark { font-size: 28px; color: var(--ace-primary); }
.brand-name { font-size: 19px; color: var(--ace-accent); letter-spacing: .08em; }
.main-navigation { justify-self: end; }
.main-navigation ul { margin: 0; padding: 0; list-style: none; display: flex; gap: 28px; align-items: center; }
.main-navigation a { color: #25384B; font-weight: 700; font-size: 14px; position: relative; padding: 30px 0; }
.main-navigation a::after { content:""; position:absolute; left:0; right:100%; bottom:19px; height:3px; border-radius:999px; background:var(--ace-secondary); transition:right .2s ease; }
.main-navigation a:hover::after, .main-navigation .current-menu-item > a::after { right:0; }
.header-cta { background: var(--ace-primary); color: white; border-radius: 999px; padding: 11px 20px; font-weight: 800; font-size: 14px; box-shadow: 0 10px 25px rgba(11,79,156,.2); }
.header-cta:hover { color:white; background:var(--ace-dark); }
.menu-toggle { display:none; width:46px; height:42px; background:#fff; border:1px solid var(--ace-border); border-radius:12px; padding:10px; cursor:pointer; }
.menu-toggle span:not(.screen-reader-text) { display:block; height:2px; background:var(--ace-dark); margin:5px 0; border-radius:3px; }

/* Hero */
.hero { min-height: 670px; position:relative; overflow:hidden; display:flex; align-items:center; background: linear-gradient(115deg,#061C34 0%,#0B4F9C 62%,#00A6B2 100%); background-size:cover; background-position:center; color:white; isolation:isolate; }
.hero::before { content:""; position:absolute; inset:0; background-image: linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:48px 48px; mask-image: linear-gradient(to right,black,transparent); z-index:-1; }
.hero__inner { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:80px; align-items:center; padding:100px 0 125px; }
.hero__content { max-width:780px; }
.hero h1 { margin:14px 0 20px; font-size:clamp(46px,6vw,78px); line-height:1.03; letter-spacing:-.055em; max-width:850px; }
.hero p { margin:0; max-width:710px; font-size:20px; line-height:1.7; color:rgba(255,255,255,.86); }
.hero__actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:12px 23px; border-radius:999px; font-weight:850; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn--accent { background:var(--ace-accent); color:#172235; box-shadow:0 15px 32px rgba(213,163,38,.22); }
.btn--accent:hover { color:#172235; background:#e4b638; }
.btn--ghost { color:white; border:1px solid rgba(255,255,255,.42); background:rgba(255,255,255,.07); }
.btn--ghost:hover { color:white; background:rgba(255,255,255,.14); }
.btn--primary { background:var(--ace-primary); color:#fff; }
.btn--primary:hover { background:var(--ace-dark); color:#fff; }
.hero__badge { width:330px; height:330px; justify-self:end; border:1px solid rgba(255,255,255,.25); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; background:radial-gradient(circle at 36% 25%,rgba(255,255,255,.17),rgba(255,255,255,.05)); box-shadow:0 28px 70px rgba(0,0,0,.16); backdrop-filter:blur(10px); position:relative; }
.hero__badge::before,.hero__badge::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.11); border-radius:50%; }
.hero__badge::before { inset:18px; }
.hero__badge::after { inset:41px; }
.hero__badge span { font-size:72px; line-height:.9; font-weight:950; letter-spacing:-.08em; position:relative; z-index:1; }
.hero__badge strong { color:var(--ace-accent); font-size:30px; letter-spacing:.18em; margin-left:.18em; position:relative; z-index:1; }
.hero__badge em { font-style:normal; font-size:9px; letter-spacing:.15em; margin-top:20px; opacity:.72; position:relative; z-index:1; }
.hero-orb { position:absolute; border-radius:50%; filter:blur(2px); opacity:.3; z-index:-1; }
.hero-orb--one { width:310px; height:310px; background:var(--ace-secondary); right:-130px; top:40px; }
.hero-orb--two { width:220px; height:220px; background:var(--ace-accent); left:-120px; bottom:10px; opacity:.13; }
.hero__wave { position:absolute; left:-5%; right:-5%; bottom:-95px; height:160px; background:white; border-radius:50% 50% 0 0 / 38% 38% 0 0; }

/* Sections */
.section { padding:105px 0; }
.section--about { padding-top:115px; }
.section-kicker { display:inline-flex; align-items:center; gap:10px; color:var(--ace-secondary); font-weight:900; letter-spacing:.17em; font-size:12px; }
.section-kicker::before { content:""; width:28px; height:3px; background:var(--ace-accent); border-radius:10px; }
.section-kicker--light { color:rgba(255,255,255,.82); }
.section h2,.stats-section h2,.cta-section h2,.contact-section h2 { margin:12px 0 18px; font-size:clamp(34px,4vw,52px); line-height:1.08; letter-spacing:-.045em; }
.section-heading { margin-bottom:45px; }
.section-heading--center { max-width:760px; margin:0 auto 50px; text-align:center; }
.section-heading--center .section-kicker { justify-content:center; }
.section-heading--split { display:flex; align-items:end; justify-content:space-between; gap:30px; }
.section-heading p { color:var(--ace-muted); font-size:18px; margin:0 auto; }
.section-heading.compact { margin-bottom:35px; }

.about-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:90px; align-items:center; }
.about-media { position:relative; min-height:500px; }
.about-media img,.image-placeholder { width:100%; height:500px; object-fit:cover; border-radius:24px; box-shadow:var(--ace-shadow); }
.image-placeholder { display:flex; align-items:center; justify-content:center; flex-direction:column; background:linear-gradient(135deg,var(--ace-primary),var(--ace-secondary)); color:white; overflow:hidden; position:relative; }
.image-placeholder::before { content:""; width:310px; height:310px; border-radius:50%; border:1px solid rgba(255,255,255,.25); position:absolute; }
.image-placeholder span { font-size:80px; font-weight:950; letter-spacing:-.08em; z-index:1; }
.image-placeholder strong { color:var(--ace-accent); letter-spacing:.22em; z-index:1; }
.about-media__accent { position:absolute; width:145px; height:145px; border-radius:24px; background:var(--ace-accent); right:-26px; bottom:-26px; z-index:-1; }
.about-content p { color:var(--ace-muted); font-size:18px; margin:0 0 25px; }
.text-link { display:inline-flex; align-items:center; gap:8px; font-weight:850; color:var(--ace-primary); }
.text-link span { transition:transform .2s ease; }
.text-link:hover span { transform:translateX(4px); }

.stats-section { background:var(--ace-bg); padding:64px 0; border-block:1px solid var(--ace-border); }
.stats-heading { display:none; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.stat-card { text-align:center; padding:22px; position:relative; }
.stat-card:not(:last-child)::after { content:""; width:1px; height:64%; background:var(--ace-border); position:absolute; top:18%; right:-10px; }
.stat-card strong { display:block; color:var(--ace-primary); font-size:44px; line-height:1; letter-spacing:-.05em; }
.stat-card span { display:block; color:var(--ace-muted); margin-top:10px; font-weight:700; font-size:14px; }

.section--services { background:white; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service-card { position:relative; min-height:285px; padding:30px; border:1px solid var(--ace-border); border-radius:var(--ace-radius); background:white; overflow:hidden; transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.service-card:hover { transform:translateY(-6px); box-shadow:var(--ace-shadow); border-color:rgba(0,166,178,.35); }
.service-card__number { color:var(--ace-secondary); font-size:12px; font-weight:900; letter-spacing:.14em; }
.service-card h3 { margin:18px 0 12px; font-size:23px; line-height:1.2; letter-spacing:-.025em; }
.service-card p { color:var(--ace-muted); margin:0 0 20px; }
.service-card > a { font-weight:850; color:var(--ace-primary); position:absolute; left:30px; bottom:28px; }
.service-card::after { content:""; width:90px; height:90px; border-radius:50%; background:linear-gradient(145deg,rgba(11,79,156,.08),rgba(0,166,178,.13)); position:absolute; right:-35px; top:-35px; }

.section--news { background:var(--ace-bg); }
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.news-card { background:white; border:1px solid var(--ace-border); border-radius:var(--ace-radius); overflow:hidden; box-shadow:0 8px 28px rgba(11,31,51,.05); }
.news-card__image { display:block; aspect-ratio:1.55; overflow:hidden; background:linear-gradient(135deg,var(--ace-primary),var(--ace-secondary)); }
.news-card__image img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.news-card:hover .news-card__image img { transform:scale(1.035); }
.news-card__placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:white; font-weight:900; letter-spacing:.13em; }
.news-card__body { padding:25px; }
.news-card__meta { color:var(--ace-secondary); font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:.1em; }
.news-card h3 { font-size:22px; line-height:1.28; margin:10px 0 10px; }
.news-card h3 a { color:var(--ace-dark); }
.news-card p { color:var(--ace-muted); margin:0 0 18px; }
.news-card__link { font-weight:850; }
.empty-state { grid-column:1/-1; padding:48px; text-align:center; border:1px dashed #bdcad8; border-radius:var(--ace-radius); color:var(--ace-muted); }
.empty-state h3 { color:var(--ace-dark); margin-top:0; }

.cta-section { background:linear-gradient(115deg,var(--ace-primary),#123B67 72%,var(--ace-dark)); color:white; padding:70px 0; position:relative; overflow:hidden; }
.cta-section::after { content:"ACE"; position:absolute; right:4%; bottom:-65px; font-size:220px; line-height:1; font-weight:950; color:rgba(255,255,255,.04); letter-spacing:-.1em; }
.cta-box { display:grid; grid-template-columns:1fr auto; gap:55px; align-items:center; position:relative; z-index:1; }
.cta-section h2 { max-width:830px; margin-bottom:10px; font-size:clamp(32px,4vw,48px); }
.cta-section p { color:rgba(255,255,255,.78); margin:0; max-width:770px; font-size:17px; }

.partners-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; align-items:stretch; }
.partner-logo,.partner-placeholder { min-height:110px; border:1px solid var(--ace-border); border-radius:16px; background:white; display:flex; align-items:center; justify-content:center; padding:18px; filter:grayscale(1); opacity:.8; transition:.2s ease; }
.partner-logo:hover { filter:grayscale(0); opacity:1; transform:translateY(-3px); box-shadow:0 10px 28px rgba(11,31,51,.08); }
.partner-logo img { max-height:64px; width:auto; }
.partner-placeholder { color:#9AA9B8; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; background:#FAFBFD; }

.contact-section { background:linear-gradient(180deg,#fff,var(--ace-bg)); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.contact-intro { max-width:590px; color:var(--ace-muted); font-size:18px; }
.contact-card { background:white; border:1px solid var(--ace-border); border-radius:24px; box-shadow:var(--ace-shadow); padding:34px; display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-item { padding-bottom:20px; border-bottom:1px solid var(--ace-border); }
.contact-item span { display:block; color:var(--ace-muted); font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:.09em; margin-bottom:5px; }
.contact-item strong { font-size:15px; overflow-wrap:anywhere; }
.contact-card .btn { grid-column:1/-1; justify-self:start; }

/* Footer */
.site-footer { background:var(--ace-primary); color:rgba(255,255,255,.73); padding-top:70px; }
.footer-grid { display:grid; grid-template-columns:1.4fr .8fr 1fr 1fr; gap:50px; padding-bottom:55px; }
.footer-logo .custom-logo { max-height:60px; width:auto; filter:brightness(0) invert(1); }
.footer-brand-name { color:white; font-size:24px; font-weight:900; }
.footer-brand p { max-width:330px; }
.site-footer h3 { color:white; font-size:14px; text-transform:uppercase; letter-spacing:.11em; margin:0 0 17px; }
.site-footer ul { margin:0; padding:0; list-style:none; }
.site-footer li { margin:8px 0; }
.site-footer a { color:rgba(255,255,255,.74); }
.site-footer a:hover { color:white; }
.footer-contact p { margin:8px 0; }
.social-links { display:flex; flex-wrap:wrap; gap:9px; }
.social-links a { border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:7px 11px; font-size:12px; }
.footer-widgets { padding-bottom:40px; }
.site-footer__bottom { border-top:1px solid rgba(255,255,255,.1); padding:20px 0; font-size:12px; }
.footer-bottom-inner { display:flex; justify-content:space-between; gap:20px; }

/* Internal pages */
.content-area { padding:80px 0 100px; min-height:60vh; }
.content-shell--narrow { max-width:920px; }
.archive-header,.entry-header { margin-bottom:42px; }
.archive-header h1,.entry-header h1 { margin:12px 0; font-size:clamp(38px,5vw,62px); line-height:1.08; letter-spacing:-.05em; }
.entry-meta,.archive-description { color:var(--ace-muted); }
.entry-featured { margin:0 0 42px; border-radius:24px; overflow:hidden; }
.entry-featured img { width:100%; }
.entry-content { font-size:18px; color:#263B51; }
.entry-content h2,.entry-content h3 { color:var(--ace-dark); line-height:1.2; margin-top:1.7em; }
.entry-content a { text-decoration:underline; }
.entry-content blockquote { margin:2em 0; padding:20px 25px; border-left:4px solid var(--ace-secondary); background:var(--ace-bg); }
.posts-list { display:grid; grid-template-columns:repeat(2,1fr); gap:25px; }
.loop-card { display:grid; grid-template-columns:220px 1fr; background:white; border:1px solid var(--ace-border); border-radius:18px; overflow:hidden; }
.loop-card__image img { width:100%; height:100%; object-fit:cover; }
.loop-card__body { padding:24px; }
.loop-card h2 { margin:8px 0 10px; font-size:24px; line-height:1.25; }
.loop-card h2 a { color:var(--ace-dark); }
.navigation.pagination { grid-column:1/-1; margin-top:15px; }
.nav-links { display:flex; gap:7px; flex-wrap:wrap; }
.page-numbers { min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--ace-border); border-radius:10px; }
.page-numbers.current { background:var(--ace-primary); color:white; border-color:var(--ace-primary); }
.error-page { min-height:65vh; display:flex; align-items:center; padding:80px 0; text-align:center; }
.error-page__inner { max-width:700px; }
.error-code { font-size:130px; line-height:.9; font-weight:950; color:var(--ace-primary); letter-spacing:-.08em; }
.error-page h1 { font-size:42px; margin:22px 0 8px; }
.error-page p { color:var(--ace-muted); margin-bottom:28px; }

@media (max-width: 1100px) {
    .site-header__inner { gap:18px; }
    .main-navigation ul { gap:18px; }
    .main-navigation a { font-size:13px; }
    .hero__inner { grid-template-columns:1fr .5fr; gap:35px; }
    .hero__badge { width:270px; height:270px; }
    .hero__badge span { font-size:60px; }
    .about-grid,.contact-grid { gap:55px; }
    .partners-grid { grid-template-columns:repeat(3,1fr); }
    .footer-grid { grid-template-columns:1.2fr 1fr 1fr; }
    .footer-social { grid-column:2/4; }
    .posts-list { grid-template-columns:1fr; }
}

@media (max-width: 980px) {
    .site-header__inner { grid-template-columns:1fr auto; min-height:74px; }
    .site-branding .custom-logo { max-height:52px; }
    .menu-toggle { display:block; justify-self:end; }
    .header-cta { display:none; }
    .main-navigation { display:none; position:absolute; left:20px; right:20px; top:78px; background:white; border:1px solid var(--ace-border); border-radius:18px; box-shadow:var(--ace-shadow); padding:15px; }
    .main-navigation.is-open { display:block; }
    .main-navigation ul { display:block; }
    .main-navigation li { border-bottom:1px solid var(--ace-border); }
    .main-navigation li:last-child { border:0; }
    .main-navigation a { display:block; padding:13px 10px; }
    .main-navigation a::after { display:none; }
    .hero { min-height:auto; }
    .hero__inner { grid-template-columns:1fr; padding:85px 0 125px; }
    .hero__badge { display:none; }
    .hero__content { max-width:760px; }
    .about-grid { grid-template-columns:1fr; gap:50px; }
    .about-media { max-width:700px; }
    .services-grid { grid-template-columns:repeat(2,1fr); }
    .news-grid { grid-template-columns:1fr 1fr; }
    .news-card:last-child { grid-column:1/-1; max-width:calc(50% - 12px); }
    .cta-box { grid-template-columns:1fr; gap:25px; }
    .contact-grid { grid-template-columns:1fr; }
}

@media (max-width: 720px) {
    .ace-container { width:min(calc(100% - 28px),var(--ace-container)); }
    .section { padding:76px 0; }
    .hero h1 { font-size:clamp(42px,12vw,60px); }
    .hero p { font-size:17px; }
    .hero__actions { align-items:stretch; flex-direction:column; max-width:340px; }
    .btn { width:100%; }
    .hero__wave { bottom:-120px; }
    .about-media,.about-media img,.image-placeholder { min-height:360px; height:360px; }
    .about-media__accent { right:-8px; bottom:-16px; }
    .stats-grid { grid-template-columns:1fr 1fr; }
    .stat-card:nth-child(2)::after { display:none; }
    .stat-card strong { font-size:37px; }
    .services-grid,.news-grid { grid-template-columns:1fr; }
    .news-card:last-child { grid-column:auto; max-width:none; }
    .section-heading--split { align-items:flex-start; flex-direction:column; }
    .partners-grid { grid-template-columns:repeat(2,1fr); }
    .contact-card { grid-template-columns:1fr; padding:25px; }
    .contact-card .btn { grid-column:auto; justify-self:stretch; }
    .footer-grid { grid-template-columns:1fr; gap:32px; }
    .footer-social { grid-column:auto; }
    .footer-bottom-inner { flex-direction:column; text-align:center; }
    .loop-card { grid-template-columns:1fr; }
    .loop-card__image { aspect-ratio:1.8; }
    .error-code { font-size:95px; }
}

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* Official ACE GABON brand asset, with WordPress Custom Logo override. */
.ace-official-logo-link { display:inline-flex; align-items:center; justify-content:center; }
.ace-official-logo { display:block; width:auto; height:70px; max-width:145px; object-fit:contain; }
.ace-footer-official-logo { display:inline-flex; background:#fff; border-radius:12px; padding:5px 12px; margin-bottom:8px; }
.ace-footer-official-logo img { display:block; height:65px; width:auto; object-fit:contain; }
@media(max-width:767px) { .ace-official-logo { height:55px; max-width:115px; } .ace-footer-official-logo img { height:55px; } }

/* ACE GABON V1.1 institutional sections */
.ace-dg{background:#f4f8fc}.ace-dg__grid{display:grid;grid-template-columns:minmax(220px,.8fr) 1.3fr;align-items:center;gap:clamp(2rem,5vw,5rem)}.ace-dg__portrait{min-height:310px;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#e3eaf1,#b9d7e7);display:grid;place-items:center}.ace-dg__portrait img{width:100%;height:100%;min-height:310px;object-fit:cover}.ace-dg__placeholder{font-weight:800;font-size:3rem;text-align:center;color:#0b4f9c}.ace-dg__quote{font-size:1.12rem;line-height:1.9}.ace-values__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.ace-value-card{background:white;border:1px solid #e4ebf3;border-radius:20px;padding:30px;box-shadow:0 10px 30px rgba(14,47,82,.06)}.ace-value-card h3{color:var(--ace-primary);margin:0 0 16px}.ace-value-card p{line-height:1.8}.ace-portals{padding:40px 0;background:linear-gradient(105deg,#0b2343,#0b4f9c);color:white}.ace-portals__inner{display:flex;justify-content:space-between;align-items:center;gap:25px}.ace-portals h2{color:white;margin:12px 0 0}.ace-portals__actions{display:flex;gap:12px;flex-wrap:wrap}.ace-portals__actions a{white-space:nowrap}@media(max-width:780px){.ace-dg__grid,.ace-values__grid{grid-template-columns:1fr}.ace-portals__inner{flex-direction:column;align-items:flex-start}}

/* Galerie Photos & Vidéos */
.ace-gallery-home{background:#f4f8fc}.ace-gallery-group{margin-top:42px}.ace-gallery-group__head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:19px}.ace-gallery-group__head h3{margin:0;color:var(--ace-primary)}.ace-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.ace-gallery-card{display:block;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 9px 26px rgba(4,36,67,.09);text-decoration:none;color:#132b40;transition:transform .2s}.ace-gallery-card:hover{transform:translateY(-4px)}.ace-gallery-card__image{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e1edf6}.ace-gallery-card__image img{width:100%;height:100%;object-fit:cover;display:block}.ace-gallery-card h2,.ace-gallery-card h4{font-size:1.08rem;margin:0;padding:18px 20px;color:var(--ace-primary)}.ace-gallery-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;background:rgba(11,79,156,.88);color:#fff;width:58px;height:58px;display:grid;place-items:center}.ace-gallery-empty{display:grid;place-items:center;height:100%;font-size:2.5rem}.ace-gallery-placeholder{padding:25px;background:white;border-radius:12px;grid-column:1/-1}.ace-media-detail{max-width:980px}.ace-media-detail h1{margin:25px 0}.ace-photo-full img{max-width:100%;height:auto;border-radius:14px}.ace-video-player{position:relative;max-width:900px}.ace-video-player iframe{width:100%;aspect-ratio:16/9;height:auto;border:0}.ace-video-player video{width:100%;max-width:100%}.ace-media-description{margin-top:26px}
@media(max-width:800px){.ace-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.ace-gallery-grid{grid-template-columns:1fr}.ace-gallery-group__head{align-items:flex-start;flex-direction:column}}


/* Section divider between News and Gallery */
.ace-section-divider{position:relative;padding:34px 0 26px;background:linear-gradient(180deg,#ffffff 0%,#eef5fb 100%);overflow:hidden}
.ace-section-divider__inner{display:flex;align-items:center;justify-content:center;gap:18px;position:relative;z-index:2}
.ace-section-divider__line{display:block;height:2px;flex:1 1 160px;max-width:240px;background:linear-gradient(90deg,rgba(11,79,156,0),rgba(11,79,156,.55),rgba(11,79,156,0))}
.ace-section-divider__badge{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:999px;background:linear-gradient(135deg,#0b4f9c,#0d75bb);box-shadow:0 16px 35px rgba(11,79,156,.18);color:#fff;font-weight:800;letter-spacing:.16em;font-size:12px;text-transform:uppercase}
.ace-section-divider__text{margin:12px auto 0;text-align:center;max-width:620px;color:#49627a;font-size:15px;position:relative;z-index:2}
.ace-section-divider::before,.ace-section-divider::after{content:"";position:absolute;border-radius:50%;filter:blur(2px);z-index:1}
.ace-section-divider::before{width:240px;height:240px;left:-80px;top:-110px;background:radial-gradient(circle,rgba(40,167,210,.16) 0%,rgba(40,167,210,0) 70%)}
.ace-section-divider::after{width:220px;height:220px;right:-70px;bottom:-120px;background:radial-gradient(circle,rgba(11,79,156,.12) 0%,rgba(11,79,156,0) 72%)}
.ace-section-divider__wave{position:absolute;left:0;right:0;bottom:0;height:36px;background:radial-gradient(55px 20px at 50% 0, rgba(11,79,156,.12) 0, rgba(11,79,156,0) 70%) repeat-x;background-size:160px 36px;opacity:.9}
@media(max-width:640px){.ace-section-divider{padding:28px 0 22px}.ace-section-divider__inner{gap:10px}.ace-section-divider__badge{padding:11px 16px;font-size:11px;letter-spacing:.12em}.ace-section-divider__line{max-width:90px}.ace-section-divider__text{font-size:14px;padding:0 10px}}

/* V1.2.2 : transition purement graphique, sans texte répétitif. */
.ace-media-transition{isolation:isolate;position:relative;height:138px;margin:0;overflow:hidden;background:linear-gradient(110deg,#082d55 0%,#0b4f9c 54%,#1176b5 100%)}
.ace-media-transition__glow{position:absolute;inset:-150px 0 -60px;background:radial-gradient(ellipse at 80% 50%,rgba(67,192,219,.3),transparent 56%);pointer-events:none}
.ace-media-transition__trace{position:absolute;width:560px;height:560px;border:1px solid rgba(255,255,255,.23);border-radius:50%;transform:rotate(-18deg);pointer-events:none}
.ace-media-transition__trace--one{right:8%;top:-430px}
.ace-media-transition__trace--two{right:5%;top:-400px;border-color:rgba(255,255,255,.13)}
.ace-media-transition__curve{display:block;position:absolute;bottom:-1px;left:0;width:100%;height:90px}
.ace-gallery-home{background:#f4f8fc}
@media(max-width:720px){.ace-media-transition{height:94px}.ace-media-transition__curve{height:64px}}

/* V1.3 Albums and accessible photo lightbox */
.ace-album-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-15px 0 38px}
.ace-album-nav a{display:inline-flex;padding:9px 17px;background:#eef5fc;color:#0b4f9c;border:1px solid #d2e4f3;border-radius:24px;font-weight:700;font-size:13px}
.ace-album-nav a:hover{background:#0b4f9c;color:#fff}
.ace-lightbox-open{position:relative;display:block;width:100%;border:0;background:transparent;padding:0;cursor:zoom-in;text-align:center}
.ace-lightbox-open img{max-width:100%;height:auto}
.ace-lightbox-open span{position:absolute;right:15px;bottom:15px;background:rgba(3,32,62,.85);color:white;padding:8px 14px;border-radius:20px;font-size:13px}
.ace-lightbox[hidden]{display:none!important}
.ace-lightbox{position:fixed;z-index:999999;inset:0;padding:68px 20px 25px;background:rgba(3,16,33,.97);display:flex;align-items:center;justify-content:center}
.ace-lightbox img{max-width:100%;max-height:calc(100vh - 98px);object-fit:contain}
.ace-lightbox__close{position:absolute;top:12px;right:22px;font-size:42px;line-height:1;background:transparent;color:white;border:0;cursor:pointer;z-index:2}
body.ace-no-scroll{overflow:hidden}
