/* ==========================================================================
   Soofi Studio - Premium Apple / Stripe 2026/2027 Design System
   Brand Colors: #ff6735 (Orange), #faf7f2 (Cream/Off-white), #3a3a3a (Dark)
   ========================================================================== */

:root {
    --brand-orange: #ff6735;
    --brand-orange-light: rgba(255, 103, 53, 0.12);
    --brand-orange-glow: rgba(255, 103, 53, 0.35);
    --brand-cream: #faf7f2;
    --brand-dark: #3a3a3a;
    --white: #ffffff;
    --text-muted: #6e6e73;
    --border-light: rgba(0, 0, 0, 0.06);
    --font-main: 'Plus Jakarta Sans', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --ease-spring: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Base Reset */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
}

body {
    font-family: var(--font-main);
    background-color: var(--brand-cream);
    color: var(--brand-dark);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Ambient Background Glows */
.ambient-glow {
    position: fixed;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    filter: blur(140px);
    z-index: -1;
    pointer-events: none;
    opacity: 0.45;
}

.glow-1 {
    top: -200px;
    right: -100px;
    background: radial-gradient(circle, #ff6735 0%, rgba(255,103,53,0) 70%);
}

.glow-2 {
    bottom: -200px;
    left: -100px;
    background: radial-gradient(circle, #ffd0b8 0%, rgba(250,247,242,0) 70%);
}

/* Navbar */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    padding: 16px 24px;
}

.navbar {
    max-width: 1140px;
    margin: 0 auto;
    background: rgba(250, 247, 242, 0.75);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 100px;
    padding: 10px 28px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}

.nav-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand-logo {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.logo-img {
    height: 38px;
    width: auto;
    object-fit: contain;
}

.nav-links {
    display: flex;
    list-style: none;
    gap: 32px;
}

.nav-links a {
    text-decoration: none;
    color: var(--brand-dark);
    font-size: 0.95rem;
    font-weight: 500;
    transition: color 0.3s var(--ease-spring);
}

.nav-links a:hover {
    color: var(--brand-orange);
}

/* Buttons */
.btn-primary-glow {
    background: var(--brand-orange);
    color: var(--white);
    padding: 12px 26px;
    border-radius: 100px;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    transition: all 0.4s var(--ease-spring);
    box-shadow: 0 6px 20px var(--brand-orange-glow);
    border: none;
    cursor: pointer;
}

.btn-primary-glow:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 12px 28px var(--brand-orange-glow);
    background: #ff551f;
}

.btn-glass {
    background: rgba(255, 255, 255, 0.6);
    color: var(--brand-dark);
    padding: 12px 26px;
    border-radius: 100px;
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: none;
    display: inline-block;
    border: 1px solid rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(10px);
    transition: all 0.4s var(--ease-spring);
}

.btn-glass:hover {
    background: var(--white);
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

/* --- HERO SECTION (ASYMMETRICAL) --- */
.hero-section {
    padding: 160px 24px 80px;
    position: relative;
}

.hero-asymmetric {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
}

.hero-content-left {
    text-align: left;
    z-index: 2;
}

.hero-title {
    font-size: clamp(3rem, 5vw, 5rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.04em;
    margin-bottom: 24px;
    color: var(--brand-dark);
}

.hero-subtitle {
    font-size: clamp(1.1rem, 2vw, 1.25rem);
    color: var(--text-muted);
    max-width: 540px;
    margin: 0 0 40px 0; /* Rapat kiri */
    font-weight: 400;
}

.hero-actions {
    display: flex;
    justify-content: flex-start; /* Rapat kiri */
    gap: 16px;
    flex-wrap: wrap;
}

/* --- KAD TERAPUNG DI KANAN --- */
.hero-visual-right {
    position: relative;
    height: 100%;
    min-height: 400px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
    perspective: 1000px;
}

.floating-glass-card {
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.8);
    padding: 32px;
    border-radius: 28px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.04);
    width: 75%;
    position: relative;
    overflow: hidden;
    transition: transform 0.5s var(--ease-spring), box-shadow 0.5s ease;
}

.card-glow-mini {
    position: absolute;
    bottom: -20px;
    right: -20px;
    width: 100px;
    height: 100px;
    background: var(--brand-orange);
    filter: blur(40px);
    opacity: 0.3;
}

.card-1 {
    align-self: flex-end;
    transform: rotateY(-5deg) translateX(10px);
}

.card-2 {
    align-self: flex-start;
    transform: rotateY(5deg) translateY(-20px);
}

.floating-glass-card:hover {
    transform: scale(1.05) translateY(-10px) rotateY(0deg);
    box-shadow: 0 30px 60px rgba(255, 103, 53, 0.15);
    border-color: rgba(255, 103, 53, 0.4);
}

.stat-number {
    display: block;
    font-size: 2.2rem;
    font-weight: 800;
    color: var(--brand-orange);
    letter-spacing: -0.02em;
    margin-bottom: 4px;
}

.stat-label {
    font-size: 0.95rem;
    color: var(--brand-dark);
    font-weight: 600;
}

/* --- SECTION HEADER (RAPAT KIRI) --- */
.section-header-left {
    text-align: left;
    max-width: 700px;
    margin: 0 0 48px 0;
}

/* --- RESPONSIVE MOBILE TWEAKS --- */
@media (max-width: 950px) {
    .hero-asymmetric {
        grid-template-columns: 1fr;
        text-align: center;
        margin-top: 40px;
    }
    .hero-content-left {
        text-align: center;
    }
    .hero-subtitle {
        margin: 0 auto 40px auto;
    }
    .hero-actions {
        justify-content: center;
    }
    .hero-visual-right {
        display: none; /* Sembunyikan kad 3D di skrin kecil supaya tak semak */
    }
    .section-header-left {
        text-align: center;
        margin: 0 auto 48px auto;
    }
}

/* Bento Grid */
.bento-section {
    padding: 120px 24px;
    max-width: 1140px;
    margin: 0 auto;
}

.section-header {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 64px;
}

.section-tag {
    color: var(--brand-orange);
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 12px;
    display: block;
}

.section-title {
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin-bottom: 16px;
}

.section-desc {
    color: var(--text-muted);
    font-size: 1.1rem;
}

.bento-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 24px;
}

.bento-card {
    background: var(--white);
    border-radius: 28px;
    padding: 40px;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.8);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    transition: all 0.4s var(--ease-spring);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.bento-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 25px 50px rgba(255, 103, 53, 0.12);
    border-color: rgba(255, 103, 53, 0.3);
}

.card-large { grid-column: span 12; min-height: 320px; }
.card-medium { grid-column: span 6; min-height: 280px; }
.card-wide { grid-column: span 12; min-height: 200px; }

@media (max-width: 850px) {
    .card-large, .card-medium, .card-wide { grid-column: span 12; }
}

.card-icon-wrapper {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: var(--brand-orange-light);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
}

.card-badge {
    position: absolute;
    top: 32px;
    right: 32px;
    background: var(--brand-dark);
    color: var(--white);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 100px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.card-content h3 {
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
}

.card-content p {
    color: var(--text-muted);
    font-size: 1.05rem;
    line-height: 1.6;
}

.card-pills {
    display: flex;
    gap: 10px;
    margin-top: 24px;
    flex-wrap: wrap;
}

.pill {
    background: var(--brand-cream);
    padding: 6px 14px;
    border-radius: 100px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--brand-dark);
}

.card-content-inline {
    display: flex;
    align-items: center;
    gap: 24px;
}

/* CTA Section */
.cta-section {
    padding: 80px 24px 120px;
    max-width: 1140px;
    margin: 0 auto;
}

.cta-card {
    background: var(--brand-dark);
    color: var(--white);
    border-radius: 36px;
    padding: 80px 40px;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0,0,0,0.15);
}

.cta-glow {
    position: absolute;
    top: -50%;
    left: 50%;
    transform: translateX(-50%);
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(255, 103, 53, 0.4) 0%, rgba(0,0,0,0) 70%);
    pointer-events: none;
}

.cta-card h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 16px;
    letter-spacing: -0.03em;
}

.cta-card p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.15rem;
    max-width: 600px;
    margin: 0 auto 36px;
}

.btn-large {
    padding: 16px 36px;
    font-size: 1.05rem;
}

/* Footer */
.site-footer {
    background: var(--white);
    border-top: 1px solid var(--border-light);
    padding: 80px 24px 40px;
}

.footer-container {
    max-width: 1140px;
    margin: 0 auto;
}

.footer-top {
    display: flex;
    justify-content: space-between;
    gap: 60px;
    margin-bottom: 60px;
    flex-wrap: wrap;
}

.footer-logo {
    height: 42px;
    margin-bottom: 12px;
}

.footer-tagline {
    color: var(--text-muted);
    font-weight: 500;
}

.footer-links-group {
    display: flex;
    gap: 80px;
    flex-wrap: wrap;
}

.footer-col h4 {
    font-size: 0.9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
    color: var(--brand-dark);
}

.footer-col ul {
    list-style: none;
}

.footer-col li {
    margin-bottom: 12px;
}

.footer-col a {
    text-decoration: none;
    color: var(--text-muted);
    font-size: 0.95rem;
    transition: color 0.3s ease;
}

.footer-col a:hover {
    color: var(--brand-orange);
}

.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 32px;
    border-top: 1px solid var(--border-light);
    color: var(--text-muted);
    font-size: 0.9rem;
    flex-wrap: wrap;
    gap: 16px;
}
/* ==========================================================================
   SCROLL REVEAL ANIMATION (2026 MAGIC)
   ========================================================================== */
.reveal-element {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-element.active {
    opacity: 1;
    transform: translateY(0);
}

/* Staggered Delay untuk bagi kesan berantai (macam domino) */
.delay-1 { transition-delay: 0.1s; }
.delay-2 { transition-delay: 0.2s; }
.delay-3 { transition-delay: 0.3s; }

/* ==========================================================================
   INTERNAL PAGES & CONTACT FORM (2026 STYLE)
   ========================================================================== */
.page-header {
    padding: 180px 24px 60px;
    text-align: center;
    background: radial-gradient(circle at top, rgba(255, 103, 53, 0.05) 0%, transparent 60%);
}

.header-container h1 {
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    margin-bottom: 16px;
}

.header-container p {
    color: var(--text-muted);
    font-size: 1.15rem;
    max-width: 600px;
    margin: 0 auto;
}

/* Contact Section */
.contact-section {
    padding: 40px 24px 120px;
    max-width: 1140px;
    margin: 0 auto;
}

.contact-container {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 60px;
    align-items: flex-start;
}

.contact-info h3 {
    font-size: 2rem;
    margin-bottom: 16px;
    letter-spacing: -0.02em;
}

.contact-info p {
    color: var(--text-muted);
    margin-bottom: 40px;
    font-size: 1.1rem;
}

.info-block {
    margin-bottom: 24px;
}

.info-label {
    display: block;
    font-size: 0.85rem;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--brand-orange);
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.info-block a {
    color: var(--brand-dark);
    text-decoration: none;
    font-weight: 600;
    font-size: 1.1rem;
    transition: color 0.3s ease;
}

.info-block a:hover { color: var(--brand-orange); }

/* Form Design */
.contact-form-wrapper {
    width: 100%;
    transform: none !important; /* Batalkan efek terapung 3D dari hero */
}

.contact-form-wrapper:hover {
    transform: translateY(-5px) !important;
}

.form-group { margin-bottom: 24px; }

.form-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--brand-dark);
}

.soofi-form input,
.soofi-form select,
.soofi-form textarea {
    width: 100%;
    padding: 16px 20px;
    border-radius: 16px;
    border: 1px solid var(--border-light);
    background: rgba(255, 255, 255, 0.7);
    font-family: var(--font-main);
    font-size: 1rem;
    color: var(--brand-dark);
    transition: all 0.3s var(--ease-spring);
    outline: none;
}

.soofi-form input:focus,
.soofi-form select:focus,
.soofi-form textarea:focus {
    background: var(--white);
    border-color: var(--brand-orange);
    box-shadow: 0 0 0 4px var(--brand-orange-light);
}

.alert {
    padding: 16px 20px;
    border-radius: 12px;
    margin-bottom: 24px;
    font-weight: 600;
    font-size: 0.95rem;
}
.alert.success { background: #e8f5e9; color: #2e7d32; border: 1px solid #c8e6c9; }
.alert.error { background: #ffebee; color: #c62828; border: 1px solid #ffcdd2; }

@media (max-width: 850px) {
    .contact-container { grid-template-columns: 1fr; gap: 40px; }
}
/* ==========================================================================
   FLOATING AUDIO PLAYER (2026 GLASSMORPHISM)
   ========================================================================== */
.floating-player-widget {
    position: fixed;
    bottom: 28px;
    right: 28px;
    z-index: 9999;
}

.player-glass-card {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.9);
    padding: 12px 20px;
    border-radius: 100px;
    display: flex;
    align-items: center;
    gap: 16px;
    box-shadow: 
        0 12px 32px rgba(0, 0, 0, 0.08),
        0 2px 6px rgba(255, 103, 53, 0.15);
    transition: transform 0.3s var(--ease-spring);
}

.player-glass-card:hover {
    transform: translateY(-4px) scale(1.02);
}

.player-track-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.track-disc {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--brand-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 0.9rem;
    transition: transform 0.5s ease;
}

.track-disc.spinning {
    animation: rotateDisc 3s linear infinite;
    background: var(--brand-orange);
}

@keyframes rotateDisc {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.track-details {
    display: flex;
    flex-direction: column;
}

.track-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--brand-dark);
    line-height: 1.2;
}

.track-artist {
    font-size: 0.75rem;
    color: var(--text-muted);
    font-weight: 500;
}

.play-btn {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--brand-orange);
    color: var(--white);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s var(--ease-spring);
    box-shadow: 0 4px 12px var(--brand-orange-glow);
}

.play-btn:hover {
    transform: scale(1.08);
    background: #ff551f;
}

/* ==========================================================================
   ARTIST ROSTER PAGE (2026 SHOWCASE)
   ========================================================================== */
.roster-section {
    padding: 40px 24px 120px;
    max-width: 1140px;
    margin: 0 auto;
}

.roster-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}

.artist-card {
    width: 100% !important;
    padding: 0 !important;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.artist-image-placeholder {
    width: 100%;
    height: 260px;
    background: linear-gradient(135deg, #ff6735 0%, #3a3a3a 100%);
    position: relative;
}

.artist-badge {
    position: absolute;
    top: 20px;
    left: 20px;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(10px);
    color: var(--white);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 100px;
    text-transform: uppercase;
}

.artist-info {
    padding: 32px;
}

.artist-genre {
    color: var(--brand-orange);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: block;
    margin-bottom: 8px;
}

.artist-info h3 {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
}

.artist-info p {
    color: var(--text-muted);
    font-size: 1rem;
    margin-bottom: 24px;
}

.artist-meta {
    display: flex;
    gap: 24px;
    padding: 16px 0;
    border-top: 1px solid var(--border-light);
    border-bottom: 1px solid var(--border-light);
    margin-bottom: 24px;
}

.meta-value {
    display: block;
    font-weight: 700;
    color: var(--brand-dark);
    font-size: 0.95rem;
}

.meta-label {
    font-size: 0.8rem;
    color: var(--text-muted);
}

.artist-actions {
    display: flex;
    gap: 12px;
}

.callout-card {
    background: var(--brand-dark);
    color: var(--white);
    border-radius: 28px;
    padding: 48px 32px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.callout-content h2 {
    font-size: 2.2rem;
    font-weight: 800;
    margin: 12px 0;
    letter-spacing: -0.02em;
}

.callout-content p {
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 28px;
    font-size: 1.05rem;
}

@media (max-width: 850px) {
    .roster-container {
        grid-template-columns: 1fr;
    }
}
/* ==========================================================================
   LATEST RELEASES SHOWCASE (2026 STYLE)
   ========================================================================== */
.releases-section {
    padding: 60px 24px 120px;
    max-width: 1140px;
    margin: 0 auto;
}

.releases-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.release-card {
    display: flex;
    flex-direction: column;
    transition: transform 0.4s var(--ease-spring);
    cursor: pointer;
}

.release-card:hover {
    transform: translateY(-8px);
}

.artwork-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1; /* Wajib petak (square) macam cover album */
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
    margin-bottom: 24px;
}

.album-artwork {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s var(--ease-spring);
}

.release-card:hover .album-artwork {
    transform: scale(1.05); /* Gambar zoom in sikit bila hover */
}

/* Overlay Butang Play */
.play-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.release-card:hover .play-overlay {
    opacity: 1;
}

.play-btn-large {
    width: 64px;
    height: 64px;
    background: var(--brand-orange);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateY(20px) scale(0.8);
    transition: all 0.4s var(--ease-spring);
    box-shadow: 0 10px 25px var(--brand-orange-glow);
}

.release-card:hover .play-btn-large {
    transform: translateY(0) scale(1);
}

/* Info Text */
.release-info {
    text-align: center;
}

.release-date {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--brand-orange);
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.release-info h3 {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--brand-dark);
    margin-bottom: 4px;
    letter-spacing: -0.02em;
}

.release-info p {
    color: var(--text-muted);
    font-size: 0.95rem;
    font-weight: 500;
}

/* Responsif Mobile */
@media (max-width: 900px) {
    .releases-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media (max-width: 600px) {
    .releases-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .artwork-wrapper {
        max-width: 350px;
        margin-left: auto;
        margin-right: auto;
    }
}
/* ==========================================================================
   DEDICATED ARTIST GRID (2026 MAGAZINE STYLE)
   ========================================================================== */
.roster-grid-section {
    padding: 0 24px 120px;
    max-width: 1140px;
    margin: 0 auto;
}

.roster-grid-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
}

.roster-item {
    display: block;
    text-decoration: none;
    border-radius: 24px;
    overflow: hidden;
    position: relative;
    transform: translateY(0);
    transition: transform 0.4s var(--ease-spring), box-shadow 0.4s ease;
}

.roster-item:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(255, 103, 53, 0.15);
}

.roster-image-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4; /* Portrait ratio (menegak) untuk muka manusia */
    overflow: hidden;
    background: var(--border-light);
}

.roster-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.7s var(--ease-spring);
}

.roster-item:hover .roster-image-wrapper img {
    transform: scale(1.08); /* Efek zoom perlahan bila letak mouse */
}

/* Overlay Gelap di bawah nama artis */
.roster-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, rgba(18, 18, 18, 0.85) 0%, rgba(18, 18, 18, 0.2) 40%, transparent 100%);
    display: flex;
    align-items: flex-end;
    padding: 32px;
    transition: all 0.4s ease;
}

/* Tukar warna background overlay bila hover (Gaya Soofi Studio) */
.roster-item:hover .roster-overlay {
    background: linear-gradient(to top, rgba(255, 103, 53, 0.95) 0%, rgba(18, 18, 18, 0.6) 60%, transparent 100%);
}

.roster-info {
    width: 100%;
    transform: translateY(20px);
    transition: transform 0.4s var(--ease-spring);
}

.roster-item:hover .roster-info {
    transform: translateY(0);
}

.roster-genre {
    display: block;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
    transition: color 0.3s ease;
}

.roster-item:hover .roster-genre {
    color: rgba(255, 255, 255, 0.9);
}

.roster-info h3 {
    color: #ffffff !important;
    font-size: 2.2rem;
    font-weight: 800;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.roster-view-btn {
    display: inline-block;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 600;
    opacity: 0;
    transform: translateX(-10px);
    transition: all 0.4s var(--ease-spring);
}

.roster-item:hover .roster-view-btn {
    opacity: 1;
    transform: translateX(0);
}

/* Responsif Mobile & Tablet */
@media (max-width: 950px) {
    .roster-grid-container { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .roster-grid-container { grid-template-columns: 1fr; gap: 24px; }
    /* Sentiasa keluarkan teks di skrin telefon */
    .roster-overlay { background: linear-gradient(to top, rgba(18, 18, 18, 0.9) 0%, transparent 100%); }
    .roster-info { transform: translateY(0); }
    .roster-view-btn { opacity: 1; transform: translateX(0); color: var(--brand-orange); }
}

/* ==========================================================================
   SEAMLESS PAGE LOAD ANIMATION (NATIVE APP FEEL)
   ========================================================================== */
.page-transition-area {
    animation: smoothLoad 0.5s var(--ease-spring) forwards;
}

@keyframes smoothLoad {
    0% { 
        opacity: 0; 
        transform: translateY(15px); 
    }
    100% { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

/* ==========================================================================
   MOBILE HAMBURGER MENU & OVERLAY (2026 STYLE)
   ========================================================================== */
.mobile-menu-btn {
    display: none;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    z-index: 1002;
    flex-direction: column;
    gap: 5px;
    align-items: center;
    justify-content: center;
}

.mobile-menu-btn .bar {
    width: 22px;
    height: 2px;
    background-color: var(--brand-dark);
    border-radius: 2px;
    transition: all 0.3s var(--ease-spring);
}

/* Mobile Menu Glassmorphism Overlay */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(250, 247, 242, 0.95);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s var(--ease-spring);
    transform: translateY(-20px);
}

.mobile-menu-overlay.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.mobile-nav-links {
    list-style: none;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.mobile-nav-links a {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--brand-dark);
    text-decoration: none;
    transition: color 0.3s ease;
}

.mobile-nav-links a:hover {
    color: var(--brand-orange);
}

.mobile-cta {
    font-size: 1.1rem !important;
    margin-top: 10px;
    padding: 14px 32px !important;
}

body.menu-open {
    overflow: hidden;
}

/* ==========================================================================
   DEDICATED ARTIST PROFILE (2026 STYLE)
   ========================================================================== */
.artist-hero {
    position: relative;
    min-height: 75vh;
    display: flex;
    align-items: flex-end;
    padding: 120px 24px 60px;
}

.artist-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -2;
    overflow: hidden; /* INI PENYELESAIANNYA: Potong gambar yang melimpah */
}

.artist-hero-bg img {
    width: 100%;
    /* Tambah ketinggian jadi 120% supaya ada ruang tambahan untuk parallax bergerak */
    height: 120%; 
    object-fit: cover;
    object-position: center 20%;
    /* Supaya pergerakannya nampak lebih smooth (tiada lag pada skrin 120Hz) */
    will-change: transform; 
}

/* Kecerunan (Gradient) automatik ikut warna background Light/Dark mode */
.artist-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to top, var(--brand-cream) 0%, transparent 100%);
    z-index: -1;
}

.artist-hero-content {
    max-width: 1140px;
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.artist-genre-badge {
    display: inline-block;
    background: var(--brand-orange);
    color: var(--white);
    padding: 6px 16px;
    border-radius: 100px;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 20px;
}

.artist-name {
    font-size: clamp(3.5rem, 8vw, 6.5rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
    margin-bottom: 16px;
    color: var(--brand-dark);
}

.artist-tagline {
    font-size: 1.25rem;
    color: var(--text-muted);
    max-width: 600px;
    margin-bottom: 32px;
}

/* ==========================================================================
   MINIMALIST SOCIAL & STREAM ICONS (2026)
   ========================================================================== */
.artist-socials {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

/* Ikon Bulat Atas Gambar */
.social-icon-btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: #121212;
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s var(--ease-spring);
}

.social-icon-btn:hover {
    background: var(--brand-orange);
    color: var(--white);
    border-color: var(--brand-orange);
    transform: translateY(-4px);
    box-shadow: 0 10px 25px rgba(255, 103, 53, 0.3);
}

/* Ikon Petak (Rounded) untuk Streaming Links */
.stream-links {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-top: 20px;
}

.stream-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    color: var(--brand-dark);
    text-decoration: none;
    border: 1px solid var(--border-light);
    transition: all 0.3s var(--ease-spring);
}

.stream-icon:hover {
    background: var(--brand-orange);
    color: var(--white);
    border-color: var(--brand-orange);
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(255, 103, 53, 0.2);
}

/* Body Section Layout */
.artist-body {
    padding: 60px 24px 120px;
    max-width: 1140px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 60px;
}

.artist-bio h2, .artist-latest h3 {
    font-size: 2rem;
    margin-bottom: 24px;
    color: var(--brand-dark);
}

.artist-bio p {
    color: var(--text-muted);
    font-size: 1.15rem;
    line-height: 1.8;
    margin-bottom: 24px;
}

.latest-track-card {
    padding: 24px;
    text-align: center;
}

/* ==========================================================================
   INLINE AUDIO HOOK (2026 MAGIC)
   ========================================================================== */
.hook-artwork-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1; /* Wajib square untuk album artwork */
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 20px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    cursor: pointer;
    background: var(--brand-cream);
}

.hook-artwork-wrapper .track-artwork {
    margin-bottom: 0; /* Buang margin lama sebab kita dah letak dalam wrapper */
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s var(--ease-spring), filter 0.5s ease;
}

.hook-play-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: all 0.3s ease;
}

.hook-artwork-wrapper:hover .hook-play-overlay,
.hook-artwork-wrapper.playing .hook-play-overlay {
    opacity: 1;
}

.hook-artwork-wrapper:hover .track-artwork,
.hook-artwork-wrapper.playing .track-artwork {
    transform: scale(1.08);
    filter: blur(3px) brightness(0.7);
}

.hook-play-btn {
    width: 56px;
    height: 56px;
    background: rgba(255, 255, 255, 0.95);
    color: var(--brand-orange);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 25px rgba(255, 103, 53, 0.3);
    transform: scale(0.8) translateY(10px);
    transition: all 0.4s var(--ease-spring);
}

.hook-artwork-wrapper:hover .hook-play-btn,
.hook-artwork-wrapper.playing .hook-play-btn {
    transform: scale(1) translateY(0);
}

/* Animasi Pulse Masa Lagu Tengah Main */
.hook-artwork-wrapper.playing .hook-play-btn {
    animation: pulsePlay 2s infinite;
}

@keyframes pulsePlay {
    0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.6); }
    70% { box-shadow: 0 0 0 15px rgba(255, 255, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}

.latest-track-card h4 {
    font-size: 1.3rem;
    margin-bottom: 8px;
    color: var(--brand-dark);
}

.track-date {
    color: var(--text-muted);
    font-size: 0.9rem;
    margin-bottom: 24px;
}

/* Responsif Mobile */
@media (max-width: 850px) {
    .artist-body {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

/* ==========================================================================
   AUTO DARK MODE (2026 APPLE/STRIPE STYLE)
   ========================================================================== */
@media (prefers-color-scheme: dark) {
    :root {
        --brand-cream: #121212; /* Tukar background jadi hitam elegan */
        --brand-dark: #faf7f2;  /* Tukar teks utama jadi cerah */
        --white: #1e1e1e;       /* Tukar kotak kad jadi kelabu gelap */
        --text-muted: #a1a1a6;  /* Teks sekunder ala Apple */
        --border-light: rgba(255, 255, 255, 0.08); /* Garisan lebih lembut */
    }
    
    /* Betulkan tulisan perenggan dalam kad CTA supaya nampak di Dark Mode */
    .cta-card p {
        color: rgba(30, 30, 30, 0.7) !important;
    }
    
    /* (Bonus) Terangkan sikit logo Soofi supaya lebih jelas di navbar gelap */
    .logo-img, .footer-logo {
        filter: drop-shadow(0px 0px 12px rgba(255, 255, 255, 0.4)) brightness(1.2);
    }

    /* Ubahsuai Glassmorphism untuk latar gelap */
    .navbar, .floating-glass-card, .player-glass-card {
        background: rgba(30, 30, 30, 0.75);
        border: 1px solid rgba(255, 255, 255, 0.1);
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    }

    /* Kesan 'Glow' oren akan nampak lebih garang masa Dark Mode */
    .bento-card:hover {
        border-color: rgba(255, 103, 53, 0.4);
        box-shadow: 0 20px 40px rgba(255, 103, 53, 0.15);
    }

    /* Kontras untuk butang kecil / pills */
    .pill {
        background: #2c2c2c;
        color: var(--brand-dark);
    }

    /* Support Dark Mode untuk Icon Minimalis yang baru kita tambah */
    .social-icon-btn {
        background: rgba(30, 30, 30, 0.7);
        color: #ffffff;
        border-color: rgba(255,255,255,0.1);
    }
    
    .stream-icon {
        background: rgba(40, 40, 40, 0.8);
        color: #ffffff;
        border-color: rgba(255,255,255,0.1);
    }
}
/* =========================================================
   SOOFI STUDIO — SERVICES 2.0
   Service Pillars
   ========================================================= */

.services-detail-section {
    padding: 40px 0 120px;
}

.services-detail-container {
    width: min(1140px, calc(100% - 40px));
    margin: 0 auto;
}


/* ---------------------------------------------------------
   SERVICE BLOCK
   --------------------------------------------------------- */

.service-detail-block {
    position: relative;
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 45px;

    padding: 70px 0;

    border-top: 1px solid rgba(58, 58, 58, 0.12);
}

.service-detail-block:last-child {
    border-bottom: 1px solid rgba(58, 58, 58, 0.12);
}


/* ---------------------------------------------------------
   SERVICE NUMBER
   --------------------------------------------------------- */

.service-detail-number {
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    color: var(--brand-orange);

    padding-top: 8px;
}


/* ---------------------------------------------------------
   SERVICE CONTENT
   --------------------------------------------------------- */

.service-detail-content {
    min-width: 0;
}

.service-detail-content h2 {
    margin: 0;
    max-width: 850px;

    font-size: clamp(2.4rem, 5vw, 4.8rem);
    line-height: 0.98;
    letter-spacing: -0.055em;
    font-weight: 800;
}

.service-detail-intro {
    max-width: 720px;
    margin: 28px 0 50px;

    font-size: 1.08rem;
    line-height: 1.8;
    color: var(--text-muted);
}


/* ---------------------------------------------------------
   SERVICE ITEMS
   --------------------------------------------------------- */

.service-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.service-detail-item {
    position: relative;

    padding: 28px 30px;

    border: 1px solid rgba(58, 58, 58, 0.10);
    border-radius: 22px;

    background: rgba(255, 255, 255, 0.55);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        border-color 0.3s ease;
}

.service-detail-item:hover {
    transform: translateY(-5px);

    border-color: rgba(255, 103, 53, 0.30);

    box-shadow:
        0 18px 45px rgba(58, 58, 58, 0.08);
}

.service-detail-item h3 {
    margin: 0 0 12px;

    font-size: 1.05rem;
    line-height: 1.35;
    font-weight: 800;

    color: var(--brand-dark);
}

.service-detail-item p {
    margin: 0;

    font-size: 0.94rem;
    line-height: 1.75;

    color: var(--text-muted);
}

.service-detail-item em {
    font-style: italic;
}


/* ---------------------------------------------------------
   SERVICE NUMBER ACCENT
   --------------------------------------------------------- */

.service-detail-block::before {
    content: "";

    position: absolute;
    top: 70px;
    left: 0;

    width: 3px;
    height: 54px;

    border-radius: 10px;

    background: var(--brand-orange);

    opacity: 0.8;
}


/* ---------------------------------------------------------
   RESPONSIVE — TABLET
   --------------------------------------------------------- */

@media (max-width: 900px) {

    .service-detail-block {
        grid-template-columns: 60px 1fr;
        gap: 30px;

        padding: 60px 0;
    }

    .service-detail-block::before {
        top: 60px;
    }

    .service-detail-content h2 {
        font-size: clamp(2.2rem, 6vw, 3.8rem);
    }

    .service-detail-intro {
        margin-bottom: 38px;
    }

}


/* ---------------------------------------------------------
   RESPONSIVE — MOBILE
   --------------------------------------------------------- */

@media (max-width: 600px) {

    .services-detail-section {
        padding: 20px 0 80px;
    }

    .services-detail-container {
        width: min(100% - 30px, 540px);
    }

    .service-detail-block {
        display: block;

        padding: 50px 0;
    }

    .service-detail-block::before {
        top: 50px;
        left: 0;

        width: 40px;
        height: 3px;
    }

    .service-detail-number {
        margin-bottom: 22px;

        padding-top: 0;
    }

    .service-detail-content h2 {
        font-size: clamp(2.15rem, 11vw, 3.3rem);
        line-height: 1;
    }

    .service-detail-intro {
        margin: 24px 0 32px;

        font-size: 0.98rem;
        line-height: 1.7;
    }

    .service-detail-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .service-detail-item {
        padding: 24px 22px;

        border-radius: 18px;
    }

    .service-detail-item:hover {
        transform: none;
    }

}


/* ---------------------------------------------------------
   ACCESSIBILITY — REDUCED MOTION
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .service-detail-item {
        transition: none;
    }

    .service-detail-item:hover {
        transform: none;
    }

}
/* =========================================================
   SERVICES — MUSIC & VIDEO PRODUCTION
   Full-width final service card
   ========================================================= */

#music-video-production .service-detail-item:last-child {
    grid-column: 1 / -1;
}
/* =========================================================
   FLOATING MUSIC PLAYER — RESPONSIVE POLISH
   ========================================================= */

.floating-player-widget {
    right: 24px;
    bottom: 24px;
    max-width: calc(100vw - 40px);
}

.player-glass-card {
    max-width: 340px;
}

@media (max-width: 600px) {
    .floating-player-widget {
        right: 12px;
        bottom: 12px;
        max-width: calc(100vw - 24px);
    }

    .floating-player-widget .player-glass-card {
        max-width: 285px;
        padding: 8px 10px;
        justify-content: space-between;
    }

    .floating-player-widget .track-details {
        max-width: 145px;
    }

    .floating-player-widget .track-title,
    .floating-player-widget .track-artist {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .floating-player-widget .play-btn {
        width: 38px;
        height: 38px;
        min-width: 38px;
    }
}
/* =========================================================
   SOOFI STUDIO — ACTIVE NAVIGATION STATE
   5C-2
   ========================================================= */

/* Desktop navigation */

.nav-links a {
    position: relative;
}

.nav-links a.active {
    color: var(--brand-orange);
}


/* Subtle underline */

.nav-links a.active::after {
    content: "";

    position: absolute;
    left: 50%;
    bottom: -8px;

    width: 5px;
    height: 5px;

    border-radius: 50%;

    background: var(--brand-orange);

    transform: translateX(-50%);
}


/* Mobile navigation */

.mobile-nav-links .mobile-link.active {
    color: var(--brand-orange);
    font-weight: 700;
}
/* =========================================================
   5D — FINAL MOBILE NAVIGATION FIX
   ========================================================= */

@media (max-width: 850px) {

    /* Hide desktop navigation */
    .site-header .nav-links {
        display: none !important;
    }

    .site-header .nav-actions {
        display: none !important;
    }

    /* Show hamburger */
    .site-header .mobile-menu-btn {
        display: flex !important;
        width: 42px;
        height: 42px;
        flex-shrink: 0;
        position: relative;
        z-index: 1002;
    }

    /* Keep navbar contents inside viewport */
    .site-header {
        padding-left: 12px;
        padding-right: 12px;
    }

    .navbar {
        padding-left: 18px;
        padding-right: 18px;
    }

    /* Prevent logo from pushing hamburger out */
    .brand-logo {
        min-width: 0;
    }

    .logo-img {
        max-width: 110px;
        height: auto;
    }
}
/* =========================================================
   5E-4 — MOBILE HAMBURGER → X ANIMATION
   ========================================================= */

@media (max-width: 850px) {

    .mobile-menu-btn {
        position: relative !important;
    }

    /* All hamburger bars */
    .mobile-menu-btn .bar {
        position: absolute !important;
        left: 50% !important;

        width: 22px !important;
        height: 2px !important;

        margin: 0 !important;

        transform: translateX(-50%);
        transition:
            transform 0.25s ease,
            opacity 0.2s ease;
    }

    /* Normal hamburger position */

    .mobile-menu-btn .bar-1 {
        transform:
            translateX(-50%)
            translateY(-7px);
    }

    .mobile-menu-btn .bar-2 {
        transform:
            translateX(-50%);
    }

    .mobile-menu-btn .bar-3 {
        transform:
            translateX(-50%)
            translateY(7px);
    }


    /* =====================================================
       ACTIVE STATE — HAMBURGER BECOMES X
       ===================================================== */

    .mobile-menu-btn.active .bar-1 {
        transform:
            translateX(-50%)
            rotate(45deg);
    }

    .mobile-menu-btn.active .bar-2 {
        opacity: 0;
        transform:
            translateX(-50%)
            scaleX(0);
    }

    .mobile-menu-btn.active .bar-3 {
        transform:
            translateX(-50%)
            rotate(-45deg);
    }

}
/* =========================================================
   SOOFI STUDIO — CONTACT PAGE
   Premium Editorial Contact Layout
   Scoped styles — does not redesign other pages
========================================================= */


/* =========================================================
   CONTACT HERO
========================================================= */

.contact-page-header {
    padding-top: 155px;
    padding-bottom: 85px;
    text-align: center;
}

.contact-page-header .header-container {
    max-width: 1050px;
    margin: 0 auto;
}

.contact-page-header .section-tag {
    display: inline-block;
    margin-bottom: 24px;
}

.contact-page-header h1 {
    margin: 0 auto;
    max-width: 1100px;
    font-size: clamp(52px, 6vw, 88px);
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.contact-page-header p {
    max-width: 760px;
    margin: 30px auto 0;
    font-size: 20px;
    line-height: 1.65;
    color: #77757b;
}


/* =========================================================
   CONTACT MAIN SECTION
========================================================= */

.contact-section {
    position: relative;
    padding: 40px 0 120px;
}

.contact-container {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);

    gap: 90px;

    align-items: start;
}


/* =========================================================
   LEFT CONTACT INFORMATION
========================================================= */

.contact-info {
    padding-top: 18px;
}

.contact-intro {
    max-width: 500px;
}

.contact-kicker {
    display: block;

    margin-bottom: 14px;

    font-size: 15px;
    line-height: 1;

    letter-spacing: 0.06em;

    color: #4a484c;
}

.contact-intro h2 {
    margin: 0 0 16px;

    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.08;

    letter-spacing: -0.035em;

    color: #353437;
}

.contact-intro p {
    margin: 0;

    max-width: 500px;

    font-size: 18px;
    line-height: 1.7;

    color: #77757b;
}


/* =========================================================
   CONTACT INFO BLOCKS
========================================================= */

.info-block {
    margin-top: 44px;
}

.info-label {
    display: block;

    margin-bottom: 14px;

    font-size: 15px;
    font-weight: 700;

    line-height: 1;

    letter-spacing: 0.06em;

    color: #ff6735;
}

.contact-email {
    display: inline-block;

    color: #363438;

    font-size: 20px;
    font-weight: 500;

    line-height: 1.4;

    text-decoration: none;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.contact-email:hover {
    color: #ff6735;
    transform: translateX(3px);
}


/* =========================================================
   SOCIAL LINKS
========================================================= */

.social-links {
    display: flex;
    flex-wrap: wrap;

    align-items: center;

    gap: 8px;

    font-size: 18px;
    line-height: 1.5;
}

.social-links a {
    color: #363438;

    text-decoration: none;

    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.social-links a:hover {
    color: #ff6735;
    transform: translateY(-1px);
}

.social-links span {
    color: #b6b2b5;
}


/* =========================================================
   CONTACT FORM CARD
========================================================= */

.contact-form-wrapper {
    position: relative;

    width: 100%;

    padding: 42px;

    border-radius: 30px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.96),
            rgba(255, 249, 245, 0.88)
        );

    border: 1px solid rgba(255, 255, 255, 0.85);

    box-shadow:
        0 25px 70px rgba(57, 42, 35, 0.08),
        0 8px 25px rgba(57, 42, 35, 0.04);

    overflow: hidden;
}


/* Soft orange glow inside card */

.contact-form-wrapper::before {
    content: "";

    position: absolute;

    top: -180px;
    right: -160px;

    width: 380px;
    height: 380px;

    border-radius: 50%;

    background: rgba(255, 103, 53, 0.08);

    filter: blur(20px);

    pointer-events: none;
}


/* =========================================================
   FORM HEADING
========================================================= */

.form-heading {
    position: relative;
    z-index: 1;

    margin-bottom: 28px;
}

.form-heading .section-tag {
    display: block;

    margin-bottom: 20px;
}

.form-heading h2 {
    margin: 0 0 10px;

    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.08;

    letter-spacing: -0.035em;

    color: #353437;
}

.form-heading p {
    margin: 0;

    font-size: 17px;
    line-height: 1.6;

    color: #77757b;
}


/* =========================================================
   FORM
========================================================= */

.soofi-form {
    position: relative;
    z-index: 1;

    display: flex;
    flex-direction: column;

    gap: 23px;
}

.form-group {
    display: flex;
    flex-direction: column;

    gap: 9px;
}

.form-group label {
    font-size: 16px;
    font-weight: 600;

    line-height: 1.4;

    color: #363438;
}


/* =========================================================
   INPUTS
========================================================= */

.soofi-form input,
.soofi-form select,
.soofi-form textarea {

    width: 100%;

    box-sizing: border-box;

    border: 1px solid rgba(55, 53, 57, 0.11);

    border-radius: 18px;

    background: rgba(255, 255, 255, 0.78);

    color: #363438;

    font-family: inherit;

    font-size: 17px;

    outline: none;

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}


/* Input */

.soofi-form input,
.soofi-form select {
    height: 58px;

    padding: 0 19px;
}


/* Textarea */

.soofi-form textarea {
    min-height: 165px;

    padding: 17px 19px;

    resize: vertical;

    line-height: 1.6;
}


/* Placeholder */

.soofi-form input::placeholder,
.soofi-form textarea::placeholder {
    color: #969398;
    opacity: 1;
}


/* Select */

.soofi-form select {
    cursor: pointer;

    appearance: auto;
}


/* Focus */

.soofi-form input:focus,
.soofi-form select:focus,
.soofi-form textarea:focus {

    border-color: rgba(255, 103, 53, 0.55);

    background: #ffffff;

    box-shadow:
        0 0 0 4px rgba(255, 103, 53, 0.08);
}


/* =========================================================
   SUBMIT BUTTON
========================================================= */

.soofi-form .btn-primary-glow {

    min-height: 60px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    border: 0;

    border-radius: 999px;

    font-family: inherit;

    font-size: 17px;
    font-weight: 700;

    cursor: pointer;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.soofi-form .btn-primary-glow:hover {
    transform: translateY(-2px);

    box-shadow:
        0 15px 30px rgba(255, 103, 53, 0.22);
}

.soofi-form .btn-primary-glow:active {
    transform: translateY(0);
}


/* =========================================================
   FORM NOTE
========================================================= */

.form-note {
    margin: -7px 2px 0;

    font-size: 13px;
    line-height: 1.55;

    color: #8b888d;
}


/* =========================================================
   ALERTS
========================================================= */

.alert {
    position: relative;
    z-index: 2;

    margin-bottom: 24px;

    padding: 14px 17px;

    border-radius: 15px;

    font-size: 14px;
    line-height: 1.5;
}

.alert.success {
    background: rgba(44, 160, 90, 0.08);

    border: 1px solid rgba(44, 160, 90, 0.18);

    color: #267447;
}

.alert.error {
    background: rgba(220, 60, 60, 0.07);

    border: 1px solid rgba(220, 60, 60, 0.16);

    color: #a43e3e;
}


/* =========================================================
   CTA SECTION
========================================================= */

.contact-section + .cta-section {
    padding-top: 30px;
    padding-bottom: 120px;
}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width: 1000px) {

    .contact-container {
        grid-template-columns: 1fr;

        gap: 55px;

        width: min(760px, calc(100% - 48px));
    }

    .contact-info {
        padding-top: 0;
    }

    .contact-intro {
        max-width: 680px;
    }

    .contact-intro p {
        max-width: 650px;
    }

    .contact-form-wrapper {
        max-width: 760px;

        margin: 0 auto;

        box-sizing: border-box;
    }
}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 700px) {

    .contact-page-header {
        padding-top: 125px;
        padding-bottom: 60px;
    }

    .contact-page-header h1 {
        font-size: clamp(44px, 12vw, 62px);

        letter-spacing: -0.05em;
    }

    .contact-page-header p {
        margin-top: 22px;

        padding: 0 8px;

        font-size: 17px;

        line-height: 1.6;
    }


    .contact-section {
        padding-top: 20px;
        padding-bottom: 80px;
    }

    .contact-container {
        width: calc(100% - 32px);

        gap: 45px;
    }


    .contact-intro h2 {
        font-size: 32px;
    }

    .contact-intro p {
        font-size: 17px;
    }


    .info-block {
        margin-top: 34px;
    }

    .contact-email {
        font-size: 18px;
    }

    .social-links {
        font-size: 17px;
    }


    .contact-form-wrapper {
        padding: 28px 22px;

        border-radius: 24px;
    }


    .form-heading {
        margin-bottom: 24px;
    }

    .form-heading h2 {
        font-size: 30px;
    }

    .form-heading p {
        font-size: 16px;
    }


    .soofi-form {
        gap: 20px;
    }


    .soofi-form input,
    .soofi-form select {
        height: 55px;

        padding-left: 16px;
        padding-right: 16px;

        font-size: 16px;
    }

    .soofi-form textarea {
        min-height: 145px;

        padding: 15px 16px;

        font-size: 16px;
    }


    .soofi-form .btn-primary-glow {
        min-height: 56px;

        font-size: 16px;
    }


    .contact-section + .cta-section {
        padding-top: 10px;
        padding-bottom: 80px;
    }
}


/* =========================================================
   RESPONSIVE — SMALL MOBILE
========================================================= */

@media (max-width: 420px) {

    .contact-page-header {
        padding-top: 115px;
    }

    .contact-page-header h1 {
        font-size: 42px;
    }

    .contact-page-header p {
        font-size: 16px;
    }


    .contact-container {
        width: calc(100% - 24px);
    }


    .contact-form-wrapper {
        padding: 24px 18px;

        border-radius: 21px;
    }


    .form-heading h2 {
        font-size: 27px;
    }


    .social-links {
        gap: 6px;

        font-size: 16px;
    }


    .form-note {
        font-size: 12px;
    }
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

.soofi-form input:focus-visible,
.soofi-form select:focus-visible,
.soofi-form textarea:focus-visible,
.soofi-form button:focus-visible,
.contact-email:focus-visible,
.social-links a:focus-visible {
    outline: 3px solid rgba(255, 103, 53, 0.25);

    outline-offset: 3px;
}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .contact-email,
    .social-links a,
    .soofi-form input,
    .soofi-form select,
    .soofi-form textarea,
    .soofi-form .btn-primary-glow {
        transition: none;
    }

}