/*!
 * Line Awesome — HAND-SUBSET (root override of the theme's full 1.3.0 build).
 * Keeps @font-face (fonts are SELF-HOSTED and subset — see below), all
 * base/size/util classes,
 * and ONLY the 25 icon glyph rules actually used on the site. Cuts the plugin
 * from ~109 KB to ~20 KB. Fonts self-hosted + subset: 181 KB -> 3.3 KB (#35).
 *
 * ADDING AN ICON: add its `.la-<name>:before{content}` (and, for brand icons,
 * `.la.la-<name>{font-family:"Line Awesome Brands"}`) rule from the upstream
 * file at themes/andromeda-hugo/assets/plugins/line-awesome/css/line-awesome.min.css.
 * TO REVERT: delete this file — Hugo falls back to the theme's full copy.
 * Kept icons: bullseye calculator chart-line check-circle clock cogs coins
 * comments envelope-open-text euro-sign eye file-invoice gavel globe-europe
 * hashtag landmark map-marker-alt plus project-diagram user user-check users
 * angle-left angle-right telegram
 */



@font-face {
  font-family: "Line Awesome Free";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/fonts/la-solid-900-subset.2c528e6d9a4e0ba2be915b94c988e0887a7070f062c78319db74086f38ef2517.woff2") format("woff2");
}
@font-face {
  font-family: "Line Awesome Brands";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/la-brands-400-subset.1fef5a1f51d7786d7dbed6fc33a0f76df3a68684f182ba3835d782b1c21ce647.woff2") format("woff2");
}


.las {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  line-height: 1;
}

@-webkit-keyframes la-spin {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }

  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

@keyframes la-spin {
  0% {
    -webkit-transform: rotate(0);
    transform: rotate(0);
  }

  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

.la-angle-left:before {
  content: "\f104";
}

.la-angle-right:before {
  content: "\f105";
}

.la-bullseye:before {
  content: "\f140";
}

.la-calculator:before {
  content: "\f1ec";
}

.la-chart-line:before {
  content: "\f201";
}

.la-check-circle:before {
  content: "\f058";
}

.la-clock:before {
  content: "\f017";
}

.la-cogs:before {
  content: "\f085";
}

.la-coins:before {
  content: "\f51e";
}

.la-comments:before {
  content: "\f086";
}

.la-envelope-open-text:before {
  content: "\f658";
}

.la-euro-sign:before {
  content: "\f153";
}

.la-eye:before {
  content: "\f06e";
}

.la-file-invoice:before {
  content: "\f570";
}

.la-gavel:before {
  content: "\f0e3";
}

.la-globe-europe:before {
  content: "\f7a2";
}

.la-hashtag:before {
  content: "\f292";
}

.la-landmark:before {
  content: "\f66f";
}

.la-plus:before {
  content: "\f067";
}

.la-project-diagram:before {
  content: "\f542";
}

.la-user-check:before {
  content: "\f4fc";
}

.la-users:before {
  content: "\f0c0";
}


.las {
  font-family: "Line Awesome Free";
  font-weight: 900;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.71d5ee93cc1e9f1d520a3a8b66456de18c7879d8df09d57fcd2eaff75fef0075.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.6e9e020a25f9b56d418f2c085b1d3c09725a4da23fe693a5b463064606732190.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.1be3448e292fbf05ffe176fe1e43f135013d50b1e7d324ad1a558f623d3bb6f6.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.5c66f9e07e90c6d4ac4922cc68d60de26c17b1858e677fb5e603fce3952b3ff2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.34b9c504cab7a73e37b746343a449132e56cf7b5481af2cb81dc74dcff25c956.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.ca157063339ac4ad418f214f3abfed119b0798ab4d377386ce5c9e5a7a435ebd.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.71d5ee93cc1e9f1d520a3a8b66456de18c7879d8df09d57fcd2eaff75fef0075.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.6e9e020a25f9b56d418f2c085b1d3c09725a4da23fe693a5b463064606732190.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.1be3448e292fbf05ffe176fe1e43f135013d50b1e7d324ad1a558f623d3bb6f6.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.5c66f9e07e90c6d4ac4922cc68d60de26c17b1858e677fb5e603fce3952b3ff2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.34b9c504cab7a73e37b746343a449132e56cf7b5481af2cb81dc74dcff25c956.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2JL7SUc.ca157063339ac4ad418f214f3abfed119b0798ab4d377386ce5c9e5a7a435ebd.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa0ZL7SUc.71d5ee93cc1e9f1d520a3a8b66456de18c7879d8df09d57fcd2eaff75fef0075.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2ZL7SUc.6e9e020a25f9b56d418f2c085b1d3c09725a4da23fe693a5b463064606732190.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1pL7SUc.1be3448e292fbf05ffe176fe1e43f135013d50b1e7d324ad1a558f623d3bb6f6.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa2pL7SUc.5c66f9e07e90c6d4ac4922cc68d60de26c17b1858e677fb5e603fce3952b3ff2.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.34b9c504cab7a73e37b746343a449132e56cf7b5481af2cb81dc74dcff25c956.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.3100e775e8616cd2611beecfa23a4263d7037586789b43f035236a2e6fbd4c62.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggqxSuXd.de37de877dc17e4577341fa68bb5cb526b53d54cb29721e674208546a3c7849d.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggOxSuXd.c268b459a9329e59fecf39a17618efd44c71735532048d60b12aab76a8c14914.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggSxSuXd.2fb2e8cbfd52ae46179a8b6024eb162f1f9c6de3d22d6e3a30d8f395de7220be.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggixSuXd.6bbb044ab420e07edb0a3042d2eb314b85e83a0182e945a15ab3b9092668dfd5.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggmxSuXd.3911b66d9f2e005a4b989223405d0e5032619c668597ba467cc76a23c8fffcfb.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggexSg.a30ddcd349703aff7464c34bef3fffdff405ee50c113440d7c8693c02d210972.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggqxSuXd.de37de877dc17e4577341fa68bb5cb526b53d54cb29721e674208546a3c7849d.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggOxSuXd.c268b459a9329e59fecf39a17618efd44c71735532048d60b12aab76a8c14914.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggSxSuXd.2fb2e8cbfd52ae46179a8b6024eb162f1f9c6de3d22d6e3a30d8f395de7220be.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggixSuXd.6bbb044ab420e07edb0a3042d2eb314b85e83a0182e945a15ab3b9092668dfd5.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggmxSuXd.3911b66d9f2e005a4b989223405d0e5032619c668597ba467cc76a23c8fffcfb.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggexSg.a30ddcd349703aff7464c34bef3fffdff405ee50c113440d7c8693c02d210972.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggqxSuXd.de37de877dc17e4577341fa68bb5cb526b53d54cb29721e674208546a3c7849d.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggOxSuXd.c268b459a9329e59fecf39a17618efd44c71735532048d60b12aab76a8c14914.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggSxSuXd.2fb2e8cbfd52ae46179a8b6024eb162f1f9c6de3d22d6e3a30d8f395de7220be.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggixSuXd.6bbb044ab420e07edb0a3042d2eb314b85e83a0182e945a15ab3b9092668dfd5.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggmxSuXd.3911b66d9f2e005a4b989223405d0e5032619c668597ba467cc76a23c8fffcfb.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/woff2/xn7gYHE41ni1AdIRggexSg.a30ddcd349703aff7464c34bef3fffdff405ee50c113440d7c8693c02d210972.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@charset "UTF-8";
/*!
   * Bootstrap  v5.3.8 (https://getbootstrap.com/)
   * Copyright 2011-2025 The Bootstrap Authors
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
   */
:root {
  --bs-blue: #0d6efd;
  --bs-indigo: #6610f2;
  --bs-purple: #6f42c1;
  --bs-pink: #d63384;
  --bs-red: #dc3545;
  --bs-orange: #fd7e14;
  --bs-yellow: #ffc107;
  --bs-green: #198754;
  --bs-teal: #20c997;
  --bs-cyan: #0dcaf0;
  --bs-black: #333333;
  --bs-white: #FFFFFF;
  --bs-gray: #6c757d;
  --bs-gray-dark: #343a40;
  --bs-gray-100: #f8f9fa;
  --bs-gray-200: #e9ecef;
  --bs-gray-300: #dee2e6;
  --bs-gray-400: #ced4da;
  --bs-gray-500: #adb5bd;
  --bs-gray-600: #6c757d;
  --bs-gray-700: #495057;
  --bs-gray-800: #343a40;
  --bs-gray-900: #212529;
  --bs-primary: #0d6efd;
  --bs-secondary: #6c757d;
  --bs-success: #198754;
  --bs-info: #0dcaf0;
  --bs-warning: #ffc107;
  --bs-danger: #dc3545;
  --bs-light: #F5F7FA;
  --bs-dark: #212529;
  --bs-primary-rgb: 13, 110, 253;
  --bs-secondary-rgb: 108, 117, 125;
  --bs-success-rgb: 25, 135, 84;
  --bs-info-rgb: 13, 202, 240;
  --bs-warning-rgb: 255, 193, 7;
  --bs-danger-rgb: 220, 53, 69;
  --bs-light-rgb: 245, 247, 250;
  --bs-dark-rgb: 33, 37, 41;
  --bs-primary-text-emphasis: #052c65;
  --bs-secondary-text-emphasis: #2b2f32;
  --bs-success-text-emphasis: #0a3622;
  --bs-info-text-emphasis: #055160;
  --bs-warning-text-emphasis: #664d03;
  --bs-danger-text-emphasis: #58151c;
  --bs-light-text-emphasis: #495057;
  --bs-dark-text-emphasis: #495057;
  --bs-primary-bg-subtle: #cfe2ff;
  --bs-secondary-bg-subtle: #e2e3e5;
  --bs-success-bg-subtle: #d1e7dd;
  --bs-info-bg-subtle: #cff4fc;
  --bs-warning-bg-subtle: #fff3cd;
  --bs-danger-bg-subtle: #f8d7da;
  --bs-light-bg-subtle: #fcfcfd;
  --bs-dark-bg-subtle: #ced4da;
  --bs-primary-border-subtle: #9ec5fe;
  --bs-secondary-border-subtle: #c4c8cb;
  --bs-success-border-subtle: #a3cfbb;
  --bs-info-border-subtle: #9eeaf9;
  --bs-warning-border-subtle: #ffe69c;
  --bs-danger-border-subtle: #f1aeb5;
  --bs-light-border-subtle: #e9ecef;
  --bs-dark-border-subtle: #adb5bd;
  --bs-white-rgb: 255, 255, 255;
  --bs-black-rgb: 51, 51, 51;
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size: 1rem;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.5;
  --bs-body-color: #212529;
  --bs-body-color-rgb: 33, 37, 41;
  --bs-body-bg: #FFFFFF;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-emphasis-color: #333333;
  --bs-emphasis-color-rgb: 51, 51, 51;
  --bs-secondary-color: rgba(33, 37, 41, 0.75);
  --bs-secondary-color-rgb: 33, 37, 41;
  --bs-secondary-bg: #e9ecef;
  --bs-secondary-bg-rgb: 233, 236, 239;
  --bs-tertiary-color: rgba(33, 37, 41, 0.5);
  --bs-tertiary-color-rgb: 33, 37, 41;
  --bs-tertiary-bg: #f8f9fa;
  --bs-tertiary-bg-rgb: 248, 249, 250;
  --bs-heading-color: inherit;
  --bs-link-color: #0d6efd;
  --bs-link-color-rgb: 13, 110, 253;
  --bs-link-decoration: underline;
  --bs-link-hover-color: #0a58ca;
  --bs-link-hover-color-rgb: 10, 88, 202;
  --bs-code-color: #d63384;
  --bs-highlight-color: #212529;
  --bs-highlight-bg: #fff3cd;
  --bs-border-width: 1px;
  --bs-border-style: solid;
  --bs-border-color: #E0E0E0;
  --bs-border-color-translucent: rgba(51, 51, 51, 0.175);
  --bs-border-radius: 0.375rem;
  --bs-border-radius-sm: 0.25rem;
  --bs-border-radius-lg: 0.5rem;
  --bs-border-radius-xl: 1rem;
  --bs-border-radius-xxl: 2rem;
  --bs-border-radius-2xl: var(--bs-border-radius-xxl);
  --bs-border-radius-pill: 50rem;
  --bs-box-shadow: 0 0.5rem 1rem rgba(51, 51, 51, 0.15);
  --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(51, 51, 51, 0.075);
  --bs-box-shadow-lg: 0 1rem 3rem rgba(51, 51, 51, 0.175);
  --bs-box-shadow-inset: inset 0 1px 2px rgba(51, 51, 51, 0.075);
  --bs-focus-ring-width: 0.25rem;
  --bs-focus-ring-opacity: 0.25;
  --bs-focus-ring-color: rgba(13, 110, 253, 0.25);
  --bs-form-valid-color: #198754;
  --bs-form-valid-border-color: #198754;
  --bs-form-invalid-color: #dc3545;
  --bs-form-invalid-border-color: #dc3545; }

*,
*::before,
*::after {
  box-sizing: border-box; }

@media (prefers-reduced-motion: no-preference) {
  :root {
    scroll-behavior: smooth; } }

body {
  margin: 0;
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  font-weight: var(--bs-body-font-weight);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  text-align: var(--bs-body-text-align);
  background-color: var(--bs-body-bg);
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(51, 51, 51, 0); }

hr {
  margin: 1rem 0;
  color: inherit;
  border: 0;
  border-top: var(--bs-border-width) solid;
  opacity: 0.25; }

 h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
  color: var(--bs-heading-color); }

h1, .h1 {
  font-size: calc(1.375rem + 1.5vw); }
  @media (min-width: 1200px) {
    h1, .h1 {
      font-size: 2.5rem; } }
h2, .h2 {
  font-size: calc(1.325rem + 0.9vw); }
  @media (min-width: 1200px) {
    h2, .h2 {
      font-size: 2rem; } }
h3, .h3 {
  font-size: calc(1.3rem + 0.6vw); }
  @media (min-width: 1200px) {
    h3, .h3 {
      font-size: 1.75rem; } }
h4, .h4 {
  font-size: calc(1.275rem + 0.3vw); }
  @media (min-width: 1200px) {
    h4, .h4 {
      font-size: 1.5rem; } }
h5, .h5 {
  font-size: 1.25rem; }

p {
  margin-top: 0;
  margin-bottom: 1rem; }

ol,
ul {
  padding-left: 2rem; }

ol,
ul,
dl {
  margin-top: 0;
  margin-bottom: 1rem; }

ol ol,
ul ul,
ol ul,
ul ol {
  margin-bottom: 0; }

dt {
  font-weight: 700; }

dd {
  margin-bottom: .5rem;
  margin-left: 0; }

blockquote {
  margin: 0 0 1rem; }

b,
strong {
  font-weight: bolder; }

small, .small {
  font-size: 0.875em; }

a {
  color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));
  text-decoration: underline; }
  a:hover {
    --bs-link-color-rgb: var(--bs-link-hover-color-rgb); }

a:not([href]):not([class]), a:not([href]):not([class]):hover {
  color: inherit;
  text-decoration: none; }

figure {
  margin: 0 0 1rem; }

img,
svg {
  vertical-align: middle; }

table {
  caption-side: bottom;
  border-collapse: collapse; }

th {
  text-align: inherit;
  text-align: -webkit-match-parent; }

thead,
tbody,
tr,
td,
th {
  border-color: inherit;
  border-style: solid;
  border-width: 0; }

label {
  display: inline-block; }

button {
  border-radius: 0; }

button:focus:not(:focus-visible) {
  outline: 0; }

input,
button,
textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit; }

button {
  text-transform: none; }

button {
  -webkit-appearance: button; }
  button:not(:disabled) {
    cursor: pointer; }

::-moz-focus-inner {
  padding: 0;
  border-style: none; }

textarea {
  resize: vertical; }

fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0; }

legend {
  float: left;
  width: 100%;
  padding: 0;
  margin-bottom: 0.5rem;
  line-height: inherit;
  font-size: calc(1.275rem + 0.3vw); }
  @media (min-width: 1200px) {
    legend {
      font-size: 1.5rem; } }
  legend + * {
    clear: left; }

::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
  padding: 0; }

::-webkit-inner-spin-button {
  height: auto; }

/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
  direction: ltr;
}
*/
::-webkit-search-decoration {
  -webkit-appearance: none; }

::-webkit-color-swatch-wrapper {
  padding: 0; }

::file-selector-button {
  font: inherit;
  -webkit-appearance: button; }

output {
  display: inline-block; }

summary {
  display: list-item;
  cursor: pointer; }

[hidden] {
  display: none !important; }
.list-unstyled {
  padding-left: 0;
  list-style: none; }

.blockquote {
  margin-bottom: 1rem;
  font-size: 1.25rem; }
  .blockquote > :last-child {
    margin-bottom: 0; }

.figure {
  display: inline-block; }

.container,
.container-xxl {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  width: 100%;
  padding-right: calc(var(--bs-gutter-x) * .5);
  padding-left: calc(var(--bs-gutter-x) * .5);
  margin-right: auto;
  margin-left: auto; }

@media (min-width: 576px) {
   .container {
    max-width: 540px; } }

@media (min-width: 768px) {
   .container {
    max-width: 720px; } }

@media (min-width: 992px) {
   .container {
    max-width: 960px; } }

@media (min-width: 1200px) {
   .container {
    max-width: 1140px; } }

@media (min-width: 1400px) {
  .container-xxl, .container {
    max-width: 1320px; } }

:root {
  --bs-breakpoint-xs: 0;
  --bs-breakpoint-sm: 576px;
  --bs-breakpoint-md: 768px;
  --bs-breakpoint-lg: 992px;
  --bs-breakpoint-xl: 1200px;
  --bs-breakpoint-xxl: 1400px; }

.row {
  --bs-gutter-x: 1.5rem;
  --bs-gutter-y: 0;
  display: flex;
  flex-wrap: wrap;
  margin-top: calc(-1 * var(--bs-gutter-y));
  margin-right: calc(-.5 * var(--bs-gutter-x));
  margin-left: calc(-.5 * var(--bs-gutter-x)); }
  .row > * {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding-right: calc(var(--bs-gutter-x) * .5);
    padding-left: calc(var(--bs-gutter-x) * .5);
    margin-top: var(--bs-gutter-y); }

.col-12 {
  flex: 0 0 auto;
  width: 100%; }


.gy-5 {
  --bs-gutter-y: 3rem; }

@media (min-width: 768px) {
  .col-md-5 {
    flex: 0 0 auto;
    width: 41.66666667%; }
  .col-md-7 {
    flex: 0 0 auto;
    width: 58.33333333%; } }

@media (min-width: 992px) {
  .col-lg-4 {
    flex: 0 0 auto;
    width: 33.33333333%; }
  .col-lg-8 {
    flex: 0 0 auto;
    width: 66.66666667%; }
  
  .gx-lg-5 {
    --bs-gutter-x: 3rem; } }

.table {
  --bs-table-color-type: initial;
  --bs-table-bg-type: initial;
  --bs-table-color-state: initial;
  --bs-table-bg-state: initial;
  --bs-table-color: var(--bs-emphasis-color);
  --bs-table-bg: var(--bs-body-bg);
  --bs-table-border-color: var(--bs-border-color);
  --bs-table-accent-bg: transparent;
  --bs-table-striped-color: var(--bs-emphasis-color);
  --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);
  --bs-table-active-color: var(--bs-emphasis-color);
  --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);
  --bs-table-hover-color: var(--bs-emphasis-color);
  --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);
  width: 100%;
  margin-bottom: 1rem;
  vertical-align: top;
  border-color: var(--bs-table-border-color); }
  .table > :not(caption) > * > * {
    padding: 0.5rem 0.5rem;
    color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));
    background-color: var(--bs-table-bg);
    border-bottom-width: var(--bs-border-width);
    box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); }
  .table > tbody {
    vertical-align: inherit; }
  .table > thead {
    vertical-align: bottom; }

.table-borderless > :not(caption) > * > * {
  border-bottom-width: 0; }

.table-borderless > :not(:first-child) {
  border-top-width: 0; }

.table-active {
  --bs-table-color-state: var(--bs-table-active-color);
  --bs-table-bg-state: var(--bs-table-active-bg); }

.table-dark {
  --bs-table-color: #FFFFFF;
  --bs-table-bg: #212529;
  --bs-table-border-color: #4d5154;
  --bs-table-striped-bg: #2c3034;
  --bs-table-striped-color: #FFFFFF;
  --bs-table-active-bg: #373b3e;
  --bs-table-active-color: #FFFFFF;
  --bs-table-hover-bg: #323539;
  --bs-table-hover-color: #FFFFFF;
  color: var(--bs-table-color);
  border-color: var(--bs-table-border-color); }

.form-control {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--bs-body-color);
  appearance: none;
  background-color: var(--bs-body-bg);
  background-clip: padding-box;
  border: var(--bs-border-width) solid var(--bs-border-color);
  border-radius: var(--bs-border-radius);
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
  @media (prefers-reduced-motion: reduce) {
    .form-control {
      transition: none; } }
  .form-control:focus {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    border-color: #86b7fe;
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
  .form-control::-webkit-date-and-time-value {
    min-width: 85px;
    height: 1.5em;
    margin: 0; }
  .form-control::-webkit-datetime-edit {
    display: block;
    padding: 0; }
  .form-control::placeholder {
    color: var(--bs-secondary-color);
    opacity: 1; }
  .form-control:disabled {
    background-color: var(--bs-secondary-bg);
    opacity: 1; }
  .form-control::file-selector-button {
    padding: 0.375rem 0.75rem;
    margin: -0.375rem -0.75rem;
    margin-inline-end: 0.75rem;
    color: var(--bs-body-color);
    background-color: var(--bs-tertiary-bg);
    pointer-events: none;
    border-color: inherit;
    border-style: solid;
    border-width: 0;
    border-inline-end-width: var(--bs-border-width);
    border-radius: 0;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
    @media (prefers-reduced-motion: reduce) {
      .form-control::file-selector-button {
        transition: none; } }
  .form-control:hover:not(:disabled):not([readonly])::file-selector-button {
    background-color: var(--bs-secondary-bg); }

textarea.form-control {
  min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); }

.form-check {
  display: block;
  min-height: 1.5rem;
  padding-left: 1.5em;
  margin-bottom: 0.125rem; }
  .form-check .form-check-input {
    float: left;
    margin-left: -1.5em; }

.form-check-input {
  --bs-form-check-bg: var(--bs-body-bg);
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  margin-top: 0.25em;
  vertical-align: top;
  appearance: none;
  background-color: var(--bs-form-check-bg);
  background-image: var(--bs-form-check-bg-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  border: var(--bs-border-width) solid var(--bs-border-color);
  print-color-adjust: exact; }
  .form-check-input:active {
    filter: brightness(90%); }
  .form-check-input:focus {
    border-color: #86b7fe;
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
  .form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd; }
  .form-check-input:disabled {
    pointer-events: none;
    filter: none;
    opacity: 0.5; }
   .form-check-input:disabled ~ .form-check-label {
    cursor: default;
    opacity: 0.5; }

.btn {
  --bs-btn-padding-x: 0.75rem;
  --bs-btn-padding-y: 0.375rem;
  --bs-btn-font-family: ;
  --bs-btn-font-size: 1rem;
  --bs-btn-font-weight: 400;
  --bs-btn-line-height: 1.5;
  --bs-btn-color: var(--bs-body-color);
  --bs-btn-bg: transparent;
  --bs-btn-border-width: var(--bs-border-width);
  --bs-btn-border-color: transparent;
  --bs-btn-border-radius: var(--bs-border-radius);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(51, 51, 51, 0.075);
  --bs-btn-disabled-opacity: 0.65;
  --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);
  display: inline-block;
  padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);
  font-family: var(--bs-btn-font-family);
  font-size: var(--bs-btn-font-size);
  font-weight: var(--bs-btn-font-weight);
  line-height: var(--bs-btn-line-height);
  color: var(--bs-btn-color);
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
  border-radius: var(--bs-btn-border-radius);
  background-color: var(--bs-btn-bg);
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
  @media (prefers-reduced-motion: reduce) {
    .btn {
      transition: none; } }
  .btn:hover {
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color); }
  .btn:focus-visible {
    color: var(--bs-btn-hover-color);
    background-color: var(--bs-btn-hover-bg);
    border-color: var(--bs-btn-hover-border-color);
    outline: 0;
    box-shadow: var(--bs-btn-focus-box-shadow); }
   :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {
    color: var(--bs-btn-active-color);
    background-color: var(--bs-btn-active-bg);
    border-color: var(--bs-btn-active-border-color); }
     :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {
      box-shadow: var(--bs-btn-focus-box-shadow); }
  .btn:disabled, fieldset:disabled .btn {
    color: var(--bs-btn-disabled-color);
    pointer-events: none;
    background-color: var(--bs-btn-disabled-bg);
    border-color: var(--bs-btn-disabled-border-color);
    opacity: var(--bs-btn-disabled-opacity); }

.btn-primary {
  --bs-btn-color: #FFFFFF;
  --bs-btn-bg: #0d6efd;
  --bs-btn-border-color: #0d6efd;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #0b5ed7;
  --bs-btn-hover-border-color: #0a58ca;
  --bs-btn-focus-shadow-rgb: 49, 132, 253;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #0a58ca;
  --bs-btn-active-border-color: #0a53be;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(51, 51, 51, 0.125);
  --bs-btn-disabled-color: #FFFFFF;
  --bs-btn-disabled-bg: #0d6efd;
  --bs-btn-disabled-border-color: #0d6efd; }

.btn-light {
  --bs-btn-color: #333333;
  --bs-btn-bg: #F5F7FA;
  --bs-btn-border-color: #F5F7FA;
  --bs-btn-hover-color: #333333;
  --bs-btn-hover-bg: #d0d2d5;
  --bs-btn-hover-border-color: #c4c6c8;
  --bs-btn-focus-shadow-rgb: 216, 218, 220;
  --bs-btn-active-color: #333333;
  --bs-btn-active-bg: #c4c6c8;
  --bs-btn-active-border-color: #b8b9bc;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(51, 51, 51, 0.125);
  --bs-btn-disabled-color: #333333;
  --bs-btn-disabled-bg: #F5F7FA;
  --bs-btn-disabled-border-color: #F5F7FA; }

.btn-dark {
  --bs-btn-color: #FFFFFF;
  --bs-btn-bg: #212529;
  --bs-btn-border-color: #212529;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #424649;
  --bs-btn-hover-border-color: #373b3e;
  --bs-btn-focus-shadow-rgb: 66, 70, 73;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #4d5154;
  --bs-btn-active-border-color: #373b3e;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(51, 51, 51, 0.125);
  --bs-btn-disabled-color: #FFFFFF;
  --bs-btn-disabled-bg: #212529;
  --bs-btn-disabled-border-color: #212529; }

.btn-outline-primary {
  --bs-btn-color: #0d6efd;
  --bs-btn-border-color: #0d6efd;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #0d6efd;
  --bs-btn-hover-border-color: #0d6efd;
  --bs-btn-focus-shadow-rgb: 13, 110, 253;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #0d6efd;
  --bs-btn-active-border-color: #0d6efd;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(51, 51, 51, 0.125);
  --bs-btn-disabled-color: #0d6efd;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #0d6efd;
  --bs-gradient: none; }

.btn-outline-dark {
  --bs-btn-color: #212529;
  --bs-btn-border-color: #212529;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-hover-bg: #212529;
  --bs-btn-hover-border-color: #212529;
  --bs-btn-focus-shadow-rgb: 33, 37, 41;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-active-bg: #212529;
  --bs-btn-active-border-color: #212529;
  --bs-btn-active-shadow: inset 0 3px 5px rgba(51, 51, 51, 0.125);
  --bs-btn-disabled-color: #212529;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #212529;
  --bs-gradient: none; }

.btn-sm {
  --bs-btn-padding-y: 0.25rem;
  --bs-btn-padding-x: 0.5rem;
  --bs-btn-font-size: 0.875rem;
  --bs-btn-border-radius: var(--bs-border-radius-sm); }

.collapse:not(.show) {
  display: none; }

.collapsing {
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease; }
  @media (prefers-reduced-motion: reduce) {
    .collapsing {
      transition: none; } }

.dropdown {
  position: relative; }

.dropdown-toggle {
  white-space: nowrap; }
  .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.255em;
    vertical-align: 0.255em;
    content: "";
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent; }
  .dropdown-toggle:empty::after {
    margin-left: 0; }

.dropdown-menu {
  --bs-dropdown-zindex: 1000;
  --bs-dropdown-min-width: 10rem;
  --bs-dropdown-padding-x: 0;
  --bs-dropdown-padding-y: 0.5rem;
  --bs-dropdown-spacer: 0.125rem;
  --bs-dropdown-font-size: 1rem;
  --bs-dropdown-color: var(--bs-body-color);
  --bs-dropdown-bg: var(--bs-body-bg);
  --bs-dropdown-border-color: var(--bs-border-color-translucent);
  --bs-dropdown-border-radius: var(--bs-border-radius);
  --bs-dropdown-border-width: var(--bs-border-width);
  --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
  --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
  --bs-dropdown-divider-margin-y: 0.5rem;
  --bs-dropdown-box-shadow: var(--bs-box-shadow);
  --bs-dropdown-link-color: var(--bs-body-color);
  --bs-dropdown-link-hover-color: var(--bs-body-color);
  --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);
  --bs-dropdown-link-active-color: #FFFFFF;
  --bs-dropdown-link-active-bg: #0d6efd;
  --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);
  --bs-dropdown-item-padding-x: 1rem;
  --bs-dropdown-item-padding-y: 0.25rem;
  --bs-dropdown-header-color: #6c757d;
  --bs-dropdown-header-padding-x: 1rem;
  --bs-dropdown-header-padding-y: 0.5rem;
  position: absolute;
  z-index: var(--bs-dropdown-zindex);
  display: none;
  min-width: var(--bs-dropdown-min-width);
  padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);
  margin: 0;
  font-size: var(--bs-dropdown-font-size);
  color: var(--bs-dropdown-color);
  text-align: left;
  list-style: none;
  background-color: var(--bs-dropdown-bg);
  background-clip: padding-box;
  border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);
  border-radius: var(--bs-dropdown-border-radius); }

.dropdown-menu-start {
  --bs-position: start; }

.dropdown-menu-end {
  --bs-position: end; }

@media (min-width: 576px) {
  .dropdown-menu-sm-start {
    --bs-position: start; }
  .dropdown-menu-sm-end {
    --bs-position: end; } }

@media (min-width: 768px) {
  .dropdown-menu-md-start {
    --bs-position: start; }
  .dropdown-menu-md-end {
    --bs-position: end; } }

@media (min-width: 992px) {
  .dropdown-menu-lg-start {
    --bs-position: start; }
  .dropdown-menu-lg-end {
    --bs-position: end; } }

@media (min-width: 1200px) {
  .dropdown-menu-xl-start {
    --bs-position: start; }
  .dropdown-menu-xl-end {
    --bs-position: end; } }

@media (min-width: 1400px) {
  .dropdown-menu-xxl-start {
    --bs-position: start; }
  .dropdown-menu-xxl-end {
    --bs-position: end; } }

.dropdown-item {
  display: block;
  width: 100%;
  padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);
  clear: both;
  font-weight: 400;
  color: var(--bs-dropdown-link-color);
  text-align: inherit;
  text-decoration: none;
  white-space: nowrap;
  background-color: transparent;
  border: 0;
  border-radius: var(--bs-dropdown-item-border-radius, 0); }
  .dropdown-item:hover, .dropdown-item:focus {
    color: var(--bs-dropdown-link-hover-color);
    background-color: var(--bs-dropdown-link-hover-bg); }
  .dropdown-item.active, .dropdown-item:active {
    color: var(--bs-dropdown-link-active-color);
    text-decoration: none;
    background-color: var(--bs-dropdown-link-active-bg); }
   .dropdown-item:disabled {
    color: var(--bs-dropdown-link-disabled-color);
    pointer-events: none;
    background-color: transparent; }

.dropdown-menu.show {
  display: block; }

.dropdown-menu-dark {
  --bs-dropdown-color: #dee2e6;
  --bs-dropdown-bg: #343a40;
  --bs-dropdown-border-color: var(--bs-border-color-translucent);
  --bs-dropdown-box-shadow: ;
  --bs-dropdown-link-color: #dee2e6;
  --bs-dropdown-link-hover-color: #FFFFFF;
  --bs-dropdown-divider-bg: var(--bs-border-color-translucent);
  --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);
  --bs-dropdown-link-active-color: #FFFFFF;
  --bs-dropdown-link-active-bg: #0d6efd;
  --bs-dropdown-link-disabled-color: #adb5bd;
  --bs-dropdown-header-color: #adb5bd; }

.nav {
  --bs-nav-link-padding-x: 1rem;
  --bs-nav-link-padding-y: 0.5rem;
  --bs-nav-link-font-weight: ;
  --bs-nav-link-color: var(--bs-link-color);
  --bs-nav-link-hover-color: var(--bs-link-hover-color);
  --bs-nav-link-disabled-color: var(--bs-secondary-color);
  display: flex;
  flex-wrap: wrap;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none; }

.nav-link {
  display: block;
  padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
  font-size: var(--bs-nav-link-font-size);
  font-weight: var(--bs-nav-link-font-weight);
  color: var(--bs-nav-link-color);
  text-decoration: none;
  background: none;
  border: 0;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; }
  @media (prefers-reduced-motion: reduce) {
    .nav-link {
      transition: none; } }
  .nav-link:hover, .nav-link:focus {
    color: var(--bs-nav-link-hover-color); }
  .nav-link:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
   .nav-link:disabled {
    color: var(--bs-nav-link-disabled-color);
    pointer-events: none;
    cursor: default; }

.navbar {
  --bs-navbar-padding-x: 0;
  --bs-navbar-padding-y: 0.5rem;
  --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);
  --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);
  --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);
  --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);
  --bs-navbar-brand-padding-y: 0.3125rem;
  --bs-navbar-brand-margin-end: 1rem;
  --bs-navbar-brand-font-size: 1.25rem;
  --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);
  --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);
  --bs-navbar-nav-link-padding-x: 0.5rem;
  --bs-navbar-toggler-padding-y: 0.25rem;
  --bs-navbar-toggler-padding-x: 0.75rem;
  --bs-navbar-toggler-font-size: 1.25rem;
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
  --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);
  --bs-navbar-toggler-border-radius: var(--bs-border-radius);
  --bs-navbar-toggler-focus-width: 0.25rem;
  --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); }
  .navbar > .container,
  .navbar > .container-xxl {
    display: flex;
    flex-wrap: inherit;
    align-items: center;
    justify-content: space-between; }

.navbar-brand {
  padding-top: var(--bs-navbar-brand-padding-y);
  padding-bottom: var(--bs-navbar-brand-padding-y);
  margin-right: var(--bs-navbar-brand-margin-end);
  font-size: var(--bs-navbar-brand-font-size);
  color: var(--bs-navbar-brand-color);
  text-decoration: none;
  white-space: nowrap; }
  .navbar-brand:hover, .navbar-brand:focus {
    color: var(--bs-navbar-brand-hover-color); }

.navbar-nav {
  --bs-nav-link-padding-x: 0;
  --bs-nav-link-padding-y: 0.5rem;
  --bs-nav-link-font-weight: ;
  --bs-nav-link-color: var(--bs-navbar-color);
  --bs-nav-link-hover-color: var(--bs-navbar-hover-color);
  --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);
  display: flex;
  flex-direction: column;
  padding-left: 0;
  margin-bottom: 0;
  list-style: none; }
  .navbar-nav .nav-link.active, .navbar-nav .nav-link.show {
    color: var(--bs-navbar-active-color); }
  .navbar-nav .dropdown-menu {
    position: static; }

.navbar-collapse {
  flex-grow: 1;
  flex-basis: 100%;
  align-items: center; }

.navbar-toggler {
  padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);
  font-size: var(--bs-navbar-toggler-font-size);
  line-height: 1;
  color: var(--bs-navbar-color);
  background-color: transparent;
  border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);
  border-radius: var(--bs-navbar-toggler-border-radius);
  transition: var(--bs-navbar-toggler-transition); }
  @media (prefers-reduced-motion: reduce) {
    .navbar-toggler {
      transition: none; } }
  .navbar-toggler:hover {
    text-decoration: none; }
  .navbar-toggler:focus {
    text-decoration: none;
    outline: 0;
    box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); }

@media (min-width: 992px) {
  .navbar-expand-lg {
    flex-wrap: nowrap;
    justify-content: flex-start; }
    .navbar-expand-lg .navbar-nav {
      flex-direction: row; }
      .navbar-expand-lg .navbar-nav .dropdown-menu {
        position: absolute; }
      .navbar-expand-lg .navbar-nav .nav-link {
        padding-right: var(--bs-navbar-nav-link-padding-x);
        padding-left: var(--bs-navbar-nav-link-padding-x); }
    .navbar-expand-lg .navbar-collapse {
      display: flex !important;
      flex-basis: auto; }
    .navbar-expand-lg .navbar-toggler {
      display: none; } }

.navbar-dark {
  --bs-navbar-color: rgba(255, 255, 255, 0.55);
  --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);
  --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);
  --bs-navbar-active-color: #FFFFFF;
  --bs-navbar-brand-color: #FFFFFF;
  --bs-navbar-brand-hover-color: #FFFFFF;
  --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);
  --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

.modal {
  --bs-modal-zindex: 1055;
  --bs-modal-width: 500px;
  --bs-modal-padding: 1rem;
  --bs-modal-margin: 0.5rem;
  --bs-modal-color: var(--bs-body-color);
  --bs-modal-bg: var(--bs-body-bg);
  --bs-modal-border-color: var(--bs-border-color-translucent);
  --bs-modal-border-width: var(--bs-border-width);
  --bs-modal-border-radius: var(--bs-border-radius-lg);
  --bs-modal-box-shadow: var(--bs-box-shadow-sm);
  --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));
  --bs-modal-header-padding-x: 1rem;
  --bs-modal-header-padding-y: 1rem;
  --bs-modal-header-padding: 1rem 1rem;
  --bs-modal-header-border-color: var(--bs-border-color);
  --bs-modal-header-border-width: var(--bs-border-width);
  --bs-modal-title-line-height: 1.5;
  --bs-modal-footer-gap: 0.5rem;
  --bs-modal-footer-bg: ;
  --bs-modal-footer-border-color: var(--bs-border-color);
  --bs-modal-footer-border-width: var(--bs-border-width);
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--bs-modal-zindex);
  display: none;
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  outline: 0; }

.modal-dialog {
  position: relative;
  width: auto;
  margin: var(--bs-modal-margin);
  pointer-events: none; }
  .modal.show .modal-dialog {
    transform: none; }
  .modal.modal-static .modal-dialog {
    transform: scale(1.02); }

.modal-dialog-scrollable {
  height: calc(100% - var(--bs-modal-margin) * 2); }
  .modal-dialog-scrollable .modal-content {
    max-height: 100%;
    overflow: hidden; }
  .modal-dialog-scrollable .modal-body {
    overflow-y: auto; }

.modal-dialog-centered {
  display: flex;
  align-items: center;
  min-height: calc(100% - var(--bs-modal-margin) * 2); }

.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  color: var(--bs-modal-color);
  pointer-events: auto;
  background-color: var(--bs-modal-bg);
  background-clip: padding-box;
  border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);
  border-radius: var(--bs-modal-border-radius);
  outline: 0; }

.modal-backdrop {
  --bs-backdrop-zindex: 1050;
  --bs-backdrop-bg: #333333;
  --bs-backdrop-opacity: 0.5;
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--bs-backdrop-zindex);
  width: 100vw;
  height: 100vh;
  background-color: var(--bs-backdrop-bg); }
  .modal-backdrop.show {
    opacity: var(--bs-backdrop-opacity); }

.modal-header {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  padding: var(--bs-modal-header-padding);
  border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);
  border-top-left-radius: var(--bs-modal-inner-border-radius);
  border-top-right-radius: var(--bs-modal-inner-border-radius); }

.modal-title {
  margin-bottom: 0;
  line-height: var(--bs-modal-title-line-height); }

.modal-body {
  position: relative;
  flex: 1 1 auto;
  padding: var(--bs-modal-padding); }

.modal-footer {
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);
  background-color: var(--bs-modal-footer-bg);
  border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);
  border-bottom-right-radius: var(--bs-modal-inner-border-radius);
  border-bottom-left-radius: var(--bs-modal-inner-border-radius); }
  .modal-footer > * {
    margin: calc(var(--bs-modal-footer-gap) * .5); }

@media (min-width: 576px) {
  .modal {
    --bs-modal-margin: 1.75rem;
    --bs-modal-box-shadow: var(--bs-box-shadow); }
  .modal-dialog {
    max-width: var(--bs-modal-width);
    margin-right: auto;
    margin-left: auto; }
  .modal-sm {
    --bs-modal-width: 300px; } }

@media (min-width: 992px) {
  .modal-lg,
  .modal-xl {
    --bs-modal-width: 800px; } }

@media (min-width: 1200px) {
  .modal-xl {
    --bs-modal-width: 1140px; } }

.modal-fullscreen {
  width: 100vw;
  max-width: none;
  height: 100%;
  margin: 0; }
  .modal-fullscreen .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0; }
  .modal-fullscreen .modal-header,
  .modal-fullscreen .modal-footer {
    border-radius: 0; }
  .modal-fullscreen .modal-body {
    overflow-y: auto; }

@media (max-width: 575.98px) {
  .modal-fullscreen-sm-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0; }
    .modal-fullscreen-sm-down .modal-content {
      height: 100%;
      border: 0;
      border-radius: 0; }
    .modal-fullscreen-sm-down .modal-header,
    .modal-fullscreen-sm-down .modal-footer {
      border-radius: 0; }
    .modal-fullscreen-sm-down .modal-body {
      overflow-y: auto; } }

@media (max-width: 767.98px) {
  .modal-fullscreen-md-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0; }
    .modal-fullscreen-md-down .modal-content {
      height: 100%;
      border: 0;
      border-radius: 0; }
    .modal-fullscreen-md-down .modal-header,
    .modal-fullscreen-md-down .modal-footer {
      border-radius: 0; }
    .modal-fullscreen-md-down .modal-body {
      overflow-y: auto; } }

@media (max-width: 991.98px) {
  .modal-fullscreen-lg-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0; }
    .modal-fullscreen-lg-down .modal-content {
      height: 100%;
      border: 0;
      border-radius: 0; }
    .modal-fullscreen-lg-down .modal-header,
    .modal-fullscreen-lg-down .modal-footer {
      border-radius: 0; }
    .modal-fullscreen-lg-down .modal-body {
      overflow-y: auto; } }

@media (max-width: 1199.98px) {
  .modal-fullscreen-xl-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0; }
    .modal-fullscreen-xl-down .modal-content {
      height: 100%;
      border: 0;
      border-radius: 0; }
    .modal-fullscreen-xl-down .modal-header,
    .modal-fullscreen-xl-down .modal-footer {
      border-radius: 0; }
    .modal-fullscreen-xl-down .modal-body {
      overflow-y: auto; } }

@media (max-width: 1399.98px) {
  .modal-fullscreen-xxl-down {
    width: 100vw;
    max-width: none;
    height: 100%;
    margin: 0; }
    .modal-fullscreen-xxl-down .modal-content {
      height: 100%;
      border: 0;
      border-radius: 0; }
    .modal-fullscreen-xxl-down .modal-header,
    .modal-fullscreen-xxl-down .modal-footer {
      border-radius: 0; }
    .modal-fullscreen-xxl-down .modal-body {
      overflow-y: auto; } }

.text-bg-dark {
  color: #FFFFFF !important;
  background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; }

.link-dark {
  color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;
  text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; }
  .link-dark:hover, .link-dark:focus {
    color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;
    text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; }

.ratio {
  position: relative;
  width: 100%; }
  .ratio::before {
    display: block;
    padding-top: var(--bs-aspect-ratio);
    content: ""; }
  .ratio > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

.ratio-1x1 {
  --bs-aspect-ratio: 100%; }

.visually-hidden {
  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; }
  .visually-hidden:not(caption) {
    position: absolute !important; }
  .visually-hidden * {
    overflow: hidden !important; }

.object-fit-cover {
  object-fit: cover !important; }

.overflow-hidden {
  overflow: hidden !important; }

.overflow-visible {
  overflow: visible !important; }

.overflow-x-visible {
  overflow-x: visible !important; }

.overflow-y-visible {
  overflow-y: visible !important; }

.d-inline-block {
  display: inline-block !important; }

.d-block {
  display: block !important; }

.d-flex {
  display: flex !important; }

.d-none {
  display: none !important; }

.shadow-none {
  box-shadow: none !important; }

.focus-ring-dark {
  --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); }

.border-dark {
  --bs-border-opacity: 1;
  border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; }

.border-dark-subtle {
  border-color: var(--bs-dark-border-subtle) !important; }

.w-100 {
  width: 100% !important; }

.h-100 {
  height: 100% !important; }

.align-items-center {
  align-items: center !important; }

.mx-3 {
  margin-right: 1rem !important;
  margin-left: 1rem !important; }

.mx-auto {
  margin-right: auto !important;
  margin-left: auto !important; }

.mt-2 {
  margin-top: 0.5rem !important; }

.mt-3 {
  margin-top: 1rem !important; }

.mt-4 {
  margin-top: 1.5rem !important; }

.mb-0 {
  margin-bottom: 0 !important; }

.mb-2 {
  margin-bottom: 0.5rem !important; }

.mb-3 {
  margin-bottom: 1rem !important; }

.mb-4 {
  margin-bottom: 1.5rem !important; }

.p-0 {
  padding: 0 !important; }

.p-4 {
  padding: 1.5rem !important; }

.pt-4 {
  padding-top: 1.5rem !important; }

.text-end {
  text-align: right !important; }

.text-center {
  text-align: center !important; }

/* rtl:begin:remove */

/* rtl:end:remove */

.text-dark {
  --bs-text-opacity: 1;
  color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; }

.text-muted {
  --bs-text-opacity: 1;
  color: var(--bs-secondary-color) !important; }

.text-dark-emphasis {
  color: var(--bs-dark-text-emphasis) !important; }

.link-underline-dark {
  --bs-link-underline-opacity: 1;
  text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; }

.bg-light {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; }

.bg-dark {
  --bs-bg-opacity: 1;
  background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; }

.bg-dark-subtle {
  background-color: var(--bs-dark-bg-subtle) !important; }

.rounded-circle {
  border-radius: 50% !important; }

.visible {
  visibility: visible !important; }

.invisible {
  visibility: hidden !important; }

@media (min-width: 992px) {
  .d-lg-inline {
    display: inline !important; }
  .d-lg-none {
    display: none !important; }
  .p-lg-5 {
    padding: 3rem !important; } }

.img {
  max-width: 100%;
  height: auto; }

.h1,
.h2,
.h3,
.h4,
.h5,
h1,
h2,
h3,
h4,
h5 {
  color: #555555;
  font-weight: 600;
  line-height: 1.4; }

a:focus,
button:focus {
  outline: 0; }

a {
  color: #bbbbbb;
  transition: all 0.3s;
  text-decoration: none; }
  a:hover {
    text-decoration: none;
    color: #555555; }

ul,
li {
  padding: 0;
  margin: 0;
  list-style-position: inside; }
h5,
.h5 {
  font-size: 23.04px;
  line-height: calc(2px + 2ex + 2px);
  margin-bottom: 0.65em; }
  h5:not(h1, .h1, h2, .h2),
  .h5:not(h1, .h1, h2, .h2) {
    font-size: calc(23.04px * 0.7); }
  @media (max-width: 991px) {
    h5:not(h4, .h4, h5, .h5, h6, .h6),
    .h5:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(23.04px * 0.95);
      margin-bottom: 0.55em; } }
  @media (max-width: 767px) {
    h5:not(h4, .h4, h5, .h5, h6, .h6),
    .h5:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(23.04px * 0.8); } }
h4,
.h4 {
  font-size: 27.648px;
  line-height: calc(2px + 2ex + 2px);
  margin-bottom: 0.65em; }
  h4:not(h1, .h1, h2, .h2),
  .h4:not(h1, .h1, h2, .h2) {
    font-size: calc(27.648px * 0.7); }
  @media (max-width: 991px) {
    h4:not(h4, .h4, h5, .h5, h6, .h6),
    .h4:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(27.648px * 0.95);
      margin-bottom: 0.55em; } }
  @media (max-width: 767px) {
    h4:not(h4, .h4, h5, .h5, h6, .h6),
    .h4:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(27.648px * 0.8); } }
h3,
.h3 {
  font-size: 33.1776px;
  line-height: calc(2px + 2ex + 2px);
  margin-bottom: 0.65em; }
  h3:not(h1, .h1, h2, .h2),
  .h3:not(h1, .h1, h2, .h2) {
    font-size: calc(33.1776px * 0.7); }
  @media (max-width: 991px) {
    h3:not(h4, .h4, h5, .h5, h6, .h6),
    .h3:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(33.1776px * 0.95);
      margin-bottom: 0.55em; } }
  @media (max-width: 767px) {
    h3:not(h4, .h4, h5, .h5, h6, .h6),
    .h3:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(33.1776px * 0.8); } }
h2,
.h2 {
  font-size: 39.81312px;
  line-height: calc(2px + 2ex + 2px);
  margin-bottom: 0.65em; }
  h2:not(h1, .h1, h2, .h2),
  .h2:not(h1, .h1, h2, .h2) {
    font-size: calc(39.81312px * 0.7); }
  @media (max-width: 991px) {
    h2:not(h4, .h4, h5, .h5, h6, .h6),
    .h2:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(39.81312px * 0.95);
      margin-bottom: 0.55em; } }
  @media (max-width: 767px) {
    h2:not(h4, .h4, h5, .h5, h6, .h6),
    .h2:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(39.81312px * 0.8); } }
h1,
.h1 {
  font-size: 47.775744px;
  line-height: calc(2px + 2ex + 2px);
  margin-bottom: 0.65em; }
  h1:not(h1, .h1, h2, .h2),
  .h1:not(h1, .h1, h2, .h2) {
    font-size: calc(47.775744px * 0.7); }
  @media (max-width: 991px) {
    h1:not(h4, .h4, h5, .h5, h6, .h6),
    .h1:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(47.775744px * 0.95);
      margin-bottom: 0.55em; } }
  @media (max-width: 767px) {
    h1:not(h4, .h4, h5, .h5, h6, .h6),
    .h1:not(h4, .h4, h5, .h5, h6, .h6) {
      font-size: calc(47.775744px * 0.8); } }
.btn {
  padding: 0.875rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: 0.375rem;
  transition: 0.2s ease-out;
  position: relative;
  z-index: 1;
  overflow: hidden;
  border: 0; }
  .btn:active, .btn:focus {
    box-shadow: none !important; }
  .btn.btn-sm {
    padding: 0.625rem 1.25rem; }
  .btn::after {
    position: absolute;
    content: "";
    height: 0;
    width: 100%;
    left: 0;
    top: 0;
    background-color: rgba(51, 51, 51, 0.1);
    z-index: -1;
    transition: 0.3s;
    border-radius: 0.375rem; }
  .btn:hover, .btn:active, .btn:focus {
    box-shadow: 0 0.625rem 1.56rem rgba(51, 51, 51, 0.1); }
    .btn:hover::after, .btn:active::after, .btn:focus::after {
      height: 100%;
      top: auto;
      bottom: 0; }
  .btn.btn-primary {
    background-color: #072742 !important;
    border: 0; }
    .btn.btn-primary:hover, .btn.btn-primary:active, .btn.btn-primary:focus {
      color: #FFFFFF; }
  .btn.btn-outline-primary {
    color: #072742;
    border: 1px solid #072742;
    background-color: transparent !important; }
    .btn.btn-outline-primary::after {
      background-color: #072742 !important; }
    .btn.btn-outline-primary:hover, .btn.btn-outline-primary:active, .btn.btn-outline-primary:focus {
      color: #FFFFFF;
      border-color: transparent !important; }

body {
  color: #bbbbbb;
  background-color: #FFFFFF;
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: 0.9rem;
  line-height: 1.7; }

::selection {
  color: #FFFFFF;
  background-color: #05192b;
  text-shadow: none; }

img {
  max-width: 100%;
  height: auto;
  display: inline-block; }

/*------------------------------------------------------------------
 # default styles
-------------------------------------------------------------------*/
@media (min-width: 992px) {
  .container {
    max-width: 1060px; } }

@media (min-width: 1200px) {
  .container {
    max-width: 1260px; } }

@media (min-width: 1400px) {
  .container {
    max-width: 1380px; } }

.container-xxl {
  max-width: 1440px;
  width: 100%;
  padding-right: 0.9rem;
  padding-left: 0.9rem;
  margin-right: auto;
  margin-left: auto; }
  @media (max-width: 1466px) {
    .container-xxl {
      max-width: 1260px; } }
.section {
  padding: 6.25rem 0; }

.swiper-pagination-bullet-active {
  background: #072742 !important; }

.form-control {
  border: 0;
  padding: 1.25rem;
  border: 2px solid rgba(7, 39, 66, 0.1);
  border-left-color: rgba(7, 39, 66, 0.5);
  height: 3.5rem;
  transition: 0.3s ease;
  background-color: rgba(7, 39, 66, 0.05); }
  .form-control:focus {
    box-shadow: none;
    color: #666666;
    border-bottom-color: rgba(7, 39, 66, 0.5);
    border-color: rgba(7, 39, 66, 0.5); }

form label {
  font-weight: 600;
  color: #888888; }

/*------------------------------------------------------------------
 # helper classes
-------------------------------------------------------------------*/

.header-height-fix {
  height: 7.3rem; }
  @media (max-width: 991px) {
    .header-height-fix {
      height: 6.625rem; } }
  @media (max-width: 767px) {
    .header-height-fix {
      height: 5.25rem; } }
header {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 99999;
  background-color: #FFFFFF;
  padding: 1.8rem 0;
  transition: 0.15s ease-out; }
  @media (max-width: 767px) {
    header {
      padding: 1.25rem 0; } }
  header.header-sticky-top {
    padding: 1.06rem 0;
    box-shadow: 0px 0.25rem 1.125rem 0 rgba(32, 45, 73, 0.02); }
    @media (max-width: 400px) {
      header.header-sticky-top {
        padding: 5px 0 0.625rem 0; } }
  header.header-unpinned {
    transform: translateY(calc(-100% - 5px)); }
  @media (max-width: 767px) {
    header .navbar-brand img {
      height: 1.8rem;
      width: auto; } }
  @media (max-width: 400px) {
    header .navbar-brand img {
      height: 1.5rem; } }
  header .navbar-light .navbar-toggler {
    border-color: transparent;
    padding: 0;
    color: #555555;
    border: 0;
    transition: 0.3s ease;
    box-shadow: none; }
    header .navbar-light .navbar-toggler .show {
      display: none; }
    header .navbar-light .navbar-toggler .hide {
      display: block; }
    header .navbar-light .navbar-toggler[aria-expanded="true"] .show {
      display: block; }
    header .navbar-light .navbar-toggler[aria-expanded="true"] .hide {
      display: none; }
    @media (max-width: 767px) {
      header .navbar-light .navbar-toggler {
        font-size: 2rem; } }
    header .navbar-light .navbar-toggler:hover {
      color: #072742; }
  header .nav-item .nav-link {
    font-weight: 500;
    font-size: 1rem;
    color: #555555 !important;
    padding: 0.9rem 1.06rem !important; }
    @media (max-width: 1200px) {
      header .nav-item .nav-link {
        font-size: 0.9rem;
        padding: 0.9rem 0.625rem !important; } }
  header .nav-item .nav-link:hover, header .nav-item.active .nav-link {
    color: #072742 !important; }
  header .nav-item.dropdown .nav-link::after {
    display: inline-block;
    vertical-align: 0.255em;
    content: "";
    height: 0.56rem;
    width: 0.56rem;
    border: 2px solid;
    border-left: 0;
    border-top: 0;
    border-color: inherit;
    border-radius: 2px;
    transform: rotate(45deg);
    transition: 0s; }
  header .dropdown-menu {
    border: 0;
    padding: 0 0.625rem;
    border-radius: 0.375rem;
    background-color: rgba(7, 39, 66, 0.05);
    border: 1px solid rgba(7, 39, 66, 0.05); }
    header .dropdown-menu li:first-child {
      margin-top: 0.75rem; }
    header .dropdown-menu li:last-child {
      margin-bottom: 0.75rem; }
    header .dropdown-menu .dropdown-item {
      padding: 0.5rem 0.9rem;
      font-size: 0.875rem;
      font-weight: 500;
      color: #555555;
      border-radius: 0.375rem; }
      header .dropdown-menu .dropdown-item:focus, header .dropdown-menu .dropdown-item:hover, header .dropdown-menu .dropdown-item:active {
        color: #072742;
        background-color: rgba(7, 39, 66, 0.07); }
      header .dropdown-menu .dropdown-item.active {
        color: #072742;
        background-color: transparent; }
        header .dropdown-menu .dropdown-item.active:focus, header .dropdown-menu .dropdown-item.active:hover, header .dropdown-menu .dropdown-item.active:active {
          background-color: rgba(7, 39, 66, 0.07); }
  @media (min-width: 991px) {
    header .dropdown-menu {
      display: block;
      visibility: hidden;
      width: 13.75rem;
      left: 50% !important;
      transform: translate(-50%, -6px);
      z-index: 1;
      border: 0;
      margin-top: 0px !important;
      background-color: transparent; }
      header .dropdown-menu::after {
        position: absolute;
        content: "";
        height: 0;
        width: 100%;
        top: 0;
        left: 0;
        background-color: #FFFFFF;
        z-index: -1;
        border-radius: 0.375rem;
        transition: 0.15s;
        border: 1px solid rgba(7, 39, 66, 0.3);
        box-shadow: 0 0.9rem 1.56rem rgba(51, 51, 51, 0.1); }
      header .dropdown-menu li {
        transform: translateY(1.25rem);
        opacity: 0;
        transition: 0.1s; }
    header .dropdown:hover .dropdown-menu {
      visibility: visible;
      height: 0; }
      header .dropdown:hover .dropdown-menu::after {
        transition: 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
        height: 100%; }
      header .dropdown:hover .dropdown-menu li {
        opacity: 1;
        transform: translateY(0);
        transition: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); }
      header .dropdown:hover .dropdown-menu li:nth-child(1) {
        transition-delay: 0.05s; }
      header .dropdown:hover .dropdown-menu li:nth-child(2) {
        transition-delay: 0.1s; }
      header .dropdown:hover .dropdown-menu li:nth-child(3) {
        transition-delay: 0.15s; }
      header .dropdown:hover .dropdown-menu li:nth-child(4) {
        transition-delay: 0.2s; }
      header .dropdown:hover .dropdown-menu li:nth-child(5) {
        transition-delay: 0.25s; }
      header .dropdown:hover .dropdown-menu li:nth-child(6) {
        transition-delay: 0.3s; }
      header .dropdown:hover .dropdown-menu li:nth-child(7) {
        transition-delay: 0.35s; }
      header .dropdown:hover .dropdown-menu li:nth-child(8) {
        transition-delay: 0.4s; }
      header .dropdown:hover .dropdown-menu li:nth-child(9) {
        transition-delay: 0.45s; }
      header .dropdown:hover .dropdown-menu li:nth-child(10) {
        transition-delay: 0.5s; }
      header .dropdown:hover .dropdown-menu li:nth-child(11) {
        transition-delay: 0.55s; }
      header .dropdown:hover .dropdown-menu li:nth-child(12) {
        transition-delay: 0.6s; } }
  @media (max-width: 991px) {
    header .navbar-nav {
      max-width: 18.75rem;
      max-height: 25rem;
      overflow-y: auto;
      text-align: center;
      padding-top: 1.8rem; }
    header .navbar-right {
      text-align: center;
      margin-top: 5px;
      padding-bottom: 0.625rem; }
    header .dropdown-menu {
      padding: 1px 0.9rem;
      text-align: center;
      height: initial !important; }
    header .nav-item .nav-link {
      padding: 0.31rem 1.25rem !important; } }
@keyframes pulse {
  0% {
    opacity: 0;
    transform: scale(0.5); }
  50% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scale(1.1); } }
.contact-form {
  padding: 2.1rem;
  padding-bottom: 2.8rem;
  border-radius: 1.125rem;
  box-shadow: 0px 0.25rem 1.5rem 0px rgba(51, 51, 51, 0.05); }
  @media (max-width: 575px) {
    .contact-form {
      padding-left: 1.25rem;
      padding-right: 1.25rem; } }

footer.footer {
  margin-top: 6.25rem; }

.form-status {
  color: #072742;
  font-weight: 500; }

body {
  color: var(--pb-ink, #3D4B5C); }

.section {
  padding: 1rem; }

/* Content section styling */

/* Services features section styling */

/* SEO Content Card Styling */

.seo-text {
  flex: 1; }

.seo-text p {
  font-size: 1.1rem;
  line-height: 1.6;
  color: var(--color-text);
  margin: 0;
  text-align: left; }

/* Trust Sections - Service Cards with Price/Period */

/* Facts Bar Section */

/* The theme Title-Cases headings via text-transform: capitalize — that reads
   as a typo in Russian/Estonian («О Нас - Опытные Бухгалтеры…»). Let the
   content's own casing win. (.text-uppercase subtitles keep working —
   bootstrap's rule also carries !important and is more specific there.) */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5,
p strong {
  text-transform: none !important; }

/* Language switcher: Bootstrap provides the dropdown behaviour; the trigger
   and popup are styled here so the browser never falls back to a native menu. */
.lang-switcher {
  display: inline-block;
  position: relative; }

.lang-switcher__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  min-width: 7rem;
  border: 1px solid rgba(7, 39, 66, 0.14);
  border-radius: 999px;
  padding: 0.45rem 0.8rem 0.45rem 0.95rem;
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1.25;
  color: var(--pb-primary);
  background: #fff;
  cursor: pointer;
  transition: border-color var(--pb-t-fast) var(--pb-ease), background-color var(--pb-t-fast) var(--pb-ease), box-shadow var(--pb-t-fast) var(--pb-ease); }
  .lang-switcher__toggle:hover {
    border-color: rgba(29, 111, 224, 0.55); }
  .lang-switcher__toggle:focus-visible {
    outline: none;
    border-color: var(--pb-accent);
    box-shadow: 0 0 0 3px rgba(29, 111, 224, 0.2); }
  .lang-switcher__toggle .lang-switcher__chevron {
    flex: 0 0 auto;
    width: 0.45rem;
    height: 0.45rem;
    margin-top: -0.2rem;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform var(--pb-t-fast) var(--pb-ease); }
  .lang-switcher__toggle[aria-expanded="true"] .lang-switcher__chevron {
    margin-top: 0.2rem;
    transform: rotate(225deg); }

.lang-switcher__menu.dropdown-menu {
  display: none;
  visibility: visible;
  top: calc(100% + 0.55rem) !important;
  right: 0 !important;
  bottom: auto !important;
  left: auto !important;
  width: auto;
  min-width: 9rem;
  height: auto !important;
  margin: 0 !important;
  padding: 0.4rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 0.85rem;
  background: #081f36;
  box-shadow: 0 18px 42px rgba(0, 8, 20, 0.5);
  transform: none !important;
  z-index: 1050; }
  .lang-switcher__menu.dropdown-menu.show {
    display: block; }
  .lang-switcher__menu.dropdown-menu::after {
    display: none; }
  .lang-switcher__menu.dropdown-menu li {
    margin: 0 !important;
    opacity: 1;
    transform: none; }

.lang-switcher__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  padding: 0.55rem 0.65rem;
  border-radius: 0.55rem;
  color: #dfeaf7;
  font-size: 0.9rem;
  font-weight: 550;
  line-height: 1.25;
  text-align: left;
  transition: color var(--pb-t-fast) var(--pb-ease), background-color var(--pb-t-fast) var(--pb-ease); }
  .lang-switcher__option:hover, .lang-switcher__option:focus-visible {
    color: #fff;
    background: rgba(29, 111, 224, 0.24); }
  .lang-switcher__option:focus-visible {
    outline: 2px solid rgba(127, 176, 242, 0.85);
    outline-offset: -2px; }
  .lang-switcher__option.is-active {
    color: #fff;
    background: rgba(29, 111, 224, 0.34); }

.lang-switcher__check {
  flex: 0 0 auto;
  fill: none;
  stroke: #9cc2f5;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round; }

/* --- Long-word wrapping + narrow-viewport header ------------------------- */
/* Estonian compounds (e.g. "raamatupidamisteenust") overflow on narrow
   screens. Break/hyphenate long words in headings and running text.
   <html lang> is set, so hyphens: auto uses language-aware break points. */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5,
.title,
.seo-text {
  overflow-wrap: break-word;
  hyphens: auto; }

/* Below ~420px the brand + language pill + burger stop fitting on one line,
   so Bootstrap's navbar flex-wrap drops the burger to a second row ("runs
   away down"). Shrink the brand and compact the pill so all three fit on one
   line. NB: do NOT set flex-wrap:nowrap on .navbar — Bootstrap needs wrap so
   the expanded .navbar-collapse menu drops onto its own row. */
@media (max-width: 420px) {
  .header-nav .navbar-brand {
    font-size: 1rem;
    white-space: nowrap;
    margin-right: 0.25rem; }
  .header-nav .lang-switcher {
    margin-left: 0.4rem !important;
    margin-right: 0.4rem !important; }
  .header-nav .lang-switcher__toggle {
    min-width: 6.25rem;
    padding: 0.4rem 0.65rem 0.4rem 0.75rem;
    font-size: 0.8rem; } }

/* Featured nav item: the salary calculator — the site's flagship tool */
.nav-link-featured {
  border: 1px solid rgba(29, 111, 224, 0.45);
  border-radius: 999px;
  padding: 0.35rem 0.95rem !important;
  color: var(--pb-accent) !important;
  background: rgba(29, 111, 224, 0.06);
  transition: background var(--pb-t-fast) var(--pb-ease), border-color var(--pb-t-fast) var(--pb-ease); }
  .nav-link-featured i {
    font-size: 1em; }
  .nav-link-featured:hover {
    background: rgba(29, 111, 224, 0.12);
    border-color: var(--pb-accent); }

@media (min-width: 992px) {
  .navbar-nav .nav-item:has(> .nav-link-featured) {
    display: flex;
    align-items: center;
    margin-left: 0.35rem; } }

/* ==========================================================================
   Salary calculator (layouts/_default/calculator.html)
   ========================================================================== */
.calc-card {
  background: #fff;
  border: 1px solid rgba(7, 39, 66, 0.08);
  border-radius: 14px;
  box-shadow: var(--pb-shadow-sm); }

.calc-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--pb-ink-soft); }

/* Amount input */
.calc-amount {
  border: 1px solid rgba(7, 39, 66, 0.14);
  border-radius: 12px;
  padding: 0.4rem 1rem;
  transition: border-color var(--pb-t-fast) var(--pb-ease), box-shadow var(--pb-t-fast) var(--pb-ease); }
  .calc-amount:focus-within {
    border-color: var(--pb-accent);
    box-shadow: 0 0 0 3px rgba(29, 111, 224, 0.15); }
  .calc-amount input {
    border: 0;
    outline: 0;
    width: 100%;
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--pb-primary);
    text-align: right;
    background: transparent;
    -moz-appearance: textfield; }
    .calc-amount input::-webkit-outer-spin-button, .calc-amount input::-webkit-inner-spin-button {
      -webkit-appearance: none;
      margin: 0; }

.calc-amount-currency {
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--pb-ink-soft);
  margin-left: 0.6rem; }

/* Segmented control (radio group) */
.calc-segmented {
  display: inline-flex;
  flex-wrap: wrap;
  background: var(--pb-surface-tint);
  border: 1px solid rgba(7, 39, 66, 0.1);
  border-radius: 10px;
  padding: 3px;
  gap: 3px; }
  .calc-segmented input {
    position: absolute;
    opacity: 0;
    pointer-events: none; }
  .calc-segmented label {
    padding: 0.45rem 0.9rem;
    border-radius: 8px;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--pb-ink);
    cursor: pointer;
    transition: background var(--pb-t-fast) var(--pb-ease), color var(--pb-t-fast) var(--pb-ease);
    margin: 0; }
  .calc-segmented input:checked + label {
    background: #fff;
    color: var(--pb-accent);
    box-shadow: var(--pb-shadow-sm); }
  .calc-segmented input:focus-visible + label {
    outline: 2px solid var(--pb-accent);
    outline-offset: 1px; }

.calc-segmented--sm label {
  padding: 0.3rem 0.75rem;
  font-size: 0.85rem; }

/* On a phone every segmented control goes full width with equal columns. Sizing
   them to their content left a stack of pills of three different widths sitting
   directly under each other, which just read as sloppy; and the three-option
   amount-type control overflowed 390px anyway and wrapped to a second row. */
@media (max-width: 575.98px) {
  .calc-card .calc-segmented {
    display: flex;
    width: 100%;
    flex-wrap: nowrap; }
    .calc-card .calc-segmented label {
      flex: 1 1 0;
      min-width: 0;
      padding-inline: 0.3rem;
      font-size: 0.84rem;
      text-align: center; } }

/* Hero figure + stat tiles */
.calc-hero-value {
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  color: var(--pb-primary); }

.calc-tiles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem; }

.calc-tile {
  padding: 0.9rem 1rem;
  background: var(--pb-surface-tint);
  border-radius: 10px; }

.calc-tile-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--pb-ink-soft);
  margin-bottom: 0.15rem; }

.calc-tile-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--pb-primary);
  white-space: nowrap; }

@media (max-width: 340px) {
  .calc-tile-value {
    white-space: normal !important;
    font-size: 1.15rem;
    word-break: break-word; } }

/* Distribution bar: 24px stacked bar, 2px surface gaps, 4px rounded ends.
   Palette validated (dataviz): net #1D6FE0, taxes #14538C (ΔE 30.5 protan) */
.calc-bar {
  display: flex;
  gap: 2px;
  height: 24px; }

.calc-bar-seg {
  transition: width var(--pb-t-slow) var(--pb-ease);
  min-width: 4px; }

.calc-bar-seg--net {
  background: #1d6fe0;
  border-radius: 4px 0 0 4px; }

.calc-bar-seg--pension {
  background: #79a9f5; }

.calc-bar-seg--tax {
  background: #14538c;
  border-radius: 0 4px 4px 0; }

.calc-legend-dot--pension {
  background: #79a9f5; }

.calc-bar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  font-size: 0.9rem;
  color: var(--pb-ink); }

.calc-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem; }

.calc-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0; }

.calc-legend-dot--net {
  background: #1d6fe0; }

.calc-legend-dot--tax {
  background: #14538c; }

/* Result tables */
.calc-table {
  font-variant-numeric: tabular-nums; }
  .calc-table td {
    padding: 0.4rem 0;
    font-size: 0.95rem; }
  .calc-table .calc-table-total td {
    font-weight: 700;
    color: var(--pb-primary);
    border-top: 1px solid rgba(7, 39, 66, 0.1);
    padding-top: 0.6rem; }
  .calc-table .calc-table-note {
    padding-top: 0.5rem;
    font-size: 0.82rem;
    font-style: italic;
    color: var(--pb-ink-soft); }

/* Minimum social tax base warning */
.calc-warning {
  font-size: 0.88rem;
  padding: 0.6rem 0.9rem;
  border-radius: 8px;
  background: #fdf3e0;
  border: 1px solid #e8c987;
  color: #7a5a17; }

/* Annual figures under hero value and tiles */
.calc-annual {
  color: #6b7c93;
  font-size: 0.9rem;
  margin-top: 0.25rem; }

.calc-tile-annual {
  color: #6b7c93;
  font-size: 0.78rem;
  margin-top: 0.15rem; }

/* Inline mini-field (hours per month, manual tax-free amount) */
.calc-inline-field {
  display: flex;
  align-items: center;
  gap: 0.6rem; }
  .calc-inline-field input {
    width: 5.5rem;
    padding: 0.35rem 0.5rem;
    border: 1px solid #d7e1ec;
    border-radius: 0.375rem;
    font-weight: 600; }

/* On a tool page the hero is wayfinding, not a statement: a breadcrumb and a
   title over 76px of padding. Every pixel it spends pushes the calculator's
   result further below the mobile fold, so it gets a tighter block. */
/* Doubled-up `.rd.rd--tool` on purpose: the base `.rd .rd-hero` rule lives ~2000
   lines further down at equal specificity and would otherwise win on source
   order. `.pt-4` is a Bootstrap utility, so beating it needs !important. */
.rd.rd--tool .rd-hero {
  padding-block: clamp(1.25rem, 3vw, 2.5rem) clamp(1rem, 2.5vw, 2rem); }

.rd.rd--tool .rd-hero h1, .rd.rd--tool .rd-hero .h1 {
  font-size: clamp(1.6rem, 4.2vw, 2.5rem); }

.rd.rd--tool .section.pt-4 {
  padding-top: 0.75rem !important; }

/* One breakdown card, but its two halves are columns again from md up. Stacked
   they ran 516px and pushed the whole thing under the desktop fold; side by side
   they fit the width the results column already has. */
.calc-breakdown__grid {
  display: grid;
  gap: 0 2.5rem;
  grid-template-columns: 1fr; }

/* Scoped past the theme's h3 font-size, which beat a bare class selector. Left
   in sentence case on purpose: the global h1-h6 rule forces text-transform:none
   with !important to stop Title Case mangling Russian, and this is not worth an
   !important war for the sake of small caps. */
.rd .calc-breakdown .calc-breakdown__title {
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 750;
  letter-spacing: -0.01em;
  color: var(--pb-ink-soft); }

@media (min-width: 768px) {
  .calc-breakdown__grid {
    grid-template-columns: 1fr 1fr; } }

/* Calculator layout. Phone order is amount -> figure -> settings -> detail;
   from lg it is two columns, inputs left and output right, with the figure
   spanning the two input rows. See _default/calculator.html. */
.calc-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: "basics" "result" "adjust" "detail";
  gap: 1.5rem; }
  .calc-grid__basics {
    grid-area: basics; }
  .calc-grid__result {
    grid-area: result;
    min-width: 0; }
  .calc-grid__adjust {
    grid-area: adjust; }
  .calc-grid__detail {
    grid-area: detail;
    min-width: 0;
    /* let the breakdown shrink instead of stretching the grid */
    display: flex;
    flex-direction: column;
    gap: 1.5rem; }

@media (min-width: 992px) {
  .calc-grid {
    grid-template-columns: 5fr 7fr;
    grid-template-areas: "basics result" "adjust result" "adjust detail";
    /* The result spans two rows and is the tallest thing here, so auto rows would
       share its excess out and push `adjust` away from `basics`. */
    grid-template-rows: auto auto 1fr;
    align-items: start; } }

.calc-tip-btn {
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  border: 1px solid rgba(20, 83, 140, 0.4);
  background: transparent;
  color: #14538c;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  margin-left: 0.35rem;
  padding: 0;
  vertical-align: middle;
  cursor: pointer; }
  .calc-tip-btn:hover, .calc-tip-btn:focus-visible, .calc-tip-btn[aria-expanded="true"] {
    background: #14538c;
    color: #fff; }

.calc-tip {
  display: block;
  margin: 0.4rem 0 0.2rem;
  padding: 0.6rem 0.75rem;
  background: #eef4fb;
  border-left: 3px solid #1d6fe0;
  border-radius: 0.375rem;
  font-size: 0.82rem;
  line-height: 1.45;
  color: #33475b;
  font-weight: 400;
  white-space: normal;
  text-align: left; }

/* Handoff strip after the breakdown. It began as a hairline-ruled block inside
   the result card, which read as a fourth data section; then as a full panel,
   which cost 285px in the middle of the figures. Now a single strip - copy left,
   one action right - keeping the blue rule that marks it as the ask rather than
   another row of numbers. */
.calc-result-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem 1.5rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(127, 176, 242, 0.2);
  border-left: 3px solid var(--pb-accent);
  border-radius: 12px;
  background: rgba(3, 17, 34, 0.5);
  /* The signature: the annual filing load, shown as arithmetic the reader can
     check against the terms beside it. Tabular figures keep the sum aligned. */ }
  .calc-result-cta__body {
    flex: 1 1 20rem;
    min-width: 0; }
  .calc-result-cta__sum {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.3rem 0.55rem;
    margin: 0 0 0.35rem;
    color: #9fbcdd;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.3;
    /* the sum is the punchline, so it outweighs its own operands */ }
    .calc-result-cta__sum b {
      color: #e8f1fc;
      font-size: 1.02rem;
      font-weight: 800;
      font-variant-numeric: tabular-nums; }
    .calc-result-cta__sum i {
      color: #7796bd;
      font-style: normal;
      font-weight: 700; }
    .calc-result-cta__sum strong {
      color: #cfe0f4;
      font-weight: 650; }
      .calc-result-cta__sum strong b {
        color: #fff;
        font-size: 1.22rem; }
  .calc-result-cta__text {
    margin: 0;
    color: #c8d8eb;
    font-size: 0.9rem;
    line-height: 1.5; }
  .calc-result-cta__primary {
    flex: 0 0 auto;
    padding: 0.7rem 1.35rem;
    font-weight: 750;
    white-space: nowrap; }

.calc-lead-cta {
  background: var(--hv-surface);
  padding-top: 0; }
  .calc-lead-cta__panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.5rem 2rem;
    padding: clamp(1.4rem, 3vw, 2rem);
    border-radius: 14px;
    background: linear-gradient(145deg, rgba(29, 111, 224, 0.18), transparent 42%), linear-gradient(150deg, #0d3a5f, #072742 72%);
    color: #dbe8fb;
    box-shadow: var(--pb-shadow-sm); }
  .calc-lead-cta__eyebrow {
    display: inline-block;
    margin-bottom: 0.55rem;
    color: #8fb3dd;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase; }
  .calc-lead-cta h2, .calc-lead-cta .h2 {
    margin: 0 0 0.65rem;
    color: #fff;
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.18; }
  .calc-lead-cta p {
    max-width: 48rem;
    margin: 0;
    color: #c8d8eb;
    line-height: 1.6; }
  .calc-lead-cta__actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 13rem; }
  .calc-lead-cta__primary {
    border: 0;
    color: var(--hv-navy);
    font-weight: 750;
    padding: 0.85rem 1.15rem;
    text-align: center; }
    .calc-lead-cta__primary:hover, .calc-lead-cta__primary:focus-visible {
      color: var(--hv-navy);
      background: #eaf1fb; }
  .calc-lead-cta__secondary {
    display: inline-flex;
    justify-content: center;
    color: #dbe8fb;
    font-weight: 700;
    text-decoration: none; }
    .calc-lead-cta__secondary:hover, .calc-lead-cta__secondary:focus-visible {
      color: #fff;
      text-decoration: underline; }

.rd .calc-seo {
  background: var(--hv-surface);
  border-top: 1px solid var(--hv-hairline); }
  .rd .calc-seo .rd-prose {
    max-width: 58rem; }
  .rd .calc-seo .calc-faq {
    max-width: 58rem;
    margin: 2.5rem auto 0; }
  .rd .calc-seo table {
    width: 100%;
    margin: 1.25rem 0 1.75rem;
    border-collapse: collapse;
    background: #fff;
    border: 1px solid var(--hv-hairline);
    border-radius: 10px;
    overflow: hidden;
    font-variant-numeric: tabular-nums; }
  .rd .calc-seo th,
  .rd .calc-seo td {
    padding: 0.75rem 0.9rem;
    border-bottom: 1px solid var(--hv-hairline);
    text-align: left; }
  .rd .calc-seo th {
    color: var(--hv-navy);
    background: #eaf1f9;
    font-weight: 700; }
  .rd .calc-seo th:last-child,
  .rd .calc-seo td:last-child {
    text-align: right; }
  .rd .calc-seo tr:last-child td {
    border-bottom: 0; }

@media (max-width: 575px) {
  .calc-lead-cta__panel {
    grid-template-columns: 1fr; }
  .calc-lead-cta__actions {
    min-width: 0;
    width: 100%; }
  /* Stacked block tiles spent 364px of the fold on three numbers. Same single
     column, but each tile is now a row - label left, figure right, annual under
     the figure - which keeps the long labels intact at ~half the height. */
  .calc-tiles {
    grid-template-columns: 1fr;
    gap: 0.5rem; }
  /* Grid, not flex: "Maksuametile (kõik maksud)" plus its figure overflow the
     259px inner width, and a flex line break dropped the figure to the left of
     the next row. Here the label wraps inside its own column and the figure
     always holds the top right, so all three tiles read the same way. */
  .calc-tile {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    column-gap: 0.6rem;
    padding: 0.55rem 0.85rem; }
  .calc-tile-label {
    margin-bottom: 0; }
  .calc-tile-value {
    font-size: 1.05rem; }
  .calc-tile-annual {
    grid-column: 1 / -1;
    text-align: right; }
  /* Three legend rows at 1rem gaps; the labels are too long to pair up, so the
     saving has to come from the leading rather than the column count. */
  .calc-bar-legend {
    gap: 0.35rem 1rem;
    font-size: 0.82rem; }
  /* Ten rows of breakdown at desktop leading is most of a screen on its own. */
  .calc-table td {
    padding: 0.28rem 0;
    font-size: 0.9rem; }
  .calc-breakdown__col + .calc-breakdown__col .calc-breakdown__title {
    margin-top: 1.1rem; }
  .rd .calc-seo th,
  .rd .calc-seo td {
    padding: 0.65rem 0.6rem;
    font-size: 0.9rem; } }

/* Mobile sticky CTA bar (partial components/sticky-cta.html) */
.pb-sticky-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1029;
  /* below the success modal (10000) */
  display: flex;
  gap: 0.5rem;
  padding: 0.6rem 0.75rem calc(0.6rem + env(safe-area-inset-bottom));
  /* liquid glass, matching the header — the page gradient shows through */
  background: rgba(8, 24, 44, 0.62);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 -8px 24px rgba(0, 6, 16, 0.45);
  transition: transform var(--pb-t-fast) var(--pb-ease);
  /* primary conversion action for the dark bar */ }
  .pb-sticky-cta .btn {
    flex: 1;
    min-width: 0;
    padding: 0.65rem 0.35rem;
    font-size: clamp(0.8rem, 3.25vw, 0.9rem);
    white-space: nowrap; }
  .pb-sticky-cta .btn.btn-primary,
  .pb-sticky-cta .btn.btn-primary:focus {
    background: var(--pb-cta-gloss) !important;
    border-color: rgba(127, 176, 242, 0.78) !important;
    color: #fff !important; }
  .pb-sticky-cta .btn.btn-primary:hover,
  .pb-sticky-cta .btn.btn-primary:active {
    background: var(--pb-cta-gloss-hover) !important;
    border-color: rgba(151, 194, 252, 0.9) !important;
    color: #fff !important; }
  .pb-sticky-cta .btn.btn-outline-primary {
    color: #e8f0fc !important;
    border-color: rgba(127, 176, 242, 0.55) !important;
    background: rgba(255, 255, 255, 0.05) !important; }
  .pb-sticky-cta .btn.btn-outline-primary:hover,
  .pb-sticky-cta .btn.btn-outline-primary:focus {
    background: rgba(29, 111, 224, 0.2) !important;
    border-color: #7fb0f2 !important;
    color: #fff !important; }

.pb-sticky-cta--hidden {
  transform: translateY(110%); }

/* Calculator: the bar starts off-screen and is revealed only after the visitor
   engages (see components/sticky-cta.html). Never shown on load, so it cannot
   read as an intrusive interstitial. */
.pb-sticky-cta--deferred {
  transform: translateY(110%);
  pointer-events: none; }
  .pb-sticky-cta--deferred.pb-sticky-cta--revealed {
    transform: translateY(0);
    pointer-events: auto; }

.pb-sticky-cta__text {
  flex: 1 1 auto;
  align-self: center;
  min-width: 0;
  color: #dbe8fb;
  font-size: clamp(0.75rem, 2.9vw, 0.88rem);
  font-weight: 650;
  line-height: 1.2; }

/* The bar's default `.btn { flex: 1 }` assumes a button-only bar. When copy is
   present (calculator), size the button to its label so it can't be clipped. */
.pb-sticky-cta--deferred .btn {
  flex: 0 1 auto;
  padding-left: 0.85rem;
  padding-right: 0.85rem; }

.pb-sticky-cta__close {
  flex: 0 0 auto;
  align-self: center;
  width: 1.9rem;
  height: 1.9rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: #cddbf0;
  font-size: 1.1rem;
  line-height: 1; }
  .pb-sticky-cta__close:hover, .pb-sticky-cta__close:focus-visible {
    background: rgba(255, 255, 255, 0.14);
    color: #fff; }

@media (prefers-reduced-motion: reduce) {
  .pb-sticky-cta {
    transition: none; } }

.pb-sticky-cta--footer-hidden {
  transform: translateY(110%);
  pointer-events: none; }

/* Contact form: inline submit feedback (#form-status) */
.form-status.is-error {
  color: #c0392b;
  font-weight: 600; }

/* Textarea: theme .form-control sets height: 3.5rem on all fields, and
   a former h-auto (height: auto !important) on the <textarea> blocked the
   browser's native resize handle. Override with sufficient specificity
   (no !important needed — type + class beats class alone). */
textarea.form-control {
  height: auto;
  min-height: 6rem;
  resize: vertical; }

/* Service page CTA: price / turnaround facts (rendered only when
   front matter has a `pricing:` block) */

/* Testimonials Grid */

/* Responsive adjustments */
@media (max-width: 768px) {
  /* Trim vertical whitespace on mobile: desktop section paddings (5rem/80px)
     stacked across 6 sections make the homepage very long on phones. */
  .seo-text p {
    text-align: center; }
  /* Trust sections responsive */ }

/* Animation for content reveal */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

/* ==========================================================================
   UI Refresh — design tokens, glass header, micro-interactions
   ========================================================================== */
/* --- 1. Design tokens ---------------------------------------------------- */
:root {
  /* brand */
  --pb-primary: #072742;
  --pb-primary-rgb: 7, 39, 66;
  --pb-accent-rgb: 29, 111, 224;
  --pb-primary-600: #0d3a5f;
  /* hover for navy elements */
  --pb-primary-100: #dbe6f1;
  /* badges, subtle fills */
  /* action accent: swap these two values for #00B67A / #009966 to try green CTA */
  --pb-accent: #1d6fe0;
  --pb-accent-hover: #1659b8;
  --pb-cta-gloss:
    linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.08) 43%, rgba(255, 255, 255, 0) 44%),
    linear-gradient(135deg, #3f8df5 0%, #1d6fe0 55%, #155cc2 100%);
  --pb-cta-gloss-hover:
    linear-gradient(180deg, rgba(255, 255, 255, 0.34) 0%, rgba(255, 255, 255, 0.1) 43%, rgba(255, 255, 255, 0) 44%),
    linear-gradient(135deg, #56a0ff 0%, #2b7fea 55%, #1a66d0 100%);
  /* surfaces & text */
  --pb-surface-tint: #f2f6fb;
  /* brand-tinted section background instead of grey */
  --pb-ink: #3d4b5c;
  /* body text, 9.2:1 on white */
  --pb-ink-soft: #66748a;
  /* captions, meta */
  /* elevation: navy-tinted shadows instead of pure black */
  --pb-shadow-sm: 0 1px 2px rgba(7, 39, 66, 0.06), 0 2px 8px rgba(7, 39, 66, 0.05);
  --pb-shadow-md: 0 4px 12px rgba(7, 39, 66, 0.08), 0 12px 28px rgba(7, 39, 66, 0.07);
  /* motion: single easing + two durations for the whole site */
  --pb-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --pb-t-fast: 200ms;
  /* hover */
  --pb-t-slow: 450ms;
  /* reveal */ }

/* tinted section backgrounds: kills the "grey bootstrap" look */
.bg-light {
  background-color: var(--pb-surface-tint) !important; }

/* --- 1b. Typography: Manrope headings + Inter body ------------------------ */
h1, h2, h3, h4, h5,
.h1, .h2, .h3, .h4, .h5 {
  font-family: "Manrope", sans-serif;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2; }

body {
  line-height: 1.7; }

/* keep digits steady in prices, stats and tables */
table, time {
  font-variant-numeric: tabular-nums; }

/* --- 2. Glassmorphism header --------------------------------------------- */
/* Solid fallback first, then glass where backdrop-filter is supported. */
header {
  background-color: rgba(255, 255, 255, 0.98);
  border-bottom: 1px solid rgba(7, 39, 66, 0.06);
  transition: background-color var(--pb-t-fast) var(--pb-ease), box-shadow var(--pb-t-fast) var(--pb-ease), padding var(--pb-t-fast) var(--pb-ease), transform var(--pb-t-fast) var(--pb-ease);
  /* keep the expanded mobile menu readable on the translucent bar */
  /* Speed up Bootstrap's collapse (default height transition is .35s ease →
     feels sluggish). Match the site's fast easing so the menu snaps open. */ }
  @supports (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px)) {
    header {
      background-color: rgba(255, 255, 255, 0.78);
      -webkit-backdrop-filter: blur(14px) saturate(160%);
      backdrop-filter: blur(14px) saturate(160%); } }
  header.header-sticky-top {
    box-shadow: var(--pb-shadow-sm); }
    @supports (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px)) {
      header.header-sticky-top {
        background-color: rgba(255, 255, 255, 0.86); } }
  header .navbar-collapse.show,
  header .navbar-collapse.collapsing {
    background-color: rgba(255, 255, 255, 0.97);
    border-radius: 0.75rem; }
  header .navbar-collapse.collapsing {
    transition: height var(--pb-t-fast) var(--pb-ease); }

/* ==========================================================================
   MOBILE BURGER MENU — distinct tappable blocks (issue #21 follow-up)
   Below lg the collapsed menu was a flat list of monotone text links that
   didn't read as selectable items. Give each a card-like surface with clear
   hover / current-page states and vertical rhythm, in the .rd navy/accent
   language. Scoped to <992px, so the inline desktop nav is untouched.
   ========================================================================== */
@media (max-width: 991.98px) {
  .header-nav .navbar-collapse.show,
  .header-nav .navbar-collapse.collapsing {
    padding: 0.55rem;
    margin-top: 0.5rem;
    box-shadow: var(--pb-shadow-md);
    max-height: calc(100dvh - 5.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    touch-action: pan-y; }
  .header-nav .navbar-nav {
    width: 100%;
    max-width: none;
    max-height: none;
    overflow: visible;
    padding-top: 0;
    gap: 0.35rem; }
  /* base item block */
  .header-nav .navbar-nav .nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.8rem 1rem;
    border-radius: 12px;
    font-weight: 600;
    color: var(--pb-primary);
    background: rgba(var(--pb-primary-rgb), 0.035);
    border: 1px solid transparent;
    transition: background-color var(--pb-t-fast) var(--pb-ease), color var(--pb-t-fast) var(--pb-ease), border-color var(--pb-t-fast) var(--pb-ease), transform var(--pb-t-fast) var(--pb-ease); }
  .header-nav .navbar-nav .nav-link:hover,
  .header-nav .navbar-nav .nav-link:focus-visible {
    background: rgba(var(--pb-accent-rgb), 0.08);
    color: var(--pb-accent); }
  .header-nav .navbar-nav .nav-link:active {
    transform: scale(0.99); }
  /* current page — accent-tinted with a hairline so it clearly stands out */
  .header-nav .navbar-nav .nav-item.active > .nav-link {
    background: rgba(var(--pb-accent-rgb), 0.1);
    color: var(--pb-accent);
    border-color: rgba(var(--pb-accent-rgb), 0.25); }
  /* Expandable affordance: the theme draws a static down-chevron via ::after,
     but at a higher specificity than a plain .dropdown-toggle selector and with
     no open-state feedback. Match its specificity (.nav-item.dropdown) and add
     a rotate so the caret flips up when the Services submenu is expanded. */
  .header-nav .navbar-nav .nav-item.dropdown .dropdown-toggle::after {
    margin-left: 0.5rem;
    flex: 0 0 auto;
    border-color: currentColor;
    transform: rotate(45deg);
    /* pointing down = collapsed */
    transition: transform var(--pb-t-fast) var(--pb-ease); }
  .header-nav .navbar-nav .nav-item.dropdown .dropdown-toggle[aria-expanded="true"]::after {
    transform: rotate(225deg);
    /* flips up = expanded */ }
  /* Services submenu → nested, lighter, indented sub-blocks.
     NB: don't set `display` on the base .dropdown-menu — Bootstrap toggles it
     none↔block via `.show`, so forcing display here would leave the submenu
     permanently expanded. Style the base look, apply the column layout only
     when Bootstrap has opened it (.show). */
  .header-nav .navbar-nav .dropdown-menu {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 100%;
    border: none;
    background: transparent;
    box-shadow: none;
    margin: 0.15rem 0 0.1rem;
    padding: 0 0 0 0.6rem; }
  .header-nav .navbar-nav .dropdown-menu.show {
    display: flex;
    flex-direction: column;
    gap: 0.25rem; }
  .header-nav .navbar-nav .dropdown-item {
    border-radius: 10px;
    padding: 0.6rem 0.85rem;
    font-size: 0.9rem;
    font-weight: 550;
    white-space: normal;
    text-align: left;
    color: var(--pb-ink);
    background: rgba(var(--pb-primary-rgb), 0.025); }
  .header-nav .navbar-nav .dropdown-item:hover,
  .header-nav .navbar-nav .dropdown-item:focus-visible {
    background: rgba(var(--pb-accent-rgb), 0.08);
    color: var(--pb-accent); }
  /* featured calculator: a full highlighted block, not a stray pill */
  .header-nav .navbar-nav .nav-link-featured {
    justify-content: flex-start;
    gap: 0.55rem;
    padding: 0.8rem 1rem !important;
    background: rgba(var(--pb-accent-rgb), 0.09);
    border-color: rgba(var(--pb-accent-rgb), 0.4) !important; }
  /* menu footer: contact CTA, split off with a hairline */
  .header-nav .navbar-right {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.6rem;
    padding-top: 0.7rem;
    border-top: 1px solid rgba(var(--pb-primary-rgb), 0.08); }
  .header-nav .navbar-right .btn {
    width: 100%; } }

/* --- 3. Buttons ----------------------------------------------------------- */
.btn {
  transition: background-color var(--pb-t-fast) var(--pb-ease), border-color var(--pb-t-fast) var(--pb-ease), color var(--pb-t-fast) var(--pb-ease), box-shadow var(--pb-t-fast) var(--pb-ease), transform var(--pb-t-fast) var(--pb-ease);
  /* disable the theme's "fill from bottom" overlay — too busy for the new look */
  /* keyboard focus: theme kills box-shadow, so use outline */ }
  .btn::after {
    display: none; }
  .btn:hover {
    transform: translateY(-2px); }
  .btn:active {
    transform: translateY(0);
    transition-duration: 80ms; }
  .btn:focus-visible {
    outline: 3px solid rgba(29, 111, 224, 0.4);
    outline-offset: 2px; }

.btn.btn-primary {
  background: var(--pb-cta-gloss) !important;
  border-color: rgba(127, 176, 242, 0.78) !important;
  color: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.38), 0 9px 24px rgba(29, 111, 224, 0.38), 0 1px 2px rgba(4, 20, 40, 0.2); }
  .btn.btn-primary:hover, .btn.btn-primary:active, .btn.btn-primary:focus {
    background: var(--pb-cta-gloss-hover) !important;
    border-color: rgba(151, 194, 252, 0.9) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 12px 30px rgba(29, 111, 224, 0.5), 0 1px 2px rgba(4, 20, 40, 0.2); }

.btn.btn-outline-primary {
  color: var(--pb-accent);
  border-color: var(--pb-accent); }
  .btn.btn-outline-primary::after {
    display: none; }
  .btn.btn-outline-primary:hover, .btn.btn-outline-primary:active, .btn.btn-outline-primary:focus {
    background-color: var(--pb-accent) !important;
    border-color: var(--pb-accent) !important;
    box-shadow: 0 8px 20px rgba(29, 111, 224, 0.28); }

/* --- A11y: visible keyboard focus ring (P0.3) ----------------------------
   The theme strips every focus outline (_common.scss `:focus{outline:0}`,
   _typography.scss `a:focus,button:focus{outline:0}`), so keyboard users had
   no visible focus. Restore a ring for :focus-visible only — mouse/touch focus
   stays ringless (theme default still applies to plain :focus). Element-
   qualified selectors match the theme's `a:focus`/`button:focus` specificity
   (0,1,1); custom.scss is imported last, so it wins on the tie. Buttons, the
   lang switcher and calculator controls define their own (higher-specificity)
   :focus-visible above and keep it. */
:focus-visible {
  outline: 2px solid var(--pb-accent);
  outline-offset: 2px; }

a:focus-visible,
button:focus-visible,
.nav-link:focus-visible,
.dropdown-item:focus-visible,
.footer a:focus-visible {
  outline: 2px solid var(--pb-accent);
  outline-offset: 2px;
  border-radius: 3px; }

/* Footer link contrast: the theme's default link colour
   (lighten(#000, 53%) ≈ #888 → ~3.5:1 on white) fails WCAG AA. Use readable
   ink (#3d4b5c, 9.2:1) with an accent + underline on hover. */
.footer a {
  color: var(--pb-ink); }

.footer a:hover {
  color: var(--pb-accent);
  text-decoration: underline; }

/* Content link contrast: the theme's `.content a { color: #888 }` (~3.5:1
   on white) fails WCAG AA. Use readable ink (#3d4b5c, 9.2:1) with
   accent + underline on hover. Covers blog posts, terms & conditions,
   and any regular page with `.content` wrapper. */

/* ============================================================
   Footer — redesign (.rd). Solid navy footer that replaces the theme's
   white, bulky footer + decorative CTA (SVG waves / .has-circle / data-aos).
   Rendered on every page OUTSIDE the .rd page wrapper → styles on global
   --pb-* tokens. Markup: layouts/partials/essentials/footer.html.
   ============================================================ */
.rd-cta-final {
  background: linear-gradient(150deg, var(--pb-primary-600, #0d3a5f), var(--pb-primary, #072742));
  color: #eaf1fb;
  text-align: center;
  padding: clamp(2.5rem, 6vw, 4rem) 0; }

.rd-cta-final h2, .rd-cta-final .h2 {
  color: #fff;
  margin: 0 0 0.75rem; }

.rd-cta-final p {
  color: #b9c7da;
  margin: 0 auto 1.5rem;
  max-width: 44rem; }

.rd-footer {
  background: radial-gradient(80% 140% at 0% 0%, rgba(29, 111, 224, 0.16), transparent 55%), linear-gradient(160deg, var(--pb-primary-600, #0d3a5f), var(--pb-primary, #072742) 65%);
  color: #cdd9e8;
  margin-top: 4rem;
  padding: clamp(2.5rem, 5vw, 3.5rem) 0 0; }

.rd-footer .rd-footer-top {
  display: grid;
  grid-template-columns: 1.9fr 1fr 1fr;
  gap: 2.5rem 3rem;
  padding-bottom: 2.5rem; }

.rd-footer-logo {
  display: inline-block;
  margin-bottom: 1.1rem;
  color: #fff;
  font-family: "Manrope", sans-serif;
  font-weight: 800;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
  text-decoration: none; }

.rd-footer-logo:hover {
  color: #fff; }

.rd-footer-info {
  margin: 0;
  color: #9fb2c8;
  font-size: 0.95rem;
  line-height: 1.7;
  max-width: 34rem; }

.rd-footer-heading {
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 1.1rem; }

.rd-footer-nav ul {
  margin: 0;
  display: grid;
  gap: 0.6rem; }

.rd-footer-nav a {
  color: #cdd9e8;
  text-decoration: none;
  font-size: 0.96rem;
  transition: color var(--pb-t-fast) var(--pb-ease); }

.rd-footer-nav a:hover {
  color: #fff;
  text-decoration: underline; }

.rd-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 1.25rem 0 1.5rem; }

.rd-footer-copy {
  margin: 0;
  color: #8698ad;
  font-size: 0.88rem; }

.rd-footer-copy a {
  color: #cdd9e8;
  text-decoration: none; }

.rd-footer-copy a:hover {
  color: #fff;
  text-decoration: underline; }

.rd-footer-copy p {
  display: inline;
  margin: 0; }

@media (max-width: 767px) {
  .rd-footer .rd-footer-top {
    grid-template-columns: 1fr;
    gap: 2rem; } }

/* About page: the theme's generous vertical rhythm (.section-sm 4.3rem,
   .section-title margin 3.12rem, .title margin 2.5rem) leaves too much air on
   desktop. Tighten it — scoped to .about-page so other pages keep their rhythm. */

/* --- Service page FAQ (native <details>, no JS; feeds FAQPage schema) ------ */

/* --- 4. Cards: services, features, pricing, CTA --------------------------- */

/* harmonize the existing carousel cards with the new elevation system */

/* --- 4b. Scroll reveal (IntersectionObserver, replaces AOS) ----------------
   JS (theme script.js) adds .aos-init to [data-aos] elements, then .aos-animate
   when they enter the viewport. Without JS nothing is ever hidden. */
.aos-init {
  opacity: 0;
  transition: opacity var(--pb-t-slow) var(--pb-ease), transform var(--pb-t-slow) var(--pb-ease); }

.aos-init.aos-animate {
  opacity: 1;
  transform: none; }

/* --- 5. Reduced motion ----------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .btn,
  header {
    transition: none !important;
    animation: none !important; }
  .btn:hover {
    transform: none; }
  .aos-init {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important; } }

/* ==========================================================================
   Contact page — success modal (extracted from contact.html inline \3c style>)
   ========================================================================== */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(1, 12, 25, 0.72);
  backdrop-filter: blur(5px);
  z-index: 100000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s var(--pb-ease); }
  .modal.show {
    opacity: 1;
    pointer-events: auto; }

.modal-content {
  background: #0c2e4d;
  color: #d6e3f3;
  border: 1px solid rgba(255, 255, 255, 0.14);
  padding: 2rem;
  border-radius: 16px;
  max-width: 90%;
  width: 400px;
  text-align: center;
  box-shadow: 0 24px 70px rgba(0, 8, 20, 0.62);
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.4s var(--pb-ease); }

.modal-content h3, .modal-content .h3 {
  color: #fff; }

.modal-content p {
  color: #cddbf0; }

.modal.show .modal-content {
  transform: translateY(0);
  opacity: 1; }

.hidden {
  display: none; }

/* Contact success modal + any future .modal user: honour reduced motion. */
@media (prefers-reduced-motion: reduce) {
  .modal,
  .modal-content {
    transition: none; } }

/* ==========================================================================
   Service page — extracted from services/single.html inline \3c style> (P0.1)
   ========================================================================== */

/* Utility classes (service page) */

/* Service page responsive */
@media (max-width: 767.98px) {
  .row {
    gap: 1rem 0; } }

/* ==========================================================================
   Cookie consent banner (extracted from cookie-consent.html inline \3c style>)
   ========================================================================== */
.cookie-box {
  position: fixed;
  left: 2rem;
  bottom: 2rem;
  z-index: 9999;
  padding: 1.5rem;
  color: #d6e3f3;
  background: rgba(8, 28, 50, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.14);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
  max-width: calc(100% - 4rem);
  width: 25rem;
  box-shadow: 0 22px 60px rgba(0, 8, 20, 0.55);
  border-radius: 16px; }

.cookie-box-hide {
  display: none; }

.cookie-box-button {
  display: block;
  margin-top: 1rem; }

.cookie-box .btn.btn-outline-primary {
  color: #e8f0fc;
  border-color: rgba(127, 176, 242, 0.65); }

.cookie-box .btn.btn-outline-primary:hover,
.cookie-box .btn.btn-outline-primary:focus-visible {
  color: #fff;
  background: var(--pb-accent) !important;
  border-color: var(--pb-accent) !important; }

.dark .cookie-box {
  background-color: #222; }

@media (max-width: 991.98px) {
  .cookie-box {
    left: 0.75rem;
    right: 0.75rem;
    bottom: 0.75rem;
    width: auto;
    max-width: none;
    padding: 1rem; }
  .cookie-box-button {
    width: 100%; }
  body:has(.cookie-box:not(.cookie-box-hide)) .pb-sticky-cta {
    transform: translateY(115%);
    pointer-events: none; } }

/* ==========================================================================
   UI refactor — hero, navigation & mobile layering (2026-07-03)
   ========================================================================== */
/* Hero subtitle under the H1 — quiet, readable, constrained line length. */

/* Desktop: the theme clips the hero (.banner { overflow: hidden }), slicing the
   illustration off flat at the grey panel edge. Let it breathe past the panel.
   The decorative circles/waves live inside .has-circle (inset within the
   viewport) so lifting the clip doesn't introduce horizontal scroll. */

/* Mobile: more vertical breathing room in the hero so the copy doesn't collide
   with the decorative background dots (the CTA now lives in the sticky bar). */

/* Burger menu open: dim + blur the page behind the menu, and hide the sticky
   CTA so the two mobile layers never overlap. Header (.header-nav, z-index
   99999) stays above this backdrop; the backdrop sits above page content.

   The backdrop is a permanent (opacity:0) body::after so it can FADE. It's
   triggered on `.collapsing` too, not just `.show` — Bootstrap only adds
   `.show` after the open animation finishes, which made the dim appear with a
   visible lag. `.collapsing` is present from the first frame of opening. */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 1020;
  background: rgba(7, 39, 66, 0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--pb-t-fast) var(--pb-ease), visibility var(--pb-t-fast) var(--pb-ease); }

body:has(.navbar-collapse.show)::after,
body:has(.navbar-collapse.collapsing)::after {
  opacity: 1;
  visibility: visible; }

/* Lock background scroll while the burger menu is open — previously the page
   scrolled "through" the open menu on touch (issue #21). Same :has() trigger
   as the dim above, so lock + dim stay perfectly in sync with no JS. */
body:has(.navbar-collapse.show),
body:has(.navbar-collapse.collapsing) {
  overflow: hidden;
  overscroll-behavior: contain; }

body:has(.navbar-collapse.show) .pb-sticky-cta,
body:has(.navbar-collapse.collapsing) .pb-sticky-cta {
  display: none; }

/* The hero CTA duplicates the persistent mobile consultation bar below the lg
   breakpoint, so keep one clear action on screen. Uses
   .hv-hero .hv-cta-row (0,3,0) to beat the base .rd .hv-cta-row{display:flex}
   (0,2,0), which is defined LATER in source (equal specificity would lose). */
@media (max-width: 991.98px) {
  .rd .hv-hero .hv-cta-row {
    display: none; } }

/* ==========================================================================
   HOMEPAGE V2 — redesign overhaul (branch: redesign/homepage-overhaul)
   Characterless, product-first FinTech direction. Scoped to .rd (redesign),
   the shared wrapper for ALL redesigned pages (home + inner). Compare/rollback
   stays clean against main.
   ========================================================================== */
.rd {
  --hv-navy: #072742;
  --hv-navy-2: #0c2e4d;
  --hv-accent: #1d6fe0;
  /* ALL-NAVY dark theme: text is light-on-navy, "surface" is a lighter navy
     band, "card" is dark glass, hairlines are white-alpha. Components that
     hard-code #fff / navy text are overridden in the ALL-NAVY block near the
     end of this .rd rule; the white .pbd-* doc-cards restore dark tokens locally. */
  --hv-ink: #d6e3f3;
  --hv-muted: #9fb8d6;
  --hv-hairline: rgba(255, 255, 255, 0.12);
  --hv-surface: #0c2e4d;
  --hv-card: rgba(255, 255, 255, 0.05);
  --hv-radius: 16px;
  --hv-gap: clamp(1.5rem, 4vw, 2.5rem);
  background: transparent;
  /* the continuous page gradient lives on <body> */
  color: var(--hv-ink);
  overflow-x: clip;
  /* contain any decorative bleed without breaking sticky */
  /* --- shared type --- */
  /* ---------------- HERO ---------------- */
  /* eyebrow was --hv-accent (#1d6fe0) = blue-on-navy, poor contrast. Lighter
     blue reads clearly on the dark hero. */
  /* hero product visual */
  /* Hero balance card — a ledger, not a stat tile. Two columns that resolve:
     what the client hands over on the left, what we file on the right, and the
     total line carries the bottom line the way a balance sheet does. The card is
     wider than the old one because a ledger needs its two columns to read as
     columns. */
  /* One grid so the two sides align row for row - that alignment is the whole
     point of a balance, and separate lists would drift as soon as one wrapped. */
  /* Both markers lead their row so the two sides scan as a pair. The left is
     muted and light, the right solid and ticked - the contrast is the argument,
     so the type does not have to spell it out. */
  /* ---------------- TRUST STRIP ---------------- */
  /* ---------------- SERVICES ---------------- */
  /* white ground (no muddy grey band); cards get depth from a soft resting
     shadow instead of a background tint, and a hairline splits it from logos. */
  /* ---------------- CALCULATOR TEASER ---------------- */
  /* ---------------- HOW WE WORK TEASER ---------------- */
  /* ---------------- WHY US / STATS ---------------- */
  /* the ledger "bottom line": a navy band that punctuates the white rhythm and
     lets the figures read as a closing total. */
  /* Capped and centred rather than 1fr: the band now carries two claims, and
     auto-fit would have stretched them into two half-width slabs. */
  /* ---------------- TESTIMONIALS ---------------- */
  /* ---------------- SEO TEXT (quiet closing band, bottom) ----------------
     A hairline separates it from the testimonials above so it reads as an
     intentional closing note, not floating text. The source copy bolds random
     keywords (SEO); soften that to a subtle ink shade instead of heavy bold so
     it reads as calm prose. (Content-level de-stuffing is a separate task.) */
  /* ---------------- RESPONSIVE ---------------- */ }
  .rd .container,
  .rd .container-xxl {
    position: relative;
    z-index: 1; }
  .rd section {
    padding-block: clamp(3rem, 6vw, 5rem); }
  .rd .hv-eyebrow {
    display: inline-block;
    max-width: 46ch;
    text-wrap: balance;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--hv-accent);
    margin-bottom: 1rem; }
  .rd .hv-h1 {
    font-size: clamp(2.2rem, 5.2vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: -0.025em;
    font-weight: 800;
    text-wrap: balance;
    margin: 0 0 1.25rem;
    /* Long Estonian compounds (raamatupidamine) were breaking mid-syllable
       via the global `hyphens: auto`. Disable soft-hyphenation on the H1 so a
       word wraps whole; overflow-wrap still breaks it only as a last resort. */
    hyphens: manual; }
  .rd .hv-h2 {
    font-size: clamp(1.7rem, 3.6vw, 2.35rem);
    line-height: 1.15;
    letter-spacing: -0.02em;
    font-weight: 750;
    text-wrap: balance;
    margin: 0; }
  .rd .hv-h2-light {
    color: #fff; }
  .rd .hv-section-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: clamp(2rem, 4vw, 3rem);
    flex-wrap: wrap; }
  .rd .hv-section-head--center {
    flex-direction: column;
    align-items: center;
    text-align: center; }
  .rd .hv-section-sub {
    margin: 0.85rem 0 0;
    color: var(--hv-muted);
    font-size: 1.05rem;
    max-width: 46rem; }
  .rd .hv-section-link {
    font-weight: 650;
    color: var(--hv-accent);
    text-decoration: none;
    white-space: nowrap; }
    .rd .hv-section-link span {
      transition: transform var(--pb-t-fast, 0.18s) ease;
      display: inline-block; }
    .rd .hv-section-link:hover span {
      transform: translateX(4px); }
  .rd .hv-hero {
    background: radial-gradient(120% 120% at 90% -20%, rgba(29, 111, 224, 0.22), transparent 55%), linear-gradient(165deg, var(--hv-navy-2), var(--hv-navy) 60%);
    color: #eaf1fb;
    border-radius: 0 0 28px 28px;
    overflow: hidden; }
  .rd .hv-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
    gap: var(--hv-gap); }
  .rd .hv-hero .hv-h1 {
    color: #fff; }
  .rd .hv-hero .hv-eyebrow {
    color: #7fb0f2; }
  .rd .hv-lede {
    font-size: clamp(1.05rem, 2vw, 1.28rem);
    line-height: 1.55;
    color: #b9cae0;
    max-width: 34ch;
    margin: 0 0 2rem; }
  .rd .hv-cta-row--center {
    justify-content: center;
    margin-bottom: 0; }
  .rd .hv-cta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-bottom: 2rem;
    /* Keep this higher-specificity rule so the theme cannot flatten the shared
       glossy conversion treatment inside CTA rows. */ }
    .rd .hv-cta-row .btn {
      padding: 0.85rem 1.75rem;
      font-weight: 700; }
    .rd .hv-cta-row .btn-primary {
      background: var(--pb-cta-gloss) !important;
      border-color: rgba(127, 176, 242, 0.78) !important;
      color: #fff !important;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.38), 0 9px 24px rgba(29, 111, 224, 0.38), 0 1px 2px rgba(4, 20, 40, 0.2); }
      .rd .hv-cta-row .btn-primary:hover, .rd .hv-cta-row .btn-primary:focus, .rd .hv-cta-row .btn-primary:active {
        background: var(--pb-cta-gloss-hover) !important;
        border-color: rgba(151, 194, 252, 0.9) !important;
        color: #fff !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42), 0 12px 30px rgba(29, 111, 224, 0.5), 0 1px 2px rgba(4, 20, 40, 0.2);
        transform: translateY(-1px); }
    .rd .hv-cta-row .btn-outline-primary {
      color: #dbe8fb;
      border-color: rgba(127, 176, 242, 0.5); }
      .rd .hv-cta-row .btn-outline-primary:hover {
        background: rgba(127, 176, 242, 0.12);
        border-color: #7fb0f2;
        color: #fff; }
  .rd .hv-trustline {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem 1.4rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12); }
  .rd .hv-trust-chip {
    font-size: 0.85rem;
    color: #9fb4cf; }
    .rd .hv-trust-chip b {
      color: #fff;
      font-weight: 700; }
  .rd .hv-hero-visual {
    position: relative;
    min-height: 320px;
    display: flex;
    align-items: center;
    justify-content: center; }
  .rd .hv-orb {
    position: absolute;
    width: 78%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, rgba(127, 176, 242, 0.55), rgba(29, 111, 224, 0.25) 45%, transparent 70%);
    filter: blur(6px);
    z-index: 0; }
  .rd .hv-card {
    position: relative;
    z-index: 1;
    width: 88%;
    max-width: 340px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 18px;
    padding: 1.4rem 1.5rem 1.6rem;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 30px 60px -25px rgba(0, 0, 0, 0.55); }
  .rd .hv-bal {
    margin: 0;
    max-width: 400px;
    width: 94%;
    padding: 1.25rem 1.4rem 1.35rem; }
  .rd .hv-bal__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding-bottom: 0.7rem;
    margin-bottom: 0.9rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.18); }
  .rd .hv-bal__title {
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.01em; }
  .rd .hv-bal__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.4rem;
    row-gap: 0.45rem;
    align-items: baseline;
    position: relative;
    /* A ledger's two sides are independent lists that meet at a total, not row
       pairs - without the rule, adjacent rows read as "this becomes that", which
       is only true for the first two. */ }
    .rd .hv-bal__cols::after {
      content: "";
      position: absolute;
      top: 0.1rem;
      bottom: 0.1rem;
      left: calc(50% - 0.7rem);
      width: 1px;
      background: rgba(255, 255, 255, 0.14); }
  .rd .hv-bal__colhead {
    color: #7f9dc2;
    font-size: 0.64rem;
    font-weight: 750;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    padding-bottom: 0.15rem; }
  .rd .hv-bal__in,
  .rd .hv-bal__out {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    font-size: 0.78rem;
    line-height: 1.35; }
  .rd .hv-bal__in {
    color: #8aa6c6; }
    .rd .hv-bal__in::before {
      content: "×";
      color: #6f8cb0;
      font-size: 0.82rem;
      line-height: 1;
      flex: none; }
  .rd .hv-bal__out {
    color: #fff;
    font-weight: 700; }
    .rd .hv-bal__out i {
      order: -1;
      font-style: normal;
      color: #4fd08a;
      font-size: 0.82rem;
      line-height: 1;
      flex: none; }
  .rd .hv-bal__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(255, 255, 255, 0.18); }
    .rd .hv-bal__total span {
      color: #b9cfe8;
      font-size: 0.76rem;
      line-height: 1.3; }
    .rd .hv-bal__total b {
      color: #fff;
      font-size: 2.1rem;
      font-weight: 800;
      letter-spacing: -0.035em;
      line-height: 1;
      font-variant-numeric: tabular-nums; }
  .rd .hv-chip {
    position: absolute;
    z-index: 2;
    background: #fff;
    color: var(--hv-navy);
    font-weight: 700;
    font-size: 0.82rem;
    padding: 0.5rem 0.85rem;
    border-radius: 999px;
    box-shadow: 0 12px 30px -10px rgba(0, 0, 0, 0.4); }
  .rd .hv-chip-1 {
    top: 12%;
    right: 4%; }
  .rd .hv-chip-2 {
    bottom: 14%;
    left: 2%; }
  .rd .hv-services {
    background: #fff;
    border-top: 1px solid var(--hv-hairline); }
  .rd .hv-service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
    gap: 1.1rem; }
  .rd .hv-service {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    background: #fff;
    border: 1px solid var(--hv-hairline);
    border-radius: var(--hv-radius);
    padding: 1.6rem 1.5rem 1.7rem;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 1px 2px rgba(7, 39, 66, 0.04), 0 10px 30px -18px rgba(7, 39, 66, 0.18);
    transition: transform var(--pb-t-fast, 0.18s) var(--pb-ease, ease), box-shadow var(--pb-t-fast, 0.18s) var(--pb-ease, ease), border-color var(--pb-t-fast, 0.18s) var(--pb-ease, ease); }
  .rd .hv-service:hover {
    transform: translateY(-4px);
    border-color: rgba(29, 111, 224, 0.35);
    box-shadow: 0 22px 45px -25px rgba(7, 39, 66, 0.4); }
  .rd .hv-service-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(29, 111, 224, 0.1);
    color: var(--hv-accent);
    font-size: 1.5rem; }
  .rd .hv-service-title {
    font-size: 1.12rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0.2rem 0 0; }
  .rd .hv-service-text {
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--hv-muted);
    margin: 0;
    flex: 1; }
  .rd .hv-service-go {
    color: var(--hv-accent);
    font-weight: 700;
    align-self: flex-start;
    transition: transform var(--pb-t-fast, 0.18s) ease; }
  .rd .hv-service:hover .hv-service-go {
    transform: translateX(4px); }
  .rd .hv-why {
    background: radial-gradient(90% 120% at 15% 0%, rgba(29, 111, 224, 0.22), transparent 55%), linear-gradient(150deg, var(--hv-navy-2), var(--hv-navy));
    color: #eaf1fb;
    /* A heading and two claims do not need a full section's padding; at the
       default it read as a mostly empty band. */
    padding-block: clamp(2.5rem, 5vw, 3.5rem); }
    .rd .hv-why .hv-section-head {
      margin-bottom: clamp(1.5rem, 3vw, 2rem); }
  .rd .hv-why .hv-h2 {
    color: #fff; }
  .rd .hv-why .hv-section-sub {
    color: #b9cae0; }
  .rd .hv-stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 260px));
    justify-content: center;
    gap: 1rem;
    /* Media query rather than min(260px, 100%): libsass rejects min() mixing
       px and % (see CLAUDE.md). Full width reads better than a capped tile
       floating between two margins. */ }
    @media (max-width: 575.98px) {
      .rd .hv-stat-grid {
        grid-template-columns: 1fr; } }
  .rd .hv-stat {
    text-align: center;
    padding: 1.75rem 1rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--hv-radius); }
  .rd .hv-stat-value {
    font-size: clamp(2.2rem, 5vw, 3rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    color: #fff;
    font-variant-numeric: tabular-nums;
    line-height: 1; }
  .rd .hv-stat-label {
    margin-top: 0.6rem;
    font-size: 0.92rem;
    color: #9fb8d6; }
  .rd .hv-tst {
    background: #fff;
    border-top: 1px solid var(--hv-hairline); }
  .rd .hv-tst-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.1rem; }
  .rd .hv-tst-card {
    position: relative;
    margin: 0;
    background: #fff;
    border: 1px solid var(--hv-hairline);
    border-radius: var(--hv-radius);
    padding: 2rem 1.6rem 1.6rem;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    box-shadow: 0 1px 2px rgba(7, 39, 66, 0.04), 0 10px 30px -18px rgba(7, 39, 66, 0.18); }
  .rd .hv-quote-mark {
    position: absolute;
    top: 0.6rem;
    right: 1.2rem;
    font-size: 3.5rem;
    line-height: 1;
    color: rgba(29, 111, 224, 0.18);
    font-family: Georgia, "Times New Roman", serif; }
  .rd .hv-tst-quote {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.6;
    color: var(--hv-ink); }
  .rd .hv-tst-who {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin-top: auto; }
  .rd .hv-tst-role {
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--hv-accent);
    font-weight: 600; }
  .rd .hv-seo {
    padding-block: clamp(2.25rem, 5vw, 3.5rem);
    border-top: 1px solid var(--hv-hairline); }
  .rd .hv-seo-inner {
    max-width: 58ch;
    margin: 0 auto;
    text-align: center;
    color: var(--hv-muted);
    font-size: 0.92rem;
    line-height: 1.7;
    /* source copy bolds random SEO keywords → neutralize visually (keeps the
       <strong> in the HTML, but reads as calm uniform prose, not highlighted). */ }
    .rd .hv-seo-inner p {
      margin-bottom: 0.9rem; }
      .rd .hv-seo-inner p:last-child {
        margin-bottom: 0; }
    .rd .hv-seo-inner strong {
      color: inherit;
      font-weight: inherit; }
  @media (max-width: 900px) {
    .rd .hv-hero-grid {
      grid-template-columns: 1fr; }
    .rd .hv-hero-visual {
      min-height: 240px; } }
  @media (min-width: 1200px) {
    .rd .hv-service-grid {
      grid-template-columns: repeat(4, 1fr); } }
  @media (max-width: 575px) {
    .rd {
      /* Mobile hero declutter: CTAs are hidden (sticky bar covers them), so
       tighten copy, keep the product card fully visible above the sticky bar,
       drop the floating chips (they overlapped the card/edges), and stack the
       trust markers into a clean column instead of a ragged wrap. */
      /* More air below the eyebrow, and a smaller/fluid H1 so long words wrap
       cleanly instead of forming a dense "wall of text" (issue #21). */ }
      .rd .hv-hero {
        padding-bottom: 1.75rem; }
      .rd .hv-eyebrow {
        font-size: 0.7rem;
        letter-spacing: 0.1em;
        margin-bottom: 0.9rem; }
      .rd .hv-h1 {
        font-size: clamp(1.85rem, 7.5vw, 2.4rem);
        line-height: 1.14;
        margin-bottom: 1rem; }
      .rd .hv-lede {
        margin-bottom: 1.4rem; }
      .rd .hv-trustline {
        flex-direction: column;
        gap: 0.45rem;
        padding-top: 1.1rem; }
      .rd .hv-hero-visual {
        min-height: 0;
        margin-top: 0.5rem; }
      .rd .hv-card {
        width: 100%;
        max-width: 320px; }
      .rd .hv-chip {
        display: none; }
      .rd .hv-section-head:not(.hv-section-head--center) {
        flex-direction: column;
        align-items: flex-start; } }
  @media (prefers-reduced-motion: reduce) {
    .rd .hv-service, .rd .hv-service-go, .rd .hv-section-link span {
      transition: none; } }
/* ==========================================================================
   REDESIGN — inner-page foundation (About, Services, How-it-works, Blog,
   Terms, Contact, 404). Reuses the .rd design tokens/components above.
   ========================================================================== */
.rd {
  /* --- page hero panel --- */
  /* --- breadcrumbs --- */
  /* --- long-form prose (blog post, terms, about copy) --- */
  /* --- process steps (how-it-works) --- */
  /* --- generic navy CTA / feature panel --- */
  /* --- photo-ready placeholder (About team/office — swap for real duotone photos) --- */
  /* --- narrow content wrapper --- */
  /* --- generic reusable blocks (About, Services, How-it-works) --- */
  /* accent icon tile inside .rd-card (about: why-us / values) */
  /* split: prose + photo aside */
  /* team */
  /* office */
  /* generic list styling inside cards / prose bodies */
  /* how-it-works steps */
  /* author profile: role + experience facts (E-E-A-T payload) */
  /* homepage pricing band (sits above services; tiers pulled from /pricing/) */
  /* ---------------- pricing tiers ---------------- */
  /* the featured tier is the one we want chosen — lift it, don't shout */
  /* Scoped to .rd-tier to outrank .rd-check-list, which carries margin:0 at equal
     specificity ~100 lines further down and was winning on source order. The
     computed gap was 0: the CTA's `margin-top: auto` only opens up when the card
     has slack, and in a grid of equal-height cards the tallest one has none - so
     its button sat flush against the last bullet, tighter than the 11px between
     the bullets themselves. */
  /* 2.25rem, not the old 1.5rem: this has to be the largest gap in the card so
     the action reads as the card's footer. The next biggest is the 1.2rem above
     the list, and the bullets sit 0.7rem apart - at 1.5rem the button still
     grouped with the last bullet rather than standing apart from it. */
  /* push every CTA to the same baseline regardless of list length */
  /* ---------------- SERVICES ---------------- */
  /* left-aligned hero variant (service single) */
  /* service content is inside .rd-prose but left-aligned, not narrow-centered */
  /* FAQ */
  /* CTA sidebar card */
  /* ---------------- BLOG ---------------- */
  /* ---------------- CONTACT ---------------- */
  /* ---------------- TERMS / 404 ---------------- */
  /* ======================================================================
     HOW-IT-WORKS — cadence timeline + product-UI step artifacts
     The five steps run down a spine whose labels encode the real rhythm of
     an accounting year; each pairs its copy with a polished doc-card that
     echoes the hero balance card (partials/step-doc.html).
     ====================================================================== */
  /* white ground; a hairline (not a grey fill) separates it from the section above */
  /* --- the spine --- */
  /* --- rail: node + connecting line --- */
  /* --- copy column --- */
  /* --- artifact frame (echoes the hero balance card) --- */
  /* boxed variant (homepage): the whole timeline lives in one navy gradient
     "showcase" panel — the white doc-cards float directly on it, so their own
     frame gradient is dropped to avoid a box-in-a-box. */
  /* ---- product-UI step artifacts (.pbd-*) ---- */
  /* --- closing CTA --- */
  /* ======================================================================
     ALL-NAVY THEME (user-chosen July 2026) — full dark treatment.
     Base tokens above are already light-on-navy; here we override every
     component that hard-codes a white ground or navy text. The white .pbd-*
     doc-cards intentionally STAY white (they pop on navy) — dark tokens are
     restored on their roots so their inner text/rules render correctly.
     ====================================================================== */
  /* keep product-UI doc-cards light inside. NB: set an explicit `color`, not
     just the token — rows like `.pbd-row .v` have no color of their own and
     would otherwise inherit the light dark-theme ink → invisible on the white
     card. */
  /* one continuous page gradient (on <body>): every section is transparent,
     no banding, no seams. Surfaces (cards, panels, doc-card frames) carry the
     structure instead. */
  /* hero/inner-hero keep only their accent glow so they melt into the gradient top */
  /* content cards -> dark glass */
  /* featured tier keeps its accent edge on navy, where a white card would glare */
  /* headings default to light on navy (theme sets a dark heading colour that
     the wrapper's inherited colour can't beat, so target them explicitly) */
  /* accent bits read brighter on navy */
  /* C2: --hv-accent #1d6fe0 as TEXT on navy fails WCAG AA (2.6-3.2:1).
     Links and small labels switch to the eyebrow blue #7fb0f2 (6.8:1);
     borders/icon chips keep the accent (3.19:1, passes 3:1 UI). */
  /* timeline nodes: dark disc + accent ring (was white) */
  /* CTA panel lifts off the ground with a hairline */
  /* client logos: invert dark marks to light on navy */ }
  .rd .rd-hero {
    background: radial-gradient(120% 130% at 88% -20%, rgba(29, 111, 224, 0.22), transparent 55%), linear-gradient(165deg, var(--hv-navy-2), var(--hv-navy) 62%);
    color: #eaf1fb;
    border-radius: 0 0 28px 28px;
    text-align: center;
    padding-block: clamp(2.5rem, 5vw, 4rem) clamp(2.25rem, 4vw, 3rem); }
  .rd .rd-hero .hv-eyebrow {
    color: #7fb0f2; }
  .rd .rd-hero h1, .rd .rd-hero .h1 {
    color: #fff;
    font-size: clamp(1.9rem, 4.8vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.025em;
    font-weight: 800;
    text-wrap: balance;
    margin: 0.6rem 0 0; }
  .rd .rd-lead {
    color: #b9cae0;
    font-size: clamp(1.02rem, 2vw, 1.2rem);
    line-height: 1.55;
    max-width: 54ch;
    margin: 1.1rem auto 0; }
  .rd .rd-hero .hv-cta-row {
    justify-content: center;
    margin: 1.75rem 0 0; }
  .rd .rd-crumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: center;
    font-size: 0.82rem;
    color: #8fb3dd;
    margin-bottom: 1rem; }
    .rd .rd-crumbs a {
      color: #cfe0f6;
      text-decoration: none; }
    .rd .rd-crumbs a:hover {
      text-decoration: underline; }
    .rd .rd-crumbs .sep {
      opacity: 0.5; }
  .rd .rd-prose {
    max-width: 44rem;
    margin: 0 auto;
    color: var(--hv-ink);
    font-size: 1.05rem;
    line-height: 1.75; }
    .rd .rd-prose h2, .rd .rd-prose .h2 {
      font-size: clamp(1.4rem, 3vw, 1.8rem);
      font-weight: 750;
      letter-spacing: -0.02em;
      margin: 2.5rem 0 1rem; }
    .rd .rd-prose h3, .rd .rd-prose .h3 {
      font-size: 1.2rem;
      font-weight: 700;
      margin: 2rem 0 0.75rem; }
    .rd .rd-prose p {
      margin: 0 0 1.15rem; }
    .rd .rd-prose ul, .rd .rd-prose ol {
      margin: 0 0 1.15rem;
      padding-left: 1.25rem; }
    .rd .rd-prose li {
      margin-bottom: 0.5rem; }
    .rd .rd-prose a {
      color: var(--hv-accent);
      text-decoration: underline;
      text-underline-offset: 2px; }
    .rd .rd-prose a:hover {
      color: var(--accent-ink, #1257b8); }
    .rd .rd-prose strong {
      color: var(--hv-navy);
      font-weight: 680; }
    .rd .rd-prose blockquote {
      margin: 1.5rem 0;
      padding: 0.6rem 1.25rem;
      border-left: 3px solid var(--hv-accent);
      background: var(--hv-surface);
      border-radius: 0 10px 10px 0;
      color: var(--hv-ink); }
    .rd .rd-prose img {
      max-width: 100%;
      height: auto;
      border-radius: var(--hv-radius);
      margin: 1.5rem 0; }
    .rd .rd-prose hr {
      border: 0;
      border-top: 1px solid var(--hv-hairline);
      margin: 2.5rem 0; }
  .rd .rd-panel {
    background: radial-gradient(90% 120% at 12% 0%, rgba(29, 111, 224, 0.28), transparent 55%), linear-gradient(150deg, var(--hv-navy-2), var(--hv-navy));
    color: #eaf1fb;
    border-radius: 24px;
    padding: clamp(2rem, 5vw, 3.25rem); }
  .rd .rd-narrow {
    max-width: 52rem;
    margin-inline: auto; }
  .rd .rd-center {
    text-align: center; }
  .rd .rd-alt {
    background: var(--hv-surface); }
  .rd .rd-muted {
    color: var(--hv-muted); }
  .rd .rd-card {
    background: #fff;
    border: 1px solid var(--hv-hairline);
    border-radius: var(--hv-radius);
    padding: 1.6rem 1.5rem; }
    .rd .rd-card h3, .rd .rd-card .h3 {
      font-size: 1.12rem;
      font-weight: 700;
      letter-spacing: -0.01em;
      margin: 0 0 0.6rem; }
    .rd .rd-card p {
      margin: 0 0 0.6rem;
      color: var(--hv-muted);
      font-size: 0.95rem;
      line-height: 1.55; }
      .rd .rd-card p:last-child {
        margin-bottom: 0; }
  .rd .rd-cards-2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.1rem; }
  .rd .rd-card-ico {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(29, 111, 224, 0.1);
    color: var(--hv-accent);
    font-size: 1.4rem;
    margin-bottom: 0.9rem; }
  .rd .rd-card ul {
    margin: 0;
    padding-left: 1.15rem; }
  .rd .rd-card li {
    margin-bottom: 0.45rem;
    color: var(--hv-muted);
    font-size: 0.94rem;
    line-height: 1.5; }
  .rd .rd-onboarding {
    padding-bottom: 1rem; }
  .rd .rd-author-role {
    color: var(--hv-muted);
    font-size: 0.92rem;
    margin-top: 0.25rem; }
  .rd .rd-author-facts {
    margin: 1.25rem 0 0;
    padding-top: 1.1rem;
    border-top: 1px solid var(--hv-hairline);
    text-align: left; }
    .rd .rd-author-facts > div {
      margin-bottom: 0.8rem; }
      .rd .rd-author-facts > div:last-child {
        margin-bottom: 0; }
    .rd .rd-author-facts dt {
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: var(--hv-muted);
      margin-bottom: 0.15rem; }
    .rd .rd-author-facts dd {
      margin: 0;
      font-size: 0.92rem;
      line-height: 1.45; }
  .rd .hv-pricing {
    padding: clamp(2.5rem, 6vw, 4.5rem) 0 clamp(1rem, 3vw, 2rem); }
  .rd .hv-price-grid {
    margin-top: 1.5rem; }
  .rd .rd-tiers-sec {
    padding: clamp(2rem, 5vw, 3.5rem) 0; }
  .rd .rd-tier-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: 1.25rem;
    align-items: stretch; }
  .rd .rd-tier {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--hv-hairline);
    border-radius: var(--hv-radius);
    padding: 1.75rem 1.6rem; }
  .rd .rd-tier--featured {
    border-color: var(--hv-accent);
    box-shadow: 0 12px 32px rgba(7, 39, 66, 0.1); }
  .rd .rd-tier-badge {
    position: absolute;
    top: -0.7rem;
    left: 1.6rem;
    background: var(--hv-accent);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.28rem 0.7rem;
    border-radius: 999px; }
  .rd .rd-tier-name {
    font-size: 1.15rem;
    font-weight: 750;
    letter-spacing: -0.01em;
    margin: 0 0 0.3rem; }
  .rd .rd-tier-for {
    color: var(--hv-muted);
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 0 0 1.1rem;
    min-height: 2.7em; }
  .rd .rd-tier-price {
    display: flex;
    align-items: baseline;
    gap: 0.35rem; }
  .rd .rd-tier-amount {
    font-size: clamp(2rem, 4vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1; }
  .rd .rd-tier-per {
    color: var(--hv-muted);
    font-size: 0.9rem; }
  .rd .rd-tier-vat {
    color: var(--hv-muted);
    font-size: 0.78rem;
    margin: 0.4rem 0 1.2rem; }
  .rd .rd-tier .rd-tier-list {
    margin: 0 0 2.25rem; }
  .rd .rd-tier-cta {
    margin-top: auto;
    width: 100%;
    text-align: center; }
  .rd .rd-factors-sec {
    padding: clamp(2.5rem, 6vw, 4rem) 0; }
  .rd .rd-factors-grid {
    margin-top: 1.75rem; }
  .rd .rd-custom-sec {
    padding: 0 0 clamp(2.5rem, 6vw, 4rem); }
  .rd .rd-custom {
    display: grid;
    grid-template-columns: 1.6fr auto;
    gap: clamp(1.25rem, 4vw, 2.5rem);
    align-items: center; }
    .rd .rd-custom p {
      color: #b9cae0;
      line-height: 1.6;
      margin: 0 0 0.9rem; }
  .rd .rd-custom-list {
    margin: 0;
    padding-left: 1.15rem;
    columns: 2;
    column-gap: 1.5rem; }
    .rd .rd-custom-list li {
      color: #b9cae0;
      font-size: 0.92rem;
      line-height: 1.5;
      margin-bottom: 0.35rem; }
  .rd .rd-custom-btn {
    white-space: nowrap; }
  @media (max-width: 767px) {
    .rd .rd-custom {
      grid-template-columns: 1fr; }
    .rd .rd-custom-list {
      columns: 1; }
    .rd .rd-tier-for {
      min-height: 0; } }
  .rd .rd-onboarding-head {
    margin-bottom: 1.75rem; }
  .rd .rd-onboarding-head .hv-h2 {
    margin-bottom: 0.65rem; }
  .rd .rd-onboarding-head p {
    margin: 0;
    line-height: 1.65; }
  .rd .rd-onboarding-grid {
    align-items: stretch; }
  .rd .rd-onboarding-grid .rd-card {
    padding: clamp(1.35rem, 3vw, 2rem); }
  .rd .rd-onboarding-grid h3, .rd .rd-onboarding-grid .h3 {
    margin: 0 0 1rem;
    font-size: 1.2rem; }
  .rd .rd-onboarding-steps {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: onboarding;
    display: flex;
    flex-direction: column;
    gap: 0.8rem; }
    .rd .rd-onboarding-steps li {
      counter-increment: onboarding;
      display: grid;
      grid-template-columns: 1.75rem 1fr;
      gap: 0.65rem;
      align-items: start;
      color: var(--hv-muted);
      font-size: 0.94rem;
      line-height: 1.5; }
    .rd .rd-onboarding-steps li::before {
      content: counter(onboarding);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 1.75rem;
      height: 1.75rem;
      border-radius: 50%;
      background: rgba(29, 111, 224, 0.1);
      color: var(--hv-accent);
      font-weight: 750;
      font-size: 0.78rem; }
  .rd .rd-hero--left {
    text-align: left; }
  .rd .rd-hero--left .rd-crumbs {
    justify-content: flex-start; }
  .rd .rd-hero--left .rd-lead {
    margin-left: 0;
    margin-right: 0;
    max-width: 60ch; }
  .rd .rd-hub-intro {
    margin-bottom: 2.5rem; }
  .rd .rd-service-grid {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: clamp(1.5rem, 3.5vw, 2.5rem);
    align-items: start; }
  .rd .rd-service-main {
    min-width: 0; }
  .rd .rd-offerings {
    margin-bottom: 2rem; }
  .rd .rd-offerings-title {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 1rem;
    letter-spacing: -0.01em; }
  .rd .rd-check-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.7rem; }
    .rd .rd-check-list li {
      display: flex;
      align-items: flex-start;
      gap: 0.6rem;
      font-size: 0.97rem;
      line-height: 1.5; }
    .rd .rd-check-list i {
      color: var(--hv-accent);
      font-size: 1.15rem;
      margin-top: 0.1rem;
      flex: none; }
  .rd .rd-service-content {
    margin: 0 0 1rem; }
  .rd .rd-service-main .rd-prose {
    max-width: none;
    margin: 0; }
  .rd .rd-faq {
    margin-top: 2.5rem; }
  .rd .rd-faq .hv-h2 {
    font-size: 1.4rem;
    margin-bottom: 1.1rem; }
  .rd .rd-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0.7rem; }
  .rd .rd-faq-item {
    border: 1px solid var(--hv-hairline);
    border-radius: var(--hv-radius);
    background: #fff;
    overflow: hidden; }
    .rd .rd-faq-item summary {
      list-style: none;
      cursor: pointer;
      padding: 1rem 1.2rem;
      font-weight: 650;
      color: var(--hv-navy);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem; }
      .rd .rd-faq-item summary i {
        color: var(--hv-accent);
        transition: transform var(--pb-t-fast, 0.18s) ease;
        flex: none; }
    .rd .rd-faq-item summary::-webkit-details-marker {
      display: none; }
    .rd .rd-faq-item[open] summary i {
      transform: rotate(45deg); }
    .rd .rd-faq-item .rd-faq-answer {
      padding: 0 1.2rem 1.1rem;
      color: var(--hv-muted);
      line-height: 1.6; }
  .rd .rd-service-aside {
    position: sticky;
    top: 6rem; }
  .rd .rd-cta-card {
    color: #eaf1fb; }
  .rd .rd-cta-title {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 1rem;
    color: #fff; }
  .rd .rd-cta-text {
    color: #b9cae0;
    font-size: 0.95rem;
    line-height: 1.55;
    margin: 0 0 1.25rem; }
  .rd .rd-cta-btn {
    display: block;
    width: 100%;
    text-align: center;
    background: #fff;
    color: var(--hv-navy);
    border: 0;
    font-weight: 700;
    padding: 0.8rem 1rem; }
    .rd .rd-cta-btn:hover {
      background: #eaf1fb;
      color: var(--hv-navy); }
  @media (max-width: 860px) {
    .rd .rd-service-grid {
      grid-template-columns: 1fr; }
    .rd .rd-service-aside {
      position: static; } }
  .rd .rd-post-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.1rem; }
  .rd .rd-post-card {
    background: #fff;
    border: 1px solid var(--hv-hairline);
    border-radius: var(--hv-radius);
    transition: transform var(--pb-t-fast, 0.18s) var(--pb-ease, ease), box-shadow var(--pb-t-fast, 0.18s) var(--pb-ease, ease), border-color var(--pb-t-fast, 0.18s) var(--pb-ease, ease); }
  .rd .rd-post-card:hover {
    transform: translateY(-4px);
    border-color: rgba(29, 111, 224, 0.35);
    box-shadow: 0 22px 45px -25px rgba(7, 39, 66, 0.4); }
  .rd .rd-post-link {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    height: 100%;
    padding: 1.6rem 1.6rem 1.7rem;
    text-decoration: none;
    color: inherit; }
  .rd .rd-post-meta,
  .rd .rd-post-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--mono, monospace);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    color: var(--hv-muted);
    text-transform: uppercase; }
    .rd .rd-post-meta .sep,
    .rd .rd-post-byline .sep {
      opacity: 0.5; }
  .rd .rd-post-title {
    font-size: 1.2rem;
    font-weight: 750;
    letter-spacing: -0.015em;
    line-height: 1.25;
    margin: 0;
    color: var(--hv-navy); }
  .rd .rd-post-excerpt {
    margin: 0;
    color: var(--hv-muted);
    font-size: 0.94rem;
    line-height: 1.55;
    flex: 1; }
  .rd .rd-post-more {
    color: var(--hv-accent);
    font-weight: 650;
    font-size: 0.9rem; }
  .rd .rd-post-byline {
    justify-content: center;
    margin-top: 1rem;
    color: #8fb3dd; }
  .rd .rd-hero--left .rd-post-byline {
    justify-content: flex-start; }
  .rd .rd-related {
    margin-top: 3.5rem;
    padding-top: 2.5rem;
    border-top: 1px solid var(--hv-hairline); }
  .rd .rd-related .hv-h2 {
    margin-bottom: 1.5rem; }
  .rd .rd-pagination {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    margin-top: 2.5rem; }
    .rd .rd-pagination a {
      min-width: 2.5rem;
      height: 2.5rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--hv-hairline);
      border-radius: 9px;
      color: var(--hv-ink);
      text-decoration: none;
      font-weight: 650; }
      .rd .rd-pagination a:hover {
        border-color: var(--hv-accent);
        color: var(--hv-accent); }
      .rd .rd-pagination a.on {
        background: var(--hv-accent);
        border-color: var(--hv-accent);
        color: #fff; }
  .rd .rd-contact-grid {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start; }
  .rd .hv-contact .rd-contact-grid {
    align-items: center; }
  .rd .hv-contact-intro {
    margin-bottom: 0.5rem; }
  .rd .hv-contact-intro .hv-h2 {
    margin-bottom: 0.75rem; }
  .rd .hv-contact-intro .hv-section-sub {
    margin: 0;
    max-width: 38rem; }
  .rd .rd-contact-info {
    display: flex;
    flex-direction: column;
    gap: 1.5rem; }
  .rd .rd-contact-item {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start; }
    .rd .rd-contact-item h3, .rd .rd-contact-item .h3 {
      font-size: 0.98rem;
      font-weight: 700;
      margin: 0 0 0.2rem; }
    .rd .rd-contact-item a {
      color: var(--hv-accent);
      text-decoration: none;
      display: block;
      word-break: break-word; }
    .rd .rd-contact-item a:hover {
      text-decoration: underline; }
  .rd .rd-contact-ico {
    flex: none;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(29, 111, 224, 0.1);
    color: var(--hv-accent);
    font-size: 1.3rem; }
  .rd .rd-contact-form {
    padding: clamp(1.5rem, 3vw, 2.25rem); }
  .rd .rd-form-title {
    font-size: 1.25rem;
    font-weight: 750;
    letter-spacing: -0.01em;
    margin: 0 0 0.35rem; }
  .rd .rd-form-note {
    margin: 0 0 1.5rem;
    color: var(--hv-muted);
    font-size: 0.9rem;
    line-height: 1.5; }
  .rd .rd-contact-form label {
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--hv-ink); }
  .rd .rd-contact-form .form-control {
    border: 1px solid var(--hv-hairline);
    border-radius: 10px;
    background: var(--hv-surface); }
    .rd .rd-contact-form .form-control:focus {
      border-color: var(--hv-accent);
      background: #fff;
      box-shadow: 0 0 0 3px rgba(29, 111, 224, 0.12); }
  @media (max-width: 767px) {
    .rd .rd-contact-grid {
      grid-template-columns: 1fr; }
    .rd .hv-contact .rd-contact-grid {
      align-items: start; } }
  .rd .rd-404-hero {
    border-radius: 0 0 28px 28px;
    padding-block: clamp(3.5rem, 9vw, 6rem); }
  .rd .rd-404-code {
    font-family: var(--mono, monospace);
    font-weight: 800;
    font-size: clamp(4rem, 16vw, 9rem);
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 2px rgba(127, 176, 242, 0.5);
    letter-spacing: 0.05em;
    margin-bottom: 0.5rem; }
  .rd .rd-404 .rd-cta-btn {
    display: inline-block; }
  .rd.rd-how {
    --mono: ui-monospace, "SF Mono", "Cascadia Code", monospace; }
  .rd .hiw-timeline {
    border-top: 1px solid var(--hv-hairline); }
  .rd .hiw-timeline.rd-alt {
    border-top: 0; }
  .rd .hiw-head {
    max-width: 60ch;
    margin: 0 0 clamp(2rem, 5vw, 3.25rem); }
  .rd .hiw-head .hv-h2 {
    color: var(--hv-navy); }
  .rd .hiw-track {
    --hiw-gap: clamp(2.5rem, 5vw, 4rem);
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--hiw-gap); }
  .rd .hiw-station {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) minmax(0, 25rem);
    gap: clamp(1rem, 3vw, 2.5rem);
    align-items: start; }
  .rd .hiw-rail {
    position: relative;
    align-self: stretch; }
  .rd .hiw-rail::before {
    content: "";
    position: absolute;
    left: 1.5rem;
    transform: translateX(-50%);
    top: 1.5rem;
    bottom: calc(-1 * var(--hiw-gap));
    width: 2px;
    background: var(--hv-hairline);
    z-index: 0; }
  .rd .hiw-station:last-child .hiw-rail::before {
    display: none; }
  .rd .hiw-node {
    position: relative;
    z-index: 1;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--hv-accent);
    display: grid;
    place-items: center; }
  .rd .hiw-num {
    font-family: var(--mono);
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--hv-accent); }
  .rd .hiw-station--ongoing .hiw-node {
    background: var(--hv-accent);
    border-color: var(--hv-accent); }
  .rd .hiw-station--ongoing .hiw-num {
    color: #fff; }
  @media (prefers-reduced-motion: no-preference) {
    .rd .hiw-station--ongoing .hiw-node::after {
      content: "";
      position: absolute;
      inset: -5px;
      border-radius: 50%;
      border: 2px solid var(--hv-accent);
      animation: hiw-pulse 2.4s var(--pb-ease, ease-out) infinite; } }
@keyframes hiw-pulse {
  0% {
    transform: scale(1);
    opacity: 0.5; }
  70%, 100% {
    transform: scale(1.5);
    opacity: 0; } }
  .rd .hiw-copy {
    padding-top: 0.2rem; }
  .rd .hiw-cadence {
    display: inline-block;
    font-family: var(--mono);
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--hv-accent);
    margin-bottom: 0.7rem;
    padding: 0.28rem 0.65rem;
    border-radius: 20px;
    background: rgba(29, 111, 224, 0.09); }
  .rd .hiw-copy h3, .rd .hiw-copy .h3 {
    font-size: clamp(1.15rem, 2.5vw, 1.4rem);
    font-weight: 750;
    letter-spacing: -0.015em;
    margin: 0 0 0.8rem;
    color: var(--hv-navy); }
  .rd .hiw-do ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.55rem; }
  .rd .hiw-do li {
    position: relative;
    padding-left: 1.4rem;
    color: var(--hv-ink);
    font-size: 0.96rem;
    line-height: 1.5; }
  .rd .hiw-do li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.5em;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 2px;
    background: var(--hv-accent); }
  .rd .hiw-art {
    min-width: 0; }
  .rd .hiw-frame {
    background: radial-gradient(120% 120% at 72% 0%, #0e3157 0%, var(--hv-navy) 62%);
    border-radius: 20px;
    padding: clamp(1.25rem, 3vw, 1.9rem);
    display: grid;
    place-items: center;
    box-shadow: 0 22px 48px -24px rgba(7, 39, 66, 0.6); }
  .rd .hiw-box {
    background: radial-gradient(80% 120% at 12% -5%, rgba(29, 111, 224, 0.28), transparent 55%), linear-gradient(155deg, var(--hv-navy-2), #06203a);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 28px;
    padding: clamp(1.5rem, 3.5vw, 3rem) clamp(1.1rem, 2.5vw, 2rem);
    box-shadow: 0 40px 90px -50px rgba(0, 8, 20, 0.9); }
  .rd .hiw-box .hiw-frame {
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    width: 100%;
    max-width: 21rem;
    justify-self: end; }
  @media (max-width: 1100px) {
    .rd .hiw-station {
      grid-template-columns: 2.5rem minmax(0, 1fr); }
    .rd .hiw-node {
      width: 2.5rem;
      height: 2.5rem; }
    .rd .hiw-rail::before {
      left: 1.25rem; }
    .rd .hiw-art {
      grid-column: 2;
      margin-top: 1.15rem; }
    .rd .hiw-frame {
      justify-self: start;
      width: 100%; }
    .rd .hiw-box .hiw-frame {
      justify-self: start; } }
  @media (max-width: 575px) {
    .rd {
      /* These mock documents are decorative. Full-width cards after every step
       made the phone timeline feel like a stack of tables instead of a clear
       process, so the compact layout keeps only the useful step content. */ }
      .rd .hiw-box {
        padding: 1.25rem 0.75rem;
        border-radius: 20px; }
      .rd .hiw-track {
        --hiw-gap: 2rem; }
      .rd .hiw-station {
        grid-template-columns: 2.25rem minmax(0, 1fr);
        gap: 0.75rem; }
      .rd .hiw-node {
        width: 2.25rem;
        height: 2.25rem; }
      .rd .hiw-rail::before {
        left: 1.125rem;
        top: 1.125rem; }
      .rd .hiw-art {
        display: none; } }
  .rd .pbd-doc {
    width: 100%;
    max-width: 21rem;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 18px 40px rgba(4, 20, 40, 0.32);
    overflow: hidden;
    font-size: 0.86rem; }
  .rd .pbd-bar {
    background: var(--hv-navy);
    color: #c9d9ef;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.8rem 1rem;
    font-family: var(--mono);
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.05em; }
  .rd .pbd-badge {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    border-radius: 20px;
    padding: 0.15rem 0.55rem;
    font-size: 0.68rem; }
  .rd .pbd-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #37d08a;
    display: inline-block;
    box-shadow: 0 0 0 3px rgba(55, 208, 138, 0.2);
    flex: none; }
  .rd .pbd-body {
    padding: 1rem; }
  .rd .pbd-check {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.42rem 0;
    color: var(--hv-ink);
    font-weight: 500; }
  .rd .pbd-box {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 6px;
    background: var(--hv-accent);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 0.75rem;
    flex: none; }
  .rd .pbd-progress {
    height: 6px;
    border-radius: 6px;
    background: var(--hv-hairline);
    margin-top: 0.5rem; }
  .rd .pbd-progress > span {
    display: block;
    height: 100%;
    border-radius: 6px;
    background: var(--hv-accent); }
  .rd .pbd-foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    padding: 0.8rem 1rem;
    border-top: 1px solid var(--hv-hairline);
    font-family: var(--mono);
    font-weight: 600;
    font-size: 0.72rem;
    color: var(--hv-muted); }
  .rd .pbd-foot-v {
    color: var(--hv-ink);
    font-size: 0.9rem; }
  .rd .pbd-bars {
    display: flex;
    align-items: flex-end;
    gap: 0.45rem;
    height: 6.5rem;
    padding-top: 0.4rem; }
  .rd .pbd-bars > span {
    flex: 1;
    background: #dbe8fb;
    border-radius: 4px 4px 0 0; }
  .rd .pbd-bars > span:last-child {
    background: var(--hv-accent); }
  .rd .pbd-row {
    display: flex;
    justify-content: space-between;
    padding: 0.38rem 0;
    font-variant-numeric: tabular-nums; }
  .rd .pbd-row .k {
    color: var(--hv-muted);
    font-family: var(--mono);
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.03em; }
  .rd .pbd-row .v {
    font-weight: 600;
    font-variant-numeric: tabular-nums; }
  .rd .pbd-stamp {
    display: inline-block;
    transform: rotate(-6deg);
    flex: none;
    border: 2px solid #1a7f52;
    color: #1a7f52;
    border-radius: 7px;
    padding: 0.15rem 0.55rem;
    font-family: var(--mono);
    font-weight: 700;
    font-size: 0.68rem;
    letter-spacing: 0.06em; }
  .rd .pbd-bal {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.42rem 0; }
  .rd .pbd-bal .k {
    width: 4.8rem;
    font-family: var(--mono);
    font-weight: 600;
    font-size: 0.72rem;
    color: var(--hv-muted); }
  .rd .pbd-bal-bar {
    height: 1rem;
    border-radius: 4px;
    flex: 1; }
  .rd .pbd-bal-bar--a {
    background: var(--hv-accent); }
  .rd .pbd-bal-bar--b {
    background: #7fb0f2; }
  .rd .pbd-bal .v {
    font-family: var(--mono);
    font-weight: 600;
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums; }
  .rd .pbd-chip {
    background: rgba(29, 111, 224, 0.1);
    color: var(--hv-accent);
    border-radius: 20px;
    padding: 0.15rem 0.6rem;
    font-family: var(--mono);
    font-weight: 700;
    font-size: 0.7rem; }
  .rd .pbd-chat {
    width: 100%;
    max-width: 21rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem; }
  .rd .pbd-bubble {
    max-width: 84%;
    padding: 0.6rem 0.8rem;
    border-radius: 14px;
    font-size: 0.85rem;
    line-height: 1.4;
    box-shadow: 0 10px 26px rgba(4, 20, 40, 0.26); }
  .rd .pbd-bubble--in {
    background: #fff;
    color: var(--hv-ink);
    border-bottom-left-radius: 4px;
    align-self: flex-start; }
  .rd .pbd-bubble--out {
    background: var(--hv-accent);
    color: #fff;
    border-bottom-right-radius: 4px;
    align-self: flex-end; }
  .rd .pbd-who {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #c9d9ef;
    font-size: 0.78rem;
    margin-top: 0.15rem; }
  .rd .pbd-av {
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: #7fb0f2;
    color: var(--hv-navy);
    display: grid;
    place-items: center;
    font-weight: 700;
    font-size: 0.72rem; }
  .rd .hiw-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.75rem;
    flex-wrap: wrap; }
  .rd .hiw-cta > div {
    min-width: 0; }
  .rd .hiw-cta p {
    color: #b9cae0;
    margin: 0.55rem 0 0;
    max-width: 46ch;
    line-height: 1.55; }
  .rd .hiw-cta-btn {
    flex: none; }
  @media (max-width: 640px) {
    .rd .hiw-cta {
      flex-direction: column;
      align-items: flex-start; }
    .rd .hiw-cta-btn {
      width: 100%; } }
  .rd .pbd-doc {
    color: #223144;
    --hv-ink: #223144;
    --hv-muted: #5e6e7f;
    --hv-hairline: #e6ecf4; }
  .rd .pbd-chat {
    --hv-ink: #223144;
    --hv-muted: #5e6e7f;
    --hv-hairline: #e6ecf4; }
  .rd .hv-services, .rd .hv-tst, .rd .hv-why, .rd .rd-alt {
    background: transparent;
    border-top: 0; }
  .rd .hiw-timeline, .rd .hiw-timeline.rd-alt {
    background: transparent;
    border-top: 0; }
  .rd .hv-hero, .rd .rd-hero {
    background: radial-gradient(120% 120% at 88% -18%, rgba(29, 111, 224, 0.2), transparent 55%); }
  .rd .hv-service,
  .rd .hv-tst-card,
  .rd .rd-card,
  .rd .rd-faq-item,
  .rd .rd-tier,
  .rd .rd-post-card {
    background: var(--hv-card);
    border-color: var(--hv-hairline);
    box-shadow: none; }
  .rd .rd-tier--featured {
    border-color: rgba(29, 111, 224, 0.75);
    box-shadow: 0 22px 45px -25px rgba(0, 8, 20, 0.75); }
  .rd .rd-tier-name {
    color: #fff; }
  .rd .rd-tier-amount {
    color: #fff; }
  .rd .hv-service:hover,
  .rd .rd-post-card:hover {
    border-color: rgba(127, 176, 242, 0.45);
    box-shadow: 0 22px 45px -25px rgba(0, 8, 20, 0.75); }
  .rd h1, .rd .h1, .rd h2, .rd .h2, .rd h3, .rd .h3, .rd h4, .rd .h4, .rd h5, .rd .h5 {
    color: #eef4fc; }
  .rd .hiw-head .hv-h2,
  .rd .hiw-copy h3,
  .rd .hiw-copy .h3,
  .rd .rd-post-title,
  .rd .rd-faq-item summary {
    color: #fff; }
  .rd .rd-prose strong {
    color: #eaf1fb; }
  .rd .hv-eyebrow, .rd .hv-section-link {
    color: #7fb0f2; }
  .rd .rd-prose a:not(.btn),
  .rd .rd-contact-item a,
  .rd .hv-tst-role,
  .rd .hiw-cadence,
  .rd .rd-post-more {
    color: #7fb0f2; }
  .rd .rd-prose a:hover {
    color: #9cc2f5; }
  .rd .rd-tier .btn-outline-primary {
    color: #dbe8fb;
    border-color: rgba(127, 176, 242, 0.5); }
  .rd .hv-bal__colhead {
    color: #8fb3dd; }
  .rd .hv-service-icon, .rd .rd-card-ico {
    background: rgba(29, 111, 224, 0.22);
    color: #9cc2f5; }
  .rd .hv-quote-mark {
    color: rgba(127, 176, 242, 0.22); }
  .rd .hiw-node {
    background: #0a2a49; }
  .rd .rd-panel {
    border: 1px solid var(--hv-hairline); }

/* ==========================================================================
   ALL-NAVY GLOBAL — continuous page gradient + dark header + transparent footer
   (user-chosen July 2026). These live OUTSIDE the .rd wrapper because the
   header/footer/body are global (theme) chrome. One gradient on <body> spans
   header → content → footer so there is no colour switching and no seams; the
   old `.rd-footer { margin-top: 4rem }` gap (which exposed the white <body>
   as a stripe before the footer) is removed.
   ========================================================================== */
body {
  background: linear-gradient(180deg, #0f3a63 0%, #0a2c4e 26%, #071f39 56%, #05162a 100%);
  background-repeat: no-repeat; }

/* preloader: same gradient as the page (theme defaults it to solid #fff → a
   white flash before the dark page paints) */

/* --- liquid-glass header ---
   Very translucent so the page gradient shows straight through (the bar always
   matches whatever navy is behind it — light at the top, deep once scrolled),
   with a strong blur + a faint top sheen for the glass edge. The no-backdrop
   fallback stays solid enough to keep the nav legible. */
header {
  background-color: rgba(15, 58, 99, 0.96);
  /* fallback: match the top of the page gradient */
  border-bottom: 1px solid rgba(255, 255, 255, 0.09); }

header.header-sticky-top {
  background-color: rgba(15, 58, 99, 0.96);
  box-shadow: 0 8px 30px rgba(0, 6, 16, 0.4); }

@supports (-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px)) {
  header {
    /* One glass recipe at rest and while sticky. The backdrop can change below
       it, but the frost, colour response and edge sheen remain consistent. */
    background-color: rgba(255, 255, 255, 0.045);
    border-bottom-color: rgba(255, 255, 255, 0.1);
    -webkit-backdrop-filter: blur(20px) saturate(120%);
    backdrop-filter: blur(20px) saturate(120%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09); }
  header.header-sticky-top {
    background-color: rgba(255, 255, 255, 0.045);
    border-bottom-color: rgba(255, 255, 255, 0.1);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09), 0 10px 30px rgba(0, 6, 16, 0.28); } }

.header-nav .navbar-brand {
  color: #fff; }

/* theme sets `header .nav-item .nav-link { color:#555 !important }` (gray) — so
   we need !important + our higher specificity to make the nav readable. */
.header-nav .navbar-nav .nav-link {
  color: #e8f0fc !important;
  font-weight: 600; }

.header-nav .navbar-nav .nav-link:hover,
.header-nav .navbar-nav .nav-link:focus-visible {
  color: #fff !important; }

/* active page link — force over the theme's dark active colour */
.header-nav .navbar-nav .nav-item.active > .nav-link,
.header-nav .navbar-nav li.active .nav-link {
  color: #fff !important; }

/* persistent CTA button pops on the dark bar. The theme sets
   `.btn.btn-primary { background:#072742 !important }` (0,2,0) — so we need
   `header .btn.btn-primary` (0,2,1) to win. */
header .btn.btn-primary,
header .btn.btn-primary:focus {
  background: var(--pb-cta-gloss) !important;
  border-color: rgba(127, 176, 242, 0.78) !important;
  color: #fff !important; }

header .btn.btn-primary:hover,
header .btn.btn-primary:active {
  background: var(--pb-cta-gloss-hover) !important;
  border-color: rgba(151, 194, 252, 0.9) !important;
  color: #fff !important; }

/* language pill -> dark */
.lang-switcher__toggle {
  color: #dfeaf7;
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.06); }

.lang-switcher__toggle:hover,
.lang-switcher__toggle[aria-expanded="true"] {
  border-color: rgba(127, 176, 242, 0.6);
  background: rgba(255, 255, 255, 0.1); }

/* featured calculator pill reads brighter on the dark bar */
.nav-link-featured {
  color: #9cc2f5 !important;
  background: rgba(29, 111, 224, 0.16);
  border-color: rgba(127, 176, 242, 0.5); }

/* burger icon -> light. The theme uses inline SVGs with currentColor, not
   Bootstrap's optional .navbar-toggler-icon span. */
.header-nav .navbar-light .navbar-toggler {
  color: #e8f0fc !important;
  border-color: rgba(255, 255, 255, 0.2); }

.header-nav .navbar-light .navbar-toggler:hover,
.header-nav .navbar-light .navbar-toggler:focus-visible {
  color: #fff !important; }

/* desktop dropdown popover -> dark glass.
   The theme draws the visible card as an animated white `::after`
   (`background:#FFFFFF`, grows to height:100% on hover) that sat OVER our dark
   menu — that's why it read as a white panel with barely-visible text. Recolour
   that pseudo-element to dark and keep the grow animation. */
@media (min-width: 992px) {
  .header-nav .navbar-nav .dropdown-menu {
    background: transparent;
    border: 0;
    box-shadow: none; }
  .header-nav .navbar-nav .dropdown-menu::after {
    background-color: #0c2742;
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 20px 50px rgba(0, 8, 20, 0.55); }
  .header-nav .navbar-nav .dropdown-item {
    color: #e8f0fc; }
  .header-nav .navbar-nav .dropdown-item:hover,
  .header-nav .navbar-nav .dropdown-item:focus-visible {
    background: rgba(29, 111, 224, 0.18);
    color: #fff; }
  .header-nav .navbar-nav .nav-item.dropdown:focus-within .dropdown-menu,
  .header-nav .navbar-nav .dropdown-menu.show {
    visibility: visible;
    height: auto; }
  .header-nav .navbar-nav .nav-item.dropdown:focus-within .dropdown-menu::after,
  .header-nav .navbar-nav .dropdown-menu.show::after {
    height: 100%; }
  .header-nav .navbar-nav .nav-item.dropdown:focus-within .dropdown-menu li,
  .header-nav .navbar-nav .dropdown-menu.show li {
    opacity: 1;
    transform: translateY(0); } }

/* Bootstrap expands the desktop nav at 992px, where longer Russian labels can
   otherwise wrap into a tall, uneven two-row header. Keep this narrow desktop
   band compact without changing the site's established breakpoint. */
@media (min-width: 992px) and (max-width: 1050px) {
  .header-nav .navbar-brand {
    margin-right: 0.35rem;
    font-size: 1.05rem; }
  .header-nav .navbar-nav .nav-link {
    padding: 0.75rem 0.35rem !important;
    font-size: 0.78rem;
    white-space: nowrap; }
  .header-nav .navbar-nav .nav-link-featured {
    padding: 0.35rem 0.55rem !important;
    margin-left: 0.1rem; }
  .header-nav .navbar-right {
    display: flex;
    align-items: center;
    white-space: nowrap; }
  .header-nav .navbar-right .lang-switcher {
    margin-inline: 0.3rem !important; }
  .header-nav .navbar-right .lang-switcher__toggle {
    min-width: 6.15rem;
    padding: 0.4rem 0.55rem 0.4rem 0.65rem;
    font-size: 0.78rem; }
  .header-nav .navbar-right .btn {
    padding: 0.7rem 0.7rem;
    font-size: 0.76rem;
    white-space: nowrap; } }

/* mobile menu -> dark */
@media (max-width: 991.98px) {
  header .navbar-collapse.show,
  header .navbar-collapse.collapsing {
    background-color: rgba(9, 30, 52, 0.98); }
  .header-nav .navbar-nav .nav-link {
    background: rgba(255, 255, 255, 0.04);
    border-color: transparent; }
  .header-nav .navbar-nav .nav-link:hover,
  .header-nav .navbar-nav .nav-link:focus-visible {
    background: rgba(29, 111, 224, 0.14);
    color: #fff; }
  .header-nav .navbar-nav .nav-item.active > .nav-link {
    background: rgba(29, 111, 224, 0.18);
    color: #fff;
    border-color: rgba(127, 176, 242, 0.3); }
  .header-nav .navbar-nav .dropdown-item {
    color: #cddbf0;
    background: rgba(255, 255, 255, 0.03); }
  .header-nav .navbar-nav .dropdown-item:hover,
  .header-nav .navbar-nav .dropdown-item:focus-visible {
    background: rgba(29, 111, 224, 0.12);
    color: #fff; } }

/* footer + closing CTA band flow into the gradient (no own fills / bands) */
.rd-cta-final {
  background: transparent; }

.rd-footer {
  background: transparent;
  margin-top: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08); }

/* ==========================================================================
   ALL-NAVY — calculator page (.calc-* are global, light-theme; convert to dark
   so the tool matches. The rate table broke because its text inherited the
   light .rd ink while its own background stayed #fff → light-on-light.)
   ========================================================================== */
.calc-card {
  background: rgba(255, 255, 255, 0.045);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 18px 40px rgba(0, 8, 20, 0.35); }

.calc-label {
  color: #9fb8d6; }

.calc-amount {
  border-color: rgba(255, 255, 255, 0.16); }

.calc-amount input {
  color: #fff; }

.calc-amount-currency {
  color: #9fb8d6; }

.calc-segmented {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12); }

.calc-segmented label {
  color: #cddbf0; }

.calc-segmented input:checked + label {
  background: #1d6fe0;
  color: #fff;
  box-shadow: none; }

.calc-hero-value {
  color: #fff; }

.calc-tile {
  background: rgba(255, 255, 255, 0.05); }

.calc-tile-label {
  color: #9fb8d6; }

.calc-tile-value {
  color: #fff; }

.calc-bar-legend {
  color: #cddbf0; }

.calc-table td {
  color: #d6e3f3; }

/* Bootstrap 5.3 .table resolves --bs-table-bg to the white body colour, so
   the cells stayed opaque white under the light ALL-NAVY text (1.3:1) —
   the rate table was light-on-light despite the colour conversion above.
   Reset the token so the dark card shows through (C2). */
.calc-breakdown .table {
  --bs-table-bg: transparent;
  --bs-table-color: #d6e3f3; }

.calc-table .calc-table-total td {
  color: #fff;
  border-top-color: rgba(255, 255, 255, 0.14); }

.rd .calc-breakdown .calc-breakdown__title {
  color: #9fb8d6; }

.calc-table .calc-table-note {
  color: #9fb8d6; }

.calc-annual, .calc-tile-annual {
  color: #9fb8d6; }

.calc-warning {
  background: rgba(232, 201, 135, 0.12);
  border-color: rgba(232, 201, 135, 0.4);
  color: #e8c987; }

.calc-inline-field input {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.16);
  color: #fff; }

.calc-tip {
  background: rgba(29, 111, 224, 0.12);
  color: #cddbf0;
  border-left-color: #1d6fe0; }

.calc-tip-btn {
  border-color: rgba(127, 176, 242, 0.5);
  color: #9cc2f5; }

.calc-tip-btn:hover {
  background: #1d6fe0;
  color: #fff; }

/* Complete the calculator's legacy light-theme text conversion. */

.rd .calc-card .form-check-label {
  color: #cddbf0; }

.rd .calc-card.text-center > p {
  color: #cddbf0; }

.rd .text-muted {
  color: #9fb8d6 !important; }

/* Options that belong to the checkbox above them. Bracketed with a rule and one
   indent so the offset reads as nesting; previously each child carried its own
   ms-4 and the pension-age row just looked like it had failed to line up. */
.calc-subgroup {
  margin: 0 0 0.55rem 0.55rem;
  padding-left: 0.9rem;
  border-left: 2px solid rgba(127, 176, 242, 0.45); }
  .calc-subgroup .form-check.is-disabled {
    opacity: 0.45; }
    .calc-subgroup .form-check.is-disabled .form-check-label {
      cursor: not-allowed; }

/* Checkbox rows as a flex line: box, label, trigger. Inline-block labels pushed
   the ? onto its own line as soon as one wrapped, and making the label inline
   only moved the problem - the ? still orphaned whenever the last line was full,
   which it is for most of the Estonian and Russian copy. As a flex item the
   trigger cannot orphan at all, and the four of them line up down the right
   instead of landing at four different x positions. */
.rd .calc-card .form-check {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0 0.5rem;
  padding-left: 0; }
  .rd .calc-card .form-check .form-check-input {
    flex: 0 0 auto;
    float: none;
    margin: 0.25rem 0 0; }
  .rd .calc-card .form-check .form-check-label {
    flex: 1 1 0;
    min-width: 0; }
  .rd .calc-card .form-check .calc-tip-btn {
    flex: 0 0 auto;
    margin: 0.12rem 0 0;
    vertical-align: baseline;
    /* flex item: the inline nudge no longer applies */ }
  .rd .calc-card .form-check .calc-tip {
    flex: 1 0 100%; }

/* Unchecked boxes came through with border-width:0 over a transparent fill, so on
   the dark card they rendered as nothing at all: "Vanaduspensioniiga" looked like
   a label with no control, and unticking any other row made its box disappear. */
.rd .calc-card .form-check-input {
  background-color: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(127, 176, 242, 0.55); }
  .rd .calc-card .form-check-input:checked {
    background-color: var(--pb-accent);
    border-color: var(--pb-accent); }
  .rd .calc-card .form-check-input:focus-visible {
    border-color: #7fb0f2;
    box-shadow: 0 0 0 3px rgba(29, 111, 224, 0.35); }

/* The trigger was scaled to 2.5rem for touch and then clawed back with a
   negative margin-block, which is why it read as an oversized circle floating
   off its label and stranded mid-row in the detail tables. The circle now
   matches the text it annotates; the touch target is an invisible expanded hit
   area that costs no layout (36px, clears WCAG 2.5.8's 24px minimum). */
.rd .calc-tip-btn {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 0.3rem;
  font-size: 0.72rem;
  /* Measured, not guessed: this is the offset that puts the circle's centre on
     the text's optical centre. `middle` and `baseline` both leave it ~1.4-2.3px
     low, which is exactly the "sits a bit below the line" look. */
  vertical-align: 0.2em; }
  .rd .calc-tip-btn::after {
    content: "";
    position: absolute;
    inset: -0.5rem;
    border-radius: 50%; }

/* calc SEO band + rate table -> dark */
.rd .calc-seo {
  background: transparent; }

.rd .calc-seo table {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1); }

.rd .calc-seo th, .rd .calc-seo td {
  border-bottom-color: rgba(255, 255, 255, 0.1); }

.rd .calc-seo th {
  color: #fff;
  background: rgba(255, 255, 255, 0.06); }

.rd .calc-seo td {
  color: #d6e3f3; }

/* Quiet landmarks for long all-navy pages. The wash stays translucent so the
   continuous top-to-bottom body gradient remains visible underneath. */
.rd > section:nth-of-type(even):not(.rd-hero):not(.hv-hero) {
  background: linear-gradient(180deg, rgba(29, 111, 224, 0.035), rgba(255, 255, 255, 0.012));
  border-top: 1px solid rgba(255, 255, 255, 0.055);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04); }

.rd > .rd-hero + section {
  padding-top: clamp(2.5rem, 4vw, 3.5rem); }

@media (max-width: 420px) {
  .rd-hero h1, .rd-hero .h1 {
    font-size: clamp(1.75rem, 8vw, 2.15rem);
    hyphens: manual;
    overflow-wrap: break-word; } }
