/*
Theme Name: Brand Core
Theme URI: https://brandcoremedia.com/
Author: Brand Core Media
Author URI: https://brandcoremedia.com/
Description: Custom black-and-white motion theme for Brand Core Media — branding agency in Ahmedabad. Minimal plugin footprint, built for WPBakery page-code sections. Includes the BCM Customisation admin panel.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: brandcore
*/

:root{--void:#080808;--ink:#0e0e0e;--grey:#8a8a8a;--silver:#c9c9c9;--white:#f4f4f0;--line:rgba(244,244,240,.14);--ease:cubic-bezier(.19,1,.22,1)}
*{margin:0;padding:0;box-sizing:border-box}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--white);font-family:"Space Grotesk",sans-serif;font-weight:300;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.bcm-cursor-on{cursor:none}
@media(max-width:900px){body.bcm-cursor-on{cursor:auto}}
::selection{background:var(--white);color:var(--void)}
.it{font-style:italic}

/* film grain */
body::after{content:"";position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* cursor */
.cursor{position:fixed;top:0;left:0;width:7px;height:7px;border-radius:50%;background:var(--white);z-index:400;pointer-events:none;transform:translate(-50%,-50%);mix-blend-mode:difference;transition:width .3s var(--ease),height .3s var(--ease);opacity:0}
.ring{position:fixed;top:0;left:0;width:30px;height:30px;border:1px solid rgba(244,244,240,.5);border-radius:50%;z-index:399;pointer-events:none;transform:translate(-50%,-50%);transition:width .4s var(--ease),height .4s var(--ease),border-color .4s;opacity:0}
.cursor.on,.ring.on{opacity:1}
.cursor.h{width:0;height:0}.ring.h{width:64px;height:64px;border-color:var(--white)}
@media(max-width:900px){.cursor,.ring{display:none}}

/* header / nav */
.nav{position:fixed;top:0;left:0;width:100%;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:1.2rem clamp(1.2rem,4vw,3.5rem);transition:transform .5s var(--ease)}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to bottom,rgba(8,8,8,.94),transparent);pointer-events:none}
.nav.up{transform:translateY(-130%)}
.brand{font-family:"Fraunces",serif;font-weight:400;font-size:1.05rem;letter-spacing:.03em;display:flex;align-items:center;gap:.55rem}
.brand b{font-weight:600}
.brand .dot{width:7px;height:7px;border-radius:50%;background:var(--white)}
.brand img{display:block;width:auto}
.links{display:flex;gap:2rem;align-items:center}
.bcm-menu{display:flex;gap:2rem;align-items:center;list-style:none}
.bcm-menu a{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;position:relative;display:inline-block}
.bcm-menu a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:currentColor;transition:width .4s var(--ease)}
.bcm-menu a:hover::after{width:100%}
.bcm-menu li.cta>a{border:1px solid var(--white);border-radius:40px;padding:.55rem 1.1rem}
.bcm-menu li.cta>a::after{display:none}
.nav-wa{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);transition:.4s var(--ease)}
.nav-wa svg{width:18px;height:18px;fill:currentColor}
.nav-wa:hover{background:var(--white);color:var(--void);border-color:var(--white)}
.nav-tog{display:none;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
@media(max-width:860px){.bcm-menu{display:none}.nav-tog{display:block}.bcm-menu.open{display:flex;position:absolute;top:100%;left:0;width:100%;flex-direction:column;gap:1.4rem;background:var(--void);padding:1.6rem clamp(1.2rem,4vw,3.5rem);border-top:1px solid var(--line)}}

.bcm-main{min-height:60vh}

/* utility: reveal (used by page blocks) */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* footer */
.footer{border-top:1px solid var(--line);padding:clamp(3rem,6vw,5rem) clamp(1.2rem,4vw,3.5rem) 2rem}
.footer-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2.5rem;margin-bottom:3rem}
.footer-top .big{font-family:"Fraunces",serif;font-weight:330;font-size:clamp(1.8rem,5vw,3.4rem);line-height:1;max-width:16ch}
.footer-cols{display:flex;gap:clamp(2rem,5vw,4.5rem);flex-wrap:wrap}
.footer-col h4{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--silver);margin-bottom:1.1rem}
.footer-col a,.footer-col p{display:block;font-size:.88rem;color:rgba(244,244,240,.62);margin-bottom:.55rem;transition:color .3s;line-height:1.5}
.footer-col a:hover{color:var(--white)}
.bcm-fmenu{list-style:none}
.bcm-fmenu li{margin-bottom:.55rem}
.bcm-fmenu a{font-size:.88rem;color:rgba(244,244,240,.62);transition:color .3s}
.bcm-fmenu a:hover{color:var(--white)}
.bcm-social{display:flex;gap:1rem;flex-wrap:wrap}
.bcm-social a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;color:var(--silver);transition:.4s var(--ease)}
.bcm-social a:hover{background:var(--white);color:var(--void);border-color:var(--white)}
.bcm-social svg{width:17px;height:17px;fill:currentColor}
.footer-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.72rem;color:rgba(244,244,240,.4);border-top:1px solid var(--line);padding-top:2rem}

/* floating whatsapp */
.wa{position:fixed;right:clamp(1rem,3vw,2.2rem);bottom:clamp(1rem,3vw,2.2rem);height:56px;padding:0 17px;border-radius:40px;background:#25d366;color:#fff;display:flex;align-items:center;gap:.6rem;z-index:250;box-shadow:0 14px 40px rgba(0,0,0,.45);transition:transform .45s var(--ease)}
.wa svg{width:27px;height:27px;fill:currentColor;flex:0 0 auto}
.wa .lbl{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;white-space:nowrap;max-width:0;overflow:hidden;opacity:0;transition:max-width .5s var(--ease),opacity .4s}
.wa:hover{transform:translateY(-3px) scale(1.03)}
.wa:hover .lbl{max-width:150px;opacity:1}
.wa::after{content:"";position:absolute;right:10px;bottom:10px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(37,211,102,.55);animation:wap 2.6s ease-out infinite;pointer-events:none}
@keyframes wap{0%{transform:scale(1);opacity:.7}100%{transform:scale(2);opacity:0}}
@media(max-width:560px){.wa .lbl{display:none}}

/* basic blog (Insights) */
.bcm-post{max-width:760px;margin:0 auto;padding:clamp(7rem,12vw,10rem) clamp(1.2rem,4vw,2rem) 5rem}
.bcm-post h1{font-family:"Fraunces",serif;font-weight:330;font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;margin-bottom:1.4rem}
.bcm-post .meta{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);margin-bottom:2.5rem}
.bcm-post .entry p{color:rgba(244,244,240,.74);line-height:1.8;margin-bottom:1.3rem}
.bcm-post .entry h2,.bcm-post .entry h3{font-family:"Fraunces",serif;font-weight:330;margin:2rem 0 1rem}
.bcm-post .entry a{color:var(--silver);text-decoration:underline}
