/* Bharucha & Co. ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â shared design language
   Colours, type and motion primitives used across every page. */

html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; }
.font-serif { font-family: 'Cormorant Garamond', serif; }

/* ---- Reveal-on-scroll ---- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s ease, transform .9s ease; }
.reveal.in { opacity: 1; transform: none; }

/* ---- Hero ambient glow ---- */
.hero-glow {
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(60% 50% at 70% 30%, rgba(120,130,220,0.22), transparent 70%),
              radial-gradient(50% 45% at 20% 80%, rgba(184,150,81,0.14), transparent 70%);
  animation: drift 16s ease-in-out infinite alternate;
}
a.group span svg {
    width: 22px;
    height: 22px;
}
#contact.pb-0 {
    padding-bottom: 0 !important;
    position: relative;
}
header{
  background: #ffffff1f !important;
  border: 1px solid #ffffff40 !important;
}
.number-counter {
    font-size: clamp(3rem, 4.7vw, 23.5rem) !important;
    line-height: 0.25 !important;
    margin-bottom: 1.8rem !important;
    padding-top: 1rem !important;
    font-weight: 600;
}

.number-counter .gold-icon {
    font-size: 62px;
    position: relative;
    top: -7px;
    left: 2px;
}

.number-text-counter {
    padding-bottom: 8px;
}
.headerlogo img{
	height:5rem;
}

a#firm-link {
    font-size: clamp(1.1rem, 1.27vw, 11.4rem) !important;line-height: 1.6 !important;
  }


@keyframes drift { from { transform: translate3d(-3%,-2%,0) scale(1); } to { transform: translate3d(3%,2%,0) scale(1.08); } }

/* ---- Marquee track (recognitions) ---- */
.track { display: flex; width: max-content; animation: marquee 32s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---- Headline character reveal ---- */
.char { display: inline-block; opacity: 0; transform: translateY(40px); animation: rise .9s forwards; }
@keyframes rise { to { opacity: 1; transform: none; } }

/* ---- Interior page sub-nav ---- */
.ip-anchor { scroll-margin-top: 150px; }
.ip-tab.active { color: #b89651; }
.ip-tab.active span { width: 100%; }

@media (prefers-reduced-motion: reduce) {
  .hero-glow, .track, .char { animation: none !important; }
  .char { opacity: 1; transform: none; }
}

/* Prevent off-canvas mobile menu from creating horizontal scroll.
   `clip` (not `hidden`) keeps hero position:sticky working. */
html, body { overflow-x: clip; max-width: 100%; }

#ctabox h3 {
    font-size: clamp(1.9rem, 3.1vw, 11.6rem) !important;
    font-weight: 500;
    line-height: 1.1;
}
/* --- Compact scale --- */
section:not(#top) {padding-top: clamp(50px, 3.2vw, 6rem) !important;padding-bottom: clamp(50px, 3.2vw, 3rem) !important;}
h1.font-serif { font-size: clamp(2rem, 4.6vw, 3.75rem) !important; }
h2.font-serif {font-size: clamp(2.6rem, 4.4vw, 22.5rem) !important;line-height: 0.95 !important;margin-bottom: 1.9rem !important;}
h3.font-serif {font-size: clamp(2.2rem, 3.6vw, 11.6rem) !important;}
h4.font-serif {font-size: clamp(1.4rem, 1.8vw, 11.4rem) !important;}
p.text-lg, .text-lg {font-size: clamp(1.1rem, 1.27vw, 11.4rem) !important;line-height: 1.6 !important;}
#people .aspect-\[4\/5\] { aspect-ratio: 4 / 4.2 !important; }
.space-y-24 > * + * { margin-top: 2.25rem !important; }
.lg\:space-y-28 > * + * { margin-top: 2.25rem !important; }
.space-y-20 > * + * { margin-top: 2rem !important; }
.space-y-16 > * + * { margin-top: 1.75rem !important; }
.gap-y-16 { row-gap: 2.5rem !important; }
.gap-y-20 { row-gap: 2.75rem !important; }
button span svg {
    width: 28px !Important;
    height: 28px !Important;
}

body.menu-open #burger {
  opacity: 0;
  pointer-events: none;
}
/* hero text: keep it large */
#top h1.font-serif {font-size: clamp(2.75rem, 5.8vw, 106.25rem) !important;line-height: 1;}
#top #herosub {font-size: clamp(1.1rem, 1.2vw, 11.4rem) !important;line-height: 1.6 !important;font-weight: 4;}

/* feature-row lead phrase */
.feat-underline:before {
    content: '';
    width: 100%;
    height: 7px;
    background: #b89651;
    position: absolute;
    left: 0;
    bottom: 14px;
    z-index: -1;
}

.feat-underline {
    position: relative;
    padding-right: 9px;
    z-index: 1;
}

/* --- Slide-in menu panel --- */
#mobilemenu {
  position: fixed; inset: 0; z-index: 40;
  overflow: hidden; pointer-events: none; visibility: hidden;
}
#mobilemenu.open { pointer-events: auto; visibility: visible; }
.menu-panel {
  transform: translateX(100%);
  transition: transform .5s cubic-bezier(.4, 0, .2, 1);
  will-change: transform;
}
#mobilemenu.open .menu-panel { transform: translateX(0); }
.menu-panel--open { transform: translateX(0); }
.menu-link {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500;
  font-size: 2.75rem;
  line-height: 1;
  color: #1a1f4d;
  text-decoration: none;
  transition: color .3s ease;
}
.menu-link:hover { color: #b89651; }
@media (max-width: 767px) {
  .menu-link { font-size: 2.25rem; }
}

/* === SLIDE-DECK MODE (desktop ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â°Ãƒâ€šÃ‚Â¥768px) === */
@media (min-width: 768px) {
  html { scroll-behavior: auto; }
  body.home main > section,
  body.page-template-front-page main > section,
  body.home > section {
    height: 100vh !important;
    width: 100% !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 !important;
  }
	
.headerlogo img{
	height:80px;
}
	
  /* When sections are inside #main */
  body.home #main > section {
    height: 100vh !important;
    width: 100% !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 !important;
  }
  #top { height: 100vh !important; }
  #stage { position: relative !important; height: 100vh !important; }
  .slide-fit { width: 100%; transform-origin: center center; }
}

section#memberships h2 {
    margin-bottom: 50px !important;
}
/* mobile hero */
@media (max-width: 767px) {
  #top {height: 100svh !important;overflow: hidden;}
	.mem-button-slider {display:none}
  #stage { position: relative !important; padding-top: 5.5rem !important; padding-bottom: 2.5rem !important; }
	section#memberships h2 {
    margin-bottom: 20px !important;
}
	.f-text-box {
    gap: 15px;
}

.f-text-box a img {
    margin-left: 10px;
}
  #herosub, #herocta { opacity: 1 !important; transform: none !important; }
  .feat-underline::before {bottom: 8px;height: 4px;}
  #top #herosub { font-size: 1.05rem !important; margin-top: 1.25rem !important; }
  #herocta { flex-direction: column; gap: 0.75rem !important; }
  #herocta > a {width: fit-content;justify-content: space-between;min-width: 260px;}
  #eyebrow { font-size: 10px !important; letter-spacing: 0.16em !important; gap: 0.5rem !important; align-items: flex-start; margin-bottom: 1.5rem !important; }
  #eyebrow > span:first-child { width: 1.5rem !important; margin-top: 0.5em; flex: 0 0 auto; }
  #heroimg img { opacity: 0.6 !important; }
#ghost { color: rgba(255, 255, 255, 0.1) !important; }
#motif, #grid { display: none !important; }
}

/* ---- Contact form validation ---- */
.field-wrap { display: flex; flex-direction: column; }
.field-error,
.form-status {
  min-height: 0;
  margin-top: .35rem;
  font-size: .875rem;
  line-height: 1.35;
}
.field-error:empty,
.form-status:empty { display: none; }
.field-error { color: #9b3d3d; }
.form-status { color: #1a1f4d; }
.form-status[data-state="error"] { color: #9b3d3d; }
.form-status[data-state="success"] { color: #2f6b45; }
.contact-input.is-invalid,
.contact-select.is-invalid {
  border-color: #9b3d3d !important;
  box-shadow: 0 0 0 1px rgba(155, 61, 61, .12);
}
.contact-select {
  padding-right: 3.25rem;
  appearance: none;
  -webkit-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #1a1f4d 50%),
    linear-gradient(135deg, #1a1f4d 50%, transparent 50%);
  background-position:
    calc(100% - 1.2rem) calc(50% - 2px),
    calc(100% - 0.95rem) calc(50% - 2px);
  background-size: 7px 7px, 7px 7px;
  background-repeat: no-repeat;
}
textarea.contact-input { min-height: 160px; }

.menu-panel {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(360px, 0.95fr);
  background: #f6f3ec;
  box-shadow: -20px 0 50px -12px rgba(0,0,0,.45);
}
.menu-panel__media {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  background: #ebe7df;
  background-repeat: no-repeat;
  background-position: right center;
  background-size: cover;
}
.menu-panel__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(246, 243, 236, .95) 0%, rgb(246 243 236) 18%, rgb(246 243 236 / 47%) 50%, rgba(246, 243, 236, 0) 76%), linear-gradient(90deg, rgb(246 243 236 / 78%) 0%, rgb(246 243 236 / 54%) 36%);
}
.menu-panel__nav {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-end;
  gap: 2rem;
  padding: 1.6rem 8.2vw 4rem 0.5rem;
  background: linear-gradient(180deg, rgba(246,243,236,.96) 0%, rgba(246,243,236,.92) 100%);
}
.menu-panel__nav .menu-link {
  text-align: right;
  line-height: 1;
}
.menu-panel__top-icons {
  width: 100%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 1rem;
  color: #1a1f4d;
  padding-top: 0.15rem;
}
.menu-panel__search,
.menu-panel__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #1a1f4d;
}
.menu-panel__close {
  background: transparent;
  border: 0;
  margin-top: -0.15rem;
}
@media (max-width: 1023px) {
  .menu-panel { grid-template-columns: 1fr; }
  .menu-panel__media { display: none; }
  .menu-panel__nav {
    align-items: flex-end;
    padding: 1.5rem 1.5rem 3rem;
    justify-content: unset;
  }
}

/* ---- Circular nav buttons ---- */
.circle-nav-btn {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 9999px;
  border: 1px solid rgba(26, 31, 77, .28);
  background: transparent;
  color: #1a1f4d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: border-color .2s ease, background-color .2s ease, color .2s ease, opacity .2s ease;
}
.circle-nav-btn svg {
  width: 1.45rem;
  height: 1.45rem;
}
.circle-nav-btn:hover {
  border-color: #b89651;
  background-color: #b89651;
  color: #f6f3ec;
}
.circle-nav-btn--gold {
  border-color: rgba(184, 150, 81, .9);
}
.circle-nav-btn--gold:hover {
  border-color: #b89651;
}



@media (max-width: 1920px) {
    .lg\:pr-6 {
        padding-left: 100px;
    }
}