/* Native behavior and WordPress integration layered over the reference Tailwind build. */

/* Header search and full search results. */
.taxgen-header-actions {
  display: contents;
}
@media (min-width: 1024px) {
  .taxgen-header-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
  }
}
#taxgen-header > .container-site {
  grid-template-columns: minmax(0, 1fr) auto auto;
}
.taxgen-search-trigger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--navy-foreground);
  opacity: 0.9;
  cursor: pointer;
}
.taxgen-scrolled .taxgen-search-trigger {
  color: var(--navy);
}
.taxgen-search-trigger:hover {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
  opacity: 1;
}
.taxgen-search-trigger:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}
.taxgen-search-dialog {
  width: min(760px, calc(100% - 2rem));
  max-height: calc(100dvh - 3rem);
  margin: 1.5rem auto;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--border);
  border-top: 3px solid var(--gold);
  border-radius: 1rem;
  background: var(--background);
  color: var(--foreground);
  box-shadow: 0 24px 80px rgb(0 0 0 / 0.2);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.taxgen-search-dialog::backdrop {
  background: rgb(7 24 42 / 0.72);
  backdrop-filter: blur(5px);
}
.taxgen-search-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.taxgen-search-heading h2 {
  margin-top: 0.5rem;
  font-family: var(--font-display);
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--navy);
}
.taxgen-search-heading > button {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--secondary);
  color: var(--navy);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.taxgen-search-form {
  display: flex;
  gap: 0.5rem;
  padding: 0.4rem;
  border: 1px solid var(--border);
  border-radius: 0.6rem;
  background: var(--background);
  color: var(--navy);
}
.taxgen-search-form:focus-within {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px var(--gold-soft);
}
.taxgen-search-form input {
  min-width: 0;
  width: 100%;
  flex: 1;
  padding: 0.65rem;
  font-size: 1rem;
  outline: none;
  background: transparent;
}
.taxgen-search-form button {
  padding: 0.65rem 1rem;
  border-radius: 0.4rem;
  background: var(--gold);
  color: var(--navy);
  font-weight: 600;
  cursor: pointer;
}
.taxgen-search-dialog button:focus-visible,
.taxgen-search-dialog a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
.taxgen-search-status {
  margin-block: 1rem;
  color: var(--muted-foreground);
  font-size: 0.8rem;
  line-height: 1.6;
}
.taxgen-search-results {
  display: grid;
  gap: 0.5rem;
}
.taxgen-search-result {
  display: grid;
  gap: 0.4rem;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 0.6rem;
}
.taxgen-search-result:hover {
  background: var(--secondary);
  border-color: var(--gold);
}
.taxgen-search-result strong {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--navy);
}
.taxgen-search-description {
  font-size: 0.8rem;
  color: var(--muted-foreground);
  line-height: 1.65;
}
.taxgen-search-all {
  display: block;
  margin-top: 1rem;
  color: var(--corporate);
  font-size: 0.875rem;
  font-weight: 600;
}
.taxgen-search-all[hidden] {
  display: none;
}
.taxgen-search-suggestions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  border-top: 1px solid var(--border);
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  font-size: 0.75rem;
  color: var(--muted-foreground);
}
.taxgen-search-suggestions button {
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.5rem 0.75rem;
  color: var(--navy);
  cursor: pointer;
}
.taxgen-search-suggestions button:hover {
  background: var(--gold-soft);
}
.taxgen-search-page-form {
  max-width: 640px;
  margin-top: 1.5rem;
}
.taxgen-search-page-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
}
.taxgen-search-page-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.75rem;
  border: 1px solid var(--border);
  border-radius: 0.875rem;
  background: var(--background);
  min-width: 0;
  overflow-wrap: anywhere;
}
.taxgen-search-page-card h2,
.taxgen-search-empty h2 {
  font-size: 1.25rem;
  line-height: 1.4;
  font-weight: 700;
  color: var(--navy);
}
.taxgen-search-page-card > p:not(.eyebrow),
.taxgen-search-empty p {
  color: var(--muted-foreground);
  font-size: 0.875rem;
  line-height: 1.8;
}
.taxgen-search-read {
  margin-top: auto;
  color: var(--corporate);
  font-size: 0.875rem;
  font-weight: 600;
}
.taxgen-search-empty {
  grid-column: 1 / -1;
  padding-block: 2rem;
}
.taxgen-search-empty p {
  margin-block: 1rem;
}
.taxgen-search-empty a {
  color: var(--corporate);
  font-weight: 600;
}
@media (min-width: 768px) {
  .taxgen-search-dialog {
    margin-top: 6rem;
    max-height: calc(100dvh - 8rem);
  }
  .taxgen-search-page-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 479px) {
  #taxgen-header > .container-site {
    gap: 0.4rem;
  }
  .taxgen-search-trigger {
    width: 40px;
    height: 40px;
  }
  .taxgen-search-form button {
    padding-inline: 0.7rem;
  }
  .taxgen-search-description {
    display: none;
  }
}

/* Contact Form 7 uses the same controls and design tokens as the enquiry form. */
.wpcf7 form {
  color: var(--foreground);
  font-family: var(--font-sans);
}
.wpcf7 form > p {
  margin: 0 0 1.25rem;
}
.wpcf7 form p:has(> label) {
  margin: 0;
  display: flex;
  flex-direction: row-reverse;
  gap: 5px;
}
.wpcf7 label {
  display: block;
  color: var(--navy);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.5;
}
.wpcf7 .wpcf7-form-control-wrap {
  display: block;
  min-width: 0;
}
.wpcf7
  :is(
    input.wpcf7-text,
    input.wpcf7-number,
    input.wpcf7-date,
    input.wpcf7-quiz,
    select,
    textarea
  ) {
  box-sizing: border-box;
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 3rem;
  margin-top: 0.375rem;
  border: 1px solid var(--input);
  border-radius: var(--radius);
  background: var(--background);
  padding: 0.75rem 0.875rem;
  color: var(--foreground);
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 400;
  line-height: 1.5;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
}
.wpcf7 textarea {
  min-height: 7.5rem;
  resize: vertical;
}
.wpcf7 select {
  padding-right: 2rem;
}
.wpcf7 :is(input, textarea)::placeholder {
  color: var(--muted-foreground);
  opacity: 1;
}
.wpcf7
  :is(
    input.wpcf7-text,
    input.wpcf7-number,
    input.wpcf7-date,
    input.wpcf7-quiz,
    select,
    textarea
  ):focus {
  border-color: var(--gold);
  outline: none;
  box-shadow: 0 0 0 2px color-mix(in oklch, var(--gold) 30%, transparent);
}
.wpcf7 :is(input, select, textarea)[aria-invalid="true"],
.wpcf7 :is(input, select, textarea).wpcf7-not-valid {
  border-color: var(--destructive);
}
.wpcf7 :is(input[type="checkbox"], input[type="radio"]) {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  margin: 0.125rem 0 0;
  accent-color: var(--corporate);
}
.wpcf7 .wpcf7-list-item {
  display: inline-block;
  margin: 0.5rem 1rem 0 0;
}
.wpcf7 .wpcf7-list-item label {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.75rem;
  color: var(--muted-foreground);
  font-weight: 400;
}
.wpcf7 .wpcf7-list-item-label {
  min-width: 0;
}
.wpcf7 .wpcf7-acceptance a {
  color: var(--corporate);
  font-weight: 600;
  text-decoration: underline;
}
.wpcf7 input[type="file"] {
  max-width: 100%;
  margin-top: 0.375rem;
  font: inherit;
  font-size: 0.875rem;
}
.wpcf7 input[type="file"]::file-selector-button {
  margin-right: 0.75rem;
  border: 1px solid var(--input);
  border-radius: var(--radius);
  background: var(--secondary);
  padding: 0.5rem 0.75rem;
  color: var(--navy);
  cursor: pointer;
}
.wpcf7 :is(input[type="submit"], button[type="submit"]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 3rem;
  border: 0;
  border-radius: var(--radius);
  background: var(--gold);
  padding: 0.75rem 1.5rem;
  color: var(--navy);
  font: inherit;
  font-weight: 600;
  line-height: 1.5;
  white-space: normal;
  cursor: pointer;
  box-shadow: 0 8px 24px -10px var(--gold-glow);
  transition:
    transform 0.2s,
    filter 0.2s,
    box-shadow 0.2s;
}
.wpcf7 :is(input[type="submit"], button[type="submit"]):hover:not(:disabled) {
  transform: translateY(-2px);
  filter: brightness(1.05);
  box-shadow: var(--shadow-lift);
}
.wpcf7 :is(input, select, textarea, button):disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.wpcf7 form.submitting :is(input[type="submit"], button[type="submit"]) {
  opacity: 0.6;
  cursor: progress;
}
.wpcf7 .wpcf7-not-valid-tip {
  margin-top: 0.375rem;
  color: var(--destructive);
  font-size: 0.75rem;
  font-weight: 400;
}
.wpcf7 form .wpcf7-response-output {
  margin: 1rem 0 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0.875rem 1rem;
  background: var(--secondary);
  color: var(--foreground);
  font-size: 0.875rem;
  line-height: 1.5;
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--success);
}
.wpcf7
  form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam)
  .wpcf7-response-output {
  border-color: var(--destructive);
}
@media (prefers-reduced-motion: reduce) {
  .wpcf7 :is(input, select, textarea, button) {
    transition: none;
  }
  .wpcf7 :is(input[type="submit"], button[type="submit"]):hover:not(:disabled) {
    transform: none;
  }
}
.taxgen-logo-switch {
  display: block;
  width: 220px;
  max-width: 100%;
}
.taxgen-brand-logo.custom-logo {
  display: block;
  width: 220px;
  max-width: 100%;
  height: 44px;
  max-height: 44px;
  object-fit: contain;
  object-position: left center;
}
.taxgen-logo-switch .taxgen-logo-on-light {
  display: none;
}
#taxgen-header.taxgen-scrolled .taxgen-logo-on-dark {
  display: none;
}
#taxgen-header.taxgen-scrolled .taxgen-logo-on-light {
  display: block;
}
#taxgen-header.taxgen-scrolled .taxgen-brand-copy {
  color: var(--navy);
}
#taxgen-header.taxgen-scrolled
  .taxgen-brand-copy
  > span:last-child:not(:first-child) {
  color: var(--muted-foreground);
}
[aria-roledescription="slide"] figure {
  margin: 0;
}
[hidden] {
  display: none !important;
}
.reveal {
  opacity: 1;
  transform: none;
}
html.taxgen-js .reveal[data-visible="false"] {
  opacity: 0;
  transform: translateY(24px);
}
html.taxgen-js .reveal[data-visible="true"] {
  opacity: 1;
  transform: none;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}
#taxgen-header {
  color: var(--navy-foreground);
}
#taxgen-header.taxgen-scrolled {
  background: var(--background);
  box-shadow: var(--shadow-card);
  border-color: var(--border);
  color: var(--navy);
}
#taxgen-header.taxgen-scrolled > div:first-child {
  max-height: 0;
}
#taxgen-header.taxgen-scrolled > div:nth-child(2) > a > span:nth-child(2) {
  color: var(--navy);
}
#taxgen-header.taxgen-scrolled
  > div:nth-child(2)
  > a
  > span:nth-child(2)
  > span:nth-child(2) {
  color: var(--muted-foreground);
}
#taxgen-header.taxgen-scrolled [data-taxgen-mobile-open] {
  color: var(--navy);
}
.taxgen-nav-trigger:hover,
.taxgen-nav-link:hover,
.taxgen-nav-trigger[aria-expanded="true"] {
  background: color-mix(in oklch, var(--navy-foreground) 10%, transparent);
}
.taxgen-scrolled .taxgen-nav-trigger:hover,
.taxgen-scrolled .taxgen-nav-link:hover,
.taxgen-scrolled .taxgen-nav-trigger[aria-expanded="true"] {
  background: var(--secondary);
}
.taxgen-nav-trigger svg {
  transition: transform 0.2s;
}
.taxgen-nav-trigger[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
.taxgen-nav-group {
  position: relative;
}
.taxgen-dropdown {
  position: absolute;
  top: calc(100% + 12px);
  padding: 24px;
  background: var(--background);
  color: var(--foreground);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--shadow-lift);
  max-height: calc(100dvh - 140px);
  overflow: auto;
  z-index: 60;
}
.taxgen-dropdown-services {
  position: fixed;
  left: max(16px, calc((100% - 1280px) / 2));
  top: calc(var(--taxgen-header-bottom, 108px) + 12px);
  width: min(1280px, calc(100% - 32px));
}
.taxgen-dropdown-company {
  width: 224px;
  padding: 8px;
}
.taxgen-dropdown a:hover {
  background: var(--secondary);
}
.taxgen-mobile-dialog {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  height: 100dvh;
  background: var(--background);
  color: var(--foreground);
}
.taxgen-mobile-heading {
  height: 72px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
}
.taxgen-close-menu {
  width: 44px;
  height: 44px;
  font-size: 32px;
  color: var(--navy);
}
.taxgen-mobile-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-top: 16px;
}
.taxgen-mobile-group,
.taxgen-mobile-category {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 56px;
  padding: 14px 0;
  font-weight: 600;
  color: var(--navy);
  text-align: left;
}
.taxgen-mobile-category {
  min-height: 48px;
  padding: 12px 0;
  font-size: 14px;
  border-top: 1px solid var(--border);
}
.taxgen-mobile-submenu {
  margin-bottom: 16px;
  padding-left: 16px;
  border-left: 1px solid color-mix(in oklch, var(--gold) 40%, transparent);
}
.taxgen-mobile-submenu li a {
  padding: 12px 0;
}
.taxgen-mobile-category + ul {
  padding-left: 12px;
}
.taxgen-mobile-category[aria-expanded="true"] svg,
.taxgen-mobile-group[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
.taxgen-about-link:hover {
  background: var(--secondary);
}
.taxgen-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.taxgen-form-notice {
  padding: 16px;
  margin-bottom: 20px;
  border: 1px solid var(--success);
  border-radius: 6px;
  background: var(--secondary);
  color: var(--foreground);
  font-size: 14px;
}
.taxgen-form-error {
  border-color: var(--destructive);
  color: var(--destructive);
}
.taxgen-field-error {
  margin-top: 6px;
  font-size: 12px;
  font-weight: 500;
  color: var(--destructive);
}
.taxgen-form-success {
  padding: 32px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.taxgen-form-success h3 {
  font-size: 24px;
  font-weight: 700;
  margin: 16px 0 8px;
}
.taxgen-form-success p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--muted-foreground);
}
.taxgen-form-success svg {
  color: var(--success);
  width: 32px;
  height: 32px;
}
[data-taxgen-accordion][aria-expanded="true"] svg {
  transform: rotate(180deg);
}
[data-taxgen-accordion] + * {
  scroll-margin-top: 110px;
}
.taxgen-carousel-viewport {
  overflow: hidden;
  touch-action: pan-y pinch-zoom;
}
.taxgen-carousel-track {
  will-change: transform;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.taxgen-carousel-track > [data-slot="carousel-item"] {
  min-width: 0;
}
[data-taxgen-service-cards] > div[hidden] {
  display: none;
}
.admin-bar #taxgen-header {
  top: 32px;
}
.admin-bar .taxgen-mobile-dialog {
  top: 32px;
  height: calc(100dvh - 32px);
}
.prose-site .wp-block-image img {
  max-width: 100%;
  height: auto;
}
.custom-logo {
  max-height: 44px;
  width: auto;
}
@media (max-width: 782px) {
  .admin-bar #taxgen-header {
    top: 46px;
  }
  .admin-bar .taxgen-mobile-dialog {
    top: 46px;
    height: calc(100dvh - 46px);
  }
}
@media (max-width: 600px) {
  .admin-bar #taxgen-header {
    top: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  html.taxgen-js .reveal[data-visible] {
    opacity: 1;
    transform: none;
  }
  .taxgen-carousel-track {
    transition: none;
  }
  * {
    scroll-behavior: auto !important;
  }
}

/* Default Template: classic editor content, scoped away from builder sections. */
.taxgen-page-content {
  /* max-width: 80ch; */
  margin-inline: auto;
  color: var(--foreground);
  font-size: 1rem;
  line-height: 1.8;
  overflow-wrap: anywhere;
}
.taxgen-page-content::after {
  content: "";
  display: table;
  clear: both;
}
.taxgen-page-content :where(h1, h2, h3, h4, h5, h6):not(.wpcf7 *) {
  margin: 2em 0 0.65em;
  color: var(--navy);
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.025em;
  scroll-margin-top: 8rem;
}
.taxgen-page-content h1 {
  font-size: clamp(2rem, 4vw, 3rem);
}
.taxgen-page-content h2 {
  font-size: clamp(1.65rem, 3vw, 2.25rem);
}
.taxgen-page-content h3 {
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
}
.taxgen-page-content h4 {
  font-size: 1.25rem;
}
.taxgen-page-content h5 {
  font-size: 1.125rem;
}
.taxgen-page-content h6 {
  font-size: 1rem;
}
.taxgen-page-content > :first-child {
  margin-top: 0;
}
.taxgen-page-content > :last-child {
  margin-bottom: 0;
}
.taxgen-page-content :where(p, ul, ol, dl, figure, pre, table):not(.wpcf7 *) {
  margin-block: 0 1.4rem;
}
.taxgen-page-content :where(ul, ol):not(.wpcf7 *) {
  padding-inline-start: 1.5rem;
}
.taxgen-page-content ul:not(.wpcf7 *) {
  list-style: disc;
}
.taxgen-page-content ol:not(.wpcf7 *) {
  list-style: decimal;
}
.taxgen-page-content li:not(.wpcf7 *) {
  margin-block: 0.35rem;
  padding-inline-start: 0.2rem;
}
.taxgen-page-content li::marker {
  color: var(--corporate);
  font-weight: 600;
}
.taxgen-page-content li :where(ul, ol) {
  margin-block: 0.5rem;
}
.taxgen-page-content dt {
  color: var(--navy);
  font-weight: 700;
}
.taxgen-page-content dd {
  margin: 0.3rem 0 1rem 1.5rem;
}
.taxgen-page-content a:not(.wpcf7 *):not(.wp-element-button) {
  color: var(--corporate);
  text-decoration: underline;
  text-decoration-color: color-mix(in oklch, var(--gold) 65%, transparent);
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}
.taxgen-page-content a:not(.wpcf7 *):hover {
  text-decoration-color: currentColor;
}
.taxgen-page-content blockquote {
  margin: 2rem 0;
  border-inline-start: 3px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 1.25rem 1.5rem;
  background: var(--secondary);
  color: var(--navy);
  font-size: 1.125rem;
}
.taxgen-page-content blockquote p:last-child {
  margin-bottom: 0;
}
.taxgen-page-content blockquote cite {
  display: block;
  margin-top: 0.75rem;
  color: var(--muted-foreground);
  font-size: 0.875rem;
}
.taxgen-page-content hr {
  margin-block: 2.5rem;
  border: 0;
  border-top: 1px solid var(--border);
}
.taxgen-page-content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius);
}
.taxgen-page-content :where(iframe, video) {
  max-width: 100%;
}
.taxgen-page-content :where(figure, .wp-caption) {
  max-width: 100%;
}
.taxgen-page-content :where(figcaption, .wp-caption-text) {
  margin-top: 0.5rem;
  color: var(--muted-foreground);
  font-size: 0.875rem;
  text-align: center;
}
.taxgen-page-content .aligncenter {
  display: block;
  margin-inline: auto;
}
.taxgen-page-content .alignleft {
  float: left;
  margin: 0.4rem 1.5rem 1rem 0;
}
.taxgen-page-content .alignright {
  float: right;
  margin: 0.4rem 0 1rem 1.5rem;
}
.taxgen-page-content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.taxgen-page-content :where(th, td) {
  border: 1px solid var(--border);
  padding: 0.8rem 1rem;
  text-align: start;
  vertical-align: top;
}
.taxgen-page-content th {
  background: var(--navy);
  color: var(--navy-foreground);
  font-weight: 600;
}
.taxgen-page-content tbody tr:nth-child(even) {
  background: var(--secondary);
}
.taxgen-page-content :where(code, kbd) {
  border-radius: 0.25rem;
  background: var(--secondary);
  padding: 0.15em 0.35em;
  font-size: 0.875em;
}
.taxgen-page-content pre {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--secondary);
  padding: 1.25rem;
  font-size: 0.875rem;
}
.taxgen-page-content pre code {
  padding: 0;
  background: transparent;
}
@media (max-width: 639px) {
  .taxgen-page-content :where(.alignleft, .alignright) {
    float: none;
    display: block;
    margin: 1.25rem auto;
  }
  .taxgen-page-content blockquote {
    padding: 1rem;
  }
}

/* Service detail builder: modular advisory, VAT and corporate tax layouts. */
.taxgen-service-block {
  padding-block: clamp(3rem, 6vw, 5rem);
  scroll-margin-top: 8rem;
}
.service-block--soft {
  background: var(--secondary);
}
.service-eyebrow {
  margin-bottom: 0.75rem;
}
.service-section-title {
  max-width: 38ch;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(1.65rem, 3vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.025em;
}
.taxgen-page-content.service-introduction {
  max-width: 85ch;
  margin: 1.25rem 0 2rem;
}
.taxgen-page-content.service-rich {
  max-width: none;
  margin-inline: 0;
}
.service-content-grid,
.service-hero-grid {
  display: grid;
  gap: 2.5rem;
  margin-top: 2rem;
  min-width: 0;
}
.service-content-grid > *,
.service-hero-grid > *,
.service-card-grid > * {
  min-width: 0;
}
.service-side-panel {
  display: grid;
  align-content: start;
  gap: 1.5rem;
}
.service-image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 1rem;
}
.service-form-panel {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--border);
  border-radius: 1rem;
  background: var(--card);
  color: var(--foreground);
  box-shadow: var(--shadow-card);
}
.service-form-panel > :is(h2, h3) {
  margin-bottom: 1.25rem;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.5rem;
  line-height: 1.3;
  font-weight: 700;
}
.service-quick-links {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--card);
}
.service-quick-links a {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--border);
  padding: 1rem 1.25rem;
  color: var(--corporate);
  font-weight: 600;
}
.service-quick-links a:last-child {
  border-bottom: 0;
}
.service-quick-links a:hover {
  background: var(--gold-soft);
}
.service-card-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  padding: 0;
  margin: 2rem 0 0;
  list-style: none;
}
.service-info-card {
  display: flex;
  gap: 1rem;
  border: 1px solid var(--border);
  border-radius: 0.875rem;
  padding: 1.5rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.service-info-card > div {
  min-width: 0;
}
.service-info-card h3,
.service-process h3,
.service-resource-card h3 {
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.2rem;
  line-height: 1.35;
  font-weight: 700;
}
.service-info-card .service-rich,
.service-process .service-rich {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
}
.service-card-value {
  margin-bottom: 0.75rem;
  color: var(--corporate);
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.2;
}
.service-card-grid--stats .service-info-card {
  border-top: 3px solid var(--gold);
}
.service-check {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--gold-soft);
  color: var(--corporate);
  font-weight: 700;
}
.service-text-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
  color: var(--corporate);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.service-process {
  display: grid;
  gap: 1.25rem;
  padding: 0;
  margin-top: 2rem;
  list-style: none;
}
.service-process > li {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-radius: 0.875rem;
  background: var(--card);
}
.service-process > li > div {
  min-width: 0;
}
.service-step-number {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: var(--gold-soft);
  color: var(--navy);
  font-family: var(--font-display);
  font-weight: 700;
}
.service-step-badge {
  margin-bottom: 0.5rem;
  color: var(--corporate);
  font-size: 0.875rem;
  font-weight: 700;
}
.service-process--timeline {
  margin-left: 1.375rem;
  border-left: 2px solid var(--gold);
  gap: 2rem;
}
.service-process--timeline > li {
  margin-left: -1.5rem;
  padding: 0;
  border: 0;
  background: transparent;
}
.service-process--timeline > li > div {
  padding: 0.5rem 0 0;
}
.service-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  margin-top: 2rem;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
}
.service-data-table {
  width: 100%;
  min-width: 32rem;
  border-collapse: collapse;
  text-align: start;
  font-size: 0.9375rem;
}
.service-data-table caption {
  padding: 1rem;
  color: var(--navy);
  font-weight: 600;
  text-align: start;
  background: var(--gold-soft);
}
.service-data-table :is(th, td) {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
  text-align: start;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.service-data-table thead th {
  background: var(--navy);
  color: var(--navy-foreground);
  font-weight: 600;
}
.service-data-table tbody th {
  font-weight: 600;
  color: var(--navy);
}
.service-data-table tbody tr:nth-child(even) {
  background: var(--secondary);
}
.service-data-table tbody tr:last-child > * {
  border-bottom: 0;
}
.taxgen-page-content.service-table-note {
  max-width: none;
  margin: 1rem 0 0;
  font-size: 0.875rem;
  color: var(--muted-foreground);
}
.service-faq {
  display: grid;
  gap: 0.75rem;
  margin-top: 2rem;
}
.service-faq details {
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  background: var(--card);
}
.service-faq summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  color: var(--navy);
  font-weight: 600;
  cursor: pointer;
  list-style: none;
}
.service-faq summary::-webkit-details-marker {
  display: none;
}
.service-faq-icon {
  flex-shrink: 0;
  color: var(--corporate);
  font-size: 1.5rem;
  line-height: 1;
  transition: transform 0.2s;
}
.service-faq details[open] {
  border-color: var(--gold);
}
.service-faq details[open] .service-faq-icon {
  transform: rotate(45deg);
}
.service-faq .service-rich {
  padding: 0 1.5rem 1.25rem;
}
.service-resource-card {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 0.875rem;
  background: var(--card);
  box-shadow: var(--shadow-card);
}
.service-resource-card > div {
  padding: 1.5rem;
}
.service-resource-card h3 a:hover {
  color: var(--corporate);
  text-decoration: underline;
}
.service-resource-card p {
  margin-top: 0.75rem;
  color: var(--muted-foreground);
  font-size: 0.9375rem;
  line-height: 1.7;
}
.service-resource-image {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.service-contact-panel {
  display: grid;
  justify-items: start;
  gap: 2rem;
  margin-top: 2rem;
}
.service-contact-panel > .service-form-panel {
  width: 100%;
  max-width: 48rem;
}
.service-cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  min-height: 3rem;
  border: 1px solid transparent;
  border-radius: var(--radius);
  padding: 0.75rem 1.5rem;
  background: var(--gold);
  color: var(--navy);
  font-weight: 600;
  text-align: center;
  transition:
    transform 0.2s,
    filter 0.2s;
}
.service-cta-button:hover {
  transform: translateY(-2px);
  filter: brightness(1.05);
}
.service-cta-button--outline {
  border-color: color-mix(in oklch, var(--navy-foreground) 40%, transparent);
  background: transparent;
  color: var(--navy-foreground);
}
@media (min-width: 640px) {
  .service-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .service-process:not(.service-process--timeline) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .service-content-grid--split {
    grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
    align-items: start;
  }
  .service-content-grid--reverse {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.65fr);
  }
  .service-content-grid--reverse > .service-side-panel {
    order: -1;
  }
  .service-hero-grid--split {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    align-items: center;
    gap: 4rem;
  }
  .service-card-grid {
    grid-template-columns: repeat(var(--service-columns, 3), minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  .service-faq-icon,
  .service-cta-button {
    transition: none;
  }
  .service-cta-button:hover {
    transform: none;
  }
}

.service-notice {
  padding-block: 1.5rem;
}
.service-notice > .container-site {
  border-inline-start: 3px solid var(--gold);
  padding-block: 1.25rem;
  background: var(--gold-soft);
  border-radius: var(--radius);
}
.service-notice .service-section-title {
  font-size: 1.25rem;
}
.service-notice .service-introduction {
  margin: 0.75rem 0 0;
}
.service-notice--trust > .container-site {
  border-color: var(--corporate);
  background: var(--secondary);
}

/* Article content and shared sidebar. */
.article-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.5rem;
  align-items: start;
}
.article-main,
.article-sidebar {
  min-width: 0;
}
.article-rich-text.taxgen-page-content {
  max-width: none;
  margin-inline: 0;
}
.article-main > * + * {
  margin-top: 2.5rem;
}
.article-sidebar {
  display: grid;
  gap: 1.5rem;
}
.article-related-panel,
.article-guidance-panel {
  padding: 1.5rem;
  border-radius: 0.875rem;
  border: 1px solid var(--border);
  background: var(--secondary);
}
.article-sidebar h2 {
  margin-bottom: 1rem;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.3;
}
.article-related-panel ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.article-related-panel li + li {
  border-top: 1px solid var(--border);
  margin-top: 1rem;
  padding-top: 1rem;
}
.article-related-panel a {
  color: var(--corporate);
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.article-related-panel a:hover {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.article-related-panel time {
  display: block;
  margin-top: 0.5rem;
  color: var(--muted-foreground);
  font-size: 0.75rem;
}
.article-guidance-panel {
  background: var(--navy);
  color: var(--navy-muted);
  border-color: transparent;
}
.article-guidance-panel h2 {
  color: var(--navy-foreground);
}
.article-guidance-panel p {
  margin-bottom: 1.5rem;
  line-height: 1.7;
}
.article-guidance-panel .service-cta-button {
  width: 100%;
}
.article-faq-section > h2 {
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.75rem;
  line-height: 1.3;
  font-weight: 700;
}
@media (min-width: 1024px) {
  .article-layout {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: 3rem;
  }
  .article-sidebar {
    position: sticky;
    top: calc(var(--taxgen-header-bottom, 108px) + 24px);
    max-height: calc(100dvh - var(--taxgen-header-bottom, 108px) - 48px);
    overflow-y: auto;
    scrollbar-width: thin;
  }
}

/* Blog archive category pills and progressive card grid. */
.taxgen-blog-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.625rem;
  margin-bottom: 2.5rem;
}
.taxgen-blog-pill {
  min-height: 2.75rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.625rem 1.25rem;
  background: var(--card);
  color: var(--navy);
  font-size: 0.875rem;
  font-weight: 600;
  transition:
    background-color 0.2s,
    border-color 0.2s,
    color 0.2s;
}
.taxgen-blog-pill:hover {
  border-color: var(--gold);
  background: var(--gold-soft);
}
.taxgen-blog-pill[aria-pressed="true"] {
  border-color: var(--navy);
  background: var(--navy);
  color: var(--navy-foreground);
}
.taxgen-blog-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}
.taxgen-blog-grid > div {
  min-width: 0;
}
.taxgen-blog-grid > div > a {
  height: 100%;
}
.taxgen-blog-empty {
  padding-block: 2rem;
  text-align: center;
  color: var(--muted-foreground);
}
.taxgen-blog-more {
  display: grid;
  justify-items: center;
  gap: 1.25rem;
  margin-top: 2.5rem;
}
.taxgen-blog-more p {
  color: var(--muted-foreground);
  font-size: 0.875rem;
}
@media (min-width: 640px) {
  .taxgen-blog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .taxgen-blog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  .taxgen-blog-pill {
    transition: none;
  }
}

.taxgen-blog-card-image,
.taxgen-blog-card-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin-bottom: 1.25rem;
  border-radius: 0.5rem;
  object-fit: cover;
}
.taxgen-blog-card-placeholder {
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 80% 10%, var(--corporate), var(--navy));
  color: var(--gold);
}
.taxgen-blog-card-placeholder svg {
  width: 3rem;
  height: 3rem;
}

.taxgen-blog-card-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.taxgen-blog-card-footer time {
  font-size: 0.75rem;
  color: var(--muted-foreground);
}
.taxgen-blog-read-more {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--corporate);
  font-size: 0.875rem;
  font-weight: 600;
}
.taxgen-blog-read-more svg {
  transition: transform 0.2s;
}
a:hover .taxgen-blog-read-more svg,
a:focus-visible .taxgen-blog-read-more svg {
  transform: translateX(3px);
}
@media (prefers-reduced-motion: reduce) {
  .taxgen-blog-read-more svg {
    transition: none;
  }
}

/* Match the built-in enquiry card around the Contact Builder shortcode form. */
.taxgen-contact-form-card {
  min-width: 0;
  color: var(--foreground);
}
.taxgen-contact-form-card .wpcf7 form > p:last-of-type {
  margin-bottom: 0;
}

/* Fit up to five service groups across the 1280px mega menu. */
.taxgen-services-menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 24px;
}
.taxgen-services-menu-grid > * {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* Square gold frames with muted client marks that reveal their original colors. */
.taxgen-client-logo {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 224px;
  height: 112px;
  margin-inline: 12px;
  padding: 10px 12px;
  border: 1px solid var(--gold);
  border-radius: 0;
  background: var(--card);
  box-shadow: 0 4px 16px -12px color-mix(in oklch, var(--navy) 25%, transparent);
  transition:
    border-color 0.25s,
    box-shadow 0.25s;
}
.taxgen-client-logo-image {
  display: block;
  width: 90%;
  height: 90%;
  max-height: none;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.7;
  transition: filter 0.25s, opacity 0.25s;
}
.taxgen-client-logo:hover .taxgen-client-logo-image {
  filter: grayscale(0);
  opacity: 1;
}
.taxgen-client-logo:hover {
  border-color: var(--gold);
  box-shadow: var(--shadow-card);
}
@media (max-width: 639px) {
  .taxgen-client-logo {
    width: 180px;
    height: 96px;
    margin-inline: 8px;
    padding: 8px 10px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .taxgen-client-logo,
  .taxgen-client-logo-image {
    transition: none;
  }
}

/* Layered testimonial cards, using the theme's navy and gold palette. */
.taxgen-testimonials {
  padding-block: clamp(3rem, 5vw, 4rem);
}
.taxgen-testimonials > .container-site {
  max-width: 1280px;
}
.taxgen-testimonial-carousel { margin-top: 1.5rem; }
.taxgen-testimonial-carousel:not(.is-ready) > .taxgen-testimonial-controls { display: none; }
.taxgen-testimonial-controls { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 1.25rem; }
.taxgen-testimonial-dots { order: 2; min-width: 0; }
.taxgen-testimonial-controls > div:last-child { display: contents; }
.taxgen-testimonial-controls [aria-label="Previous review"] { order: 1; flex-shrink: 0; }
.taxgen-testimonial-controls [aria-label="Next review"] { order: 3; flex-shrink: 0; }
.taxgen-testimonial-stage { display: grid; gap: 1.25rem; touch-action: pan-y pinch-zoom; }
.taxgen-testimonial-slide { min-width: 0; }
.taxgen-testimonial-card { position: relative; margin: 0; display: flex; flex-direction: column; align-items: center; padding: 2rem 2.25rem; border: 1px solid var(--border); border-top: 3px solid var(--gold); border-radius: 1rem; background: var(--card); color: var(--card-foreground); text-align: center; box-shadow: 0 16px 50px rgb(0 0 0 / .12); }
.taxgen-testimonial-avatar { display: grid; place-items: center; width: 88px; height: 88px; flex-shrink: 0; border-radius: 50%; border: 4px solid var(--card); outline: 2px solid var(--gold); background: var(--gold-soft); color: var(--navy); font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; overflow: hidden; }
.taxgen-testimonial-quote-mark { height: 26px; margin-top: 1.25rem; color: var(--gold); font-family: Georgia,serif; font-size: 3.25rem; line-height: 1; }
.taxgen-testimonial-card blockquote { margin: .5rem 0 1.5rem; font-family: var(--font-display); font-size: clamp(1rem,1.5vw,1.125rem); font-weight: 500; line-height: 1.85; overflow-wrap: anywhere; }
.taxgen-testimonial-card figcaption { display: grid; gap: .4rem; margin-top: auto; }
.taxgen-testimonial-name { color: var(--navy); font-size: 1rem; font-weight: 700; line-height: 1.5; }
.taxgen-testimonial-role { max-width: 350px; color: var(--muted-foreground); font-size: .8rem; line-height: 1.65; }
.taxgen-testimonial-carousel.is-ready .taxgen-testimonial-stage { position: relative; display: block; min-height: 380px; perspective: 500px; transform-style: preserve-3d; isolation: isolate; cursor: grab; user-select: none; }
.taxgen-testimonial-carousel.is-ready .taxgen-testimonial-stage:active { cursor: grabbing; }
.taxgen-testimonial-carousel.is-ready .taxgen-testimonial-slide { position: absolute; top: 0; left: 0; width: min(540px,calc(100% - 2rem)); opacity: 0; visibility: hidden; will-change: transform,opacity; }
.taxgen-testimonial-carousel.is-ready .taxgen-testimonial-card { min-height: var(--review-height,auto); }
.taxgen-testimonial-carousel.is-ready .taxgen-testimonial-slide img { -webkit-user-drag: none; }
.taxgen-testimonial-carousel:focus-visible { outline: 2px solid var(--gold); outline-offset: 6px; border-radius: 1rem; }
@media (max-width: 639px) {
  .taxgen-testimonial-card { padding: 1.75rem 1.4rem; }
  .taxgen-testimonial-avatar { width: 76px; height: 76px; }
  .taxgen-testimonial-carousel.is-ready .taxgen-testimonial-slide { width: calc(100% - 1.25rem); }
}
@media (prefers-reduced-motion: reduce) { .taxgen-testimonial-carousel.is-ready .taxgen-testimonial-slide { transition: none; } }

.taxgen-reviewer-image {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.taxgen-home-blog-card {
  min-width: 0;
}
.taxgen-home-blog-card > a {
  height: 100%;
}

/* Preserve field spacing for CF7 forms with several labels inside one paragraph. */
.wpcf7 label:not(.wpcf7-list-item label) {
  margin-bottom: 0rem;
}
.wpcf7 p > label:last-child {
  margin-bottom: 0;
}

/* Four-column footer and back-to-top control. */
.taxgen-footer {
  background: var(--navy);
  color: var(--navy-muted);
}
.taxgen-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.25rem;
  padding-block: 3.5rem;
}
.taxgen-footer-grid > * {
  min-width: 0;
}
.taxgen-footer h2 {
  margin: 0 0 1.25rem;
  color: var(--navy-foreground);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
}
.taxgen-footer-brand {
  display: inline-block;
  max-width: 100%;
}
.taxgen-footer-custom-logo {
  display: block;
  width: 220px;
  max-width: 100%;
  height: auto;
  max-height: 80px;
  object-fit: contain;
  object-position: left center;
}
.taxgen-footer-company address {
  margin-top: 1.5rem;
  font-style: normal;
  font-size: 0.875rem;
  line-height: 1.9;
}
.taxgen-footer ul {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.taxgen-footer a {
  transition:
    color 0.2s,
    border-color 0.2s,
    background-color 0.2s;
}
.taxgen-footer nav a {
  font-size: 0.875rem;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.taxgen-footer a:hover {
  color: var(--gold);
}
.taxgen-footer-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.taxgen-footer-socials a {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid color-mix(in oklch, var(--navy-foreground) 22%, transparent);
  border-radius: 50%;
  color: var(--navy-foreground);
}
.taxgen-footer-socials a:hover {
  border-color: var(--gold);
  background: color-mix(in oklch, var(--gold) 12%, transparent);
}
.taxgen-footer-bottom {
  border-top: 1px solid
    color-mix(in oklch, var(--navy-foreground) 15%, transparent);
}
.taxgen-footer-bottom-inner {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-block: 1.5rem;
}
.taxgen-footer-bottom p {
  margin: 0;
  font-size: 0.8125rem;
  overflow-wrap: anywhere;
}
.taxgen-footer-bottom nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
}
.taxgen-footer-bottom nav a {
  font-size: 0.8125rem;
}
.taxgen-scroll-top {
  position: fixed;
  right: max(20px, env(safe-area-inset-right));
  bottom: calc(20px + env(safe-area-inset-bottom));
  z-index: 40;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid #ffffff33;
  border-radius: 50%;
  background: var(--gold);
  color: var(--navy);
  box-shadow: var(--shadow-lift);
  cursor: pointer;
  transition:
    transform 0.2s,
    filter 0.2s;
}
.taxgen-scroll-top:hover {
  transform: translateY(-3px);
  filter: brightness(1.08);
}
@media (min-width: 640px) {
  .taxgen-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .taxgen-footer-grid {
    grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
  }
  .taxgen-footer-bottom-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}
@media (prefers-reduced-motion: reduce) {
  .taxgen-scroll-top,
  .taxgen-footer a {
    transition: none;
  }
  .taxgen-scroll-top:hover {
    transform: none;
  }
}

.taxgen-company-navigation a {
  color: var(--muted-foreground);
}
.taxgen-company-navigation a:hover,
.taxgen-company-navigation a[aria-current="page"] {
  color: var(--corporate);
}
.taxgen-company-navigation a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
  height: 2px;
}

/* Header active page and active parent states, on dark and scrolled headers. */
#taxgen-header
  :is(.taxgen-nav-link, .taxgen-nav-trigger)[data-status="active"] {
  color: var(--gold);
  background: color-mix(in oklch, var(--gold) 9%, transparent);
}
#taxgen-header.taxgen-scrolled
  :is(.taxgen-nav-link, .taxgen-nav-trigger)[data-status="active"] {
  color: var(--corporate);
  background: var(--gold-soft);
}
#taxgen-header .taxgen-dropdown a[data-status="active"],
#taxgen-mobile-menu a[data-status="active"],
#taxgen-mobile-menu .taxgen-mobile-group[data-status="active"] {
  color: var(--navy);
  background: transparent;
  font-weight: 700;
}
#taxgen-mobile-menu .taxgen-mobile-group[data-status="active"] {
  border-left: 3px solid var(--gold);
  padding-left: 0.75rem;
}

/* About the firm: mission and vision. */
.taxgen-mission-vision {
  background: var(--secondary);
}
.taxgen-mv-header {
  max-width: 740px;
  margin: 0 auto 2.5rem;
  text-align: center;
}
.taxgen-mv-header:empty {
  display: none;
}
.taxgen-mv-header h2 {
  margin-top: 0.75rem;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--navy);
}
.taxgen-mv-intro {
  margin-top: 1rem;
  color: var(--muted-foreground);
  line-height: 1.8;
}
.taxgen-mv-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}
.taxgen-mv-card {
  min-width: 0;
  position: relative;
  overflow: hidden;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid var(--border);
  border-top: 3px solid var(--gold);
  border-radius: 1rem;
  background: var(--card);
  color: var(--foreground);
  box-shadow: var(--shadow-card);
}
.taxgen-mv-card--vision {
  background: radial-gradient(
    ellipse at top right,
    var(--corporate),
    var(--navy) 75%
  );
  border-color: var(--navy);
  border-top-color: var(--gold);
  color: var(--navy-muted);
}
.taxgen-mv-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 1.5rem;
  border-radius: 14px;
  background: var(--gold-soft);
  color: var(--corporate);
}
.taxgen-mv-card--vision .taxgen-mv-icon {
  background: color-mix(in oklch, var(--gold) 15%, transparent);
  color: var(--gold);
}
.taxgen-mv-card h3 {
  margin-bottom: 1rem;
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--navy);
}
.taxgen-mv-card--vision h3 {
  color: var(--navy-foreground);
}
.taxgen-mv-content {
  font-size: 1rem;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.taxgen-mv-content > * + * {
  margin-top: 1rem;
}
.taxgen-mv-content :is(ul, ol) {
  padding-inline-start: 1.25rem;
}
.taxgen-mv-content ul {
  list-style: disc;
}
.taxgen-mv-content ol {
  list-style: decimal;
}
.taxgen-mv-content a {
  color: var(--corporate);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.taxgen-mv-card--vision a {
  color: var(--gold);
}
@media (min-width: 768px) {
  .taxgen-mv-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
  }
  .taxgen-mv-grid--single {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Team profiles: shared editorial layout below the hero. */
.taxgen-profile-detail {
  padding-block: clamp(2.5rem, 5vw, 4.5rem);
  border-bottom: 1px solid var(--border);
}
.taxgen-profile-detail:nth-of-type(even) {
  background: var(--secondary);
}
.taxgen-profile-detail-grid {
  display: grid;
  gap: 1.75rem;
}
.taxgen-profile-detail-heading {
  min-width: 0;
}
.taxgen-profile-detail-heading h2 {
  margin: 0.65rem 0 1.25rem;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  line-height: 1.25;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.taxgen-profile-detail-content {
  min-width: 0;
  color: var(--muted-foreground);
  font-size: 1rem;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.taxgen-profile-detail-content > * + * {
  margin-top: 1.1rem;
}
.taxgen-profile-detail-content :is(h2, h3, h4) {
  color: var(--navy);
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.4;
  margin-top: 1.75rem;
  margin-bottom: 0.75rem;
}
.taxgen-profile-detail-content :is(h2, h3) {
  font-size: 1.2rem;
}
.taxgen-profile-detail-content > :first-child {
  margin-top: 0;
}
.taxgen-profile-detail-content :is(ul, ol) {
  padding-inline-start: 1.4rem;
}
.taxgen-profile-detail-content ul {
  list-style: disc;
}
.taxgen-profile-detail-content ol {
  list-style: decimal;
}
.taxgen-profile-detail-content li + li {
  margin-top: 0.6rem;
}
.taxgen-profile-detail-content li::marker {
  color: var(--gold);
}
.taxgen-profile-detail-content strong {
  color: var(--navy);
  font-weight: 600;
}
.taxgen-profile-detail-content a {
  color: var(--corporate);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.taxgen-profile-detail-content a:hover {
  color: var(--navy);
}
.taxgen-profile-detail-content a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}
.taxgen-profile-detail-content > a {
  display: inline-block;
  margin-inline-end: 1.25rem;
}
.taxgen-profile-detail-content table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.875rem;
  line-height: 1.65;
  table-layout: fixed;
  border: 1px solid var(--border);
  border-radius: 0.75rem;
  overflow: hidden;
  background: var(--background);
}
.taxgen-profile-detail-content :is(th, td) {
  padding: 1rem;
  text-align: start;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
  overflow-wrap: anywhere;
}
.taxgen-profile-detail-content th {
  background: var(--navy);
  color: var(--navy-foreground);
  font-weight: 600;
}
.taxgen-profile-detail-content tr:last-child td {
  border-bottom: 0;
}
.taxgen-profile-detail-content tbody tr:nth-child(even) {
  background: var(--secondary);
}
@media (min-width: 1024px) {
  .taxgen-profile-detail-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 4rem;
  }
}
@media (max-width: 479px) {
  .taxgen-profile-detail-content :is(th, td) {
    padding: 0.65rem 0.5rem;
    font-size: 0.75rem;
  }
}

/* Profile modules: credentials, expertise, case studies and contact banner. */
.taxgen-profile-detail--cards .taxgen-profile-detail-grid,
.taxgen-profile-detail--table .taxgen-profile-detail-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 1.75rem;
}
.taxgen-profile-detail--cards .taxgen-profile-detail-heading,
.taxgen-profile-detail--table .taxgen-profile-detail-heading {
  max-width: 44rem;
}
.taxgen-profile-facts {
  display: grid;
  gap: 1rem;
}
.taxgen-profile-fact {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.4rem;
  background: var(--background);
  border: 1px solid var(--border);
  border-radius: 0.875rem;
  box-shadow: 0 4px 20px rgb(10 32 58 / 0.035);
}
.taxgen-profile-fact p {
  color: var(--navy);
  font-weight: 600;
  font-size: 0.925rem;
  line-height: 1.6;
  margin: 0.15rem 0 0;
}
.taxgen-profile-fact-icon {
  display: grid;
  place-items: center;
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--gold-soft);
  color: var(--corporate);
  font-size: 0.8rem;
}
.taxgen-profile-accordions {
  display: grid;
  gap: 0.875rem;
}
.taxgen-profile-accordions details {
  border: 1px solid var(--border);
  border-radius: 0.875rem;
  background: var(--background);
  overflow: hidden;
}
.taxgen-profile-accordions details[open] {
  border-color: var(--gold);
  box-shadow: 0 8px 30px rgb(10 32 58 / 0.05);
}
.taxgen-profile-accordions summary {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 1.4rem;
  color: var(--navy);
  font-weight: 700;
  line-height: 1.5;
  cursor: pointer;
  list-style: none;
}
.taxgen-profile-accordions summary::-webkit-details-marker {
  display: none;
}
.taxgen-profile-accordions summary:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: -4px;
}
.taxgen-profile-accordion-number {
  color: var(--corporate);
  opacity: 0.65;
  font-size: 0.8rem;
  font-weight: 600;
}
.taxgen-profile-accordion-toggle {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  margin-left: auto;
  border-radius: 50%;
  background: var(--gold-soft);
  color: var(--navy);
  width: 1.8rem;
  height: 1.8rem;
  font-size: 1.2rem;
  transition: transform 0.2s;
}
details[open] > summary .taxgen-profile-accordion-toggle {
  transform: rotate(45deg);
}
.taxgen-profile-accordion-body {
  padding: 0 1.4rem 1.4rem;
  font-size: 0.95rem;
}
.taxgen-profile-accordion-body > * + * {
  margin-top: 1rem;
}
.taxgen-profile-detail--case-study {
  background: var(--background);
}
.taxgen-profile-detail--case-study .taxgen-profile-detail-grid {
  padding-block: clamp(1.75rem, 4vw, 3rem);
  border: 1px solid var(--border);
  border-top: 3px solid var(--gold);
  border-radius: 1rem;
  background: var(--secondary);
}
.taxgen-profile-detail--case-study
  .taxgen-profile-detail-content
  > p:last-child {
  border-left: 3px solid var(--gold);
  padding: 1rem 1.25rem;
  background: var(--background);
  border-radius: 0 0.5rem 0.5rem 0;
  color: var(--navy);
}
.taxgen-profile-detail--cta {
  background: var(--background);
  border-bottom: 0;
}
.taxgen-profile-detail--cta .taxgen-profile-detail-grid {
  background: radial-gradient(
    ellipse at top right,
    var(--corporate),
    var(--navy) 75%
  );
  border-radius: 1rem;
  padding-block: clamp(2rem, 5vw, 3.5rem);
  align-items: center;
}
.taxgen-profile-detail--cta .taxgen-profile-detail-heading h2 {
  color: var(--navy-foreground);
}
.taxgen-profile-detail--cta .taxgen-profile-detail-content {
  color: var(--navy-muted);
}
.taxgen-profile-detail--cta .taxgen-profile-detail-content > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: 1.5rem;
  padding: 0.7rem 1.25rem;
  border: 1px solid var(--gold);
  border-radius: 0.5rem;
  background: var(--gold);
  color: var(--navy);
  text-decoration: none;
  font-size: 0.875rem;
}
.taxgen-profile-detail--cta .taxgen-profile-detail-content > a[href^="tel:"] {
  background: transparent;
  color: var(--navy-foreground);
  border-color: var(--navy-muted);
}
@media (min-width: 640px) {
  .taxgen-profile-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .taxgen-profile-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 1312px) {
  .taxgen-profile-detail--case-study .taxgen-profile-detail-grid,
  .taxgen-profile-detail--cta .taxgen-profile-detail-grid {
    width: calc(100% - 2rem);
    padding-inline: clamp(1.25rem, 3vw, 2.5rem);
  }
}
@media (min-width: 1313px) {
  .taxgen-profile-detail--case-study .taxgen-profile-detail-grid,
  .taxgen-profile-detail--cta .taxgen-profile-detail-grid {
    padding-inline: 2.5rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .taxgen-profile-accordion-toggle {
    transition: none;
  }
}

/* Profile section navigation and reading column. */
.taxgen-profile-layout {
  display: grid;
  gap: 2rem;
  padding-block: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.taxgen-profile-sidebar,
.taxgen-profile-main {
  min-width: 0;
}
.taxgen-profile-nav {
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-top: 3px solid var(--gold);
  border-radius: 0.875rem;
  background: var(--background);
  box-shadow: 0 8px 30px rgb(10 32 58 / 0.04);
}
.taxgen-profile-nav ul {
  list-style: none;
  margin: 1.25rem 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}
.taxgen-profile-nav li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem 0.8rem;
  border-radius: 0.4rem;
  color: var(--muted-foreground);
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 500;
}
.taxgen-profile-nav li a span {
  flex-shrink: 0;
  color: var(--corporate);
}
.taxgen-profile-nav li a:hover,
.taxgen-profile-nav li a[aria-current] {
  background: var(--gold-soft);
  color: var(--navy);
  font-weight: 600;
}
.taxgen-profile-nav a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
.taxgen-profile-back {
  display: block;
  border-top: 1px solid var(--border);
  padding-top: 1rem;
  color: var(--corporate);
  font-size: 0.8rem;
  font-weight: 600;
}
.taxgen-profile-anchor {
  scroll-margin-top: 7rem;
  outline: none;
}
.taxgen-profile-main .taxgen-profile-detail {
  padding: 2rem 0;
  background: transparent;
}
.taxgen-profile-main .taxgen-profile-anchor:first-child .taxgen-profile-detail {
  padding-top: 0;
}
.taxgen-profile-main .taxgen-profile-detail-grid {
  width: 100%;
  max-width: none;
  padding-inline: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}
.taxgen-profile-main .taxgen-profile-detail-heading h2 {
  margin-bottom: 1rem;
}
.taxgen-profile-main .taxgen-profile-facts {
  grid-template-columns: minmax(0, 1fr);
}
.taxgen-profile-main
  .taxgen-profile-detail--case-study
  .taxgen-profile-detail-grid,
.taxgen-profile-main .taxgen-profile-detail--cta .taxgen-profile-detail-grid {
  padding: clamp(1.25rem, 3vw, 2rem);
}
@media (min-width: 640px) {
  .taxgen-profile-main .taxgen-profile-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .taxgen-profile-layout {
    grid-template-columns: minmax(230px, 0.85fr) minmax(0, 2.5fr);
    gap: 3rem;
  }
  .taxgen-profile-sidebar {
    position: sticky;
    top: 7rem;
  }
  .taxgen-profile-nav {
    max-height: calc(100dvh - 8rem);
    overflow-y: auto;
  }
}
@media (max-width: 1023px) {
  .taxgen-profile-nav ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 479px) {
  .taxgen-profile-nav {
    padding: 1rem;
  }
  .taxgen-profile-nav li a {
    padding: 0.6rem;
    font-size: 0.8rem;
  }
}

/* Services directory grouped by category. */
.taxgen-service-category-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 2rem;
}
.taxgen-service-category-pills a {
  border: 1px solid color-mix(in oklch, var(--navy-foreground) 25%, transparent);
  border-radius: 999px;
  padding: 0.625rem 1rem;
  color: var(--navy-foreground);
  font-size: 0.875rem;
  font-weight: 600;
}
.taxgen-service-category-pills a:hover {
  border-color: var(--gold);
  color: var(--gold);
}
.taxgen-service-category {
  padding-block: clamp(3rem, 5vw, 4rem);
  scroll-margin-top: 8rem;
}
.taxgen-service-category:nth-child(even) {
  background: var(--secondary);
}
.taxgen-service-category-heading {
  max-width: 800px;
  margin-bottom: 2rem;
}
.taxgen-service-category-heading h2 {
  margin-top: 0.625rem;
  color: var(--navy);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  line-height: 1.2;
}
.taxgen-service-category-intro {
  margin-top: 1rem;
  color: var(--muted-foreground);
  line-height: 1.8;
}
.taxgen-service-directory-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
}
.taxgen-service-directory-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-radius: 0.875rem;
  padding: 1.75rem;
}
.taxgen-service-directory-card h3 {
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
}
.taxgen-service-directory-card p {
  margin-top: 0.75rem;
  color: var(--muted-foreground);
  font-size: 0.875rem;
  line-height: 1.8;
}
.taxgen-service-directory-card > span {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: auto;
  padding-top: 1.5rem;
  color: var(--corporate);
  font-size: 0.875rem;
  font-weight: 600;
}
@media (min-width: 640px) {
  .taxgen-service-directory-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .taxgen-service-directory-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Approved compact home hero and deadline countdown. */
.home-hero-compact .urg-status-dot{display:inline-block;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #c6a15b1c}

.countdown-widget-modern{margin-top:32px;border-radius:14px;position:relative;isolation:isolate;font-family:var(--font-sans);overflow:hidden}.urg-top{display:flex;align-items:center;gap:14px}.urg-top>div{min-width:0}.urg-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.15em;font-weight:700;line-height:1.6;margin:0 0 5px}.countdown-widget-modern h2{font-family:var(--font-display);font-size:21px;font-weight:700;line-height:1.35;margin:0;letter-spacing:-.02em}.urg-icon{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border-radius:12px}.urg-icon svg{width:28px;height:28px}.urg-due{font-size:12px;line-height:1.5;margin:12px 0 0}.urg-timer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:19px}.urg-unit{min-width:0;text-align:center;border-radius:8px;padding:11px 5px}.urg-number{display:block;font-family:var(--font-display);font-size:32px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.urg-label{display:block;margin-top:6px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;line-height:1.4;font-weight:600}.urg-button{display:flex;align-items:center;justify-content:center;gap:14px;min-height:46px;padding:12px 18px;border-radius:7px;font-size:13px;font-weight:700;line-height:1.5;text-decoration:none;transition:filter .2s,transform .2s}.urg-button:hover{filter:brightness(1.07);transform:translateY(-1px)}.urg-button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.urg-action{display:flex;align-items:center;gap:18px;margin-top:18px}.urg-action p{font-size:11px;line-height:1.6;margin:0}.urg-note{font-size:10px;text-align:center;margin:11px 0 0;line-height:1.6}
.urg-c{overflow:visible;border-radius:0;padding:0;background:none;max-width:540px;color:#fff;margin-top:30px}
.urg-c-status{display:flex;align-items:center;gap:10px;color:var(--gold);font-size:12px;font-weight:700;letter-spacing:.025em;margin:0 0 9px}
.urg-c .urg-status-dot{width:8px;height:8px;flex-shrink:0;animation:urg-dot 2.5s ease-out infinite}
.urg-c h2{font-size:22px;color:#fff;margin:0}
.urg-c .urg-due{color:#b8c5d4;font-size:12px;margin:8px 0 0}
.urg-c .urg-timer{gap:19px;margin-top:20px;max-width:480px}
.urg-c .urg-unit{position:relative;padding:17px 6px 13px;border-radius:14px;background:linear-gradient(145deg,#ffffff24,#ffffff09);border:1px solid #ffffff35;box-shadow:inset 0 1px 0 #ffffff26,0 8px 20px #00000014;backdrop-filter:blur(8px)}
.urg-c .urg-unit:not(:last-child):after{content:':';position:absolute;right:-15px;top:17px;color:#c7a25c;font-size:25px;line-height:1;font-weight:600}
.urg-c .urg-unit:first-child{border-color:#c6a15b99;background:linear-gradient(145deg,#c6a15b3d,#c6a15b12)}
.urg-c .urg-number{font-size:36px;color:#fff}
.urg-c .urg-unit:first-child .urg-number{color:var(--gold)}
.urg-c .urg-label{font-size:9px;color:#bdc9d6;margin-top:7px}
.urg-c .urg-button{display:inline-flex;margin-top:23px;background:var(--gold);color:var(--navy);min-width:240px;box-shadow:0 5px 20px #c6a15b20}
@media(max-width:639px){.urg-c{padding:0;margin-top:28px}.urg-c h2{font-size:20px}.urg-c .urg-timer{gap:15px}.urg-c .urg-number{font-size:30px}.urg-c .urg-unit{padding:14px 3px 11px;border-radius:11px}.urg-c .urg-unit:not(:last-child):after{right:-12px;top:15px;font-size:21px}.urg-c .urg-label{font-size:8px}.urg-c .urg-button{display:flex;min-width:0;width:100%;margin-top:20px}}

.urg-c .urg-unit:first-child{animation:urg-days-beacon 2.6s ease-in-out infinite}
.urg-c .urg-unit:first-child:before{content:'';position:absolute;inset:-1px;border:1px solid #c6a15b99;border-radius:inherit;pointer-events:none;animation:urg-days-ring 2.6s ease-out infinite}
.urg-c .urg-button{position:relative;overflow:hidden;isolation:isolate;animation:urg-cta-beacon 3.8s ease-in-out infinite}
.urg-c .urg-button:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#ffffff45 50%,transparent 65%);transform:translateX(-120%);animation:urg-cta-sheen 5s ease-in-out infinite}
.urg-c .urg-button:hover,.urg-c .urg-button:focus-visible{animation:none;box-shadow:0 0 0 3px #c6a15b25,0 8px 24px #c6a15b40}
.urg-c .urg-status-dot{animation:urg-dot 1.8s ease-out infinite}
.urg-c .urg-unit:last-child .urg-number{color:#f0d9ab}
@keyframes urg-days-beacon{0%,100%{border-color:#c6a15b88;box-shadow:0 0 0 0 #c6a15b00}50%{border-color:#e6c37c;box-shadow:0 0 20px #c6a15b28}}
@keyframes urg-days-ring{0%{transform:scale(1);opacity:.6}80%,100%{transform:scale(1.12,1.16);opacity:0}}
@keyframes urg-cta-beacon{0%,100%{box-shadow:0 5px 20px #c6a15b20}50%{box-shadow:0 0 0 3px #c6a15b12,0 6px 26px #c6a15b45}}
@keyframes urg-cta-sheen{0%,65%{transform:translateX(-120%)}95%,100%{transform:translateX(120%)}}
@media(prefers-reduced-motion:reduce){.urg-c,.urg-c *,.urg-c *:before,.urg-c *:after{animation:none!important;transition:none!important}}

.home-hero-compact>.container-site{padding-top:56px;padding-bottom:56px;gap:56px;align-items:center}
.home-hero-compact h1{font-size:40px;line-height:1.16;letter-spacing:-.025em;font-weight:650;margin-top:18px}
.home-hero-compact h1>span:last-child{margin-top:14px;line-height:1.25}
.home-hero-compact h1 .text-gold-gradient{font-size:29px;line-height:1.25;font-weight:600}
.home-hero-compact .eyebrow{font-size:10px;letter-spacing:.13em}
.home-hero-compact h1+div>p{font-size:15px;line-height:1.8;margin-top:20px;max-width:510px}
.home-hero-compact .urg-c{margin-top:25px}
.home-hero-compact .urg-c h2{font-size:18px;font-weight:600}
.home-hero-compact .urg-c-status{font-size:11px;margin-bottom:7px}
.home-hero-compact .urg-c .urg-due{font-size:11px}
.home-hero-compact .urg-c .urg-timer{max-width:410px;margin-top:16px;gap:17px}
.home-hero-compact .urg-c .urg-unit{padding:13px 5px 10px;border-radius:11px}
.home-hero-compact .urg-c .urg-number{font-size:30px}
.home-hero-compact .urg-c .urg-label{font-size:8px;margin-top:5px}
.home-hero-compact .urg-c .urg-unit:not(:last-child):after{right:-14px;top:13px}
.home-hero-compact .urg-c .urg-button{margin-top:20px;font-size:12px;min-width:220px}
.home-hero-compact>.glow-pulse{opacity:.4;animation:none}
.home-hero-compact>.container-site>div:last-child>.bg-card{padding:24px}
.home-hero-compact .wpcf7-form>h2,.home-hero-compact .wpcf7-form>h3{font-size:22px}
@media(min-width:1024px){.home-hero-compact>.container-site{grid-template-columns:1.15fr 1fr}}
@media(max-width:1023px){.home-hero-compact>.container-site{gap:36px;padding-top:40px;padding-bottom:40px}.home-hero-compact h1{font-size:36px}.home-hero-compact h1 .text-gold-gradient{font-size:27px}}
@media(max-width:639px){.home-hero-compact>.container-site{gap:32px;padding-top:32px;padding-bottom:36px}.home-hero-compact h1{font-size:29px;line-height:1.2;margin-top:16px}.home-hero-compact h1 .text-gold-gradient{font-size:23px}.home-hero-compact h1+div>p{font-size:14px;line-height:1.75;margin-top:17px}.home-hero-compact .urg-c h2{font-size:17px}.home-hero-compact .urg-c .urg-timer{gap:15px}.home-hero-compact .urg-c .urg-number{font-size:27px}.home-hero-compact .urg-c .urg-unit:not(:last-child):after{right:-12px}.home-hero-compact>.container-site>div:last-child>.bg-card{padding:20px}}

@media(prefers-reduced-motion:reduce){.countdown-widget-modern *,.countdown-widget-modern *:before,.countdown-widget-modern *:after{animation:none!important;transition:none!important}}

/* Service hero typography follows the approved compact home hero. */
.service-detail-hero > .container-site { padding-block: 56px; }
.service-detail-hero .service-hero-grid { gap: 36px; margin-top: 24px; }
.service-detail-hero h1 { font-size: 40px; line-height: 1.16; font-weight: 650; letter-spacing: -.025em; margin-top: 18px; }
.service-detail-hero .eyebrow { font-size: 10px; letter-spacing: .13em; }
.service-detail-hero h1 + p { font-size: 15px; line-height: 1.8; margin-top: 20px; max-width: 510px; }
.service-detail-hero .service-form-panel { padding: 24px; }
@media (min-width: 1024px) {
  .service-detail-hero .service-hero-grid--split { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; }
}
@media (max-width: 1023px) {
  .service-detail-hero > .container-site { padding-block: 40px; }
  .service-detail-hero h1 { font-size: 36px; }
}
@media (max-width: 639px) {
  .service-detail-hero > .container-site { padding-block: 32px 36px; }
  .service-detail-hero h1 { font-size: 29px; line-height: 1.2; margin-top: 16px; }
  .service-detail-hero h1 + p { font-size: 14px; line-height: 1.75; margin-top: 17px; }
  .service-detail-hero .service-hero-grid { gap: 32px; }
  .service-detail-hero .service-form-panel { padding: 20px; }
}

/* Allow long contact details to wrap in Firefox's intrinsic grid sizing. */
.taxgen-contact-location .container-site > *,
.taxgen-contact-location li a > span { min-width: 0; }
.taxgen-contact-location li a > span,
.taxgen-contact-location address { overflow-wrap: anywhere; }
.taxgen-contact-location li a > svg { flex-shrink: 0; }
/* Contact page: a clear enquiry area with dedicated contact and office cards. */
.page-template-builder-contact .hero-mesh>.container-site{padding-block:38px 48px}
.page-template-builder-contact .hero-mesh h1{font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.18;letter-spacing:-.025em}
.page-template-builder-contact .hero-mesh .eyebrow{margin-top:24px;font-size:10px}
.page-template-builder-contact .hero-mesh p.text-lg{font-size:15px;line-height:1.8;margin-top:16px}
.contact-layout-section{background:linear-gradient(180deg,#f3f6f9,var(--background) 80%);padding-block:56px 72px}
.contact-layout-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:32px}
.contact-layout-grid>*,.contact-details-stack>*{min-width:0}
.contact-enquiry-card{padding:clamp(24px,3.5vw,44px);background:var(--card);border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:16px;box-shadow:0 16px 48px -24px #10284030}
.contact-enquiry-card .wpcf7-form>h2,.contact-enquiry-card .wpcf7-form>h3{font-size:25px;letter-spacing:-.02em}
.contact-enquiry-card .wpcf7 textarea{min-height:140px}
.contact-details-stack{display:grid;gap:24px}
.contact-direct-card{padding:30px;border:1px solid #c6a15b55;border-radius:16px;color:var(--navy-foreground);background:radial-gradient(ellipse at top right,#c6a15b20,transparent 65%),var(--navy);box-shadow:0 12px 30px -22px #10284070}
.contact-direct-card h2,.contact-office-card h2{font-family:var(--font-display);font-weight:600;font-size:21px;line-height:1.3;letter-spacing:-.015em}
.contact-direct-card h2{color:var(--navy-foreground)}
.contact-direct-intro{margin-top:10px;color:#bac7d5;font-size:13px;line-height:1.75}
.contact-channel-list{margin-top:20px;list-style:none;padding:0}
.contact-channel-list li+li{border-top:1px solid #ffffff18}
.contact-channel-list a{display:flex;align-items:center;gap:13px;padding-block:16px;text-decoration:none}
.contact-channel-list li:last-child a{padding-bottom:0}
.contact-channel-icon,.contact-office-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:#c6a15b15;color:var(--gold);border:1px solid #c6a15b40;border-radius:10px;font-size:17px}
.contact-channel-copy{min-width:0;flex:1}
.contact-channel-label{display:block;color:#bac7d5;font-size:11px;margin-bottom:4px}
.contact-channel-value{display:block;color:var(--navy-foreground);font-size:14px;font-weight:600;overflow-wrap:anywhere;transition:color .2s}
.contact-channel-arrow{color:var(--gold);font-size:19px}
.contact-channel-list a:hover .contact-channel-value{color:var(--gold)}
.contact-channel-list a:focus-visible,.contact-directions-link:focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:4px}
.contact-office-card{padding:30px;border:1px solid var(--border);border-radius:16px;background:var(--card)}
.contact-office-icon{margin-bottom:16px}
.contact-office-card h2{color:var(--navy);font-size:19px}
.contact-office-card address{font-style:normal;font-size:14px;line-height:1.85;color:var(--muted-foreground);margin-top:12px;overflow-wrap:anywhere}
.contact-office-card address>span{display:block}.contact-office-card address p{margin:0}
.contact-office-hours{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--border);font-size:12px;line-height:1.7;color:var(--muted-foreground)}
.contact-office-hours i{margin-top:4px;color:var(--gold)}
.contact-directions-link{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;font-size:13px;font-weight:700;color:var(--navy);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
@media(max-width:1023px){.contact-layout-grid{grid-template-columns:minmax(0,1fr)}.contact-details-stack{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
@media(max-width:639px){.page-template-builder-contact .hero-mesh>.container-site{padding-block:28px 36px}.contact-layout-section{padding-block:32px 44px}.contact-layout-grid{gap:24px}.contact-details-stack{grid-template-columns:minmax(0,1fr);gap:20px}.contact-direct-card,.contact-office-card,.contact-enquiry-card{padding:22px;border-radius:12px}.contact-channel-list a{gap:10px}.contact-channel-value{font-size:13px}}
@media(prefers-reduced-motion:reduce){.contact-channel-value{transition:none}}

/* Contact details first, followed by a centered enquiry form. */
.contact-layout-grid{grid-template-columns:minmax(0,1fr);gap:36px}
.contact-details-stack{grid-row:1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.contact-enquiry-card{grid-row:2;width:100%;max-width:800px;justify-self:center}
@media(max-width:639px){
  .contact-layout-grid{gap:24px}
  .contact-details-stack{grid-template-columns:minmax(0,1fr)}
}
