@import "https://cdn.jsdelivr.net/npm/@fontsource/ubuntu-mono@latest/400.css";
@import "https://cdn.jsdelivr.net/npm/@fontsource/ubuntu-mono@latest/700.css";

body {
margin: 0;
min-height: 100dvh;
font-family: 'Ubuntu Mono', monospace;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%
}

.pageshell {
box-sizing: border-box;
max-width: 1100px;
margin: 0 auto;
padding: 0 32px
}

.sitehead {
background: #fff;
border-bottom: 2px solid #BE424B;
box-shadow: 0 4px 20px -1px #be424b17;
position: relative;
z-index: 100
}

.sitehead-inner {
box-sizing: border-box;
max-width: 1100px;
margin: 0 auto;
padding: 0 32px
}

.sitehead-top {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 0 8px;
gap: 32px
}

.brand-mount {
display: flex;
align-items: center;
gap: 12px;
text-decoration: none;
flex-shrink: 0
}

.brand-mount:focus {
outline: 2px solid #BE424B;
outline-offset: 4px;
border-radius: 4px
}

.logobox {
width: 40px;
height: 40px;
border-radius: 6px;
background: #F2F2C8;
box-shadow: 0 0 0 2px #BE424B, 0 0 0 4px #fff, 0 1px 6px -1px #be424b0f;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
flex-shrink: 0
}

.logobox img {
width: 32px;
height: 32px;
object-fit: contain;
display: block
}

.brandname {
font-family: 'Ubuntu Mono', monospace;
font-size: 27px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .02em;
color: #1b1b1b
}

.brandname span {
color: #BE424B
}

.headcred {
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
line-height: 1.2;
letter-spacing: .02em;
color: #3E6945;
border: 1px solid #3E6945;
border-radius: 4px;
padding: 4px 12px;
white-space: nowrap;
font-weight: 700;
background: #3e69450f;
flex-shrink: 0
}

.sitenav {
border-top: 1px solid #F2F2C8;
padding: 0
}

.sitenav-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-wrap: wrap;
gap: 0
}

.sitenav-list li a {
display: block;
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .02em;
color: #1b1b1b;
text-decoration: none;
padding: 12px 16px;
border-radius: 0;
transition: color .15s ease-out, background .15s ease-out;
position: relative
}

.sitenav-list li a::after {
content: '';
display: block;
height: 2px;
background: #BE424B;
border-radius: 2px;
position: absolute;
bottom: 0;
left: 16px;
right: 16px;
transform: scaleX(0);
transition: transform .18s ease-out
}

.sitenav-list li a:hover {
color: #BE424B;
background: #f2f2c866
}

.sitenav-list li a:hover::after {
transform: scaleX(1)
}

.sitenav-list li a:focus {
outline: 2px solid #BE424B;
outline-offset: -2px;
color: #BE424B
}

.sitenav-list li a[aria-current="page"] {
color: #BE424B
}

.sitenav-list li a[aria-current="page"]::after {
transform: scaleX(1)
}

.sitefooter {
background: #1b1b1b;
color: #F2F2C8;
margin-top: 48px
}

.sitefooter-upper {
box-sizing: border-box;
max-width: 1100px;
margin: 0 auto;
padding: 48px 32px 32px;
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 32px
}

.ftrcol-brand .ftrbrand-mount {
display: flex;
align-items: center;
gap: 12px;
text-decoration: none;
margin-bottom: 16px
}

.ftrbrand-mount:focus {
outline: 2px solid #F2F2C8;
outline-offset: 4px;
border-radius: 4px
}

.ftrlogobox {
width: 40px;
height: 40px;
border-radius: 6px;
background: #F2F2C8;
box-shadow: 0 0 0 2px #BE424B, 0 0 0 4px #f2f2c833;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
flex-shrink: 0
}

.ftrlogobox img {
width: 32px;
height: 32px;
object-fit: contain;
display: block
}

.ftrbrandname {
font-family: 'Ubuntu Mono', monospace;
font-size: 27px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .02em;
color: #F2F2C8
}

.ftrbrandname span {
color: #BE424B
}

.ftrcol-brand .ftrdesc {
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
line-height: 1.8;
letter-spacing: .01em;
color: #f2f2c8bf;
margin: 0 0 16px
}

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

.ftrcol-brand .ftrcontact li {
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
line-height: 1.2;
letter-spacing: .01em;
color: #f2f2c8bf;
display: flex;
align-items: flex-start;
gap: 8px
}

.ftrcol-brand .ftrcontact li strong {
color: #F2F2C8;
font-weight: 700;
flex-shrink: 0
}

.ftrcol-brand .ftrcontact a {
color: #f2f2c8bf;
text-decoration: underline;
transition: color .12s ease-out
}

.ftrcol-brand .ftrcontact a:hover {
color: #BE424B
}

.ftrcol-brand .ftrcontact a:focus {
outline: 2px solid #F2F2C8;
outline-offset: 2px;
border-radius: 2px
}

.ftrcol-nav .ftrnavlabel,
.ftrcol-about .ftrnavlabel {
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .02em;
color: #BE424B;
text-transform: uppercase;
margin: 0 0 16px;
padding-bottom: 8px;
border-bottom: 1px solid #be424b4d
}

.ftrcol-nav .ftrlinks,
.ftrcol-about .ftrlinks {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 8px
}

.ftrcol-nav .ftrlinks li a,
.ftrcol-about .ftrlinks li a {
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
line-height: 1.8;
letter-spacing: .01em;
color: #f2f2c8bf;
text-decoration: none;
display: inline-flex;
align-items: center;
gap: 8px;
transition: color .12s ease-out
}

.ftrcol-nav .ftrlinks li a:hover,
.ftrcol-about .ftrlinks li a:hover {
color: #F2F2C8
}

.ftrcol-nav .ftrlinks li a:focus,
.ftrcol-about .ftrlinks li a:focus {
outline: 2px solid #F2F2C8;
outline-offset: 2px;
border-radius: 2px;
color: #F2F2C8
}

.ftrarrow {
display: inline-block;
width: 12px;
height: 12px;
flex-shrink: 0
}

.sitefooter-lower {
border-top: 1px solid #f2f2c81a;
box-sizing: border-box;
max-width: 1100px;
margin: 0 auto;
padding: 16px 32px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap
}

.ftrcopy {
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
line-height: 1.2;
letter-spacing: .01em;
color: #f2f2c880;
margin: 0
}

.ftrterms a {
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
line-height: 1.2;
letter-spacing: .01em;
color: #f2f2c880;
text-decoration: underline;
transition: color .12s ease-out
}

.ftrterms a:hover {
color: #F2F2C8
}

.ftrterms a:focus {
outline: 2px solid #F2F2C8;
outline-offset: 2px;
border-radius: 2px;
color: #F2F2C8
}

.cookiebar {
position: fixed;
bottom: 16px;
right: 16px;
z-index: 4000;
max-width: 360px;
width: calc(100vw - 32px);
background: #fff;
border: 1px solid #be424b2e;
border-radius: 12px;
box-shadow: 0 12px 52px -1px #be424b24;
padding: 16px;
box-sizing: border-box;
font-family: 'Ubuntu Mono', monospace
}

.cookiebar-msg {
font-size: 13px;
line-height: 1.8;
letter-spacing: .01em;
color: #1b1b1b;
margin: 0 0 8px
}

.cookiebar-msg a {
color: #BE424B;
text-decoration: underline
}

.cookiebar-msg a:focus {
outline: 2px solid #BE424B;
outline-offset: 2px;
border-radius: 2px
}

.cookiebar-title {
font-size: 13px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .02em;
color: #1b1b1b;
display: block;
margin-bottom: 8px
}

.cookiebar-btns {
display: flex;
gap: 8px;
margin-top: 12px
}

.cookiebar-btns button {
flex: 1;
font-family: 'Ubuntu Mono', monospace;
font-size: 13px;
font-weight: 700;
letter-spacing: .02em;
line-height: 1.2;
padding: 8px 12px;
border-radius: 4px;
cursor: pointer;
background: transparent;
transition: background .15s ease-out, color .15s ease-out, transform .12s ease-out;
min-height: 44px
}

.cookiebar-btns button:focus {
outline: 2px solid #BE424B;
outline-offset: 2px
}

.cookiebar-btns .btn-accept {
border: 2px solid #BE424B;
color: #BE424B
}

.cookiebar-btns .btn-accept:hover {
background: #BE424B;
color: #fff;
transform: scale(1.03)
}

.cookiebar-btns .btn-decline {
border: 2px solid #3E6945;
color: #3E6945
}

.cookiebar-btns .btn-decline:hover {
background: #3E6945;
color: #fff;
transform: scale(1.03)
}

@media (max-width: 768px) {
.sitehead-top {
flex-wrap: wrap;
gap: 8px
}

.headcred {
font-size: 13px
}

.sitefooter-upper {
grid-template-columns: 1fr;
gap: 32px;
padding: 32px 16px
}

.sitefooter-lower {
padding: 16px;
flex-direction: column;
align-items: flex-start
}

.sitehead-inner {
padding: 0 16px
}

.sitenav-list li a {
padding: 12px 8px;
font-size: 13px
}
}

@media (max-width: 640px) {
.brandname {
font-size: 16px
}

.sitenav-list {
gap: 0
}

.sitenav-list li a {
padding: 8px
}

.cookiebar {
bottom: 8px;
right: 8px;
width: calc(100vw - 16px)
}
}

.info-doc {
max-width: 1100px;
margin: 0 auto;
padding: 48px 32px;
color: #2a2a2a
}

.info-doc h1 {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #BE424B;
margin-bottom: 32px;
margin-top: 0
}

.info-doc h2 {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #3E6945;
margin-top: 48px;
margin-bottom: 16px
}

.info-doc h3 {
font-size: 16px;
line-height: 1.8;
letter-spacing: .02em;
color: #BE424B;
margin-top: 32px;
margin-bottom: 8px;
text-transform: uppercase
}

.info-doc h4,
.info-doc h5,
.info-doc h6 {
font-size: 16px;
line-height: 1.8;
letter-spacing: .02em;
color: #2a2a2a;
margin-top: 32px;
margin-bottom: 8px
}

.info-doc p {
font-size: 16px;
line-height: 1.8;
letter-spacing: .01em;
margin-top: 0;
margin-bottom: 16px;
color: #2a2a2a
}

.info-doc ul,
.info-doc ol {
font-size: 16px;
line-height: 1.8;
letter-spacing: .01em;
margin-top: 0;
margin-bottom: 16px;
padding-left: 32px;
color: #2a2a2a
}

.info-doc ul {
list-style-type: disc
}

.info-doc ol {
list-style-type: decimal
}

.info-doc li {
margin-bottom: 8px
}

.info-doc li:last-child {
margin-bottom: 0
}

.info-doc strong,
.info-doc b {
font-weight: 700;
color: #2a2a2a
}

.info-doc a {
color: #BE424B;
text-decoration: underline;
text-underline-offset: 3px;
text-decoration-thickness: 1px;
transition: color .15s ease-out, text-decoration-color .15s ease-out
}

.info-doc a:hover {
color: #3E6945;
text-decoration-color: #3E6945
}

.info-doc a:visited {
color: #BE424B
}

.info-doc table {
width: 100%;
border-collapse: collapse;
font-size: 16px;
line-height: 1.8;
letter-spacing: .01em;
margin-bottom: 32px;
box-shadow: 0 1px 6px -1px #be424b0f;
border-radius: 6px;
overflow: hidden
}

.info-doc thead {
background-color: #F2F2C8
}

.info-doc thead th {
font-size: 13px;
line-height: 1.2;
letter-spacing: .02em;
text-transform: uppercase;
color: #3E6945;
font-weight: 700;
padding: 12px 16px;
text-align: left
}

.info-doc tbody tr {
border-top: 1px solid #F2F2C8;
transition: background-color .1s ease-out
}

.info-doc tbody tr:hover {
background-color: #fdfdf5
}

.info-doc td {
padding: 12px 16px;
color: #2a2a2a;
vertical-align: top
}

.info-doc hr {
border: none;
border-top: 1px solid #F2F2C8;
margin-top: 48px;
margin-bottom: 48px
}

@media (max-width: 768px) {
.info-doc {
padding: 32px 16px
}

.info-doc h1 {
font-size: 27px
}

.info-doc h2 {
font-size: 16px;
margin-top: 32px
}

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

@media (max-width: 640px) {
.info-doc {
padding: 32px 12px
}

.info-doc ul,
.info-doc ol {
padding-left: 16px
}
}

.msn {
width: 100%;
max-width: 100%;
overflow-x: hidden;
background: #fff
}

.msn * {
box-sizing: border-box
}

.msn .droptop {
opacity: 0;
transform: translateY(-24px);
animation: dropIn .18s ease-out forwards
}

.msn .droptop:nth-child(1) {
animation-delay: .05s
}

.msn .droptop:nth-child(2) {
animation-delay: .11s
}

.msn .droptop:nth-child(3) {
animation-delay: .17s
}

.msn .droptop:nth-child(4) {
animation-delay: .23s
}

@keyframes dropIn {
to {
opacity: 1;
transform: translateY(0)
}
}

.msn .skelpic {
background: #d8d8d0;
position: relative;
overflow: hidden
}

.msn .skelpic::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, transparent 0%, #fff6 50%, transparent 100%);
animation: skelshim 1.4s ease infinite
}

.msn .skelpic img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
display: block
}

@keyframes skelshim {
0% {
transform: translateX(-100%)
}

100% {
transform: translateX(100%)
}
}

.msn ::selection {
background: #BE424B;
color: #fff
}

.msn .accentline {
display: block;
width: 0;
height: 2px;
background: #BE424B;
margin-top: 8px;
animation: lineGrow .2s ease-out .4s forwards
}

@keyframes lineGrow {
to {
width: 48px
}
}

.msn .reftop {
padding: 48px 32px;
max-width: 1100px;
margin: 0 auto;
display: grid;
grid-template-columns: 1fr 420px;
gap: 48px;
align-items: center
}

.msn .reftop .leftcol {
display: flex;
flex-direction: column;
gap: 16px
}

.msn .reftop .tagline {
font-size: 13px;
letter-spacing: .08em;
text-transform: uppercase;
color: #3E6945;
font-weight: 600
}

.msn .reftop .hdmain {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b1b1b;
font-weight: 700;
margin: 0
}

.msn .reftop .hdmain em {
font-style: normal;
color: #BE424B
}

.msn .reftop .subpar {
font-size: 16px;
line-height: 1.8;
letter-spacing: .01em;
color: #3a3a3a;
max-width: 480px;
margin: 0
}

.msn .reftop .ctabtn {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 16px;
letter-spacing: .02em;
color: #BE424B;
text-decoration: none;
font-weight: 600;
background: none;
border: none;
padding: 0;
cursor: pointer;
transition: transform .15s ease-out, color .15s ease-out;
align-self: flex-start
}

.msn .reftop .ctabtn:hover {
transform: scale(1.04);
color: #3E6945
}

.msn .reftop .ctabtn .arrowsvg {
width: 18px;
height: 18px;
transition: transform .15s ease-out
}

.msn .reftop .ctabtn:hover .arrowsvg {
transform: translateX(4px)
}

.msn .reftop .rightcol {
display: flex;
flex-direction: column;
gap: 16px;
position: relative
}

.msn .reftop .imgframe {
width: 100%;
aspect-ratio: 7/9;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 20px -1px #be424b17;
position: relative
}

.msn .reftop .imgframe img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
filter: saturate(0.7) contrast(1.05)
}

.msn .reftop .geodec {
position: absolute;
top: -16px;
right: -16px;
width: 80px;
height: 80px;
border-radius: 4px;
background: #F2F2C8;
opacity: .6;
z-index: 0;
pointer-events: none
}

.msn .reftop .geodec2 {
position: absolute;
bottom: 32px;
left: -12px;
width: 24px;
height: 60px;
border-radius: 2px;
background: #BE424B;
opacity: .15;
pointer-events: none
}

.msn .divline {
display: flex;
align-items: center;
justify-content: center;
padding: 4px 0
}

.msn .divline .dshape {
width: 8px;
height: 8px;
border-radius: 2px;
background: #BE424B;
opacity: .35;
transform: rotate(45deg)
}

.msn .divline .dline {
height: 1px;
width: 120px;
background: #e2e2d8
}

.msn .msblock {
background: #F2F2C8;
position: relative;
padding: 48px 32px;
border-right: 4px solid #3E6945
}

.msn .msblock .msbinner {
max-width: 1100px;
margin: 0 auto;
display: grid;
grid-template-columns: 260px 1fr;
gap: 48px;
align-items: start
}

.msn .msblock .leftpanel {
display: flex;
flex-direction: column;
gap: 16px
}

.msn .msblock .hdlabel {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b1b1b;
font-weight: 700;
margin: 0
}

.msn .msblock .hdlabel .uline {
display: block;
width: 0;
height: 2px;
background: #3E6945;
margin-top: 8px;
animation: lineGrow2 .2s ease-out .5s forwards
}

@keyframes lineGrow2 {
to {
width: 36px
}
}

.msn .msblock .metanum {
font-size: 52px;
line-height: 1.2;
font-weight: 700;
color: #BE424B;
letter-spacing: .01em
}

.msn .msblock .metalabel {
font-size: 13px;
letter-spacing: .02em;
color: #3E6945;
text-transform: uppercase;
font-weight: 600
}

.msn .msblock .rightpanel {
display: flex;
flex-direction: column;
gap: 32px
}

.msn .msblock .pillarrow {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 16px
}

.msn .msblock .pillar {
background: #fff;
border-radius: 12px;
padding: 16px;
box-shadow: 0 1px 6px -1px #be424b0f;
display: flex;
flex-direction: column;
gap: 8px;
position: relative;
overflow: hidden;
transition: box-shadow .18s ease-out, transform .15s ease-out
}

.msn .msblock .pillar::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
background: linear-gradient(90deg, #BE424B 0%, transparent 100%);
transform: scaleX(0);
transform-origin: left;
transition: transform .18s ease-out
}

.msn .msblock .pillar:hover {
box-shadow: 0 4px 20px -1px #be424b17;
transform: translateY(-2px)
}

.msn .msblock .pillar:hover::after {
transform: scaleX(1)
}

.msn .msblock .pillar .picon {
width: 32px;
height: 32px;
border-radius: 6px;
background: #F2F2C8;
display: flex;
align-items: center;
justify-content: center
}

.msn .msblock .pillar .ptitle {
font-size: 13px;
font-weight: 700;
letter-spacing: .02em;
color: #1b1b1b;
margin: 0
}

.msn .msblock .pillar .pdesc {
font-size: 13px;
line-height: 1.8;
letter-spacing: .01em;
color: #4a4a4a;
margin: 0
}

.msn .msblock .teamrow {
display: flex;
flex-direction: row;
gap: 16px;
align-items: flex-start
}

.msn .msblock .perscard {
display: flex;
flex-direction: row;
gap: 12px;
align-items: flex-start;
flex: 1
}

.msn .msblock .portframe {
width: 64px;
min-width: 64px;
aspect-ratio: 7/9;
border-radius: 6px;
overflow: hidden;
box-shadow: 0 1px 6px -1px #be424b0f;
position: relative
}

.msn .msblock .portframe img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
display: block
}

.msn .msblock .persmeta {
display: flex;
flex-direction: column;
gap: 4px
}

.msn .msblock .persname {
font-size: 13px;
font-weight: 700;
letter-spacing: .02em;
color: #1b1b1b;
margin: 0
}

.msn .msblock .persrole {
font-size: 13px;
letter-spacing: .01em;
color: #3E6945;
margin: 0
}

.msn .msblock .persquote {
font-size: 13px;
line-height: 1.8;
letter-spacing: .01em;
color: #4a4a4a;
margin: 0
}

.msn .msblock .imgwide {
width: 100%;
height: 180px;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 20px -1px #be424b17;
position: relative
}

.msn .msblock .imgwide img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block
}

.msn .msblock .bodypar {
font-size: 16px;
line-height: 1.8;
letter-spacing: .01em;
color: #3a3a3a;
margin: 0;
max-width: 600px
}

@media (max-width: 1024px) {
.msn .reftop {
grid-template-columns: 1fr 340px;
gap: 32px
}

.msn .msblock .msbinner {
grid-template-columns: 200px 1fr;
gap: 32px
}
}

@media (max-width: 768px) {
.msn .reftop {
grid-template-columns: 1fr;
padding: 32px 16px;
gap: 32px
}

.msn .reftop .hdmain {
font-size: 27px
}

.msn .reftop .rightcol {
order: -1
}

.msn .reftop .imgframe {
aspect-ratio: 16/9
}

.msn .reftop .imgframe img {
object-position: center top
}

.msn .msblock {
padding: 32px 16px;
border-right: none;
border-bottom: 4px solid #3E6945
}

.msn .msblock .msbinner {
grid-template-columns: 1fr;
gap: 32px
}

.msn .msblock .pillarrow {
grid-template-columns: 1fr
}

.msn .msblock .teamrow {
flex-direction: column
}

.msn .msblock .metanum {
font-size: 27px
}
}

@media (max-width: 640px) {
.msn .reftop {
padding: 32px 16px
}

.msn .msblock .pillarrow {
grid-template-columns: 1fr
}

.msn .msblock .teamrow {
flex-direction: column
}
}

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

.gdpage * {
box-sizing: border-box
}

.gdpage ::selection {
background: #BE424B;
color: #fff
}

.gdpage .pgwrap {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px
}

.gdpage .titlesec {
background: #fff;
padding: 48px 0 32px;
position: relative
}

.gdpage .titlesec::after {
content: '';
display: block;
height: 2px;
background: linear-gradient(to right, #BE424B 0%, transparent 60%);
margin-top: 48px
}

.gdpage .titlesec .tsgrid {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 48px
}

.gdpage .titlesec .tsleft {
flex: 1 1 0;
min-width: 0
}

.gdpage .titlesec .tsright {
flex: 0 0 340px;
max-width: 340px
}

.gdpage .tsleft .accentline {
display: inline-block;
font-size: 13px;
letter-spacing: .02em;
color: #BE424B;
background: #F2F2C8;
padding: 4px 12px;
border-radius: 4px;
margin-bottom: 16px;
font-weight: 600;
line-height: 1.2
}

.gdpage .tsleft h1 {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b1b1b;
margin: 0 0 16px;
font-weight: 700
}

.gdpage .tsleft h1 .redword {
color: #BE424B;
position: relative;
display: inline-block
}

.gdpage .tsleft h1 .redword::after {
content: '';
position: absolute;
bottom: 2px;
left: 0;
width: 100%;
height: 3px;
background: #BE424B;
border-radius: 2px;
transform: scaleX(0);
transform-origin: left;
animation: drawline .2s ease-out .4s forwards
}

@keyframes drawline {
to {
transform: scaleX(1)
}
}

.gdpage .tsleft .leaddesc {
font-size: 16px;
line-height: 1.8;
letter-spacing: .01em;
color: #2e2e2e;
margin: 0 0 16px;
max-width: 520px
}

.gdpage .tsleft .subdesc {
font-size: 13px;
line-height: 1.8;
letter-spacing: .01em;
color: #4a4a4a;
max-width: 480px;
margin: 0
}

.gdpage .tsright .imgcard {
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 4px 20px -1px #be424b17
}

.gdpage .tsright .imgcard img {
display: block;
width: 100%;
height: 280px;
object-fit: cover;
border-radius: 12px;
transition: transform .2s ease-out
}

.gdpage .tsright .imgcard:hover img {
transform: scale(1.03)
}

.gdpage .tsright .imgcard .vignet {
position: absolute;
inset: 0;
border-radius: 12px;
background: radial-gradient(ellipse at 100% 0%, #1e141461 0%, transparent 65%), radial-gradient(ellipse at 0% 100%, #1e141447 0%, transparent 55%);
pointer-events: none
}

.gdpage .tsright .imgcard .imgcaption {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 16px;
background: linear-gradient(to top, #3e6945e0 0%, transparent 100%);
border-radius: 0 0 12px 12px;
opacity: 0;
transform: translateY(8px);
transition: opacity .15s ease-out, transform .15s ease-out
}

.gdpage .tsright .imgcard:hover .imgcaption {
opacity: 1;
transform: translateY(0)
}

.gdpage .tsright .imgcard .imgcaption span {
font-size: 13px;
color: #fff;
letter-spacing: .01em;
line-height: 1.2
}

.gdpage .dircue {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
margin-top: 32px
}

.gdpage .dircue .dline {
width: 32px;
height: 2px;
background: #BE424B;
border-radius: 2px
}

.gdpage .dircue .dtext {
font-size: 13px;
color: #BE424B;
letter-spacing: .02em;
line-height: 1.2
}

.gdpage .dircue .darrow {
width: 16px;
height: 16px;
display: flex;
align-items: center;
justify-content: center
}

.gdpage .dircue .darrow svg {
width: 14px;
height: 14px
}

.gdpage .guidesec {
background: #fdf7f7;
padding: 48px 0;
position: relative
}

.gdpage .guidesec::before {
content: '';
position: absolute;
top: 32px;
right: 0;
width: 220px;
height: 220px;
border-radius: 50%;
border: 1px solid #be424b12;
pointer-events: none;
overflow: hidden
}

.gdpage .guidesec::after {
content: '';
position: absolute;
top: 12px;
right: 20px;
width: 160px;
height: 160px;
border-radius: 50%;
border: 1px solid #be424b0d;
pointer-events: none
}

.gdpage .guidesec .sechdr {
margin-bottom: 32px
}

.gdpage .guidesec .sechdr h2 {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b1b1b;
margin: 0 0 8px;
font-weight: 700;
position: relative;
display: inline-block
}

.gdpage .guidesec .sechdr h2::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: #3E6945;
border-radius: 2px;
animation: drawgreen .2s ease-out .6s forwards
}

@keyframes drawgreen {
to {
width: 100%
}
}

.gdpage .guidesec .sechdr p {
font-size: 16px;
line-height: 1.8;
color: #3a3a3a;
margin: 12px 0 0;
max-width: 600px;
letter-spacing: .01em
}

.gdpage .gdgrid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
margin-bottom: 48px
}

.gdpage .gdgrid .gditem {
background: #fff;
border-radius: 12px;
padding: 32px;
box-shadow: 0 1px 6px -1px #be424b0f;
opacity: 0;
transform: translateY(12px);
animation: risein .2s ease-out forwards;
transition: box-shadow .15s ease-out, transform .15s ease-out;
cursor: default
}

.gdpage .gdgrid .gditem:hover {
box-shadow: 0 4px 20px -1px #be424b17;
transform: translateY(-2px)
}

.gdpage .gdgrid .gditem:nth-child(1) {
animation-delay: .05s
}

.gdpage .gdgrid .gditem:nth-child(2) {
animation-delay: .1s
}

.gdpage .gdgrid .gditem:nth-child(3) {
animation-delay: .15s
}

.gdpage .gdgrid .gditem:nth-child(4) {
animation-delay: .18s
}

.gdpage .gdgrid .gditem:nth-child(5) {
animation-delay: .2s
}

.gdpage .gdgrid .gditem:nth-child(6) {
animation-delay: .22s
}

@keyframes risein {
to {
opacity: 1;
transform: translateY(0)
}
}

.gdpage .gdgrid .gditem .inum {
font-size: 52px;
line-height: 1.2;
font-weight: 700;
color: #F2F2C8;
letter-spacing: .01em;
margin-bottom: 4px;
display: block
}

.gdpage .gdgrid .gditem h3 {
font-size: 16px;
line-height: 1.2;
letter-spacing: .01em;
color: #BE424B;
margin: 0 0 8px;
font-weight: 700
}

.gdpage .gdgrid .gditem p {
font-size: 13px;
line-height: 1.8;
color: #3a3a3a;
margin: 0;
letter-spacing: .01em
}

.gdpage .gdgrid .gditem.wide {
grid-column: span 2;
display: flex;
flex-direction: row;
gap: 32px;
align-items: flex-start
}

.gdpage .gdgrid .gditem.wide .widetable {
flex: 0 0 auto;
min-width: 260px
}

.gdpage .gdgrid .gditem.wide .widenarr {
flex: 1 1 0;
min-width: 0
}

.gdpage .gdgrid .gditem.wide .widenarr h3 {
font-size: 16px;
color: #3E6945;
margin: 0 0 8px
}

.gdpage .gdgrid .gditem.wide .widenarr p {
font-size: 13px;
line-height: 1.8;
color: #3a3a3a;
margin: 0 0 8px;
letter-spacing: .01em
}

.gdpage .gdgrid .gditem.wide .widenarr p:last-child {
margin: 0
}

.gdpage .budgtable {
width: 100%;
border-collapse: collapse;
font-size: 13px
}

.gdpage .budgtable thead tr th {
background: #F2F2C8;
color: #1b1b1b;
font-weight: 700;
padding: 8px 12px;
text-align: left;
letter-spacing: .01em;
line-height: 1.2;
border-radius: 0
}

.gdpage .budgtable thead tr th:first-child {
border-radius: 6px 0 0 0
}

.gdpage .budgtable thead tr th:last-child {
border-radius: 0 6px 0 0
}

.gdpage .budgtable tbody tr {
border-bottom: 1px solid #be424b0f;
transition: background .12s ease-out
}

.gdpage .budgtable tbody tr:hover {
background: #fdf7f7
}

.gdpage .budgtable tbody tr td {
padding: 8px 12px;
color: #2e2e2e;
line-height: 1.8;
letter-spacing: .01em
}

.gdpage .budgtable tbody tr td .tdtag {
display: inline-block;
padding: 2px 8px;
border-radius: 4px;
font-size: 13px;
font-weight: 600;
line-height: 1.2
}

.gdpage .budgtable tbody tr td .tdtag.low {
background: #eaf4eb;
color: #3E6945
}

.gdpage .budgtable tbody tr td .tdtag.med {
background: #F2F2C8;
color: #7a6800
}

.gdpage .budgtable tbody tr td .tdtag.hi {
background: #fdeaeb;
color: #BE424B
}

.gdpage .howsec {
background: #fff;
padding: 48px 0 32px;
position: relative
}

.gdpage .howsec::after {
content: '';
display: block;
height: 2px;
background: linear-gradient(to right, #3E6945 0%, transparent 55%);
margin-top: 48px
}

.gdpage .howsec .sechdr2 {
margin-bottom: 32px
}

.gdpage .howsec .sechdr2 h2 {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b1b1b;
margin: 0 0 8px;
font-weight: 700;
position: relative;
display: inline-block
}

.gdpage .howsec .sechdr2 h2::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: #BE424B;
border-radius: 2px;
animation: drawred .2s ease-out .7s forwards
}

@keyframes drawred {
to {
width: 100%
}
}

.gdpage .howsec .sechdr2 p {
font-size: 16px;
line-height: 1.8;
color: #3a3a3a;
margin: 12px 0 0;
max-width: 560px;
letter-spacing: .01em
}

.gdpage .steplist {
display: flex;
flex-direction: column;
gap: 4px;
max-width: 720px
}

.gdpage .steplist .steprow {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 16px;
padding: 16px;
border-radius: 6px;
transition: background .12s ease-out, box-shadow .12s ease-out;
opacity: 0;
animation: risein .2s ease-out forwards
}

.gdpage .steplist .steprow:nth-child(1) {
animation-delay: .08s
}

.gdpage .steplist .steprow:nth-child(2) {
animation-delay: .12s
}

.gdpage .steplist .steprow:nth-child(3) {
animation-delay: .16s
}

.gdpage .steplist .steprow:nth-child(4) {
animation-delay: .19s
}

.gdpage .steplist .steprow:nth-child(5) {
animation-delay: .22s
}

.gdpage .steplist .steprow:hover {
background: #fdf7f7;
box-shadow: 0 1px 6px -1px #be424b0f
}

.gdpage .steplist .steprow .snum {
flex: 0 0 36px;
width: 36px;
height: 36px;
border-radius: 20px;
background: #BE424B;
color: #fff;
font-size: 13px;
font-weight: 700;
letter-spacing: .01em;
display: flex;
align-items: center;
justify-content: center;
line-height: 1.2;
box-shadow: inset 0 2px 6px #be424b38;
transition: transform .15s ease-out
}

.gdpage .steplist .steprow:hover .snum {
transform: scale(1.1)
}

.gdpage .steplist .steprow .stxt {
flex: 1 1 0;
min-width: 0
}

.gdpage .steplist .steprow .stxt h4 {
font-size: 16px;
line-height: 1.2;
color: #1b1b1b;
margin: 0 0 4px;
font-weight: 700;
letter-spacing: .01em
}

.gdpage .steplist .steprow .stxt p {
font-size: 13px;
line-height: 1.8;
color: #3a3a3a;
margin: 0;
letter-spacing: .01em
}

.gdpage .ctarow {
margin-top: 32px;
display: flex;
flex-direction: row;
align-items: center;
gap: 16px
}

.gdpage .ctarow .ctabtn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 32px;
background: #BE424B;
color: #fff !important;
font-size: 16px;
font-weight: 600;
letter-spacing: .01em;
line-height: 1.2;
border-radius: 6px;
text-decoration: none !important;
box-shadow: 0 4px 20px -1px #be424b17;
transition: transform .12s ease-out, box-shadow .12s ease-out;
border: none
}

.gdpage .ctarow .ctabtn:hover {
transform: scale(1.04);
box-shadow: 0 12px 52px -1px #be424b24
}

.gdpage .ctarow .ctabtn:focus {
outline: 2px solid #BE424B;
outline-offset: 3px
}

.gdpage .ctarow .ctabtn svg {
width: 14px;
height: 14px;
flex-shrink: 0
}

.gdpage .ctarow .seclink {
font-size: 16px;
color: #3E6945;
letter-spacing: .01em;
line-height: 1.2;
text-decoration: underline;
text-underline-offset: 3px;
transition: color .12s ease-out
}

.gdpage .ctarow .seclink:hover {
color: #BE424B
}

@media (max-width: 1024px) {
.gdpage .titlesec .tsgrid {
gap: 32px
}

.gdpage .tsright {
flex: 0 0 280px;
max-width: 280px
}

.gdpage .tsleft h1 {
font-size: 52px
}
}

@media (max-width: 768px) {
.gdpage .titlesec .tsgrid {
flex-direction: column;
gap: 32px
}

.gdpage .tsright {
flex: 0 0 auto;
max-width: 100%;
width: 100%
}

.gdpage .tsleft h1 {
font-size: 27px
}

.gdpage .gdgrid {
grid-template-columns: 1fr
}

.gdpage .gdgrid .gditem.wide {
grid-column: span 1;
flex-direction: column;
gap: 16px
}

.gdpage .gdgrid .gditem.wide .widetable {
min-width: 0;
width: 100%;
overflow-x: auto
}
}

@media (max-width: 640px) {
.gdpage .titlesec {
padding: 32px 0 16px
}

.gdpage .guidesec {
padding: 32px 0
}

.gdpage .howsec {
padding: 32px 0 16px
}

.gdpage .tsleft h1 {
font-size: 27px
}

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

.gdpage .gdgrid {
gap: 8px
}

.gdpage .gdgrid .gditem {
padding: 16px
}
}

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

.lrnprog .prog-container {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px
}

.lrnprog .prog-sec1 {
background: #fff;
padding: 48px 0 0;
position: relative
}

.lrnprog .prog-sec1-inner {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px;
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 48px
}

.lrnprog .prog-sec1-left {
flex: 1 1 0;
min-width: 0
}

.lrnprog .prog-sec1-right {
flex: 0 0 380px;
max-width: 380px;
position: relative
}

.lrnprog .prog-eyebrow {
font-size: 13px;
letter-spacing: .02em;
color: #BE424B;
text-transform: uppercase;
margin-bottom: 16px;
line-height: 1.2
}

.lrnprog .prog-h1 {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b2a1c;
margin: 0 0 16px;
font-weight: 700
}

.lrnprog .prog-h1 span {
color: #BE424B;
position: relative;
display: inline-block
}

.lrnprog .prog-h1 span::after {
content: '';
position: absolute;
left: 0;
bottom: -4px;
width: 100%;
height: 2px;
background: linear-gradient(to right, #BE424B, transparent);
animation: underlineDraw .5s ease-out forwards;
transform-origin: left
}

@keyframes underlineDraw {
from {
transform: scaleX(0)
}

to {
transform: scaleX(1)
}
}

.lrnprog .prog-lead {
font-size: 16px;
line-height: 1.8;
color: #2e3a2f;
margin: 0 0 32px;
letter-spacing: .01em
}

.lrnprog .prog-stats-row {
display: flex;
flex-direction: row;
gap: 32px;
margin-bottom: 32px
}

.lrnprog .prog-stat {
display: flex;
flex-direction: column;
gap: 4px
}

.lrnprog .prog-stat-num {
font-size: 27px;
font-weight: 700;
color: #3E6945;
line-height: 1.2;
letter-spacing: .01em
}

.lrnprog .prog-stat-label {
font-size: 13px;
color: #4a5e4b;
line-height: 1.2;
letter-spacing: .02em
}

.lrnprog .prog-cta {
display: inline-flex;
flex-direction: row;
align-items: center;
gap: 8px;
background: #BE424B;
color: #fff;
font-size: 16px;
letter-spacing: .01em;
padding: 12px 32px;
border-radius: 4px;
text-decoration: none;
border: none;
cursor: pointer;
transition: transform .15s ease-out, box-shadow .15s ease-out;
box-shadow: 0 4px 20px -1px #be424b17;
margin-bottom: 48px
}

.lrnprog .prog-cta:hover {
transform: scale(1.04);
box-shadow: 0 12px 52px -1px #be424b24
}

.lrnprog .prog-cta svg {
flex-shrink: 0
}

.lrnprog .prog-img-wrap {
position: relative;
border-radius: 2px;
overflow: hidden
}

.lrnprog .prog-img-wrap::before {
content: '';
display: block;
position: absolute;
inset: 0;
background: #e8e8d8;
z-index: 1;
transition: opacity .2s ease-out
}

.lrnprog .prog-img-wrap.loaded::before {
opacity: 0;
pointer-events: none
}

.lrnprog .prog-img-wrap img {
display: block;
width: 100%;
height: 420px;
object-fit: cover;
object-position: center;
border-radius: 2px;
transition: border .18s ease-out;
border: 2px solid transparent;
position: relative;
z-index: 2
}

.lrnprog .prog-img-wrap:hover img {
border: 2px solid #BE424B
}

.lrnprog .prog-img-deco {
position: absolute;
top: -16px;
right: -16px;
width: 80px;
height: 80px;
border-radius: 50%;
border: 2px solid #be424b2e;
z-index: 0;
pointer-events: none
}

.lrnprog .prog-img-deco2 {
position: absolute;
bottom: -12px;
left: -12px;
width: 48px;
height: 48px;
border-radius: 50%;
border: 2px solid #3e694526;
z-index: 0;
pointer-events: none
}

.lrnprog .prog-curve-divider {
width: 100%;
overflow: hidden;
line-height: 0;
margin-top: 0
}

.lrnprog .prog-curve-divider svg {
display: block;
width: 100%
}

.lrnprog .prog-sec2 {
background: #1a0d0e;
padding: 48px 0;
position: relative
}

.lrnprog .prog-sec2-inner {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px
}

.lrnprog .prog-sec2-top {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 48px;
margin-bottom: 48px
}

.lrnprog .prog-sec2-text {
flex: 1 1 0;
min-width: 0
}

.lrnprog .prog-sec2-aside {
flex: 0 0 300px;
max-width: 300px
}

.lrnprog .prog-h2 {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #F2F2C8;
margin: 0 0 16px;
font-weight: 700;
position: relative;
display: inline-block
}

.lrnprog .prog-h2::after {
content: '';
position: absolute;
left: 0;
bottom: -4px;
width: 60%;
height: 2px;
background: linear-gradient(to right, #BE424B, transparent);
animation: underlineDraw .6s .2s ease-out both;
transform-origin: left
}

.lrnprog .prog-body {
font-size: 16px;
line-height: 1.8;
color: #c8cfc8;
letter-spacing: .01em;
margin: 0 0 16px
}

.lrnprog .prog-body:last-child {
margin-bottom: 0
}

.lrnprog .prog-modules-label {
font-size: 13px;
color: #BE424B;
text-transform: uppercase;
letter-spacing: .02em;
margin-bottom: 16px;
line-height: 1.2
}

.lrnprog .prog-module-list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-direction: column;
gap: 8px
}

.lrnprog .prog-module-list li {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 8px;
font-size: 13px;
color: #c8cfc8;
line-height: 1.8;
letter-spacing: .01em
}

.lrnprog .prog-module-dot {
flex-shrink: 0;
width: 6px;
height: 6px;
border-radius: 50%;
background: #3E6945;
margin-top: 7px
}

.lrnprog .prog-icon-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
position: relative
}

.lrnprog .prog-icon-grid::before {
content: '';
position: absolute;
top: 50%;
left: 16%;
right: 16%;
height: 1px;
border-top: 2px dashed #f2f2c82e;
z-index: 0;
pointer-events: none
}

.lrnprog .prog-icon-grid::after {
content: '';
position: absolute;
left: 50%;
top: 16%;
bottom: 16%;
width: 1px;
border-left: 2px dashed #f2f2c81f;
z-index: 0;
pointer-events: none
}

.lrnprog .prog-icard {
background: #f2f2c80a;
border: 1px solid #f2f2c814;
border-radius: 6px;
padding: 16px 12px;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
text-align: center;
position: relative;
z-index: 1;
transition: background .18s ease-out, border-color .18s ease-out;
animation: cardReveal .4s ease-out both
}

.lrnprog .prog-icard:nth-child(1) {
animation-delay: .05s
}

.lrnprog .prog-icard:nth-child(2) {
animation-delay: .12s
}

.lrnprog .prog-icard:nth-child(3) {
animation-delay: .19s
}

.lrnprog .prog-icard:nth-child(4) {
animation-delay: .26s
}

.lrnprog .prog-icard:nth-child(5) {
animation-delay: .33s
}

.lrnprog .prog-icard:nth-child(6) {
animation-delay: .4s
}

@keyframes cardReveal {
from {
opacity: 0;
transform: translateY(10px)
}

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

.lrnprog .prog-icard:hover {
background: #f2f2c814;
border-color: #be424b4d
}

.lrnprog .prog-icard-icon {
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center
}

.lrnprog .prog-icard-label {
font-size: 13px;
color: #F2F2C8;
line-height: 1.2;
letter-spacing: .01em
}

.lrnprog .prog-icard-desc {
font-size: 13px;
color: #8a9b8b;
line-height: 1.8;
letter-spacing: .01em
}

.lrnprog .prog-voices {
margin-top: 48px;
padding-top: 32px;
border-top: 1px solid #f2f2c814
}

.lrnprog .prog-voices-label {
font-size: 13px;
color: #BE424B;
text-transform: uppercase;
letter-spacing: .02em;
margin-bottom: 16px;
line-height: 1.2
}

.lrnprog .prog-voices-row {
display: flex;
flex-direction: row;
gap: 16px
}

.lrnprog .prog-voice {
flex: 1 1 0;
min-width: 0;
background: #f2f2c808;
border: 1px solid #f2f2c812;
border-radius: 6px;
padding: 16px;
display: flex;
flex-direction: row;
gap: 12px;
align-items: flex-start;
transition: border-color .15s ease-out
}

.lrnprog .prog-voice:hover {
border-color: #3e694559
}

.lrnprog .prog-portrait-wrap {
flex-shrink: 0;
width: 56px;
height: 72px;
overflow: hidden;
border-radius: 2px;
position: relative
}

.lrnprog .prog-portrait-wrap::before {
content: '';
position: absolute;
inset: 0;
background: #2a2020;
z-index: 1;
transition: opacity .2s ease-out
}

.lrnprog .prog-portrait-wrap.loaded::before {
opacity: 0;
pointer-events: none
}

.lrnprog .prog-portrait-wrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
display: block;
position: relative;
z-index: 2;
transition: border .18s ease-out;
border: 2px solid transparent
}

.lrnprog .prog-portrait-wrap:hover img {
border: 2px solid #BE424B
}

.lrnprog .prog-voice-text {
flex: 1 1 0;
min-width: 0
}

.lrnprog .prog-voice-quote {
font-size: 13px;
color: #c8cfc8;
line-height: 1.8;
letter-spacing: .01em;
margin: 0 0 8px
}

.lrnprog .prog-voice-name {
font-size: 13px;
color: #F2F2C8;
font-weight: 700;
letter-spacing: .01em;
line-height: 1.2
}

.lrnprog .prog-voice-role {
font-size: 13px;
color: #6a7d6b;
letter-spacing: .01em;
line-height: 1.2
}

.lrnprog .prog-voice3-solo {
display: flex;
flex-direction: row;
gap: 12px;
align-items: flex-start;
background: #f2f2c808;
border: 1px solid #f2f2c812;
border-radius: 6px;
padding: 16px;
margin-top: 16px;
transition: border-color .15s ease-out
}

.lrnprog .prog-voice3-solo:hover {
border-color: #3e694559
}

.lrnprog .prog-curve-divider2 {
width: 100%;
overflow: hidden;
line-height: 0
}

.lrnprog .prog-curve-divider2 svg {
display: block;
width: 100%
}

@media (max-width: 1024px) {
.lrnprog .prog-sec1-inner {
flex-direction: column;
gap: 32px
}

.lrnprog .prog-sec1-right {
flex: unset;
max-width: 100%;
width: 100%
}

.lrnprog .prog-sec2-top {
flex-direction: column;
gap: 32px
}

.lrnprog .prog-sec2-aside {
flex: unset;
max-width: 100%;
width: 100%
}
}

@media (max-width: 768px) {
.lrnprog .prog-h1 {
font-size: 27px
}

.lrnprog .prog-stats-row {
gap: 16px;
flex-wrap: wrap
}

.lrnprog .prog-icon-grid {
grid-template-columns: repeat(2, 1fr)
}

.lrnprog .prog-voices-row {
flex-direction: column;
gap: 12px
}
}

@media (max-width: 640px) {
.lrnprog .prog-sec1-inner {
padding: 0 12px
}

.lrnprog .prog-sec2-inner {
padding: 0 12px
}

.lrnprog .prog-icon-grid {
grid-template-columns: 1fr 1fr
}

.lrnprog .prog-cta {
width: 100%;
justify-content: center
}
}

.ctus {
position: relative;
overflow: hidden
}

.ctus .grad-split {
background: linear-gradient(112deg, #F2F2C8 0%, #F2F2C8 42%, #fff 42%, #fff 100%);
padding: 48px 0;
position: relative
}

.ctus .grad-split::after {
content: "";
position: absolute;
top: 16px;
right: 80px;
width: 120px;
height: 120px;
border: 2px solid #BE424B;
opacity: .08;
border-radius: 2px;
transform: rotate(18deg);
pointer-events: none
}

.ctus .grad-split::before {
content: "";
position: absolute;
bottom: 24px;
left: 60px;
width: 60px;
height: 60px;
background: #3E6945;
opacity: .06;
border-radius: 50%;
pointer-events: none
}

.ctus .titlerow {
max-width: 1100px;
margin: 0 auto;
padding: 0 32px;
display: flex;
flex-direction: row;
align-items: center;
gap: 48px
}

.ctus .titleleft {
flex: 1 1 0;
min-width: 0
}

.ctus .eyebrow {
font-size: 13px;
letter-spacing: .02em;
color: #3E6945;
font-weight: 600;
text-transform: uppercase;
margin-bottom: 12px;
line-height: 1.2
}

.ctus .titleleft h1 {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #222;
font-weight: 700;
margin: 0 0 16px
}

.ctus .titleleft h1 .accent {
color: #BE424B
}

.ctus .titleleft h1 .underline-anim {
position: relative;
display: inline-block
}

.ctus .titleleft h1 .underline-anim::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 100%;
height: 2px;
background: #BE424B;
transform: scaleX(0);
transform-origin: left;
animation: drawline .18s ease-out .25s forwards
}

@keyframes drawline {
to {
transform: scaleX(1)
}
}

.ctus .titleimg {
flex: 0 0 340px;
width: 340px;
height: 240px;
border-radius: 12px;
overflow: hidden;
position: relative;
box-shadow: 0 4px 20px -1px #be424b17
}

.ctus .titleimg img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
filter: saturate(0.7) brightness(1.08);
transition: filter .18s ease-out
}

.ctus .titleimg:hover img {
filter: saturate(1) brightness(1) hue-rotate(0deg) sepia(0.1) contrast(1.05)
}

.ctus .titleimg .imgoverlay {
position: absolute;
inset: 0;
background: linear-gradient(to right, #be424b2e, transparent);
pointer-events: none;
border-radius: 12px;
transition: opacity .2s ease-out
}

.ctus .titleimg:hover .imgoverlay {
opacity: .4
}

.ctus .scallop-div {
width: 100%;
height: 28px;
position: relative;
background: #fff;
overflow: hidden
}

.ctus .scallop-div svg {
display: block;
width: 100%;
height: 28px
}

.ctus .formblock {
background: #fff;
padding: 48px 0
}

.ctus .forminner {
max-width: 1100px;
margin: 0 auto;
padding: 0 32px;
display: flex;
flex-direction: row;
gap: 48px;
align-items: flex-start
}

.ctus .formleft {
flex: 0 0 320px;
display: flex;
flex-direction: column;
gap: 32px
}

.ctus .contactcard {
background: #F2F2C8;
border-radius: 12px;
padding: 32px;
box-shadow: 0 1px 6px -1px #be424b0f;
position: relative
}

.ctus .contactcard::before {
content:"{";
position: absolute;
top: 12px;
left: 12px;
font-size: 52px;
color: #BE424B;
opacity: .12;
line-height: 1.2;
font-weight: 700;
pointer-events: none
}

.ctus .contactcard::after {
content: "}";
position: absolute;
bottom: 12px;
right: 12px;
font-size: 52px;
color: #BE424B;
opacity: .12;
line-height: 1.2;
font-weight: 700;
pointer-events: none
}

.ctus .contactcard h4 {
font-size: 16px;
font-weight: 700;
color: #222;
margin: 0 0 16px;
letter-spacing: .01em;
line-height: 1.2
}

.ctus .cdetail {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 12px;
margin-bottom: 16px
}

.ctus .cdetail:last-child {
margin-bottom: 0
}

.ctus .cicon {
flex: 0 0 32px;
width: 32px;
height: 32px;
border-radius: 6px;
background: #fff;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 1px 6px -1px #be424b0f
}

.ctus .cicon svg {
width: 16px;
height: 16px;
stroke: #BE424B;
fill: none;
stroke-width: 1.8;
stroke-linecap: round;
stroke-linejoin: round
}

.ctus .ctext {
font-size: 13px;
color: #333;
line-height: 1.8;
letter-spacing: .01em
}

.ctus .ctext a {
color: #3E6945;
text-decoration: none;
transition: color .15s ease-out
}

.ctus .ctext a:hover {
color: #BE424B
}

.ctus .formright {
flex: 1 1 0;
min-width: 0
}

.ctus .formright h2 {
font-size: 27px;
font-weight: 700;
color: #222;
letter-spacing: .01em;
line-height: 1.2;
margin: 0 0 8px;
position: relative;
display: inline-block
}

.ctus .formright h2::after {
content: "";
position: absolute;
left: 0;
bottom: -4px;
width: 48px;
height: 2px;
background: #3E6945;
animation: drawshort .18s ease-out .4s both
}

@keyframes drawshort {
from {
width: 0
}

to {
width: 48px
}
}

.ctus .formdesc {
font-size: 13px;
color: #555;
line-height: 1.8;
margin: 16px 0 32px;
letter-spacing: .01em
}

.ctus .cform {
display: flex;
flex-direction: column;
gap: 16px
}

.ctus .fieldgrp {
display: flex;
flex-direction: column;
gap: 8px
}

.ctus .fieldgrp label {
font-size: 13px;
font-weight: 600;
color: #333;
letter-spacing: .02em;
text-transform: uppercase;
line-height: 1.2
}

.ctus .cform input[type="email"],
.ctus .cform select,
.ctus .cform textarea {
width: 100%;
padding: 12px 16px;
font-size: 13px;
color: #222;
background: #fff;
border: 1.5px solid #ddd;
border-radius: 6px;
outline: none;
box-sizing: border-box;
line-height: 1.8;
letter-spacing: .01em;
transition: border-color .15s ease-out, box-shadow .15s ease-out;
box-shadow: inset 0 1px 4px #be424b0a;
appearance: none;
-webkit-appearance: none
}

.ctus .cform input[type="email"]::placeholder,
.ctus .cform textarea::placeholder {
text-transform: uppercase;
color: #aaa;
font-size: 13px;
letter-spacing: .02em
}

.ctus .cform input[type="email"]:focus,
.ctus .cform select:focus,
.ctus .cform textarea:focus {
border-color: #BE424B;
box-shadow: inset 0 1px 4px #be424b14 0 0 0 3px #be424b12
}

.ctus .selectwrap {
position: relative
}

.ctus .selectwrap select {
width: 100%;
cursor: pointer;
padding-right: 40px
}

.ctus .selectwrap .sarrow {
position: absolute;
right: 14px;
top: 50%;
transform: translateY(-50%);
pointer-events: none;
width: 16px;
height: 16px
}

.ctus .selectwrap .sarrow svg {
width: 16px;
height: 16px;
stroke: #BE424B;
fill: none;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}

.ctus .cform textarea {
resize: vertical;
min-height: 100px
}

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

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

.ctus .privacyrow .privtext {
font-size: 13px;
color: #555;
line-height: 1.8;
letter-spacing: .01em
}

.ctus .privacyrow .privtext a {
color: #BE424B;
text-decoration: underline;
text-underline-offset: 2px;
transition: color .15s ease-out
}

.ctus .privacyrow .privtext a:hover {
color: #3E6945
}

.ctus .submitbtn {
align-self: flex-start;
display: inline-flex;
align-items: center;
gap: 8px;
background: #BE424B;
color: #fff;
font-size: 13px;
font-weight: 700;
letter-spacing: .02em;
text-transform: uppercase;
padding: 12px 32px;
border: none;
border-radius: 4px;
cursor: pointer;
transition: transform .15s ease-out, background .15s ease-out, box-shadow .15s ease-out;
box-shadow: 0 4px 20px -1px #be424b24
}

.ctus .submitbtn:hover {
transform: scale(1.04);
background: #a83540;
box-shadow: 0 12px 52px -1px #be424b24
}

.ctus .submitbtn:focus {
outline: 2px solid #BE424B;
outline-offset: 3px
}

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

.ctus .submitbtn .btnarrow {
width: 16px;
height: 16px;
display: flex;
align-items: center;
justify-content: center
}

.ctus .submitbtn .btnarrow svg {
width: 14px;
height: 14px;
stroke: #fff;
fill: none;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round
}

.ctus .fadein {
opacity: 0;
transform: translateY(12px);
animation: fadeinup .2s ease-out forwards
}

.ctus .fadein:nth-child(1) {
animation-delay: .05s
}

.ctus .fadein:nth-child(2) {
animation-delay: .1s
}

.ctus .fadein:nth-child(3) {
animation-delay: .15s
}

.ctus .fadein:nth-child(4) {
animation-delay: .18s
}

@keyframes fadeinup {
to {
opacity: 1;
transform: translateY(0)
}
}

@media (max-width: 1024px) {
.ctus .titlerow {
gap: 32px
}

.ctus .titleimg {
flex: 0 0 260px;
width: 260px;
height: 200px
}

.ctus .titleleft h1 {
font-size: 27px
}

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

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

@media (max-width: 768px) {
.ctus .titlerow {
flex-direction: column;
gap: 24px
}

.ctus .titleimg {
flex: none;
width: 100%;
height: 180px
}

.ctus .titleleft h1 {
font-size: 27px
}

.ctus .grad-split {
padding: 32px 0
}

.ctus .formblock {
padding: 32px 0
}

.ctus .forminner {
padding: 0 16px
}

.ctus .titlerow {
padding: 0 16px
}

.ctus .submitbtn {
width: 100%;
justify-content: center
}
}

@media (max-width: 640px) {
.ctus .titleleft h1 {
font-size: 27px
}

.ctus .contactcard {
padding: 24px 16px
}
}

.abut {
width: 100%;
max-width: 100%;
overflow-x: hidden;
background: #fff
}

.abut .pg-bound {
max-width: 1100px;
margin: 0 auto;
padding: 0 32px
}

@keyframes diagSlide {
from {
opacity: 0;
transform: translate(-24px, 24px)
}

to {
opacity: 1;
transform: translate(0, 0)
}
}

@keyframes diagSlideR {
from {
opacity: 0;
transform: translate(24px, -24px)
}

to {
opacity: 1;
transform: translate(0, 0)
}
}

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

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

@keyframes lineGrow {
from {
width: 0
}

to {
width: 48px
}
}

.abut .titleblk {
padding: 80px 0 48px;
position: relative
}

.abut .titleblk::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='20' cy='20' r='1' fill='%23BE424B' fill-opacity='0.04'/%3E%3C/svg%3E");
animation: patternShift 18s linear infinite;
pointer-events: none
}

.abut .titleblk-edge {
position: absolute;
top: 0;
left: 0;
width: 3px;
height: 100%;
background: linear-gradient(to bottom, #BE424B, transparent)
}

.abut .titleblk-inner {
display: flex;
flex-direction: row;
align-items: flex-end;
gap: 48px;
position: relative
}

.abut .titleblk-text {
flex: 1 1 60%;
animation: diagSlide .18s ease-out both
}

.abut .titleblk-label {
font-size: 13px;
letter-spacing: .12em;
color: #BE424B;
text-transform: uppercase;
margin-bottom: 16px;
line-height: 1.2
}

.abut .titleblk-h1 {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b2a1c;
margin: 0 0 16px;
font-weight: 700
}

.abut .titleblk-h1 span {
color: #BE424B
}

.abut .titleblk-sub {
font-size: 16px;
line-height: 1.8;
color: #3a3a3a;
max-width: 480px;
margin: 0 0 32px;
letter-spacing: .01em
}

.abut .act-lnk {
display: inline-flex;
flex-direction: row;
align-items: center;
gap: 8px;
font-size: 16px;
color: #3E6945;
text-decoration: none;
letter-spacing: .02em;
font-weight: 600;
transition: gap .15s ease-out, color .12s ease
}

.abut .act-lnk:hover {
color: #BE424B;
gap: 12px
}

.abut .act-lnk:focus {
outline: 2px solid #BE424B;
outline-offset: 4px;
border-radius: 2px
}

.abut .act-lnk svg {
flex-shrink: 0;
transition: transform .15s ease-out
}

.abut .act-lnk:hover svg {
transform: translateX(4px)
}

.abut .titleblk-imgcol {
flex: 0 0 380px;
position: relative;
animation: diagSlideR .2s ease-out .08s both
}

.abut .titleblk-imgwrap {
position: relative;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 12px 52px -1px #be424b24
}

.abut .titleblk-imgwrap img {
width: 100%;
height: 340px;
object-fit: cover;
object-position: center;
display: block
}

.abut .scanline {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: repeating-linear-gradient(to bottom, transparent, transparent 3px, #be424b0a 3px, #be424b0a 4px);
pointer-events: none
}

.abut .titleblk-imgwrap::after {
content: '';
position: absolute;
inset: 0;
box-shadow: inset 0 0 0 1px #be424b1f;
border-radius: 12px;
pointer-events: none
}

.abut .circles-deco {
position: absolute;
bottom: -32px;
right: -32px;
width: 120px;
height: 120px;
pointer-events: none
}

.abut .circles-deco circle {
fill: none;
stroke: #3E6945
}

.abut .divider-pencil {
width: 100%;
overflow: hidden;
line-height: 0;
margin: 0
}

.abut .divider-pencil svg {
display: block;
width: 100%
}

.abut .teamblk {
padding: 48px 0 80px;
position: relative;
background: #F2F2C8
}

.abut .teamblk::before {
content: '';
position: absolute;
inset: 0;
background-image: url(/photo_directory/_MG_9166.jpg);
background-size: cover;
background-position: center;
opacity: .03;
pointer-events: none
}

.abut .teamblk-inner {
position: relative
}

.abut .blk-heading {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #1b2a1c;
margin: 0 0 8px;
font-weight: 700;
position: relative;
display: inline-block
}

.abut .blk-heading::after {
content: '';
display: block;
height: 2px;
background: #BE424B;
border-radius: 2px;
margin-top: 6px;
animation: lineGrow .2s ease-out .1s both
}

.abut .teamblk-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
margin-top: 32px
}

.abut .portrait-col {
display: flex;
flex-direction: column;
gap: 32px
}

.abut .portrait-card {
display: flex;
flex-direction: row;
gap: 16px;
align-items: flex-start;
background: #fff;
border-radius: 12px;
padding: 16px;
box-shadow: 0 4px 20px -1px #be424b17;
animation: diagSlide .18s ease-out .12s both;
transition: box-shadow .15s ease-out
}

.abut .portrait-card:hover {
box-shadow: 0 12px 52px -1px #be424b24
}

.abut .portrait-imgwrap {
flex-shrink: 0;
width: 80px;
height: 120px;
border-radius: 12px;
overflow: hidden;
box-shadow: inset 0 0 0 1px #be424b1a
}

.abut .portrait-imgwrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: top;
display: block
}

.abut .portrait-info {
flex: 1
}

.abut .portrait-name {
font-size: 16px;
font-weight: 700;
color: #1b2a1c;
line-height: 1.2;
letter-spacing: .01em;
margin: 0 0 4px
}

.abut .portrait-role {
font-size: 13px;
color: #BE424B;
text-transform: uppercase;
letter-spacing: .08em;
margin: 0 0 8px;
line-height: 1.2
}

.abut .portrait-bio {
font-size: 13px;
color: #3a3a3a;
line-height: 1.8;
margin: 0;
letter-spacing: .01em
}

.abut .facts-col {
display: flex;
flex-direction: column;
gap: 16px
}

.abut .fact-item {
background: #fff;
border-radius: 12px;
padding: 16px;
box-shadow: 0 1px 6px -1px #be424b0f;
display: flex;
flex-direction: column;
gap: 8px;
animation: diagSlideR .2s ease-out .14s both;
transition: box-shadow .12s ease-out
}

.abut .fact-item:hover {
box-shadow: 0 4px 20px -1px #be424b17
}

.abut .fact-num {
font-size: 27px;
font-weight: 700;
color: #3E6945;
line-height: 1.2;
letter-spacing: .01em
}

.abut .fact-desc {
font-size: 13px;
color: #3a3a3a;
line-height: 1.8;
margin: 0;
letter-spacing: .01em
}

.abut .facts-text {
margin-top: 16px;
font-size: 16px;
line-height: 1.8;
color: #3a3a3a;
letter-spacing: .01em
}

.abut .facts-text strong {
color: #1b2a1c
}

@media (max-width: 1024px) {
.abut .titleblk-imgcol {
flex: 0 0 300px
}

.abut .titleblk-imgwrap img {
height: 280px
}
}

@media (max-width: 768px) {
.abut .titleblk {
padding: 48px 0 32px
}

.abut .titleblk-inner {
flex-direction: column;
gap: 32px
}

.abut .titleblk-imgcol {
flex: 0 0 auto;
width: 100%
}

.abut .titleblk-h1 {
font-size: 27px
}

.abut .teamblk-grid {
grid-template-columns: 1fr
}
}

@media (max-width: 640px) {
.abut .pg-bound {
padding: 0 16px
}

.abut .portrait-card {
flex-direction: column
}

.abut .portrait-imgwrap {
width: 100%;
height: 160px
}
}

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

.frnt .pg-inner {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px
}

.frnt ::selection {
background: #BE424B;
color: #fff
}

@keyframes revealRotate {
from {
opacity: 0;
transform: rotate(-2deg) translateY(16px)
}

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

@keyframes drawLine {
from {
width: 0
}

to {
width: 100%
}
}

@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(12px)
}

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

.frnt .titblk {
padding: 80px 0 48px;
background: #fff;
position: relative
}

.frnt .titblk-pg {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px;
display: grid;
grid-template-columns: 220px 1fr;
gap: 48px;
align-items: start
}

.frnt .titblk-imgcol {
position: relative
}

.frnt .titblk-imgwrap {
width: 220px;
height: 280px;
overflow: hidden;
border-radius: 12px;
position: relative
}

.frnt .titblk-imgwrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block
}

.frnt .titblk-imgwrap::after {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(ellipse at 0% 100%, #be424b73 0%, transparent 65%), radial-gradient(ellipse at 100% 0%, #3e69454d 0%, transparent 60%);
border-radius: 12px;
pointer-events: none
}

.frnt .titblk-dots {
position: absolute;
top: -24px;
left: -24px;
width: 120px;
height: 120px;
pointer-events: none;
z-index: 0
}

.frnt .titblk-dots circle {
fill: #BE424B;
opacity: .08
}

.frnt .titblk-textcol {
padding-top: 8px;
animation: revealRotate .2s ease-out both
}

.frnt .titblk-label {
font-size: 13px;
letter-spacing: .02em;
color: #3E6945;
line-height: 1.2;
margin-bottom: 16px;
text-transform: uppercase
}

.frnt .titblk-h1 {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #1e1e1e;
margin-bottom: 16px;
font-weight: 700
}

.frnt .titblk-h1 span {
color: #BE424B
}

.frnt .titblk-accent {
display: block;
height: 2px;
background: linear-gradient(to right, #BE424B, transparent);
margin-bottom: 16px;
animation: drawLine .2s ease-out .15s both
}

.frnt .titblk-desc {
font-size: 16px;
line-height: 1.8;
letter-spacing: .01em;
color: #333;
max-width: 560px
}

.frnt .titblk-cta {
display: inline-flex;
align-items: center;
gap: 8px;
margin-top: 32px;
font-size: 16px;
letter-spacing: .01em;
color: #BE424B;
text-decoration: none;
font-weight: 600;
transition: gap .15s ease-out;
border: none;
background: none;
cursor: pointer;
padding: 0
}

.frnt .titblk-cta:hover {
gap: 12px
}

.frnt .titblk-cta svg {
width: 18px;
height: 18px;
stroke: #BE424B;
fill: none;
stroke-width: 2
}

.frnt .outcsec {
padding: 64px 0 48px;
background: #F2F2C8;
position: relative
}

.frnt .outcsec-pg {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px
}

.frnt .outcsec-top {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
align-items: start;
margin-bottom: 48px
}

.frnt .outcsec-heading {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #1e1e1e;
font-weight: 700;
margin-bottom: 8px
}

.frnt .outcsec-hline {
display: block;
height: 2px;
background: linear-gradient(to right, #3E6945, transparent);
margin-bottom: 16px;
animation: drawLine .18s ease-out .1s both
}

.frnt .outcsec-sub {
font-size: 13px;
color: #3E6945;
letter-spacing: .02em;
text-transform: uppercase;
margin-bottom: 8px
}

.frnt .outcsec-body {
font-size: 16px;
line-height: 1.8;
color: #333;
letter-spacing: .01em
}

.frnt .outcsec-imgwrap {
position: relative;
border-radius: 12px;
overflow: hidden;
height: 260px
}

.frnt .outcsec-imgwrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform .18s ease-out
}

.frnt .outcsec-imgwrap:hover img {
transform: scale(1.03)
}

.frnt .outcsec-imgwrap .imgover {
position: absolute;
inset: 0;
background: #1e1e1e00;
display: flex;
align-items: flex-end;
padding: 16px;
transition: background .18s ease-out
}

.frnt .outcsec-imgwrap:hover .imgover {
background: #1e1e1e9e
}

.frnt .outcsec-imgwrap .imgover-txt {
color: #fff;
font-size: 13px;
letter-spacing: .02em;
opacity: 0;
transition: opacity .15s ease-out;
line-height: 1.8
}

.frnt .outcsec-imgwrap:hover .imgover-txt {
opacity: 1
}

.frnt .outcsec-cards {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px
}

.frnt .outcsec-card {
background: #fff;
border-radius: 12px;
padding: 24px 16px;
box-shadow: 0 1px 6px -1px #be424b0f;
transition: box-shadow .15s ease-out, transform .15s ease-out
}

.frnt .outcsec-card:hover {
box-shadow: 0 4px 20px -1px #be424b17;
transform: translateY(-2px)
}

.frnt .outcsec-card-ico {
width: 32px;
height: 32px;
margin-bottom: 12px
}

.frnt .outcsec-card h5 {
font-size: 16px;
font-weight: 700;
color: #1e1e1e;
letter-spacing: .01em;
line-height: 1.2;
margin-bottom: 8px
}

.frnt .outcsec-card p {
font-size: 13px;
line-height: 1.8;
color: #555;
letter-spacing: .01em
}

.frnt .numssec {
padding: 64px 0;
background: #fff;
position: relative;
overflow: hidden
}

.frnt .numssec-bg {
position: absolute;
inset: 0;
pointer-events: none;
opacity: .03;
display: flex;
align-items: center;
justify-content: center
}

.frnt .numssec-pg {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px;
position: relative;
z-index: 1
}

.frnt .numssec-grid {
display: grid;
grid-template-columns: 1.6fr 1fr;
gap: 48px;
align-items: center
}

.frnt .numssec-left h2 {
font-size: 27px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .01em;
color: #1e1e1e;
margin-bottom: 8px
}

.frnt .numssec-left .hline {
display: block;
height: 2px;
background: linear-gradient(to right, #BE424B, transparent);
margin-bottom: 16px;
animation: drawLine .18s ease-out both
}

.frnt .numssec-left p {
font-size: 16px;
line-height: 1.8;
color: #333;
letter-spacing: .01em;
margin-bottom: 32px
}

.frnt .numssec-stats {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px
}

.frnt .numssec-stat {
padding: 16px;
border-radius: 6px;
background: #F2F2C8;
transition: background .15s ease-out;
position: relative;
overflow: hidden
}

.frnt .numssec-stat:hover {
background: #e8e8b0
}

.frnt .numssec-stat-val {
font-size: 52px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .01em;
color: #BE424B;
display: block
}

.frnt .numssec-stat-lbl {
font-size: 13px;
color: #3E6945;
letter-spacing: .02em;
line-height: 1.8;
text-transform: uppercase
}

.frnt .numssec-right {
display: grid;
grid-template-rows: auto auto;
gap: 16px
}

.frnt .numssec-imgwrap {
border-radius: 12px;
overflow: hidden;
height: 200px;
position: relative
}

.frnt .numssec-imgwrap img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform .18s ease-out
}

.frnt .numssec-imgwrap:hover img {
transform: scale(1.04)
}

.frnt .numssec-imgwrap .imgover {
position: absolute;
inset: 0;
background: #1e1e1e00;
transition: background .18s ease-out;
display: flex;
align-items: flex-end;
padding: 12px
}

.frnt .numssec-imgwrap:hover .imgover {
background: #1e1e1e94
}

.frnt .numssec-imgwrap .imgover span {
color: #fff;
font-size: 13px;
opacity: 0;
transition: opacity .15s ease-out;
letter-spacing: .01em;
line-height: 1.8
}

.frnt .numssec-imgwrap:hover .imgover span {
opacity: 1
}

.frnt .numssec-note {
background: #3E6945;
border-radius: 6px;
padding: 16px;
color: #fff;
font-size: 13px;
line-height: 1.8;
letter-spacing: .01em
}

.frnt .suppsec {
padding: 64px 0;
background: #F2F2C8;
position: relative
}

.frnt .suppsec-pg {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px
}

.frnt .suppsec-head {
text-align: center;
margin-bottom: 48px
}

.frnt .suppsec-head h2 {
font-size: 27px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .01em;
color: #1e1e1e;
margin-bottom: 8px
}

.frnt .suppsec-head .hline {
display: block;
height: 2px;
width: 80px;
background: linear-gradient(to right, #BE424B, transparent);
margin: 0 auto 16px;
animation: drawLine .18s ease-out both
}

.frnt .suppsec-head p {
font-size: 16px;
line-height: 1.8;
color: #333;
letter-spacing: .01em;
max-width: 540px;
margin: 0 auto
}

.frnt .suppsec-layout {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
align-items: start
}

.frnt .suppsec-profiles {
display: flex;
flex-direction: column;
gap: 24px
}

.frnt .suppsec-prof {
display: flex;
flex-direction: row;
gap: 16px;
align-items: flex-start;
background: #fff;
border-radius: 12px;
padding: 16px;
box-shadow: 0 1px 6px -1px #be424b0f;
transition: box-shadow .15s ease-out
}

.frnt .suppsec-prof:hover {
box-shadow: 0 4px 20px -1px #be424b17
}

.frnt .suppsec-avatar {
width: 72px;
height: 72px;
border-radius: 50%;
overflow: hidden;
flex-shrink: 0
}

.frnt .suppsec-avatar img {
width: 72px;
height: 72px;
object-fit: cover;
object-position: top;
display: block
}

.frnt .suppsec-profinfo h5 {
font-size: 16px;
font-weight: 700;
color: #1e1e1e;
letter-spacing: .01em;
line-height: 1.2;
margin-bottom: 4px
}

.frnt .suppsec-profinfo .role {
font-size: 13px;
color: #3E6945;
letter-spacing: .02em;
text-transform: uppercase;
margin-bottom: 8px
}

.frnt .suppsec-profinfo p {
font-size: 13px;
line-height: 1.8;
color: #555;
letter-spacing: .01em
}

.frnt .suppsec-right {
display: flex;
flex-direction: column;
gap: 16px
}

.frnt .suppsec-item {
background: #fff;
border-radius: 6px;
padding: 16px;
display: flex;
flex-direction: row;
gap: 12px;
align-items: flex-start;
box-shadow: 0 1px 6px -1px #be424b0f
}

.frnt .suppsec-item-ico {
flex-shrink: 0;
width: 36px;
height: 36px;
background: #F2F2C8;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center
}

.frnt .suppsec-item-ico svg {
width: 20px;
height: 20px;
stroke: #3E6945;
fill: none;
stroke-width: 1.8
}

.frnt .suppsec-item-txt h6 {
font-size: 16px;
font-weight: 700;
color: #1e1e1e;
letter-spacing: .01em;
line-height: 1.2;
margin-bottom: 4px
}

.frnt .suppsec-item-txt p {
font-size: 13px;
line-height: 1.8;
color: #555;
letter-spacing: .01em
}

.frnt .currsec {
padding: 64px 0 80px;
background: #fff;
position: relative
}

.frnt .currsec-pg {
max-width: 1100px;
margin: 0 auto;
padding: 0 16px
}

.frnt .currsec-grid {
display: grid;
grid-template-columns: 1fr 1.4fr;
gap: 48px;
align-items: start
}

.frnt .currsec-left h2 {
font-size: 27px;
font-weight: 700;
line-height: 1.2;
letter-spacing: .01em;
color: #1e1e1e;
margin-bottom: 8px
}

.frnt .currsec-left .hline {
display: block;
height: 2px;
background: linear-gradient(to right, #3E6945, transparent);
margin-bottom: 16px;
animation: drawLine .18s ease-out both
}

.frnt .currsec-left p {
font-size: 16px;
line-height: 1.8;
color: #333;
letter-spacing: .01em;
margin-bottom: 32px
}

.frnt .currsec-link {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 16px;
color: #BE424B;
font-weight: 600;
text-decoration: none;
letter-spacing: .01em;
transition: gap .15s ease-out, transform .15s ease-out
}

.frnt .currsec-link:hover {
gap: 12px;
transform: scale(1.03)
}

.frnt .currsec-link svg {
width: 18px;
height: 18px;
stroke: #BE424B;
fill: none;
stroke-width: 2
}

.frnt .currsec-right {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px
}

.frnt .currsec-tile {
border-radius: 12px;
overflow: hidden;
position: relative;
height: 180px
}

.frnt .currsec-tile.large {
grid-column: span 2;
height: 220px
}

.frnt .currsec-tile img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
transition: transform .18s ease-out
}

.frnt .currsec-tile:hover img {
transform: scale(1.04)
}

.frnt .currsec-tile .imgover {
position: absolute;
inset: 0;
background: #1e1e1e00;
display: flex;
align-items: flex-end;
padding: 16px;
transition: background .18s ease-out
}

.frnt .currsec-tile:hover .imgover {
background: #1e1e1e99
}

.frnt .currsec-tile .imgover span {
color: #fff;
font-size: 13px;
opacity: 0;
transition: opacity .15s ease-out;
letter-spacing: .01em;
line-height: 1.8
}

.frnt .currsec-tile:hover .imgover span {
opacity: 1
}

.frnt .currsec-topics {
margin-top: 32px;
display: flex;
flex-direction: column;
gap: 8px
}

.frnt .currsec-topic {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
padding: 8px 12px;
border-radius: 4px;
background: #F2F2C8;
font-size: 13px;
color: #1e1e1e;
letter-spacing: .01em;
line-height: 1.2;
transition: background .12s ease-out;
cursor: default
}

.frnt .currsec-topic:hover {
background: #e8e8b0
}

.frnt .currsec-topic-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: #BE424B;
flex-shrink: 0
}

.frnt .divider-curve {
display: block;
width: 100%;
overflow: hidden;
line-height: 0
}

.frnt .divider-curve svg {
display: block;
width: 100%
}

@media (max-width: 1024px) {
.frnt .titblk-h1 {
font-size: 40px
}

.frnt .titblk-pg {
grid-template-columns: 180px 1fr;
gap: 32px
}

.frnt .titblk-imgwrap {
width: 180px;
height: 240px
}

.frnt .outcsec-top {
grid-template-columns: 1fr;
gap: 32px
}

.frnt .outcsec-cards {
grid-template-columns: 1fr 1fr
}

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

.frnt .numssec-right {
grid-template-columns: 1fr 1fr;
grid-template-rows: auto
}

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

@media (max-width: 768px) {
.frnt .titblk-pg {
grid-template-columns: 1fr
}

.frnt .titblk-imgwrap {
width: 100%;
height: 200px
}

.frnt .titblk-h1 {
font-size: 27px
}

.frnt .suppsec-layout {
grid-template-columns: 1fr;
gap: 32px
}

.frnt .numssec-stats {
grid-template-columns: 1fr 1fr
}

.frnt .outcsec-cards {
grid-template-columns: 1fr
}

.frnt .currsec-right {
grid-template-columns: 1fr
}

.frnt .currsec-tile.large {
grid-column: span 1
}

.frnt .numssec-right {
grid-template-columns: 1fr
}
}

@media (max-width: 640px) {
.frnt .titblk {
padding: 48px 0 32px
}

.frnt .numssec-stat-val {
font-size: 40px
}

.frnt .suppsec-prof {
flex-direction: column
}
}

.successPage {
min-height: 60vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 48px 16px;
background: #fff
}

.successPage .confirmWrap {
max-width: 1100px;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: 32px
}

.successPage .iconMark {
width: 64px;
height: 64px;
flex-shrink: 0
}

.successPage .msgBlock {
display: flex;
flex-direction: column;
gap: 16px;
max-width: 520px
}

.successPage .msgBlock .pageTitle {
font-size: 52px;
line-height: 1.2;
letter-spacing: .01em;
color: #3E6945;
margin: 0;
font-weight: 700
}

.successPage .msgBlock .pageSubtitle {
font-size: 27px;
line-height: 1.2;
letter-spacing: .01em;
color: #222;
margin: 0;
font-weight: 400
}

.successPage .msgBlock .pageBody {
font-size: 16px;
line-height: 1.8;
letter-spacing: .02em;
color: #444;
margin: 0
}

.successPage .dividerLine {
width: 48px;
height: 3px;
background: #BE424B;
border-radius: 2px;
margin: 0 auto
}

.successPage .actionRow {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 16px;
justify-content: center;
align-items: center
}

.successPage .actionRow .primaryBtn {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 12px 32px;
background: #BE424B;
color: #fff;
font-size: 16px;
line-height: 1.2;
letter-spacing: .02em;
border: none;
border-radius: 6px;
cursor: pointer;
text-decoration: none;
box-shadow: 0 4px 20px -1px #be424b17;
transition: transform .15s ease-out, box-shadow .15s ease-out
}

.successPage .actionRow .primaryBtn:hover {
transform: scale(1.04);
box-shadow: 0 12px 52px -1px #be424b24
}

.successPage .actionRow .primaryBtn:focus {
outline: 2px solid #BE424B;
outline-offset: 3px
}

.successPage .actionRow .primaryBtn .btnArrow {
display: inline-block;
width: 16px;
height: 16px;
flex-shrink: 0
}

.successPage .actionRow .secondaryLink {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 16px;
line-height: 1.2;
letter-spacing: .02em;
color: #3E6945;
text-decoration: none;
border-bottom: 1px solid #3e69454d;
padding-bottom: 2px;
transition: border-color .12s ease, color .12s ease
}

.successPage .actionRow .secondaryLink:hover {
color: #BE424B;
border-color: #BE424B
}

.successPage .noticeBox {
max-width: 480px;
background: #F2F2C8;
border-radius: 12px;
padding: 16px 32px;
box-shadow: 0 1px 6px -1px #be424b0f
}

.successPage .noticeBox .noticeText {
font-size: 13px;
line-height: 1.8;
letter-spacing: .02em;
color: #3a3a2a;
margin: 0
}

.successPage .noticeBox .noticeText strong {
color: #3E6945
}

@media (max-width: 640px) {
.successPage .msgBlock .pageTitle {
font-size: 27px
}

.successPage .msgBlock .pageSubtitle {
font-size: 16px
}

.successPage .actionRow {
flex-direction: column;
align-items: stretch
}

.successPage .actionRow .primaryBtn {
justify-content: center
}

.successPage .noticeBox {
padding: 16px
}
}