@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/de38a2180d942fa5.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/2f5adf1176f98d7b.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/de38a2180d942fa5.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/2f5adf1176f98d7b.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/de38a2180d942fa5.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/2f5adf1176f98d7b.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/de38a2180d942fa5.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/2f5adf1176f98d7b.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/de38a2180d942fa5.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}@font-face{font-family:'Montserrat';font-style:normal;font-weight:900;font-display:swap;src:url(/assets/fonts/2f5adf1176f98d7b.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}
:root{--color-bg:#ffffff;--color-surface:#f6f7f9;--color-surface-2:#eceff3;--color-text:#14171c;--color-text-muted:#555d6b;--color-border:#dde1e7;--color-primary:#1f5eff;--color-primary-contrast:#ffffff;--color-accent:#ffb020;--color-accent-contrast:#14171c;--color-focus:#1f5eff;--font-heading:"Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--radius-sm:8px;--radius-md:14px;--radius-lg:24px;--radius-pill:999px;--container:1200px;--container-narrow:760px;--shadow-sm:0 1px 2px rgba(16,24,40,.06), 0 1px 3px rgba(16,24,40,.08);--shadow-md:0 12px 32px -12px rgba(16,24,40,.22);--header-h:68px}
*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:clamp(1rem,.96rem + .2vw,1.0625rem);line-height:1.6;text-rendering:optimizeLegibility}img{max-width:100%;height:auto;display:block}a{color:var(--color-primary)}h1,h2,h3{font-family:var(--font-heading);line-height:1.15;margin:0 0 .5em;overflow-wrap:anywhere;letter-spacing:-.01em}h1{font-size:clamp(2rem,1.4rem + 3vw,3.6rem);letter-spacing:-.02em}h2{font-size:clamp(1.6rem,1.25rem + 1.6vw,2.5rem)}h3{font-size:clamp(1.1rem,1rem + .5vw,1.35rem)}p{margin:0 0 1em}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-radius:4px}.eyebrow{display:inline-block;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-block-end:.75rem}.langs{display:flex;gap:2px;list-style:none;margin:0;padding:0}.langs a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;justify-content:center;padding-inline:8px;font-size:.85rem;font-weight:600;color:var(--color-text-muted);text-decoration:none;border-radius:var(--radius-sm);text-transform:uppercase}.langs a[aria-current=true]{color:var(--color-text);background:var(--color-surface)}.menu{margin-inline-start:auto}.menu>summary{list-style:none;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:pointer}.menu>summary::-webkit-details-marker{display:none}.menu__panel{position:absolute;inset-inline:0;inset-block-start:var(--header-h);background:var(--color-bg);border-block-end:1px solid var(--color-border);padding:12px clamp(16px,4vw,32px) 20px;box-shadow:var(--shadow-md)}.menu__panel ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.menu__panel a{display:flex;align-items:center;min-height:48px;padding-inline:8px;color:var(--color-text);text-decoration:none;font-weight:500;border-radius:var(--radius-sm)}@media (min-width:960px){.menu{display:none}.langs{margin-inline-start:4px}}.hero__points{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px}.hero__points li{display:flex;gap:10px;align-items:flex-start;font-weight:500}.hero__points svg{flex:none;margin-block-start:3px;color:var(--color-primary)}.page-header__grid{display:grid;gap:24px;align-items:center}@media (min-width:900px){.page-header__grid{grid-template-columns:1.2fr .8fr}}.footer-grid{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.footer-grid h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;opacity:.6;margin-block-end:14px}.footer-bottom{margin-block-start:40px;padding-block-start:20px;border-block-start:1px solid color-mix(in srgb,var(--color-bg) 18%,transparent);font-size:.875rem;opacity:.7;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}.mcta{position:fixed;inset-inline:0;inset-block-end:0;z-index:60;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--color-bg);border-block-start:1px solid var(--color-border);box-shadow:0 -8px 24px -12px rgba(0,0,0,.25)}body{padding-block-end:76px}@media (min-width:960px){.mcta{display:none}body{padding-block-end:0}}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

picture.media-picture{display:contents}h1,h2,h3{overflow-wrap:anywhere}.dej-lg{display:block;height:36px;width:auto;max-width:190px;object-fit:contain}.dej-summary-sec{padding-block:clamp(16px,3vw,32px) 0}.dej-toc-sec{padding-block:clamp(12px,2vw,24px) 0}.dej-meta{font-size:.9rem;margin:.25em 0 1em}.table-wrap{overflow-x:auto}
/* ==========================================================================
   Core styles — reset, typography, shell, header, navigation, mobile menu,
   footer, buttons, prose, utilities
   ========================================================================== */

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

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--color-bg, #ffffff);
  color: #003c84;
  font-family: var(--font-body, 'Montserrat', Arial, sans-serif);
  font-size: 18px;
  line-height: 25px;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

body.is-locked { overflow: hidden; }

img, svg, video, canvas { display: block; max-width: 100%; }
img { height: auto; }
figure { margin: 0; }

a { color: inherit; text-decoration: none; }

button, input, select, textarea { font: inherit; color: inherit; }
button {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

h1, h2, h3, h4, h5, h6, p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }

/* --------------------------- typography --------------------------------- */
h1, .h1 {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 54px;
  font-weight: 900;
  line-height: 56px;
  letter-spacing: -0.36px;
  text-transform: uppercase;
  color: inherit;
}

h2, .h2 {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 36px;
  font-weight: 700;
  line-height: 43px;
  letter-spacing: normal;
  color: #003c84;
}

/* H3 stays below H2 in the scale (36 → 28 → 20) */
h3, .h3 {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 28px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: normal;
  color: #003c84;
}

h4, .h4 {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 26px;
  color: #003c84;
}

p, .text-body { font-size: 18px; font-weight: 400; line-height: 25px; }

.text-lead { font-size: 18px; font-weight: 600; line-height: 25px; }
.text-small { font-size: 14px; font-weight: 500; line-height: 20px; }
.text-uppercase { text-transform: uppercase; }

/* ------------------------------ layout ---------------------------------- */
/* measured: 1320px content column on the home page, 1560px in the footer,
   1600px inside content pages (widened by styles.fix.css) */
.container {
  width: min(100% - 40px, 1320px);
  max-width: 1320px;
  margin-inline: auto;
  padding-inline: 0;
}

.container--narrow {
  width: min(100% - 40px, 1320px);
  max-width: 1320px;
}

.container--wide {
  width: min(100% - 40px, 1600px);
  max-width: 1600px;
}

[data-region="main"] { display: block; }

[id] { scroll-margin-top: 110px; }

/* ------------------------------ icons ----------------------------------- */
[data-icon] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  font-size: 20px;
  line-height: 0;
  flex: none;
}
[data-icon] svg { width: 100%; height: 100%; }
.icon-20 { width: 20px; height: 20px; font-size: 20px; }
.icon-24 { width: 24px; height: 24px; font-size: 24px; }

/* ------------------------------ buttons --------------------------------- */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 16px 30px;
  border: 1px solid var(--color-border, #000000);
  border-radius: 50px;
  background-color: transparent;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  color: var(--color-primary-contrast, #003c84);
  overflow: hidden;
  isolation: isolate;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.3s ease-out, box-shadow 0.2s ease-out,
              background-color 0.2s ease-out, color 0.2s ease-out,
              border-color 0.2s ease-out;
}

.btn > * { position: relative; z-index: 1; }

.btn--primary {
  padding: 16px 30px;
  border-radius: 50px;
  border: 1px solid var(--color-border, #000000);
  background-image: linear-gradient(90deg, #71d7ff 0%, #d5f57e 100%);
  box-shadow: rgb(0, 60, 132) -2px 2px 0 0;
  color: var(--color-primary-contrast, #003c84);
  text-transform: none;
}

.btn--primary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(90deg, #71d7ff, #71d7ff);
  opacity: 0;
  transition: opacity 0.3s ease-out;
}

.btn--pill {
  padding: 10px 20px;
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 160px;
  background-color: var(--color-primary, #d5f57e);
  background-image: none;
  box-shadow: rgb(0, 60, 132) -3.2px 3.2px 0 0;
  color: var(--color-primary-contrast, #003c84);
  font-size: 16px;
  font-weight: 700;
  line-height: 20px;
  text-transform: uppercase;
  transition: background-color 0.1s ease-in, color 0.1s ease-in,
              border-color 0.1s ease-in, box-shadow 0.2s ease-out;
}

.btn--send {
  padding: 10px 15px;
  min-height: 38px;
  border: 0;
  border-radius: 0 0 10px 0;
  background-color: var(--color-accent, #00b4ff);
  color: var(--color-accent-contrast, #ffffff);
  font-size: 16px;
  font-weight: 400;
  text-transform: none;
}

.btn--ghost {
  border: 1px solid rgba(0, 60, 132, 0.2);
  background-color: transparent;
}

@media (hover: hover) {
  .btn--primary:hover { transform: scale(1.1); }
  .btn--primary:hover::before { opacity: 1; }

  .btn--pill:hover {
    background-color: var(--color-accent, #00b4ff);
    color: var(--color-accent-contrast, #ffffff);
  }

  .btn--ghost:hover { background-color: rgba(0, 60, 132, 0.06); }}

/* ------------------------------- links ---------------------------------- */
.link {
  color: #003c84;
  transition: color 0.15s ease-out;
}
@media (hover: hover) {
  .link:hover { color: #53a1ff; }}

/* ------------------------------ focus ----------------------------------- */
:focus-visible {
  outline: 3px solid var(--color-focus, #1fb7fe);
  outline-offset: 2px;
  border-radius: 6px;
}
.btn:focus-visible { outline-offset: 3px; }

/* ---------------------------- skip link --------------------------------- */
.dej-sk {
  position: absolute;
  left: 12px;
  top: -64px;
  z-index: 200;
  padding: 10px 16px;
  border-radius: 8px;
  background: var(--color-primary, #d5f57e);
  color: var(--color-primary-contrast, #003c84);
  font-size: 14px;
  font-weight: 700;
  transition: top 0.18s ease-out;
}
.dej-sk:focus { top: 12px; }

/* ------------------------------ header ---------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--header-h, 94px);
  background: var(--color-bg, #ffffff);
  transition: box-shadow 0.2s ease-out;
}
.site-header.is-stuck { box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); }

.site-header__in {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

/* brand / logo — 209×54 in the reference */
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 54px;
  flex: none;
}
.dej-mk { width: 56px; height: 46px; flex: none; }
.dej-mk svg { width: 100%; height: 100%; }
.brand__name {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  color: #003c84;
  white-space: nowrap;
}

/* main navigation — measured: 500 16px/20px Montserrat, #003c84, gap 12px */
.nav__list {
  display: flex;
  align-items: center;
  gap: 12px;
}
.nav__list > li > a {
  display: inline-flex;
  align-items: center;
  padding: 12px 6px;
  font: 500 16px/20px var(--font-heading, 'Montserrat', sans-serif);
  color: #003c84;
  transition: color 0.15s ease-out;
}
/* no icons inside the top nav items on the reference */
.nav__list [data-icon] { display: none; }
.nav__list > li > a[aria-current="page"],
.nav__list > li > a.is-active { color: var(--color-focus, #53a1ff); }
@media (hover: hover) {
  .nav__list > li > a:hover { color: var(--color-focus, #53a1ff); }}

/* right side of the header */
.header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: none;
}

/* language switcher */
.lang { position: relative; }

.lang__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 4px 6px;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 500;
  line-height: 20px;
  color: #003c84;
  transition: background-color 0.15s ease-out;
}
@media (hover: hover) {
  .lang__btn:hover { background-color: rgba(0, 60, 132, 0.05); }}

.lang__flag {
  width: 24px;
  height: 16px;
  display: block;
  border-radius: 2px;
  overflow: hidden;
  flex: none;
}
.lang__flag svg { width: 100%; height: 100%; }
.lang__code { text-transform: uppercase; }
.lang__chev { color: #909090; transition: transform 0.18s ease-out; }
.lang.is-open .lang__chev { transform: rotate(180deg); }

.lang__menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 128px;
  padding: 6px;
  border-radius: 10px;
  background: var(--color-bg, #ffffff);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  z-index: 20;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity 0.18s ease-out, transform 0.18s ease-out, visibility 0s linear 0.18s;
}
.lang.is-open .lang__menu {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity 0.18s ease-out, transform 0.18s ease-out;
}
.lang__menu a {
  display: block;
  padding: 10px 12px;
  border-radius: 6px;
  font-size: 16px;
  font-weight: 500;
  line-height: 20px;
  color: #003c84;
  transition: background-color 0.15s ease-out, color 0.15s ease-out;
}
.lang__menu a.is-active { background: rgba(213, 245, 126, 0.6); }
@media (hover: hover) {
  .lang__menu a:hover { background: rgba(83, 161, 255, 0.25); }}

/* burger */
.burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #003c84;
  transition: background-color 0.15s ease-out;
}
@media (hover: hover) {
  .burger:hover { background-color: rgba(0, 60, 132, 0.06); }}

/* --------------------------- mobile menu -------------------------------- */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 120;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease-out, visibility 0s linear 0.2s;
}
.mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.2s ease-out;
}

.mobile-menu__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: rgba(0, 60, 132, 0.45);
  cursor: pointer;
}

.mobile-menu__panel {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  max-height: 100%;
  overflow-y: auto;
  padding: 12px 20px 28px;
  background: var(--color-bg, #ffffff);
  box-shadow: 0 10px 30px rgba(0, 60, 132, 0.18);
  transform: translateY(-12px);
  transition: transform 0.25s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.mobile-menu.is-open .mobile-menu__panel { transform: none; }

.mobile-menu__top {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 48px;
  margin-bottom: 4px;
}
.mobile-menu__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  color: #003c84;
  transition: background-color 0.15s ease-out;
}
@media (hover: hover) {
  .mobile-menu__close:hover { background-color: rgba(0, 60, 132, 0.06); }}

.menu-nav { display: flex; flex-direction: column; }
.menu-nav > li > a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 12px 4px;
  border-bottom: 1px solid rgba(0, 60, 132, 0.08);
  font: 500 16px/20px var(--font-heading, 'Montserrat', sans-serif);
  color: #003c84;
  transition: color 0.15s ease-out;
}
.menu-nav [data-icon] { display: inline-flex; width: 20px; height: 20px; font-size: 20px; color: var(--color-accent, #00b4ff); }
@media (hover: hover) {
  .menu-nav > li > a:hover { color: var(--color-focus, #53a1ff); }}

.menu-anchors {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0;
}
.menu-anchors a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 14px;
  border-radius: 50px;
  background: var(--color-surface, #f5f5f6);
  font-size: 14px;
  font-weight: 600;
  color: #003c84;
  transition: background-color 0.15s ease-out;
}
@media (hover: hover) {
  .menu-anchors a:hover { background: rgba(213, 245, 126, 0.6); }}

.menu-langs { margin-bottom: 20px; }
.menu-langs__list { display: flex; flex-wrap: wrap; gap: 8px; }
.menu-langs__list a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid rgba(0, 60, 132, 0.15);
  border-radius: 50px;
  font-size: 14px;
  font-weight: 600;
  color: #003c84;
  transition: background-color 0.15s ease-out, border-color 0.15s ease-out;
}
.menu-langs__list a.is-active {
  background: var(--color-primary, #d5f57e);
  border-color: transparent;
}

.menu-cta { width: 100%; }

/* ------------------------------ footer ---------------------------------- */
.site-footer {
  padding: 24px 20px;
  color: #003c84;
  transition: color 0.2s ease-out;
}
.site-footer .container {
  width: min(100% - 40px, 1560px);
  max-width: 1560px;
}

.footer__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 54px;
}

.footer__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 18px;
  min-width: 49px;
  padding: 0 5px;
  border: 1.5px solid #0000ee;
  border-radius: 3px;
  color: #0000ee;
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
  flex: none;
}

.footer__copy {
  flex: 1 1 auto;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  text-transform: uppercase;
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
}

.footer__logo { flex: none; }

.footer__legal {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(0, 60, 132, 0.08);
}
.footer__legal ul {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: center;
}
.footer__legal a {
  font-size: 14px;
  font-weight: 400;
  line-height: 18px;
  text-transform: uppercase;
  transition: color 0.15s ease-out;
}
@media (hover: hover) {
  .footer__legal a:hover { color: #53a1ff; }}

/* ------------------------------ prose ----------------------------------- */
.prose {
  width: min(100% - 40px, 1600px);
  margin-inline: auto;
  padding: 0;
  color: #003c84;
}

.prose h1 {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 32px;
  font-weight: 700;
  line-height: 40px;
  letter-spacing: normal;
  text-transform: none;
  color: #003c84;
}

.prose h2 {
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: normal;
  color: #003c84;
}

.prose h3 {
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: normal;
  color: #003c84;
}

.prose p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
  max-width: 72ch;
  color: #003c84;
}

.prose .section,
.prose section { padding-top: 32px; }

.prose ul > li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 20px;
  max-width: 72ch;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
}
.prose ul > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-focus, #1fb7fe);
}

.prose ol { counter-reset: prose-item; }
.prose ol > li {
  position: relative;
  counter-increment: prose-item;
  padding-left: 28px;
  margin-bottom: 12px;
  max-width: 72ch;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
}
.prose ol > li::before {
  content: counter(prose-item) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
  color: #003c84;
}

.prose a {
  color: var(--color-focus, #1fb7fe);
  text-decoration: underline;
}
@media (hover: hover) {
  .prose a:hover { color: #53a1ff; }}

.prose hr {
  border: 0;
  border-top: 1px solid rgba(0, 60, 132, 0.2);
  margin: 24px 0;
}

.prose blockquote {
  padding: 16px 24px;
  border-left: 1px solid rgba(0, 60, 132, 0.2);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
}

.prose .table-wrap { overflow-x: auto; }
.prose table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}
.prose th, .prose td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(0, 60, 132, 0.12);
  text-align: left;
}

/* ----------------------------- utilities -------------------------------- */
.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.text-center { text-align: center; }
.tabular { font-variant-numeric: tabular-nums; }

/* --------------------------- breakpoints -------------------------------- */
@media (max-width: 1024px) {
  .nav { display: none; }
  .header-actions .btn--pill { display: none; }
  .burger { display: inline-flex; }

  .lang__btn {
    width: 40px;
    height: 40px;
    min-height: 40px;
    justify-content: center;
    padding: 0;
    border-radius: 50%;
    background: var(--color-surface, #f5f5f6);
  }
  .lang__code, .lang__chev { display: none; }
  .lang__menu { right: -8px; }
}

@media (max-width: 750px) {
  body { font-size: 15px; line-height: 1.45; }

  .site-header { height: 71px; }
  .site-header__in { padding-inline: 12px; }

  .brand { height: 40px; }
  .dej-mk { width: 38px; height: 32px; }
  .brand__name { font-size: 20px; }

  .header-actions { gap: 8px; }
  .lang__btn { width: 40px; height: 40px; }

  h1, .h1 { font-size: 24px; line-height: 28px; letter-spacing: 0; }
  h2, .h2 { font-size: 36px; line-height: 43.2px; }
  h3, .h3 { font-size: 18px; line-height: 22.5px; font-weight: 900; letter-spacing: 0; }
  h4, .h4 { font-size: 17px; line-height: 22px; }
  p, .text-body { font-size: 15px; line-height: 1.45; }
  .text-lead { font-size: 15px; line-height: 1.45; }

  .btn { font-size: 14px; padding: 8px 16px; }
  .btn--primary { padding: 8px 16px; min-height: 36px; }
  .btn--pill { font-size: 14px; min-height: 36px; }
  .btn--send { font-size: 13.5px; padding: 10px 15px; min-height: 38px; }

  .container,
  .container--narrow,
  .container--wide { width: calc(100% - 30px); max-width: none; }
  .prose { width: calc(100% - 30px); }

  .site-footer { padding: 20px 8px; }
  .site-footer .container { width: 100%; max-width: none; }
  .footer__row { flex-direction: column; gap: 8px; min-height: 0; }
  .footer__copy { font-size: 12px; line-height: 17px; }
  .footer__logo { display: none; }
  .footer__legal ul { gap: 8px; }
  .footer__legal a { font-size: 12px; line-height: 14px; }

  .prose h1 { font-size: 24px; line-height: 30px; }
  .prose h2 { font-size: 22px; line-height: 30px; }
  .prose h3 { font-size: 18px; line-height: 24px; }
  .prose p { font-size: 15px; }
  .prose ul > li, .prose ol > li { font-size: 15px; }

  [id] { scroll-margin-top: 84px; }}

/* ------------------------ reduced motion -------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
/* ==========================================================================
   Home blocks — hero, community, why-us, mosaic, final CTA
   ========================================================================== */

/* ------------------------------- shared --------------------------------- */
.btn-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}

/* radial + diagonal striped tile, exactly as the reference band */
.band {
  position: relative;
  overflow: hidden;
  color: #ffffff;
  background-color: #1fb7fe;
  background-image:
    repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.16) 0 14px, rgba(255, 255, 255, 0) 14px 52px),
    radial-gradient(118.43% 94.88% at 96.04% 85.7%, rgba(172, 239, 4, 0.21) 2.11%, #1fb7fe 75.07%);
  background-repeat: repeat, no-repeat;
  background-size: 130px 130px, cover;
  background-position: 0 0, center;
}

.icon-30 { width: 30px; height: 30px; font-size: 30px; }

/* -------------------------------- hero ----------------------------------
   measured: section 1905×574, padding 50px 162px, content column 1581px,
   row gap 16px, copy 550px (gap 30px), photo 800×474 (radius 8px)
   ------------------------------------------------------------------------ */
.hero {
  display: flex;
  align-items: center;
  min-height: 574px;
  padding: 50px clamp(16px, 8.49vw, 162px);
}

.hero .container { width: 100%; max-width: none; padding-inline: 0; }

.hero__grid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  max-width: 1581px;
  padding: 0 0 0 58px;
}

.hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 30px;
  flex: 0 1 550px;
  min-width: 0;
  max-width: 550px;
}

.hero__title {
  width: 100%;
  max-width: 550px;
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 54px;
  font-weight: 900;
  line-height: 56px;
  letter-spacing: -0.36px;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 3px 3px 0 rgba(0, 60, 132, 0.35);
}

.hero__lead {
  max-width: 550px;
  font-size: 18px;
  font-weight: 600;
  line-height: 25px;
  color: #ffffff;
}

.hero__media {
  position: relative;
  flex: 1 1 800px;
  min-width: 0;
  max-width: 800px;
  border-radius: 8px;
  background: linear-gradient(135deg, #f5e6d3 0%, #e8a87c 100%);
}

.hero__photo {
  width: 100%;
  height: 474px;
  object-fit: cover;
  object-position: center;
  border-radius: 8px;
}

/* floating chat pills above the hero visual — white, 15px radius,
   10px 15px padding, 16px/400 copy, soft 0 4px 10px shadow */
.hero__notes { position: absolute; inset: 0; pointer-events: none; }

.hero__note {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 15px;
  border-radius: 15px;
  background: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  color: #003c84;
  font-size: 16px;
  font-weight: 400;
  line-height: 20px;
  white-space: nowrap;
  animation: hero-float 4s ease-in-out infinite alternate;
}

.hero__note-avatar {
  width: 28px;
  height: 28px;
  flex: none;
  border-radius: 50%;
  background: linear-gradient(135deg, #f5e6d3, #e8a87c);
}

.hero__note-play {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  background: #1fb7fe;
  color: #ffffff;
  font-size: 14px;
}

.hero__note--1 { top: 5%; left: -8%; animation-delay: 0s; }
.hero__note--2 { top: 12%; right: -6%; animation-delay: 0.6s; }
.hero__note--3 { bottom: 26%; left: -12%; animation-delay: 1.2s; }
.hero__note--4 { bottom: 7%; right: -6%; animation-delay: 1.8s; }

@keyframes hero-float {
  from { transform: translateY(-5px); }
  to   { transform: translateY(5px); }
}

/* ------------------------------ community -------------------------------
   three «photo + text» rows, alternating sides, 1320px column, gap 64px
   ------------------------------------------------------------------------ */
.community {
  position: relative;
  padding: 64px 0;
  background: var(--color-bg, #ffffff);
}

.community__inner { position: relative; }

.community__rows {
  display: flex;
  flex-direction: column;
  gap: 64px;
}

.community__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 64px;
  min-height: 434px;
}

.community__row:nth-child(even) { flex-direction: row-reverse; }

.community__photo {
  position: relative;
  flex: 0 0 428px;
  max-width: 428px;
}

.community__photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 428 / 428;
  object-fit: cover;
  border-radius: 15px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease-out;
}

/* first and third photo are the wide 800×474 shot */
.community__row:nth-child(odd) .community__photo { flex: 0 1 800px; max-width: 800px; }
.community__row:nth-child(odd) .community__photo img { aspect-ratio: 800 / 474; }

.community__badge,
.community__heart {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
  font-size: 20px;
}

.community__badge {
  left: 14px;
  bottom: 14px;
  color: var(--color-accent, #00b4ff);
}

.community__heart {
  top: 12px;
  right: 12px;
  display: none;
  color: #ff5a8a;
  font-size: 18px;
}

.community__row:nth-child(2) .community__heart { display: flex; }

.community__body { flex: 1 1 auto; min-width: 0; max-width: 828px; }

.community__body h2 { margin-bottom: 12px; }

.community__body p {
  max-width: 62ch;
  font-size: 16px;
  font-weight: 500;
  line-height: 25px;
  color: #003c84;
}

.community__body .btn-row { margin-top: 24px; }

@media (hover: hover) {
  .community__photo img:hover { transform: scale(1.02); }}

/* chat mock window */
.community__chat {
  position: relative;
  width: 300px;
  margin: 0 auto 48px;
  z-index: 2;
}

.chat {
  position: relative;
  width: 100%;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: rgba(0, 0, 0, 0.2) 0 4px 4px;
  overflow: hidden;
}

.chat__head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
}

.chat__name {
  font-size: 13px;
  font-weight: 700;
  line-height: 16px;
  color: #003c84;
}

.chat__close {
  margin-left: auto;
  width: 14px;
  height: 14px;
  font-size: 14px;
  color: #909090;
}

.chat__avatar {
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 50%;
  background: linear-gradient(135deg, #f5e6d3, #e8a87c);
}

.chat__thread {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px 14px;
}

.chat__bubble {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 190px;
  height: 52px;
  border-radius: 12px 12px 12px 3px;
  background: linear-gradient(135deg, #d5f57e, #b7ec43);
}

.chat__bubble i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #003c84;
  opacity: 0.6;
  animation: typing 1s ease infinite;
}

.chat__bubble i:nth-child(2) { animation-delay: 0.15s; }
.chat__bubble i:nth-child(3) { animation-delay: 0.3s; }

@keyframes typing {
  0%   { transform: scale(1);   opacity: 0.6; }
  50%  { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(1);   opacity: 0.6; }
}

.chat__form { display: flex; align-items: stretch; }

.chat__field {
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 38px;
  padding: 10px;
  border: 1px solid rgba(0, 60, 132, 0.14);
  border-right: 0;
  border-radius: 0 0 0 10px;
  background: #ffffff;
  font-size: 16px;
  font-weight: 400;
  transition: background-color 0.15s ease-out;
}

.chat__placeholder { color: #757575; }

.chat__form .btn--send { flex: none; }

.chat__avatar--lg {
  position: absolute;
  right: 12px;
  bottom: -6px;
  width: 56px;
  height: 56px;
  border: 3px solid #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

@media (hover: hover) {
  .chat__field:hover { background: #f8f8f8; }}

@media (min-width: 1280px) {
  .community__chat {
    position: absolute;
    top: 24px;
    right: 0;
    margin: 0;
  }}

/* --------------------------------- why ----------------------------------
   three white cards 391×315 (radius 15, 20px padding, photo 242 round,
   headline 36/36, tag 16/22.4), arrows ‹ › on both sides
   ------------------------------------------------------------------------ */
.why { padding: 60px 20px; }

.why__inner { position: relative; }

.why__title {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 70px;
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.01em;
  text-align: center;
  color: #ffffff;
  text-shadow: 3px 3px 0 rgba(0, 60, 132, 0.25);
}

.why__carousel { position: relative; margin-top: 10px; }

.why__track {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 100%;
  padding: 144px 0 20px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.why__track::-webkit-scrollbar { display: none; }
.why__track:focus-visible { outline: 3px solid rgba(255, 255, 255, 0.8); outline-offset: 4px; }

.why__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 391px;
  width: 391px;
  min-height: 315px;
  padding: 20px;
  border-radius: 15px;
  background: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  text-align: center;
  scroll-snap-align: center;
}

.why__photo {
  width: 242px;
  height: 242px;
  margin-top: -94px;
  margin-bottom: 16px;
  border: 4px solid #ffffff;
  border-radius: 50%;
  overflow: hidden;
  flex: none;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  background: linear-gradient(135deg, #f5e6d3, #e8a87c);
}

.why__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.why__card h3 {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 36px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: -0.395px;
  color: #003c84;
}

.why__card p {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 400;
  line-height: 22.4px;
  color: #003c84;
}

.why__arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-top: -12px;
  color: #ffffff;
  border-radius: 50%;
  transition: transform 0.2s ease-out, opacity 0.2s ease-out;
}

.why__arrow--prev { left: -56px; }
.why__arrow--next { right: -56px; }
.why__arrow:disabled { opacity: 0.35; cursor: default; }

@media (hover: hover) {
  .why__arrow:not(:disabled):hover { transform: scale(1.12); }}

.why__cta {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

/* ------------------------------- mosaic ---------------------------------
   4 columns × 1600px, gap 8px, total height 804px, mixed tile heights
   ------------------------------------------------------------------------ */
.gallery { padding: 0; }

.gallery__inner {
  width: min(100% - 40px, 1600px);
  max-width: 1600px;
}

.gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: repeat(7, minmax(0, 1fr));
  gap: 8px;
  height: 804px;
}

.gallery__grid > li { min-width: 0; }

.gallery__grid > li:nth-child(1) { grid-column: 1; grid-row: 1 / span 5; }
.gallery__grid > li:nth-child(2) { grid-column: 1; grid-row: 6 / span 2; }
.gallery__grid > li:nth-child(3) { grid-column: 2; grid-row: 1 / span 3; }
.gallery__grid > li:nth-child(4) { grid-column: 2; grid-row: 4 / span 2; }
.gallery__grid > li:nth-child(5) { grid-column: 2; grid-row: 6 / span 2; }
.gallery__grid > li:nth-child(6) { grid-column: 3; grid-row: 1 / span 4; }
.gallery__grid > li:nth-child(7) { grid-column: 3; grid-row: 5 / span 3; }
.gallery__grid > li:nth-child(8) { grid-column: 4; grid-row: 1 / span 4; }
.gallery__grid > li:nth-child(9) { grid-column: 4; grid-row: 5 / span 3; }

.gallery__tile {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  overflow: hidden;
  background: linear-gradient(150deg, #dff1ff 0%, #eafad2 100%);
}

/* one tile keeps a rounded top edge, as in the reference */
.gallery__grid > li:nth-child(6) .gallery__tile { border-radius: 15px 15px 0 0; }

.gallery__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease-out, opacity 0.5s linear;
  animation: tile-fade 0.5s linear both;
}

@keyframes tile-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.gallery__play {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
}

.gallery__play-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: #003c84;
  font-size: 26px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
  transition: transform 0.2s ease-out;
}

.gallery__grid > li:nth-child(5) .gallery__play { display: flex; }

@media (hover: hover) {
  .gallery__tile:hover img { transform: scale(1.03); }
  .gallery__play:hover .gallery__play-btn { transform: scale(1.08); }}

/* ------------------------------ final CTA -------------------------------
   copy 784px + tilted phone 784px, gap 32px, band 549px tall
   ------------------------------------------------------------------------ */
.final { padding: 0; }

.final__grid {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 32px;
  width: min(100% - 40px, 1600px);
  max-width: 1600px;
  min-height: 549px;
  margin-inline: auto;
  padding: 0;
}

.final__copy { flex: 0 1 784px; max-width: 784px; }

.final__title {
  margin-bottom: 32px;
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 55px;
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -0.36px;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 3px 3px 0 rgba(0, 60, 132, 0.3);
}

.final__media {
  display: block;
  flex: 1 1 640px;
  max-width: 784px;
}

.final__media img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 24px 36px rgba(0, 60, 132, 0.3));
  animation: phone-tilt 5s ease-in-out infinite alternate;
  transform-origin: center;
}

@keyframes phone-tilt {
  from { transform: rotate(-16deg) translateY(-4px); }
  to   { transform: rotate(-12deg) translateY(4px); }
}

/* ------------------------------ responsive ------------------------------ */
@media (max-width: 1700px) {
  .why__arrow--prev { left: -24px; }
  .why__arrow--next { right: -24px; }
}

@media (max-width: 1280px) {
  .why__arrow--prev { left: 0; }
  .why__arrow--next { right: 0; }

  .final__title { font-size: 44px; }}

@media (max-width: 1024px) {
  .hero { min-height: 0; padding: 40px 24px; }

  .hero__grid {
    flex-direction: column;
    align-items: flex-start;
    gap: 30px;
    padding-left: 0;
  }

  .hero__copy { flex: 0 0 auto; max-width: 550px; }

  .hero__media { flex: 0 0 auto; width: 100%; max-width: 640px; }

  .hero__photo { height: 420px; }

  .community { padding: 56px 0; }

  .community__chat { margin-bottom: 40px; }

  .community__row { gap: 32px; min-height: 0; }

  .community__photo,
  .community__row:nth-child(odd) .community__photo { flex: 0 0 320px; max-width: 320px; }

  .community__body { max-width: none; }

  .community__body h2 { font-size: 30px; line-height: 36px; }

  .why__title { font-size: 48px; }

  .why__track { padding: 120px 0 16px; }

  .gallery__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(6, minmax(0, 1fr));
    height: 800px;
  }

  .gallery__grid > li:nth-child(1) { grid-column: 1; grid-row: 1 / span 3; }
  .gallery__grid > li:nth-child(2) { grid-column: 1; grid-row: 4 / span 3; }
  .gallery__grid > li:nth-child(3) { grid-column: 2; grid-row: 1 / span 3; }
  .gallery__grid > li:nth-child(4) { grid-column: 2; grid-row: 4 / span 3; }
  .gallery__grid > li:nth-child(n + 5) { display: none; }

  .final__grid {
    flex-wrap: wrap;
    min-height: 0;
    padding: 40px 0;
  }

  .final__title { font-size: 42px; }}

@media (max-width: 750px) {
  /* hero — 360×677, inner column 300px, copy/photo 280px */
  .hero {
    padding: 20px 30px;
    min-height: 677px;
  }

  .hero__grid {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 30px;
    padding: 0 0 0 20px;
  }

  .hero__copy { gap: 20px; max-width: 280px; }

  .hero__title { font-size: 24px; line-height: 28px; letter-spacing: 0; }
  .hero__lead { font-size: 13px; font-weight: 600; line-height: 17px; max-width: 280px; }

  .hero__media { max-width: 280px; width: 100%; }

  .hero__photo { height: 300px; border-radius: 15px; }

  .hero__note { padding: 8px 10px; font-size: 11px; line-height: 14px; gap: 6px; border-radius: 10px; }
  .hero__note-avatar { width: 20px; height: 20px; }
  .hero__note-play { width: 18px; height: 18px; font-size: 11px; }
  .hero__note--1 { top: 2%; left: -4%; }
  .hero__note--2 { top: 9%; right: -3%; }
  .hero__note--3 { bottom: 28%; left: -10px; }
  .hero__note--4 { bottom: 5%; right: -3%; }

  /* community — each group 673px tall: photo 324 + text block */
  .community { padding: 54px 0; }

  .community__chat { width: 300px; max-width: 100%; margin: 0 auto 27px; }

  .community__rows { gap: 27px; }

  .community__row,
  .community__row:nth-child(even) {
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: 27px;
    min-height: 673px;
    text-align: center;
  }

  .community__photo,
  .community__row:nth-child(odd) .community__photo {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    max-width: 324px;
  }

  .community__photo img,
  .community__row:nth-child(odd) .community__photo img {
    aspect-ratio: 1 / 1;
    border-radius: 15px;
  }

  .community__body { max-width: 324px; }
  .community__body h2 { margin-bottom: 14px; }
  .community__body p { font-size: 16px; line-height: 25.6px; }
  .community__body .btn-row { margin-top: 20px; justify-content: center; }

  /* why — three cards stacked, 135px apart, 320×250 */
  .why { padding: 60px 20px; }

  .why__title { font-size: 34px; line-height: 1.15; }

  .why__track {
    flex-direction: column;
    align-items: center;
    gap: 135px;
    padding: 100px 0 0;
    overflow: visible;
    scroll-snap-type: none;
  }

  .why__card { flex: 0 0 auto; width: 100%; max-width: 320px; min-height: 250px; }

  .why__card:nth-child(n + 4) { display: none; }

  .why__photo { width: 160px; height: 160px; margin-top: -70px; margin-bottom: 12px; }

  .why__card h3 { font-size: 18px; font-weight: 900; line-height: 22.5px; letter-spacing: 0; }

  .why__card p { font-size: 15px; line-height: 21px; }

  .why__arrow { display: none; }

  .why__cta { margin-top: 60px; }

  /* mosaic — one column, stacked photos */
  .gallery__inner { width: calc(100% - 30px); max-width: none; }

  .gallery__grid {
    display: flex;
    flex-direction: column;
    gap: 16px;
    height: auto;
  }

  .gallery__grid > li:nth-child(n) { grid-area: auto; }
  .gallery__grid > li:nth-child(n + 5) { display: none; }
  .gallery__grid > li:nth-child(n) .gallery__tile { border-radius: 15px; }

  .gallery__grid > li:nth-child(1) .gallery__tile { height: 320px; }
  .gallery__grid > li:nth-child(n + 2) .gallery__tile { height: 180px; }

  /* final CTA — 360×380, phone above the copy */
  .final__grid {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 20px;
    width: calc(100% - 30px);
    min-height: 380px;
    padding: 0;
  }

  .final__copy { flex: 0 0 auto; max-width: 100%; order: 2; }

  .final__title {
    margin-bottom: 20px;
    font-size: 18px;
    font-weight: 900;
    line-height: 22.5px;
    letter-spacing: 0;
    text-shadow: 2px 2px 0 rgba(0, 60, 132, 0.3);
  }

  .final__media { flex: 0 0 auto; width: 100%; max-width: 324px; order: 1; }
  .final__media img { max-height: 190px; }}

/* --------------------------- reduced motion ----------------------------- */
@media (prefers-reduced-motion: reduce) {
  .hero__note,
  .chat__bubble i,
  .final__media img,
  .gallery__tile img {
    animation: none !important;
  }
}
/* ==========================================================================
   Content blocks — page header, text, features, steps, faq, cta, contacts,
   legal text, posts, related, summary
   ========================================================================== */

/* ------------------------------- shared --------------------------------- */
.section { padding: 0; }
.section--alt {
  background: var(--color-surface-2, #f8f8f8);
  padding-block: 48px;
}

.muted { color: #003c84; opacity: 0.7; }

.section__head {
  max-width: 1180px;
  margin: 0 auto 32px;
  text-align: center;
}
.section__head h2 { text-transform: uppercase; letter-spacing: -0.2px; }
.section__head .muted {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  max-width: 72ch;
  margin-inline: auto;
}

.btn-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}

/* blue/lime striped band — same construction as the home band */
.band-pattern {
  position: relative;
  overflow: hidden;
  color: #ffffff;
  background-color: #1fb7fe;
  background-image:
    repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.16) 0 14px, rgba(255, 255, 255, 0) 14px 52px),
    radial-gradient(118.43% 94.88% at 96.04% 85.7%, rgba(172, 239, 4, 0.21) 2.11%, #1fb7fe 75.07%);
  background-repeat: repeat, no-repeat;
  background-size: 130px 130px, cover;
  background-position: 0 0, center;
}

/* compact primary CTA used on inner pages (lime pill, 112×42) */
.prose .btn--primary,
[data-role="text"] .btn--primary,
[data-role="page-header"] .btn--primary,
[data-role="cta"] .btn--primary,
[data-role="contacts"] .btn--primary,
[data-role="faq"] .btn--primary {
  padding: 10px 20px;
  min-height: 42px;
  border: 1px solid transparent;
  border-radius: 160px;
  background-color: var(--color-primary, #d5f57e);
  background-image: none;
  box-shadow: -3.2px 3.2px 0 #003c84;
  color: var(--color-primary-contrast, #003c84);
  font-size: 16px;
  font-weight: 700;
  line-height: 20px;
  text-transform: uppercase;
}
.prose .btn--primary::before,
[data-role="text"] .btn--primary::before,
[data-role="page-header"] .btn--primary::before,
[data-role="cta"] .btn--primary::before,
[data-role="contacts"] .btn--primary::before,
[data-role="faq"] .btn--primary::before { content: none; }

@media (hover: hover) {
  .prose .btn--primary:hover,
  [data-role="text"] .btn--primary:hover,
  [data-role="page-header"] .btn--primary:hover,
  [data-role="cta"] .btn--primary:hover,
  [data-role="contacts"] .btn--primary:hover,
  [data-role="faq"] .btn--primary:hover {
    transform: none;
    background-color: var(--color-accent, #00b4ff);
    color: #ffffff;
  }}

/* ---------------------------- prose spacing ----------------------------- */
.prose p + p,
.prose p + ul,
.prose p + ol,
.prose ul + p,
.prose ol + p,
.prose ul + ul,
.prose table + p { margin-top: 16px; }

.prose h2 + p,
.prose h3 + p { margin-top: 12px; }

.prose h2 + ul,
.prose h3 + ul,
.prose h2 + ol,
.prose h3 + ol { margin-top: 16px; }

.prose strong { font-weight: 700; }

.prose .table-wrap {
  margin: 20px 0;
  border: 1px solid rgba(0, 60, 132, 0.12);
  border-radius: 12px;
  overflow: hidden;
}
.prose .table-wrap table { border-collapse: collapse; }
.prose .table-wrap th { background: rgba(0, 60, 132, 0.04); font-weight: 700; }
.prose .table-wrap th,
.prose .table-wrap td { padding: 12px 16px; border-bottom: 1px solid rgba(0, 60, 132, 0.12); }
.prose .table-wrap tr:last-child td { border-bottom: 0; }

/* ------------------------------ page header ----------------------------- */
.page-header { padding: 40px 0 44px; }

.page-header__in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.page-header__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  flex: 1 1 auto;
  max-width: 820px;
  min-width: 0;
}

.page-header h1 {
  color: #ffffff;
  text-shadow: 3px 3px 0 rgba(0, 60, 132, 0.35);
}

.page-header__lead {
  max-width: 72ch;
  font-size: 18px;
  font-weight: 600;
  line-height: 25px;
  color: #ffffff;
}

.page-header__media { flex: 0 0 380px; max-width: 380px; }
.page-header__media img {
  width: 100%;
  height: auto;
  border-radius: 15px;
  object-fit: cover;
}

.crumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  line-height: 18px;
}
.crumbs li { display: inline-flex; align-items: center; gap: 8px; }
.crumbs li + li::before { content: "/"; color: rgba(255, 255, 255, 0.55); }
.crumbs a { color: rgba(255, 255, 255, 0.85); transition: color 0.15s ease-out; }

@media (hover: hover) {
  .crumbs a:hover { color: #d5f57e; }}

/* -------------------------------- text ---------------------------------- */
[data-role="text"] { padding: 0; }

[data-role="text"] > .container > h2 {
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: -0.2px;
}

[data-role="text"] > .container > h2 + .prose { padding-top: 32px; }

[data-role="text"] .prose { padding: 32px 0 0; }
[data-role="text"] .prose h2 {
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: -0.2px;
}
[data-role="text"] .prose h3 {
  margin-top: 4px;
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: normal;
}
[data-role="text"] .prose p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  max-width: 72ch;
}

/* ------------------------------ features -------------------------------- */
.cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 40px;
  row-gap: 28px;
}

.card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(0, 60, 132, 0.08);
  text-align: left;
}

.card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 44px;
  height: 44px;
  border: 2px solid var(--color-primary, #d5f57e);
  border-radius: 50%;
  color: var(--color-accent, #00b4ff);
  transition: transform 0.25s ease-out, border-color 0.2s ease-out;
}
.card__icon svg { width: 22px; height: 22px; }

.card__body { min-width: 0; }
.card h3 {
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  letter-spacing: normal;
}
.card p {
  margin-top: 6px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  color: #003c84;
  opacity: 0.85;
  max-width: 48ch;
}

@media (hover: hover) {
  .card:hover .card__icon { transform: scale(1.06); border-color: var(--color-accent, #00b4ff); }}

/* -------------------------------- steps --------------------------------- */
[data-role="steps"] .steps {
  counter-reset: step;
  max-width: 1080px;
  margin-inline: auto;
}

[data-role="steps"] .steps > li {
  counter-increment: step;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid rgba(0, 60, 132, 0.08);
}
[data-role="steps"] .steps > li:last-child { border-bottom: 0; }

[data-role="steps"] .steps > li::before {
  content: counter(step);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-image: linear-gradient(135deg, #71d7ff 0%, #d5f57e 100%);
  box-shadow: -2px 2px 0 #003c84;
  color: var(--color-primary-contrast, #003c84);
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}

[data-role="steps"] .steps__body { flex: 1 1 auto; min-width: 0; }
[data-role="steps"] .steps h3 {
  font-size: 20px;
  font-weight: 700;
  line-height: 26px;
  letter-spacing: normal;
}
[data-role="steps"] .steps p {
  margin-top: 8px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
  color: #003c84;
  opacity: 0.9;
  max-width: 72ch;
}

/* --------------------------------- faq ---------------------------------- */
[data-role="faq"] .faq {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 1080px;
  margin-inline: auto;
}

[data-role="faq"] details {
  border-radius: 15px;
  background: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

[data-role="faq"] summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
  padding: 18px 24px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  color: #003c84;
  transition: color 0.15s ease-out;
}
[data-role="faq"] summary::-webkit-details-marker { display: none; }
[data-role="faq"] summary::marker { content: ""; }

[data-role="faq"] .faq__icon {
  flex: none;
  width: 24px;
  height: 24px;
  font-size: 24px;
  color: var(--color-accent, #00b4ff);
  transition: transform 0.25s ease-out;
}
[data-role="faq"] details[open] .faq__icon { transform: rotate(45deg); }

[data-role="faq"] .faq__a {
  padding: 0 24px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
  color: #003c84;
  overflow: hidden;
}
[data-role="faq"] .faq__a > *:first-child { margin-top: 0; }
[data-role="faq"] .faq__a > *:last-child { margin-bottom: 20px; }
[data-role="faq"] .faq__a a { color: var(--color-focus, #1fb7fe); text-decoration: underline; }

@media (hover: hover) {
  [data-role="faq"] summary:hover { color: #53a1ff; }
  [data-role="faq"] summary:hover .faq__icon { color: #53a1ff; }}

/* --------------------------------- cta ---------------------------------- */
[data-role="cta"] { padding: 0; }

.cta-band { padding: 56px 0; }

.cta-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 460px);
  grid-template-areas:
    "copy art"
    "btn art";
  align-items: start;
  column-gap: 32px;
  row-gap: 28px;
}

.cta-box__copy { grid-area: copy; align-self: end; }

.cta-box__copy h2 {
  max-width: 620px;
  font-size: 55px;
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: -0.36px;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow: 3px 3px 0 rgba(0, 60, 132, 0.3);
}

.cta-box__text {
  margin-top: 16px;
  max-width: 72ch;
  font-size: 18px;
  font-weight: 600;
  line-height: 25px;
  color: #ffffff;
}

.cta-box > .btn { grid-area: btn; justify-self: start; align-self: start; }

.cta-box__art { grid-area: art; align-self: center; justify-self: end; width: 100%; }

.cta-phone {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 24px 36px rgba(0, 60, 132, 0.3));
  animation: cta-float 5s ease-in-out infinite alternate;
}

@keyframes cta-float {
  from { transform: translateY(-6px); }
  to   { transform: translateY(6px); }
}

/* ------------------------------ contacts -------------------------------- */
.contact-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.contact-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 24px;
  border-radius: 15px;
  background: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.contact-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-bottom: 6px;
  border: 2px solid var(--color-primary, #d5f57e);
  border-radius: 50%;
  color: var(--color-accent, #00b4ff);
}
.contact-item__icon svg { width: 22px; height: 22px; }

.contact-item__label {
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #003c84;
  opacity: 0.6;
}

.contact-item__value {
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  color: #003c84;
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
  transition: color 0.15s ease-out;
}
a.contact-item__value { text-decoration: none; }

@media (hover: hover) {
  a.contact-item__value:hover { color: #53a1ff; }}

/* ----------------------------- legal text ------------------------------- */
/* inner page: no vertical section padding, every following block 32px top */
.section--legal { padding: 0; }

.prose--legal { padding: 0; }

.prose--legal h1 {
  font-size: 32px;
  font-weight: 700;
  line-height: 40px;
  letter-spacing: normal;
  text-transform: none;
  color: #003c84;
}

.prose--legal h2 {
  margin-top: 32px;
  padding-top: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  color: #003c84;
}
.prose--legal section > h2:first-child { margin-top: 0; }
.prose--legal h1 + h2 { margin-top: 32px; }

.prose--legal h3 {
  margin-top: 24px;
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
}

.prose--legal p {
  max-width: 72ch;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
}

.prose--legal ul > li,
.prose--legal ol > li {
  max-width: 72ch;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
}

.prose--legal hr {
  margin: 20px 0 24px;
  border: 0;
  border-top: 1px solid rgba(0, 60, 132, 0.2);
}

.prose--legal h1 + hr { margin-top: 18px; }

.prose--legal .legal-block { margin-top: 20px; }
.prose--legal .legal-block p { margin: 0; }

/* ------------------------- posts / related lists ------------------------ */
.dej-posts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 32px 20px;
}
.dej-posts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.dej-post {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.dej-post__media {
  position: relative;
  border-radius: 15px;
  overflow: hidden;
  background: var(--color-surface, #f5f5f6);
}

.dej-post__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 15px;
  transition: transform 0.3s ease-out;
  animation: ns-fade 0.5s linear both;
}

@keyframes ns-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.dej-post__tag {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 40px 14px 12px;
  background: linear-gradient(180deg, rgba(0, 60, 132, 0) 0%, rgba(0, 60, 132, 0.85) 100%);
  color: #ffffff;
  font-size: 17px;
  font-weight: 700;
  line-height: 22px;
}

.dej-post__link {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  color: #003c84;
  transition: color 0.15s ease-out;
}

.dej-post__text {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  max-width: 40ch;
}

.dej-post__date {
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  font-variant-numeric: tabular-nums;
}

@media (hover: hover) {
  .dej-post:hover .dej-post__img { transform: scale(1.04); }
  .dej-post:hover .dej-post__link { color: #53a1ff; }}

.dej-posts__more { margin-top: 32px; text-align: center; }
.dej-posts__more-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 4px;
  font-size: 16px;
  font-weight: 700;
  color: #003c84;
  text-decoration: underline;
  text-decoration-color: var(--color-primary, #d5f57e);
  text-decoration-thickness: 3px;
  text-underline-offset: 5px;
  transition: color 0.15s ease-out;
}
@media (hover: hover) {
  .dej-posts__more-link:hover { color: #53a1ff; }}

/* ------------------------------- summary -------------------------------- */
.dej-summary-sec { background: var(--color-surface-2, #f8f8f8); }

.dej-summary {
  padding: 32px 36px;
  border-radius: 15px;
  background: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.dej-summary__title {
  margin-bottom: 20px;
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  letter-spacing: -0.2px;
  text-transform: uppercase;
  color: #003c84;
}

.dej-summary ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 32px;
}

.dej-summary li {
  position: relative;
  padding-left: 24px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: #003c84;
}
.dej-summary li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-accent, #00b4ff);
}

/* ------------------------------ responsive ------------------------------ */
@media (max-width: 1280px) {
  .dej-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .page-header { padding: 32px 0 36px; }
  .page-header__in { flex-direction: column; align-items: flex-start; gap: 24px; }
  .page-header__media { flex: 0 0 auto; width: 100%; max-width: 420px; }

  .cards { grid-template-columns: minmax(0, 1fr); }

  .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .cta-box {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "art"
      "copy"
      "btn";
    row-gap: 24px;
  }
  .cta-box__art { justify-self: center; max-width: 360px; }
  .cta-box__copy h2 { font-size: 34px; }

  .dej-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dej-posts--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }}

@media (max-width: 750px) {
  .section__head { margin-bottom: 24px; }
  .section__head .muted { font-size: 15px; }

  .page-header { padding: 24px 0 28px; }
  .page-header h1 { font-size: 24px; line-height: 28px; letter-spacing: 0; }
  .page-header__lead { font-size: 15px; line-height: 1.45; }

  [data-role="text"] > .container > h2 { font-size: 22px; line-height: 30px; }
  [data-role="text"] .prose h2 { font-size: 22px; line-height: 30px; }
  [data-role="text"] .prose h3 { font-size: 18px; line-height: 26px; }

  [data-role="steps"] .steps > li { gap: 14px; padding: 18px 0; }
  [data-role="steps"] .steps > li::before { width: 40px; height: 40px; font-size: 17px; }
  [data-role="steps"] .steps h3 { font-size: 18px; line-height: 24px; }

  [data-role="faq"] summary { padding: 16px 18px; font-size: 16px; line-height: 22px; }
  [data-role="faq"] .faq__a { padding: 0 18px; font-size: 15px; }

  .cta-band { padding: 40px 0; }
  .cta-box__copy h2 { font-size: 26px; line-height: 1.1; }
  .cta-box__text { font-size: 15px; line-height: 1.45; }
  .cta-box__art { max-width: 280px; }

  .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-item { padding: 20px; }

  .section--legal { padding: 0; }
  .prose--legal h1 { font-size: 28px; line-height: 34px; }
  .prose--legal h2 { font-size: 22px; line-height: 30px; margin-top: 28px; }
  .prose--legal p,
  .prose--legal ul > li,
  .prose--legal ol > li { font-size: 15px; }

  .dej-posts { gap: 24px 16px; }
  .dej-post__link { font-size: 16px; line-height: 22px; }
  .dej-post__tag { font-size: 15px; padding: 30px 12px 10px; }

  .dej-summary { padding: 24px 20px; }
  .dej-summary__title { font-size: 20px; line-height: 26px; }
  .dej-summary ul { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .dej-summary li { font-size: 15px; }}

@media (max-width: 560px) {
  .dej-posts,
  .dej-posts--3 { grid-template-columns: minmax(0, 1fr); }}
/* ==========================================================================
   Blog — article list, related rail, summary panel, article body,
   article header meta, table of contents, reading progress
   ========================================================================== */

/* ------------------------------- sections ------------------------------- */
.dej-blog,
.dej-related,
.dej-summary-sec {
  padding-block: 60px;
}

.dej-related {
  background: var(--color-surface-2, #f8f8f8);
}

.dej-article { padding-block: 40px; }

/* ------------------------------ article list ---------------------------- */
.dej-posts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.dej-post {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  transition: transform 0.25s ease-out;
}

.dej-post__img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 15px;
  background: var(--color-surface, #f5f5f6);
}
.dej-post__img:not([src]),
.dej-post__img[src=""] { display: none; }

.dej-post__tag {
  align-self: flex-start;
  display: inline-block;
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--color-primary, #d5f57e);
  color: var(--color-primary-contrast, #003c84);
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.dej-post__tag:empty { display: none; }

.dej-post__link {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  color: var(--color-text, #003c84);
  transition: color 0.15s ease-out;
}
.dej-post__link::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 15px;
}
.dej-post__link:focus-visible { outline: none; }
.dej-post__link:focus-visible::after {
  outline: 3px solid var(--color-focus, #1fb7fe);
  outline-offset: 3px;
}

.dej-post__text {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 15px;
  font-weight: 500;
  line-height: 22px;
  color: var(--color-text, #003c84);
  opacity: 0.72;
}
.dej-post__text:empty { display: none; }

.dej-post__date {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 12px;
  margin-top: auto;
  padding-top: 2px;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--color-text, #003c84);
  opacity: 0.6;
  font-variant-numeric: tabular-nums;
}
.dej-post__date > span + span::before {
  content: "\00b7";
  margin-right: 10px;
}
.dej-post__date:empty { display: none; }

/* featured (first) card */
@media (min-width: 1100px) {
  .dej-blog .dej-posts > .dej-post:first-child { grid-column: span 2; }
  .dej-blog .dej-posts > .dej-post:first-child .dej-post__link {
    font-size: 27px;
    line-height: 34px;
  }
  .dej-blog .dej-posts > .dej-post:first-child .dej-post__text {
    font-size: 16px;
    line-height: 24px;
    -webkit-line-clamp: 2;
  }
}

/* ------------------------------- related -------------------------------- */
.dej-related__head { margin-bottom: 32px; }

.dej-posts--compact .dej-post__link {
  font-size: 17px;
  line-height: 23px;
}
.dej-posts--compact .dej-post__text {
  font-size: 14px;
  line-height: 20px;
  -webkit-line-clamp: 2;
}

.dej-posts__more {
  margin: 32px 0 0;
  text-align: center;
}

/* ------------------------------- summary -------------------------------- */
.dej-summary {
  max-width: 1000px;
  margin-inline: auto;
  padding: 32px 40px;
  border-radius: 15px;
  border: 1px solid rgba(0, 60, 132, 0.1);
  background: var(--color-surface-2, #f8f8f8);
}

.dej-summary__title {
  margin-bottom: 16px;
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  color: var(--color-text, #003c84);
}

.dej-summary ul {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.dej-summary li {
  position: relative;
  padding-left: 26px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--color-text, #003c84);
}
.dej-summary li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-primary, #d5f57e);
  border: 1px solid rgba(0, 60, 132, 0.25);
}

/* ------------------------------ article body ---------------------------- */
.dej-article__col {
  max-width: 740px;
  margin-inline: auto;
}

.dej-article__col > h2 {
  margin-bottom: 20px;
  font-size: 32px;
  line-height: 40px;
}
.dej-article__col > h2:empty { display: none; }

.dej-article .prose {
  max-width: none;
  padding: 0;
}

.dej-article .prose p {
  max-width: none;
  margin-bottom: 20px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.7;
}

.dej-article .prose h2 {
  margin: 36px 0 14px;
  font-size: 28px;
  line-height: 36px;
}
.dej-article .prose h3 {
  margin: 32px 0 12px;
  font-size: 24px;
  line-height: 32px;
  letter-spacing: normal;
}

.dej-article .prose ul,
.dej-article .prose ol { margin: 0 0 20px; }

.dej-article .prose ul > li,
.dej-article .prose ol > li {
  font-size: 18px;
  line-height: 1.7;
}
.dej-article .prose ul > li { margin-bottom: 10px; }
.dej-article .prose li:last-child { margin-bottom: 0; }

.dej-article .prose blockquote {
  margin: 24px 0;
  padding: 14px 24px;
  border-left: 1px solid rgba(0, 60, 132, 0.25);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.65;
  opacity: 0.85;
}

.dej-article .prose hr { margin: 32px 0; }

.dej-article .prose figure { margin: 24px 0; }
.dej-article .prose img {
  width: 100%;
  border-radius: 15px;
}
.dej-article .prose figcaption {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  opacity: 0.65;
}

.dej-article .prose .table-wrap { margin: 24px 0; }
.dej-article .prose table { font-size: 16px; }
.dej-article .prose th {
  padding: 12px 14px;
  font-size: 13px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  background: var(--color-surface-2, #f8f8f8);
}
.dej-article .prose td { padding: 12px 14px; }

.dej-article .prose code {
  padding: 2px 6px;
  border-radius: 6px;
  background: var(--color-surface-2, #f8f8f8);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.92em;
}
.dej-article .prose strong { font-weight: 700; }

/* --------------------- article header meta (system) --------------------- */
.dej-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 14px;
  margin: 16px 0 0;
  font-family: var(--font-body, 'Montserrat', sans-serif);
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-text, #003c84);
  opacity: 0.65;
  font-variant-numeric: tabular-nums;
}
.dej-meta > * + *::before {
  content: "\00b7";
  margin-right: 10px;
}

@supports selector(:has(*)) {
  .page-header:has(.dej-meta) { padding-block: 48px 0; }
  .page-header:has(.dej-meta) h1 { max-width: 900px; }}

/* -------------------------- table of contents --------------------------- */
.dej-toc-sec { padding-block: 0 32px; }

.dej-toc {
  padding: 24px 28px;
  border-radius: 15px;
  border: 1px solid rgba(0, 60, 132, 0.1);
  background: var(--color-surface-2, #f8f8f8);
}

.dej-toc__title {
  margin-bottom: 14px;
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 26px;
  color: var(--color-text, #003c84);
}

.dej-toc ol {
  counter-reset: ns-toc-item;
  display: grid;
  gap: 10px 24px;
}
.dej-toc ol > li {
  counter-increment: ns-toc-item;
  position: relative;
  padding-left: 28px;
  font-size: 16px;
  font-weight: 500;
  line-height: 22px;
}
.dej-toc ol > li::before {
  content: counter(ns-toc-item) ".";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
  color: var(--color-text, #003c84);
}
.dej-toc a {
  color: var(--color-text, #003c84);
  transition: color 0.15s ease-out;
}
.dej-toc a.is-current,
.dej-toc a[aria-current="true"] {
  color: var(--color-focus, #1fb7fe);
  font-weight: 700;
}
@media (hover: hover) {
  .dej-toc a:hover { color: var(--color-focus, #1fb7fe); }}

@media (min-width: 1025px) {
  .dej-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }}

/* ------------------------------ empty blog ------------------------------ */
.dej-blog-empty {
  padding: 48px 24px;
  border-radius: 15px;
  border: 1px dashed rgba(0, 60, 132, 0.25);
  background: var(--color-surface-2, #f8f8f8);
  text-align: center;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--color-text, #003c84);
}

/* --------------------------- reading progress --------------------------- */
.dej-readbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 130;
  pointer-events: none;
}
.dej-readbar__fill {
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #71d7ff 0%, #d5f57e 100%);
  transition: width 0.1s linear;
}

/* ------------------------------ hover states ---------------------------- */
@media (hover: hover) and (min-width: 751px) {
  .dej-post:hover { transform: translateY(-4px); }
  .dej-post:hover .dej-post__link { color: var(--color-focus, #1fb7fe); }
}

/* ------------------------------- breakpoints ---------------------------- */
@media (max-width: 1280px) {
  .dej-posts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .dej-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dej-blog,
  .dej-related,
  .dej-summary-sec { padding-block: 48px; }}

@media (max-width: 750px) {
  .dej-blog,
  .dej-related,
  .dej-summary-sec { padding-block: 40px; }

  .dej-posts {
    grid-template-columns: 1fr;
    gap: 27px;
  }

  .dej-post { gap: 8px; }
  .dej-post__link { font-size: 17px; line-height: 23px; }
  .dej-post__text { font-size: 15px; line-height: 22px; }

  /* related — horizontal rail with swipe */
  .dej-posts--compact {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 78%;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin-inline: -15px;
    padding-inline: 15px;
    padding-bottom: 8px;
    scrollbar-width: none;
  }
  .dej-posts--compact::-webkit-scrollbar { display: none; }
  .dej-posts--compact .dej-post { scroll-snap-align: start; }

  .dej-related__head { margin-bottom: 24px; }
  .dej-posts__more { margin-top: 24px; }

  .dej-summary { padding: 24px 20px; }
  .dej-summary__title { font-size: 20px; line-height: 28px; margin-bottom: 12px; }
  .dej-summary li { font-size: 16px; }

  .dej-article { padding-block: 32px; }
  .dej-article__col > h2 { font-size: 26px; line-height: 34px; }
  .dej-article .prose p,
  .dej-article .prose ul > li,
  .dej-article .prose ol > li { font-size: 16px; line-height: 1.65; }
  .dej-article .prose h3 { font-size: 21px; line-height: 28px; }

  .dej-meta { font-size: 12px; line-height: 17px; gap: 0 10px; }
  .dej-meta > * + *::before { margin-right: 8px; }

  .dej-toc { padding: 20px; }
  .dej-toc__title { font-size: 18px; line-height: 24px; }
  .dej-toc ol > li { font-size: 15px; line-height: 21px; }}

@media (prefers-reduced-motion: reduce) {
  .dej-readbar__fill { transition: none; }
  .dej-post { transition: none; }}
/* ==========================================================================
   Fix layer — loaded last.
   Part 1 — inner pages: 1600px column, heading scale, compact lime CTA,
            legal text rhythm, comfortable measure.
   Part 2 — audit fixes: hero floating pills, community chat window,
            highlights carousel, final CTA, section rhythm, comparison
            tables, article cards, navigation type scale.
   ========================================================================== */

/* ------------------------- 1. inner page shell -------------------------- */

[data-role="text"] > .container,
[data-role="page-header"] > .container,
[data-role="legal-text"] > .container,
[data-role="legal"] > .container,
[data-role="features"] > .container,
[data-role="steps"] > .container,
[data-role="faq"] > .container,
[data-role="cta"] > .container,
[data-role="contacts"] > .container,
[data-role="posts"] > .container,
[data-role="related"] > .container,
[data-role="summary"] > .container,
[data-role="article-text"] > .container,
.content,
.content > .container {
  width: min(100% - 40px, 1600px);
  max-width: 1600px;
  margin-inline: auto;
}

/* section rhythm — stacked blocks never touch each other; the legal article
   itself stays flush with its neighbours, exactly like the reference page */
.section { padding-block: 40px; }
.section--alt { padding-block: 48px; }
.section.gallery,
[data-role="cta"].section { padding-block: 0; }
[data-role="legal-text"].section,
.section--legal { padding: 0; }
.dej-blog,
.dej-related,
.dej-summary-sec { padding-block: 60px; }
.dej-article { padding-block: 40px; }

.content-section { padding: 32px 0 0; }

/* ---------------- 2. readable measure, centred text column -------------- */
/* long editorial text no longer stretches over 140+ characters and no
   longer leaves the right half of the page empty */
.prose,
.prose--legal,
[data-role="text"] .prose {
  width: 100%;
  max-width: 74ch;
  margin-inline: auto;
  padding-inline: 0;
}

.prose p,
.prose li,
.prose blockquote,
.prose--legal p,
.prose--legal ul > li,
.prose--legal ol > li,
[data-role="text"] .prose p { max-width: 100%; }

.dej-article .prose,
.dej-article .prose p,
.dej-article .prose ul > li,
.dej-article .prose ol > li { max-width: 100%; }

/* headings sit on the same left line as the paragraphs */
.prose h1, .prose h2, .prose h3,
.prose--legal h1, .prose--legal h2, .prose--legal h3 {
  margin-inline: 0;
  text-align: left;
}

.prose h2, .prose--legal h2 { margin-top: 36px; }
.prose h3, .prose--legal h3 { margin-top: 22px; }
.prose > h2:first-child,
.prose > h3:first-child,
.prose section > h2:first-child,
.prose section > h3:first-child { margin-top: 0; }
.prose > section:first-child { padding-top: 0; }

/* comparison tables always fill their frame */
.prose table,
.prose--legal table,
[data-role="text"] .prose table,
.dej-article .prose table {
  width: 100%;
  max-width: none;
}
.prose .table-wrap,
.prose--legal .table-wrap,
.dej-article .prose .table-wrap {
  width: 100%;
  max-width: 100%;
}

/* ---------------------------- heading scale ----------------------------- */
/* H2 36 > H3 28 > body */
h3, .h3 { font-size: 28px; line-height: 34px; letter-spacing: normal; }

/* ------------------------------ legal text ------------------------------ */
.prose--legal h1 {
  font-size: 32px;
  font-weight: 700;
  line-height: 40px;
  text-transform: none;
  color: #003c84;
}
.prose--legal h2 {
  font-size: 24px;
  font-weight: 700;
  line-height: 34px;
  color: #003c84;
}
.prose--legal h3 {
  font-size: 20px;
  font-weight: 700;
  line-height: 28px;
}
.prose--legal p,
.prose--legal ul > li,
.prose--legal ol > li {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.55;
}

/* --------------------- compact lime CTA on inner pages ------------------ */
/* measured 112×42, radius 160, 700 16px/20px uppercase, hard navy offset */
.prose .btn--primary,
[data-role="text"] .btn--primary,
[data-role="page-header"] .btn--primary,
[data-role="legal-text"] .btn--primary,
[data-role="legal"] .btn--primary,
[data-role="cta"] .btn--primary,
[data-role="contacts"] .btn--primary,
[data-role="faq"] .btn--primary,
[data-role="steps"] .btn--primary,
[data-role="features"] .btn--primary,
[data-role="posts"] .btn--primary,
[data-role="related"] .btn--primary,
[data-role="summary"] .btn--primary,
[data-role="article-text"] .btn--primary {
  height: 42px;
  min-height: 42px;
  padding: 10px 20px;
  border: 1px solid transparent;
  border-radius: 160px;
  background-color: var(--color-primary, #d5f57e);
  background-image: none;
  box-shadow: rgb(0, 60, 132) -3.2px 3.2px 0 0;
  color: var(--color-primary-contrast, #003c84);
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 20px;
  text-transform: uppercase;
}

.prose .btn--primary::before,
[data-role="text"] .btn--primary::before,
[data-role="page-header"] .btn--primary::before,
[data-role="legal-text"] .btn--primary::before,
[data-role="legal"] .btn--primary::before,
[data-role="cta"] .btn--primary::before,
[data-role="contacts"] .btn--primary::before,
[data-role="faq"] .btn--primary::before,
[data-role="steps"] .btn--primary::before,
[data-role="features"] .btn--primary::before,
[data-role="posts"] .btn--primary::before,
[data-role="related"] .btn--primary::before,
[data-role="summary"] .btn--primary::before,
[data-role="article-text"] .btn--primary::before { content: none; }

@media (hover: hover) {
  .prose .btn--primary:hover,
  [data-role="text"] .btn--primary:hover,
  [data-role="page-header"] .btn--primary:hover,
  [data-role="legal-text"] .btn--primary:hover,
  [data-role="legal"] .btn--primary:hover,
  [data-role="cta"] .btn--primary:hover,
  [data-role="contacts"] .btn--primary:hover,
  [data-role="faq"] .btn--primary:hover,
  [data-role="steps"] .btn--primary:hover,
  [data-role="features"] .btn--primary:hover,
  [data-role="posts"] .btn--primary:hover,
  [data-role="related"] .btn--primary:hover,
  [data-role="summary"] .btn--primary:hover,
  [data-role="article-text"] .btn--primary:hover {
    transform: none;
    background-color: var(--color-accent, #00b4ff);
    color: #ffffff;
  }}

/* ------------------------ navigation type scale ------------------------- */
/* measured: 500 16px/20px Montserrat */
.nav__list > li > a,
.menu-nav > li > a {
  font-family: var(--font-heading, 'Montserrat', sans-serif);
  font-size: 16px;
  font-weight: 500;
  line-height: 20px;
}

/* ==========================================================================
   Part 2 — layout audit fixes
   ========================================================================== */

/* -------------------------------- hero ---------------------------------- */
/* content column 1581px, 16px gap, blocks vertically centred; the copy is
   lifted above the floating pills and keeps a right inset */
.hero .container {
  width: 100%;
  max-width: none;
  padding-inline: 0;
}

.hero__grid {
  width: 100%;
  max-width: 1581px;
  margin-inline: auto;
  gap: 16px;
  align-items: center;
}

.hero__copy {
  position: relative;
  z-index: 3;
  padding-right: 24px;
}

.hero__media { position: relative; z-index: 1; }

/* the pills stay strictly inside the picture frame, so they can never run
   over the headline or the end of the paragraph */
.hero__note--1 { top: 5%; left: 0; }
.hero__note--2 { top: 12%; right: 0; }
.hero__note--3 { bottom: 26%; left: 1%; }
.hero__note--4 { bottom: 7%; right: 0; }

/* --------------------------- community chat ----------------------------- */
/* the mock window lives in its own free zone above the rows and is aligned
   to the right edge — it never covers the heading or the paragraph */
.community__chat {
  position: static;
  top: auto;
  right: auto;
  width: 320px;
  max-width: 100%;
  margin: 0 0 44px auto;
}

.community__row .community__body { position: relative; z-index: 2; }

.chat__form { position: relative; }

/* the round avatar sits below the card instead of on top of the input */
.chat__avatar--lg {
  right: -12px;
  bottom: -28px;
  z-index: 3;
}

/* --------------------------- why-us carousel ---------------------------- */
/* exactly three cards per view, equal heights, contrasting arrows */
.why__carousel { --why-card: 391px; --why-gap: 20px; }

.why__track {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: var(--why-gap);
  padding: 144px max(0px, calc((100% - (var(--why-card) * 3 + var(--why-gap) * 2)) / 2)) 20px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: max(0px, calc((100% - (var(--why-card) * 3 + var(--why-gap) * 2)) / 2));
}

.why__card {
  flex: 0 0 var(--why-card);
  width: var(--why-card);
  min-height: 315px;
  align-self: stretch;
  justify-content: flex-start;
  scroll-snap-align: start;
}

.why__photo { background: linear-gradient(135deg, #e6f0fa 0%, #d5f57e 100%); }

.why__arrow {
  width: 48px;
  height: 48px;
  margin-top: -24px;
  background: #ffffff;
  color: #003c84;
  border: 1px solid rgba(0, 60, 132, 0.12);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.18);
  transition: transform 0.2s ease-out, opacity 0.2s ease-out,
              background-color 0.2s ease-out, color 0.2s ease-out;
}
.why__arrow--prev { left: 0; }
.why__arrow--next { right: 0; }
.why__arrow:disabled { opacity: 0.45; }

@media (hover: hover) {
  .why__arrow:not(:disabled):hover {
    transform: scale(1.08);
    background: var(--color-primary, #d5f57e);
  }}

@media (min-width: 751px) {
  .why__card h3 { font-size: 28px; line-height: 32px; letter-spacing: normal; }}

/* ------------------------------- mosaic --------------------------------- */
.gallery__inner {
  width: min(100% - 40px, 1600px);
  max-width: 1600px;
  margin-inline: auto;
}

/* ------------------------------ final CTA ------------------------------- */
/* standard container with the same side gutter as the reference band */
.final { padding: 0 clamp(20px, 7.97vw, 153px); }

.final__grid {
  width: 100%;
  max-width: 1600px;
  min-height: 549px;
  margin-inline: auto;
  padding: 0;
  gap: 32px;
  align-items: center;
}

.final__copy { flex: 0 1 784px; max-width: 784px; }

.final__media {
  flex: 0 1 784px;
  max-width: 784px;
  overflow: hidden;
}

.final__media img {
  width: 100%;
  max-height: 470px;
  object-fit: contain;
  animation: phone-tilt 6s ease-in-out infinite alternate;
}

@keyframes phone-tilt {
  from { transform: rotate(-12deg) translateY(-4px); }
  to   { transform: rotate(-8deg) translateY(4px); }
}

/* --------------------------- article cards ------------------------------ */
/* the category chip is a normal flow line again — it no longer lands on
   top of the date / reading-time row */
.dej-post__tag { position: static; }

.dej-blog .dej-post__text {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}

/* a single card is centred instead of hugging the left third of the grid */
.dej-posts > .dej-post:only-child {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 640px;
  margin-inline: auto;
}

/* ------------------------------ responsive ------------------------------ */
@media (max-width: 750px) {
  .content-section { padding: 24px 0 0; }

  h3, .h3 { font-size: 18px; line-height: 22.5px; font-weight: 900; }

  .prose--legal h1 { font-size: 28px; line-height: 34px; }
  .prose--legal h2 { font-size: 22px; line-height: 30px; }
  .prose--legal h3 { font-size: 18px; line-height: 24px; }
  .prose--legal p,
  .prose--legal ul > li,
  .prose--legal ol > li { font-size: 15px; }

  .prose h2, .prose--legal h2 { margin-top: 28px; }
  .prose h3, .prose--legal h3 { margin-top: 20px; }

  /* hero */
  .hero__copy { padding-right: 0; }
  .hero__note--1 { top: 2%; left: 0; }
  .hero__note--2 { top: 9%; right: 0; }
  .hero__note--3 { bottom: 28%; left: 0; }
  .hero__note--4 { bottom: 5%; right: 0; }

  /* the mock chat window is removed on phones */
  .community__chat { display: none; }

  /* highlights — one column, cards keep their own height */
  .why__track {
    flex-direction: column;
    align-items: center;
    gap: 135px;
    padding: 100px 0 0;
    overflow: visible;
    scroll-snap-type: none;
  }

  .why__card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 320px;
    min-height: 250px;
    align-self: center;
    scroll-snap-align: none;
  }

  .why__arrow { display: none; }

  /* final CTA */
  .final { padding: 0 15px; }
  .final__grid { min-height: 380px; gap: 20px; }
  .final__media img { max-height: 190px; }
}
:root{--color-bg:#ffffff;--color-surface:#f5f5f6;--color-surface-2:#f8f8f8;--color-text:#111111;--color-text-muted:#4b5563;--color-border:#000000;--color-primary:#a3e635;--color-primary-contrast:#1a2e05;--color-accent:#c084fc;--color-accent-contrast:#2e1065;--color-focus:#a3e635;--font-heading:'Montserrat', system-ui, sans-serif;--font-body:'Montserrat', system-ui, sans-serif;--radius-sm:15px;--radius-md:50px;--radius-lg:160px;--radius-pill:160px;--container:1600px;--container-narrow:1560px;--shadow-sm:0 4px 10px rgba(0, 0, 0, 0.1);--shadow-md:0 4px 4px rgba(0, 0, 0, 0.2);--header-h:94px;--font-display:var(--font-heading)}