/* Google Fonts loaded via wp_enqueue_style in inc/enqueue.php for performance */
:root{--black:#0A0A0A;--white:#F5F2EC;--green:#21A14E;--green2:#17783A;--gold:#C9A84C;--grey:#8A8A8A;--border:rgba(245,242,236,0.12);}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Syne',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--black);color:var(--white);overflow-x:hidden;}

/* Custom cursor — only applied via JS class on non-touch devices */
.has-custom-cursor{cursor:none;}
.has-custom-cursor a,.has-custom-cursor button,.has-custom-cursor [role="button"]{cursor:none;}
.cursor{width:12px;height:12px;background:var(--green);border-radius:50%;position:fixed;z-index:9999;pointer-events:none;transform:translate(-50%,-50%);transition:width .2s,height .2s;mix-blend-mode:exclusion;}
.cursor-ring{width:36px;height:36px;border:1px solid rgba(33,161,78,0.5);border-radius:50%;position:fixed;z-index:9998;pointer-events:none;transform:translate(-50%,-50%);transition:all .15s ease;}

/* Skip link — visible on focus for keyboard users */
.skip-link{position:absolute;top:-100px;left:5vw;z-index:10000;background:var(--green);color:var(--black);padding:12px 24px;font-size:0.78rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;text-decoration:none;border-radius:0 0 4px 4px;transition:top .2s;}
.skip-link:focus{top:0;}

/* Screen reader only utility */
.screen-reader-text{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important;}
.screen-reader-text:focus{clip:auto!important;clip-path:none;height:auto;width:auto;margin:0;overflow:visible;padding:12px 24px;position:fixed;top:5px;left:5px;z-index:10000;background:var(--green);color:var(--black);font-size:0.78rem;font-weight:700;text-decoration:none;}


/* Navigation */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:24px 5vw;display:flex;justify-content:space-between;align-items:center;transition:all .3s;}
.site-nav.scrolled{background:rgba(10,10,10,0.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:16px 5vw;}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-weight:600;letter-spacing:1px;color:var(--white);text-decoration:none;}
.nav-logo em{color:var(--green);font-style:normal;}
.nav-logo img{height:40px;width:auto;object-fit:contain;}
/* WP-standard custom logo (output by the_custom_logo()). Sized to match the text logo. */
.site-nav .custom-logo-link{display:flex;align-items:center;line-height:0;text-decoration:none;}
.site-nav .custom-logo-link:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px;}
.site-nav .custom-logo,.site-nav .custom-logo-link img{max-height:40px;width:auto;height:auto;object-fit:contain;display:block;}
/* Skip-link target — keep focus outline subtle but visible when invoked. */
#main-content:focus{outline:none;}
#main-content:focus-visible{outline:2px solid var(--green);outline-offset:4px;}
.nav-links{display:flex;gap:32px;list-style:none;align-items:center;margin:0;padding:0;}
.nav-links a{font-size:0.72rem;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:rgba(245,242,236,0.6);text-decoration:none;transition:color .2s;position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--green);transition:width .3s;}
.nav-links a:hover,.nav-links .current-menu-item>a{color:var(--white);}
.nav-links a:hover::after{width:100%;}
.nav-links a:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px;}
.nav-links .nav-cta>a,.nav-links a.btn-nav-cta{color:var(--black)!important;background:var(--green)!important;padding:10px 22px!important;border-radius:2px!important;font-weight:700!important;}
.nav-links .nav-cta>a::after,.nav-links a.btn-nav-cta::after{display:none!important;}
.nav-links .nav-cta>a:hover,.nav-links a.btn-nav-cta:hover{background:var(--green2)!important;}


/* Hamburger & Mobile Drawer */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;z-index:201;}
.hamburger:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px;}
.hamburger span{display:block;width:24px;height:1.5px;background:var(--white);transition:all .3s;}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mobile-drawer{position:fixed;inset:0;background:var(--black);z-index:199;display:none;flex-direction:column;justify-content:center;align-items:center;gap:32px;transform:translateX(100%);transition:transform .35s ease;}
.mobile-drawer.open{transform:translateX(0);}
.mobile-drawer .mobile-drawer-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:32px;}
.mobile-drawer a{font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;color:var(--white);text-decoration:none;transition:color .2s;}
.mobile-drawer a:hover{color:var(--green);}
.mobile-drawer a:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px;}


/* Hero Section */
.hero-section{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:120px 5vw 80px;position:relative;overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse 50% 60% at 70% 40%,rgba(33,161,78,0.06) 0%,transparent 70%),radial-gradient(ellipse 30% 40% at 10% 80%,rgba(201,168,76,0.04) 0%,transparent 60%);}
.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(245,242,236,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(245,242,236,0.03) 1px,transparent 1px);background-size:80px 80px;}
.hero-content{position:relative;z-index:2;}
.hero-label{font-family:'DM Mono',monospace;font-size:0.7rem;letter-spacing:3px;text-transform:uppercase;color:var(--green);margin-bottom:24px;display:flex;align-items:center;gap:12px;}
.hero-label::before{content:'';width:32px;height:1px;background:var(--green);}
.hero-section h1{font-family:'Cormorant Garamond',serif;font-size:clamp(3.5rem,7vw,6.5rem);font-weight:300;line-height:1.02;color:var(--white);margin-bottom:8px;}
.hero-section h1 em{font-style:italic;color:var(--gold);}
.hero-title-line{font-family:'DM Mono',monospace;font-size:0.72rem;letter-spacing:3px;text-transform:uppercase;color:var(--grey);margin-bottom:32px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.title-sep{color:var(--green);}
.hero-bio{font-size:1rem;line-height:1.8;color:rgba(245,242,236,0.65);max-width:460px;margin-bottom:40px;}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:48px;}
.hero-stats{display:flex;gap:40px;padding-top:40px;border-top:1px solid var(--border);flex-wrap:wrap;}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:600;color:var(--green);line-height:1;}
.stat-label{font-size:0.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--grey);margin-top:4px;}


/* Hero Photo */
.hero-right{position:relative;z-index:2;display:flex;justify-content:flex-end;align-items:center;}
.hero-photo-wrap{position:relative;width:380px;height:480px;}
.hero-photo-border{position:absolute;top:16px;left:16px;right:-16px;bottom:-16px;border:1px solid rgba(33,161,78,0.3);border-radius:4px;z-index:0;}
.hero-photo{position:relative;z-index:1;width:100%;height:100%;border-radius:4px;overflow:hidden;background:linear-gradient(145deg,#1a2f1a,#0d1a0d);}
.hero-photo img{width:100%;height:100%;object-fit:cover;}
.hero-photo-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:linear-gradient(145deg,rgba(33,161,78,0.15),rgba(10,10,10,0.8));}
.photo-initials{font-family:'Cormorant Garamond',serif;font-size:5rem;font-weight:300;color:var(--green);line-height:1;}
.photo-name{font-size:0.7rem;letter-spacing:3px;text-transform:uppercase;color:rgba(245,242,236,0.4);}
.hero-status{position:absolute;bottom:24px;left:-24px;z-index:2;background:var(--black);border:1px solid var(--border);padding:14px 20px;border-radius:4px;display:flex;align-items:center;gap:10px;}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(1.3)}}
.status-text{font-size:0.72rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--white);}


/* Marquee */
.marquee-section{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:16px 0;overflow:hidden;background:rgba(33,161,78,0.05);}
.marquee-track{display:flex;gap:48px;animation:marquee 50s linear infinite;width:max-content;}
.marquee-item{font-family:'DM Mono',monospace;font-size:0.68rem;letter-spacing:3px;text-transform:uppercase;color:rgba(245,242,236,0.4);white-space:nowrap;display:flex;align-items:center;gap:12px;}
.marquee-dot{width:4px;height:4px;border-radius:50%;background:var(--green);}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* Buttons */
.btn-primary{display:inline-flex;align-items:center;gap:10px;background:var(--green);color:var(--black);padding:14px 30px;border-radius:2px;font-size:0.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;transition:all .3s;}
.btn-primary:hover{background:var(--green2);transform:translateY(-2px);color:var(--white);}
.btn-primary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.btn-secondary{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(245,242,236,0.25);color:var(--white);padding:14px 30px;border-radius:2px;font-size:0.72rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;text-decoration:none;transition:all .3s;}
.btn-secondary:hover{border-color:var(--green);color:var(--green);}
.btn-secondary:focus-visible{outline:2px solid var(--green);outline-offset:3px;}


/* Sections */
.section-label{font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--green);margin-bottom:16px;display:flex;align-items:center;gap:12px;}
.section-label::before{content:'';width:24px;height:1px;background:var(--green);}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.4rem,5vw,4rem);font-weight:300;line-height:1.1;color:var(--white);margin-bottom:16px;}
.section-title em{font-style:italic;color:var(--gold);}
.section-sub{font-size:0.95rem;color:var(--grey);line-height:1.8;max-width:540px;}
.if-section{padding:100px 5vw;}
.if-section.dark{background:rgba(245,242,236,0.02);}

/* About */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;margin-top:64px;}
.about-item{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--border);}
.about-item:last-child{border-bottom:none;}
.about-key{font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);min-width:100px;padding-top:2px;flex-shrink:0;}
.about-val{font-size:0.92rem;color:rgba(245,242,236,0.75);line-height:1.6;}
.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;}
.skill-tag{border:1px solid var(--border);padding:12px 16px;font-size:0.72rem;letter-spacing:1.5px;text-transform:uppercase;color:rgba(245,242,236,0.6);transition:all .2s;}
.skill-tag:hover{border-color:var(--green);color:var(--green);}


/* Services */
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);margin-top:64px;}
.service-card{background:var(--black);padding:48px 40px;position:relative;overflow:hidden;transition:background .3s;}
.service-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--green);transition:height .4s ease;}
.service-card:hover{background:rgba(33,161,78,0.05);}
.service-card:hover::before{height:100%;}
.service-num{font-family:'Cormorant Garamond',serif;font-size:5rem;font-weight:300;line-height:1;color:rgba(245,242,236,0.04);position:absolute;top:16px;right:24px;}
.service-icon{font-size:2rem;margin-bottom:20px;display:block;}
.service-card h3{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:400;color:var(--white);margin-bottom:14px;}
.service-card p{font-size:0.88rem;color:var(--grey);line-height:1.8;}

/* Clients */
.clients-intro{display:grid;grid-template-columns:1fr 2fr;gap:64px;align-items:start;margin-bottom:64px;}
.clients-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);}
.client-card{background:var(--black);padding:28px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;transition:background .2s;text-decoration:none;min-height:110px;}
.client-card:hover{background:rgba(33,161,78,0.06);}
.client-card:focus-visible{outline:2px solid var(--green);outline-offset:-2px;}
.client-name{font-size:0.72rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:rgba(245,242,236,0.5);line-height:1.4;transition:color .2s;}
.client-card:hover .client-name{color:var(--green);}
.client-arrow{font-size:0.7rem;color:var(--green);opacity:0;transition:opacity .2s;}
.client-card:hover .client-arrow{opacity:1;}


/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:64px;}
.contact-item{display:flex;gap:18px;align-items:flex-start;margin-bottom:28px;}
.contact-icon{width:44px;height:44px;border:1px solid var(--border);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;transition:all .2s;}
.contact-item:hover .contact-icon{border-color:var(--green);background:rgba(33,161,78,0.1);}
.contact-label{font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);margin-bottom:4px;}
.contact-val{font-size:0.9rem;color:rgba(245,242,236,0.75);}
.socials{display:flex;gap:12px;margin-top:8px;}
.social-link{width:40px;height:40px;border:1px solid var(--border);border-radius:2px;display:flex;align-items:center;justify-content:center;color:rgba(245,242,236,0.5);text-decoration:none;font-size:0.8rem;transition:all .2s;}
.social-link:hover{border-color:var(--green);color:var(--green);background:rgba(33,161,78,0.08);}
.social-link:focus-visible{outline:2px solid var(--green);outline-offset:2px;}

/* Contact Form */
.contact-form{display:flex;flex-direction:column;gap:20px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-group{display:flex;flex-direction:column;gap:8px;}
.form-group label{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);}
.form-group input,.form-group textarea{background:rgba(245,242,236,0.04);border:1px solid var(--border);border-radius:2px;padding:14px 16px;font-family:'Syne',sans-serif;font-size:0.88rem;color:var(--white);outline:none;transition:border-color .2s;appearance:none;}
.form-group input:focus,.form-group textarea:focus{border-color:var(--green);background:rgba(33,161,78,0.04);outline:2px solid var(--green);outline-offset:1px;}
.form-group input::placeholder,.form-group textarea::placeholder{color:rgba(245,242,236,0.3);}
.form-group textarea{resize:vertical;min-height:140px;}
.btn-submit{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;background:var(--green);color:var(--black);padding:15px 32px;border:none;border-radius:2px;font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.btn-submit:hover{background:var(--green2);transform:translateY(-2px);}
.btn-submit:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.btn-submit.loading{opacity:0.7;pointer-events:none;}


/* Footer Widget Columns */
.footer-widgets{display:grid;gap:40px;padding:64px 5vw 32px;border-top:1px solid var(--border);}
.footer-widgets--cols-1{grid-template-columns:1fr;}
.footer-widgets--cols-2{grid-template-columns:repeat(2,1fr);}
.footer-widgets--cols-3{grid-template-columns:repeat(3,1fr);}
.footer-widgets--cols-4{grid-template-columns:repeat(4,1fr);}
.footer-widget{margin-bottom:24px;}
.footer-widget:last-child{margin-bottom:0;}
.footer-widget-title{font-family:'Syne',sans-serif;font-size:0.78rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--white);margin:0 0 16px;}
.footer-widget ul{list-style:none;margin:0;padding:0;}
.footer-widget li{margin-bottom:8px;}
.footer-widget a{color:var(--grey);text-decoration:none;transition:color .2s;}
.footer-widget a:hover{color:var(--green);}
@media(max-width:900px){.footer-widgets--cols-3,.footer-widgets--cols-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.footer-widgets{grid-template-columns:1fr!important;gap:32px;padding:48px 5vw 24px;}}

/* Footer */
.site-footer{border-top:1px solid var(--border);padding:40px 5vw;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.footer-widgets + .site-footer{border-top:none;padding-top:24px;}
.footer-logo{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:rgba(245,242,236,0.5);}
.footer-logo em{color:var(--green);font-style:normal;}
.footer-copy{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--grey);}
.footer-links{display:flex;gap:24px;align-items:center;}
.footer-links a{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);text-decoration:none;transition:color .2s;}
.footer-links a:hover{color:var(--green);}
.footer-menu{list-style:none;margin:0;padding:0;display:flex;gap:24px;align-items:center;}
.footer-menu li{margin:0;}

/* Footer Social Menu */
.footer-social{display:flex;align-items:center;}
.ifende-social-menu{list-style:none;margin:0;padding:0;display:flex;gap:14px;align-items:center;}
.ifende-social-item{margin:0;}
.ifende-social-item a{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:50%;color:var(--grey);text-decoration:none;transition:color .2s,border-color .2s,background .2s;}
.ifende-social-item a:hover,.ifende-social-item a:focus-visible{color:var(--green);border-color:var(--green);}
.ifende-social-item a:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
.ifende-social-icon{display:block;}
.footer-links a:focus-visible{outline:2px solid var(--green);outline-offset:2px;}

/* Reveal Animations */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-d1{transition-delay:.1s;}
.reveal-d2{transition-delay:.2s;}
.reveal-d3{transition-delay:.3s;}

/* Archive / Blog Styles */
.archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:32px;}
.archive-card{border:1px solid var(--border);border-radius:4px;overflow:hidden;transition:border-color .2s;}
.archive-card:hover{border-color:var(--green);}
.archive-card-image{display:block;overflow:hidden;max-height:200px;}
.archive-card-image img{width:100%;height:200px;object-fit:cover;transition:transform .3s;}
.archive-card:hover .archive-card-image img{transform:scale(1.03);}
.archive-card-content{padding:24px;}
.archive-card-date{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);margin-bottom:8px;display:block;}
.archive-card-title{font-family:'Cormorant Garamond',serif;font-size:1.4rem;font-weight:400;margin-bottom:12px;}
.archive-card-title a{color:var(--white);text-decoration:none;transition:color .2s;}
.archive-card-title a:hover{color:var(--green);}
.archive-card-excerpt{font-size:0.88rem;color:var(--grey);line-height:1.7;margin-bottom:16px;}
.archive-card-link{font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);text-decoration:none;transition:opacity .2s;}
.archive-card-link:hover{opacity:0.7;}
.archive-pagination{margin-top:64px;text-align:center;}
.archive-pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.archive-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);border-radius:2px;color:var(--white);text-decoration:none;font-size:0.82rem;transition:all .2s;}
.archive-pagination .page-numbers.current,.archive-pagination .page-numbers:hover{background:var(--green);color:var(--black);border-color:var(--green);}


/* Single Post */
.single-post-wrap{max-width:780px;margin:0 auto;}
.post-meta{font-family:'DM Mono',monospace;font-size:0.68rem;letter-spacing:1.5px;color:var(--grey);}
.post-meta a{color:var(--green);text-decoration:none;}
.post-content{font-size:1rem;line-height:1.9;color:rgba(245,242,236,0.8);}
.post-content h2,.post-content h3,.post-content h4{font-family:'Cormorant Garamond',serif;font-weight:400;color:var(--white);margin:32px 0 16px;}
.post-content h2{font-size:1.8rem;}
.post-content h3{font-size:1.4rem;}
.post-content p{margin-bottom:20px;}
.post-content a{color:var(--green);text-decoration:underline;text-underline-offset:3px;}
.post-content img{max-width:100%;height:auto;border-radius:4px;margin:24px 0;}
.post-content blockquote{border-left:3px solid var(--green);padding-left:20px;margin:24px 0;font-style:italic;color:rgba(245,242,236,0.6);}
.post-content ul,.post-content ol{padding-left:24px;margin-bottom:20px;}
.post-content li{margin-bottom:8px;}
.page-links{margin-top:32px;font-size:0.82rem;color:var(--grey);}

/* Page Template */
.page-content-wrap{padding:140px 5vw 80px;max-width:860px;margin:0 auto;}
.page-content-wrap h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:300;color:var(--white);margin-bottom:32px;}
.page-content-wrap .entry-content{font-size:0.95rem;line-height:1.8;color:rgba(245,242,236,0.7);}

/* WordPress admin bar */
.admin-bar .site-nav{top:32px;}
@media(max-width:782px){.admin-bar .site-nav{top:46px;}}


/* Responsive */
@media(max-width:900px){
  .hamburger{display:flex!important;}
  .nav-links{display:none!important;}
  .mobile-drawer{display:flex;}
  .hero-section{grid-template-columns:1fr;padding:100px 5vw 60px;}
  .hero-right{display:none;}
  .about-grid,.contact-grid{grid-template-columns:1fr;gap:48px;}
  .services-grid{grid-template-columns:1fr;}
  .clients-grid{grid-template-columns:repeat(2,1fr);}
  .clients-intro{grid-template-columns:1fr;gap:32px;}
}
@media(max-width:600px){
  .form-row{grid-template-columns:1fr;}
  .hero-stats{gap:24px;}
  .site-footer{flex-direction:column;align-items:flex-start;}
  .skills-grid{grid-template-columns:1fr;}
  .archive-grid{grid-template-columns:1fr;}
}

/* Prefers Reduced Motion — disable ALL animations/transitions */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important;}
  .reveal{opacity:1;transform:none;transition:none;}
  .marquee-track{animation:none!important;}
  .cursor,.cursor-ring{display:none!important;}
}

/* Focus visible global fallback */
:focus-visible{outline:2px solid var(--green);outline-offset:3px;}



/* ==========================================================================
   PAGE BUILDER COMPATIBILITY (Elementor / Gutenberg / Full Width)
   ========================================================================== */

/* Full-width template — removes all padding/max-width constraints */
.fullwidth-content{padding:0;max-width:none;}
.fullwidth-content .entry-content{max-width:none;}

/* Elementor active page — remove theme wrapper constraints */
.elementor-active-page .page-content-wrap{padding:0;max-width:none;margin:0;}
.elementor-active-page .page-content-wrap h1{display:none;}
.elementor-active-page .single-post-wrap{max-width:none;margin:0;}
.elementor-active-page .if-section{padding-top:80px;}
.elementor-page .entry-content,.elementor-page .post-content{max-width:none;}

/* Canvas template — completely blank */
.ifende-canvas{background:var(--black);color:var(--white);}

/* Gutenberg block alignment support */
.entry-content .alignwide{max-width:1200px;margin-left:auto;margin-right:auto;width:100%;}
.entry-content .alignfull{max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;}
.entry-content .aligncenter{text-align:center;}
.entry-content .wp-block-image.alignfull img,.entry-content .wp-block-cover.alignfull{width:100%;}

/* Block editor colors to match theme */
.entry-content .has-background{padding:20px 30px;}
.entry-content .wp-block-group{margin-bottom:24px;}
.entry-content .wp-block-separator{border-color:var(--border);opacity:1;}
.entry-content .wp-block-button .wp-block-button__link{background:var(--green);color:var(--black);padding:14px 30px;border-radius:2px;font-size:0.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;text-decoration:none;transition:all .3s;}
.entry-content .wp-block-button .wp-block-button__link:hover{background:var(--green2);color:var(--white);}



/* Back to Top Button */
.back-to-top{position:fixed;bottom:32px;right:32px;z-index:100;width:44px;height:44px;border-radius:50%;background:var(--green);color:var(--black);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,visibility .3s,transform .3s,background .2s;box-shadow:0 4px 16px rgba(33,161,78,0.3);}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top:hover{background:var(--green2);transform:translateY(-2px);box-shadow:0 6px 20px rgba(33,161,78,0.4);}
.back-to-top:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
@media(max-width:600px){.back-to-top{bottom:20px;right:20px;width:40px;height:40px;}}



/* ==========================================================================
   DARK / LIGHT MODE
   ========================================================================== */

/* Light theme overrides */
[data-theme="light"]{
  --black:#FAFAFA;
  --white:#1A1A1A;
  --green:#1A8F42;
  --green2:#147A36;
  --gold:#9A7B30;
  --grey:#5A5A5A;
  --border:rgba(26,26,26,0.1);
}
[data-theme="light"] body{background:var(--black);color:var(--white);}
[data-theme="light"] .site-nav.scrolled{background:rgba(250,250,250,0.95);}
[data-theme="light"] .mobile-drawer{background:var(--black);}
[data-theme="light"] .hero-bg{background:radial-gradient(ellipse 50% 60% at 70% 40%,rgba(26,143,66,0.06) 0%,transparent 70%),radial-gradient(ellipse 30% 40% at 10% 80%,rgba(154,123,48,0.04) 0%,transparent 60%);}
[data-theme="light"] .hero-grid-bg{background-image:linear-gradient(rgba(26,26,26,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(26,26,26,0.04) 1px,transparent 1px);}
[data-theme="light"] .hero-photo{background:linear-gradient(145deg,#e8f5e9,#f1f8e9);}
[data-theme="light"] .hero-photo-placeholder{background:linear-gradient(145deg,rgba(26,143,66,0.08),rgba(250,250,250,0.9));}
[data-theme="light"] .hero-status{background:var(--black);border-color:var(--border);}
[data-theme="light"] .marquee-section{background:rgba(26,143,66,0.03);}
[data-theme="light"] .if-section.dark{background:rgba(26,26,26,0.02);}
[data-theme="light"] .service-card{background:var(--black);}
[data-theme="light"] .service-card:hover{background:rgba(26,143,66,0.04);}
[data-theme="light"] .service-num{color:rgba(26,26,26,0.05);}
[data-theme="light"] .client-card{background:var(--black);}
[data-theme="light"] .client-card:hover{background:rgba(26,143,66,0.04);}
[data-theme="light"] .form-group input,[data-theme="light"] .form-group textarea{background:rgba(26,26,26,0.03);color:var(--white);}
[data-theme="light"] .form-group input::placeholder,[data-theme="light"] .form-group textarea::placeholder{color:rgba(26,26,26,0.35);}
[data-theme="light"] .hero-bio{color:rgba(26,26,26,0.6);}
[data-theme="light"] .section-sub{color:var(--grey);}
[data-theme="light"] .nav-links a{color:rgba(26,26,26,0.55);}
[data-theme="light"] .nav-links a:hover,[data-theme="light"] .nav-links .current-menu-item>a{color:var(--white);}
[data-theme="light"] .hamburger span{background:var(--white);}
[data-theme="light"] .skill-tag{color:rgba(26,26,26,0.6);border-color:var(--border);}
[data-theme="light"] .about-val{color:rgba(26,26,26,0.7);}
[data-theme="light"] .cursor{background:var(--green);}
[data-theme="light"] .back-to-top{box-shadow:0 4px 16px rgba(26,143,66,0.2);}
[data-theme="light"] .site-footer{border-top-color:var(--border);}

/* Theme Toggle Button */
.theme-toggle{background:none;border:1px solid var(--border);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--white);transition:border-color .2s,color .2s,background .2s;padding:0;}
.theme-toggle:hover{border-color:var(--green);color:var(--green);background:rgba(33,161,78,0.08);}
.theme-toggle:focus-visible{outline:2px solid var(--green);outline-offset:3px;}

/* Show/hide sun/moon icons based on theme */
[data-theme="dark"] .theme-icon--sun{display:block;}
[data-theme="dark"] .theme-icon--moon{display:none;}
[data-theme="light"] .theme-icon--sun{display:none;}
[data-theme="light"] .theme-icon--moon{display:block;}
/* Default (no data-theme yet) */
.theme-icon--moon{display:none;}



/* ==========================================================================
   TESTIMONIALS SECTION
   ========================================================================== */

.testimonials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;}
.testimonial-card{background:rgba(245,242,236,0.02);border:1px solid var(--border);border-radius:4px;padding:36px 32px;position:relative;display:flex;flex-direction:column;gap:20px;transition:border-color .2s,background .2s;}
.testimonial-card:hover{border-color:rgba(33,161,78,0.3);background:rgba(33,161,78,0.03);}
.testimonial-quote-mark{font-family:'Cormorant Garamond',serif;font-size:4rem;line-height:1;color:var(--green);opacity:0.3;position:absolute;top:16px;left:24px;}
.testimonial-text{font-size:0.92rem;line-height:1.8;color:rgba(245,242,236,0.7);margin:0;padding-top:16px;font-style:italic;}
.testimonial-author{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:16px;border-top:1px solid var(--border);}
.testimonial-avatar{width:40px;height:40px;border-radius:50%;background:var(--green);color:var(--black);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.82rem;flex-shrink:0;}
.testimonial-name{font-style:normal;font-weight:600;font-size:0.82rem;color:var(--white);display:block;letter-spacing:0.5px;}
.testimonial-role{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);}

/* Light mode overrides */
[data-theme="light"] .testimonial-card{background:rgba(26,26,26,0.02);border-color:var(--border);}
[data-theme="light"] .testimonial-card:hover{background:rgba(26,143,66,0.03);border-color:rgba(26,143,66,0.25);}
[data-theme="light"] .testimonial-text{color:rgba(26,26,26,0.65);}


/* ==========================================================================
   BLOG / LATEST POSTS SECTION
   ========================================================================== */

.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:28px;}
.blog-card{border:1px solid var(--border);border-radius:4px;overflow:hidden;transition:border-color .2s,transform .2s;display:flex;flex-direction:column;}
.blog-card:hover{border-color:var(--green);transform:translateY(-3px);}
.blog-card-image{display:block;overflow:hidden;height:180px;}
.blog-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.blog-card:hover .blog-card-image img{transform:scale(1.04);}
.blog-card-content{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.blog-card-date{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);}
.blog-card-title{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;line-height:1.3;}
.blog-card-title a{color:var(--white);text-decoration:none;transition:color .2s;}
.blog-card-title a:hover{color:var(--green);}
.blog-card-excerpt{font-size:0.85rem;color:var(--grey);line-height:1.7;flex:1;}
.blog-card-link{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);text-decoration:none;margin-top:auto;transition:opacity .2s;}
.blog-card-link:hover{opacity:0.7;}

/* Light mode */
[data-theme="light"] .blog-card{border-color:var(--border);}
[data-theme="light"] .blog-card:hover{border-color:var(--green);}


/* ==========================================================================
   PAGE PRELOADER
   ========================================================================== */

.site-preloader{position:fixed;inset:0;z-index:99999;background:var(--black);display:flex;align-items:center;justify-content:center;transition:opacity .4s ease,visibility .4s ease;}
.site-preloader.loaded{opacity:0;visibility:hidden;pointer-events:none;}
.preloader-spinner{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

/* Light mode */
[data-theme="light"] .site-preloader{background:var(--black);}

@media(max-width:600px){
  .testimonials-grid{grid-template-columns:1fr;}
  .blog-grid{grid-template-columns:1fr;}
}



/* ==========================================================================
   NEWSLETTER SECTION
   ========================================================================== */

.newsletter-section{background:rgba(33,161,78,0.04);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.newsletter-wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.newsletter-content .section-title{margin-bottom:12px;}
.newsletter-form{display:flex;flex-direction:column;gap:12px;}
.newsletter-input-wrap{display:flex;gap:0;border:1px solid var(--border);border-radius:2px;overflow:hidden;transition:border-color .2s;}
.newsletter-input-wrap:focus-within{border-color:var(--green);}
.newsletter-input-wrap input{flex:1;background:transparent;border:none;padding:16px 20px;font-family:'Syne',sans-serif;font-size:0.88rem;color:var(--white);outline:none;}
.newsletter-input-wrap input::placeholder{color:rgba(245,242,236,0.3);}
.newsletter-btn{background:var(--green);color:var(--black);border:none;padding:16px 28px;font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:background .2s;white-space:nowrap;}
.newsletter-btn:hover{background:var(--green2);}
.newsletter-disclaimer{font-family:'DM Mono',monospace;font-size:0.6rem;letter-spacing:1.5px;color:var(--grey);text-transform:uppercase;}

@media(max-width:900px){.newsletter-wrap{grid-template-columns:1fr;gap:32px;}}

/* Light mode */
[data-theme="light"] .newsletter-section{background:rgba(26,143,66,0.03);}
[data-theme="light"] .newsletter-input-wrap input{color:var(--white);}
[data-theme="light"] .newsletter-input-wrap input::placeholder{color:rgba(26,26,26,0.35);}


/* ==========================================================================
   GDPR / COOKIE CONSENT BANNER
   ========================================================================== */

.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9000;background:var(--black);border-top:1px solid var(--border);padding:20px 5vw;transform:translateY(100%);transition:transform .4s ease;box-shadow:0 -4px 24px rgba(0,0,0,0.3);}
.cookie-banner.visible{transform:translateY(0);}
.cookie-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1400px;margin:0 auto;}
.cookie-banner-text{font-size:0.82rem;color:rgba(245,242,236,0.7);line-height:1.6;flex:1;}
.cookie-policy-link{color:var(--green);text-decoration:underline;text-underline-offset:2px;margin-left:4px;}
.cookie-banner-actions{display:flex;gap:10px;flex-shrink:0;}
.cookie-btn{padding:10px 20px;border-radius:2px;font-family:'Syne',sans-serif;font-size:0.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border:none;transition:all .2s;}
.cookie-btn--accept{background:var(--green);color:var(--black);}
.cookie-btn--accept:hover{background:var(--green2);}
.cookie-btn--dismiss{background:transparent;border:1px solid var(--border);color:var(--white);}
.cookie-btn--dismiss:hover{border-color:var(--green);color:var(--green);}

@media(max-width:600px){
  .cookie-banner-inner{flex-direction:column;text-align:center;}
  .cookie-banner-actions{width:100%;justify-content:center;}
}

/* Light mode */
[data-theme="light"] .cookie-banner{background:var(--black);border-top-color:var(--border);box-shadow:0 -4px 24px rgba(0,0,0,0.08);}
[data-theme="light"] .cookie-banner-text{color:rgba(26,26,26,0.65);}



/* ==========================================================================
   SCROLL PROGRESS INDICATOR
   ========================================================================== */

.scroll-progress{position:fixed;top:0;left:0;width:0;height:3px;background:linear-gradient(90deg,var(--green),var(--gold));z-index:9990;transition:width .1s linear;pointer-events:none;}
[data-theme="light"] .scroll-progress{background:linear-gradient(90deg,var(--green),var(--gold));}
.admin-bar .scroll-progress{top:32px;}
@media(max-width:782px){.admin-bar .scroll-progress{top:46px;}}


/* ==========================================================================
   ENHANCED 404 PAGE
   ========================================================================== */

.error-404-wrap{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:140px 5vw 80px;position:relative;overflow:hidden;}
.error-404-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.error-404-big{font-family:'Cormorant Garamond',serif;font-size:clamp(12rem,30vw,25rem);font-weight:300;color:rgba(33,161,78,0.04);line-height:1;user-select:none;}
.error-404-content{position:relative;z-index:2;max-width:520px;}
.error-404-content .section-title{margin-bottom:20px;}
.error-404-content .section-sub{margin:0 auto 40px;max-width:420px;}
.error-404-search{margin-top:32px;display:flex;gap:0;border:1px solid var(--border);border-radius:2px;overflow:hidden;max-width:360px;margin-left:auto;margin-right:auto;}
.error-404-search input{flex:1;background:transparent;border:none;padding:14px 16px;font-family:'Syne',sans-serif;font-size:0.88rem;color:var(--white);outline:none;}
.error-404-search input::placeholder{color:rgba(245,242,236,0.3);}
.error-404-search button{background:var(--green);color:var(--black);border:none;padding:14px 20px;font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.error-404-search button:hover{background:var(--green2);}
[data-theme="light"] .error-404-big{color:rgba(26,143,66,0.05);}
[data-theme="light"] .error-404-search input{color:var(--white);}
[data-theme="light"] .error-404-search input::placeholder{color:rgba(26,26,26,0.3);}


/* ==========================================================================
   FAQ SECTION (Schema.org ready)
   ========================================================================== */

.faq-list{margin-top:48px;max-width:780px;}
.faq-item{border-bottom:1px solid var(--border);padding:0;}
.faq-question{display:flex;align-items:center;justify-content:space-between;padding:24px 0;cursor:pointer;background:none;border:none;width:100%;text-align:left;font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;color:var(--white);transition:color .2s;gap:16px;}
.faq-question:hover{color:var(--green);}
.faq-question:focus-visible{outline:2px solid var(--green);outline-offset:2px;}
.faq-icon{width:24px;height:24px;flex-shrink:0;position:relative;color:var(--green);}
.faq-icon::before,.faq-icon::after{content:'';position:absolute;top:50%;left:50%;background:currentColor;transition:transform .3s;}
.faq-icon::before{width:12px;height:2px;transform:translate(-50%,-50%);}
.faq-icon::after{width:2px;height:12px;transform:translate(-50%,-50%);}
.faq-item.open .faq-icon::after{transform:translate(-50%,-50%) rotate(90deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 0 0 0;}
.faq-item.open .faq-answer{max-height:300px;padding:0 0 24px 0;}
.faq-answer p{font-size:0.92rem;line-height:1.8;color:var(--grey);margin:0;}
[data-theme="light"] .faq-question{color:var(--white);}
[data-theme="light"] .faq-answer p{color:var(--grey);}


/* ==========================================================================
   Blog Enhancements — Reading time, Share buttons, Related posts
   ========================================================================== */

/* Reading Time Badge */
.reading-time{display:inline-flex;align-items:center;gap:4px;font-size:0.78rem;color:var(--grey);letter-spacing:0.5px;}
.reading-time svg{opacity:0.7;}

/* Share Buttons */
.share-buttons{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.share-label{font-size:0.72rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--grey);}
.share-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:rgba(245,242,236,0.06);color:var(--white);transition:all .2s;text-decoration:none;}
.share-btn:hover{background:var(--green);color:var(--black);transform:translateY(-2px);}
.share-btn svg{width:16px;height:16px;}

/* Related Posts */
.related-posts{margin-top:64px;padding-top:48px;border-top:1px solid var(--border);}
.related-posts .section-label{margin-bottom:24px;}
.related-posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;}
.related-post-card{border:1px solid var(--border);border-radius:4px;overflow:hidden;transition:border-color .2s,transform .2s;}
.related-post-card:hover{border-color:var(--green);transform:translateY(-2px);}
.related-post-thumbnail{display:block;aspect-ratio:16/9;overflow:hidden;}
.related-post-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.related-post-card:hover .related-post-thumbnail img{transform:scale(1.03);}
.related-post-content{padding:16px 20px;}
.related-post-date{font-size:0.7rem;color:var(--grey);letter-spacing:1px;text-transform:uppercase;}
.related-post-title{margin-top:8px;font-size:0.95rem;font-weight:600;line-height:1.4;}
.related-post-title a{color:var(--white);text-decoration:none;transition:color .2s;}
.related-post-title a:hover{color:var(--green);}

@media(max-width:600px){
  .related-posts-grid{grid-template-columns:1fr;}
  .share-buttons{justify-content:center;}
}



/* ==========================================================================
   PORTFOLIO / PROJECTS GRID
   ========================================================================== */

.portfolio-filters{display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap;}
.portfolio-filter{background:transparent;border:1px solid var(--border);color:var(--white);padding:8px 18px;border-radius:2px;font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.portfolio-filter:hover,.portfolio-filter.active{background:var(--green);border-color:var(--green);color:var(--black);}
.portfolio-filter:focus-visible{outline:2px solid var(--green);outline-offset:3px;}

.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:28px;}
.portfolio-card{border:1px solid var(--border);border-radius:4px;overflow:hidden;transition:border-color .2s,transform .2s,opacity .3s;display:flex;flex-direction:column;}
.portfolio-card:hover{border-color:var(--green);transform:translateY(-3px);}
.portfolio-card.hidden{display:none;}
.portfolio-card-image{position:relative;overflow:hidden;aspect-ratio:16/10;}
.portfolio-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s;}
.portfolio-card:hover .portfolio-card-image img{transform:scale(1.04);}
.portfolio-card-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.7);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;}
.portfolio-card:hover .portfolio-card-overlay{opacity:1;}
.portfolio-card-link{width:48px;height:48px;border-radius:50%;background:var(--green);color:var(--black);display:flex;align-items:center;justify-content:center;font-size:1.2rem;text-decoration:none;font-weight:700;transition:transform .2s;}
.portfolio-card-link:hover{transform:scale(1.1);}
.portfolio-card-content{padding:20px 24px;display:flex;flex-direction:column;gap:8px;flex:1;}
.portfolio-card-meta{display:flex;gap:12px;font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);}
.portfolio-card-title{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;color:var(--white);}
.portfolio-card-excerpt{font-size:0.85rem;color:var(--grey);line-height:1.7;}
.portfolio-card-tech{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:12px;}
.tech-tag{font-size:0.6rem;letter-spacing:1px;text-transform:uppercase;color:var(--green);border:1px solid rgba(33,161,78,0.3);padding:4px 8px;border-radius:2px;}

@media(max-width:600px){.portfolio-grid{grid-template-columns:1fr;}}


/* ==========================================================================
   SKILLS PROGRESS BARS
   ========================================================================== */

.skills-progress-list{display:flex;flex-direction:column;gap:16px;}
.skill-progress-item{display:flex;flex-direction:column;gap:6px;}
.skill-progress-header{display:flex;justify-content:space-between;align-items:center;}
.skill-progress-name{font-size:0.72rem;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--white);}
.skill-progress-pct{font-family:'DM Mono',monospace;font-size:0.65rem;color:var(--green);}
.skill-progress-bar{height:4px;background:rgba(245,242,236,0.08);border-radius:2px;overflow:hidden;}
.skill-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:2px;width:0;transition:width 1.2s ease-out;}
.skill-progress-fill.animated{width:var(--progress);}


/* ==========================================================================
   CONTACT FORM PLUGIN STYLING (CF7 & WPForms)
   ========================================================================== */

/* Contact Form 7 */
.wpcf7 .wpcf7-form-control-wrap{display:block;margin-bottom:16px;}
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="url"],.wpcf7 input[type="tel"],.wpcf7 input[type="number"],.wpcf7 textarea,.wpcf7 select{background:rgba(245,242,236,0.04);border:1px solid var(--border);border-radius:2px;padding:14px 16px;font-family:'Syne',sans-serif;font-size:0.88rem;color:var(--white);width:100%;outline:none;transition:border-color .2s;appearance:none;}
.wpcf7 input:focus,.wpcf7 textarea:focus,.wpcf7 select:focus{border-color:var(--green);outline:2px solid var(--green);outline-offset:1px;}
.wpcf7 input::placeholder,.wpcf7 textarea::placeholder{color:rgba(245,242,236,0.3);}
.wpcf7 textarea{resize:vertical;min-height:140px;}
.wpcf7 input[type="submit"]{display:inline-flex;align-items:center;gap:10px;background:var(--green);color:var(--black);padding:14px 30px;border:none;border-radius:2px;font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.wpcf7 input[type="submit"]:hover{background:var(--green2);transform:translateY(-2px);}
.wpcf7 .wpcf7-response-output{border:1px solid var(--border)!important;border-radius:4px;padding:16px!important;font-size:0.85rem;color:var(--grey);margin-top:16px!important;}
.wpcf7 .wpcf7-not-valid-tip{font-size:0.72rem;color:#e74c3c;margin-top:4px;}
.wpcf7 label{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);display:block;margin-bottom:6px;}

/* WPForms */
.wpforms-container .wpforms-form .wpforms-field-label{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);}
.wpforms-container .wpforms-form input[type="text"],.wpforms-container .wpforms-form input[type="email"],.wpforms-container .wpforms-form input[type="url"],.wpforms-container .wpforms-form input[type="tel"],.wpforms-container .wpforms-form textarea,.wpforms-container .wpforms-form select{background:rgba(245,242,236,0.04)!important;border:1px solid var(--border)!important;border-radius:2px!important;padding:14px 16px!important;font-family:'Syne',sans-serif!important;font-size:0.88rem!important;color:var(--white)!important;transition:border-color .2s;}
.wpforms-container .wpforms-form input:focus,.wpforms-container .wpforms-form textarea:focus{border-color:var(--green)!important;outline:2px solid var(--green);outline-offset:1px;}
.wpforms-container .wpforms-form input::placeholder,.wpforms-container .wpforms-form textarea::placeholder{color:rgba(245,242,236,0.3)!important;}
.wpforms-container .wpforms-form .wpforms-submit-container button[type="submit"]{background:var(--green)!important;color:var(--black)!important;padding:14px 30px!important;border:none!important;border-radius:2px!important;font-family:'Syne',sans-serif!important;font-size:0.72rem!important;font-weight:700!important;letter-spacing:2px!important;text-transform:uppercase!important;cursor:pointer;transition:all .2s;}
.wpforms-container .wpforms-form .wpforms-submit-container button[type="submit"]:hover{background:var(--green2)!important;transform:translateY(-2px);}

/* Light mode overrides for forms */
[data-theme="light"] .wpcf7 input,[data-theme="light"] .wpcf7 textarea,[data-theme="light"] .wpcf7 select{background:rgba(26,26,26,0.03);color:var(--white);}
[data-theme="light"] .wpforms-container .wpforms-form input,[data-theme="light"] .wpforms-container .wpforms-form textarea{background:rgba(26,26,26,0.03)!important;color:var(--white)!important;}


/* ==========================================================================
   ANIMATED NUMBER COUNTERS
   ========================================================================== */

.stat-num[data-count]{transition:none;}
.stat-num.counting{color:var(--green);}



/* ==========================================================================
   SINGLE PROJECT / CASE STUDY
   ========================================================================== */

.single-project-wrap{max-width:900px;margin:0 auto;}
.project-header{margin-bottom:48px;}
.project-meta{display:flex;gap:32px;flex-wrap:wrap;margin-top:24px;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.project-meta-item{display:flex;flex-direction:column;gap:4px;}
.project-meta-label{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);}
.project-meta-value{font-size:0.88rem;color:var(--white);}
.project-meta-link{font-size:0.88rem;color:var(--green);text-decoration:none;transition:opacity .2s;}
.project-meta-link:hover{opacity:0.7;}

.project-featured-image{margin-bottom:48px;border-radius:4px;overflow:hidden;}
.project-featured-image img{width:100%;height:auto;display:block;}

.project-content{margin-bottom:48px;}
.project-content h2{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:400;color:var(--white);margin:48px 0 16px;padding-top:32px;border-top:1px solid var(--border);}
.project-content h2:first-child{border-top:none;padding-top:0;margin-top:0;}

.project-tech-section{margin-bottom:48px;padding:32px 0;border-top:1px solid var(--border);}
.project-tech-grid{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;}
.project-tech-grid .tech-tag{font-size:0.68rem;padding:6px 12px;}

.project-cta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:64px;padding-top:32px;border-top:1px solid var(--border);}

.project-navigation{display:flex;justify-content:space-between;gap:24px;padding:48px 0;border-top:1px solid var(--border);flex-wrap:wrap;}
.project-nav-item{display:flex;flex-direction:column;gap:6px;}
.project-nav-next{text-align:right;margin-left:auto;}
.project-nav-label{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--grey);}
.project-nav-link{font-size:0.92rem;color:var(--white);text-decoration:none;transition:color .2s;}
.project-nav-link:hover{color:var(--green);}

@media(max-width:600px){
  .project-meta{flex-direction:column;gap:16px;}
  .project-navigation{flex-direction:column;}
  .project-nav-next{text-align:left;margin-left:0;}
}
   EXIT-INTENT POPUP
   ========================================================================== */

.exit-popup-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,0.8);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;padding:24px;}
.exit-popup-overlay.visible{opacity:1;visibility:visible;}
.exit-popup{position:relative;background:var(--black);border:1px solid var(--border);border-radius:4px;padding:48px 40px;max-width:480px;width:100%;text-align:center;transform:translateY(20px);transition:transform .3s;}
.exit-popup-overlay.visible .exit-popup{transform:translateY(0);}
.exit-popup-close{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--grey);font-size:1.5rem;cursor:pointer;line-height:1;padding:4px;transition:color .2s;}
.exit-popup-close:hover{color:var(--white);}
.exit-popup-headline{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:300;color:var(--white);margin-bottom:12px;}
.exit-popup-message{font-size:0.92rem;color:var(--grey);line-height:1.8;margin-bottom:24px;}
.exit-popup-cta{display:inline-flex;}


/* ==========================================================================
   FLOATING ACTION BAR
   ========================================================================== */

.action-bar{position:fixed;left:0;right:0;z-index:190;background:var(--green);color:var(--black);padding:10px 5vw;display:flex;align-items:center;justify-content:center;gap:16px;font-size:0.78rem;box-shadow:0 2px 12px rgba(33,161,78,0.3);}
.action-bar--top{top:0;}
.action-bar--bottom{bottom:0;}
.action-bar-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;}
.action-bar-message{font-weight:600;letter-spacing:0.5px;}
.action-bar-cta{background:var(--black);color:var(--white);padding:6px 16px;border-radius:2px;font-size:0.65rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;transition:opacity .2s;}
.action-bar-cta:hover{opacity:0.85;}
.action-bar-dismiss{position:absolute;right:16px;background:none;border:none;color:var(--black);font-size:1.2rem;cursor:pointer;opacity:0.6;transition:opacity .2s;}
.action-bar-dismiss:hover{opacity:1;}
/* Offset nav when action bar is at top */
.action-bar--top ~ .site-nav{top:40px;}
.admin-bar .action-bar--top{top:32px;}
@media(max-width:782px){.admin-bar .action-bar--top{top:46px;}}


/* ==========================================================================
   PROJECT INQUIRY FORM
   ========================================================================== */

.project-inquiry{margin-top:64px;padding:48px 0;border-top:1px solid var(--border);}
.project-inquiry-title{font-family:'Cormorant Garamond',serif;font-size:1.8rem;font-weight:300;color:var(--white);margin-bottom:8px;}
.project-inquiry-desc{font-size:0.92rem;color:var(--grey);line-height:1.7;margin-bottom:32px;}
.project-inquiry-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.project-inquiry-ref{display:flex;align-items:center;gap:8px;margin-bottom:20px;padding:12px 16px;border:1px solid var(--border);border-radius:2px;background:rgba(33,161,78,0.04);}
.project-inquiry-ref-label{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);}
.project-inquiry-ref-value{font-size:0.85rem;color:var(--white);}
.project-inquiry-msg{margin-top:12px;font-size:0.85rem;}
@media(max-width:600px){.project-inquiry-form .form-row{grid-template-columns:1fr;}}


/* ==========================================================================
   TABLE OF CONTENTS
   ========================================================================== */

.toc{margin-bottom:40px;padding:24px 28px;border:1px solid var(--border);border-radius:4px;background:rgba(245,242,236,0.02);}
.toc-title{font-family:'DM Mono',monospace;font-size:0.65rem;letter-spacing:2.5px;text-transform:uppercase;color:var(--green);margin-bottom:12px;}
.toc-list{list-style:none;counter-reset:toc;padding:0;margin:0;}
.toc-list li{counter-increment:toc;padding:6px 0;border-bottom:1px solid var(--border);}
.toc-list li:last-child{border-bottom:none;}
.toc-list li a{color:var(--white);text-decoration:none;font-size:0.88rem;transition:color .2s;display:flex;align-items:baseline;gap:8px;}
.toc-list li a::before{content:counter(toc) ".";font-family:'DM Mono',monospace;font-size:0.7rem;color:var(--green);flex-shrink:0;}
.toc-list li a:hover{color:var(--green);}
.toc-list li.toc-sub{padding-left:20px;}
.toc-list li.toc-sub a::before{content:"—";color:var(--grey);}


/* ==========================================================================
   BREADCRUMBS
   ========================================================================== */

.breadcrumbs-wrap{padding:16px 5vw 0;}
.breadcrumbs-list{display:flex;align-items:center;gap:0;list-style:none;padding:0;margin:0;flex-wrap:wrap;}
.breadcrumbs-item{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:1.5px;text-transform:uppercase;}
.breadcrumbs-item a{color:var(--grey);text-decoration:none;transition:color .2s;}
.breadcrumbs-item a:hover{color:var(--green);}
.breadcrumbs-item span[aria-current]{color:var(--white);}
.breadcrumbs-sep{color:var(--green);margin:0 8px;font-size:0.6rem;list-style:none;}


/* ==========================================================================
   RELATED PROJECTS
   ========================================================================== */

.related-projects{margin-top:64px;padding-top:48px;border-top:1px solid var(--border);}
.related-projects-title{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-weight:300;color:var(--white);margin-bottom:24px;}
.related-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;}
.related-project-card{border:1px solid var(--border);border-radius:4px;overflow:hidden;text-decoration:none;transition:border-color .2s,transform .2s;display:flex;flex-direction:column;}
.related-project-card:hover{border-color:var(--green);transform:translateY(-2px);}
.related-project-image{aspect-ratio:16/10;overflow:hidden;}
.related-project-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
.related-project-card:hover .related-project-image img{transform:scale(1.03);}
.related-project-info{padding:16px 20px;}
.related-project-name{font-size:0.95rem;font-weight:600;color:var(--white);margin-bottom:4px;}
.related-project-client{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);}
@media(max-width:600px){.related-projects-grid{grid-template-columns:1fr;}}


/* ==========================================================================
   AUTHOR BOX
   ========================================================================== */

.author-box{margin-top:48px;padding:32px;border:1px solid var(--border);border-radius:4px;background:rgba(245,242,236,0.02);}
.author-box-header{display:flex;align-items:center;gap:16px;margin-bottom:16px;}
.author-box-avatar{width:64px;height:64px;border-radius:50%;flex-shrink:0;}
.author-box-info{display:flex;flex-direction:column;gap:2px;}
.author-box-label{font-family:'DM Mono',monospace;font-size:0.6rem;letter-spacing:2px;text-transform:uppercase;color:var(--green);}
.author-box-name{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:400;color:var(--white);text-decoration:none;transition:color .2s;}
.author-box-name:hover{color:var(--green);}
.author-box-bio{font-size:0.88rem;color:var(--grey);line-height:1.7;margin-bottom:16px;}
.author-box-footer{display:flex;gap:16px;padding-top:12px;border-top:1px solid var(--border);}
.author-box-link{font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--green);text-decoration:none;transition:opacity .2s;}
.author-box-link:hover{opacity:0.7;}



/* ==========================================================================
   PAGE TRANSITIONS (View Transitions API)
   ========================================================================== */

::view-transition-old(root),::view-transition-new(root){animation-duration:0.3s;}
::view-transition-old(root){animation:fade-out 0.2s ease;}
::view-transition-new(root){animation:fade-in 0.3s ease;}
@keyframes fade-out{from{opacity:1}to{opacity:0}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}


/* ==========================================================================
   PARALLAX (hero grid subtle depth)
   ========================================================================== */

.hero-grid-bg{will-change:transform;}


/* ==========================================================================
   TYPED TEXT EFFECT
   ========================================================================== */

.typed-role{color:var(--green);border-right:2px solid var(--green);padding-right:2px;animation:blink-cursor .7s step-end infinite;}
@keyframes blink-cursor{0%,100%{border-color:var(--green)}50%{border-color:transparent}}


/* ==========================================================================
   IMAGE LIGHTBOX
   ========================================================================== */

.ifende-lightbox{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;}
.ifende-lightbox.visible{opacity:1;visibility:visible;}
.ifende-lightbox-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.92);backdrop-filter:blur(4px);}
.ifende-lightbox-img{position:relative;z-index:1;max-width:90vw;max-height:85vh;border-radius:4px;box-shadow:0 20px 60px rgba(0,0,0,0.5);cursor:zoom-out;object-fit:contain;}
.ifende-lightbox-close{position:absolute;top:24px;right:24px;z-index:2;width:44px;height:44px;border-radius:50%;background:rgba(245,242,236,0.1);color:var(--white);border:1px solid rgba(245,242,236,0.2);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;}
.ifende-lightbox-close:hover{background:rgba(245,242,236,0.2);border-color:rgba(245,242,236,0.4);}
.ifende-lightbox-close:focus-visible{outline:2px solid var(--green);outline-offset:3px;}


/* ==========================================================================
   CASE STUDY METRICS
   ========================================================================== */

.project-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;margin:48px 0;padding:32px;border:1px solid var(--border);border-radius:4px;background:rgba(33,161,78,0.04);}
.project-metric{text-align:center;padding:16px;}
.project-metric-value{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:600;color:var(--green);line-height:1;margin-bottom:4px;}
.project-metric-label{font-family:'DM Mono',monospace;font-size:0.6rem;letter-spacing:2px;text-transform:uppercase;color:var(--grey);}


/* ==========================================================================
   LIVE VISITOR COUNT
   ========================================================================== */

.visitor-count{position:fixed;bottom:32px;left:32px;z-index:90;display:flex;align-items:center;gap:8px;background:var(--black);border:1px solid var(--border);padding:8px 14px;border-radius:20px;font-family:'DM Mono',monospace;font-size:0.62rem;letter-spacing:1px;color:var(--grey);opacity:0;transition:opacity .5s;pointer-events:none;}
.visitor-count.visible{opacity:1;}
.visitor-count-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s infinite;}
@media(max-width:600px){.visitor-count{bottom:72px;left:20px;}}
