@layer base {
:focus-visible,
:any-link:focus-visible img {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  outline: var(--border-line-thick) var(--color-selection) !important;
  outline-offset: 0.125rem;
  border-radius: 0.125rem;
  background-color: color-mix(in oklch, transparent, var(--color-selection) var(--bg-transparency));
}

html {
  scroll-behavior: smooth;
  scroll-padding-block-start: calc(var(--header-height) + var(--gutter) / 2);
  accent-color: var(--color-accent);
  caret-color: var(--color-accent);
  text-rendering: geometricPrecision;
  scroll-timeline: --scroll-timeline vertical;
  scroll-timeline: --scroll-timeline y;
  position: relative;
}

body {
  display: flex;
  flex-flow: column nowrap;
  background-color: var(--color-bg);
  min-inline-size: 32rem;
  color: var(--color-text);
  font-weight: normal;
  font-size: var(--font-size-sm);
  line-height: 1.775;
  font-family: var(--font-family-primary);
  letter-spacing: -0.0075em;
  tab-size: inherit;
  -webkit-tap-highlight-color: inherit;
  -webkit-text-size-adjust: inherit;
  text-size-adjust: inherit;
  text-rendering: inherit;
  overflow-wrap: inherit;
}

#main {
  padding-block-start: calc(var(--header-height) - 0.3rem);
}

:where(blockquote, em, i) {
  padding-inline-end: 0.05em;
  font-style: italic;
}

:where(blockquote) {
  margin-inline: calc((var(--gutter) * 2 + var(--gutter-var) * 3) / 5);
  text-align: justify;
}

:where(p, dl, ol, ul) {
  margin-block-start: 0;
  margin-block-end: 1.25em;
}

:where(:is(p, dl, ol, ul):last-child) {
  margin-block-end: 0;
}

:where(:is(ol, ul):not([role])) {
  padding-inline-start: 1.5em;
  list-style-type: disc;
}

:where(:is(ol, ul):not([role]) > :not(:last-child)) {
  margin-block-end: 0.625em;
}

:where(#content header ~ :where(ul, ol, dl):not(header) li:nth-child(n):where(:has(> a:only-child), :has(> p:only-child > a:only-child))) {
  margin-inline-start: calc(var(--gutter-var) * -1);
  list-style-type: none;
}

:where(:is(ol, ul):has(li:nth-child(n):has(> a:only-child))) {
  padding-inline-start: revert;
}

:where(img, video) {
  object-fit: cover;
  object-position: var(--object-position-x, center) var(--object-position-y, center);
}

:where(figure) {
  margin-inline: 0;
}

:where(video) {
  aspect-ratio: auto 16/9;
}

:where(.logo :is(img, svg)) {
  view-transition-name: logo;
}

:where(hr) {
  opacity: 1;
  margin-block: var(--gutter);
  border: none;
  border-block-start: var(--border-line) var(--color-accent);
}

:where(address) {
  font-style: normal;
}

:where(address) :any-link {
  display: inline-block;
  margin-block-end: 0.5em;
  text-decoration: underline;
}

:where(address) .icon {
  vertical-align: middle;
  font-size: 1.5em;
}

:where(figcaption) {
  opacity: 0.725;
  margin-inline: auto;
  margin-block-start: 0.5em;
  margin-block-end: 0.25em;
  /*max-inline-size: 64ch;*/
  line-height: 1.525;
  text-align: center;
  text-wrap: balance;
}

/* lists */
::marker {
  color: var(--color-accent);
}

/* utility */
.contain {
  margin-inline: auto;
  inline-size: 100%;
  max-inline-size: var(--content-width);
}
.frame-full-width > .contain {
  max-inline-size: 100%;
}
.contain > header {
  position: relative;
}
[data-theme=light] .contain > header {
  color-scheme: light;
  --header-color: var(--data-color-secondary);
}
@media (prefers-color-scheme: light) {
  .contain > header {
    color-scheme: light;
    --header-color: var(--data-color-secondary);
  }
}
[data-theme=dark] .contain > header {
  color-scheme: dark;
  --header-color: inherit;
}
@media (prefers-color-scheme: dark) {
  .contain > header {
    color-scheme: dark;
    --header-color: inherit;
  }
}

.contain.condensed {
  max-inline-size: var(--content-width-condensed);
}

[data-menu=collapse] {
  display: grid;
  grid-template-rows: 1fr;
  transition: grid-template-rows var(--transition, 250ms ease-out);
}

[data-menu=collapse][inert] {
  grid-template-rows: 0fr;
}

[data-menu=collapse] > * {
  grid-row: 1/span 2;
}

:has(> [data-menu=popup]) {
  position: relative;
}

[data-menu=popup] {
  position: absolute;
  inset-block-start: 100%;
  inset-inline-end: -100%;
}

[data-menu=popup][inert] {
  opacity: 0;
}

@media (min-width: 744px) {
  [data-menu=popup] {
    inset-inline-end: 0;
  }
}
/* other */
.toggler {
  font-weight: 600;
}

.toggler .button-icon {
  --bar-size: 2px;
  display: inline-flex;
  flex-flow: column nowrap;
  justify-content: space-between;
  vertical-align: 0.75em;
  margin-inline-start: 0.375em;
  inline-size: 1.325em;
  block-size: 1em;
  line-height: 1;
}

.toggler .button-icon > span {
  display: block;
  transition: transform var(--transition), opacity var(--transition);
  background-color: currentColor;
  inline-size: 100%;
  block-size: var(--bar-size);
}

.toggler .button-icon > span:where([aria-expanded=true] span):first-child {
  transform: translateY(0.5em) translateY(calc(var(--bar-size) / -2)) rotate(45deg) scale(1.125);
}

.toggler .button-icon > span:where([aria-expanded=true] span):not(:first-child):not(:last-child) {
  transform: scale(0.5);
  opacity: 0;
}

.toggler .button-icon > span:where([aria-expanded=true] span):last-child {
  transform: translateY(-0.5em) translateY(calc(var(--bar-size) / 2)) rotate(-45deg) scale(1.125);
}

/* content animations */
#content [data-state] {
  transition: var(--transition);
  transition-property: opacity, transform;
}

#content [data-state=hidden] {
  transform: translateY(1vb);
  opacity: 0;
}

/* text alignment */
.text-left {
  margin-inline-end: auto;
  text-align: start;
}

.text-center {
  margin-inline: auto;
  text-align: center;
}

.text-right {
  margin-inline-start: auto;
  text-align: end;
}

/* content */
#content [data-content] {
  padding-block: var(--block-padding);
}
#content [data-content] header + [data-content] {
  padding-block-start: 0;
}

#content > [data-content] {
  padding-block: calc((var(--gutter) + var(--gutter-var)) * 1.5);
}
#content > [data-content]:last-child:not(.bg-section) {
  padding-block-end: calc((var(--gutter) + var(--gutter-var)) * 1.5 + var(--decor-height));
}

#content > [data-overlay=top] {
  padding-block-start: 0;
}

#content > [data-overlay=bottom] {
  padding-block-end: 0;
}
#content > [data-overlay=bottom] + [data-content] {
  padding-block-start: var(--decor-height);
}
#content > [data-overlay=bottom]:last-child .overlay {
  display: none;
}
#content > [data-overlay=bottom] [data-content] {
  padding-block-end: calc(var(--decor-height) - var(--gutter-var));
}

#content header {
  position: relative;
}

#content form [data-content] {
  padding-block: revert;
}

#content .frame-type-grid:not(.frame-none) {
  padding-block: calc((var(--gutter) + var(--gutter-var)) * 1);
}

#content .frame-type-grid [data-content] {
  padding-block: calc((var(--gutter) + var(--gutter-var)) * 0);
}

.frame-full-width > .contain.decorated.bottom > [data-content] {
  padding-block-start: 0 !important;
}

@media (min-width: 744px) {
  #content .frame-type-grid:not(.frame-none) {
    padding-block: calc((var(--gutter) + var(--gutter-var)) * 1.5);
  }
}
#content :is(img, video, svg) {
  inline-size: 100%;
}

#content :is(img, video, svg):not(.contain *) {
  max-block-size: calc(var(--content-height) * 3 / 4);
}

/* skip top */
#skip-link {
  position: fixed;
  z-index: 15;
  margin: 2.5rem;
  inset: 0 auto auto 0;
  border: var(--border-dots) var(--color-accent);
  border-radius: 0.5rem;
  background-color: var(--color-bg);
  padding: 1.5rem;
  max-inline-size: calc(100vw - 5rem);
  color: var(--color-accent);
  text-decoration: none;
}

.skip-link {
  display: inline-block;
  position: relative;
  border: var(--border-dots) var(--color-accent);
  border-radius: 0.5rem;
  background-color: var(--color-bg);
  padding: 1.5rem;
  max-inline-size: calc(100vw - 5rem);
  color: var(--color-accent);
  text-decoration: none;
}

.skip-link:where(:hover, :focus-visible) {
  opacity: 1;
}

#top {
  position: absolute;
  inset-block-start: 0;
  block-size: var(--header-height);
}

#top-link {
  display: none;
  position: fixed;
  justify-content: center;
  align-items: center;
  opacity: 0.75;
  transition: transform var(--transition), opacity var(--transition);
  inset-block-end: 5.25%;
  inset-inline-end: var(--content-padding);
  box-shadow: 0 0.25em 0.5em -0.25em var(--color-bg);
  border-radius: calc(infinity * 1px);
  background-color: var(--color-accent);
  inline-size: 2em;
  block-size: 2em;
  color: var(--color-bg);
  font-size: calc(125% + min(0.375vb, 25%));
}

#top-link:where(:hover, :focus-visible) {
  transform: translateY(-1.25%) scale(107.5%);
  opacity: 1;
}

#top-link[inert] {
  opacity: 0;
}

:where(.frame-same-height) [class^=col] {
  display: flex;
  flex-direction: column;
}
:where(.frame-same-height) [class^=col] > * {
  min-block-size: 100%;
}

.mobile-reverse {
  flex-direction: column-reverse;
}
@media (min-width: 960px) {
  .mobile-reverse {
    flex-direction: row;
  }
}

.frame-buttons-menu ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  text-align: center;
  gap: var(--gutter);
}
.frame-buttons-menu ul li {
  margin: 0;
}

/* sitemap */
ul.sitemap-list li {
  margin-inline-start: 20px;
  list-style-type: circle;
}
ul.sitemap-list p {
  margin-block-end: 0;
}
}