html{
  height:100%;
  background:var(--bg-page);
  overflow-x:clip; /* если clip не поддержится — можно hidden */
}

/* =========================================================
   BASE PALETTE / GLOBAL VARS
   ========================================================= */
:root{
  --bg-page:#f5f7fb;
  --surface:#ffffff;
  --text-main:#1f2933;
  --text-muted:#6b7280;
  --heading:#2d3750;
  --primary:#5875c5;
  --primary-hover:#283d78;
  --grey:#e0ebef;

  --accent-warm:#e38b53;
  --accent:var(--accent-warm);

  --border-thin:#585858;

  --r:4px; /* global radius */

  /* MARKITON helper vars (single source of truth) */
  --mk-line:rgba(255,255,255,.22);
  --mk-line-2:rgba(31,41,51,.18);
  --mk-warm:var(--accent-warm);
  --mk-primary:var(--primary);
  --mk-surface:var(--surface);
  --mk-bg:var(--bg-page);
  --mk-head:var(--heading);
  --mk-text:var(--text-main);
  --mk-muted:var(--text-muted);

  /* MARKITON footer vars */
  --mk-footer-bg: var(--primary-hover);
  --mk-footer-sep: rgba(255,255,255,.14);
  --mk-footer-link: #8797c3;
  --mk-footer-link-hover: #ffffff;
}

/* =========================================================
   BASE (sticky footer without breaking Cassiopeia grid)
   ========================================================= */
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;

  margin:0;
  padding:40px 16px 0;
  background:transparent;
  color:var(--text-main);
}

/* Cassiopeia grid НЕ трогаем (не меняем display/grid-настройки) */
.site-grid{
  flex: 1 0 auto;     /* просто растягивается, чтобы футер ушёл вниз */
  width: 100%;
}

/* Отступ контента от подвала */
.site-grid > main,
.site-grid > .container-component{
  padding-bottom: 60px;
}

/* футер внизу при короткой странице */
.mk-footer{
  margin-top:auto;                  /* прижать к низу */
  background:var(--mk-footer-bg);
  color:#fff;

  width:auto;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  margin-bottom:0;
}

/* =========================================================
   TYPOGRAPHY
   ========================================================= */
h1,h2,h3{ color:var(--heading); }
h1,h2,h3,h4,h5,h6{ margin:24px 0 12px; }

h1{
  text-transform:uppercase;
  font-weight:700;
  text-align:center;
  font-size:28px;
}

h2{ font-weight:700; font-size:28px; }
h3{ font-weight:400; font-size:24px; }

p{
  margin:0 0 8px;
  line-height:1.3;
}
.larger{font-size:larger;}
.small_title{ font-size:16px; }
section{ margin-top:40px; }

/* Helpers */
.clearer{margin-top:40px !important; width:100%; position:relative; clear:both;min-height: 1px;}
.top-margin,
.margin-top{ margin-top:40px !important; }

.bottom-margin,
.margin-bottom{ margin-bottom:40px !important; }

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

.top20{margin-top:20px !important;}
.bottom25 {margin-bottom: 25px !important;}

.padding_top_30{padding-top: 30px !important;}
.padding_bottom_30{padding-bottom: 30px !important;}

.orange{ color:var(--accent-warm) !important; }
.bold{ font-weight:bold !important; }
.fullwidth{max-width: 100% !important;}
.width1200 {max-width: 1200px;margin-left:auto !important;margin-right:auto !important;}
.width1000 {max-width: 1000px;margin-left:auto !important;margin-right:auto !important;}
.width900 {max-width: 900px;margin-left:auto !important;margin-right:auto !important;}
.width800, .mk-w800-center{
  max-width:800px  !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.width600{
  max-width:600px  !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.bg-transparent{background:transparent !important;border: none !important; box-shadow: none !important;}
.display_block{display: block !important;}
.gap60 {gap: 60px !important;}
/* Bootstrap active button override */
.btn-check:checked + .btn,
:not(.btn-check) + .btn:active,
.btn:first-child:active,
.btn.active,
.btn.show{
  background-color:#c56d32 !important;
}

/* =========================================================
   SPLIT H1 TITLE
   ========================================================= */
.section_hero{
  text-align:center;
  margin-bottom:32px;
}

.title{ margin:0 0 12px; }

.title-top{
  display:block;
  text-transform:uppercase;
}

.title-rule{
  display:block;
  width:min(520px,92%);
  height:1px;
  margin:10px auto;
  background:color-mix(in srgb, var(--heading), transparent 55%);
}

.title-sub{
  display:block;
  font-size:18px;
  line-height:1.25;
  font-weight:400;
  text-transform:none;
  color:#434a58;
  text-align:center;
}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 18px;
  border-radius:var(--r);
  border:none;
  font-size:.95rem;
  font-weight:500;
  cursor:pointer;
  text-decoration:none;
  transition:background-color .15s ease, transform .1s ease;
}

.btn-primary{
  background-color:var(--primary);
  color:#fff;
}

.btn-primary:hover{
  background-color:var(--primary-hover);
  transform:translateY(-1px);
}

.btn-primary:active{ transform:translateY(0); }

.btn-ghost{
  border:1px solid var(--primary);
  color:var(--primary);
  background:transparent;
}

.btn-ghost:hover,
.btn-ghost:focus-visible{
  background:rgba(88,117,197,.08);
}

.btn-accent{
  background:var(--accent-warm);
  color:#fff;
  border:none;
}

.btn-accent:hover,
.btn-accent:focus-visible{
  background:#c56d32;
  transform:translateY(-1px);
}

/* =========================================================
   HIGHLIGHT / CALLOUT / LISTS
   ========================================================= */
.highlight{
  background-color:#ffede2;
  border-radius:var(--r);
  padding:4px 6px 2px;

  background-image:linear-gradient(var(--accent-warm), var(--accent-warm));
  background-repeat:no-repeat;
  background-size:calc(100% - 12px) 1px;
  background-position:6px calc(100% - 1px);
}

.callout{
  border:1px solid var(--border-thin);
  border-radius:var(--r);
  padding:12px 14px;
  margin:16px 0;
  font-size:.95rem;
}

.callout strong{ font-weight:700; }

.section{ margin:60px 0; }

ul{
  margin:0 0 14px 0;
  padding-left:0;
  list-style:none;
}

.checked li,
.arrow li{
  position:relative;
  padding-left:26px;
  margin-bottom:6px;
  line-height:1.5;
}

.checked li::before,
.arrow li::before{
  position:absolute;
  left:0;
  top:2px;
  width:16px;
  text-align:center;
  font-size:.9rem;
}

.checked li::before{
  content:"\2714";
  color:var(--heading);
}

.arrow li::before{
  content:"\279C";
  color:var(--accent-warm);
}

/* =========================================================
   HEADER
   ========================================================= */
.header.container-header.full-width{
  box-shadow:none;
  margin:0 0 24px;
  background:transparent;
}

.container-header .grid-child{
  padding:.5em;
  background:#2c3f74;
}

.container-topbar{
  color:#fff;
  max-width:1320px;
  margin:auto;
}

div.mod-languages .btn-group{
  background:#f5f7fb;
  border-radius:var(--r);
  padding:0 0 5px 0;
  justify-content:flex-end;
}

div.mod-languages .dropdown-menu{ font-size:12px; }

div.mod-languages .btn-group .btn{
  flex:none;
  font-size:12px;
  font-weight:400;
  border-radius:var(--r);
}

.container-header .navbar-brand .brand-logo,
.container-header .navbar-brand .brand-logo *{
  text-decoration:none !important;
  border-bottom:0 !important;
  margin:0 0 0 14px;
}

.container-header .navbar-brand .brand-logo:hover,
.container-header .navbar-brand .brand-logo:focus-visible{
  text-decoration:none !important;
  outline:none;
}

/* =========================================================
   SEARCH (desktop + mobile)
   ========================================================= */
.container-header .container-search .mod-finder__search.input-group{
  flex-wrap:nowrap;
}

.container-header .container-search .mod-finder__search .form-control{
  background:rgba(255,255,255,.18) !important;
  border:1px solid rgba(255,255,255,.28) !important;
  border-right:0 !important;
  color:#fff !important;
  border-radius:var(--r) 0 0 var(--r) !important;
  box-shadow:none !important;
}

.container-header .container-search .mod-finder__search .form-control::placeholder{
  color:rgba(255,255,255,.70) !important;
}

.container-header .container-search .mod-finder__search .form-control:focus{
  outline:none !important;
  box-shadow:0 0 0 2px rgba(88,117,197,.22) !important;
}

.container-header .container-search .mod-finder__search .btn{
  background:var(--primary) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.28) !important;
  border-left:0 !important;
  border-radius:0 var(--r) var(--r) 0 !important;
}

.container-header .container-search .mod-finder__search .btn:hover{
  background:var(--primary-hover) !important;
}

.container-header .container-search .mod-finder__search .icon-search{
  color:#fff !important;
}

/* =========================================================
   HEADER MOBILE LAYOUT
   ========================================================= */
@media (max-width:991.98px){

  .container-header{ position:relative; }

  .container-header > .grid-child:not(.container-nav){
    display:flex;
    justify-content:center;
    align-items:center;
  }

  .container-header .navbar-brand{
    width:100%;
    display:flex;
    justify-content:center;
  }

  .container-header .container-nav{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:nowrap;
    justify-content:space-between;
  }

  .container-header .container-nav .navbar-toggler{
    order:1;
    flex:0 0 auto;
    width:44px;
    height:44px;
    padding:0;
    border-radius:var(--r);
    border:1px solid rgba(255,255,255,.28);
    background:rgba(255,255,255,.14);
  }

  .container-header .container-nav .navbar-toggler:hover,
  .container-header .container-nav .navbar-toggler:focus-visible{
    background:rgba(255,255,255,.22);
    outline:none;
  }

  .container-header .container-nav .navbar-toggler .icon-menu{
    color:#fff !important;
    font-size:1.25rem;
  }

  .container-header .container-nav .container-search{
    order:2;
    flex:1 1 auto;
    min-width:0;
    display:flex;
    justify-content:flex-end;
  }

  .container-header .container-nav .container-search .mod-finder{
    width:min(50vw,340px);
    margin:0;
  }

  .container-header .container-nav .container-search .btn{
    padding-left:10px;
    padding-right:10px;
    font-size:0;
  }

  .container-header .container-nav .container-search .btn .icon-search{
    font-size:1rem;
  }

  .container-topbar{
    display:flex;
    justify-content:center;
  }
}

/* =========================================================
   MARKITON FOOTER
   ========================================================= */
.mk-footer__inner{
  max-width:1320px;
  margin:0 auto;
  padding:44px 18px 16px;
}

.mk-footer__grid{
  display:grid;
  grid-template-columns:1.10fr 1fr 1fr 1fr 1fr;
  gap:0;
}

.mk-footer__col{
  padding:18px 22px 22px;
  min-width:0;
}

.mk-footer__col + .mk-footer__col{
  border-left:1px solid var(--mk-footer-sep);
}

.mk-footer__col:first-child{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.mk-footer__brand-title{
  font-size:44px;
  font-weight:300;
  letter-spacing:.08em;
  line-height:1;
  margin:0 0 16px;
}

.mk-footer__brand-tagline{
  font-size:14px;
  line-height:1.45;
  color:#fff;
  max-width:28ch;
  margin:0 0 22px;
  text-transform:none;
}

.mk-footer__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:16px 22px;
  min-height:56px;
  background:var(--accent-warm);
  color:#fff;
  text-decoration:none;
  font-size:26px;
  font-weight:300;
  letter-spacing:.06em;
  text-transform:uppercase;
  border-radius:0;
  border:0;
}

.mk-footer__cta:hover,
.mk-footer__cta:focus-visible{
  background:#f3a04e;
  color:#fff;
  outline:none;
}

.mk-footer__head{
  font-size:18px;
  font-weight:400;
  margin:6px 0 14px;
  opacity:1;
}

.mk-footer__list{
  list-style:none;
  padding:0;
  margin:0;
}

.mk-footer__list li{ margin:0 0 10px; }

.mk-footer__list a{
  color:var(--mk-footer-link);
  text-decoration:none;
  border:0;
  display:inline-block;
  line-height:1.35;
}

.mk-footer__list a:hover,
.mk-footer__list a:focus-visible{
  color:var(--mk-footer-link-hover);
  text-decoration:underline;
  text-decoration-color:rgba(255,255,255,.55);
  text-underline-offset:3px;
  outline:none;
}

.mk-footer__list--bullets li{ padding-left:0; }
.mk-footer__list--bullets li::before{ content:none; }

.mk-footer__col:nth-child(4) .mk-footer__list a{ max-width:22ch; }

.mk-footer__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:40px 18px 0;
  margin-top:10px;
  border-top:0;
}

.mk-footer__copy{
  font-size:13px;
  color:rgba(255,255,255,.86);
}

.mk-footer__social{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.mk-footer__follow{
  font-size:13px;
  color:rgba(255,255,255,.85);
  font-weight:700;
  margin-right:4px;
}

/* Соцсети: БЕЗ кружков, маленькие и светлые */
.mk-footer__soc{
  width:auto;
  height:auto;
  border-radius:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:0;
  text-decoration:none;
  padding:2px;                 /* маленький “хитбокс” */
  opacity:.85;
}

.mk-footer__soc:hover,
.mk-footer__soc:focus-visible{
  opacity:1;
  outline:none;
}

.mk-footer__soc svg{
  width:18px;
  height:18px;
  fill:rgba(255,255,255,.82);  /* светлые */
}

@media (max-width: 991.98px){
  .mk-footer__grid{ grid-template-columns:1fr 1fr; }
  .mk-footer__col + .mk-footer__col{ border-left:0; }
  .mk-footer__brand-title{ font-size:38px; }
  .mk-footer__cta{ font-size:22px; }
}

@media (max-width: 575.98px){
  .mk-footer__inner{ padding:34px 14px 14px; }
  .mk-footer__grid{ grid-template-columns:1fr; }
  .mk-footer__bottom{
    flex-direction:column;
    align-items:flex-start;
  }
  .mk-footer__social{ justify-content:flex-start; }
}

.mk-contacts__ico{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:0;
}

.mk-contacts__ico svg{
  display:block;
}