/* --- HERO --- */
.hero {
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}
.hero-sub {
    font-size: 1.5rem;
    color: var(--text-muted);
    margin-top: 20px;
    max-width: 500px;
}
.hero-scroll-btn {
    position: absolute;
    bottom: 40px;
    right: 40px;
    animation: bounce 2s infinite;
}

/* --- BENTO GRID (ABOUT/SKILLS) --- */
.bento-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    grid-auto-rows: minmax(150px, auto); 
    gap: 20px;
}
.bento-box {
    background: var(--bg-card);
    border-radius: var(--radius);
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    border: 1px solid rgba(0,0,0,0.03);
}
.bento-box:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.05);
}

.box-large { grid-column: 1 / 2; grid-row: 1 / 3; justify-content: start; }
.box-large p { font-size: 1.25rem; margin-top: 20px; color: var(--text-muted); }
.box-skill { background-color: var(--text-main); color: white; }
.box-skill h3 { color: white; }

.skill-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.skill-pill {
    background: rgba(255,255,255,0.2);
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 0.9rem;
}

/* --- SERVICES (List Layout) --- */
.service-item {
    border-top: 1px solid rgba(0,0,0,0.1);
    padding: 40px 0;
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    align-items: center;
    transition: background 0.3s;
}
.service-item:last-child { border-bottom: 1px solid rgba(0,0,0,0.1); }
.service-item:hover { background-color: #fff; padding-left: 20px; padding-right: 20px; border-radius: 10px;}
.service-num { font-family: var(--font-head); font-size: 1.5rem; color: var(--text-muted); }
.service-name { font-size: 2rem; font-weight: 500; }
.service-arrow { justify-self: end; font-size: 2rem; transform: rotate(-45deg); transition: transform 0.3s; }
.service-item:hover .service-arrow { transform: rotate(0); color: var(--primary); }

/* --- PROJECTS (Gallery) --- */
.projects-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    margin-top: 60px;
}
.project-card { position: relative; group; }
.project-card:nth-child(even) { margin-top: 100px; } /* Offset layout */

.project-img-wrap {
    width: 100%;
    height: 500px;
    overflow: hidden;
    border-radius: var(--radius);
    margin-bottom: 20px;
}
.project-img-wrap img {
    width: 100%;
    height: 100%;
    transition: transform 0.7s cubic-bezier(0.2, 1, 0.3, 1);
}
.project-card:hover .project-img-wrap img { transform: scale(1.05); }

.project-meta h3 { font-size: 2rem; font-family: var(--font-head); margin-bottom: 5px; }
.project-tags { color: var(--text-muted); font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; }

/* --- REVIEWS & BLOG (Compact Grid) --- */
.dual-section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap-lg);
}
.review-card {
    background: white;
    padding: 40px;
    border-radius: var(--radius);
    margin-bottom: 30px;
}
.review-quote { font-family: var(--font-head); font-size: 1.4rem; font-style: italic; margin-bottom: 20px; }

.blog-list-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 20px 0;
    border-bottom: 1px dashed rgba(0,0,0,0.1);
}
.blog-list-item h4 { font-size: 1.2rem; font-weight: 500; }
.blog-list-item:hover h4 { color: var(--primary); }

/* --- MOBILE --- */
@media (max-width: 1024px) {
    .bento-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
    .bento-box { padding: 10px; }
    .box-large { grid-column: 1; grid-row: auto; }
    .projects-wrapper { grid-template-columns: 1fr; gap: 40px; }
    .project-card:nth-child(even) { margin-top: 0; }
    .dual-section { grid-template-columns: 1fr; }
    .service-item { grid-template-columns: 1fr auto; gap: 10px; }
    .service-num { display: none; }
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {transform: translateY(0);}
    40% {transform: translateY(-10px);}
    60% {transform: translateY(-5px);}
}