/* =====================================================
   PROTEIN CALCULATOR
===================================================== */

.tpc-calculator{
    padding:80px 0 120px;
}

.tpc-front-page-h2{
    font-size: clamp(2rem,3vw,3rem);
    font-weight:800;
    line-height:1.1;
    color:#1f2b3d;
    text-align:center;
    margin:0;
    letter-spacing:-0.03em;
}

.tpc-front-page-subtitle{
    max-width:700px;
    margin:1rem auto 4rem;
    text-align:center;
    color:#667085;
    font-size:1.1rem;
    line-height:1.7;
}
/* ==========================================
   GRID
========================================== */

.tpc-calculator-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:35px;
    align-items:start;
}


/* ==========================================
   CARDS
========================================== */

.tpc-calculator-card,
.tpc-preview-card{

    background:#fff;

    border-radius:24px;

    padding:40px;

    box-shadow:
    0 18px 45px rgba(15,23,42,.08);

}

.tpc-preview-card{

    position:sticky;

    top:110px;

    background:#F0FDF4;

    border:1px solid #D8F3DC;

}


/* ==========================================
   HEADER
========================================== */

.tpc-card-header{

    margin-bottom:35px;

}

.tpc-card-header h2{

    font-size:38px;

    font-weight:800;

    color:#1E293B;

    margin-bottom:12px;

}

.tpc-card-header p{

    color:#64748B;

    font-size:18px;

}


/* ==========================================
   LABELS
========================================== */

.tpc-input-group{

    margin-bottom:24px;

}

.tpc-input-group label{

    display:block;

    margin-bottom:10px;

    font-weight:700;

    color:#334155;

}


/* ==========================================
   INPUTS
========================================== */

.tpc-input-group input,
.tpc-input-group select{

    width:100%;

    height:60px;

    padding:0 18px;

    border:1px solid #E2E8F0;

    border-radius:16px;

    background:#fff;

    font-size:16px;

    transition:.25s;

    outline:none;

}

.tpc-input-group input:focus,
.tpc-input-group select:focus{

    border-color:#166534;

    box-shadow:0 0 0 4px rgba(22,101,52,.12);

}


/* ==========================================
   ROWS
========================================== */

.tpc-form-row{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:18px;

}


/* ==========================================
   DIVIDERS
========================================== */

.tpc-divider{

    margin:40px 0 25px;

    font-size:13px;

    font-weight:700;

    letter-spacing:1px;

    text-transform:uppercase;

    color:#94A3B8;

    position:relative;

}

.tpc-divider:after{

    content:"";

    position:absolute;

    left:0;

    bottom:-10px;

    width:100%;

    height:1px;

    background:#EDF2F7;

}


/* ==========================================
   GOAL BUTTONS
========================================== */

.tpc-goals{

    display:flex;

    gap:12px;

}

.goal-btn{

    flex:1;

    height:58px;

    border:none;

    border-radius:16px;

    background:#F1F5F9;

    color:#475569;

    font-weight:700;

    cursor:pointer;

    transition:.25s;

}

.goal-btn:hover{

    background:#DCFCE7;

    color:#166534;

}

.goal-btn.active{

    background:#166534;

    color:#fff;

}


/* ==========================================
   TOGGLE BUTTONS
========================================== */

.tpc-toggle{

    display:flex;

    gap:8px;

}

.tpc-toggle button{

    flex:1;

    height:60px;

    border:none;

    border-radius:16px;

    background:#F1F5F9;

    font-weight:700;

    cursor:pointer;

    transition:.25s;

}

.tpc-toggle button.active{

    background:#166534;

    color:#fff;

}


/* ==========================================
   CALCULATE BUTTON
========================================== */

.tpc-calculate{

    width:100%;

    height:66px;

    margin-top:35px;

    border:none;

    border-radius:18px;

    background:#166534;

    color:#fff;

    font-size:18px;

    font-weight:700;

    cursor:pointer;

    transition:.3s;

}

.tpc-calculate:hover{

    transform:translateY(-2px);

    background:#14532D;

}


/* ==========================================
   PREVIEW
========================================== */

.tpc-preview-badge{

    display:inline-block;

    padding:8px 18px;

    background:#DCFCE7;

    color:#166534;

    border-radius:100px;

    font-size:13px;

    font-weight:700;

    margin-bottom:22px;

}

.tpc-preview-card h3{

    font-size:30px;

    margin-bottom:25px;

}

.tpc-preview-number{

    font-size:72px;

    font-weight:800;

    color:#166534;

    margin-bottom:10px;

}

.tpc-preview-card p{

    color:#64748B;

    margin-bottom:35px;

}


/* ==========================================
   MEALS
========================================== */

.tpc-meals{

    display:flex;

    flex-direction:column;

    gap:16px;

    margin-bottom:35px;

}

.tpc-meals div{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px;

    border-radius:14px;

    background:#fff;

}

.tpc-meals strong{

    color:#166534;

}


/* ==========================================
   NOTE
========================================== */

.tpc-note{

    padding:18px;

    border-radius:16px;

    background:#DCFCE7;

    color:#166534;

    line-height:1.6;

    font-size:15px;

}

/* ==========================================
   RESULT SECTIONS
========================================== */

.tpc-result-section{

    margin-top:30px;
    padding-top:25px;
    border-top:1px solid rgba(255,255,255,.12);

}

.tpc-result-section h4{

    color: black;
    font-size:1rem;
    margin-bottom:18px;
    font-weight:700;

}

.tpc-result-row{

    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:14px;

}

.tpc-result-row span{

    color:black;

}

.tpc-result-row strong{

    color:#166534;
    font-weight:700;

}

.tpc-error-message{

    display:none;
    color:#ef4444;
    font-size:.95rem;
    margin:15px 0;

}

/* Feet + Inches */

.tpc-feet-inputs{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:16px;

    margin-top:16px;

}

.tpc-feet-inputs input{

    width:100%;

}


/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:992px){

    .tpc-calculator-grid{

        grid-template-columns:1fr;

    }

    .tpc-preview-card{

        position:relative;

        top:0;

    }

}


@media(max-width:768px){

    .tpc-goals{

        flex-direction:column;

    }

    .tpc-form-row{

        grid-template-columns:1fr;

    }

    .tpc-card-header h2{

        font-size:30px;

    }

    .tpc-preview-number{

        font-size:52px;

    }

    .tpc-calculator-card,
    .tpc-preview-card{

        padding:25px;

    }

}