:root{--cream:#f4f0e7;--paper:#fbfaf6;--ink:#2e302d;--sage:#707565;--stone:#d8d1c4;--charcoal:#263033;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.58}img{max-width:100%;display:block}a{color:inherit}.wrap{width:min(calc(100% - 48px),var(--max));margin:auto}.site-header{background:rgba(251,250,246,.96);border-bottom:1px solid #e5dfd5;position:sticky;top:0;z-index:10}.header-inner{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.15}.brand .name{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.brand .practice{font-family:Georgia,'Times New Roman',serif;font-size:1.45rem;margin-top:5px}nav{display:flex;gap:28px}nav a{text-decoration:none;font-size:.92rem}nav a:hover{text-decoration:underline}.hero{padding:82px 0 0}.hero-copy{max-width:820px;margin:0 auto 44px;text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700;color:var(--sage);margin:0 0 12px}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;margin-top:0}h1{font-size:clamp(3rem,6vw,5.6rem);margin-bottom:24px}h2{font-size:clamp(2.3rem,4vw,4rem);margin-bottom:26px}h3{font-size:1.55rem;margin-bottom:14px}.lede{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.2rem,2vw,1.55rem);max-width:650px;margin:auto;color:#55584f}.hero-image{width:100%;height:min(58vw,610px);object-fit:cover;object-position:center 53%}.section{padding:110px 0}.about{background:var(--cream)}.two-col{display:grid;grid-template-columns:minmax(300px,.85fr) 1.15fr;gap:80px;align-items:center}.portrait{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:90px 90px 0 0}.copy{max-width:610px}.copy p{font-size:1.08rem}.approach{background:var(--paper)}.approach>.wrap>h2{max-width:720px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}.card{border:1px solid #7e8178;border-radius:18px;padding:32px;background:var(--cream)}.card p{margin-bottom:0}.statement{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.8rem,3vw,2.8rem);max-width:760px;margin:70px 0 0}.couples{display:grid;grid-template-columns:1fr 1fr;min-height:720px}.couples-photo{background:url('assets/missoula-snow.jpg') center center/cover no-repeat}.couples-panel{background:var(--charcoal);color:white;display:flex;align-items:center}.couples-copy{max-width:600px;padding:80px clamp(42px,7vw,110px)}.couples-copy p{font-size:1.06rem}.light{color:#c8cbbb}.button{display:inline-block;background:var(--charcoal);color:white;text-decoration:none;padding:14px 24px;border-radius:999px;margin-top:12px}.light-button{background:white;color:var(--charcoal)}.contact{background:var(--cream)}.contact-grid{display:grid;grid-template-columns:1fr .85fr;gap:100px}.contact address{font-style:normal;margin:28px 0}.contact-card{background:var(--paper);border:1px solid var(--stone);border-radius:20px;padding:38px;align-self:start}.small{font-size:.82rem;color:#666;margin-top:18px}footer{background:var(--charcoal);color:#e9e7e0;padding:30px 0;font-size:.86rem}.footer-inner{display:flex;justify-content:space-between;gap:20px}@media(max-width:760px){.wrap{width:min(calc(100% - 36px),var(--max))}.site-header{position:static}.header-inner{min-height:112px;align-items:flex-start;flex-direction:column;padding:24px 0;gap:16px}nav{gap:18px;flex-wrap:wrap}.hero{padding-top:52px}.hero-copy{text-align:left;margin-bottom:28px}h1{font-size:2.75rem}.hero-image{height:58vw;min-height:230px}.section{padding:72px 0}.two-col,.contact-grid{grid-template-columns:1fr;gap:42px}.portrait{max-width:520px;border-radius:70px 70px 0 0}.cards{grid-template-columns:1fr;margin-top:32px}.card{padding:26px}.statement{margin-top:46px}.couples{grid-template-columns:1fr;min-height:0}.couples-photo{height:72vw;min-height:300px;background-position:center 42%}.couples-copy{padding:58px 28px}.footer-inner{flex-direction:column}.contact-grid{gap:48px}}

/* Mobile refinements */
@media(max-width:760px){
  h1{font-size:2.45rem;line-height:1.05}
  .approach h2{font-size:2.55rem;line-height:1.06}
  #approach.section{padding-top:54px}
}
@media(max-width:390px){
  h1{font-size:2.3rem}
  .approach h2{font-size:2.35rem}
}


@media(max-width:600px){
  header{
    padding-top:18px;
    padding-bottom:14px;
  }

  .portrait img{
    max-height:460px;
    object-fit:cover;
    object-position:center top;
  }
}