.site-header {
position: relative;
z-index: 100;
background: var(--component-color-bg);
font-family: var(--component-font-family);
} .site-header--sticky {
position: sticky;
top: 0;
box-shadow: var(--component-shadow);
}
.site-header__inner {
display: flex;
align-items: center;
gap: var(--component-gutter);
padding-top: var(--component-space-compact);
padding-bottom: var(--component-space-compact);
}
.site-header__logo {
flex-shrink: 0;
line-height: 0;
}
.site-header__logo img {
display: block;
max-height: 48px;
width: auto;
}
.site-header__site-title {
flex-shrink: 0;
margin: 0;
font-size: var(--component-font-size-h5);
font-weight: 700;
}
.site-header__site-title a {
color: var(--component-color-dark);
text-decoration: none;
}
.site-header__nav {
flex-grow: 1;
display: flex;
justify-content: center;
}
.site-header__menu {
display: flex;
align-items: center;
gap: var(--component-space-compact);
margin: 0;
padding: 0;
list-style: none;
}
.site-header__menu li {
position: relative;
}
.site-header__menu a {
display: inline-block;
padding: 0.25rem 0;
color: var(--component-color-text);
font-size: var(--component-font-size-text);
font-weight: 500;
text-decoration: none;
transition: color var(--component-transition);
}
.site-header__menu a:hover,
.site-header__menu a:focus {
color: var(--component-color-primary);
}
.site-header__menu a:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 4px;
} .site-header__menu ul {
position: absolute;
top: 100%;
left: 0;
z-index: 10;
margin: 0;
padding: 0.5rem 0;
min-width: 220px;
list-style: none;
background: var(--component-color-bg);
border-radius: var(--component-radius);
box-shadow: var(--component-shadow);
opacity: 0;
visibility: hidden;
transform: translateY(4px);
transition: opacity var(--component-transition), transform var(--component-transition), visibility var(--component-transition);
}
.site-header__menu li:hover > ul,
.site-header__menu li:focus-within > ul {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.site-header__menu ul a {
display: block;
padding: 0.5rem 1.25rem;
}
.site-header__cta {
flex-shrink: 0;
}
.site-header__cta-button {
padding: 10px 22px;
} .site-header__toggle {
display: none;
position: fixed;
top: var(--component-space-compact);
right: var(--component-gutter);
z-index: 1010;
flex-shrink: 0;
flex-direction: column;
justify-content: center;
align-items: flex-end;
gap: 6px;
width: 32px;
height: 32px;
padding: 0;
background: none;
border: 0;
cursor: pointer;
}
.site-header__toggle-bar {
display: block;
width: 100%;
height: 2px;
background: var(--component-color-dark);
border-radius: 2px;
transition: transform var(--component-transition), opacity var(--component-transition), width var(--component-transition);
}
.site-header__toggle-bar:nth-child(2) {
width: 70%;
}
.site-header__toggle:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 3px;
} .site-header__toggle[aria-expanded="true"] .site-header__toggle-bar {
width: 100%;
}
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(1) {
transform: translateY(8px) rotate(45deg);
}
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(2) {
opacity: 0;
}
.site-header__toggle[aria-expanded="true"] .site-header__toggle-bar:nth-child(3) {
transform: translateY(-8px) rotate(-45deg);
}
@media (prefers-reduced-motion: reduce) {
.site-header__menu ul,
.site-header__toggle-bar {
transition: none;
}
}html.site-mobile-menu-open {
overflow: hidden;
}
.site-mobile-menu {
position: fixed;
inset: 0;
z-index: 1000;
font-family: var(--component-font-family);
visibility: hidden;
opacity: 0;
transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}
.site-mobile-menu.is-open {
visibility: visible;
opacity: 1;
transition: opacity 0.3s ease;
}
.site-mobile-menu__panel {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
height: 100%; padding-top: calc(var(--component-space-compact) * 2 + 32px);
background: var(--component-color-bg);
overflow: hidden;
}
.site-mobile-menu__nav {
position: relative;
flex-grow: 1;
overflow: hidden;
}
.site-mobile-menu__cta {
flex-shrink: 0;
padding: var(--component-gutter);
}
.site-mobile-menu__cta-button {
display: block;
text-align: center;
} .site-mobile-menu__submenu {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
background: var(--component-color-bg);
transform: translateX(100%);
transition: transform 0.3s ease;
}
.site-mobile-menu__submenu.is-active {
transform: translateX(0);
}
.site-mobile-menu__back {
display: flex;
align-items: center;
gap: 0.5rem;
flex-shrink: 0;
padding: var(--component-gutter);
background: none;
border: 0;
border-bottom: 1px solid var(--component-color-border);
color: var(--component-color-primary);
font-size: var(--component-font-size-text);
font-weight: 600;
text-align: left;
cursor: pointer;
}
.site-mobile-menu__back-icon {
display: inline-block;
width: 8px;
height: 8px;
border-left: 2px solid currentColor;
border-bottom: 2px solid currentColor;
transform: rotate(45deg);
}
.site-mobile-menu__back:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: -3px;
}
.site-mobile-menu__list {
margin: 0;
padding: 0 var(--component-gutter);
list-style: none;
}
.site-mobile-menu__item {
border-bottom: 1px solid var(--component-color-border);
}
.site-mobile-menu__row {
display: flex;
align-items: center;
justify-content: space-between;
}
.site-mobile-menu__link {
display: block;
flex-grow: 1;
padding: 1.1rem 0;
color: var(--component-color-dark);
font-size: var(--component-font-size-h5);
text-decoration: none;
}
.site-mobile-menu__link:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: -3px;
}
.site-mobile-menu__expand {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 44px;
height: 44px;
padding: 0;
background: none;
border: 0;
cursor: pointer;
}
.site-mobile-menu__expand-icon {
display: inline-block;
width: 8px;
height: 8px;
border-right: 2px solid var(--component-color-meta);
border-top: 2px solid var(--component-color-meta);
transform: rotate(45deg);
}
.site-mobile-menu__expand:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: -3px;
} .site-mobile-menu[data-style="lateral"] .site-mobile-menu__panel {
transform: translateX(100%);
box-shadow: var(--component-shadow);
transition: transform 0.3s ease;
}
.site-mobile-menu[data-style="lateral"].is-open .site-mobile-menu__panel {
transform: translateX(0);
} .site-mobile-menu[data-style="overlay"] {
--nawakine-mobile-menu-overlay-bg: #0a0a0a;
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__panel,
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__submenu {
background: var(--nawakine-mobile-menu-overlay-bg);
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__panel {
transform: scale(0.97);
opacity: 0;
transition: transform 0.3s ease, opacity 0.3s ease;
}
.site-mobile-menu[data-style="overlay"].is-open .site-mobile-menu__panel {
transform: scale(1);
opacity: 1;
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__back,
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__link,
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__back-icon {
color: var(--component-color-text-invert);
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__item,
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__back {
border-bottom-color: rgba(255, 255, 255, 0.15);
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__expand-icon {
border-color: var(--component-color-text-invert);
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__list {
text-align: center;
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__row {
justify-content: center;
position: relative;
}
.site-mobile-menu[data-style="overlay"] .site-mobile-menu__expand {
position: absolute;
right: 0;
} .site-mobile-menu[data-style="overlay"].is-open ~ .site-header__toggle .site-header__toggle-bar {
background: var(--component-color-text-invert);
}
@media (prefers-reduced-motion: reduce) {
.site-mobile-menu,
.site-mobile-menu__panel,
.site-mobile-menu__submenu {
transition: none;
}
}.site-footer {
background: var(--component-color-bg2);
border-top: 1px solid var(--component-color-border);
font-family: var(--component-font-family);
} .site-footer__top {
display: grid; grid-template-columns: minmax(220px, 320px) repeat(auto-fit, minmax(140px, 1fr));
gap: var(--component-space-compact);
padding-top: var(--component-space-normal);
padding-bottom: var(--component-space-normal);
border-bottom: 1px solid var(--component-color-border);
}
.site-footer__col-title {
margin: 0 0 1rem;
color: var(--component-color-dark);
font-size: var(--component-font-size-h6);
font-weight: 700;
}
.site-footer__brand {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.site-footer__logo img {
display: block;
max-height: 40px;
width: auto;
}
.site-footer__site-title {
margin: 0;
font-size: var(--component-font-size-h5);
font-weight: 700;
}
.site-footer__site-title a {
color: var(--component-color-dark);
text-decoration: none;
}
.site-footer__tagline {
margin: 0;
max-width: 32ch;
color: var(--component-color-meta);
font-size: var(--component-font-size-text);
line-height: 1.5;
}
.site-footer__nav-list,
.site-footer__nav-list ul {
display: flex;
flex-direction: column;
gap: 0.75rem;
margin: 0;
padding: 0;
list-style: none;
}
.site-footer__nav-list ul {
margin-top: 0.75rem;
margin-left: 1rem;
}
.site-footer__nav-list a {
color: var(--component-color-text);
font-size: var(--component-font-size-text);
text-decoration: none;
transition: color var(--component-transition);
}
.site-footer__nav-list a:hover,
.site-footer__nav-list a:focus {
color: var(--component-color-primary);
}
.site-footer__nav-list a:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 2px;
}
.site-footer__widgets {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: var(--component-space-compact);
}
.site-footer__widgets .widget-title {
margin: 0 0 1rem;
color: var(--component-color-dark);
font-size: var(--component-font-size-h6);
}
.site-footer__widgets .widget {
color: var(--component-color-text);
font-size: var(--component-font-size-text);
}
.site-footer__widgets .widget ul {
margin: 0;
padding: 0;
list-style: none;
}
.site-footer__widgets .widget li {
margin-bottom: 0.6rem;
}
.site-footer__widgets .widget a {
color: var(--component-color-text);
text-decoration: none;
transition: color var(--component-transition);
}
.site-footer__widgets .widget a:hover,
.site-footer__widgets .widget a:focus {
color: var(--component-color-primary);
}
@media (max-width: 768px) {
.site-footer__top {
grid-template-columns: 1fr;
gap: var(--component-space-compact);
}
}
.site-footer__socket {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
gap: var(--component-gutter);
padding-top: var(--component-space-compact);
padding-bottom: var(--component-space-compact);
color: var(--component-color-meta);
font-size: var(--component-font-size-text);
}
.site-footer__socket-left,
.site-footer__socket-right {
margin: 0;
}
.site-footer__socket-left p,
.site-footer__socket-right p {
margin: 0;
}
.site-footer__socket-left img,
.site-footer__socket-right img {
max-height: 32px;
width: auto;
vertical-align: middle;
}html.site-search-open {
overflow: hidden;
} .site-header__search {
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: center; width: 44px;
height: 44px;
padding: 0;
background: none;
border: 0;
border-radius: 50%;
cursor: pointer;
transition: background var(--component-transition);
}
.site-header__search:hover,
.site-header__search:focus-visible {
background: var(--component-color-muted);
}
.site-header__search:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 2px;
}
.site-header__search-icon {
display: block;
width: 14px;
height: 14px;
border: 2px solid var(--component-color-dark);
border-radius: 50%;
position: relative;
}
.site-search-overlay__field-icon {
display: block;
width: 18px;
height: 18px;
border: 2px solid var(--component-color-dark);
border-radius: 50%;
position: relative;
}
.site-header__search-icon::after {
content: "";
position: absolute;
top: 100%;
left: 100%;
width: 6px;
height: 2px;
background: var(--component-color-dark);
border-radius: 2px;
transform: rotate(45deg);
transform-origin: 0 0;
margin-left: 1px;
margin-top: -1px;
}
.site-search-overlay__field-icon::after {
content: "";
position: absolute;
top: 100%;
left: 100%;
width: 8px;
height: 2px;
background: var(--component-color-dark);
border-radius: 2px;
transform: rotate(45deg);
transform-origin: 0 0;
margin-left: 1px;
margin-top: -1px;
}
.site-mobile-menu__search {
display: flex;
align-items: center;
gap: 0.75rem;
width: 100%;
padding: 1rem var(--component-gutter);
margin-bottom: 0.5rem;
background: var(--component-color-muted);
border: 0;
border-radius: var(--component-radius);
color: var(--component-color-dark);
font-family: inherit;
font-size: var(--component-font-size-text);
font-weight: 600;
text-align: left;
cursor: pointer;
}
.site-mobile-menu__search-icon {
display: block;
flex-shrink: 0;
width: 16px;
height: 16px;
border: 2px solid var(--component-color-meta);
border-radius: 50%;
position: relative;
}
.site-mobile-menu__search-icon::after {
content: "";
position: absolute;
top: 100%;
left: 100%;
width: 7px;
height: 2px;
background: var(--component-color-meta);
border-radius: 2px;
transform: rotate(45deg);
transform-origin: 0 0;
margin-left: 1px;
margin-top: -1px;
} .site-search-overlay {
position: fixed;
inset: 0;
z-index: 1030;
font-family: var(--component-font-family);
visibility: hidden;
opacity: 0;
transition: opacity 0.2s ease, visibility 0s linear 0.2s;
}
.site-search-overlay.is-open {
visibility: visible;
opacity: 1;
transition: opacity 0.2s ease;
}
.site-search-overlay__backdrop {
position: absolute;
inset: 0;
background: rgba(17, 24, 39, 0.6);
}
.site-search-overlay__panel {
position: relative;
display: flex;
flex-direction: column;
width: min(680px, calc(100% - var(--component-gutter) * 2));
max-height: min(560px, calc(100vh - 10vh - var(--component-gutter) * 2));
margin: 10vh auto 0;
background: var(--component-color-bg);
border-radius: var(--component-radius-lg);
box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
overflow: hidden;
transform: translateY(-12px);
transition: transform 0.2s ease;
}
.site-search-overlay.is-open .site-search-overlay__panel {
transform: translateY(0);
}
.site-search-overlay__field {
display: flex;
flex-shrink: 0;
align-items: center;
gap: 0.85rem;
padding: 1.25rem 1.5rem;
border-bottom: 1px solid var(--component-color-border);
}
.site-search-overlay__field-icon {
flex-shrink: 0;
}
.site-search-overlay__input {
flex-grow: 1;
min-width: 0;
padding: 0;
background: none;
border: 0;
color: var(--component-color-dark);
font-family: inherit;
font-size: 1.25rem;
font-weight: 500;
}
.site-search-overlay__input:focus {
outline: none;
}
.site-search-overlay__input::-webkit-search-cancel-button {
display: none;
}
.site-search-overlay__shortcut {
flex-shrink: 0;
padding: 0.2rem 0.5rem;
background: var(--component-color-muted);
border-radius: calc(var(--component-radius) / 2);
color: var(--component-color-meta);
font-size: 0.75rem;
font-weight: 600;
letter-spacing: 0.02em;
}
.site-search-overlay__close {
flex-shrink: 0;
position: relative;
width: 28px;
height: 28px;
padding: 0;
background: none;
border: 0;
border-radius: 50%;
cursor: pointer;
}
.site-search-overlay__close:hover,
.site-search-overlay__close:focus-visible {
background: var(--component-color-muted);
}
.site-search-overlay__close:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 2px;
}
.site-search-overlay__close-bar {
position: absolute;
top: 50%;
left: 50%;
width: 14px;
height: 2px;
background: var(--component-color-meta);
border-radius: 2px;
transform: translate(-50%, -50%) rotate(45deg);
}
.site-search-overlay__close-bar:nth-child(2) {
transform: translate(-50%, -50%) rotate(-45deg);
}
.site-search-overlay__results {
overflow-y: auto;
padding: 0.5rem;
}
.site-search-overlay__message {
margin: 0;
padding: 1.5rem 1rem;
color: var(--component-color-meta);
text-align: center;
}
.site-search-overlay__result {
display: flex;
align-items: baseline;
justify-content: space-between;
gap: 1rem;
padding: 0.85rem 1rem;
border-radius: var(--component-radius);
color: inherit;
text-decoration: none;
}
.site-search-overlay__result:hover,
.site-search-overlay__result.is-active {
background: var(--component-color-muted);
}
.site-search-overlay__result-title {
color: var(--component-color-dark);
font-weight: 600;
}
.site-search-overlay__result-type {
flex-shrink: 0;
color: var(--component-color-meta);
font-size: 0.8rem;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.site-search-overlay__view-all {
display: block;
margin-top: 0.25rem;
padding: 0.85rem 1rem;
border-top: 1px solid var(--component-color-border);
color: var(--component-color-primary);
font-weight: 600;
text-decoration: none;
}
.site-search-overlay__view-all:hover,
.site-search-overlay__view-all:focus-visible {
color: var(--component-color-primary-dark);
}
@media (max-width: 600px) {
.site-search-overlay__panel {
margin-top: var(--component-gutter);
max-height: calc(100vh - var(--component-gutter) * 2);
}
.site-search-overlay__input {
font-size: 1rem;
}
.site-search-overlay__shortcut {
display: none;
}
}
@media (prefers-reduced-motion: reduce) {
.site-search-overlay,
.site-search-overlay__panel {
transition: none;
}
}html { font-size: 100%;
}
:root { --component-max-width: 1560px; --component-gutter: 1.5rem;
--component-space-compact: 2rem;
--component-space-normal: 4rem;
--component-space-large: 7rem;
--component-radius: 8px;
--component-radius-lg: 16px; --component-color-bg: #ffffff;
--component-color-bg2: #f7f7f8;
--component-color-primary: #2563eb;
--component-color-primary-dark: #1d4ed8;
--component-color-secondary: #64748b;
--component-color-dark: #111827; --component-color-surface-dark: #111827;
--component-color-light: #ffffff;
--component-color-text: #374151;
--component-color-text-invert: #ffffff;
--component-color-meta: #6b7280;
--component-color-muted: #f3f4f6;
--component-color-border: #e5e7eb;
--component-color-button-font: #ffffff; --component-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
--component-font-size-text: 1rem;
--component-font-size-h1: 2.5rem;
--component-font-size-h2: 2rem;
--component-font-size-h3: 1.5rem;
--component-font-size-h4: 1.25rem;
--component-font-size-h5: 1.125rem;
--component-font-size-h6: 1rem;
--component-transition: 0.25s ease;
--component-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
} .component-inner {
width: 100%;
max-width: var(--component-max-width);
margin: 0 auto;
padding-left: var(--component-gutter);
padding-right: var(--component-gutter);
box-sizing: border-box;
} .component-main {
display: block;
width: 100%;
font-family: var(--component-font-family);
} .component-button {
display: inline-block;
padding: 14px 28px;
border: 2px solid transparent;
border-radius: var(--component-radius);
background: var(--component-color-primary);
color: var(--component-color-button-font);
font-weight: 600;
line-height: 1.2;
text-decoration: none;
transition: background var(--component-transition), color var(--component-transition), border-color var(--component-transition), transform var(--component-transition);
}
.component-button:hover,
.component-button:focus {
background: var(--component-color-primary-dark);
color: var(--component-color-button-font);
transform: translateY(-1px);
}
.component-button:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 3px;
} body.nk-buttons-outline .component-button {
background: transparent;
border-color: var(--component-color-primary);
color: var(--component-color-primary);
}
body.nk-buttons-outline .component-button:hover,
body.nk-buttons-outline .component-button:focus {
background: var(--component-color-primary);
border-color: var(--component-color-primary);
color: var(--component-color-button-font);
}
body.nk-buttons-ghost .component-button {
background: transparent;
padding-left: 4px;
padding-right: 4px;
color: var(--component-color-primary);
}
body.nk-buttons-ghost .component-button:hover,
body.nk-buttons-ghost .component-button:focus {
background: transparent;
color: var(--component-color-primary-dark);
text-decoration: underline;
transform: none;
} body.nk-no-animations,
body.nk-no-animations * {
animation: none !important;
scroll-timeline: none !important;
}
.component-image {
display: block;
max-width: 100%;
height: auto;
} .component-screen-reader-text {
position: absolute !important;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}.component-text-image {
padding-top: var(--component-space-normal);
padding-bottom: var(--component-space-normal);
background: var(--component-color-light);
}
.component-text-image__inner {
display: grid;
gap: clamp(24px, 4vw, 56px);
align-items: center;
}
.component-text-image__figure { margin: 0; }
.component-text-image__image {
width: 100%;
height: auto;
border-radius: var(--component-radius-lg);
}
.component-text-image__title {
margin: 0 0 0.6em;
font-size: clamp(1.5rem, 3vw, 2.25rem);
line-height: 1.2;
color: var(--component-color-dark);
}
.component-text-image__text {
color: var(--component-color-text);
line-height: 1.7;
}
.component-text-image__text > *:last-child { margin-bottom: 0; }
.component-text-image__text img {
max-width: 100%;
height: auto;
}
@media (min-width: 768px) {
.component-text-image__inner { grid-template-columns: 1fr 1fr; }
.component-text-image--image-right .component-text-image__figure { order: 2; }
.component-text-image--image-right .component-text-image__content { order: 1; }
}.component-gallery {
padding-top: var(--component-space-normal);
padding-bottom: var(--component-space-normal);
}
.component-gallery__header {
max-width: 720px;
margin: 0 auto 40px;
text-align: center;
}
.component-gallery__eyebrow {
margin: 0 0 0.6em;
font-size: 0.8rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: var(--component-color-primary);
}
.component-gallery__title {
margin: 0 0 0.4em;
font-size: clamp(1.5rem, 3vw, 2.25rem);
line-height: 1.2;
color: var(--component-color-dark);
}
.component-gallery__text {
margin: 0;
color: var(--component-color-text);
line-height: 1.6;
}
.component-gallery__filters {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 12px;
margin-bottom: 32px;
}
.component-gallery__filter {
padding: 8px 20px;
font-family: var(--component-font-family);
font-size: 0.85rem;
font-weight: 600;
color: var(--component-color-text);
background: var(--component-color-light);
border: 1px solid var(--component-color-border);
border-radius: 999px;
cursor: pointer;
transition: color var(--component-transition), background-color var(--component-transition), border-color var(--component-transition);
}
.component-gallery__filter:hover {
border-color: var(--component-color-primary);
color: var(--component-color-primary);
}
.component-gallery__filter:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 2px;
}
.component-gallery__filter--active {
color: var(--component-color-button-font);
background: var(--component-color-primary);
border-color: var(--component-color-primary);
}
.component-gallery__grid {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
}
@media (min-width: 640px) {
.component-gallery__grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1024px) {
.component-gallery__grid {
grid-template-columns: repeat(var(--component-gallery-columns, 3), 1fr);
}
}
.component-gallery__item {
margin: 0;
border-radius: var(--component-radius-lg);
overflow: hidden;
background: var(--component-color-muted);
}
.component-gallery__item--hidden {
display: none;
}
.component-gallery__item-trigger {
display: block;
width: 100%;
margin: 0;
padding: 0;
background: none;
border: 0;
cursor: zoom-in;
}
.component-gallery__item-trigger:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: -3px;
}
.component-gallery__item-media {
display: block;
aspect-ratio: 4 / 3;
overflow: hidden;
}
.component-gallery__item-image {
width: 100%;
height: 100%;
object-fit: cover;
}
.component-gallery__item-caption {
margin: 0;
padding: 12px 16px;
font-size: 0.85rem;
line-height: 1.5;
color: var(--component-color-text);
background: var(--component-color-light);
} .component-gallery__lightbox[hidden] {
display: none;
}
body.component-gallery-lightbox-open {
overflow: hidden;
}
.component-gallery__lightbox {
position: fixed;
inset: 0;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
}
.component-gallery__lightbox-backdrop {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.9);
}
.component-gallery__lightbox-dialog {
position: relative;
z-index: 1;
display: flex;
align-items: center;
gap: 16px;
max-width: min(1200px, 92vw);
max-height: 92vh;
padding: 0 56px;
}
.component-gallery__lightbox-figure {
margin: 0;
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
min-width: 0;
}
.component-gallery__lightbox-image {
display: block;
max-width: 100%;
max-height: 80vh;
width: auto;
height: auto;
border-radius: var(--component-radius);
}
.component-gallery__lightbox-caption {
margin: 0;
font-size: 0.9rem;
line-height: 1.5;
color: var(--component-color-text-invert);
text-align: center;
}
.component-gallery__lightbox-caption[hidden] {
display: none;
}
.component-gallery__lightbox-control {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
padding: 0;
color: var(--component-color-text-invert);
background: rgba(0, 0, 0, 0.4);
border: 0;
border-radius: 50%;
cursor: pointer;
transition: background-color var(--component-transition);
}
.component-gallery__lightbox-control:hover {
background: rgba(0, 0, 0, 0.7);
}
.component-gallery__lightbox-control:focus-visible {
outline: 3px solid var(--component-color-primary);
outline-offset: 2px;
}
.component-gallery__lightbox-control[hidden] {
display: none;
}
.component-gallery__lightbox-close {
top: 0;
right: 0;
}
.component-gallery__lightbox-prev {
left: 0;
top: 50%;
transform: translateY(-50%);
}
.component-gallery__lightbox-next {
right: 0;
top: 50%;
transform: translateY(-50%);
}
@media (max-width: 640px) {
.component-gallery__lightbox-dialog {
padding: 0 48px;
}
.component-gallery__lightbox-control {
width: 36px;
height: 36px;
}
}.component-cta-banner {
padding-top: var(--component-space-compact);
padding-bottom: var(--component-space-compact);
}
.component-cta-banner__inner {
display: flex;
flex-direction: column;
gap: 20px;
align-items: center;
justify-content: space-between;
text-align: center;
}
.component-cta-banner__title {
margin: 0;
font-size: clamp(1.35rem, 2.6vw, 2rem);
line-height: 1.25;
color: var(--component-color-text-invert);
}
.component-cta-banner__actions { margin: 0; }
.component-cta-banner--theme-primary { background: var(--component-color-primary); }
.component-cta-banner--theme-dark { background: var(--component-color-surface-dark); }
.component-cta-banner__button {
background: var(--component-color-light);
color: var(--component-color-dark);
}
.component-cta-banner__button:hover,
.component-cta-banner__button:focus {
background: var(--component-color-muted);
color: var(--component-color-dark);
}
@media (min-width: 768px) {
.component-cta-banner__inner {
flex-direction: row;
text-align: left;
gap: 32px;
}
}