/* Structural layout and interactive primitives shared by every page. */
*{box-sizing:border-box;margin:0;padding:0}
a{text-decoration:none;color:var(--primary)}

.sections{padding:48px 120px;width:100%}

.site_header{padding:20px 0;background-color:transparent}
.header_wrapper{display:flex;align-items:center;gap:100px;padding:0 120px;width:100%}
.header_logo_block{display:flex;align-items:center}
.header_logo_block img{width:clamp(50px,12vw,106px);height:clamp(50px,12vw,106px);object-fit:contain}

.header_top{display:flex;flex-direction:column;justify-content:center;flex:1}
.header_up_block{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:37px}
.header_right_group{display:flex;align-items:center;gap:40px}

.header_contacts,.contacts{display:flex;align-items:center}
.header_contacts{gap:100px}
.contacts{gap:43px}

.contacts_item{display:flex;align-items:center;gap:10px}
.contacts_item a{color:var(--secondary);font-size:14px;font-weight:400;line-height:17px;text-align:left}

.header_contacts .contacts_item a[href^='tel'],
.header_contacts .contacts_item a[href^='mailto']{position:relative;display:inline-block;padding-bottom:3px;transition:color .2s ease}
.header_contacts .contacts_item a[href^='tel']::after,
.header_contacts .contacts_item a[href^='mailto']::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--primary);transition:width .22s ease}
.header_contacts .contacts_item a[href^='tel']:hover,
.header_contacts .contacts_item a[href^='mailto']:hover{color:var(--primary)}
.header_contacts .contacts_item a[href^='tel']:hover::after,
.header_contacts .contacts_item a[href^='mailto']:hover::after{width:100%}
.header_contacts .contacts_item a[href^='tel']:focus-visible,
.header_contacts .contacts_item a[href^='mailto']:focus-visible{outline:none;color:var(--primary)}
.header_contacts .contacts_item a[href^='tel']:focus-visible::after,
.header_contacts .contacts_item a[href^='mailto']:focus-visible::after{width:100%}

.icons{display:flex;align-items:center;gap:60px;margin-right:40px}
.icons img{display:block;cursor:pointer}
.icons .icon_link,.icons .icon_btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:transparent;border:0;transition:background .18s ease,transform .12s ease,box-shadow .18s ease;cursor:pointer;-webkit-tap-highlight-color:transparent}
.icons .icon_link:hover,.icons .icon_btn:hover{background:rgba(var(--black-rgb), .06);transform:translateY(-1px)}
.icons .icon_link:active,.icons .icon_btn:active{transform:scale(.96)}
.icons .icon_link:focus-visible,.icons .icon_btn:focus-visible{outline:none;box-shadow:inset 0 0 0 2px rgba(var(--primary-rgb), .35)}

.header_bottom{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-top:10px;margin-top:10px;width:100%}
.header_bottom a{display:flex;align-items:center;gap:17px;color:var(--secondary);font-size:20px;font-weight:700;line-height:24px}
.header_bottom a.active{color:var(--primary)}
.header_bottom a.active img{content:url("/static/media/generated/icons/arrow_down_primary.67db066390e9.png")}
.header_bottom a img{flex-shrink:0}

.btn,.footer_btn{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 30px 10px 40px;font:700 16px/1 var(--font-sans);border-radius:var(--radius-xs);cursor:pointer;text-decoration:none;border:2px solid transparent;background:transparent;position:relative;overflow:hidden;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .18s ease,box-shadow .25s ease}
.btn>img,.footer_btn>img{width:16px;height:16px;flex:0 0 16px;transition:transform .22s ease,opacity .2s ease,filter .2s ease}
.btn:hover,.footer_btn:hover{transform:translateY(-1px)}
.btn:active,.footer_btn:active{transform:translateY(0)}
.btn:hover>img,.footer_btn:hover>img{transform:translateX(3px)}
.btn:focus-visible,.footer_btn:focus-visible{outline:2px solid rgba(var(--primary-rgb), .55);outline-offset:2px}

.primary_btn,.footer_btn.outline{color:var(--primary);border-color:var(--primary);background:var(--white)}
.primary_btn:hover,.footer_btn.outline:hover{color:var(--white);background:var(--primary);border-color:var(--primary);box-shadow:0 6px 18px rgba(var(--primary-rgb), .18)}
.footer_btn.outline:hover>img{content:url("/static/media/generated/icons/arrow_right_white.3939102fe3fb.png")}
.primary_btn:hover .dropdown_arrow{filter:brightness(0) invert(1)}

.student_btn,.footer_btn.filled{color:var(--white);border-color:var(--primary);background-image:linear-gradient(90deg,var(--primary) 0%,var(--primary-light) 100%);background-size:200% 100%;background-position:0% 50%;box-shadow:0 6px 16px rgba(var(--primary-rgb), .22);position:relative;overflow:hidden}
.student_btn::before,.footer_btn.filled::before{content:"";position:absolute;inset:-3px;border-radius:inherit;background:linear-gradient(90deg,rgba(var(--white-rgb), 0) 0%,rgba(var(--white-rgb), .22) 40%,rgba(var(--white-rgb), 0) 70%);transform:translateX(-120%) skewX(-16deg);transition:transform .55s ease;pointer-events:none;will-change:transform}
.student_btn:hover,.footer_btn.filled:hover{background-position:100% 50%;box-shadow:0 12px 30px rgba(var(--primary-rgb), .30),0 0 0 3px rgba(var(--primary-rgb), .10) inset;transform:translateY(-1px)}
.student_btn:hover::before,.footer_btn.filled:hover::before{transform:translateX(120%) skewX(-16deg)}
.student_btn:active,.footer_btn.filled:active{transform:translateY(0);box-shadow:inset 0 2px 7px rgba(var(--black-rgb), .18),0 4px 14px rgba(var(--primary-rgb), .18)}
.dropdown.active .student_btn{background-position:100% 50%;box-shadow:0 10px 26px rgba(var(--primary-rgb), .28),0 0 0 3px rgba(var(--primary-rgb), .16) inset}
.btn[disabled],.footer_btn[disabled]{opacity:.6;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .btn,.footer_btn,.btn>img,.footer_btn>img{transition:none!important}
}

.dropdown{position:relative;display:inline-block}
.dropdown_menu{display:none;flex-direction:column;position:absolute;background:var(--white);border-radius:var(--radius-xs);box-shadow:0 4px 20px rgba(var(--black-rgb), .15);z-index:1000}
.dropdown.active .dropdown_menu{display:flex;opacity:1;transform:translateY(0)}

.primary_menu{top:calc(100% + 8px);left:0;width:232px;height:137px;padding:12px 0}
.primary_menu a{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;color:var(--secondary);font-size:16px;font-weight:700;line-height:19px}
.primary_menu a img{width:10px;height:10px}
.primary_menu a:hover{color:var(--primary)}
.primary_menu .pm_item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 16px;font:700 16px/19px var(--font-sans);color:var(--secondary);background:transparent;border:0;text-align:left;cursor:pointer}
.primary_menu .pm_item img{width:10px;height:10px}
.primary_menu .pm_item:hover{color:var(--primary)}

.link_external {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--secondary);
  font-weight: 700;
  transition: color 0.2s ease;
}

.link_external_icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  transition: filter 0.2s ease;
}

.link_external:hover {
  color: var(--primary);
}

.link_external:hover .link_external_icon {
  filter: invert(47%) sepia(91%) saturate(2585%) hue-rotate(209deg) brightness(101%) contrast(97%);
}

.student_menu{top:calc(100% + 10px);right:0;left:auto;width:375px;padding:16px}
.student_menu a{font-size:16px;padding:16px;font-weight:700;color:var(--secondary);transition:color .2s}
.student_menu a:hover{color:var(--primary)}

.buttons_group{display:flex;flex-wrap:wrap;gap:8px;padding:48px 120px 20px}
.nav_button_link{text-decoration:none}
.nav_button{display:inline-flex;justify-content:center;align-items:center;padding:10px 40px;border:1px solid var(--secondary);border-radius:var(--radius-xs);background:var(--white);color:var(--secondary);font:600 16px/1 var(--font-sans);letter-spacing:.04em;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.nav_button:hover{border-color:var(--primary);color:var(--primary)}
.nav_button.active{background:var(--primary);color:var(--white);border-color:var(--primary)}

.nav_dropdown{position:relative}
.nav_dropdown_toggle{display:flex;align-items:center;gap:17px;padding:0;border:0;background:transparent;color:var(--secondary);font:700 20px/24px var(--font-sans);cursor:pointer}
.nav_dropdown_menu{position:absolute;top:calc(100% + 8px);left:0;display:none;flex-direction:column;gap:10px;min-width:220px;padding:12px 0;background:var(--white);border-radius:var(--radius-sm);box-shadow:0 10px 30px rgba(var(--black-rgb), .12);z-index:1000}
.nav_dropdown_menu a{padding:10px 16px;color:var(--secondary);font:700 16px/19px var(--font-sans);white-space:nowrap;transition:color .15s ease,background .15s ease}
.nav_dropdown_menu a:hover{color:var(--primary)}
.nav_dropdown.open .nav_dropdown_menu{display:flex}
.nav_dropdown.open>.nav_dropdown_toggle{color:var(--primary)}
.nav_dropdown .nav_dropdown_toggle.active{color:var(--primary)}
.nav_dropdown .nav_dropdown_toggle.active .nav_dropdown_arrow{content:url("/static/media/generated/icons/arrow_down_primary.67db066390e9.png")}
.nav_dropdown.open>.nav_dropdown_toggle .nav_dropdown_arrow{content:url("/static/media/generated/icons/arrow_up_primary.5d7d19e8b3c6.png")}

.back_to_top{position:fixed;right:24px;bottom:24px;width:56px;height:56px;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:1000;cursor:pointer;border:none;background:none}
.back_to_top img{width:100%;height:100%}
.back_to_top.show{opacity:1;transform:translateY(0);pointer-events:auto}
@media (max-width:600px){
  .back_to_top{right:16px;bottom:16px;width:48px;height:48px}
}

.breadcrumbs{background:var(--white);padding:12px 120px;margin:0 0 24px;display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;row-gap:6px}
.breadcrumbs a{color:var(--secondary);font:600 14px/1.4 var(--font-sans);text-decoration:none;position:relative;padding-bottom:2px;white-space:normal;word-break:break-word}
.breadcrumbs a:hover{color:var(--primary)}
.breadcrumbs a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--primary);transition:width .22s ease}
.breadcrumbs a:hover::after{width:100%}
.breadcrumbs .breadcrumbs_sep{display:inline-flex;align-items:center;justify-content:center;width:16px;height:17px;flex:0 0 auto;transform:translateY(1px)}
@media (max-width:1036px){.breadcrumbs{padding:12px 40px}}
@media (max-width:360px){.breadcrumbs{padding:12px 8px}}

@media (max-width:1720px){
  .header_bottom{justify-content:flex-start;flex-wrap:wrap;gap:16px 24px}
  .header_bottom a{white-space:nowrap;gap:12px}
  .header_right_group{gap:24px}
  .contacts{gap:24px}
  .icons{gap:28px;margin-right:0}
}
@media (max-width:1540px){
  .header_wrapper{padding:0 100px}
  .header_up_block{column-gap:24px}
  .header_right_group{gap:24px}
  .header_contacts{gap:28px}
  .contacts{gap:18px}
  .icons{gap:18px;margin-right:0}
  .icons img{width:20px;height:20px}
  .primary_btn{padding:8px 22px 8px 28px}
  .student_btn{padding:8px 20px;font-size:15px}
}
@media (max-width:1420px){
  .header_wrapper{padding:0 80px}
  .header_contacts{gap:22px}
  .contacts{gap:14px}
  .icons{gap:14px}
}
@media (max-width:1440px){
  .header_bottom{column-gap:20px;row-gap:16px}
  .header_bottom a,.nav_dropdown_toggle{font-size:18px;gap:12px}
}
@media (max-width:1396px){
  .header_wrapper{padding:0 80px;gap:56px}
  .header_up_block{gap:16px}
  .header_right_group{gap:20px}
  .icons{gap:18px}
  .icons img{width:20px;height:20px}
  .student_btn{padding:8px 20px;font-size:15px}
  .icons .icon_link,.icons .icon_btn{width:28px;height:28px}
}
@media (max-width:1220px){
  .header_wrapper{gap:48px;padding:0 60px}
  .header_bottom{column-gap:16px;row-gap:14px}
  .header_bottom a,.nav_dropdown_toggle{font-size:17px}
}
@media (max-width:1170px){
  .header_up_block{display:flex;flex-wrap:wrap;align-items:center;column-gap:20px;row-gap:10px}
  .header_right_group{display:flex;flex-wrap:wrap;gap:16px;margin-left:auto}
  .contacts{gap:14px}
  .contacts_item a{font-size:13.5px;line-height:1.2}
  .contacts_item img{width:18px;height:18px}
  .icons{gap:14px}
  .icons img{width:18px;height:18px}
  .dropdown .btn,.student_btn{padding:6px 16px;font-size:14px}
}
@media (max-width:1036px){
  .header_contacts .icons{display:flex;justify-content:center;align-items:center;gap:clamp(20px,5vw,32px)}
  .header_contacts .icons .icon_link,.header_contacts .icons .icon_btn{padding:4px;border-radius:var(--radius-sm);width:auto;height:auto}
}

.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:10000;padding:16px;overflow-y:auto;overscroll-behavior:contain}
.modal[aria-hidden="false"]{display:flex}
.modal__overlay{position:absolute;inset:0;background:rgba(var(--black-rgb), .36);backdrop-filter:blur(2px) saturate(120%);opacity:0;transition:opacity .2s ease}
.modal[aria-hidden="false"] .modal__overlay{opacity:1}
.modal__dialog{position:relative;width:min(640px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;background:var(--white);border-radius:var(--radius-sm);box-shadow:0 24px 64px rgba(var(--black-rgb), .25);padding:24px 20px 20px;transform:translateY(12px) scale(.98);opacity:0;transition:transform .2s ease,opacity .2s ease}
.modal[aria-hidden="false"] .modal__dialog{transform:none;opacity:1}
.modal__title{margin:0 0 14px;text-align:center;color:var(--black);font:700 28px/1.2 var(--font-sans)}
.modal__close{position:absolute;top:6px;right:6px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;cursor:pointer;transition:background .15s ease,transform .12s ease}
.modal__close:hover{background:rgba(var(--black-rgb), .06)}
.modal__close:active{transform:scale(.96)}
.modal__close img{display:block;width:20px;height:20px;margin:auto;pointer-events:none}
.modal .contact-form{width:100%;background:var(--white);box-shadow:none;border:0;gap:12px}
.contact-form .btn_submit[disabled]{opacity:.6;cursor:default;pointer-events:none}
.body--modal-open{overflow:hidden}
@media (max-width:420px){.modal__title{font-size:24px}}
@media (prefers-reduced-motion:reduce){.modal__overlay,.modal__dialog{transition:none!important}}

#contactModal .consent_row{align-items:center}
#contactModal .consent_label{align-items:center}
#contactModal .consent_text{text-align:center}
@media (max-width:442px){
  #contactModal .consent_row{align-items:start}
  #contactModal .consent_label{align-items:start}
  #contactModal .consent_text{text-align:start}
}
