:root{
    --navy:#1B2A41; --navy-2:#24364f; --navy-dk:#121d2e; --ink:#1d2733; --muted:#4A5568;
    --paper:#f6f5f2; --white:#ffffff; --line:#e3ded5;
    --gold:#C08A2E; --gold-lt:#E2B865;
    --max:1120px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Source Serif 4",Georgia,serif;color:var(--ink);background:var(--paper);line-height:1.65;font-size:18px}
  h1,h2,h3,.nav a,.btn,.eyebrow{font-family:Montserrat,system-ui,sans-serif}
  a{color:inherit}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 24px}

  /* Header + logo (Montserrat wordmark, turning-arrow mark) */
  header{position:sticky;top:0;z-index:10;background:rgba(27,42,65,.97);backdrop-filter:blur(6px)}
  .bar{display:flex;align-items:center;justify-content:space-between;height:92px}
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--white)}
  .brand svg{width:58px;height:58px;flex:none}
  .wordmark{display:flex;flex-direction:column;gap:4px}
  .wordmark .tp{font-family:Montserrat,sans-serif;font-weight:600;font-size:28px;line-height:1;letter-spacing:-.01em}
  .wordmark .law{display:flex;align-items:center;gap:8px;font-family:Montserrat,sans-serif;font-weight:600;font-size:12px;letter-spacing:.42em;line-height:1}
  .wordmark .law::before{content:"";width:28px;height:2px;background:var(--gold-lt)}
  .nav{display:flex;gap:28px}
  .nav a{color:#c8d1dc;text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
  .nav a:hover{color:var(--gold-lt)}
  .menu-btn{display:none;background:none;border:0;color:var(--white);font-size:26px;cursor:pointer}

  /* Hero */
  .hero{background:var(--navy);color:var(--white);padding:110px 0 120px;position:relative;overflow:hidden}
  .hero::after{content:"";position:absolute;right:-120px;top:-60px;width:520px;height:520px;border:2px solid rgba(226,184,101,.22);border-radius:50%}
  .eyebrow{color:var(--gold);font-weight:700;font-size:13px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px}
  .hero .eyebrow{color:var(--gold-lt)}
  .hero h1{font-size:clamp(34px,5.2vw,58px);line-height:1.1;font-weight:800;max-width:820px;letter-spacing:-.01em}
  .hero p{font-size:21px;color:#c8d1dc;max-width:640px;margin:26px 0 38px}
  .btn{display:inline-block;padding:15px 28px;border-radius:4px;font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:.2s}
  .btn-primary{background:var(--gold-lt);color:var(--navy)}
  .btn-primary:hover{background:#ecc87e}
  .btn-ghost{border:2px solid rgba(255,255,255,.3);color:var(--white);margin-left:12px}
  .btn-ghost:hover{border-color:var(--gold-lt);color:var(--gold-lt)}

  /* Sections */
  section{padding:96px 0}
  .sec-head{max-width:700px;margin-bottom:52px}
  .sec-head h2{font-size:clamp(28px,3.6vw,40px);line-height:1.15;color:var(--navy);font-weight:800}
  .sec-head p{color:var(--muted);margin-top:14px}

  /* Practice areas: patent-drawing grid, FIG. labels */
  #practice{
    background-color:var(--paper);
    background-image:
      linear-gradient(rgba(27,42,65,.05) 1px,transparent 1px),
      linear-gradient(90deg,rgba(27,42,65,.05) 1px,transparent 1px);
    background-size:32px 32px;
  }
  .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
  .card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:32px 34px 30px;position:relative;transition:transform .2s,box-shadow .2s}
  .card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(27,42,65,.10)}
  .fig{display:flex;align-items:center;gap:14px;margin-bottom:20px}
  .fig span{font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--gold)}
  .fig::after{content:"";flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--gold) 0 2px,transparent 2px 7px)}
  .fig svg{width:40px;height:40px;flex:none;order:3}
  .card h3{font-size:22px;color:var(--navy);font-weight:700;line-height:1.2}
  .moment{font-style:italic;color:var(--navy);font-size:19px;line-height:1.45;margin:14px 0 12px;padding-left:14px;border-left:3px solid var(--gold-lt)}
  .card p.body{color:var(--muted);font-size:17px}
  .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
  .tags li{list-style:none;font-family:Montserrat,sans-serif;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--navy);background:#eef1f5;border-radius:999px;padding:6px 12px}

  /* About */
  .about{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .about-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:64px;align-items:start}
  .creds{background:var(--navy);color:var(--white);padding:36px;border-radius:6px}
  .creds h3{font-size:22px;margin-bottom:4px}
  .creds .role{color:var(--gold-lt);font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:22px}
  .creds dl div{padding:12px 0;border-top:1px solid rgba(255,255,255,.12)}
  .creds dt{font-family:Montserrat,sans-serif;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8fa0b4}
  .creds dd{font-size:17px}
  .about-copy h2{font-size:clamp(28px,3.6vw,40px);line-height:1.15;color:var(--navy);font-weight:800;margin-bottom:24px}
  .about-copy p{margin-bottom:18px}

  /* Approach */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
  .step .num{font-family:Montserrat,sans-serif;font-size:44px;font-weight:800;color:var(--gold);line-height:1}
  .step h3{font-size:19px;color:var(--navy);margin:12px 0 8px}
  .step p{color:var(--muted);font-size:17px}

  /* Contact */
  .contact{background:var(--navy);color:var(--white)}
  .contact .eyebrow{color:var(--gold-lt)}
  .contact .sec-head h2{color:var(--white)}
  .contact .sec-head p{color:#c8d1dc}
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
  .contact-info div{margin-bottom:22px}
  .contact-info .label{font-family:Montserrat,sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-lt);font-weight:700}
  .contact-info a{color:var(--white)}
  form{display:grid;gap:14px}
  input,textarea{width:100%;padding:14px 16px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:var(--navy-2);color:var(--white);font:inherit;font-size:16px}
  input::placeholder,textarea::placeholder{color:#8fa0b4}
  textarea{min-height:130px;resize:vertical}
  .form-note{font-size:14px;color:#8fa0b4}
  form .btn{border:0;cursor:pointer;justify-self:start}

  /* Footer */
  footer{background:var(--navy-dk);color:#8fa0b4;font-size:14px;padding:40px 0}
  footer p{margin-bottom:10px;max-width:900px}
  footer strong{color:#c8d1dc}

  @media (max-width:860px){
    .nav{display:none;position:absolute;top:92px;left:0;right:0;background:var(--navy);flex-direction:column;padding:20px 24px;gap:18px}
    .nav.open{display:flex}
    .menu-btn{display:block}
    .grid,.about-grid,.steps,.contact-grid{grid-template-columns:1fr}
    .about-grid{gap:36px}
    section{padding:72px 0}
    .hero{padding:80px 0 90px}
    .btn-ghost{margin:12px 0 0}
    .card{padding:28px 24px}
  }

/* Multi-page additions */
.nav a.active{color:var(--gold-lt)}
.page-hero{background:var(--navy);color:var(--white);padding:84px 0 72px;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-140px;top:-120px;width:420px;height:420px;border:2px solid rgba(226,184,101,.22);border-radius:50%}
.page-hero .eyebrow{color:var(--gold-lt)}
.page-hero h1{font-size:clamp(32px,4.4vw,48px);line-height:1.12;font-weight:800;max-width:760px}
.page-hero p{font-size:20px;color:#c8d1dc;max-width:640px;margin-top:18px}
.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.summary a{display:block;text-decoration:none;background:var(--white);border:1px solid var(--line);border-radius:6px;padding:26px 24px;transition:transform .2s,box-shadow .2s}
.summary a:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(27,42,65,.10)}
.summary .fig span{font-size:11px}
.summary h3{font-size:18px;color:var(--navy);line-height:1.25;margin-bottom:8px}
.summary p{color:var(--muted);font-size:16px;line-height:1.5}
.more{display:inline-block;margin-top:32px;font-family:Montserrat,sans-serif;font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);text-decoration:none;border-bottom:2px solid var(--gold)}
.cta{background:var(--navy);color:var(--white);text-align:center}
.cta h2{font-size:clamp(26px,3.4vw,36px);font-weight:800;margin-bottom:14px}
.cta p{color:#c8d1dc;margin-bottom:28px}
.contact-card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:40px;max-width:640px}
.contact-card .row{padding:18px 0;border-top:1px solid var(--line)}
.contact-card .row:first-child{border-top:0;padding-top:0}
.contact-card .label{font-family:Montserrat,sans-serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:4px}
.contact-card a{color:var(--navy);font-size:20px;text-decoration:none;border-bottom:1px solid var(--gold-lt)}
.contact-card .addr{font-size:20px;color:var(--navy)}
.notice{margin-top:28px;font-size:15px;color:var(--muted);max-width:640px}
@media (max-width:960px){.summary{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.summary{grid-template-columns:1fr}.contact-card{padding:28px 22px}.contact-card a,.contact-card .addr{font-size:18px}}
.li-link{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:11px 18px;border:1px solid rgba(255,255,255,.25);border-radius:4px;color:var(--white);text-decoration:none;font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.li-link:hover{border-color:var(--gold-lt);color:var(--gold-lt)}

/* Prominent brand lockup in home hero */
.lockup{display:flex;align-items:center;gap:26px;margin-bottom:44px}
.lockup svg{width:112px;height:112px;flex:none}
.lockup .tp{font-family:Montserrat,sans-serif;font-weight:600;font-size:clamp(42px,6.4vw,76px);line-height:1;letter-spacing:-.015em;color:var(--white)}
.lockup .law{display:flex;align-items:center;gap:16px;margin-top:12px;font-family:Montserrat,sans-serif;font-weight:600;font-size:clamp(14px,1.6vw,20px);letter-spacing:.42em;color:var(--white)}
.lockup .law::before{content:"";width:48px;height:2px;background:var(--gold-lt)}
.hero .tagline{font-family:Montserrat,sans-serif;font-weight:700;font-size:clamp(22px,2.8vw,32px);line-height:1.25;max-width:760px;color:var(--white);margin:0}
.hero .tagline + p{margin-top:20px}
.page-hero .mini{display:flex;align-items:center;gap:12px;margin-bottom:22px;font-family:Montserrat,sans-serif;font-weight:600;font-size:15px;letter-spacing:.32em;color:var(--gold-lt);text-transform:uppercase}
@media (max-width:860px){.brand svg{width:46px;height:46px}.wordmark .tp{font-size:22px}.wordmark .law{font-size:10px}.lockup{gap:16px}.lockup svg{width:72px;height:72px}}
@media (max-width:420px){.lockup{flex-direction:column;align-items:flex-start}}

/* Centered home hero */
.hero .wrap{text-align:center}
.hero .lockup{justify-content:center}
.hero .lockup > div{text-align:left}
.hero .tagline,.hero .tagline + p{margin-left:auto;margin-right:auto}
.hero .btn-ghost{margin-left:12px}
@media (max-width:860px){.hero .btn-ghost{margin:12px 0 0}}
@media (max-width:420px){.hero .lockup{align-items:center}.hero .lockup > div{text-align:center}.hero .lockup .law{justify-content:center}}

/* Homepage: header logo appears after scrolling past the hero logo */
.brand{transition:opacity .35s ease,transform .35s ease,visibility .35s}
.brand.is-hidden{opacity:0;visibility:hidden;transform:translateY(-6px)}
@media (prefers-reduced-motion:reduce){.brand{transition:none}}
