/* Aanvullingen op de overgenomen WordPress/Elementor-stijl */

.gog-skip-link {
    position: absolute; left: 12px; top: -60px; z-index: 10000;
    background: var(--gog-blue, #014b92); color: #fff; padding: 10px 16px; border-radius: 8px; font-weight: 700;
}
.gog-skip-link:focus { top: 12px; }

/* Inloopanimaties (vervangt Elementor-animaties) */
.gog-anim { opacity: 0; }
.gog-anim.animated { opacity: 1; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeInRight { from { opacity: 0; transform: translate3d(100%, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes zoomIn { from { opacity: 0; transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } }
.fadeIn { animation-name: fadeIn; }
.fadeInRight { animation-name: fadeInRight; }
.zoomIn { animation-name: zoomIn; }
@media (prefers-reduced-motion: reduce) {
    .gog-anim { opacity: 1 !important; animation: none !important; }
}

.gog-draft-note {
    max-width: 1180px; margin: 16px auto; padding: 10px 16px;
    background: #fff4c4; border: 1px solid #efbd13; border-radius: 8px; font-weight: 600;
}

.gog-cookie-table { width: 100%; border-collapse: collapse; margin: 1em 0; }
.gog-cookie-table th, .gog-cookie-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #dce7f1; vertical-align: top; }

/* ---------- Weergave aanpassen (toegankelijkheid): gele knop + lade van rechts ---------- */
.gog-a11y-toggle, .gog-a11y-panel, .gog-a11y-panel * { box-sizing: border-box; }
.gog-a11y-toggle {
    position: fixed; right: 16px; bottom: 16px; z-index: 100000;
    display: grid; place-items: center; width: 44px; height: 44px; padding: 0; margin: 0;
    border: 0; border-radius: 14px; background: #fdd341; color: #00376d; cursor: pointer;
    box-shadow: 0 6px 18px rgba(0, 55, 109, .28); transition: transform .15s, background-color .15s;
}
.gog-a11y-toggle svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
/* :focus apart, anders kleurt het basisthema de knop roze na het sluiten van het paneel */
.gog-a11y-toggle:focus { background: #fdd341; color: #00376d; }
.gog-a11y-toggle:hover, .gog-a11y-toggle[aria-expanded="true"] { background: #ffe168; color: #00376d; transform: translateY(-2px); }
.gog-a11y-toggle:focus-visible { outline: 3px solid #00376d; outline-offset: 3px; }

.gog-a11y-panel {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 100001;
    display: flex; flex-direction: column; width: min(380px, 100vw);
    background: #fff; color: #16324b; border-left: 6px solid #fdd341;
    box-shadow: -18px 0 50px rgba(0, 35, 70, .22);
    font: 500 15px/1.35 "Quicksand", system-ui, sans-serif; text-align: left;
    animation: gogA11yIn .22s ease-out;
}
@keyframes gogA11yIn { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.gog-a11y-panel[hidden] { display: none; }
.gog-a11y-head { display: flex; align-items: flex-start; gap: 12px; padding: 24px 20px 16px 24px; border-bottom: 1px solid #e3eaf1; }
.gog-a11y-head > div { flex: 1; }
.gog-a11y-head h2 { margin: 0; font: 700 22px/1.2 "Quicksand", sans-serif; color: #00376d; letter-spacing: 0; text-transform: none; }
.gog-a11y-head p { margin: 4px 0 0; font-size: 14px; color: #5a6f84; }
.gog-a11y-panel .gog-a11y-close {
    flex: none; display: grid; place-items: center; width: 38px; height: 38px; padding: 0;
    border: 1px solid #dce7f1; border-radius: 12px; background: #fff; color: #00376d; cursor: pointer;
}
.gog-a11y-panel .gog-a11y-close:hover { background: #f1f4f8; color: #00376d; }
.gog-a11y-close svg, .gog-a11y-reset svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.gog-a11y-body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 8px 24px 16px; }
.gog-a11y-group h3 {
    margin: 18px 0 6px; font: 700 12px/1 "Quicksand", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #5a6f84;
}
.gog-a11y-group ul { list-style: none; margin: 0; padding: 0; }
.gog-a11y-group li { border-bottom: 1px solid #eef2f6; }
.gog-a11y-panel .gog-a11y-row {
    display: flex; align-items: center; gap: 12px; width: 100%; min-height: 52px; padding: 8px 2px; margin: 0;
    border: 0; border-radius: 0; background: none; color: #16324b; font: inherit; text-align: left; cursor: pointer;
}
.gog-a11y-panel button.gog-a11y-row:hover { background: none; color: #014b92; }
.gog-a11y-panel .gog-a11y-row:focus-visible, .gog-a11y-panel button:focus-visible { outline: 3px solid #fdd341; outline-offset: 2px; }
.gog-a11y-ico { flex: none; display: grid; place-items: center; width: 24px; color: #014b92; }
.gog-a11y-ico svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gog-a11y-label { flex: 1; min-width: 0; }
.gog-a11y-switch { flex: none; position: relative; width: 42px; height: 24px; border-radius: 999px; background: #cfdbe6; transition: background-color .15s; }
.gog-a11y-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: transform .15s; }
.gog-a11y-row[aria-checked="true"] .gog-a11y-switch { background: #014b92; }
.gog-a11y-row[aria-checked="true"] .gog-a11y-switch::after { transform: translateX(18px); background: #fdd341; }
.gog-a11y-chevron { flex: none; width: 10px; height: 10px; border-right: 2px solid #014b92; border-bottom: 2px solid #014b92; transform: rotate(45deg); transition: transform .15s; margin-right: 6px; }
.gog-a11y-row[aria-expanded="true"] .gog-a11y-chevron { transform: rotate(-135deg); }
.gog-a11y-stepper { display: inline-flex; align-items: center; gap: 4px; padding: 3px; border-radius: 12px; background: #f1f4f8; }
.gog-a11y-panel .gog-a11y-stepper button {
    width: 32px; height: 32px; padding: 0; border: 0; border-radius: 9px; background: #fff; color: #00376d;
    font: 700 18px/1 "Quicksand", sans-serif; cursor: pointer; box-shadow: 0 1px 2px rgba(0, 55, 109, .12);
}
.gog-a11y-panel .gog-a11y-stepper button:hover { background: #fdd341; color: #00376d; }
.gog-a11y-panel .gog-a11y-stepper button:disabled { opacity: .4; cursor: default; background: #fff; }
.gog-a11y-stepper output { min-width: 46px; text-align: center; font-weight: 700; font-size: 14px; color: #00376d; }
.gog-a11y-structure { margin: 0 0 12px 36px; padding: 6px 12px; border-left: 3px solid #fdd341; max-height: 220px; overflow-y: auto; }
.gog-a11y-structure ul { list-style: none; margin: 0; padding: 0; }
.gog-a11y-structure li { padding: 4px 0; border: 0; }
.gog-a11y-structure .lvl-h3 { padding-left: 14px; }
.gog-a11y-structure a { color: #014b92; font-weight: 600; text-decoration: none; }
.gog-a11y-structure a:hover { text-decoration: underline; }
.gog-a11y-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 24px; border-top: 1px solid #e3eaf1; font-size: 12px; color: #5a6f84; }
.gog-a11y-panel .gog-a11y-reset {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border: 1px solid #014b92; border-radius: 999px;
    background: #fff; color: #014b92; font: 700 13px/1 "Quicksand", sans-serif; cursor: pointer; white-space: nowrap;
}
.gog-a11y-panel .gog-a11y-reset:hover { background: #014b92; color: #fff; }
.gog-a11y-mask {
    position: fixed; inset: 0; z-index: 9997; pointer-events: none;
    background: linear-gradient(to bottom, rgba(0,0,0,.6) calc(var(--y, 50vh) - 50px), transparent calc(var(--y, 50vh) - 50px), transparent calc(var(--y, 50vh) + 50px), rgba(0,0,0,.6) calc(var(--y, 50vh) + 50px));
}
@media (prefers-reduced-motion: reduce) { .gog-a11y-panel { animation: none; } }

html.a11y-line-height body :where(p, li, span, a, td) { line-height: 2 !important; }
html.a11y-text-align body :where(p, li, h1, h2, h3, h4, h5, h6, span, div) { text-align: left !important; }
html.a11y-readable-font body, html.a11y-readable-font body * { font-family: Verdana, Tahoma, Arial, sans-serif !important; letter-spacing: .02em; }
html.a11y-grayscale body > *:not(.gog-a11y-panel):not(.gog-a11y-toggle) { filter: grayscale(1); }
html.a11y-contrast body > *:not(.gog-a11y-panel):not(.gog-a11y-toggle):not(.gog-a11y-mask) { filter: contrast(1.6); }
html.a11y-highlight-links a { text-decoration: underline !important; outline: 2px solid #fdd341 !important; outline-offset: 1px; }
html.a11y-focus-outline *:focus { outline: 4px solid #fdd341 !important; outline-offset: 2px !important; box-shadow: 0 0 0 7px #014b92 !important; }
html.a11y-hide-images img, html.a11y-hide-images video { visibility: hidden !important; }
html.a11y-hide-images [style*="background-image"], html.a11y-hide-images .gog-page-header { background-image: none !important; }
html.a11y-pause-animations *, html.a11y-pause-animations *::before, html.a11y-pause-animations *::after { animation: none !important; transition: none !important; }
html.a11y-pause-animations .gog-anim { opacity: 1 !important; }

.gog-sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* ---------- Toerisme-links ([toerisme_links]) ---------- */
.gog-tourism-links { max-width: 1140px; margin: 40px auto; padding: 0 20px; }
.gog-tourism-links h2 { margin: 0 0 16px; }
.gog-tourism-links ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.gog-tourism-item a, .gog-tourism-item > div {
    display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 20px 22px; overflow: hidden;
    background: linear-gradient(145deg, #0d559b 0%, #00376d 100%); border-radius: 20px; /* zelfde blauw als de ledenkaarten */
    box-shadow: 0 12px 30px rgba(0, 55, 109, .14); color: #fff; text-decoration: none; transition: transform .2s, box-shadow .2s;
}
.gog-tourism-item a:hover, .gog-tourism-item a:focus-visible { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(0, 55, 109, .24); }
.gog-tourism-item a:focus-visible { outline: 3px solid #fdd341; outline-offset: 4px; }
.gog-tourism-img { display: block; width: calc(100% + 44px); max-width: none; margin: -20px -22px 8px; aspect-ratio: 16 / 9; object-fit: cover; }
.gog-tourism-item strong { color: #fff; font-size: 1.05em; transition: color .2s; }
.gog-tourism-item a:hover strong, .gog-tourism-item a:focus-visible strong { color: #fdd341; }
.gog-tourism-item span { color: rgba(255, 255, 255, .82); font-size: 14px; }

/* 'Bekijk de volledige agenda' op de homepage: gele knop (blauwe tekst voor voldoende contrast) */
.gog-text-link .ui-button {
    padding: 12px 22px !important; border-radius: 999px !important;
    background: var(--gog-yellow, #fdd341) !important; color: var(--gog-blue-dark, #00376d) !important;
}
.gog-text-link .ui-button:hover, .gog-text-link .ui-button:focus-visible {
    background: var(--gog-yellow-light, #ffe168) !important; color: var(--gog-blue-dark, #00376d) !important;
}

/* ---------- Cookiemelding ---------- */
.gog-cookie {
    position: fixed; left: 16px; bottom: 16px; z-index: 99999;
    width: min(460px, calc(100vw - 88px)); max-height: calc(100vh - 32px); overflow-y: auto;
    background: #fff; color: #16324b; border-radius: 18px; padding: 20px;
    box-shadow: 0 20px 50px rgba(0, 35, 70, .3), 0 0 0 1px rgba(0, 55, 109, .08);
    font: 500 14px/1.45 "Quicksand", system-ui, sans-serif; text-align: left;
}
.gog-cookie[hidden] { display: none; }
.gog-cookie-head { display: flex; align-items: flex-start; gap: 10px; }
.gog-cookie-head h2 { flex: 1; }
.gog-cookie .gog-cookie-toggle {
    flex: none; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; margin: -4px -4px 0 0;
    border: 0; border-radius: 50%; background: #f1f4f8; color: #014b92; cursor: pointer;
}
.gog-cookie .gog-cookie-toggle:hover { background: #e6edf5; }
.gog-cookie .gog-cookie-toggle:focus-visible { outline: 3px solid #fdd341; outline-offset: 2px; }
.gog-cookie-toggle svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s; }
.gog-cookie.is-collapsed { width: auto; max-width: calc(100vw - 88px); padding: 10px 12px 10px 18px; border-radius: 999px; }
.gog-cookie.is-collapsed .gog-cookie-head { align-items: center; cursor: pointer; }
.gog-cookie.is-collapsed h2 { margin: 0; font-size: 15px; }
.gog-cookie.is-collapsed .gog-cookie-toggle { margin: 0; }
.gog-cookie.is-collapsed .gog-cookie-toggle svg { transform: rotate(180deg); }
.gog-cookie h2 { margin: 0 0 8px; font: 700 19px/1.2 "Quicksand", sans-serif; color: #00376d; text-transform: none; letter-spacing: 0; }
.gog-cookie p { margin: 0 0 10px; }
.gog-cookie a { color: #014b92; text-decoration: underline; }
.gog-cookie-cat { padding: 10px 12px; margin-bottom: 8px; background: #f1f4f8; border-radius: 12px; }
.gog-cookie-cat label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.gog-cookie-cat input { width: 18px; height: 18px; accent-color: #014b92; }
.gog-cookie-cat small { color: #5a6f84; font-weight: 600; }
.gog-cookie-cat p { margin: 4px 0 4px 26px; font-size: 13px; }
.gog-cookie-cat details { margin-left: 26px; font-size: 13px; }
.gog-cookie-cat summary { cursor: pointer; color: #014b92; font-weight: 600; }
.gog-cookie-cat ul { margin: 6px 0 0; padding-left: 18px; }
.gog-cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin-top: 12px; }
.gog-cookie-btn, .gog-cookie-btn:focus { /* :focus: anders wint de roze focusstijl van het basisthema */
    font: 700 14px/1 "Quicksand", sans-serif; padding: 11px 16px; border-radius: 999px; cursor: pointer;
    background: #014b92; color: #fff; border: 2px solid #014b92;
}
.gog-cookie-btn.is-ghost { background: #fff; color: #014b92; }
.gog-cookie-btn:hover { background: #00376d; border-color: #00376d; color: #fff; }
.gog-cookie-btn:focus-visible { outline: 3px solid #fdd341; outline-offset: 2px; }
@media (max-width: 480px) {
    .gog-cookie { left: 8px; bottom: 8px; width: calc(100vw - 68px); padding: 16px; }
    .gog-cookie-actions .gog-cookie-btn { flex: 1 1 100%; }
}

/* ---------- Ledenkaart: chip (voor- en achterkant) ---------- */
.ylnet-lid-chip {
    position: absolute; top: 12px; left: 12px; z-index: 2; max-width: calc(100% - 24px);
    padding: 5px 10px; border-radius: 999px; background: #fdd341; color: #00376d;
    font: 700 12px/1.2 "Quicksand", sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    box-shadow: 0 2px 6px rgba(0, 35, 70, .2);
}
.ylnet-lid-card-back .ylnet-lid-chip { position: static; align-self: flex-start; margin-bottom: 8px; }

/* ---------- Afbeelding uitlijnen binnen het vak (bewerkmodus) ----------
   Vult de foto het vak (object-fit: cover), dan bepaalt de uitlijning welk deel zichtbaar is (object-position).
   Is de afbeelding kleiner dan het vak, dan schuift de afbeelding zelf (marges). */
img.gog-align-left, img.gog-align-center, img.gog-align-right { display: block; }
img.gog-align-left { margin-left: 0 !important; margin-right: auto !important; object-position: left center !important; }
img.gog-align-center { margin-left: auto !important; margin-right: auto !important; object-position: center center !important; }
img.gog-align-right { margin-left: auto !important; margin-right: 0 !important; object-position: right center !important; }
/* Een link om de afbeelding heen (bijv. .ui-widget-image a) mag niet krimpen tot de afbeelding */
a:has(> img.gog-align-left, > img.gog-align-center, > img.gog-align-right) { display: block; }

/* Telefoonnummer op de ledenkaart (zelfde regel als het adres, klikbaar) */
.ylnet-lid-phone a { color: inherit !important; text-decoration: none; }
.ylnet-lid-phone a:hover, .ylnet-lid-phone a:focus-visible { text-decoration: underline; }
.ylnet-lid-phone + .ylnet-lid-address { margin-top: 4px; }

/* Koppen uit de bewerkmodus: elke niveau in de huisstijl. De klassen blijven staan, dus H2 blijft exact het origineel */
#content h1.ui-heading-title:not(.gog-hero-title *) { font-size: clamp(42px, 5vw, 64px); } /* de hero houdt zijn eigen maat */
#content h3.ui-heading-title { font-size: clamp(26px, 3vw, 36px); }
#content h4.ui-heading-title { font-size: 24px; }
#content h5.ui-heading-title { font-size: 20px; }
#content h6.ui-heading-title { font-size: 17px; }
#content p.ui-heading-title { font-size: inherit; font-weight: 400; line-height: 1.6; }
#content :is(.ui-widget-heading, .ui-widget-text-editor) :is(h1, h2, h3, h4, h5, h6):not([class]) { color: var(--gog-ink, #16324b); font-weight: 800; }
/* Koppen die hun klasse al eerder kwijtraakten krijgen hier hun oorspronkelijke maat terug */
:is(.gog-section-title, .gog-tientje-title, .gog-visit-title) h2:not([class]) { margin: 0; font-size: clamp(36px, 4vw, 54px); line-height: 1.1; }

/* Blokken uit de bewerkmodus (page_blocks in site.php) */
.gog-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: center; width: 100%; }
.gog-split-stack { grid-template-columns: minmax(0, 1fr); gap: 28px; }
.gog-split-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px; }
.gog-split-stack .gog-split-photo img { aspect-ratio: 21 / 9; }
@media (max-width: 800px) { .gog-split { grid-template-columns: minmax(0, 1fr); gap: 24px; } }

/* ---------- Fotoslider op de pagina van een evenement ---------- */
.gog-gallery { position: sticky; top: 120px; }
.gog-gallery-stage { position: relative; }
.gog-gallery .gog-gallery-track {
    position: relative; top: auto; display: flex; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scrollbar-width: none;
}
.gog-gallery-track::-webkit-scrollbar { display: none; }
.gog-gallery-track:focus-visible { outline: 3px solid #fdd341; outline-offset: 3px; }
.gog-gallery .gog-gallery-track img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; scroll-snap-align: start; }
/* :focus erbij, anders wint de roze focusstijl van het basisthema */
.gog-gallery-arrow, .gog-gallery-arrow:focus {
    position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
    border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: #00376d; font: 700 28px/1 sans-serif; cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 35, 70, .25);
}
.gog-gallery-arrow:hover { background: #fdd341; color: #00376d; }
.gog-gallery-arrow:focus-visible { outline: 3px solid #fdd341; outline-offset: 2px; }
.gog-gallery-arrow.is-prev { left: 12px; }
.gog-gallery-arrow.is-next { right: 12px; }
.gog-gallery-dots { display: flex; justify-content: center; gap: 8px; margin-top: 14px; }
.gog-gallery-dot, .gog-gallery-dot:focus {
    width: 12px; height: 12px; padding: 0; border: 2px solid #014b92; border-radius: 50%; background: transparent; cursor: pointer;
}
.gog-gallery-dot:hover { background: #dbe7f3; }
.gog-gallery-dot[aria-current="true"] { background: #014b92; }
.gog-gallery-dot:focus-visible { outline: 3px solid #fdd341; outline-offset: 2px; }
@media (max-width: 900px) { .gog-gallery { position: static; } }
