:root {
  --ink: #1f252b;
  --ink-2: #303840;
  --slate: #68717b;
  --gold: #fdbd19;
  --gold-soft: #fff4cf;
  --paper: #f7f6f2;
  --white: #fff;
  --line: #deddd7;
  --max: 1180px;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: var(--sans); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; background: var(--gold); color: var(--ink); padding: 10px 16px; }
.skip-link:focus { top: 16px; }

.site-header { position: sticky; top: 0; z-index: 100; background: rgba(255,255,255,.94); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(31,37,43,.09); }
.header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand img { width: 245px; height: auto; }
.nav { display: flex; align-items: center; gap: 28px; }
.nav > a:not(.button) { text-decoration: none; font-size: .92rem; font-weight: 600; }
.nav > a:not(.button):hover { color: #8f6900; }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--line); background: #fff; border-radius: 50%; padding: 12px; }
.menu-toggle span { display: block; height: 2px; background: var(--ink); margin: 4px 0; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 24px; background: var(--gold); color: var(--ink); border: 1px solid var(--gold); border-radius: 2px; text-decoration: none; font-weight: 700; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); background: #ffca3b; }
.button--compact { min-height: 44px; padding-inline: 18px; font-size: .88rem; }
.text-link { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; font-weight: 700; border-bottom: 1px solid currentColor; padding-bottom: 3px; }
.text-link span { color: #9e7400; }

.eyebrow { margin: 0 0 18px; color: #8b6700; text-transform: uppercase; letter-spacing: .16em; font-size: .74rem; font-weight: 700; }
.eyebrow--light { color: #ffd465; }
h1,h2,h3 { font-family: var(--serif); line-height: 1.08; margin-top: 0; }
h1 { font-size: clamp(2.8rem, 5.6vw, 5.25rem); letter-spacing: -.035em; }
h2 { font-size: clamp(2.25rem, 4.2vw, 3.8rem); letter-spacing: -.025em; }
h3 { font-size: 1.55rem; }

.hero { padding: clamp(54px, 8vw, 112px) 0 72px; overflow: hidden; background: linear-gradient(120deg,#fff 0%,#fff 58%,var(--paper) 58%); }
.hero-grid { display: grid; grid-template-columns: 1.02fr .98fr; gap: clamp(42px,6vw,86px); align-items: center; }
.hero h1 { max-width: 760px; margin-bottom: 26px; }
.hero h1 em { color: var(--slate); font-weight: 500; }
.hero-lead { max-width: 650px; color: #4d565f; font-size: 1.16rem; margin-bottom: 34px; }
.hero-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.hero-proof { list-style: none; padding: 0; margin: 54px 0 0; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }
.hero-proof li { padding: 22px 18px 0 0; }
.hero-proof strong,.hero-proof span { display: block; }
.hero-proof strong { font-size: .95rem; }
.hero-proof span { color: var(--slate); font-size: .8rem; }
.hero-visual { position: relative; }
.hero-visual::before { content:""; position:absolute; width: 210px; height: 210px; background: var(--gold); right:-28px; top:-28px; z-index:0; }
.hero-visual img { position:relative; z-index:1; width:100%; aspect-ratio: .86; object-fit:cover; object-position: 50% 50%; filter: saturate(.8) contrast(1.03); }
.hero-card { position:absolute; z-index:2; left:-42px; bottom:34px; width:min(330px,75%); background:var(--ink); color:#fff; padding:25px 27px; box-shadow:0 24px 54px rgba(0,0,0,.25); }
.hero-card-kicker { color:#ffd465; display:block; text-transform:uppercase; font-size:.68rem; letter-spacing:.16em; margin-bottom:8px; }
.hero-card strong { font-family:var(--serif); font-size:1.2rem; line-height:1.3; }

.decision-strip { background: var(--gold); }
.decision-grid { min-height: 88px; display: grid; grid-template-columns: 1.4fr repeat(4,1fr); align-items:center; gap: 22px; }
.decision-grid p { font-family: var(--serif); font-size:1.1rem; font-weight:700; }
.decision-grid span { font-size:.86rem; font-weight:700; padding-left:18px; border-left:1px solid rgba(31,37,43,.35); }

.section { padding: clamp(78px, 10vw, 138px) 0; }
.section--soft { background: var(--paper); }
.section--ink { background: var(--ink); color:#fff; }
.section-heading { display:grid; grid-template-columns: 1.35fr .65fr; gap:clamp(40px,8vw,110px); align-items:end; margin-bottom: 62px; }
.section-heading h2 { max-width: 780px; margin-bottom:0; }
.section-heading > p { color: var(--slate); margin:0 0 8px; }
.section-heading--compact { align-items:center; }

.practice-grid { display:grid; grid-template-columns: repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.practice { min-height:300px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:36px; display:flex; flex-direction:column; position:relative; transition: background .2s, transform .2s; }
.practice:hover { background:var(--paper); }
.practice--featured { grid-row:span 2; background:var(--ink); color:#fff; justify-content:flex-end; overflow:hidden; }
.practice--featured::before { content:"A"; position:absolute; right:-18px; top:-90px; font-family:var(--serif); font-size:330px; color:rgba(255,255,255,.04); }
.practice-number { color:#9a7200; font-size:.78rem; letter-spacing:.12em; font-weight:700; margin-bottom:auto; }
.practice--featured .practice-number { color:#ffd465; }
.practice h3 { max-width:480px; margin-bottom:18px; }
.practice p { color:var(--slate); margin:0; }
.practice--featured p { color:#c7cbd0; }
.practice .tag { color:#ffd465; text-transform:uppercase; letter-spacing:.13em; font-size:.7rem; margin-bottom:14px; }
.practice a { color:#ffd465; text-decoration:none; font-weight:700; margin-top:26px; }

.paths-grid { display:grid; grid-template-columns:.9fr 1fr 1fr; gap:24px; align-items:stretch; }
.paths-intro { padding:30px 38px 30px 0; }
.paths-intro h2 { color:#fff; font-size:clamp(2.2rem,3.5vw,3.2rem); }
.paths-intro > p:last-child { color:#b7bdc3; }
.path-card { display:flex; flex-direction:column; min-height:400px; padding:34px; background:#292f35; border:1px solid #41484f; text-decoration:none; transition:transform .2s,border-color .2s; }
.path-card:hover { transform:translateY(-5px); border-color:var(--gold); }
.path-card > span { color:#ffd465; font-size:.78rem; margin-bottom:auto; }
.path-card h3 { color:#fff; font-size:1.65rem; }
.path-card p { color:#b7bdc3; }
.path-card strong { color:#ffd465; margin-top:auto; }

.about-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,8vw,110px); align-items:center; }
.about-media { position:relative; padding-left:38px; }
.about-media::before { content:""; position:absolute; inset:38px 38px -32px 0; background:var(--gold-soft); z-index:-1; }
.about-media img { width:100%; max-height:690px; object-fit:cover; object-position:center 23%; filter:saturate(.75); }
.since { position:absolute; left:0; bottom:38px; background:var(--gold); padding:20px 24px; }
.since strong,.since span { display:block; }
.since strong { font-family:var(--serif); font-size:2rem; line-height:1; }
.since span { font-size:.72rem; font-weight:700; }
.about-copy .lead { color:var(--ink); font-family:var(--serif); font-size:1.45rem; line-height:1.45; }
.about-copy > p:not(.eyebrow):not(.lead) { color:var(--slate); }
.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:36px 0; }
.principles div { border-top:2px solid var(--gold); padding-top:13px; }
.principles strong,.principles span { display:block; }
.principles span { color:var(--slate); font-size:.78rem; line-height:1.45; margin-top:5px; }

.process-grid { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(4,1fr); gap:0; counter-reset:item; }
.process-grid li { padding:28px 28px 8px; min-height:230px; border-left:1px solid var(--line); }
.process-grid li:last-child { border-right:1px solid var(--line); }
.process-grid span { color:#9a7200; font-size:.78rem; font-weight:700; letter-spacing:.12em; }
.process-grid h3 { margin:48px 0 12px; }
.process-grid p { color:var(--slate); font-size:.92rem; }

.content-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.content-card { min-height:360px; padding:30px; background:var(--paper); border-top:4px solid var(--gold); text-decoration:none; display:flex; flex-direction:column; transition:transform .2s, box-shadow .2s; }
.content-card:hover { transform:translateY(-5px); box-shadow:0 20px 40px rgba(31,37,43,.12); }
.content-card > span { color:#8b6700; text-transform:uppercase; letter-spacing:.13em; font-size:.68rem; font-weight:700; }
.content-card h3 { margin:46px 0 18px; }
.content-card p { color:var(--slate); }
.content-card strong { margin-top:auto; }

.contact { background:var(--ink); color:#fff; padding:clamp(78px,10vw,128px) 0; }
.contact-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(50px,9vw,130px); }
.contact h2 { color:#fff; max-width:740px; }
.contact-details { border-left:1px solid #4a5158; padding-left:42px; display:grid; gap:30px; }
.contact-details div { padding-bottom:26px; border-bottom:1px solid #41484f; }
.contact-details span { color:#ffd465; text-transform:uppercase; letter-spacing:.13em; font-size:.68rem; font-weight:700; }
.contact-details a,.contact-details p { display:block; margin:8px 0 0; color:#d2d5d8; text-decoration:none; }

.footer { background:var(--paper); color:var(--slate); padding:56px 0 26px; border-top:1px solid var(--line); }
.footer-grid { display:grid; grid-template-columns:.75fr 1.25fr .6fr; gap:60px; align-items:start; }
.footer img { width:240px; height:auto; filter:none; opacity:1; }
.footer p { margin:0; }
.footer nav { display:grid; gap:8px; }
.footer nav a { color:var(--ink); text-decoration:none; }
.footer nav a:hover { color:#8b6700; }
.footer-bottom { border-top:1px solid var(--line); margin-top:42px; padding-top:22px; display:flex; justify-content:space-between; gap:24px; font-size:.74rem; }
.whatsapp-float { position:fixed; right:24px; bottom:24px; width:60px; height:60px; z-index:90; border-radius:50%; background:#18b957; display:grid; place-items:center; box-shadow:0 12px 30px rgba(0,0,0,.25); transition:transform .2s; }
.whatsapp-float:hover { transform:scale(1.07); }
.whatsapp-float svg { width:34px; height:34px; fill:#fff; }

/* Internal pages and blog */
.page-hero { padding:clamp(70px,9vw,126px) 0; background:linear-gradient(120deg,var(--ink),#333b43); color:#fff; position:relative; overflow:hidden; }
.page-hero::after { content:"A"; position:absolute; right:4vw; top:-140px; font-family:var(--serif); font-size:430px; color:rgba(255,255,255,.035); }
.page-hero .container { position:relative; z-index:1; }
.page-hero h1 { max-width:900px; margin-bottom:24px; }
.page-hero .lead { max-width:760px; color:#d1d5d8; font-size:1.15rem; }
.breadcrumb { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:34px; color:#c5c9cc; font-size:.78rem; }
.breadcrumb a { color:#ffd465; text-decoration:none; }
.page-body { padding:clamp(68px,8vw,112px) 0; }
.page-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:clamp(44px,8vw,100px); align-items:start; }
.prose { max-width:780px; }
.prose h2 { font-size:clamp(1.9rem,3.5vw,2.8rem); margin:1.5em 0 .6em; }
.prose h3 { margin:1.7em 0 .55em; }
.prose p,.prose li { color:#4f5962; }
.prose li { margin-bottom:8px; }
.prose img { width:100%; height:auto; margin:34px 0; }
.page-sidebar { position:sticky; top:112px; padding:30px; background:var(--paper); border-top:4px solid var(--gold); }
.page-sidebar h2 { font-size:1.55rem; }
.page-sidebar p { color:var(--slate); font-size:.9rem; }
.page-sidebar .button { width:100%; text-align:center; }
.service-list { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; padding:0; list-style:none; }
.service-list li { padding:20px; background:var(--paper); border-left:3px solid var(--gold); color:var(--ink); font-weight:600; }
.faq { margin-top:56px; border-top:1px solid var(--line); }
.faq details { border-bottom:1px solid var(--line); padding:20px 0; }
.faq summary { cursor:pointer; font-weight:700; color:var(--ink); }
.faq p { margin-bottom:0; }
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.blog-card { display:flex; flex-direction:column; min-height:330px; padding:28px; background:var(--paper); border-top:4px solid var(--gold); text-decoration:none; }
.blog-card time,.post-meta { color:#8b6700; text-transform:uppercase; letter-spacing:.11em; font-size:.68rem; font-weight:700; }
.blog-card h2 { font-size:1.45rem; margin:36px 0 16px; }
.blog-card p { color:var(--slate); font-size:.92rem; }
.blog-card strong { margin-top:auto; }
.article-header { max-width:900px; margin:0 auto 54px; text-align:center; }
.article-header h1 { font-size:clamp(2.4rem,5vw,4.6rem); }
.article { max-width:820px; margin:0 auto; }
.article p,.article li { color:#444e57; }
.article h2,.article h3,.article h4 { margin-top:1.8em; }
.article h4 { font-size:1.55rem; }
.recent-posts { margin-top:80px; padding-top:56px; border-top:1px solid var(--line); }
.recent-posts h2 { font-size:2.1rem; }
.legal-page { max-width:860px; }
.tool-card { padding:34px; background:var(--paper); border:1px solid var(--line); border-top:4px solid var(--gold); }
.tool-card h2 { font-size:1.8rem; }
.internship-card { padding:clamp(30px,5vw,58px); background:var(--paper); border-left:5px solid var(--gold); }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .65s ease,transform .65s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 980px) {
  .menu-toggle { display:block; }
  .nav { display:none; position:absolute; top:88px; left:0; right:0; background:#fff; padding:22px 20px 28px; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:14px; }
  .nav.open { display:flex; }
  .hero { background:linear-gradient(#fff 0 64%,var(--paper) 64%); }
  .hero-grid,.about-grid,.contact-grid { grid-template-columns:1fr; }
  .hero-visual { max-width:680px; margin-left:auto; }
  .decision-grid { grid-template-columns:repeat(2,1fr); padding-block:20px; }
  .decision-grid p { grid-column:1/-1; margin:0; }
  .section-heading,.paths-grid { grid-template-columns:1fr; }
  .paths-intro { padding-right:0; }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .content-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid nav { grid-column:1/-1; }
  .page-layout { grid-template-columns:1fr; }
  .page-sidebar { position:static; }
  .blog-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 680px) {
  .container { width:min(calc(100% - 28px),var(--max)); }
  .header-inner { min-height:74px; }
  .brand img { width:190px; }
  .nav { top:74px; }
  .hero { padding-top:46px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .hero-proof { grid-template-columns:1fr; }
  .hero-proof li { padding:14px 0; border-bottom:1px solid var(--line); }
  .hero-visual::before { width:120px; height:120px; right:-8px; top:-12px; }
  .hero-card { left:14px; bottom:16px; }
  .decision-grid { grid-template-columns:1fr; }
  .decision-grid span { padding:8px 0; border-left:0; border-top:1px solid rgba(31,37,43,.25); }
  .practice-grid,.content-grid { grid-template-columns:1fr; }
  .practice--featured { grid-row:auto; min-height:430px; }
  .practice { min-height:260px; padding:28px; }
  .principles,.process-grid { grid-template-columns:1fr; }
  .process-grid li,.process-grid li:last-child { min-height:auto; border-right:0; border-bottom:1px solid var(--line); padding:24px 18px; }
  .process-grid h3 { margin-top:24px; }
  .about-media { padding-left:18px; }
  .contact-details { border-left:0; border-top:1px solid #4a5158; padding:36px 0 0; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .footer-grid nav { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
  .service-list,.blog-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
  * { transition:none !important; }
}
