/* ============================================================
   Bhattacharya & Associates — Institutional Design System
   ============================================================ */

:root{
  --ink:#122140;        /* primary navy */
  --ink-2:#0B1730;      /* deepest navy, dark sections/footer */
  --text:#181E2B;       /* body copy */
  --slate:#5B6470;      /* secondary text */
  --paper:#FAF9F6;      /* page background */
  --panel:#F1EEE7;      /* subtle panel tint */
  --line:#DDD6C7;       /* hairline borders */
  --line-dark:rgba(244,241,234,.16);
  --gold:#9C7A3C;       /* accent */
  --gold-deep:#7C5F2C;
  --white:#FFFFFF;
  --serif:'Newsreader', Georgia, 'Times New Roman', serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw:1180px;
  --pad:clamp(20px, 5vw, 64px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--paper); color:var(--text);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
::selection{background:var(--gold); color:#fff;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

.wrap{max-width:var(--maxw); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad);}

h1,h2,h3,h4{font-family:var(--serif); color:var(--ink); font-weight:600; margin:0; letter-spacing:-.01em;}
h1{font-size:clamp(2.2rem, 4.6vw, 3.4rem); line-height:1.08;}
h2{font-size:clamp(1.7rem, 3vw, 2.4rem); line-height:1.15;}
h3{font-size:1.28rem; line-height:1.3;}
p{margin:0 0 1.1em; color:var(--text);}
p:last-child{margin-bottom:0;}

.eyebrow{
  font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--gold); display:block; margin-bottom:14px;
}
.eyebrow.on-dark{color:#D8B978;}

.lede{font-family:var(--serif); font-size:1.28rem; line-height:1.55; color:var(--ink); font-style:italic;}

.rule{border:0; border-top:1px solid var(--line); margin:0;}
.rule.dark{border-top:1px solid var(--line-dark);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-size:.86rem; font-weight:600; letter-spacing:.02em;
  padding:14px 26px; border:1px solid var(--ink); color:var(--ink); background:transparent;
  transition:background .18s ease, color .18s ease, border-color .18s ease;
  cursor:pointer;
}
.btn:hover{background:var(--ink); color:#fff;}
.btn.solid{background:var(--ink); color:#fff;}
.btn.solid:hover{background:var(--gold-deep); border-color:var(--gold-deep);}
.btn.on-dark{border-color:rgba(255,255,255,.5); color:#fff;}
.btn.on-dark:hover{background:#fff; color:var(--ink);}
.btn .ar{transition:transform .18s ease;}
.btn:hover .ar{transform:translateX(3px);}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky; top:0; z-index:100; background:rgba(250,249,246,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; height:84px;}
.brand{display:flex; align-items:center; gap:12px; font-family:var(--serif); font-weight:600; font-size:1.15rem; color:var(--ink);}
.brand img{height:38px; width:auto;}
.brand .b-sub{display:block; font-family:var(--sans); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); font-weight:600; margin-top:2px;}
.main-nav{display:flex; align-items:center; gap:2px;}
.main-nav a{
  font-size:.82rem; font-weight:500; padding:10px 15px; color:var(--text);
  position:relative; letter-spacing:.01em;
}
.main-nav a:hover, .main-nav a[aria-current="page"]{color:var(--gold-deep);}
.main-nav a[aria-current="page"]::after{
  content:""; position:absolute; left:15px; right:15px; bottom:2px; height:2px; background:var(--gold);
}
.nav-cta{margin-left:10px;}
.menu-toggle{display:none; background:none; border:0; cursor:pointer; padding:8px;}
.menu-toggle span{display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:transform .2s, opacity .2s;}

@media (max-width: 980px){
  .main-nav{
    position:fixed; inset:84px 0 0 0; background:var(--ink); flex-direction:column;
    align-items:flex-start; padding:30px var(--pad); gap:6px; transform:translateX(100%);
    transition:transform .3s ease; overflow-y:auto;
  }
  .main-nav.open{transform:translateX(0);}
  .main-nav a{color:#F2EFE8; font-size:1.05rem; width:100%; padding:14px 0; border-bottom:1px solid var(--line-dark);}
  .main-nav a[aria-current="page"]::after{display:none;}
  .main-nav a[aria-current="page"]{color:#D8B978;}
  .nav-cta{margin-left:0; margin-top:16px;}
  .nav-cta.btn{border-color:rgba(255,255,255,.5); color:#fff;}
  .menu-toggle{display:block;}
  .menu-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .menu-toggle.active span:nth-child(2){opacity:0;}
  .menu-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

/* ---------- Hero ---------- */
.hero{padding:88px 0 64px; border-bottom:1px solid var(--line);}
.hero-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:56px; align-items:end;}
.hero h1{margin-bottom:22px;}
.hero-sub{max-width:46ch; font-size:1.08rem; color:var(--slate);}
.hero-actions{margin-top:32px; display:flex; gap:14px; flex-wrap:wrap;}
.est-mark{
  border:1px solid var(--line); padding:22px 24px; font-family:var(--sans);
  justify-self:end; text-align:left; min-width:210px;
}
.est-mark .em-n{font-family:var(--serif); font-size:2.1rem; color:var(--ink); line-height:1;}
.est-mark .em-l{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate); margin-top:8px;}
@media (max-width:820px){.hero-grid{grid-template-columns:1fr;} .est-mark{justify-self:start;}}

.page-hero{padding:64px 0 48px; border-bottom:1px solid var(--line);}
.page-hero h1{max-width:22ch;}
.page-hero .hero-sub{margin-top:16px;}
.crumb{font-size:.78rem; color:var(--slate); margin-bottom:18px;}
.crumb a{color:var(--slate); border-bottom:1px solid var(--line);}
.crumb a:hover{color:var(--gold-deep);}

/* ---------- Sections ---------- */
.section{padding:80px 0; border-bottom:1px solid var(--line);}
.section.tight{padding:56px 0;}
.section.dark{background:var(--ink); color:#F2EFE8; border-bottom:1px solid var(--line-dark);}
.section.dark h2, .section.dark h3{color:#fff;}
.section.dark p{color:rgba(242,239,232,.78);}
.section.panel{background:var(--panel);}
.section-head{max-width:760px; margin-bottom:44px;}
.section-head.wide{max-width:none;}
.section-foot{margin-top:40px;}

/* ---------- Credibility strip ---------- */
.strip{display:grid; grid-template-columns:repeat(5,1fr);}
.strip .s-item{padding:26px var(--pad) 0; border-left:1px solid var(--line);}
.strip .s-item:first-child{border-left:0; padding-left:0;}
.strip .s-n{font-family:var(--serif); font-size:2.5rem; color:var(--ink);}
.strip .s-l{font-size:.76rem; color:var(--slate); text-transform:uppercase; letter-spacing:.08em; margin-top:6px;}
@media (max-width:900px){.strip{grid-template-columns:repeat(2,1fr); row-gap:28px;} .strip .s-item{border-left:0; padding-left:0; border-top:1px solid var(--line); padding-top:20px;} .strip .s-item:first-child{border-top:0; padding-top:0;}}

/* ---------- Grids / cards ---------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:0;}
.grid-3 .g-cell, .grid-2 .g-cell{padding:34px 30px 34px 0; border-top:1px solid var(--line);}
.grid-3 .g-cell:nth-child(3n){padding-right:0;}
.grid-3 .g-cell:nth-child(3n+1), .grid-2 .g-cell:nth-child(2n+1){padding-left:0;}
.grid-3 .g-cell, .grid-2 .g-cell{padding-left:30px;}
.grid-3 .g-cell:nth-child(3n+1), .grid-2 .g-cell:nth-child(2n+1){padding-left:0;}
.g-cell .g-idx{font-family:var(--sans); font-size:.75rem; color:var(--gold); letter-spacing:.08em; margin-bottom:12px;}
.g-cell h3{margin-bottom:10px;}
.g-cell p{color:var(--slate); font-size:.95rem;}
.g-cell a.g-link{display:inline-block; margin-top:14px; font-size:.82rem; font-weight:600; color:var(--ink); border-bottom:1px solid var(--gold);}
@media (max-width:900px){.grid-3{grid-template-columns:1fr;} .grid-2{grid-template-columns:1fr;} .grid-3 .g-cell, .grid-2 .g-cell{padding-left:0 !important;}}

/* ---------- Client-type / trust blocks ---------- */
.trust-list{display:flex; flex-direction:column;}
.trust-row{display:grid; grid-template-columns:.9fr 2fr; gap:40px; padding:28px 0; border-top:1px solid var(--line);}
.trust-row:last-child{border-bottom:1px solid var(--line);}
.trust-row h3{font-size:1.15rem;}
.trust-row p{color:var(--slate); margin:0;}
@media (max-width:820px){.trust-row{grid-template-columns:1fr; gap:8px;}}

/* ---------- Pull quote ---------- */
.pull{border-left:2px solid var(--gold); padding:4px 0 4px 28px; margin:0;}
.pull p{font-family:var(--serif); font-style:italic; font-size:1.35rem; color:var(--ink); line-height:1.5;}

/* ---------- Timeline (History — real sequence) ---------- */
.timeline{display:flex; flex-direction:column;}
.t-row{display:grid; grid-template-columns:120px 1fr; gap:28px; padding:26px 0; border-top:1px solid var(--line);}
.t-row:last-child{border-bottom:1px solid var(--line);}
.t-year{font-family:var(--serif); font-size:1.4rem; color:var(--gold-deep);}
.t-row h3{font-size:1.05rem; margin-bottom:6px;}
.t-row p{color:var(--slate); margin:0;}
@media (max-width:640px){.t-row{grid-template-columns:1fr; gap:6px;}}

/* ---------- Partners ---------- */
.p-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.p-card{border-top:1px solid var(--line); padding:28px 26px 28px 0;}
.p-card:nth-child(3n+1){padding-left:0;}
.p-photo{width:100%; aspect-ratio:1/1; overflow:hidden; background:var(--panel); margin-bottom:18px;}
.p-photo img{width:100%; height:100%; object-fit:cover; filter:grayscale(14%);}
.p-init{width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:2.4rem; color:var(--ink); background:var(--panel);}
.p-card h3{font-size:1.08rem; margin-bottom:2px;}
.p-desig{font-size:.82rem; color:var(--gold-deep); font-weight:600; margin-bottom:12px;}
.p-card p{color:var(--slate); font-size:.9rem;}
@media (max-width:900px){.p-grid{grid-template-columns:1fr 1fr;} .p-card:nth-child(3n+1){padding-left:26px;} .p-card:nth-child(2n+1){padding-left:0;}}
@media (max-width:600px){.p-grid{grid-template-columns:1fr;} .p-card{padding-left:0 !important;}}

.p-detail-grid{display:grid; grid-template-columns:320px 1fr; gap:56px;}
.p-detail-photo{width:100%; aspect-ratio:4/5; overflow:hidden; background:var(--panel);}
.p-detail-photo img{width:100%; height:100%; object-fit:cover; filter:grayscale(14%);}
.p-quals{display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 26px;}
.p-quals span{font-size:.72rem; letter-spacing:.05em; border:1px solid var(--line); padding:6px 12px; color:var(--slate);}
.p-contact-box{border:1px solid var(--line); padding:22px; margin-top:26px;}
.p-contact-box a{display:block; margin-top:8px; font-weight:600; color:var(--ink); border-bottom:1px solid var(--gold); width:fit-content;}
@media (max-width:820px){.p-detail-grid{grid-template-columns:1fr;} .p-detail-photo{max-width:280px;}}

/* ---------- Service / Industry detail framework ---------- */
.frame-block{padding:32px 0; border-top:1px solid var(--line);}
.frame-block:last-child{border-bottom:1px solid var(--line);}
.frame-block .fb-label{font-family:var(--sans); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:12px; display:block;}
.frame-block h2{font-size:1.5rem; margin-bottom:14px;}
.frame-block ul{margin:14px 0 0; padding-left:20px;}
.frame-block li{color:var(--text); margin-bottom:8px;}
.frame-side{display:grid; grid-template-columns:1fr 2fr; gap:40px;}
@media (max-width:820px){.frame-side{grid-template-columns:1fr; gap:14px;}}

.side-card{border:1px solid var(--line); padding:24px; display:flex; gap:16px; align-items:flex-start;}
.side-card img{width:64px; height:64px; object-fit:cover; flex-shrink:0;}
.side-card .sc-init{width:64px; height:64px; background:var(--panel); display:flex; align-items:center; justify-content:center; font-family:var(--serif); color:var(--ink); flex-shrink:0;}
.side-card h4{font-size:.98rem; margin-bottom:2px; font-family:var(--sans); font-weight:700; color:var(--ink);}
.side-card .sc-role{font-size:.8rem; color:var(--gold-deep); margin-bottom:8px;}
.side-card a{font-size:.82rem; font-weight:600; border-bottom:1px solid var(--gold);}

/* ---------- Insights ---------- */
.filter-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px;}
.filter-row button{
  font-family:var(--sans); font-size:.78rem; font-weight:600; letter-spacing:.03em;
  padding:9px 18px; border:1px solid var(--line); background:transparent; color:var(--slate); cursor:pointer;
}
.filter-row button.active, .filter-row button:hover{border-color:var(--ink); color:var(--ink);}
.post{display:grid; grid-template-columns:170px 1fr; gap:30px; padding:26px 0; border-top:1px solid var(--line);}
.post:last-child{border-bottom:1px solid var(--line);}
.post-meta{display:flex; flex-direction:column; gap:8px;}
.post-date{font-size:.8rem; color:var(--slate);}
.post-tag{font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--gold-deep); border:1px solid var(--line); padding:4px 9px; width:fit-content;}
.post h3{font-size:1.08rem; margin-bottom:8px;}
.post p{color:var(--slate); font-size:.92rem; margin:0;}
.post .p-src{font-size:.76rem; color:var(--slate); margin-top:10px; font-style:italic;}
@media (max-width:700px){.post{grid-template-columns:1fr; gap:10px;}}

.placeholder-card{border:1px dashed var(--line); padding:26px; color:var(--slate); font-size:.88rem;}
.placeholder-card strong{color:var(--ink); display:block; margin-bottom:6px; font-family:var(--sans);}

/* ---------- Offices ---------- */
.office-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.office-card{border-top:1px solid var(--line); padding:26px 26px 26px 0;}
.office-card:nth-child(3n+1){padding-left:0;}
.o-badge{font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--gold-deep); margin-bottom:10px; display:block;}
.o-name{font-family:var(--serif); font-size:1.2rem; margin-bottom:8px;}
.o-addr{color:var(--slate); font-size:.9rem; margin-bottom:10px;}
.o-inc{font-size:.85rem; color:var(--text);}
.o-inc a{border-bottom:1px solid var(--gold); font-weight:600;}
@media (max-width:900px){.office-grid{grid-template-columns:1fr 1fr;} .office-card:nth-child(3n+1){padding-left:26px;} .office-card:nth-child(2n+1){padding-left:0;}}
@media (max-width:600px){.office-grid{grid-template-columns:1fr;} .office-card{padding-left:0 !important;}}

/* ---------- Values ---------- */
.values-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.value-card{border-top:1px solid var(--line); padding:24px 22px 24px 0;}
.value-card:nth-child(4n+1){padding-left:0;}
.value-card h3{font-size:1.02rem; margin-bottom:8px;}
.value-card p{color:var(--slate); font-size:.88rem;}
@media (max-width:900px){.values-grid{grid-template-columns:1fr 1fr;} .value-card:nth-child(4n+1){padding-left:22px;} .value-card:nth-child(2n+1){padding-left:0;}}
@media (max-width:560px){.values-grid{grid-template-columns:1fr;} .value-card{padding-left:0 !important;}}

/* ---------- Careers ---------- */
.step-row{display:grid; grid-template-columns:70px 1fr; gap:24px; padding:24px 0; border-top:1px solid var(--line);}
.step-row:last-child{border-bottom:1px solid var(--line);}
.step-n{font-family:var(--serif); font-size:1.3rem; color:var(--gold-deep);}

/* ---------- Form ---------- */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.form-grid .full{grid-column:1/-1;}
.field label{display:block; font-size:.78rem; font-weight:600; letter-spacing:.03em; color:var(--ink); margin-bottom:8px;}
.field input, .field select, .field textarea{
  width:100%; border:1px solid var(--line); background:#fff; padding:13px 14px;
  font-family:var(--sans); font-size:.94rem; color:var(--text);
}
.field input:focus, .field select:focus, .field textarea:focus{border-color:var(--gold); outline:none;}
.field textarea{resize:vertical; min-height:120px;}
.form-note{font-size:.82rem; color:var(--slate); margin-top:18px;}
.form-success{display:none; border:1px solid var(--gold); padding:22px; margin-top:20px; font-size:.92rem;}
.form-success.show{display:block;}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink-2); color:#D8D5CC; padding:64px 0 28px;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid var(--line-dark);}
.footer-grid h4{color:#fff; font-family:var(--sans); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:18px; font-weight:600;}
.footer-grid a{display:block; font-size:.88rem; color:#B9B6AC; margin-bottom:11px;}
.footer-grid a:hover{color:#fff;}
.footer-brand p{color:#AFACA2; font-size:.9rem; max-width:34ch;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding-top:26px; flex-wrap:wrap; gap:12px;}
.footer-bottom p{color:#8B8980; font-size:.78rem; margin:0;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr; row-gap:34px;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- Skip link ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:12px 20px; z-index:200;
}
.skip-link:focus{left:16px; top:16px;}

/* ---------- Utility ---------- */
.mt-0{margin-top:0;} .center{text-align:center; margin-left:auto; margin-right:auto;}
.small{font-size:.85rem; color:var(--slate);}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
@media (max-width:820px){.two-col{grid-template-columns:1fr; gap:24px;}}
