/* Interior pages (spec 2026-10-20 shared components): the pale title band, On this page, prose and the one quiet reminder. */
.jw-band :where(h1, p, ol, ul), .jw-toc :where(h2, ul), .jw-toc-phone ul, .jw-author :where(h2, p, ul) { margin: 0; }

/* Title band: breadcrumb above a plain H1, the summary, and Contact us with the phone number at the top right. */
.jw-band { padding: 36px var(--jw-pad) 48px; background: var(--jw-pale); }
.jw-band__in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px 64px; }
.jw-crumbs { grid-column: 1 / -1; min-width: 0; color: var(--jw-slate); font-size: 15px; line-height: 1.6; }
.jw-crumbs ol { padding: 0; list-style: none; }
.jw-crumbs li { display: inline; }
.jw-crumbs a { color: var(--jw-blue); text-underline-offset: 3px; }
.jw-crumbs span[aria-hidden] { margin: 0 8px; color: var(--jw-edge); }
.jw-crumbs__last { display: inline-block !important; max-width: 100%; vertical-align: bottom; }
.jw-crumbs__here { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }   /* repeats the H1, so one line is enough */
@media (max-width: 1239px) {   /* touch layouts: 44px crumb links; the !important outranks .jw-crumbs__last's */
	.jw-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; }
	.jw-crumbs li { display: inline-flex !important; align-items: center; }
	.jw-crumbs a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
	.jw-crumbs__last { min-width: 0; }
}
.jw-band__title { color: var(--jw-blue); font-size: clamp(44px, 5.4vw, 80px); line-height: 1.02; letter-spacing: -.02em; }
.jw-band__title--long { font-size: clamp(32px, 3.2vw, 52px); line-height: 1.12; letter-spacing: -.01em; }
.jw-band__summary { max-width: 34em; margin-top: 20px !important; font: 400 21px/1.55 var(--jw-serif); }
/* articles: category, byline and date under the title, then the general-information note */
.jw-art-meta { margin-top: 18px !important; color: var(--jw-slate); font: 400 16px/1.6 var(--jw-sans); font-variant-numeric: tabular-nums; }
.jw-art-meta a { color: var(--jw-blue); font-weight: 600; text-underline-offset: 4px; }
.jw-art-meta span[aria-hidden] { margin: 0 8px; color: var(--jw-edge); }
.jw-art-meta :is(a, time) { white-space: nowrap; }   /* names, categories and dates stay whole when the line wraps */
.jw-art-meta span[aria-hidden]::after { content: "\200B"; }   /* so the line can wrap after each separator (zero width) */
.jw-art-way { margin: 10px 0 0; color: var(--jw-ink); font: 400 16px/1.5 var(--jw-sans); }
.jw-art-way a { color: var(--jw-blue); text-decoration: underline; text-underline-offset: 4px; }
.jw-art-note { max-width: 46em; margin-top: 6px !important; color: var(--jw-slate); font: 400 15px/1.5 var(--jw-sans); }
.jw-art-note--old { color: var(--jw-ink); }
.jw-band__side { align-self: start; }
.jw-band__act { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; }
.jw-band__cta { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 28px; border-radius: 2px; background: var(--jw-blue); color: var(--jw-paper); font: 600 18px/1 var(--jw-sans); text-decoration: none; transition: background-color .15s ease; }
.jw-band__cta:hover { background: var(--jw-blue-deep); }
.jw-band__or { display: inline; color: var(--jw-slate); }   /* one run of text: "or call Beth at" wraps as words, never as a column beside the number */
.jw-band__tel { display: inline-flex; align-items: center; min-height: 44px; color: var(--jw-blue); font-weight: 600; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.jw-band__tel:hover { text-decoration-thickness: 3px; }
.jw-band__go { display: inline-flex; align-items: center; min-height: 44px; color: var(--jw-blue); font: 600 18px/1 var(--jw-sans); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 6px; }
.jw-band__go:hover { text-decoration-thickness: 3px; }
.jw-band__in:not(:has(.jw-band__side)) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 900px) {
	.jw-band__in { grid-template-columns: minmax(0, 1fr); }
	.jw-band__title { font-size: clamp(40px, 11vw, 56px); }
	.jw-band__title--long { font-size: clamp(30px, 8vw, 36px); }
}

/* Body: On this page as a rail beside the prose from 1240 up, one tappable line above it below 1240. */
.jw-body { padding: 64px var(--jw-pad) 32px; }
.jw-body__main { min-width: 0; max-width: 760px; }
.jw-toc__h { margin-bottom: 8px !important; color: var(--jw-slate); font: 600 14px/1.4 var(--jw-sans); letter-spacing: 0; }
.jw-toc ul, .jw-toc-phone ul { padding: 0; list-style: none; }
.jw-toc a { display: block; padding: 8px 0 8px 14px; border-left: 2px solid var(--jw-line); color: var(--jw-ink); font-size: 16px; line-height: 1.35; text-decoration: none; }
.jw-toc a:hover { border-left-color: var(--jw-edge); color: var(--jw-blue); }
.jw-toc a[aria-current] { border-left-color: var(--jw-blue); color: var(--jw-blue); font-weight: 600; }
.jw-toc-phone { margin-bottom: 40px; border-block: 1px solid var(--jw-line); }
.jw-toc-phone summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; color: var(--jw-blue); font-weight: 600; cursor: pointer; list-style: none; }
.jw-toc-phone summary::-webkit-details-marker { display: none; }
.jw-toc-phone summary::after { content: "+"; font: 400 26px/1 var(--jw-sans); }
.jw-toc-phone[open] summary::after { content: "\2212"; }
.jw-toc-phone a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; border-top: 1px solid var(--jw-line); color: var(--jw-ink); text-decoration: none; }
/* Articles: the side column holds On this page, then Written by (or More news on press); it takes On this page's place. */
.jw-rail { display: grid; gap: 40px; }
.jw-author { padding-top: 16px; border-top: 1px solid var(--jw-line); }
.jw-author h2 { margin-bottom: 8px; color: var(--jw-slate); font: 600 14px/1.4 var(--jw-sans); }
.jw-author__name a { color: var(--jw-blue); font: 500 22px/1.3 var(--jw-serif); text-decoration: none; }
.jw-author__name a:hover, .jw-news a:hover { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.jw-author__pos, .jw-author__tel { margin-top: 4px; color: var(--jw-slate); font-size: 16px; }
.jw-author .jw-link { margin-top: 12px; }
.jw-author__tel a { color: var(--jw-blue); font-weight: 600; text-underline-offset: 4px; }
.jw-news { padding: 0; list-style: none; }
.jw-news li { padding: 10px 0; border-bottom: 1px solid var(--jw-line); }
.jw-news a { display: block; color: var(--jw-blue); font: 500 18px/1.35 var(--jw-serif); text-decoration: none; }
.jw-news time { color: var(--jw-slate); font-size: 15px; }
@media (min-width: 1240px) {
	.jw-body__in:has(> :is(.jw-toc, .jw-rail)) { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 0 64px; }
	.jw-body__in > :is(.jw-toc, .jw-rail) { position: sticky; top: 24px; align-self: start; }
	/* A rail taller than the window (or the room the cookie bar leaves) scrolls on its own; the padding, taken back by the
	   margin, and the scroll padding keep focus rings (3px, 3px out) inside it. */
	.jw-body__in > .jw-rail { max-height: calc(100vh - 48px - var(--jw-bar-room, 0px)); margin-inline: -6px; padding: 0 6px 6px; overflow-y: auto; scroll-padding-block: 6px; scrollbar-width: thin; }
	/* A rail holding the Our Firm list (About pages, Community) is taller than a laptop screen: the page scrolls it, never the rail,
	   so no route is cut off. It loses the sticky On this page. */
	.jw-body__in > .jw-rail:has(.jw-routes) { position: static; max-height: none; margin-inline: 0; padding: 0; overflow: visible; }
	.jw-toc-phone { display: none; }
}
@media (max-width: 1239px) { .jw-toc, .jw-rail { display: none; } }

/* Prose: everything editors put in page and post content. */
.jw-prose { display: flow-root; overflow-wrap: break-word; }   /* contains floated images */
.jw-prose > :first-child { margin-top: 0; }
.jw-prose h2 { margin: 48px 0 14px; color: var(--jw-blue); font-size: 34px; line-height: 1.18; letter-spacing: -.01em; }
.jw-prose :is(h2, h3) { scroll-margin-top: 24px; }   /* On this page lists H3s when an article has no H2s */
.jw-prose p { max-width: 38em; margin: 0 0 16px; }
.jw-prose .space, .jw-prose #fnote { max-width: 38em; }   /* old articles wrap their text in these, so the measure holds */
.jw-prose a { color: var(--jw-blue); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.jw-prose a:hover { text-decoration-thickness: 3px; }
@media (max-width: 640px) { .jw-prose h2 { font-size: 28px; } .jw-prose :is(h2, h3) { scroll-margin-top: 16px; } }   /* added to the sticky header's scroll-padding-top */

/* The one quiet reminder partway down a long page: a line between rules, never a box. */
.jw-prose .jw-reminder { margin: 48px 0; padding: 18px 0; border-block: 1px solid var(--jw-line); font: 400 20px/1.5 var(--jw-serif); }
.jw-reminder a { font-weight: 600; }

/* Prose kit: headings below H2, lists, quotes, tables, figures, embeds and rules, for classic HTML and blocks alike. */
.jw-prose h3 { margin: 36px 0 10px; color: var(--jw-ink); font-size: 26px; line-height: 1.25; }
.jw-prose :is(h4, h5, h6) { margin: 28px 0 8px; color: var(--jw-ink); font: 600 20px/1.35 var(--jw-sans); }
.jw-prose :is(h5, h6) { font-size: 18px; }
.jw-prose :is(ul, ol) { max-width: 38em; margin: 0 0 16px; padding-left: 1.4em; }
.jw-prose li + li { margin-top: 8px; }
.jw-prose li > :is(ul, ol) { margin: 8px 0 0; }
.jw-prose blockquote { max-width: 38em; margin: 28px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--jw-blue); font: 400 21px/1.5 var(--jw-serif); }
.jw-prose blockquote p:last-child { margin-bottom: 0; }
.jw-prose .jw-table { max-width: 100%; margin: 28px 0; overflow-x: auto; }   /* a wide table scrolls in its own box (focusable, so keyboards can scroll it), never the page */
.jw-prose table { border-collapse: collapse; font-size: 16px; }
.jw-prose :is(th, td) { padding: 10px 14px; border-bottom: 1px solid var(--jw-line); text-align: left; vertical-align: top; }
.jw-prose th { background: var(--jw-pale); font-weight: 600; }
.jw-prose figure { max-width: 100%; margin: 32px 0; }
.jw-prose figcaption { margin-top: 8px; color: var(--jw-slate); font-size: 15px; }
.jw-prose img { max-width: 100%; height: auto; }
.jw-prose :is(iframe, embed, object, video) { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; margin: 28px 0; border: 0; }
.jw-prose hr { margin: 40px 0; border: 0; border-top: 1px solid var(--jw-line); }
/* The classic editor's alignment classes (157 posts centre an image, 20 float one) and its caption box. */
.jw-prose .aligncenter { display: block; margin-inline: auto; }
.jw-prose .alignleft { float: left; margin: 6px 28px 16px 0; }
.jw-prose .alignright { float: right; margin: 6px 0 16px 28px; }
.jw-prose :is(h2, h3, hr, .jw-reminder, .jw-inline-cta, .jw-table) { clear: both; }
.jw-prose .wp-caption { max-width: 100%; }
.jw-prose .wp-caption-text { margin-top: 8px; color: var(--jw-slate); font-size: 15px; }
@media (max-width: 640px) { .jw-prose :is(.alignleft, .alignright) { float: none; margin: 24px 0; } }
/* Old content (practice spec, "Old content" row): legacy wrappers such as .unstyled-list start flush, bold in headings takes the heading weight, and content rules are hidden on practice pages only (articles keep them: 166 use them, some before endnotes). */
.jw-prose > div:first-child > :first-child { margin-top: 0; }
.jw-prose :is(h2, h3) strong { font-weight: inherit; }
.single-services .jw-prose > hr, .single-services .jw-prose > div > hr { display: none; }
.jw-prose .wp-block-buttons { margin: 28px 0; }

/* The editors' inline calls to action (jw-inline-cta, 53 boxes): the same quiet line as the reminder, no fill and no box. */
.jw-prose .jw-inline-cta { max-width: 38em; margin: 40px 0; padding: 18px 0; border-block: 1px solid var(--jw-line); }
.jw-inline-cta :where(p) { margin: 0; }
.jw-inline-cta__heading { color: var(--jw-ink); font: 600 20px/1.35 var(--jw-serif); }
.jw-inline-cta__body { margin-top: 6px !important; font: 400 18px/1.5 var(--jw-serif); }
.jw-prose a.jw-inline-cta__button { display: inline-flex; align-items: center; min-height: 44px; margin-top: 4px; font-weight: 600; text-underline-offset: 5px; }

/* Practice lists: attorneys as names, articles in the home page's register style (the .jw-meta rules live in home.css). */
.jw-list { margin-top: 56px; }
.jw-list > h2 { margin: 0 0 20px; color: var(--jw-blue); font-size: 34px; line-height: 1.18; letter-spacing: -.01em; }
.jw-people, .jw-register { margin: 0; padding: 0; border-top: 1px solid var(--jw-line); list-style: none; }
.jw-people a { display: flex; align-items: center; min-height: 52px; padding: 10px 0; border-bottom: 1px solid var(--jw-line); color: var(--jw-blue); font: 400 21px/1.3 var(--jw-serif); text-decoration: none; }
.jw-people a:hover, .jw-register h3 a:hover { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
@media (min-width: 901px) { .jw-people { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 40px; } }
.jw-register li { padding: 18px 0; border-bottom: 1px solid var(--jw-line); }
.jw-register h3 { margin: 0; font-size: 21px; font-weight: 500; line-height: 1.35; }
.jw-register h3 a { color: var(--jw-blue); text-decoration: none; }
@media (max-width: 640px) { .jw-list > h2 { font-size: 28px; } }
@media (max-width: 1239px) { .jw-register h3 a { display: inline-block; min-height: 44px; padding: 8px 0; } }
/* Related reading on articles, before the close: a wider gap from the prose, then the practice page's link. */
#jw-related { margin-top: 72px; }
.jw-related__practice { margin: 24px 0 0; }

/* What we handle (practice spec): sub-practices as two ruled columns above the prose. */
.jw-handle { margin-top: 0; margin-bottom: 48px; }
.jw-handle ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 0; padding: 0; border-top: 1px solid var(--jw-line); list-style: none; }
.jw-handle li { border-bottom: 1px solid var(--jw-line); }
.jw-handle a, .jw-handle [aria-current] { display: flex; align-items: center; min-height: 52px; color: var(--jw-blue); font: 400 20px/1.35 var(--jw-serif); text-decoration: none; }
.jw-handle a:hover { text-decoration: underline; text-underline-offset: 4px; }
.jw-handle [aria-current] { color: var(--jw-ink); font-weight: 600; }
#jw-handle, #jw-people, #jw-practice-insights, #jw-related, #contact { scroll-margin-top: 24px; }
@media (max-width: 640px) { .jw-handle ul { grid-template-columns: 1fr; } #jw-handle, #jw-people, #jw-practice-insights, #jw-related, #contact { scroll-margin-top: 16px; } }

/* The practice index (page 749): the home directory's groups as ruled lists on paper, undoing its cells (home.css);
   each parent's sub-areas fold under it behind a native summary. */
.jw-practices--all { display: block; }
.jw-prose .jw-practices__lead { max-width: 34em; margin: 0; font: 400 21px/1.55 var(--jw-serif); }
.jw-practices--all ul { display: block; max-width: none; margin: 0; padding: 0; border: 0; border-top: 1px solid var(--jw-line); }
.jw-practices--all li, .jw-practices--all li + li { margin: 0; border: 0; border-bottom: 1px solid var(--jw-line); }
.jw-practices--all ul a { display: flex; align-items: center; height: auto; min-height: 52px; padding: 6px 0; color: var(--jw-blue); font: 500 22px/1.35 var(--jw-serif); text-decoration: none; overflow-wrap: break-word; }
.jw-practices--all ul a:hover { background: none; color: var(--jw-blue); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.jw-practices--all ul a:focus-visible { outline-offset: 3px; border-radius: 2px; }
.jw-practices--all details { margin-bottom: 8px; }
.jw-practices--all summary { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--jw-blue); font: 600 15px/1.4 var(--jw-sans); cursor: pointer; list-style: none; }
.jw-practices--all summary::-webkit-details-marker { display: none; }
.jw-practices--all summary::after { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.jw-practices--all details[open] summary::after { margin-top: 3px; transform: rotate(-135deg); }
.jw-practices--all details ul { margin-bottom: 8px; padding-left: 20px; border-top: 0; }
.jw-practices--all details li, .jw-practices--all details li + li { border-bottom: 0; }
.jw-practices--all details a { min-height: 40px; padding: 4px 0; font: 400 19px/1.35 var(--jw-serif); }
@media (max-width: 1239px) { .jw-practices--all details a { min-height: 44px; } }
@media (max-width: 640px) { .jw-prose .jw-practices__lead { font-size: 20px; } .jw-practices--all ul a { font-size: 20px; } .jw-practices--all details a { font-size: 18px; } }

/* The end contact section (option C): the home close's daytime skyline melting into the blue, the form on paper.
   The source reads heading and intro, form, then the call and steps, which is how phones stack it; from 901px the
   call and steps sit under the intro and the form beside them, as before. */
.jw-cs { --jw-cs-photo: clamp(200px, 26vw, 460px); position: relative; isolation: isolate; padding: calc(var(--jw-cs-photo) + 8px) var(--jw-pad) 96px; background: var(--jw-blue); color: var(--jw-paper); }
.jw-cs :where(h2, p, ol, figure) { margin: 0; }
.jw-cs__photo { position: absolute; inset: 0 0 auto 0; z-index: -1; height: var(--jw-cs-photo); overflow: hidden; }
.jw-cs__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.jw-cs__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, var(--jw-paper) 0%, rgba(252, 251, 248, 0) 28%, rgba(40, 63, 151, 0) 52%, var(--jw-blue) 100%); }
.jw-cs__in { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px 64px; align-items: start; }
@media (min-width: 901px) {
	.jw-cs__in { grid-template-rows: auto 1fr; row-gap: 0; }   /* the panel's extra height goes to the second row, so the call keeps its 28px under the intro */
	.jw-cs__panel { grid-area: 1 / 2 / 3; }
}
.jw-cs__lead, .jw-cs__more { --jw-focus: var(--jw-paper); }
:is(.jw-cs__lead, .jw-cs__more) ::selection { background: var(--jw-paper); color: var(--jw-blue); }
.jw-cs h2 { color: var(--jw-paper); font-size: clamp(40px, 4vw, 60px); line-height: 1.04; letter-spacing: -.018em; }
.jw-cs__intro { margin-top: 18px !important; color: var(--jw-haze); font: 400 21px/1.5 var(--jw-serif); }
.jw-cs__call { margin-top: 28px !important; color: var(--jw-haze); font-size: 16px; }
.jw-cs__call a { display: inline-flex; align-items: center; min-height: 44px; color: var(--jw-paper); font: 600 30px/1.2 var(--jw-serif); text-decoration: none; }
.jw-cs__call a:hover { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 6px; }
.jw-cs__office { margin-top: 8px !important; color: var(--jw-haze); font-size: 16px; }
.jw-cs__office a { color: var(--jw-paper); }
@media (max-width: 1239px) { .jw-cs__office a { display: inline-flex; align-items: center; min-height: 44px; } }
.jw-cs__steps { margin-top: 32px !important; padding: 0; border-top: 1px solid var(--jw-rule-blue); list-style: none; counter-reset: jw-step; }
.jw-cs__steps li { position: relative; padding: 12px 0 12px 36px; border-bottom: 1px solid var(--jw-rule-blue); color: var(--jw-haze); font-size: 16px; }
.jw-cs__steps li::before { content: counter(jw-step); counter-increment: jw-step; position: absolute; top: 9px; left: 0; color: var(--jw-haze); font: 600 22px/1.3 var(--jw-serif); }
.jw-cs__steps strong { display: block; color: var(--jw-paper); font-size: 17px; }
.jw-cs__panel { padding: 36px; border-radius: 2px; background: var(--jw-paper); color: var(--jw-ink); }
.jw-cs__note { margin-top: 16px !important; color: var(--jw-slate); font-size: 14px; }
@media (max-width: 900px) {
	.jw-cs { padding-bottom: 64px; }
	.jw-cs__in { grid-template-columns: minmax(0, 1fr); }
	.jw-cs__call { margin-top: 0 !important; }   /* stacked, the grid gap alone sits between the form and the call */
	.jw-cs__panel { margin-inline: calc(8px - var(--jw-gutter)); padding: 24px 20px; }
}

/* Gravity Forms in the panel. Its own CSS is switched off on these pages (gform_disable_css), so everything is here. */
:is(.jw-cs, .jw-contact-page) .gform_wrapper form { margin: 0; }
:is(.jw-cs, .jw-contact-page) .gform_fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px 24px; margin: 0; padding: 0; border: 0; list-style: none; }
:is(.jw-cs, .jw-contact-page) .gfield { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 0; border: 0; }
@media (min-width: 561px) { :is(.jw-cs, .jw-contact-page) :is(.gfield--type-phone, .gfield--type-email) { grid-column: span 1; } }
@media (max-width: 560px) { :is(.jw-cs, .jw-contact-page) .gform_fields { grid-template-columns: minmax(0, 1fr); } }
:is(.jw-cs, .jw-contact-page) :is(.gform_validation_container, .gform_hidden, .gfield--type-hidden, .gfield_visibility_hidden) { display: none !important; }   /* the honeypot and hidden attribution fields */
:is(.jw-cs, .jw-contact-page) .gfield_label { display: block; margin: 0 0 6px; padding: 0; color: var(--jw-ink); font: 600 16px/1.4 var(--jw-sans); }
:is(.jw-cs, .jw-contact-page) .gfield_required { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }   /* read out, never shown */
:is(.jw-cs, .jw-contact-page) .ginput_container :is(input[type="text"], input[type="tel"], input[type="email"], textarea) { width: 100%; min-height: 52px; padding: 12px 14px; border: 1.5px solid var(--jw-edge); border-radius: 2px; background: var(--jw-paper); color: var(--jw-ink); font: 400 18px/1.4 var(--jw-sans); }
:is(.jw-cs, .jw-contact-page) .ginput_container textarea { min-height: 148px; resize: vertical; }
:is(.jw-cs, .jw-contact-page) .ginput_container :is(input, textarea)::placeholder { color: var(--jw-slate); opacity: 1; }   /* the browser's grey is 4.45:1 on paper */
:is(.jw-cs, .jw-contact-page) .ginput_container :is(input, textarea):focus-visible { outline: 3px solid var(--jw-blue); outline-offset: 2px; }
:is(.jw-cs, .jw-contact-page) .ginput_container_consent { display: flex; align-items: center; gap: 12px; }
:is(.jw-cs, .jw-contact-page) .ginput_container_consent input[type="checkbox"] { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--jw-blue); }
:is(.jw-cs, .jw-contact-page) .gfield_consent_label { display: flex; align-items: center; min-height: 44px; font-size: 16px; line-height: 1.4; }
:is(.jw-cs, .jw-contact-page) .gfield_description { margin-top: 6px; padding: 0; color: var(--jw-slate); font-size: 14px; line-height: 1.5; }
:is(.jw-cs, .jw-contact-page) .gfield--type-consent .gfield_description { max-width: 62ch; }   /* the disclosure reads at a measure, its text untouched */
:is(.jw-cs, .jw-contact-page) .gform_footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 24px 0 0; padding: 0; }
:is(.jw-cs, .jw-contact-page) .gform_button { min-height: 54px; padding: 0 28px; border: 0; border-radius: 2px; background: var(--jw-blue); color: var(--jw-paper); font: 600 18px/1 var(--jw-sans); cursor: pointer; transition: background-color .15s ease; }
:is(.jw-cs, .jw-contact-page) .gform_button:hover { background: var(--jw-blue-deep); }
:is(.jw-cs, .jw-contact-page) .gform_validation_errors { margin: 0 0 24px; padding: 14px 16px; border: 1.5px solid var(--jw-error); border-radius: 2px; color: var(--jw-error); }
:is(.jw-cs, .jw-contact-page) .gform_validation_errors :is(h2, ol, li) { margin: 0; color: inherit; font: 600 16px/1.4 var(--jw-sans); }
:is(.jw-cs, .jw-contact-page) .gform_validation_errors ol { margin-top: 6px; padding-left: 1.2em; font-weight: 400; }
:is(.jw-cs, .jw-contact-page) .gform_validation_errors a { color: inherit; }
:is(.jw-cs, .jw-contact-page) .validation_message { margin-top: 6px; padding: 0; color: var(--jw-error); font-size: 15px; }
:is(.jw-cs, .jw-contact-page) .gfield_error .ginput_container :is(input, textarea) { border-color: var(--jw-error); }
