/*
Theme Name: Teracom IT Solution — Full Custom
Version: 3.0.0
Description: Tema WordPress berbasis template HTML Teracom yang diberikan, dengan Full Customizer.
*/
:root{--blog-d:3;--blog-t:2;--blog-m:1;--portfolio-d:3;--portfolio-t:2;--portfolio-m:1;--testimonial-d:3;--testimonial-t:2;--testimonial-m:1;}

        :root {
            --primary: #2563eb;
            --primary-dark: #1d4ed8;
            --secondary: #06b6d4;
            --dark: #0f172a;
            --dark-2: #111827;
            --text: #334155;
            --muted: #64748b;
            --light: #f8fafc;
            --white: #ffffff;
            --border: #e2e8f0;
            --success: #22c55e;
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
        }

        body {
            font-family: "Inter", sans-serif;
            color: var(--text);
            background: var(--white);
            line-height: 1.6;
        }

        a {
            text-decoration: none;
            color: inherit;
        }

        img {
            max-width: 100%;
        }

        .container {
            width: min(1180px, 92%);
            margin: auto;
        }

        /* =========================
           NAVBAR
        ========================== */

        header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            z-index: 999;
            transition: .3s;
        }

        header.scrolled {
            background: rgba(15, 23, 42, .95);
            backdrop-filter: blur(12px);
            box-shadow: 0 8px 30px rgba(0,0,0,.15);
        }

        .navbar {
            height: 76px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .logo {
            display: flex;
            align-items: center;
            gap: 12px;
            color: white;
            font-size: 20px;
            font-weight: 800;
        }

        .logo-icon {
            width: 42px;
            height: 42px;
            border-radius: 12px;
            display: grid;
            place-items: center;
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            box-shadow: 0 8px 25px rgba(37,99,235,.4);
        }

        .nav-links {
            display: flex;
            align-items: center;
            gap: 30px;
            color: white;
            font-size: 14px;
            font-weight: 500;
        }

        .nav-links a {
            opacity: .85;
            transition: .3s;
        }

        .nav-links a:hover {
            opacity: 1;
            color: #60a5fa;
        }

        .nav-button {
            padding: 11px 18px;
            border-radius: 10px;
            background: var(--primary);
            opacity: 1 !important;
        }

        .nav-button:hover {
            background: var(--primary-dark);
            color: white !important;
        }

        .menu-toggle {
            display: none;
            color: white;
            font-size: 25px;
            cursor: pointer;
        }

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

        .hero {
            min-height: 760px;
            padding-top: 150px;
            padding-bottom: 100px;
            display: flex;
            align-items: center;
            position: relative;
            overflow: hidden;
            background:
                radial-gradient(circle at 80% 20%, rgba(37,99,235,.35), transparent 35%),
                radial-gradient(circle at 20% 80%, rgba(6,182,212,.18), transparent 30%),
                linear-gradient(135deg, #020617, #0f172a 55%, #172554);
        }

        .hero::before {
            content: "";
            position: absolute;
            inset: 0;
            opacity: .08;
            background-image:
                linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px);
            background-size: 45px 45px;
        }

        .hero-content {
            position: relative;
            z-index: 2;
            max-width: 760px;
        }

        .badge {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 8px 14px;
            border-radius: 50px;
            color: #bfdbfe;
            background: rgba(37,99,235,.15);
            border: 1px solid rgba(96,165,250,.25);
            font-size: 13px;
            margin-bottom: 22px;
        }

        .badge i {
            color: #60a5fa;
        }

        .hero h1 {
            color: white;
            font-size: clamp(42px, 6vw, 72px);
            line-height: 1.08;
            letter-spacing: -3px;
            margin-bottom: 25px;
        }

        .hero h1 span {
            background: linear-gradient(90deg, #60a5fa, #22d3ee);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        .hero p {
            color: #cbd5e1;
            max-width: 650px;
            font-size: 18px;
            margin-bottom: 35px;
        }

        .hero-buttons {
            display: flex;
            flex-wrap: wrap;
            gap: 14px;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 9px;
            padding: 14px 23px;
            border-radius: 11px;
            font-size: 14px;
            font-weight: 600;
            transition: .3s;
        }

        .btn-primary {
            color: white;
            background: var(--primary);
            box-shadow: 0 10px 30px rgba(37,99,235,.35);
        }

        .btn-primary:hover {
            transform: translateY(-3px);
            background: var(--primary-dark);
        }

        .btn-outline {
            color: white;
            border: 1px solid rgba(255,255,255,.2);
            background: rgba(255,255,255,.05);
        }

        .btn-outline:hover {
            background: rgba(255,255,255,.1);
            transform: translateY(-3px);
        }

        /* floating cards */

        .floating-card {
            position: absolute;
            z-index: 3;
            background: rgba(255,255,255,.08);
            border: 1px solid rgba(255,255,255,.13);
            backdrop-filter: blur(15px);
            border-radius: 18px;
            padding: 18px;
            color: white;
            box-shadow: 0 20px 60px rgba(0,0,0,.25);
            animation: floating 5s ease-in-out infinite;
        }

        .card-camera {
            right: 8%;
            top: 28%;
        }
		
		.card-app {
            right: 25%;
            top: 46%;
        }

        .card-network {
            right: 15%;
            bottom: 20%;
            animation-delay: 1s;
        }

        .floating-card i {
            font-size: 25px;
            color: #60a5fa;
            margin-bottom: 8px;
        }

        .floating-card strong {
            display: block;
            font-size: 13px;
        }

        .floating-card small {
            color: #94a3b8;
        }

        @keyframes floating {
            0%, 100% {
                transform: translateY(0);
            }
            50% {
                transform: translateY(-15px);
            }
        }

        /* =========================
           STATS
        ========================== */

        .stats {
            margin-top: -55px;
            position: relative;
            z-index: 10;
        }

        .stats-box {
            background: white;
            border-radius: 18px;
            box-shadow: 0 15px 50px rgba(15,23,42,.12);
            padding: 30px;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 20px;
        }

        .stat {
            text-align: center;
            border-right: 1px solid var(--border);
        }

        .stat:last-child {
            border: 0;
        }

        .stat h3 {
            font-size: 30px;
            color: var(--dark);
        }

        .stat p {
            color: var(--muted);
            font-size: 13px;
        }

        /* =========================
           GENERAL
        ========================== */

        section {
            padding: 100px 0;
        }

        .section-header {
            max-width: 650px;
            margin: 0 auto 55px;
            text-align: center;
        }

        .section-label {
            color: var(--primary);
            text-transform: uppercase;
            font-size: 12px;
            letter-spacing: 2px;
            font-weight: 700;
            margin-bottom: 10px;
        }

        .section-header h2 {
            font-size: clamp(30px, 4vw, 44px);
            color: var(--dark);
            line-height: 1.2;
            margin-bottom: 15px;
        }

        .section-header p {
            color: var(--muted);
        }

        /* =========================
           SERVICES
        ========================== */

        .services {
            background: var(--light);
        }

        .service-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 22px;
        }

        .service-card {
            background: white;
            padding: 30px;
            border-radius: 18px;
            border: 1px solid var(--border);
            transition: .35s;
            position: relative;
            overflow: hidden;
        }

        .service-card::before {
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 3px;
            background: linear-gradient(90deg, var(--primary), var(--secondary));
            transform: scaleX(0);
            transform-origin: left;
            transition: .35s;
        }

        .service-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 50px rgba(15,23,42,.1);
        }

        .service-card:hover::before {
            transform: scaleX(1);
        }

        .service-icon {
            width: 58px;
            height: 58px;
            border-radius: 15px;
            display: grid;
            place-items: center;
            background: #eff6ff;
            color: var(--primary);
            font-size: 24px;
            margin-bottom: 22px;
        }

        .service-card h3 {
            color: var(--dark);
            font-size: 19px;
            margin-bottom: 10px;
        }

        .service-card p {
            font-size: 14px;
            color: var(--muted);
            margin-bottom: 18px;
        }

        .service-list {
            list-style: none;
        }

        .service-list li {
            font-size: 13px;
            margin: 9px 0;
            color: #475569;
        }

        .service-list i {
            color: var(--success);
            margin-right: 7px;
        }

        /* =========================
           ABOUT
        ========================== */

        .about-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 70px;
            align-items: center;
        }

        /* =========================================================
   ABOUT - BACKGROUND SERVER ROOM
   ========================================================= */

.about-visual {
    min-height: 430px !important;
    border-radius: 25px !important;

    background-image:
        linear-gradient(
            rgba(15, 23, 42, 0.42),
            rgba(15, 23, 42, 0.80)
        ),
        url('https://teracom-solution.biz.id/wp-content/uploads/2026/08/back-tera.png') !important;

    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;

    position: relative !important;
    overflow: hidden !important;
    padding: 35px !important;

    display: flex !important;
    align-items: flex-end !important;
}


/* Hilangkan tulisan < IT SOLUTION /> */
.about-visual::before {
    content: none !important;
    display: none !important;
}
        .about-card {
            position: relative;
            z-index: 2;
            color: white;
        }

        .about-card i {
            font-size: 40px;
            color: #67e8f9;
            margin-bottom: 20px;
        }

        .about-card h3 {
            font-size: 27px;
            margin-bottom: 10px;
        }

        .about-card p {
            color: #cbd5e1;
        }

        .about-content h2 {
            color: var(--dark);
            font-size: clamp(30px, 4vw, 45px);
            line-height: 1.2;
            margin-bottom: 20px;
        }

        .about-content > p {
            color: var(--muted);
            margin-bottom: 25px;
        }

        .check-item {
            display: flex;
            gap: 13px;
            margin-bottom: 17px;
        }

        .check-icon {
            width: 25px;
            height: 25px;
            flex: 0 0 25px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            background: #dcfce7;
            color: #16a34a;
            font-size: 12px;
        }

        .check-item strong {
            color: var(--dark);
            display: block;
            margin-bottom: 2px;
        }

        .check-item span {
            color: var(--muted);
            font-size: 13px;
        }

        /* =========================
           PROCESS
        ========================== */

        .process {
            background: var(--light);
        }

        .process-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 25px;
        }

        .process-item {
            text-align: center;
            position: relative;
        }

        .process-number {
            width: 58px;
            height: 58px;
            margin: auto auto 20px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            color: white;
            font-weight: 800;
            background: linear-gradient(135deg, var(--primary), var(--secondary));
        }

        .process-item h3 {
            color: var(--dark);
            margin-bottom: 8px;
            font-size: 17px;
        }

        .process-item p {
            color: var(--muted);
            font-size: 13px;
        }

        /* =========================
           CTA
        ========================== */

        .cta {
            padding: 80px 0;
        }

        .cta-box {
            border-radius: 25px;
            padding: 65px;
            color: white;
            background:
                radial-gradient(circle at 80% 20%, rgba(34,211,238,.25), transparent 30%),
                linear-gradient(135deg, #1d4ed8, #0f172a);
            position: relative;
            overflow: hidden;
        }

        .cta-box h2 {
            font-size: clamp(30px, 4vw, 45px);
            max-width: 650px;
            line-height: 1.15;
            margin-bottom: 15px;
        }

        .cta-box p {
            color: #cbd5e1;
            max-width: 620px;
            margin-bottom: 25px;
        }

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

        footer {
            background: #020617;
            color: white;
            padding: 70px 0 25px;
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 1.5fr 1fr 1fr 1fr;
            gap: 40px;
            margin-bottom: 50px;
        }

        .footer-brand p {
            color: #94a3b8;
            max-width: 350px;
            margin-top: 15px;
            font-size: 14px;
        }

        .footer-title {
            font-size: 14px;
            margin-bottom: 18px;
        }

        .footer-links {
            list-style: none;
        }

        .footer-links li {
            margin: 11px 0;
            color: #94a3b8;
            font-size: 13px;
        }

        .footer-links a:hover {
            color: white;
        }

        .copyright {
            border-top: 1px solid rgba(255,255,255,.1);
            padding-top: 25px;
            color: #64748b;
            text-align: center;
            font-size: 12px;
        }

        /* =========================
           WHATSAPP
        ========================== */

        .whatsapp {
            position: fixed;
            right: 25px;
            bottom: 25px;
            z-index: 999;
            width: 58px;
            height: 58px;
            display: grid;
            place-items: center;
            border-radius: 50%;
            color: white;
            background: #25D366;
            font-size: 27px;
            box-shadow: 0 10px 30px rgba(37,211,102,.35);
            transition: .3s;
        }

        .whatsapp:hover {
            transform: scale(1.1);
        }

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

        @media (max-width: 1000px) {

            .service-grid {
                grid-template-columns: repeat(2, 1fr);
            }

            .process-grid {
                grid-template-columns: repeat(2, 1fr);
                row-gap: 40px;
            }

            .about-grid {
                gap: 40px;
            }

            .card-camera {
                right: 3%;
            }
			 .card-app {
                right: 5%;
            }

            .card-network {
                right: 8%;
            }
        }

        @media (max-width: 800px) {

            .menu-toggle {
                display: block;
            }

            .nav-links {
                position: absolute;
                top: 76px;
                left: 4%;
                right: 4%;
                display: none;
                flex-direction: column;
                align-items: stretch;
                gap: 0;
                padding: 15px;
                border-radius: 15px;
                background: #0f172a;
                box-shadow: 0 20px 40px rgba(0,0,0,.3);
            }

            .nav-links.active {
                display: flex;
            }

            .nav-links a {
                padding: 13px;
            }

            .nav-button {
                text-align: center;
                margin-top: 8px;
            }

            .hero {
                min-height: 700px;
                padding-top: 130px;
            }

            .floating-card {
                display: none;
            }

            .stats-box {
                grid-template-columns: repeat(2, 1fr);
            }

            .stat:nth-child(2) {
                border: 0;
            }

            .about-grid {
                grid-template-columns: 1fr;
            }

            .footer-grid {
                grid-template-columns: 1fr 1fr;
            }
        }

        @media (max-width: 600px) {

            section {
                padding: 75px 0;
            }

            .hero h1 {
                letter-spacing: -2px;
            }

            .hero p {
                font-size: 15px;
            }

            .hero-buttons {
                flex-direction: column;
            }

            .btn {
                width: 100%;
            }

            .stats-box {
                padding: 20px 10px;
            }

            .stat h3 {
                font-size: 23px;
            }

            .stat p {
                font-size: 11px;
            }

            .service-grid {
                grid-template-columns: 1fr;
            }

            .process-grid {
                grid-template-columns: 1fr;
            }

            .about-visual {
                min-height: 320px;
            }

            .cta-box {
                padding: 40px 25px;
            }

            .footer-grid {
                grid-template-columns: 1fr;
                gap: 30px;
            }

            .whatsapp {
                right: 18px;
                bottom: 18px;
            }
        }
		
.rotating-word {
    display: inline-block;
    min-width: 250px;

    background: linear-gradient(90deg, #60a5fa, #22d3ee);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

    transition:
        opacity .35s ease,
        transform .35s ease;
}

.rotating-word.hide {
    opacity: 0;
    transform: translateY(15px);
}

.rotating-word.show {
    opacity: 1;
    transform: translateY(0);
}

    
/* ===== WORDPRESS FULL CUSTOM ADDITIONS ===== */
.service-grid{grid-template-columns:repeat(var(--service-d,4),minmax(0,1fr));gap:var(--service-gap,22px)}
.service-card{border-radius:var(--service-radius,18px)}
.blog-grid,.portfolio-grid,.testimonial-grid{display:grid;gap:var(--wp-card-gap,22px)}
.blog-grid{grid-template-columns:repeat(var(--blog-d,3),minmax(0,1fr))}
.portfolio-grid{grid-template-columns:repeat(var(--portfolio-d,3),minmax(0,1fr));gap:var(--portfolio-gap,22px)}
.testimonial-grid{grid-template-columns:repeat(var(--testimonial-d,3),minmax(0,1fr));gap:var(--testimonial-gap,22px)}
.blog-card,.portfolio-card,.testimonial-card{background:#fff;border:1px solid var(--border);overflow:hidden;transition:.35s}
.blog-card{border-radius:var(--wp-radius,18px)}
.portfolio-card{border-radius:var(--portfolio-radius,18px)}
.testimonial-card{border-radius:var(--testimonial-radius,18px)}
.blog-card:hover,.portfolio-card:hover,.testimonial-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px rgba(15,23,42,.1)}
.blog-image{height:var(--wp-image-height,220px);overflow:hidden;background:#e2e8f0}
.portfolio-image{height:var(--portfolio-height,260px);overflow:hidden;background:#e2e8f0}
.blog-image img,.portfolio-image img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.blog-body,.portfolio-body,.testimonial-body{padding:22px}
.blog-body h3,.portfolio-body h3,.testimonial-body h3{color:var(--dark);margin-bottom:8px}
.blog-body p,.portfolio-body p,.testimonial-body p{color:var(--muted);font-size:14px}
.blog-date{font-size:12px;color:var(--muted);margin-bottom:8px}
.faq-wrap{max-width:850px;margin:auto}.faq-item{background:#fff;border:1px solid var(--border);border-radius:14px;margin:10px 0;padding:18px 22px}.faq-item summary{cursor:pointer;font-weight:700;color:var(--dark)}.faq-answer{color:var(--muted);font-size:14px;padding-top:12px}
.page-header{padding:150px 0 70px;background:linear-gradient(135deg,#020617,#0f172a);color:#fff}.page-header h1{font-size:clamp(34px,5vw,56px);line-height:1.15}
.content-area{padding:70px 0}.content-wrap{max-width:850px;margin:auto}.content-wrap h2,.content-wrap h3{color:var(--dark);margin:25px 0 10px}.content-wrap p{margin:12px 0}.content-wrap img{border-radius:16px}.post-meta{color:var(--muted);font-size:13px;margin-top:10px}
@media(max-width:1000px){.service-grid{grid-template-columns:repeat(var(--service-t,2),minmax(0,1fr))}.blog-grid{grid-template-columns:repeat(var(--blog-t,2),minmax(0,1fr))}.portfolio-grid{grid-template-columns:repeat(var(--portfolio-t,2),minmax(0,1fr))}.testimonial-grid{grid-template-columns:repeat(var(--testimonial-t,2),minmax(0,1fr))}}
@media(max-width:600px){.service-grid{grid-template-columns:repeat(var(--service-m,1),minmax(0,1fr))}.blog-grid{grid-template-columns:repeat(var(--blog-m,1),minmax(0,1fr))}.portfolio-grid{grid-template-columns:repeat(var(--portfolio-m,1),minmax(0,1fr))}.testimonial-grid{grid-template-columns:repeat(var(--testimonial-m,1),minmax(0,1fr))}}
