/* Shape rules use ">" so they never leak into iconpack SVGs inside foreignObject */
.t3s-svgmenu { overflow-x: auto; }
/* Responsive: scale down to container width, never above natural size */
.t3s-svgmenu > svg { display: block; width: 100%; height: auto; max-width: var(--t3s-w, none); margin-inline: auto; font: 14px/1 var(--bs-body-font-family, system-ui, sans-serif); }
/* Wide trees keep a readable minimum width and scroll instead */
.t3s-svgmenu--horizontal > svg, .t3s-svgmenu--vertical > svg { min-width: min(var(--t3s-w, 100%), 40rem); }
.t3s-svgmenu__node, .t3s-svgmenu__node:hover { text-decoration: none; }
.t3s-svgmenu__edges > path { fill: none; stroke: var(--bs-border-color, #dee2e6); stroke-width: 1.5; }

.t3s-svgmenu__node > rect { fill: var(--bs-body-bg, #fff); stroke: var(--bs-primary, #0d6efd); stroke-width: 1.5; transition: fill .15s; }
.t3s-svgmenu__node > text { fill: var(--bs-body-color, #212529); }
.t3s-svgmenu__node--l0 > rect { fill: var(--bs-primary, #0d6efd); }
.t3s-svgmenu__node--l0 > text { fill: #fff; font-weight: 600; }
.t3s-svgmenu__node.is-current > rect { fill: var(--bs-primary-bg-subtle, #cfe2ff); stroke-width: 2.5; }
.t3s-svgmenu__node:hover > rect,
.t3s-svgmenu__node:focus-visible > rect { fill: var(--bs-primary, #0d6efd); }
.t3s-svgmenu__node:hover > text,
.t3s-svgmenu__node:focus-visible > text { fill: #fff; }
.t3s-svgmenu__node:focus { outline: none; }
.t3s-svgmenu__node:focus-visible > rect { stroke: var(--bs-body-color, #212529); stroke-width: 3; }
.t3s-svgmenu__node > circle { fill: var(--bs-body-bg, #fff); stroke: var(--bs-primary, #0d6efd); stroke-width: 2; }
.t3s-svgmenu__node--l0 > circle,
.t3s-svgmenu__node.is-current > circle,
.t3s-svgmenu__node:hover > circle,
.t3s-svgmenu__node:focus-visible > circle { fill: var(--bs-primary, #0d6efd); }

/* Radial: plain labels with halo instead of boxes */
.t3s-svgmenu--radial .t3s-svgmenu__node > text { paint-order: stroke; stroke: var(--bs-body-bg, #fff); stroke-width: 4px; stroke-linejoin: round; }
.t3s-svgmenu--radial .t3s-svgmenu__node--l0 > text { fill: var(--bs-body-color, #212529); }
.t3s-svgmenu--radial .t3s-svgmenu__node:hover > text,
.t3s-svgmenu--radial .t3s-svgmenu__node:focus-visible > text { fill: var(--bs-primary, #0d6efd); }

/* Wheel menu – colors are CSS variables, override per site */
.t3s-svgmenu--wheel {
  --t3s-wheel-btn-light: #66686b;
  --t3s-wheel-btn-dark: #45474a;
  --t3s-wheel-sep: #2c2d2f;
  --t3s-wheel-text: #ececec;
  --t3s-wheel-active-light: #fcc84f;
  --t3s-wheel-active-dark: #e8961c;
  --t3s-wheel-active-text: #7a4a0c;
  --t3s-wheel-ring-light: #8cc6f2;
  --t3s-wheel-ring-dark: #2f86d0;
  --t3s-wheel-rim: #fff;
  --t3s-wheel-knob-light: #fff;
  --t3s-wheel-knob-mid: #eceef0;
  --t3s-wheel-knob-dark: #b9bdc2;
}
.t3s-wheel__rim { fill: var(--t3s-wheel-rim); }
.t3s-wheel__ring { fill: none; stroke-width: 7; }
.t3s-wheel__dots { fill: none; stroke: #fff; stroke-opacity: .35; stroke-width: 5; stroke-dasharray: 1 2.5; }
.t3s-wheel__base { fill: var(--t3s-wheel-sep); }
.t3s-svgmenu--wheel .t3s-svgmenu__node { transform-box: view-box; transform-origin: 50% 50%; transition: transform .2s ease, filter .2s ease; }
.t3s-svgmenu--wheel .t3s-svgmenu__node > path { fill: var(--t3s-seg); stroke: var(--t3s-wheel-sep); stroke-width: 2; filter: var(--t3s-bevel); }
.t3s-svgmenu--wheel .t3s-svgmenu__node > text { fill: var(--t3s-wheel-text); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; pointer-events: none; }
/* Active / hover: segment pops out and turns orange */
.t3s-svgmenu--wheel .t3s-svgmenu__node:hover,
.t3s-svgmenu--wheel .t3s-svgmenu__node:focus-visible,
.t3s-svgmenu--wheel .t3s-svgmenu__node.is-current:not(.t3s-svgmenu__node--l0) { transform: scale(1.09); filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .35)); }
.t3s-svgmenu--wheel .t3s-svgmenu__node:hover > path,
.t3s-svgmenu--wheel .t3s-svgmenu__node:focus-visible > path,
.t3s-svgmenu--wheel .t3s-svgmenu__node.is-current > path { fill: var(--t3s-act); stroke: var(--t3s-wheel-active-dark); }
.t3s-svgmenu--wheel .t3s-svgmenu__node:hover > text,
.t3s-svgmenu--wheel .t3s-svgmenu__node:focus-visible > text,
.t3s-svgmenu--wheel .t3s-svgmenu__node.is-current > text { fill: var(--t3s-wheel-active-text); }
/* Center knob = root page */
.t3s-svgmenu--wheel .t3s-svgmenu__node--l0 { transform: none !important; filter: drop-shadow(0 3px 5px rgba(0, 0, 0, .4)) !important; }
.t3s-svgmenu--wheel .t3s-svgmenu__node > .t3s-wheel__collar { fill: var(--t3s-act); stroke: var(--t3s-wheel-active-dark); stroke-width: 1; }
.t3s-svgmenu--wheel .t3s-svgmenu__node > .t3s-wheel__knob { fill: var(--t3s-knob); stroke: rgba(0, 0, 0, .15); stroke-width: 1; }
.t3s-svgmenu--wheel .t3s-svgmenu__node--l0 > text { fill: #555; font-size: 13px; font-weight: 600; text-transform: none; }
.t3s-svgmenu--wheel .t3s-svgmenu__node--l0:hover > .t3s-wheel__knob { stroke: var(--t3s-wheel-active-dark); stroke-width: 2; }

/* Iconpack icons (inside foreignObject); icon's own fill/stroke stays, color via currentColor */
.t3s-svgmenu__icon { pointer-events: none; overflow: visible; color: var(--bs-body-color, #212529); }
.t3s-svgmenu__icon > div { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: 1.25rem; line-height: 1; fill: currentColor; }
.t3s-svgmenu__icon svg, .t3s-svgmenu__icon img { width: 1em; height: 1em; }
.t3s-svgmenu__node--l0 .t3s-svgmenu__icon,
.t3s-svgmenu__node:hover .t3s-svgmenu__icon,
.t3s-svgmenu__node:focus-visible .t3s-svgmenu__icon { color: #fff; }
.t3s-svgmenu--radial .t3s-svgmenu__icon { color: var(--bs-primary, #0d6efd) !important; }
.t3s-svgmenu--radial .t3s-svgmenu__icon > div { font-size: 1rem; }
.t3s-svgmenu--wheel .t3s-svgmenu__icon { color: var(--t3s-wheel-text); }
.t3s-svgmenu--wheel .t3s-svgmenu__icon > div { font-size: 2rem; }
.t3s-svgmenu--wheel .t3s-svgmenu__node:hover .t3s-svgmenu__icon,
.t3s-svgmenu--wheel .t3s-svgmenu__node:focus-visible .t3s-svgmenu__icon,
.t3s-svgmenu--wheel .t3s-svgmenu__node.is-current .t3s-svgmenu__icon,
.t3s-svgmenu--wheel .t3s-svgmenu__node--l0 .t3s-svgmenu__icon { color: var(--t3s-wheel-active-text); }

/* SEO fallback list: in the DOM for crawlers, invisible for users */
.t3s-svgmenu__seo { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
