/* =============================================
   THE PRINT EMPIRE — Premium Luxury Aesthetic
   ============================================= */

:root {
    /* Luxury Greens */
    --g900: #011209; /* Deepest Forest */
    --g800: #063d23; /* Dark Emerald */
    --g700: #0c5c36; /* Rich Emerald */
    --g600: #12824c; /* Vibrant Emerald */
    --g500: #1eb36c;
    --g100: #e2f8ec;
    --g50:  #f0fdf6;

    /* Champagne Gold */
    --gold: #d4af37;
    --gold-light: #f1df96;
    --gold-dark: #b89524;

    /* Neutrals */
    --n950: #080808;
    --n900: #121212;
    --n800: #242424;
    --n700: #3a3a3a;
    --n600: #555555;
    --n500: #777777;
    --n400: #a0a0a0;
    --n300: #cccccc;
    --n200: #e8e8e8;
    --n100: #f5f5f5;
    --n50:  #fafafa;
    --white: #ffffff;

    --font: 'Outfit', -apple-system, sans-serif;
    --serif: 'Playfair Display', Georgia, serif;
    --t: 0.6s cubic-bezier(0.22, 1, 0.36, 1);
    
    /* Elegant Shadows & Glass */
    --shadow-sm: 0 4px 12px rgba(0,0,0,0.03);
    --shadow-md: 0 12px 32px rgba(0,0,0,0.06);
    --shadow-lg: 0 24px 64px rgba(0,0,0,0.08);
    --glass-bg-light: rgba(255, 255, 255, 0.75);
    --glass-bg-dark: rgba(18, 18, 18, 0.6);
    --glass-border-light: rgba(255, 255, 255, 0.4);
    --glass-border-dark: rgba(255, 255, 255, 0.1);
    --glass-blur: blur(20px);
    
    --radius: 16px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; -ms-overflow-style: none; scrollbar-width: none; }
/* Hide scrollbar for Chrome, Safari and Opera */
::-webkit-scrollbar {
    display: none;
    width: 0;
    background: transparent;
}
body {
    font-family: var(--font);
    color: var(--n800);
    background: var(--n50);
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    /* Hide scrollbar for IE, Edge and Firefox */
    -ms-overflow-style: none;
    scrollbar-width: none;
}
/* Hide scrollbar for Chrome, Safari and Opera */
body::-webkit-scrollbar {
    display: none;
}

img { display:block; max-width:100%; }
h1,h2,h3 { font-family:var(--serif); color:var(--g900); line-height:1.15; }

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 32px;
}

/* Removed custom cursor CSS */

/* ============ PRELOADER ============ */
.preloader {
    position:fixed; inset:0; z-index:9999;
    background: #fbf5df; /* Soft aesthetic yellow matching the gold theme */
    display:flex; align-items:center; justify-content:center;
    transition: opacity 0.8s ease, visibility 0.8s ease;
}
.preloader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.preloader-inner { text-align:center; }
.preloader-logo {
    height: 240px;
    width: auto;
    display: block;
    margin: 0 auto 40px auto;
    animation: pulse 1.6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
    0%,100% { transform:scale(1); opacity:.75; }
    50% { transform:scale(1.05); opacity:1; }
}
.preloader-bar {
    width:240px; height:2px; background:rgba(0,0,0,0.05);
    margin:0 auto; overflow:hidden;
    border-radius:2px;
}
.preloader-fill {
    height:100%; width:0; background:var(--g900);
    animation: loadBar 2s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}
@keyframes loadBar { to { width:100%; } }

/* ============ NAVBAR ============ */
.navbar {
    position:fixed; top:16px; left:50%; transform:translateX(-50%);
    width: calc(100% - 48px); max-width: 1200px;
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 24px; height:64px;
    background: var(--glass-bg-light);
    backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--glass-border-light);
    border-radius: 100px;
    z-index:800;
    opacity:0; animation: navEntry 1s ease 2s forwards;
    transition: background 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}
@keyframes navEntry {
    from { opacity:0; top: -50px; }
    to { opacity:1; top: 16px; }
}
.navbar.scrolled { 
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--shadow-md); 
}

.nav-logo {
    display:flex; align-items:center; text-decoration:none;
}
.logo-img {
    height: 48px;
    width: auto;
    display: block;
    transform: scale(1.4);
    transform-origin: left center;
}

.nav-links-wrap {
    display:flex; align-items:center; gap:32px;
}
.nav-link {
    font-size:.85rem; font-weight:500; color:var(--n700);
    text-decoration:none; letter-spacing:1px; text-transform: uppercase;
    transition:var(--t); position:relative;
}
.nav-link::after {
    content:''; position:absolute; bottom:-4px; left:50%;
    width:4px; height:4px; background:var(--gold); border-radius:50%;
    opacity: 0; transform: translateX(-50%) scale(0);
    transition:var(--t);
}
.nav-link:hover { color:var(--g900); }
.nav-link:hover::after { opacity: 1; transform: translateX(-50%) scale(1); }

.nav-cta {
    font-family:var(--font); font-size:.8rem; font-weight:600;
    padding:10px 24px; border-radius:100px; border:none;
    background:var(--g900); color:var(--white);
    letter-spacing:1px; text-transform:uppercase;
    transition:var(--t);
}
.nav-cta:hover { 
    background:var(--gold); color:var(--g900);
    box-shadow: 0 8px 24px rgba(212, 175, 55, 0.4);
}

/* ============ SCROLL PROGRESS ============ */
.progress-bar {
    position:fixed; top:0; left:0; width:100%;
    height:4px; z-index:900; background:transparent;
    display: none;
}
.progress-fill {
    height:100%; width:0;
    background:var(--gold);
    transition:width .1s linear;
}

/* ============ HERO ============ */
.hero {
    padding:180px 0 100px;
    background:var(--g900);
    color: var(--white);
    position:relative;
    overflow:hidden;
    min-height: 100vh;
    display: flex; align-items: center;
}
.hero-mesh-bg {
    position: absolute; inset: 0; z-index: 0;
    background: 
        radial-gradient(circle at 15% 50%, rgba(12, 92, 54, 0.4), transparent 40%),
        radial-gradient(circle at 85% 30%, rgba(212, 175, 55, 0.15), transparent 50%),
        radial-gradient(circle at 50% 90%, rgba(6, 61, 35, 0.6), transparent 60%);
    filter: blur(80px);
    animation: meshBreath 12s ease-in-out infinite alternate;
}
@keyframes meshBreath {
    0% { transform: scale(1); }
    100% { transform: scale(1.1); }
}

.hero-grid {
    display:grid; grid-template-columns:1.2fr 0.8fr;
    gap:80px; align-items:center;
    position:relative; z-index:1;
}
.hero-text { max-width:600px; }
.badge {
    display:inline-block;
    font-family: var(--font);
    font-size:.75rem; font-weight:600; text-transform:uppercase;
    letter-spacing:3px; color:var(--gold-light);
    border:1px solid rgba(212, 175, 55, 0.3);
    padding:8px 20px; border-radius:100px;
    margin-bottom:32px;
    background: rgba(255,255,255,0.03);
    backdrop-filter: blur(10px);
}
.hero h1 {
    font-size:clamp(2.5rem,5.5vw,4.2rem);
    color:var(--white); margin-bottom:24px;
    font-weight:500; font-style: italic; letter-spacing: -1px;
}
.hero h1 span.normal { font-style: normal; font-weight: 700; color:var(--gold); }

.hero-desc {
    font-size:1.15rem; color:rgba(255,255,255,0.7);
    margin-bottom:48px; line-height:1.8; font-weight: 300;
}

.hero-stats {
    display:flex; align-items:center; gap:40px;
    margin-bottom:48px;
    padding:24px 0;
    border-top:1px solid rgba(255,255,255,0.1);
    border-bottom:1px solid rgba(255,255,255,0.1);
}
.stat-num {
    font-family:var(--serif); font-size:3rem; font-weight:500;
    color:var(--gold); line-height:1; display: inline-block;
}
.stat-unit {
    font-family:var(--font); font-size:1.2rem; font-weight:500; color:var(--white);
    margin-left: 4px;
}
.stat p {
    font-size:.7rem; text-transform:uppercase;
    letter-spacing:2px; color:rgba(255,255,255,0.5);
    margin-top:8px; font-weight:500;
}
.stat-sep { width:1px; height:50px; background:rgba(255,255,255,0.1); }

.hero-actions {
    display:flex; align-items:center; gap:20px;
}
.btn-primary {
    display:inline-flex; align-items:center; gap:10px;
    padding:16px 36px; border-radius:100px; border:none;
    background:var(--gold); color:var(--g900);
    font-family:var(--font); font-size:.95rem; font-weight:600;
    letter-spacing: 1px; text-transform: uppercase;
    transition:var(--t);
    box-shadow: 0 10px 30px rgba(212, 175, 55, 0.25);
    position: relative; overflow: hidden;
}
.btn-primary::before {
    content:''; position:absolute; top:0; left:-100%;
    width:100%; height:100%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    transition: left 0.6s ease;
}
.btn-primary:hover::before { left: 100%; }
.btn-primary:hover {
    transform:translateY(-4px); box-shadow: 0 15px 40px rgba(212, 175, 55, 0.4);
    background: var(--gold-light);
}

.btn-ghost {
    display:inline-flex; align-items:center; gap:8px;
    padding:16px 32px; border-radius:100px;
    background:transparent; color:var(--white);
    font-family:var(--font); font-size:.95rem; font-weight:500;
    letter-spacing: 1px; text-transform: uppercase;
    text-decoration:none; transition:var(--t);
    border:1px solid rgba(255,255,255,0.3);
}
.btn-ghost:hover { 
    background:rgba(255,255,255,0.05); border-color:var(--white); 
    transform:translateY(-4px);
}

.hero-visual {
    position: relative;
    border-radius:24px; overflow:hidden;
    box-shadow:var(--shadow-lg);
    aspect-ratio: 4/5;
}
.hero-visual::after {
    content: ''; position: absolute; inset: 0;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 24px; pointer-events: none;
}
.hero-visual img {
    width:100%; height:100%; object-fit:cover;
    border-radius:24px;
    transition: transform 10s ease-out;
}
.hero-visual img.zoomed { transform:scale(1.08); }

/* ============ SECTIONS ============ */
.section { padding:140px 0; position:relative; overflow:hidden; }
.section-light { background:var(--n50); }
.section-dark {
    background:var(--g900);
    color:var(--white);
}

.section-header {
    text-align:center; margin-bottom:80px;
}
.section-label {
    display:inline-block;
    font-size:.75rem; font-weight:600; text-transform:uppercase;
    letter-spacing:4px; color:var(--g700);
    margin-bottom:16px;
}
.section-dark .section-label { color:var(--gold); }

.section-header h2 {
    font-size:clamp(2.2rem,4vw,3.2rem);
    font-weight: 500;
}
.section-dark .section-header h2 { color:var(--white); }

/* ============ ABOUT CARDS ============ */
.about-grid {
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:32px;
}
.about-card {
    background: var(--white);
    border: 1px solid var(--n200);
    border-radius: 24px;
    padding:48px 32px;
    transition:var(--t);
    position: relative;
    overflow: hidden;
    z-index: 1;
}
.about-card::before {
    content: ''; position: absolute; top:0; left:0; width:100%; height:100%;
    background: linear-gradient(135deg, var(--g900) 0%, var(--g800) 100%);
    z-index: -1; opacity: 0; transition: opacity var(--t);
}
.about-card:hover {
    transform:translateY(-10px);
    box-shadow:var(--shadow-lg);
    border-color: transparent;
    color: var(--white);
}
.about-card:hover::before { opacity: 1; }

.about-card h3 {
    font-size:1.4rem; margin-bottom:16px; font-family:var(--serif); font-weight:500;
    color:var(--g900);
    transition: color var(--t);
}
.about-card p {
    font-size:1rem; color:var(--n600); line-height:1.7; font-weight: 300;
    transition: color var(--t);
}
.about-card:hover h3, .about-card:hover p { color: var(--white); }
.about-card:hover p { opacity: 0.8; }

.about-icon {
    width:64px; height:64px; border-radius:50%;
    background:var(--n100); color:var(--g800);
    display:flex; align-items:center; justify-content:center;
    font-size:1.5rem; margin-bottom:32px;
    transition: var(--t);
    border: 1px solid var(--n200);
}
.about-card:hover .about-icon {
    background: rgba(255,255,255,0.1);
    color: var(--gold);
    border-color: rgba(255,255,255,0.2);
    transform: scale(1.1);
}

/* ============ FEATURES (Why Us) ============ */
.section-dark { position: relative; }
.section-dark::before {
    content:''; position:absolute; top:0; left:0; width:100%; height:100%;
    background: radial-gradient(circle at center, rgba(12, 92, 54, 0.2) 0%, transparent 60%);
    pointer-events: none;
}
.features-grid {
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:32px; margin-bottom:0;
    position: relative; z-index: 2;
}
.feature {
    background: var(--glass-bg-dark);
    backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--glass-border-dark);
    border-radius: 24px;
    padding:48px 32px;
    transition:var(--t); position:relative; overflow: hidden;
}
.feature::after {
    content:''; position: absolute; inset:0;
    border-radius: 24px;
    padding: 1px;
    background: linear-gradient(135deg, rgba(212, 175, 55, 0.4), transparent);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    opacity: 0; transition: opacity var(--t);
}
.feature:hover {
    transform:translateY(-10px);
    background: rgba(255,255,255,0.05);
}
.feature:hover::after { opacity: 1; }

.feature-num {
    font-family:var(--serif); font-size:4rem; font-weight:500; font-style: italic;
    color:rgba(255,255,255,0.03); position:absolute;
    top:20px; right:30px; line-height:1;
    transition: var(--t);
}
.feature:hover .feature-num { color:rgba(212, 175, 55, 0.1); transform: scale(1.1); }

.feature-icon {
    width:56px; height:56px; border-radius:16px;
    background:rgba(212, 175, 55, 0.1); color:var(--gold);
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem; margin-bottom:24px;
    transition: var(--t);
    border: 1px solid rgba(212, 175, 55, 0.2);
}
.feature:hover .feature-icon {
    background: var(--gold); color: var(--g900);
}
.feature h3 {
    font-size:1.3rem; color:var(--white); margin-bottom:12px;
    font-family:var(--serif); font-weight:500;
}
.feature p {
    font-size:1rem; color:rgba(255,255,255,.6); line-height:1.7; font-weight: 300;
}

/* ============ GROWTH ============ */
.growth-section-grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:64px; align-items:center;
}
.growth-text { max-width:500px; }
.growth-text h2 {
    font-size:clamp(1.8rem,3.5vw,2.6rem); margin-bottom:20px;
    color:var(--g900); font-family:var(--serif);
}
.growth-text p {
    font-size:1.05rem; color:var(--n600); line-height:1.8;
}

.growth-box {
    background:rgba(255, 255, 255, 0.85);
    backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
    border:1px solid rgba(255, 255, 255, 0.4);
    border-radius:20px;
    padding:48px 40px;
    max-width:100%; width:100%; margin:0;
    box-shadow:var(--shadow-lg), 0 0 0 1px rgba(0,0,0,0.02);
    position:relative; overflow:hidden;
}
.growth-box::before {
    content:''; position:absolute; top:0; left:0; right:0; height:4px;
    background:linear-gradient(90deg, var(--g600), var(--gold));
}
.growth-box h3 {
    font-size:1.25rem; color:var(--g900); margin-bottom:36px;
    font-family:var(--font); font-weight:800; text-align:center;
    display:flex; align-items:center; justify-content:center; gap:10px;
}
.growth-box h3 i { color:var(--g600); }
.growth-row { margin-bottom:28px; }
.growth-row:last-child { margin-bottom:0; }
.growth-label {
    display:flex; justify-content:space-between; align-items:flex-end;
    margin-bottom:12px;
}
.growth-year { font-size:.85rem; font-weight:600; color:var(--n500); }
.growth-val {
    font-size:1.1rem; font-weight:800; color:var(--g800);
    font-family:var(--serif);
}
.growth-val.highlight { font-size:1.3rem; color:var(--gold); }
.growth-track {
    height:12px; border-radius:6px;
    background:var(--n200); overflow:hidden;
    box-shadow:inset 0 1px 3px rgba(0,0,0,.05);
}
.growth-fill {
    height:100%; width:0; border-radius:6px;
    background:linear-gradient(90deg, var(--g600), var(--g500));
    transition:width 2s cubic-bezier(.4,0,.2,1);
    box-shadow:0 0 10px rgba(34,197,94,.3);
}
.growth-fill.gold { 
    background:linear-gradient(90deg, var(--gold), var(--gold-light));
    box-shadow:0 0 10px rgba(251,191,36,.3);
}
.growth-fill::after {
    content:''; display:block; width:100%; height:100%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.25), transparent);
    animation:shimmer 2.5s infinite;
}
@keyframes shimmer {
    0% { transform:translateX(-100%); }
    100% { transform:translateX(100%); }
}

/* ============ TEAM ============ */
.team-grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:40px; max-width:900px; margin:0 auto;
}
.team-card {
    background:transparent;
}
.team-image {
    width:100%; aspect-ratio: 3/4;
    border-radius:24px;
    background:var(--n200);
    position: relative;
    overflow: hidden;
    margin-bottom: 24px;
    box-shadow: var(--shadow-md);
}
.team-image img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    filter: grayscale(20%);
}
.team-card:hover .team-image img {
    transform: scale(1.05); filter: grayscale(0%);
}
.team-info {
    text-align: center;
}
.team-info h3 {
    font-size:1.5rem; color:var(--g900); margin-bottom:4px;
    font-weight:500;
}
.team-role {
    font-size:.75rem; font-weight:600; letter-spacing:2px;
    color:var(--gold-dark); text-transform:uppercase;
    display:inline-block; margin-bottom:16px;
}
.team-info p { font-size:1rem; color:var(--n600); line-height:1.7; font-weight: 300;}

/* ============ CTA ============ */
.section-cta {
    padding:120px 0;
    background: linear-gradient(135deg, var(--g900) 0%, var(--g800) 100%);
    text-align:center; position: relative; overflow: hidden;
}
.section-cta::before {
    content:''; position:absolute; top:0; left:0; width:100%; height:100%;
    background: url('data:image/svg+xml;utf8,<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="2" cy="2" r="1" fill="rgba(255,255,255,0.05)"/></svg>');
}
.cta-content { max-width:700px; margin:0 auto; position: relative; z-index: 2; }
.cta-content h2 {
    font-size:clamp(2.2rem,4vw,3.6rem);
    color:var(--white); margin-bottom:24px; font-weight: 500;
}
.cta-content p {
    font-size:1.15rem; color:rgba(255,255,255,.7);
    margin-bottom:48px; line-height:1.8; font-weight: 300;
}
.btn-cta {
    display:inline-flex; align-items:center; gap:12px;
    padding:18px 48px; border-radius:100px; border:none;
    background:var(--gold); color:var(--g900);
    font-family:var(--font); font-size:1rem; font-weight:600; text-transform: uppercase; letter-spacing: 1px;
    transition:var(--t);
    box-shadow: 0 10px 30px rgba(212, 175, 55, 0.2);
}
.btn-cta:hover {
    transform:translateY(-6px);
    box-shadow: 0 20px 40px rgba(212, 175, 55, 0.4);
    background: var(--gold-light);
}

/* ============ FOOTER ============ */
.footer {
    background:var(--n950); color:var(--n500);
    padding-top:80px;
    border-top: 1px solid rgba(255,255,255,0.05);
}
.footer-grid {
    display:flex; justify-content:space-between;
    align-items:flex-start; gap:40px;
    padding-bottom:64px;
}
.footer-logo {
    margin-bottom:12px;
}
.logo-img-footer {
    height: 72px;
    width: auto;
    display: block;
}
.footer-tagline { font-size:.85rem; letter-spacing:3px; color:var(--gold); font-weight:500; margin-bottom:8px; text-transform: uppercase; }
.footer-location { font-size:.95rem; color:rgba(255,255,255,0.5); font-weight: 300;}

.footer-contact h4 {
    font-family:var(--font); font-size:.8rem; font-weight:600;
    letter-spacing:2px; text-transform:uppercase;
    color:var(--white); margin-bottom:24px;
}
.footer-contact a {
    display:flex; align-items:center; gap:12px;
    text-decoration:none; color:rgba(255,255,255,0.6);
    font-size:.95rem; margin-bottom:16px; transition:var(--t); font-weight: 300;
}
.footer-contact a:hover { color:var(--gold); transform: translateX(4px); }
.footer-contact i { color:var(--gold); width:16px; text-align:center; font-size:.9rem; }
.footer-bottom {
    text-align:center; padding:24px 0;
    border-top:1px solid rgba(255,255,255,.05);
    font-size:.85rem; color:rgba(255,255,255,0.3); font-weight: 300;
}

/* ============ MODAL (Glassmorphism) ============ */
.modal-overlay {
    position:fixed; inset:0;
    background:rgba(0,0,0,.6);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    display:flex; align-items:flex-start; justify-content:center;
    padding: 24px;
    overflow-y: auto;
    z-index:2000;
    opacity:0; visibility:hidden; transition:var(--t);
}
.modal-overlay.active { opacity:1; visibility:visible; }

.modal-box {
    background: var(--glass-bg-light);
    backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--glass-border-light);
    width:100%; max-width:800px;
    border-radius:32px; padding:32px;
    position:relative;
    margin: auto;
    transform:scale(.95) translateY(20px);
    transition: all .6s cubic-bezier(.22,1,.36,1);
    box-shadow:var(--shadow-lg);
}
.modal-overlay.active .modal-box { transform:scale(1) translateY(0); }
.modal-close {
    position:absolute; top:24px; right:24px;
    width:40px; height:40px; border-radius:50%;
    background:rgba(0,0,0,0.05); border:none;
    font-size:1.1rem; color:var(--n500);
    transition:var(--t);
    display:flex; align-items:center; justify-content:center;
}
.modal-close:hover { background:var(--g900); color:var(--white); transform: rotate(90deg); }

.modal-box h2 { font-size:2rem; color:var(--g900); margin-bottom:4px; font-weight: 500; }
.modal-desc { font-size:1rem; color:var(--n600); margin-bottom:20px; font-weight: 300;}

.field { margin-bottom:12px; }
.field label {
    display:block; margin-bottom:4px;
    font-size:.85rem; font-weight:600; color:var(--n700); letter-spacing: 1px; text-transform: uppercase;
}
.field input, .field textarea {
    width:100%; padding:12px 16px;
    border:1px solid rgba(0,0,0,0.1); border-radius:12px;
    font-family:var(--font); font-size:1rem;
    background:rgba(255,255,255,0.5); color:var(--g900);
    transition:var(--t);
}
.field input:focus, .field textarea:focus {
    outline:none; border-color:var(--gold);
    background:var(--white);
    box-shadow: 0 4px 12px rgba(212, 175, 55, 0.1);
}
.field .error-msg {
    display: block;
    color: #dc2626;
    font-size: 0.8rem;
    margin-top: 4px;
    font-weight: 500;
    min-height: 1.2em;
}
.btn-submit {
    width:100%; padding:14px; border-radius:12px; border:none;
    background:var(--g900); color:var(--white);
    font-family:var(--font); font-size:.95rem; font-weight:600; text-transform: uppercase; letter-spacing: 1px;
    display:flex; align-items:center; justify-content:center; gap:10px; transition:var(--t);
    margin-top: 10px;
}
.btn-submit:hover { background:var(--gold); color:var(--g900); }

.form-status {
    margin-top:16px; text-align:center;
    font-weight:500; display:none;
    padding:12px; border-radius:8px; font-size:.9rem;
}
.form-status.success { display:block; color:#0c5c36; background:#e2f8ec; }
.form-status.error { display:block; color:#dc2626; background:#fef2f2; }

@media (min-width: 768px) {
    #contactForm {
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 32px;
        align-items: start;
    }
    .form-bottom, .hp-field {
        grid-column: 1 / -1;
    }
    .btn-submit {
        width: 50%;
        margin: 16px auto 0;
    }
}

/* ============ REVEAL ANIMATIONS ============ */
.reveal-text .word {
    display:inline-block;
    opacity:0; transform:translateY(40px) rotate(4deg);
    filter:blur(12px);
    transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1), transform 1.2s cubic-bezier(0.22, 1, 0.36, 1), filter 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-text.visible .word {
    opacity:1; transform:translateY(0) rotate(0); filter:blur(0);
}
.reveal-fade {
    opacity:0; transform:translateY(30px);
    transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1), transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-fade.visible { opacity:1; transform:translateY(0); }

.reveal-scale {
    opacity:0; transform:scale(.9); filter:blur(10px);
    transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1), transform 1.2s cubic-bezier(0.22, 1, 0.36, 1), filter 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
.reveal-scale.visible { opacity:1; transform:scale(1); filter:blur(0); }

/* ============ RESPONSIVE ============ */
@media (max-width:992px) {
    .hero-grid { grid-template-columns:1fr; gap:48px; text-align: center; }
    .hero-text { max-width:100%; margin: 0 auto; }
    .hero-stats { justify-content: center; }
    .hero-actions { justify-content: center; }
    .hero-visual { max-width:600px; margin: 0 auto; }
    .about-grid { grid-template-columns:1fr; }
    .features-grid { grid-template-columns:1fr; max-width:500px; margin: 0 auto; }
    .team-grid { grid-template-columns:1fr; max-width:440px; }
    .growth-box { padding: 40px 24px; }
}
@media (max-width:768px) {
    .nav-link { display:none; }
    .hero-stats { flex-direction:column; gap:24px; }
    .stat-sep { width:80px; height:1px; }
    .hero-actions { flex-direction:column; align-items:stretch; }
    .footer-grid { flex-direction:column; text-align:center; align-items: center; }
    .footer-contact a { justify-content:center; }
    .modal-box { margin:16px; padding:32px 24px; }
    .section { padding: 80px 0; }
    .hero { padding: 140px 0 80px; }
}

/* ============ BACKGROUND ICONS ============ */
.bg-icons {
    position:absolute; inset:0; pointer-events:none; z-index:0;
}
.bg-icons i {
    position:absolute; color:var(--gold); opacity:0.04;
    left:var(--x); top:var(--y); font-size:4rem;
    transform:scale(var(--s));
    animation:drift 20s ease-in-out infinite alternate;
    animation-delay:var(--d);
}
.bg-icons.dark i {
    opacity:0.03; color:var(--white);
}

@keyframes drift {
    0% { transform: scale(var(--s)) translate(0, 0) rotate(0deg); }
    100% { transform: scale(var(--s)) translate(60px, -60px) rotate(20deg); }
}
