/* KGT Site: only what the CrocoBuilder design system cannot express (descendant selectors inside
   shortcode output and post content). Colours, type and spacing come from the --kgt-* variables. */

.kgt-icon { flex: 0 0 auto; color: var(--kgt-primary); }
.kgt-badge .kgt-icon { width: 14px; height: 14px; color: currentColor; }

/* Breadcrumb */
.kgt-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; font-family: var(--kgt-font-ui); font-size: var(--kgt-fs-small); color: var(--kgt-ink-muted); }
.kgt-breadcrumb li + li::before { content: "›"; margin-right: 4px; color: var(--kgt-ink-muted); }
.kgt-breadcrumb a { color: var(--kgt-ink-muted); text-decoration: none; }
.kgt-breadcrumb a:hover { color: var(--kgt-primary); text-decoration: underline; }

/* Facts card */
.kgt-facts .kgt-fact:last-child { border-bottom: 0; }
.kgt-fact .kgt-icon { margin-top: 2px; }
.kgt-coins { letter-spacing: 1px; color: var(--kgt-primary); }
.kgt-facilities { margin-top: var(--kgt-space-2); }
.kgt-facilities ul { margin: 6px 0 0; padding: 0; list-style: none; }
.kgt-map { margin-top: var(--kgt-space-2); border-radius: var(--kgt-radius-sm); overflow: hidden; border: 1px solid var(--kgt-line); }
.kgt-map iframe { display: block; width: 100%; height: 220px; border: 0; }

/* Facts as a 2-column grid (main column) */
.kgt-facts--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--kgt-space-4); }
.kgt-facts--grid .kgt-fact:last-child { border-bottom: 1px solid var(--kgt-line); }
@media (max-width: 767px) { .kgt-facts--grid { grid-template-columns: 1fr; } }

/* One-line meta under the spot title */
.kgt-spot-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-family: var(--kgt-font-ui); font-size: 15px; color: var(--kgt-ink-muted); }
.kgt-spot-meta .kgt-meta-rating { font-weight: 700; color: var(--kgt-ink); }
.kgt-spot-meta a { color: var(--kgt-primary); font-weight: 600; text-decoration: none; }
.kgt-spot-meta a:hover { text-decoration: underline; }

/* Location card (sticky sidebar) */
.kgt-location .kgt-map { margin: 0; border: 0; border-radius: 0; }
.kgt-location .kgt-map iframe { height: 200px; }
.kgt-location__body { display: flex; flex-direction: column; gap: 6px; padding: var(--kgt-space-3); }
.kgt-location__label { margin: 0; font-family: var(--kgt-font-ui); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--kgt-ink-muted); }
.kgt-location__address { margin: 0; font-family: var(--kgt-font-ui); font-size: 16px; font-weight: 700; color: var(--kgt-ink); }
.kgt-location__actions { margin-top: 10px; }
.kgt-location__actions .kgt-icon { color: currentColor; width: 16px; height: 16px; }

/* Photo mosaic */
.kgt-gallery { position: relative; display: grid; gap: 8px; border-radius: var(--kgt-radius); overflow: hidden; height: clamp(260px, 42vw, 480px); }
.kgt-gallery--2 { grid-template-columns: 1fr 1fr; }
.kgt-gallery--3 { grid-template-columns: 2fr 1fr; }
.kgt-gallery :is(.kgt-gallery__main, .kgt-gallery__thumb) { all: unset; display: block; cursor: zoom-in; overflow: hidden; background: var(--kgt-sand); min-height: 0; }
.kgt-gallery :is(.kgt-gallery__main, .kgt-gallery__thumb):focus-visible { outline: 3px solid var(--kgt-primary); outline-offset: -3px; }
.kgt-gallery img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1); }
@media (hover: hover) and (pointer: fine) { .kgt-gallery :is(.kgt-gallery__main, .kgt-gallery__thumb):hover img { transform: scale(1.03); } }
.kgt-gallery__side { display: grid; grid-template-rows: 1fr 1fr; gap: 8px; min-height: 0; }
.kgt-gallery--2 .kgt-gallery__side { grid-template-rows: 1fr; }
.kgt-gallery .kgt-gallery__all { position: absolute; right: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: var(--kgt-radius-pill); background: rgba(31, 42, 68, .85); color: #fff; font: 600 14px/1 var(--kgt-font-ui); cursor: pointer; }
.kgt-gallery .kgt-gallery__all:hover { background: var(--kgt-ink); }
@media (max-width: 767px) {
  .kgt-gallery { grid-template-columns: 1fr; height: auto; aspect-ratio: 4 / 3; }
  .kgt-gallery__side { display: none; }
}

/* Photo viewer */
.kgt-viewer { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(15, 20, 33, .96); color: #fff; }
.kgt-viewer::backdrop { background: rgba(15, 20, 33, .96); }
.kgt-viewer__bar { position: absolute; inset: 0 0 auto; display: flex; align-items: center; gap: 16px; padding: 14px 20px; font-family: var(--kgt-font-ui); z-index: 2; }
.kgt-viewer__pos { opacity: .75; font-size: 14px; }
.kgt-viewer__bar .kgt-viewer__close { margin-left: auto; }
.kgt-viewer__stage { position: absolute; inset: 72px 88px 32px; margin: 0; display: flex; align-items: center; justify-content: center; touch-action: pan-y; }
.kgt-viewer__stage img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: var(--kgt-radius-sm); user-select: none; }
/* Close, previous, next: drawn icons on solid white discs, readable on any photo and on the dark ground. */
.kgt-viewer__btn { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; padding: 0; border-radius: 50%; border: 0; background: #fff; color: var(--kgt-ink); cursor: pointer; box-shadow: 0 6px 18px rgba(0, 0, 0, .28); transition: background-color 180ms ease, transform 140ms cubic-bezier(0.22, 1, 0.36, 1); }
.kgt-viewer__btn:active { transform: scale(0.94); }
@media (hover: hover) and (pointer: fine) { .kgt-viewer__btn:hover { background: var(--kgt-cta); } }
.kgt-viewer__btn:focus-visible { outline: 3px solid var(--kgt-cta); outline-offset: 2px; }
.kgt-viewer__prev, .kgt-viewer__next { position: absolute; top: 50%; margin-top: -24px; z-index: 2; }
.kgt-viewer--strip .kgt-viewer__prev, .kgt-viewer--strip .kgt-viewer__next { margin-top: -64px; }
.kgt-viewer__prev { left: 20px; }
.kgt-viewer__next { right: 20px; }
/* Thumbnail strip along the bottom: the photo on view is fully lit with a sun-yellow ring. */
.kgt-viewer--strip .kgt-viewer__stage { bottom: 120px; }
.kgt-viewer__thumbs { position: absolute; left: 0; right: 0; bottom: 20px; z-index: 2; display: flex; justify-content: safe center; gap: 8px; padding: 6px 20px; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; }
.kgt-viewer__thumbs::-webkit-scrollbar { display: none; }
.kgt-viewer__thumb { flex: none; width: 72px; height: 72px; padding: 0; border: 0; border-radius: 10px; overflow: hidden; background: rgba(255, 255, 255, .1); cursor: pointer; opacity: .5; transition: opacity 180ms ease; }
.kgt-viewer__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kgt-viewer__thumb[aria-current="true"] { opacity: 1; outline: 3px solid var(--kgt-cta); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) { .kgt-viewer__thumb:hover { opacity: .85; } }
.kgt-viewer__thumb:focus-visible { opacity: 1; outline: 3px solid #fff; outline-offset: 2px; }
@media (max-width: 767px) {
  .kgt-viewer__stage { inset: 64px 8px 32px; }
  .kgt-viewer--strip .kgt-viewer__stage { bottom: 104px; }
  .kgt-viewer__btn { width: 44px; height: 44px; }
  .kgt-viewer__prev { left: 10px; }
  .kgt-viewer__next { right: 10px; }
  .kgt-viewer__prev, .kgt-viewer__next { margin-top: -22px; }
  .kgt-viewer--strip .kgt-viewer__prev, .kgt-viewer--strip .kgt-viewer__next { margin-top: -58px; }
  .kgt-viewer__thumbs { bottom: 16px; padding: 6px 12px; justify-content: flex-start; }
  .kgt-viewer__thumb { width: 60px; height: 60px; }
}

/* Blog: byline, side cards, table of contents, reading progress */
.kgt-avatar { border-radius: 50%; flex: 0 0 auto; }
.kgt-byline { display: flex; align-items: center; gap: 12px; }
.kgt-byline p { margin: 0; }
.kgt-byline__name { font-family: var(--kgt-font-ui); font-weight: 700; font-size: 15px; color: var(--kgt-ink); }
.kgt-side-card { background: var(--kgt-surface); border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius); padding: 18px; font-family: var(--kgt-font-ui); }
.kgt-side-card__title { margin: 0 0 10px; font-size: 15px; font-weight: 800; color: var(--kgt-ink); list-style: none; cursor: default; }
.kgt-side-card__title::-webkit-details-marker { display: none; }
.kgt-reading__bar { height: 6px; border-radius: 6px; background: var(--kgt-primary-soft); overflow: hidden; }
.kgt-reading__bar span { display: block; height: 100%; width: 100%; background: var(--kgt-primary); border-radius: 6px; transform: scaleX(0); transform-origin: left; } /* follows the scroll (kgt-site.js), no transition */
.kgt-toc ol { margin: 0; padding: 0; list-style: none; max-height: 55vh; overflow: auto; counter-reset: toc; }
.kgt-toc li { counter-increment: toc; }
.kgt-toc a { display: flex; gap: 8px; padding: 6px 0; font-size: 14px; line-height: 1.4; color: var(--kgt-ink-muted); text-decoration: none; border-top: 1px solid var(--kgt-line); }
.kgt-toc li:first-child a { border-top: 0; }
.kgt-toc a::before { content: counter(toc); flex: 0 0 18px; font-weight: 700; color: var(--kgt-primary); }
.kgt-toc a:hover { color: var(--kgt-primary); }
.kgt-author__bio { margin: 12px 0 0; font-size: 14px; line-height: 1.6; color: var(--kgt-ink-muted); }
.kgt-author__more { display: inline-block; margin-top: 10px; font-size: 14px; font-weight: 600; }
.kgt-related ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.kgt-mini { display: flex; gap: 12px; align-items: center; text-decoration: none; }
.kgt-mini__img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--kgt-radius-sm); flex: 0 0 auto; }
.kgt-mini > span { display: flex; flex-direction: column; gap: 2px; }
.kgt-mini__title { font-size: 14px; font-weight: 700; line-height: 1.35; color: var(--kgt-ink); }
.kgt-mini:hover .kgt-mini__title { color: var(--kgt-primary); }
@media (max-width: 1024px) { .kgt-reading { display: none; } .kgt-toc details:not([open]) ol { display: none; } .kgt-toc .kgt-side-card__title { cursor: pointer; } }

/* Long-form content (spot and blog bodies) */
.kgt-prose { font-family: var(--kgt-font-ui); font-size: var(--kgt-fs-body); line-height: 1.7; color: var(--kgt-ink); }
.kgt-prose > * + * { margin-top: 1em; }
.kgt-prose p { margin: 0 0 1em; }
.kgt-prose h2, .kgt-prose h3, .kgt-prose h4 { font-family: var(--kgt-font-ui); color: var(--kgt-ink); line-height: 1.3; margin: 1.6em 0 .5em; }
.kgt-prose h2 { font-size: var(--kgt-fs-h3); font-weight: 700; }
.kgt-prose h3 { font-size: 19px; font-weight: 600; }
.kgt-prose a { color: var(--kgt-primary); text-decoration: underline; text-underline-offset: 3px; }
.kgt-prose a:hover { color: var(--kgt-primary-dark); }
.kgt-prose img { max-width: 100%; height: auto; border-radius: var(--kgt-radius-sm); }
.kgt-prose ul, .kgt-prose ol { padding-left: 1.3em; }
.kgt-prose blockquote { margin: 1.5em 0; padding: 12px 20px; border-left: 4px solid var(--kgt-cta); background: var(--kgt-sand); border-radius: 0 var(--kgt-radius-sm) var(--kgt-radius-sm) 0; }
.kgt-prose h2[id], .kgt-prose h3[id] { scroll-margin-top: 100px; }
/* Own experience at the end of a spot text: the "Zelf geweest" tick and the own and kids' ratings (CHG-049). */
.kgt-own { margin: 1.6em 0 0; padding: 16px 20px; border-radius: var(--kgt-radius-sm); background: var(--kgt-sand); border: 1px solid var(--kgt-line); max-width: 60ch; }
.kgt-own__been { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 700; color: var(--kgt-ink); }
.kgt-own__mark { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #e3f5d0; color: #2f6b0a; }
.kgt-own--no .kgt-own__mark { background: #fde3dc; color: #a33a1c; }
.kgt-own__text { margin-top: 8px; }
.kgt-prose .kgt-own__text p { margin: 0; }
.kgt-prose .kgt-own__text p + p { margin-top: 4px; }
.kgt-prose figure { margin: 1.6em 0; }
.kgt-prose figcaption { margin-top: 6px; font-size: 14px; color: var(--kgt-ink-muted); text-align: center; }
.kgt-prose .wp-block-gallery { gap: 8px; }
.kgt-prose .wp-block-gallery img { border-radius: var(--kgt-radius-sm); }
.kgt-prose .wp-block-button__link { display: inline-flex; padding: 12px 22px; border-radius: var(--kgt-radius-pill); background: var(--kgt-cta); color: var(--kgt-ink); font-weight: 700; text-decoration: none; }
.kgt-prose .wp-block-button__link:hover { background: var(--kgt-cta-dark); }
.kgt-prose details { margin: 1em 0; padding: 12px 16px; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-sm); }
.kgt-prose summary { font-weight: 700; cursor: pointer; }
.kgt-extra { margin-top: var(--kgt-space-4); padding: var(--kgt-space-3); background: var(--kgt-sand); border-radius: var(--kgt-radius); }
.kgt-extra p:last-child { margin-bottom: 0; }
.kgt-avatar--initials { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #A8401D; color: #fff; font-family: var(--kgt-font-ui); font-weight: 800; letter-spacing: .02em; }

/* Hub pages (city, country, continent, ages, category) */
.kgt-hub__img { display: block; width: 100%; height: auto; max-height: 380px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--kgt-radius); }
.kgt-term-links { display: flex; flex-direction: column; gap: 12px; }
.kgt-chip__count { margin-left: 2px; font-weight: 500; }
.kgt-hub-desc p { margin: 0 0 .8em; }
.kgt-hub-desc p:last-child { margin-bottom: 0; }

/* Spot cards in hub grids */
.kgt-card__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--kgt-sand); }
.kgt-card__img--empty { background: var(--kgt-sand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='%23E9C98F' stroke-width='1.5'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / 48px no-repeat; }
@media (hover: hover) and (pointer: fine) { .kgt-spot-card:hover .kgt-card__img { transform: scale(1.04); } }
.kgt-spot-card .kgt-card__media { overflow: hidden; }
.kgt-card__rating { margin-right: 8px; font-weight: 700; color: var(--kgt-ink); }
.kgt-more { display: contents; }
.kgt-more > summary { list-style: none; cursor: pointer; background: var(--kgt-surface); border: 1px dashed var(--kgt-primary); }
.kgt-more > summary::-webkit-details-marker { display: none; }
.kgt-more[open] > summary { display: none; }
.kgt-more > .kgt-cluster { display: contents; }

/* Pagination (CrocoBuilder pagination element) */
.cb-el-pagination__items { display: flex; gap: 6px; align-items: center; }
.cb-el-pagination__item { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: var(--kgt-radius-pill); font-family: var(--kgt-font-ui); font-weight: 700; color: var(--kgt-ink); text-decoration: none; border: 1px solid var(--kgt-line); background: var(--kgt-surface); box-sizing: border-box; }
.cb-el-pagination__item:hover { border-color: var(--kgt-primary); color: var(--kgt-primary); }
.cb-el-pagination__item--active { background: var(--kgt-primary); border-color: var(--kgt-primary); color: #fff; }
.cb-el-pagination__item--delimiter { border: 0; background: none; min-width: 20px; }
.cb-el-pagination__item[aria-disabled="true"] { opacity: .35; pointer-events: none; }
.cb-el-pagination { display: flex; gap: 6px; align-items: center; }

/* Content pages: counters, tiles, categories, ebook, social */
.kgt-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; font-family: var(--kgt-font-ui); }
.kgt-stats li { display: flex; flex-direction: column; gap: 2px; padding: 16px 18px; border-radius: var(--kgt-radius); background: var(--kgt-surface); border: 1px solid var(--kgt-line); }
.kgt-stats strong { font-size: 28px; font-weight: 800; letter-spacing: -0.02em; color: var(--kgt-primary); line-height: 1.1; }
.kgt-stats span { font-size: 14px; color: var(--kgt-ink-muted); }
@media (max-width: 767px) { .kgt-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kgt-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1024px) { .kgt-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.kgt-tile { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: var(--kgt-radius); overflow: hidden; text-decoration: none; background: var(--kgt-sand); }
.kgt-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1); }
@media (hover: hover) and (pointer: fine) { .kgt-tile:hover .kgt-tile__img { transform: scale(1.05); } }
.kgt-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(31, 42, 68, 0) 45%, rgba(31, 42, 68, .82) 100%); }
.kgt-tile__label { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 1; display: flex; flex-direction: column; color: #fff; font-family: var(--kgt-font-ui); }
.kgt-tile__label strong { font-size: 19px; font-weight: 800; letter-spacing: -0.01em; }
.kgt-tile__label span { font-size: 14px; opacity: .9; }
.kgt-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.kgt-cat { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 18px; border-radius: var(--kgt-radius); background: var(--kgt-surface); border: 1px solid var(--kgt-line); font-family: var(--kgt-font-ui); text-decoration: none; }
.kgt-cat strong { font-size: 16px; font-weight: 700; color: var(--kgt-ink); }
.kgt-cat span { font-size: 13px; font-weight: 600; color: var(--kgt-primary); background: var(--kgt-primary-soft); padding: 4px 10px; border-radius: var(--kgt-radius-pill); white-space: nowrap; }
.kgt-cat:hover { border-color: var(--kgt-primary); box-shadow: 0 6px 18px rgba(31, 42, 68, .08); }
.kgt-ebook { display: grid; grid-template-columns: 240px 1fr; gap: 28px; align-items: center; padding: 24px; border-radius: var(--kgt-radius); background: var(--kgt-surface); border: 1px solid var(--kgt-line); }
.kgt-ebook__img { width: 100%; height: auto; border-radius: var(--kgt-radius-sm); box-shadow: 0 12px 30px rgba(31, 42, 68, .18); }
.kgt-ebook__body { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.kgt-ebook__body p { margin: 0; }
@media (max-width: 767px) { .kgt-ebook { grid-template-columns: 1fr; } .kgt-ebook__img { max-width: 220px; } }
.kgt-social { display: flex; gap: 10px; }
.kgt-social__link { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--kgt-surface); border: 1px solid var(--kgt-line); color: var(--kgt-primary); transition: background .2s, color .2s; }
.kgt-social__link:hover { background: var(--kgt-primary); color: #fff; }
.kgt-usps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; font-family: var(--kgt-font-ui); }
.kgt-usps li { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; color: var(--kgt-ink); }
.kgt-usps li::before { content: "✓"; flex: 0 0 24px; height: 24px; border-radius: 50%; background: var(--kgt-success-soft); color: var(--kgt-success-ink); display: inline-flex; align-items: center; justify-content: center; font-size: 13px; }

/* FAQ accordion */
.kgt-faq { display: grid; gap: 12px; font-family: var(--kgt-font-ui); }
.kgt-faq details { border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius); background: var(--kgt-surface); transition: box-shadow .2s; }
.kgt-faq details[open] { box-shadow: 0 6px 24px rgba(31, 42, 68, .08); }
.kgt-faq summary { display: flex; justify-content: space-between; gap: 16px; padding: 18px 22px; font-size: 17px; font-weight: 700; color: var(--kgt-ink); cursor: pointer; list-style: none; }
.kgt-faq summary::-webkit-details-marker { display: none; }
.kgt-faq summary::after { content: "+"; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: var(--kgt-primary-soft); color: var(--kgt-primary); display: inline-flex; align-items: center; justify-content: center; font-size: 20px; line-height: 1; transition: transform .2s; }
.kgt-faq details[open] summary::after { transform: rotate(45deg); }
.kgt-faq details > div { padding: 0 22px 20px; color: var(--kgt-ink-muted); font-size: 16px; line-height: 1.7; }
.kgt-faq details > div p { margin: 0 0 .8em; }
.kgt-coins-legend { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.kgt-coins-legend li { padding: 10px; border-radius: var(--kgt-radius-sm); background: var(--kgt-sand); text-align: center; font-size: 14px; color: var(--kgt-ink); }
.kgt-coins-legend strong { display: block; color: var(--kgt-primary); letter-spacing: 1px; }
@media (max-width: 767px) { .kgt-coins-legend { grid-template-columns: repeat(2, 1fr); } }

/* Contact Form 7 in the design system */
.wpcf7 form { display: grid; gap: 14px; font-family: var(--kgt-font-ui); }
.wpcf7 form p { margin: 0; }
.wpcf7 label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; color: var(--kgt-ink); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea, .wpcf7 select { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-sm); background: #fff; font: 400 16px/1.4 var(--kgt-font-ui); color: var(--kgt-ink); }
.wpcf7 textarea { min-height: 150px; }
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus { outline: 3px solid var(--kgt-primary-soft); border-color: var(--kgt-primary); }
.wpcf7 input[type="submit"] { justify-self: start; padding: 12px 26px; border: 0; border-radius: var(--kgt-radius-pill); background: var(--kgt-cta); color: var(--kgt-ink); font: 700 16px/1.2 var(--kgt-font-ui); cursor: pointer; }
.wpcf7 input[type="submit"]:hover { background: var(--kgt-cta-dark); }

/* Divi 5 fallback rendering (pages not rebuilt in CrocoBuilder yet) */
.kgt-divi-section { padding: clamp(28px, 5vw, 56px) var(--kgt-gutter); font-family: var(--kgt-font-ui); color: var(--kgt-ink); }
.kgt-divi-section:nth-of-type(even) { background: var(--kgt-sand); }
.kgt-divi-row { max-width: var(--kgt-container); margin: 0 auto; display: flex; flex-wrap: wrap; gap: 32px; }
.kgt-divi-row + .kgt-divi-row { margin-top: 32px; }
.kgt-divi-column { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.kgt-divi-text { font-size: var(--kgt-fs-body); line-height: 1.7; }
.kgt-divi-text p { margin: 0 0 1em; }
.kgt-divi-text h1, .kgt-divi-text h2 { font-size: var(--kgt-fs-h2); font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; margin: 0 0 .6em; }
.kgt-divi-text h3, .kgt-divi-text h4 { font-size: var(--kgt-fs-h3); font-weight: 700; line-height: 1.3; margin: 1.2em 0 .5em; }
.kgt-divi-text a { color: var(--kgt-primary); text-decoration: underline; text-underline-offset: 3px; }
.kgt-divi-text ul, .kgt-divi-text ol { padding-left: 1.3em; }
.kgt-divi-figure { margin: 0; }
.kgt-divi-img { display: block; width: 100%; height: auto; border-radius: var(--kgt-radius); }
.kgt-divi-blurb img { width: 64px; height: auto; }
.kgt-divi-details { border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius); padding: 14px 18px; background: #fff; }
.kgt-divi-details + .kgt-divi-details { margin-top: 10px; }
.kgt-divi-details summary { font-weight: 700; cursor: pointer; }
.kgt-divi-hr { border: 0; border-top: 1px solid var(--kgt-line); margin: 24px 0; }
.kgt-search { display: flex; gap: 8px; max-width: 560px; }
.kgt-search input[type="search"] { flex: 1; min-width: 0; padding: 12px 16px; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-pill); font: 400 16px/1.4 var(--kgt-font-ui); }

/* Photo hero (classes kgt-hero / kgt-hero-media / kgt-hero-content in the design system) */
.kgt-hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(15, 20, 33, .78) 0%, rgba(15, 20, 33, .45) 45%, rgba(15, 20, 33, .08) 100%), linear-gradient(0deg, rgba(15, 20, 33, .55) 0%, rgba(15, 20, 33, 0) 45%); }
.kgt-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.kgt-hero .kgt-h1 { color: #fff; font-size: clamp(38px, 6vw, 72px); letter-spacing: -0.035em; line-height: 1.02; max-width: 16ch; text-shadow: 0 2px 24px rgba(0, 0, 0, .25); }
.kgt-hero .kgt-lead { color: rgba(255, 255, 255, .92); max-width: 58ch; }
.kgt-hero .kgt-eyebrow { color: var(--kgt-cta); }
.kgt-hero .kgt-breadcrumb ol, .kgt-hero .kgt-breadcrumb a, .kgt-hero .kgt-breadcrumb li + li::before { color: rgba(255, 255, 255, .85); }
.kgt-hero .kgt-breadcrumb ol { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.kgt-hero .kgt-btn-outline { color: #fff; border-color: rgba(255, 255, 255, .85); }
.kgt-hero .kgt-btn-outline:hover { background: rgba(255, 255, 255, .12); }
.kgt-hero .kgt-stats li { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .22); backdrop-filter: blur(6px); }
.kgt-hero .kgt-stats strong { color: #fff; }
.kgt-hero .kgt-stats span { color: rgba(255, 255, 255, .85); }
.kgt-hero .kgt-chip { background: rgba(255, 255, 255, .16); color: #fff; backdrop-filter: blur(6px); }
.kgt-hero .kgt-chip:hover { background: #fff; color: var(--kgt-ink); }
@media (max-width: 767px) { .kgt-hero::after { background: linear-gradient(0deg, rgba(15, 20, 33, .85) 0%, rgba(15, 20, 33, .35) 60%, rgba(15, 20, 33, .15) 100%); } }
.kgt-post-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1024px) { .kgt-post-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .kgt-post-cards { grid-template-columns: 1fr; } }
.kgt-post-card__img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.kgt-anchor-chips { scroll-margin-top: 100px; }
.kgt-anchor { display: block; height: 0; scroll-margin-top: 96px; }
.kgt-term-about { padding-bottom: 0; }
.kgt-term-about__body { max-width: 760px; }

/* Footer on dark */
.cb-ftr_root .kgt-social__link { width: 40px; height: 40px; background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); color: #fff; }
.cb-ftr_root .kgt-social__link:hover { background: #fff; color: var(--kgt-ink); }
.kgt-footer-mail { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.kgt-footer-mail:hover { color: var(--kgt-cta); }

/* "Meer in {stad}" under a spot */
.kgt-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.kgt-more-city__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
.kgt-more-city__head .kgt-eyebrow { margin: 0 0 6px; }
.kgt-more-city__head .kgt-h2 { margin: 0; }
.kgt-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1024px) { .kgt-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (max-width: 600px) { .kgt-card-grid { grid-template-columns: 1fr; gap: 16px; } }

/* City day plans */
.kgt-dayplans .kgt-eyebrow { margin: 0 0 6px; }
.kgt-dayplans .kgt-h2 { margin: 0 0 24px; }
.kgt-dayplans__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.kgt-dayplan { background: var(--kgt-surface); border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius); padding: 24px; }
.kgt-dayplan__day { margin: 0 0 16px; font: 800 20px/1.3 var(--kgt-font-ui); color: var(--kgt-ink); }
.kgt-dayplan__stops { margin: 0; padding: 0; list-style: none; display: grid; gap: 18px; }
.kgt-dayplan__stop { display: grid; grid-template-columns: 40px 1fr; gap: 12px; position: relative; }
.kgt-dayplan__stop + .kgt-dayplan__stop::before { content: ""; position: absolute; left: 19px; top: -18px; height: 18px; border-left: 2px dotted var(--kgt-line); }
.kgt-dayplan__icon { display: block; width: 40px; height: 40px; border-radius: 50%; background: var(--kgt-sand); object-fit: contain; padding: 6px; box-sizing: border-box; }
.kgt-dayplan__title { margin: 0 0 4px; font: 700 16px/1.35 var(--kgt-font-ui); }
.kgt-dayplan__title a { color: var(--kgt-primary); text-decoration: none; }
.kgt-dayplan__title a:hover { text-decoration: underline; }
.kgt-dayplan__stop p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--kgt-ink-2, #4A5568); }

/* Search results and 404 */
.kgt-hero .kgt-search { width: 100%; max-width: 620px; }
.kgt-hero .kgt-search input[type="search"] { border-color: transparent; padding: 14px 20px; box-shadow: 0 10px 30px rgba(0, 0, 0, .18); }
.kgt-search-terms .kgt-eyebrow { margin: 0 0 10px; }
.kgt-empty { display: grid; gap: 16px; }
.kgt-empty .kgt-h2, .kgt-empty .kgt-h3, .kgt-empty .kgt-lead { margin: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* JetSmartFilters bar (classes kgt-filterbar / kgt-filter-toggles; filters in filters.php) */
.kgt-filterbar { position: relative; z-index: 5; padding: 12px; background: var(--kgt-surface); border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius); box-shadow: 0 6px 24px rgba(31, 42, 68, .06); font-family: var(--kgt-font-ui); }
.kgt-filterbar .cb-jsf { flex: 0 0 auto; }
.kgt-filterbar .cb-jsf--search { flex: 1 1 260px; }
.kgt-filterbar .jet-search-filter { display: flex; gap: 6px; align-items: center; }
.kgt-filterbar .jet-search-filter__input-wrapper { flex: 1; }
.kgt-filterbar .jet-search-filter__input,
.kgt-filterbar .jet-sorting-select,
.kgt-filterbar .jet-filter-items-dropdown__label { box-sizing: border-box; height: 46px; padding: 0 16px; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-pill); background: #fff; font: 500 15px/1.2 var(--kgt-font-ui); color: var(--kgt-ink); }
.kgt-filterbar .jet-search-filter__input { width: 100%; padding-left: 42px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%234A5568' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 16px center no-repeat; }
.kgt-filterbar .jet-search-filter__submit { height: 46px; padding: 0 18px; border: 0; border-radius: var(--kgt-radius-pill); background: var(--kgt-cta); color: var(--kgt-ink); font: 700 15px/1 var(--kgt-font-ui); cursor: pointer; }
.kgt-filterbar .jet-search-filter__submit:hover { background: var(--kgt-cta-dark); }
.kgt-filterbar .jet-filter-items-dropdown { position: relative; }
.kgt-filterbar .jet-filter-items-dropdown__label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; white-space: nowrap; }
.kgt-filterbar .jet-filter-items-dropdown__label:hover,
.kgt-filterbar .jet-dropdown-open .jet-filter-items-dropdown__label { border-color: var(--kgt-primary); }
.kgt-filterbar .jet-filter-items-dropdown__active { display: inline-flex; gap: 4px; }
.kgt-filterbar .jet-filter-items-dropdown__active__item { padding: 2px 8px; border-radius: var(--kgt-radius-pill); background: var(--kgt-primary-soft); color: var(--kgt-primary); font-size: 13px; font-weight: 600; }
.kgt-filterbar .jet-filter-items-dropdown__body { position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; min-width: 260px; max-width: min(340px, 90vw); padding: 12px; background: #fff; border: 1px solid var(--kgt-line); border-radius: 14px; box-shadow: 0 18px 40px rgba(31, 42, 68, .16); }
.kgt-filterbar .jet-checkboxes-list__row { margin: 0; }
.kgt-filterbar .jet-checkboxes-list__item { display: block; padding: 6px 4px; border-radius: 8px; cursor: pointer; }
.kgt-filterbar .jet-checkboxes-list__item:hover { background: var(--kgt-sand); }
.kgt-filterbar .jet-checkboxes-list__button { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--kgt-ink); }
.kgt-filterbar .jet-filter-items-search__input { box-sizing: border-box; width: 100%; height: 40px; margin-bottom: 8px; padding: 0 12px; border: 1px solid var(--kgt-line); border-radius: 10px; font: 400 16px var(--kgt-font-ui); } /* 16px: iOS zooms into smaller fields */
.kgt-filterbar .jet-sorting-select { min-width: 190px; padding-right: 36px; cursor: pointer; }
.kgt-filterbar .jet-sorting--flex-column { display: block; }
.jet-filters-counter { margin-left: 4px; color: var(--kgt-ink-muted); font-size: .9em; font-weight: 500; }

/* Single-option filters as toggle chips */
.kgt-filter-toggles { font-family: var(--kgt-font-ui); }
.kgt-filter-toggles .jet-checkboxes-list__row { margin: 0; }
.kgt-filter-toggles .jet-checkboxes-list__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kgt-filter-toggles .jet-checkboxes-list__decorator { display: none; }
.kgt-filter-toggles .jet-checkboxes-list__button { display: inline-flex; align-items: center; padding: 8px 14px; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-pill); background: var(--kgt-surface); font-size: 14px; font-weight: 600; color: var(--kgt-ink); cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.kgt-filter-toggles .jet-checkboxes-list__button:hover { border-color: var(--kgt-primary); }
.kgt-filter-toggles .jet-checkboxes-list__input:checked ~ .jet-checkboxes-list__button { background: var(--kgt-primary); border-color: var(--kgt-primary); color: #fff; }
.kgt-filter-toggles .jet-checkboxes-list__input:checked ~ .jet-checkboxes-list__button .jet-filters-counter { color: rgba(255, 255, 255, .8); }
.kgt-filter-toggles .jet-checkboxes-list__input:focus-visible ~ .jet-checkboxes-list__button { outline: 3px solid var(--kgt-primary); outline-offset: 2px; }

/* Active filter tags and JSF pagination */
.jet-active-tags__list { display: flex; flex-wrap: wrap; gap: 8px; }
.jet-active-tag { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: var(--kgt-radius-pill); background: var(--kgt-primary-soft); color: var(--kgt-primary); font: 600 14px/1.2 var(--kgt-font-ui); cursor: pointer; }
.jet-active-tag--clear { background: transparent; color: var(--kgt-ink-muted); text-decoration: underline; }
.jet-active-tag__remove { font-weight: 700; }
.jet-filters-pagination { display: flex; gap: 6px; align-items: center; justify-content: center; flex-wrap: wrap; }
.jet-filters-pagination__item { cursor: pointer; }
.jet-filters-pagination__link { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; box-sizing: border-box; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-pill); background: var(--kgt-surface); font: 700 15px/1 var(--kgt-font-ui); color: var(--kgt-ink); }
.jet-filters-pagination__item:hover .jet-filters-pagination__link { border-color: var(--kgt-primary); color: var(--kgt-primary); }
.jet-filters-pagination__current .jet-filters-pagination__link { background: var(--kgt-primary); border-color: var(--kgt-primary); color: #fff; }
.jet-filters-pagination__dots { padding: 0 4px; color: var(--kgt-ink-muted); }
/* Hub page links (hubs.php): real /page/N/ links until a filter is used, then JSF's own pagination. */
.kgt-pager ul { display: flex; gap: 6px; align-items: center; justify-content: center; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.kgt-pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; box-sizing: border-box; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-pill); background: var(--kgt-surface); font: 700 15px/1 var(--kgt-font-ui); color: var(--kgt-ink); text-decoration: none; }
.kgt-pager a.page-numbers:hover { border-color: var(--kgt-primary); color: var(--kgt-primary); }
.kgt-pager .page-numbers.current { background: var(--kgt-primary); border-color: var(--kgt-primary); color: #fff; }
.kgt-pager .page-numbers.dots { border: 0; background: none; min-width: 20px; padding: 0 4px; color: var(--kgt-ink-muted); }
.cb-jsf--pagination:has(~ .cb-el .kgt-pager:not([hidden])) { display: none; }

@media (max-width: 767px) {
  .kgt-filterbar { padding: 10px; gap: 8px; }
  .kgt-filterbar .cb-jsf--search { flex: 1 1 100%; }
  .kgt-filterbar .cb-jsf--checkboxes, .kgt-filterbar .cb-jsf--sorting { flex: 1 1 calc(50% - 4px); }
  .kgt-filterbar .jet-filter-items-dropdown__label, .kgt-filterbar .jet-sorting-select { width: 100%; justify-content: space-between; min-width: 0; }
  .kgt-filterbar .jet-filter-items-dropdown__body { width: min(320px, calc(100vw - 48px)); }
  .kgt-filterbar .cb-jsf--checkboxes:nth-of-type(even) .jet-filter-items-dropdown__body { left: auto; right: 0; }
  .kgt-filter-toggles { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .kgt-filter-toggles .jet-checkboxes-list__button { white-space: nowrap; }
}

/* Hub filter bar: hide filters that repeat the hub itself */
.tax-city .cb-hb_f_country, .tax-city .cb-hb_f_city, .tax-country .cb-hb_f_country { display: none; }

/* Header: search popup trigger + NL/EN switcher (header.php) */
.kgt-header-tools { display: flex; align-items: center; gap: 10px; }
.kgt-lang { display: inline-flex; padding: 3px; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-pill); font-family: var(--kgt-font-ui); }
.kgt-lang__link { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 32px; padding: 0 8px; border-radius: var(--kgt-radius-pill); font-size: 13px; font-weight: 700; letter-spacing: .04em; color: var(--kgt-ink-muted); text-decoration: none; }
.kgt-lang__link:hover { color: var(--kgt-primary); }
.kgt-lang__link.is-active { background: var(--kgt-primary); color: #fff; }
.kgt-header-search .jet-ajax-search__popup-trigger-container { display: flex; }
.kgt-header-search .jet-ajax-search__popup-trigger { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--kgt-line); border-radius: 50%; background: var(--kgt-surface); color: var(--kgt-ink); cursor: pointer; }
.kgt-header-search .jet-ajax-search__popup-trigger:hover { border-color: var(--kgt-primary); color: var(--kgt-primary); }
.kgt-header-search .jet-ajax-search__field { height: 52px; padding: 0 18px; border: 1px solid var(--kgt-line); border-radius: var(--kgt-radius-pill); font: 500 16px var(--kgt-font-ui); }
.kgt-header-search .jet-ajax-search__submit { height: 52px; padding: 0 20px; border: 0; border-radius: var(--kgt-radius-pill); background: var(--kgt-cta); color: var(--kgt-ink); font: 700 15px var(--kgt-font-ui); }
.kgt-header-search .jet-ajax-search__results-area { border-radius: 14px; box-shadow: 0 18px 40px rgba(31, 42, 68, .16); font-family: var(--kgt-font-ui); }
.kgt-header-search .jet-ajax-search__item-title { font-weight: 700; color: var(--kgt-ink); }
.kgt-header-search .jet-ajax-search__item-thumbnail img { border-radius: 8px; object-fit: cover; }
@media (max-width: 1024px) { .kgt-header-tools { margin-left: auto; } }

/* Map view ([kgt_map], map.php) */
.kgt-map-view__canvas { height: 520px; border-radius: var(--kgt-radius); border: 1px solid var(--kgt-line); background: var(--kgt-sand); overflow: hidden; z-index: 0; }
.kgt-map-view__note { margin: 10px 0 0; }
.kgt-map-pop { display: flex; gap: 10px; align-items: center; text-decoration: none; color: var(--kgt-ink); font-family: var(--kgt-font-ui); }
.kgt-map-pop img { width: 64px; height: 64px; flex: 0 0 64px; border-radius: 8px; object-fit: cover; }
.kgt-map-pop span { display: grid; gap: 2px; font-size: 13px; line-height: 1.35; }
.kgt-map-pop strong { font-size: 14px; }
.kgt-map-pop em { font-style: normal; color: var(--kgt-ink-muted); }
.kgt-map-pop u { text-decoration: none; color: var(--kgt-primary); font-weight: 700; }
.kgt-map-view .marker-cluster-small, .kgt-map-view .marker-cluster-medium, .kgt-map-view .marker-cluster-large { background-color: rgba(67, 100, 151, .25); }
.kgt-map-view .marker-cluster-small div, .kgt-map-view .marker-cluster-medium div, .kgt-map-view .marker-cluster-large div { background-color: var(--kgt-primary); color: #fff; font: 700 13px var(--kgt-font-ui); }
@media (max-width: 767px) { .kgt-map-view__canvas { height: 420px; } }

/* JetFormBuilder forms (maatwerk questionnaire) */
.jet-form-builder { display: grid; gap: 16px; font-family: var(--kgt-font-ui); color: var(--kgt-ink); }
.jet-form-builder-row { margin: 0; }
.jet-form-builder__label { margin-bottom: 6px; }
.jet-form-builder__label-text { font-size: 15px; font-weight: 600; line-height: 1.4; }
.jet-form-builder__required { color: var(--kgt-accent); }
.jet-form-builder__heading { margin-top: 10px; padding-top: 18px; border-top: 1px solid var(--kgt-line); font-size: 19px; font-weight: 800; letter-spacing: -.01em; }
.jet-form-builder-row:first-child .jet-form-builder__heading { margin-top: 0; padding-top: 0; border-top: 0; }
input.jet-form-builder__field:not([type="checkbox"]):not([type="radio"]), select.jet-form-builder__field, textarea.jet-form-builder__field { box-sizing: border-box; width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--kgt-line); border-radius: 12px; background: #fff; font: 400 16px/1.4 var(--kgt-font-ui); color: var(--kgt-ink); }
textarea.jet-form-builder__field { min-height: 110px; resize: vertical; }
input.jet-form-builder__field:focus, select.jet-form-builder__field:focus, textarea.jet-form-builder__field:focus { outline: 3px solid var(--kgt-primary-soft); border-color: var(--kgt-primary); }
.jet-form-builder__fields-group { display: grid; gap: 8px; }
.jet-form-builder__field-label { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; line-height: 1.45; cursor: pointer; }
.jet-form-builder__field-label input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--kgt-primary); flex: 0 0 auto; }
.jet-form-builder__conditional { display: grid; gap: 16px; padding: 14px; border-left: 3px solid var(--kgt-cta); background: var(--kgt-sand); border-radius: 0 12px 12px 0; }
.jet-form-builder__submit { display: inline-flex; align-items: center; justify-content: center; padding: 14px 26px; border: 0; border-radius: var(--kgt-radius-pill); background: var(--kgt-cta); color: var(--kgt-ink); font: 700 16px/1.2 var(--kgt-font-ui); cursor: pointer; }
.jet-form-builder__submit:hover { background: var(--kgt-cta-dark); }
.jet-form-builder-messages-wrap > div { margin-top: 8px; padding: 12px 16px; border-radius: 12px; font-weight: 600; }
.jet-form-builder-message--success { background: var(--kgt-success-soft); color: var(--kgt-success-ink); }
.jet-form-builder-message--error { background: #FDECEA; color: #A8401D; }
.jet-form-builder .jet-form-builder-row { display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
.jet-form-builder .jet-form-builder__label { width: auto; max-width: none; flex: 0 0 auto; }
.jet-form-builder .jet-form-builder__field-wrap { width: 100%; max-width: none; flex: 1 1 auto; margin: 0; }
.jet-form-builder__heading .jet-form-builder__label-text { font-size: 18px; font-weight: 800; }
.kgt-page-title { max-width: calc(var(--kgt-container) + 2 * var(--kgt-gutter)); margin: 40px auto 8px; padding: 0 var(--kgt-gutter); box-sizing: border-box; }

/* Layout shift fix: CrocoBuilder collapses the header menu with JS, so on phones/tablets the full menu showed
   (header 100px) until the script ran, then the page jumped up (CLS ~0.7). Hide the panel until collapsed. */
@media (max-width: 1024px) {
  .pb-nav[data-mobile-collapse-enabled="1"]:not(.is-collapsed) .pb-nav__mobile-panel { display: none; }
}

/* GetYourGuide "Tickets & tours" under a spot: availability cards in a row, scrolling sideways when they do not fit. */
.kgt-gyg__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
.kgt-gyg__head .kgt-eyebrow { margin: 0 0 6px; }
.kgt-gyg__head .kgt-h2 { margin: 0; }
.kgt-gyg__nav { display: flex; gap: 8px; flex: none; }
.kgt-gyg__nav button { width: 44px; height: 44px; border: 1px solid #D9DEE7; border-radius: 10px; background: #fff; color: #1F2A44; font-size: 18px; line-height: 1; cursor: pointer; }
.kgt-gyg__nav button:hover { background: #1F2A44; border-color: #1F2A44; color: #fff; }
/* The widget shows as many dates as fit (date row width / 72px): 3 cards across on desktop gives 4 dates per card,
   a 4th card is reached with the arrows. */
.kgt-gyg__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 3); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px; }
.kgt-gyg__track::-webkit-scrollbar { display: none; }
.kgt-gyg__card { scroll-snap-align: start; min-width: 0; }
.kgt-gyg__note { margin-top: 16px; }
@media (min-width: 1025px) { .kgt-gyg:is([data-count="1"], [data-count="2"], [data-count="3"]) .kgt-gyg__nav { display: none; } }
@media (max-width: 1024px) { .kgt-gyg__track { grid-auto-columns: calc((100% - 20px) / 2); } .kgt-gyg:is([data-count="1"], [data-count="2"]) .kgt-gyg__nav { display: none; } }
@media (max-width: 640px) { .kgt-gyg__track { grid-auto-columns: 88%; } .kgt-gyg__head .kgt-gyg__nav { display: none; } }

/* CrocoBuilder's plain post list for archives without a body template (shop category): site width and spacing. */
.crocoblocks-theme-builder-native-collection { max-width: calc(var(--kgt-container) + 2 * var(--kgt-gutter)); margin: 16px auto 64px; padding: 0 var(--kgt-gutter); box-sizing: border-box; display: grid; gap: 24px; }
.crocoblocks-theme-builder-native-entry__title { margin: 0 0 8px; }
