:root{
  --ink:#1A2238;
  --deep:#0F1522;
  --paper:#EFEDE6;
  --paper-2:#E6E3D9;
  --accent:#A2793D;
  --accent-deep:#7C5A2A;
  --line:#C9C2B0;
  --muted:#5B5F6B;
  --white:#FFFFFF;
  --serif: "Source Serif 4", Georgia, serif;
  --sans: "IBM Plex Sans", Arial, sans-serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:80px;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1140px;margin:0 auto;padding:0 28px;}
h1,h2,h3{font-family:var(--serif);font-weight:600;margin:0;letter-spacing:-0.01em;}
p{margin:0;}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

/* Header */
header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(239,237,230,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
  padding-top:env(safe-area-inset-top,0px);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;}
.brand{
  font-family:var(--serif);font-size:1.25rem;font-weight:600;text-decoration:none;
  display:flex;align-items:center;gap:10px;
}
.brand img{height:32px;width:auto;display:block;}
.brand span{color:var(--accent-deep);}
.nav-links{display:flex;gap:32px;list-style:none;margin:0;padding:0;}
.nav-links a{text-decoration:none;font-size:0.95rem;color:var(--ink);position:relative;padding-bottom:4px;}
.nav-links a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--accent);transition:width .25s ease;}
.nav-links a:hover:after{width:100%;}
.nav-cta{
  border:1px solid var(--ink);background:none;padding:10px 20px;
  font-family:var(--sans);font-size:0.9rem;cursor:pointer;text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.nav-cta:hover{background:var(--ink);color:var(--paper);}
.menu-btn{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
.menu-btn span{width:24px;height:1.5px;background:var(--ink);display:block;}

/* Hero */
.hero{padding:150px 0 90px;}
.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:end;}
.hero h1{font-size:clamp(2.4rem,4.6vw,3.8rem);line-height:1.08;}
.hero-sub{margin-top:22px;max-width:44ch;color:var(--muted);font-size:1.05rem;}
.hero-actions{margin-top:34px;display:flex;gap:16px;flex-wrap:wrap;}
.btn-primary{
  background:var(--ink);color:var(--paper);padding:14px 26px;text-decoration:none;
  font-size:0.95rem;border:1px solid var(--ink);
}
.btn-primary:hover{background:var(--deep);}
.btn-secondary{
  padding:14px 26px;text-decoration:none;font-size:0.95rem;border:1px solid var(--line);color:var(--ink);
}
.btn-secondary:hover{border-color:var(--ink);}
.hero-card{
  border:1px solid var(--line);padding:28px;background:var(--paper-2);
  align-self:end;
}
.hero-card .num{font-family:var(--serif);font-size:2.6rem;color:var(--accent-deep);}
.hero-card p{margin-top:8px;color:var(--muted);font-size:0.92rem;}
.hero-card .rule{height:1px;background:var(--line);margin:18px 0;}

/* Section shared */
section{padding:90px 0;}
.section-head{display:grid;grid-template-columns:1fr 1.6fr;gap:40px;margin-bottom:52px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:28px;}
.section-head h2{font-size:clamp(1.8rem,3vw,2.4rem);}
.section-head p{color:var(--muted);max-width:46ch;}
.alt{background:var(--paper-2);}

/* About */
.about-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;}
.about-portrait{
  aspect-ratio:3/4;background:var(--ink);position:relative;
  display:flex;flex-direction:column;overflow:hidden;
}

.about-portrait img{
  width:100%;flex:1;min-height:0;object-fit:cover;object-position:top center;display:block;
}

.about-portrait span{
  color:var(--paper);font-family:var(--serif);padding:20px;font-size:0.95rem;
  border-top:1px solid rgba(255,255,255,0.25);width:100%;
  background:var(--ink);flex-shrink:0;
}
.about-copy p{margin-bottom:16px;color:var(--muted);}
.about-copy p:first-of-type{color:var(--ink);font-size:1.1rem;}
.creds{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line);}
.creds div h3{font-family:var(--sans);font-size:0.85rem;font-weight:600;margin-bottom:4px;}
.creds div p{font-size:0.85rem;color:var(--muted);}

/* Practice areas as index list */
.areas{border-top:1px solid var(--line);}
.area-row{
  display:grid;grid-template-columns:80px 1fr 1.4fr;gap:28px;
  padding:28px 0;border-bottom:1px solid var(--line);align-items:baseline;
}
.area-row .idx{font-family:var(--serif);color:var(--accent-deep);font-size:1.1rem;}
.area-row h3{font-size:1.15rem;}
.area-row p{color:var(--muted);font-size:0.95rem;}

/* Process */
.process-list{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);}
.process-item{padding:28px 24px;border-right:1px solid var(--line);}
.process-item:last-child{border-right:none;}
.process-item .step{font-family:var(--serif);font-size:1.6rem;color:var(--accent-deep);margin-bottom:14px;}
.process-item h3{font-size:1rem;margin-bottom:8px;}
.process-item p{font-size:0.9rem;color:var(--muted);}

/* Events */
.process-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);}
.process-item{padding:28px 24px;border-right:1px solid var(--line);}
.process-item:last-child{border-right:none;}
.process-item .step{font-family:var(--serif);font-size:1.6rem;color:var(--accent-deep);margin-bottom:14px;}
.process-item h3{font-size:1rem;margin-bottom:8px;}
.process-item p{font-size:0.9rem;color:var(--muted);}

/* Testimonials */
.testi-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.testi{border-left:2px solid var(--accent);padding-left:24px;}
.testi p.quote{font-family:var(--serif);font-size:1.15rem;line-height:1.5;}
.testi p.who{margin-top:14px;font-size:0.85rem;color:var(--muted);}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.contact-info h3{font-size:0.95rem;margin-bottom:6px;}
.contact-info p{color:var(--muted);font-size:0.95rem;margin-bottom:26px;}
form{display:flex;flex-direction:column;gap:18px;}
label{font-size:0.85rem;display:block;margin-bottom:6px;color:var(--muted);}
input,textarea{
  width:100%;padding:12px 0;border:none;border-bottom:1px solid var(--line);
  background:transparent;font-family:var(--sans);font-size:1rem;color:var(--ink);
}
input:focus,textarea:focus{border-bottom-color:var(--ink);}
textarea{resize:vertical;min-height:90px;}
.submit-btn{
  margin-top:8px;align-self:flex-start;background:var(--ink);color:var(--paper);
  border:1px solid var(--ink);padding:14px 28px;font-family:var(--sans);font-size:0.95rem;cursor:pointer;
}
.submit-btn:hover{background:var(--deep);}
.form-msg{font-size:0.9rem;color:var(--accent-deep);min-height:20px;}

/* Footer */
footer{background:var(--deep);color:var(--paper);padding:48px 0 32px;}
.footer-grid{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;}
.footer-grid .brand{color:var(--paper);}
.footer-grid .brand span{color:var(--accent);}
footer nav ul{display:flex;gap:24px;list-style:none;padding:0;margin:0;flex-wrap:wrap;}
footer nav a{text-decoration:none;color:var(--paper);opacity:0.8;font-size:0.9rem;}
footer nav a:hover{opacity:1;}
.footer-bottom{margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,0.15);font-size:0.8rem;color:rgba(239,237,230,0.6);}

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

/* Responsive */
@media (max-width:900px){
  .hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr;}
  .about-portrait{aspect-ratio:4/5;}
  .process-list{grid-template-columns:1fr 1fr;}
  .process-item{border-right:1px solid var(--line);}
  .process-item:nth-child(2n){border-right:none;}
  .process-item:nth-last-child(-n+2){border-bottom:none;}
  .process-item{border-bottom:1px solid var(--line);}
  .testi-grid{grid-template-columns:1fr;}
  .section-head{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .nav-links,.nav-cta{display:none;}
  .menu-btn{display:flex;}
  .nav-links.open{
    display:flex;flex-direction:column;position:absolute;top:76px;left:0;right:0;
    background:var(--paper);border-bottom:1px solid var(--line);padding:20px 28px;gap:18px;
  }
  .hero{padding:130px 0 60px;}
  .area-row{grid-template-columns:40px 1fr;grid-template-areas:"idx title" ". desc";}
  .area-row .idx{grid-area:idx;}
  .area-row h3{grid-area:title;}
  .area-row p{grid-area:desc;}
  .process-list{grid-template-columns:1fr;}
  .process-item{border-right:none !important;}
  .creds{grid-template-columns:1fr;}
}