/* Shared layout rules, loaded after the page-specific styles. */
:root {
  --site-width: 80rem;
  --page-gutter: clamp(1rem, 3.4vw, 3.5rem);
  --section-space: clamp(2.5rem, 5vw, 4.5rem);
}

body { font-size: 1rem; }
img, svg, video { max-width: 100%; }
img { vertical-align: middle; }
main, section, article, aside, form, fieldset { min-width: 0; }
p, li, dd, dt, h1, h2, h3, a, summary { overflow-wrap: anywhere; }
textarea { max-width: 100%; resize: vertical; }
input, select, textarea { min-width: 0; max-width: 100%; font: inherit; }
input:not([type="checkbox"]):not([type="radio"]), select { min-height: 3rem; }
button, .button { max-width: 100%; }
.button {
  min-height: 2.75rem;
  line-height: 1.5;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}
.text-button { min-height: 2.75rem; line-height: 1.6; }
:focus-visible { outline-offset: 3px; }
textarea:focus-visible { outline: 3px solid #387bd3; }

/* Align full-width sections without applying viewport padding to small panels. */
body > header, body > footer,
.hero.hero-background, .page-hero, .path-section, .pricing-section,
.process-section, .resources-section, .directory-section, .related-section,
.service-layout, .guide-layout, .about-story, .contact-grid, .team-section,
.brand-values, .closing {
  padding-inline: max(var(--page-gutter), calc((100% - var(--site-width)) / 2));
}
.path-section, .pricing-section, .process-section, .resources-section,
.directory-section, .related-section, .service-layout, .guide-layout,
.about-story, .contact-grid, .team-section, .brand-values {
  padding-block: var(--section-space);
}
.faq-section, .page-faq {
  width: min(100%, calc(var(--site-width) + 2 * var(--page-gutter)));
  max-width: none;
  margin-inline: auto;
  padding: 2rem var(--page-gutter) var(--section-space);
}
.policy-body {
  width: min(100%, 60rem);
  max-width: none;
  padding: var(--section-space) var(--page-gutter);
}
.page-hero:after { left: max(var(--page-gutter), calc((100% - var(--site-width)) / 2)); }
.page-hero h1, .hero.hero-background h1 {
  font-size: clamp(2rem, 5.2vw, 4.5rem);
  line-height: 1.16;
}
.process-section h2, .about-story h2 { font-size: clamp(1.8rem, 3.4vw, 2.7rem); }
.hero.hero-background { min-height: 0; padding-block: clamp(3rem, 6vw, 5rem); }
.hero-copy, .section-heading > *, .closing > *, .scope-list > div > div { min-width: 0; }
.actions, .hero-notes, .section-heading, .closing { flex-wrap: wrap; }
.actions { gap: 1rem 1.5rem; }
.actions .text-link { line-height: 1.6; }
.hero-notes { gap: 1rem 1.5rem; }
.eyebrow { line-height: 1.6; }
.scope-list > div > span, .steps li > span { flex-shrink: 0; }

/* One navigation layout and one menu behavior across all routes. */
body > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.25rem;
  padding-block: .625rem;
}
body > header .brand { margin: 0; }
body > header .brand-logo {
  width: clamp(4.5rem, 7vw, 6rem);
  height: auto;
  aspect-ratio: 1;
}
body > header > nav { justify-content: center; align-items: center; min-width: 0; gap: 1.5rem; }
body > header > nav > a, .nav-dropdown > summary { min-height: 2.75rem; display: flex; align-items: center; }
.nav-dropdown > summary { gap: .5rem; line-height: 1.5; }
.nav-dropdown > summary::after { content: "+"; font-size: 1.125rem; font-weight: 400; }
.nav-dropdown[open] > summary::after { content: "−"; }
.header-actions { min-width: 0; gap: 1rem; margin: 0; }
.header-actions > a { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; }
.header-actions .login-link { font-size: .875rem; line-height: 1.5; }
.header-actions .login-link {
  padding: .65rem 1rem;
  border: 1px solid var(--navy);
  border-radius: 6px;
  background: var(--navy);
  color: white;
  font-weight: 700;
  text-decoration: none;
  transition: background-color .18s ease, border-color .18s ease;
}
.header-actions .login-link:hover,
.header-actions .login-link:focus-visible {
  background: var(--red);
  border-color: var(--red);
  color: white;
}
.header-actions .button { font-size: .875rem; padding: .65rem 1rem; }
.menu-toggle { width: 2.75rem; height: 2.75rem; padding: 0; border-radius: 6px; line-height: 1; }
.mega-menu {
  right: max(var(--page-gutter), calc((100% - var(--site-width)) / 2));
  width: min(42.5rem, calc(100% - 2 * var(--page-gutter)));
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  max-height: min(70vh, 38rem);
  overflow: auto;
  padding: 1.5rem;
  overscroll-behavior: contain;
}
.mega-menu > div { min-width: 0; }
.mega-menu a { font-size: .875rem; line-height: 1.5; min-height: 2.75rem; padding-block: .65rem; }
.mega-menu .eyebrow { font-size: .75rem; }

/* Shrinkable grid tracks keep long titles, emails and field values inside cards. */
.path-grid, .values-grid, .resource-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pricing-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 1.25rem; }
.directory-grid, .service-deliverables .directory-grid, .notice-services .directory-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-services .directory-grid, .team-grid, .package-starts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.related-section .directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.path-grid > *, .resource-grid > *, .values-grid > *, .team-grid > *, .package-starts > * { min-width: 0; }
.legal-team-section .section-heading { align-items: flex-end; gap: 1.5rem; margin-bottom: 2rem; }
.legal-team-section .section-heading h2 { margin-bottom: .75rem; }
.legal-team-section .section-heading p:not(.eyebrow) { margin-bottom: 0; max-width: 38rem; font-size: 1rem; }
.legal-team-grid { gap: 1.25rem; align-items: stretch; }
.legal-profile { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: white; }
.legal-profile-photo { width: 100%; aspect-ratio: 4 / 5; max-height: 22rem; overflow: hidden; background: var(--pale); }
.team-grid .legal-profile img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; border-radius: 0; }
.legal-profile-content { padding: 1.25rem; flex: 1; min-width: 0; }
.team-grid .legal-profile h3 { margin: 0 0 .5rem; color: var(--navy); font-size: 1.125rem; line-height: 1.4; }
.team-grid .legal-profile-role { margin-bottom: .875rem; color: var(--red); font-size: .875rem; line-height: 1.5; font-weight: 700; }
.team-grid .legal-profile-description { margin-bottom: 0; color: var(--muted); font-size: 1rem; line-height: 1.65; }
.directory-card, .prep-card, .price-card { min-width: 0; padding: clamp(1.25rem, 2vw, 1.75rem); }
.price-card.featured { padding: calc(clamp(1.25rem, 2vw, 1.75rem) - 1px); }
.package-label { height: auto; min-height: 2.8em; font-size: .75rem; line-height: 1.5; }
.price-card > p { font-size: 1rem; line-height: 1.6; min-height: 3.2em; }
.price-card li, .price-card .button, .price-card small { font-size: .875rem; }
.price-card .button { margin-top: auto; }
.price-card .price { font-size: 2.7rem; }
.directory-card .eyebrow { min-height: 0; }
.directory-card p, .home-services .directory-card p, .prep-card li, .values-grid p, .path-grid p, .resource-grid p { font-size: 1rem; }
.directory-card h3, .home-services .directory-card h3 { font-size: 1.3rem; }
.service-layout { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); }
.guide-layout { grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); }
.guide-body { min-width: 0; max-width: 52rem; }
.about-story, .contact-grid, .process-section { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3.5rem); }
.table-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; }
.package-comparison { font-size: .875rem; }
.package-comparison th, .package-comparison td { vertical-align: top; }

.calculator {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, .95fr);
  padding: clamp(1.25rem, 2.5vw, 2rem);
  gap: 1.5rem;
}
.calculator > *, .calculator-controls > * { min-width: 0; }
.calculator-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(5rem, .55fr); gap: .75rem; }
.calculator input, .calculator select { width: 100%; min-width: 0; height: auto; font-size: 1rem; }
.calculator label, .calculator p, .total > span, .total small { font-size: .875rem; }
.calculator .total { grid-column: auto; border-top: 0; border-left: 1px solid var(--line); padding: 0 0 0 1.5rem; }
.total strong { font-size: 2.25rem; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }

body > footer { grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 2rem; }
footer > div { min-width: 0; }
footer > div:first-child { grid-column: auto; }
footer > div > a:not(.brand) { font-size: .875rem; overflow-wrap: anywhere; padding-block: .25rem; }
.footer-note { font-size: .8125rem; }

/* Reference footer: separate brand row, four link columns and a policy row. */
.site-footer { display: block; background: #091a39; color: #b8c7dc; padding-block: 4.375rem 1.5625rem; }
.footer-container { width: min(100%, 73.75rem); margin-inline: auto; }
.site-footer .footer-brand-row { display: flex; align-items: center; flex-wrap: wrap; gap: 2.75rem; margin-bottom: 2.125rem; padding-bottom: 2.125rem; border-bottom: 1px solid #ffffff24; }
.site-footer .footer-brand { flex-shrink: 0; margin: 0; color: white; }
.site-footer .brand-logo { display: block; width: 7rem; height: 7rem; object-fit: contain; border-radius: 8px; background: white; }
.site-footer .footer-brand-row p { max-width: 37.5rem; margin: 0; font-size: 1rem; line-height: 1.7; }
.site-footer .footer-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.2fr) minmax(0, .85fr) minmax(0, 1fr); gap: 2rem; }
.site-footer .footer-column { min-width: 0; }
.site-footer h3 { margin: .25rem 0 1.25rem; color: white; font-size: 1rem; line-height: 1.5; font-weight: 800; }
.site-footer ul { margin: 0; padding: 0; list-style: none; line-height: 1.65; }
.site-footer li { margin-bottom: .625rem; }
.site-footer a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.site-footer .footer-column a { display: inline-block; padding-block: .1875rem; max-width: 100%; font-size: .9375rem; }
.site-footer a:hover, .site-footer a:focus-visible { color: white; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .footer-bottom { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 2fr); gap: 1.875rem; align-items: start; margin-top: 3.4375rem; padding-top: 1.5rem; border-top: 1px solid #ffffff20; font-size: .8125rem; line-height: 1.7; }
.site-footer .footer-bottom p { max-width: 85ch; margin: 0; font-size: inherit; }
.site-footer .footer-policies { display: flex; align-items: flex-start; justify-content: flex-start; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .625rem; font-size: inherit; }
.site-footer .footer-policies a { text-decoration: underline; text-underline-offset: 3px; }

/* Account and order panels have their own container, even on very wide displays. */
.portal-intro, .order-shell, .request-layout {
  width: min(100%, 70rem);
  max-width: none;
  margin-inline: auto;
  padding-inline: var(--page-gutter);
}
.portal-intro { padding-top: var(--section-space); padding-bottom: 1.5rem; }
.portal-intro h1, .portal-heading h1 { font-size: clamp(1.9rem, 4vw, 3.25rem); line-height: 1.2; letter-spacing: -.04em; }
.order-shell, .request-layout { padding-top: 0; padding-bottom: var(--section-space); }
.checkout-grid, .request-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 1.75rem; align-items: start; }
.checkout-grid > *, .request-layout > * { min-width: 0; margin-top: 0; }
.class-calculator { margin: 0 0 2rem; padding: 0; border: 0; }
.class-calculator legend { font-family: Manrope, sans-serif; font-size: 1.5rem; font-weight: 800; margin-bottom: .75rem; }
.class-calculation { display: grid; gap: .5rem; padding: 1rem; border: 1px solid var(--line); border-left: 4px solid var(--navy); border-radius: 6px; background: var(--pale); }
.class-calculation strong { color: var(--navy); }
.selected-class-numbers { margin-block: .75rem; font-size: .875rem; }
.class-catalog { border: 1px solid var(--line); border-radius: 8px; background: white; margin-bottom: .75rem; }
.class-catalog > summary { padding: .85rem 1rem; min-height: 2.75rem; font-weight: 700; color: var(--navy); cursor: pointer; }
.class-options { max-height: 26rem; overflow-y: auto; padding: .25rem 1rem 1rem; overscroll-behavior: contain; }
.class-group { padding: 0; margin: 0; }
.class-group h3 { margin: .75rem 0; font-size: 1rem; }
.class-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.class-option { display: flex; align-items: center; gap: .5rem; padding: .625rem; min-height: 3.25rem; border: 1px solid var(--line); border-radius: 6px; font-size: .875rem; line-height: 1.5; font-weight: 500; cursor: pointer; }
.class-option:has(input:checked) { border-color: var(--navy); background: var(--pale); }
.class-option:focus-within { outline: 2px solid var(--navy); outline-offset: 2px; }
.class-option input { flex: 0 0 1.125rem; width: 1.125rem; height: 1.125rem; min-height: 0; margin: 0; padding: 0; accent-color: var(--navy); }
.class-number { flex-shrink: 0; font-weight: 800; color: var(--navy); }
.class-title { min-width: 0; overflow-wrap: anywhere; }
.field-error { font-size: .875rem; color: var(--red); font-weight: 700; }
.request-panel, .request-aside, .login-panel { min-width: 0; padding: clamp(1.25rem, 2.5vw, 2rem); }
.request-panel h2, .request-aside h2, .checkout-grid h2 { font-size: 1.5rem; }
.request-panel .form-grid { margin: 0; }
.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.25rem; }
.form-grid > * { min-width: 0; }
.request-panel label, .login-panel label, .admin-form label { font-size: .875rem; line-height: 1.6; }
.request-panel input, .request-panel select, .request-panel textarea,
.login-panel input, .admin-form input, .admin-form select, .admin-form textarea {
  width: 100%; font-size: 1rem; line-height: 1.5; margin: .375rem 0 1.125rem;
}
.request-panel .checkbox-label, .admin-form .checkbox-label { display: flex; font-size: .875rem; }
.checkbox-label > span { min-width: 0; }
.checkbox-label input { flex: 0 0 1.125rem; width: 1.125rem; height: 1.125rem; margin: .25rem 0 0; }
.request-aside p, .request-aside li { font-size: 1rem; }
.request-aside .subtle, .signed-in { font-size: .875rem; }
.checkout-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; font-size: .875rem; }
.checkout-steps li { min-width: 0; }
.cart-totals > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1rem; }
.cart-totals dt { min-width: 0; font-size: .875rem; }
.cart-totals dd { font-size: 1rem; white-space: normal; font-variant-numeric: tabular-nums; }
.cart-totals .total-row dd { font-size: 1.25rem; }
.cart-actions { gap: 1rem; align-items: center; }
.verification-code, .login-panel input#code { width: min(100%, 15rem); font-size: 2rem; letter-spacing: .5rem; line-height: 1.5; }
.notice { font-size: .9375rem; }
.login-layout {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 5vw, 4rem);
  min-height: 0;
  padding: var(--section-space) max(var(--page-gutter), calc((100% - 72rem) / 2));
}
.login-story, .login-panel { min-width: 0; }
.login-story h1 { font-size: clamp(2rem, 4.2vw, 3.4rem); line-height: 1.2; }
.login-panel { align-self: start; }
.login-panel h2 { font-size: clamp(1.6rem, 2.5vw, 2rem); }
.login-panel p { font-size: 1rem; }

.portal-shell { width: 100%; max-width: 86rem; grid-template-columns: 14rem minmax(0, 1fr); }
.portal-content { padding: 2rem clamp(1rem, 2.5vw, 2rem) var(--section-space); }
.team-page { width: min(100%, 86rem); max-width: none; padding-inline: var(--page-gutter); }
.portal-heading, .case-summary { flex-wrap: wrap; align-items: flex-start; }
.portal-heading > *, .case-summary > * { min-width: 0; }
.portal-stats > div { min-width: 0; padding: 1.25rem; }
.portal-stats span { font-size: .875rem; }
.portal-stats strong { font-size: 1.875rem; font-variant-numeric: tabular-nums; }
.case-grid { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); }
.case-grid > *, .case-grid > aside > * { min-width: 0; }
.portal-content .portal-card { padding: 1.25rem; }
.case-grid h2 { font-size: 1.5rem; }
.case-grid h3 { font-size: 1.2rem; }
.portal-card p, .message p { font-size: 1rem; }
.portal-card .subtle, .subtle { font-size: .875rem; }
.fields dt { font-size: .875rem; }
.fields dd { font-size: 1rem; }
.fields { gap: 1rem 1.25rem; }
.case-summary .tag { max-width: 100%; font-size: .875rem; }
.request-list button { min-width: 0; max-width: 100%; font-size: 1rem; overflow-wrap: anywhere; }
.request-list small, .timeline p { font-size: .875rem; }
.timeline time, .message time { font-size: .8125rem; }
.payment-amount { font-size: 1.875rem; }
.team-table { font-size: .875rem; table-layout: fixed; }
.team-table td, .team-table th { vertical-align: top; }
.team-table button { min-height: 2.75rem; text-align: left; overflow-wrap: anywhere; }
.payment-connection { max-width: 100%; }
.payment-connection pre, .payment-connection code { white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 75rem) {
  .pricing-grid, .home-services .directory-grid, .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calculator { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calculator .total { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line); padding: 1rem 0 0; }
  .case-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 64rem) {
  body > header { grid-template-columns: auto minmax(0, 1fr) auto; gap: .75rem; }
  body > header .brand { order: 1; }
  body > header .header-actions { order: 2; justify-self: end; gap: .75rem; }
  body > header .menu-toggle { order: 3; }
  body > header > nav {
    display: flex; grid-column: 1 / -1; order: 4; width: 100%;
    flex-direction: column; align-items: stretch; gap: .25rem;
    border-top: 1px solid var(--line); padding-top: .75rem; justify-content: start;
  }
  body > header.navigation-ready > nav { display: none; }
  body > header.navigation-ready.menu-open > nav { display: flex; }
  body > header .menu-toggle { display: none; }
  body > header.navigation-ready .menu-toggle { display: block; }
  body > header > nav > a { padding: .625rem .25rem; font-size: 1rem; }
  .nav-dropdown { width: 100%; }
  .nav-dropdown > summary { justify-content: space-between; padding: .625rem .25rem; font-size: 1rem; }
  .mega-menu {
    position: static; width: 100%; max-height: none; grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 1rem; margin: .5rem 0; gap: 1.25rem; box-shadow: none; border-radius: 6px;
  }
  .directory-grid, .notice-services .directory-grid, .service-deliverables .directory-grid, .package-starts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-layout, .guide-layout, .about-story, .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .guide-nav { position: static; padding: 1.25rem; border: 1px solid var(--line); border-radius: 8px; }
  .guide-body { max-width: none; }
  .guide-nav a { min-height: 2.75rem; font-size: .875rem; }
  .login-layout { grid-template-columns: minmax(0, 1fr); }
  .login-story .lead { max-width: 46rem; }
  .login-benefits { display: none; }
  .login-panel { width: 100%; max-width: 40rem; }
  .portal-shell { grid-template-columns: 12rem minmax(0, 1fr); }
  .portal-nav { padding: 1.5rem 1rem; }
  body > footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 60rem) {
  .site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.25rem 2.5rem; }
  .site-footer .footer-brand-row { gap: 1.5rem; }
  .checkout-grid, .request-layout { grid-template-columns: minmax(0, 1fr); }
  .checkout-grid > .request-aside, .request-layout > .request-aside { margin-top: 0; }
}

@media (max-width: 48rem) {
  .process-section, .path-grid, .resource-grid, .values-grid { grid-template-columns: minmax(0, 1fr); }
  .path-grid > a { padding: 1.5rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .section-heading { display: flex; flex-direction: column; align-items: start; gap: .5rem; }
  .section-heading > p { margin-bottom: 0; }
  .calculator { grid-template-columns: minmax(0, 1fr); }
  .calculator .total { grid-column: auto; }
  .portal-shell { display: block; }
  .portal-nav { flex-direction: row; flex-wrap: wrap; padding: 1.25rem var(--page-gutter); border-right: 0; border-bottom: 1px solid var(--line); gap: .5rem 1rem; }
  .portal-nav > .eyebrow { width: 100%; margin: 0; }
  .portal-nav > a { min-height: 2.75rem; display: flex; align-items: center; }
  .portal-user { width: 100%; margin-top: .75rem; flex-direction: row; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; }
  .portal-user > span { width: 100%; order: 3; }
  .request-list { display: grid; grid-template-columns: minmax(0, 1fr); }
  .team-table { min-width: 0; display: block; table-layout: auto; }
  .team-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .team-table tbody { display: block; }
  .team-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1.25rem; border-bottom: 1px solid var(--line); }
  .team-table tbody tr:last-child { border-bottom: 0; }
  .team-table tbody td { display: block; min-width: 0; padding: 0; border: 0; font-size: 1rem; }
  .team-table tbody td:nth-child(1), .team-table tbody td:nth-child(2) { grid-column: 1 / -1; }
  .team-table tbody td::before { content: attr(data-label); display: block; color: var(--muted); font-size: .875rem; font-weight: 600; margin-bottom: .25rem; }
  .team-table tbody td:empty { display: none; }
  .team-table td small { font-size: .875rem; }
  .team-table button { min-height: 0; padding-block: .375rem; font-size: 1rem; }
}

@media (max-width: 40rem) {
  .site-footer { padding-top: 3rem; }
  .site-footer .footer-brand-row { flex-direction: column; align-items: flex-start; gap: 1.375rem; }
  .site-footer .footer-grid, .site-footer .footer-bottom { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .site-footer .footer-column a { display: inline-flex; align-items: center; min-height: 2.75rem; padding-block: .4375rem; }
  .site-footer .footer-policies a { display: inline-flex; align-items: center; min-height: 2.75rem; }
  .site-footer .footer-bottom { margin-top: 2.125rem; }
  .class-grid { grid-template-columns: minmax(0, 1fr); }
  .class-options { max-height: 24rem; padding-inline: .75rem; }
  .directory-grid, .home-services .directory-grid, .notice-services .directory-grid,
  .related-section .directory-grid, .service-deliverables .directory-grid,
  .pricing-grid, .team-grid, .package-starts, .form-grid { grid-template-columns: minmax(0, 1fr); }
  .form-grid { gap: 0; }
  .mega-menu { grid-template-columns: minmax(0, 1fr); }
  .price-card > p { min-height: 0; }
  .package-label { min-height: 0; }
  .actions { align-items: stretch; flex-direction: column; }
  .actions > .button, .cart-actions > .button, .closing > .button { width: 100%; }
  .actions > .text-link { align-self: start; }
  .closing { align-items: stretch; }
  .cart-actions { flex-direction: column; align-items: stretch; }
  .cart-actions .text-button { align-self: start; }
  .fields { grid-template-columns: minmax(0, 1fr); }
  .checkout-steps { grid-template-columns: minmax(0, 1fr); gap: .5rem; }
  .checkout-steps li { padding-bottom: .5rem; }
  .portal-heading > .button { width: 100%; }
}

@media (max-width: 34rem) {
  body > header { grid-template-columns: minmax(0, 1fr) auto; }
  body > header .menu-toggle { order: 2; }
  body > header .header-actions {
    grid-column: 1 / -1; order: 3; justify-self: stretch; width: 100%;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem;
  }
  .header-actions > a { min-width: 0; padding: .5rem; text-align: center; }
  .header-actions .button { display: inline-flex; padding: .5rem; }
  .header-actions .login-link { white-space: normal; }
  .header-actions .login-link { padding: .5rem; }
  body > footer { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .portal-stats { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .portal-stats > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
  .portal-stats strong { margin: 0; }
  .team-table tbody tr { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; }
}
