

/* ======================================================
Animation
====================================================== */

.scroll-animate {
  opacity: 0;
  transform: translateX(80px);
  transition: opacity 1s ease, transform 1s ease !important;
}

.scroll-animate.is-visible {
  opacity: 1;
  transform: translateX(0);
}


/* ======================================================
ROOT LAYOUT
====================================================== */

.gs-one-track-shortcode{
display:flex;
flex-wrap:wrap;
gap:24px;
font-size:16px;
line-height:1.5;
color:#1b1e28;
border-radius:16px;
padding:18px;
--gs-accent:#ffec80;
--gs-accent-strong:#ffe45e;
--gs-border:#e6e8ec;
--gs-ink:#1b1e28;
--gs-ink-muted:#4f5b6a;
}


/* ======================================================
BREADCRUMBS / HEADER
====================================================== */

.gs-parents{
width:100%;
font-size:15px;
color:var(--gs-ink-muted);
display:flex;
flex-wrap:wrap;
gap:6px;
}

.gs-header{
width:100%;
}

.gs-header .gs-title{
font-size:32px;
line-height:1.2;
font-weight:700;
}


/* ======================================================
RESULTS
====================================================== */

.gs-results{
width:100%;
background:#ffffff;
padding:24px;
border-radius:12px;
border:1px solid #eef0f4;
box-shadow:0 6px 20px rgba(0,0,0,.04);
}

.gs-results h2{
margin:0 0 12px 0;
font-size:24px;
line-height:1.25;
}

.gs-results p{
margin:0 0 10px 0;
}

.gs-results ul,
.gs-results ol{
margin:8px 0 8px 18px;
}

.gs-results li{
margin:4px 0;
}

/* ======================================================
TARGETS
====================================================== */

.gs-targets{
width:100%;
display:flex;
flex-wrap:wrap;
gap:8px;
margin-bottom:32px;
}

.gs-targets-item{
display:inline-flex;
align-items:center;
padding:8px 14px;
border-radius:8px;
border:1px solid #e6e8ec;
font-size:14px;
background:#fff;
}

.gs-target-title-container {
display:block;
width:125px;
align-items:center;
padding:5px 14px;
border-radius:8px;
border:1px solid #e6e8ec;
font-size:12px;
margin-bottom:.75rem;
}

.gs-target-title{
font-weight:700;
}


/* ======================================================
MAIN BODY
====================================================== */

.gs-body{
/*padding-top:3rem;*/
flex:1 1 64%;
display:flex;
flex-direction:column;
gap:18px;
}

.gs-body.gs-empty{
background:#ffffff;
border:1px dashed #e6e8ec;
border-radius:12px;
padding:18px;
color:#6a7280;
}

/* ======================================================
TIMELINE ITEM
====================================================== */

.gs-one-item{
display:flex;
align-items:stretch;
gap:16px;
}


/* timeline column */

.gs-one-item-line-number{

width:56px;
min-width:56px;

display:flex;
flex-direction:column;
align-items:center;

position:relative;

}


/* вертикальная линия */

.gs-one-item-line-number::before{

content:"";

position:absolute;

top:-18px;
bottom:-18px;

width:1px;

background:repeating-linear-gradient(
to bottom,
#cfd5de,
#cfd5de 8px,
transparent 8px,
transparent 14px
);

left:50%;
transform:translateX(-50%);

}

/* first/last item trim line */
.gs-one-item--first .gs-one-item-line-number::before{
top:15px;
}

.gs-one-item--last .gs-one-item-line-number::before{
bottom:15px;
}


/* circle */

.gs-one-item-line-number > div {
	width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 25px;
    font-weight: 600;
    background: #ffffff;
    border-radius: 50%;
    border: 1px solid #e4e6ea;
    position: relative;
    z-index: 2;
}


/* start arrow */

.gs-number-start{

position:absolute;
top:-34px;

font-size:18px;

}


/* ======================================================
COURSE CARD
====================================================== */

.gs-one-item-body{

flex:1;

display:flex;
gap:20px;

background:#ffffff;
border:1px solid var(--gs-border);
border-radius:12px;

padding:18px;

transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
box-shadow:0 2px 10px rgba(0,0,0,.03);

}

.gs-card-edit {
	font-size:.7rem;
	padding-top:12px;
}


/* columns */

.gs-left,
.gs-right{
flex:1;
}


/* ======================================================
TITLE
====================================================== */

.gs-one-item-body-title{
margin-bottom:12px;
display:flex;
align-items:center;
gap:8px;
flex-wrap:wrap;
}

.gs-title-card{
line-height:1.3;
font-weight:700;
margin-bottom:6px;
font-size:20px;
color:var(--gs-ink);
}

.gs-title-card-temp-name{
line-height:1.3;
font-weight:700;
margin-bottom:6px;
font-size:20px;
color:var(--gs-ink);
width: 100%;
}


/* ======================================================
ATTRIBUTES
====================================================== */

.gs-one-item-body-data{
display:flex;
flex-wrap:wrap;
gap:6px;
margin:12px 0 8px 0;
color:#2f3742;
}

.gs-attr-level,
.gs-attr-duration,
.gs-attr-format,
.gs-attr-model,
.gs-code{

display:inline-flex;
align-items:center;

padding:4px 10px;

font-size:12px;
font-weight:500;

background:#f3f4f6;
border-radius:6px;
}


/* ======================================================
BUTTONS
====================================================== */

.gs-buttons{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:10px;
margin-top:12px;
}

.gs-attr-cost{

display:inline-flex;
align-items:baseline;
gap:6px;

padding:6px 14px;

font-size:14px;
font-weight:600;

border:1px solid #e3e3e3;
background:#f5f5f5;
border-radius:6px;

}

.gs-attr-cost-label{
font-weight:500;
color:#5b6472;
font-size:12px;
letter-spacing:.02em;
}

.gs-attr-cost-value{
font-weight:700;
}
.gs-button-course{

display:inline-flex;
align-items:center;
gap:6px;

padding:6px 14px;

border-radius:8px;

background:var(--gs-accent);
border:1px solid var(--gs-accent);

color:#1a1a1a;
text-decoration:none;

font-size:14px;
font-weight:600;

white-space:nowrap;

}

.gs-button-course:hover{
background:var(--gs-accent-strong);
border-color:var(--gs-accent-strong);
box-shadow:0 6px 16px rgba(0,0,0,.12);
transform:translateY(-1px);
}

.gs-button-course:active{
transform:translateY(0);
box-shadow:0 3px 8px rgba(0,0,0,.12);
}

.gs-button-course:focus-visible{
outline:3px solid rgba(255,228,94,.5);
outline-offset:2px;
}

.gs-cert-button {
	
}


/* ======================================================
RIGHT COLUMN
====================================================== */

.gs-right{
font-size:.8125rem;
line-height:1.6;
}

.gs-right ul{
margin-left:18px;
}

.gs-right p{
margin:0 0 10px 0;
}

.gs-right h3,
.gs-right h4{
margin:0 0 10px 0;
line-height:1.25;
}

/* ======================================================
TEXT RIGHT BLOCK
====================================================== */

.gs-txt-right{
	
font-size:.8125rem;

flex:1 1 32%;

background:#ffffff;
border-radius:12px;

padding:24px;

height:fit-content;
border:1px solid #eef0f4;
box-shadow:0 6px 20px rgba(0,0,0,.04);

}

.gs-txt-right h3{
margin-bottom:12px;
font-size:20px;
line-height:1.3;
}


/* ======================================================
CERT HERO
====================================================== */

.gs-cert-box{
    position:relative;
    margin-top:3rem;
    margin-bottom:2rem;
    border-radius:18px;
    overflow:hidden;
    background-size:cover;
    background-position:center;
    display:flex;
    align-items:center;
    padding:32px 42px;
    color:#fff;
    transition:transform .35s ease;
    background: linear-gradient(90deg, rgba(17, 23, 49, .88) 0%, rgba(17, 23, 49, .60) 35%, rgba(17, 23, 49, .25) 60%, rgba(17, 23, 49, 0) 100%);
    backdrop-filter: blur(2px);
}

/* лёгкий hover */
.gs-cert-box:hover{
    transform:scale(1.01);
}

/* ======================================================
CONTENT
====================================================== */

.gs-cert-content{

position:relative;
z-index:2;

width:100%;

display:flex;
justify-content:space-between;
align-items:center;

gap:30px;

}


/* ======================================================
LEFT SIDE
====================================================== */

.gs-cert-left{

display:flex;
align-items:center;

gap:18px;

max-width:640px;

}


/* ======================================================
ICON
====================================================== */

.gs-cert-icon{

width:64px;
height:64px;

display:flex;
align-items:center;
justify-content:center;

border-radius:12px;

background:rgba(255,255,255,.12);

backdrop-filter:blur(6px);

font-size:32px;

flex-shrink:0;

}


/* ======================================================
TEXT
====================================================== */

.gs-cert-text{
display:flex;
flex-direction:column;
}

.gs-cert-box-text{

font-size:20px;
font-weight:600;

line-height:1.35;

}


/* ======================================================
RIGHT SIDE
====================================================== */

.gs-cert-right{

display:flex;
align-items:center;

gap:16px;

flex-shrink:0;

}


/* ======================================================
BUTTON
====================================================== */

.gs-cert-button{

display:inline-flex;
align-items:center;
justify-content:center;

padding:.65em 1.6em;

border-radius:12px;

background:#ffec80;
border:1px solid #ffec80;

color:#111;

font-weight:600;
font-size:15px;

text-decoration:none;

white-space:nowrap;

transition:
transform .2s ease,
box-shadow .2s ease,
background .2s ease;

}


/* hover */

.gs-cert-button:hover{

transform:translateY(-2px);

box-shadow:
0 6px 18px rgba(0,0,0,.18),
0 10px 30px rgba(0,0,0,.12);

background:#ffe45e;

}


/* ======================================================
ADMIN EDIT
====================================================== */

.gs-cert-box .gs-card-edit{

font-size:.7rem;

opacity:.8;

}


/* ======================================================
MOBILE
====================================================== */

@media (max-width:900px){

.gs-cert-box{

aspect-ratio:3 / 1;

padding:24px;

}

.gs-cert-content{

flex-direction:column;
align-items:flex-start;

gap:16px;

}

.gs-cert-box-text{
font-size:16px;
}

}


/* ======================================================
SMALL MOBILE
====================================================== */

@media (max-width:600px){

.gs-cert-left{
gap:12px;
}

.gs-cert-icon{

width:38px;
height:38px;

font-size:16px;

}

.gs-cert-button{

font-size:14px;

padding:.55em 1.2em;

}

}


/* ======================================================
GRID (cards)
====================================================== */

.gs-one-track-shortcode .gs-grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
gap:20px;
}


/* ======================================================
GRID CARD
====================================================== */

.gs-one-track-shortcode .gs-card{
position:relative;
display:block;
aspect-ratio:1/1;

border-radius:14px;
overflow:hidden;

background-size:cover;
background-position:center;
background-color:#f5f5f5;

text-decoration:none;
color:#fff;

transition:transform .2s, box-shadow .2s;
}


.gs-one-track-shortcode .gs-card-overlay{

position:absolute;
inset:0;

background:
linear-gradient(
to bottom,
rgba(0,0,0,0) 0%,
rgba(17,23,49,.45) 60%,
rgba(17,23,49,.85) 100%
);

z-index:2;

}

.gs-one-track-shortcode .gs-card-content{
position:absolute;
left:16px;
right:16px;
bottom:16px;
z-index:3;
text-shadow:0 2px 10px rgba(0,0,0,.35);
}

/* ======================================================
SEM TARGET BLOCK
====================================================== */

.gs-sem-target{
background:#f7f8fb;
border:1px solid #eef0f4;
border-radius:12px;
padding:14px 16px;
font-size:.8125rem;
}

.gs-sem-target p{
margin:0 0 8px 0;
}

.gs-sem-target ul,
.gs-sem-target ol{
margin:8px 0 8px 18px;
}

.gs-one-track-shortcode .gs-item-title{
display:block;
font-size:18px;
font-weight:700;
line-height:1.25;
margin-bottom:4px;
}

.gs-one-track-shortcode .gs-item-descr{
display:block;
font-size:14px;
opacity:.9;
}


/* ======================================================
HOVER
====================================================== */

.gs-one-track-shortcode .gs-card:hover{

transform:translateY(-2px);

box-shadow:
0 10px 25px rgba(0,0,0,.12),
0 18px 40px rgba(0,0,0,.08);

color:#fff!important;

}

/* hover card effect */
.gs-one-item-body:hover{
transform:translateY(-2px);
box-shadow:0 10px 28px rgba(0,0,0,.08);
border-color:#dde2ea;
}

/* gentle spacing */
.gs-one-item-body .gs-left,
.gs-one-item-body .gs-right{
padding:2px 0;
}


/* ======================================================
MOBILE
====================================================== */

/* ======================================================
MOTION
====================================================== */

@keyframes gs-fade-up{
from{opacity:0; transform:translateY(10px);}
to{opacity:1; transform:translateY(0);}
}

.gs-one-track-shortcode > *{
animation:gs-fade-up .5s ease both;
}

.gs-one-track-shortcode .gs-one-item{
animation:gs-fade-up .5s ease both;
}

.gs-one-track-shortcode .gs-one-item:nth-child(1){animation-delay:.05s;}
.gs-one-track-shortcode .gs-one-item:nth-child(2){animation-delay:.10s;}
.gs-one-track-shortcode .gs-one-item:nth-child(3){animation-delay:.15s;}
.gs-one-track-shortcode .gs-one-item:nth-child(4){animation-delay:.20s;}
.gs-one-track-shortcode .gs-one-item:nth-child(5){animation-delay:.25s;}
.gs-one-track-shortcode .gs-one-item:nth-child(6){animation-delay:.30s;}

@media (prefers-reduced-motion:reduce){
    .gs-one-track-shortcode > *,
    .gs-one-track-shortcode .gs-one-item{
        animation:none;
    }
}

@media (max-width:768px){
  .gs-one-track-shortcode{
    flex-direction:column;
  }

  .gs-body,
  .gs-txt-right{
    width:100%;
    flex:none;
  }

  .gs-one-item{
    flex-direction:column;
    gap:10px;
  }

  .gs-one-item-line-number{
    width: auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: start;
  }

  .gs-one-item-line-number::before{
    display:none;
  }

  .gs-one-item-line-number > div{
    width:26px;
    height:26px;
    font-size:12px;
  }

  .gs-number-start{
    display:none;
  }

  .gs-one-item-body{
    flex-direction:column;
  }

  .gs-one-track-shortcode .gs-grid{
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
  }
}


.gs-one-track-shortcode > .gs-form {
  width: 100%;
}

.gs-one-track-shortcode > .gs-form .gs-form-body.gs-hidden {
  display: none;
}

.gs-one-track-shortcode .gs-button-form {
  padding: 6px 14px;
  border-radius: 8px;
  background: var(--gs-accent);
  border: 1px solid var(--gs-accent);
  color: #1a1a1a;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

.gs-one-track-shortcode .gs-button-form:hover {
  transform: translateY(0);
  box-shadow: 0 3px 8px rgba(0, 0, 0, .12);
}