/**
 * AS Golf template. Colours, fonts and measures of the previous site (JoomShaper Livesports / Helix Ultimate, preset 2 +
 * its custom CSS and css/asgolf.css), rebuilt without Helix: white sticky header, lime green accents, Titillium Web,
 * boxed side menus on the left, dark bottom row and footer.
 */
:root {
  --ag-lime: #c7d400;
  --ag-ink: #252525;
  --ag-black: #000;
  --ag-white: #fff;
  --ag-line: #f3f3f3;
  --ag-bottom-bg: #1c1c1a;
  --ag-footer-bg: #171717;
  --ag-footer-link: #a2a2a2;
  --ag-header-h: 80px;
  --ag-font: "Titillium Web", system-ui, sans-serif;
  --bs-body-font-family: var(--ag-font);
  --bs-body-color: var(--ag-ink);
  --bs-link-color: var(--ag-lime);
  --bs-link-color-rgb: 199, 212, 0;
  --bs-link-hover-color: var(--ag-black);
  --bs-link-hover-color-rgb: 0, 0, 0;
  --bs-primary: var(--ag-lime);
  --bs-primary-rgb: 199, 212, 0;
  /* Names of the old css/asgolf.css, still used by imported content */
  --couleur-principale: var(--ag-lime);
  --couleur-menu: var(--ag-black);
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
  font-family: var(--ag-font);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--ag-ink);
  background: var(--ag-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; }
a { color: var(--ag-lime); text-decoration: none; transition: color .4s, background-color .4s; }
a:hover, a:focus { color: var(--ag-black); }

/* Headings and lists as Helix set them for the whole site (template fonts options + its reset) */
h1, h2, h3, h4, h5, h6 { font-family: var(--ag-font); }
h1 { font-size: 1rem; }
h2 { font-size: 20px; font-weight: 900; }
h3 { font-weight: 600; color: var(--ag-black); }
h4, h5, h6 { font-family: Arial, sans-serif; }
ul { list-style: none; margin: 0; padding: 0; }

.ag-container { width: 100%; max-width: 1320px; margin: 0 auto; padding: 0 15px; }
@media (max-width: 1399.98px) { .ag-container { max-width: 1140px; } }
@media (max-width: 1199.98px) { .ag-container { max-width: 960px; } }
@media (max-width: 991.98px) { .ag-container { max-width: 720px; } }
@media (max-width: 767.98px) { .ag-container { max-width: 540px; } }
@media (max-width: 575.98px) { .ag-container { max-width: none; } }

/* Buttons: lime (old custom CSS .btn-primary / .sppb-btn-primary), white secondary */
.btn-primary, .sppb-btn-primary {
  --bs-btn-color: var(--ag-white);
  --bs-btn-bg: var(--ag-lime);
  --bs-btn-border-color: var(--ag-lime);
  --bs-btn-hover-color: var(--ag-white);
  --bs-btn-hover-bg: var(--ag-black);
  --bs-btn-hover-border-color: var(--ag-black);
  --bs-btn-active-bg: var(--ag-black);
  --bs-btn-active-border-color: var(--ag-black);
}
.btn-secondary { --bs-btn-color: var(--ag-black); --bs-btn-bg: var(--ag-white); --bs-btn-border-color: #ccc; }
.sppb-readmore, a.sppb-readmore {
  /* One look for every "read more" (articles, news, competitions): black on lime, as the competitions' buttons. */
  display: inline-block;
  margin-top: 1rem;
  padding: 5px 12px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: .7rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--ag-black);
  background-color: var(--ag-lime);
  text-decoration: none;
}
.sppb-readmore:hover, .sppb-readmore:focus { color: var(--ag-white); background-color: var(--ag-black); }
/* Secondary actions (competitions: entrants, information): white with a black border, lime on hover only. */
.sppb-readmore--outline, a.sppb-readmore--outline { border-color: var(--ag-black); color: var(--ag-black); background-color: var(--ag-white); }
.sppb-readmore--outline:hover, .sppb-readmore--outline:focus-visible { border-color: var(--ag-black); color: var(--ag-black); background-color: var(--ag-lime); }

/* Skip link */
.ag-skip {
  position: absolute;
  left: 1rem;
  top: -100px;
  z-index: 2000;
  padding: .75rem 1.25rem;
  background: var(--ag-white);
  color: var(--ag-black);
  font-weight: 700;
}
.ag-skip:focus { top: 1rem; }
.ag-main:focus { outline: none; }

/* Header: white bar, logo left, menu and burger right */
.ag-header {
  position: relative;
  z-index: 1030;
  height: var(--ag-header-h);
  background: var(--ag-white);
  box-shadow: 0 0 4px rgba(0, 0, 0, .1);
}
.ag-header--sticky { position: sticky; top: 0; }
.ag-scrolled .ag-header--sticky { box-shadow: 0 0 10px rgba(0, 0, 0, .15); }
.admin-bar .ag-header--sticky, body:has(#ouieditmenu-bar) .ag-header--sticky { top: var(--oui-editmenu-height, 0px); }
.ag-header__inner { display: flex; align-items: center; gap: 1.5rem; height: 100%; }
.ag-logo { display: inline-flex; align-items: center; height: 100%; flex: none; }
.ag-logo img { display: block; width: auto; max-height: calc(var(--ag-header-h) - 8px); }

/* Main menu (core mod_menu, default layout): uppercase, lime underline on hover, white drop-downs */
.ag-nav { flex: 1 1 auto; display: none; justify-content: flex-end; height: 100%; }
@media (min-width: 992px) { .ag-nav { display: flex; } }
.ag-nav .mod-menu { display: flex; flex-wrap: nowrap; height: 100%; margin: 0; padding: 0; list-style: none; }
.ag-nav .mod-menu > li { position: relative; display: flex; align-items: center; height: 100%; }
.ag-nav .mod-menu > li::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 20px;
  width: 0;
  height: 2px;
  background: var(--ag-lime);
  transition: width .4s;
}
.ag-nav .mod-menu > li:hover::before, .ag-nav .mod-menu > li.active::before { width: calc(100% - 30px); }
.ag-nav .mod-menu > li > a,
.ag-nav .mod-menu > li > span {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 0 0 0;
  margin-right: 30px;
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--ag-ink);
  text-decoration: none;
  white-space: nowrap;
  cursor: default;
}
.ag-nav .mod-menu > li > a { cursor: pointer; }
.ag-nav .mod-menu > li:last-child > a, .ag-nav .mod-menu > li:last-child > span { margin-right: 0; }
.ag-nav .mod-menu > li > a:hover,
.ag-nav .mod-menu > li > a:focus,
.ag-nav .mod-menu > li:hover > span,
.ag-nav .mod-menu > li.active > a,
.ag-nav .mod-menu > li.active > span { color: var(--ag-lime); }
/* Core mod_menu's chevron button opens the drop-down for keyboard and touch (menu.js sets aria-hidden on the list). */
.ag-nav .mod-menu__toggle-sub {
  align-self: stretch;
  margin: 0 20px 0 -24px;
  padding: 0 4px;
  color: var(--ag-ink);
  background: none;
  border: 0;
  cursor: pointer;
}
.ag-nav .mod-menu__toggle-sub .icon-chevron-down { margin: 0; font-size: 10px; transition: transform .2s; }
.ag-nav .mod-menu > li:hover > .mod-menu__toggle-sub,
.ag-nav .mod-menu > li.active > .mod-menu__toggle-sub,
.ag-nav .mod-menu__toggle-sub:focus-visible { color: var(--ag-lime); }
.ag-nav .mod-menu__toggle-sub:focus-visible { outline: 2px solid var(--ag-lime); outline-offset: -20px; }
.ag-nav .mod-menu > li.parent > a, .ag-nav .mod-menu > li.parent > span { padding-right: 20px; }
.ag-nav .mod-menu__sub {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  margin: 0;
  padding: 20px;
  list-style: none;
  background: var(--ag-white);
  box-shadow: 0 3px 5px 0 rgba(0, 0, 0, .2);
  display: block;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity .3s, transform .3s, visibility .3s;
}
.ag-nav li:hover > .mod-menu__sub,
.ag-nav .mod-menu__sub[aria-hidden="false"] { opacity: 1; visibility: visible; transform: none; }
/* Last items: drop-down aligned on the right edge so it stays on screen */
.ag-nav .mod-menu > li:nth-last-child(-n+2) > .mod-menu__sub { left: auto; right: 0; }
/* Third level: listed inside the drop-down, indented (core opens a whole branch at once). */
.ag-nav .mod-menu__sub .mod-menu__sub {
  position: static;
  min-width: 0;
  padding: 0 0 0 15px;
  box-shadow: none;
  opacity: inherit;
  visibility: inherit;
  transform: none;
  transition: none;
}
.ag-nav .mod-menu__sub li { position: relative; padding: 4px 0; }
.ag-nav .mod-menu__sub a,
.ag-nav .mod-menu__sub span {
  display: block;
  padding: 4px 0;
  font-size: 16px;
  color: var(--ag-ink);
  text-decoration: none;
}
.ag-nav .mod-menu__sub span { font-weight: 600; }
.ag-nav .mod-menu__sub a:hover,
.ag-nav .mod-menu__sub a:focus { color: var(--ag-lime); }
.ag-nav .mod-menu__sub li.current > a { color: var(--ag-black); font-weight: 700; }

/* Burger (always visible, as the old mega + off-canvas menu) */
.ag-burger {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
  flex: none;
  width: 44px;
  height: 44px;
  margin-left: auto;
  margin-right: -10px;
  padding: 0 10px;
  border: 0;
  background: none;
  cursor: pointer;
}
.ag-burger > span:not(.visually-hidden) { display: block; width: 24px; height: 2px; border-radius: 2px; background: var(--ag-black); transition: width .25s, background-color .25s; }
.ag-burger > span:nth-child(2) { width: 16px; }
.ag-burger > span:nth-child(3) { width: 20px; }
.ag-burger:hover > span:not(.visually-hidden), .ag-burger:focus-visible > span:not(.visually-hidden) { width: 24px; background: var(--ag-lime); }
.ag-burger:focus-visible, .ag-offcanvas__close:focus-visible { outline: 2px solid var(--ag-lime); outline-offset: 2px; }

/* Off-canvas menu (dialog on the right, white) */
html:has(.ag-offcanvas[open]) { overflow: hidden; }
.ag-offcanvas {
  position: fixed;
  inset: 0 0 0 auto;
  width: min(360px, 92vw);
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0 0 32px;
  border: 0;
  color: var(--ag-ink);
  background: var(--ag-white);
  box-shadow: 0 0 20px rgba(0, 0, 0, .2);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.ag-offcanvas::backdrop { background: rgba(0, 0, 0, .5); }
.ag-offcanvas[open] { animation: ag-slide-in .3s ease-out; }
.ag-offcanvas[open]::backdrop { animation: ag-fade-in .3s ease-out; }
@keyframes ag-slide-in { from { transform: translateX(100%); } }
@keyframes ag-fade-in { from { opacity: 0; } }
.ag-offcanvas__top { display: flex; align-items: center; gap: 1rem; padding: 16px 16px 16px 24px; }
.ag-offcanvas__login { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; color: var(--ag-ink); }
.ag-offcanvas__login:hover, .ag-offcanvas__login:focus-visible { text-decoration: underline; text-decoration-color: var(--ag-lime); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.ag-offcanvas__close {
  width: 44px;
  height: 44px;
  margin-left: auto;
  padding: 0;
  border: 0;
  border-radius: 50%;
  font-size: 32px;
  line-height: 1;
  color: var(--ag-ink);
  background: none;
  cursor: pointer;
  transition: color .2s, transform .2s;
}
.ag-offcanvas__close:hover { transform: rotate(90deg); }
.ag-offcanvas ul { margin: 0; padding: 0; list-style: none; }
.ag-offcanvas .mod-menu { display: block; padding: 0 24px; }
/* Link and chevron button on one row, the sub-menu below them (hidden until the button opens it: core menu.js). */
.ag-offcanvas li { display: flex; flex-wrap: wrap; align-items: center; }
.ag-offcanvas .mod-menu > li { border-bottom: 1px solid #e6e6e6; }
/* Sub-menus hang from a guide line, so the levels read at a glance. */
.ag-offcanvas li > ul { flex: 0 0 100%; margin: 0 0 12px 2px; padding: 0 0 0 14px; border-left: 2px solid #e6e6e6; }
.ag-offcanvas ul ul ul { padding-bottom: 0; }
.ag-offcanvas a, .ag-offcanvas span.nav-header, .ag-offcanvas span.separator, .ag-offcanvas li > span {
  flex: 1 1 0;
  display: block;
  padding: 13px 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--ag-ink);
  text-decoration: none;
}
.ag-offcanvas ul ul a, .ag-offcanvas ul ul li > span { padding: 9px 0; font-size: 16px; font-weight: 400; color: #3b3b3b; }
/* Lime on white is too pale for text: the current page and hovered links stay dark, underlined in lime. */
.ag-offcanvas a:hover, .ag-offcanvas a:focus-visible, .ag-offcanvas li.current > a, .ag-offcanvas li.active > a {
  color: var(--ag-ink);
  text-decoration: underline;
  text-decoration-color: var(--ag-lime);
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}
.ag-offcanvas li.current > a { font-weight: 700; }
.ag-offcanvas .mod-menu__toggle-sub {
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-right: -12px;
  border: 0;
  border-radius: 50%;
  color: var(--ag-ink);
  background: none;
  cursor: pointer;
}
.ag-offcanvas .mod-menu__toggle-sub .icon-chevron-down { margin: 0; font-size: 12px; transition: transform .25s; }
.ag-offcanvas .mod-menu__toggle-sub[aria-expanded="true"] .icon-chevron-down { transform: rotate(180deg); }
.ag-offcanvas .mod-menu__toggle-sub:hover { background: var(--ag-line); }
.ag-offcanvas .mod-menu__toggle-sub:focus-visible { outline: 2px solid var(--ag-ink); outline-offset: -4px; }
.ag-offcanvas .ag-module, .ag-offcanvas > .moduletable { padding: 0 24px; }

/* Page title bar (lime, white heading) */
.ag-title { padding: 30px 0; background: var(--ag-lime); }
.ag-title__heading { margin: 0; font-size: 24px; font-weight: 900; line-height: 1; color: var(--ag-white); }

/* Body: full width (old custom CSS), boxed side menus on the left from 992px */
.ag-body { flex: 1 0 auto; display: flex; align-items: flex-start; gap: 30px; padding: 0 15px; }
.ag-main { flex: 1 1 0; min-width: 0; display: block; }
body:not(.com_sppagebuilder):not(.com_blocks) .ag-body { padding-top: 100px; padding-bottom: 100px; }
.ag-left { flex: 0 0 calc((100% + 30px) / 6 - 30px); display: none; }
@media (min-width: 992px) { .ag-left { display: block; } }
.ag-left .ag-module {
  margin-top: 20px;
  padding: 16px 20px 10px;
  border: 1px solid #e3e3e3;
  border-radius: 6px;
  background: var(--ag-white);
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
}
.ag-left .ag-module__title { margin: 0 0 6px; font-size: 20px; font-weight: 700; line-height: 1.2; color: var(--ag-black); }
.ag-left ul { display: block; margin: 0; padding: 0; list-style: none; }
.ag-left ul > li { border-bottom: 1px solid #ececec; }
.ag-left ul > li:last-child { border-bottom: 0; }
.ag-left ul > li > a, .ag-left ul > li > span {
  display: block;
  padding: 8px 0;
  font-size: 16px;
  line-height: 1.35;
  color: var(--ag-ink);
  text-decoration: none;
  transition: padding-left .15s, box-shadow .15s;
}
/* Hover and current page: dark text (lime text is too pale on white), a lime bar on the left. */
.ag-left ul > li > a:hover, .ag-left ul > li > a:focus-visible, .ag-left ul > li.current > a, .ag-left ul > li.active > a {
  padding-left: 10px;
  color: var(--ag-black);
  box-shadow: inset 3px 0 var(--ag-lime);
}
.ag-left ul > li.current > a { font-weight: 700; }
.ag-left ul > li > a:focus-visible { outline: 2px solid var(--ag-ink); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .ag-left ul > li > a { transition: none; } }

/* Articles (old custom CSS) */
.com-content-article a:not(.btn), .item-page a:not(.btn) { color: var(--ag-black); }
.com-content-article .page-header > h1, .com-content-article .page-header > h2 { font-size: 2rem; font-weight: 600; line-height: 1.25; text-align: center; }
.com-content-article .item-image { margin-bottom: 1.5rem; }

/* Category blogs (css/asgolf.css): bordered cards, picture on top, "Lire la suite" bottom right */
.com-content-category-blog__items.masonry-2 { display: flex; flex-wrap: wrap; gap: 1rem; }
.com-content-category-blog__items.masonry-2 .blog-item { flex: 1 1 30%; position: relative; }
@media (max-width: 1250px) { .com-content-category-blog__items.masonry-2 .blog-item { flex-basis: 48%; } }
@media (max-width: 960px) { .com-content-category-blog__items.masonry-2 .blog-item { flex-basis: 100%; } }
.com-content-category-blog__items.masonry-2 .blog-item img { width: 100%; max-width: 100%; height: 300px; object-fit: cover; object-position: center top; }
.blog-item { border: 1px solid #eee; }
.blog-item .item-image img { width: 100%; }
.blog-item .item-content { padding: 2rem 2rem 4rem; }
.blog-item .item-content a { color: #666; }
.blog-item .item-content h2 { font-weight: 700; }
.blog-item .item-content h2 a { color: var(--ag-black); }
.item-content .readmore { position: absolute; bottom: 2rem; right: 1rem; margin: 0; }
.item-content .readmore a.btn { padding: .5rem; font-size: 1rem; font-weight: 700; line-height: 1.3rem; text-transform: none; color: var(--ag-white); background: var(--ag-lime); border-color: var(--ag-lime); }
.item-content .readmore a.btn:hover, .item-content .readmore a.btn:focus { color: var(--ag-white); background: var(--ag-black); border-color: var(--ag-black); }
.plus_articles { padding: 2rem 0; }
.com-content-blog__links { padding: 0; list-style: none; }
li.com-content-blog__link { line-height: 1.5rem; }
li.com-content-blog__link a { color: var(--ag-black); }
li.com-content-blog__link a:hover { font-weight: 700; letter-spacing: 1px; }

/* Latest articles cards (html/mod_articles_latest/default.php: home page "Calendrier", "Équipes"…) */
.ag-latest { margin: 0; padding: 0; list-style: none; }
.ag-latest__img { display: block; height: 20vh; background: #eee var(--ag-card-img, none) top center / cover no-repeat; }
.ag-latest__title { margin: .75rem 0 .5rem; font-size: 1.5rem; font-weight: 600; }
.ag-latest__title a { color: var(--ag-black); }
.ag-latest__title a:hover, .ag-latest__title a:focus { color: var(--ag-lime); }
.ag-latest__text { display: block; }
.ag-latest__actions { display: block; clear: both; padding: 2rem 0; }

/* Competition buttons under a competition (html/com_content/article/default.php) */
.ag-competition { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0; }

/* Log-in, lost password, lost username: a centred white card on the golf picture. */
/* Focused fields and #anchors stop below the sticky header. */
html { scroll-padding-top: calc(var(--ag-header-h) + 16px); }

:is(.view-login, .view-reset, .view-remind) .ag-body { background: url("/images/2023/03/05/dernier-tir02-asgolf.webp") center center / cover no-repeat; }
:is(.view-login, .view-reset, .view-remind) .ag-main { display: flex; justify-content: center; align-items: center; }
:is(.com-users-login, .com-users-reset, .com-users-remind) {
  width: 100%;
  max-width: 440px;
  padding: 2rem 2.25rem;
  border-radius: 10px;
  color: var(--ag-ink);
  background: var(--ag-white);
  box-shadow: 0 10px 40px rgba(0, 0, 0, .3);
}
:is(.com-users-login, .com-users-reset, .com-users-remind) .page-header h1 { margin: 0 0 .75rem; font-size: 1.75rem; font-weight: 800; line-height: 1.15; color: var(--ag-black); }
.com-users-login__description { margin-bottom: 1.5rem; color: #4a4a4a; }
/* From 768px the log-in page has two columns: heading and intro straight on the picture (left), the form in a white frame
   (right: a ::before grid item behind the form and its links, so both share one frame and one shadow). */
@media (min-width: 768px) {
  .view-login .ag-body { background: linear-gradient(90deg, rgba(0, 0, 0, .65) 0%, rgba(0, 0, 0, .45) 50%, rgba(0, 0, 0, .1) 80%), url("/images/2023/03/05/dernier-tir02-asgolf.webp") center center / cover no-repeat; }
  .com-users-login {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
    grid-template-rows: auto 1fr auto;
    gap: 0 4rem;
    max-width: 960px;
    padding: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
  }
  .com-users-login::before {
    content: "";
    grid-column: 2;
    grid-row: 1 / 4;
    border-radius: 10px;
    background: var(--ag-white);
    box-shadow: 0 10px 40px rgba(0, 0, 0, .3);
  }
  .com-users-login > .page-header { grid-column: 1; grid-row: 1; align-self: end; }
  .com-users-login > .page-header h1 { font-size: 2.75rem; color: var(--ag-white); text-shadow: 0 2px 12px rgba(0, 0, 0, .5); }
  .com-users-login > .com-users-login__description { grid-column: 1; grid-row: 2 / 4; margin: 0; font-size: 1.2rem; line-height: 1.5; color: var(--ag-white); text-shadow: 0 1px 8px rgba(0, 0, 0, .6); }
  .com-users-login > form, .com-users-login > .com-users-login__options { position: relative; grid-column: 2; }
  .com-users-login > form { grid-row: 1 / 3; padding: 2.25rem 2.25rem 0; }
  .com-users-login > .com-users-login__options { grid-row: 3; justify-content: flex-start; margin: 0; padding: 1.25rem 2.25rem 2.25rem; }
}

.com-users-login__description > :last-child { margin-bottom: 0; }
:is(.com-users-login, .com-users-reset, .com-users-remind) fieldset { display: flex; flex-direction: column; margin: 0; padding: 0; border: 0; }
:is(.com-users-login, .com-users-reset, .com-users-remind) legend { margin-bottom: .75rem; font-size: 1.5rem; font-weight: 800; line-height: 1.2; color: var(--ag-black); }
:is(.com-users-login, .com-users-reset, .com-users-remind) .control-group { margin-bottom: 1rem; }
:is(.com-users-login, .com-users-reset, .com-users-remind) .control-label label { display: block; margin-bottom: .35rem; font-size: 15px; font-weight: 600; color: var(--ag-ink); }
:is(.com-users-login, .com-users-reset, .com-users-remind) .star { color: #6b6b6b; }
:is(.com-users-login, .com-users-reset, .com-users-remind) .form-control { height: 46px; padding: 8px 12px; border: 1px solid #c4c4c4; border-radius: 6px; font-size: 16px; }
:is(.com-users-login, .com-users-reset, .com-users-remind) .form-control:focus { border-color: var(--ag-ink); outline: 2px solid var(--ag-lime); outline-offset: 0; box-shadow: none; }
.com-users-login .input-group .form-control { border-right: 0; border-radius: 6px 0 0 6px; }
.com-users-login .input-password-toggle { width: 46px; border: 1px solid #c4c4c4; border-radius: 0 6px 6px 0; color: var(--ag-ink); background: #f4f4f4; }
.com-users-login__remember { margin: -.25rem 0 1.25rem; }
/* Main button: full width, black on lime; the passkey button (when there is one) under it. */
:is(.com-users-login, .com-users-reset, .com-users-remind) .btn-primary {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 700;
  color: var(--ag-black);
  background: var(--ag-lime);
}
:is(.com-users-login, .com-users-reset, .com-users-remind) .btn-primary:hover, :is(.com-users-login, .com-users-reset, .com-users-remind) .btn-primary:focus-visible { color: var(--ag-white); background: var(--ag-black); }
.com-users-login__submit:has(.plg_system_webauthn_login_button) { display: none; } /* no passkey button on the site (the admin keeps it) */
/* Lost password / lost username: two text links under the form. */
.com-users-login__options { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: .25rem 1.5rem; margin-top: 1.25rem; }
.com-users-login__options .list-group-item { padding: 0; border: 0; font-size: 15px; color: var(--ag-ink); background: none; text-decoration: underline; text-decoration-color: var(--ag-lime); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.com-users-login__options .list-group-item:hover, .com-users-login__options .list-group-item:focus-visible { color: var(--ag-black); text-decoration-color: currentColor; }
@media (max-width: 575.98px) { :is(.com-users-login, .com-users-reset, .com-users-remind) { padding: 1.5rem 1.25rem; } }

/* Bottom row: dark, 4 columns */
.ag-bottom { padding: 60px 0 20px; font-size: 14px; line-height: 1.6; color: var(--ag-white); background: var(--ag-bottom-bg); }
.ag-bottom__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 30px; }
@media (max-width: 991.98px) { .ag-bottom__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .ag-bottom__grid { grid-template-columns: 1fr; } }
.ag-bottom .ag-module { margin-bottom: 30px; }
.ag-bottom .ag-module__title { margin: 0 0 20px; font-size: 18px; font-weight: 700; line-height: 1.2; color: var(--ag-white); }
.ag-bottom ul { display: block; margin: 0; padding: 0; list-style: none; }
.ag-bottom ul > li { padding: 4px 0; }
.ag-bottom a { color: var(--ag-footer-link); }
.ag-bottom a:hover, .ag-bottom a:focus { color: var(--ag-white); }

/* Footer */
.ag-footer { color: var(--ag-white); background: var(--ag-footer-bg); }
.ag-footer__inner { display: flex; flex-wrap: wrap; gap: 1rem 30px; padding-top: 50px; padding-bottom: 50px; border-top: 1px solid var(--ag-lime); }
.ag-footer__col { flex: 1 1 300px; }
.ag-footer__col:empty { display: none; }
.ag-copyright { margin: 0; }
.ag-footer a, .ag-copyright__btn { color: var(--ag-footer-link); text-decoration: none; transition: color .2s; }
.ag-footer a:hover, .ag-footer a:focus-visible, .ag-copyright__btn:hover, .ag-copyright__btn:focus-visible { color: var(--ag-white); }
.ag-copyright__btn { padding: 0; border: 0; font: inherit; background: none; cursor: pointer; }

/* Back to top */
.ag-top {
  position: fixed;
  right: 30px;
  bottom: 60px;
  z-index: 1000;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  font-size: 16px;
  color: var(--ag-white);
  background: rgba(100, 100, 100, .4);
  border-radius: 50%;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s, background-color .3s;
}
.ag-top.is-visible { opacity: 1; visibility: visible; }
.ag-top:hover, .ag-top:focus { color: var(--ag-white); background: var(--ag-black); }

/* Site tools (bottom left): accessibility (oui4all) above cookies (ConsentKit); their own floating buttons are hidden. */
.ag-tools { position: fixed; left: 16px; bottom: 16px; z-index: 1000; display: flex; flex-direction: column; gap: 10px; }
.ag-tools__btn {
  display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 2px solid var(--ag-white); border-radius: 50%;
  color: var(--ag-black); background: var(--ag-lime); box-shadow: 0 2px 8px rgba(0, 0, 0, .35); cursor: pointer;
  transition: background .15s, color .15s, transform .15s;
}
.ag-tools__btn:hover, .ag-tools__btn[aria-expanded="true"] { color: var(--ag-white); background: var(--ag-black); }
.ag-tools__btn:hover { transform: scale(1.06); }
.ag-tools__btn:focus-visible { outline: 3px solid var(--ag-black); outline-offset: 3px; }
.has-consent-button .ck-icon { display: none !important; }
@media (max-width: 767.98px) {
  .ag-tools { left: 12px; bottom: 12px; gap: 8px; }
  .ag-tools__btn { width: 40px; height: 40px; }
}
@media print { .ag-tools, .ag-top, .ag-header, .ag-left, .ag-bottom { display: none; } }

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

/* Page heading for screen readers and search engines on pages whose component prints none (index.php). */
.ag-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Error page */
.ag-error__main { max-width: 720px; margin: 0 auto; padding: clamp(48px, 8vw, 96px) 15px 48px; text-align: center; }
.ag-error__code { margin: 0; font-size: clamp(5rem, 20vw, 10rem); font-weight: 900; line-height: 1; color: var(--ag-lime); }
.ag-error__title { margin: .5rem 0 1rem; font-size: clamp(1.5rem, 4vw, 2.25rem); }
.ag-error__lead { max-width: 560px; margin: 0 auto 2rem; font-size: 1.125rem; color: rgba(9, 30, 66, .75); }
.ag-error__search { display: flex; gap: 8px; max-width: 520px; margin: 0 auto 1.5rem; }
.ag-error__search .form-control { flex: 1; min-width: 0; }
.ag-error__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ag-error__debug { margin-top: 2rem; font-family: monospace; text-align: left; }
.ag-error__more { padding: 0 0 64px; }
.ag-error__more .ag-latest { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.ag-error__more .ag-latest__img { height: 180px; border-radius: 6px; }
.ag-error__more .ag-latest__title { font-size: 1.125rem; }
.ag-error__more .ag-latest__text, .ag-error__more .ag-latest__actions { display: none; }
@media (max-width: 480px) { .ag-error__search { flex-direction: column; } }

/* Article view info: the publication date only, centred, as the old site */
.com-content-article .article-info { display: flex; justify-content: center; margin: 30px 0 1rem; }
.com-content-article .article-info-term,
.com-content-article .article-info .createdby,
.com-content-article .article-info .category-name,
.com-content-article .article-info .parent-category-name,
.com-content-article .article-info .hits,
.com-content-article .article-info .published .icon-calendar { display: none; }
.com-content-article .article-info .published { margin: 0; font-size: 16px; line-height: 20px; color: rgba(9, 30, 66, .7); }

/* Front-end editing tooltips (as Cassiopeia): hidden until the edit button is hovered or focused */
[role="tooltip"]:not(.show) {
  z-index: 1070; display: none; max-width: 100%; margin: .5em; padding: .5em; right: 5em;
  color: #000; text-align: start; background: #fff; border: 1px solid #6d757e; border-radius: .25rem; box-shadow: 0 0 .5rem rgba(0, 0, 0, .8);
}
[role="tooltip"]:not(.show)[id^="editarticle-"], [role="tooltip"]:not(.show)[id^="editcontact-"] { margin-inline-start: -10em; right: auto; }
:focus + [role="tooltip"], :hover + [role="tooltip"] { display: block; position: absolute; }
.jmoddiv { position: relative; }

/* Home page and competitions module (old css/asgolf.css, kept for the imported pages and mod_competitions) */
.sppb-article-info-wrap h3 a, .title-competition h3 a { color: var(--ag-black); }
#articles-accueil .sppb-img-responsive { display: block; width: 100%; max-width: 100%; height: 200px; object-fit: contain; background: #eee; }
.sppb-article-introtext { margin-bottom: 1.5rem; }
.title-competition { display: block; padding: 1rem; }
li.listng-competition { margin-bottom: 2rem; padding: 1rem; border-bottom: 2px solid #eee; }
.presentation { width: 100%; height: 50px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.meganews-btn:hover { color: var(--ag-white); background-color: #333; transition: ease-in-out .4s; }

/* Competitions list (html/mod_articles_latest/competitions.php, was mod_competitions' inline CSS) */
.ag-competitions .calendrier { display: flex; }
.ag-competitions .date { width: 20%; }
.ag-competitions .competition { width: 80%; }
.ag-competitions .competition img { width: 100%; }
.ag-competitions .jour { display: block; font-size: 3rem; font-weight: 700; line-height: 1.2; text-align: center; }
.ag-competitions .mois { display: block; font-size: .6rem; letter-spacing: 1px; text-align: center; text-transform: uppercase; }
.ag-competitions .title-competition h3 { margin: .5rem 0; font-size: 1.5rem; }
.ag-competitions .title-competition .btn { margin: .25rem .25rem 0 0; }

/* Slider (html/mod_articles_latest/slider.php, was mod_slider): stacked slides, the first one on top */
.ag-slider { position: relative; }
.mod-meganews { position: relative; height: 50vh; margin: 0; padding: 0; }
.mod-meganews > li { position: absolute; inset: 0; background: #000 top center / cover no-repeat; }
.mod-meganews > li:first-child { z-index: 3; }
.mod-meganews > li:not(:first-child) { visibility: hidden; }
.mod-meganews > li::before { content: ""; position: absolute; inset: 0; z-index: 1; background-color: rgba(0, 0, 0, .3); }
.background_slider { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; height: 50vh; margin: 0; padding: 0 12%; text-align: center; }
.slider_content { color: var(--ag-white); font-weight: 700; line-height: 1.2; }
.slider_content h2 { margin: 0 0 .5rem; font-size: 2rem; color: var(--ag-white); }
.slider_text { margin-bottom: 1rem; }
.meganews-btn { display: inline-block; padding: 5px 12px; color: var(--ag-white); background-color: var(--ag-black); }
.ag-slider .navigation-buton { position: absolute; top: 50%; z-index: 11; padding: 8px; border: 0; font-size: 2rem; line-height: 1; color: var(--ag-white); background: none; transform: translateY(-50%); cursor: pointer; }
.ag-slider__prev { left: 3%; }
.ag-slider__next { right: 3%; }
.ag-slider .navigation-buton:hover, .ag-slider .navigation-buton:focus-visible { color: var(--ag-lime); }
.ag-slider .navigation-buton:focus-visible { outline: 2px solid var(--ag-lime); outline-offset: 2px; }

/* Joomla 6 mod_menu: a parent without link (separator / heading) is a <button class="mod-menu__toggle-sub"> wrapping its
   label and the chevron. Top level: styled as the other items (uppercase, lime when open / hovered / active). */
.ag-nav .mod-menu > li > .mod-menu__toggle-sub:has(> .mod-menu__separator, > .nav-header) {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 100%;
  margin: 0 30px 0 0;
  padding: 0;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--ag-ink);
}
.ag-nav .mod-menu > li:last-child > .mod-menu__toggle-sub { margin-right: 0; }
.ag-nav .mod-menu > li:hover > .mod-menu__toggle-sub,
.ag-nav .mod-menu > li > .mod-menu__toggle-sub[aria-expanded="true"],
.ag-nav .mod-menu > li.active > .mod-menu__toggle-sub { color: var(--ag-lime); }
.ag-nav .mod-menu > li > .mod-menu__toggle-sub:focus-visible { outline: 2px solid var(--ag-lime); outline-offset: 4px; }
/* Inside a drop-down: a parent without link is a sub-heading (its branch is listed under it), no chevron. */
.ag-nav .mod-menu__sub .mod-menu__toggle-sub:has(> .mod-menu__separator, > .nav-header) {
  display: block;
  margin: 0;
  padding: 4px 0;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  text-align: left;
  color: var(--ag-ink);
  background: none;
  border: 0;
  pointer-events: none;
}
.ag-nav .mod-menu__sub .mod-menu__toggle-sub .icon-chevron-down { display: none; }
/* Off-canvas: the same button is the row (label left, chevron right). */
.ag-offcanvas .mod-menu__toggle-sub:has(> .mod-menu__separator, > .nav-header) {
  flex: 1 1 0;
  display: flex;
  justify-content: space-between;
  width: auto;
  height: auto;
  margin: 0;
  padding: 13px 0;
  border-radius: 0;
  font: inherit;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
  text-align: left;
}
.ag-offcanvas .mod-menu__toggle-sub:has(> .mod-menu__separator, > .nav-header):hover { background: none; text-decoration: underline; text-decoration-color: var(--ag-lime); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.ag-offcanvas ul ul .mod-menu__toggle-sub:has(> .mod-menu__separator, > .nav-header) { padding: 9px 0; font-size: 16px; font-weight: 400; }
.ag-offcanvas .mod-menu__toggle-sub > .mod-menu__separator { padding: 0; font: inherit; text-transform: inherit; }

/* Live search (mod_oui_search) at the top of the off-canvas menu: a full-width field, results in the panel's flow. */
.ag-offcanvas .oui-search { padding: 4px 24px 12px; }
.ag-offcanvas .oui-search input.oui-search__input {
  height: 44px;
  margin: 0;
  padding: 8px 14px;
  border: 1px solid #c9c9c9;
  border-radius: 6px;
  font: 16px/1.2 var(--ag-font);
  color: var(--ag-ink);
}
.ag-offcanvas .oui-search input.oui-search__input:focus { border-color: var(--ag-ink); outline: 2px solid var(--ag-lime); outline-offset: 0; }
.ag-offcanvas .oui-search input.oui-search__input::placeholder { color: #6b6b6b; }
.ag-offcanvas .oui-search__results { position: static; margin: 0; }
.ag-offcanvas .oui-search__wrap { width: auto; max-height: none; margin: 8px 0 0; box-shadow: none; }
.ag-offcanvas .oui-search__item { padding: 10px 8px; }
.ag-offcanvas .oui-search__item span { color: #3b3b3b; }
.ag-offcanvas .oui-search__title { color: var(--ag-ink); }
.ag-offcanvas .oui-search__pager { float: none; margin: 6px 10px 0; color: #6b6b6b; text-align: right; }

/* Oui Dashboard (/tableau-de-bord): the club's colours and font (its own defaults are another site's). */
:root {
  --oui-dash-accent: var(--ag-black);
  --oui-dash-ok: #5f8f1a;
  --oui-dash-highlight: var(--ag-lime);
  --oui-dash-text: var(--ag-ink);
  --oui-dash-line: #e3e3e3;
  --oui-dash-bg: #f6f6f3;
  --oui-dash-font: var(--ag-font);
  --oui-dash-font-heading: var(--ag-font);
}
.apd__title { font-weight: 800; }
.apd h2 { font-weight: 700; }

/* com_events: event box, calendar and upcoming module in the club's colours; buttons like .sppb-readmore */
.oui-event, .oui-events-calendar, .oui-events-upcoming { --oui-event-accent: var(--ag-lime); --oui-event-accent-text: var(--ag-black); --oui-event-radius: 6px; }
.oui-event__btn { padding: 5px 12px; border: 1px solid var(--ag-black); font-size: .8rem; font-weight: 400; line-height: 1.5; }
.oui-event__btn--primary { border-color: transparent; color: var(--ag-black); background-color: var(--ag-lime); }
.oui-event__btn--primary:hover, .oui-event__btn--primary:focus-visible { color: var(--ag-white); background-color: var(--ag-black); filter: none; }
.oui-event__btn--outline { color: var(--ag-black); background-color: var(--ag-white); }
.oui-event__btn--outline:hover, .oui-event__btn--outline:focus-visible { color: var(--ag-black); background-color: var(--ag-lime); filter: none; }
.oui-cal__event { border-left-color: var(--ag-lime); }
.oui-up__title { color: var(--ag-black); }
.oui-up__title:hover, .oui-up__title:focus-visible { color: var(--ag-lime); }
