/* D Somani & Associates — site stylesheet
   Palette: Deep Ink #0B1F3A · Saffron #C77405 · Muted Teal #14746F · Warm Off-white #F4EFE8
   Typography: Fraunces (serif headings) + Inter (body)
*/
:root{
  --ink:#0B1F3A; --ink-2:#122A4A; --cream:#F4EFE8; --cream-2:#FAF7F2;
  --amber:#C77405; --teal:#14746F; --line:#E5DDD0; --body:#1F1F1F;
  --mute:#8C8C8C; --white:#FFFFFF;
  --container:1180px; --radius:6px;
  --serif:'Fraunces', Georgia, serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:var(--sans); color:var(--body);
  background:var(--cream); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
.container{max-width:var(--container); margin:0 auto; padding:0 24px}
.eyebrow{
  font-family:var(--sans); font-weight:700; font-size:12px;
  letter-spacing:.16em; text-transform:uppercase; color:var(--amber);
  margin-bottom:.6rem;
}
h1,h2,h3{font-family:var(--serif); color:var(--ink); font-weight:600; line-height:1.1; margin:0 0 .6em; letter-spacing:-.01em}
h1{font-size:clamp(2.2rem, 5vw, 4.4rem)}
h2{font-size:clamp(1.6rem, 3.4vw, 2.4rem)}
h3{font-size:clamp(1.2rem, 2vw, 1.5rem)}
p{margin:0 0 1em}
.muted{color:var(--mute)}
.small{font-size:14px}
.center{text-align:center}

/* Header */
.site-header{
  position:sticky; top:0; z-index:50; background:var(--cream);
  border-bottom:1px solid var(--line); backdrop-filter:saturate(120%);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:18px 24px}
.brand{display:flex; flex-direction:column; line-height:1.05}
.brand-name{font-family:var(--serif); font-weight:700; color:var(--ink); font-size:1.05rem; letter-spacing:.01em}
.brand-sub{font-family:var(--sans); font-size:.7rem; letter-spacing:.18em; color:var(--mute); text-transform:uppercase; margin-top:3px}
.primary-nav{display:flex; gap:24px; align-items:center}
.primary-nav a{color:var(--ink); font-size:.96rem; padding:6px 0; border-bottom:2px solid transparent; transition:border-color .2s}
.primary-nav a:hover,.primary-nav a.active{border-bottom-color:var(--amber); color:var(--ink)}
.menu-toggle{display:none; font-size:24px; background:transparent; border:0; color:var(--ink); cursor:pointer}

/* Buttons */
.btn{
  display:inline-block; padding:.7rem 1.3rem; font:600 .96rem/1 var(--sans);
  border-radius:32px; border:1.5px solid var(--ink); cursor:pointer; transition:transform .15s, background .2s;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--ink); color:var(--cream)}
.btn-secondary{background:transparent; color:var(--ink)}
.btn-amber{background:var(--amber); color:var(--cream); border-color:var(--amber)}

/* Hero */
.hero{padding:5rem 0 4rem}
.hero h1{font-size:clamp(2.6rem, 6vw, 5.4rem); margin-bottom:1.4rem}
.hero h1 .amber-underline{position:relative; display:inline-block}
.hero h1 .amber-underline::after{
  content:""; position:absolute; left:0; right:0; bottom:6px; height:6px;
  background:var(--amber); border-radius:2px; opacity:.95;
}
.hero .lede{font-size:1.2rem; max-width:760px; color:var(--ink); line-height:1.55}
.hero .cta{display:flex; gap:14px; margin-top:2rem; flex-wrap:wrap}

/* Sections */
.section{padding:5rem 0; border-top:1px solid var(--line)}
.section.dark{background:var(--ink); color:var(--cream)}
.section.dark h1,.section.dark h2,.section.dark h3{color:var(--cream)}
.section.dark .muted{color:#9AA8BD}
.section.cream-2{background:var(--cream-2)}

/* Cards: practice anchors grid */
.anchors{display:grid; grid-template-columns:repeat(2, 1fr); gap:18px; margin-top:2rem}
.anchor-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:28px; transition:transform .2s, box-shadow .2s, border-color .2s;
}
.anchor-card:hover{transform:translateY(-3px); box-shadow:0 10px 40px -16px rgba(11,31,58,.18); border-color:var(--amber)}
.anchor-num{font-family:var(--serif); font-size:1.8rem; font-weight:600; color:var(--amber); line-height:1}
.anchor-title{font-family:var(--serif); font-size:1.4rem; font-weight:600; color:var(--ink); margin:.4rem 0 .8rem}
.anchor-card p{color:var(--body); font-size:.98rem}
.anchor-card a.more{font-weight:600; color:var(--ink); border-bottom:1px solid var(--amber); padding-bottom:1px}

/* Quote / pull-out */
.pullquote{font-family:var(--serif); font-size:clamp(1.6rem, 3.4vw, 2.5rem); font-style:italic; color:var(--cream); line-height:1.25; margin:0; max-width:1000px}

/* Founder block */
.founder{display:grid; grid-template-columns:240px 1fr; gap:36px; align-items:start; margin-top:2rem}
.founder img{width:240px; height:240px; object-fit:cover; border:2px solid var(--amber); border-radius:4px}
.founder h2{margin-bottom:.4rem}
.founder .role{font-size:.95rem; color:var(--mute); font-style:italic; margin-bottom:1rem}

/* Notes teaser cards */
.notes-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; margin-top:2rem}
.note-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:24px; display:flex; flex-direction:column; transition:transform .2s, box-shadow .2s;
}
.note-card:hover{transform:translateY(-3px); box-shadow:0 10px 40px -16px rgba(11,31,58,.18)}
.note-card .cat{font-size:11px; font-weight:700; letter-spacing:.16em; color:var(--amber); text-transform:uppercase}
.note-card h3{font-family:var(--serif); font-size:1.25rem; margin:.6rem 0; color:var(--ink)}
.note-card .lede{font-size:.92rem; color:var(--body); margin-bottom:1rem; flex:1}
.note-card .date{font-size:.78rem; letter-spacing:.1em; color:var(--mute); text-transform:uppercase}

/* Services list (overview page) */
.service-row{display:grid; grid-template-columns:80px 1fr 220px; gap:24px; padding:24px 0; border-bottom:1px solid var(--line); align-items:center}
.service-row:last-child{border-bottom:0}
.service-row .num{font-family:var(--serif); font-size:1.6rem; color:var(--amber); font-weight:600}
.service-row .title{font-family:var(--serif); font-size:1.35rem; color:var(--ink); font-weight:600}
.service-row .desc{font-size:.95rem; color:var(--body)}
.service-row .star{
  display:inline-flex; align-items:center; gap:8px; padding:6px 12px; border-radius:40px;
  background:rgba(199,116,5,.1); color:var(--amber); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
}

/* Two-column content */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start}

/* Bullets */
ul.clean{list-style:none; padding:0; margin:0}
ul.clean li{padding:8px 0 8px 24px; position:relative; line-height:1.55}
ul.clean li::before{content:"—"; color:var(--amber); position:absolute; left:0; font-weight:700}

/* Belief chips */
.chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:1rem}
.chip{
  padding:8px 18px; border:1px solid var(--line); border-radius:32px;
  background:var(--white); font-size:.92rem; color:var(--ink);
}

/* Internal Audit deliverables grid */
.delivs{display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; margin-top:2rem}
.deliv{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:22px; transition:transform .2s, border-color .2s;
}
.deliv:hover{transform:translateY(-3px); border-color:var(--amber)}
.deliv .num{font-family:var(--serif); font-size:1.4rem; color:var(--amber); font-weight:600; line-height:1}
.deliv h4{font-family:var(--serif); font-size:1.05rem; color:var(--ink); margin:.5rem 0 .4rem; font-weight:600}
.deliv p{font-size:.86rem; color:var(--body); margin:0}

/* Timeline (How we work) */
.timeline{display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; margin-top:2rem; position:relative}
.timeline::before{content:""; position:absolute; top:14px; left:24px; right:24px; height:2px; background:var(--amber); opacity:.5}
.tl-step{position:relative; text-align:center; padding-top:36px}
.tl-step::before{content:""; position:absolute; top:6px; left:50%; transform:translateX(-50%); width:18px; height:18px; border-radius:50%; background:var(--amber)}
.tl-num{font-family:var(--serif); color:var(--amber); font-weight:600; font-size:1.1rem}
.tl-step h4{font-family:var(--serif); font-size:1.2rem; color:var(--ink); margin:.4rem 0}
.tl-step p{font-size:.92rem; color:var(--body)}

/* FAQ */
.faq details{border-top:1px solid var(--line); padding:18px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-family:var(--serif); font-size:1.2rem; color:var(--ink); cursor:pointer; font-weight:600; list-style:none; position:relative; padding-right:32px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; position:absolute; right:0; top:0; font-size:1.4rem; color:var(--amber); transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:.8rem; color:var(--body); line-height:1.65}

/* Contact */
.contact-line{padding:18px 0; border-bottom:1px solid var(--line)}
.contact-line:last-child{border-bottom:0}
.contact-line .label{font-size:11px; letter-spacing:.16em; color:var(--mute); text-transform:uppercase; margin-bottom:.3rem}
.contact-line .value{font-family:var(--serif); font-size:1.4rem; color:var(--ink)}

/* Footer */
.site-footer{background:var(--ink); color:var(--cream); padding:3rem 0 1.6rem; margin-top:5rem}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:36px; padding-bottom:2rem; border-bottom:1px solid rgba(244,239,232,.12)}
.footer-brand{font-family:var(--serif); font-weight:600; font-size:1.15rem; margin-bottom:.4rem}
.footer-sub{font-size:.86rem; color:#9AA8BD}
.footer-nav{display:flex; flex-direction:column; gap:8px; font-size:.92rem}
.footer-nav a{color:var(--cream); opacity:.85}
.footer-nav a:hover{opacity:1; color:var(--amber)}
.footer-social{display:flex; flex-direction:column; gap:8px; font-size:.92rem}
.footer-social a{color:var(--cream); opacity:.85}
.footer-social a:hover{opacity:1; color:var(--amber)}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:1.4rem 24px 0; font-size:.82rem; color:#9AA8BD; flex-wrap:wrap; gap:12px}
.footer-bottom a{color:#9AA8BD}
.footer-bottom a:hover{color:var(--amber)}
.dot{color:var(--amber); margin:0 8px}
.footer-tag{margin-top:.8rem; padding:0 24px; font-size:.76rem; color:#9AA8BD; font-style:italic; max-width:920px}

/* Modal */
.modal{position:fixed; inset:0; background:rgba(11,31,58,.78); display:flex; align-items:center; justify-content:center; z-index:100; padding:24px}
.modal[hidden]{display:none}
.modal-box{
  background:var(--cream); max-width:680px; width:100%; padding:42px 42px 38px;
  border-radius:8px; box-shadow:0 30px 80px -20px rgba(0,0,0,.4);
  animation:modal-in .35s ease;
}
@keyframes modal-in{from{opacity:0; transform:translateY(20px)}to{opacity:1; transform:translateY(0)}}
.modal-box h2{margin:0 0 1rem; font-size:2rem}
.modal-box p{font-size:.96rem; line-height:1.65}
.modal-box .btn{margin-top:1rem}

/* Mobile */
@media (max-width: 820px){
  .anchors{grid-template-columns:1fr}
  .notes-grid{grid-template-columns:1fr}
  .delivs{grid-template-columns:repeat(2, 1fr)}
  .timeline{grid-template-columns:1fr; gap:36px}
  .timeline::before{display:none}
  .two-col{grid-template-columns:1fr; gap:24px}
  .founder{grid-template-columns:1fr; gap:18px}
  .founder img{width:200px; height:200px}
  .service-row{grid-template-columns:50px 1fr; gap:14px}
  .service-row .star{grid-column:2}
  .footer-grid{grid-template-columns:1fr; gap:24px}
  .footer-bottom{flex-direction:column; align-items:flex-start}
  .primary-nav{display:none; position:absolute; top:100%; left:0; right:0; background:var(--cream); flex-direction:column; padding:18px 24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
  .primary-nav.open{display:flex}
  .menu-toggle{display:inline-flex}
  .hero{padding:3rem 0 2.5rem}
}

/* Long-form post */
.post{max-width:760px; margin:0 auto}
.post .meta{display:flex; gap:14px; align-items:center; font-size:12px; color:var(--mute); letter-spacing:.1em; text-transform:uppercase; margin-bottom:1rem}
.post h1{font-size:clamp(2rem, 4.5vw, 3.4rem); margin-bottom:1rem}
.post p{font-size:1.08rem; line-height:1.7; margin-bottom:1.2em}
.post h2{font-size:1.6rem; margin-top:2.4rem}
.post .post-disclaimer{margin-top:3rem; padding:1.4rem; background:var(--cream-2); border-left:3px solid var(--amber); font-size:.86rem; color:var(--mute); font-style:italic}

/* Notes filter chips */
.filters{display:flex; gap:10px; flex-wrap:wrap; margin:1.6rem 0 2.2rem}
.filters .chip{cursor:pointer}
.filters .chip.active{background:var(--ink); color:var(--cream); border-color:var(--ink)}

/* Utility */
.spacer{height:48px}
.amber-rule{width:60px; height:3px; background:var(--amber); border:0; margin:1rem 0 1.6rem}
