/* ==========================================================
   Step Showcase
   ========================================================== */

:root{

    --step-primary:#2563eb;
    --step-title:#111827;
    --step-text:#64748b;

    --step-bg:#f8fafc;

    --step-dot:#d1d5db;

}

/* ==========================================================
   Container
   ========================================================== */

.step-showcase{

    position:relative;

    width:min(1100px, calc(100% - 40px));

    margin:80px auto;

}

/* ==========================================================
   Slides
   ========================================================== */

.step-slides{

    position:relative;

}

.step-slide{

    display:none;

    animation:stepFade .35s ease;

}

.step-slide.active{

    display:block;

}

/* ==========================================================
   Image
   ========================================================== */

.step-image{

    position:relative;

    height:520px;

    display:flex;

    justify-content:center;

    align-items:center;

    background:var(--step-bg);

    border-radius:18px;

}

.step-image img{

    max-width:92%;

    max-height:92%;

    width:auto;

    height:auto;

    display:block;

    object-fit:contain;

    user-select:none;

    -webkit-user-drag:none;

}

/* ==========================================================
   Arrow
   ========================================================== */

.step-arrow{

    position:absolute;

    top:260px;

    transform:translateY(-50%);

    width:48px;

    height:48px;

    border:none;

    border-radius:999px;

    background:rgba(255,255,255,.9);

    backdrop-filter:blur(10px);

    box-shadow:0 4px 20px rgba(0,0,0,.08);

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    transition:.25s;

    z-index:10;

}

.step-arrow:hover{

    transform:translateY(-50%) scale(1.05);

}

.step-arrow svg{

    width:20px;

    height:20px;

    stroke:#374151;

    stroke-width:2.5;

    fill:none;

}

.step-prev{

    left:-24px;

}

.step-next{

    right:-24px;

}

.step-arrow.hidden{

    opacity:0;

    visibility:hidden;

    pointer-events:none;

}

/* ==========================================================
   Content
   ========================================================== */

.step-content{

    text-align:center;

    margin-top:36px;

}

.step-badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:6px 18px;

    border-radius:999px;

    background:#eff6ff;

    color:var(--step-primary);

    font-size:.95rem;

    font-weight:750;

    letter-spacing:2px;

}

.step-title{

    margin-top:18px;

    font-size:2rem;

    font-weight:700;

    color:var(--step-title);

    line-height:1.35;

}

.step-desc{

    margin-top:14px;

    max-width:760px;

    margin-left:auto;

    margin-right:auto;

    color:var(--step-text);

    font-size:1rem;

    line-height:1.8;

}

/* ==========================================================
   Dots
   ========================================================== */

.step-dots{

    display:flex;

    justify-content:center;

    gap:10px;

    margin-top:30px;

}

.step-dot{

    width:10px;

    height:10px;

    border:none;

    border-radius:50%;

    background:var(--step-dot);

    cursor:pointer;

    transition:.25s;

}

.step-dot.active{

    width:34px;

    border-radius:999px;

    background:var(--step-primary);

}

/* ==========================================================
   Animation
   ========================================================== */

@keyframes stepFade{

    from{

        opacity:0;

    }

    to{

        opacity:1;

    }

}

/* ==========================================================
   Tablet
   ========================================================== */

@media (max-width:991px){

.step-image{

    height:430px;

}

.step-prev{

    left:8px;

}

.step-next{

    right:8px;

}

.step-title{

    font-size:1.7rem;

}

}

/* ==========================================================
   Mobile
   ========================================================== */

@media (max-width:768px){

.step-showcase{

    width:calc(100% - 24px);

    margin:60px auto;

}

.step-image{

    height:300px;

    border-radius:14px;

}

.step-image img{

    max-width:95%;

    max-height:95%;

}

.step-arrow{

    width:42px;

    height:42px;

    top:150px;

}

.step-arrow svg{

    width:18px;

    height:18px;

}

.step-content{

    margin-top:24px;

}

.step-badge{

    font-size:.75rem;

    padding:5px 14px;

}

.step-title{

    font-size:1.4rem;

}

.step-desc{

    font-size:.95rem;

    line-height:1.7;

}

.step-dot{

    width:8px;

    height:8px;

}

.step-dot.active{

    width:24px;

}

}

/* ==========================================================
   Reduce Motion
   ========================================================== */

@media (prefers-reduced-motion:reduce){

.step-slide,

.step-arrow,

.step-dot{

    animation:none;

    transition:none;

}

}

/* ==========================================================
   button
   ========================================================== */
.ui-label{
    display:inline-flex;
    align-items:center;

    padding:.18em .65em;

    margin:0 .15em;

    border:1px solid #d7dce3;

    border-radius:6px;

    background:#f8fafc;

    color:#334155;

    font-size:.92em;

    font-weight:600;

    line-height:1.4;

    white-space:nowrap;

    vertical-align:middle;
}

.ui-label:hover{

    background:#f1f5f9;

}

/* ==========================================================
   Guide Box
   ========================================================== */

.guide-box{

    margin:40px 0;

    padding:24px 28px;

    border:2px solid #dde7f0;

    border-radius:14px;

    background:#fff;

}

/* ==========================================================
   Guide Item
   ========================================================== */

.guide-item{

    padding:8px 0;

}

.guide-item:not(:last-child){

    border-bottom:1px;

}

.guide-border-dashed{
    padding-bottom:18px;
    margin-bottom:18px;
    border-bottom:1px dashed #d9e5f4;
}

.guide-border-solid{
    padding-bottom:18px;
    margin-bottom:18px;
    border-bottom:1px solid #d9e5f4;
}

/* ==========================================================
   Header
   ========================================================== */

.guide-head{

    display:grid;

    grid-template-columns:88px 1fr;

    column-gap:14px;

    align-items:start;

}

/* ==========================================================
   Tag
   ========================================================== */

.guide-tag{

    display:inline-flex;

    justify-content:center;

    align-items:center;

    padding:5px 10px;

    border-radius:999px;

    background:#007bff;

    color:#fff;

    font-size:.82rem;

    font-weight:700;

    letter-spacing:.5px;

    line-height:1.2;

    white-space:nowrap;

}

/* ==========================================================
   Guide Label
   ========================================================== */

.guide-label{

    display:inline-block;

    padding-left:12px;

    border-left:4px solid #22c55e;

    font-size:1rem;

    font-weight:700;

    color:#237a4b;

    line-height:1.5;

    margin-bottom:12px;

}

.guide-label::before{

    content:"";

    width:8px;

    height:8px;

    border-radius:50%;

    background:#22c55e;

    flex-shrink:0;

}



/* ==========================================================
   Title
   ========================================================== */

.guide-title{

    font-size:1rem;

    font-weight:700;

    color:#1f2937;

    line-height:1.9;

}

/* ==========================================================
   Body
   ========================================================== */

.guide-body{

    margin-top:12px;

    padding-left:102px;

}

.guide-body p{

    margin:0;

    color:#6b7280;

    font-size:.95rem;

    line-height:1.9;

}

.guide-body p + p{

    margin-top:10px;

}

/* ==========================================================
   Mobile
   ========================================================== */

@media (max-width:768px){

.guide-box{

    padding:18px;

    border-radius:12px;

}

.guide-item{

    padding:12px 0;

}

.guide-head{

    display:block;

}

.guide-tag{

    display:inline-flex;

    vertical-align:middle;

    margin-right:8px;

}

.guide-title{

    display:inline;

}

.guide-body{

    margin-top:10px;

    padding-left:0;

}

.guide-body p{

    font-size:.92rem;

    line-height:1.8;

}

}

.guide-box p{

    margin:0;

}

.guide-box p + p{
    margin-top:10px;
}

.guide-box-note{

    background:#fffdf6;

    border:1px solid #f3dfaa;

}

.guide-note-title{

    margin:0 0 10px;

    font-size:1rem;

    font-weight:700;

    color:#9a6700;

}