html,
body {
margin: 0;
padding: 0
}

body {
overflow-x: hidden;
min-height: 100vh;
font-family: 'Ubuntu', sans-serif
}

:focus-visible {
outline: 2px solid #2ACECA;
outline-offset: 3px;
border-radius: 2px
}

.topbar {
background: #03303D;
padding: 8px 0
}

.topbar-shell {
max-width: 1280px;
margin: 0 auto;
padding: 0 32px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 20px
}

.topbar-contact {
display: flex;
gap: 20px;
align-items: center
}

.topbar-link {
color: #F0FEE4;
font-size: 13px;
line-height: 1.4;
text-decoration: none;
letter-spacing: .03em;
display: flex;
align-items: center;
gap: 8px;
transition: color .12s cubic-bezier(0.4, 0, 1, 1)
}

.topbar-link:hover {
color: #2ACECA
}

.topbar-tagline {
color: #2ACECA;
font-size: 13px;
line-height: 1.4;
letter-spacing: .05em;
font-weight: 300
}

.topbar-icon {
width: 14px;
height: 14px;
flex-shrink: 0
}

.headmid {
background: linear-gradient(135deg, #F0FEE4 0%, #e8fcd8 60%, #d4f5f5 100%);
padding: 20px 0;
border-bottom: 1px solid #2aceca2e;
box-shadow: 2px 3px 5px 1px #2aceca14
}

.headmid-shell {
max-width: 1280px;
margin: 0 auto;
padding: 0 32px;
display: flex;
align-items: center;
gap: 32px
}

.logohold {
background: #fff;
border: 1px solid #2aceca4d;
border-radius: 2px;
box-shadow: 2px 4px 18px 1px #2aceca1c;
padding: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 85px;
height: 85px
}

.logohold img {
width: 69px;
height: 69px;
object-fit: contain;
display: block
}

.brandstack {
display: flex;
flex-direction: column;
gap: 4px
}

.brandname {
font-size: 28px;
font-weight: 700;
line-height: 1.15;
color: #03303D;
letter-spacing: -.02em;
text-decoration: none
}

.brandname:hover {
color: #2ACECA;
transition: color .14s cubic-bezier(0.4, 0, 1, 1)
}

.brandsubtitle {
font-size: 13px;
font-weight: 300;
line-height: 1.4;
color: #03303D;
letter-spacing: .06em;
opacity: .75
}

.headnav {
background: #03303D;
padding: 0
}

.headnav-shell {
max-width: 1280px;
margin: 0 auto;
padding: 0 32px;
display: flex;
align-items: stretch;
gap: 0;
flex-wrap: wrap
}

.navitem {
display: flex;
align-items: center
}

.navlink {
color: #F0FEE4;
font-size: 16px;
font-weight: 400;
line-height: 1.4;
letter-spacing: .02em;
text-decoration: none;
padding: 20px;
display: block;
position: relative;
transition: color .1s cubic-bezier(0.4, 0, 1, 1), background .16s cubic-bezier(0.4, 0, 1, 1);
border-radius: 0
}

.navlink::after {
content: '';
position: absolute;
bottom: 0;
left: 20px;
right: 20px;
height: 2px;
background: #2ACECA;
transform: scaleX(0);
transition: transform .14s cubic-bezier(0.4, 0, 1, 1);
border-radius: 2px
}

.navlink:hover {
color: #2ACECA;
background: #2aceca14
}

.navlink:hover::after {
transform: scaleX(1)
}

.navlink[aria-current="page"] {
color: #2ACECA;
font-weight: 500
}

.navlink[aria-current="page"]::after {
transform: scaleX(1)
}

.navdivider {
width: 1px;
background: #f0fee41a;
margin: 12px 0;
flex-shrink: 0
}

.ftrmain {
background: linear-gradient(160deg, #03303D 0%, #021e27 100%);
padding: 64px 0 32px
}

.ftrmain-shell {
max-width: 1280px;
margin: 0 auto;
padding: 0 32px
}

.ftrgrid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
margin-bottom: 64px
}

.ftrnav-label {
font-size: 13px;
font-weight: 700;
letter-spacing: .1em;
color: #2ACECA;
line-height: 1.4;
text-transform: uppercase;
margin-bottom: 20px
}

.ftrnav-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 12px
}

.ftrnav-list li {
display: flex;
align-items: center
}

.ftrnavlink {
color: #F0FEE4;
font-size: 16px;
line-height: 1.4;
text-decoration: none;
letter-spacing: .01em;
transition: color .12s cubic-bezier(0.4, 0, 1, 1);
display: flex;
align-items: center;
gap: 8px
}

.ftrnavlink:hover {
color: #2ACECA
}

.ftrnavdot {
width: 4px;
height: 4px;
border-radius: 2px;
background: #2ACECA;
flex-shrink: 0;
opacity: .6
}

.ftrcontact-label {
font-size: 13px;
font-weight: 700;
letter-spacing: .1em;
color: #2ACECA;
line-height: 1.4;
text-transform: uppercase;
margin-bottom: 20px
}

.ftrcontact-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 12px
}

.ftrcontact-item {
display: flex;
align-items: flex-start;
gap: 12px
}

.ftrcontact-icon {
width: 16px;
height: 16px;
flex-shrink: 0;
margin-top: 2px;
color: #2ACECA
}

.ftrcontact-text {
color: #F0FEE4;
font-size: 16px;
line-height: 1.4;
text-decoration: none;
letter-spacing: .01em;
transition: color .12s cubic-bezier(0.4, 0, 1, 1)
}

a.ftrcontact-text:hover {
color: #2ACECA
}

.ftrtrust {
border-top: 1px solid #2aceca26;
padding-top: 32px;
margin-bottom: 32px;
display: flex;
gap: 32px;
flex-wrap: wrap;
align-items: center
}

.ftrtrust-item {
display: flex;
align-items: center;
gap: 8px
}

.ftrtrust-badge {
width: 32px;
height: 32px;
border-radius: 2px;
background: #2aceca1f;
border: 1px solid #2aceca40;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0
}

.ftrtrust-badge svg {
color: #2ACECA
}

.ftrtrust-text {
font-size: 13px;
line-height: 1.4;
color: #F0FEE4;
letter-spacing: .02em;
opacity: .8
}

.ftrbottom {
border-top: 1px solid #f0fee414;
padding-top: 32px;
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 32px;
flex-wrap: wrap
}

.ftrlogohold {
background: #fff;
border: 1px solid #2aceca40;
border-radius: 2px;
box-shadow: 2px 3px 5px 1px #2aceca14;
padding: 8px;
display: flex;
align-items: center;
justify-content: center;
width: 70px;
height: 70px
}

.ftrlogohold img {
width: 54px;
height: 54px;
object-fit: contain;
display: block
}

.ftrcopy {
font-size: 13px;
color: #F0FEE4;
line-height: 1.4;
letter-spacing: .02em;
opacity: .55
}

.ftrpolicy {
display: flex;
gap: 20px;
flex-wrap: wrap;
align-items: center
}

.ftrpolicylink {
color: #F0FEE4;
font-size: 13px;
line-height: 1.4;
text-decoration: none;
letter-spacing: .02em;
opacity: .55;
transition: opacity .12s cubic-bezier(0.4, 0, 1, 1), color .12s cubic-bezier(0.4, 0, 1, 1)
}

.ftrpolicylink:hover {
opacity: 1;
color: #2ACECA
}

.cookiepop {
position: fixed;
top: 20px;
left: 20px;
width: 360px;
background: #fff;
border: 1px solid #2aceca4d;
border-radius: 20px;
box-shadow: 2px 10px 40px 1px #2aceca1c;
padding: 20px;
z-index: 8000;
transition: transform .42s cubic-bezier(0.4, 0, 1, 1), opacity .42s cubic-bezier(0.4, 0, 1, 1)
}

.cookiepop-desc {
font-size: 13px;
line-height: 1.6;
color: #03303D;
margin-bottom: 12px;
letter-spacing: .01em
}

.cookiepop-uses {
list-style: none;
padding: 0;
margin: 0 0 20px;
display: flex;
flex-direction: column;
gap: 4px
}

.cookiepop-uses li {
font-size: 13px;
line-height: 1.4;
color: #03303D;
padding-left: 12px;
position: relative;
opacity: .75
}

.cookiepop-uses li::before {
content: '';
position: absolute;
left: 0;
top: 7px;
width: 4px;
height: 4px;
border-radius: 2px;
background: #2ACECA
}

.cookiebtnrow {
display: flex;
gap: 8px
}

.cookiebtn {
flex: 1;
padding: 12px 8px;
font-size: 13px;
font-weight: 500;
line-height: 1.4;
letter-spacing: .03em;
border-radius: 2px;
border: none;
cursor: pointer;
font-family: 'Ubuntu', sans-serif;
transition: opacity .1s cubic-bezier(0.4, 0, 1, 1), transform .1s cubic-bezier(0.4, 0, 1, 1)
}

.cookiebtn:active {
transform: scale(0.97)
}

.cookiebtn-accept {
background: linear-gradient(135deg, #2ACECA 0%, #1db8b4 100%);
color: #03303D
}

.cookiebtn-accept:hover {
opacity: .88
}

.cookiebtn-decline {
background: #F0FEE4;
color: #03303D;
border: 1px solid #03303d26
}

.cookiebtn-decline:hover {
opacity: .78
}

@media (max-width: 992px) {
.topbar-tagline {
display: none
}

.ftrgrid {
grid-template-columns: 1fr;
gap: 32px
}

.ftrbottom {
flex-direction: column;
align-items: flex-start
}
}

@media (max-width: 576px) {
.topbar-shell {
padding: 0 20px
}

.headmid-shell {
padding: 0 20px;
gap: 20px
}

.headnav-shell {
padding: 0 20px
}

.navlink {
padding: 16px 12px;
font-size: 13px
}

.ftrmain-shell {
padding: 0 20px
}

.ftrtrust {
flex-direction: column;
gap: 12px
}

.cookiepop {
width: calc(100vw - 40px);
left: 20px;
right: 20px
}

.brandname {
font-size: 21px
}
}

.doc-zwzs-text {
max-width: 1280px;
margin: 0 auto;
padding: 64px 32px
}

.doc-zwzs-text h1 {
font-size: 52px;
line-height: 1.15;
letter-spacing: -.03em;
color: #03303D;
margin-bottom: 32px;
padding-bottom: 20px;
border-bottom: 2px solid #2ACECA
}

.doc-zwzs-text h2 {
font-size: 28px;
line-height: 1.15;
letter-spacing: -.01em;
color: #03303D;
margin-top: 64px;
margin-bottom: 20px
}

.doc-zwzs-text h3 {
font-size: 21px;
line-height: 1.4;
letter-spacing: -.005em;
color: #03303D;
margin-top: 32px;
margin-bottom: 12px
}

.doc-zwzs-text h4 {
font-size: 16px;
line-height: 1.4;
letter-spacing: .01em;
color: #03303D;
margin-top: 20px;
margin-bottom: 8px
}

.doc-zwzs-text h5 {
font-size: 13px;
line-height: 1.4;
letter-spacing: .02em;
color: #03303D;
text-transform: uppercase;
margin-top: 20px;
margin-bottom: 8px
}

.doc-zwzs-text h6 {
font-size: 13px;
line-height: 1.4;
letter-spacing: .02em;
color: #2ACECA;
margin-top: 12px;
margin-bottom: 8px
}

.doc-zwzs-text p {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 20px
}

.doc-zwzs-text ul {
padding-left: 20px;
margin-bottom: 20px
}

.doc-zwzs-text ol {
padding-left: 20px;
margin-bottom: 20px
}

.doc-zwzs-text li {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 8px;
padding-left: 8px
}

.doc-zwzs-text ul li {
list-style-type: none;
position: relative
}

.doc-zwzs-text ul li::before {
content: "";
position: absolute;
left: -16px;
top: 10px;
width: 6px;
height: 6px;
background-color: #2ACECA;
border-radius: 2px
}

.doc-zwzs-text ol li {
list-style-type: decimal
}

.doc-zwzs-text ol li::marker {
color: #2ACECA;
font-size: 16px
}

.doc-zwzs-text strong,
.doc-zwzs-text b {
font-weight: 700;
color: #03303D
}

.doc-zwzs-text em,
.doc-zwzs-text i {
font-style: italic;
color: #03303D
}

.doc-zwzs-text table {
width: 100%;
border-collapse: collapse;
margin-bottom: 32px;
font-size: 16px;
line-height: 1.4;
box-shadow: 2px 3px 5px 1px #2aceca14;
border-radius: 2px;
overflow: hidden
}

.doc-zwzs-text thead {
background-color: #03303D
}

.doc-zwzs-text thead th {
color: #F0FEE4;
font-size: 13px;
letter-spacing: .04em;
text-transform: uppercase;
padding: 12px 20px;
text-align: left;
font-weight: 600
}

.doc-zwzs-text tbody tr {
border-bottom: 1px solid #2aceca26;
transition: background-color .12s cubic-bezier(0.4, 0, 1, 1)
}

.doc-zwzs-text tbody tr:nth-child(even) {
background-color: #F0FEE4
}

.doc-zwzs-text tbody tr:hover {
background-color: #2aceca14
}

.doc-zwzs-text td {
padding: 12px 20px;
color: #03303D;
font-size: 16px;
line-height: 1.4;
vertical-align: top
}

.doc-zwzs-text hr {
border: none;
height: 1px;
background-color: #2aceca4d;
margin: 32px 0
}

@media (max-width: 576px) {
.doc-zwzs-text {
padding: 32px 20px
}

.doc-zwzs-text h1 {
font-size: 28px
}

.doc-zwzs-text h2 {
font-size: 21px;
margin-top: 32px
}

.doc-zwzs-text h3 {
font-size: 16px
}

.doc-zwzs-text table {
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch
}
}

@media (min-width: 577px) and (max-width: 992px) {
.doc-zwzs-text {
padding: 32px
}

.doc-zwzs-text h1 {
font-size: 28px
}

.doc-zwzs-text h2 {
font-size: 21px
}
}

.lpdet {
max-width: 1280px;
margin: 0 auto;
padding: 0;
overflow: hidden
}

.lpdet .titlesplit {
display: grid;
grid-template-columns: 1fr 1fr;
min-height: 480px
}

.lpdet .titleleft {
background: #03303D;
padding: 64px;
display: flex;
flex-direction: column;
justify-content: center;
position: relative
}

.lpdet .titleband {
position: absolute;
top: 0;
left: 0;
width: 6px;
height: 100%;
background: #2ACECA
}

.lpdet .cattag {
display: inline-block;
background: #2ACECA;
color: #03303D;
font-size: 13px;
font-weight: 700;
letter-spacing: .08em;
padding: 4px 12px;
border-radius: 2px;
margin-bottom: 20px;
width: fit-content
}

.lpdet .titleleft h1 {
font-size: 52px;
line-height: 1.15;
color: #F0FEE4;
letter-spacing: -.02em;
margin: 0 0 20px
}

.lpdet .metarow {
display: flex;
flex-direction: row;
gap: 20px;
flex-wrap: wrap;
margin-top: 20px
}

.lpdet .metaitem {
display: flex;
flex-direction: column;
gap: 4px
}

.lpdet .metalabel {
font-size: 13px;
color: #2ACECA;
letter-spacing: .06em
}

.lpdet .metaval {
font-size: 16px;
color: #F0FEE4;
font-weight: 600;
line-height: 1.4
}

.lpdet .titleright {
background: #F0FEE4;
position: relative;
overflow: hidden
}

.lpdet .titleright img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.lpdet .titleright img:hover {
transform: scale(1.03)
}

.lpdet .imgoverlay {
position: absolute;
inset: 0;
background: linear-gradient(to right, #2aceca2e, transparent);
pointer-events: none
}

.lpdet .userbadge {
position: absolute;
bottom: 20px;
left: 20px;
background: #03303D;
color: #F0FEE4;
font-size: 13px;
padding: 8px 12px;
border-radius: 2px;
box-shadow: 2px 3px 5px 1px #03303d14
}

.lpdet .divgrad {
height: 2px;
background: linear-gradient(to right, transparent, #2ACECA, transparent);
margin: 0
}

.lpdet .progwrap {
background: #fff;
padding: 64px;
position: relative
}

.lpdet .progwrap::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: linear-gradient(#2aceca0a 1px, transparent 1px), linear-gradient(90deg, #2aceca0a 1px, transparent 1px), linear-gradient(#2aceca05 1px, transparent 1px), linear-gradient(90deg, #2aceca05 1px, transparent 1px);
background-size: 40px 40px, 40px 40px, 8px 8px, 8px 8px;
pointer-events: none;
animation: bgpulse 6s ease-in-out infinite
}

@keyframes bgpulse {

0%,
100% {
opacity: 1
}

50% {
opacity: .4
}
}

.lpdet .progtitle {
font-size: 28px;
line-height: 1.4;
color: #03303D;
letter-spacing: -.01em;
margin-bottom: 32px;
padding-left: 20px;
border-left: 4px solid #2ACECA
}

.lpdet .progbody {
position: relative;
z-index: 1;
max-width: 860px
}

.lpdet .progbody h2 {
font-size: 21px;
line-height: 1.4;
color: #03303D;
margin-top: 32px;
margin-bottom: 12px;
padding-left: 20px;
border-left: 4px solid #2ACECA
}

.lpdet .progbody p {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 12px
}

.lpdet .progbody ul,
.lpdet .progbody ol {
padding-left: 20px;
margin-bottom: 12px
}

.lpdet .progbody li {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 4px
}

.lpdet .progbody strong {
color: #03303D
}

.lpdet .progbody em {
color: #2ACECA;
font-style: italic
}

.lpdet .progbody blockquote {
border-left: 4px solid #2ACECA;
margin: 20px 0;
padding: 12px 20px;
background: #F0FEE4;
border-radius: 2px;
font-size: 16px;
line-height: 1.6;
color: #03303D
}

.lpdet .progbody details {
margin-bottom: 12px;
border: 1px solid #2aceca4d;
border-radius: 2px;
padding: 12px 20px
}

.lpdet .progbody summary {
font-size: 16px;
font-weight: 600;
color: #03303D;
cursor: pointer;
transition: color .12s cubic-bezier(0.4, 0, 1, 1)
}

.lpdet .progbody summary:hover {
color: #2ACECA
}

.lpdet .descsec {
background: #F0FEE4;
padding: 64px;
display: grid;
grid-template-columns: 3fr 2fr;
gap: 64px;
align-items: start
}

.lpdet .desctextcol {
min-width: 0
}

.lpdet .desctitle {
font-size: 28px;
line-height: 1.4;
color: #03303D;
letter-spacing: -.01em;
margin-bottom: 32px;
padding-left: 20px;
border-left: 4px solid #2ACECA
}

.lpdet .descbody {
font-size: 16px;
line-height: 1.6;
color: #03303D
}

.lpdet .descbody p:first-of-type::first-letter {
font-size: 52px;
line-height: 1.15;
float: left;
margin-right: 8px;
color: #2ACECA;
font-weight: 700
}

.lpdet .descbody p {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 12px
}

.lpdet .descbody h2 {
font-size: 21px;
line-height: 1.4;
color: #03303D;
margin-top: 32px;
margin-bottom: 12px;
padding-left: 20px;
border-left: 4px solid #2ACECA
}

.lpdet .descbody blockquote {
border-left: 4px solid #2ACECA;
margin: 20px 0;
padding: 12px 20px;
background: #fff;
border-radius: 2px;
font-size: 16px;
line-height: 1.6;
color: #03303D
}

.lpdet .descbody ol,
.lpdet .descbody ul {
padding-left: 20px;
margin-bottom: 12px
}

.lpdet .descbody li {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 4px
}

.lpdet .descbody dl {
margin-bottom: 12px
}

.lpdet .descbody dt {
font-weight: 700;
color: #03303D;
font-size: 16px
}

.lpdet .descbody dd {
margin-left: 20px;
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 8px
}

.lpdet .descbody figure {
margin: 20px 0
}

.lpdet .descbody figcaption {
font-size: 13px;
color: #03303D;
margin-top: 8px
}

.lpdet .descbody details {
margin-bottom: 12px;
border: 1px solid #2aceca4d;
border-radius: 2px;
padding: 12px 20px;
background: #fff
}

.lpdet .descbody summary {
font-size: 16px;
font-weight: 600;
color: #03303D;
cursor: pointer;
transition: color .12s cubic-bezier(0.4, 0, 1, 1)
}

.lpdet .descbody summary:hover {
color: #2ACECA
}

.lpdet .descbody a {
color: #2ACECA;
text-decoration: underline;
letter-spacing: 0;
transition: letter-spacing .14s cubic-bezier(0.4, 0, 1, 1)
}

.lpdet .descbody a:hover {
letter-spacing: .04em
}

.lpdet .pricecol {
position: sticky;
top: 32px
}

.lpdet .pricecard {
background: #03303D;
border-radius: 20px;
padding: 32px;
box-shadow: 2px 4px 18px 1px #03303d1c;
display: flex;
flex-direction: column;
gap: 20px
}

.lpdet .pricetop {
display: flex;
flex-direction: column;
gap: 4px
}

.lpdet .pricelabel {
font-size: 13px;
color: #2ACECA;
letter-spacing: .08em
}

.lpdet .pricenum {
font-size: 52px;
line-height: 1.15;
color: #F0FEE4;
font-weight: 700;
letter-spacing: -.02em
}

.lpdet .pricedesc {
font-size: 13px;
color: #f0fee4b3;
line-height: 1.4
}

.lpdet .pricenote {
font-size: 13px;
color: #f0fee48c;
line-height: 1.4;
border-top: 1px solid #2aceca33;
padding-top: 12px
}

.lpdet .seatrow {
display: flex;
flex-direction: row;
align-items: center;
gap: 12px;
background: #2aceca14;
border-radius: 2px;
padding: 12px
}

.lpdet .seatdot {
width: 10px;
height: 10px;
border-radius: 50%;
background: #2ACECA;
flex-shrink: 0
}

.lpdet .seattext {
font-size: 13px;
color: #F0FEE4;
line-height: 1.4
}

.lpdet .enrollbtn {
display: block;
width: 100%;
padding: 20px;
background: linear-gradient(to right, #2ACECA, #2acecab3);
color: #03303D;
font-size: 16px;
font-weight: 700;
border: none;
border-radius: 2px;
cursor: pointer;
text-align: center;
letter-spacing: .04em;
transition: transform .1s cubic-bezier(0.4, 0, 1, 1), box-shadow .12s cubic-bezier(0.4, 0, 1, 1);
box-shadow: 2px 3px 5px 1px #2aceca14;
text-decoration: none
}

.lpdet .enrollbtn:hover {
box-shadow: 2px 10px 40px 1px #2aceca1c;
transform: translateY(-1px)
}

.lpdet .enrollbtn:active {
transform: scale(0.97)
}

.lpdet .printbtn {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
background: transparent;
border: 1px solid #2aceca66;
border-radius: 2px;
padding: 12px 20px;
color: #F0FEE4;
font-size: 13px;
cursor: pointer;
letter-spacing: .04em;
transition: background .15s cubic-bezier(0.4, 0, 1, 1), border-color .15s cubic-bezier(0.4, 0, 1, 1);
width: 100%;
justify-content: center
}

.lpdet .printbtn:hover {
background: #2aceca1a;
border-color: #2ACECA
}

.lpdet .printbtn:active {
transform: scale(0.97)
}

.lpdet .printicon {
width: 16px;
height: 16px;
flex-shrink: 0
}

.lpdet .divline {
height: 1px;
background: linear-gradient(to right, transparent, #2aceca66, transparent);
margin: 0 64px
}

.lpdet .contactsec {
background: #03303D;
padding: 64px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
gap: 32px;
flex-wrap: wrap
}

.lpdet .contactleft {
display: flex;
flex-direction: column;
gap: 12px;
max-width: 480px
}

.lpdet .contactleft h2 {
font-size: 28px;
line-height: 1.4;
color: #F0FEE4;
margin: 0;
letter-spacing: -.01em
}

.lpdet .contactleft p {
font-size: 16px;
line-height: 1.6;
color: #f0fee4bf;
margin: 0
}

.lpdet .contactright {
display: flex;
flex-direction: column;
gap: 12px;
align-items: flex-start
}

.lpdet .contactlink {
display: flex;
flex-direction: row;
align-items: center;
gap: 12px;
color: #F0FEE4;
text-decoration: none;
font-size: 16px;
letter-spacing: 0;
transition: letter-spacing .14s cubic-bezier(0.4, 0, 1, 1), color .12s cubic-bezier(0.4, 0, 1, 1)
}

.lpdet .contactlink:hover {
color: #2ACECA;
letter-spacing: .03em
}

.lpdet .cicon {
width: 20px;
height: 20px;
flex-shrink: 0
}

.lpdet .ctabtn {
display: inline-block;
padding: 20px 32px;
background: linear-gradient(to right, #2ACECA, #2acecaa6);
color: #03303D;
font-size: 16px;
font-weight: 700;
border-radius: 2px;
text-decoration: none;
letter-spacing: .04em;
transition: box-shadow .13s cubic-bezier(0.4, 0, 1, 1), transform .1s cubic-bezier(0.4, 0, 1, 1);
box-shadow: 2px 3px 5px 1px #2aceca14;
margin-top: 8px
}

.lpdet .ctabtn:hover {
box-shadow: 2px 10px 40px 1px #2aceca1c;
transform: translateY(-1px)
}

.lpdet .ctabtn:active {
transform: scale(0.97)
}

@media (max-width: 992px) {
.lpdet .titlesplit {
grid-template-columns: 1fr
}

.lpdet .titleright {
height: 300px
}

.lpdet .titleleft {
padding: 32px
}

.lpdet .titleleft h1 {
font-size: 28px
}

.lpdet .descsec {
grid-template-columns: 1fr;
padding: 32px;
gap: 32px
}

.lpdet .progwrap {
padding: 32px
}

.lpdet .pricecol {
position: static
}

.lpdet .contactsec {
padding: 32px;
flex-direction: column
}
}

@media (max-width: 576px) {
.lpdet .titleleft {
padding: 20px
}

.lpdet .titleleft h1 {
font-size: 21px
}

.lpdet .pricenum {
font-size: 28px
}

.lpdet .progwrap {
padding: 20px
}

.lpdet .descsec {
padding: 20px
}

.lpdet .contactsec {
padding: 20px
}

.lpdet .metarow {
gap: 12px
}
}

@media print {
.lpdet .printbtn {
display: none
}

.lpdet .enrollbtn {
display: none
}

.lpdet .ctabtn {
display: none
}
}

.uprog {
max-width: 100%;
overflow-x: hidden
}

.uprog .pgwrap {
max-width: 1280px;
margin: 0 auto;
padding: 0 20px
}

.uprog .titleblock {
position: relative;
padding: 80px 0 64px;
background: linear-gradient(135deg, #03303D 0%, #03303D 48%, #F0FEE4 48%, #F0FEE4 100%)
}

.uprog .titleblock::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 3px;
height: 100%;
background: #2ACECA
}

.uprog .tbinner {
max-width: 1280px;
margin: 0 auto;
padding: 0 20px;
display: flex;
flex-direction: row;
gap: 64px;
align-items: center
}

.uprog .tbtextside {
flex: 1 1 0;
min-width: 0
}

.uprog .tblabel {
display: inline-block;
font-size: 13px;
letter-spacing: .12em;
color: #2ACECA;
text-transform: uppercase;
margin-bottom: 20px;
line-height: 1.4
}

.uprog .tbheading {
font-size: 52px;
line-height: 1.15;
letter-spacing: -.02em;
color: #F0FEE4;
margin: 0 0 20px
}

.uprog .tbsub {
font-size: 16px;
line-height: 1.6;
color: #b8d4c8;
margin: 0;
max-width: 480px
}

.uprog .tbimgside {
flex: 0 0 420px;
position: relative
}

.uprog .tbimgwrap {
border-radius: 20px;
overflow: hidden;
position: relative;
box-shadow: 2px 10px 40px 1px #2aceca1c
}

.uprog .tbimgwrap img {
width: 100%;
height: 320px;
object-fit: cover;
display: block;
filter: saturate(0.7) brightness(0.85);
transition: filter .16s cubic-bezier(0.4, 0, 1, 1)
}

.uprog .tbimgwrap:hover img {
filter: saturate(1) brightness(1)
}

.uprog .tboverlay {
position: absolute;
inset: 0;
background: linear-gradient(to right, #2aceca47, transparent);
border-radius: 20px;
pointer-events: none
}

.uprog .tbarrow {
position: absolute;
bottom: -20px;
left: 50%;
transform: translateX(-50%);
width: 24px;
height: 24px;
opacity: .45
}

.uprog .tbarrow svg {
width: 24px;
height: 24px
}

.uprog .proglist {
padding: 80px 0 64px;
background: #fff
}

.uprog .plhead {
margin-bottom: 48px
}

.uprog .plheadrow {
display: flex;
flex-direction: row;
align-items: flex-end;
gap: 32px
}

.uprog .plh2 {
font-size: 28px;
line-height: 1.15;
letter-spacing: -.01em;
color: #03303D;
margin: 0;
padding-left: 16px;
border-left: none;
position: relative
}

.uprog .plh2::before {
content: '';
position: absolute;
left: 0;
top: 4px;
bottom: 4px;
width: 3px;
background: #2ACECA;
border-radius: 2px
}

.uprog .pldesc {
font-size: 16px;
line-height: 1.6;
color: #4a6670;
margin: 0;
max-width: 400px
}

.uprog .plgrid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px
}

.uprog .progcard {
background: #F0FEE4;
border-radius: 20px;
padding: 32px;
position: relative;
box-shadow: 2px 3px 5px 1px #03303d14;
transition: box-shadow .14s cubic-bezier(0.4, 0, 1, 1);
overflow: hidden
}

.uprog .progcard:hover {
box-shadow: 2px 4px 18px 1px #2aceca1c
}

.uprog .progcard.featured {
grid-column: 1 / -1;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
background: #03303D
}

.uprog .pcbadge {
position: absolute;
top: 20px;
right: 20px;
width: 36px;
height: 36px;
background: #2ACECA;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center;
font-size: 13px;
font-weight: 700;
color: #03303D;
line-height: 1.15;
box-shadow: 2px 3px 5px 1px #2aceca14
}

.uprog .pctag {
display: inline-block;
font-size: 13px;
letter-spacing: .09em;
color: #2ACECA;
text-transform: uppercase;
margin-bottom: 12px;
line-height: 1.4
}

.uprog .progcard.featured .pctag {
color: #2ACECA
}

.uprog .pch3 {
font-size: 21px;
line-height: 1.4;
letter-spacing: -.01em;
color: #03303D;
margin: 0 0 12px
}

.uprog .progcard.featured .pch3 {
color: #F0FEE4;
font-size: 28px;
line-height: 1.15
}

.uprog .pctext {
font-size: 16px;
line-height: 1.6;
color: #3a5560;
margin: 0 0 20px
}

.uprog .progcard.featured .pctext {
color: #b8d4c8
}

.uprog .pcmeta {
display: flex;
flex-direction: row;
gap: 20px;
flex-wrap: wrap
}

.uprog .pcmetaitem {
display: flex;
flex-direction: column;
gap: 4px
}

.uprog .pcmetalabel {
font-size: 13px;
color: #7a9aa5;
line-height: 1.4;
letter-spacing: .06em
}

.uprog .progcard.featured .pcmetalabel {
color: #6a8a95
}

.uprog .pcmetaval {
font-size: 16px;
color: #03303D;
line-height: 1.4;
font-weight: 600
}

.uprog .progcard.featured .pcmetaval {
color: #F0FEE4
}

.uprog .pcsubgrid {
display: grid;
grid-template-rows: auto auto;
gap: 20px
}

.uprog .pcmodule {
background: #2aceca1a;
border-radius: 2px;
padding: 12px 20px
}

.uprog .pcmodtitle {
font-size: 13px;
color: #2ACECA;
letter-spacing: .07em;
text-transform: uppercase;
margin-bottom: 8px;
line-height: 1.4
}

.uprog .pcmodlist {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 4px
}

.uprog .pcmodlist li {
font-size: 13px;
color: #b8d4c8;
line-height: 1.6;
padding-left: 12px;
position: relative
}

.uprog .pcmodlist li::before {
content: '';
position: absolute;
left: 0;
top: 8px;
width: 4px;
height: 4px;
background: #2ACECA;
border-radius: 2px
}

.uprog .pclink {
display: inline-block;
margin-top: 20px;
font-size: 16px;
color: #2ACECA;
text-decoration: none;
letter-spacing: .02em;
transition: letter-spacing .12s cubic-bezier(0.4, 0, 1, 1);
line-height: 1.4
}

.uprog .pclink:hover {
letter-spacing: .08em
}

.uprog .schedblock {
padding: 80px 0;
background: linear-gradient(to top, #F0FEE4 0%, #fff 100%)
}

.uprog .sbinner {
max-width: 1280px;
margin: 0 auto;
padding: 0 20px
}

.uprog .sbheadrow {
display: flex;
flex-direction: row;
align-items: center;
gap: 32px;
margin-bottom: 48px
}

.uprog .sbh2 {
font-size: 28px;
line-height: 1.15;
letter-spacing: -.01em;
color: #03303D;
margin: 0;
padding-left: 16px;
position: relative
}

.uprog .sbh2::before {
content: '';
position: absolute;
left: 0;
top: 4px;
bottom: 4px;
width: 3px;
background: #2ACECA;
border-radius: 2px
}

.uprog .sbdesc {
font-size: 16px;
line-height: 1.6;
color: #4a6670;
margin: 0;
max-width: 380px
}

.uprog .sbtable {
width: 100%;
border-collapse: separate;
border-spacing: 0 8px
}

.uprog .sbthead th {
font-size: 13px;
letter-spacing: .09em;
text-transform: uppercase;
color: #7a9aa5;
padding: 8px 20px;
text-align: left;
line-height: 1.4
}

.uprog .sbrow {
background: #fff;
box-shadow: 2px 3px 5px 1px #03303d14;
border-radius: 2px;
transition: box-shadow .15s cubic-bezier(0.4, 0, 1, 1), transform .13s cubic-bezier(0.4, 0, 1, 1);
cursor: default
}

.uprog .sbrow:hover {
box-shadow: 2px 4px 18px 1px #2aceca1c;
transform: translateY(-2px)
}

.uprog .sbrow td {
padding: 20px;
font-size: 16px;
color: #03303D;
line-height: 1.4;
vertical-align: middle
}

.uprog .sbrow td:first-child {
border-radius: 2px 0 0 2px;
font-weight: 600
}

.uprog .sbrow td:last-child {
border-radius: 0 2px 2px 0
}

.uprog .sbbadge {
display: inline-block;
padding: 4px 12px;
border-radius: 2px;
font-size: 13px;
line-height: 1.4;
font-weight: 600
}

.uprog .sbbadge.open {
background: #2aceca26;
color: #1a8a87
}

.uprog .sbbadge.soon {
background: #03303d14;
color: #03303D
}

.uprog .sbbadge.full {
background: #c8503c1a;
color: #a03020
}

.uprog .sbdivider {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin: 48px 0 0;
gap: 20px
}

.uprog .sbdivline {
width: 80px;
height: 2px;
background: #2ACECA;
border-radius: 2px
}

.uprog .sbdivtext {
font-size: 13px;
color: #7a9aa5;
letter-spacing: .08em;
text-transform: uppercase;
line-height: 1.4
}

.uprog .animate__animated {
animation-duration: .7s
}

@keyframes rotateReveal {
from {
opacity: 0;
transform: rotate(-4deg) translateY(18px)
}

to {
opacity: 1;
transform: rotate(0deg) translateY(0)
}
}

.uprog .rotatein {
animation: rotateReveal .65s cubic-bezier(0.4, 0, 1, 1) both
}

.uprog .rotatein2 {
animation: rotateReveal .72s .1s cubic-bezier(0.4, 0, 1, 1) both
}

.uprog .rotatein3 {
animation: rotateReveal .8s .18s cubic-bezier(0.4, 0, 1, 1) both
}

.uprog .expandhover {
position: relative
}

.uprog .expandhover::after {
content: '';
position: absolute;
inset: 0;
background: #2aceca14;
border-radius: 20px;
transform: scaleX(0);
transform-origin: center;
transition: transform .16s cubic-bezier(0.4, 0, 1, 1);
pointer-events: none
}

.uprog .expandhover:hover::after {
transform: scaleX(1)
}

@media (max-width: 992px) {
.uprog .tbinner {
flex-direction: column;
gap: 32px
}

.uprog .tbimgside {
flex: 0 0 auto;
width: 100%
}

.uprog .tbheading {
font-size: 28px
}

.uprog .plgrid {
grid-template-columns: 1fr
}

.uprog .progcard.featured {
grid-template-columns: 1fr
}

.uprog .plheadrow {
flex-direction: column;
align-items: flex-start;
gap: 12px
}

.uprog .sbheadrow {
flex-direction: column;
align-items: flex-start;
gap: 12px
}
}

@media (max-width: 576px) {
.uprog .titleblock {
padding: 48px 0 40px;
background: linear-gradient(160deg, #03303D 0%, #03303D 55%, #F0FEE4 55%, #F0FEE4 100%)
}

.uprog .tbheading {
font-size: 21px
}

.uprog .proglist {
padding: 48px 0 40px
}

.uprog .schedblock {
padding: 48px 0
}

.uprog .sbtable {
display: block;
overflow-x: auto
}

.uprog .pcmeta {
flex-direction: column;
gap: 12px
}
}

@media (min-width: 1200px) {
.uprog .tbimgside {
flex: 0 0 480px
}
}

.aboutUs {
max-width: 100%;
overflow-x: hidden
}

.aboutUs .pageWrap {
max-width: 1280px;
margin: 0 auto;
padding: 0 20px
}

.aboutUs .titBlock {
padding: 64px 0;
background: #fff;
position: relative
}

.aboutUs .titBlock .pageWrap {
display: grid;
grid-template-columns: 1fr 1.6fr;
gap: 64px;
align-items: center
}

.aboutUs .imgCol {
position: relative
}

.aboutUs .imgFrame {
position: relative;
border-radius: 20px;
overflow: hidden;
box-shadow: 2px 10px 40px 1px #2aceca1c
}

.aboutUs .imgFrame img {
width: 100%;
height: 420px;
object-fit: cover;
display: block
}

.aboutUs .imgOverlay {
position: absolute;
inset: 0;
background: linear-gradient(to right, transparent 30%, #fff 100%);
border-radius: 20px
}

.aboutUs .blobA {
position: absolute;
width: 180px;
height: 180px;
background: #2ACECA;
opacity: .12;
border-radius: 50%;
top: -32px;
left: -32px;
filter: blur(40px);
pointer-events: none
}

.aboutUs .blobB {
position: absolute;
width: 120px;
height: 120px;
background: #03303D;
opacity: .08;
border-radius: 50%;
bottom: -20px;
right: -20px;
filter: blur(30px);
pointer-events: none
}

.aboutUs .textCol {
padding: 20px 0 20px 32px
}

.aboutUs .tagLine {
display: inline-block;
background: #F0FEE4;
color: #03303D;
font-size: 13px;
letter-spacing: .06em;
padding: 4px 12px;
border-radius: 2px;
margin-bottom: 20px
}

.aboutUs .textCol h1 {
font-size: 52px;
line-height: 1.15;
color: #03303D;
margin: 0 0 20px;
letter-spacing: -.02em
}

.aboutUs .textCol h1 span {
color: #2ACECA
}

.aboutUs .textCol p {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin: 0 0 20px
}

.aboutUs .textCol p:first-of-type::first-letter {
font-size: 52px;
line-height: 1;
float: left;
margin: 4px 8px 0 0;
color: #2ACECA;
font-weight: 700
}

.aboutUs .accentPhrase {
font-size: 21px;
line-height: 1.4;
color: #03303D;
font-weight: 600;
border-top: 2px solid #2ACECA;
padding-top: 12px;
margin-top: 8px
}

.aboutUs .metricsBlock {
padding: 64px 0;
background: #03303D;
position: relative
}

.aboutUs .metricsBlock .svgDiv {
position: absolute;
top: -1px;
left: 0;
width: 100%;
overflow: hidden;
line-height: 0
}

.aboutUs .metricsGrid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px;
margin-top: 32px
}

.aboutUs .metricCard {
background: #2aceca14;
border-radius: 20px;
padding: 32px 20px;
text-align: center;
border: 1px solid #2aceca2e;
transition: transform .14s cubic-bezier(0.4, 0, 1, 1), box-shadow .16s cubic-bezier(0.4, 0, 1, 1);
cursor: default
}

.aboutUs .metricCard:hover {
transform: rotate(-1.5deg);
box-shadow: 2px 10px 40px 1px #2aceca1c
}

.aboutUs .metricNum {
font-size: 52px;
line-height: 1.15;
color: #2ACECA;
font-weight: 700;
letter-spacing: -.02em;
display: block
}

.aboutUs .metricLabel {
font-size: 16px;
line-height: 1.4;
color: #F0FEE4;
margin-top: 8px;
display: block
}

.aboutUs .metricsBlock h2 {
font-size: 28px;
line-height: 1.4;
color: #F0FEE4;
margin: 0;
padding-left: 16px;
border-left: none;
position: relative
}

.aboutUs .metricsBlock h2::before {
content: '';
display: inline-block;
width: 4px;
height: 28px;
background: #2ACECA;
border-radius: 2px;
margin-right: 12px;
vertical-align: middle
}

.aboutUs .imgRowBlock {
padding: 64px 0;
background: #F0FEE4;
position: relative
}

.aboutUs .imgRowBlock .svgDiv {
position: absolute;
top: -1px;
left: 0;
width: 100%;
overflow: hidden;
line-height: 0
}

.aboutUs .imgRowBlock .pageWrap {
display: grid;
grid-template-columns: 1.4fr 1fr;
gap: 64px;
align-items: start
}

.aboutUs .textZone h2 {
font-size: 28px;
line-height: 1.4;
color: #03303D;
margin: 0 0 20px;
position: relative;
padding-left: 16px
}

.aboutUs .textZone h2::before {
content: '';
position: absolute;
left: 0;
top: 4px;
width: 4px;
height: 80%;
background: #2ACECA;
border-radius: 2px
}

.aboutUs .textZone p {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin: 0 0 20px
}

.aboutUs .textZone p:first-of-type::first-letter {
font-size: 52px;
line-height: 1;
float: left;
margin: 4px 8px 0 0;
color: #2ACECA;
font-weight: 700
}

.aboutUs .pillList {
list-style: none;
padding: 0;
margin: 20px 0 0;
display: flex;
flex-direction: column;
gap: 8px
}

.aboutUs .pillList li {
display: flex;
align-items: center;
gap: 12px;
font-size: 16px;
line-height: 1.4;
color: #03303D
}

.aboutUs .pillDot {
width: 10px;
height: 10px;
min-width: 10px;
border-radius: 2px;
background: #2ACECA;
display: inline-block
}

.aboutUs .imgStack {
display: flex;
flex-direction: column;
gap: 20px
}

.aboutUs .imgCard {
border-radius: 20px;
overflow: hidden;
box-shadow: 2px 4px 18px 1px #03303d1c;
transition: transform .12s cubic-bezier(0.4, 0, 1, 1)
}

.aboutUs .imgCard:hover {
transform: rotate(1deg)
}

.aboutUs .imgCard img {
width: 100%;
height: 200px;
object-fit: cover;
display: block
}

.aboutUs .imgCard.tall img {
height: 260px
}

.aboutUs .frostedPanel {
background: #f0fee48c;
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid #2aceca33;
border-radius: 20px;
padding: 20px;
margin-top: 20px
}

.aboutUs .frostedPanel p {
font-size: 13px;
line-height: 1.6;
color: #03303D;
margin: 0
}

.aboutUs .cycleBar {
display: flex;
flex-direction: row;
gap: 8px;
margin-top: 32px;
flex-wrap: wrap
}

.aboutUs .cycleItem {
flex: 1;
min-width: 80px;
padding: 12px 8px;
border-radius: 20px;
text-align: center;
font-size: 13px;
line-height: 1.4;
color: #03303D;
font-weight: 600;
animation: bgCycle 6s ease-in-out infinite alternate
}

.aboutUs .cycleItem:nth-child(2) {
animation-delay: 2s
}

.aboutUs .cycleItem:nth-child(3) {
animation-delay: 4s
}

@keyframes bgCycle {
0% {
background: #F0FEE4
}

100% {
background: #2ACECA;
color: #03303D
}
}

.aboutUs .linkRead {
display: inline-block;
color: #2ACECA;
font-size: 16px;
line-height: 1.4;
text-decoration: none;
letter-spacing: .01em;
transition: letter-spacing .16s cubic-bezier(0.4, 0, 1, 1);
margin-top: 20px;
font-weight: 600
}

.aboutUs .linkRead:hover {
letter-spacing: .08em
}

.aboutUs .btnPrimary {
display: inline-block;
background: linear-gradient(to right, #2ACECA, #03303D);
color: #fff;
font-size: 16px;
line-height: 1.4;
padding: 12px 32px;
border-radius: 2px;
border: none;
cursor: pointer;
text-decoration: none;
transition: opacity .12s cubic-bezier(0.4, 0, 1, 1);
margin-top: 20px;
box-shadow: 2px 3px 5px 1px #2aceca14
}

.aboutUs .btnPrimary:active {
transform: scale(0.97)
}

.aboutUs .btnPrimary:hover {
opacity: .88
}

@media (max-width: 992px) {
.aboutUs .titBlock .pageWrap {
grid-template-columns: 1fr;
gap: 32px
}

.aboutUs .textCol {
padding: 0
}

.aboutUs .textCol h1 {
font-size: 28px
}

.aboutUs .metricsGrid {
grid-template-columns: 1fr 1fr;
gap: 20px
}

.aboutUs .imgRowBlock .pageWrap {
grid-template-columns: 1fr;
gap: 32px
}

.aboutUs .imgStack {
flex-direction: row;
overflow: hidden
}
}

@media (max-width: 576px) {
.aboutUs .titBlock {
padding: 32px 0
}

.aboutUs .metricsGrid {
grid-template-columns: 1fr
}

.aboutUs .metricNum {
font-size: 28px
}

.aboutUs .metricsBlock {
padding: 32px 0
}

.aboutUs .imgRowBlock {
padding: 32px 0
}

.aboutUs .imgStack {
flex-direction: column
}

.aboutUs .cycleBar {
flex-direction: column
}
}

.lprog {
max-width: 1280px;
margin: 0 auto;
padding: 0 20px
}

.lprog .titleblock {
padding: 32px 20px 64px;
text-align: center;
position: relative
}

.lprog .titleblock .brackets {
display: inline-block;
position: relative;
padding: 32px 40px
}

.lprog .titleblock .brackets::before,
.lprog .titleblock .brackets::after {
content: '';
position: absolute;
width: 24px;
height: 24px;
border-color: #2ACECA;
border-style: solid
}

.lprog .titleblock .brackets::before {
top: 0;
left: 0;
border-width: 2px 0 0 2px
}

.lprog .titleblock .brackets::after {
bottom: 0;
right: 0;
border-width: 0 2px 2px 0
}

.lprog .pagelabel {
font-size: 13px;
letter-spacing: .12em;
color: #2ACECA;
text-transform: uppercase;
margin-bottom: 12px;
display: block
}

.lprog .pagetitle {
font-size: 52px;
line-height: 1.15;
letter-spacing: -.02em;
color: #03303D;
margin: 0 0 20px
}

.lprog .pagedesc {
font-size: 16px;
line-height: 1.6;
color: #03303D;
max-width: 560px;
margin: 0 auto;
opacity: .82
}

.lprog .divwave {
width: 100%;
overflow: hidden;
line-height: 0;
margin: 0
}

.lprog .cardgrid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 32px;
padding: 64px 0
}

.lprog .coursecard {
border-radius: 20px;
background: #fff;
box-shadow: 2px 4px 18px 1px #03303d1c;
overflow: hidden;
display: flex;
flex-direction: column;
transition: box-shadow .15s cubic-bezier(0.4, 0, 1, 1), transform .12s cubic-bezier(0.4, 0, 1, 1)
}

.lprog .coursecard:hover {
box-shadow: 2px 10px 40px 1px #2aceca1c;
transform: translateY(-4px)
}

.lprog .imgwrap {
position: relative;
overflow: hidden;
height: 220px
}

.lprog .imgwrap img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
transition: transform .16s cubic-bezier(0.4, 0, 1, 1)
}

.lprog .coursecard:hover .imgwrap img {
transform: scale(1.04)
}

.lprog .imgwrap .colorwash {
position: absolute;
inset: 0;
background: linear-gradient(to right, #2aceca8c, transparent);
opacity: 0;
transition: opacity .14s cubic-bezier(0.4, 0, 1, 1);
pointer-events: none
}

.lprog .coursecard:hover .colorwash {
opacity: 1
}

.lprog .imgwrap .vignette {
position: absolute;
inset: 0;
background: radial-gradient(ellipse at center bottom, #03303d73 0%, transparent 70%);
pointer-events: none
}

.lprog .cardtags {
display: flex;
flex-direction: row;
gap: 8px;
padding: 20px 20px 0;
flex-wrap: wrap
}

.lprog .tag {
font-size: 13px;
line-height: 1.4;
background: #F0FEE4;
color: #03303D;
border-radius: 2px;
padding: 4px 8px;
font-weight: 600;
letter-spacing: .04em
}

.lprog .usertag {
font-size: 13px;
line-height: 1.4;
background: linear-gradient(to right, #2ACECA, #2aceca80);
color: #03303D;
border-radius: 2px;
padding: 4px 8px;
font-weight: 600;
letter-spacing: .04em
}

.lprog .cardbody {
padding: 20px;
flex: 1;
display: flex;
flex-direction: column;
gap: 12px
}

.lprog .cardtitle {
font-size: 21px;
line-height: 1.4;
color: #03303D;
margin: 0;
letter-spacing: -.01em
}

.lprog .carddesc {
font-size: 16px;
line-height: 1.6;
color: #03303D;
opacity: .78;
margin: 0;
flex: 1
}

.lprog .cardmeta {
display: flex;
flex-direction: row;
gap: 20px;
align-items: center;
flex-wrap: wrap
}

.lprog .metaitem {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
font-size: 13px;
color: #03303D;
opacity: .7
}

.lprog .metaitem svg {
flex-shrink: 0
}

.lprog .seats {
font-size: 13px;
color: #2ACECA;
font-weight: 700;
letter-spacing: .03em
}

.lprog .cardfooter {
padding: 0 20px 20px;
display: flex;
flex-direction: row;
align-items: flex-end;
justify-content: space-between;
gap: 12px;
flex-wrap: wrap
}

.lprog .priceblock {
display: flex;
flex-direction: column;
gap: 4px
}

.lprog .priceval {
font-size: 28px;
line-height: 1.15;
font-weight: 700;
color: #03303D;
letter-spacing: -.02em
}

.lprog .pricedes {
font-size: 13px;
line-height: 1.4;
color: #03303D;
opacity: .6
}

.lprog .pricenote {
font-size: 13px;
color: #2ACECA;
font-weight: 600
}

.lprog .cardbtn {
display: inline-block;
padding: 12px 20px;
border-radius: 2px;
background: linear-gradient(to right, #2ACECA, #2acecab3);
color: #03303D;
font-size: 16px;
font-weight: 700;
text-decoration: none;
border: none;
cursor: pointer;
transition: filter .12s cubic-bezier(0.4, 0, 1, 1), transform .1s cubic-bezier(0.4, 0, 1, 1);
white-space: nowrap;
box-shadow: 2px 3px 5px 1px #2aceca14
}

.lprog .cardbtn:hover {
filter: brightness(1.08)
}

.lprog .cardbtn:active {
transform: scale(0.97)
}

.lprog .divider {
display: flex;
flex-direction: row;
align-items: center;
gap: 20px;
padding: 8px 0
}

.lprog .divider .line {
flex: 1;
height: 1px;
background: linear-gradient(to right, #2ACECA, transparent)
}

.lprog .divider .lineback {
flex: 1;
height: 1px;
background: linear-gradient(to left, #2ACECA, transparent)
}

.lprog .divider .deco {
width: 12px;
height: 12px;
border-radius: 2px;
background: #2ACECA;
transform: rotate(45deg);
flex-shrink: 0
}

.lprog .metricstrip {
background: #03303D;
border-radius: 20px;
padding: 64px 32px;
margin: 0 0 64px;
display: flex;
flex-direction: row;
align-items: stretch;
gap: 0;
position: relative;
overflow: hidden
}

.lprog .metricstrip::before {
content: '';
position: absolute;
inset: 0;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23g)' opacity='0.06'/%3E%3C/svg%3E");
border-radius: 20px;
pointer-events: none
}

.lprog .metricitem {
flex: 1;
text-align: center;
padding: 0 20px;
position: relative
}

.lprog .metricitem+.metricitem::before {
content: '';
position: absolute;
left: 0;
top: 20%;
height: 60%;
width: 1px;
background: #2aceca40
}

.lprog .bignum {
font-size: 66px;
line-height: 1.15;
font-weight: 700;
color: #2ACECA;
letter-spacing: -.03em;
display: block
}

.lprog .bignum sup {
font-size: 28px;
vertical-align: super;
color: #F0FEE4
}

.lprog .metriclabel {
font-size: 16px;
line-height: 1.4;
color: #F0FEE4;
opacity: .8;
margin-top: 8px;
display: block
}

.lprog .whysec {
padding: 64px 0;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 64px;
align-items: center
}

.lprog .whyimg {
border-radius: 20px;
overflow: hidden;
box-shadow: 2px 10px 40px 1px #2aceca1c;
position: relative
}

.lprog .whyimg img {
width: 100%;
height: 360px;
object-fit: cover;
display: block
}

.lprog .whyimg .colorwash {
position: absolute;
inset: 0;
background: linear-gradient(to right, #2aceca80, transparent);
opacity: 0;
transition: opacity .14s cubic-bezier(0.4, 0, 1, 1);
pointer-events: none
}

.lprog .whyimg:hover .colorwash {
opacity: 1
}

.lprog .whytxt .accentline {
display: inline-block;
width: 4px;
height: 28px;
background: #2ACECA;
border-radius: 2px;
vertical-align: middle;
margin-right: 12px
}

.lprog .whytxt h2 {
font-size: 28px;
line-height: 1.4;
color: #03303D;
margin: 0 0 20px;
display: flex;
align-items: center
}

.lprog .whytxt p {
font-size: 16px;
line-height: 1.6;
color: #03303D;
opacity: .82;
margin: 0 0 20px
}

.lprog .whytxt p:first-of-type::first-letter {
font-size: 52px;
line-height: 1;
float: left;
margin-right: 8px;
color: #2ACECA;
font-weight: 700
}

.lprog .stepssec {
background: #F0FEE4;
border-radius: 20px;
padding: 64px 32px;
margin: 0 0 64px
}

.lprog .stepssec h2 {
font-size: 28px;
line-height: 1.4;
color: #03303D;
text-align: center;
margin: 0 0 32px
}

.lprog .stepsrow {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 32px
}

.lprog .stepcard {
background: #fff;
border-radius: 20px;
padding: 32px 20px;
box-shadow: 2px 3px 5px 1px #2aceca14;
display: flex;
flex-direction: column;
gap: 12px;
transition: box-shadow .13s cubic-bezier(0.4, 0, 1, 1)
}

.lprog .stepcard:hover {
box-shadow: 2px 4px 18px 1px #2aceca1c
}

.lprog .stepnum {
font-size: 52px;
line-height: 1.15;
font-weight: 700;
color: #2ACECA;
letter-spacing: -.03em
}

.lprog .stepcard h4 {
font-size: 16px;
line-height: 1.4;
color: #03303D;
margin: 0;
font-weight: 700
}

.lprog .stepcard p {
font-size: 13px;
line-height: 1.6;
color: #03303D;
opacity: .75;
margin: 0
}

@media (max-width: 992px) {
.lprog .cardgrid {
grid-template-columns: 1fr
}

.lprog .whysec {
grid-template-columns: 1fr;
gap: 32px
}

.lprog .stepsrow {
grid-template-columns: 1fr;
gap: 20px
}

.lprog .metricstrip {
flex-direction: column;
gap: 32px
}

.lprog .metricitem+.metricitem::before {
display: none
}

.lprog .pagetitle {
font-size: 28px
}
}

@media (max-width: 576px) {
.lprog .cardfooter {
flex-direction: column;
align-items: flex-start
}

.lprog .metricstrip {
padding: 32px 20px
}

.lprog .stepssec {
padding: 32px 20px
}
}

.bse {
max-width: 1280px;
margin: 0 auto;
overflow-x: clip
}

.bse .stripLeft {
position: absolute;
left: 0;
top: 0;
width: 6px;
height: 100%;
background: #2ACECA;
border-radius: 2px
}

.bse .titlewrap {
display: grid;
grid-template-columns: 120px 1fr;
gap: 32px;
padding: 64px 32px 32px;
position: relative;
background: #fff;
overflow: hidden
}

.bse .titlewrap .bglines {
position: absolute;
inset: 0;
pointer-events: none;
overflow: hidden
}

.bse .titlewrap .bglines svg {
width: 100%;
height: 100%;
opacity: .13
}

.bse .imgstrip {
display: flex;
flex-direction: column;
gap: 8px
}

.bse .imgstrip img {
width: 120px;
height: 200px;
object-fit: cover;
border-radius: 2px;
filter: saturate(0.7) brightness(0.9) hue-rotate(0deg);
display: block
}

.bse .titletext {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
gap: 20px;
padding-left: 20px
}

.bse .titletext h1 {
font-size: 52px;
line-height: 1.15;
letter-spacing: -.02em;
color: #03303D;
margin: 0
}

.bse .titletext h1 span {
color: #2ACECA
}

.bse .titlepoints {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 12px
}

.bse .titlepoints li {
font-size: 16px;
line-height: 1.6;
color: #03303D;
display: flex;
align-items: flex-start;
gap: 12px
}

.bse .tpdot {
width: 8px;
height: 8px;
min-width: 8px;
background: #2ACECA;
border-radius: 2px;
margin-top: 6px;
display: inline-block
}

.bse .titletext .titlelink {
display: inline-block;
font-size: 13px;
letter-spacing: .06em;
color: #2ACECA;
text-decoration: none;
border-bottom: 1.5px solid #2ACECA;
padding-bottom: 2px;
transition: letter-spacing .12s cubic-bezier(0.4, 0, 1, 1);
align-self: flex-start
}

.bse .titletext .titlelink:hover {
letter-spacing: .12em
}

.bse .numstrip {
background: #03303D;
padding: 64px 32px;
position: relative
}

.bse .numstrip .numgrid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 32px
}

.bse .numcard {
display: flex;
flex-direction: column;
gap: 8px;
padding: 20px;
border-radius: 2px;
background: #2aceca14;
border-top: 2px solid #2ACECA;
box-shadow: 2px 3px 5px 1px #2aceca14;
transition: box-shadow .15s cubic-bezier(0.4, 0, 1, 1)
}

.bse .numcard:hover {
box-shadow: 2px 10px 40px 1px #2aceca1c
}

.bse .numcard .bignum {
font-size: 52px;
line-height: 1.15;
color: #2ACECA;
letter-spacing: -.03em
}

.bse .numcard .numlabel {
font-size: 13px;
line-height: 1.4;
color: #F0FEE4;
letter-spacing: .04em
}

.bse .numcard .numdesc {
font-size: 13px;
line-height: 1.6;
color: #f0fee4a6
}

.bse .numstrip .wavebottom {
position: absolute;
bottom: -1px;
left: 0;
width: 100%;
line-height: 0
}

.bse .expstrip {
padding: 64px 32px;
background: #F0FEE4;
position: relative
}

.bse .expgrid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
align-items: center
}

.bse .exptext {
position: relative;
padding-left: 20px
}

.bse .exptext h2 {
font-size: 28px;
line-height: 1.4;
color: #03303D;
margin: 0 0 20px;
position: relative;
padding-left: 16px
}

.bse .exptext h2 .accentline {
position: absolute;
left: 0;
top: 4px;
width: 3px;
height: 80%;
background: #2ACECA;
border-radius: 2px
}

.bse .exptext p {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin: 0 0 20px
}

.bse .exptext p:first-of-type::first-letter {
font-size: 52px;
line-height: 1;
float: left;
margin-right: 8px;
color: #2ACECA;
font-weight: 700
}

.bse .expimg {
position: relative
}

.bse .expimg img {
width: 100%;
height: 320px;
object-fit: cover;
border-radius: 20px;
box-shadow: 2px 4px 18px 1px #03303d1c;
display: block
}

.bse .expimg .diacc {
position: absolute;
bottom: -16px;
right: -16px;
width: 48px;
height: 48px;
background: #2ACECA;
transform: rotate(45deg);
border-radius: 2px;
z-index: 0
}

.bse .expquote {
margin: 20px 0 0;
padding: 20px;
background: #fff;
border-radius: 20px;
box-shadow: 2px 3px 5px 1px #03303d14
}

.bse .expquote .qtext {
font-size: 16px;
line-height: 1.6;
color: #03303D;
font-style: italic;
margin: 0 0 8px
}

.bse .expquote .qauthor {
font-size: 13px;
color: #2ACECA;
letter-spacing: .04em
}

.bse .progstrip {
padding: 64px 32px;
background: #fff;
position: relative
}

.bse .progstrip h2 {
font-size: 28px;
line-height: 1.4;
color: #03303D;
margin: 0 0 32px;
position: relative;
padding-left: 16px
}

.bse .progstrip h2 .accentline {
position: absolute;
left: 0;
top: 4px;
width: 3px;
height: 80%;
background: #2ACECA;
border-radius: 2px
}

.bse .progmosaic {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
grid-template-rows: auto auto;
gap: 20px
}

.bse .progcard {
background: #F0FEE4;
border-radius: 20px;
padding: 32px;
position: relative;
box-shadow: 2px 3px 5px 1px #2aceca14;
transition: box-shadow .14s cubic-bezier(0.4, 0, 1, 1), transform .14s cubic-bezier(0.4, 0, 1, 1);
display: flex;
flex-direction: column;
gap: 12px
}

.bse .progcard:hover {
box-shadow: 2px 4px 18px 1px #2aceca1c;
transform: translateY(-2px)
}

.bse .progcard.featured {
grid-row: 1 / 3;
background: #03303D
}

.bse .progcard.featured h4 {
color: #2ACECA
}

.bse .progcard.featured p {
color: #f0fee4cc
}

.bse .progcard.featured .progbadge {
background: #2ACECA;
color: #03303D
}

.bse .progcard h4 {
font-size: 21px;
line-height: 1.4;
color: #03303D;
margin: 0
}

.bse .progcard p {
font-size: 13px;
line-height: 1.6;
color: #03303D;
margin: 0
}

.bse .progbadge {
display: inline-block;
font-size: 13px;
letter-spacing: .05em;
background: #03303D;
color: #F0FEE4;
padding: 4px 12px;
border-radius: 2px;
align-self: flex-start
}

.bse .progcard img {
width: 100%;
height: 160px;
object-fit: cover;
border-radius: 2px;
display: block
}

.bse .progcard .proglink {
font-size: 13px;
color: #2ACECA;
text-decoration: none;
letter-spacing: .04em;
border-bottom: 1px solid #2ACECA;
align-self: flex-start;
transition: letter-spacing .12s cubic-bezier(0.4, 0, 1, 1)
}

.bse .progcard .proglink:hover {
letter-spacing: .1em
}

.bse .commstrip {
background: #03303D;
padding: 64px 32px;
position: relative
}

.bse .commstrip .wavetop {
position: absolute;
top: -1px;
left: 0;
width: 100%;
line-height: 0
}

.bse .commring {
display: flex;
flex-direction: column;
align-items: center;
gap: 32px
}

.bse .commring h2 {
font-size: 28px;
line-height: 1.4;
color: #F0FEE4;
text-align: center;
margin: 0;
position: relative;
padding-left: 16px
}

.bse .commring h2 .accentline {
position: absolute;
left: 0;
top: 4px;
width: 3px;
height: 80%;
background: #2ACECA;
border-radius: 2px
}

.bse .ringwrap {
position: relative;
width: 360px;
height: 360px
}

.bse .ringcenter {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 140px;
height: 140px;
background: #2ACECA;
border-radius: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
box-shadow: 2px 10px 40px 1px #2aceca1c;
z-index: 2
}

.bse .ringcenter .rclabel {
font-size: 13px;
color: #03303D;
letter-spacing: .05em;
text-align: center
}

.bse .ringcenter .rcnum {
font-size: 28px;
line-height: 1.15;
color: #03303D;
font-weight: 700
}

.bse .ringitem {
position: absolute;
width: 96px;
height: 96px;
background: #f0fee412;
border: 1.5px solid #2aceca59;
border-radius: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
text-align: center;
padding: 8px;
transition: background .16s cubic-bezier(0.4, 0, 1, 1)
}

.bse .ringitem:hover {
background: #2aceca21
}

.bse .ringitem .rilabel {
font-size: 13px;
color: #F0FEE4;
line-height: 1.4
}

.bse .ringitem svg {
flex-shrink: 0
}

.bse .commgrid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
width: 100%;
max-width: 900px
}

.bse .commcard {
background: #f0fee40d;
border-radius: 20px;
padding: 20px;
border: 1px solid #2aceca33;
display: flex;
flex-direction: column;
gap: 8px
}

.bse .commcard img {
width: 100%;
height: 120px;
object-fit: cover;
border-radius: 2px;
display: block
}

.bse .commcard .ccname {
font-size: 13px;
color: #2ACECA;
letter-spacing: .04em
}

.bse .commcard .cctext {
font-size: 13px;
line-height: 1.6;
color: #f0fee4bf
}

.bse .repstrip {
padding: 64px 32px;
background: #F0FEE4;
position: relative
}

.bse .repstrip h2 {
font-size: 28px;
line-height: 1.4;
color: #03303D;
margin: 0 0 32px;
position: relative;
padding-left: 16px
}

.bse .repstrip h2 .accentline {
position: absolute;
left: 0;
top: 4px;
width: 3px;
height: 80%;
background: #2ACECA;
border-radius: 2px
}

.bse .repgrid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
align-items: start
}

.bse .replist {
display: flex;
flex-direction: column;
gap: 20px
}

.bse .repitem {
display: flex;
flex-direction: row;
gap: 20px;
align-items: flex-start;
padding: 20px;
background: #fff;
border-radius: 20px;
box-shadow: 2px 3px 5px 1px #03303d14;
border: 2px solid #F0FEE4;
outline: 1px solid #2aceca40;
transition: box-shadow .13s cubic-bezier(0.4, 0, 1, 1)
}

.bse .repitem:hover {
box-shadow: 2px 4px 18px 1px #03303d1c
}

.bse .repicon {
width: 40px;
height: 40px;
min-width: 40px;
background: #2ACECA;
border-radius: 2px;
display: flex;
align-items: center;
justify-content: center
}

.bse .repitemtext h5 {
font-size: 16px;
line-height: 1.4;
color: #03303D;
margin: 0 0 4px
}

.bse .repitemtext p {
font-size: 13px;
line-height: 1.6;
color: #03303D;
margin: 0
}

.bse .repimg {
position: relative
}

.bse .repimg img {
width: 100%;
height: 280px;
object-fit: cover;
border-radius: 20px;
display: block;
box-shadow: 2px 4px 18px 1px #03303d1c
}

.bse .repimg .dblborder {
position: absolute;
inset: -8px;
border: 1px solid #2aceca59;
border-radius: 20px;
pointer-events: none
}

.bse .repimg .dblborderinner {
position: absolute;
inset: -4px;
border: 2px solid #2aceca99;
border-radius: 20px;
pointer-events: none
}

.bse .reprating {
margin-top: 20px;
display: flex;
flex-direction: row;
gap: 12px;
align-items: center;
padding: 20px;
background: #03303D;
border-radius: 20px
}

.bse .reprating .rnum {
font-size: 52px;
line-height: 1.15;
color: #2ACECA;
letter-spacing: -.02em
}

.bse .reprating .rstars {
display: flex;
flex-direction: column;
gap: 4px
}

.bse .reprating .starrow {
display: flex;
flex-direction: row;
gap: 4px
}

.bse .reprating .rtext {
font-size: 13px;
color: #f0fee4b3;
line-height: 1.4
}

@keyframes diagdrift {
0% {
background-position: 0 0
}

100% {
background-position: 80px 80px
}
}

.bse .numstrip {
background-image: repeating-linear-gradient(135deg, #2aceca0a 0px, #2aceca0a 1px, transparent 1px, transparent 40px);
animation: diagdrift 8s linear infinite
}

@media (max-width: 992px) {
.bse .titlewrap {
grid-template-columns: 80px 1fr;
gap: 20px
}

.bse .imgstrip img {
width: 80px;
height: 140px
}

.bse .titletext h1 {
font-size: 28px
}

.bse .numstrip .numgrid {
grid-template-columns: repeat(2, 1fr)
}

.bse .expgrid {
grid-template-columns: 1fr
}

.bse .progmosaic {
grid-template-columns: 1fr 1fr
}

.bse .progcard.featured {
grid-column: 1 / 3;
grid-row: auto
}

.bse .commgrid {
grid-template-columns: 1fr 1fr
}

.bse .repgrid {
grid-template-columns: 1fr
}
}

@media (max-width: 576px) {
.bse .titlewrap {
grid-template-columns: 1fr;
padding: 32px 20px 20px
}

.bse .imgstrip {
flex-direction: row
}

.bse .imgstrip img {
width: 80px;
height: 80px
}

.bse .titletext h1 {
font-size: 28px
}

.bse .numstrip {
padding: 32px 20px
}

.bse .numstrip .numgrid {
grid-template-columns: 1fr
}

.bse .expstrip,
.bse .progstrip,
.bse .commstrip,
.bse .repstrip {
padding: 32px 20px
}

.bse .progmosaic {
grid-template-columns: 1fr
}

.bse .progcard.featured {
grid-column: auto;
grid-row: auto
}

.bse .commgrid {
grid-template-columns: 1fr
}

.bse .ringwrap {
width: 280px;
height: 280px
}

.bse .ringcenter {
width: 110px;
height: 110px
}

.bse .ringitem {
width: 72px;
height: 72px
}
}

.ctus {
max-width: 100%;
overflow-x: hidden
}

.ctus .pageinner {
max-width: 1280px;
margin: 0 auto;
padding: 0 20px
}

.ctus .titlesec {
background: linear-gradient(135deg, #03303D 60%, #2ACECA 100%);
padding: 64px 0;
position: relative
}

.ctus .titlesec::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 4px;
height: 100%;
background: #2ACECA
}

.ctus .titlesec .pageinner {
display: flex;
flex-direction: row;
align-items: center;
gap: 64px
}

.ctus .titleleft {
flex: 1 1 0
}

.ctus .titledesc {
font-size: 13px;
letter-spacing: .12em;
color: #2ACECA;
text-transform: uppercase;
margin-bottom: 12px;
line-height: 1.4
}

.ctus .titlemain {
font-size: 52px;
line-height: 1.15;
color: #F0FEE4;
letter-spacing: -.02em;
margin-bottom: 20px
}

.ctus .titlesub {
font-size: 16px;
line-height: 1.6;
color: #f0fee4c7;
max-width: 420px
}

.ctus .titleright {
flex: 0 0 auto;
display: flex;
flex-direction: column;
gap: 20px
}

.ctus .infopill {
background: #2aceca21;
border: 1px solid #2aceca52;
border-radius: 20px;
padding: 12px 20px;
display: flex;
flex-direction: row;
align-items: center;
gap: 12px;
transition: background .12s cubic-bezier(0.4, 0, 1, 1)
}

.ctus .infopill:hover {
background: #2aceca38
}

.ctus .pillicon {
width: 32px;
height: 32px;
flex-shrink: 0
}

.ctus .pilllabel {
font-size: 13px;
color: #f0fee499;
line-height: 1.4;
letter-spacing: .06em
}

.ctus .pillval {
font-size: 16px;
color: #F0FEE4;
line-height: 1.4;
letter-spacing: .01em
}

.ctus .pillval a {
color: #2ACECA;
text-decoration: none;
transition: letter-spacing .15s cubic-bezier(0.4, 0, 1, 1)
}

.ctus .pillval a:hover {
letter-spacing: .06em
}

.ctus .formsec {
padding: 64px 0;
background: #F0FEE4
}

.ctus .formsec .pageinner {
display: flex;
flex-direction: row;
gap: 64px;
align-items: flex-start
}

.ctus .formleft {
flex: 0 0 320px
}

.ctus .formtag {
display: inline-block;
background: #2ACECA;
color: #03303D;
font-size: 13px;
letter-spacing: .08em;
border-radius: 20px;
padding: 4px 12px;
margin-bottom: 20px;
font-weight: 600
}

.ctus .formheading {
font-size: 28px;
line-height: 1.15;
color: #03303D;
letter-spacing: -.01em;
margin-bottom: 12px;
padding-left: 12px;
border-left: 3px solid #2ACECA
}

.ctus .formdesc {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin-bottom: 32px
}

.ctus .formdesc::first-letter {
font-size: 28px;
line-height: 1.15;
float: left;
margin-right: 4px;
color: #2ACECA;
font-weight: 700
}

.ctus .topiclist {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 8px
}

.ctus .topiclist li {
font-size: 13px;
color: #03303D;
line-height: 1.4;
display: flex;
flex-direction: row;
align-items: center;
gap: 8px
}

.ctus .topiclist li::before {
content: '';
display: inline-block;
width: 6px;
height: 6px;
border-radius: 2px;
background: #2ACECA;
flex-shrink: 0
}

.ctus .formright {
flex: 1 1 0
}

.ctus .contactform {
background: #fff;
border-radius: 20px;
padding: 32px;
box-shadow: 2px 4px 18px 1px #03303d1c
}

.ctus .formrow {
display: flex;
flex-direction: row;
gap: 20px;
margin-bottom: 20px
}

.ctus .formfield {
flex: 1 1 0;
display: flex;
flex-direction: column;
gap: 4px
}

.ctus .formfield label {
font-size: 13px;
color: #03303D;
letter-spacing: .05em;
font-weight: 600
}

.ctus .formfield input[type="text"],
.ctus .formfield input[type="email"] {
border: 1.5px solid #03303d2e;
border-radius: 2px;
padding: 12px;
font-size: 16px;
color: #03303D;
background: #F0FEE4;
transition: border-color .12s cubic-bezier(0.4, 0, 1, 1), box-shadow .16s cubic-bezier(0.4, 0, 1, 1);
outline: none;
width: 100%
}

.ctus .formfield input[type="text"]:focus,
.ctus .formfield input[type="email"]:focus {
border-color: #2ACECA;
box-shadow: 2px 3px 5px 1px #2aceca14
}

.ctus .checkgroup {
margin-bottom: 20px
}

.ctus .checklabel {
font-size: 13px;
color: #03303D;
letter-spacing: .05em;
font-weight: 600;
margin-bottom: 12px;
display: block
}

.ctus .checkgrid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px
}

.ctus .checkitem {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
background: #F0FEE4;
border-radius: 2px;
padding: 8px 12px;
cursor: pointer;
transition: background .13s cubic-bezier(0.4, 0, 1, 1);
position: relative;
overflow: hidden
}

.ctus .checkitem:hover {
background: #2aceca26
}

.ctus .checkitem input[type="checkbox"] {
accent-color: #2ACECA;
width: 16px;
height: 16px;
flex-shrink: 0;
cursor: pointer
}

.ctus .checkitem span {
font-size: 13px;
color: #03303D;
line-height: 1.4
}

.ctus .privacyrow {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 8px;
margin-bottom: 20px;
padding: 12px;
background: #2aceca14;
border-radius: 2px
}

.ctus .privacyrow input[type="checkbox"] {
accent-color: #2ACECA;
width: 16px;
height: 16px;
flex-shrink: 0;
margin-top: 2px;
cursor: pointer
}

.ctus .privacytext {
font-size: 13px;
color: #03303D;
line-height: 1.6
}

.ctus .privacytext a {
color: #2ACECA;
text-decoration: underline;
transition: letter-spacing .14s cubic-bezier(0.4, 0, 1, 1)
}

.ctus .privacytext a:hover {
letter-spacing: .05em
}

.ctus .submitbtn {
background: linear-gradient(to right, #2ACECA, #03303D);
color: #F0FEE4;
border: none;
border-radius: 2px;
padding: 12px 32px;
font-size: 16px;
letter-spacing: .04em;
cursor: pointer;
transition: opacity .12s cubic-bezier(0.4, 0, 1, 1), transform .1s cubic-bezier(0.4, 0, 1, 1);
box-shadow: 2px 4px 18px 1px #2aceca1c;
width: 100%
}

.ctus .submitbtn:hover {
opacity: .9
}

.ctus .submitbtn:active {
transform: scale(0.98)
}

.ctus .mapsec {
padding: 64px 0;
background: #03303D;
position: relative
}

.ctus .mapsec::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background: repeating-linear-gradient(to right, #2ACECA 0px, #2ACECA 12px, transparent 12px, transparent 20px)
}

.ctus .mapsec .pageinner {
display: flex;
flex-direction: row;
gap: 64px;
align-items: flex-start
}

.ctus .addrleft {
flex: 1 1 0
}

.ctus .addrheading {
font-size: 28px;
line-height: 1.15;
color: #F0FEE4;
letter-spacing: -.01em;
margin-bottom: 20px;
padding-left: 12px;
border-left: 3px solid #2ACECA
}

.ctus .addrblock {
margin-bottom: 32px
}

.ctus .addrline {
font-size: 16px;
color: #f0fee4cc;
line-height: 1.6
}

.ctus .addrline strong {
color: #F0FEE4
}

.ctus .addrright {
flex: 0 0 380px
}

.ctus .geobox {
background: #2aceca14;
border: 1px solid #2aceca38;
border-radius: 20px;
padding: 32px;
display: flex;
flex-direction: column;
gap: 20px
}

.ctus .georow {
display: flex;
flex-direction: row;
align-items: center;
gap: 12px
}

.ctus .geolabel {
font-size: 13px;
color: #f0fee48c;
letter-spacing: .08em;
text-transform: uppercase;
margin-bottom: 4px
}

.ctus .geoval {
font-size: 21px;
color: #2ACECA;
line-height: 1.15;
letter-spacing: -.01em
}

.ctus .geodivider {
height: 1px;
background: #2aceca33
}

.ctus .geosvg {
width: 40px;
height: 40px;
flex-shrink: 0
}

.ctus .geodata {
flex: 1 1 0
}

.ctus .workhoursbox {
margin-top: 32px;
background: #f0fee40d;
border-radius: 2px;
padding: 20px
}

.ctus .whtitle {
font-size: 13px;
color: #2ACECA;
letter-spacing: .1em;
text-transform: uppercase;
margin-bottom: 12px
}

.ctus .whrow {
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 8px 0;
border-bottom: 1px dashed #2aceca2e
}

.ctus .whrow:last-child {
border-bottom: none
}

.ctus .whday {
font-size: 13px;
color: #f0fee4b3
}

.ctus .whtime {
font-size: 13px;
color: #F0FEE4;
font-weight: 600
}

@media (max-width: 992px) {
.ctus .titlesec .pageinner {
flex-direction: column;
gap: 32px
}

.ctus .titlemain {
font-size: 36px
}

.ctus .titleright {
width: 100%
}

.ctus .formsec .pageinner {
flex-direction: column;
gap: 32px
}

.ctus .formleft {
flex: none;
width: 100%
}

.ctus .mapsec .pageinner {
flex-direction: column;
gap: 32px
}

.ctus .addrright {
flex: none;
width: 100%
}
}

@media (max-width: 576px) {
.ctus .titlesec {
padding: 32px 0
}

.ctus .titlemain {
font-size: 28px
}

.ctus .formrow {
flex-direction: column;
gap: 12px
}

.ctus .checkgrid {
grid-template-columns: 1fr
}

.ctus .contactform {
padding: 20px
}

.ctus .formsec {
padding: 32px 0
}

.ctus .mapsec {
padding: 32px 0
}

.ctus .geobox {
padding: 20px
}
}

.ctus .animate__animated {
animation-fill-mode: both
}

.successPage {
min-height: 80vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 64px 20px;
background: #F0FEE4
}

.successPage .successCard {
background: #fff;
border-radius: 20px;
box-shadow: 2px 10px 40px 1px #03303d1c;
padding: 64px 32px;
max-width: 560px;
width: 100%;
text-align: center
}

.successPage .successCard .iconWrap {
width: 72px;
height: 72px;
margin: 0 auto 32px;
border-radius: 20px;
background: linear-gradient(to right, #2ACECA, transparent);
background-color: #03303D;
display: flex;
align-items: center;
justify-content: center
}

.successPage .successCard .iconWrap svg {
display: block
}

.successPage .successCard .successTitle {
font-size: 28px;
line-height: 1.15;
letter-spacing: -.02em;
color: #03303D;
margin: 0 0 12px
}

.successPage .successCard .successMsg {
font-size: 16px;
line-height: 1.6;
color: #03303D;
margin: 0 0 32px;
opacity: .8
}

.successPage .successCard .successDivider {
width: 40px;
height: 2px;
background: linear-gradient(to right, #2ACECA, transparent);
border-radius: 2px;
margin: 0 auto 32px
}

.successPage .successCard .backBtn {
display: inline-block;
padding: 12px 32px;
border-radius: 2px;
background: linear-gradient(to right, #2ACECA, #03303D);
color: #fff;
font-size: 16px;
line-height: 1.4;
letter-spacing: .03em;
text-decoration: none;
border: none;
cursor: pointer;
transition: opacity .12s cubic-bezier(0.4, 0, 1, 1), transform .1s cubic-bezier(0.4, 0, 1, 1);
box-shadow: 2px 4px 18px 1px #2aceca1c
}

.successPage .successCard .backBtn:hover {
opacity: .88
}

.successPage .successCard .backBtn:active {
transform: scale(0.97)
}

@media (max-width: 576px) {
.successPage {
padding: 32px 12px
}

.successPage .successCard {
padding: 32px 20px
}

.successPage .successCard .successTitle {
font-size: 21px
}
}