/* ============================================================
   MUGDHA CREATIVES — SHARED STYLESHEET
   One theme, every page. Tokens first, components after.
============================================================ */
:root{
  --void:#08080a;
  --charcoal:#141317;
  --charcoal-2:#1b1a1f;
  --panel:#19181d;
  --off-white:#f4f1ea;
  --off-white-dim:rgba(244,241,234,.66);
  --off-white-faint:rgba(244,241,234,.4);
  --purple:#8b6bf2;
  --purple-bright:#a98bff;
  --purple-deep:#5b3fc9;
  --orange:#ff5a2e;
  --orange-bright:#ff8a4c;
  --line:rgba(244,241,234,.13);
  --line-strong:rgba(244,241,234,.24);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.65,0,.35,1);
  --container:1400px;
  --gutter:clamp(20px,5vw,64px);
}

*,*::before,*::after{box-sizing:border-box;}
html{background:var(--void);}
body{
  margin:0;
  background:var(--void);
  color:var(--off-white);
  font-family:'Manrope',-apple-system,sans-serif;
  font-weight:400;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--orange);color:var(--void);}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4,p{margin:0;}

.font-display{
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.05;
}

.wrap{
  max-width:var(--container);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}
.wrap-narrow{max-width:840px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}

.eyebrow{
  font-size:.8rem;
  color:var(--off-white-dim);
  font-weight:500;
  display:flex;
  align-items:center;
  gap:.6em;
}
.eyebrow::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:linear-gradient(135deg,var(--purple),var(--orange));
  flex:none;
}

.section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
  margin-bottom:clamp(2.5rem,6vw,5rem);
  flex-wrap:wrap;
}
.section-head h2{font-size:clamp(2.1rem,5.4vw,4.4rem);}
.section-head .section-note{
  max-width:340px;color:var(--off-white-dim);font-size:1rem;line-height:1.6;padding-bottom:.4rem;
}
section{position:relative;}
main{display:block;}

.grain{
  position:fixed;inset:0;pointer-events:none;z-index:998;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ---------------- cursor / progress ---------------- */
.cursor-glow{
  position:fixed;top:0;left:0;width:34px;height:34px;border-radius:50%;
  border:1px solid var(--line-strong);pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);mix-blend-mode:difference;
  transition:width .35s var(--ease-out),height .35s var(--ease-out),background .35s;
  will-change:transform;
}
.cursor-glow.is-active{width:90px;height:90px;background:var(--off-white);border-color:transparent;}
@media (hover:none), (pointer:coarse){ .cursor-glow{display:none;} }

.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--purple),var(--orange));width:0%;z-index:9997;}

/* ---------------- preloader (home only) ---------------- */
.preloader{position:fixed;inset:0;background:var(--void);z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;}
.preloader .pl-mark{width:64px;height:64px;opacity:0;transform:scale(.7);}
.preloader .pl-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 30px rgba(139,107,242,.5));}
.preloader .pl-count{font-family:'Bricolage Grotesque',sans-serif;font-size:.95rem;letter-spacing:.08em;color:var(--off-white-dim);display:flex;gap:.3rem;font-variant-numeric:tabular-nums;}
.preloader .pl-bar{width:min(280px,60vw);height:1px;background:var(--line);position:relative;overflow:hidden;}
.preloader .pl-bar span{position:absolute;left:0;top:0;bottom:0;width:0%;background:linear-gradient(90deg,var(--purple),var(--orange));}
.preloader-curtain{position:fixed;inset:0;background:var(--charcoal);z-index:9999;transform:translateY(0);}

/* ---------------- nav ---------------- */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.3rem var(--gutter);
  background:linear-gradient(180deg,rgba(8,8,10,.75),transparent);
  backdrop-filter:blur(6px);
}
.site-nav .nav-logo{display:flex;align-items:center;gap:.6rem;}
.site-nav .nav-logo img{width:34px;height:34px;object-fit:contain;}
.nav-links{display:flex;gap:1.9rem;font-size:.92rem;align-items:center;}
.nav-item{position:relative;}
.nav-links > .nav-item > a, .nav-links > a{
  position:relative;padding:.5rem 0;color:var(--off-white-dim);transition:color .3s;
  display:inline-flex;align-items:center;gap:.35rem;
}
.nav-links > .nav-item > a::after, .nav-links > a::after{
  content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--off-white);transition:width .35s var(--ease-out);
}
.nav-links > .nav-item > a:hover, .nav-links > a:hover{color:var(--off-white);}
.nav-links > .nav-item > a:hover::after, .nav-links > a:hover::after{width:100%;}
.nav-caret{width:8px;height:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.7;transition:transform .25s;}
.nav-item:hover .nav-caret{transform:rotate(225deg);margin-top:3px;}

.nav-dropdown{
  position:absolute;top:100%;left:50%;transform:translate(-50%,8px);
  min-width:240px;background:var(--charcoal);border:1px solid var(--line);border-radius:10px;
  padding:.6rem;opacity:0;visibility:hidden;transition:opacity .25s,transform .25s;
  box-shadow:0 20px 50px rgba(0,0,0,.45);
}
.nav-item:hover .nav-dropdown{opacity:1;visibility:visible;transform:translate(-50%,0);}
.nav-dropdown a{display:block;padding:.6rem .8rem;border-radius:6px;font-size:.88rem;color:var(--off-white-dim);transition:background .2s,color .2s;}
.nav-dropdown a:hover{background:rgba(244,241,234,.06);color:var(--off-white);}

.nav-cta{display:flex;align-items:center;gap:1.4rem;}
.btn-outline{border:1px solid var(--line-strong);padding:.6rem 1.3rem;border-radius:100px;font-size:.85rem;display:inline-flex;align-items:center;gap:.5rem;transition:border-color .3s,background .3s;}
.btn-outline:hover{border-color:var(--off-white);}
.menu-toggle{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex:none;}
.menu-toggle span{width:16px;height:1px;background:var(--off-white);display:block;transition:transform .4s var(--ease-in-out),opacity .3s;}
.menu-toggle.is-open span:nth-child(1){transform:translateY(3px) rotate(45deg);}
.menu-toggle.is-open span:nth-child(2){opacity:0;}
.menu-toggle.is-open span:nth-child(3){transform:translateY(-3px) rotate(-45deg);}
@media (max-width:960px){ .nav-links{display:none;} }

.mega-menu{position:fixed;inset:0;background:var(--charcoal);z-index:850;visibility:hidden;display:flex;flex-direction:column;justify-content:center;padding:0 var(--gutter);overflow-y:auto;}
.mega-menu.is-open{visibility:visible;}
.mega-menu .mm-inner{display:flex;justify-content:space-between;gap:3rem;flex-wrap:wrap;padding:7rem 0 2rem;}
.mega-menu .mm-group{min-width:220px;}
.mega-menu .mm-group h4{font-size:.78rem;color:var(--off-white-faint);font-weight:500;margin-bottom:1rem;text-transform:none;}
.mega-menu .mm-group a{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:1.15rem;font-weight:500;padding:.4rem 0;color:var(--off-white-dim);transition:color .3s;}
.mega-menu .mm-group a:hover{color:var(--off-white);}
.mega-menu .mm-foot{padding:2rem 0 3rem;display:flex;justify-content:space-between;color:var(--off-white-faint);font-size:.85rem;flex-wrap:wrap;gap:1rem;margin-top:auto;}

/* ---------------- page hero (inner pages) ---------------- */
.page-hero{padding:clamp(9rem,16vw,12rem) 0 clamp(3rem,6vw,4.5rem);}
.page-hero .breadcrumb{display:flex;gap:.5rem;align-items:center;color:var(--off-white-faint);font-size:.85rem;margin-bottom:1.6rem;}
.page-hero .breadcrumb a{color:var(--off-white-dim);}
.page-hero .breadcrumb a:hover{color:var(--off-white);}
.page-hero h1{font-size:clamp(2.4rem,6.6vw,5.2rem);max-width:900px;}
.page-hero p.lede{color:var(--off-white-dim);font-size:clamp(1rem,1.6vw,1.2rem);max-width:620px;margin-top:1.4rem;line-height:1.6;}

/* ---------------- buttons ---------------- */
.btn-solid{
  background:var(--off-white);color:var(--void);padding:.95rem 1.9rem;border-radius:100px;font-weight:600;font-size:.92rem;
  display:inline-flex;align-items:center;gap:.6rem;position:relative;overflow:hidden;
}
.btn-solid .btn-fill{position:absolute;inset:0;background:linear-gradient(120deg,var(--purple),var(--orange));transform:translateY(101%);transition:transform .45s var(--ease-out);z-index:0;}
.btn-solid:hover .btn-fill{transform:translateY(0);}
.btn-solid span{position:relative;z-index:1;display:flex;align-items:center;gap:.5em;}
.btn-solid:hover span{color:var(--void);}
.hero-cta-row{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;margin-top:2rem;}

/* ---------------- hero (home) ---------------- */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:8rem;padding-bottom:3rem;}
.hero-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:3rem;align-items:end;}
.hero-headline{font-size:clamp(3rem,8.6vw,7.6rem);overflow:hidden;}
.hero-headline .line{overflow:hidden;padding-bottom:.05em;}
.hero-headline .word{display:inline-block;transform:translateY(115%);will-change:transform;}
.hero-sub{color:var(--off-white-dim);font-size:clamp(1rem,1.6vw,1.2rem);line-height:1.6;max-width:360px;margin-bottom:1.6rem;}
.hero-visual{position:relative;aspect-ratio:3/4;border-radius:6px;overflow:hidden;background:var(--charcoal);}
.hero-visual .art{position:absolute;inset:0;}
.reveal-cover{position:absolute;inset:0;background:var(--void);transform-origin:top;z-index:3;}
.hero-visual .tag{position:absolute;bottom:1.2rem;left:1.2rem;right:1.2rem;display:flex;justify-content:space-between;align-items:center;z-index:2;font-size:.78rem;color:var(--off-white-dim);}
.hero-visual .tag .dot{width:6px;height:6px;border-radius:50%;background:var(--orange);display:inline-block;margin-right:.5em;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr;} .hero-visual{aspect-ratio:16/10;order:-1;margin-bottom:2rem;} }

/* ---------------- marquee ---------------- */
.marquee-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.6rem 0;overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee-strip .mq-track{display:inline-flex;gap:2.5rem;animation:marquee 26s linear infinite;align-items:center;}
.marquee-strip.rev .mq-track{animation-direction:reverse;}
.marquee-strip span{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.1rem,2.4vw,1.7rem);color:var(--off-white-faint);display:flex;align-items:center;gap:2.5rem;}
.marquee-strip span i{font-style:normal;color:var(--purple-bright);font-size:.8em;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ---------------- about grid / generic split ---------------- */
.split-section{padding:clamp(5rem,10vw,8rem) 0;}
.split-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,5rem);align-items:start;}
.split-grid.rev{grid-template-columns:1.15fr .85fr;}
.split-visual{position:sticky;top:120px;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:var(--charcoal);}
.split-visual .art{position:absolute;inset:0;}
.lede{font-family:'Bricolage Grotesque',sans-serif;font-weight:500;font-size:clamp(1.4rem,3vw,2.2rem);line-height:1.35;margin-bottom:2rem;}
.lede em{font-style:normal;color:var(--off-white-faint);}
.body-copy{color:var(--off-white-dim);font-size:1.05rem;line-height:1.8;max-width:560px;margin-bottom:2rem;}
@media (max-width:900px){ .split-grid,.split-grid.rev{grid-template-columns:1fr;} .split-visual{position:relative;top:0;aspect-ratio:16/10;} }

/* ---------------- stat grid ---------------- */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;border-top:1px solid var(--line);padding-top:2.2rem;}
.stat-item .stat-num{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2.2rem,4.4vw,3.4rem);font-weight:600;display:flex;align-items:baseline;gap:.1em;background:linear-gradient(120deg,var(--off-white),var(--purple-bright));-webkit-background-clip:text;background-clip:text;color:transparent;}
.stat-item .stat-label{color:var(--off-white-faint);font-size:.88rem;margin-top:.4rem;}
@media (max-width:700px){ .stat-grid{grid-template-columns:1fr 1fr;} }

/* ---------------- team ---------------- */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;}
.team-card{background:var(--charcoal);border-radius:8px;overflow:hidden;border:1px solid var(--line);}
.team-card .tc-photo{aspect-ratio:1/1;position:relative;overflow:hidden;}
.team-card .tc-photo .art{position:absolute;inset:0;transition:transform .5s var(--ease-out);}
.team-card:hover .tc-photo .art{transform:scale(1.06);}
.team-card .tc-info{padding:1.2rem 1.3rem 1.5rem;}
.team-card h4{font-family:'Bricolage Grotesque',sans-serif;font-size:1.1rem;font-weight:500;}
.team-card .tc-role{color:var(--off-white-faint);font-size:.85rem;margin-top:.25rem;}
@media (max-width:960px){ .team-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .team-grid{grid-template-columns:1fr;} }

/* ---------------- process timeline (static, for about + process pages) ---------------- */
.timeline{border-top:1px solid var(--line);}
.timeline-row{display:grid;grid-template-columns:80px 1fr 1.3fr;gap:2rem;padding:2.2rem 0;border-bottom:1px solid var(--line);align-items:start;}
.timeline-row .tl-num{font-family:'Bricolage Grotesque',sans-serif;font-size:1.4rem;color:var(--off-white-faint);}
.timeline-row h4{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.2rem,2.4vw,1.7rem);font-weight:500;}
.timeline-row p{color:var(--off-white-dim);font-size:.98rem;line-height:1.7;}
@media (max-width:800px){ .timeline-row{grid-template-columns:1fr;gap:.6rem;} }

/* ---------------- why choose us ---------------- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.why-card{background:var(--void);padding:2.2rem;}
.why-card .why-icon{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--orange));margin-bottom:1.4rem;}
.why-card h4{font-family:'Bricolage Grotesque',sans-serif;font-size:1.2rem;font-weight:500;margin-bottom:.6rem;}
.why-card p{color:var(--off-white-dim);font-size:.94rem;line-height:1.65;}
@media (max-width:900px){ .why-grid{grid-template-columns:1fr;} }

/* ---------------- services list (home + services page) ---------------- */
.services-block{padding:clamp(5rem,10vw,8rem) 0;background:var(--charcoal);position:relative;}
.service-list{border-top:1px solid var(--line);}
.service-row{border-bottom:1px solid var(--line);padding:clamp(1.4rem,3vw,2rem) 0;display:flex;align-items:center;justify-content:space-between;gap:2rem;position:relative;}
.service-row .sv-left{display:flex;align-items:baseline;gap:1.6rem;}
.service-row .sv-index{font-size:.85rem;color:var(--off-white-faint);font-variant-numeric:tabular-nums;}
.service-row h3{font-size:clamp(1.4rem,3.4vw,2.4rem);font-family:'Bricolage Grotesque',sans-serif;font-weight:500;color:var(--off-white-dim);transition:color .4s,transform .4s var(--ease-out);}
.service-row a.sv-title-link{display:flex;align-items:baseline;gap:1.6rem;}
.service-row:hover h3{color:var(--off-white);transform:translateX(14px);}
.service-row .sv-tags{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end;max-width:260px;}
.service-row .sv-tags span{font-size:.72rem;color:var(--off-white-faint);border:1px solid var(--line);padding:.25rem .65rem;border-radius:100px;}
.service-row .sv-arrow{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;flex:none;transition:background .35s,transform .35s var(--ease-out);}
.service-row:hover .sv-arrow{background:var(--off-white);transform:rotate(45deg);}
.service-row:hover .sv-arrow svg{stroke:var(--void);}
.sv-arrow svg{width:16px;height:16px;stroke:var(--off-white);transition:stroke .3s;}
.service-preview{position:fixed;top:0;left:0;width:260px;height:180px;border-radius:6px;overflow:hidden;pointer-events:none;z-index:500;opacity:0;transform:translate(-50%,-50%) scale(.8) rotate(-4deg);transition:opacity .35s var(--ease-out);}
.service-preview .art{position:absolute;inset:0;}
@media (max-width:900px){ .sv-tags{display:none;} .service-preview{display:none;} }

/* ---------------- service detail page ---------------- */
.service-detail-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,4rem);align-items:start;padding:clamp(3rem,6vw,5rem) 0;}
.feature-list{border-top:1px solid var(--line);margin-top:1rem;}
.feature-row{display:flex;gap:1.2rem;padding:1.3rem 0;border-bottom:1px solid var(--line);align-items:flex-start;}
.feature-row .fr-dot{width:8px;height:8px;border-radius:50%;background:var(--orange);margin-top:.55rem;flex:none;}
.feature-row h5{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;font-weight:500;margin-bottom:.3rem;}
.feature-row p{color:var(--off-white-dim);font-size:.92rem;line-height:1.6;}
.service-side-card{background:var(--charcoal);border:1px solid var(--line);border-radius:8px;padding:2rem;position:sticky;top:120px;}
.service-side-card h4{font-family:'Bricolage Grotesque',sans-serif;font-size:1.3rem;margin-bottom:1rem;}
.service-side-card p{color:var(--off-white-dim);font-size:.92rem;line-height:1.65;margin-bottom:1.5rem;}
.related-services{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;}
.related-services a{font-size:.8rem;border:1px solid var(--line);padding:.4rem .8rem;border-radius:100px;color:var(--off-white-dim);transition:.3s;}
.related-services a:hover{border-color:var(--off-white);color:var(--off-white);}

/* ---------------- case grid ---------------- */
.cases{padding:clamp(5rem,10vw,8rem) 0;}
.case-grid{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.case-row{background:var(--void);display:grid;grid-template-columns:1.3fr .5fr .5fr 1fr;gap:2rem;align-items:center;padding:clamp(1.6rem,3vw,2.4rem);}
.case-row .cr-client{display:flex;align-items:center;gap:1rem;}
.case-row .cr-swatch{width:44px;height:44px;border-radius:50%;flex:none;}
.case-row h4{font-size:clamp(1.2rem,2.2vw,1.5rem);font-family:'Bricolage Grotesque',sans-serif;font-weight:500;}
.case-row .cr-tag{color:var(--off-white-faint);font-size:.85rem;}
.case-row .cs-num{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;font-variant-numeric:tabular-nums;}
.case-row .cs-label{font-size:.78rem;color:var(--off-white-faint);}
.case-row .cr-desc{color:var(--off-white-dim);font-size:.92rem;line-height:1.6;}
@media (max-width:900px){ .case-row{grid-template-columns:1fr;gap:.8rem;} }

/* ---------------- testimonials ---------------- */
.testimonials{padding:clamp(5rem,10vw,8rem) 0;background:var(--charcoal);overflow:hidden;}
.testi-track{position:relative;min-height:280px;}
.testi-slide{position:absolute;inset:0;opacity:0;transform:translateX(40px);transition:opacity .6s var(--ease-in-out),transform .6s var(--ease-in-out);pointer-events:none;}
.testi-slide.is-active{opacity:1;transform:translateX(0);pointer-events:auto;}
.testi-quote{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(1.4rem,3.2vw,2.4rem);font-weight:500;line-height:1.35;max-width:920px;margin-bottom:2.2rem;}
.testi-person{display:flex;align-items:center;gap:1rem;}
.testi-avatar{width:48px;height:48px;border-radius:50%;flex:none;}
.testi-person .tp-name{font-weight:600;font-size:.95rem;}
.testi-person .tp-role{color:var(--off-white-faint);font-size:.85rem;}
.testi-nav{display:flex;justify-content:space-between;align-items:center;margin-top:3.2rem;}
.testi-dots{display:flex;gap:.5rem;}
.testi-dots button{width:8px;height:8px;border-radius:50%;background:var(--line-strong);transition:background .3s,width .3s;}
.testi-dots button.is-active{background:var(--orange);width:22px;border-radius:5px;}
.testi-arrows{display:flex;gap:.8rem;}
.testi-arrows button{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;transition:background .3s,transform .2s;}
.testi-arrows button:hover{background:var(--off-white);transform:scale(1.05);}
.testi-arrows button:hover svg{stroke:var(--void);}
.testi-arrows svg{width:16px;height:16px;stroke:var(--off-white);transition:stroke .3s;}

/* ---------------- FAQ ---------------- */
.faq{padding:clamp(5rem,10vw,8rem) 0;}
.faq-list{max-width:840px;border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.6rem 0;text-align:left;}
.faq-q h4{font-size:clamp(1.05rem,2vw,1.3rem);font-family:'Bricolage Grotesque',sans-serif;font-weight:500;color:var(--off-white);}
.faq-q .fq-icon{width:30px;height:30px;flex:none;border-radius:50%;border:1px solid var(--line-strong);position:relative;}
.faq-q .fq-icon::before,.faq-q .fq-icon::after{content:"";position:absolute;background:var(--off-white);top:50%;left:50%;transform:translate(-50%,-50%);}
.faq-q .fq-icon::before{width:10px;height:1px;}
.faq-q .fq-icon::after{width:1px;height:10px;transition:transform .3s var(--ease-out);}
.faq-item.is-open .fq-icon::after{transform:translate(-50%,-50%) rotate(90deg) scaleY(0);}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease-in-out);}
.faq-a-inner{overflow:hidden;}
.faq-a p{color:var(--off-white-dim);font-size:1rem;line-height:1.7;padding-bottom:1.6rem;max-width:640px;}
.faq-item.is-open .faq-a{grid-template-rows:1fr;}
.faq-category{margin-bottom:3rem;}
.faq-category > h3{font-family:'Bricolage Grotesque',sans-serif;font-size:1.4rem;margin-bottom:.5rem;color:var(--purple-bright);}

/* ---------------- clients marquee ---------------- */
.clients{padding:clamp(4rem,8vw,6rem) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* ---------------- contact ---------------- */
.contact{padding:clamp(6rem,12vw,10rem) 0;position:relative;overflow:hidden;background:var(--charcoal);}
.contact-glow{position:absolute;width:60vw;height:60vw;max-width:800px;max-height:800px;background:radial-gradient(circle,rgba(139,107,242,.25),transparent 65%);top:-20%;right:-10%;pointer-events:none;filter:blur(10px);}
.contact-inner{position:relative;z-index:1;}
.contact h2,.contact h1{font-size:clamp(2.2rem,6.5vw,5.2rem);max-width:900px;margin-bottom:1.5rem;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,4rem);align-items:start;margin-top:3rem;}
.contact-methods{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.6rem;}
.contact-method{display:flex;align-items:center;gap:.8rem;border:1px solid var(--line-strong);padding:.9rem 1.4rem;border-radius:100px;font-size:.92rem;transition:background .3s,color .3s,border-color .3s;}
.contact-method:hover{background:var(--off-white);color:var(--void);border-color:var(--off-white);}
.contact-method svg{width:16px;height:16px;stroke:currentColor;flex:none;}
.contact-social{display:flex;gap:1.4rem;color:var(--off-white-dim);font-size:.9rem;margin-top:2rem;}
.contact-social a{position:relative;padding-bottom:.15rem;}
.contact-social a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--off-white);transition:width .3s var(--ease-out);}
.contact-social a:hover{color:var(--off-white);}
.contact-social a:hover::after{width:100%;}

/* form */
.form-field{margin-bottom:1.4rem;}
.form-field label{display:block;font-size:.85rem;color:var(--off-white-dim);margin-bottom:.5rem;}
.form-field input,.form-field textarea,.form-field select{
  width:100%;background:var(--void);border:1px solid var(--line-strong);border-radius:6px;
  padding:.85rem 1rem;color:var(--off-white);font-family:inherit;font-size:.95rem;transition:border-color .3s;
}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--purple-bright);}
.form-field textarea{resize:vertical;min-height:130px;}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
@media (max-width:700px){ .form-row-2{grid-template-columns:1fr;} .contact-grid{grid-template-columns:1fr;} }
.form-note{font-size:.8rem;color:var(--off-white-faint);margin-top:1rem;}
.form-success{display:none;padding:1.4rem;border:1px solid var(--line-strong);border-radius:8px;color:var(--off-white);margin-top:1.4rem;}
.form-success.is-visible{display:block;}

/* consultation booking */
.booking-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,4rem);align-items:start;}
.booking-perks{display:flex;flex-direction:column;gap:1.4rem;margin-top:2rem;}
.booking-perk{display:flex;gap:1rem;align-items:flex-start;}
.booking-perk .bp-dot{width:8px;height:8px;border-radius:50%;background:var(--orange);margin-top:.5rem;flex:none;}
.booking-perk h5{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;margin-bottom:.25rem;}
.booking-perk p{color:var(--off-white-dim);font-size:.9rem;line-height:1.6;}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:1rem;}
.slot{border:1px solid var(--line-strong);border-radius:8px;padding:.8rem;text-align:center;font-size:.85rem;color:var(--off-white-dim);transition:.25s;}
.slot:hover,.slot.is-selected{border-color:var(--orange);color:var(--off-white);background:rgba(255,90,46,.08);}
@media (max-width:900px){ .booking-grid{grid-template-columns:1fr;} }

/* ---------------- blog ---------------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem;}
.blog-card{background:var(--charcoal);border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:transform .35s var(--ease-out),border-color .35s;}
.blog-card:hover{transform:translateY(-6px);border-color:var(--line-strong);}
.blog-card .bc-thumb{aspect-ratio:16/10;position:relative;overflow:hidden;}
.blog-card .bc-thumb .art{position:absolute;inset:0;transition:transform .5s var(--ease-out);}
.blog-card:hover .bc-thumb .art{transform:scale(1.06);}
.blog-card .bc-body{padding:1.5rem;}
.blog-card .bc-tag{font-size:.75rem;color:var(--orange-bright);margin-bottom:.6rem;display:block;}
.blog-card h3{font-family:'Bricolage Grotesque',sans-serif;font-size:1.2rem;font-weight:500;line-height:1.35;margin-bottom:.7rem;}
.blog-card p{color:var(--off-white-dim);font-size:.88rem;line-height:1.6;}
.blog-card .bc-meta{display:flex;justify-content:space-between;margin-top:1.2rem;font-size:.78rem;color:var(--off-white-faint);}
.blog-card.featured{grid-column:span 3;display:grid;grid-template-columns:1.1fr .9fr;}
.blog-card.featured .bc-thumb{aspect-ratio:auto;height:100%;}
.blog-card.featured .bc-body{display:flex;flex-direction:column;justify-content:center;padding:2.4rem;}
.blog-card.featured h3{font-size:clamp(1.4rem,2.6vw,2rem);}
@media (max-width:960px){ .blog-grid{grid-template-columns:1fr 1fr;} .blog-card.featured{grid-column:span 2;grid-template-columns:1fr;} }
@media (max-width:640px){ .blog-grid{grid-template-columns:1fr;} .blog-card.featured{grid-column:span 1;} }

/* ---------------- legal pages ---------------- */
.legal-content{padding:clamp(2rem,6vw,4rem) 0 clamp(5rem,10vw,7rem);}
.legal-content h2{font-family:'Bricolage Grotesque',sans-serif;font-size:1.5rem;font-weight:500;margin:2.4rem 0 1rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p,.legal-content li{color:var(--off-white-dim);font-size:.98rem;line-height:1.8;margin-bottom:1rem;}
.legal-content ul{padding-left:1.4rem;}
.legal-content li{list-style:disc;margin-bottom:.5rem;}
.legal-updated{color:var(--off-white-faint);font-size:.85rem;margin-bottom:2.5rem;}

/* ---------------- CTA banner ---------------- */
.cta-banner{padding:clamp(4rem,8vw,6rem) 0;}
.cta-box{
  background:linear-gradient(120deg,rgba(139,107,242,.16),rgba(255,90,46,.12));
  border:1px solid var(--line-strong);border-radius:16px;padding:clamp(2.4rem,6vw,4rem);
  display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;
}
.cta-box h3{font-size:clamp(1.6rem,3.4vw,2.4rem);max-width:560px;}
@media (max-width:700px){ .cta-box{flex-direction:column;align-items:flex-start;} }

/* ---------------- footer ---------------- */
.site-footer{padding:clamp(4rem,8vw,6rem) 0 2rem;position:relative;overflow:hidden;}
.footer-marquee{overflow:hidden;white-space:nowrap;margin-bottom:clamp(2rem,6vw,4rem);}
.footer-marquee .fm-track{display:inline-flex;animation:marquee3 22s linear infinite;}
.footer-marquee span{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(2.4rem,9vw,7rem);font-weight:600;letter-spacing:-.02em;color:var(--off-white);padding-right:.5em;-webkit-text-stroke:1px var(--off-white);}
.footer-marquee span.outline{color:transparent;}
@keyframes marquee3{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.footer-grid{display:grid;grid-template-columns:1.2fr repeat(4,.8fr);gap:2.2rem;border-top:1px solid var(--line);padding-top:2.6rem;}
.footer-col h5{font-size:.8rem;color:var(--off-white-faint);margin-bottom:1rem;font-weight:500;}
.footer-col a,.footer-col p{display:block;color:var(--off-white-dim);font-size:.9rem;padding:.28rem 0;}
.footer-col a:hover{color:var(--off-white);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--line);color:var(--off-white-faint);font-size:.82rem;flex-wrap:wrap;gap:1rem;}
@media (max-width:960px){ .footer-grid{grid-template-columns:1fr 1fr;} }

/* ---------------- utility reveal classes ---------------- */
.reveal-up{opacity:0;transform:translateY(40px);}
[data-magnetic]{will-change:transform;}
.split-word{display:inline-block;overflow:hidden;vertical-align:top;}
.split-word > span{display:inline-block;transform:translateY(110%);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}
}
