/* Native theme behavior layered over the preserved FinLex design. */
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; }
[hidden] { display: none !important; }
#finlex-site-header { position: sticky; top: 0; z-index: 1000; }
body.admin-bar #finlex-site-header { top: 32px; }
.finlex-menu-overlay { position: fixed; inset: 0; z-index: 997; background: rgba(22,24,30,.69); backdrop-filter: blur(6px); }
.finlex-menu-panel { position: fixed; top: 0; right: 0; z-index: 998; width: 50vw; height: 100dvh; overflow-y: auto; padding: 80px 0 0; background: #181d23ed; backdrop-filter: blur(6px); }
.finlex-menu-panel .finlex-95 { width: 100%; }
.finlex-menu-close { position:absolute; top: 18px; right:18px; border:0; background:none; color:#d0993e; font-size:32px; cursor:pointer; }
.finlex-menu-open { overflow: hidden; }
.finlex-menu-close { clip-path:inset(50%); width:1px; height:1px; padding:0; overflow:hidden; }
.finlex-menu-close:focus { clip-path:none; width:auto; height:auto; right:80px; padding:8px; background:#181d23; }
.finlex-menu-open [data-menu-toggle] svg { transform: rotate(45deg); }
.finlex-menu-open [data-menu-toggle] .ham4 .top { stroke-dashoffset: -68px; }
.finlex-menu-open [data-menu-toggle] .ham4 .bottom { stroke-dashoffset: -68px; }
.finlex-lightbox { position:fixed; inset:0; margin:auto; max-width:100vw; max-height:100dvh; width:100vw; height:100dvh; padding:50px 70px; border:0; background:rgba(0,0,0,.94); color:#fff; }
.finlex-lightbox[open] { display:flex; align-items:center; justify-content:center; }
.finlex-lightbox::backdrop { background:rgba(0,0,0,.9); }
.finlex-lightbox figure { margin:0; text-align:center; }
.finlex-lightbox img { max-width:calc(100vw - 140px); max-height:calc(100dvh - 110px); width:auto; height:auto; }
.finlex-lightbox figcaption { padding-top:12px; }
.finlex-lightbox button { position:absolute; border:0; background:transparent; color:#fff; font-size:48px; padding:10px; cursor:pointer; }
.finlex-lightbox-close { top:10px; right:20px; }
.finlex-lightbox-prev { left:10px; top:45%; }
.finlex-lightbox-next { right:10px; top:45%; }
.finlex-document { max-width:1140px; margin:0 auto; padding:80px 20px; color:#fff; }
.finlex-document a { color:#d0993e; }
.finlex-login-status { color:#fff; }
.finlex-native-login button:disabled { opacity:.6; cursor:wait; }
.finlex-registration-form { color:#fff; width:100%; }
.finlex-registration-form .form { display:flex; flex-direction:column; gap:12px; }
.finlex-registration-form .form-group { background:rgba(255,255,255,.1); padding:16px; border-radius:12px; }
.finlex-registration-form .form-label { display:block; color:#fff; font-weight:600; margin-bottom:12px; }
.finlex-registration-form .form-label span { color:#d0993e; }
.finlex-registration-form .form-input { background:#fff; border:0; padding:14px 18px; border-radius:8px; width:100%; }
.finlex-registration-form .form-checkbox { display:flex; gap:12px; font-size:14px; }
.finlex-registration-form .form-checkbox input { width:18px; height:18px; flex-shrink:0; }
.finlex-registration-form .form-button { align-self:center; padding:12px 36px; border:2px solid #e6b35a; border-radius:12px; color:#fff; background:transparent; font-weight:600; }
.finlex-registration-form .form-button:hover { color:#222; background:#e6b35a; }
.finlex-registration-form a { color:#d0993e; }
@media(max-width:767px) {
 html { scroll-padding-top:80px; }
 .finlex-menu-panel { width:90vw; }
 .finlex-lightbox { padding:40px 30px; }
 .finlex-lightbox img { max-width:calc(100vw - 60px); }
 .finlex-lightbox button { font-size:32px; }
 body.admin-bar #finlex-site-header { top:46px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 .animated { animation:none !important; }
}
.finlex-lightbox figcaption { color:#fff; }
/* Match the original gallery's toolbar, caption and translucent backdrop. */
.finlex-lightbox { background:rgba(0,0,0,.85); padding:60px 70px; }
.finlex-lightbox::backdrop { background:transparent; }
.finlex-lightbox figure { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.finlex-lightbox img { max-height:calc(100dvh - 120px); }
.finlex-lightbox figcaption { position:absolute; bottom:20px; left:0; right:0; font-size:16px; font-weight:600; text-align:center; }
.finlex-lightbox-counter { position:absolute; top:20px; left:20px; font-size:14px; }
.finlex-lightbox-toolbar { position:absolute; top:10px; right:10px; display:flex; align-items:center; gap:0; }
.finlex-lightbox-toolbar button { position:static; width:44px; height:40px; padding:10px; font-size:32px; color:#ddd; }
.finlex-lightbox-toolbar svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; }
.finlex-lightbox-share svg { fill:currentColor; stroke:none; }
.finlex-lightbox-prev { left:60px; top:calc(50% - 35px); }
.finlex-lightbox-next { right:60px; top:calc(50% - 35px); }
.finlex-lightbox-share-panel { position:absolute; top:60px; right:20px; z-index:1; border-radius:4px; background:#fff; color:#222; padding:12px; }
.finlex-lightbox-share-panel button,.finlex-lightbox-share-panel a { display:block; position:static; color:#222; padding:10px; font-size:14px; background:none; }
.finlex-lightbox-zoomed figure { display:block; overflow:auto; }
.finlex-lightbox-zoomed img { max-width:none; max-height:none; cursor:zoom-out; }
@media(max-width:767px) {
 .finlex-lightbox { padding:60px 20px; }
 .finlex-lightbox img { max-width:calc(100vw - 40px); }
 .finlex-lightbox-prev { left:10px; }
 .finlex-lightbox-next { right:10px; }
}

/* Form typography must stay legible on the dark registration panels. */
body.finlex-kit-12 :is(#finlex-reg-wrap, #finlex-profile-wrap) .form-label {
  font-size: 16px;
  line-height: 1.4;
}
body.finlex-kit-12 :is(#finlex-reg-wrap, #finlex-profile-wrap) .form-input {
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
  min-height: 52px;
}
body.finlex-kit-12 :is(#finlex-reg-wrap, #finlex-profile-wrap) .form-input::placeholder {
  color: #616161;
  opacity: 1;
}
body.finlex-kit-12 #finlex-reg-wrap .form-accept {
  background: rgba(255, 255, 255, .12);
}
body.finlex-kit-12 #finlex-reg-wrap .form-checkbox {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  margin: 0;
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.55;
  cursor: pointer;
}
body.finlex-kit-12 #finlex-reg-wrap .form-checkbox > span {
  min-width: 0;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  overflow-wrap: anywhere;
}
body.finlex-kit-12 #finlex-reg-wrap .form-checkbox input {
  appearance: auto;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: #d0993e;
}
body.finlex-kit-12 #finlex-reg-wrap .form-checkbox a {
  color: #f0c578;
  font-size: inherit;
  line-height: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.finlex-kit-12 #finlex-reg-wrap .form-checkbox a:hover { color: #fff; }
body.finlex-kit-12 #finlex-reg-wrap .form-checkbox :is(input, a):focus-visible {
  outline: 2px solid #f0c578;
  outline-offset: 4px;
}
body.finlex-kit-12 :is(.finlex-reg-msg, .finlex-prof-msg) {
  color: #fff;
  font-size: 16px;
  line-height: 1.5;
}
body.finlex-kit-12 :is(.finlex-reg-msg, .finlex-prof-msg).error { color: #ffd5d5; }
body.finlex-kit-12 :is(.finlex-reg-msg, .finlex-prof-msg).success { color: #cef5cb; }

/* Scale the homepage's section typography to the available reading width. */
@media (max-width: 1024px) {
  .home #content :is(h2, h3).finlex-heading-title { font-size: 40px; line-height: 1.2; }
  .home #content .finlex-widget-text-editor { font-size: 20px; line-height: 1.5; }
}
@media (max-width: 767px) {
  .home #content :is(h2, h3).finlex-heading-title {
    font-size: clamp(30px, 8.2vw, 36px);
    line-height: 1.2;
    overflow-wrap: normal;
  }
  .home #content [data-component="2068d37"] h2.finlex-heading-title {
    font-size: clamp(24px, 7vw, 32px);
    line-height: 1.25;
  }
  .home #content .finlex-widget-text-editor { font-size: 18px; line-height: 1.55; }
  .home #content .finlex-widget-text-editor p { line-height: inherit; }
  .home #content .advantage-content { font-size: 16px; line-height: 1.55; }
  .home #content .advantage-item { padding: 20px; }
}

/* Native advantage carousel arrows. */
.finlex-22 .finlex-element.finlex-element-a503442 button.owl-prev,
.finlex-22 .finlex-element.finlex-element-a503442 button.owl-next { background: none !important; }
.finlex-22 .finlex-element.finlex-element-a503442 button.owl-prev::after { content: '‹'; }
.finlex-22 .finlex-element.finlex-element-a503442 button.owl-next::after { content: '›'; }
.finlex-22 .finlex-element.finlex-element-a503442 button.owl-prev::after,
.finlex-22 .finlex-element.finlex-element-a503442 button.owl-next::after { color: #d0993e; font-size: 32px; line-height: 1; }

/* Minimal authentication: shared chrome and a single centered form. */
body.finlex-auth-page { background: #181d23; color: #fff; }
.finlex-auth-main { min-height: calc(100svh - 100px); display: grid; place-items: center; padding: 56px 24px; }
.finlex-auth-panel { width: 100%; max-width: 400px; }
body.finlex-auth-page .finlex-auth-panel h1 { margin: 0 0 32px; font-size: 32px; line-height: 1.2; font-weight: 600; text-align: center; }
.finlex-auth-form { display: flex; flex-direction: column; }
.finlex-auth-form > label { margin-bottom: 8px; color: #fff; font-size: 15px; line-height: 1.5; }
.finlex-auth-form > input:not([type=hidden]) { width: 100%; min-height: 50px; margin-bottom: 20px; padding: 12px 16px; border: 1px solid #47505b; border-radius: 8px; background: #232a32; color: #fff; font: inherit; font-size: 16px; line-height: 1.5; }
.finlex-auth-form input:focus-visible { outline: 2px solid #d0993e; outline-offset: 3px; }
.finlex-auth-options { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 0 0 24px; font-size: 14px; }
.finlex-auth-check { display: flex; align-items: center; gap: 10px; line-height: 1.5; font-size: 14px; }
.finlex-auth-check input { appearance: auto; flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: #d0993e; }
.finlex-auth-form > .finlex-auth-consent { align-items: flex-start; margin: 0 0 24px; font-size: 14px; line-height: 1.55; }
.finlex-auth-consent input { margin-top: 3px; }
body.finlex-auth-page .finlex-auth-panel a:not(.finlex-auth-submit) { color: #edc37a; text-decoration: underline; text-underline-offset: 3px; }
body.finlex-auth-page .finlex-auth-submit { display: block; width: 100%; padding: 14px 20px; border: 1px solid #d0993e; border-radius: 8px; background: #d0993e; color: #181d23; text-align: center; text-decoration: none; font: inherit; font-size: 16px; font-weight: 600; line-height: 1.5; cursor: pointer; }
body.finlex-auth-page .finlex-auth-submit:hover { background: #edb858; border-color: #edb858; }
.finlex-auth-links { margin: 24px 0 0; text-align: center; color: #c4c9d0; font-size: 14px; line-height: 1.6; }
.finlex-auth-intro, .finlex-auth-message { margin: 0 0 24px; color: #c4c9d0; font-size: 16px; line-height: 1.6; }
.finlex-auth-message.error { color: #ffd5d5; }
@media (max-width: 767px) { .finlex-auth-main { min-height: calc(100svh - 65px); padding: 48px 24px; } }

/* Mobile rhythm: consistent edges and a compact, readable hero. */
@media (max-width: 767px) {
  .home #content .finlex-22 > .finlex-top-section { padding-inline: 24px; }
  .home #content .finlex-22 > .finlex-hero { padding: 40px 24px 44px; min-height: 0; }
  .home #content .finlex-hero > .finlex-container { min-height: 0; }
  .home #content .finlex-hero .finlex-element-0ea06b1 > .finlex-widget-wrap { padding: 0; gap: 28px; }
  .home #content .finlex-hero .finlex-element-5a79878 { margin: 0; }
  .home #content .finlex-hero .finlex-element-5a79878 img { width: 190px; max-width: 65%; }
  .home #content .finlex-hero .finlex-element-1578fc5,
  .home #content .finlex-hero .finlex-element-9400a9d { margin: 0; }
  .home #content .finlex-hero .finlex-element-a0c8d4c > .finlex-widget-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 48px 40px; align-items: center; gap: 20px 16px; padding: 0; }
  .home #content .finlex-hero .finlex-element-a0c8d4c > .finlex-widget-wrap > .finlex-widget { width: auto; max-width: 100%; margin: 0; }
  .home #content .finlex-hero .finlex-element-589a2aa { grid-column: 1 / -1; }
  .home #content .finlex-hero .finlex-element-529fef7 img { width: 148px; }
  .home #content .finlex-hero .finlex-element-589a2aa img { width: 148px; }
  .home #content .finlex-hero .finlex-element-6b70c78 .finlex-heading-title { font-size: 16px; }
  .home #content .finlex-hero .finlex-element-5cb6273 .finlex-heading-title { font-size: clamp(21px, 6vw, 27px); line-height: 1.35; }
  .home #content .finlex-hero .finlex-element-f845efb { margin: 0; width: auto; }
  .home #content .finlex-hero .finlex-element-f845efb .finlex-button { padding: 0; }
  .home #content .finlex-hero .finlex-element-f845efb .finlex-button-content-wrapper { gap: 16px; align-items: center; }
  .home #content .finlex-hero .finlex-element-f845efb .finlex-button-icon svg { width: 60px; height: 60px; }
  .home #content .finlex-hero .finlex-element-f845efb .finlex-button-text { font-size: 18px; }
  .home #content .finlex-hero .finlex-element-21c578a { display: none; }
  .home #gallery .finlex-element-e95d944 > .finlex-widget-wrap { padding-inline: 0; }
  .home #registration .finlex-element-226b621 > .finlex-widget-wrap { padding: 24px 16px; }
  .home #registration .form-group { padding: 14px 12px; }
  .home #registration .form-accept { padding: 14px 12px; }
  .home #registration .form-checkbox { font-size: 14px; gap: 10px; }
  .home #registration .finlex-element-226b621 > .finlex-widget-wrap > .finlex-widget { min-width: 0; }
}
@media (max-width: 359px) {
  .home #content .finlex-22 > .finlex-top-section { padding-inline: 20px; }
  .home #content .finlex-hero .finlex-element-a0c8d4c > .finlex-widget-wrap { grid-template-columns: minmax(0,1fr) 42px 34px; gap: 18px 12px; }
  #finlex-site-header .finlex-element-4659a67d img { width: 52px; }
}

/* Keep logo, registration and menu on one row on narrow phones. */
@media (max-width: 767px) {
  #finlex-site-header .finlex-102 .finlex-element-79e08d5b { padding-inline: 20px; }
  #finlex-site-header .finlex-element-79e08d5b > .finlex-container { flex-wrap: nowrap; align-items: center; min-height: 65px; gap: 12px; }
  #finlex-site-header .finlex-element-517d5d2a { width: auto; flex: 0 0 auto; }
  #finlex-site-header .finlex-element-38a9499c { width: auto; flex: 1; min-width: 0; }
  #finlex-site-header .finlex-element-38a9499c > .finlex-widget-wrap { flex-wrap: nowrap; align-items: center; justify-content: flex-end; gap: 12px; padding: 0; }
  #finlex-site-header .finlex-element-6d4300,
  #finlex-site-header .finlex-element-223d53bb { width: auto; margin: 0; }
  #finlex-site-header .finlex-element-6d4300 > .finlex-widget-container { margin: 0; }
  #finlex-site-header .finlex-element-6d4300 .finlex-button { padding: 12px 14px; font-size: 15px; }
  #finlex-site-header .finlex-element-6d4300 .finlex-button-content-wrapper { gap: 12px; }
  #finlex-site-header .finlex-element-223d53bb .finlex-button { width: 44px; height: 44px; padding: 0; }
  #finlex-site-header .finlex-element-223d53bb svg { width: 44px; height: 44px; }
}
@media (max-width: 359px) {
  #finlex-site-header .finlex-element-79e08d5b > .finlex-container,
  #finlex-site-header .finlex-element-38a9499c > .finlex-widget-wrap { gap: 8px; }
  #finlex-site-header .finlex-element-6d4300 .finlex-button { padding: 12px 10px; font-size: 14px; }
}
@media (max-width: 767px) {
  .home #gallery .finlex-swiper-button { width: 44px; height: 44px; justify-content: center; border-radius: 50%; background: rgba(18,22,27,.75); color: #fff; }
  .home #gallery .finlex-swiper-button-prev { left: 8px; }
  .home #gallery .finlex-swiper-button-next { right: 8px; }
  .home #gallery .finlex-swiper-button svg { width: 18px; height: 18px; fill: currentColor; }
  .home #about :is(.owl-prev, .owl-next) { min-width: 44px; min-height: 44px; }
  .home .animated { animation-duration: .45s; }
}
@media (max-width: 767px) {
  .home #content .finlex-hero .finlex-element-5cb6273 .finlex-heading-title { text-shadow: 0 2px 6px rgba(0,0,0,.8); }
  .home #content .finlex-hero .finlex-element-5cb6273 strong { color: #f0c578; }
}
