/* Thrash, Carroll & Sanchez Law Group. Mockup v2, Sept 2026.
   Palette from Erin's Brand Proposal 2026. Register: quiet, editorial, hairlines instead of boxes. */
:root {
  --navy: #092539;      /* header, footer, primary buttons, dark sections */
  --turq: #5FC2B9;      /* accent on navy only */
  --limestone: #F0ECE6; /* page background */
  --sand: #E6DCC8;      /* photo placeholder fill */
  --sand-tint: #EBE6DC;  /* alternating sections, a quiet step off limestone */
  --link: #279C92;      /* links on light, always underlined */
  --text: #2C2C2C;      /* body copy */
  --muted: #5A5F5C;     /* secondary text on light, 6.4:1 on limestone */
  --on-navy: #C9D3DB;   /* secondary text on navy */
  --rule: rgba(9, 37, 57, .18);
  --rule-dark: rgba(255, 255, 255, .16);
  --serif: "Noto Serif", "Georgia Pro", Georgia, serif;
  --sans: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --wrap: 74rem;
  --fs-0: clamp(1rem, .95rem + .25vw, 1.0625rem);
  --fs-1: clamp(1.125rem, 1rem + .5vw, 1.375rem);
  /* Headline sizes: 10 percent smaller than v2 */
  --fs-2: clamp(1.35rem, 1.08rem + 1.08vw, 1.9125rem);
  --fs-3: clamp(1.6875rem, 1.26rem + 1.8vw, 2.475rem);
  --fs-4: clamp(2.025rem, 1.35rem + 2.88vw, 3.15rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body { margin: 0; background: var(--limestone); color: var(--text); font: 400 var(--fs-0)/1.65 var(--sans); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-family: var(--serif); font-weight: 400; color: var(--navy); line-height: 1.12; letter-spacing: -.01em; }
h1 { font-size: var(--fs-4); text-wrap: balance; }
h2 { font-size: var(--fs-3); text-wrap: balance; }
h3 { font-size: var(--fs-1); line-height: 1.25; }
p { margin: 0 0 1.1rem; }
a { color: var(--link); text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--navy); }
:focus-visible { outline: 3px solid var(--turq); outline-offset: 3px; }
.dark :focus-visible, .site-header :focus-visible, .site-footer :focus-visible { outline-color: var(--turq); }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 1.25rem; }
.narrow { max-width: 46rem; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--turq); color: var(--navy); padding: .75rem 1rem; z-index: 100; }
.skip:focus { left: 1rem; }
.eyebrow { font: 600 .6875rem/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--link); margin: 0 0 1rem; }
.dark .eyebrow, .site-footer .eyebrow { color: var(--turq); }
.lede { font-size: var(--fs-1); line-height: 1.5; color: var(--muted); max-width: 40rem; }
.dark .lede { color: var(--on-navy); }
.rule { border: 0; border-top: 1px solid var(--rule); margin: 0; }
.tag { display: inline-block; font: 600 .6875rem/1 var(--sans); letter-spacing: .06em; color: var(--navy); border: 1px dashed var(--link); border-radius: 2px; padding: .25rem .4rem; vertical-align: middle; background: rgba(255, 255, 255, .5); }
.dark .tag { color: var(--turq); border-color: var(--turq); background: transparent; }

/* Buttons */
.btn { display: inline-block; font: 600 .9375rem/1 var(--sans); letter-spacing: .02em; text-decoration: none; padding: .9375rem 1.375rem; border: 1px solid var(--navy); border-radius: 2px; background: var(--navy); color: #fff; cursor: pointer; }
.btn:hover { background: #12384f; color: #fff; }
.btn-accent { background: var(--turq); border-color: var(--turq); color: var(--navy); }
.btn-accent:hover { background: #7ccfc8; border-color: #7ccfc8; color: var(--navy); }
.btn-ghost { background: transparent; color: var(--navy); }
.btn-ghost:hover { background: var(--navy); color: #fff; }
.dark .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, .5); }
.dark .btn-ghost:hover { background: #fff; color: var(--navy); }
.btn-lg { padding: 1.0625rem 1.625rem; font-size: 1rem; }
.cta-row { display: flex; flex-wrap: wrap; gap: .875rem 1.5rem; align-items: center; margin: 1.75rem 0 0; }
.cta-row .more { font-weight: 600; }
.more { font-weight: 600; }
.more::after { content: " \2192"; }

/* Sections */
.section { padding: 4rem 0; }
.alt { background: var(--sand-tint); }
.dark { background: var(--navy); color: #fff; }
.dark h1, .dark h2, .dark h3 { color: #fff; }
.dark a { color: #fff; }
.dark a:hover { color: var(--turq); }
.dark .rule { border-color: var(--rule-dark); }
.sec-head { margin-bottom: 2.5rem; max-width: 44rem; }
.two-col { display: grid; gap: 2.5rem; }
.split { display: grid; gap: 2.5rem; align-items: center; }
.split figure { margin: 0; }
.split img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--navy); border-bottom: 1px solid var(--rule-dark); }
.header-row { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 4.5rem; }
.brand { flex: none; }
.brand img { width: 15.6rem; }
.menu-toggle { background: none; border: 0; padding: .75rem; margin-right: -.75rem; cursor: pointer; }
.bars, .bars::before, .bars::after { display: block; width: 1.5rem; height: 2px; background: #fff; position: relative; transition: transform .2s; }
.bars::before, .bars::after { content: ""; position: absolute; left: 0; }
.bars::before { top: -7px; } .bars::after { top: 7px; }
.nav-open .bars { background: transparent; }
.nav-open .bars::before { transform: translateY(7px) rotate(45deg); }
.nav-open .bars::after { transform: translateY(-7px) rotate(-45deg); }
.site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--navy); padding: .5rem 1.25rem 1.5rem; border-bottom: 1px solid var(--rule-dark); max-height: calc(100vh - 5rem); overflow: auto; }
.nav-open .site-nav { display: block; }
.site-nav a { color: #fff; text-decoration: none; }
.site-nav li a { display: block; padding: .8125rem 0; font-weight: 500; border-bottom: 1px solid var(--rule-dark); }
.site-nav li li a { padding: .5rem 0 .5rem 1.25rem; font-size: .9375rem; color: var(--on-navy); border: 0; }
.site-nav a[aria-current], .site-nav a:hover { color: var(--turq); }
.nav-actions { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.25rem; }
.nav-actions .btn { text-align: center; }
.phone { font-weight: 600; white-space: nowrap; }

/* Hero */
.hero { padding: 3rem 0 3.5rem; }
.hero-grid { display: grid; gap: 2.5rem; }
.hero h1 { margin: 0 0 1.25rem; }
.hero .lede { margin-bottom: 0; }
.hero-photo { margin: 0; }
.hero-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.proof { font-size: .9375rem; color: var(--muted); margin: 1.5rem 0 0; max-width: 40rem; }
.fee { font-size: .9375rem; color: var(--muted); margin: 1rem 0 0; max-width: 40rem; }
.pull { margin: 2rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid var(--rule); max-width: 34rem; }
.pull p { font-family: var(--serif); font-size: var(--fs-1); line-height: 1.4; color: var(--navy); margin: 0 0 .5rem; }
.pull footer { font-size: .875rem; color: var(--muted); }

/* Credential band: navy, large numerals */
.band { padding: 3.5rem 0; }
.band ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2.5rem 1.5rem; }
.band li { padding: 0; }
.band .fig { display: block; font-family: var(--serif); font-size: clamp(3.5rem, 2.4rem + 5vw, 6rem); line-height: .95; color: var(--turq); letter-spacing: -.02em; margin-bottom: .75rem; }
.band .cap { display: block; font: 600 .75rem/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.band .stars { display: block; color: var(--turq); letter-spacing: .18em; font-size: 1rem; margin-bottom: .5rem; }
.band .sub { display: block; margin-top: .875rem; font-size: .875rem; line-height: 1.55; color: var(--on-navy); max-width: 24rem; }
.band a { color: inherit; text-decoration: none; }
.band a:hover .cap { text-decoration: underline; }
.band-inline { margin: 2rem 0; padding: 1.25rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-size: .9375rem; color: var(--muted); }
.band-inline strong { color: var(--navy); font-family: var(--serif); font-weight: 400; font-size: 1.125rem; }

/* Numbered editorial list */
.numlist li { display: grid; grid-template-columns: 3rem 1fr; gap: 0 1rem; padding: 1.5rem 0; border-top: 1px solid var(--rule); }
.numlist .n { font-family: var(--serif); font-size: 1.125rem; color: var(--link); line-height: 1.6; }
.numlist h3 { margin-bottom: .375rem; }
.numlist h3 a { color: var(--navy); text-decoration: none; }
.numlist h3 a:hover { text-decoration: underline; }
.numlist p { margin: 0; color: var(--muted); }

/* Steps */
.steps li { display: grid; grid-template-columns: 3rem 1fr; gap: 0 1rem; padding: 1.25rem 0; border-top: 1px solid var(--rule); }
.steps .n { font-family: var(--serif); font-size: var(--fs-2); color: var(--link); line-height: 1; }
.dark .steps .n, .dark .numlist .n { color: var(--turq); }
.dark .steps li, .dark .numlist li { border-color: var(--rule-dark); }
.steps h3 { margin-bottom: .25rem; }
.steps p { margin: 0; color: var(--muted); }
.dark .steps p { color: var(--on-navy); }

/* Attorneys */
.people { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem 1.25rem; }
.person img, .person .ph { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; background: var(--sand); }
.person .ph { display: grid; place-items: center; color: var(--muted); font-size: .8125rem; text-align: center; padding: 1rem; }
.person h3 { margin: 1rem 0 .125rem; }
.person h3 a { color: var(--navy); text-decoration: none; }
.person h3 a:hover { text-decoration: underline; }
.person .role { margin: 0; font-size: .9375rem; color: var(--muted); }
.person .cred { margin: .375rem 0 0; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--link); font-weight: 600; }
.person .line { margin: .5rem 0 0; font-size: .9375rem; }

/* Who we help, how we work */
.who { display: grid; gap: 0; }
.who li { padding: 1rem 0; border-top: 1px solid var(--rule); font-family: var(--serif); font-size: var(--fs-1); color: var(--navy); }
.who li:last-child { border-bottom: 1px solid var(--rule); }
.dark .who li { color: #fff; border-color: var(--rule-dark); }
.lines li { padding: 1rem 0; border-top: 1px solid var(--rule); }
.lines li:last-child { border-bottom: 1px solid var(--rule); }

/* FAQ, visible answers */
.faq > div { padding: 1.5rem 0; border-top: 1px solid var(--rule); }
.faq > div:last-child { border-bottom: 1px solid var(--rule); }
.faq h3 { margin-bottom: .625rem; }
.faq p { margin: 0 0 .5rem; color: var(--text); }
.faq p:last-child { margin: 0; }

/* Reviews */
.rating { display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem 1rem; margin-bottom: 2rem; }
.rating .fig { font-family: var(--serif); font-size: var(--fs-3); color: var(--navy); line-height: 1; }
.stars { color: var(--link); letter-spacing: .12em; font-size: 1.125rem; }
.quotes { display: grid; gap: 0; }
.quotes li { padding: 1.5rem 0; border-top: 1px solid var(--rule); }
.quotes blockquote { margin: 0; }
.quotes p { font-family: var(--serif); font-size: 1.125rem; line-height: 1.5; color: var(--navy); }
.quotes footer { font-size: .875rem; color: var(--muted); }

/* Blog lists */
.posts li { padding: 1.5rem 0; border-top: 1px solid var(--rule); }
.posts li:last-child { border-bottom: 1px solid var(--rule); }
.posts .meta, .meta { font-size: .8125rem; letter-spacing: .04em; color: var(--muted); margin: 0 0 .5rem; }
.posts h3 a { color: var(--navy); text-decoration: none; }
.posts h3 a:hover { text-decoration: underline; }
.posts .ex { margin: .5rem 0 0; color: var(--muted); }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.chip { font: 600 .8125rem/1 var(--sans); letter-spacing: .04em; color: var(--navy); background: transparent; border: 1px solid var(--navy); border-radius: 2px; padding: .625rem .875rem; cursor: pointer; text-decoration: none; }
.chip.is-on, .chip:hover { background: var(--navy); color: #fff; }
.count { font-size: .875rem; color: var(--muted); margin-bottom: .5rem; }
[hidden] { display: none !important; }

/* Closing CTA and service areas */
.cta-block { padding: 4rem 0; }
.cta-block .wrap { max-width: 50rem; }
.cta-inline { margin: 2.5rem 0; padding: 2rem 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.cta-inline h2 { font-size: var(--fs-2); margin-bottom: .75rem; }
.cta-inline p { max-width: 40rem; }
.areas-strip { padding: 2rem 0; border-top: 1px solid var(--rule); font-size: .9375rem; color: var(--muted); }
.areas-strip p { margin: 0; }

/* Inner page head */
.page-head { padding: 3rem 0 3.5rem; }
.page-head .lede { margin: 1rem 0 0; }
.page-head.has-photo { padding-top: 0; }
.banner { margin: 0 0 2.5rem; }
.banner img { width: 100%; height: auto; aspect-ratio: 16 / 6; object-fit: cover; }
.crumbs { font-size: .8125rem; margin: 0 0 1.5rem; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.crumbs li + li::before { content: "/"; margin-right: .5rem; color: var(--muted); }
.crumbs a { color: var(--muted); }
.crumbs li:last-child a { color: var(--navy); text-decoration: none; }
.dark .crumbs a, .dark .crumbs li + li::before { color: var(--on-navy); }
.dark .crumbs li:last-child a { color: #fff; }
.byline { font-size: .875rem; color: var(--muted); margin: 1.25rem 0 0; }
.answer { font-family: var(--serif); font-size: var(--fs-1); line-height: 1.5; color: var(--navy); max-width: 40rem; }

/* Prose */
.prose { max-width: 46rem; }
.prose h2 { font-size: var(--fs-2); margin: 2.5rem 0 1rem; }
.prose h2:first-child { margin-top: 0; }
.prose h3, .prose h4 { margin: 1.75rem 0 .5rem; }
.prose ul, .prose ol { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.prose ul { list-style: disc; } .prose ol { list-style: decimal; }
.prose li { margin-bottom: .5rem; }
.prose img { margin: 1.5rem 0; }
.prose table, .table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: .9375rem; }
.prose th, .prose td, .table th, .table td { text-align: left; vertical-align: top; padding: .875rem .75rem .875rem 0; border-top: 1px solid var(--rule); }
.table th { font: 600 .6875rem/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); border-top: 0; }
.table tr:last-child td { border-bottom: 1px solid var(--rule); }
.table-wrap { overflow-x: auto; }
.layout-side { display: grid; gap: 3rem; }
.side { align-self: start; }
.side h2 { font-size: 1.125rem; margin-bottom: .75rem; }
.side ul li { border-top: 1px solid var(--rule); }
.side ul li:last-child { border-bottom: 1px solid var(--rule); }
.side ul a { display: block; padding: .625rem 0; text-decoration: none; color: var(--navy); }
.side ul a[aria-current] { font-weight: 600; }
.side ul a:hover { text-decoration: underline; }
.side .btn { margin-top: 1.25rem; }
.bio { display: grid; gap: 2rem; align-items: start; }
.bio img { width: 100%; max-width: 18rem; aspect-ratio: 3 / 4; object-fit: cover; object-position: top; }
.link-list li { padding: .75rem 0; border-top: 1px solid var(--rule); }
.link-list li:last-child { border-bottom: 1px solid var(--rule); }
.link-list a { font-weight: 600; }
.link-list span { display: block; font-size: .9375rem; color: var(--muted); margin-top: .25rem; }
.wb li { display: grid; gap: .75rem; padding: 1.5rem 0; border-top: 1px solid var(--rule); }
.wb li:last-child { border-bottom: 1px solid var(--rule); }
.wb p { margin: 0; color: var(--muted); }
.strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.strip img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.strip li:nth-child(n+4) { display: none; }

/* Forms */
.form label { display: block; font-weight: 600; font-size: .9375rem; margin: 1.125rem 0 .375rem; color: var(--navy); }
.form input, .form select, .form textarea { width: 100%; font: inherit; color: var(--text); padding: .75rem .875rem; background: #fff; border: 1px solid #7b8380; border-radius: 2px; }
.form .btn { margin-top: 1.5rem; }
.form .hp { display: none; }
.fine { font-size: .875rem; color: var(--muted); margin-top: 1rem; }
.next { margin-top: 2.5rem; }
.slot { margin-top: 2rem; padding: 1.5rem; border: 1px dashed var(--rule); border-radius: 2px; color: var(--muted); font-size: .9375rem; }
.slot strong { color: var(--navy); display: block; margin-bottom: .25rem; }
.contact-grid { display: grid; gap: 3rem; }
.aside-note { padding-top: .5rem; }
.news label { display: block; font-size: .875rem; font-weight: 500; color: #fff; margin: .75rem 0 .375rem; }
.news input { width: 100%; font: inherit; padding: .7rem .875rem; border: 1px solid #4d6478; border-radius: 2px; background: #0f3149; color: #fff; }
.news .btn { margin-top: 1rem; width: 100%; }

/* Footer */
.site-footer { background: var(--navy); color: var(--on-navy); padding: 3.5rem 0 2rem; border-top: 3px solid var(--turq); font-size: .9375rem; }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--turq); }
.foot-grid { display: grid; gap: 2.5rem; }
.foot-logo { width: 11rem; margin-bottom: 1.25rem; }
.site-footer address { font-style: normal; margin-bottom: 1rem; }
.foot-h { font: 600 .6875rem/1 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--turq); margin: 0 0 .75rem; }
.foot-h ~ .foot-h { margin-top: 1.5rem; }
.foot-nav li { padding: .25rem 0; }
.foot-nav a { text-decoration: none; }
.foot-nav a:hover { text-decoration: underline; }
.social { display: flex; gap: 1.25rem; margin-top: 1rem; }
.social a { text-decoration: none; font-size: .875rem; letter-spacing: .04em; }
.legal { border-top: 1px solid var(--rule-dark); margin-top: 3rem; padding-top: 1.5rem; font-size: .8125rem; }
.legal p { max-width: 60rem; margin-bottom: .5rem; }
.legal .links a { margin-right: 1.25rem; }

/* Motion */
.fade { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
.fade.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .fade { opacity: 1; transform: none; transition: none; } html { scroll-behavior: auto; } }

/* Tablet */
@media (min-width: 640px) {
  .wrap { padding: 0 2rem; }
  .people { grid-template-columns: repeat(3, 1fr); }
  .band ul { grid-template-columns: repeat(4, 1fr); }
  .who { grid-template-columns: repeat(2, 1fr); gap: 0 3rem; }
  .who li:nth-last-child(2) { border-bottom: 1px solid var(--rule); }
  .strip { grid-template-columns: repeat(5, 1fr); }
  .strip li:nth-child(n+4) { display: block; }
  .news .btn { width: auto; }
  .wb li { grid-template-columns: 1fr auto; align-items: center; }
}

/* Desktop */
@media (min-width: 960px) {
  .section { padding: 5.5rem 0; }
  .hero { padding: 4.5rem 0 5rem; }
  .hero-grid { grid-template-columns: 1.05fr .95fr; gap: 4rem; align-items: center; }
  .hero-photo img { aspect-ratio: 4 / 5; }
  .two-col { grid-template-columns: 1fr 2fr; gap: 4rem; }
  .split { grid-template-columns: 1fr 1fr; gap: 4rem; }
  .split.rev figure { order: 2; }
  .people { grid-template-columns: repeat(4, 1fr); gap: 2.5rem 1.5rem; }
  .quotes { grid-template-columns: repeat(3, 1fr); gap: 0 2.5rem; }
  .quotes li { border-top: 1px solid var(--rule); }
  .steps li { grid-template-columns: 4rem 1fr; }
  .layout-side { grid-template-columns: minmax(0, 1fr) 18rem; gap: 5rem; }
  .bio { grid-template-columns: 18rem 1fr; gap: 3rem; }
  .contact-grid { grid-template-columns: 1.1fr .9fr; gap: 5rem; }
  .foot-grid { grid-template-columns: 1.3fr 1fr .9fr 1.2fr; gap: 3rem; }
  .page-head { padding: 4rem 0 4.5rem; }
  .cta-block { padding: 5.5rem 0; }
  .numlist li { grid-template-columns: 4rem 1fr 1fr; }
  .numlist li p { grid-column: 3; }
  .numlist li h3 { grid-column: 2; }
}

/* Wide header: inline nav with hover dropdowns */
@media (min-width: 1180px) {
  .site-header .wrap { max-width: 84rem; }
  .brand img { width: 15rem; }
  .menu-toggle { display: none; }
  .site-nav, .nav-open .site-nav { display: flex; align-items: center; justify-content: flex-end; flex: 1; gap: 1.5rem; position: static; padding: 0; border: 0; background: none; overflow: visible; max-height: none; }
  .site-nav > ul { display: flex; gap: 1.375rem; }
  .site-nav li { position: relative; }
  .site-nav li a { padding: .5rem 0; border: 0; font-size: .9375rem; white-space: nowrap; }
  .has-sub > a::after { content: "\25BE"; font-size: .7em; margin-left: .3em; }
  .site-nav li ul { display: none; position: absolute; top: 100%; left: -1rem; min-width: 15rem; background: var(--navy); border: 1px solid var(--rule-dark); border-top: 2px solid var(--turq); padding: .5rem 1rem; z-index: 60; }
  .site-nav li:hover > ul, .site-nav li:focus-within > ul { display: block; }
  .site-nav li li a { padding: .5rem 0; color: #fff; }
  .nav-actions { flex-direction: row; align-items: center; gap: 1.25rem; margin: 0 0 0 .5rem; padding-left: 1.5rem; border-left: 1px solid var(--rule-dark); }
  .nav-actions .btn { padding: .75rem 1rem; font-size: .875rem; white-space: nowrap; }
}
@media (min-width: 1180px) and (max-width: 1379px) { .phone { display: none; } }

/* Full width banner hero */
.hero-banner { position: relative; background: var(--navy); overflow: hidden; }
.hero-banner .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 66% 50%; }
.hero-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,37,57,.62) 0%, rgba(9,37,57,.86) 100%); }
.hero-inner { position: relative; z-index: 1; padding-top: 3.5rem; padding-bottom: 3.25rem; }
.hero-banner h1 { margin: 0 0 1.125rem; max-width: 20ch; }
.hero-banner .lede { color: var(--on-navy); max-width: 34rem; margin: 0; }
.hero-banner .cta-row { margin-top: 2rem; }
.hero-note { background: #fff; }
.hero-note .wrap { padding-top: 1.75rem; padding-bottom: 1.75rem; display: grid; gap: .75rem; }
.hero-note p { margin: 0; max-width: 42rem; }
@media (min-width: 60rem) {
  .hero-inner { padding-top: 7rem; padding-bottom: 6.5rem; }
  .hero-banner h1 { max-width: 17ch; }
  .hero-banner .hero-bg { object-position: 50% 55%; }
  .hero-banner::after { background: linear-gradient(90deg, rgba(9,37,57,.93) 0%, rgba(9,37,57,.84) 30%, rgba(9,37,57,.5) 46%, rgba(9,37,57,.14) 60%, rgba(9,37,57,.04) 100%); }

}

/* Home rhythm: fewer rules, more contrast between sections */
.steps.plain { margin-top: 1.5rem; }
.steps.plain li { border: 0; padding: .875rem 0; grid-template-columns: 3.5rem 1fr; }
.steps.plain .n { font-size: var(--fs-3); }
.who-grid { display: grid; gap: 1.75rem 2.5rem; }
.who-grid li { font-family: var(--serif); font-size: var(--fs-1); line-height: 1.3; color: var(--navy); }
.who-grid .n { display: block; font-size: .8125rem; letter-spacing: .2em; color: var(--link); font-family: var(--sans); margin-bottom: .5rem; }
.serif-copy p:not(.eyebrow) { font-family: var(--serif); font-size: var(--fs-1); line-height: 1.5; color: var(--navy); margin: 1.25rem 0 0; }
.rating .eyebrow { width: 100%; margin-bottom: .25rem; }
.quotes.open { gap: 2.5rem; }
.quotes.open li { border: 0; padding: 0; }
.quotes.open blockquote::before { content: "\201C"; display: block; font-family: var(--serif); font-size: 4rem; line-height: .6; color: var(--link); margin-bottom: 1rem; }
.posts.cols { display: grid; gap: 2rem; }
.posts.cols li, .posts.cols li:last-child { border: 0; padding: 0; }
.posts.cols h3 { font-size: var(--fs-2); line-height: 1.2; }
@media (min-width: 640px) { .who-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .who-grid { grid-template-columns: repeat(3, 1fr); gap: 2.5rem 3rem; } .posts.cols { grid-template-columns: repeat(3, 1fr); gap: 3rem; } .quotes.open { gap: 3rem; } }
.person .initials { font-family: var(--serif); font-size: var(--fs-3); color: var(--navy); }
.people.three { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 640px) { .people.three { grid-template-columns: repeat(3, 1fr); max-width: 60rem; } }
@media (min-width: 960px) { .band ul { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem 3rem; } .band { padding: 4.5rem 0; } }
.cta-note { margin: 1.75rem 0 0; font-size: .9375rem; color: var(--on-navy); max-width: 38rem; }
@media (max-width: 959px) { .numlist li h3, .numlist li p { grid-column: 2; } }

/* Calmer color: accent color only on small marks, never on large type */
.band .fig { color: #fff; }
.band .stars { color: var(--on-navy); }
.numlist .n, .who-grid .n { color: var(--muted); }
.steps .n { color: var(--navy); }
.dark .steps .n, .dark .numlist .n { color: var(--on-navy); }
.quotes.open blockquote::before { color: #b9b3a6; }
.rating .stars { color: var(--navy); }
.eyebrow { color: var(--muted); }
.dark .eyebrow, .site-footer .eyebrow, .hero-banner .eyebrow { color: var(--turq); }
.numlist h3 a:hover, .posts h3 a:hover { color: var(--link); }

/* Stats band on white so the hero is the only dark block at the top */
.band { background: #fff; padding: 3rem 0; }
.band .fig { color: var(--navy); }
.band .cap { color: var(--navy); }
.band .stars { color: var(--navy); }
.band .sub { color: var(--muted); }
@media (min-width: 960px) { .band { padding: 3.5rem 0; } }
@media (min-width: 960px) { .band ul { grid-template-columns: repeat(4, 1fr); } }

/* Symmetry pass: centered axis, equal columns */
.sec-head { margin-left: auto; margin-right: auto; text-align: center; }
.section .wrap > p, .section .wrap.narrow > p { text-align: center; }
.page-head { text-align: center; }
.page-head .crumbs ol { justify-content: center; }
.page-head .lede { margin-left: auto; margin-right: auto; }
.page-head .byline { text-align: center; }
.hero-inner { text-align: center; }
.hero-banner h1, .hero-banner .lede { margin-left: auto; margin-right: auto; max-width: 22ch; }
.hero-banner .lede { max-width: 36rem; }
.hero-banner .cta-row { justify-content: center; }
.hero-banner::after { background: linear-gradient(180deg, rgba(9,37,57,.72) 0%, rgba(9,37,57,.84) 100%) !important; }
.band ul { grid-template-columns: repeat(2, 1fr); text-align: center; }
@media (min-width: 960px) { .band ul { grid-template-columns: repeat(4, 1fr) !important; } }
.band .fig, .band .cap { text-align: center; }
.people { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem 1.25rem; text-align: center; }
.people > li { flex: 0 0 calc(50% - .625rem); }
.people .role, .people .cred, .people .line { text-align: center; }
.people.three { max-width: none; }
@media (min-width: 640px) { .people > li { flex-basis: calc(33.333% - .84rem); } .people.three > li { flex-basis: calc(33.333% - .84rem); } }
@media (min-width: 960px) { .people { gap: 2.5rem 1.5rem; } .people > li { flex-basis: calc(25% - 1.125rem); } .people.three > li { flex-basis: calc(33.333% - 1rem); } }
.who-grid, .quotes.open, .posts.cols { text-align: center; }
.quotes.open blockquote::before { margin-left: auto; margin-right: auto; }
.rating { justify-content: center; text-align: center; }
.rating .eyebrow { text-align: center; }
.cta-block .wrap { text-align: center; }
.cta-block .cta-row { justify-content: center; }
.cta-block .lede, .cta-note { margin-left: auto; margin-right: auto; }
.split { align-items: center; }
@media (min-width: 960px) { .foot-grid { grid-template-columns: repeat(4, 1fr) !important; } }
.filters { justify-content: center; }
/* Symmetry pass 2: stacked, centered lists and split text */
.numlist li { display: block !important; text-align: center; padding: 1.75rem 0; }
.numlist li h3, .numlist li p { grid-column: auto !important; }
.numlist .n { display: block; margin-bottom: .375rem; }
.numlist p { max-width: 34rem; margin: .5rem auto 0; }
.split > div:not(.serif-copy) , .serif-copy { text-align: center; }
.split .serif-copy p:not(.eyebrow) { margin-left: auto; margin-right: auto; max-width: 30rem; }
.steps.plain li { display: block !important; text-align: center; padding: 1rem 0; }
.steps.plain .n { display: block; margin-bottom: .25rem; }
.steps.plain p { max-width: 30rem; margin: 0 auto; }
.split .more { display: inline-block; margin-top: 1rem; }
.who-grid { justify-items: center; }
.post-row, .posts li { text-align: inherit; }
.posts.cols li { text-align: center; }
.site-footer .foot-grid > * { text-align: left; }
@media (max-width: 639px) { .people > li { flex-basis: calc(50% - .625rem); } .who-grid { grid-template-columns: 1fr; } }
@media (max-width: 639px) { .people.three > li { flex-basis: 100%; } .people.three img { max-width: 15rem; margin: 0 auto; } }

/* Section rhythm: alignment varies deliberately, not at random */
.section.align-left .sec-head { margin-left: 0; margin-right: auto; text-align: left; }
.section.align-left .who-grid,
.section.align-left .posts.cols,
.section.align-left .posts.cols li { text-align: left; }
.section.align-left .who-grid { justify-items: stretch; }
.section.align-left .steps.plain li { text-align: left; }
.section.align-left .steps.plain p { margin-left: 0; }

/* Is this you: horizontal dividers back between the rows */
.who-grid { gap: 0 2.5rem; }
.who-grid li { border-top: 1px solid var(--rule); padding: 1.25rem 0; }
@media (min-width: 960px) { .who-grid { gap: 0 3rem; } }

/* A real division where Reviews ends and the blog begins */
.divide-top { border-top: 1px solid var(--rule); }

/* The white tone was referenced in the markup but never defined */
.section.white { background: #fff; }

/* Left-aligned sections opt out of the centered axis */
.section.align-left .sec-head { margin-left: 0; margin-right: auto; text-align: left; }
.section.align-left .wrap > p { text-align: left; }
.section.align-left .numlist li { text-align: left; }
.section.align-left .numlist p { margin-left: 0; margin-right: 0; }
.section.align-left .numlist .n { margin-bottom: .25rem; }
.section.align-left .split > div:not(.serif-copy),
.section.align-left .serif-copy { text-align: left; }
.section.align-left .split .serif-copy p:not(.eyebrow) { margin-left: 0; margin-right: 0; }
.section.align-left .steps.plain li { text-align: left; }
.section.align-left .steps.plain p { margin-left: 0; margin-right: 0; }
.section.align-left .who-grid,
.section.align-left .posts.cols,
.section.align-left .posts.cols li { text-align: left; }
.section.align-left .who-grid { justify-items: stretch; }
.section.align-left .split .more { margin-left: 0; }

/* Stats band: copy 20 percent smaller */
.band .fig { font-size: clamp(2.8rem, 1.92rem + 4vw, 4.8rem); margin-bottom: .6rem; }
.band .cap { font-size: .6rem; }
.band .stars { font-size: .8rem; }
.band .sub { font-size: .7rem; }

/* Areas of practice: tighter rows, number / title / line on one row on desktop */
.section .numlist li { padding: 1.125rem 0; }
.section .numlist .n { margin-bottom: .125rem; }
.section .numlist h3 { margin-bottom: .25rem; }
.section .numlist p { margin-top: .25rem; }
@media (min-width: 960px) {
  .section.align-left .numlist li { display: grid !important; grid-template-columns: 3.5rem minmax(0, 1fr) minmax(0, 1.5fr); gap: 0 2rem; align-items: baseline; padding: 1.125rem 0; }
  .section.align-left .numlist li h3 { grid-column: 2 !important; margin: 0; }
  .section.align-left .numlist li p { grid-column: 3 !important; margin: 0; max-width: none; }
  .section.align-left .numlist .n { margin: 0; }
}

/* How it works: no photo, three steps across */
.steps-row { display: grid; gap: 1.25rem 3rem; margin-top: 2rem; }
@media (min-width: 960px) { .steps-row { grid-template-columns: repeat(3, 1fr); } }

/* Interior page heads: local photography behind the title */
.page-head.photo-bg { position: relative; overflow: hidden; background: var(--navy); color: #fff; padding: 4.5rem 0 4rem; }
.page-head.photo-bg > .ph-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.page-head.photo-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,37,57,.5) 0%, rgba(9,37,57,.8) 100%); }
.page-head.photo-bg > .wrap { position: relative; z-index: 1; }
.page-head.photo-bg h1 { color: #fff; }
.page-head.photo-bg .eyebrow { color: var(--turq); }
.page-head.photo-bg .lede, .page-head.photo-bg .byline, .page-head.photo-bg .meta { color: var(--on-navy); }
.page-head.photo-bg a { color: #fff; }
.page-head.photo-bg .crumbs a, .page-head.photo-bg .crumbs li + li::before { color: var(--on-navy); }
.page-head.photo-bg .crumbs li:last-child a { color: #fff; }
.page-head.photo-bg .tag { color: var(--turq); border-color: var(--turq); background: transparent; }
@media (min-width: 960px) { .page-head.photo-bg { padding: 6.5rem 0 6rem; } }

/* Homepage attorneys: smaller cards on a narrower centered row */
.section .people.three { max-width: 50rem; margin-left: auto; margin-right: auto; }

/* Homepage blog: smaller titles, left aligned, each post in its own box */
.section .posts.cols li, .section .posts.cols li:last-child { text-align: left; background: #fff; border: 1px solid var(--rule); padding: 1.5rem 1.5rem 1.75rem; }
.section .posts.cols h3 { font-size: 1.25rem; line-height: 1.3; }
.section .posts.cols .meta { margin-bottom: .625rem; }

/* Our Team page: three people per row */
@media (min-width: 640px) { .people.team-3 > li { flex-basis: calc(50% - .625rem); } }
@media (min-width: 900px) { .people.team-3 > li { flex-basis: calc(33.333% - 1rem); } }

/* Less dead space between a page title and the first section, site wide */
.page-head + .section { padding-top: 2.75rem; }
@media (min-width: 960px) { .page-head + .section { padding-top: 3.5rem; } }

/* Our Team: real headings for the two groups */
.team-h { font-size: var(--fs-3); text-align: center; margin: 0 0 2rem; }
.section.alt .team-h { margin-top: 0; }

/* Consultation block at the foot of every page: office exterior under a navy overlay */
.cta-block.dark { background: linear-gradient(180deg, rgba(9,37,57,.84) 0%, rgba(9,37,57,.92) 100%), url("images/photos/oaks-1200.webp") center 40% / cover no-repeat; }
@media (min-width: 960px) { .cta-block.dark { background: linear-gradient(180deg, rgba(9,37,57,.84) 0%, rgba(9,37,57,.92) 100%), url("images/photos/oaks-1788.webp") center 40% / cover no-repeat; } }

/* Numbered lists: no rule above the first item */
.numlist li:first-child { border-top: 0; }

/* Homepage reviews: four quotes in a 2 x 2, slightly smaller */
.quotes.quotes-4 p { font-size: 1rem; line-height: 1.55; }
.quotes.quotes-4 blockquote::before { font-size: 3rem; margin-bottom: .5rem; }
@media (min-width: 960px) { .quotes.quotes-4 { grid-template-columns: repeat(2, 1fr) !important; gap: 2.5rem 4rem; max-width: 60rem; margin-left: auto; margin-right: auto; } }

/* Practice areas: switcher under the page title */
.area-tabs { background: #fff; border-bottom: 1px solid var(--rule); }
.area-tabs ul { display: flex; gap: .25rem; overflow-x: auto; scrollbar-width: none; margin: 0; padding: 0; }
.area-tabs ul::-webkit-scrollbar { display: none; }
.area-tabs li { flex: 0 0 auto; }
.area-tabs a { display: block; padding: 1.1rem .9rem 1rem; font: 600 .8125rem/1 var(--sans); letter-spacing: .03em; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; }
.area-tabs a:hover { color: var(--navy); }
.area-tabs a[aria-current="page"] { color: var(--navy); border-bottom-color: var(--link); }
@media (min-width: 1100px) { .area-tabs ul { justify-content: center; } }
.area-tabs + .section { padding-top: 3rem; }
@media (min-width: 960px) { .layout-side > .side { position: sticky; top: 6rem; } }
.side .all-areas { display: block; margin-top: 1rem; font-size: .875rem; }
.area-pager { display: grid; gap: 1rem; margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--rule); }
@media (min-width: 640px) { .area-pager { grid-template-columns: 1fr 1fr; } }
.area-pager a { display: block; padding: 1.25rem 1.5rem; background: #fff; border: 1px solid var(--rule); text-decoration: none; color: var(--navy); font-family: var(--serif); font-size: 1.125rem; text-align: left; }
.area-pager a span { display: block; font: 600 .6875rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--link); margin-bottom: .5rem; }
.area-pager .next { text-align: right; }
.area-pager a:hover { border-color: var(--link); }

/* Practice area pages: more air, fewer boxes */
.area-body { padding-top: .5rem; }
@media (min-width: 960px) { .area-body { grid-template-columns: minmax(0, 40rem) 15rem; justify-content: space-between; gap: 6rem; } }
.area-body .answer { font-family: var(--serif); font-size: var(--fs-1); line-height: 1.55; color: var(--navy); margin: 0 0 3rem; padding-left: 1.25rem; border-left: 2px solid var(--link); }
.area-body .prose { line-height: 1.75; }
.area-body .prose h2 { font-size: var(--fs-2); margin: 3.25rem 0 1rem; }
.area-body .prose h2:first-child { margin-top: 0; }
.area-body .prose p { margin-bottom: 1.25rem; }
.area-body .side h2 { font: 600 .6875rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); margin-bottom: .75rem; }
.area-body .side ul li, .area-body .side ul li:last-child { border: 0; }
.area-body .side ul a { padding: .375rem 0 .375rem .875rem; border-left: 1px solid var(--rule); font-size: .9375rem; color: var(--muted); }
.area-body .side ul a:hover { color: var(--navy); border-left-color: var(--link); text-decoration: none; }
.area-body .side .btn { margin-top: 2rem; display: block; text-align: center; }
.area-body .area-pager { margin-top: 4rem; padding-top: 1.75rem; gap: 2rem; }
.area-body .area-pager a { background: none; border: 0; padding: 0; font-size: 1.25rem; }
.area-body .area-pager a:hover { color: var(--link); }
.area-body .area-pager a:hover span { color: var(--navy); }

.area-body .area-pager { display: flex; justify-content: space-between; align-items: flex-start; }

/* Contact: photo beside the form, solid navy page head */
.aside-photo { margin: 0 0 2rem; }
.aside-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.page-head.dark { padding: 4rem 0 3.5rem; }
.page-head.dark h1 { color: #fff; }
.page-head.dark .lede { color: var(--on-navy); }

/* Certifications and memberships strip */
.creds-strip { text-align: center; }
.section.creds-strip { padding-top: 3rem; padding-bottom: 3rem; }
div.creds-strip { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid rgba(9, 37, 57, .12); }
.creds { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2rem 3.5rem; }
.creds li { margin: 0; }
.creds img { display: block; height: auto; width: auto; max-width: 100%; max-height: 5.5rem; }
@media (max-width: 600px) { .creds { gap: 1.75rem; } .creds img { max-height: 4.25rem; } }
/* Founding partners photo */
.partners figcaption, .team-partners figcaption { font: 400 .8125rem/1.4 var(--sans); color: var(--text); opacity: .75; margin-top: .6rem; }
.team-partners { margin: 0 0 3.5rem; }
.team-partners img { width: 100%; height: auto; aspect-ratio: 16 / 8; object-fit: cover; object-position: 50% 30%; display: block; }

/* TBLS badge, certified attorneys only */
.bio .bio-badge { margin-top: 2rem; }
.bio .bio-badge img { width: 100%; max-width: 15rem; height: auto; aspect-ratio: auto; object-fit: contain; display: block; }

/* Card grids: practice areas and testimonials */
.cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
.cards > li { margin: 0; }
.area-cards > li, .quote-cards > li { background: #fff; border: 1px solid var(--rule); border-radius: 2px; padding: 1.5rem 1.5rem 1.25rem; }
.area-cards article { display: block; }
.area-cards .ic { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 2px; background: rgba(95, 194, 185, .18); color: var(--navy); margin-bottom: 1rem; }
.area-cards h3 { margin: 0 0 .375rem; font-size: var(--fs-1); }
.area-cards h3 a { color: var(--navy); text-decoration: none; }
.area-cards h3 a:hover { text-decoration: underline; }
.area-cards p { margin: 0; color: var(--muted); }
.area-cards .card-more { margin-top: 1rem; }
.quote-cards > li { padding: 1.5rem; border-top: 1px solid var(--rule); }
.quote-cards blockquote { display: flex; flex-direction: column; height: 100%; }
.quote-cards p { font-size: 1rem; }
.quote-cards footer { margin-top: auto; padding-top: 1rem; }
@media (min-width: 640px) { .cards { gap: 1.5rem; } .area-cards, .quote-cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .area-cards { grid-template-columns: repeat(3, 1fr); } .quote-cards { grid-template-columns: repeat(2, 1fr); } }

/* Band: one stat reads caption first, "Serving Lake Travis since 2004" */
.band li.stat-flip .cap { margin-bottom: .75rem; }
.band li.stat-flip .fig { margin-bottom: 0; }
/* Facebook page feed */
.fb-feed { max-width: 34rem; }
.fb-feed iframe { width: 100%; max-width: 100%; display: block; background: #fff; }
.fb-alt { margin-top: 1.5rem; }

/* Sept 23 pass: one type system, one tone sequence */

/* Type pairing: Noto Serif for headings, quotes and short list items; DM Sans for all running copy */
.serif-copy p:not(.eyebrow) { font-family: var(--sans); font-size: var(--fs-0); line-height: 1.65; color: var(--text); margin: 1rem 0 0; }
.serif-copy h2 { margin-bottom: .25rem; }
.serif-copy .cta-row { margin-top: 1.75rem; }
.sec-head .lede { margin: 1rem auto 0; }
.section.align-left .sec-head .lede { margin-left: 0; }
.area-cards h3, .posts.cols h3, .section .posts.cols h3, .person h3 { font-size: var(--fs-1); line-height: 1.3; }
.who-grid li { font-size: var(--fs-1); }
.quote-cards p, .quotes.quotes-4 p { font-family: var(--serif); font-size: 1rem; line-height: 1.6; }

/* Stats band: readable captions, hairline dividers matching Who we help */
.band .fig { font-size: clamp(2.5rem, 1.9rem + 3vw, 4rem); margin-bottom: .625rem; }
.band .cap { font-size: .6875rem; letter-spacing: .18em; }
.band ul { gap: 2rem 0; }
.band li { padding: 0 1rem; }
.band li:nth-child(even) { border-left: 1px solid var(--rule); }
@media (min-width: 960px) {
  .band ul { gap: 0; }
  .band li + li { border-left: 1px solid var(--rule); }
}

/* Testimonials: heading above the rating line */
.alt .rating { margin-top: -1rem; }
.rating .fig { font-size: var(--fs-2); }

/* Who we help: family photo behind a navy overlay */
.photo-section { position: relative; overflow: hidden; }
.photo-section > .section-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 36%; }
.photo-section::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,37,57,.84) 0%, rgba(9,37,57,.92) 100%); }
.photo-section > .wrap { position: relative; z-index: 1; }
.dark .who-grid li { color: #fff; border-top-color: var(--rule-dark); }

/* Contact: Facebook feed centered under the form */
.fb-section .fb-feed { margin: 0 auto; }
.fb-section .fb-alt { text-align: center; }

/* Site palette: navy, limestone, white. .alt now uses the page limestone so the homepage matches inner pages */
.alt { background: var(--limestone); }
.photo-section::after { background: linear-gradient(180deg, rgba(9,37,57,.8) 0%, rgba(9,37,57,.9) 100%); }
.cta-block h2 { margin-bottom: 1rem; }

/* Section buttons: navy, sitting under the section content */
.btn-row { margin-top: 2.5rem; justify-content: center; }
.section.align-left .btn-row { justify-content: flex-start; }

/* Footer newsletter: submit reads as an underlined link, not a button */
.news .btn, .news .btn:hover { width: auto; margin-top: 1rem; padding: 0; background: none; border: 0; color: #fff; font: 600 .9375rem/1.4 var(--sans); letter-spacing: 0; text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }
.news .btn:hover { color: var(--turq); }
.news .btn::after { content: " \2192"; }

/* 2026-09-24: Spicewood portrait figure + Hill Country photo band */
.figure-portrait img { aspect-ratio: 4 / 5; width: 100%; height: auto; object-fit: cover; object-position: 50% 60%; }
@media (min-width: 960px) { .figure-portrait { max-width: 30rem; justify-self: center; } }
.photo-band { position: relative; height: 15rem; overflow: hidden; background: var(--navy); }
.photo-band img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.photo-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,37,57,.12) 0%, rgba(9,37,57,.28) 100%); }
@media (min-width: 960px) { .photo-band { height: 22rem; } }

/* 2026-09-24 pm: daylight photography in place of the three sunsets */
.figure-portrait img { object-position: 24% 50%; }
.photo-band img { object-position: 50% 65%; }
.photo-band::after { background: linear-gradient(180deg, rgba(9,37,57,0) 0%, rgba(9,37,57,.18) 100%); }
.photo-section > .section-bg { object-position: 50% 45%; }
.photo-section::after { background: linear-gradient(180deg, rgba(9,37,57,.78) 0%, rgba(9,37,57,.9) 100%); }

/* Touch targets: 44px minimum on phones */
@media (max-width: 1179px) { .menu-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; } }
.news .btn, .news .btn:hover { padding: .75rem 0; margin-top: .25rem; }
@media (max-width: 959px) { .chip { min-height: 2.75rem; } }

/* Practice cards: whole card is the link; compact icon-beside-title layout on phones */
.area-cards article { position: relative; }
.area-cards h3 a::after { content: ""; position: absolute; inset: 0; }
.area-cards > li:hover { border-color: var(--link); }
@media (max-width: 639px) {
  .area-cards > li { padding: 1.125rem 1.25rem; }
  .area-cards article { display: grid; grid-template-columns: 2.25rem 1fr; gap: .25rem .875rem; align-items: start; }
  .area-cards .ic { margin: 0; grid-row: span 2; }
  .area-cards h3 { margin: .375rem 0 0; }
  .area-cards .card-more { display: none; }
}

/* 2026-09-24: homepage ideas 1, 2, 3, 5 and team page pull quote */

/* Tone sequence on the homepage: navy, limestone, white, limestone, photo, white, navy, limestone, white, navy */
.band { background: var(--limestone); }

/* 1. Credential badges inside the stats band, under a hairline */
.creds-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.25rem 2rem; margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--rule); }
.creds-row img { height: 2.5rem; width: auto; }
.creds-row img.tall { height: 3.25rem; }
@media (min-width: 640px) { .creds-row { gap: 1.5rem 3.5rem; } .creds-row img { height: 3.25rem; } .creds-row img.tall { height: 4.25rem; } }

/* 2. Call bar pinned to the bottom of phones */
.callbar { display: none; }
@media (max-width: 959px) {
  .has-callbar .callbar { display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: var(--navy); border-top: 1px solid var(--rule-dark); box-shadow: 0 -4px 16px rgba(0, 0, 0, .18); padding-bottom: env(safe-area-inset-bottom); }
  .callbar a { display: flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3.5rem; font: 600 .9375rem/1 var(--sans); text-decoration: none; color: #fff; }
  .callbar a + a { background: var(--turq); color: var(--navy); }
  .has-callbar { padding-bottom: 3.5rem; }
  .nav-open .callbar { display: none; }
}

/* 3. Office card beside the closing call to action */
.cta-block.office .wrap { max-width: var(--wrap); display: grid; gap: 2.5rem; align-items: center; text-align: left; }
.cta-block.office .cta-row { justify-content: flex-start; }
.cta-block.office .lede, .cta-block.office .cta-note { margin-left: 0; }
.office-card { margin: 0; background: rgba(255, 255, 255, .06); border: 1px solid var(--rule-dark); }
.office-card img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.office-card figcaption { padding: 1.25rem 1.5rem 1.5rem; }
.office-card .eyebrow { margin-bottom: .625rem; }
.office-card address { font-style: normal; color: #fff; line-height: 1.5; margin-bottom: .75rem; }
@media (min-width: 960px) { .cta-block.office .wrap { grid-template-columns: 1.2fr .8fr; gap: 4.5rem; } }

/* 5. Photos on the homepage blog cards */
.section .posts.cols li, .section .posts.cols li:last-child { padding: 0 0 1.75rem; overflow: hidden; }
.posts .thumb { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin: 0 0 1.25rem; }
.posts.cols .thumb ~ .meta, .posts.cols .thumb ~ h3, .posts.cols .thumb ~ .ex { padding: 0 1.5rem; }

/* 6. Pull quote over a photo band (Our Team page) */
.photo-band.quote-band { height: auto; min-height: 18rem; display: grid; place-items: center; padding: 3.5rem 1.25rem; }
.photo-band.quote-band::after { background: linear-gradient(180deg, rgba(9,37,57,.45) 0%, rgba(9,37,57,.75) 100%); }
.quote-band blockquote { position: relative; z-index: 1; margin: 0; max-width: 46rem; text-align: center; color: #fff; }
.quote-band p { font-family: var(--serif); font-size: var(--fs-2); line-height: 1.35; color: #fff; margin: 0 0 1rem; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.quote-band .stars { display: block; color: #fff; letter-spacing: .2em; margin-bottom: 1rem; }
.quote-band footer { font: 600 .75rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--on-navy); }
@media (min-width: 960px) { .photo-band.quote-band { min-height: 22rem; } }

/* Badges moved under the attorney portraits */
.people + .creds-row { max-width: 50rem; margin: 3rem auto 0; }

/* 2026-09-24: lighter navy overlays so the photography reads, darker only where the type sits */
.hero-banner::after { background: linear-gradient(180deg, rgba(9,37,57,.5) 0%, rgba(9,37,57,.62) 45%, rgba(9,37,57,.74) 100%) !important; }
.photo-section::after { background: linear-gradient(180deg, rgba(9,37,57,.6) 0%, rgba(9,37,57,.76) 100%); }
.cta-block.dark { background: linear-gradient(180deg, rgba(9,37,57,.66) 0%, rgba(9,37,57,.82) 100%), url("images/photos/oaks-1200.webp") center 40% / cover no-repeat; }
@media (min-width: 960px) { .cta-block.dark { background: linear-gradient(180deg, rgba(9,37,57,.66) 0%, rgba(9,37,57,.82) 100%), url("images/photos/oaks-1788.webp") center 40% / cover no-repeat; } }
.page-head.photo-bg::after { background: linear-gradient(180deg, rgba(9,37,57,.42) 0%, rgba(9,37,57,.72) 100%); }
.hero-banner h1, .hero-banner .lede, .photo-section h2, .photo-section .who-grid li, .cta-block.dark h2, .cta-block.dark .lede, .page-head.photo-bg h1, .page-head.photo-bg .lede { text-shadow: 0 1px 14px rgba(9, 37, 57, .45); }

/* Tighter vertical rhythm between sections */
.section { padding: 3.25rem 0; }
.cta-block { padding: 3.25rem 0; }
.band { padding: 2.5rem 0; }
.sec-head { margin-bottom: 2rem; }
.btn-row { margin-top: 2rem; }
.people + .creds-row { margin-top: 2.25rem; padding-top: 1.75rem; }
.page-head.photo-bg { padding: 3.75rem 0 3.25rem; }
@media (min-width: 960px) {
  .section { padding: 4.25rem 0; }
  .cta-block { padding: 4.5rem 0; }
  .band { padding: 3rem 0; }
  .hero-inner { padding-top: 5.5rem; padding-bottom: 5rem; }
  .page-head.photo-bg { padding: 5rem 0 4.5rem; }
}

/* Contact page: two clear paths, larger type for easy reading */
.contact-head { padding: 2.75rem 0 2.5rem; }
.contact-head .crumbs { margin-bottom: 1rem; }
.contact-head .lede { margin-top: .75rem; }
@media (min-width: 960px) { .contact-head { padding: 3.5rem 0 3.25rem; } }
.contact-body .contact-grid { align-items: start; }
.contact-h { font-size: var(--fs-2); margin: 0 0 .625rem; }
.contact-sub { font-size: var(--fs-1); margin: 0 0 .5rem; }
.contact-intro { font-size: 1.0625rem; color: var(--text); margin: 0 0 1.5rem; max-width: 34rem; }
.contact-body .form label { font-size: 1.0625rem; margin: 1.25rem 0 .5rem; }
.contact-body .form .opt { font-weight: 400; color: var(--muted); }
.contact-body .form input, .contact-body .form select, .contact-body .form textarea { font-size: 1.0625rem; min-height: 3.25rem; padding: .875rem 1rem; }
.contact-body .form .btn { width: 100%; font-size: 1.0625rem; padding: 1.125rem 1.5rem; }
@media (min-width: 640px) { .contact-body .form .btn { width: auto; } }
.contact-body .steps h3 { font-size: 1.125rem; }
.contact-side { background: #fff; border: 1px solid var(--rule); padding: 1.75rem 1.5rem; }
@media (min-width: 960px) { .contact-side { padding: 2.25rem 2rem; position: sticky; top: 6.5rem; } }
.reach-item { display: grid; grid-template-columns: 2.75rem 1fr; gap: 0 1rem; padding: 1.25rem 0; border-top: 1px solid var(--rule); }
.reach-item:first-child { border-top: 0; padding-top: .25rem; }
.c-ic { width: 2.75rem; height: 2.75rem; border-radius: 50%; background: rgba(95, 194, 185, .18); color: var(--navy); display: grid; place-items: center; }
.reach-item h3 { font: 600 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin: .25rem 0 .5rem; }
.reach-item a, .reach-item address { font-size: 1.0625rem; }
.reach-item address { font-style: normal; color: var(--text); margin-bottom: .5rem; line-height: 1.5; }
.big-phone { display: inline-block; font-family: var(--serif); font-size: 1.75rem !important; line-height: 1.2; color: var(--navy); text-decoration: none; margin-bottom: .75rem; }
.big-phone:hover { color: var(--link); text-decoration: underline; }
.hours { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; margin: 0; font-size: 1rem; }
.hours dt { font-weight: 600; color: var(--navy); }
.hours dd { margin: 0; color: var(--text); }
.contact-side .aside-photo { margin: .5rem 0 0; }
.contact-side figcaption { font-size: .875rem; color: var(--muted); margin-top: .5rem; }
.fax { font-size: .9375rem; color: var(--muted); margin: 1rem 0 0; }

.head-actions { justify-content: center; margin-top: 1.5rem; }
.head-actions .btn { min-width: 15rem; text-align: center; }
@media (min-width: 960px) { .head-actions { display: none; } .contact-main { padding-top: calc(2.25rem + 1px); } }

/* Office card on the homepage CTA: white card like the contact page, to break up the navy at the foot of the page */
.cta-block .office-card { background: #fff; border: 0; box-shadow: 0 10px 30px rgba(9, 37, 57, .25); }
.cta-block .office-card .eyebrow { color: var(--muted); }
.cta-block .office-card address { color: var(--text); font-size: 1.0625rem; }
.cta-block .office-card a { color: var(--link); }
.cta-block .office-card a:hover { color: var(--navy); }
.cta-block .office-card figcaption { padding: 1.25rem 1.5rem 1.5rem; }

/* Homepage reviews: two open quotes, no boxes */
.open-quotes { display: grid; gap: 0; max-width: 62rem; margin: 0 auto; }
.open-quotes > li { border-top: 1px solid var(--rule); padding: 2rem 0 1.5rem; }
.open-quotes blockquote { margin: 0; }
.open-quotes blockquote::before { content: "\201C"; display: block; font-family: var(--serif); font-size: 3.5rem; line-height: .6; color: var(--turq); margin-bottom: .75rem; }
.open-quotes p { font-family: var(--serif); font-size: 1.125rem; line-height: 1.55; color: var(--navy); margin: 0 0 1rem; }
.open-quotes footer { font: 600 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
@media (min-width: 960px) { .open-quotes { grid-template-columns: 1fr 1fr; column-gap: 4rem; } }


/* Hero: Lake Travis photograph, services line and places line */
.hero-banner .hero-bg { object-position: 35% 55%; }
.hero-banner .sep { display: inline-block; margin: 0 .75em; opacity: .6; }
.hero-banner .hero-places { font-size: var(--fs-1); color: #fff; letter-spacing: .02em; margin-top: .25rem; }
.hero-banner h1 { max-width: 22ch; }
@media (max-width: 639px) { .hero-banner .eyebrow { line-height: 1.8; } .hero-banner .sep { margin: 0 .45em; } }
/* How we work: meeting photo, keep faces in the 4:5 crop */
.figure-portrait img[src*="meeting"] { object-position: 55% 45%; }

.hero-banner .eyebrow { color: #fff; opacity: .92; text-shadow: 0 1px 10px rgba(9, 37, 57, .6); }
@media (max-width: 639px) { .hero-banner .eyebrow { font-size: .625rem; letter-spacing: .16em; } }

/* Hero: taller, Lake Travis marina aerial */
.hero-banner { display: flex; align-items: center; min-height: 32rem; }
.hero-banner .hero-inner { width: 100%; }
.hero-banner .hero-bg { object-position: 50% 62%; }
@media (min-width: 960px) { .hero-banner { min-height: min(44rem, 78vh); } }

/* How we work: show the whole meeting photo, no side cropping */
.figure-wide { margin: 0; }
.figure-wide img { width: 100%; height: auto; aspect-ratio: 1612 / 1038; object-fit: cover; }

/* Practice area pages: clearer navigation for every visitor */
.area-tabs { background: #fff; border-bottom: 1px solid var(--rule); padding: 1rem 0; }
.area-tabs .tabs-label { font: 600 .75rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); margin: 0 0 .75rem; text-align: center; }
.area-tabs ul { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; overflow: visible; }
.area-tabs li { flex: none; }
.area-tabs a { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 3rem; padding: .625rem .75rem; font: 600 .9375rem/1.25 var(--sans); letter-spacing: 0; white-space: normal; color: var(--navy); border: 1px solid var(--rule); border-radius: 2px; background: #fff; }
.area-tabs a:hover { border-color: var(--navy); color: var(--navy); }
.area-tabs a[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: #fff; }
@media (min-width: 768px) { .area-tabs ul { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) {
  .area-tabs { padding: 1.25rem 0; }
  .area-tabs .tabs-label { display: none; }
  .area-tabs ul { display: flex; flex-wrap: wrap; justify-content: center; }
  .area-tabs a { padding: .625rem 1.125rem; }
}
.area-tabs + .section { padding-top: 2.5rem; }

.area-side h2 { font: 600 .75rem/1 var(--sans) !important; letter-spacing: .16em !important; text-transform: uppercase; color: var(--muted) !important; margin: 0 0 .75rem !important; }
.area-body .area-side ul a { font-size: 1rem; color: var(--navy); padding: .5rem 0 .5rem .875rem; }
.area-body .area-side ul a:hover { color: var(--link); text-decoration: underline; }
.side-call { margin-top: 1.75rem; padding: 1.5rem 1.25rem; background: #fff; border: 1px solid var(--rule); }
.area-side h2 + ul + .side-call { margin-top: 1.75rem; }
.side-call .side-q { font-family: var(--serif); font-size: 1.125rem; line-height: 1.35; color: var(--navy); margin: 0 0 .5rem; }
.side-phone { display: block; font-family: var(--serif); font-size: 1.5rem; color: var(--navy); text-decoration: none; margin-bottom: 1rem; }
.side-phone:hover { color: var(--link); text-decoration: underline; }
.area-body .side-call .btn { display: block; margin: 0; text-align: center; }
.area-side .all-areas { font-size: 1rem; margin-top: 1.25rem; }
@media (min-width: 960px) { .area-body { grid-template-columns: minmax(0, 40rem) 17rem; } }

.area-more { margin: 3rem 0 0; padding: 1.25rem 1.5rem; background: #fff; border-left: 3px solid var(--turq); font-size: 1.0625rem; }
.area-more .more { display: inline-block; }
.area-body .area-pager { margin-top: 2rem; padding-top: 0; border-top: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.area-body .area-pager a { display: block; padding: 1rem 1.25rem; background: #fff; border: 1px solid var(--rule); font-size: 1.0625rem; line-height: 1.3; }
.area-body .area-pager a:hover { border-color: var(--navy); color: var(--navy); }
.area-body .area-pager a span { font-size: .75rem; letter-spacing: .1em; color: var(--muted); margin-bottom: .375rem; }
.area-body .area-pager .next { text-align: right; }
@media (min-width: 1100px) {
  .area-tabs ul { display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem; }
  .area-tabs a { padding: .625rem .75rem; font-size: .9375rem; }
}
.area-body .area-pager { align-items: stretch; }
.area-body .area-pager a, .area-body .area-pager .next { margin: 0; }
@media (max-width: 959px) {
  .area-side h2, .area-side h2 + ul { display: none; }
  .area-side .side-call { margin-top: 0; }
}

/* Probate: the six procedures as a simple list (table returns once timelines are supplied) */
.prose .proc-list { list-style: none; padding: 0; margin: 1.25rem 0 0; display: grid; gap: 0; }
.prose .proc-list li { margin: 0; padding: .75rem 0 .75rem 1.25rem; border-top: 1px solid var(--rule); position: relative; }
.prose .proc-list li:last-child { border-bottom: 1px solid var(--rule); }
.prose .proc-list li::before { content: ""; position: absolute; left: 0; top: 1.3rem; width: .4rem; height: .4rem; border-radius: 50%; background: var(--turq); }
@media (min-width: 640px) { .prose .proc-list { grid-template-columns: 1fr 1fr; column-gap: 2rem; } .prose .proc-list li:nth-last-child(2) { border-bottom: 1px solid var(--rule); } }
/* Practice area buttons: every box the same size, whether its label is one line or two */
.area-tabs ul { align-items: stretch; }
.area-tabs li { display: flex; }
.area-tabs a { flex: 1; min-height: 3.5rem; }

/* Teal buttons: clear hover and keyboard-focus state (white with navy text) */
.btn-accent:hover, .btn-accent:focus-visible,
.dark .btn-accent:hover, .dark .btn-accent:focus-visible,
.site-nav .btn-accent:hover, .site-nav .btn-accent:focus-visible,
.page-head.photo-bg .btn-accent:hover { background: #fff; border-color: #fff; color: var(--navy); }
.callbar a + a:hover, .callbar a + a:active { background: #fff; color: var(--navy); }
/* Teal buttons always carry navy text (white on teal is too faint) */
.dark .btn-accent, .site-nav .btn-accent, .page-head.photo-bg .btn-accent, .cta-block .btn-accent { color: var(--navy); }
/* Contact header: ranch photo, kept short */
.page-head.photo-bg.contact-head { padding: 3rem 0 2.75rem; }
@media (min-width: 960px) { .page-head.photo-bg.contact-head { padding: 4rem 0 3.75rem; } }

/* Associations page */
.assoc-wrap { max-width: 50rem; }
.assoc-group + .assoc-group { margin-top: 2.75rem; }
.assoc-group h2 { font-size: var(--fs-2); margin: 0 0 1rem; }
.assoc-list li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; padding: 1rem 0; border-top: 1px solid var(--rule); font-size: 1.0625rem; }
.assoc-list li:last-child { border-bottom: 1px solid var(--rule); }
.assoc-list a { font-weight: 600; }
.assoc-name { font-weight: 600; color: var(--navy); }
.assoc-url { font-size: .9375rem; color: var(--muted); }
.assoc-note { margin-top: 2rem; font-size: .9375rem; color: var(--muted); }

/* Homepage attorneys: founding partners group photo, names linked to bios */
.home-partners { max-width: 56rem; margin: 0 auto; }
.home-partners img { width: 100%; height: auto; display: block; }
.partner-names { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 1.25rem 0 0; text-align: center; }
.partner-names a { display: block; font-family: var(--serif); font-size: var(--fs-1); color: var(--navy); text-decoration: none; }
.partner-names a:hover { color: var(--link); text-decoration: underline; }
.partner-names span { display: block; font-size: .9375rem; color: var(--muted); margin-top: .125rem; }
.partner-cred { text-align: center; font-size: 1rem; color: var(--text); max-width: 40rem; margin: 1.25rem auto 0; }
.home-partners + .creds-row { max-width: 56rem; margin: 2rem auto 0; }
@media (max-width: 519px) { .partner-names { gap: .5rem; } .partner-names a { font-size: 1rem; line-height: 1.3; } .partner-names span { font-size: .8125rem; } }

/* Final homepage polish */
/* Hero eyebrow back to teal */
.hero-banner .eyebrow { color: var(--turq); opacity: 1; text-shadow: 0 1px 10px rgba(9, 37, 57, .7); }

/* Reviews: one vertical divider between the two quotes, like the stats band */
.open-quotes > li { border-top: 0; padding: 1.5rem 0; }
.open-quotes > li + li { border-top: 1px solid var(--rule); }
@media (min-width: 960px) {
  .open-quotes { column-gap: 0; }
  .open-quotes > li { padding: .5rem 3rem; }
  .open-quotes > li:first-child { padding-left: 0; }
  .open-quotes > li + li { border-top: 0; border-left: 1px solid var(--rule); padding-right: 0; }
}

/* Blog: no boxes on the homepage */
.section .posts.cols li, .section .posts.cols li:last-child { background: none; border: 0; padding: 0; }
.posts.cols .thumb ~ .meta, .posts.cols .thumb ~ h3, .posts.cols .thumb ~ .ex { padding: 0; }
.posts.cols .thumb { margin-bottom: 1rem; }

/* Our Process: consultation photo under the intro */
.process-photo { margin: 2rem 0 0; }
.process-photo img { width: 100%; height: auto; aspect-ratio: 1612 / 1038; object-fit: cover; display: block; }
.process-photo figcaption { font-size: .875rem; color: var(--muted); margin-top: .5rem; }
.split .process-photo img { aspect-ratio: 1612 / 1038; }
.split figure.process-photo { margin: 2rem 0 0; }

/* Hero: service-area line under the button, styled like the eyebrow */
.hero-banner .hero-serving { margin: 1.5rem 0 0; }
.hero-banner .hero-serving { margin: 1.25rem 0 0; }
.hero-banner .hero-serving + .cta-row { margin-top: 1.5rem; }

/* Hero subline: tighter line spacing */
.hero-banner .hero-places { line-height: 1.35; }

/* Tighter line spacing for every subline, matching the hero */
.lede, .page-head .lede, .cta-block .lede, .sec-head .lede { line-height: 1.35; }
.cta-note { line-height: 1.45; }
.site-footer { line-height: 1.5; }
.site-footer p, .site-footer address { line-height: 1.5; }
.legal p { line-height: 1.45; }

/* Our Process: steps intro and workbooks read left-aligned; only the page title and closing section are centered */
.process-steps .split > div:first-child, .process-steps .split > div:first-child * { text-align: left; }
.process-steps .fee { margin-left: 0; margin-right: 0; }
.process-wb .wrap > * { max-width: 52rem; text-align: left; margin-left: 0; margin-right: 0; }
.process-wb .wrap > p, .process-wb .wb p { text-align: left; }

/* Numbered steps and lists: teal number badges set close to their text */
.steps li, .steps.plain li, .section .numlist li, .section.align-left .numlist li { display: grid !important; grid-template-columns: 2.5rem minmax(0, 1fr) !important; gap: 0 1rem !important; align-items: start; text-align: left; }
.steps .n, .steps.plain .n, .numlist .n, .section .numlist .n, .section.align-left .numlist .n, .dark .steps .n, .dark .numlist .n {
  display: grid; place-items: center; width: 2.5rem; height: 2.5rem; margin: 0 !important; border-radius: 50%;
  background: var(--turq); color: var(--navy); font: 600 1.0625rem/1 var(--sans); letter-spacing: 0; }
.steps li > div, .numlist li > h3 { padding-top: .45rem; }
.steps h3, .numlist h3 { margin-top: 0; }
.numlist li > h3, .numlist li > p { grid-column: 2 !important; }
.numlist li > p { margin: .25rem 0 0 !important; max-width: none; }
@media (min-width: 960px) {
  .section.align-left .numlist li { grid-template-columns: 2.5rem minmax(0, 1fr) minmax(0, 1.5fr) !important; gap: 0 1.5rem !important; align-items: center; }
  .section.align-left .numlist li > h3 { grid-column: 2 !important; padding-top: 0; }
  .section.align-left .numlist li > p { grid-column: 3 !important; margin: 0 !important; }
}

/* Practice area pages: summary panel set apart from the Q&A below */
.area-body .answer { background: #fff; border: 1px solid var(--rule); border-left: 4px solid var(--turq); padding: 1.5rem 1.75rem 1.625rem; margin: 0 0 3rem; font-family: var(--sans); font-size: 1.125rem; line-height: 1.6; color: var(--text); }
.area-body .answer::before { content: "At a glance"; display: block; font: 600 .75rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--link); margin-bottom: .75rem; }
.area-body .prose h2 { padding-top: 2rem; border-top: 1px solid var(--rule); margin-top: 2.5rem; }
.area-body .prose h2:first-child { padding-top: 0; border-top: 0; margin-top: 0; }
@media (max-width: 639px) { .area-body .answer { padding: 1.25rem 1.25rem 1.375rem; font-size: 1.0625rem; } }

/* Number badges: soft teal circle with navy numeral, matching the contact page icons */
.steps .n, .steps.plain .n, .numlist .n, .section .numlist .n, .section.align-left .numlist .n, .dark .steps .n, .dark .numlist .n {
  width: 2.75rem; height: 2.75rem; background: rgba(95, 194, 185, .18); color: var(--navy); font: 500 1.125rem/1 var(--serif); }
.steps li, .steps.plain li, .section .numlist li, .section.align-left .numlist li { grid-template-columns: 2.75rem minmax(0, 1fr) !important; }
@media (min-width: 960px) { .section.align-left .numlist li { grid-template-columns: 2.75rem minmax(0, 1fr) minmax(0, 1.5fr) !important; } }
.steps li > div, .numlist li > h3 { padding-top: .6rem; }

/* Narrow content blocks sit centered on the page; their text stays left-aligned */
.section .numlist { max-width: 46rem; margin-left: auto; margin-right: auto; }
.process-wb .wrap { max-width: calc(52rem + 4rem); }
.process-wb .wrap > * { max-width: none; }

/* Narrow content blocks: one centered column, text left-aligned inside it */
.process-wb .wrap > *, .section:not(.align-left) > .wrap > .numlist { max-width: 46rem; margin-left: auto !important; margin-right: auto !important; text-align: left; }
.process-wb .wrap > p.eyebrow { margin-bottom: 1rem; }

/* Testimonial quote marks in the same soft teal circle as the icons and numbers */
.open-quotes blockquote::before { content: "\201C"; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: rgba(95, 194, 185, .18); color: var(--navy); font: 400 2rem/1 var(--serif); padding-top: .55rem; box-sizing: border-box; margin: 0 0 1rem; }
.open-quotes blockquote::before { font-size: 2.75rem; line-height: 1; padding-top: 1.15rem; font-weight: 500; }
.open-quotes blockquote::before { padding-top: .8rem; }
/* Quote icon: drawn mark, exactly centered in the teal circle */
.open-quotes blockquote::before {
  content: ""; padding: 0; font-size: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23092539' d='M10 7.5C7 8.4 5 10.9 5 14.2c0 2 1.3 3.3 3 3.3 1.6 0 2.8-1.2 2.8-2.8 0-1.5-1.1-2.6-2.5-2.7.4-1.5 1.5-2.6 3.1-3.1L10 7.5zm8.2 0c-3 .9-5 3.4-5 6.7 0 2 1.3 3.3 3 3.3 1.6 0 2.8-1.2 2.8-2.8 0-1.5-1.1-2.6-2.5-2.7.4-1.5 1.5-2.6 3.1-3.1l-1.4-1.4z'/%3E%3C/svg%3E") center / 1.5rem 1.5rem no-repeat, rgba(95, 194, 185, .18);
}

/* Stats band, three items (homepage) */
.band ul.band-3 { grid-template-columns: 1fr !important; gap: 2rem 0; }
.band ul.band-3 li { border-left: 0 !important; }
@media (min-width: 640px) {
  .band ul.band-3 { grid-template-columns: repeat(3, 1fr) !important; gap: 0; }
  .band ul.band-3 li + li { border-left: 1px solid var(--rule) !important; }
}

/* Practice area FAQs */
.area-faq { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--rule); }

/* 2026-09-28: Family & Special Needs Planning branch (nav, homepage card, areas index) */
.site-nav li li ul { display: block; position: static; min-width: 0; margin: 0; padding: 0; background: none; border: 0; }
.site-nav li li li a { padding-left: 2.5rem; font-size: .875rem; }
@media (min-width: 1180px) {
  .site-nav li li ul { display: block; padding: 0 0 .25rem .875rem; border-left: 1px solid var(--rule-dark); }
  .site-nav li li li a { padding: .375rem 0; font-size: .875rem; color: var(--on-navy); }
}
.area-cards .branch-links { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem .75rem; position: relative; z-index: 1; }
.area-cards .branch-links a { display: inline-block; padding: .5rem .875rem; border: 1px solid var(--rule); border-radius: 2px; font-weight: 600; font-size: .875rem; color: var(--navy); text-decoration: none; background: #fff; }
.area-cards .branch-links a::after { content: " \2192"; color: var(--link); }
.area-cards .branch-links a:hover { border-color: var(--link); color: var(--link); }
@media (min-width: 960px) { .area-cards > li.card-branch { grid-column: span 2; } }
@media (max-width: 639px) { .area-cards .branch-links { grid-column: 2; margin-top: .75rem; } }
.numlist li > .branch-body { grid-column: 2 / -1 !important; }
.numlist .branch-body p { margin: 0; color: var(--muted); }
.numlist .branch-links { list-style: none; margin: 1rem 0 0; padding: 0; max-width: 44rem; display: grid; gap: .75rem; }
.numlist .branch-links li { display: block !important; padding: .875rem 1rem !important; border: 1px solid var(--rule) !important; border-radius: 2px; background: #fff; text-align: left !important; }
.numlist .branch-links a { font-weight: 600; color: var(--navy); text-decoration: none; }
.numlist .branch-links a::after { content: " \2192"; color: var(--link); }
.numlist .branch-links a:hover { color: var(--link); text-decoration: underline; }
.numlist .branch-links span { display: block; margin-top: .25rem; color: var(--muted); font-size: .9375rem; }
@media (min-width: 640px) { .numlist .branch-links { grid-template-columns: 1fr 1fr; } }

/* FAQ filter chips: single row on desktop */
@media (min-width: 760px) { .filters:has(a[href="#first-consultation"]) { flex-wrap: nowrap; } .filters:has(a[href="#first-consultation"]) .chip { padding: .625rem .75rem; white-space: nowrap; } }

/* FAQ page: collapsible topics */
.faq-topic { border-bottom: 1px solid var(--rule); scroll-margin-top: 6rem; }
.faq-topic:first-of-type { margin-top: 2rem; border-top: 1px solid var(--rule); }
.faq-topic > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; }
.faq-topic > summary::-webkit-details-marker { display: none; }
.faq-topic > summary h2 { margin: 0; }
.faq-topic > summary::after { content: "+"; flex: none; font: 400 1.75rem/1 var(--sans); color: var(--navy); transition: transform .2s ease; }
.faq-topic[open] > summary::after { content: "\2212"; }
.faq-topic > summary:hover h2 { color: var(--link); }
.faq-topic > summary:focus-visible { outline: 2px solid var(--link); outline-offset: 4px; }
.faq-topic .faq { padding-bottom: 1.5rem; }
.faq-topic .faq > div:last-child { border-bottom: 0; }


/* Legal pages: tighter heading rhythm */
.prose.legal h2 { font-size: var(--fs-1); margin: 1.75rem 0 .5rem; }
.prose.legal h2:first-child { margin-top: 0; }
.section .wrap.narrow.prose.legal > p { text-align: left; font-size: var(--fs-0); line-height: 1.7; margin: 0 0 .75rem; color: var(--text); }

/* 2026-09-29: Mobile stats in one row, and teal cut back to the conversion button only */
.band ul.band-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 0 !important; align-items: start; }
.band ul.band-3 li { padding: 0 .5rem; min-width: 0; }
.band ul.band-3 li + li { border-left: 1px solid var(--rule) !important; }
.band ul.band-3 .fig { font-size: clamp(2rem, 1.2rem + 4vw, 4rem); white-space: nowrap; margin-bottom: .5rem; }
.band ul.band-3 .cap { font-size: .625rem; letter-spacing: .1em; line-height: 1.45; overflow-wrap: break-word; }
@media (min-width: 640px) { .band ul.band-3 li { padding: 0 1rem; } .band ul.band-3 .cap { font-size: .6875rem; letter-spacing: .18em; } }
@media (max-width: 639px) { .band { padding: 2rem 0; } }

/* Hero eyebrow: sand, larger and heavier so it reads over the photo */
.hero-banner .eyebrow { color: var(--sand); }
/* Nav current page and link hovers on navy: sand, not teal */
.site-nav a[aria-current], .site-nav a:hover, .dark a:hover, .site-footer a:hover { color: var(--sand); }
/* Footer rhythm: one spacing scale across all four columns, legal row clear of its rule */
.site-footer p, .site-footer address { margin: 0 0 1rem; }
.foot-h { margin: 0 0 1rem; }
.foot-h ~ .foot-h { margin-top: 1.75rem; }
.foot-logo { margin-bottom: 1.25rem; }
.foot-nav { margin: 0; padding: 0; }
.foot-nav li { padding: 0 0 .375rem; line-height: 1.5; }
.site-footer .social { margin-top: .25rem; }
.site-footer .news p { margin-bottom: 1.25rem; }
.site-footer .news label { display: block; margin: 0 0 .375rem; }
.site-footer .news input { margin-bottom: 1rem; }
.site-footer .news button { margin-top: .25rem; }
.site-footer .legal { border-top: 0; margin-top: 3.5rem; padding-top: 0; }
.site-footer .legal::before { content: ""; display: block; border-top: 1px solid var(--rule-dark); margin-bottom: 1.75rem; }
.site-footer .legal .links { margin: 0 0 1rem; }
.site-footer .legal p { margin: 0 0 .625rem; }

/* Hero eyebrow: larger and heavier */
.hero-banner .eyebrow { font-size: .8125rem; font-weight: 700; letter-spacing: .22em; text-shadow: 0 1px 12px rgba(9, 37, 57, .85); }
@media (max-width: 639px) { .hero-banner .eyebrow { font-size: .6875rem; letter-spacing: .12em; } }

/* Arrow links: turquoise text, turquoise underline, arrow. One style for nav CTA, reviews, maps, subscribe */
.arrow-link, .site-footer .arrow-link, .news .btn, .news .btn:hover {
  color: var(--turq); font-weight: 600; text-decoration: underline; text-decoration-color: currentColor;
  text-underline-offset: .22em; text-decoration-thickness: 1px; }
.arrow-link::after, .news .btn::after { content: " \2192"; }
.arrow-link:hover, .site-footer .arrow-link:hover, .news .btn:hover { color: #fff; }
section:not(.dark) .arrow-link { color: var(--link); }
section:not(.dark) .arrow-link:hover { color: var(--navy); }
@media (min-width: 1180px) {
  .site-nav .btn-accent, .site-nav .btn-accent:hover, .site-nav .btn-accent:focus-visible {
    background: none; border: 0; padding: 0; border-radius: 0; color: var(--turq); font-weight: 600; letter-spacing: 0;
    text-decoration: underline; text-underline-offset: .22em; text-decoration-thickness: 1px; }
  .site-nav .btn-accent::after { content: " \2192"; }
  .site-nav .btn-accent:hover { color: #fff; }
}
