:root {
  color-scheme: light;
  --navy: #14224f;
  --gold: #a67c2e;
  --ink: #202124;
  --paper: #ffffff;
  --focus: #005fcc;
  --muted: #55585f;
  --line: #e4e5e8;
  --placeholder: #fff1c7;
  --error: #a01818;
  color: var(--ink);
  background: var(--paper);
}

* { box-sizing: border-box; }
body { margin: 0; line-height: 1.6; }
a { color: var(--navy); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
button, a { min-height: 24px; }
.skip-link { position: absolute; left: 1rem; top: -5rem; padding: .5rem; background: var(--paper); z-index: 1; }
.skip-link:focus { top: 1rem; }
.ph { color: var(--navy); background: var(--placeholder); border-bottom: 1px dotted var(--gold); padding: 0 .15em; }
/* clip, not hidden: hidden would make the frame a scroll container, and view() would track it instead of the page. */
.parallax-photo { position: relative; overflow: clip; }
.parallax-photo picture { position: absolute; inset: 0; display: block; }
.parallax-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0%; }

@media (prefers-reduced-motion: no-preference) {
  /* reveal.ts adds .reveal-ready only when it can also reveal, so nothing is ever left hidden. */
  .reveal-ready .motion-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease-out, transform .6s ease-out; }
  .reveal-ready .motion-reveal.is-visible { opacity: 1; transform: none; }
  @supports (animation-timeline: view()) {
    .parallax-photo {
      animation: portrait-parallax linear both;
      animation-timeline: view();
      animation-range: cover 0% cover 100%;
    }
    @keyframes portrait-parallax {
      from { transform: translateY(-40px); }
      to { transform: translateY(40px); }
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/_astro/hanken-grotesk-latin-wght-normal.CaVRRdDk.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  --soft: #f7f8fa;
  --gold-button: #d7b66f;
  font-family: 'Hanken Grotesk', sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  font-optical-sizing: auto;
  font-variant-numeric: lining-nums tabular-nums;
}

* { box-sizing: border-box; }
html { scroll-behavior: auto; scroll-padding-top: 6rem; }
body { margin: 0; min-width: 0; background: var(--paper); color: var(--ink); font-size: 1.0625rem; font-weight: 400; line-height: 1.6; }
img { display: block; max-width: 100%; }
a { color: var(--navy); text-decoration-thickness: 1px; text-underline-offset: .2em; overflow-wrap: anywhere; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
button, a, summary { min-height: 24px; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, p, figure { margin-top: 0; }
h1, h2, h3 { color: var(--navy); font-weight: 680; }
h1 { font-size: clamp(2.7rem, 7.2vw, 6rem); letter-spacing: -.04em; line-height: .96; text-wrap: balance; }
h2 { font-size: clamp(2.2rem, 4.3vw, 4rem); letter-spacing: -.04em; line-height: .99; text-wrap: balance; }
h3 { font-size: clamp(1.5rem, 2.2vw, 2rem); letter-spacing: -.025em; line-height: 1.08; }
p, li { max-width: 70ch; }
::selection { color: var(--paper); background: var(--navy); }

.section-wrap { width: min(100% - 3rem, 75rem); margin-inline: auto; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 30; left: 1rem; top: -5rem; padding: .7rem 1rem; color: var(--paper); background: var(--navy); }
.skip-link:focus { top: 1rem; }
.site-header { position: sticky; z-index: 10; top: 0; border-bottom: 1px solid var(--line); background: var(--paper); }
.header-inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); width: min(100% - 3rem, 81rem); min-height: 5rem; margin-inline: auto; }
.brand { display: inline-flex; align-items: center; gap: .55rem; color: var(--navy); font-size: 1.04rem; font-weight: 700; line-height: 1.1; text-decoration: none; white-space: nowrap; }
.brand img { width: 42px; height: 42px; object-fit: contain; }
.desktop-nav { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: clamp(.8rem, 2vw, 1.8rem); }
.desktop-nav a, .header-phone { color: var(--navy); font-size: .9rem; font-weight: 700; text-decoration: none; }
.desktop-nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 3px; text-underline-offset: .45rem; }
.header-phone { display: inline-flex; align-items: center; justify-content: center; min-height: 2.8rem; padding: .55rem .9rem; color: var(--paper); background: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.header-phone:hover { background: color-mix(in srgb, var(--navy) 88%, white); }
.mobile-menu { display: none; position: relative; }
.mobile-menu summary { display: flex; align-items: center; gap: .55rem; cursor: pointer; list-style: none; color: var(--navy); font-weight: 700; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.menu-mark, .menu-mark::after { width: 1.2rem; height: 2px; background: var(--navy); }
.menu-mark { position: relative; }
.menu-mark::after { position: absolute; top: .4rem; left: 0; content: ''; }
.mobile-menu[open] .menu-mark { transform: rotate(45deg); }
.mobile-menu[open] .menu-mark::after { top: 0; transform: rotate(90deg); }
.mobile-menu nav { position: absolute; top: calc(100% + 1.25rem); right: -1rem; display: grid; min-width: min(19rem, calc(100vw - 2rem)); padding: .7rem 1.1rem; border: 1px solid var(--line); background: var(--paper); }
.mobile-menu nav a { padding: .7rem 0; border-bottom: 1px solid var(--line); color: var(--navy); font-weight: 650; text-decoration: none; }
.mobile-menu nav a:last-child { border-bottom: 0; }

.home-hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr); align-items: stretch; gap: clamp(1rem, 2vw, 2rem); width: min(100%, 90rem); margin-inline: auto; padding-block: clamp(1.5rem, 3vw, 3rem); }
.hero-image { grid-column: 2; grid-row: 1; min-width: 0; height: clamp(32rem, 48vw, 44rem); overflow: clip; background: var(--paper); }
.hero-image picture { display: block; height: 100%; }
.hero-photo { object-position: 50% 0%; }
.hero-panel { position: relative; grid-column: 1; grid-row: 1; display: flex; min-width: 0; flex-direction: column; justify-content: center; container-type: inline-size; padding: clamp(1.5rem, 3.5vw, 3.25rem); border-top: 2px solid var(--gold); color: var(--paper); background: var(--navy); }
.hero-panel h1 { max-width: 12ch; margin-bottom: 1.1rem; color: var(--paper); font-size: clamp(2.4rem, 11cqi, 4.75rem); overflow-wrap: normal; hyphens: manual; }
.hero-kicker, .eyebrow { margin-bottom: .8rem; color: var(--navy); font-size: .75rem; font-weight: 700; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
.hero-panel .hero-kicker { color: var(--paper); }
.hero-intro { max-width: 58ch; margin-bottom: 1.5rem; color: var(--paper); font-size: clamp(1rem, 1.35vw, 1.15rem); }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .7rem 1.15rem; border: 1px solid transparent; font-size: .94rem; font-weight: 650; line-height: 1.3; text-align: center; text-decoration: none; transition: color .18s ease, background-color .18s ease, transform .18s ease; }
.button:active, .header-phone:active, .mobile-actions a:active { transform: translateY(1px); }
.button-primary { color: var(--paper); background: var(--navy); }
.button-primary:hover { color: var(--paper); background: color-mix(in srgb, var(--navy) 88%, white); }
.button-gold { color: var(--navy); background: var(--gold-button); }
.button-gold:hover { color: var(--navy); background: color-mix(in srgb, var(--gold-button) 80%, white); }
.hero-call { color: var(--paper); font-weight: 750; font-variant-numeric: tabular-nums; }
.section-heading { max-width: 45rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.section-heading h2 { margin-bottom: 0; }

.practice-band { padding-block: clamp(5rem, 9vw, 8rem); color: var(--ink); background: var(--paper); }
.inverse-heading h2 { color: var(--navy); }
.inverse-heading .eyebrow { color: var(--navy); }
.practice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; margin: 0; list-style: none; }
.practice-tile { position: relative; display: grid; grid-template-columns: 3rem 1fr; align-content: start; gap: .35rem 1rem; min-height: 0; padding: 1.6rem .8rem 1.8rem; border: 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: color .18s ease, background-color .18s ease; }
.practice-grid li:nth-last-child(-n+2) .practice-tile { border-bottom: 1px solid var(--line); }
.practice-tile:hover, .practice-tile:focus-visible { color: var(--navy); background: var(--soft); }
.practice-number { grid-row: span 3; color: var(--navy); font-size: 1.35rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.practice-title { color: var(--navy); font-size: clamp(1.5rem, 3vw, 2.25rem); font-weight: 650; letter-spacing: -.025em; line-height: 1.05; }
.practice-lead { max-width: 42ch; color: var(--muted); }
.tile-action { display: flex; align-items: center; gap: .5rem; align-self: end; margin-top: 1rem; color: var(--navy); font-size: .86rem; font-weight: 650; }
.tile-action .arrow-mark { border-color: var(--gold); }
.approach-section { padding-block: clamp(6rem, 10vw, 9rem); }
.approach-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; padding: 0; margin: 0; list-style: none; }
.approach-timeline li { padding-top: 1.35rem; border-top: 1px solid var(--line); }
.approach-timeline h3 { margin-bottom: .75rem; }
.approach-timeline p { margin-bottom: 0; }
.principal-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; background: var(--soft); }
/* minmax(0,1fr) caps the width, so aspect-ratio can no longer widen the page; align-self avoids a stretch conflict */
.principal-image { min-width: 0; aspect-ratio: 4 / 3; align-self: center; background: var(--paper); }
.principal-copy { display: flex; flex-direction: column; justify-content: center; align-items: start; padding: clamp(2rem, 7vw, 6rem); }
.principal-copy h2 { max-width: 11ch; }
.principal-copy > p:not(.eyebrow) { max-width: 54ch; }
.principal-role { margin-top: -1rem; color: var(--muted); font-weight: 700; }
.text-action { display: inline-flex; align-items: center; gap: .55rem; margin-top: .8rem; font-weight: 750; }
.closing-band { padding-block: clamp(4.5rem, 8vw, 7rem); color: var(--paper); background: var(--navy); }
.closing-inner { display: grid; grid-template-columns: minmax(17rem, 1fr) auto auto; align-items: center; gap: 2rem; width: min(100% - 3rem, 75rem); margin-inline: auto; }
.closing-inner h2 { max-width: 10ch; margin-bottom: 0; color: var(--paper); }
.closing-phone { color: var(--paper); font-size: clamp(1.8rem, 4vw, 3rem); font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; white-space: nowrap; }

.page-heading { padding-block: clamp(3.5rem, 7vw, 6rem); color: var(--ink); background: var(--paper); }
.page-heading h1 { max-width: 15ch; margin-bottom: 1rem; color: var(--navy); }
.page-lead { max-width: 67ch; margin-bottom: 0; color: var(--muted); font-size: 1.15rem; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.8rem; color: var(--muted); font-size: .87rem; text-transform: capitalize; }
.breadcrumbs a { color: var(--muted); }
.index-content { padding-block: 4rem 6rem; }
.index-grid .practice-tile { color: var(--navy); border-color: var(--line); background: var(--paper); }
.index-grid .practice-tile:hover, .index-grid .practice-tile:focus-visible { color: var(--navy); border-color: var(--navy); background: var(--soft); }
.index-grid .practice-lead { color: var(--ink); }
.index-grid .practice-number { color: var(--navy); }
.reading-layout { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: clamp(2.5rem, 6vw, 6rem); padding-block: clamp(3rem, 6vw, 5rem) clamp(4rem, 8vw, 7rem); }
.reading-content { min-width: 0; }
.reading-content h2 { margin-bottom: 1rem; }
.content-section { margin-bottom: 2.7rem; }
.content-section h2 { font-size: clamp(1.9rem, 3vw, 2.8rem); }
.content-paragraph { max-width: 68ch; }
.content-list { display: grid; gap: .65rem; padding-left: 1.4rem; }
.content-list li::marker { color: var(--gold); }
.practice-sidebar { align-self: start; padding: 1.5rem; border-top: 4px solid var(--gold); background: var(--soft); }
.practice-sidebar .eyebrow { color: var(--navy); }
.sidebar-phone { display: block; margin-bottom: .6rem; font-size: 1.45rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.practice-sidebar .button { width: 100%; margin-block: .5rem 1rem; }
.help-list { padding-top: 1rem; border-top: 1px solid var(--line); }
.help-list h2 { font-size: 1.6rem; }
.help-list ul { display: grid; grid-template-columns: 1fr; gap: .8rem; padding-left: 1.1rem; }
.help-list li::marker { color: var(--gold); }
.faq-section { margin-top: 3rem; }
.faq-item { border-top: 1px solid var(--line); }
.faq-item:last-child { border-bottom: 1px solid var(--line); }
.faq-item summary { padding: 1rem .2rem; color: var(--navy); cursor: pointer; font-weight: 750; }
.faq-item p { padding: 0 .2rem 1rem; }
.people-list { display: grid; gap: 1rem; padding-block: 3rem 6rem; }
.person-row { display: grid; grid-template-columns: 9rem minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); color: var(--navy); }
.person-row img, .person-initials { width: 9rem; height: 9rem; aspect-ratio: 1; object-fit: cover; object-position: 50% 0%; }
.person-initials { display: grid; place-items: center; color: var(--paper); background: var(--navy); font-size: 2rem; font-weight: 500; }
.person-row strong, .person-row span span { display: block; }
.person-row strong { font-size: 1.6rem; font-weight: 650; }
.person-row > div p { margin: .5rem 0 0; color: var(--muted); }
.row-arrow { font-size: 1.5rem; font-weight: 800; }
.person-hero { display: grid; grid-template-columns: minmax(15rem, .8fr) 1.2fr; align-items: center; gap: clamp(2rem, 6vw, 5rem); padding-block: 3rem; }
.person-portrait { width: 100%; height: auto; aspect-ratio: 4 / 3; margin: 0; background: var(--paper); }
.person-hero h2 { margin-bottom: 0; }
.person-hero + .reading-layout { padding-top: 1rem; }
.contact-layout { grid-template-columns: minmax(0, 1fr) 20rem; }
.about-photo { width: min(100%, 16rem); height: auto; aspect-ratio: 8 / 7; margin: 0 0 2.5rem; background: var(--paper); }
.map-link { padding: 1rem 0; }
.form-response { padding: 1rem; background: var(--soft); }
.page-actions { margin-top: 2rem; }
.ph { padding-inline: .15em; color: var(--ink); background: var(--placeholder); border-bottom: 1px dotted var(--gold); }
.hero-trust { max-width: 58ch; margin: -.4rem 0 1.1rem; color: var(--paper); font-size: .94rem; font-weight: 600; }
.arrow-mark { display: inline-block; width: .62rem; height: .62rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }

.site-footer { padding: 3.5rem 1.5rem 2rem; color: var(--paper); background: var(--navy); }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; width: min(100%, 75rem); margin-inline: auto; }
.footer-brand { color: var(--paper); font-size: 1.35rem; font-weight: 700; text-decoration: none; }
.footer-primary p, .footer-contact p { margin-block: .8rem; color: var(--paper); }
.footer-primary address { font-style: normal; }
.footer-phone { color: var(--paper); font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.footer-disclaimer { grid-column: 1 / -1; max-width: 90ch; padding-top: 1.3rem; border-top: 1px solid var(--line); color: var(--paper); }
.footer-legal { display: flex; flex-wrap: wrap; gap: 1.2rem; grid-column: 1 / -1; }
.footer-legal a { color: var(--paper); }
.mobile-actions { display: none; }

@media (max-width: 900px) {
  html { scroll-padding-top: 5.25rem; }
  .home-hero { display: flex; flex-direction: column; min-height: 0; }
  .hero-panel { order: 1; width: calc(100% - 3rem); margin: 0 auto; }
  .hero-image { order: 2; width: calc(100% - 3rem); margin-inline: auto; height: auto; aspect-ratio: 4 / 3; }
  .hero-image picture { height: 100%; }
  .header-inner { grid-template-columns: auto 1fr auto; gap: 1rem; }
  .desktop-nav { gap: .8rem; }
  .desktop-nav a { font-size: .82rem; }
  .closing-inner { grid-template-columns: 1fr auto; }
  .closing-inner .button { grid-column: 1 / -1; justify-self: start; }
  .reading-layout { grid-template-columns: minmax(0, 1fr) 17rem; gap: 2rem; }
}
@media (max-width: 680px) {
  html { scroll-padding-bottom: 5.1rem; }
  body { padding-bottom: calc(4.1rem + env(safe-area-inset-bottom)); }
  .section-wrap { width: min(100% - 2rem, 75rem); }
  .header-inner { width: calc(100% - 2rem); min-height: 4.25rem; }
  .brand { font-size: .95rem; }
  .brand img { width: 35px; height: 35px; }
  .desktop-nav, .header-phone { display: none; }
  .mobile-menu { display: block; justify-self: end; }
  .home-hero { padding-bottom: 0; }
  .hero-panel { width: calc(100% - 2rem); margin: 0 auto; padding: 1.5rem; }
  .hero-kicker { margin-bottom: .55rem; }
  .hero-actions { align-items: start; flex-direction: column; gap: .8rem; }
  .home-hero .hero-actions { display: none; }
  .practice-band { padding-block: 3.5rem; }
  .practice-grid { grid-template-columns: 1fr; }
  .practice-tile { min-height: 0; grid-template-columns: 2.2rem 1fr; padding: 1.4rem 0; }
  .practice-grid li:nth-last-child(-n+2) .practice-tile { border-bottom: 0; }
  .practice-grid li:last-child .practice-tile { border-bottom: 1px solid var(--line); }
  .practice-number { font-size: 1.35rem; }
  .approach-section { padding-block: 3.5rem; }
  .approach-timeline { grid-template-columns: 1fr; gap: 1.4rem; }
  .approach-timeline li { padding-top: .9rem; }
  .principal-section { grid-template-columns: 1fr; }
  /* width-led: a fixed height plus aspect-ratio forced a 427px-wide frame at 320px */
  .principal-image { width: 100%; height: auto; aspect-ratio: 4 / 3; }
  .principal-copy { padding: 2rem 1.2rem 2.5rem; }
  .closing-inner { grid-template-columns: 1fr; gap: 1.3rem; width: calc(100% - 2rem); }
  .closing-phone { font-size: clamp(2rem, 9vw, 3rem); }
  .closing-inner .button { grid-column: auto; }
  .page-heading { padding-block: 2.5rem; }
  .breadcrumbs { margin-bottom: 1.3rem; }
  .reading-layout { grid-template-columns: 1fr; padding-block: 2.5rem 4rem; }
  .help-list ul { grid-template-columns: 1fr; }
  .person-row { grid-template-columns: 5rem minmax(0, 1fr); gap: .9rem; padding-inline: 0; }
  .person-row img, .person-initials { width: 5rem; height: 5rem; }
  .person-row strong { font-size: 1.2rem; }
  .person-row .text-action { grid-column: 2; }
  .person-hero { grid-template-columns: 1fr; gap: 1.4rem; padding-block: 2rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 1.2rem; }
  .footer-disclaimer, .footer-legal { grid-column: auto; }
  .mobile-actions { position: fixed; z-index: 11; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: .72fr 1.28fr; gap: .6rem; padding: .55rem 1rem calc(.55rem + env(safe-area-inset-bottom)); background: var(--paper); border-top: 1px solid var(--line); }
  .mobile-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .45rem .65rem; color: var(--navy); border: 1px solid var(--navy); font-weight: 650; text-align: center; text-decoration: none; transition: transform .18s ease; }
  .mobile-actions a:last-child { color: var(--navy); border-color: var(--gold-button); background: var(--gold-button); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Pages with no side column (About, Team, legal) read as one centred column instead of leaving an empty rail. */
.reading-layout:not(.practice-layout):not(.contact-layout) { grid-template-columns: minmax(0, 48rem); justify-content: center; }
@media (min-width: 900px) {
  .about-photo { float: right; width: min(42%, 20rem); aspect-ratio: 4 / 5; margin: .3rem 0 1.5rem 2.5rem; }
}
/* Below 380px the wordmark needs the room: keep "Menu" for screen readers only. */
@media (max-width: 380px) {
  .menu-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
.brand[data-astro-cid-ua3ylhid] {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: var(--navy);
  font-weight: 700;
  text-decoration: none;
}

img[data-astro-cid-ua3ylhid] {
  width: 48px;
  height: 48px;
  object-fit: contain;
}
.ph[data-astro-cid-evfp5v4q] {
  overflow-wrap: anywhere;
}
form[data-astro-cid-i5bae2vv] {
  display: grid;
  gap: .5rem;
  max-width: 38rem;
}

form[data-astro-cid-i5bae2vv][hidden] {
  display: none;
}

input[data-astro-cid-i5bae2vv], select[data-astro-cid-i5bae2vv], textarea[data-astro-cid-i5bae2vv], button[data-astro-cid-i5bae2vv] {
  font: inherit;
  padding: .55rem;
}

textarea[data-astro-cid-i5bae2vv] {
  min-height: 8rem;
}

.consent[data-astro-cid-i5bae2vv] {
  display: flex;
  align-items: start;
  gap: .5rem;
}

.consent[data-astro-cid-i5bae2vv] input[data-astro-cid-i5bae2vv] {
  min-width: 24px;
  min-height: 24px;
}

.trap[data-astro-cid-i5bae2vv] {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.field-error[data-astro-cid-i5bae2vv] {
  margin: 0;
  color: var(--error);
}

[data-astro-cid-i5bae2vv][aria-invalid="true"] {
  outline: 2px solid var(--error);
}

.form-status[data-astro-cid-i5bae2vv]:empty {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
