/* ===========================================================
   Pomelo Smart Traceability Platform
   Version : 2.0
   Author  : Office of Academic Resources and IT
=========================================================== */

:root{

    --primary:#2E7D32;
    --primary-light:#43A047;
    --secondary:#66BB6A;

    --accent:#FFA726;

    --dark:#263238;
    --gray:#607D8B;

    --light:#F7FAFC;

    --white:#ffffff;

    --shadow-sm:0 5px 15px rgba(0,0,0,.05);
    --shadow:0 12px 30px rgba(0,0,0,.08);
    --shadow-lg:0 20px 45px rgba(0,0,0,.12);

    --radius:18px;

    --transition:.35s;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Poppins',sans-serif;

    background:var(--light);

    color:#444;

    line-height:1.8;

    overflow-x:hidden;

}

section{

    padding:100px 0;

}

img{

    max-width:100%;

}

a{

    text-decoration:none;

    transition:all .35s;

}

ul{

    list-style:none;

    margin:0;

    padding:0;

}

.display-4{

    font-weight:800;

}

h1{

    font-weight:800;

    color:var(--dark);

}

h2{

    font-weight:700;

    color:var(--dark);

    margin-bottom:15px;

}

h3{

    font-weight:700;

}

h4{

    font-weight:600;

}

h5{

    font-weight:600;

}

p{

    color:#666;

    font-size:16px;

}

.text-success{

    color:var(--primary)!important;

}

.container{

    max-width:1200px;

}

.btn{

    border-radius:40px;

    padding:13px 34px;

    font-weight:600;

    transition:.35s;

}

.btn-lg{

    padding:15px 42px;

}

.btn-success{

    background:var(--primary);

    border:none;

}

.btn-success:hover{

    background:#1B5E20;

    transform:translateY(-3px);

}

.btn-outline-success{

    border:2px solid var(--primary);

    color:var(--primary);

}

.btn-outline-success:hover{

    background:var(--primary);

    border-color:var(--primary);

    transform:translateY(-3px);

}

.badge{

    padding:10px 18px;

    font-size:15px;

    border-radius:30px;

}

.navbar{

    background:#fff!important;

    transition:.35s;

    padding:18px 0;

    z-index:9999;

}

.navbar.scrolled{

    padding:10px 0;

    box-shadow:var(--shadow);

}

.navbar-brand{

    font-size:22px;

    font-weight:700;

    color:var(--primary)!important;

}

.navbar-brand img{

    margin-right:10px;

}

.nav-link{

    color:#555!important;

    margin-left:18px;

    font-weight:500;

    position:relative;

}

.nav-link::after{

    content:"";

    position:absolute;

    bottom:-5px;

    left:0;

    width:0;

    height:2px;

    background:var(--primary);

    transition:.35s;

}

.nav-link:hover::after{

    width:100%;

}

.nav-link:hover{

    color:var(--primary)!important;

}

.hero{

    min-height:100vh;

    display:flex;

    align-items:center;

    position:relative;

    background:

    linear-gradient(

        rgba(255,255,255,.92),

        rgba(255,255,255,.92)

    ),

    url("../images/background.png");

    background-size:cover;

    background-position:center;

}

.hero h1{

    font-size:62px;

    line-height:1.15;

}

.hero p{

    font-size:18px;

    margin-top:25px;

}

.hero-image{

    max-width:90%;

    animation:float 5s ease-in-out infinite;

}

@keyframes float{

0%{

transform:translateY(0);

}

50%{

transform:translateY(-15px);

}

100%{

transform:translateY(0);

}

}

.section-title{

    margin-bottom:60px;

}

.section-title h2{

    font-size:42px;

}

.section-title p{

    max-width:650px;

    margin:auto;

}

.card{

    border:none;

    border-radius:20px;

    overflow:hidden;

    box-shadow:var(--shadow-sm);

    transition:.35s;

}

.card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow);

}

.card-body{

    padding:35px;

}

.rounded-xl{

    border-radius:20px;

}

.bg-light{

    background:#F8FAFC!important;

}

.bg-success{

    background:var(--primary)!important;

}

.divider{

    width:80px;

    height:4px;

    background:var(--primary);

    border-radius:20px;

    margin:20px auto;

}

.hover-up{

    transition:.35s;

}

.hover-up:hover{

    transform:translateY(-8px);

}

.shadow-soft{

    box-shadow:var(--shadow);

}

.shadow-soft-lg{

    box-shadow:var(--shadow-lg);

}

.radius{

    border-radius:20px;

}

.mt-80{

    margin-top:80px;

}

.mb-80{

    margin-bottom:80px;

}

/* ===========================================================
   HERO SLIDER
===========================================================*/

.swiper{

    border-radius:24px;

    overflow:hidden;

    box-shadow:var(--shadow-lg);

}

.swiper-pagination-bullet{

    width:14px;

    height:14px;

    opacity:1;

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

}

.swiper-pagination-bullet-active{

    background:var(--accent);

}

.slide-item{

    position:relative;

    overflow:hidden;

}

.slide-item img{

    width:100%;

    height:560px;

    object-fit:cover;

}

.slide-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(

        rgba(0,0,0,.45),

        rgba(0,0,0,.55)

    );

    display:flex;

    align-items:center;

}

.slide-content{

    max-width:600px;

    color:#fff;

    animation:fadeUp .8s;

}

.slide-content h2{

    color:#fff;

    font-size:48px;

    font-weight:700;

    margin-bottom:20px;

}

.slide-content p{

    color:#fff;

    font-size:18px;

    line-height:1.9;

}

@keyframes fadeUp{

0%{

opacity:0;

transform:translateY(40px);

}

100%{

opacity:1;

transform:translateY(0);

}

}

/* ===========================================================
   FEATURES
===========================================================*/

.feature-card{

    background:#fff;

    border-radius:22px;

    padding:45px 35px;

    text-align:center;

    height:100%;

    transition:.35s;

    box-shadow:var(--shadow-sm);

    border:1px solid #eee;

}

.feature-card:hover{

    transform:translateY(-12px);

    box-shadow:var(--shadow);

}

.feature-card h4{

    margin-top:25px;

    margin-bottom:15px;

    color:var(--dark);

}

.feature-card p{

    margin-bottom:0;

}

.feature-icon{

    width:95px;

    height:95px;

    margin:auto;

    border-radius:50%;

    background:#E8F5E9;

    display:flex;

    align-items:center;

    justify-content:center;

    transition:.35s;

}

.feature-card:hover .feature-icon{

    background:var(--primary);

}

.feature-icon i{

    font-size:42px;

    color:var(--primary);

    transition:.35s;

}

.feature-card:hover .feature-icon i{

    color:#fff;

}

.feature-card::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:100%;

    height:5px;

    background:var(--primary);

    transform:scaleX(0);

    transition:.35s;

    transform-origin:left;

}

.feature-card{

    position:relative;

    overflow:hidden;

}

.feature-card:hover::before{

    transform:scaleX(1);

}

/* ===========================================================
   WORKFLOW
===========================================================*/

.workflow-item{

    position:relative;

    padding:30px 20px;

}

.workflow-number{

    width:55px;

    height:55px;

    border-radius:50%;

    margin:auto;

    margin-bottom:25px;

    background:var(--primary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:700;

    font-size:20px;

}

.workflow-item i{

    margin-bottom:20px;

}

.workflow-item h5{

    margin-top:15px;

}

.workflow-item::after{

    content:"";

    position:absolute;

    top:58px;

    right:-50%;

    width:100%;

    height:2px;

    background:#ddd;

}

.workflow-item:last-child::after{

    display:none;

}

.workflow-item:hover .workflow-number{

    background:var(--accent);

}

.workflow-item:hover i{

    color:var(--accent)!important;

}

/* ===========================================================
   BENEFITS
===========================================================*/

.benefit-card{

    background:#fff;

    padding:45px 30px;

    border-radius:22px;

    text-align:center;

    height:100%;

    transition:.35s;

    box-shadow:var(--shadow-sm);

}

.benefit-card:hover{

    transform:translateY(-10px);

    box-shadow:var(--shadow);

}

.benefit-card h4{

    margin-bottom:20px;

}

.benefit-icon{

    width:90px;

    height:90px;

    margin:auto;

    border-radius:50%;

    background:#FFF8E1;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:25px;

}

.benefit-icon i{

    font-size:42px;

    color:var(--accent);

}

[data-aos]{

    transition-duration:.8s;

}

.hero::before{

    content:"";

    position:absolute;

    width:500px;

    height:500px;

    background:#E8F5E9;

    border-radius:50%;

    right:-180px;

    top:-150px;

    opacity:.35;

    z-index:0;

}

.hero .container{

    position:relative;

    z-index:2;

}

.text-gradient{

    background:linear-gradient(

        90deg,

        #2E7D32,

        #66BB6A

    );

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

}

@media(max-width:992px){

.hero{

text-align:center;

padding-top:130px;

}

.hero h1{

font-size:44px;

}

.hero-image{

margin-top:60px;

max-width:80%;

}

.slide-item img{

height:420px;

}

.slide-content{

padding:40px;

}

.slide-content h2{

font-size:36px;

}

.workflow-item::after{

display:none;

}

}

@media(max-width:768px){

.slide-item img{

height:320px;

}

.slide-content{

text-align:center;

}

.slide-content h2{

font-size:28px;

}

.slide-content p{

font-size:16px;

}

.feature-card{

padding:35px 25px;

}

.feature-icon{

width:75px;

height:75px;

}

.feature-icon i{

font-size:32px;

}

.hero h1{

font-size:34px;

}

}

/* ===========================================================
   STATISTICS
=========================================================== */

#statistics{

    background:linear-gradient(
        135deg,
        #2E7D32,
        #43A047
    );

    color:#fff;

    position:relative;

    overflow:hidden;

}

#statistics::before{

    content:"";

    position:absolute;

    width:550px;
    height:550px;

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

    border-radius:50%;

    top:-250px;
    right:-180px;

}

#statistics .container{

    position:relative;
    z-index:2;

}

.counter{

    font-size:62px;

    font-weight:800;

    color:#fff;

    margin-bottom:10px;

}

.counter-title{

    color:#fff;

    font-size:18px;

    opacity:.95;

    font-weight:500;

}

.stat-box{

    padding:30px 15px;

    transition:.35s;

}

.stat-box:hover{

    transform:translateY(-8px);

}

.stat-box i{

    font-size:42px;

    margin-bottom:20px;

    color:#FFF59D;

}

/* ===========================================================
   LATEST POMELOS
=========================================================== */

.latest-card{

    background:#fff;

    border-radius:20px;

    overflow:hidden;

    box-shadow:var(--shadow-sm);

    transition:.35s;

    height:100%;

}

.latest-card:hover{

    transform:translateY(-10px);

    box-shadow:var(--shadow);

}

.latest-card-header{

    background:var(--primary);

    color:#fff;

    padding:18px 25px;

}

.latest-card-header h5{

    margin:0;

    color:#fff;

}

.latest-card-body{

    padding:25px;

}

.latest-card-body p{

    margin-bottom:12px;

}

.grade{

    display:inline-block;

    padding:6px 14px;

    border-radius:30px;

    font-size:13px;

    font-weight:600;

}

.grade-AA{

    background:#E8F5E9;

    color:#2E7D32;

}

.grade-A{

    background:#FFF8E1;

    color:#F57F17;

}

.grade-B{

    background:#E3F2FD;

    color:#1565C0;

}

/* ===========================================================
   CALL TO ACTION
=========================================================== */

.cta{

    background:linear-gradient(
        135deg,
        #43A047,
        #66BB6A
    );

    border-radius:24px;

    color:#fff;

    padding:70px;

    position:relative;

    overflow:hidden;

}

.cta::before{

    content:"";

    position:absolute;

    width:420px;
    height:420px;

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

    border-radius:50%;

    right:-120px;
    top:-180px;

}

.cta h2{

    color:#fff;

    font-size:42px;

}

.cta p{

    color:#fff;

    opacity:.95;

    margin-top:20px;

}

.cta .btn{

    margin-top:25px;

}

/* ===========================================================
   FOOTER
=========================================================== */

footer{

    background:#1E293B;

    color:#CBD5E1;

    padding-top:80px;

}

footer h4{

    color:#fff;

    margin-bottom:25px;

}

footer p{

    color:#CBD5E1;

}

footer ul{

    padding:0;

}

footer li{

    margin-bottom:12px;

}

footer a{

    color:#CBD5E1;

}

footer a:hover{

    color:#fff;

}

.footer-logo{

    font-size:28px;

    font-weight:700;

    color:#fff;

}

.footer-social{

    margin-top:25px;

}

.footer-social a{

    width:45px;

    height:45px;

    border-radius:50%;

    display:inline-flex;

    justify-content:center;

    align-items:center;

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

    margin-right:10px;

    color:#fff;

    transition:.35s;

}

.footer-social a:hover{

    background:var(--primary);

    transform:translateY(-4px);

}

.footer-bottom{

    margin-top:60px;

    border-top:1px solid rgba(255,255,255,.08);

    padding:25px 0;

    text-align:center;

}

/* ===========================================================
   BACK TO TOP
=========================================================== */

.back-top{

    position:fixed;

    right:30px;

    bottom:30px;

    width:52px;

    height:52px;

    background:var(--primary);

    color:#fff;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:22px;

    box-shadow:var(--shadow);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:999;

}

.back-top.active{

    opacity:1;

    visibility:visible;

}

.back-top:hover{

    background:#1B5E20;

    color:#fff;

}

.section-gray{

    background:#F8FAFC;

}

.section-white{

    background:#fff;

}

.image-shadow{

    box-shadow:var(--shadow-lg);

    border-radius:20px;

}

.zoom{

    overflow:hidden;

    border-radius:20px;

}

.zoom img{

    transition:.5s;

}

.zoom:hover img{

    transform:scale(1.08);

}

.text-white p{

    color:#fff;

}

.radius-lg{

    border-radius:24px;

}

.radius-xl{

    border-radius:30px;

}

.shadow-hover{

    transition:.35s;

}

.shadow-hover:hover{

    box-shadow:var(--shadow);

}

@media(max-width:992px){

.counter{

font-size:48px;

}

.cta{

padding:45px;

text-align:center;

}

.cta h2{

font-size:34px;

}

footer{

text-align:center;

}

.footer-social{

justify-content:center;

}

}

@media(max-width:768px){

.counter{

font-size:38px;

}

.cta{

padding:35px 25px;

}

.cta h2{

font-size:28px;

}

.latest-card{

margin-bottom:20px;

}

.back-top{

right:20px;

bottom:20px;

}

}

/* ===========================================================
   FORM
=========================================================== */

.form-control,
.form-select{

    border-radius:12px;

    border:1px solid #dee2e6;

    padding:12px 16px;

    transition:.3s;

    box-shadow:none;

}

.form-control:focus,
.form-select:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 .2rem rgba(46,125,50,.15);

}

.form-label{

    font-weight:600;

    color:var(--dark);

}

/* ===========================================================
   LOGIN
=========================================================== */

.login-section{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    background:linear-gradient(
        135deg,
        #E8F5E9,
        #F8FAFC
    );

}

.login-card{

    width:100%;

    max-width:460px;

    background:#fff;

    border-radius:24px;

    box-shadow:var(--shadow-lg);

    padding:45px;

}

.login-logo{

    width:90px;

    margin:auto;

    display:block;

    margin-bottom:25px;

}

.login-title{

    text-align:center;

    margin-bottom:35px;

}

/* ===========================================================
   TABLE
=========================================================== */

.table{

    border-radius:18px;

    overflow:hidden;

    background:#fff;

}

.table thead{

    background:var(--primary);

    color:#fff;

}

.table thead th{

    border:none;

    padding:16px;

}

.table tbody td{

    vertical-align:middle;

    padding:15px;

}

.table-hover tbody tr:hover{

    background:#F1F8E9;

}

/* ===========================================================
   DASHBOARD
=========================================================== */

.dashboard-card{

    background:#fff;

    border-radius:20px;

    box-shadow:var(--shadow-sm);

    padding:30px;

    transition:.3s;

}

.dashboard-card:hover{

    transform:translateY(-6px);

    box-shadow:var(--shadow);

}

.dashboard-icon{

    width:65px;

    height:65px;

    border-radius:50%;

    background:#E8F5E9;

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:20px;

}

.dashboard-icon i{

    font-size:30px;

    color:var(--primary);

}

/* ===========================================================
   ALERT
=========================================================== */

.alert{

    border:none;

    border-radius:15px;

}

/* ===========================================================
   PAGINATION
=========================================================== */

.pagination .page-link{

    color:var(--primary);

    border-radius:10px;

    margin:0 3px;

    border:none;

}

.pagination .page-item.active .page-link{

    background:var(--primary);

    color:#fff;

}

/* ===========================================================
   MODAL
=========================================================== */

.modal-content{

    border:none;

    border-radius:20px;

    overflow:hidden;

}

.modal-header{

    background:var(--primary);

    color:#fff;

}

.modal-header .btn-close{

    filter:invert(1);

}

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

.timeline{

    position:relative;

}

.timeline::before{

    content:"";

    position:absolute;

    left:20px;

    top:0;

    width:3px;

    height:100%;

    background:#ddd;

}

.timeline-item{

    position:relative;

    padding-left:60px;

    margin-bottom:40px;

}

.timeline-item::before{

    content:"";

    position:absolute;

    left:12px;

    width:18px;

    height:18px;

    border-radius:50%;

    background:var(--primary);

}

/* ===========================================================
   ANIMATION
=========================================================== */

.fade-up{

    animation:fadeUp .7s;

}

.fade-in{

    animation:fadeIn .8s;

}

@keyframes fadeIn{

0%{

opacity:0;

}

100%{

opacity:1;

}

}

/* ===========================================================
   SCROLLBAR
=========================================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#ECEFF1;

}

::-webkit-scrollbar-thumb{

    background:#90A4AE;

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--primary);

}

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

::selection{

    background:var(--primary);

    color:#fff;

}

/* ===========================================================
   LOADER
=========================================================== */

.spinner-primary{

    width:55px;

    height:55px;

    border:6px solid #ddd;

    border-top:6px solid var(--primary);

    border-radius:50%;

    animation:spin 1s linear infinite;

}

@keyframes spin{

100%{

transform:rotate(360deg);

}

}

/* ===========================================================
   UTILITIES
=========================================================== */

.radius-10{

    border-radius:10px;

}

.radius-15{

    border-radius:15px;

}

.radius-20{

    border-radius:20px;

}

.radius-30{

    border-radius:30px;

}

.shadow-none{

    box-shadow:none!important;

}

.bg-primary-soft{

    background:#E8F5E9;

}

.text-gray{

    color:#607D8B;

}

.fw-500{

    font-weight:500;

}

.fw-600{

    font-weight:600;

}

.fw-700{

    font-weight:700;

}

/* ===========================================================
   PRINT
=========================================================== */

@media print{

.navbar,
footer,
.back-top,
.btn{

display:none!important;

}

body{

background:#fff;

}

section{

padding:20px 0;

}

}

/* ===========================================================
   RESPONSIVE
=========================================================== */

@media(max-width:1200px){

.container{

max-width:960px;

}

}

@media(max-width:992px){

section{

padding:80px 0;

}

.display-4{

font-size:3rem;

}

.navbar-nav{

padding-top:20px;

}

.nav-link{

margin-left:0;

padding:10px 0;

}

.login-card{

padding:35px;

}

}

@media(max-width:768px){

section{

padding:70px 0;

}

.display-4{

font-size:2.3rem;

}

.section-title h2{

font-size:2rem;

}

.counter{

font-size:42px;

}

.dashboard-card{

margin-bottom:20px;

}

.table{

font-size:14px;

}

.login-card{

padding:25px;

}

}

@media(max-width:576px){

.hero{

padding-top:120px;

}

.hero h1{

font-size:2rem;

}

.hero p{

font-size:15px;

}

.btn{

width:100%;

margin-bottom:10px;

}

.slide-content{

padding:20px;

}

.slide-content h2{

font-size:24px;

}

.feature-card{

padding:25px;

}

.cta{

padding:30px 20px;

}

.footer-logo{

font-size:22px;

}

}

/* Language Toggle */

.form-check-input{
    cursor:pointer;
}

.form-check-input:checked{
    background-color:#198754;
    border-color:#198754;
}

.form-check-input{
    width:2.2rem;
    height:1.2rem;
}

.form-check-label{
    font-size:.85rem;
}

.lang-switch{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:14px;
    font-weight:600;
}

.switch{
    position:relative;
    display:inline-block;
    width:34px;
    height:18px;
    margin:0;
}

.switch input{
    display:none;
}

.slider{
    position:absolute;
    inset:0;
    background:#d5d5d5;
    border-radius:20px;
    transition:.3s;
    cursor:pointer;
}

.slider:before{
    position:absolute;
    content:"";
    width:14px;
    height:14px;
    left:2px;
    top:2px;
    background:white;
    border-radius:50%;
    transition:.3s;
}

.switch input:checked + .slider{
    background:#198754;
}

.switch input:checked + .slider:before{
    transform:translateX(16px);
}