/*
Theme Name: FSCZECH Liquid Glass
Theme URI: https://fsczech.cz/
Author: Formula Student Czech Republic
Description: Dark liquid-glass block theme for Formula Student Czech Republic. Full site editing, Gutenberg-native, all content editable in the admin.
Version: 1.12.8
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fsczech-glass
Tags: full-site-editing, block-patterns, dark, one-column, custom-colors
*/

/* ---------------------------------------------------------------
   1. Fixed backdrop layers (printed by functions.php on wp_body_open)
   --------------------------------------------------------------- */
.fsg-backdrop,
.fsg-backdrop__photo,
.fsg-backdrop__grade,
.fsg-backdrop__tint {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.fsg-backdrop__photo {
  inset: -6%;
  background-size: cover;
  background-position: 58% 46%;
  will-change: transform;
  animation: fsg-drift 38s ease-in-out infinite;
}
.fsg-backdrop__grade {
  background: linear-gradient(180deg, rgba(6,7,10,.30) 0%, rgba(6,7,10,.05) 34%, rgba(6,7,10,.55) 100%);
}
.fsg-backdrop__tint {
  background: var(--wp--preset--color--base);
  opacity: .12;
  will-change: opacity;
}
@keyframes fsg-drift {
  0%, 100% { transform: translate3d(0,0,0) scale(1.04); }
  50%      { transform: translate3d(-1%,-2%,0) scale(1.1); }
}
.wp-site-blocks { position: relative; z-index: 2; }

/* Inner pages: the photograph becomes a hero band, not a full-page wallpaper,
   so body copy sits on solid ink and stays readable. */
body.fsg-inner { position: relative; }
.fsg-inner .fsg-backdrop {
  position: absolute;
  inset: 0 0 auto 0;
  height: 470px;
  overflow: hidden;
}
.fsg-inner .fsg-backdrop__photo {
  inset: 0;
  animation: none;
  transform: none !important;
}
.fsg-inner .fsg-backdrop__grade {
  background: linear-gradient(180deg, rgba(6,7,10,.42) 0%, rgba(6,7,10,.5) 32%, rgba(6,7,10,.92) 66%, #06070A 88%);
}
.fsg-inner .fsg-backdrop__tint { opacity: .42 !important; }

/* Give inner pages room so the title lands inside the band and the copy below it does not.
   One measured column for the whole page, so headings, copy, lists and tables share
   a single left edge instead of each block finding its own. */
.fsg-inner .wp-site-blocks > main {
  padding-top: 190px;
  max-width: 980px;
  margin-inline: auto;
}
.fsg-inner .wp-site-blocks > main > *,
.fsg-inner main .wp-block-post-content > * {
  margin-inline: 0;
  max-width: 100%;
}

/* ---------------------------------------------------------------
   2. Glass surface
   --------------------------------------------------------------- */
.fsg-glass {
  position: relative;
  overflow: hidden;
  background: rgba(255,255,255,var(--fsg-glass-alpha, .055));
  -webkit-backdrop-filter: blur(var(--fsg-blur, 32px)) saturate(1.7);
  backdrop-filter: blur(var(--fsg-blur, 32px)) saturate(1.7);
  border: 1px solid var(--fsg-line, rgba(255,255,255,.1));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 24px 60px rgba(0,0,0,.45);
  border-radius: 26px;
}
.fsg-glass--deep { box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 30px 80px rgba(0,0,0,.5); }
.fsg-glass > * { position: relative; z-index: 1; }
.fsg-spec {
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s;
}

/* Rows inside a glass panel keep hairline separators */
.fsg-divided > .wp-block-group,
.fsg-divided > .wp-block-column { border-right: 1px solid rgba(255,255,255,.07); }
.fsg-divided > :last-child { border-right: 0; }

/* ---------------------------------------------------------------
   3. Buttons — pill, no glow
   --------------------------------------------------------------- */
.wp-block-button__link,
.wp-element-button {
  border-radius: 999px;
  padding: 15px 28px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.2;
  transition: transform .22s cubic-bezier(.2,0,0,1), background-color .22s, color .22s;
  box-shadow: none;
}
.wp-block-button__link:hover,
.wp-element-button:hover { transform: translateY(-2px); }

.wp-block-button.is-style-fill .wp-block-button__link {
  background: rgba(255,255,255,.94);
  color: #08090c;
}
.wp-block-button.is-style-fill .wp-block-button__link:hover { background: #fff; color: #08090c; }

.wp-block-button.is-style-fsg-glass .wp-block-button__link {
  background: rgba(255,255,255,var(--fsg-glass-alpha, .055));
  -webkit-backdrop-filter: blur(var(--fsg-blur, 32px)) saturate(1.7);
  backdrop-filter: blur(var(--fsg-blur, 32px)) saturate(1.7);
  border: 1px solid var(--fsg-line, rgba(255,255,255,.1));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
  color: #fff;
  font-weight: 500;
}
.wp-block-button.is-style-fsg-glass .wp-block-button__link:hover { background: rgba(255,255,255,.1); color: #fff; }

/* ---------------------------------------------------------------
   4. Header — floating glass pill
   --------------------------------------------------------------- */
.fsg-header {
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 60;
  width: max-content;
  max-width: calc(100% - 32px);
  padding: 8px 8px 8px 26px;
  border-radius: 999px;
  white-space: nowrap;
  background: rgba(255,255,255,.06);
  -webkit-backdrop-filter: blur(26px) saturate(1.8);
  backdrop-filter: blur(26px) saturate(1.8);
  border: 1px solid var(--fsg-line, rgba(255,255,255,.1));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 16px 44px rgba(0,0,0,.4);
  transition: background-color .3s;
}
.fsg-header.is-scrolled { background: rgba(10,12,16,.62); }
.fsg-header .wp-block-site-logo img { height: 16px; width: auto; display: block; }
/* --- Navigation (classic menu rendered by [fsczech_menu]) --- */
.fsg-header .fsg-nav-wrap { display: flex; align-items: center; }
.fsg-header .fsg-nav-toggle { display: none; }
/* The submenu toggles exist only in the mobile panel; on desktop hover opens them. */
.fsg-header .fsg-sub-toggle { display: none; }

.fsg-header ul.fsg-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.fsg-header ul.fsg-nav li { position: relative; margin: 0; }

.fsg-header ul.fsg-nav a {
  display: block;
  padding: 9px 14px;
  border-radius: 999px;
  font-size: 13.5px;
  line-height: 1.2;
  white-space: nowrap;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  transition: background-color .2s, color .2s;
}
.fsg-header ul.fsg-nav a:hover,
.fsg-header ul.fsg-nav a:focus-visible,
.fsg-header ul.fsg-nav .current-menu-item > a,
.fsg-header ul.fsg-nav .current-menu-ancestor > a {
  background: rgba(255,255,255,.09);
  color: #fff;
}

/* Caret on parents */
.fsg-header ul.fsg-nav .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-left: 8px;
  vertical-align: 2px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: .5;
}

/* Submenu — real glass: the photograph shows through it */
.fsg-header ul.fsg-nav ul.sub-menu {
  position: absolute;
  top: calc(100% + 12px);
  left: -8px;
  z-index: 5;
  display: block;
  min-width: 250px;
  margin: 0;
  padding: 7px;
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px) scale(.97);
  transform-origin: top center;
  transition: opacity .22s cubic-bezier(.2,0,0,1), transform .22s cubic-bezier(.2,0,0,1), visibility .22s;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.02) 100%),
    rgba(9,11,15,.72);
  -webkit-backdrop-filter: blur(44px) saturate(1.9);
  backdrop-filter: blur(44px) saturate(1.9);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.4),
    inset 0 -1px 0 rgba(255,255,255,.08),
    0 26px 64px rgba(0,0,0,.55);
}
.fsg-header ul.fsg-nav ul.sub-menu > li + li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 14px;
  right: 14px;
  height: 1px;
  background: rgba(255,255,255,.07);
}
.fsg-header ul.fsg-nav ul.sub-menu::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(120% 70% at 30% -10%, rgba(255,255,255,.10), transparent 60%);
}
.fsg-header ul.fsg-nav li:hover > ul.sub-menu,
.fsg-header ul.fsg-nav li:focus-within > ul.sub-menu {
  opacity: 1;
  visibility: visible;
  transform: none;
}

/* Bridge across the gap, so the cursor cannot fall through on the way down */
.fsg-header ul.fsg-nav > li.menu-item-has-children::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 16px;
}

/* Third level slides sideways */
.fsg-header ul.fsg-nav ul.sub-menu ul.sub-menu {
  top: -7px;
  left: calc(100% + 10px);
  transform: translateX(-8px) scale(.97);
}
/* Deep branches (Archive → Event 2024 → Documents → Handbook) flip left near the edge */
.fsg-header ul.fsg-nav > li:nth-last-child(-n+4) ul.sub-menu ul.sub-menu {
  left: auto;
  right: calc(100% + 10px);
}
.fsg-header ul.fsg-nav ul.sub-menu li:hover > ul.sub-menu,
.fsg-header ul.fsg-nav ul.sub-menu li:focus-within > ul.sub-menu { transform: none; }

.fsg-header ul.fsg-nav ul.sub-menu a {
  position: relative;
  z-index: 1;
  padding: 10px 14px;
  border-radius: 14px;
  color: rgba(255,255,255,.92);
}
.fsg-header ul.fsg-nav ul.sub-menu a:hover,
.fsg-header ul.fsg-nav ul.sub-menu a:focus-visible {
  background: rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28);
  color: #fff;
}
.fsg-header ul.fsg-nav ul.sub-menu .menu-item-has-children > a::after { transform: rotate(-45deg); margin-left: 10px; }

/* ---------------------------------------------------------------
   5. Type
   --------------------------------------------------------------- */
.fsg-display { letter-spacing: -.045em; line-height: .94; font-weight: 600; text-wrap: balance; }
.fsg-hero-title { text-shadow: 0 2px 40px rgba(0,0,0,.45); }
.fsg-hero-sub { text-shadow: 0 1px 24px rgba(0,0,0,.5); }
h2.fsg-section-title { letter-spacing: -.04em; line-height: 1.04; font-weight: 600; }
.fsg-eyebrow { font-size: 13px; color: var(--wp--preset--color--accent); }
p { text-wrap: pretty; }

/* ---------------------------------------------------------------
   6. Partner tiles
   --------------------------------------------------------------- */
.fsg-partner {
  display: grid;
  place-items: center;
  min-height: 96px;
  padding: 0 12px;
  text-align: center;
  border-radius: 20px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,.09);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16);
  transition: background-color .25s;
}
.fsg-partner:hover { background: rgba(255,255,255,.09); }
.fsg-partner img { max-height: 40px; width: auto; filter: brightness(0) invert(1); opacity: .62; transition: opacity .25s; }
.fsg-partner:hover img { opacity: 1; }

/* ---------------------------------------------------------------
   7. Motion
   --------------------------------------------------------------- */
.fsg-reveal { opacity: 0; transform: translateY(22px); transition: opacity .75s cubic-bezier(.2,0,0,1), transform .75s cubic-bezier(.2,0,0,1); }
.fsg-reveal.is-in { opacity: 1; transform: none; }
.no-js .fsg-reveal { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .fsg-backdrop__photo { animation: none; }
  .fsg-reveal { opacity: 1; transform: none; transition: none; }
  .wp-block-button__link:hover { transform: none; }
}

/* ---------------------------------------------------------------
   9. Inner-page content — reading rhythm, glass tables
   --------------------------------------------------------------- */
/* Hero band typography */
.fsg-inner .wp-block-post-title,
.fsg-inner .wp-block-query-title {
  letter-spacing: -.045em;
  line-height: .96;
  text-shadow: 0 2px 40px rgba(0,0,0,.45);
}

/* Body copy */
.fsg-inner main p,
.fsg-inner main li {
  font-size: 16.5px;
  line-height: 1.72;
  color: rgba(255,255,255,.72);
}

.fsg-inner main strong { color: #fff; font-weight: 600; }

/* Heading rhythm — space above, tight below */
.fsg-inner main h2 {
  margin: 72px 0 18px;
  font-size: clamp(26px, 2.6vw, 36px);
  letter-spacing: -.035em;
}
.fsg-inner main h3 {
  margin: 48px 0 14px;
  font-size: 21px;
  letter-spacing: -.025em;
}
.fsg-inner main h4 {
  margin: 40px 0 12px;
  font-size: 18px;
  letter-spacing: -.02em;
  color: #fff;
}
.fsg-inner main h5 {
  margin: 34px 0 10px;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -.01em;
  color: #fff;
}

/* Lists — accent marker, no browser bullet */
.fsg-inner main ul:not(.fsg-nav):not(.sub-menu):not(.wp-block-buttons) { list-style: none; padding-left: 0; }
.fsg-inner main ul:not(.fsg-nav):not(.sub-menu):not(.wp-block-buttons) > li {
  position: relative;
  padding-left: 22px;
  margin: 0 0 9px;
}
.fsg-inner main ul:not(.fsg-nav):not(.sub-menu):not(.wp-block-buttons) > li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: .72em;
  width: 5px;
  height: 5px;
  border-radius: 1px;
  background: var(--wp--preset--color--accent);
  opacity: .8;
}
.fsg-inner main ol > li { margin: 0 0 9px; }

/* In-copy links */
.fsg-inner main p a,
.fsg-inner main li a,
.fsg-inner main td a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.32);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: text-decoration-color .18s, color .18s;
}
.fsg-inner main p a:hover,
.fsg-inner main li a:hover,
.fsg-inner main td a:hover {
  color: var(--wp--preset--color--accent);
  text-decoration-color: var(--wp--preset--color--accent);
}

/* Tables — glass panel, hairlines only */
.fsg-inner main table,
.fsg-inner main .wp-block-table table,
.fsg-inner main .tablepress {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 34px 0;
  font-size: 15px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  overflow: hidden;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
  backdrop-filter: blur(24px) saturate(1.6);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 20px 50px rgba(0,0,0,.35);
}
.fsg-inner main th {
  padding: 15px 18px;
  text-align: left;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.05);
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.fsg-inner main td {
  padding: 14px 18px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.8);
  vertical-align: top;
}
.fsg-inner main tr:last-child td { border-bottom: 0; }
.fsg-inner main tbody tr { transition: background-color .18s; }
.fsg-inner main tbody tr:hover { background: rgba(255,255,255,.04); }
.fsg-inner main td:first-child { color: #fff; font-weight: 500; }
.fsg-inner main table figcaption,
.fsg-inner main .wp-block-table figcaption {
  font-size: 12.5px;
  color: rgba(255,255,255,.42);
}

/* Media, quotes, rules */
.fsg-inner main img,
.fsg-inner main .wp-block-image img {
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0,0,0,.4);
}
.fsg-inner main blockquote {
  margin: 34px 0;
  padding: 4px 0 4px 24px;
  border-left: 1px solid var(--wp--preset--color--accent);
  font-size: 19px;
  line-height: 1.55;
  color: rgba(255,255,255,.86);
}
.fsg-inner main blockquote p { font-size: inherit; color: inherit; }
.fsg-inner main hr,
.fsg-inner main .wp-block-separator {
  margin: 56px 0;
  border: 0;
  border-top: 1px solid rgba(255,255,255,.09);
  opacity: 1;
}
.fsg-inner main code {
  padding: 2px 7px;
  border-radius: 6px;
  font-size: .9em;
  background: rgba(255,255,255,.08);
}

/* Downloads / file lists read as glass rows */
.fsg-inner main .wp-block-file {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 10px 0;
  padding: 16px 20px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 16px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14);
}

@media (max-width: 600px) {
  .fsg-inner .wp-site-blocks > main { padding-top: 150px; }
  .fsg-inner main table { display: block; overflow-x: auto; }
}

/* ---------------------------------------------------------------
   8. Mobile — drop the expensive blur, keep the tint
   --------------------------------------------------------------- */
@media (max-width: 900px) {
  .fsg-header { width: calc(100% - 24px); padding: 10px 12px 10px 18px; white-space: normal; }

  .fsg-header .fsg-nav-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    padding: 0 10px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
  }
  .fsg-header .fsg-nav-toggle span {
    display: block;
    height: 1.5px;
    background: #fff;
    border-radius: 2px;
    transition: transform .2s;
  }
  .fsg-header .fsg-nav-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.25px) rotate(45deg); }
  .fsg-header .fsg-nav-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.25px) rotate(-45deg); }

  .fsg-header ul.fsg-nav {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 24px;
    background: rgba(10,12,17,.98);
    -webkit-backdrop-filter: blur(34px) saturate(2);
    backdrop-filter: blur(34px) saturate(2);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.24), 0 30px 70px rgba(0,0,0,.55);
    display: none;

    /* The menu is four levels deep — it has to scroll on a phone */
    max-height: calc(100vh - 128px);
    max-height: calc(100dvh - 128px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.24) transparent;
  }
  .fsg-header ul.fsg-nav::-webkit-scrollbar { width: 6px; }
  .fsg-header ul.fsg-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 999px; }
  .fsg-header .fsg-nav-wrap.is-open ul.fsg-nav { display: flex; }
  .fsg-header ul.fsg-nav a { font-size: 16px; padding: 11px 14px; border-radius: 12px; }
  /* No hover carets on a touch panel — the toggle button is the affordance */
  .fsg-header ul.fsg-nav a::after,
  .fsg-header ul.fsg-nav a::before { display: none !important; content: none !important; }

  /* Branches start closed, so the whole tree is not dumped on screen at once */
  .fsg-header ul.fsg-nav li { display: flex; flex-wrap: wrap; align-items: center; }
  .fsg-header ul.fsg-nav li > a { flex: 1 1 auto; }
  .fsg-header ul.fsg-nav ul.sub-menu { flex: 0 0 100%; display: none; }
  .fsg-header ul.fsg-nav li.is-open > ul.sub-menu { display: block; }

  .fsg-header .fsg-sub-toggle {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: none;
    color: rgba(255,255,255,.55);
    cursor: pointer;
  }
  .fsg-header .fsg-sub-toggle::before {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
    transition: transform .22s cubic-bezier(.2,0,0,1);
  }
  .fsg-header li.is-open > .fsg-sub-toggle { color: var(--wp--preset--color--accent); }
  .fsg-header li.is-open > .fsg-sub-toggle::before { transform: rotate(-135deg) translateY(-1px); }
  .fsg-header ul.fsg-nav { padding-bottom: 16px; }

  .fsg-header ul.fsg-nav ul.sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    min-width: 0;
    margin: 2px 0 6px 8px;
    padding: 4px;
    border-radius: 16px;
    background: rgba(255,255,255,.05);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
  }
  .fsg-header ul.fsg-nav ul.sub-menu > li + li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 14px;
  right: 14px;
  height: 1px;
  background: rgba(255,255,255,.07);
}
.fsg-header ul.fsg-nav ul.sub-menu::before { display: none; }
  .fsg-header ul.fsg-nav ul.sub-menu ul.sub-menu { left: auto; margin-left: 10px; }
}

/* The open menu must not let the page scroll behind it */
body.fsg-nav-locked { overflow: hidden; }
@media (max-width: 600px), (hover: none) and (pointer: coarse) {
  .fsg-glass,
  .fsg-partner,
  .fsg-inner main table,
  .fsg-inner main .wp-block-file,
  .wp-block-button.is-style-fsg-glass .wp-block-button__link {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background: rgba(22,25,32,.72);
  }
  .fsg-header { -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); }
  .fsg-header .wp-block-navigation__submenu-container { background: rgba(16,19,25,.9); }
}

/* ---------------------------------------------------------------
   10. Form controls (core, Otter, Spectra, CF7, WPForms)
   --------------------------------------------------------------- */
.fsg-inner input[type="text"],
.fsg-inner input[type="email"],
.fsg-inner input[type="url"],
.fsg-inner input[type="tel"],
.fsg-inner input[type="number"],
.fsg-inner input[type="date"],
.fsg-inner input[type="search"],
.fsg-inner input[type="password"],
.fsg-inner textarea,
.fsg-inner select,
.wp-block-search__input {
  width: 100%;
  padding: 13px 16px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  background: rgba(255,255,255,.05);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.4;
  transition: border-color .18s, background-color .18s;
}
.fsg-inner textarea { min-height: 140px; resize: vertical; }
.fsg-inner select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  background-image: linear-gradient(45deg, transparent 50%, rgba(255,255,255,.6) 50%), linear-gradient(135deg, rgba(255,255,255,.6) 50%, transparent 50%);
  background-position: calc(100% - 20px) center, calc(100% - 15px) center;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.fsg-inner ::placeholder { color: rgba(255,255,255,.38); }
.fsg-inner input:focus,
.fsg-inner textarea:focus,
.fsg-inner select:focus {
  outline: none;
  border-color: rgba(255,255,255,.4);
  background: rgba(255,255,255,.08);
}
.fsg-inner label { display: block; margin-bottom: 8px; font-size: 13.5px; color: rgba(255,255,255,.7); }

.fsg-inner input[type="checkbox"],
.fsg-inner input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  margin: 0 9px 0 0;
  vertical-align: -3px;
  border: 1px solid rgba(255,255,255,.3);
  background: rgba(255,255,255,.06);
  cursor: pointer;
}
.fsg-inner input[type="checkbox"] { border-radius: 5px; }
.fsg-inner input[type="radio"] { border-radius: 50%; }
.fsg-inner input[type="checkbox"]:checked,
.fsg-inner input[type="radio"]:checked {
  border-color: var(--wp--preset--color--accent);
  background: var(--wp--preset--color--accent);
  box-shadow: inset 0 0 0 3px #06070A;
}

.fsg-inner input[type="submit"],
.fsg-inner button[type="submit"],
.fsg-inner .wp-block-search__button {
  width: auto;
  padding: 14px 26px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #08090c;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: transform .2s cubic-bezier(.2,0,0,1), background-color .2s;
}
.fsg-inner input[type="submit"]:hover,
.fsg-inner button[type="submit"]:hover,
.fsg-inner .wp-block-search__button:hover { transform: translateY(-2px); background: #fff; }

/* ---------------------------------------------------------------
   11. TablePress / DataTables controls
   --------------------------------------------------------------- */
.fsg-inner .dt-container,
.fsg-inner .dataTables_wrapper { color: rgba(255,255,255,.6); font-size: 13.5px; }
.fsg-inner .dt-search label,
.fsg-inner .dt-length label,
.fsg-inner .dataTables_filter label,
.fsg-inner .dataTables_length label { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 0; }
.fsg-inner .dt-search input,
.fsg-inner .dataTables_filter input { width: 220px; padding: 9px 14px; font-size: 14px; }
.fsg-inner .dt-length select,
.fsg-inner .dataTables_length select { width: auto; padding: 9px 34px 9px 14px; font-size: 14px; }
.fsg-inner .dt-info,
.fsg-inner .dataTables_info { color: rgba(255,255,255,.42); font-size: 12.5px; }

.fsg-inner .dt-paging .dt-paging-button,
.fsg-inner .dataTables_paginate .paginate_button {
  display: inline-flex;
  align-items: center;
  min-width: 36px;
  height: 36px;
  padding: 0 12px;
  margin: 0 2px;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 999px;
  background: rgba(255,255,255,.05) !important;
  color: rgba(255,255,255,.75) !important;
  font-size: 13.5px;
  cursor: pointer;
  transition: background-color .18s, color .18s;
}
.fsg-inner .dt-paging .dt-paging-button:hover,
.fsg-inner .dataTables_paginate .paginate_button:hover {
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
}
.fsg-inner .dt-paging .dt-paging-button.current,
.fsg-inner .dataTables_paginate .paginate_button.current {
  background: rgba(255,255,255,.94) !important;
  border-color: transparent !important;
  color: #08090c !important;
}
.fsg-inner .dt-paging .dt-paging-button.disabled,
.fsg-inner .dataTables_paginate .paginate_button.disabled { opacity: .35; }

/* Sort arrows on sortable headers */
.fsg-inner th.dt-orderable-asc,
.fsg-inner th.sorting,
.fsg-inner th.sorting_asc,
.fsg-inner th.sorting_desc { cursor: pointer; }
.fsg-inner th.sorting_asc,
.fsg-inner th.sorting_desc { color: #fff; }

/* ---------------------------------------------------------------
   12. Wide tables break out of the reading column and scroll
   --------------------------------------------------------------- */
.fsg-tablescroll {
  max-width: min(1320px, 100vw - 56px);
  margin-inline: calc(50% - min(660px, 50vw - 28px));
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.24) transparent;
}
.fsg-tablescroll::-webkit-scrollbar { height: 8px; }
.fsg-tablescroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 999px; }
.fsg-tablescroll > table,
.fsg-tablescroll > .dt-container table { min-width: 720px; margin: 0; }
.fsg-tablescroll { margin-block: 34px; }

/* ---------------------------------------------------------------
   13. Embeds
   --------------------------------------------------------------- */
.fsg-inner main iframe,
.fsg-inner main .wp-block-embed iframe,
.fsg-inner main video {
  display: block;
  width: 100%;
  border: 0;
  border-radius: 18px;
  background: #0b0d12;
  box-shadow: 0 24px 60px rgba(0,0,0,.4);
}
.fsg-inner main figcaption,
.fsg-inner main .wp-element-caption {
  margin-top: 10px;
  font-size: 12.5px;
  color: rgba(255,255,255,.42);
}

/* ---------------------------------------------------------------
   14. Best effort on blocks that carry their own light palette
   --------------------------------------------------------------- */
.fsg-inner main .has-white-background-color,
.fsg-inner main [style*="background-color:#fff"],
.fsg-inner main [style*="background-color: #fff"],
.fsg-inner main [style*="background-color:#FFF"],
.fsg-inner main [style*="background-color:rgb(255, 255, 255)"] {
  background: rgba(255,255,255,.05) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
  backdrop-filter: blur(24px) saturate(1.6);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  color: rgba(255,255,255,.82) !important;
}
.fsg-inner main .has-black-color,
.fsg-inner main [style*="color:#000"],
.fsg-inner main [style*="color: #000"] { color: rgba(255,255,255,.82) !important; }

/* Headings that carry an inline or preset colour from the content are normalised,
   so a page cannot end up with a blue, a red and a yellow heading side by side. */
.fsg-inner main h2.has-text-color,
.fsg-inner main h3.has-text-color,
.fsg-inner main h4.has-text-color,
.fsg-inner main h2[style*="color"],
.fsg-inner main h3[style*="color"],
.fsg-inner main h4[style*="color"] { color: #fff !important; }

.fsg-inner main h3 {
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}

/* Logo walls on any page — add class "fsg-logos" to the container */
.fsg-logos img {
  filter: brightness(0) invert(1);
  opacity: .62;
  transition: opacity .25s;
}
.fsg-logos a:hover img { opacity: 1; }

/* ---------------------------------------------------------------
   15. Focus + skip link
   --------------------------------------------------------------- */
:focus-visible {
  outline: 2px solid var(--wp--preset--color--accent);
  outline-offset: 3px;
  border-radius: 4px;
}
.skip-link {
  position: absolute;
  left: 50%;
  top: 10px;
  z-index: 100;
  transform: translate(-50%, -200%);
  padding: 12px 22px;
  border-radius: 999px;
  background: #fff;
  color: #08090c;
  font-size: 14px;
  font-weight: 600;
  transition: transform .2s;
}
.skip-link:focus { transform: translate(-50%, 0); color: #08090c; }

/* ---------------------------------------------------------------
   16. Print — handbooks and deadlines get printed
   --------------------------------------------------------------- */
@media print {
  .fsg-backdrop,
  .fsg-header,
  footer.wp-block-group,
  .fsg-nav-wrap,
  .wp-block-buttons { display: none !important; }

  html, body {
    background: #fff !important;
    color: #111 !important;
  }
  .fsg-inner .wp-site-blocks > main {
    padding-top: 0 !important;
    max-width: none;
  }
  main p, main li, main td, main th,
  main h1, main h2, main h3, main h4 { color: #111 !important; }
  main h2 { margin-top: 28px; }
  main a { color: #111 !important; text-decoration: underline; }
  main a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10px; color: #555; }

  main table,
  main .tablepress {
    background: #fff !important;
    border: 1px solid #999 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    break-inside: auto;
  }
  main th { background: #f1f1f1 !important; border-bottom: 1px solid #999 !important; }
  main td { border-bottom: 1px solid #ddd !important; }
  main tr { break-inside: avoid; }
  .fsg-tablescroll { margin-inline: 0; max-width: none; overflow: visible; }
  main img { box-shadow: none !important; border-radius: 0 !important; }
  .fsg-glass {
    background: #fff !important;
    border: 1px solid #ccc !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

/* ---------------------------------------------------------------
   17. Document links — PDF lists read as glass rows
   Applied automatically to any link pointing at a file; no content edits needed.
   --------------------------------------------------------------- */
.fsg-inner main p > a.fsg-doc:only-child,
.fsg-inner main li > a.fsg-doc:only-child,
.fsg-inner main a.fsg-doc.fsg-doc--block {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 52px;
  padding: 8px 14px 8px 16px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(20px) saturate(1.5);
  backdrop-filter: blur(20px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.11);
  color: #fff;
  font-size: 14.5px;
  font-weight: 450;
  line-height: 1.25;
  text-decoration: none;
  text-wrap: balance;
  transition: background-color .18s, transform .18s cubic-bezier(.2,0,0,1), border-color .18s;
}
.fsg-inner main p > a.fsg-doc:only-child:hover,
.fsg-inner main li > a.fsg-doc:only-child:hover,
.fsg-inner main a.fsg-doc.fsg-doc--block:hover {
  background: rgba(255,255,255,.09);
  border-color: rgba(255,255,255,.2);
  transform: translateX(3px);
  color: #fff;
}
.fsg-inner main a.fsg-doc::after {
  content: attr(data-ext);
  flex: none;
  align-self: center;
  padding: 3px 7px;
  border-radius: 5px;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.5);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .09em;
}
.fsg-inner main a.fsg-doc:hover::after {
  background: var(--wp--preset--color--accent);
  color: #08090c;
}

/* Tight stacking when a run of document links follows one another */
.fsg-inner main p:has(> a.fsg-doc:only-child) { margin: 5px 0; max-width: 620px; }
.fsg-inner main li:has(> a.fsg-doc:only-child) { padding-left: 0; margin-bottom: 5px; max-width: 620px; }
.fsg-inner main li:has(> a.fsg-doc:only-child)::before { display: none; }

/* Section labels above a document run sit closer to their list */
.fsg-inner main p.fsg-label {
  margin: 30px 0 9px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42);
}
.fsg-inner main p.fsg-label strong { font-weight: 600; color: inherit; }
.fsg-inner main p.fsg-label:first-child { margin-top: 0; }

/* A whole paragraph set in bold is an intro, not a label */
.fsg-inner main p.fsg-lead {
  margin: 0 0 22px;
  font-size: 19px;
  line-height: 1.55;
  letter-spacing: -.01em;
  color: rgba(255,255,255,.8);
}
.fsg-inner main p.fsg-lead strong { font-weight: 400; color: inherit; }

/* Three-column document board where the page has room */
@media (min-width: 1000px) {
  .fsg-doc-columns { columns: 3; column-gap: 26px; }
  .fsg-doc-columns > * { break-inside: avoid; }
}

@media print {
  .fsg-inner main a.fsg-doc {
    display: block;
    padding: 3px 0;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fsg-inner main a.fsg-doc::after { display: none; }
}

/* ---------------------------------------------------------------
   18. Accordions — core details, Otter, Spectra, Gutenverse
   --------------------------------------------------------------- */
.fsg-inner main details,
.fsg-inner main .wp-block-details,
.fsg-inner main .wp-block-themeisle-blocks-accordion-item,
.fsg-inner main .uagb-accordion-item,
.fsg-inner main .guten-accordion-item,
.fsg-inner main .wp-block-ub-content-toggle-accordion {
  margin: 0 0 8px !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.04) !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.5);
  backdrop-filter: blur(22px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.11);
  overflow: hidden;
  transition: background-color .2s, border-color .2s;
}
.fsg-inner main details[open],
.fsg-inner main .uagb-accordion-item.uagb-accordion-item__active,
.fsg-inner main .guten-accordion-item.active,
.fsg-inner main .wp-block-themeisle-blocks-accordion-item[open] {
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(255,255,255,.18) !important;
}

.fsg-inner main summary,
.fsg-inner main .wp-block-themeisle-blocks-accordion-item__title,
.fsg-inner main .uagb-accordion-item .uagb-accordion-titles,
.fsg-inner main .guten-accordion-item .accordion-header,
.fsg-inner main .wp-block-ub-content-toggle-accordion-title-wrapper {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 15px 20px !important;
  border: 0 !important;
  background: none !important;
  color: #fff !important;
  font-family: inherit;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.3;
  cursor: pointer;
  list-style: none;
  transition: background-color .18s;
}
.fsg-inner main summary:hover,
.fsg-inner main .uagb-accordion-item .uagb-accordion-titles:hover,
.fsg-inner main .guten-accordion-item .accordion-header:hover { background: rgba(255,255,255,.04) !important; }
.fsg-inner main summary::-webkit-details-marker,
.fsg-inner main summary::marker { display: none; content: ""; }

/* Plugin icons take the accent colour instead of a plain plus */
.fsg-inner main .uagb-accordion-item .uagb-icon svg,
.fsg-inner main .guten-accordion-item .accordion-icon svg,
.fsg-inner main .wp-block-themeisle-blocks-accordion-item__title svg {
  width: 15px;
  height: 15px;
  fill: var(--wp--preset--color--accent) !important;
  stroke: var(--wp--preset--color--accent) !important;
  transition: transform .25s cubic-bezier(.2,0,0,1);
}

/* Core details gets its own marker since it has no plugin icon */
.fsg-inner main details > summary::before {
  content: "";
  flex: none;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--wp--preset--color--accent);
  border-bottom: 2px solid var(--wp--preset--color--accent);
  transform: rotate(-45deg);
  transition: transform .25s cubic-bezier(.2,0,0,1);
}
.fsg-inner main details[open] > summary::before { transform: rotate(45deg); }

.fsg-inner main details > *:not(summary),
.fsg-inner main .wp-block-themeisle-blocks-accordion-item__content,
.fsg-inner main .uagb-accordion-item .uagb-accordion-content,
.fsg-inner main .guten-accordion-item .accordion-body,
.fsg-inner main .wp-block-ub-content-toggle-accordion-content-wrap {
  padding: 0 20px 18px !important;
  border: 0 !important;
  background: none !important;
  color: rgba(255,255,255,.72) !important;
  font-size: 15px;
  line-height: 1.62;
}
.fsg-inner main details p:last-child,
.fsg-inner main .uagb-accordion-content p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------
   19. Tab blocks — language switchers on the partner pages
   --------------------------------------------------------------- */
.fsg-inner main .wp-block-themeisle-blocks-tabs__header,
.fsg-inner main .uagb-tabs__panel,
.fsg-inner main .guten-tabs .tab-nav {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 16px !important;
  padding: 5px !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.05) !important;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  width: fit-content;
  list-style: none;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li,
.fsg-inner main .uagb-tabs__panel li,
.fsg-inner main .guten-tabs .tab-nav li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  list-style: none;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li::before,
.fsg-inner main .uagb-tabs__panel li::before { display: none !important; }
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li > *,
.fsg-inner main .uagb-tabs__panel li > *,
.fsg-inner main .guten-tabs .tab-nav li > * {
  display: block;
  padding: 8px 18px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: none !important;
  color: rgba(255,255,255,.58) !important;
  font-size: 13.5px !important;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .18s, color .18s;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li.active > *,
.fsg-inner main .uagb-tabs__panel li.uagb-tabs__active > *,
.fsg-inner main .guten-tabs .tab-nav li.active > * {
  background: rgba(255,255,255,.94) !important;
  color: #08090c !important;
}

/* ---------------------------------------------------------------
   20. Partner logos read on a light plate so brand colours survive
   --------------------------------------------------------------- */
/* The plate is the OUTERMOST wrapper only — a figure around a link must not
   produce a plate inside a plate. */
.fsg-inner main figure:has(img.fsg-logo-plate),
.fsg-inner main a:has(> img.fsg-logo-plate):not(figure a) {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 96px;
  margin: 0 0 18px;
  padding: 18px 22px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.93);
  box-shadow: 0 14px 34px rgba(0,0,0,.28);
  transition: transform .22s cubic-bezier(.2,0,0,1), background-color .22s;
}
.fsg-inner main figure:has(img.fsg-logo-plate):hover,
.fsg-inner main a:has(> img.fsg-logo-plate):not(figure a):hover {
  transform: translateY(-3px);
  background: #fff;
}
/* Inside a figure the link is only a hit area, never a surface of its own */
.fsg-inner main figure:has(img.fsg-logo-plate) > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}
.fsg-inner main img.fsg-logo-plate {
  width: auto;
  max-width: 100%;
  height: 42px;
  border-radius: 0;
  box-shadow: none;
  object-fit: contain;
}
/* In the general-partner banner the plate may stand taller */
.fsg-inner main .wp-block-column[style*="flex-basis:250px"] figure:has(img.fsg-logo-plate) { min-height: 130px; }
.fsg-inner main .wp-block-column[style*="flex-basis:250px"] img.fsg-logo-plate { height: 58px; }

@media print {
  .fsg-inner main details,
  .fsg-inner main .uagb-accordion-item { border: 1px solid #ccc !important; background: none !important; }
  .fsg-inner main summary { color: #111 !important; }
  .fsg-inner main details > *:not(summary) { color: #333 !important; }
  .fsg-inner main a:has(> img.fsg-logo-plate) { border: 1px solid #ddd; background: none !important; box-shadow: none; }
}

/* ---------------------------------------------------------------
   21. Results — three class columns as matched cards
   Put the class "fsg-results" on the Columns block.
   --------------------------------------------------------------- */
.fsg-inner main .fsg-results.wp-block-columns { gap: 28px !important; align-items: flex-start; margin-block: 30px; }
.fsg-inner main .fsg-results > .wp-block-column { padding: 0; border: 0; background: none; }
.fsg-inner main .fsg-results > .wp-block-column > :first-child { margin-top: 0; }
.fsg-inner main .fsg-results h3 { font-size: 19px; }

/* The first file link in each column is the overall result — tagged by script */
.fsg-inner main a.fsg-doc--primary {
  min-height: 58px;
  border-color: rgba(255,199,44,.3) !important;
  background: rgba(255,199,44,.14) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
}
.fsg-inner main a.fsg-doc--primary:hover {
  border-color: rgba(255,199,44,.5) !important;
  background: rgba(255,199,44,.24) !important;
}
.fsg-inner main a.fsg-doc--primary::after {
  background: rgba(255,199,44,.9) !important;
  color: #08090c !important;
}

/* ---------------------------------------------------------------
   22. Stat cards — capacity counters
   Put "fsg-stats" on the Columns block; each column holds a heading and a line.
   --------------------------------------------------------------- */
.fsg-inner main .fsg-stats.wp-block-columns { gap: 16px !important; margin-block: 30px; }
.fsg-inner main .fsg-stats > .wp-block-column {
  padding: 22px 24px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  backdrop-filter: blur(24px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.fsg-inner main .fsg-stats h2,
.fsg-inner main .fsg-stats h3 {
  margin: 0 0 6px !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 40px !important;
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1;
}
.fsg-inner main .fsg-stats p {
  margin: 0 !important;
  font-size: 12.5px;
  color: rgba(255,255,255,.42);
}

/* ---------------------------------------------------------------
   23. Long team tables — sticky head, zebra, start number as a badge
   --------------------------------------------------------------- */
.fsg-inner main .tablepress thead th { background: rgba(255,255,255,.05) !important; }
.fsg-inner main .tablepress tbody tr:nth-child(even) { background: rgba(255,255,255,.022); }
.fsg-inner main .tablepress tbody tr:hover { background: rgba(255,255,255,.055); }
.fsg-inner main .tablepress td:last-child {
  width: 1%;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--wp--preset--color--accent);
}
.fsg-inner main .tablepress td:first-child { font-weight: 500; color: #fff; }

/* Tables with no rows are hidden and replaced by one quiet line */
.fsg-inner main p.fsg-empty {
  margin: 10px 0 26px;
  padding: 15px 20px;
  border: 1px dashed rgba(255,255,255,.16);
  border-radius: 14px;
  font-size: 14px;
  color: rgba(255,255,255,.45);
}

@media print {
  .fsg-inner main .tablepress thead th { position: static; background: #f1f1f1 !important; }
  .fsg-inner main .fsg-results > .wp-block-column,
  .fsg-inner main .fsg-stats > .wp-block-column {
    border: 1px solid #ddd;
    background: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
  }
}

/* Header Portal button — sizing lives here, not in the block markup, so the
   block stays valid in the editor. */
.fsg-header .wp-block-buttons { margin: 0; }
.fsg-header .wp-block-button__link {
  padding: 10px 18px !important;
  font-size: 13.5px !important;
}

/* A glass panel used as a content card needs breathing room — without it the
   last line of copy sits on the border. */
.fsg-inner main .fsg-glass { padding: 24px 26px; overflow: visible; }
.fsg-inner main .fsg-glass > :first-child { margin-top: 0; }
.fsg-inner main .fsg-glass > :last-child { margin-bottom: 0; }
.fsg-inner main .wp-block-columns:has(> .wp-block-column.fsg-glass) { align-items: stretch; gap: 20px; }

/* ---------------------------------------------------------------
   24. Capacity counters and table labels
   Both are built by script from plain paragraphs, so the pages need no editing.
   --------------------------------------------------------------- */
.fsg-statrow {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
  margin: 8px 0 32px;
}
.fsg-stat {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  column-gap: 10px;
  padding: 20px 24px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  backdrop-filter: blur(24px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.fsg-stat__n { font-size: 40px; font-weight: 700; letter-spacing: -.035em; line-height: 1; }
.fsg-stat__l { font-size: 15px; font-weight: 600; color: rgba(255,255,255,.5); }
.fsg-stat__note {
  grid-column: 1 / -1;
  margin-top: 9px;
  font-size: 12.5px;
  color: rgba(255,255,255,.4);
}

.fsg-inner main p.fsg-tablelabel {
  margin: 30px 0 10px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent);
}
.fsg-inner main p.fsg-tablelabel + p.fsg-empty { margin-top: 0; }

@media print {
  .fsg-stat {
    border: 1px solid #ddd;
    background: none !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fsg-stat__n, .fsg-stat__l { color: #111 !important; }
  .fsg-inner main p.fsg-tablelabel { color: #111 !important; }
}

.fsg-inner main figure:has(img.fsg-logo-plate),
.fsg-inner main a:has(> img.fsg-logo-plate):not(figure a) { max-width: 100%; box-sizing: border-box; }

/* Partner cards: equal heights, copy pinned to the top, actions to the bottom */
.fsg-inner main .wp-block-column.fsg-glass h3 { font-size: 17px; }

/* Action row: the link button and the disclosure sit side by side as pills.
   Opening the disclosure lets it take the full width and become a panel. */
.fsg-inner main .fsg-glass .wp-block-buttons {
  display: inline-flex;
  vertical-align: top;
  margin: 6px 10px 6px 0;
}
.fsg-inner main .fsg-glass details.wp-block-details:not([open]) {
  display: inline-block;
  width: auto;
  margin: 6px 0 !important;
  border-radius: 999px !important;
  vertical-align: top;
}
.fsg-inner main .fsg-glass details.wp-block-details:not([open]) > summary {
  padding: 13px 22px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}
.fsg-inner main .fsg-glass details.wp-block-details[open] {
  display: block;
  width: 100%;
  margin: 10px 0 6px !important;
  border-radius: 18px !important;
}
.fsg-inner main .fsg-glass details.wp-block-details[open] > summary {
  padding: 14px 20px !important;
  font-size: 14.5px !important;
}

/* ---------------------------------------------------------------
   25. Team tables from the JSON module
   The tables live inside .table-container, rendered by the JCI block, so they
   need the same treatment the TablePress rules give — matched here by container.
   --------------------------------------------------------------- */
.fsg-inner main .table-container {
  max-width: 100%;
  margin: 18px 0;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.24) transparent;
}
.fsg-inner main .table-container::-webkit-scrollbar { height: 8px; }
.fsg-inner main .table-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 999px; }

.fsg-inner main .table-container table {
  width: 100%;
  min-width: 640px;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 18px;
  background: rgba(255,255,255,.03);
  -webkit-backdrop-filter: blur(24px) saturate(1.4);
  backdrop-filter: blur(24px) saturate(1.4);
  overflow: hidden;
  font-size: 14.5px;
  white-space: normal !important;
}
.fsg-inner main .table-container th {
  padding: 13px 20px !important;
  background: rgba(11,13,18,.94) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.5) !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: left;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.fsg-inner main .table-container td {
  padding: 12px 20px !important;
  border: 0 !important;
  border-top: 1px solid rgba(255,255,255,.06) !important;
  font-size: 14px !important;
  color: rgba(255,255,255,.62);
  vertical-align: middle;
}
.fsg-inner main .table-container tbody tr:first-child td { border-top: 0 !important; }
.fsg-inner main .table-container tbody tr:nth-child(even) { background: rgba(255,255,255,.022); }
.fsg-inner main .table-container tbody tr:hover { background: rgba(255,255,255,.055); }
.fsg-inner main .table-container td:first-child { color: #fff; font-weight: 500; }
.fsg-inner main .table-container td:nth-child(3) { white-space: nowrap; }

/* Start number is the identifier — it reads as a badge, not as body text */
.fsg-inner main .table-container td:last-child {
  width: 1%;
  white-space: nowrap;
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: .03em;
  color: var(--wp--preset--color--accent);
}

/* ---------------------------------------------------------------
   26. Otter tabs — the Registered / Pending / Waiting switch
   --------------------------------------------------------------- */
.fsg-inner main .wp-block-themeisle-blocks-tabs { border: 0 !important; background: none !important; }
.fsg-inner main .wp-block-themeisle-blocks-tabs__header {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  width: fit-content;
  margin: 0 0 4px !important;
  padding: 5px !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.05) !important;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  list-style: none;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li,
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li > * {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  list-style: none;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li::before { display: none !important; }
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li > * {
  display: block;
  padding: 9px 20px !important;
  border-radius: 999px !important;
  color: rgba(255,255,255,.58) !important;
  font-size: 13.5px !important;
  font-weight: 500;
  cursor: pointer;
  transition: background-color .18s, color .18s;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li.active > *,
.fsg-inner main .wp-block-themeisle-blocks-tabs__header li[aria-selected="true"] > * {
  background: rgba(255,255,255,.94) !important;
  color: #08090c !important;
}

/* Otter also renders the label inside each item — same pill treatment, so the
   switch looks right whichever markup the plugin version produces. */
.fsg-inner main .wp-block-themeisle-blocks-tabs-item { border: 0 !important; background: none !important; }
.fsg-inner main .wp-block-themeisle-blocks-tabs-item__header {
  display: inline-flex;
  align-items: center;
  padding: 9px 20px !important;
  margin: 0 6px 8px 0;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.05) !important;
  color: rgba(255,255,255,.58) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  cursor: pointer;
  transition: background-color .18s, color .18s;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs-item__header:hover {
  background: rgba(255,255,255,.1) !important;
  color: #fff !important;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs-item.active > .wp-block-themeisle-blocks-tabs-item__header {
  background: rgba(255,255,255,.94) !important;
  border-color: transparent !important;
  color: #08090c !important;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs-item__content { border: 0 !important; background: none !important; }

/* Class headings that the page paints blue, red and yellow are normalised to
   one voice, matching every other section title on the site. */
.fsg-inner main p.has-large-font-size > strong {
  font-weight: 600;
  color: #fff;
}
.fsg-inner main p.has-large-font-size.has-text-color {
  color: #fff !important;
  margin: 46px 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.1);
  text-align: left !important;
  font-size: 26px !important;
  font-weight: 600;
  letter-spacing: -.02em;
  text-transform: none;
}
.fsg-inner main p.has-large-font-size.has-text-color > strong {
  font-size: inherit;
  letter-spacing: inherit;
  text-transform: none;
}

@media print {
  .fsg-inner main .table-container { margin-inline: 0; max-width: none; overflow: visible; }
  .fsg-inner main .table-container table { min-width: 0; border: 1px solid #999 !important; border-radius: 0 !important; background: none !important; }
  .fsg-inner main .table-container th { position: static; background: #f1f1f1 !important; color: #111 !important; }
  .fsg-inner main .table-container td { color: #222 !important; }
}

/* ---------------------------------------------------------------
   27. Otter tab switch — the plugin paints its own light theme on these,
   so every descendant is reset and only the active pill is filled.
   --------------------------------------------------------------- */
.fsg-inner main .wp-block-themeisle-blocks-tabs__header,
.fsg-inner main .wp-block-themeisle-blocks-tabs__header * {
  border: 0 !important;
  border-radius: 999px !important;
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: rgba(255,255,255,.6) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  text-transform: none !important;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header {
  display: flex !important;
  flex-wrap: wrap;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 6px !important;
  padding: 5px !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  background: rgba(255,255,255,.05) !important;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > * {
  padding: 9px 18px !important;
  cursor: pointer;
  transition: background-color .18s, color .18s;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > *:hover {
  background: rgba(255,255,255,.1) !important;
  color: #fff !important;
}
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > .active,
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > .is-active,
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > [aria-selected="true"],
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > .active *,
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > .is-active *,
.fsg-inner main .wp-block-themeisle-blocks-tabs__header > [aria-selected="true"] * {
  background: rgba(255,255,255,.94) !important;
  background-color: rgba(255,255,255,.94) !important;
  color: #08090c !important;
  font-weight: 600 !important;
}

/* One reading axis: the module centres a few lines the rest of the page does not */
.fsg-inner main p.has-text-align-center { text-align: left !important; }

/* ---------------------------------------------------------------
   28. Otter accordions — the plugin ships its own square, high-contrast
   styling, so these are overridden the same way the tabs are.
   --------------------------------------------------------------- */
.fsg-inner main [class*="themeisle-blocks-accordion"]:not([class*="accordion-item"]) {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
.fsg-inner main details[class*="accordion-item"],
.fsg-inner main div[class*="accordion-item"] {
  margin: 0 !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.04) !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.5);
  backdrop-filter: blur(22px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.11) !important;
  overflow: hidden;
  transition: background-color .2s, border-color .2s;
}
.fsg-inner main details[class*="accordion-item"][open] {
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(255,255,255,.18) !important;
}
.fsg-inner main [class*="accordion-item"] > summary,
.fsg-inner main [class*="accordion-item__title"] {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 15px 20px !important;
  border: 0 !important;
  background: none !important;
  background-color: transparent !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  cursor: pointer;
  list-style: none;
}
.fsg-inner main [class*="accordion-item"] > summary::-webkit-details-marker { display: none; }
.fsg-inner main [class*="accordion-item"] > summary::marker { content: ""; }
.fsg-inner main [class*="accordion-item"] > summary::before,
.fsg-inner main [class*="accordion-item"] > summary::after,
.fsg-inner main [class*="accordion-item__title"]::before,
.fsg-inner main [class*="accordion-item__title"]::after {
  color: var(--wp--preset--color--accent) !important;
  border-color: var(--wp--preset--color--accent) !important;
  background: var(--wp--preset--color--accent) !important;
  opacity: 1;
}
.fsg-inner main [class*="accordion-item"] svg {
  width: 14px;
  height: 14px;
  fill: var(--wp--preset--color--accent) !important;
  stroke: var(--wp--preset--color--accent) !important;
}
.fsg-inner main [class*="accordion-item__content"],
.fsg-inner main details[class*="accordion-item"] > div {
  padding: 0 20px 18px !important;
  border: 0 !important;
  background: none !important;
  color: rgba(255,255,255,.72) !important;
  font-size: 15px;
  line-height: 1.62;
}
.fsg-inner main [class*="accordion-item__content"] p:last-child { margin-bottom: 0; }

/* ---------------------------------------------------------------
   29. Contact — addresses read as actions, the map as a panel
   --------------------------------------------------------------- */
.fsg-inner main a[href^="mailto:"],
.fsg-inner main a[href^="tel:"] {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 11px 20px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color .18s, transform .18s cubic-bezier(.2,0,0,1);
}
.fsg-inner main a[href^="mailto:"]:hover,
.fsg-inner main a[href^="tel:"]:hover {
  background: rgba(255,255,255,.1);
  transform: translateY(-2px);
  color: #fff;
}
/* Inside running text an address stays part of the sentence */
.fsg-inner main p:not(.fsg-label) > a[href^="mailto:"]:not(:only-child) {
  display: inline;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: var(--wp--preset--color--accent);
  text-decoration: none;
}
.fsg-inner main p:not(.fsg-label) > a[href^="mailto:"]:not(:only-child):hover {
  transform: none;
  color: #fff;
  text-decoration: underline;
}

.fsg-map {
  margin: 22px 0 30px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: #0b0d12;
  box-shadow: 0 24px 60px rgba(0,0,0,.4);
  overflow: hidden;
}
.fsg-map iframe { display: block; width: 100%; height: 380px; border: 0; }

@media print {
  .fsg-inner main a[href^="mailto:"],
  .fsg-inner main a[href^="tel:"] {
    display: inline;
    padding: 0;
    border: 0;
    background: none !important;
    box-shadow: none !important;
    color: #111 !important;
  }
  .fsg-map { display: none; }
}

/* ---------------------------------------------------------------
   30. Spectra containers — used as cards on Contact. They arrive with no
   surface and their own grey palette, so they get glass and one voice.
   --------------------------------------------------------------- */
.fsg-inner main [class*="uagb-container"]:not(.uagb-is-root-container):not(.uagb-container-inner-blocks-wrap) {
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.045) !important;
  -webkit-backdrop-filter: blur(26px) saturate(1.5);
  backdrop-filter: blur(26px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1) !important;
}
.fsg-inner main .uagb-is-root-container {
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
.fsg-inner main [class*="uagb-container"] h1,
.fsg-inner main [class*="uagb-container"] h2,
.fsg-inner main [class*="uagb-container"] h3,
.fsg-inner main [class*="uagb-container"] h4,
.fsg-inner main [class*="uagb-container"] h5 {
  color: #fff !important;
  border-bottom: 0;
  padding-bottom: 0;
}
.fsg-inner main [class*="uagb-container"] p,
.fsg-inner main [class*="uagb-container"] li {
  color: rgba(255,255,255,.72) !important;
}

/* Icons in those cards carry the accent, at a size that reads */
.fsg-inner main [class*="uagb-container"] .uagb-icon svg,
.fsg-inner main [class*="uagb-icon-list"] svg,
.fsg-inner main .wp-block-uagb-icon svg {
  width: 30px !important;
  height: 30px !important;
  fill: var(--wp--preset--color--accent) !important;
  color: var(--wp--preset--color--accent) !important;
}

/* A card built from a container reads as one block: heading, line, action */
.fsg-inner main [class*="uagb-container"]:not(.uagb-is-root-container) > *:first-child { margin-top: 0; }
.fsg-inner main [class*="uagb-container"]:not(.uagb-is-root-container) > *:last-child { margin-bottom: 0; }

@media print {
  .fsg-inner main [class*="uagb-container"]:not(.uagb-is-root-container) {
    border: 1px solid #ddd !important;
    background: none !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fsg-inner main [class*="uagb-container"] h2,
  .fsg-inner main [class*="uagb-container"] h3,
  .fsg-inner main [class*="uagb-container"] p { color: #111 !important; }
}

/* ---------------------------------------------------------------
   31. Gutenverse — sections, icon boxes, headings and the map on Contact
   --------------------------------------------------------------- */
.fsg-inner main .guten-section,
.fsg-inner main .section-wrapper,
.fsg-inner main .guten-column,
.fsg-inner main .guten-column-wrapper {
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
.fsg-inner main .guten-container {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: stretch;
}
.fsg-inner main .guten-container > .guten-column { flex: 1 1 240px; min-width: 0; }
.fsg-inner main .guten-column > .guten-column-wrapper { height: 100%; }

/* Icon box = one glass card */
.fsg-inner main .guten-icon-box { height: 100%; }
.fsg-inner main .guten-icon-box-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  height: 100%;
  padding: 26px !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 22px !important;
  background: rgba(255,255,255,.045) !important;
  -webkit-backdrop-filter: blur(26px) saturate(1.5);
  backdrop-filter: blur(26px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1) !important;
  text-align: left !important;
  transition: transform .24s cubic-bezier(.2,0,0,1), background-color .24s, border-color .24s;
}
.fsg-inner main .guten-icon-box-wrapper:hover {
  transform: translateY(-3px);
  background: rgba(255,255,255,.075) !important;
  border-color: rgba(255,255,255,.18) !important;
}
.fsg-inner main .guten-icon-box .icon-box-header { margin: 0 !important; }
.fsg-inner main .guten-icon-box .icon-box-header .icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: rgba(255,199,44,.14) !important;
  border: 1px solid rgba(255,199,44,.22);
}
.fsg-inner main .guten-icon-box .icon-box-header .icon i,
.fsg-inner main .guten-icon-box .icon-box-header .icon svg {
  font-size: 19px !important;
  width: auto;
  height: auto;
  color: var(--wp--preset--color--accent) !important;
  fill: var(--wp--preset--color--accent) !important;
}
.fsg-inner main .guten-icon-box .icon-box-body { display: flex; flex-direction: column; gap: 10px; }
.fsg-inner main .guten-icon-box h2.title,
.fsg-inner main .guten-icon-box .title {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: #fff !important;
  font-size: 19px !important;
  font-weight: 600 !important;
  letter-spacing: -.015em;
  text-align: left !important;
}
.fsg-inner main .guten-icon-box .icon-box-description {
  margin: 0 !important;
  color: rgba(255,255,255,.68) !important;
  font-size: 14.5px !important;
  line-height: 1.6;
  text-align: left !important;
}
.fsg-inner main .guten-icon-box .icon-box-description a[href^="mailto:"] {
  padding: 9px 16px;
  font-size: 14px;
}

/* A section holding a single full-width column lays its card out sideways */
.fsg-inner main .guten-container:not(:has(> .guten-column + .guten-column)) .guten-icon-box-wrapper {
  flex-direction: row;
  align-items: center;
  gap: 24px;
}

/* Advanced heading — one voice with the rest of the site */
.fsg-inner main .guten-advanced-heading .heading-section {
  display: flex;
  align-items: center;
  gap: 14px;
}
.fsg-inner main .guten-advanced-heading .heading-line {
  flex: none;
  width: 26px;
  height: 2px;
  border-radius: 999px;
  background: var(--wp--preset--color--accent) !important;
}
.fsg-inner main .guten-advanced-heading h2.heading-title,
.fsg-inner main .guten-advanced-heading .heading-title {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: #fff !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  letter-spacing: -.025em;
}
.fsg-inner main .guten-advanced-heading .heading-subtitle {
  display: block;
  margin-top: 8px;
  color: rgba(255,255,255,.5) !important;
  font-size: 15px !important;
}
.fsg-inner main h4.wp-block-gutenverse-heading,
.fsg-inner main .wp-block-gutenverse-heading {
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 600 !important;
}

/* Google map block */
.fsg-inner main .gutenverse-maps,
.fsg-inner main .guten-maps {
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: #0b0d12;
  box-shadow: 0 24px 60px rgba(0,0,0,.4);
  overflow: hidden;
}
.fsg-inner main .gutenverse-maps iframe,
.fsg-inner main .guten-maps iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 340px;
  border: 0;
}

@media (max-width: 780px) {
  .fsg-inner main .guten-container { gap: 14px; }
  .fsg-inner main .guten-container > .guten-column { flex: 1 1 100%; }
  .fsg-inner main .guten-container:not(:has(> .guten-column + .guten-column)) .guten-icon-box-wrapper {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media print {
  .fsg-inner main .guten-icon-box-wrapper {
    border: 1px solid #ddd !important;
    background: none !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fsg-inner main .guten-icon-box h2.title,
  .fsg-inner main .guten-advanced-heading .heading-title { color: #111 !important; }
  .fsg-inner main .guten-icon-box .icon-box-description { color: #333 !important; }
  .fsg-inner main .gutenverse-maps { display: none; }
}

/* ---------------------------------------------------------------
   32. Cards in a columns row share one height
   --------------------------------------------------------------- */
.wp-block-columns:has(> .wp-block-column > .fsg-glass) { align-items: stretch; }
.wp-block-column > .wp-block-group.fsg-glass {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
}
/* The constrained layout centres children with auto margins — not wanted in a card */
.wp-block-column > .wp-block-group.fsg-glass > * {
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}
.wp-block-column > .wp-block-group.fsg-glass > .wp-block-buttons:last-child {
  margin-top: auto;
  padding-top: 20px;
}

/* ---------------------------------------------------------------
   33. Numbered rule cards (Yeast Beast)
   Built by script from a "01" heading followed by a title and its copy.
   --------------------------------------------------------------- */
.fsg-inner main .fsg-rules {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin: 26px 0 34px;
}
.fsg-inner main .fsg-rule {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 26px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(26px) saturate(1.5);
  backdrop-filter: blur(26px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
  transition: background-color .22s, border-color .22s, transform .22s cubic-bezier(.2,0,0,1);
}
.fsg-inner main .fsg-rule:hover {
  transform: translateY(-3px);
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.18);
}
.fsg-inner main .fsg-rule .fsg-rule__n {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--wp--preset--color--accent) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .14em;
  line-height: 1;
}
.fsg-inner main .fsg-rule .fsg-rule__t {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em;
  line-height: 1.25;
  text-transform: none !important;
}
.fsg-inner main .fsg-rule p {
  margin: 0 !important;
  color: rgba(255,255,255,.66) !important;
  font-size: 14.5px !important;
  line-height: 1.6;
}


@media print {
  .fsg-inner main .fsg-rule {
    border: 1px solid #ddd;
    background: none !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fsg-inner main .fsg-rule .fsg-rule__t { color: #111 !important; }
  .fsg-inner main .fsg-rule p { color: #333 !important; }
}

/* ---------------------------------------------------------------
   34. Loud pages — Yeast Beast and anything else that should shout.
   Put the class "fsg-loud" on the outer Group.
   --------------------------------------------------------------- */
.fsg-inner main .fsg-loud h2 {
  margin: 54px 0 18px;
  padding: 0;
  border: 0;
  font-size: clamp(30px, 4.4vw, 52px) !important;
  font-weight: 700;
  line-height: .96;
  letter-spacing: -.03em;
  text-transform: uppercase;
  text-wrap: balance;
}
.fsg-inner main .fsg-loud h2:first-child { margin-top: 0; }
.fsg-inner main .fsg-loud h3 {
  font-size: 19px !important;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.fsg-inner main .fsg-loud p.fsg-label {
  color: var(--wp--preset--color--accent) !important;
  font-size: 12.5px;
  letter-spacing: .16em;
}
.fsg-inner main .fsg-loud p.fsg-lead {
  font-size: 21px;
  color: rgba(255,255,255,.86);
}

/* Big numerals on the rule cards */
.fsg-inner main .fsg-loud .fsg-rule { gap: 6px; }
.fsg-inner main .fsg-loud .fsg-rule .fsg-rule__n {
  font-size: 46px !important;
  font-weight: 700 !important;
  letter-spacing: -.04em;
  line-height: 1;
  opacity: .9;
}
.fsg-inner main .fsg-loud .fsg-rule .fsg-rule__t {
  margin-top: 6px !important;
  font-size: 17px !important;
  text-transform: uppercase;
  letter-spacing: .01em;
}

/* A deliberate shout label — set the class in the block, never guessed */
.fsg-inner main p.fsg-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 0 !important;
  padding: 7px 15px !important;
  border: 1px solid rgba(255,199,44,.3);
  border-radius: 999px;
  background: rgba(255,199,44,.1);
  color: var(--wp--preset--color--accent) !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.fsg-inner main .fsg-rule p.fsg-badge { align-self: flex-start; margin-top: 10px !important; }

/* The joke rule earns a wink: card 07 sits on accent */
.fsg-inner main .fsg-loud .fsg-rules .fsg-rule:last-child {
  border-color: rgba(255,199,44,.28);
  background: rgba(255,199,44,.09);
}
.fsg-inner main .fsg-loud .fsg-rules .fsg-rule:last-child:hover {
  background: rgba(255,199,44,.14);
  border-color: rgba(255,199,44,.45);
}

@media print {
  .fsg-inner main p.fsg-badge {
    border-color: #999;
    background: none !important;
    color: #111 !important;
  }
  .fsg-inner main .fsg-loud h2 { color: #111 !important; }
}

/* ---------------------------------------------------------------
   35. One alignment. Blocks carry centring left over from the previous
   theme, where the layout was symmetrical. This one is not: everything
   in the content column starts on the same left axis.
   Centre it deliberately with the class "fsg-center" when needed.
   --------------------------------------------------------------- */
.fsg-inner main :is(h1, h2, h3, h4, h5, p, ul, ol, figure).has-text-align-center:not(.fsg-center) {
  text-align: left;
}
.fsg-inner main .wp-block-column.has-text-align-center:not(.fsg-center),
.fsg-inner main .wp-block-group.has-text-align-center:not(.fsg-center) { text-align: left; }
.fsg-inner main .has-text-align-center:not(.fsg-center) .wp-block-buttons { justify-content: flex-start; }
.fsg-inner main .fsg-center { text-align: center; }

/* ---------------------------------------------------------------
   36. Contact — address cards and a mail row
   --------------------------------------------------------------- */
.fsg-inner main .fsg-mailrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 26px 0 34px;
  padding: 26px 30px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 22px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  backdrop-filter: blur(24px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.fsg-inner main .fsg-mailrow > .wp-block-group { gap: 4px; }
.fsg-inner main .fsg-mailrow p { margin: 0; }

/* An address card: label, mail link, one line of context */
.fsg-inner main .fsg-contact.wp-block-columns { gap: 18px !important; align-items: stretch; margin-block: 26px; }
.fsg-inner main .fsg-contact > .wp-block-column {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px 26px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  background: rgba(255,255,255,.04);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  backdrop-filter: blur(24px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.fsg-inner main .fsg-contact > .wp-block-column > :first-child { margin-top: 0; }
.fsg-inner main .fsg-contact > .wp-block-column > :last-child { margin-bottom: 0; margin-top: auto; }
.fsg-inner main .fsg-contact h3 {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 11.5px !important;
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: rgba(255,255,255,.42) !important;
}
.fsg-inner main .fsg-contact p { margin: 0; font-size: 14px; color: rgba(255,255,255,.55); }

/* Mail links read as links, not as grey chips */
.fsg-inner main a[href^="mailto:"] {
  color: var(--wp--preset--color--accent);
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,199,44,.35);
  transition: border-color .18s;
}
.fsg-inner main a[href^="mailto:"]:hover { border-color: var(--wp--preset--color--accent); }
.fsg-inner main .fsg-contact a[href^="mailto:"],
.fsg-inner main .fsg-mailrow a[href^="mailto:"] { font-size: 17px; }

/* Map embeds get the same glass frame as everything else */
.fsg-inner main .wp-block-embed iframe,
.fsg-inner main iframe[src*="maps"] {
  width: 100%;
  min-height: 380px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
}

@media print {
  .fsg-inner main .fsg-mailrow,
  .fsg-inner main .fsg-contact > .wp-block-column {
    border: 1px solid #ddd;
    background: none !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  .fsg-inner main a[href^="mailto:"] { color: #111 !important; border: 0; }
}

/* ---------------------------------------------------------------
   37. Long team lists — less scrolling
   A hundred rows at 60px is five screens. Tighter rows, a sticky class
   heading so it is always clear which list is on screen, and the three
   classes reachable from a jump strip at the top.
   --------------------------------------------------------------- */
.fsg-inner main table td { padding: 9px 16px !important; font-size: 14px; }
.fsg-inner main table th { padding: 10px 16px !important; }
.fsg-inner main table tbody tr td:nth-child(2) { color: rgba(255,255,255,.6); }


/* Jump strip built by script from the page's own class headings */
.fsg-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 26px 0 30px;
}
.fsg-jump a {
  padding: 8px 16px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  color: rgba(255,255,255,.72);
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color .18s, color .18s, border-color .18s;
}
.fsg-jump a:hover {
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.24);
  color: #fff;
}
html { scroll-behavior: smooth; scroll-padding-top: 110px; }

@media print {
  .fsg-jump { display: none; }
  .fsg-inner main h3 { position: static; background: none; }
}


/* The jump strip leads the page, so it sits a little apart from the copy */
.fsg-inner main .fsg-jump { margin: 30px 0 34px; }
.fsg-inner main .fsg-jump a { white-space: nowrap; }
