﻿/* ================================
   Custom Home Override
   مسیر پیشنهادی:
   /siteRefrence/assets/css/custom-home.css
================================ */

/* ---------- General ---------- */
img {
    max-width: 100%;
}

.section-title {
    margin-bottom: 45px;
}

    .section-title h2 {
        line-height: 1.6;
    }

    .section-title p {
        max-width: 720px;
        margin-left: auto;
        margin-right: auto;
        line-height: 2;
    }

.default-btn {
    white-space: nowrap;
}

/* ---------- LazyLoad ---------- */
.lazyload,
.lazyloading {
    opacity: 0;
    transition: opacity .35s ease;
}

.lazyloaded {
    opacity: 1;
}

/* ---------- Header Fix ---------- */
.header-area.fixed-top {
    z-index: 999;
}

/* ---------- Home Slider ---------- */
.slider-area-five .slider-item {
    min-height: 987px;
    position: relative;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}

    .slider-area-five .slider-item::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, .18);
        z-index: 1;
        display:none;
    }

    .slider-area-five .slider-item .d-table {
        position: relative;
        z-index: 2;
    }

.slider-area-five .slider-text {
    max-width: 720px;
}

    .slider-area-five .slider-text span {
        display: inline-block;
        margin-bottom: 15px;
    }

    .slider-area-five .slider-text h1,
    .slider-area-five .slider-text h2 {
        line-height: 1.7;
    }

    .slider-area-five .slider-text p {
        line-height: 2;
        max-width: 650px;
    }
/* ---------- Home Slider Images ---------- */
.slider-area-five .slider-item {
    overflow: hidden;
    position: relative;
}

.slider-area-five .slider-item {
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: cover !important;
}

/* جلوگیری از کشیدگی تصویر */
.slider-area-five .owl-item {
    transform: translate3d(0, 0, 0);
}

/* متن اسلاید اول */
.slider-area-five .slider-text.one {
    max-width: 760px;
    margin: auto;
    text-align: center;
}

    .slider-area-five .slider-text.one h1 {
        line-height: 1.6;
        margin-bottom: 22px;
    }

    .slider-area-five .slider-text.one p {
        line-height: 2.1;
        max-width: 650px;
        margin: 0 auto 28px;
    }

/* دکمه CTA */
.slider-area-five .slider-btn .default-btn {
    min-width: 180px;
    border-radius: 10px;
}

/* موبایل */
@media (max-width: 767px) {

    .slider-area-five .slider-item {
        min-height: 500px;
    }

    .slider-area-five .slider-text.one h1 {
        font-size: 28px;
    }

    .slider-area-five .slider-text.one p {
        font-size: 14px;
    }
}
/* ---------- About / Video ---------- */
.computer-area .computer-img {
    min-height: 520px;
    border-radius: 18px;
    overflow: hidden;
}

.computer-content p {
    line-height: 2.1;
}

.computer-content ul li {
    line-height: 2;
}

/* ---------- Shared Card Fix ---------- */
.home-service-card,
.home-project-card,
.single-team,
.single-news {
    height: 100%;
}

.home-services-carousel .owl-stage,
.home-projects-carousel .owl-stage,
.home-team-carousel .owl-stage,
.home-news-carousel .owl-stage {
    display: flex;
}

.home-services-carousel .owl-item,
.home-projects-carousel .owl-item,
.home-team-carousel .owl-item,
.home-news-carousel .owl-item {
    display: flex;
}

    .home-services-carousel .owl-item > *,
    .home-projects-carousel .owl-item > *,
    .home-team-carousel .owl-item > *,
    .home-news-carousel .owl-item > * {
        width: 100%;
    }

/* ---------- Services ---------- */
/* ---------- Services Section ---------- */

.home-services-section .single-product-box {
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    transition: all .25s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .05);
    height: 100%;
    display: flex;
    flex-direction: column;
}

    .home-services-section .single-product-box:hover {
        transform: translateY(-5px);
    }

/* عکس خدمت */
.home-services-section .product-image {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
    background: #f7f7f7;
    flex-shrink: 0;
}

    .home-services-section .product-image a {
        display: block;
        width: 100%;
        height: 100%;
    }

    .home-services-section .product-image img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .4s ease;
    }

/* افکت هاور عکس */
.home-services-section .single-product-box:hover .product-image img {
    transform: scale(1.05);
}

/* محتوا */
.home-services-section .product-content {
    padding: 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
    text-align: center;
}

    .home-services-section .product-content h3 {
        line-height: 1.8;
        min-height: 64px;
        margin-bottom: 12px;
        font-size: 22px;
    }

        .home-services-section .product-content h3 a {
            color: #0e1b4d;
        }

    .home-services-section .product-content p {
        line-height: 2;
        min-height: 88px;
        color: #666;
        margin-bottom: 20px;
    }

    /* لینک مشاهده */
    .home-services-section .product-content .read-more {
        margin-top: auto;
        font-weight: 600;
    }

/* Owl Fix */
.home-services-carousel .owl-stage {
    display: flex;
}

.home-services-carousel .owl-item {
    display: flex;
    height: auto;
}

    .home-services-carousel .owl-item > div {
        width: 100%;
    }

/* موبایل */
@media (max-width: 991px) {

    .home-services-section .product-image {
        height: 240px;
    }

    .home-services-section .product-content h3 {
        min-height: auto;
    }

    .home-services-section .product-content p {
        min-height: auto;
    }
}

@media (max-width: 575px) {

    .home-services-section .product-image {
        height: 210px;
    }

    .home-services-section .product-content {
        padding: 18px;
    }

        .home-services-section .product-content h3 {
            font-size: 20px;
        }
}


/* ---------- Projects Section ---------- */

.home-projects-section {
    overflow: hidden;
}

    .home-projects-section .home-project-card {
        height: 100%;
        background: #fff;
        border-radius: 18px;
        overflow: hidden;
        box-shadow: 0 10px 30px rgba(0, 0, 0, .06);
        display: flex;
        flex-direction: column;
        transition: all .25s ease;
    }

        .home-projects-section .home-project-card:hover {
            transform: translateY(-5px);
        }

    .home-projects-section .home-project-image {
        display: block;
        width: 100%;
        height: 280px;
        overflow: hidden;
        background: #f7f7f7;
        flex-shrink: 0;
    }

        .home-projects-section .home-project-image img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform .4s ease;
        }

    .home-projects-section .home-project-card:hover .home-project-image img {
        transform: scale(1.05);
    }

    .home-projects-section .home-project-content {
        padding: 22px;
        flex: 1;
        display: flex;
        flex-direction: column;
        text-align: center;
        direction: rtl;
    }

    .home-projects-section .home-project-client {
        display: block;
        color: #0066d9;
        font-size: 14px;
        font-weight: 600;
        margin-bottom: 8px;
    }

    .home-projects-section .home-project-content h3 {
        line-height: 1.8;
        margin-bottom: 12px;
        font-size: 22px;
        min-height: 64px;
    }

        .home-projects-section .home-project-content h3 a {
            color: #0e1b4d;
        }

    .home-projects-section .home-project-content p {
        line-height: 2;
        color: #666;
        margin-bottom: 20px;
        min-height: 78px;
    }

    .home-projects-section .home-project-content .read-more {
        margin-top: auto;
        font-weight: 600;
    }

/* Owl Fix */
.home-projects-carousel .owl-stage {
    display: flex;
}

.home-projects-carousel .owl-item {
    display: flex;
    height: auto;
}

    .home-projects-carousel .owl-item > div {
        width: 100%;
    }

/* Responsive */
@media (max-width: 991px) {
    .home-projects-section .home-project-image {
        height: 240px;
    }

    .home-projects-section .home-project-content h3,
    .home-projects-section .home-project-content p {
        min-height: auto;
    }
}

@media (max-width: 575px) {
    .home-projects-section .home-project-image {
        height: 210px;
    }

    .home-projects-section .home-project-content {
        padding: 18px;
    }

        .home-projects-section .home-project-content h3 {
            font-size: 20px;
        }
}

/* ---------- CTA ---------- */
.home-cta-section {
    position: relative;
    overflow: hidden;
}

    .home-cta-section::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, .48);
        z-index: 1;
    }

    .home-cta-section .container {
        position: relative;
        z-index: 2;
    }

    .home-cta-section h2,
    .home-cta-section p {
        color: #fff;
    }

    .home-cta-section p {
        line-height: 2;
    }

/* ---------- Team ---------- */
.home-team-section .single-team {
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    padding-bottom: 20px;
    transition: all .25s ease;
}

    .home-team-section .single-team:hover {
        transform: translateY(-5px);
    }

    .home-team-section .single-team img {
        width: 100%;
        height: 320px;
        object-fit: inherit;
    }

    .home-team-section .single-team h3 {
        line-height: 1.7;
    }

    .home-team-section .single-team p {
        padding: 0 15px;
        line-height: 2;
        font-size: 14px;
    }

/* ---------- News ---------- */
.home-news-section .single-news {
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
}

    .home-news-section .single-news > a img {
        width: 100%;
        height: 250px;
        object-fit: cover;
    }

.home-news-section .news-content {
    min-height: 280px;
}

    .home-news-section .news-content h3 {
        line-height: 1.7;
    }

    .home-news-section .news-content p {
        line-height: 2;
    }

/* ---------- Appointment ---------- */
.appointment-area .contact-wrap,
.appointment-area .appointment-content {
    border-radius: 18px;
}

.appointment-area input,
.appointment-area textarea {
    direction: rtl;
    text-align: right;
}

.appointment-area .appointment-content p {
    line-height: 2;
}

/* ---------- Owl Controls ---------- */
.owl-theme .owl-nav {
    margin-top: 25px;
}

    .owl-theme .owl-nav [class*="owl-"] {
        border-radius: 50%;
        width: 42px;
        height: 42px;
        line-height: 38px;
        font-size: 24px;
    }

.owl-theme .owl-dots {
    margin-top: 18px;
}

    .owl-theme .owl-dots .owl-dot span {
        width: 11px;
        height: 11px;
    }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
    .slider-area-five .slider-item {
        min-height: 680px;
    }

    .home-team-section .single-team img {
        height: 280px;
    }
}

@media (max-width: 991px) {
    .slider-area-five .slider-item {
        min-height: 620px;
    }

    .slider-area-five .slider-text {
        max-width: 100%;
        text-align: center;
    }

    .computer-area .computer-img {
        min-height: 380px;
        margin-bottom: 30px;
    }

    .home-services-section .product-image,
    .home-projects-section .gallery-image,
    .home-news-section .single-news > a img {
        height: 230px;
    }

    .home-cta-section {
        text-align: center;
    }

        .home-cta-section .default-btn {
            margin-top: 20px;
        }
}

@media (max-width: 767px) {
    .ptb-100 {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    .pt-100 {
        padding-top: 60px;
    }

    .pb-70 {
        padding-bottom: 40px;
    }

    .section-title {
        margin-bottom: 30px;
    }

        .section-title h2 {
            font-size: 24px;
        }

    .slider-area-five .slider-item {
        min-height: 560px;
    }

    .slider-area-five .slider-text h1,
    .slider-area-five .slider-text h2 {
        font-size: 28px;
    }

    .slider-area-five .slider-text p {
        font-size: 15px;
    }

    .computer-area .computer-img {
        min-height: 300px;
    }

    .home-services-section .product-image,
    .home-projects-section .gallery-image,
    .home-news-section .single-news > a img {
        height: 210px;
    }

    .home-services-section .product-content h3,
    .home-services-section .product-content p,
    .home-projects-section .gallery-content,
    .home-news-section .news-content {
        min-height: auto;
    }

    .home-team-section .single-team img {
        height: 260px;
    }
}

@media (max-width: 575px) {
    .slider-area-five .slider-item {
        min-height: 520px;
    }

    .slider-area-five .slider-text h1,
    .slider-area-five .slider-text h2 {
        font-size: 24px;
    }

    .default-btn {
        padding: 12px 20px;
        font-size: 14px;
    }

    .home-services-section .product-image,
    .home-projects-section .gallery-image,
    .home-news-section .single-news > a img {
        height: 200px;
    }

    .home-team-section .single-team img {
        height: 240px;
    }

    .owl-theme .owl-nav [class*="owl-"] {
        width: 38px;
        height: 38px;
        line-height: 34px;
    }
}




/* ---------- Header Logo Fix ---------- */
.header-area .navbar-brand img,
.header-area .mobile-nav .logo img {
    max-width: 130px;
    max-height: 55px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.header-area .navbar-brand {
    display: flex;
    align-items: center;
}

.header-area .mobile-nav .logo {
    display: flex;
    align-items: center;
}

@media (max-width: 767px) {
    .header-area .navbar-brand img,
    .header-area .mobile-nav .logo img {
        max-width: 115px;
        max-height: 48px;
    }
}




/* ==============================
   About Us Page
============================== */

.about-company-area {
    background: #f8f9fb;
}

.about-main-row {
    margin-top: 35px;
    margin-bottom: 35px;
}

.about-company-content {
    background: #fff;
    padding: 35px;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
    height: 100%;
}

.about-subtitle {
    display: inline-block;
    margin-bottom: 10px;
    color: #4CAF50;
    font-weight: 800;
}

.about-company-content h2 {
    font-size: 30px;
    font-weight: 900;
    margin-bottom: 20px;
}

.about-html-content {
    color: #555;
    line-height: 2;
    font-size: 15px;
}

    .about-html-content p {
        line-height: 2;
        margin-bottom: 14px;
    }

.about-company-image {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
    min-height: 420px;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

    .about-company-image img {
        width: 100%;
        height: 420px;
        object-fit: contain;
        padding: 35px;
    }

    .about-company-image .video {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
    }

.about-info-row {
    margin-top: 25px;
}

.about-info-card {
    background: #fff;
    padding: 28px;
    border-radius: 14px;
    height: 100%;
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
    transition: .2s;
}

    .about-info-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 14px 32px rgba(0,0,0,.08);
    }

.about-info-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(76,175,80,.12);
    color: #4CAF50;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.about-info-card h3,
.about-manager-box h3,
.about-rules-box h3,
.about-map-wrapper h3 {
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 15px;
}

.about-info-card p,
.about-manager-box p,
.about-rules-box p {
    color: #666;
    line-height: 2;
}

.about-list {
    padding: 0;
    margin: 0;
    list-style: none;
}

    .about-list li {
        position: relative;
        padding-right: 22px;
        margin-bottom: 10px;
        color: #555;
    }

        .about-list li::before {
            content: "✓";
            position: absolute;
            right: 0;
            color: #4CAF50;
            font-weight: 900;
        }

.about-manager-box,
.about-rules-box,
.about-contact-box,
.about-map-wrapper {
    background: #fff;
    padding: 30px;
    border-radius: 14px;
    margin-top: 30px;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.about-contact-card {
    background: #f8f9fb;
    padding: 22px;
    border-radius: 12px;
    height: 100%;
    border: 1px solid rgba(0,0,0,.06);
}

    .about-contact-card .contact-icon {
        font-size: 28px;
        margin-bottom: 10px;
    }

    .about-contact-card h4 {
        font-size: 17px;
        font-weight: 900;
        margin-bottom: 10px;
    }

    .about-contact-card p,
    .about-contact-card a {
        display: block;
        color: #666;
        line-height: 1.9;
        word-break: break-word;
    }

        .about-contact-card a:hover {
            color: #4CAF50;
        }

#mapDiv {
    margin-top: 20px;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,.08);
    position: relative;
    height: 420px;
    background: #eaeaea;
}

#map {
    height: 100%;
    min-height: 420px;
}

.map-overlay {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.95);
    z-index: 999;
    text-align: center;
    padding: 20px;
}

.map-box {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 14px;
    padding: 20px;
    max-width: 420px;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
}

    .map-box p {
        color: #777;
        margin-top: 8px;
    }

.spinner {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid #ddd;
    border-top-color: #4CAF50;
    animation: aboutSpin .8s linear infinite;
    display: inline-block;
    margin-right: 6px;
}

@keyframes aboutSpin {
    to {
        transform: rotate(360deg);
    }
}

.about-route-btn {
    margin-top: 16px;
}

@media only screen and (max-width: 991px) {
    .about-company-content {
        margin-bottom: 25px;
    }

    .about-company-image,
    .about-company-image img {
        min-height: 320px;
        height: 320px;
    }

    .about-contact-card {
        margin-bottom: 20px;
    }
}

@media only screen and (max-width: 575px) {
    .about-company-content,
    .about-manager-box,
    .about-rules-box,
    .about-contact-box,
    .about-map-wrapper {
        padding: 20px;
    }

        .about-company-content h2 {
            font-size: 24px;
        }

    #mapDiv,
    #map {
        height: 320px;
        min-height: 320px;
    }
}
.video-btn i
{
    right:0px !important;
}
.about-video-wrapper {
    position: relative;
    width: 100%;
    height: 420px;
    overflow: hidden;
    border-radius: 14px;
    background: #000;
}

    .about-video-wrapper iframe {
        width: 100%;
        height: 100%;
        border: 0;
    }

@media only screen and (max-width: 991px) {
    .about-video-wrapper {
        height: 320px;
    }
}

.about-editor-section {
    margin-top: 35px;
}

.about-editor-box {
    background: #fff;
    border-radius: 16px;
    padding: 40px;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.about-editor-header {
    text-align: center;
    margin-bottom: 25px;
}

    .about-editor-header span {
        display: inline-block;
        color: #4CAF50;
        font-size: 13px;
        font-weight: 700;
        margin-bottom: 10px;
    }

    .about-editor-header h2 {
        font-size: 32px;
        font-weight: 900;
        margin: 0;
        color: #111;
    }

.about-html-content {
    color: #555;
    line-height: 2.1;
    font-size: 15px;
}

    .about-html-content p {
        line-height: 2.1;
        margin-bottom: 14px;
    }

    .about-html-content ul,
    .about-html-content ol {
        padding-right: 22px;
        margin-bottom: 18px;
    }

    .about-html-content li {
        margin-bottom: 8px;
    }

@media only screen and (max-width: 767px) {
    .about-editor-box {
        padding: 24px 18px;
    }

    .about-editor-header h2 {
        font-size: 26px;
    }
}
.about-section-subtitle {
    display: inline-block;
    color: #4CAF50;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
}
/* ==============================
   Public Services List Page
============================== */

.public-services-page {
    background: #fff;
}

.services-search-box {
    max-width: 520px;
    margin: 0 auto 40px;
    position: relative;
}

    .services-search-box input {
        width: 100%;
        height: 54px;
        border: 1px solid rgba(0,0,0,.08);
        border-radius: 14px;
        padding: 0 20px;
        font-size: 15px;
        background: #fff;
        box-shadow: 0 10px 28px rgba(0,0,0,.06);
        transition: .2s;
    }

        .services-search-box input:focus {
            outline: none;
            border-color: #0d6efd;
            box-shadow: 0 10px 30px rgba(13,110,253,.15);
        }

.public-services-list {
    row-gap: 30px;
}

.public-service-card {
    height: 100%;
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

    .public-service-card .product-image {
        width: 100%;
        height: 240px;
        overflow: hidden;
        background: #f4f4f4;
    }

        .public-service-card .product-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

    .public-service-card .product-content {
        padding: 25px;
        min-height: 210px;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }

        .public-service-card .product-content h3 {
            font-size: 20px;
            font-weight: 900;
            margin-bottom: 12px;
        }

        .public-service-card .product-content p {
            color: #666;
            line-height: 1.9;
            margin-bottom: 18px;
        }

.services-empty-message {
    display: none;
    text-align: center;
    margin-top: 25px;
    color: #777;
}

    .services-empty-message.active {
        display: block;
    }

@media only screen and (max-width: 767px) {
    .services-search-box {
        margin-bottom: 30px;
    }

    .public-service-card .product-image {
        height: 220px;
    }
}
/* ==============================
   Service Details
============================== */

.service-details-area {
    background: #f8f9fb;
}

.service-details-image {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
    margin-bottom: 25px;
}

    .service-details-image img {
        width: 100%;
        height: 520px;
        object-fit: cover;
    }

.service-details-content {
    background: #fff;
    border-radius: 16px;
    padding: 35px;
    box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.service-details-top {
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(0,0,0,.06);
}

.service-details-subtitle {
    display: inline-block;
    color: #4CAF50;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
}

.service-details-top h1 {
    font-size: 34px;
    font-weight: 900;
    line-height: 1.5;
    margin: 0;
    color: #111;
}

.service-html-content {
    color: #555;
    line-height: 2.2;
    font-size: 15px;
}

    .service-html-content p {
        line-height: 2.2;
        margin-bottom: 16px;
    }

    .service-html-content img {
        max-width: 100%;
        height: auto;
        border-radius: 12px;
        margin: 15px 0;
    }

    .service-html-content ul,
    .service-html-content ol {
        padding-right: 20px;
        margin-bottom: 20px;
    }

    .service-html-content li {
        margin-bottom: 10px;
        line-height: 2;
    }

    .service-html-content h2,
    .service-html-content h3,
    .service-html-content h4 {
        margin-top: 30px;
        margin-bottom: 16px;
        color: #111;
        font-weight: 800;
    }

.service-empty-box {
    background: #f8f9fb;
    border-radius: 12px;
    padding: 20px;
}

    .service-empty-box p {
        margin: 0;
        color: #777;
    }

.service-details-footer {
    margin-top: 35px;
}

@media only screen and (max-width: 991px) {

    .service-details-image img {
        height: 380px;
    }

    .service-details-content {
        padding: 25px;
    }

    .service-details-top h1 {
        font-size: 28px;
    }
}

@media only screen and (max-width: 575px) {

    .service-details-image img {
        height: 260px;
    }

    .service-details-content {
        padding: 20px;
    }

    .service-details-top h1 {
        font-size: 24px;
    }

    .service-html-content {
        font-size: 14px;
    }
}

/* ==============================
   Service Consultation Box
============================== */

.service-consultation-box {
    margin-top: 70px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
    border-radius: 22px;
    padding: 50px;
    box-shadow: 0 15px 40px rgba(0,0,0,.07);
    overflow: hidden;
    position: relative;
}

    .service-consultation-box::before {
        content: "";
        position: absolute;
        top: -120px;
        left: -120px;
        width: 260px;
        height: 260px;
        background: rgba(13,110,253,.04);
        border-radius: 50%;
    }

.consultation-info {
    position: relative;
    z-index: 2;
}

    .consultation-info span {
        display: inline-block;
        color: #0d6efd;
        font-size: 13px;
        font-weight: 800;
        margin-bottom: 12px;
    }

    .consultation-info h3 {
        font-size: 34px;
        line-height: 1.8;
        font-weight: 900;
        margin-bottom: 18px;
        color: #1d2671;
    }

    .consultation-info p {
        color: #666;
        line-height: 2;
        margin-bottom: 0;
    }

#ConsultationRequestForm {
    position: relative;
    z-index: 2;
}

    #ConsultationRequestForm .form-group {
        margin-bottom: 18px;
    }

    #ConsultationRequestForm .form-control {
        height: 56px;
        border-radius: 14px;
        border: 1px solid rgba(0,0,0,.08);
        background: #fff;
        padding: 0 18px;
        font-size: 15px;
        transition: .2s;
        box-shadow: none;
    }

    #ConsultationRequestForm textarea.form-control {
        height: 170px;
        resize: none;
        padding-top: 16px;
    }

    #ConsultationRequestForm .form-control:focus {
        border-color: #0d6efd;
        box-shadow: 0 10px 25px rgba(13,110,253,.12);
    }

#ConsultationSubmitBtn {
    width: 100%;
    height: 56px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 800;
    transition: .25s;
}

    #ConsultationSubmitBtn:hover {
        transform: translateY(-2px);
    }

.field-error {
    min-height: 18px;
}

@media only screen and (max-width: 991px) {

    .service-consultation-box {
        padding: 30px 25px;
        margin-top: 50px;
    }

    .consultation-info {
        margin-bottom: 35px;
        text-align: center;
    }

        .consultation-info h3 {
            font-size: 28px;
        }
}

@media only screen and (max-width: 575px) {

    .service-consultation-box {
        padding: 24px 18px;
    }

    .consultation-info h3 {
        font-size: 24px;
        line-height: 1.7;
    }

    #ConsultationRequestForm .form-control {
        height: 52px;
        font-size: 14px;
    }

    #ConsultationRequestForm textarea.form-control {
        height: 150px;
    }
}

/* ==============================
   Public Projects List Page
============================== */

.projects-page-area {
    background: #f8f9fb;
}

.projects-search-box {
    max-width: 560px;
    margin: 0 auto 45px;
}

    .projects-search-box input {
        width: 100%;
        height: 56px;
        border-radius: 16px;
        border: 1px solid rgba(0,0,0,.08);
        background: #fff;
        padding: 0 22px;
        font-size: 15px;
        box-shadow: 0 12px 30px rgba(0,0,0,.06);
        transition: .25s;
    }

        .projects-search-box input:focus {
            outline: none;
            border-color: #0d6efd;
            box-shadow: 0 14px 35px rgba(13,110,253,.15);
        }

.projects-list {
    row-gap: 30px;
}

.public-project-card {
    height: 100%;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(0,0,0,.07);
    transition: .25s;
}

    .public-project-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 18px 45px rgba(0,0,0,.10);
    }

.public-project-image {
    display: block;
    height: 260px;
    overflow: hidden;
    background: #eee;
}

    .public-project-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: .35s;
    }

.public-project-card:hover .public-project-image img {
    transform: scale(1.05);
}

.public-project-content {
    padding: 25px;
}

.public-project-client {
    display: inline-block;
    color: #0d6efd;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 10px;
}

.public-project-content h3 {
    font-size: 21px;
    font-weight: 900;
    margin-bottom: 14px;
    line-height: 1.6;
}

    .public-project-content h3 a {
        color: #111;
    }

        .public-project-content h3 a:hover {
            color: #0d6efd;
        }

.public-project-content p {
    color: #666;
    line-height: 1.9;
    margin-bottom: 18px;
}

.projects-empty-message {
    display: none;
    text-align: center;
    margin-top: 25px;
    color: #777;
}

    .projects-empty-message.active {
        display: block;
    }

@media only screen and (max-width: 991px) {
    .public-project-image {
        height: 230px;
    }
}

@media only screen and (max-width: 575px) {
    .projects-search-box {
        margin-bottom: 30px;
    }

        .projects-search-box input {
            height: 52px;
            font-size: 14px;
        }

    .public-project-image {
        height: 220px;
    }

    .public-project-content {
        padding: 22px;
    }
}

/* ==============================
   Project Details Page
============================== */

.project-details-page {
    background: #f8f9fb;
}

.project-details-image {
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 35px rgba(0,0,0,.08);
}

    .project-details-image img {
        width: 100%;
        height: 520px;
        object-fit: cover;
        display: block;
    }

.project-details-desc {
    background: #fff;
    border-radius: 18px;
    padding: 38px;
    box-shadow: 0 12px 35px rgba(0,0,0,.08);
}

.project-details-subtitle {
    display: inline-block;
    color: #0d6efd;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 12px;
}

.project-details-desc h1 {
    font-size: 34px;
    font-weight: 900;
    line-height: 1.6;
    margin-bottom: 18px;
    color: #111;
}

.project-details-desc p {
    color: #666;
    line-height: 2;
}

.project-info-list {
    list-style: none;
    padding: 0;
    margin: 25px 0;
}

    .project-info-list li {
        background: #f8f9fb;
        border-radius: 12px;
        padding: 13px 16px;
        margin-bottom: 10px;
        color: #555;
    }

        .project-info-list li span {
            font-weight: 900;
            color: #111;
            margin-left: 6px;
        }

.project-details-tabs-box {
    background: #fff;
    border-radius: 18px;
    padding: 35px;
    margin-top: 45px;
    box-shadow: 0 12px 35px rgba(0,0,0,.08);
}

.project-html-content {
    color: #555;
    line-height: 2.2;
}

    .project-html-content p {
        line-height: 2.2;
        margin-bottom: 16px;
    }

    .project-html-content img {
        max-width: 100%;
        height: auto;
        border-radius: 14px;
        margin: 15px 0;
    }

    .project-html-content ul,
    .project-html-content ol {
        padding-right: 22px;
        margin-bottom: 18px;
    }

    .project-html-content li {
        margin-bottom: 8px;
    }

.project-analysis-box {
    height: 100%;
    border-radius: 16px;
    padding: 28px;
}

    .project-analysis-box h3 {
        font-size: 22px;
        font-weight: 900;
        margin-bottom: 18px;
    }

.challenge-box {
    background: #fff7f0;
    border: 1px solid rgba(255,120,0,.14);
}

.solution-box {
    background: #f0fbf6;
    border: 1px solid rgba(0,160,90,.14);
}

.project-gallery-list {
    row-gap: 24px;
}

.project-gallery-item {
    border-radius: 16px;
    overflow: hidden;
    background: #eee;
    box-shadow: 0 8px 24px rgba(0,0,0,.07);
}

    .project-gallery-item img {
        width: 100%;
        height: 250px;
        object-fit: cover;
        display: block;
    }

.project-video-list {
    row-gap: 25px;
}

.project-video-box {
    background: #f8f9fb;
    border-radius: 16px;
    padding: 22px;
    height: 100%;
}

    .project-video-box h3 {
        font-size: 19px;
        font-weight: 900;
        margin-bottom: 15px;
    }

.project-video-frame {
    width: 100%;
    height: 300px;
    border-radius: 14px;
    overflow: hidden;
    background: #000;
}

    .project-video-frame iframe {
        width: 100%;
        height: 100%;
        border: 0;
    }

.project-comment-form-box {
    margin-top: 35px;
    background: #f8f9fb;
    border-radius: 18px;
    padding: 28px;
}

    .project-comment-form-box .form-control {
        height: 54px;
        border-radius: 13px;
        border: 1px solid rgba(0,0,0,.08);
        box-shadow: none;
    }

    .project-comment-form-box textarea.form-control {
        height: 150px;
        resize: none;
        padding-top: 14px;
    }

    .project-comment-form-box .form-control:focus {
        border-color: #0d6efd;
        box-shadow: 0 10px 25px rgba(13,110,253,.12);
    }

.related-projects-section {
    margin-top: 70px;
}

    .related-projects-section .row {
        row-gap: 30px;
    }

@media only screen and (max-width: 991px) {
    .project-details-image {
        margin-bottom: 25px;
    }

        .project-details-image img {
            height: 380px;
        }

    .project-details-desc,
    .project-details-tabs-box {
        padding: 28px;
    }

        .project-details-desc h1 {
            font-size: 28px;
        }

    .project-video-frame {
        height: 260px;
    }
}

@media only screen and (max-width: 575px) {
    .project-details-image img {
        height: 260px;
    }

    .project-details-desc,
    .project-details-tabs-box,
    .project-comment-form-box {
        padding: 20px;
    }

        .project-details-desc h1 {
            font-size: 24px;
        }

    .project-gallery-item img {
        height: 210px;
    }

    .project-video-frame {
        height: 220px;
    }
}

/* ==============================
   Project Gallery Internal Modal
============================== */

.project-gallery-card {
    width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
    border-radius: 16px;
    overflow: hidden;
    display: block;
    box-shadow: 0 8px 24px rgba(0,0,0,.07);
}

    .project-gallery-card img {
        width: 100%;
        height: 250px;
        object-fit: cover;
        display: block;
        transition: .3s;
    }

    .project-gallery-card:hover img {
        transform: scale(1.04);
    }

.project-gallery-zoom {
    position: absolute;
    right: 14px;
    left: 14px;
    bottom: 14px;
    background: rgba(0,0,0,.55);
    color: #fff;
    border-radius: 12px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    opacity: 0;
    transform: translateY(8px);
    transition: .25s;
    pointer-events: none;
}

.project-gallery-card:hover .project-gallery-zoom {
    opacity: 1;
    transform: translateY(0);
}

.project-gallery-hint {
    margin-top: 22px;
    text-align: center;
    color: #0d6efd;
    font-weight: 700;
}

.project-gallery-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
}

    .project-gallery-modal.is-open {
        display: block;
    }

.project-gallery-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.78);
}

.project-gallery-modal-panel {
    position: relative;
    width: min(980px, 92vw);
    margin: 5vh auto;
    background: #111;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 35px rgba(0,0,0,.35);
}

.project-gallery-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.15);
    background: rgba(0,0,0,.35);
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
}

.project-gallery-modal-media {
    position: relative;
    min-height: 320px;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.project-gallery-modal-image {
    width: 100%;
    max-height: 74vh;
    object-fit: contain;
    display: none;
}

.project-gallery-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 28px;
    color: #fff;
}

.project-gallery-spinner {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 3px solid rgba(255,255,255,.25);
    border-top-color: #fff;
    animation: projectGallerySpin .8s linear infinite;
}

@keyframes projectGallerySpin {
    to {
        transform: rotate(360deg);
    }
}

.project-gallery-modal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    background: #0c0c0c;
    border-top: 1px solid rgba(255,255,255,.08);
}

.project-gallery-modal-title {
    color: #fff;
    font-size: 14px;
    opacity: .9;
}

.project-gallery-modal-nav {
    display: flex;
    gap: 10px;
}

.project-gallery-nav-btn {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.15);
    background: rgba(255,255,255,.06);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
}

    .project-gallery-nav-btn:hover {
        background: rgba(255,255,255,.12);
    }

@media only screen and (max-width: 576px) {
    .project-gallery-card img {
        height: 220px;
    }

    .project-gallery-modal-panel {
        margin: 7vh auto;
    }
}



/* ==============================
   Public News List Page
============================== */

.public-news-page {
    background: #f8f9fb;
}

    .public-news-page .section-title {
        margin-bottom: 35px;
    }

.news-list-item {
    margin-bottom: 30px;
}

.public-news-card {
    height: 100%;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(0,0,0,.07);
    transition: .25s;
}

    .public-news-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 18px 45px rgba(0,0,0,.10);
    }

    .public-news-card > a {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 260px;
        overflow: hidden;
        background: #f3f4f6;
    }

        .public-news-card > a img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center;
            display: block;
            padding: 8px;
            transition: .25s;
        }

    .public-news-card:hover > a img {
        transform: scale(1.02);
    }

    .public-news-card .news-content {
        padding: 25px;
    }

        .public-news-card .news-content ul {
            padding: 0;
            margin: 0 0 12px;
            list-style: none;
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
        }

            .public-news-card .news-content ul li {
                font-size: 13px;
                color: #777;
            }

        .public-news-card .news-content h3 {
            font-size: 20px;
            font-weight: 900;
            line-height: 1.7;
            margin-bottom: 12px;
        }

            .public-news-card .news-content h3:hover {
                color: #0d6efd;
            }

        .public-news-card .news-content p {
            color: #666;
            line-height: 1.9;
            margin-bottom: 18px;
        }

.public-news-sidebar {
    position: sticky;
    top: 110px;
}

    .public-news-sidebar .widget {
        background: #fff;
        border-radius: 18px;
        padding: 24px;
        margin-bottom: 25px;
        box-shadow: 0 12px 32px rgba(0,0,0,.07);
    }

    .public-news-sidebar .widget-title {
        font-size: 20px;
        font-weight: 900;
        margin-bottom: 18px;
    }

    .public-news-sidebar .search-form {
        position: relative;
    }

        .public-news-sidebar .search-form label {
            width: 100%;
            margin: 0;
        }

    .public-news-sidebar .search-field {
        width: 100%;
        height: 52px;
        border-radius: 14px;
        border: 1px solid rgba(0,0,0,.08);
        padding: 0 16px 0 50px;
        background: #f8f9fb;
    }

        .public-news-sidebar .search-field:focus {
            outline: none;
            border-color: #0d6efd;
            background: #fff;
            box-shadow: 0 10px 24px rgba(13,110,253,.12);
        }

    .public-news-sidebar .search-form button {
        position: absolute;
        left: 6px;
        top: 6px;
        width: 40px;
        height: 40px;
        border: 0;
        border-radius: 12px;
        background: #0d6efd;
        color: #fff;
    }

    .public-news-sidebar .widget-peru-posts-thumb .item {
        display: flex;
        gap: 12px;
        align-items: center;
        margin-bottom: 16px;
    }

        .public-news-sidebar .widget-peru-posts-thumb .item:last-child {
            margin-bottom: 0;
        }

    .public-news-sidebar .thumb {
        width: 82px;
        height: 64px;
        border-radius: 12px;
        overflow: hidden;
        flex: 0 0 82px;
        background: #f3f4f6;
        display: flex;
        align-items: center;
        justify-content: center;
    }

        .public-news-sidebar .thumb img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            padding: 3px;
        }

    .public-news-sidebar .info time {
        display: block;
        color: #777;
        font-size: 12px;
        margin-bottom: 6px;
    }

    .public-news-sidebar .info h4 {
        font-size: 14px;
        font-weight: 800;
        line-height: 1.7;
        margin: 0;
    }

    .public-news-sidebar .tagcloud {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }

        .public-news-sidebar .tagcloud a {
            display: inline-block;
            background: #f8f9fb;
            color: #555;
            border-radius: 999px;
            padding: 8px 13px;
            font-size: 13px;
            transition: .2s;
        }

            .public-news-sidebar .tagcloud a:hover {
                background: #0d6efd;
                color: #fff;
            }

.news-empty-message {
    display: none;
    background: #fff;
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    color: #777;
    box-shadow: 0 10px 28px rgba(0,0,0,.06);
}

    .news-empty-message.active {
        display: block;
    }

/* ==============================
   Public News Details Page
============================== */

.public-news-details-page {
    background: #f8f9fb;
}

.public-news-details-card {
    background: #fff;
    border-radius: 18px;
    padding: 28px;
    box-shadow: 0 12px 35px rgba(0,0,0,.08);
}

    .public-news-details-card .article-image {
        border-radius: 18px;
        overflow: hidden;
        margin-bottom: 28px;
        background: #f3f4f6;
        display: flex;
        align-items: center;
        justify-content: center;
    }

        .public-news-details-card .article-image img {
            width: 100%;
            height: 480px;
            object-fit: contain;
            object-position: center;
            display: block;
            padding: 10px;
        }

    .public-news-details-card .article-content h1 {
        font-size: 34px;
        font-weight: 900;
        line-height: 1.7;
        margin-bottom: 22px;
        color: #111;
    }

    .public-news-details-card .entry-meta ul {
        padding: 0;
        margin: 0 0 18px;
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
    }

        .public-news-details-card .entry-meta ul li {
            color: #666;
            font-size: 14px;
        }

            .public-news-details-card .entry-meta ul li span {
                font-weight: 900;
                color: #111;
            }

.news-html-content {
    color: #555;
    line-height: 2.2;
    font-size: 15px;
}

    .news-html-content p {
        line-height: 2.2;
        margin-bottom: 16px;
    }

    .news-html-content img {
        max-width: 100%;
        height: auto;
        object-fit: contain;
        border-radius: 14px;
        margin: 16px 0;
        background: #f3f4f6;
    }

    .news-html-content h2,
    .news-html-content h3,
    .news-html-content h4 {
        font-weight: 900;
        color: #111;
        margin-top: 30px;
        margin-bottom: 16px;
    }

    .news-html-content ul,
    .news-html-content ol {
        padding-right: 22px;
        margin-bottom: 18px;
    }

    .news-html-content li {
        margin-bottom: 8px;
        line-height: 2;
    }

.public-news-details-card .article-footer {
    margin-top: 35px;
    padding-top: 22px;
    border-top: 1px solid rgba(0,0,0,.07);
}

.public-news-details-card .article-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

    .public-news-details-card .article-tags span {
        font-weight: 900;
        color: #111;
    }

    .public-news-details-card .article-tags a {
        display: inline-block;
        background: #f8f9fb;
        color: #555;
        border-radius: 999px;
        padding: 8px 14px;
        font-size: 13px;
        transition: .2s;
    }

        .public-news-details-card .article-tags a:hover {
            background: #0d6efd;
            color: #fff;
        }

.public-news-details-card .post-navigation {
    margin-top: 30px;
    padding-top: 22px;
    border-top: 1px solid rgba(0,0,0,.07);
}

.public-news-details-card .navigation-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

    .public-news-details-card .navigation-links a {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        color: #0d6efd;
        font-weight: 800;
    }

@media only screen and (max-width: 991px) {
    .public-news-sidebar {
        position: static;
        margin-top: 35px;
    }

    .public-news-card > a {
        height: 235px;
    }

    .public-news-details-card {
        padding: 24px;
    }

        .public-news-details-card .article-image img {
            height: 380px;
        }

        .public-news-details-card .article-content h1 {
            font-size: 28px;
        }
}

@media only screen and (max-width: 575px) {
    .public-news-card > a {
        height: 220px;
    }

    .public-news-card .news-content {
        padding: 22px;
    }

    .public-news-sidebar .widget {
        padding: 20px;
    }

    .public-news-details-card {
        padding: 18px;
    }

        .public-news-details-card .article-image img {
            height: 250px;
            padding: 6px;
        }

        .public-news-details-card .article-content h1 {
            font-size: 23px;
        }

        .public-news-details-card .navigation-links {
            flex-direction: column;
            align-items: flex-start;
        }
}

/* ==============================
   News Share Box
============================== */

.news-share-box {
    margin-top: 35px;
    padding: 24px;
    border-radius: 18px;
    background: #f8f9fb;
    border: 1px solid rgba(0,0,0,.06);
}

.news-share-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 900;
    color: #111;
    margin-bottom: 18px;
}

    .news-share-title i {
        color: #0d6efd;
        font-size: 22px;
    }

.news-share-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.share-link {
    border: 0;
    border-radius: 999px;
    padding: 9px 15px;
    font-size: 13px;
    font-weight: 800;
    color: #fff;
    cursor: pointer;
    transition: .2s;
    text-decoration: none;
}

    .share-link:hover {
        color: #fff;
        transform: translateY(-2px);
    }

    .share-link.whatsapp {
        background: #25D366;
    }

    .share-link.telegram {
        background: #229ED9;
    }

    .share-link.eitaa {
        background: #f58220;
    }

    .share-link.bale {
        background: #39a5dc;
    }

    .share-link.rubika {
        background: #7c3aed;
    }

    .share-link.linkedin {
        background: #0A66C2;
    }

    .share-link.email {
        background: #6b7280;
    }

    .share-link.copy-link {
        background: #111827;
    }



/* ==============================
   Contact Page
============================== */

.contact-page-area {
    background: #f8f9fb;
}

.contact-info-grid {
    margin-top: 35px;
}

.contact-info-card {
    height: 100%;
    background: #fff;
    border-radius: 18px;
    padding: 28px;
    box-shadow: 0 12px 32px rgba(0,0,0,.07);
    transition: .25s;
}

    .contact-info-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 18px 45px rgba(0,0,0,.10);
    }

.contact-info-icon {
    width: 54px;
    height: 54px;
    border-radius: 16px;
    background: #f0f6ff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    margin-bottom: 18px;
}

.contact-info-card h4 {
    font-size: 19px;
    font-weight: 900;
    margin-bottom: 12px;
    color: #111;
}

.contact-info-card p,
.contact-info-card a {
    display: block;
    color: #666;
    line-height: 1.9;
    word-break: break-word;
}

    .contact-info-card a:hover {
        color: #0d6efd;
    }

.contact-main-box {
    margin-top: 45px;
    background: #fff;
    border-radius: 22px;
    padding: 45px;
    box-shadow: 0 15px 40px rgba(0,0,0,.07);
    overflow: hidden;
    position: relative;
}

    .contact-main-box::before {
        content: "";
        position: absolute;
        top: -140px;
        left: -140px;
        width: 280px;
        height: 280px;
        border-radius: 50%;
        background: rgba(13,110,253,.05);
    }

.contact-side-box,
.contact-form-box {
    position: relative;
    z-index: 2;
}

    .contact-side-box span {
        display: inline-block;
        color: #0d6efd;
        font-size: 13px;
        font-weight: 800;
        margin-bottom: 12px;
    }

    .contact-side-box h3,
    .contact-form-box h3,
    .contact-map-wrapper h3 {
        font-size: 28px;
        font-weight: 900;
        line-height: 1.7;
        margin-bottom: 16px;
        color: #111;
    }

    .contact-side-box p {
        color: #666;
        line-height: 2;
        margin-bottom: 22px;
    }

.contact-meeting-btn {
    margin-bottom: 28px;
}

.contact-social-box {
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid rgba(0,0,0,.07);
}

    .contact-social-box h4 {
        font-size: 18px;
        font-weight: 900;
        margin-bottom: 16px;
    }

.contact-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

    .contact-social-links a {
        display: inline-block;
        border-radius: 999px;
        padding: 9px 15px;
        background: #f8f9fb;
        color: #555;
        font-size: 13px;
        font-weight: 800;
        transition: .2s;
    }

        .contact-social-links a:hover {
            background: #0d6efd;
            color: #fff;
            transform: translateY(-2px);
        }

.contact-form-box {
    background: #f8f9fb;
    border-radius: 18px;
    padding: 30px;
}

    .contact-form-box .form-group {
        margin-bottom: 18px;
    }

    .contact-form-box .form-control {
        height: 56px;
        border-radius: 14px;
        border: 1px solid rgba(0,0,0,.08);
        background: #fff;
        padding: 0 18px;
        font-size: 15px;
        box-shadow: none;
        transition: .2s;
    }

    .contact-form-box textarea.form-control {
        height: 160px;
        resize: none;
        padding-top: 16px;
    }

    .contact-form-box .form-control:focus {
        border-color: #0d6efd;
        box-shadow: 0 10px 25px rgba(13,110,253,.12);
    }

#ContactSubmitBtn {
    width: 100%;
    height: 56px;
    border-radius: 14px;
    font-size: 16px;
    font-weight: 900;
}

    #ContactSubmitBtn:hover {
        transform: translateY(-2px);
    }

.contact-map-wrapper {
    background: #fff;
    border-radius: 22px;
    padding: 35px;
    margin-top: 45px;
    box-shadow: 0 15px 40px rgba(0,0,0,.07);
}

    .contact-map-wrapper #mapDiv {
        margin-top: 20px;
        border-radius: 18px;
        overflow: hidden;
        border: 1px solid rgba(0,0,0,.08);
        position: relative;
        height: 430px;
        background: #eaeaea;
    }

    .contact-map-wrapper #map {
        height: 100%;
        min-height: 430px;
    }

.contact-route-btn {
    margin-top: 18px;
}

.field-error {
    min-height: 18px;
}

@media only screen and (max-width: 991px) {
    .contact-info-card {
        margin-bottom: 24px;
    }

    .contact-main-box {
        padding: 30px 25px;
    }

    .contact-side-box {
        margin-bottom: 35px;
        text-align: center;
    }

    .contact-social-links {
        justify-content: center;
    }

    .contact-form-box {
        padding: 25px;
    }

    .contact-map-wrapper #mapDiv,
    .contact-map-wrapper #map {
        height: 360px;
        min-height: 360px;
    }
}

@media only screen and (max-width: 575px) {
    .contact-main-box,
    .contact-map-wrapper {
        padding: 22px 18px;
    }

        .contact-side-box h3,
        .contact-form-box h3,
        .contact-map-wrapper h3 {
            font-size: 24px;
        }

    .contact-form-box {
        padding: 20px;
    }

        .contact-form-box .form-control {
            height: 52px;
            font-size: 14px;
        }

        .contact-form-box textarea.form-control {
            height: 145px;
        }

    .contact-map-wrapper #mapDiv,
    .contact-map-wrapper #map {
        height: 300px;
        min-height: 300px;
    }
}


/* ==============================
   Public Team List Page
============================== */

.public-team-page {
    background: #f8f9fb;
}

.team-search-box {
    max-width: 520px;
    margin: 0 auto 45px;
}

    .team-search-box input {
        width: 100%;
        height: 56px;
        border-radius: 16px;
        border: 1px solid rgba(0,0,0,.08);
        background: #fff;
        padding: 0 22px;
        font-size: 15px;
        box-shadow: 0 12px 30px rgba(0,0,0,.06);
        transition: .25s;
    }

        .team-search-box input:focus {
            outline: none;
            border-color: #0d6efd;
            box-shadow: 0 14px 35px rgba(13,110,253,.15);
        }

.public-team-list {
    row-gap: 30px;
}

.public-team-card {
    height: 100%;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 12px 32px rgba(0,0,0,.07);
    transition: .25s;
}

    .public-team-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 18px 45px rgba(0,0,0,.10);
    }

.public-team-image {
    height: 320px;
    background: #f3f4f6;
    overflow: hidden;
}

    .public-team-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
        display: block;
        transition: .3s;
    }

.public-team-card:hover .public-team-image img {
    transform: scale(1.04);
}

.public-team-content {
    padding: 24px;
    text-align: center;
}

    .public-team-content h3 {
        font-size: 20px;
        font-weight: 900;
        margin-bottom: 8px;
        color: #111;
    }

    .public-team-content span {
        display: block;
        color: #0d6efd;
        font-size: 14px;
        font-weight: 800;
        margin-bottom: 14px;
    }

    .public-team-content p {
        color: #666;
        line-height: 1.9;
        margin-bottom: 16px;
    }

.team-empty-message {
    display: none;
    background: #fff;
    border-radius: 16px;
    padding: 25px;
    text-align: center;
    color: #777;
    box-shadow: 0 10px 28px rgba(0,0,0,.06);
}

    .team-empty-message.active {
        display: block;
    }

@media only screen and (max-width: 991px) {
    .public-team-image {
        height: 300px;
    }
}

@media only screen and (max-width: 575px) {
    .team-search-box {
        margin-bottom: 30px;
    }

        .team-search-box input {
            height: 52px;
            font-size: 14px;
        }

    .public-team-image {
        height: 330px;
    }

    .public-team-content {
        padding: 22px;
    }
}

/* ==============================
   Public Team Details Page
============================== */

.public-team-details-page {
    background: #f8f9fb;
}

.team-details-card {
    background: #fff;
    border-radius: 22px;
    padding: 40px;
    box-shadow: 0 15px 40px rgba(0,0,0,.07);
}

.team-details-image {
    border-radius: 20px;
    overflow: hidden;
    background: #f3f4f6;
    box-shadow: 0 10px 28px rgba(0,0,0,.08);
}

    .team-details-image img {
        width: 100%;
        height: 620px;
        object-fit: cover;
        object-position: center top;
        display: block;
    }

.team-details-content {
    padding-right: 20px;
}

.team-details-subtitle {
    display: inline-block;
    color: #0d6efd;
    font-size: 14px;
    font-weight: 900;
    margin-bottom: 12px;
}

.team-details-content h1 {
    font-size: 34px;
    font-weight: 900;
    line-height: 1.7;
    margin-bottom: 18px;
    color: #111;
}

.team-html-content {
    color: #555;
    line-height: 2.2;
    font-size: 15px;
}

    .team-html-content p {
        line-height: 2.2;
        margin-bottom: 14px;
    }

.team-details-info {
    list-style: none;
    padding: 0;
    margin: 25px 0;
}

    .team-details-info li {
        background: #f8f9fb;
        border-radius: 13px;
        padding: 13px 16px;
        margin-bottom: 10px;
        color: #555;
    }

        .team-details-info li span {
            font-weight: 900;
            color: #111;
            margin-left: 6px;
        }

        .team-details-info li a {
            color: #0d6efd;
            font-weight: 800;
        }

.team-details-section {
    background: #fff;
    border-radius: 22px;
    padding: 35px;
    margin-top: 35px;
    box-shadow: 0 15px 40px rgba(0,0,0,.07);
}

    .team-details-section h3 {
        font-size: 26px;
        font-weight: 900;
        margin-bottom: 18px;
        color: #111;
    }

@media only screen and (max-width: 991px) {
    .team-details-card {
        padding: 28px;
    }

    .team-details-image {
        margin-bottom: 28px;
    }

        .team-details-image img {
            height: 480px;
        }

    .team-details-content {
        padding-right: 0;
    }

        .team-details-content h1 {
            font-size: 28px;
        }
}

@media only screen and (max-width: 575px) {
    .team-details-card,
    .team-details-section {
        padding: 22px 18px;
    }

    .team-details-image img {
        height: 390px;
    }

    .team-details-content h1 {
        font-size: 24px;
    }

    .team-details-section h3 {
        font-size: 22px;
    }
}