*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  html {
    scroll-behavior: smooth;
    /* Offset anchor jumps so the sticky header doesn't cover section titles. */
    scroll-padding-top: 5rem;
  }
  @media (min-width: 1024px) {
    html { scroll-padding-top: 6.5rem; }
  }
  body {
  --tw-bg-opacity: 1;
  background-color: rgb(253 251 247 / var(--tw-bg-opacity, 1));
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(86 87 87 / var(--tw-text-opacity, 1));
}
  /* Headings inherit color from their parent so the same H1 renders correctly
     on dark hero backgrounds (white) and light body sections (brand-ink-soft).
     Font-weight and font-family are set; color stays inherited. */
  /* High-contrast serif display for headings (Libre Bodoni), matching the live site. */
  h1, h2, h3, h4 {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-weight: 600; color: inherit;
}
  h1 { letter-spacing: -0.018em; }
  h2 { letter-spacing: -0.014em; }
  h3 { letter-spacing: -0.01em; }
  /* md2 signature: roman + italic mix inside a single serif headline. <em> stays
     the same family/weight/size, only switching to italic. */
  h1 em, h2 em, h3 em, h4 em { font-style: italic; font-weight: inherit; color: inherit; }

  /* Smooth tabular numerals for price rendering */
  .tabular-nums { font-variant-numeric: tabular-nums; }

  /* Body prose measure — readable line length (~65ch). Applies inside .prose blocks
     that do not opt out via .prose--wide. */
  .prose :where(p, ul, ol, blockquote):not(:where([class~="not-prose"] *)) {
    max-width: 65ch;
  }
  /* Two-column rich_text used to opt out of the measure entirely, which left
     the body column running to ~78 characters — long enough that the eye
     loses the line return on a page of dense statutory copy. The column
     still does the layout work; the measure now stops the line. */
  .prose.prose--wide :where(p, ul, ol, blockquote) { max-width: 62ch; }
  .prose.prose--wide { font-size: 1.0625rem; line-height: 1.72; }

  /* Vertical rhythm: theme's .prose ships without @tailwindcss/typography, so
     paragraph and list margins need explicit rules — otherwise multi-paragraph
     rich_text bodies render as a single dense block. */
  .prose :where(p, ul, ol, blockquote):not(:where([class~="not-prose"] *)) {
    margin: 1em 0;
  }
  .prose > :where(p, ul, ol, blockquote, h2, h3, h4):first-child { margin-top: 0; }
  .prose > :where(p, ul, ol, blockquote):last-child { margin-bottom: 0; }
  .prose :where(ul, ol):not(:where([class~="not-prose"] *)) { padding-left: 1.5em; }
  .prose :where(ul):not(:where([class~="not-prose"] *)) { list-style: disc; }
  .prose :where(ol):not(:where([class~="not-prose"] *)) { list-style: decimal; }
  .prose :where(li):not(:where([class~="not-prose"] *)) { margin: 0.4em 0; }
  .prose :where(h2):not(:where([class~="not-prose"] *)) {
    margin-top: 1.6em;
    margin-bottom: 0.6em;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.25;
  }
  .prose :where(h3):not(:where([class~="not-prose"] *)) {
    margin-top: 1.4em;
    margin-bottom: 0.5em;
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.3;
  }
.container {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
  padding-right: 1.25rem;
  padding-left: 1.25rem;
}
@media (min-width: 640px) {

  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {

  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {

  .container {
    max-width: 1024px;
    padding-right: 2rem;
    padding-left: 2rem;
  }
}
@media (min-width: 1200px) {

  .container {
    max-width: 1200px;
  }
}
@media (min-width: 1320px) {

  .container {
    max-width: 1320px;
  }
}
.container-wdc {
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 1024px) {

  .container-wdc {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
/* Buttons */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 10px 30px -10px rgba(27, 73, 129, 0.30), 0 4px 12px -4px rgba(27, 73, 129, 0.16);
  --tw-shadow-colored: 0 10px 30px -10px var(--tw-shadow-color), 0 4px 12px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #1B4981;
  --tw-shadow: var(--tw-shadow-colored);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-primary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(22 60 107 / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 24px 60px -12px rgba(27, 73, 129, 0.26), 0 8px 24px -8px rgba(27, 73, 129, 0.14);
  --tw-shadow-colored: 0 24px 60px -12px var(--tw-shadow-color), 0 8px 24px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.btn-primary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.btn-primary:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(27 73 129 / 0.3);
}
/* Secondary CTA — outline on LIGHT surfaces (heroes are now light): teal border
     + teal label, fills teal on hover. WCAG AA on white. */
.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  border-width: 1px;
  border-color: rgb(27 73 129 / 0.6);
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-secondary .st-card { background: #FAF5EC; border-color: #F1E9DA; }
.btn-secondary .ck-chip { background: #FAF5EC; }
.btn-secondary .rv-leave { background: #FAF5EC; }
.btn-secondary:hover {
  --tw-border-opacity: 1;
  border-color: rgb(27 73 129 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.btn-secondary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.btn-secondary:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(27 73 129 / 0.25);
}
/* Outline CTA for light-background sections (rich_text callouts, etc.) */
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.5rem;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(27 73 129 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-outline .st-card { background: #FAF5EC; border-color: #F1E9DA; }
.btn-outline .ck-chip { background: #FAF5EC; }
.btn-outline .rv-leave { background: #FAF5EC; }
.btn-outline:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
  --tw-shadow: 0 10px 30px -10px rgba(27, 73, 129, 0.30), 0 4px 12px -4px rgba(27, 73, 129, 0.16);
  --tw-shadow-colored: 0 10px 30px -10px var(--tw-shadow-color), 0 4px 12px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #1B4981;
  --tw-shadow: var(--tw-shadow-colored);
}
.btn-outline:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.btn-outline:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(27 73 129 / 0.25);
}
.btn-outline .arrow {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
    display: inline-block;
}
.btn-outline:hover .arrow,
  .btn-outline:focus-visible .arrow {
    transform: translateX(4px);
  }
/* Inline prose links inside FAQ answers: readable without a persistent
     underline (which competes with the button-style CTA at the end of the
     answer), but with a clear hover affordance. */
.faq-answer.prose :where(a):not(:where(.btn-outline, [class~="not-prose"] *)) {
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
  text-decoration-line: none;
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-size: 0% 1px;
    background-position: 0 100%;
    transition: background-size 250ms ease, color 150ms ease;
}
.faq-answer.prose :where(a):not(:where(.btn-outline, [class~="not-prose"] *)):hover,
  .faq-answer.prose :where(a):not(:where(.btn-outline, [class~="not-prose"] *)):focus-visible {
    background-size: 100% 1px;
    color: #163C6B;
  }
/* Wrapper lifted out of a prose <p> so the outline CTA sits with clear
     vertical breathing room instead of hugging the paragraph above it. */
.cta-row {
  margin-top: 1.5rem;
}
@media (min-width: 1024px) {

  .cta-row {
    margin-top: 2rem;
  }
}
.cta-row + .cta-row {
  margin-top: 0.75rem;
}
/* Section rhythm */
.\!section {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media (min-width: 640px) {

  .\!section {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
@media (min-width: 1024px) {

  .\!section {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }
}
.section {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media (min-width: 640px) {

  .section {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
@media (min-width: 1024px) {

  .section {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }
}
.section-tight {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
@media (min-width: 640px) {

  .section-tight {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }
}
@media (min-width: 1024px) {

  .section-tight {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }
}
/* ---------------------------------------------------------------------
     SECTION PACING (see wdc_section_shell() in inc/helpers.php)
     Three weights instead of one, so a long practice hub has a hierarchy
     of "big moment" vs "supporting detail" rather than five identical
     slabs. `sec-welded` collapses the top padding when two consecutive
     sections share a tone: the pair then reads as one movement, and the
     full double gap is reserved for an actual change of argument.
  --------------------------------------------------------------------- */
/* 2026-10-19: the desktop steps were 6.5 / 9 / 5rem, which opened 200-290px
     bands of nothing between sections on the long location pages. Tighter,
     and closer together, so the hierarchy survives without the dead air. */
.sec-ground { padding-block: 3.5rem; }
.sec-moment { padding-block: 4.25rem; }
.sec-aside  { padding-block: 3rem; }
@media (min-width: 640px) {
    .sec-ground { padding-block: 4.25rem; }
    .sec-moment { padding-block: 5.25rem; }
    .sec-aside  { padding-block: 3.75rem; }
  }
@media (min-width: 1024px) {
    .sec-ground { padding-block: 5rem; }
    .sec-moment { padding-block: 6.25rem; }
    .sec-aside  { padding-block: 4.5rem; }
  }
.sec-welded { padding-top: 0; }
/* When two same-tone sections stack (e.g. multiple FAQ groups), collapse the
     inner gap so visitors don't feel the "hall of groups" effect. Apply via
     PHP on second-onward occurrences of the same block type. */
.section-stack { padding-top: 0 !important; }
.section-stack:has(+ .section-stack) { padding-bottom: 1.5rem !important; }
.\!section:has(+ .section-stack) { padding-bottom: 1.5rem !important; }
.section:has(+ .section-stack), .section-tight:has(+ .section-stack) { padding-bottom: 1.5rem !important; }
/* Real PNG logo has dark artwork on a transparent background. In the
     dark-teal site header we invert it to white via filter so we can reuse
     a single asset everywhere. Footer / light surfaces use it as-is. */
.logo-on-dark {
    filter: brightness(0) invert(1);
  }
/* ---------- Site header: fixed overlay → cream backdrop on scroll ---------- */
.site-header {
    position: sticky; top: 0; z-index: 50;
    background: #FFFFFF;
    border-bottom: 1px solid #E4E0D8;
    transition: background .35s ease, border-color .35s ease, box-shadow .35s ease, color .25s ease;
  }
/* Home: overlay the full-bleed hero (transparent), so it must be fixed, not sticky. */
.site-header[data-overlay="true"] {
    position: fixed; left: 0; right: 0;
  }
/* Scrolled (any page): translucent cream backdrop with blur. */
.site-header[data-scrolled] {
    background: rgba(251, 248, 242, 0.82);
    backdrop-filter: saturate(180%) blur(12px);
    border-bottom-color: rgba(27, 37, 55, 0.08);
    box-shadow: 0 8px 28px -20px rgba(27, 37, 55, 0.55);
  }
/* Overlay (home): transparent with light type over the hero photo, until scrolled. */
.site-header[data-overlay="true"]:not([data-scrolled]) {
    background: transparent;
    border-bottom-color: transparent;
    box-shadow: none;
  }
/* Two vector lockups, one visible at a time. The old approach was a CSS
     filter over a PNG — `brightness(0) invert(1)` flattens the mark's knocked-out
     initials into a solid white blob, which is exactly what made it look cheap. */
.site-logo--light { display: none; }
.site-header[data-overlay="true"]:not([data-scrolled]) .site-logo--dark  { display: none; }
.site-header[data-overlay="true"]:not([data-scrolled]) .site-logo--light { display: block;
    filter: drop-shadow(0 1px 12px rgba(10, 15, 26, 0.55)); }
.site-header[data-overlay="true"]:not([data-scrolled]) .nav-primary-desktop > li > .nav-link,
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-action="call-now"],
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-action="call-now"] svg,
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-menu-toggle],
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-menu-toggle] svg {
    color: #ffffff;
  }
.site-header[data-overlay="true"]:not([data-scrolled]) [data-primary-nav-row] > span[aria-hidden] {
    background-color: rgba(255, 255, 255, 0.3);
  }
/* Type over the video needs its own shadow — the scrim alone isn't enough
     over bright frames (grocery awnings, sky). */
.site-header[data-overlay="true"]:not([data-scrolled]) .nav-primary-desktop > li > .nav-link,
  .site-header[data-overlay="true"]:not([data-scrolled]) [data-action="call-now"] {
    text-shadow: 0 1px 10px rgba(10, 15, 26, 0.7);
  }
/* Language switcher chip: readable over the video, matches the ghost CTA. */
.site-header[data-overlay="true"]:not([data-scrolled]) .lang-switch {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.55);
    background: rgba(20, 29, 44, 0.25);
  }
.site-header[data-overlay="true"]:not([data-scrolled]) .lang-switch:hover {
    border-color: #ffffff;
    color: #ffffff;
  }
/* Header CTA (Free Consultation) over the video: solid white pill, navy text —
     the ghost outline version drowned in bright frames. */
.site-header[data-overlay="true"]:not([data-scrolled]) .header-cta {
    background: #ffffff;
    border-color: #ffffff;
    color: #2E2E2F;
    box-shadow: 0 10px 30px -12px rgba(10, 15, 26, 0.6);
  }
/* Nav hover/active underline turns white over the transparent hero header. */
.site-header[data-overlay="true"]:not([data-scrolled]) .nav-primary-desktop .nav-link::after {
    background: #ffffff;
  }
/* Header CTA — thin bordered pill (md2 concierge). Ink on light; white on the hero. */
.header-cta {
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid rgba(27, 37, 55, 0.35);
    border-radius: 9999px;
    padding: 0.75rem 1.75rem;
    font-weight: 600;
    font-size: 0.95rem;
    white-space: nowrap;
    letter-spacing: 0.01em;
    color: #2E2E2F;
    transition: background .25s ease, color .25s ease, border-color .25s ease;
  }
.header-cta:hover,
  .header-cta:focus-visible { background: #1B4981; border-color: #1B4981; color: #fff; }
.header-cta--sm { padding: 0.4rem 0.9rem; font-size: 0.8rem; }
.site-header[data-overlay="true"]:not([data-scrolled]) .header-cta:hover,
  .site-header[data-overlay="true"]:not([data-scrolled]) .header-cta:focus-visible {
    background: #D5B48D; color: #2E2E2F; border-color: #D5B48D;
  }
/* Eyebrow tags */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.eyebrow::before {
    content: '';
    display: block;
    height: 1px;
    width: 1.5rem;
    background-color: rgb(27 73 129 / 0.6);
  }
/* Heroes are LIGHT now, so the "on-dark" eyebrow resolves to the same teal as the
     standard eyebrow (kept as a class so existing markup needs no churn). */
.eyebrow.eyebrow-on-dark {
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.eyebrow.eyebrow-on-dark::before {
  background-color: rgb(27 73 129 / 0.6);
}
.eyebrow.eyebrow-plain::before { content: none; }
/* =====================================================================
     Ponte Vedra HOME TYPE SCALE  (single source of truth — premium-minimal)
     ---------------------------------------------------------------------
     The home was cluttered by ~9 competing type treatments (bold serif at
     many sizes for titles, stats, card titles, locations, org names …).
     This collapses everything onto ONE disciplined scale, modelled on the
     approved editorial method rows + Function/md2 references:

       DISPLAY SERIF (Libre Bodoni) — LIGHT (400). Section H2 + editorial rows
         ONLY. Never bold. Italic <em> for the roman/italic mix.
       EYEBROW — italic Libre Bodoni, calm gray. The ONE eyebrow style. No more
         uppercase-tracked label variant on the home.
       SUB-ITEM / CARD / LOCATION / ORG TITLES — clean SANS, medium (500).
         (Biggest declutter: stops every card from shouting in bold serif.)
       STAT NUMBERS — light serif (400), smaller, never bold.
       META LABEL — small calm sans (not uppercase-tracked). Used for stat
         labels, leagues, roles, testimonial attributions.
       BODY — one sans size ≥16px, warm-dark, relaxed line-height.
       LINK — one underlined text-link (.rc-textlink).
     ===================================================================== */
/* Section header (eyebrow + h2 + intro) */
.section-header .rc-stat-cell > .rc-stat { justify-content: center; }
.section-header {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 3.5rem;
  max-width: 42rem;
}
.section-header > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.section-header {
  text-align: center;
}
@media (min-width: 1024px) {

  .section-header {
    margin-bottom: 4rem;
  }
}
.section-header--left {
  margin-left: 0px;
  margin-right: 0px;
  text-align: left;
}
/* Section H2 — LIGHT display serif (was font-bold). */
.section-title {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-weight: 400;
  line-height: 1.12;
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
    letter-spacing: -0.012em;
    /* Fluid scale: 1.875rem (30px) on small screens → 2.5rem (40px) on xl */
    font-size: clamp(1.875rem, 1.35rem + 1.8vw, 2.5rem);
}
.section-title--xl {
    /* Fluid scale: 2.25rem (36px) → 3rem (48px) */
    font-size: clamp(2.25rem, 1.6rem + 2.1vw, 3rem);
  }
/* ---------------------------------------------------------------------
     The section heading takes its size from the section's WEIGHT, not from
     the block that happens to render it. Before this, every H2 on a
     practice hub — recoveries, first-week checklist, FAQ, closing ask —
     was the same 40px, so nothing dominated and the page read as a list of
     equals. Now the moment is ~56px, the ground ~40px and an aside ~30px:
     a visitor scrolling fast can see which section is the argument and
     which is the footnote.
  --------------------------------------------------------------------- */
.sec-moment .section-title {
    font-size: clamp(2rem, 1.35rem + 2.1vw, 3rem);
    line-height: 1.08;
    letter-spacing: -0.016em;
  }
.sec-ground .section-title {
    font-size: clamp(1.875rem, 1.35rem + 1.8vw, 2.5rem);
  }
.sec-aside .section-title {
    font-size: clamp(1.625rem, 1.3rem + 1.1vw, 2.2rem);
    line-height: 1.16;
  }
/* `--xl` is an explicit opt-in for the one heading in a ground section
     that should carry the section on its own (the practice-cases grid). */
.sec-ground .section-title--xl {
    font-size: clamp(2.125rem, 1.5rem + 2vw, 2.875rem);
  }
.section-intro {
  line-height: 1.625;
  color: rgb(86 87 87 / 0.9);
    font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);
}
/* The ONE eyebrow style on the home: calm italic serif. */
.rc-eyebrow {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-style: italic;
  line-height: 1.375;
  --tw-text-opacity: 1;
  color: rgb(118 118 119 / var(--tw-text-opacity, 1));
    font-size: clamp(1.0625rem, 0.98rem + 0.4vw, 1.25rem);
}
/* Sub-item / card / location / org title — clean SANS, medium weight.
     This is the core declutter: NOT bold serif. */
.rc-card-title {
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  font-weight: 500;
  line-height: 1.375;
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
    letter-spacing: -0.006em;
    font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem);
}
/* Card / body copy — one readable sans size, warm-dark. */
.rc-card-body {
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  line-height: 1.625;
  color: rgb(86 87 87 / 0.9);
    font-size: 1rem;
}
/* Calm meta label — replaces every uppercase-tracked label on the home. */
.rc-meta {
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  line-height: 1.375;
  --tw-text-opacity: 1;
  color: rgb(118 118 119 / var(--tw-text-opacity, 1));
    font-size: 0.875rem;
    letter-spacing: 0;
}
/* Stat figure — light display serif, never bold. */
.rc-stat {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-weight: 400;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
    letter-spacing: -0.01em;
    font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.25rem);
    text-wrap: balance;
}
/* Longer values step down so a phrase and a number can share a row without
     one of them wrapping over five lines. */
.rc-stat--md {
    font-size: clamp(1.25rem, 1.05rem + 0.7vw, 1.5rem);
    line-height: 1.15;
  }
.rc-stat--sm {
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  font-weight: 500;
    font-size: clamp(0.95rem, 0.9rem + 0.25vw, 1.0625rem);
    line-height: 1.35;
    letter-spacing: 0;
}
/* Stat cells: let the value grow to fill the tallest cell so every label in
     the row lands on one line. An em-based min-height cannot do this — em is
     relative to each modifier's own font-size, so the reserved blocks differ
     in pixels and the single-line value still sat lower than the rest. */
.rc-stat-cell {
  display: flex;
  height: 100%;
  flex-direction: column;
}
.rc-stat-cell > .rc-stat,
  .rc-stat-cell > .rc-stat--md,
  .rc-stat-cell > .rc-stat--sm {
    flex: 1 1 auto;
    display: flex;
    align-items: flex-end;
  }
.text-center .rc-stat-cell > .rc-stat { justify-content: center; }
/* Decorative accents */
.accent-bar {
  height: 0.25rem;
  width: 3rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
}
/* Hero-specific background layers.
     LIGHT hero: soft white/teal wash + DARK ink text. The class name keeps the
     historical "ink" for markup stability, but the surface is now light. A subtle
     bottom border anchors it against the next section. */
/* Inner-page hero: clean flat cream — same canvas language as the home's
     alternating sections. No teal grid, no corner glow, no decorative washes. */
.hero-ink {
  position: relative;
  overflow: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 236 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
}
.hero-ink .st-xref { background: #fff; }
.hero-ink .ck-item { background: #fff; }
/* Legacy "soft" section — now resolves to the flat warm cream canvas so it
     stays inside the home's cream/white language (no taupe, no wash). */
.section-soft {
  position: relative;
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 236 / var(--tw-bg-opacity, 1));
}
.section-soft .st-xref { background: #fff; }
.section-soft .ck-item { background: #fff; }
.section-soft > * { position: relative; }
/* Card base styles */
.card-surface {
  border-radius: 1rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(233 223 204 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  --tw-shadow: 0 2px 8px -2px rgba(46, 46, 47, 0.08);
  --tw-shadow-colored: 0 2px 8px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.card-surface .st-card { background: #FAF5EC; border-color: #F1E9DA; }
.card-surface .ck-chip { background: #FAF5EC; }
.card-surface .rv-leave { background: #FAF5EC; }
.card-surface-hover {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}
.card-surface-hover:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  border-color: rgb(27 73 129 / 0.3);
  --tw-shadow: 0 20px 40px -12px rgba(46, 46, 47, 0.18), 0 8px 16px -8px rgba(46, 46, 47, 0.08);
  --tw-shadow-colored: 0 20px 40px -12px var(--tw-shadow-color), 0 8px 16px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
/* ---------- Resource "book" card ---------- */
/* A portrait book with spine, stacked pages, and a tilt-open 3D hover.
     Used via feature_grid with `variant: 'book'` on /resources-library. */
.book-card {
    perspective: 1600px;
    perspective-origin: 60% 40%;
    /* Keep the tilted cover from being clipped by the parent grid gap. */
    padding-bottom: 4px;
  }
.book {
    position: relative;
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
    aspect-ratio: 5 / 7;       /* Book cover proportions. */
    transform-style: preserve-3d;
    transition: transform 500ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }
.book-card:hover .book { transform: translateY(-4px); }
.book__cover {
    position: absolute;
    inset: 0;
    border-radius: 3px 12px 12px 3px;   /* Slightly rounded outer corner. */
    background: #2E2E2F;
    overflow: hidden;
    transform-origin: left center;
    transform: rotateY(-2deg);
    transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1),
                box-shadow 500ms ease;
    box-shadow:
      2px 4px 10px rgba(17, 41, 43, 0.18),
      6px 12px 30px rgba(17, 41, 43, 0.25),
      inset -1px 0 0 rgba(255, 255, 255, 0.05);
    z-index: 2;
  }
.book-card:hover .book__cover,
  .book-card:focus-visible .book__cover {
    transform: rotateY(-34deg);
    box-shadow:
      4px 8px 16px rgba(17, 41, 43, 0.22),
      14px 22px 44px rgba(17, 41, 43, 0.32),
      inset -1px 0 0 rgba(255, 255, 255, 0.06);
  }
.book__cover-img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    display: block;
  }
.book__cover-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%; height: 100%;
    padding: 1.25rem;
    text-align: center;
    color: #ffffff;
    font-weight: 700;
    font-size: 1rem;
    background: linear-gradient(145deg, #2E2E2F 0%, #1B4981 100%);
  }
/* Darker inner ridge along the spine (left edge) of the cover. */
.book__spine {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 10px;
    background:
      linear-gradient(to right,
        rgba(0, 0, 0, 0.35) 0%,
        rgba(0, 0, 0, 0.14) 45%,
        rgba(255, 255, 255, 0.05) 80%,
        rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
  }
/* Stacked page edges sticking out under/right of the cover. */
.book__pages {
    position: absolute;
    top: 4px; right: -5px; bottom: 4px;
    width: 6px;
    background:
      repeating-linear-gradient(
        to bottom,
        #ffffff 0 1px,
        #E4E0D8 1px 2px
      );
    border-radius: 0 3px 3px 0;
    box-shadow: 1px 0 2px rgba(17, 41, 43, 0.15);
    z-index: 1;
  }
/* Back page peeking from behind the cover when it tilts open. */
.book__back {
    position: absolute;
    inset: 0;
    border-radius: 3px 12px 12px 3px;
    background:
      linear-gradient(135deg, #F7F4EF 0%, #F5EFE6 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1B4981;
    font-weight: 700;
    letter-spacing: 0.14em;
    font-size: 0.75rem;
    text-transform: uppercase;
    z-index: 1;
    box-shadow: inset 2px 0 4px rgba(17, 41, 43, 0.1);
  }
/* Compact book thumbnail used in the resource hero (dark background). */
.hero-book {
    width: 140px;
    aspect-ratio: 5 / 7;
    perspective: 1200px;
  }
.hero-book__cover {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 2px 10px 10px 2px;
    overflow: hidden;
    transform: rotateY(-8deg);
    transform-origin: left center;
    background: #ffffff;
    box-shadow:
      4px 8px 20px rgba(0, 0, 0, 0.25),
      12px 20px 40px rgba(0, 0, 0, 0.35),
      inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  }
.hero-book__cover-img {
    width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; display: block;
  }
.hero-book__spine {
    position: absolute; left: 0; top: 0; bottom: 0; width: 8px;
    background: linear-gradient(to right, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.14) 60%, rgba(0,0,0,0) 100%);
    pointer-events: none;
  }
.hero-book__pages {
    position: absolute; top: 3px; right: -4px; bottom: 3px; width: 5px;
    background: repeating-linear-gradient(to bottom, #ffffff 0 1px, #D8D2C7 1px 2px);
    border-radius: 0 2px 2px 0;
    box-shadow: 1px 0 2px rgba(0, 0, 0, 0.25);
  }
/* Scroll-reveal used by the book cards and other [data-reveal] elements. */
[data-reveal] {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 600ms ease, transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
    transition-delay: var(--reveal-delay, 0ms);
  }
[data-reveal].is-revealed {
    opacity: 1;
    transform: translateY(0);
  }
@media (prefers-reduced-motion: reduce) {
    .book,
    .book__cover,
    [data-reveal] {
      transition: none !important;
    }
    .book-card:hover .book__cover,
    .book-card:focus-visible .book__cover {
      transform: rotateY(-2deg); /* stay at rest */
    }
    [data-reveal] { opacity: 1; transform: none; }
  }
/* Icon badges */
.icon-badge {
  display: inline-flex;
  height: 2.75rem;
  width: 2.75rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  --tw-bg-opacity: 1;
  background-color: rgb(237 242 249 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.icon-badge-lg {
  display: inline-flex;
  height: 3.5rem;
  width: 3.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(237 242 249 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.icon-badge-dark {
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 10px 30px -10px rgba(27, 73, 129, 0.30), 0 4px 12px -4px rgba(27, 73, 129, 0.16);
  --tw-shadow-colored: 0 10px 30px -10px var(--tw-shadow-color), 0 4px 12px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #1B4981;
  --tw-shadow: var(--tw-shadow-colored);
}
/* Check bullet */
.check-bullet {
  display: inline-flex;
  height: 1.25rem;
  width: 1.25rem;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(248 243 236 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(154 116 72 / var(--tw-text-opacity, 1));
}
.check-bullet svg { width: 12px; height: 12px; stroke-width: 3; }
/* Numbered marker for process steps — teal brand fill, white number (AA). */
.step-number {
  display: inline-flex;
  height: 3rem;
  width: 3rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background-image: linear-gradient(135deg, #2A5FA0 0%, #1B4981 55%, #0E2542 100%);
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-shadow: 0 10px 30px -10px rgba(27, 73, 129, 0.30), 0 4px 12px -4px rgba(27, 73, 129, 0.16);
  --tw-shadow-colored: 0 10px 30px -10px var(--tw-shadow-color), 0 4px 12px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  --tw-shadow-color: #1B4981;
  --tw-shadow: var(--tw-shadow-colored);
}
/* Divider wedge used between dark hero and light section */
.hero-wedge {
    position: relative;
  }
/* ---------- Sticky mobile call/book bar ---------- */
.mobile-cta-bar {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 45;
    display: flex;
    gap: 0.625rem;
    align-items: stretch;
    padding: 0.625rem 0.875rem calc(0.625rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: saturate(180%) blur(12px);
    border-top: 1px solid #E4E0D8;
    box-shadow: 0 -8px 24px -12px rgba(17, 41, 43, 0.25);
  }
.mobile-cta-bar__call {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    min-width: 5.5rem;
    padding: 0.75rem 1rem;
    border-radius: 0.625rem;
    border: 1.5px solid #1B4981;
    color: #1B4981;
    font-weight: 600;
    font-size: 0.9375rem;
    background: #fff;
  }
.mobile-cta-bar__call:active { background: #FAF7F2; }
/* Chat opens Elena's panel (her floating bar is hidden below lg). */
.mobile-cta-bar__chat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    flex: 0 0 auto;
    padding: 0.75rem 0.75rem;
    border-radius: 0.625rem;
    border: 1.5px solid #1B4981;
    color: #1B4981;
    font: inherit;
    font-weight: 600;
    font-size: 0.9375rem;
    background: #fff;
    cursor: pointer;
  }
.mobile-cta-bar__chat:active { background: #FAF7F2; }
.mobile-cta-bar__book {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    padding: 0.75rem 1rem;
    border-radius: 0.625rem;
    background: #1B4981;
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    box-shadow: 0 8px 20px -8px rgba(45, 63, 94, 0.55);
  }
.mobile-cta-bar__book:active { background: #163C6B; }
/* Three buttons on one row: Call and Chat size to their label, the consult
     button takes the rest. */
.mobile-cta-bar { gap: 0.5rem; padding-left: 0.75rem; padding-right: 0.75rem; }
.mobile-cta-bar__call { gap: 0.4rem; min-width: 0; padding: 0.75rem 0.75rem; }
.mobile-cta-bar__book { flex: 1 1 0; min-width: 0; white-space: nowrap; padding: 0.75rem 0.5rem; }
@media (max-width: 419px) {
    .mobile-cta-bar__call, .mobile-cta-bar__chat, .mobile-cta-bar__book { font-size: 0.875rem; }
    .mobile-cta-bar__call, .mobile-cta-bar__chat { padding: 0.7rem 0.6rem; }
    .mobile-cta-bar svg { width: 18px; height: 18px; }
  }
/* Reserve space so the bar never hides the last footer row on mobile. */
@media (max-width: 1023px) {
    body { padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px)); }
  }
/* ---------------------------------------------------------------------
     Editorial numbered rows (md2 "Our Principles") — extreme whitespace,
     alternating large visual, serif numeral + roman/italic heading, an
     underlined text link. Zero chrome: hairline rules + space only.
  --------------------------------------------------------------------- */
.rc-editorial {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
@media (min-width: 640px) {

  .rc-editorial {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }
}
@media (min-width: 1024px) {

  .rc-editorial {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }
}
.rc-editorial__head {
  margin-bottom: 4rem;
}
@media (min-width: 1024px) {

  .rc-editorial__head {
    margin-bottom: 7rem;
  }
}
.rc-editorial__rows {
  margin: 0px;
  list-style-type: none;
  padding: 0px;
}
.rc-row {
  display: grid;
  align-items: center;
  row-gap: 2.5rem;
}
@media (min-width: 1024px) {

  .rc-row {
    -moz-column-gap: 5rem;
         column-gap: 5rem;
  }
}
.rc-row {
    grid-template-columns: 1fr;
  }
@media (min-width: 1024px) {
    .rc-row { grid-template-columns: 1fr 1fr; }
  }
/* Generous breathing room between rows + a single hairline divider. */
.rc-row + .rc-row {
  margin-top: 6rem;
  padding-top: 6rem;
}
@media (min-width: 1024px) {

  .rc-row + .rc-row {
    margin-top: 10rem;
    padding-top: 10rem;
  }
}
.rc-row + .rc-row {
    border-top: 1px solid #E9DFCC;
  }
/* Visual column. Alternate which side the visual sits on. */
.rc-row__visual {
  order: -9999;
}
@media (min-width: 1024px) {
    .rc-row--reverse .rc-row__visual { order: 2; }
    .rc-row--reverse .rc-row__copy   { order: 1; }
  }
.rc-row__photo {
  height: auto;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
    aspect-ratio: 4 / 5;
}
.rc-row__anim {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
/* Copy column. */
.rc-row__num {
  margin-bottom: 1.5rem;
  display: block;
  line-height: 1;
  color: rgb(118 118 119 / 0.55);
}
@media (min-width: 1024px) {

  .rc-row__num {
    margin-bottom: 2rem;
  }
}
.rc-row__num {
    font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.25rem);
    font-feature-settings: "tnum";
  }
.rc-row__title {
  font-weight: 400;
  line-height: 1.12;
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
    font-size: clamp(1.875rem, 1.3rem + 2.2vw, 3rem);
}
.rc-row__title em {
  font-style: italic;
}
.rc-row__body {
  margin-top: 1.5rem;
  max-width: 28rem;
  line-height: 1.625;
  color: rgb(86 87 87 / 0.85);
    font-size: clamp(1rem, 0.96rem + 0.25vw, 1.125rem);
}
/* Quiet underlined text link — the only CTA style allowed in content. */
.rc-textlink {
  margin-top: 2rem;
  display: inline-block;
  font-weight: 500;
  letter-spacing: 0.025em;
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
    font-size: 0.9375rem;
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-thickness: 1px;
    text-decoration-color: #767677;
    transition: text-decoration-color 200ms ease, color 200ms ease;
}
.rc-textlink:hover { text-decoration-color: currentColor; }
/* When the whole card is the anchor, the textlink renders as a <span>; let the
     parent group's hover drive the underline so it still reads as a link. */
.group:hover .rc-textlink--static { text-decoration-color: currentColor; }
/* ---------------------------------------------------------------------
     RESULTS LEDGER (template-parts/blocks/case-results.php)
     A record, not a card deck. Rounded tiles with drop shadows made 29
     published recoveries read like a SaaS pricing table; a firm trying
     these cases since 1957 should read as a ledger. Hairline rules,
     square corners, a short gold rule as the marker, and the figure in
     the display serif with tabular figures so the amounts align down the
     column no matter how many digits each one carries.
  --------------------------------------------------------------------- */
.results-ledger {
  margin: 0px;
  display: grid;
  list-style-type: none;
  padding: 0px;
    border-top: 1px solid #E9DFCC;
}
@media (min-width: 1024px) {
    /* Two columns of rows. `column-gap` is wide enough that the two ledgers
       read as separate columns rather than a four-cell table. */
    .results-ledger { grid-template-columns: 1fr 1fr; -moz-column-gap: 4rem; column-gap: 4rem; }
    .results-ledger--three { grid-template-columns: repeat(3, minmax(0, 1fr)); -moz-column-gap: 3rem; column-gap: 3rem; }
    .results-ledger--three .result-cell { grid-template-columns: 1fr; row-gap: .85rem; align-items: start; align-content: start; }
  }
.results-ledger--dark { border-top-color: rgba(255, 255, 255, 0.18); }
/* One recovery. Amount column is fixed so every figure starts on the same
     axis; the description flows in the rest. Below sm the amount stacks. */
.result-cell {
  position: relative;
  display: grid;
  row-gap: 0.25rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
@media (min-width: 640px) {

  .result-cell {
    padding-top: 1.75rem;
    padding-bottom: 1.75rem;
  }
}
.result-cell {
    grid-template-columns: 1fr;
    border-bottom: 1px solid #E9DFCC;
  }
@media (min-width: 640px) {
    /* 11.5rem is sized off the longest figure the firm publishes ($7,500,000)
       at the largest step of the clamp below, so no amount can spill into the
       description column and every figure still starts on the same axis. */
    .result-cell {
      grid-template-columns: minmax(0, 11.5rem) 1fr;
      -moz-column-gap: 1.75rem;
           column-gap: 1.75rem;
      align-items: baseline;
    }
  }
.results-ledger--dark .result-cell { border-bottom-color: rgba(255, 255, 255, 0.18); }
/* The marker: a short gold rule riding the row's top edge, in place of a
     bullet. Sits on the cell, not the border, so it survives the dark variant. */
.result-cell::before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: block;
    width: 1.75rem;
    height: 2px;
    background: #B68C5A;
  }
.result-cell__amount {
  margin: 0px;
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
    font-size: clamp(1.375rem, 1.05rem + 1.1vw, 1.875rem);
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.results-ledger--dark .result-cell__amount { color: #B68C5A; }
.result-cell__desc {
  margin: 0px;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(86 87 87 / var(--tw-text-opacity, 1));
    font-size: 0.9375rem;
}
.results-ledger--dark .result-cell__desc { color: rgba(255, 255, 255, 0.78); }
/* Foot: the CTA and the disclaimer that must always ship with it. */
.results-ledger__foot {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}
@media (min-width: 1024px) {

  .results-ledger__foot {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 3rem;
  }
}
.results-ledger__cta {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
    font-size: 0.9375rem;
    text-decoration: underline;
    text-underline-offset: 6px;
    text-decoration-thickness: 1px;
    text-decoration-color: #B68C5A;
    transition: text-decoration-color 200ms ease, color 200ms ease, gap 200ms ease;
}
/* Without an explicit box an inline SVG with only a viewBox stretches to the
     width of its container — which is exactly how this arrow ended up filling
     the section. Size it off the type, and never let it flex. */
.results-ledger__cta svg {
    width: 1.05em;
    height: 1.05em;
    flex: none;
  }
.results-ledger__cta:hover {
    text-decoration-color: currentColor;
    gap: 0.75rem;
  }
.results-ledger__foot--dark .results-ledger__cta {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.results-ledger__disclaimer {
  margin: 0px;
  max-width: 48rem;
  font-size: 0.75rem;
  line-height: 1rem;
  line-height: 1.625;
    color: rgba(46, 46, 47, 0.55);
}
.results-ledger__foot--dark .results-ledger__disclaimer { color: rgba(255, 255, 255, 0.55); }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.-right-10 {
  right: -2.5rem;
}
.-right-16 {
  right: -4rem;
}
.-top-10 {
  top: -2.5rem;
}
.-top-16 {
  top: -4rem;
}
.-top-3 {
  top: -0.75rem;
}
.-top-32 {
  top: -8rem;
}
.bottom-0 {
  bottom: 0px;
}
.bottom-2 {
  bottom: 0.5rem;
}
.bottom-6 {
  bottom: 1.5rem;
}
.left-0 {
  left: 0px;
}
.left-1\/2 {
  left: 50%;
}
.left-3 {
  left: 0.75rem;
}
.left-4 {
  left: 1rem;
}
.right-0 {
  right: 0px;
}
.right-10 {
  right: 2.5rem;
}
.right-3 {
  right: 0.75rem;
}
.right-4 {
  right: 1rem;
}
.top-0 {
  top: 0px;
}
.top-4 {
  top: 1rem;
}
.isolate {
  isolation: isolate;
}
.-z-10 {
  z-index: -10;
}
.z-10 {
  z-index: 10;
}
.order-first {
  order: -9999;
}
.col-span-4 {
  grid-column: span 4 / span 4;
}
.col-span-8 {
  grid-column: span 8 / span 8;
}
.m-0 {
  margin: 0px;
}
.mx-0 {
  margin-left: 0px;
  margin-right: 0px;
}
.mx-1\.5 {
  margin-left: 0.375rem;
  margin-right: 0.375rem;
}
.mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-6 {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
.my-7 {
  margin-top: 1.75rem;
  margin-bottom: 1.75rem;
}
.-mt-1 {
  margin-top: -0.25rem;
}
.-mt-10 {
  margin-top: -2.5rem;
}
.mb-1\.5 {
  margin-bottom: 0.375rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-12 {
  margin-bottom: 3rem;
}
.mb-14 {
  margin-bottom: 3.5rem;
}
.mb-16 {
  margin-bottom: 4rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-6 {
  margin-bottom: 1.5rem;
}
.mb-7 {
  margin-bottom: 1.75rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-auto {
  margin-left: auto;
}
.mr-2 {
  margin-right: 0.5rem;
}
.mt-0 {
  margin-top: 0px;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-12 {
  margin-top: 3rem;
}
.mt-14 {
  margin-top: 3.5rem;
}
.mt-16 {
  margin-top: 4rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-2\.5 {
  margin-top: 0.625rem;
}
.mt-24 {
  margin-top: 6rem;
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-7 {
  margin-top: 1.75rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-9 {
  margin-top: 2.25rem;
}
.mt-auto {
  margin-top: auto;
}
.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.contents {
  display: contents;
}
.hidden {
  display: none;
}
.aspect-\[16\/10\] {
  aspect-ratio: 16/10;
}
.aspect-\[16\/9\] {
  aspect-ratio: 16/9;
}
.aspect-\[3\/4\] {
  aspect-ratio: 3/4;
}
.aspect-\[4\/3\] {
  aspect-ratio: 4/3;
}
.aspect-\[5\/3\] {
  aspect-ratio: 5/3;
}
.aspect-video {
  aspect-ratio: 16 / 9;
}
.h-1 {
  height: 0.25rem;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-14 {
  height: 3.5rem;
}
.h-2 {
  height: 0.5rem;
}
.h-3 {
  height: 0.75rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-4 {
  height: 1rem;
}
.h-40 {
  height: 10rem;
}
.h-5 {
  height: 1.25rem;
}
.h-56 {
  height: 14rem;
}
.h-6 {
  height: 1.5rem;
}
.h-64 {
  height: 16rem;
}
.h-7 {
  height: 1.75rem;
}
.h-80 {
  height: 20rem;
}
.h-9 {
  height: 2.25rem;
}
.h-\[18px\] {
  height: 18px;
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.max-h-\[70vh\] {
  max-height: 70vh;
}
.max-h-full {
  max-height: 100%;
}
.min-h-\[2\.5rem\] {
  min-height: 2.5rem;
}
.min-h-screen {
  min-height: 100vh;
}
.w-1 {
  width: 0.25rem;
}
.w-1\.5 {
  width: 0.375rem;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-12 {
  width: 3rem;
}
.w-14 {
  width: 3.5rem;
}
.w-2 {
  width: 0.5rem;
}
.w-28 {
  width: 7rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-4 {
  width: 1rem;
}
.w-40 {
  width: 10rem;
}
.w-5 {
  width: 1.25rem;
}
.w-56 {
  width: 14rem;
}
.w-6 {
  width: 1.5rem;
}
.w-64 {
  width: 16rem;
}
.w-7 {
  width: 1.75rem;
}
.w-80 {
  width: 20rem;
}
.w-9 {
  width: 2.25rem;
}
.w-\[18px\] {
  width: 18px;
}
.w-auto {
  width: auto;
}
.w-full {
  width: 100%;
}
.w-px {
  width: 1px;
}
.min-w-0 {
  min-width: 0px;
}
.max-w-2xl {
  max-width: 42rem;
}
.max-w-3xl {
  max-width: 48rem;
}
.max-w-4xl {
  max-width: 56rem;
}
.max-w-5xl {
  max-width: 64rem;
}
.max-w-6xl {
  max-width: 72rem;
}
.max-w-\[1200px\] {
  max-width: 1200px;
}
.max-w-\[1680px\] {
  max-width: 1680px;
}
.max-w-\[16ch\] {
  max-width: 16ch;
}
.max-w-\[200px\] {
  max-width: 200px;
}
.max-w-\[440px\] {
  max-width: 440px;
}
.max-w-\[44rem\] {
  max-width: 44rem;
}
.max-w-\[52rem\] {
  max-width: 52rem;
}
.max-w-\[620px\] {
  max-width: 620px;
}
.max-w-\[640px\] {
  max-width: 640px;
}
.max-w-\[80\%\] {
  max-width: 80%;
}
.max-w-lg {
  max-width: 32rem;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-none {
  max-width: none;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xl {
  max-width: 36rem;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-shrink {
  flex-shrink: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.shrink-0 {
  flex-shrink: 0;
}
.grow {
  flex-grow: 1;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-pointer {
  cursor: pointer;
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.resize {
  resize: both;
}
.scroll-mt-24 {
  scroll-margin-top: 6rem;
}
.list-none {
  list-style-type: none;
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-\[auto\2c 1fr\] {
  grid-template-columns: auto 1fr;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-10 {
  gap: 2.5rem;
}
.gap-12 {
  gap: 3rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-3 {
  gap: 0.75rem;
}
.gap-3\.5 {
  gap: 0.875rem;
}
.gap-4 {
  gap: 1rem;
}
.gap-5 {
  gap: 1.25rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-x-10 {
  -moz-column-gap: 2.5rem;
       column-gap: 2.5rem;
}
.gap-x-12 {
  -moz-column-gap: 3rem;
       column-gap: 3rem;
}
.gap-x-16 {
  -moz-column-gap: 4rem;
       column-gap: 4rem;
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-5 {
  -moz-column-gap: 1.25rem;
       column-gap: 1.25rem;
}
.gap-x-6 {
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
}
.gap-x-8 {
  -moz-column-gap: 2rem;
       column-gap: 2rem;
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-1\.5 {
  row-gap: 0.375rem;
}
.gap-y-10 {
  row-gap: 2.5rem;
}
.gap-y-12 {
  row-gap: 3rem;
}
.gap-y-14 {
  row-gap: 3.5rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-3 {
  row-gap: 0.75rem;
}
.gap-y-4 {
  row-gap: 1rem;
}
.gap-y-8 {
  row-gap: 2rem;
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.375rem * var(--tw-space-y-reverse));
}
.space-y-10 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2.5rem * var(--tw-space-y-reverse));
}
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.625rem * var(--tw-space-y-reverse));
}
.space-y-20 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-3\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.875rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.875rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.25rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-brand-muted-200 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(233 223 204 / var(--tw-divide-opacity, 1));
}
.divide-white\/10 > :not([hidden]) ~ :not([hidden]) {
  border-color: rgb(255 255 255 / 0.1);
}
.self-start {
  align-self: flex-start;
}
.overflow-hidden {
  overflow: hidden;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.text-wrap {
  text-wrap: wrap;
}
.text-balance {
  text-wrap: balance;
}
.break-words {
  overflow-wrap: break-word;
}
.rounded {
  border-radius: 0.375rem;
}
.rounded-2xl {
  border-radius: 1rem;
}
.rounded-3xl {
  border-radius: 1.5rem;
}
.rounded-\[1\.5rem\] {
  border-radius: 1.5rem;
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: 0.5rem;
}
.rounded-md {
  border-radius: 0.375rem;
}
.rounded-sm {
  border-radius: 0.1875rem;
}
.rounded-xl {
  border-radius: 0.75rem;
}
.border {
  border-width: 1px;
}
.border-2 {
  border-width: 2px;
}
.border-b {
  border-bottom-width: 1px;
}
.border-l-2 {
  border-left-width: 2px;
}
.border-t {
  border-top-width: 1px;
}
.border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}
.border-brand-accent {
  --tw-border-opacity: 1;
  border-color: rgb(182 140 90 / var(--tw-border-opacity, 1));
}
.border-brand-ink\/15 {
  border-color: rgb(46 46 47 / 0.15);
}
.border-brand-ink\/30 {
  border-color: rgb(46 46 47 / 0.3);
}
.border-brand-ink\/40 {
  border-color: rgb(46 46 47 / 0.4);
}
.border-brand-muted {
  --tw-border-opacity: 1;
  border-color: rgb(241 233 218 / var(--tw-border-opacity, 1));
}
.border-brand-muted-200 {
  --tw-border-opacity: 1;
  border-color: rgb(233 223 204 / var(--tw-border-opacity, 1));
}
.border-brand-muted-300 {
  --tw-border-opacity: 1;
  border-color: rgb(220 207 181 / var(--tw-border-opacity, 1));
}
.border-brand-navy-800 {
  --tw-border-opacity: 1;
  border-color: rgb(18 48 85 / var(--tw-border-opacity, 1));
}
.border-brand-primary {
  --tw-border-opacity: 1;
  border-color: rgb(27 73 129 / var(--tw-border-opacity, 1));
}
.border-brand-primary-200 {
  --tw-border-opacity: 1;
  border-color: rgb(167 192 224 / var(--tw-border-opacity, 1));
}
.border-brand-primary\/60 {
  border-color: rgb(27 73 129 / 0.6);
}
.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}
.border-white\/15 {
  border-color: rgb(255 255 255 / 0.15);
}
.border-white\/20 {
  border-color: rgb(255 255 255 / 0.2);
}
.border-white\/50 {
  border-color: rgb(255 255 255 / 0.5);
}
.bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
.bg-brand-accent {
  --tw-bg-opacity: 1;
  background-color: rgb(182 140 90 / var(--tw-bg-opacity, 1));
}
.bg-brand-accent-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(248 243 236 / var(--tw-bg-opacity, 1));
}
.bg-brand-accent\/20 {
  background-color: rgb(182 140 90 / 0.2);
}
.bg-brand-accent\/25 {
  background-color: rgb(182 140 90 / 0.25);
}
.bg-brand-bg {
  --tw-bg-opacity: 1;
  background-color: rgb(253 251 247 / var(--tw-bg-opacity, 1));
}
.bg-brand-cream {
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 236 / var(--tw-bg-opacity, 1));
}
.bg-brand-highlight {
  --tw-bg-opacity: 1;
  background-color: rgb(213 180 141 / var(--tw-bg-opacity, 1));
}
.bg-brand-ink {
  --tw-bg-opacity: 1;
  background-color: rgb(46 46 47 / var(--tw-bg-opacity, 1));
}
.bg-brand-ink\/30 {
  background-color: rgb(46 46 47 / 0.3);
}
.bg-brand-ink\/40 {
  background-color: rgb(46 46 47 / 0.4);
}
.bg-brand-ink\/70 {
  background-color: rgb(46 46 47 / 0.7);
}
.bg-brand-muted {
  --tw-bg-opacity: 1;
  background-color: rgb(241 233 218 / var(--tw-bg-opacity, 1));
}
.bg-brand-muted-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(233 223 204 / var(--tw-bg-opacity, 1));
}
.bg-brand-muted-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 207 181 / var(--tw-bg-opacity, 1));
}
.bg-brand-muted\/60 {
  background-color: rgb(241 233 218 / 0.6);
}
.bg-brand-navy-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 37 66 / var(--tw-bg-opacity, 1));
}
.bg-brand-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
}
.bg-brand-primary-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(237 242 249 / var(--tw-bg-opacity, 1));
}
.bg-brand-primary-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(14 37 66 / var(--tw-bg-opacity, 1));
}
.bg-brand-primary\/10 {
  background-color: rgb(27 73 129 / 0.1);
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/10 {
  background-color: rgb(255 255 255 / 0.1);
}
.bg-white\/15 {
  background-color: rgb(255 255 255 / 0.15);
}
.bg-white\/20 {
  background-color: rgb(255 255 255 / 0.2);
}
.bg-white\/25 {
  background-color: rgb(255 255 255 / 0.25);
}
.bg-white\/5 {
  background-color: rgb(255 255 255 / 0.05);
}
.bg-white\/95 {
  background-color: rgb(255 255 255 / 0.95);
}
.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}
.bg-hero-ink-soft {
  background-image: radial-gradient(ellipse 80% 60% at 100% 0%, rgba(182, 140, 90, 0.20) 0%, rgba(182, 140, 90, 0) 60%), linear-gradient(180deg, #1B4981 0%, #0E2542 100%);
}
.bg-hero-light {
  background-image: radial-gradient(ellipse 70% 60% at 88% -10%, rgba(213, 180, 141, 0.08) 0%, rgba(213, 180, 141, 0) 60%), radial-gradient(ellipse 60% 50% at 0% 0%, rgba(182, 140, 90, 0.07) 0%, rgba(182, 140, 90, 0) 55%), linear-gradient(180deg, #FFFFFF 0%, #F7FAFA 100%);
}
.bg-primary-band {
  background-image: linear-gradient(135deg, #2A5FA0 0%, #1B4981 55%, #0E2542 100%);
}
.bg-primary-mesh {
  background-image: radial-gradient(60% 80% at 10% 0%, rgba(182, 140, 90, 0.07) 0%, rgba(182, 140, 90, 0) 70%), radial-gradient(40% 60% at 100% 100%, rgba(213, 180, 141, 0.07) 0%, rgba(213, 180, 141, 0) 70%);
}
.from-brand-ink\/70 {
  --tw-gradient-from: rgb(46 46 47 / 0.7) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(46 46 47 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-navy\/45 {
  --tw-gradient-from: rgb(27 73 129 / 0.45) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(27 73 129 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-primary-50 {
  --tw-gradient-from: #EDF2F9 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(237 242 249 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-primary\/40 {
  --tw-gradient-from: rgb(27 73 129 / 0.4) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(27 73 129 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-transparent {
  --tw-gradient-from: transparent var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.via-brand-navy\/10 {
  --tw-gradient-to: rgb(27 73 129 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(27 73 129 / 0.1) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.via-white\/25 {
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / 0.25) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-brand-navy\/75 {
  --tw-gradient-to: rgb(27 73 129 / 0.75) var(--tw-gradient-to-position);
}
.to-brand-primary\/10 {
  --tw-gradient-to: rgb(27 73 129 / 0.1) var(--tw-gradient-to-position);
}
.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.to-white {
  --tw-gradient-to: #fff var(--tw-gradient-to-position);
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.object-top {
  -o-object-position: top;
     object-position: top;
}
.p-0 {
  padding: 0px;
}
.p-10 {
  padding: 2.5rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-7 {
  padding: 1.75rem;
}
.p-8 {
  padding: 2rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-3\.5 {
  padding-left: 0.875rem;
  padding-right: 0.875rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-7 {
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-14 {
  padding-top: 3.5rem;
  padding-bottom: 3.5rem;
}
.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
.py-24 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-7 {
  padding-top: 1.75rem;
  padding-bottom: 1.75rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-9 {
  padding-top: 2.25rem;
  padding-bottom: 2.25rem;
}
.pb-1 {
  padding-bottom: 0.25rem;
}
.pb-20 {
  padding-bottom: 5rem;
}
.pb-6 {
  padding-bottom: 1.5rem;
}
.pb-7 {
  padding-bottom: 1.75rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pl-3 {
  padding-left: 0.75rem;
}
.pl-5 {
  padding-left: 1.25rem;
}
.pr-4 {
  padding-right: 1rem;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-10 {
  padding-top: 2.5rem;
}
.pt-12 {
  padding-top: 3rem;
}
.pt-14 {
  padding-top: 3.5rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-24 {
  padding-top: 6rem;
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-32 {
  padding-top: 8rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-5 {
  padding-top: 1.25rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-8 {
  padding-top: 2rem;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.font-heading {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
}
.font-mono {
  font-family: Geist Mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.font-sans {
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-5xl {
  font-size: 3rem;
  line-height: 1;
}
.text-\[0\.75rem\] {
  font-size: 0.75rem;
}
.text-\[0\.95rem\] {
  font-size: 0.95rem;
}
.text-\[1\.6rem\] {
  font-size: 1.6rem;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11\.5px\] {
  font-size: 11.5px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[12px\] {
  font-size: 12px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[15px\] {
  font-size: 15px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.italic {
  font-style: italic;
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-\[1\.05\] {
  line-height: 1.05;
}
.leading-\[1\.06\] {
  line-height: 1.06;
}
.leading-\[1\.08\] {
  line-height: 1.08;
}
.leading-\[1\.12\] {
  line-height: 1.12;
}
.leading-\[1\.1\] {
  line-height: 1.1;
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-\[-0\.01em\] {
  letter-spacing: -0.01em;
}
.tracking-\[-0\.02em\] {
  letter-spacing: -0.02em;
}
.tracking-\[0\.12em\] {
  letter-spacing: 0.12em;
}
.tracking-\[0\.14em\] {
  letter-spacing: 0.14em;
}
.tracking-\[0\.16em\] {
  letter-spacing: 0.16em;
}
.tracking-\[0\.18em\] {
  letter-spacing: 0.18em;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.text-\[\#F2682C\] {
  --tw-text-opacity: 1;
  color: rgb(242 104 44 / var(--tw-text-opacity, 1));
}
.text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.text-amber-900 {
  --tw-text-opacity: 1;
  color: rgb(120 53 15 / var(--tw-text-opacity, 1));
}
.text-brand-accent {
  --tw-text-opacity: 1;
  color: rgb(182 140 90 / var(--tw-text-opacity, 1));
}
.text-brand-accent-600 {
  --tw-text-opacity: 1;
  color: rgb(154 116 72 / var(--tw-text-opacity, 1));
}
.text-brand-highlight {
  --tw-text-opacity: 1;
  color: rgb(213 180 141 / var(--tw-text-opacity, 1));
}
.text-brand-ink {
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
}
.text-brand-ink-500 {
  --tw-text-opacity: 1;
  color: rgb(118 118 119 / var(--tw-text-opacity, 1));
}
.text-brand-ink-500\/55 {
  color: rgb(118 118 119 / 0.55);
}
.text-brand-ink-500\/70 {
  color: rgb(118 118 119 / 0.7);
}
.text-brand-ink-600 {
  --tw-text-opacity: 1;
  color: rgb(74 74 75 / var(--tw-text-opacity, 1));
}
.text-brand-ink-soft {
  --tw-text-opacity: 1;
  color: rgb(86 87 87 / var(--tw-text-opacity, 1));
}
.text-brand-ink-soft\/70 {
  color: rgb(86 87 87 / 0.7);
}
.text-brand-ink-soft\/75 {
  color: rgb(86 87 87 / 0.75);
}
.text-brand-ink-soft\/80 {
  color: rgb(86 87 87 / 0.8);
}
.text-brand-ink-soft\/85 {
  color: rgb(86 87 87 / 0.85);
}
.text-brand-ink-soft\/90 {
  color: rgb(86 87 87 / 0.9);
}
.text-brand-ink\/45 {
  color: rgb(46 46 47 / 0.45);
}
.text-brand-ink\/50 {
  color: rgb(46 46 47 / 0.5);
}
.text-brand-ink\/55 {
  color: rgb(46 46 47 / 0.55);
}
.text-brand-ink\/60 {
  color: rgb(46 46 47 / 0.6);
}
.text-brand-ink\/70 {
  color: rgb(46 46 47 / 0.7);
}
.text-brand-ink\/75 {
  color: rgb(46 46 47 / 0.75);
}
.text-brand-muted-300 {
  --tw-text-opacity: 1;
  color: rgb(220 207 181 / var(--tw-text-opacity, 1));
}
.text-brand-primary {
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.text-white\/30 {
  color: rgb(255 255 255 / 0.3);
}
.text-white\/40 {
  color: rgb(255 255 255 / 0.4);
}
.text-white\/45 {
  color: rgb(255 255 255 / 0.45);
}
.text-white\/55 {
  color: rgb(255 255 255 / 0.55);
}
.text-white\/60 {
  color: rgb(255 255 255 / 0.6);
}
.text-white\/65 {
  color: rgb(255 255 255 / 0.65);
}
.text-white\/70 {
  color: rgb(255 255 255 / 0.7);
}
.text-white\/75 {
  color: rgb(255 255 255 / 0.75);
}
.text-white\/80 {
  color: rgb(255 255 255 / 0.8);
}
.text-white\/85 {
  color: rgb(255 255 255 / 0.85);
}
.text-white\/90 {
  color: rgb(255 255 255 / 0.9);
}
.underline {
  text-decoration-line: underline;
}
.no-underline {
  text-decoration-line: none;
}
.decoration-brand-accent {
  text-decoration-color: #B68C5A;
}
.underline-offset-2 {
  text-underline-offset: 2px;
}
.underline-offset-\[6px\] {
  text-underline-offset: 6px;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.opacity-40 {
  opacity: 0.4;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand {
  --tw-shadow: 0 6px 24px -6px rgba(46, 46, 47, 0.12), 0 2px 6px -2px rgba(46, 46, 47, 0.06);
  --tw-shadow-colored: 0 6px 24px -6px var(--tw-shadow-color), 0 2px 6px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-lg {
  --tw-shadow: 0 20px 40px -12px rgba(46, 46, 47, 0.18), 0 8px 16px -8px rgba(46, 46, 47, 0.08);
  --tw-shadow-colored: 0 20px 40px -12px var(--tw-shadow-color), 0 8px 16px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-primary {
  --tw-shadow: 0 10px 30px -10px rgba(27, 73, 129, 0.30), 0 4px 12px -4px rgba(27, 73, 129, 0.16);
  --tw-shadow-colored: 0 10px 30px -10px var(--tw-shadow-color), 0 4px 12px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-primary-lg {
  --tw-shadow: 0 24px 60px -12px rgba(27, 73, 129, 0.26), 0 8px 24px -8px rgba(27, 73, 129, 0.14);
  --tw-shadow-colored: 0 24px 60px -12px var(--tw-shadow-color), 0 8px 24px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-sm {
  --tw-shadow: 0 2px 8px -2px rgba(46, 46, 47, 0.08);
  --tw-shadow-colored: 0 2px 8px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-brand-primary {
  --tw-shadow-color: #1B4981;
  --tw-shadow: var(--tw-shadow-colored);
}
.outline {
  outline-style: solid;
}
.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-inset {
  --tw-ring-inset: inset;
}
.ring-brand-muted-200 {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(233 223 204 / var(--tw-ring-opacity, 1));
}
.ring-white\/10 {
  --tw-ring-color: rgb(255 255 255 / 0.1);
}
.ring-white\/15 {
  --tw-ring-color: rgb(255 255 255 / 0.15);
}
.ring-white\/20 {
  --tw-ring-color: rgb(255 255 255 / 0.2);
}
.ring-white\/25 {
  --tw-ring-color: rgb(255 255 255 / 0.25);
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-2xl {
  --tw-blur: blur(40px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.blur-3xl {
  --tw-blur: blur(64px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow {
  --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale {
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.invert {
  --tw-invert: invert(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-filter {
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-150 {
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.duration-700 {
  transition-duration: 700ms;
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
/* Subtle animated dot highlight used on CTAs */
@keyframes wdc-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.4); opacity: 0.6; }
  }
.dot-live {
  display: inline-block;
  height: 0.5rem;
  width: 0.5rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(182 140 90 / var(--tw-bg-opacity, 1));
    animation: wdc-pulse 2.2s ease-in-out infinite;
}
/* Clamp card copy to 3 lines without needing the @tailwindcss/line-clamp
     plugin. Graceful fallback in browsers without line-clamp support. */
.line-clamp-3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
  }
.\[overflow-wrap\:break-word\] {
  overflow-wrap: break-word;
}

/* ---------- Article prose (single blog posts) ------------------------------
   Explicit styling for `the_content()` output because we don't ship the
   @tailwindcss/typography plugin. Tuned for long-form reading at ~68ch. */
.article-prose {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #565757;
  /* Belt and braces against the autoposter's long source URLs: even if one
     survives the linkifier in inc/blog.php, it wraps instead of pushing the
     column over the table-of-contents sidebar. */
  min-width: 0;
  overflow-wrap: anywhere;
}
.article-prose :is(li, p, td) { overflow-wrap: anywhere; }
/* Tables and code blocks scroll inside themselves rather than widening the page. */
.article-prose :is(pre, table) { display: block; max-width: 100%; overflow-x: auto; }
@media (min-width: 1024px) {
  .article-prose { font-size: 1.125rem; }
}
.article-prose > * + * { margin-top: 1.25em; }
.article-prose p { margin: 1.1em 0; }
.article-prose h2 {
  font-size: clamp(1.5rem, 1.2rem + 0.9vw, 1.875rem);
  font-weight: 700;
  color: #2E2E2F;
  margin-top: 2em;
  margin-bottom: 0.6em;
  line-height: 1.25;
  letter-spacing: -0.018em;
  scroll-margin-top: 6rem;
}
.article-prose h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #2E2E2F;
  margin-top: 1.6em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}
.article-prose h4 { font-size: 1.0625rem; font-weight: 700; color: #2E2E2F; margin-top: 1.4em; }
.article-prose strong { color: #2E2E2F; font-weight: 600; }
.article-prose a {
  color: #1B4981;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color 150ms ease;
}
.article-prose a:hover { color: #163C6B; }
.article-prose ul, .article-prose ol {
  margin: 1.1em 0;
  padding-left: 1.4em;
}
.article-prose ul { list-style: none; padding-left: 0; }
.article-prose ul > li {
  position: relative;
  padding-left: 1.65em;
  margin: 0.45em 0;
}
.article-prose ul > li::before {
  content: '';
  position: absolute;
  left: 0.1em;
  top: 0.7em;
  width: 0.5em;
  height: 0.5em;
  border-radius: 9999px;
  background: #1B4981;
}
.article-prose ol { list-style: decimal; }
.article-prose ol > li::marker { color: #1B4981; font-weight: 700; }
.article-prose ol > li { margin: 0.45em 0; padding-left: 0.4em; }
.article-prose blockquote {
  margin: 1.6em 0;
  padding: 0.6em 1.25em;
  border-left: 3px solid #1B4981;
  background: #F7F4EF;
  border-radius: 0 0.75rem 0.75rem 0;
  font-style: italic;
  color: #163C6B;
}
.article-prose blockquote p { margin: 0.4em 0; }
.article-prose code {
  background: #F7F4EF;
  color: #2E2E2F;
  padding: 0.1em 0.4em;
  border-radius: 0.3em;
  font-size: 0.92em;
}
.article-prose pre {
  background: #2E2E2F;
  color: #F7F4EF;
  padding: 1em 1.25em;
  border-radius: 0.75rem;
  overflow-x: auto;
  font-size: 0.92em;
  line-height: 1.55;
}
.article-prose pre code { background: transparent; color: inherit; padding: 0; }
.article-prose img {
  border-radius: 0.75rem;
  margin: 1.6em auto;
  max-width: 100%;
  height: auto;
  box-shadow: 0 10px 30px -10px rgba(17, 41, 43, 0.18);
}
.article-prose hr {
  border: 0;
  border-top: 1px solid #E4E0D8;
  margin: 2.2em 0;
}
.article-prose > :first-child { margin-top: 0; }

/* ---------- TOC sidebar ---------------------------------------------------- */
.toc-sidebar .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 2px solid #E9DFCC;
}
.toc-sidebar .toc-list li { display: block; }
.toc-sidebar .toc-list a {
  position: relative;
  display: flex;
  gap: 0.75rem;
  padding: 0.55rem 0 0.55rem 1rem;
  margin-left: -2px;
  border-left: 2px solid transparent;
  color: #4A4A4B;
  font-size: 0.875rem;
  line-height: 1.5;
  transition: color 150ms ease, border-color 150ms ease, background 150ms ease;
}
.toc-sidebar .toc-list a:hover {
  color: #1B4981;
  border-left-color: #E2CDAC;
}
.toc-sidebar .toc-list a.is-active {
  color: #1B4981;
  border-left-color: #1B4981;
  font-weight: 600;
}
.toc-sidebar .toc-num {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #767677;
  padding-top: 0.15em;
  font-variant-numeric: tabular-nums;
}
.toc-sidebar .toc-list a:hover .toc-num,
.toc-sidebar .toc-list a.is-active .toc-num { color: #1B4981; }

/* ---------- Pagination (blog index + archive) ------------------------------ */
.pagination .nav-links,
nav.pagination .nav-links {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  flex-wrap: wrap;
  justify-content: center;
}
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0 0.75rem;
  border-radius: 0.625rem;
  border: 1px solid #E4E0D8;
  background: #FFFFFF;
  color: #163C6B;
  font-weight: 600;
  font-size: 0.9375rem;
  transition: background 150ms ease, border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}
.pagination .page-numbers:hover {
  border-color: #1B4981;
  color: #1B4981;
  box-shadow: 0 6px 16px -8px rgba(45, 63, 94, 0.4);
}
.pagination .page-numbers.current {
  background: #1B4981;
  border-color: #1B4981;
  color: #FFFFFF;
  box-shadow: 0 6px 16px -8px rgba(45, 63, 94, 0.55);
}
.pagination .page-numbers.dots {
  border: none;
  background: transparent;
  color: #767677;
  cursor: default;
}
.pagination .page-numbers.dots:hover { box-shadow: none; }

/* Primary-nav styling (desktop + mobile) and current-page indicator. */
/* Mega panels anchor to the site header, not the individual trigger <li>,
   so the panel stays centered on the page regardless of where "Services"
   sits inside the nav and never drifts off-screen. */
/* NB: header position / background / scroll states live in the .site-header
   block (components layer). Don't re-declare position/z-index here. */
.nav-primary-desktop { position: static; }
.nav-primary-desktop > li { position: static; }
.nav-primary-desktop .nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  color: #4A4A4B; /* brand-ink-600 — dark nav text on the light header */
  transition: color 0.2s ease;
  /* Button reset — top-level mega triggers are <button> elements. */
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
  line-height: inherit;
}
.nav-primary-desktop button.nav-link { -webkit-appearance: none; -moz-appearance: none; appearance: none; }
.nav-primary-desktop .nav-link:hover,
.nav-primary-desktop .nav-link:focus-visible {
  color: #1B4981; /* teal on hover */
  outline: none;
}
.nav-primary-desktop .nav-link:focus-visible {
  box-shadow: 0 0 0 2px rgba(45, 63, 94, 0.4);
  border-radius: 4px;
}
/* Active underline, animates in */
.nav-primary-desktop .nav-link::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px;
  background: #1B4981;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}
.nav-primary-desktop .nav-link:hover::after,
.nav-primary-desktop .current-menu-item > .nav-link::after,
.nav-primary-desktop .current-menu-ancestor > .nav-link::after,
.nav-primary-desktop .has-mega[data-open="true"] > .nav-link::after {
  transform: scaleX(1);
}
.nav-primary-desktop .current-menu-item > .nav-link,
.nav-primary-desktop .current-menu-ancestor > .nav-link,
.nav-primary-desktop .has-mega[data-open="true"] > .nav-link { color: #1B4981; }

/* ---------- Mega dropdowns (desktop, click-to-open) ---------- */
.nav-primary-desktop .has-mega .mega-caret {
  opacity: 0.75;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.nav-primary-desktop .has-mega[data-open="true"] .mega-caret {
  transform: rotate(180deg);
  opacity: 1;
}

.nav-primary-desktop .mega-panel {
  position: absolute;
  top: 100%;
  left: 50%;
  /* Clamp the panel to the site container width (1200px max, 1rem gutter on each
     side), so its edges line up with other page content instead of floating
     at an arbitrary width under the trigger. */
  width: min(900px, calc(100vw - 2rem));
  max-width: 1136px;
  /* Panel sits flush against the nav row — no gap between the trigger and
     the dropdown. A tiny translateY is used purely for the fade-in animation. */
  transform: translateX(-50%) translateY(4px);
  background: #ffffff;
  color: #2E2E2F;
  border-radius: 16px;
  box-shadow: 0 24px 60px -18px rgba(17, 41, 43, 0.35),
              0 8px 24px -12px rgba(17, 41, 43, 0.18);
  padding: 0.75rem;
  margin-top: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 50;
}
.nav-primary-desktop .has-mega[data-open="true"] .mega-panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.nav-primary-desktop .mega-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  /* Rows auto-size to the tallest cell, so wrapping labels don't break row
     rhythm between columns. Tight gap — the item padding + hover rect does
     the visual spacing work. */
  grid-auto-rows: minmax(44px, auto);
  gap: 2px;
}
.nav-primary-desktop .mega-grid > li { margin: 0; display: flex; }
.nav-primary-desktop .mega-grid a {
  position: static;
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  width: 100%;
  padding: 0.625rem 0.875rem;
  border-radius: 10px;
  font-size: 0.875rem;
  line-height: 1.35;
  color: #163C6B;
  font-weight: 500;
  white-space: normal;
  transition: background 0.15s ease, color 0.15s ease;
}
.nav-primary-desktop .mega-grid a::after { content: none; }
.nav-primary-desktop .mega-grid a:hover,
.nav-primary-desktop .mega-grid a:focus-visible {
  background: #FAF7F2;
  color: #1B4981;
  outline: none;
  box-shadow: none;
}

/* Dropdown footer — the one way into the parent landing page. */
.nav-primary-desktop .mega-foot {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0.625rem 0.5rem 0.25rem;
  padding: 0.5rem 0.875rem;
  border-radius: 10px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #1B4981;
  text-decoration: none;
  transition: gap 0.2s ease, background 0.15s ease, color 0.15s ease;
}
.nav-primary-desktop .mega-foot:hover,
.nav-primary-desktop .mega-foot:focus-visible {
  background: #FAF7F2;
  color: #163C6B;
  outline: none;
  gap: 10px;
}
.nav-primary-desktop .mega-foot::after { content: none; }

/* Mobile drawer — light surface, dark ink links. */
.nav-primary-mobile a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 0.25rem;
  color: #4A4A4B;
  min-height: 48px; /* tap target */
}
.nav-primary-mobile a:hover { color: #1B4981; }
.nav-primary-mobile a::after {
  content: '›';
  color: rgba(17, 41, 43, 0.3);
  font-size: 1.25rem;
  line-height: 1;
  padding-left: 0.75rem;
}
.nav-primary-mobile .current-menu-item > a {
  color: #1B4981;
  font-weight: 600;
}
.nav-primary-mobile .current-menu-item > a::before {
  content: '';
  display: inline-block;
  width: 3px;
  height: 18px;
  margin-right: 0.75rem;
  background: #1B4981;
  border-radius: 2px;
}

/* Mobile: parent submenu trigger is a full-width button that toggles the list. */
.nav-primary-mobile .submenu-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
  padding: 1rem 0.25rem;
  color: #4A4A4B;
  background: transparent;
  border: 0;
  font: inherit;
  font-weight: 500;
  text-align: left;
  min-height: 48px;
  cursor: pointer;
  border-radius: 8px;
  transition: background 0.15s ease, color 0.15s ease;
}
.nav-primary-mobile .submenu-toggle:hover,
.nav-primary-mobile .submenu-toggle:focus-visible {
  color: #1B4981;
  background: rgba(45, 63, 94, 0.06);
  outline: none;
}
.nav-primary-mobile .submenu-toggle svg {
  flex-shrink: 0;
  color: rgba(17, 41, 43, 0.5);
  transition: transform 0.2s ease, color 0.15s ease;
}
.nav-primary-mobile .submenu-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
  color: #1B4981;
}
.nav-primary-mobile .submenu-list {
  list-style: none;
  margin: 0;
  padding: 0 0 0.5rem 0.75rem;
  border-left: 2px solid rgba(17, 41, 43, 0.1);
  margin-left: 0.25rem;
}
.nav-primary-mobile .submenu-list > li { border: none; }
.nav-primary-mobile .submenu-list a {
  padding: 0.625rem 0.5rem;
  font-size: 0.9375rem;
  color: #767677;
  min-height: 40px;
}
.nav-primary-mobile .submenu-list a::after { content: none; }
.nav-primary-mobile .submenu-list a:hover { color: #1B4981; }
.nav-primary-mobile .submenu-list .submenu-foot {
  margin-top: 0.25rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(17, 41, 43, 0.1);
}
.nav-primary-mobile .submenu-list .submenu-foot a {
  color: #B68C5A;
  font-weight: 600;
}
.nav-primary-mobile .submenu-list .submenu-foot a:hover { color: #1B4981; }

/* Global: sharpen focus-visible across all links that don't opt out */
a:focus-visible,
button:focus-visible {
  outline: 2px solid #1B4981;
  outline-offset: 2px;
  border-radius: 4px;
}
/* Skip elements that already style their own rings */
.btn-primary:focus-visible,
.btn-secondary:focus-visible,
[data-menu-toggle]:focus-visible,
.nav-primary-desktop a:focus-visible {
  outline: none;
}

/* ---------- Gallery lightbox ---------- */
.lightbox-dialog {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
}
.lightbox-dialog::backdrop {
  background: rgba(0, 0, 0, 0.88);
  backdrop-filter: blur(4px);
}
.lightbox-dialog[open] {
  display: flex;
  align-items: center;
  justify-content: center;
}
.lightbox-figure {
  margin: 0;
  padding: 1.5rem;
  max-width: min(96vw, 1400px);
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.lightbox-figure img {
  max-width: 100%;
  max-height: 78vh;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
  background: #1a1a1a;
}
.lightbox-figure figcaption {
  color: rgba(255, 255, 255, 0.86);
  font-size: 0.875rem;
  text-align: center;
  max-width: 56ch;
  line-height: 1.5;
}
.lightbox-figure figcaption[hidden] { display: none; }
.lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 10;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.95);
  color: #2E2E2F;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  border: 0;
  cursor: pointer;
  transition: background 0.15s ease;
}
.lightbox-close:hover { background: #ffffff; }
.lightbox-close:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

/* ---- Contextual hero animations (rc-anim) -------------------------------- */
@keyframes rc-spin     { to { transform: rotate(360deg); } }
@keyframes rc-spin-rev { to { transform: rotate(-360deg); } }
@keyframes rc-plasma   { to { transform: scaleY(1); } }
@keyframes rc-drop     { 0% { transform: translateY(0); opacity: 0; } 10% { opacity: 1; } 72% { opacity: 1; } 100% { transform: translateY(-128px); opacity: 0; } }
@keyframes rc-breathe  { 0%,100% { opacity: .35; } 50% { opacity: .75; } }

[data-rc-anim] .rc-spin, [data-rc-anim] .rc-spin-2 { transform-box: fill-box; transform-origin: center; }
[data-rc-anim] .rc-plasma { transform-box: fill-box; transform-origin: bottom; transform: scaleY(0); }
[data-rc-anim] .rc-drop   { opacity: 0; }
[data-rc-anim] .rc-glow   { opacity: .35; }

.rc-anim--run .rc-spin   { animation: rc-spin 26s linear infinite; }
.rc-anim--run .rc-spin-2 { animation: rc-spin-rev 38s linear infinite; }
.rc-anim--run .rc-plasma { animation: rc-plasma 2.6s cubic-bezier(.2,.8,.2,1) forwards; }
.rc-anim--run .rc-drop   { animation: rc-drop 5.2s ease-in-out 2.4s infinite; }
.rc-anim--run .rc-glow   { animation: rc-breathe 9s ease-in-out infinite; }

/* Reduced motion / static: fully-resolved, no movement. */
.rc-anim--static .rc-spin, .rc-anim--static .rc-spin-2,
.rc-anim--static .rc-drop, .rc-anim--static .rc-glow { animation: none !important; }
.rc-anim--static .rc-plasma { animation: none !important; transform: scaleY(1); }
.rc-anim--static .rc-drop { opacity: 0; }

/* ---- rc-anim: generic scene accents (waves / orbit / node / glyph) -------- */
@keyframes rc-wave  { 0% { transform: scale(.4); opacity: 0; } 18% { opacity: .4; } 100% { transform: scale(2.5); opacity: 0; } }
@keyframes rc-node  { 0%,100% { opacity: .35; transform: scale(.75); } 50% { opacity: .85; transform: scale(1.08); } }
@keyframes rc-glyph { 0%,100% { opacity: .62; } 50% { opacity: .82; } }

[data-rc-anim] .rc-wave  { transform-box: fill-box; transform-origin: center; opacity: 0; }
[data-rc-anim] .rc-node  { transform-box: fill-box; transform-origin: center; }
[data-rc-anim] .rc-glyph { opacity: .9; }

.rc-anim--run .rc-wave   { animation: rc-wave 6s ease-out infinite; }
.rc-anim--run .rc-wave-2 { animation-delay: 2s; }
.rc-anim--run .rc-wave-3 { animation-delay: 4s; }
.rc-anim--run .rc-node   { animation: rc-node 4.2s ease-in-out infinite; }
.rc-anim--run .rc-glyph  { animation: rc-glyph 8s ease-in-out infinite; }

.rc-anim--static .rc-wave, .rc-anim--static .rc-node, .rc-anim--static .rc-glyph { animation: none !important; }
.rc-anim--static .rc-wave  { opacity: .22; transform: scale(1.35); }
.rc-anim--static .rc-glyph { opacity: .7; }

/* ---------- Soft animated image placeholder (interim, premium-minimal) ----------
   A large panel with a slow warm wash + faint breathing rings, revealed on scroll.
   Stands in for photography until real imagery is generated. Markup: rc_image_placeholder(). */
.rc-imgph {
  position: relative; overflow: hidden;
  aspect-ratio: 4 / 5;
  background: #F1EDE6;
  border: 1px solid rgba(27, 37, 55, 0.08);
}
.rc-imgph__wash, .rc-imgph__ring { position: absolute; inset: 0; pointer-events: none; }
.rc-imgph__wash {
  background:
    radial-gradient(42% 38% at 30% 28%, rgba(54, 181, 189, 0.16) 0%, rgba(54, 181, 189, 0) 70%),
    radial-gradient(46% 42% at 74% 74%, rgba(216, 153, 71, 0.20) 0%, rgba(216, 153, 71, 0) 72%);
  animation: rc-ph-drift 18s ease-in-out infinite alternate;
}
.rc-imgph__ring { display: flex; align-items: center; justify-content: center; }
.rc-imgph__ring::before, .rc-imgph__ring::after {
  content: ''; position: absolute; border-radius: 9999px;
  width: 46%; aspect-ratio: 1; border: 1px solid rgba(27, 37, 55, 0.10);
  animation: rc-ph-breathe 6.5s ease-in-out infinite;
}
.rc-imgph__ring::after { width: 68%; border-color: rgba(27, 37, 55, 0.06); animation-delay: 1.3s; }
.rc-imgph__cap {
  position: absolute; left: 0; right: 0; bottom: 1.25rem; text-align: center;
  font-family: ui-monospace, 'Geist Mono', monospace; font-size: 10px;
  letter-spacing: 0.18em; text-transform: uppercase; color: rgba(27, 37, 55, 0.42);
}
.rc-imgph[data-reveal] { opacity: 0; transform: scale(0.985); }
.rc-imgph.is-revealed { opacity: 1; transform: none; transition: opacity 1s ease, transform 1.2s cubic-bezier(.2, .8, .2, 1); }
@keyframes rc-ph-drift   { 0% { transform: translate3d(0,0,0) scale(1); } 100% { transform: translate3d(-4%,3%,0) scale(1.06); } }
@keyframes rc-ph-breathe { 0%,100% { opacity: .5; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.05); } }
@media (prefers-reduced-motion: reduce) {
  .rc-imgph__wash, .rc-imgph__ring::before, .rc-imgph__ring::after { animation: none; }
}

/* ---------- Hero video slider: cross-fading full-bleed clips ---------- */
.hero-slide {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
  transition: opacity 1.2s ease;
  pointer-events: none;
}
.hero-slide.is-active { opacity: 1; }

/* ---------- Video stories: lite YouTube facade ---------- */
.yt-facade {
  position: relative; display: block; width: 100%;
  aspect-ratio: 16 / 9; overflow: hidden; border-radius: 1rem;
  background: #2E2E2F; cursor: pointer; border: 0; padding: 0;
}
.yt-facade img { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; transition: transform .5s ease, opacity .3s ease; }
.yt-facade:hover img { transform: scale(1.03); opacity: .9; }
.yt-facade__play {
  position: absolute; inset: 0; margin: auto; width: 64px; height: 64px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(251, 248, 242, 0.92); color: #2E2E2F; border-radius: 9999px;
  transition: transform .25s ease, background .25s ease;
}
.yt-facade:hover .yt-facade__play { transform: scale(1.06); background: #fff; }
.yt-facade iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ==========================================================================
   CINEMA HERO
   The practice's own 90-second film is the home page. Two states:
   ambient (silent loop behind the copy) and cinema (full film, sound, captions).
   The transition is a fade of everything except the video itself, so the visitor
   never loses their place — the picture is continuous, the furniture leaves.
   ========================================================================== */

.hero-cinema {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: 100svh;
  overflow: hidden;
  background: #0E2542;
}

.hero-cinema__media { position: absolute; inset: 0; z-index: -1; }

.hero-cinema__video {
  width: 100%; height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
/* Rotating clips stack and crossfade; until the first one plays, the poster
   background on .hero-cinema__media shows through. */
.hero-cinema__clip {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 1s ease;
}
.hero-cinema__clip.is-active.is-ready { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .hero-cinema__clip { display: none; } }

/* Dark at the top so the white header reads, dark at the bottom so the H1 does.
   Clear through the middle so the footage is actually visible. */
/* Contrast comes from the scrim, not from blur. Two stacked wide shadows (18px
   and 30px) were being painted under a high-contrast Didone whose hairlines are
   a pixel wide at this size — the glow bled into the strokes and the whole
   headline read as soft. A tight shadow separates the type from the footage
   without touching the letterforms. */
.hero-cinema__title,
.hero-cinema__subtitle,
.hero-cinema__eyebrow,
.hero-cinema__trust {
  text-shadow: 0 1px 2px rgba(10, 15, 26, 0.55), 0 2px 6px rgba(10, 15, 26, 0.35);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.hero-cinema__scrim {
  position: absolute; inset: 0;
  background:
    /* Heavier on the left, where the headline sits, so the type has a solid
       ground and needs no glow of its own. */
    linear-gradient(90deg, rgba(14,22,36,0.84) 0%, rgba(14,22,36,0.70) 34%,
                    rgba(14,22,36,0.36) 64%, rgba(14,22,36,0.12) 100%),
    linear-gradient(180deg, rgba(14,22,36,0.52) 0%, rgba(14,22,36,0.22) 32%,
                    rgba(14,22,36,0.24) 62%, rgba(14,22,36,0.58) 100%);
  transition: opacity 700ms ease;
}

.hero-cinema__inner {
  position: relative;
  padding-block: 8rem 5.5rem;
  color: #fff;
  max-width: 62rem;
}
@media (min-width: 1024px) {
  .hero-cinema__inner { padding-block: 10rem 7rem; }
}

/* The eyebrow was italic Bodoni at body size — the same hairline problem in
   miniature. A spaced grotesque caps line reads instantly and sets up the
   serif headline underneath it. */
.hero-cinema__eyebrow {
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;
  font-style: normal;
  font-weight: 600;
  text-transform: uppercase;
  font-size: clamp(0.7rem, 0.66rem + 0.16vw, 0.8rem);
  letter-spacing: 0.16em;
  color: rgba(255,255,255,0.82);
  margin-bottom: 1.35rem;
}

.hero-cinema__title {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  /* 600, not 500: Libre Bodoni is a Didone, and its hairlines disappear over
     moving footage at display size. */
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -0.02em;
  text-wrap: balance;
  font-size: clamp(2.4rem, 1.2rem + 4.4vw, 4.6rem);
}

.hero-cinema__subtitle {
  margin-top: 1.4rem;
  max-width: 36rem;
  font-size: clamp(1rem, 0.95rem + 0.28vw, 1.14rem);
  line-height: 1.62;
  color: rgba(255,255,255,0.9);
}

.hero-cinema__ctas {
  margin-top: 2.25rem;
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 0.9rem 1.25rem;
}

.hero-cinema__cta {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.95rem 1.75rem;
  border: 1px solid rgba(255,255,255,0.55);
  color: #fff;
  font-size: 0.95rem; font-weight: 500; letter-spacing: 0.01em;
  border-radius: 2px;
  transition: background-color 220ms ease, color 220ms ease, border-color 220ms ease;
}
.hero-cinema__cta:hover { background: rgba(255,255,255,0.12); border-color: #fff; }

.hero-cinema__cta--primary {
  background: #fff;
  color: #1B4981;
  border-color: #fff;
}
.hero-cinema__cta--primary:hover {
  background: #B68C5A;
  border-color: #B68C5A;
  color: #fff;
}

.hero-cinema__trust {
  margin-top: 1.9rem;
  display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
  font-size: 0.9rem;
  color: rgba(255,255,255,0.82);
}
.hero-cinema__stars { color: #D5B48D; letter-spacing: 0.12em; }

/* ---- The one button that stays: opens cinema mode ---- */
.hero-cinema__open {
  position: absolute;
  top: 50%; right: 0;
  transform: translateY(-50%);
  z-index: 3;
  display: inline-flex; align-items: center; gap: 0.6rem;
  padding: 0.85rem 1.4rem;
  background: rgba(45,63,94,0.82);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 0.8rem; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  border: 0; border-radius: 2px 0 0 2px;
  cursor: pointer;
  transition: background-color 220ms ease, transform 220ms ease, opacity 400ms ease;
}
.hero-cinema__open:hover { background: #B68C5A; transform: translateY(-50%) translateX(-3px); }
.hero-cinema__open svg { width: 20px; height: 20px; flex: none; }
@media (max-width: 640px) {
  .hero-cinema__open { top: auto; bottom: 5.5rem; right: 1rem; border-radius: 2px; }
  .hero-cinema__open span { display: none; }
  .hero-cinema__open { padding: 0.85rem; }
}

/* ---- Cinema mode ---- */
/* Fade the copy out, lift the scrim, hand the frame to the film. */
.hero-cinema__content {
  width: 100%;
  transition: opacity 600ms ease, transform 600ms ease;
}
/* `is-cinema` is set on <html> so the whole page can respond, not just the hero. */
html.is-cinema .hero-cinema__content {
  opacity: 0;
  transform: translateY(18px);
  pointer-events: none;
}
html.is-cinema .hero-cinema__scrim { opacity: 0.18; }
html.is-cinema .hero-cinema__open { opacity: 0; pointer-events: none; }

/* Everything outside the hero gets out of the way: header, chat bubble,
   sticky mobile bar, and the page below (which we also stop scrolling). */
/* Body is pinned (not just overflow-hidden) so iOS Safari cannot rubber-band the
   page behind the film. main.js stores the offset in `top` and restores it. */
html.is-cinema { overflow: hidden; }
html.is-cinema body {
  position: fixed;
  inset-inline: 0;
  width: 100%;
  overflow: hidden;
}
html.is-cinema .site-header,
html.is-cinema .mobile-cta-bar,
html.is-cinema .ty-chat-bar,
html.is-cinema .ty-chat-panel,
html.is-cinema .ty-chat-tease-row,
html.is-cinema [data-ty-chat-root] {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 500ms ease;
}

.hero-cinema__panel {
  position: absolute;
  left: 50%; bottom: 2rem;
  transform: translateX(-50%) translateY(10px);
  z-index: 4;
  display: flex; align-items: center; gap: 0.75rem;
  width: min(56rem, calc(100vw - 2rem));
  padding: 0.6rem 0.9rem;
  background: rgba(20,29,44,0.72);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 3px;
  color: #fff;
  opacity: 0;
  transition: opacity 400ms ease 200ms, transform 400ms ease 200ms;
}
.hero-cinema__panel[hidden] { display: none; }
html.is-cinema .hero-cinema__panel { opacity: 1; transform: translateX(-50%) translateY(0); }

.hero-cinema__ctrl {
  display: inline-flex; align-items: center; gap: 0.45rem;
  padding: 0.5rem;
  background: transparent; border: 0; color: #fff;
  cursor: pointer; border-radius: 2px;
  transition: color 180ms ease, background-color 180ms ease;
}
.hero-cinema__ctrl:hover { color: #B68C5A; }
.hero-cinema__ctrl svg { width: 22px; height: 22px; }
.hero-cinema__ctrl--close { margin-left: auto; }
.hero-cinema__ctrl-text { font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }
@media (max-width: 640px) { .hero-cinema__ctrl-text { display: none; } }

.hero-cinema__scrub { flex: 1; display: flex; align-items: center; gap: 0.75rem; min-width: 0; }
.hero-cinema__time { font-size: 0.75rem; font-variant-numeric: tabular-nums; color: rgba(255,255,255,0.75); }

.hero-cinema__scrub input[type="range"] {
  flex: 1; min-width: 0;
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  height: 3px; border-radius: 2px;
  background: rgba(255,255,255,0.28);
  cursor: pointer;
}
.hero-cinema__scrub input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 13px; height: 13px; border-radius: 50%;
  background: #fff; border: 0;
}
.hero-cinema__scrub input[type="range"]::-moz-range-thumb {
  width: 13px; height: 13px; border-radius: 50%;
  background: #fff; border: 0;
}

/* Keyboard users must always be able to see where they are. */
.hero-cinema :is(a, button, input):focus-visible {
  outline: 2px solid #B68C5A;
  outline-offset: 3px;
}

/* Reduced motion: nothing plays on its own. The <video> stays in the DOM showing
   its poster frame, so the film is still one deliberate click away — we remove
   the autoplay, not the feature. Autoplay itself is suppressed in main.js. */
@media (prefers-reduced-motion: reduce) {
  .hero-cinema__content,
  .hero-cinema__panel,
  .hero-cinema__open,
  /* Contrast comes from the scrim, not from blur. Two stacked wide shadows (18px
   and 30px) were being painted under a high-contrast Didone whose hairlines are
   a pixel wide at this size — the glow bled into the strokes and the whole
   headline read as soft. A tight shadow separates the type from the footage
   without touching the letterforms. */
.hero-cinema__title,
.hero-cinema__subtitle,
.hero-cinema__eyebrow,
.hero-cinema__trust {
  text-shadow: 0 1px 2px rgba(10, 15, 26, 0.55), 0 2px 6px rgba(10, 15, 26, 0.35);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.hero-cinema__scrim { transition: none; }
  .hero-cinema__open:hover { transform: translateY(-50%); }
}

/* ==========================================================================
   GOOGLE REVIEWS
   5.0 over 217 reviews is this practice's strongest asset — the block is built
   to make that legible at a glance and to survive being read by a machine
   (Review + AggregateRating JSON-LD ships alongside).
   ========================================================================== */

.rv-summary {
  margin-top: 1.25rem;
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.5rem 0.75rem;
}
.rv-summary__score {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-size: 1.75rem; line-height: 1;
  color: #2E2E2F;
}
.rv-summary__meta { font-size: 0.95rem; color: #767677; }
.rv-stars { color: #D5B48D; letter-spacing: 0.1em; }

.rv-filters {
  display: flex; flex-wrap: wrap; gap: 0.5rem;
  margin-bottom: 2rem;
}
.rv-chip {
  display: inline-flex; align-items: center; gap: 0.45rem;
  padding: 0.45rem 0.9rem;
  border: 1px solid #E9DFCC;
  border-radius: 999px;
  background: #fff;
  font-size: 0.85rem;
  color: #4A4A4B;
  cursor: pointer;
  transition: border-color 180ms ease, color 180ms ease, background-color 180ms ease;
}
.rv-chip:hover { border-color: #B68C5A; color: #1B4981; }
.rv-chip.is-active {
  background: #1B4981;
  border-color: #1B4981;
  color: #fff;
}
.rv-chip__count { font-size: 0.72rem; opacity: 0.65; font-variant-numeric: tabular-nums; }

.rv-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr;
}
@media (min-width: 768px)  { .rv-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1120px) { .rv-grid { grid-template-columns: repeat(3, 1fr); } }

.rv-card {
  display: flex; flex-direction: column; gap: 0.85rem;
  padding: 1.6rem 1.5rem;
  background: #fff;
  border: 1px solid #E9DFCC;
  border-radius: 3px;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}
.rv-card:hover {
  border-color: #E2CDAC;
  box-shadow: 0 2px 8px -2px rgba(46, 46, 47, 0.08);
}
.rv-card[hidden] { display: none; }

.rv-card__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.rv-card__date { font-size: 0.75rem; color: #767677; letter-spacing: 0.04em; }

.rv-card__quote {
  font-size: 0.975rem;
  line-height: 1.65;
  color: #565757;
  /* Long reviews are clamped in the grid; the /reviews page opens them out. */
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 8;
  overflow: hidden;
}
.rv-card--full .rv-card__quote { -webkit-line-clamp: unset; display: block; }

.rv-card__author {
  margin-top: auto;
  padding-top: 0.4rem;
  font-size: 0.85rem; font-weight: 500;
  color: #2E2E2F;
}

.rv-empty { margin-top: 1.5rem; color: #767677; }
.rv-empty[hidden] { display: none; }

.rv-actions {
  margin-top: 2rem;
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem;
}
.rv-synced { font-size: 0.75rem; color: #767677; }

/* Mobile drawer: opening it locks page scroll on <html> (main.js), so the
   drawer itself must scroll. Cap it to the viewport below the sticky header --
   otherwise a long expanded submenu list runs past the screen and its bottom
   items become unreachable on phones. */
[data-mobile-menu] {
  max-height: calc(100vh - 4.5rem);
  max-height: calc(100dvh - 4.5rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* ===================================================================
   Structured long text (inc/structured-text.php)
   =================================================================== */
.st-lede, .st-lede p {
  font-size: 1.125rem;
  line-height: 1.7;
  color: #2E2E2F;
}
@media (min-width: 1024px) { .st-lede, .st-lede p { font-size: 1.2rem; } }
.st-lede a, .st-card__body a, .st-more a { color: #1B4981; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(27,73,129,.35); }
.st-lede a:hover, .st-card__body a:hover, .st-more a:hover { text-decoration-color: currentColor; }

.st-callout {
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 1.25rem 1.5rem;
  background: #0E2542;
  color: #fff;
  border-radius: 14px;
  border-left: 4px solid #D5B48D;
}
.st-callout__icon {
  flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; border-radius: 999px;
  background: rgba(213,180,141,.16); color: #D5B48D;
}
.st-callout__label {
  font-size: 0.7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: #D5B48D;
}
.st-callout__text { margin-top: .3rem; font-size: 1.02rem; line-height: 1.6; color: rgba(255,255,255,.92); }
.st-callout--stack { flex-direction: column; gap: .75rem; }

.st-card {
  position: relative;
  display: flex; flex-direction: column; gap: .6rem;
  padding: 1.75rem 1.6rem 1.6rem;
  background: #fff;
  border: 1px solid #E9DFCC;
  border-radius: 14px;
  transition: border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}
.bg-white .st-card { background: #FAF5EC; border-color: #F1E9DA; }
.st-card:hover { border-color: #D5B48D; box-shadow: 0 14px 40px -24px rgba(14,37,66,.35); }
.st-card__num {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-size: 0.95rem; letter-spacing: .08em;
  color: #B68C5A;
}
.st-card__title, .st-row__title {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-weight: 400;
  font-size: 1.3rem; line-height: 1.3;
  color: #2E2E2F;
  text-wrap: balance;
}
.st-card__title a, .st-row__title a { color: inherit; }
.st-card__body p, .st-card__body li { font-size: 0.98rem; line-height: 1.7; color: #565757; }
.st-card__body p + p { margin-top: .75rem; }
.st-list ul, .st-list ol { margin-top: .5rem; display: grid; gap: .45rem; }
.st-list li { position: relative; padding-left: 1.5rem; }
.st-list li::before {
  content: ''; position: absolute; left: 0; top: .62em;
  width: .55rem; height: .55rem; border-radius: 2px; transform: rotate(45deg);
  background: #D5B48D;
}

.st-rows { display: flex; flex-direction: column; }
.st-row {
  display: grid; grid-template-columns: 3rem 1fr; gap: 1rem;
  padding: 1.6rem 0;
  border-top: 1px solid #E9DFCC;
}
.st-row:last-of-type { border-bottom: 1px solid #E9DFCC; }
.st-row__num {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif;
  font-size: 1.6rem; line-height: 1; color: #B68C5A;
}
.st-row__title { margin-bottom: .5rem; }
.st-more { font-size: 0.98rem; color: #565757; }

/* Cross-reference to the practice hub ("For the full explanation… see our … page") */
.st-xref {
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 1.1rem 1.3rem;
  border: 1px solid #E9DFCC;
  border-left: 3px solid #B68C5A;
  border-radius: 12px;
  background: #FAF5EC;
}
.bg-brand-cream .st-xref { background: #fff; }
.st-xref__icon {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 2.4rem; height: 2.4rem; border-radius: 999px;
  background: #fff; color: #1B4981;
  border: 1px solid #E9DFCC;
}
.st-xref__label { font-size: .7rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #9A7448; }
.st-xref__text { margin-top: .2rem; font-size: .98rem; line-height: 1.6; color: #565757; }
.st-xref__text a { color: #1B4981; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(27,73,129,.35); }
.st-xref__text a:hover { text-decoration-color: currentColor; }

/* Checklist on landing pages: icon feature grid / place chips (checklist.php) */
.ck-item {
  display: flex; align-items: flex-start; gap: .95rem;
  padding: 1.25rem 1.3rem;
  background: #FAF5EC;
  border: 1px solid #E9DFCC;
  border-radius: 14px;
}
.bg-brand-cream .ck-item { background: #fff; }
.ck-item__icon {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 2.6rem; height: 2.6rem; border-radius: 12px;
  background: #1B4981; color: #D5B48D;
}
.ck-item__text { padding-top: .15rem; font-size: 1rem; line-height: 1.55; color: #2E2E2F; }
.ck-chip {
  display: inline-flex; align-items: center;
  padding: .5rem 1rem; border-radius: 999px;
  background: #fff; border: 1px solid #DCCFB5;
  font-size: .95rem; color: #2E2E2F;
}
.bg-white .ck-chip { background: #FAF5EC; }

/* Home firm intro: stats + quote + pillars */
.pl-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; border-top: 1px solid #E9DFCC; padding-top: 1.5rem; }
.pl-stat__value { font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif; font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); line-height: 1; color: #1B4981; }
.pl-stat__label { margin-top: .5rem; font-size: .82rem; line-height: 1.4; color: #767677; }
.pl-figure { position: relative; }
.pl-quote {
  position: relative; margin: -3rem 1.25rem 0 auto; max-width: 26rem;
  padding: 1.4rem 1.5rem;
  background: #0E2542; color: #fff;
  border-radius: 14px; border-left: 4px solid #D5B48D;
  box-shadow: 0 20px 50px -25px rgba(14,37,66,.6);
}
.pl-quote p { font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif; font-size: 1.08rem; line-height: 1.5; }
.pl-quote cite { display: block; margin-top: .75rem; font-style: normal; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #D5B48D; }
@media (max-width: 640px) { .pl-quote { margin: -2rem .75rem 0; } }

/* Reviews: leave a review */
.rv-leave {
  margin-top: 2rem;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem;
  padding: 1.4rem 1.6rem;
  border: 1px solid #E9DFCC;
  border-radius: 14px;
  background: #fff;
}
.bg-white .rv-leave { background: #FAF5EC; }
.rv-leave__title { font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif; font-size: 1.25rem; color: #2E2E2F; }
.rv-leave__sub { margin-top: .2rem; font-size: .9rem; color: #767677; }
.rv-leave__btns { display: flex; flex-wrap: wrap; gap: .6rem; }
.rv-leave__btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .65rem 1.1rem; border-radius: 999px;
  border: 1px solid #1B4981; color: #1B4981;
  font-size: .9rem; font-weight: 600; background: #fff;
  transition: background 150ms ease, color 150ms ease;
}
.rv-leave__btn span { color: #BC9468; }
.rv-leave__btn:hover { background: #1B4981; color: #fff; }
.rv-leave__btn:hover span { color: #D5B48D; }

/* Closing lead band (inc/lead-band.php) */
.lead-band__glow {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(60% 80% at 0% 0%, rgba(213,180,141,.18), transparent 60%),
    radial-gradient(50% 70% at 100% 100%, rgba(60,104,163,.35), transparent 60%);
}
.lead-band__eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: #D5B48D;
}
.lead-band__eyebrow::before { content: ''; width: 1.75rem; height: 1px; background: currentColor; }
.lead-band__phone { display: inline-flex; align-items: center; gap: 1rem; color: #fff; }
.lead-band__phone-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 3rem; height: 3rem; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.25); color: #D5B48D;
  transition: background 150ms ease, border-color 150ms ease;
}
.lead-band__phone.is-primary .lead-band__phone-icon { background: #D5B48D; color: #0E2542; border-color: transparent; }
.lead-band__phone:hover .lead-band__phone-icon { border-color: #D5B48D; }
.lead-band__tick { width: .45rem; height: .45rem; border-radius: 2px; transform: rotate(45deg); background: #D5B48D; }
.lead-band__card {
  background: #fff; color: #2E2E2F;
  border-radius: 18px;
  padding: 1.75rem 1.5rem;
  box-shadow: 0 30px 80px -40px rgba(0,0,0,.6);
}
@media (min-width: 640px) { .lead-band__card { padding: 2.25rem 2.25rem; } }
.st-bio { border-top: 1px solid #E9DFCC; padding-top: 2.5rem; }
@media (min-width: 900px) { .st-bio { -moz-column-count: 2; column-count: 2; -moz-column-gap: 4rem; column-gap: 4rem; } }
.st-bio p { font-size: 1rem; line-height: 1.75; color: #565757; margin-bottom: 1.1rem; -moz-column-break-inside: avoid; break-inside: avoid-column; }
.st-bio a { color: #1B4981; text-decoration: underline; text-underline-offset: 3px; }

/* Narrow phones: logo + call + "Free Consult" + menu overflowed 390px and the
   page scrolled sideways. The call icon stays (the call is the conversion on a
   phone); the consult button returns from 420px up, and every page now ends on
   the intake form anyway. */
@media (max-width: 419px) {
  .header-cta--sm { display: none !important; }
}

/* Elena's dock stays where the concierge puts it: centred at the bottom, on
   every viewport. It must never sit on a lead form or on the hero's call and
   consult buttons, so main.js measures the dock against those targets on
   scroll and resize:
     - the greeting card would cover one  -> html.elena-tease-away (card yields,
       the input bar stays);
     - the input bar itself would cover one -> html.elena-away (dock fades).
   The greeting also retires once the visitor has scrolled past the first
   screen (html.elena-tease-retired): it is a hello, not a banner over every
   section heading. An open conversation, or a bar being typed in, is never
   hidden. */
.ty-chat { transition: opacity .25s ease, transform .25s ease; }
html.elena-tease-away .ty-chat:not(:focus-within) .ty-chat-tease,
html.elena-tease-retired .ty-chat:not(:focus-within) .ty-chat-tease {
  opacity: 0; visibility: hidden; pointer-events: none; animation: none;
}
html.elena-away .ty-chat:not(:focus-within):not(:has([data-ty-chat-panel]:not([hidden]))) {
  opacity: 0; pointer-events: none; transform: translate(-50%, 16px);
}

/* ---- Landing-page hero with the intake form (inc/lead-band.php) -------------
   Phones: copy, then the form, then the trust chips — the form sits as high as
   the H1 and lede allow. Desktop: copy and chips on the left, centred against
   the form card, which is layered over the page's photograph on the right. */
.hero-lead__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "copy" "stage" "chips";
  row-gap: 1.75rem;
  padding-top: 1.75rem; padding-bottom: 2.75rem;
}
.hero-lead__copy  { grid-area: copy; }
.hero-lead__stage { grid-area: stage; position: relative; }
.hero-lead__chips { grid-area: chips; display: flex; flex-wrap: wrap; gap: .5rem; }
@media (min-width: 640px) { .hero-lead__grid { padding-top: 2.75rem; padding-bottom: 3.5rem; } }
@media (min-width: 1024px) {
  .hero-lead__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 31rem);
    grid-template-rows: 1fr auto auto 1fr;
    grid-template-areas: ". stage" "copy stage" "chips stage" ". stage";
    -moz-column-gap: 3.5rem;
         column-gap: 3.5rem; row-gap: 0;
    padding-top: 3rem; padding-bottom: 4rem;
  }
  .hero-lead__chips { margin-top: 1.75rem; }
  .hero-lead__stage { padding: 2.5rem 0; }
}
@media (min-width: 1280px) { .hero-lead__grid { -moz-column-gap: 5rem; column-gap: 5rem; } }

.hero-lead__phones { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; max-width: 34rem; }
.hero-lead__phone {
  display: flex; align-items: center; gap: .65rem;
  padding: .65rem .8rem; border-radius: 12px;
  background: #fff; border: 1px solid #DCCFB5;
  color: #2E2E2F;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.hero-lead__phone:hover { border-color: #1B4981; box-shadow: 0 10px 28px -18px rgba(14,37,66,.5); transform: translateY(-1px); }
.hero-lead__phone.is-primary { background: #1B4981; border-color: #1B4981; color: #fff; }
.hero-lead__phone.is-primary:hover { background: #163C6B; }
.hero-lead__phone-icon {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 2.1rem; height: 2.1rem; border-radius: 999px;
  background: #FAF5EC; color: #1B4981;
}
.hero-lead__phone.is-primary .hero-lead__phone-icon { background: #D5B48D; color: #0E2542; }
.hero-lead__phone-label { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #767677; }
.hero-lead__phone.is-primary .hero-lead__phone-label { color: #D5B48D; }
.hero-lead__phone-num { display: block; font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif; font-size: 1rem; line-height: 1.25; white-space: nowrap; letter-spacing: -.01em; }
@media (max-width: 419px) {
  .hero-lead__phone { padding: .55rem .6rem; gap: .5rem; }
  .hero-lead__phone-icon { width: 1.75rem; height: 1.75rem; }
  .hero-lead__phone-icon svg { width: 15px; height: 15px; }
  .hero-lead__phone-label { letter-spacing: .1em; }
}
@media (min-width: 420px) { .hero-lead__phone { padding: .7rem 1rem; gap: .8rem; } .hero-lead__phone-num { font-size: 1.2rem; } }
@media (min-width: 640px) { .hero-lead__phone-num { font-size: 1.35rem; } .hero-lead__phone-icon { width: 2.4rem; height: 2.4rem; } }

.hero-lead__chip {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .38rem .8rem; border-radius: 999px;
  background: rgba(255,255,255,.75); border: 1px solid #E9DFCC;
  font-size: 13px; font-weight: 500; color: #565757;
}

.hero-lead__photo { display: none; }
@media (min-width: 1024px) {
  .hero-lead__photo {
    display: block; position: absolute; inset: 0 0 0 5rem;
    border-radius: 20px; overflow: hidden; background: #0E2542;
  }
  .hero-lead__photo picture, .hero-lead__photo img { display: block; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; }
  .hero-lead__photo::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(160deg, rgba(14,37,66,.05) 30%, rgba(14,37,66,.55));
  }
}
.hero-lead__card {
  position: relative; z-index: 1;
  background: #fff; color: #2E2E2F;
  border-radius: 18px; border: 1px solid rgba(14,37,66,.07);
  padding: 1.4rem 1.25rem 1.25rem;
  box-shadow: 0 30px 70px -38px rgba(14,37,66,.5);
}
@media (min-width: 640px) { .hero-lead__card { padding: 1.75rem 1.75rem 1.5rem; } }
@media (min-width: 1024px) { .hero-lead__card { margin-right: 2.75rem; } }

/* Closing band on a page that opened on the form: phones, and a way back up. */
.lead-band__call-card {
  border: 1px solid rgba(255,255,255,.14); border-radius: 18px;
  background: rgba(255,255,255,.04);
  padding: 1.5rem;
}
@media (min-width: 640px) { .lead-band__call-card { padding: 1.9rem 2rem; } }
.lead-band__call-card .lead-band__phone > span:last-child > span:last-child { white-space: nowrap; font-size: 1.45rem; }
.lead-band__up { display: inline-flex; align-items: center; gap: .5rem; font-weight: 600; font-size: .95rem; color: #D5B48D; }
.lead-band__up:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }

/* Phones and tablets: the sticky call/chat/consult bar owns the bottom edge.
   Elena's floating bar stays off screen (it stacked on the sticky bar and ate
   ~140px); the bar's Chat button adds html.elena-docked and opens her panel
   just above the sticky bar, so Call stays one tap away while chatting. */
@media (max-width: 1023px) {
  html:not(.elena-docked) .ty-chat { display: none !important; }
  html.elena-docked .ty-chat { bottom: calc(4.6rem + env(safe-area-inset-bottom, 0px)); }
}
/* Desktop: the footer ends with room under it for Elena's bar, so the
   disclaimer and copyright line can scroll clear of it. */
@media (min-width: 1024px) { .site-footer { padding-bottom: 5.5rem; } }

/* ---- Contact: one row per office (template-parts/blocks/map-embed.php) ------
   The card (address, phone, hours, directions) and that office's own map sit
   side by side from lg and stack on phones; the card stretches to the map's
   height so the pair reads as one unit. */
.office-rows { display: grid; gap: 2.5rem; }
@media (min-width: 1024px) { .office-rows { gap: 3rem; } }
.office-row {
  display: grid; grid-template-columns: minmax(0, 1fr);
  border: 1px solid #E9DFCC; border-radius: 18px;
  overflow: hidden; background: #fff;
  box-shadow: 0 24px 60px -44px rgba(14,37,66,.45);
}
@media (min-width: 1024px) {
  .office-row { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
.office-row__card { display: flex; flex-direction: column; padding: 1.75rem 1.5rem; }
@media (min-width: 640px) { .office-row__card { padding: 2.25rem 2.25rem; } }
.office-row__title {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif; color: #2E2E2F;
  font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); line-height: 1.2; letter-spacing: -.01em;
}
.office-row__facts { margin-top: 1.5rem; display: grid; gap: 1.1rem; }
.office-row__facts dt {
  font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: #9A7448;
}
.office-row__facts dd { margin-top: .3rem; font-size: 1rem; line-height: 1.55; color: #565757; }
.office-row__phone {
  font-family: Libre Bodoni, ui-serif, Georgia, Cambria, Times New Roman, serif; font-size: 1.35rem; color: #1B4981;
  white-space: nowrap;
}
.office-row__phone:hover { text-decoration: underline; text-underline-offset: 4px; }
.office-row__note { margin-top: 1.1rem; font-size: .9375rem; line-height: 1.55; color: #767677; }
.office-row__actions { margin-top: auto; padding-top: 1.75rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.office-row__map { position: relative; min-height: 18rem; background: #F1E9DA; }
@media (min-width: 640px) { .office-row__map { min-height: 22rem; } }
.office-row__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---- Balanced link grids (wdc_balanced_grid_class() in inc/helpers.php) ----
   Built on a doubled track count (4 at two columns, 6 at three) with each
   card spanning two, so a short last row can start half a card in and sit
   centred: one leftover card in the middle, two leftovers side by side. */
.grid-bal { display: grid; grid-template-columns: minmax(0, 1fr); }
.grid-bal--eq > * > a { height: 100%; }
@media (min-width: 640px) {
  .grid-bal--2, .grid-bal--3 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .grid-bal--eq { grid-auto-rows: 1fr; }
  .grid-bal--2 > *, .grid-bal--3 > * { grid-column: span 2; }
  .grid-bal--2 > :last-child:nth-child(odd),
  .grid-bal--3 > :last-child:nth-child(odd) { grid-column: 2 / span 2; }
}
@media (min-width: 1024px) {
  .grid-bal--3 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .grid-bal--3 > :last-child:nth-child(odd) { grid-column: auto / span 2; }
  .grid-bal--3 > :last-child:nth-child(3n+1) { grid-column: 3 / span 2; }
  .grid-bal--3 > :nth-last-child(2):nth-child(3n+1) { grid-column: 2 / span 2; }
}
.placeholder\:text-brand-ink-500\/70::-moz-placeholder {
  color: rgb(118 118 119 / 0.7);
}
.placeholder\:text-brand-ink-500\/70::placeholder {
  color: rgb(118 118 119 / 0.7);
}
.placeholder\:text-brand-ink-soft\/50::-moz-placeholder {
  color: rgb(86 87 87 / 0.5);
}
.placeholder\:text-brand-ink-soft\/50::placeholder {
  color: rgb(86 87 87 / 0.5);
}
.hover\:h-2:hover {
  height: 0.5rem;
}
.hover\:-translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-\[1\.03\]:hover {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:scale-\[1\.06\]:hover {
  --tw-scale-x: 1.06;
  --tw-scale-y: 1.06;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:gap-2\.5:hover {
  gap: 0.625rem;
}
.hover\:border-brand-accent:hover {
  --tw-border-opacity: 1;
  border-color: rgb(182 140 90 / var(--tw-border-opacity, 1));
}
.hover\:border-brand-ink:hover {
  --tw-border-opacity: 1;
  border-color: rgb(46 46 47 / var(--tw-border-opacity, 1));
}
.hover\:border-brand-primary:hover {
  --tw-border-opacity: 1;
  border-color: rgb(27 73 129 / var(--tw-border-opacity, 1));
}
.hover\:border-brand-primary\/30:hover {
  border-color: rgb(27 73 129 / 0.3);
}
.hover\:border-brand-primary\/40:hover {
  border-color: rgb(27 73 129 / 0.4);
}
.hover\:border-white:hover {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.hover\:bg-brand-accent-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(154 116 72 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-highlight:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(213 180 141 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-primary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-primary-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(237 242 249 / var(--tw-bg-opacity, 1));
}
.hover\:bg-brand-primary-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(22 60 107 / var(--tw-bg-opacity, 1));
}
.hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.hover\:text-brand-accent:hover {
  --tw-text-opacity: 1;
  color: rgb(182 140 90 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-navy:hover {
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-primary:hover {
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.hover\:text-brand-primary-600:hover {
  --tw-text-opacity: 1;
  color: rgb(22 60 107 / var(--tw-text-opacity, 1));
}
.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.hover\:underline:hover {
  text-decoration-line: underline;
}
.hover\:no-underline:hover {
  text-decoration-line: none;
}
.hover\:decoration-current:hover {
  text-decoration-color: currentColor;
}
.hover\:opacity-100:hover {
  opacity: 1;
}
.hover\:shadow-brand:hover {
  --tw-shadow: 0 6px 24px -6px rgba(46, 46, 47, 0.12), 0 2px 6px -2px rgba(46, 46, 47, 0.06);
  --tw-shadow-colored: 0 6px 24px -6px var(--tw-shadow-color), 0 2px 6px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-lg:hover {
  --tw-shadow: 0 20px 40px -12px rgba(46, 46, 47, 0.18), 0 8px 16px -8px rgba(46, 46, 47, 0.08);
  --tw-shadow-colored: 0 20px 40px -12px var(--tw-shadow-color), 0 8px 16px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-primary:hover {
  --tw-shadow: 0 10px 30px -10px rgba(27, 73, 129, 0.30), 0 4px 12px -4px rgba(27, 73, 129, 0.16);
  --tw-shadow-colored: 0 10px 30px -10px var(--tw-shadow-color), 0 4px 12px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-primary-lg:hover {
  --tw-shadow: 0 24px 60px -12px rgba(27, 73, 129, 0.26), 0 8px 24px -8px rgba(27, 73, 129, 0.14);
  --tw-shadow-colored: 0 24px 60px -12px var(--tw-shadow-color), 0 8px 24px -8px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-sm:hover {
  --tw-shadow: 0 2px 8px -2px rgba(46, 46, 47, 0.08);
  --tw-shadow-colored: 0 2px 8px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-lg:hover {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-brand-primary:hover {
  --tw-shadow-color: #1B4981;
  --tw-shadow: var(--tw-shadow-colored);
}
.hover\:ring-white:hover {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1));
}
.hover\:ring-white\/25:hover {
  --tw-ring-color: rgb(255 255 255 / 0.25);
}
.hover\:grayscale-0:hover {
  --tw-grayscale: grayscale(0);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.focus\:not-sr-only:focus {
  position: static;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: normal;
}
.focus\:absolute:focus {
  position: absolute;
}
.focus\:left-2:focus {
  left: 0.5rem;
}
.focus\:top-2:focus {
  top: 0.5rem;
}
.focus\:border-brand-primary:focus {
  --tw-border-opacity: 1;
  border-color: rgb(27 73 129 / var(--tw-border-opacity, 1));
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-brand-primary:focus {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(27 73 129 / var(--tw-ring-opacity, 1));
}
.focus\:ring-brand-primary\/25:focus {
  --tw-ring-color: rgb(27 73 129 / 0.25);
}
.focus\:ring-brand-primary\/30:focus {
  --tw-ring-color: rgb(27 73 129 / 0.3);
}
.focus\:ring-white\/70:focus {
  --tw-ring-color: rgb(255 255 255 / 0.7);
}
.focus\:ring-white\/80:focus {
  --tw-ring-color: rgb(255 255 255 / 0.8);
}
.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-4:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-brand-primary:focus-visible {
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(27 73 129 / var(--tw-ring-opacity, 1));
}
.focus-visible\:ring-brand-primary\/25:focus-visible {
  --tw-ring-color: rgb(27 73 129 / 0.25);
}
.focus-visible\:ring-brand-primary\/30:focus-visible {
  --tw-ring-color: rgb(27 73 129 / 0.3);
}
.focus-visible\:ring-brand-primary\/40:focus-visible {
  --tw-ring-color: rgb(27 73 129 / 0.4);
}
.focus-visible\:ring-brand-primary\/50:focus-visible {
  --tw-ring-color: rgb(27 73 129 / 0.5);
}
.focus-visible\:ring-white\/30:focus-visible {
  --tw-ring-color: rgb(255 255 255 / 0.3);
}
.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}
.group[open] .group-open\:rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:translate-x-0\.5 {
  --tw-translate-x: 0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:scale-\[1\.03\] {
  --tw-scale-x: 1.03;
  --tw-scale-y: 1.03;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:bg-brand-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(27 73 129 / var(--tw-bg-opacity, 1));
}
.group:hover .group-hover\:text-brand-ink {
  --tw-text-opacity: 1;
  color: rgb(46 46 47 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:text-brand-primary {
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.group:hover .group-hover\:text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
@media (min-width: 640px) {

  .sm\:block {
    display: block;
  }

  .sm\:flex {
    display: flex;
  }

  .sm\:w-auto {
    width: auto;
  }

  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .sm\:flex-row {
    flex-direction: row;
  }

  .sm\:items-center {
    align-items: center;
  }

  .sm\:gap-4 {
    gap: 1rem;
  }

  .sm\:gap-5 {
    gap: 1.25rem;
  }

  .sm\:gap-x-10 {
    -moz-column-gap: 2.5rem;
         column-gap: 2.5rem;
  }

  .sm\:gap-y-14 {
    row-gap: 3.5rem;
  }

  .sm\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .sm\:py-14 {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
  }

  .sm\:py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .sm\:py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .sm\:py-28 {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .sm\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
}
@media (min-width: 768px) {

  .md\:col-span-2 {
    grid-column: span 2 / span 2;
  }

  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {

  .lg\:sticky {
    position: sticky;
  }

  .lg\:top-24 {
    top: 6rem;
  }

  .lg\:top-28 {
    top: 7rem;
  }

  .lg\:order-last {
    order: 9999;
  }

  .lg\:col-span-1 {
    grid-column: span 1 / span 1;
  }

  .lg\:col-span-4 {
    grid-column: span 4 / span 4;
  }

  .lg\:col-span-5 {
    grid-column: span 5 / span 5;
  }

  .lg\:col-span-6 {
    grid-column: span 6 / span 6;
  }

  .lg\:col-span-7 {
    grid-column: span 7 / span 7;
  }

  .lg\:col-span-8 {
    grid-column: span 8 / span 8;
  }

  .lg\:-my-4 {
    margin-top: -1rem;
    margin-bottom: -1rem;
  }

  .lg\:-mt-16 {
    margin-top: -4rem;
  }

  .lg\:mb-10 {
    margin-bottom: 2.5rem;
  }

  .lg\:mb-12 {
    margin-bottom: 3rem;
  }

  .lg\:mb-14 {
    margin-bottom: 3.5rem;
  }

  .lg\:mb-16 {
    margin-bottom: 4rem;
  }

  .lg\:mt-10 {
    margin-top: 2.5rem;
  }

  .lg\:mt-12 {
    margin-top: 3rem;
  }

  .lg\:mt-14 {
    margin-top: 3.5rem;
  }

  .lg\:mt-16 {
    margin-top: 4rem;
  }

  .lg\:mt-20 {
    margin-top: 5rem;
  }

  .lg\:mt-40 {
    margin-top: 10rem;
  }

  .lg\:block {
    display: block;
  }

  .lg\:grid {
    display: grid;
  }

  .lg\:hidden {
    display: none;
  }

  .lg\:aspect-\[4\/3\] {
    aspect-ratio: 4/3;
  }

  .lg\:aspect-auto {
    aspect-ratio: auto;
  }

  .lg\:h-12 {
    height: 3rem;
  }

  .lg\:h-14 {
    height: 3.5rem;
  }

  .lg\:h-48 {
    height: 12rem;
  }

  .lg\:h-auto {
    height: auto;
  }

  .lg\:w-1\/2 {
    width: 50%;
  }

  .lg\:w-48 {
    width: 12rem;
  }

  .lg\:scale-\[1\.03\] {
    --tw-scale-x: 1.03;
    --tw-scale-y: 1.03;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }

  .lg\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .lg\:grid-cols-12 {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }

  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .lg\:grid-cols-\[0\.85fr_1\.15fr\] {
    grid-template-columns: 0.85fr 1.15fr;
  }

  .lg\:grid-cols-\[1\.05fr_1fr\] {
    grid-template-columns: 1.05fr 1fr;
  }

  .lg\:grid-cols-\[1\.1fr_0\.9fr\] {
    grid-template-columns: 1.1fr 0.9fr;
  }

  .lg\:grid-cols-\[1\.1fr_1fr\] {
    grid-template-columns: 1.1fr 1fr;
  }

  .lg\:grid-cols-\[1\.4fr_1fr_1fr_1\.2fr\] {
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
  }

  .lg\:grid-cols-\[minmax\(0\2c 1fr\)_minmax\(0\2c 0\.85fr\)\] {
    grid-template-columns: minmax(0,1fr) minmax(0,0.85fr);
  }

  .lg\:grid-cols-\[minmax\(0\2c 44rem\)_15rem\] {
    grid-template-columns: minmax(0,44rem) 15rem;
  }

  .lg\:flex-row {
    flex-direction: row;
  }

  .lg\:items-end {
    align-items: flex-end;
  }

  .lg\:items-center {
    align-items: center;
  }

  .lg\:justify-end {
    justify-content: flex-end;
  }

  .lg\:justify-center {
    justify-content: center;
  }

  .lg\:justify-between {
    justify-content: space-between;
  }

  .lg\:gap-10 {
    gap: 2.5rem;
  }

  .lg\:gap-14 {
    gap: 3.5rem;
  }

  .lg\:gap-16 {
    gap: 4rem;
  }

  .lg\:gap-6 {
    gap: 1.5rem;
  }

  .lg\:gap-x-16 {
    -moz-column-gap: 4rem;
         column-gap: 4rem;
  }

  .lg\:space-y-14 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(3.5rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(3.5rem * var(--tw-space-y-reverse));
  }

  .lg\:space-y-28 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(7rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(7rem * var(--tw-space-y-reverse));
  }

  .lg\:self-center {
    align-self: center;
  }

  .lg\:justify-self-end {
    justify-self: end;
  }

  .lg\:p-10 {
    padding: 2.5rem;
  }

  .lg\:p-14 {
    padding: 3.5rem;
  }

  .lg\:p-6 {
    padding: 1.5rem;
  }

  .lg\:p-7 {
    padding: 1.75rem;
  }

  .lg\:p-8 {
    padding: 2rem;
  }

  .lg\:px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }

  .lg\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .lg\:py-10 {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }

  .lg\:py-11 {
    padding-top: 2.75rem;
    padding-bottom: 2.75rem;
  }

  .lg\:py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .lg\:py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
  }

  .lg\:py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }

  .lg\:py-28 {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .lg\:py-32 {
    padding-top: 8rem;
    padding-bottom: 8rem;
  }

  .lg\:py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
  }

  .lg\:py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .lg\:py-7 {
    padding-top: 1.75rem;
    padding-bottom: 1.75rem;
  }

  .lg\:py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }

  .lg\:pb-28 {
    padding-bottom: 7rem;
  }

  .lg\:pb-7 {
    padding-bottom: 1.75rem;
  }

  .lg\:pb-8 {
    padding-bottom: 2rem;
  }

  .lg\:pt-12 {
    padding-top: 3rem;
  }

  .lg\:pt-14 {
    padding-top: 3.5rem;
  }

  .lg\:pt-16 {
    padding-top: 4rem;
  }

  .lg\:pt-4 {
    padding-top: 1rem;
  }

  .lg\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }

  .lg\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .lg\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .lg\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .lg\:text-6xl {
    font-size: 3.75rem;
    line-height: 1;
  }

  .lg\:text-\[1\.4rem\] {
    font-size: 1.4rem;
  }

  .lg\:text-\[1\.65rem\] {
    font-size: 1.65rem;
  }

  .lg\:text-\[1\.75rem\] {
    font-size: 1.75rem;
  }

  .lg\:text-\[1\.7rem\] {
    font-size: 1.7rem;
  }

  .lg\:text-\[2\.5rem\] {
    font-size: 2.5rem;
  }

  .lg\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }

  .lg\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}
@media (min-width: 1280px) {

  .xl\:flex {
    display: flex;
  }

  .xl\:hidden {
    display: none;
  }

  .xl\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .xl\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (min-width: 1360px) {

  .min-\[1360px\]\:gap-4 {
    gap: 1rem;
  }

  .min-\[1360px\]\:gap-6 {
    gap: 1.5rem;
  }
}
.\[\&_a\:hover\]\:text-white a:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.\[\&_a\]\:text-brand-primary a {
  --tw-text-opacity: 1;
  color: rgb(27 73 129 / var(--tw-text-opacity, 1));
}
.\[\&_a\]\:underline a {
  text-decoration-line: underline;
}
.\[\&_a\]\:transition a {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
